diff --git a/images/logo_planeum_24.png b/images/logo_planeum_24.png
new file mode 100644
index 0000000..0447ac7
Binary files /dev/null and b/images/logo_planeum_24.png differ
diff --git a/images/logo_planeum_48.png b/images/logo_planeum_48.png
new file mode 100644
index 0000000..74fca6e
Binary files /dev/null and b/images/logo_planeum_48.png differ
diff --git a/inc/databap.php b/inc/databap.php
index 695ef59..2bbcffc 100644
--- a/inc/databap.php
+++ b/inc/databap.php
@@ -108,6 +108,7 @@ class Databap extends PhpObject
const OPT_IMAGE_CHAT = 6;
const OPT_STATUS = 7;
const OPT_CONSOLE = 8;
+ const OPT_EMAIL = 9;
//Options Values Id Constants
const OPT_CONSOLE_YES = 1;
@@ -195,7 +196,7 @@ class Databap extends PhpObject
$asOptions = array();
$asOptions['tables'] = array
(
- self::USER_TABLE => array('first_name', 'last_name', 'email', MySqlManager::getId(self::COMP_TABLE), 'pass', 'auth_cookie', 'active', 'clearance'),
+ self::USER_TABLE => array('first_name', 'last_name', MySqlManager::getId(self::COMP_TABLE), 'pass', 'auth_cookie', 'active', 'clearance'),
self::COMP_TABLE => array(MySqlManager::getText(self::COMP_TABLE), 'logo'),
self::CODE_TABLE => array(MySqlManager::getText(self::CODE_TABLE), 'description', MySqlManager::getId(self::USER_TABLE), 'refer_id'),
self::URL_TABLE => array(MySqlManager::getId(self::CODE_TABLE), 'phrase'),
@@ -307,6 +308,7 @@ class Databap extends PhpObject
$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));
//Console Option
$asConsoleValues = array(self::OPT_CONSOLE_YES=>self::OPT_VAL_YES, self::OPT_CONSOLE_NO=>self::OPT_VAL_NO);
@@ -367,7 +369,8 @@ class Databap extends PhpObject
'all_chan_text'=>self::ALL_CHAN_TEXT,
'pm_separator'=>self::PM_SEP,
'reboot_delay'=>self::REBOOT_DELAY,
- 'versionHtml'=>$this->getItemBlock());
+ 'versionHtml'=>$this->getItemBlock(),
+ 'opt_console_no'=>self::OPT_CONSOLE_NO);
$oPage->setTag('constants', $this->jsonConvert($asConstants));
//Variables
@@ -375,6 +378,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);
$oPage->setTag('variables', $this->jsonConvert($asVars));
return $oPage->getMask();
@@ -582,7 +586,6 @@ class Databap extends PhpObject
$asInfo = array('first_name'=>$sFirstName,
'last_name'=>$sLastName,
- 'email'=>$sEmail,
'active'=>self::MEMBER_ACTIVE,
MySqlManager::getId(self::COMP_TABLE)=>$iCompanyId,
'pass'=>$this->oAuth->HashPassword(self::getLoginToken($sCompany)),
@@ -603,7 +606,8 @@ class Databap extends PhpObject
//$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_EMAIL, $sOptionTextCol=>$sEmail));
+
return $iUserId;
}
@@ -1052,10 +1056,12 @@ class Databap extends PhpObject
else
{
$asRow = $this->oMySql->selectRow(self::USER_TABLE, $iUserId);
+ $sEmail = $this->getUserOptionValue(self::OPT_EMAIL, $iUserId);
+
$asCompany = $this->oMySql->selectRow(self::COMP_TABLE, $asRow[MySqlManager::getId(self::COMP_TABLE)]);
$asUserInfo = array( 'name'=>self::getNameFormat($asRow['first_name'], $asRow['last_name']),
'nickname'=>self::getNickNameFormat($this->getChatNickNames($iUserId)),
- 'email'=>$asRow['email'],
+ 'email'=>$sEmail,
'company'=>self::getCompanyFormat($asCompany[MySqlManager::getText(self::COMP_TABLE)]),
'status'=>$this->getDescriptionFormat($this->getUserOptionValue(self::OPT_STATUS, $iUserId)),
'logo'=>$asCompany['logo'],
@@ -1230,7 +1236,9 @@ class Databap extends PhpObject
//User Info
$asProfile['user'] = $this->getUserInfo($iUserId);
-
+ unset($asProfile['user']['email']);
+ unset($asProfile['user']['clearance']);
+
//History Info
$asTables = $this->getItemTables();
foreach($asTables as $sType=>$sTableName)
@@ -1747,12 +1755,12 @@ class Databap extends PhpObject
//Sort out messages for Json Export
$iPrefixLen = mb_strlen(self::JSON_PREFIX);
- $iConsoleDisplay = $this->getUserOptionValue(self::OPT_CONSOLE);
+ //$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;
+ //if($iConsoleDisplay==self::OPT_CONSOLE_NO && $asMessageInfo['type']==self::MESSAGE_CONN) continue;
//General message info
$iChanId = $asMessageInfo[MySqlManager::getId(self::CHAN_TABLE)];
@@ -1827,6 +1835,7 @@ class Databap extends PhpObject
{
$sMsgIdCol = MySqlManager::getId(self::MSG_TABLE);
+ //News
$asInfo['select'] = array($sMsgIdCol, 'nickname', MySqlManager::getText(self::MSG_TABLE), 'led');
$asInfo['from'] = self::MSG_TABLE;
$asInfo['constraint'] = array('type'=>self::MESSAGE_NEWS);
@@ -1834,8 +1843,19 @@ class Databap extends PhpObject
$asInfo['limit'] = 3;
$asNews = $this->oMySql->selectRows($asInfo);
+ //Status
+ $asInfo['constraint'] = array('type'=>self::MESSAGE_STATUS);
+ $asStatus = $this->oMySql->selectRows($asInfo);
+
+ //Sorting
+ //FIXME find a way to do it in SQL
+ $asNews = array_merge($asNews, $asStatus);
+ foreach($asNews as $iKey=>$asNewsInfo) $asNewsSort[$iKey] = strtotime($asNewsInfo['led']);
+ arsort($asNewsSort);
+ foreach($asNewsSort as $iKey=>$iTimestamp) $asNews2[] = $asNews[$iKey];
+
$asFormatNews = array();
- foreach($asNews as $asNew)
+ foreach($asNews2 as $asNew)
{
$iMsgId = '-'.$asNew[$sMsgIdCol];
$asFormatNews[$iMsgId]['time_desc'] = ToolBox::getDateTimeDesc($asNew['led']);
@@ -2255,9 +2275,9 @@ class Databap extends PhpObject
$sPass = '';
if($iUserId>0)
{
- $asUser = $this->oMySql->selectRow(self::USER_TABLE, $iUserId, array('first_name', 'last_name', 'email', MySqlManager::getId(self::COMP_TABLE)));
+ $asUser = $this->oMySql->selectRow(self::USER_TABLE, $iUserId, array('first_name', 'last_name', MySqlManager::getId(self::COMP_TABLE)));
$sCompanyName = $this->oMySql->selectvalue(self::COMP_TABLE, MySqlManager::getText(self::COMP_TABLE), $asUser[MySqlManager::getId(self::COMP_TABLE)]);
- $sPass = $asUser['first_name'].$asUser['last_name'].$asUser['email'].$sCompanyName;
+ $sPass = $asUser['first_name'].$asUser['last_name'].$sCompanyName;
}
else $this->addError('generating token : invalid user id "'.$iUserId.'"');
return $sPass;
diff --git a/index.php b/index.php
index b4d6509..867624a 100644
--- a/index.php
+++ b/index.php
@@ -187,7 +187,7 @@ if($bUserOk && $sAction!=Databap::EXT_ACCESS)
{
case 'add_user':
$asInfo = explode('-', strtolower($oUser));
- $sResult = 'User added. Id='.$oDatabap->addUser($asInfo[0], $asInfo[1], $asInfo[2]);
+ $sResult = 'User added. Id='.$oDatabap->addUser($asInfo[0], $asInfo[1], $asInfo[2], array_key_exists(3, $asInfo)?$asInfo[3]:'');
break;
case 'build_index':
$oDatabap->buildCompleteIndex();
diff --git a/masks/chat.html b/masks/chat.html
index 36c84b0..6494060 100755
--- a/masks/chat.html
+++ b/masks/chat.html
@@ -77,10 +77,11 @@ databap.pageInit = function()
databap.consts.chanUnreadPrefix = 'unread_chan_';
//Page variables
- databap.tmp('sending_msg', 'boolean');
- databap.tmp('refresh', 'boolean');
+ self.tmp('sending_msg', 'boolean');
+ self.tmp('refresh', 'boolean');
self.vars2('unread_msg', 'object');
- databap.tmp('news_period', 10*60*1000);
+ self.tmp('news_period', 10*60*1000);
+ self.tmp('get_news', false);
//Main elements
$MsgInput = databap.getMainElem('#message');
@@ -541,7 +542,7 @@ function add_message(e)
//Finding last word
var last_word = (chat_message.lastIndexOf(" ")==-1)?chat_message:chat_message.substr(chat_message.lastIndexOf(" ") + 1);
- debug(last_word);
+ //debug(last_word);
if(last_word.substr(0, 1)=='@') last_word = last_word.substr(1);
var last_word_len = last_word.length;
@@ -653,6 +654,10 @@ function refresh_chat(bReset)
}
);
+ //News
+ if(databap.tmp('get_news') === true && !bReset) getNews();
+ databap.tmp('get_news', false);
+
//Nicknames changes
if(updateUsersList === true || prevLastMsgId == 0)
{
@@ -694,7 +699,7 @@ function addMessage(message_info, bReset)
msg_body = sMsgPrefix+''+message_info.message+'';
break;
case 'NW':
- if(!bReset) getNews();
+ databap.tmp('get_news', true);
msg_body = ''+message_info.nickname+' a une news : '+message_info.message+' ';
break;
case 'A':
@@ -728,7 +733,7 @@ function addMessage(message_info, bReset)
break;
case 'C':
updateUsersList = true;
- msg_body = ''+message_info.nickname+' '+message_info.message+'';
+ msg_body = (self.vars2('opt_console')==self.consts.opt_console_no)?'':''+message_info.nickname+' '+message_info.message+'';
break;
case 'I':
var msg = '
';
@@ -755,6 +760,7 @@ function addMessage(message_info, bReset)
break;
case 'S':
updateUsersList = true;
+ databap.tmp('get_news', true);
msg_body = ''+message_info.nickname+' '+message_info.message+'';
break;
case 'DA':
diff --git a/masks/profile.html b/masks/profile.html
index 7b4a0be..274c9de 100755
--- a/masks/profile.html
+++ b/masks/profile.html
@@ -31,7 +31,7 @@ databap.pageInit = function()
//user history
$UserHistory = databap.getMainElem('#user_history');
- if(typeof profile.history != 'undefined')
+ if(profile.history!= null && typeof profile.history != 'undefined')
{
$.each
(
diff --git a/todo b/todo
index 2002e47..4586857 100644
--- a/todo
+++ b/todo
@@ -7,13 +7,14 @@ Internal:
- Independant Option Class
Bug fix:
-- [1.0.0] Fix les "xxx se déconnecte" intempestives
+- [1.0.0] Tab dans chat
- [1.0.1] Check le document type plutot que l'extension pour les /img
- [1.0.1] Resize .gif
-- [1.0.1] Tab dans chat
- [1.0.1] Request anti repost : POST REDIRECT GET : http://en.wikipedia.org/wiki/Post/Redirect/Get
+- Fix les "xxx se déconnecte" intempestives
Améliorations
+- liste complète : ajouter des tabs pour sélectionner soit code, soit article, soit table...
- [1.1.0] Chat : compatibilité mobile (utiliser la fonctionnalité ff)
- [1.1.0] search : add tagname, like code:blabla to search blabla in codes only
- delete phrases table / généraliser ?
@@ -38,5 +39,8 @@ Testing
MEP 1.0.0
---------
+- Ajouter l'option 9 (email) : insert into option_names (option_name, type, language) values ('email', 'T', 'FR');
+- copier les emails de users à options
+- supprimer colonne email de users
- Remplacer le External Access Token dans sap_website_parser.sh
- Faire un nouvel export de base
\ No newline at end of file