240 lines
7.8 KiB
HTML
Executable File
240 lines
7.8 KiB
HTML
Executable File
<div id="options">
|
|
<div id="options_container">
|
|
<div class="options_box round">
|
|
<h2><i class="fa fa-c-param fa-inline"></i>Options</h2>
|
|
<form id="options_form" name="options_form">
|
|
<div id="options_input">
|
|
<p class="loading">Chargement en cours...</p>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="options_box round">
|
|
<h2><i class="fa fa-c-lock fa-inline"></i>Mot de passe</h2>
|
|
<div id="pass_input"></div>
|
|
<form id="pass_form" name="pass_form">
|
|
<input type="hidden" id="old_auth_token" name="old_auth_token" />
|
|
<input type="hidden" id="new_auth_token" name="new_auth_token" />
|
|
</form>
|
|
</div>
|
|
<div class="options_box round hide" id="admin">
|
|
<h2><i class="fa fa-c-changelog fa-inline"></i>Boite magique</h2>
|
|
<div id="add_user" class="magic_box tiny_round">
|
|
<h3><i class="fa fa-inline fa-c-profile"></i>Ajouter un user</h3>
|
|
<form id="form_add_user" name="form_add_user">
|
|
<p><input type="text" class="tiny_round" id="first_name" name="first_name" /></p>
|
|
<p><input type="text" class="tiny_round" id="last_name" name="last_name" /></p>
|
|
<p><input type="text" class="tiny_round" id="email" name="email" /></p>
|
|
<p id="companies"></p>
|
|
</form>
|
|
</div>
|
|
<div id="add_company" class="magic_box tiny_round">
|
|
<h3><i class="fa fa-inline fa-c-company"></i>Ajouter une entreprise</h3>
|
|
<form id="form_add_company" name="form_add_company">
|
|
<p><input type="text" class="tiny_round" id="company" name="company" /></p>
|
|
</form>
|
|
</div>
|
|
<div id="reset_pass" class="magic_box tiny_round">
|
|
<h3><i class="fa fa-inline fa-c-unlock"></i>Réinitialiser mdp</h3>
|
|
<form id="form_reset_pass" name="form_reset_pass">
|
|
<p id="users"></p>
|
|
</form>
|
|
</div>
|
|
<div id="update_web_crawler" class="magic_box tiny_round">
|
|
<h3><i class="fa fa-inline fa-c-share"></i>Maj web crawler</h3>
|
|
<form id="form_update_web_crawler" name="form_update_web_crawler"></form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
databap.pageInit = function()
|
|
{
|
|
self.initScrollBar('#main', '#options', '#options_container');
|
|
|
|
//Display password form
|
|
addOption(1, {option_id:'old_pass', type:'P', option_name:'Mdp Actuel', user_value:''}, $('#pass_input'));
|
|
addOption(2, {option_id:'new_pass', type:'P', option_name:'Nouveau mdp', user_value:''}, $('#pass_input'));
|
|
addOption(3, {option_id:'new_pass_conf', type:'P', option_name:'Confirmation nouveau mdp', user_value:''}, $('#pass_input'));
|
|
$('#pass_form').addButton('ok', 'Valider', validate_pass, 'validate_pass', 'heavy inverse');
|
|
|
|
databap.getInfo
|
|
(
|
|
'get_options',
|
|
function(oData)
|
|
{
|
|
//remove default text
|
|
$('#options_input').find('.loading').hide().remove();
|
|
|
|
//Display options form
|
|
$.each(oData.options, addOption);
|
|
|
|
//Submit button
|
|
$('#options_form').addButton('ok', 'Valider', validate_options, 'validate_options', 'heavy inverse');
|
|
|
|
//Admin panel
|
|
if(!$.isEmptyObject(oData.admin)) initAdminPanel(oData.admin);
|
|
|
|
//Init's end
|
|
databap.setInitEnd(true);
|
|
},
|
|
{},
|
|
'json',
|
|
function(){},
|
|
true
|
|
);
|
|
};
|
|
|
|
databap.onResize = function()
|
|
{
|
|
self.setScrollBarSize('maximize');
|
|
};
|
|
|
|
function initAdminPanel(asAdmin)
|
|
{
|
|
//Add user
|
|
$('#first_name').addDefaultValue('Prénom');
|
|
$('#last_name').addDefaultValue('Nom');
|
|
addSelect($('#companies'), asAdmin.companies, 0, 'id');
|
|
$('#email').addDefaultValue('Email');
|
|
$('#form_add_user').addButton('ok', 'Créer', function(){submitAdmin('add_user', true);}, 'submit_new_user', 'heavy inverse');
|
|
|
|
//Add company
|
|
$('#company').addDefaultValue('Entreprise');
|
|
$('#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();
|
|
}
|
|
|
|
function submitAdmin(sAction, bReboot)
|
|
{
|
|
bReboot = bReboot || false;
|
|
databap.saveForm
|
|
(
|
|
sAction,
|
|
databap.getMainElem('#form_'+sAction),
|
|
function(oData)
|
|
{
|
|
databap.feedback(oData.result, oData.desc);
|
|
if(oData.result==self.consts.success && bReboot) location.reload();
|
|
},
|
|
true,
|
|
'json'
|
|
);
|
|
}
|
|
|
|
function addSelect($Box, asOptions, sSelectedValue, sSelectId, sSelectClass)
|
|
{
|
|
var asSortedOptions = sort(asOptions);
|
|
sSelectedValue = sSelectedValue || 0;
|
|
sSelectId = sSelectId || '';
|
|
sSelectClass = sSelectClass || '';
|
|
var $Select = $('<select>', {id:sSelectId, name:sSelectId, 'class':sSelectClass}).appendTo($Box);
|
|
asSortedOptions.map(function(asValue)
|
|
{
|
|
$Select
|
|
.append($('<option>', {value:asValue.id})
|
|
.prop('selected', (asValue.id==sSelectedValue))
|
|
.text(asValue.value));
|
|
}
|
|
);
|
|
}
|
|
|
|
function addOption(iArrayId, optInfo, $Box)
|
|
{
|
|
var optNameId = optInfo.option_id;
|
|
$Box = $Box || $('#options_input');
|
|
var selected = '';
|
|
var $Option = $('<div>', {'class':'option_line'}).append($('<p>').text(optInfo.option_name));
|
|
switch(optInfo.type)
|
|
{
|
|
case databap.consts.opt_type_text:
|
|
$Option.append($('<input>', {type:'text', id:optNameId, name:optNameId, value:optInfo.user_value, 'class':'round'}));
|
|
break;
|
|
case databap.consts.opt_type_color:
|
|
$Option
|
|
.addButton('delete', 'Remettre la valeur par défaut', function($This){$This.next().attr('type', 'text').val('');}, '', 'clear no_bg no_text')
|
|
.append($('<input>', {type:'color', id:optNameId, name:optNameId, value:optInfo.user_value}));
|
|
break;
|
|
case databap.consts.opt_type_pass:
|
|
$Option.append($('<input>', {type:'password', id:optNameId, name:optNameId, value:optInfo.user_value, 'class':'round'}));
|
|
break;
|
|
case databap.consts.opt_type_checkbox:
|
|
addSelect($Option, optInfo.select, optInfo.user_value_id, optNameId, 'hide');
|
|
$Option.append(
|
|
$('<span>', {'class':'checkbox clickable'})
|
|
.data('option_id', optNameId)
|
|
.data('on', optInfo.user_value)
|
|
.data('options', optInfo.select_inv)
|
|
.append($('<i>', {'class':'fa fa-c-'+optInfo.user_value}))
|
|
.click(function()
|
|
{
|
|
$This = $(this);
|
|
var sNewValue = ($This.data('on')=='1')?'0':'1';
|
|
$This.data('on', sNewValue);
|
|
$('#'+$This.data('option_id')).val($This.data('options')[sNewValue]);
|
|
$This.find('.fa')
|
|
.removeClass('fa-c-0 fa-c-1')
|
|
.addClass('fa-c-'+sNewValue);
|
|
})
|
|
);
|
|
break;
|
|
case databap.consts.opt_type_select:
|
|
addSelect($Option, optInfo.select, optInfo.user_value_id, optNameId, 'round');
|
|
break;
|
|
}
|
|
$Option.appendTo($Box).slideDown('fast');
|
|
}
|
|
|
|
function validate_options()
|
|
{
|
|
databap.saveForm
|
|
(
|
|
'set_options',
|
|
databap.getMainElem('#options_form'),
|
|
function(result)
|
|
{
|
|
self.addBufferIcon();
|
|
location.reload();
|
|
},
|
|
true
|
|
);
|
|
}
|
|
|
|
function validate_pass()
|
|
{
|
|
sButtonId = '#validate_pass';
|
|
var sOldPass = $.trim($('#old_pass').val());
|
|
var sNewPass = $.trim($('#new_pass').val());
|
|
|
|
if(sOldPass=='') databap.addErrorBefore('Mdp actuel manquant', sButtonId);
|
|
else if(sNewPass=='') databap.addErrorBefore('Mdp vide non autorisé', sButtonId);
|
|
else if(sNewPass!=$('#new_pass').val()) databap.addErrorBefore('Pas de blanc dans le mdp', sButtonId);
|
|
else if(sNewPass!=$('#new_pass_conf').val()) databap.addErrorBefore('Les nouveaux mdp ne coïncident pas', sButtonId);
|
|
else if(sNewPass==sOldPass) databap.addErrorBefore('Le nouveau mdp est le même que l\'actuel', sButtonId);
|
|
else
|
|
{
|
|
$('#old_auth_token').val(getLoginToken(sOldPass));
|
|
$('#new_auth_token').val(getLoginToken(sNewPass));
|
|
databap.saveForm
|
|
(
|
|
'set_pass',
|
|
databap.getMainElem('#pass_form'),
|
|
function(data)
|
|
{
|
|
if(data.result==databap.consts.success) databap.addSuccessBefore(data.desc, sButtonId);
|
|
else databap.addErrorBefore(data.desc, sButtonId);
|
|
},
|
|
true,
|
|
'json'
|
|
);
|
|
}
|
|
}
|
|
</script> |