Files
databap/masks/options.html
2015-03-04 16:13:23 +01:00

137 lines
3.9 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>
</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(options)
{
//remove default text
$('#options_input').find('.loading').hide().remove();
//Display options form
$.each(options, addOption);
//Submit button
$('#options_form').addButton('ok', 'Valider', validate_options, 'validate_options', 'heavy inverse');
//Init's end
databap.setInitEnd(true);
},
{},
'json',
function(){},
true
);
};
databap.onResize = function()
{
self.setScrollBarSize('maximize');
};
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_pass:
$Option.append($('<input>', {type:'password', id:optNameId, name:optNameId, value:optInfo.user_value, 'class':'round'}));
break;
case databap.consts.opt_type_select:
var $Select = $('<select>', {id:optNameId, name:optNameId, 'class':'round'}).appendTo($Option);
$.each
(
optInfo.select,
function(selectId, selectName)
{
$Select
.append($('<option>', {value:selectId})
.prop('selected', (selectId==optInfo.user_value_id))
.text(selectName));
}
);
break;
}
$Option.appendTo($Box).slideDown('fast');
}
function validate_options()
{
databap.saveForm
(
'set_options',
databap.getMainElem('#options_form'),
function(result)
{
databap.addSuccessIcon();
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>