diff --git a/inc/databap.php b/inc/databap.php
index 29dfabe..7a153fd 100755
--- a/inc/databap.php
+++ b/inc/databap.php
@@ -398,14 +398,15 @@ class Databap extends PhpObject
$this->addUser('test', 'test', $iAdminCompanyId, 'test@test.com', self::CLEARANCE_MEMBER, 0, false);
//Write the SAP blog parser bash script to main folder
- @file_put_contents('sap_website_parser.sh', "#!/bin/bash\n\ncd /var/www\n\n/usr/bin/php -f index.php a=external_access p=blogs auth_token=".self::SYSTEM_USER_ID.'_'.str_replace('$', '\$', $this->generateExternalAccessToken(self::SYSTEM_USER_ID)));
+ $this->updateWebCrawler();
}
public function updateWebCrawler()
{
$sContent = "#!/bin/bash\n\ncd /var/www\n\n/usr/bin/php -f index.php a=external_access p=blogs auth_token=".self::SYSTEM_USER_ID.'_'.str_replace('$', '\$', $this->generateExternalAccessToken(self::SYSTEM_USER_ID));
- @file_put_contents('sap_website_parser.sh', $sContent);
- return $sContent;
+ $bSuccess = !(file_put_contents('sap_website_parser.sh', $sContent)===false);
+ $sDesc = $bSuccess?'Fichier écrit avec succès':'Erreur lors de l\'écriture du fichier à la racine de l\'application. Vérifier les droits sur ce dossier';
+ return $this->getJsonPostResult($bSuccess, $sDesc);
}
public function goLive()
@@ -1456,7 +1457,13 @@ class Databap extends PhpObject
$asAdminOptions = array();
if($this->checkUserClearance(self::CLEARANCE_ADMIN))
{
- $asAdminOptions['companies'] = $this->oMySql->selectList(self::COMP_TABLE);
+ //Companies
+ $asAdminOptions['companies'] = array_map(array('self', 'getCompanyFormat'), $this->oMySql->selectList(self::COMP_TABLE));
+
+ //User Names
+ $asFirstNames = $this->oMySql->selectList(self::USER_TABLE, 'first_name');
+ $asLastNames = $this->oMySql->selectList(self::USER_TABLE, 'last_name');
+ foreach($asLastNames as $iUserId=>$sLastName) $asAdminOptions['users'][$iUserId] = self::getNameFormat($asFirstNames[$iUserId], $sLastName);
}
return $this->jsonExport(array('admin'=>$asAdminOptions, 'options'=>$asSelectedOptions));
}
@@ -2282,19 +2289,22 @@ class Databap extends PhpObject
$asConnectedUsers = $asUserOptions = array();
foreach($asUserChannels as $asUser)
{
- $sChanId = $asUser[MySqlManager::getId(self::CHAN_TABLE)];
+ $iChanId = $asUser[MySqlManager::getId(self::CHAN_TABLE)];
$iUserId = $asUser[$iUserIdCol];
if(!array_key_exists($iUserId, $asUserOptions)) $asUserOptions[$iUserId] = $this->getUserOptions(array(self::OPT_NICKNAME, self::OPT_STATUS), $iUserId);
$sNickName = self::getNickNameFormat($asUserOptions[$iUserId][self::OPT_NICKNAME][MySqlManager::getText(self::OPTVAL_TABLE)]);
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['id_user'] = $iUserId;
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['name'] = self::getNameFormat($asUser['first_name'], $asUser['last_name']);
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['company'] = self::getCompanyFormat($asUser['company']);
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['status'] = $asUserOptions[$iUserId][self::OPT_STATUS][MySqlManager::getText(self::OPTVAL_TABLE)];
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['logo'] = $asUser['logo'];
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['nickname'] = $sNickName;
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['last_activity'] = array_key_exists($iUserId, $asLastMsg)?self::getDateFormat($asLastMsg[$iUserId], self::TIME_FORMAT):'';
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['ping'] = self::getDateFormat($asUser['led'], self::TIME_FORMAT);
- $asConnectedUsers[$sChanId][$sNickName.$iUserId]['afk'] = $asUser['afk'];
+ $asConnectedUsers[$iChanId][] = array
+ (
+ 'id_user' => $iUserId,
+ 'name' => self::getNameFormat($asUser['first_name'], $asUser['last_name']),
+ 'company' => self::getCompanyFormat($asUser['company']),
+ 'status' => $asUserOptions[$iUserId][self::OPT_STATUS][MySqlManager::getText(self::OPTVAL_TABLE)],
+ 'logo' => $asUser['logo'],
+ 'nickname' => $sNickName,
+ 'last_activity' => array_key_exists($iUserId, $asLastMsg)?self::getDateFormat($asLastMsg[$iUserId], self::TIME_FORMAT):'',
+ 'ping' => self::getDateFormat($asUser['led'], self::TIME_FORMAT),
+ 'afk' => $asUser['afk']
+ );
}
return $bJson?$this->jsonExport($asConnectedUsers):$asConnectedUsers;
@@ -2608,6 +2618,8 @@ class Databap extends PhpObject
public function resetPass($iUserId)
{
+ $bSuccess = false;
+ $sDesc = '';
if($iUserId>0)
{
$sUserIdCol = MySqlManager::getId(self::USER_TABLE, true);
@@ -2616,16 +2628,21 @@ class Databap extends PhpObject
'join'=> array(self::COMP_TABLE=>MySqlManager::getId(self::COMP_TABLE)),
'constraint'=>array($sUserIdCol=>$iUserId));
$asUsers = $this->oMySql->selectRows($asInfo);
- foreach($asUsers as $asUser)
+ if(empty($asUsers)) $sDesc = 'Aucun utilisateur trouvé (id='.$iUserId.')';
+ else
{
- $sToken = $this->oAuth->HashPassword(self::getLoginToken($asUser[MySqlManager::getText(self::COMP_TABLE)]));
- $iUserId = $asUser[MySqlManager::getId(self::USER_TABLE)];
- $this->oMySql->updateRow(self::USER_TABLE, $iUserId, array('pass'=>$sToken));
+ foreach($asUsers as $asUser)
+ {
+ $sToken = $this->oAuth->HashPassword(self::getLoginToken($asUser[MySqlManager::getText(self::COMP_TABLE)]));
+ $iUserId = $asUser[MySqlManager::getId(self::USER_TABLE)];
+ $this->oMySql->updateRow(self::USER_TABLE, $iUserId, array('pass'=>$sToken));
+ $bSuccess = true;
+ $sDesc = 'Mot de passe réinitialisé';
+ }
}
}
- else return 'KO';
-
- return 'OK';
+ else $sDesc = 'Aucun id reçu';
+ return $this->getJsonPostResult($bSuccess, $sDesc);
}
private function getExternalAccessPass($iUserId)
diff --git a/jquery/common.js b/jquery/common.js
index d8b1549..0e4e7cc 100644
--- a/jquery/common.js
+++ b/jquery/common.js
@@ -188,6 +188,19 @@ String.prototype.replaceAll = function(regex, text)
return this.replace(new RegExp(regex, 'g'), text);
};
+function sort(oList, sField)
+{
+ sField = sField || '';
+ var asArray = [];
+ for(var i in oList) asArray.push({id:i, value:oList[i]});
+ return asArray.sort(function(asItem1, asItem2)
+ {
+ var sValue1 = sField==''?asItem1.value:asItem1.value[sField];
+ var sValue2 = sField==''?asItem2.value:asItem2.value[sField];
+ return sValue1>sValue2?1:-1;
+ });
+};
+
function copyArray(asArray)
{
return asArray.slice(0); //trick to copy array
diff --git a/masks/chat.html b/masks/chat.html
index 66edd13..9c954e8 100755
--- a/masks/chat.html
+++ b/masks/chat.html
@@ -955,6 +955,7 @@ function refresh_users()
result,
function(sChankeyName, chan_info)
{
+ chan_info.sort(function(asUser1, asUser2){return asUser1.nickname>asUser2.nickname?1:-1;});
$.each
(
chan_info,
diff --git a/masks/options.html b/masks/options.html
index f7eb24b..477a568 100755
--- a/masks/options.html
+++ b/masks/options.html
@@ -33,6 +33,16 @@
+
+
+
Maj web crawler
+
+
@@ -86,11 +96,18 @@ function initAdminPanel(asAdmin)
$('#last_name').addDefaultValue('Nom');
addSelect($('#companies'), asAdmin.companies, 0, 'id');
$('#email').addDefaultValue('Email');
- $('#add_user').addButton('ok', 'Créer', function(){submitAdmin('add_user');}, 'submit_new_user', 'heavy inverse');
+ $('#form_add_user').addButton('ok', 'Créer', function(){submitAdmin('add_user', true);}, 'submit_new_user', 'heavy inverse');
//Add company
$('#company').addDefaultValue('Entreprise');
- $('#add_company').addButton('ok', 'Créer', function(){submitAdmin('add_company', true);}, 'submit_new_user', 'heavy inverse');
+ $('#form_add_company').addButton('ok', 'Créer', function(){submitAdmin('add_company', true);}, 'submit_new_user', 'heavy inverse');
+
+ //Add Crawler button
+ $('#form_update_web_crawler').addButton('refresh', 'Maj', function(){submitAdmin('update_web_crawler');}, 'submit_refresh', 'heavy inverse');
+
+ //Reset User Pass
+ addSelect($('#users'), asAdmin.users, 0, 'user');
+ $('#form_reset_pass').addButton('refresh', 'Reset', function(){submitAdmin('reset_pass');}, 'submit_reset_pass', 'heavy inverse');
//Show panel
$('#admin').show();
@@ -115,19 +132,17 @@ function submitAdmin(sAction, bReboot)
function addSelect($Box, asOptions, sSelectedValue, sSelectId, sSelectClass)
{
+ var asSortedOptions = sort(asOptions);
sSelectedValue = sSelectedValue || 0;
sSelectId = sSelectId || '';
sSelectClass = sSelectClass || '';
var $Select = $('