From 0e4b1a3e6dd4364f040a8d23d5876f217ea835a6 Mon Sep 17 00:00:00 2001 From: franzz Date: Sat, 13 Dec 2014 03:18:04 +0100 Subject: [PATCH] v1.1 --- inc/databap.php | 194 +++++++++++------- index.php | 2 +- jquery/common.js | 4 +- jquery/databap.js | 97 +-------- masks/chat.html | 8 +- masks/code.html | 16 +- masks/index.html | 32 +-- masks/logout.html | 2 +- masks/note.html | 7 +- masks/procedure.html | 76 +++---- masks/welcome.html | 24 +-- style/_common.scss | 97 ++++++--- style/_variables.scss | 19 +- style/databap.css | 2 +- style/databap.css.map | 2 +- style/databap.scss | 341 ++++++++++++++----------------- style/databap_italic_bold.woff | Bin 0 -> 25612 bytes style/databap_italic_normal.woff | Bin 0 -> 25944 bytes style/databap_normal_bold.woff | Bin 0 -> 23624 bytes style/databap_normal_normal.woff | Bin 0 -> 25556 bytes style/logon.css | 2 +- style/logon.css.map | 2 +- style/logon.scss | 27 ++- todo | 42 ++-- 24 files changed, 499 insertions(+), 497 deletions(-) create mode 100644 style/databap_italic_bold.woff create mode 100644 style/databap_italic_normal.woff create mode 100644 style/databap_normal_bold.woff create mode 100644 style/databap_normal_normal.woff diff --git a/inc/databap.php b/inc/databap.php index acf69ca..5dbeb15 100755 --- a/inc/databap.php +++ b/inc/databap.php @@ -7,8 +7,8 @@ class Databap extends PhpObject { //Common Constants - const VERSION = '1.0.3'; //Versioning: ..- - const VERSION_DATE = '27/11/2014'; + const VERSION = '1.1.0'; //Versioning: ..- + const VERSION_DATE = '13/12/2014'; const EXPECTED_PAGE_COOKIE = 'exp_page'; const MAIN_SEPARATOR = ' '; const DATE_FORMAT = 'd/m/Y'; @@ -136,10 +136,7 @@ class Databap extends PhpObject const OPT_STATUS = 7; const OPT_CONSOLE = 8; const OPT_EMAIL = 9; - - //Options Values Id Constants - const OPT_CONSOLE_YES = 1; - const OPT_CONSOLE_NO = 2; + const OPT_CHAT_HISTO = 10; //Options Values Constants const OPT_VAL_YES = 'oui'; @@ -242,7 +239,7 @@ class Databap extends PhpObject self::CONN_TABLE => array(MySqlManager::getId(self::USER_TABLE), MySqlManager::getId(self::CHAN_TABLE)), self::OPT_TABLE => array(MySqlManager::getId(self::USER_TABLE), MySqlManager::getId(self::OPTNAME_TABLE), MySqlManager::getId(self::OPTVAL_TABLE), MySqlManager::getText(self::OPT_TABLE)), self::OPTNAME_TABLE => array(MySqlManager::getText(self::OPTNAME_TABLE), 'type', 'language'), - self::OPTVAL_TABLE => array(MySqlManager::getId(self::OPTNAME_TABLE), MySqlManager::getText(self::OPTVAL_TABLE), 'language'), + self::OPTVAL_TABLE => array(MySqlManager::getId(self::OPTNAME_TABLE), MySqlManager::getText(self::OPTVAL_TABLE), 'default_value', 'language'), self::PROC_TABLE => array(MySqlManager::getId(self::USER_TABLE), 'title', 'description', 'refer_id'), self::STEP_TABLE => array(MySqlManager::getId(self::PROC_TABLE), 'description'), self::IMG_TABLE => array(MySqlManager::getId(self::PROC_TABLE), MySqlManager::getId(self::STEP_TABLE), 'description', 'file_name'), @@ -285,7 +282,8 @@ class Databap extends PhpObject 'logo' => "varchar(20) NOT NULL", 'date' => "date NOT NULL", 'system' => "varchar(3)", - 'extension' => "varchar(10)" + 'extension' => "varchar(10)", + 'default_value'=>"tinyint(1) DEFAULT 0" ); $asOptions['constraints'] = array ( @@ -355,18 +353,31 @@ class Databap extends PhpObject $sOptionValueCol = MySqlManager::getText(self::OPTVAL_TABLE); $sOptionNameIdCol = MySqlManager::getId(self::OPTNAME_TABLE); $sOptionValueIdCol = MySqlManager::getId(self::OPTVAL_TABLE); - $iNicknameOptId = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_NICKNAME, $sOptionNameCol=>'pseudo du chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); - $iBgColorOptId = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_BG, $sOptionNameCol=>'couleur de fond', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); - $iBgColorOpt2Id = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_BRIGHT_BG, $sOptionNameCol=>'couleur de fond 2 (claire)', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); - $iHoverColorOptId = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_HOVER, $sOptionNameCol=>'couleur de survol', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); - $iChatImageOptId = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_IMAGE_CHAT, $sOptionNameCol=>'image du chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); - $iStatusOptId = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_STATUS, $sOptionNameCol=>'mission en cours', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); - $iConsoleOptId = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_CONSOLE, $sOptionNameCol=>'afficher la console du chat', 'type'=>self::OPT_SELECT, 'language'=>self::LANG_FR)); - $iEmailOptId = $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_EMAIL, $sOptionNameCol=>'Email', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_NICKNAME, $sOptionNameCol=>'pseudo du chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_BG, $sOptionNameCol=>'couleur de fond', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_BRIGHT_BG, $sOptionNameCol=>'couleur de fond 2 (claire)', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_HOVER, $sOptionNameCol=>'couleur de survol', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_IMAGE_CHAT, $sOptionNameCol=>'image du chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_STATUS, $sOptionNameCol=>'mission en cours', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_CONSOLE, $sOptionNameCol=>'afficher la console du chat', 'type'=>self::OPT_SELECT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_EMAIL, $sOptionNameCol=>'email', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); + $this->oMySql->insertRow(self::OPTNAME_TABLE, array($sOptionNameIdCol=>self::OPT_CHAT_HISTO, $sOptionNameCol=>'nombre de jours d\'historique dans le chat', 'type'=>self::OPT_TEXT, 'language'=>self::LANG_FR)); - //Console Option - $asConsoleValues = array(self::OPT_CONSOLE_YES=>self::OPT_VAL_YES, self::OPT_CONSOLE_NO=>self::OPT_VAL_NO); - foreach($asConsoleValues as $sConsoleValId=>$sConsoleValue){$this->oMySql->insertRow(self::OPTVAL_TABLE, array($sOptionValueIdCol=>$sConsoleValId, $sOptionNameIdCol=>self::OPT_CONSOLE, $sOptionValueCol=>$sConsoleValue, 'language'=>self::LANG_FR));} + //Select and Default Option values + $asDefaultValues = array( self::OPT_CONSOLE=>array(self::OPT_VAL_YES=>false, self::OPT_VAL_NO=>true), + self::OPT_BG=>array('#04357B'=>true), + self::OPT_BRIGHT_BG=>array('#D9E5F2'=>true), + self::OPT_HOVER=>array('#EFAB00'=>true), + self::OPT_IMAGE_CHAT=>array('images/sap_gold_332.jpg'=>true), + self::OPT_STATUS=>array('aucune mission en cours'=>true), + self::OPT_CHAT_HISTO=>array('0'=>true)); + foreach($asDefaultValues as $sOptionNameId=>$asOptionValues) + { + foreach($asOptionValues as $sOptionValue=>$bDefault) + { + $this->oMySql->insertRow(self::OPTVAL_TABLE, array($sOptionNameIdCol=>$sOptionNameId, $sOptionValueCol=>$sOptionValue, 'default_value'=>$bDefault, 'language'=>self::LANG_FR)); + } + } //Insert default and all channels $this->oMySql->insertRow(self::CHAN_TABLE, array('safe_name'=>self::getChanSafeName(self::ALL_CHAN_TEXT), MySqlManager::getText(self::CHAN_TABLE)=>self::ALL_CHAN_TEXT)); @@ -430,9 +441,9 @@ class Databap extends PhpObject 'pm_separator'=>self::PM_SEP, 'reboot_delay'=>self::REBOOT_DELAY, 'versionHtml'=>$this->getItemBlock(), - 'opt_console_no'=>self::OPT_CONSOLE_NO, 'types'=>$this->getTypeInfo('title'), - 'msg_types'=>self::$MESSAGE_TYPES); + 'msg_types'=>self::$MESSAGE_TYPES, + 'cur_date'=>date(self::DATE_FORMAT)); $oPage->setTag('constants', $this->jsonConvert($asConstants)); //Variables @@ -440,7 +451,7 @@ class Databap extends PhpObject $asVars['user_id'] = $this->getUserId(); $asVars['hash_to_page'] = $this->getPagesFromHash(); $asVars['page_to_hash'] = array_flip($asVars['hash_to_page']); - $asVars['opt_console'] = $this->getUserOptionValue(self::OPT_CONSOLE); + $asVars['opt_console'] = ($this->getUserOptionValue(self::OPT_CONSOLE)==self::OPT_VAL_YES); $oPage->setTag('variables', $this->jsonConvert($asVars)); return $oPage->getMask(); @@ -587,7 +598,9 @@ class Databap extends PhpObject $sSAPDomain = 'http://scn.sap.com'; $asBlogPaths = array( '/community/data-warehousing/bw/blog', '/community/data-warehousing/blog', - '/community/bw-hana/blog'); + '/community/bw-hana/blog', + '/community/businessobjects-design-studio/blog', + '/community/businessobjects-analysis-ms-office/blog'); foreach($asBlogPaths as $sSAPBlogPath) { $sSAPBlogUrl = $sSAPDomain.$sSAPBlogPath; @@ -761,14 +774,7 @@ class Databap extends PhpObject $sUserIdCol = MySqlManager::getId(self::USER_TABLE); $sOptNameIdCol = MySqlManager::getId(self::OPTNAME_TABLE); $sOptionTextCol = MySqlManager::getText(self::OPT_TABLE); - $sOptionValIdCol = MySqlManager::getId(self::OPTVAL_TABLE); - $this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_NICKNAME, $sOptionTextCol=>$sFirstName)); - //$this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_BG, $sOptionTextCol=>'#04357B')); - //$this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_BRIGHT_BG, $sOptionTextCol=>'#D9E5F2')); - //$this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_HOVER, $sOptionTextCol=>'#EFAB00')); - //$this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_TOKEN, $sOptionTextCol=>$this->generateExternalAccessLink('rss', $iUserId))); - //$this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_IMAGE_CHAT, $sOptionTextCol=>'images/sap_gold_332.jpg')); - $this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_CONSOLE, $sOptionValIdCol=>self::OPT_CONSOLE_NO)); + $this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_NICKNAME, $sOptionTextCol=>self::getNickNameFormat($sFirstName))); $this->oMySql->insertRow($sOptionTable, array($sUserIdCol=>$iUserId, $sOptNameIdCol=>self::OPT_EMAIL, $sOptionTextCol=>$sEmail)); return $iUserId; @@ -1312,7 +1318,8 @@ class Databap extends PhpObject public function setOptions($asUserOptions, $bSilentUpdate=true) { - foreach($this->getAvailableOptions() as $sOptNameId=>$asOption) + $asAvailableOptions = $this->getAvailableOptions(); + foreach($asAvailableOptions as $sOptNameId=>$asOption) { if(array_key_exists($sOptNameId, $asUserOptions)) { @@ -1376,12 +1383,35 @@ class Databap extends PhpObject 'constraint'=>array('language'=>$this->sLanguage)); return $this->oMySql->selectRows($asInfo, true, $sOptNameIdCol); } - + + private function getDefaultOptionValue($sOptionNameId) + { + $asDefaultOptions = $this->getDefaultOptionValues($sOptionNameId); + $asOptionInfo = array_shift($asDefaultOptions); + return $asOptionInfo[MySqlManager::getText(self::OPTVAL_TABLE)]; + } + + private function getDefaultOptionValues($oOptionNameIds=array(), $bOptValId=true) + { + $sOptNameIdCol = MySqlManager::getId(self::OPTNAME_TABLE); + $sOptValIdCol = MySqlManager::getId(self::OPTVAL_TABLE); + $sOptValueTextCol = MySqlManager::getText(self::OPTVAL_TABLE); + if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds); + + $asInfo = array('select' => array($sOptNameIdCol, $sOptValueTextCol), + 'from' => self::OPTVAL_TABLE, + 'constraint'=> array('default_value'=>true, $sOptNameIdCol => "(".implode(", ", $oOptionNameIds).")"), + 'constOpe' => array('default_value'=>"=", $sOptNameIdCol=>" IN "), + 'constVar' => true); + if($bOptValId) $asInfo['select'][] = $sOptValIdCol; + return $this->oMySql->selectRows($asInfo, true, $sOptNameIdCol); + } + private function getUserOptionValue($sOptionNameId, $iUserId=0) { $asUserOptions = $this->getUserOptions($sOptionNameId, $iUserId); $asOptionInfo = array_shift($asUserOptions); - return $asOptionInfo[MySqlManager::getId(self::OPTVAL_TABLE)]; + return $asOptionInfo[MySqlManager::getText(self::OPT_TABLE)]; } private function getUserOptions($oOptionNameIds=array(), $iUserId=0) @@ -1391,25 +1421,31 @@ class Databap extends PhpObject $sOptNameIdCol = MySqlManager::getId(self::OPTNAME_TABLE); $sOptValueIdCol = MySqlManager::getId(self::OPTVAL_TABLE); $sOptionTextCol = MySqlManager::getText(self::OPT_TABLE); + $sOptValueTextCol = MySqlManager::getText(self::OPTVAL_TABLE); - if(!is_array($oOptionNameIds)) - { - $oOptionNameIds = array($oOptionNameIds); - } + if(!is_array($oOptionNameIds)) $oOptionNameIds = array($oOptionNameIds); + elseif(empty($oOptionNameIds)) $oOptionNameIds = array_keys($this->getAvailableOptions()); - $asUserinfo = array('select'=>array($sOptNameIdCol, $sOptValueIdCol, $sOptionTextCol), - 'from'=>self::OPT_TABLE, - 'constraint'=>array($sUserIdCol=>$iUserId)); - if(count($oOptionNameIds)>0) - { - $asUserinfo['constraint'][$sOptNameIdCol] = "(".implode(", ", $oOptionNameIds).")"; - $asUserinfo['constOpe'] = array($sUserIdCol=>"=", $sOptNameIdCol=>" IN "); - $asUserinfo['constVar'] = true; - } + $asUserinfo = array('select' => array($sOptNameIdCol, $sOptValueIdCol, $sOptionTextCol), + 'from' => self::OPT_TABLE, + 'constraint'=> array($sUserIdCol=>$iUserId, $sOptNameIdCol => "(".implode(", ", $oOptionNameIds).")"), + 'constOpe' => array($sUserIdCol=>"=", $sOptNameIdCol=>" IN "), + 'constVar' => true); $asOptions = $this->oMySql->selectRows($asUserinfo, true, $sOptNameIdCol); - foreach($asOptions as $iOptionId=>$asOption) + foreach($oOptionNameIds as $iOptionId) { - if(!$asOption[$sOptValueIdCol]) $asOptions[$iOptionId][$sOptValueIdCol] = $asOptions[$iOptionId][$sOptionTextCol]; + $sNewValue = ''; + //Default value + if(!array_key_exists($iOptionId, $asOptions) || $asOptions[$iOptionId][$sOptValueIdCol]=='' && $asOptions[$iOptionId][$sOptionTextCol]=='') + { + $asDefaultOption = $this->getDefaultOptionValues($iOptionId); + $asOptions[$iOptionId][$sOptValueIdCol] = $asDefaultOption[$iOptionId][$sOptValueIdCol]; + $asOptions[$iOptionId][$sOptionTextCol] = $asDefaultOption[$iOptionId][$sOptValueTextCol]; + } + //Text value + elseif(!$asOptions[$iOptionId][$sOptValueIdCol]) $asOptions[$iOptionId][$sOptValueIdCol] = $asOptions[$iOptionId][$sOptionTextCol]; + //Select value + else $asOptions[$iOptionId][$sOptionTextCol] = $this->oMySql->selectValue(self::OPTVAL_TABLE, $sOptValueTextCol, $asOptions[$iOptionId][$sOptValueIdCol]); } return $asOptions; } @@ -1559,7 +1595,7 @@ class Databap extends PhpObject foreach($asMessages as $iChanId=>$sMsgChanName) { $asPm = $this->isPmChan($sMsgChanName); - $this->addMessage(' de '.$asUserInfo['company'].' ('.($sStatus==''?'aucune mission en cours':$this->getDescriptionFormat($sStatus)).') rejoint '.($asPm['is_pm']?'le chan privé':'#'.$sMsgChanName), self::MESSAGE_CONN, $iChanId); + $this->addMessage(' de '.$asUserInfo['company'].' ('.$this->getDescriptionFormat($sStatus).') rejoint '.($asPm['is_pm']?'le chan privé':'#'.$sMsgChanName), self::MESSAGE_CONN, $iChanId); } //Send invites to attendees @@ -1890,11 +1926,11 @@ class Databap extends PhpObject if($iChanId>0) { $asInsert = array( MySqlManager::getId(self::USER_TABLE) => $this->getUserId(), - 'nickname' => $this->getChatNickNames($this->getUserId()), - MySqlManager::getId(self::CHAN_TABLE) => $iChanId, - MySqlManager::getText(self::MSG_TABLE) => $sMessage, - 'type' => $sType, - 'date' => 'CURDATE()'); + 'nickname' => $this->getChatNickNames($this->getUserId()), + MySqlManager::getId(self::CHAN_TABLE) => $iChanId, + MySqlManager::getText(self::MSG_TABLE) => $sMessage, + 'type' => $sType, + 'date' => 'CURDATE()'); $bResult = $this->oMySql->insertRow(self::MSG_TABLE, $asInsert); } else @@ -1922,21 +1958,23 @@ class Databap extends PhpObject $sConnTableUserIdCol = MySqlManager::getFullColumnName(self::CONN_TABLE, MySqlManager::getId(self::USER_TABLE)); $sConnTableChanIdCol = MySqlManager::getFullColumnName(self::CONN_TABLE, MySqlManager::getId(self::CHAN_TABLE)); - //channel related messages - $sCurDate = date(Databap::DATE_SQL_FORMAT); + //User channels related messages + $iCurTimeStamp = time(); + $sCurDate = date(Databap::DATE_SQL_FORMAT, $iCurTimeStamp); + $sLimitDate = date(Databap::DATE_SQL_FORMAT, $iCurTimeStamp - $this->getUserOptionValue(self::OPT_CHAT_HISTO)*24*60*60); $asInfo = array('select' => array($sMsgTableChanIdCol, $sMsgIdCol, $sMsgTextCol, 'type', $sMsgTableLed, 'first_name', 'last_name', $sUserIdCol, 'nickname'), 'from' => self::CONN_TABLE, 'joinOn' => array( self::MSG_TABLE =>array($sMsgTableChanIdCol, '=', $sConnTableChanIdCol), self::USER_TABLE=>array($sUserTableUserIdCol, '=', $sMsgTableUserIdCol)), - 'constraint'=> array($sConnTableUserIdCol=>$this->getUserId(), $sMsgIdCol=>$iFirstMsgId, 'date'=>$sCurDate), - 'constOpe' => array($sConnTableUserIdCol=>'=', $sMsgIdCol=>'>', 'date'=>'=')); + 'constraint'=> array($sConnTableUserIdCol=>$this->getUserId(), $sMsgIdCol=>$iFirstMsgId, 'date'=>$sLimitDate), + 'constOpe' => array($sConnTableUserIdCol=>'=', $sMsgIdCol=>'>', 'date'=>'>=')); $asSqlMessages = $this->oMySql->selectRows($asInfo, true, 'id_message'); //Global messages $asInfo['from'] = self::MSG_TABLE; $asInfo['joinOn'] = array(self::USER_TABLE=>array($sUserTableUserIdCol, '=', $sMsgTableUserIdCol)); - $asInfo['constraint'] = array($sMsgTableChanIdCol=>self::ALL_CHAN_ID, $sMsgIdCol=>$iFirstMsgId, 'date'=>$sCurDate); - $asInfo['constOpe'] = array($sMsgTableChanIdCol=>'=', $sMsgIdCol=>'>', 'date'=>'='); + $asInfo['constraint'] = array($sMsgTableChanIdCol=>self::ALL_CHAN_ID, $sMsgIdCol=>$iFirstMsgId, 'date'=>$sLimitDate); + $asInfo['constOpe'] = array($sMsgTableChanIdCol=>'=', $sMsgIdCol=>'>', 'date'=>'>='); $asSqlGlobalMessages = $this->oMySql->selectRows($asInfo, true, 'id_message'); //Invites messages @@ -1953,13 +1991,9 @@ class Databap extends PhpObject //Sort out messages for Json Export $iPrefixLen = mb_strlen(self::JSON_PREFIX); - //$iConsoleDisplay = $this->getUserOptionValue(self::OPT_CONSOLE); $asMessages = array('messages'=>array(), 'last_message_id'=>0); foreach($asSqlMessages as $iMessageId=>$asMessageInfo) { - //Connection message filter - //if($iConsoleDisplay==self::OPT_CONSOLE_NO && $asMessageInfo['type']==self::MESSAGE_CONN) continue; - //General message info $iChanId = $asMessageInfo[MySqlManager::getId(self::CHAN_TABLE)]; $iUserId = $asMessageInfo[MySqlManager::getId(self::USER_TABLE)]; @@ -1968,6 +2002,7 @@ class Databap extends PhpObject $asMessages['messages'][$iMessageId]['id_user'] = $iUserId; $asMessages['messages'][$iMessageId]['message'] = $asMessageInfo[$sMsgTextCol]; $asMessages['messages'][$iMessageId]['msg_class'] = $sMessageType; + $asMessages['messages'][$iMessageId]['date'] = self::getDateFormat($asMessageInfo['led'], self::DATE_FORMAT); $asMessages['messages'][$iMessageId]['time'] = self::getDateFormat($asMessageInfo['led'], self::TIME_FORMAT); $asMessages['messages'][$iMessageId]['name'] = self::getNameFormat($asMessageInfo['first_name'], $asMessageInfo['last_name']); $asMessages['messages'][$iMessageId]['nickname'] = self::getNickNameFormat($asMessageInfo['nickname']); @@ -2566,10 +2601,16 @@ class Databap extends PhpObject } } - public function checkValue($sTableName, $asConstraints) + private function checkValue($sTableName, $asConstraints) { return $this->oMySql->selectValue($sTableName, 'COUNT(1)', $asConstraints); } + + public function getUrlAvailability($sLink) + { + $bAvailable = !$this->checkValue(self::URL_TABLE, array('phrase'=>$sLink)); + return self::getJsonPostResult($bAvailable, ''); + } public function resetChanSafeNames() { @@ -2628,23 +2669,18 @@ class Databap extends PhpObject public function getStyleSheet() { $sStyle = file_get_contents(self::STYLE_PATH); - $asDefaultColors = array( self::OPT_BG=>'#04357B', - self::OPT_BRIGHT_BG=>'#D9E5F2', - self::OPT_HOVER=>'#EFAB00', - self::OPT_IMAGE_CHAT=>'images/sap_gold_332.jpg'); + $asStyleParams = array(self::OPT_BG, self::OPT_BRIGHT_BG, self::OPT_HOVER, self::OPT_IMAGE_CHAT); - //Inserting Color Ids - foreach($asDefaultColors as $iOptionNameId=>$sDefaultColor) - { - $asColorAnchors[$iOptionNameId] = '[OPT#'.$iOptionNameId.']'; - } - $sStyle = str_replace($asDefaultColors, $asColorAnchors, $sStyle); + //Inserting Color Anchors + $asDefaultValues = $this->getDefaultOptionValues($asStyleParams, false); + foreach($asDefaultValues as $iOptionNameId=>$sDefaultValue) $asColorAnchors[$iOptionNameId] = '[OPT#'.$iOptionNameId.']'; + $sStyle = str_replace($asDefaultValues, $asColorAnchors, $sStyle); - //Switching color Ids with user colors - $asOptionvalues = $this->getUserOptions(array_keys($asDefaultColors)); + //Switching color Anchors with user colors + $asOptionvalues = $this->getUserOptions($asStyleParams); foreach($asColorAnchors as $iOptionNameId=>$sColorAnchor) { - $sOptionValue = (array_key_exists($iOptionNameId, $asOptionvalues) && $asOptionvalues[$iOptionNameId]['option']!='')?$asOptionvalues[$iOptionNameId]['option']:$asDefaultColors[$iOptionNameId]; + $sOptionValue = (array_key_exists($iOptionNameId, $asOptionvalues) && $asOptionvalues[$iOptionNameId]['option']!='')?$asOptionvalues[$iOptionNameId]['option']:$asDefaultValues[$iOptionNameId]; $sStyle = str_replace($sColorAnchor, $sOptionValue, $sStyle); } diff --git a/index.php b/index.php index 29deb3a..d097b5e 100644 --- a/index.php +++ b/index.php @@ -129,7 +129,7 @@ if($bUserOk && $sAction!=Databap::EXT_ACCESS) $sResult = $oDatabap->uploadFile('doc'); break; case 'url': - $sResult = $oDatabap->checkValue(Databap::URL_TABLE, array('phrase'=>$sLink)); + $sResult = $oDatabap->getUrlAvailability($sLink); break; case 'user_info': $sResult = $oDatabap->getUserInfo($oDatabap->getUserId(), true); diff --git a/jquery/common.js b/jquery/common.js index 6109f86..d6bd1ae 100644 --- a/jquery/common.js +++ b/jquery/common.js @@ -88,7 +88,7 @@ $.prototype.getEmptyHeight = function() //debug('#'+$(this).attr('id')+'|.'+$(this).attr('class')+' gives '+$(this).outerHeight(true)); iTotalHeight += $(this).outerHeight(true); }); - return $This.height() - iTotalHeight; + return $This.innerHeight() - iTotalHeight; }; $.prototype.getEmptyWidth = function() @@ -98,7 +98,7 @@ $.prototype.getEmptyWidth = function() { iTotalWidth += $(this).outerWidth(true); }); - return $This.width() - iTotalWidth; + return $This.innerWidth() - iTotalWidth; }; $.prototype.addDefaultValue = function(sDefaultValue, sInitValue) diff --git a/jquery/databap.js b/jquery/databap.js index 399d2f6..9cb7690 100644 --- a/jquery/databap.js +++ b/jquery/databap.js @@ -163,100 +163,7 @@ function Databap() this.initMenu = function() { - //Hover Event: open/close - self.$menu.hover - ( - self.openMenu, - function() - { - closeMenu = true; - if(typeof oMenuTimer != "undefined") clearTimeout(oMenuTimer); - oMenuTimer = setTimeout(self.closeMenu, 1000); - } - ); - - //Close on click - self.$menu.find('a').click(self.instantCloseMenu); - }; - - this.openMenu = function() - { - //Disable closing - closeMenu = false; - if(typeof oMenuTimer != "undefined") clearTimeout(oMenuTimer); - - //If not already opened / about to open - if(typeof openedMenu == 'undefined' || openedMenu != true) - { - openedMenu = true; - self.$menu.find('#menu_title').hide(); - - //Main shadow - self.$main.add(self.$title) - .click(self.instantCloseMenu) - .fadeTo('fast', 0.2); - - //Switch useless button - self.$menu.find('.useless_button').removeClass('round').addClass('tiny_top_right'); - - //Move menu items - var iVPos = Math.max(0, $(window).scrollTop() - 46 - 46); - self.$menu.find('#menu_items').css('margin-top', iVPos); - - //Expand menu - self.$menu - .stop() - .animate - ( - {width:'300px'/*, borderWidth:'10px'*/}, - 'fast', - function() - { - self.$menu.find('#menu_box').show(); - $(this).addClass('opened'); - } - ); - } - }; - - this.instantCloseMenu = function() - { - closeMenu=true; - if(typeof oMenuTimer != "undefined") clearTimeout(oMenuTimer); - self.closeMenu(); - }; - - this.closeMenu = function() - { - if(closeMenu == true) - { - if(typeof oMenuTimer != "undefined") clearTimeout(oMenuTimer); - - //Switch uselecc button - self.$menu.find('.useless_button').removeClass('tiny_top_right').addClass('round'); - - //Main shadow - self.$main.add(self.$title) - .off('click') - .fadeTo('fast', 1); - - //Reduce menu - self.$menu.find('#menu_box').hide(); - self.$menu - .stop() - .animate - ( - {width:'20px'/*, borderWidth:'0'*/}, - 'fast', - function() - { - self.$menu.find('#menu_title').show(); - $(this).removeClass('opened'); - } - ); - openedMenu = false; - closeMenu = false; - } + self.$menu.find('a').each(function(){$(this).attr('title', $(this).find('span').text());}); }; this.setInitEnd = function(bEnded, bAddScrollBar) @@ -440,7 +347,7 @@ function Databap() { iDelta = $Elem.getEmptyHeight(); if(iDelta > 0) $Elem.height('-='+iDelta); - //debug('Removing useless '+iDelta+'px from #'+$Elem.attr('id')); + debug('Removing useless '+iDelta+'px from #'+$Elem.attr('id')); } }; diff --git a/masks/chat.html b/masks/chat.html index 2e7dff9..3c9b831 100755 --- a/masks/chat.html +++ b/masks/chat.html @@ -22,7 +22,7 @@
-
+
@@ -252,7 +252,7 @@ function setChanButton() .append ( $('', {id:'join_chan_input'}) - .text('#') + .append($('', {'class':'hash'}).text('#')) .append ( $('', {type:'text', id:'input_chan', 'class':'round'}) @@ -755,7 +755,7 @@ function addMessage(message_info, bReset) break; case databap.consts.msg_types.conn: updateUsersList = true; - msg_body = (self.vars2('opt_console')==self.consts.opt_console_no)?'':''+message_info.nickname+' '+message_info.message+''; + msg_body = (!self.vars2('opt_console'))?'':''+message_info.nickname+' '+message_info.message+''; bSystemMsg = true; break; case databap.consts.msg_types.img: @@ -809,7 +809,7 @@ function addMessage(message_info, bReset) if(msg_body != '') { //Adding message to channel panel - $Message = $('

').append(''+message_info.time+'', msg_body); + $Message = $('

', {'class':message_info.msg_class+' class_'+sChanKeyName+' hide round_right'}).append($('', {'class':'time'}).text(((message_info.date==databap.consts.cur_date)?'':message_info.date+' - ')+message_info.time), msg_body); $Message.find('.chan_link').click(function(){joinChan($(this).find('.chan_text').text());}); $Message.find('.user').click(setPm); databap.getMainElem('#chat_messages').append($Message); diff --git a/masks/code.html b/masks/code.html index 3913069..1b186f0 100644 --- a/masks/code.html +++ b/masks/code.html @@ -55,6 +55,10 @@ databap.onResize = function() //Read Code self.setScrollBarSize('optimize'); + + //FIXME + $('#reader_subbox').height('+=1px'); + self.updateScrollBar(); }; databap.onQuit = function(){ return (self.tmp('started') === false); }; @@ -142,31 +146,31 @@ function checkUrlAvailability(phrase, bTriggered) databap.getInfo ( 'url', - function(bExist) + function(oData) { var availabilityClass, availabilityText; var $link = databap.getMainElem('#link_result'); - if(bExist=='0') + if(oData.result==databap.consts.success) { availabilityClass = 'available'; availabilityText = 'Disponible'; - if($link.is(':hidden')) $link.show('fast'); + if($link.is(':hidden')) $link.fadeIn('fast'); } else { availabilityClass = 'unavailable'; availabilityText = 'Indisponible'; - if($link.is(':visible')) $link.hide('fast'); + if($link.is(':visible')) $link.fadeOut('fast'); } var $AvailableBox = databap.getMainElem('#available_phrase'); $AvailableBox .removeClass('available unavailable') .addClass(availabilityClass); $AvailableBox.find('#available_phrase_text').text(availabilityText); - $AvailableBox.show('fast'); + $AvailableBox.fadeIn('fast'); }, {link_escaped:phrase}, - 'html', + 'json', function(){}, true ); diff --git a/masks/index.html b/masks/index.html index 78d7756..f4a70ea 100755 --- a/masks/index.html +++ b/masks/index.html @@ -39,26 +39,26 @@

diff --git a/masks/logout.html b/masks/logout.html index 9cae72c..c19f26e 100644 --- a/masks/logout.html +++ b/masks/logout.html @@ -1,5 +1,5 @@
-

Déconnexion...

+

Déconnexion...