#0001729: Preference : ne plus recharger la page

This commit is contained in:
Dany De Bontridder 2019-07-30 22:27:55 +02:00
parent 875071214e
commit 71c26d81be
6 changed files with 115 additions and 79 deletions

View file

@ -51,7 +51,7 @@ $http=new HttpInput();
mb_internal_encoding("UTF-8");
$var = array('gDossier', 'op');
$var = array( 'op');
$cont = 0;
/* check if mandatory parameters are given */
foreach ($var as $v)
@ -62,8 +62,14 @@ foreach ($var as $v)
$cont = 1;
}
}
if ($cont != 0)
exit();
// If not connected to a folder
if ( ! isset($_REQUEST['gDossier'])) {
$gDossier=0;
}
if ($cont != 0) exit();
extract($_REQUEST, EXTR_SKIP );
if ( isset($div)) ajax_disconnected($div);
global $g_user, $cn, $g_parameter;

View file

@ -68,42 +68,6 @@ if ( ! $cn->exist_table('version')) {
return;
}
/*
* Set the user preference
*/
if ( isset ($_POST['set_preference'])) {
//// Save value
$style_user=$http->post("style_user","string","Classique");
$lang=$http->post("lang","string","fr_FR.utf8");
$p_size=$http->post("p_size","number",50);
$pass_1=$http->post("pass_1","string","");
$pass_2=$http->post("pass_2","string","");
$p_email=$http->post("p_email","string","");
$minirap=$http->post("minirap","number",0);
$period=$http->post("period","number");
$csv_fieldsep=$http->post("csv_fieldsep","number");
$csv_decimal=$http->post("csv_decimal","number");
$csv_encoding=$http->post("csv_encoding");
if (strlen(trim($pass_1)) != 0 && strlen(trim($pass_2)) != 0)
{
$g_user->save_password($pass_1,$pass_2);
}
$g_user->set_periode($period);
$g_user->save_global_preference('THEME', $style_user);
$g_user->save_global_preference('LANG', $lang);
$g_user->save_global_preference('PAGESIZE', $p_size);
$g_user->save_global_preference('csv_fieldsep', $csv_fieldsep);
$g_user->save_global_preference('csv_decimal', $csv_decimal);
$g_user->save_global_preference('csv_encoding', $csv_encoding);
$g_user->set_mini_report($minirap);
$_SESSION['g_theme']=$style_user;
$_SESSION['g_pagesize']=$p_size;
$_SESSION['g_lang']=$lang;
$g_user->save_email($p_email);
}
$style_user=$http->post("style_user","string",$_SESSION['g_theme']);
html_page_start($style_user);

View file

@ -3542,4 +3542,30 @@ function toggle_lock(p_domid)
}
}
}
/***
* Update Preference, applied the new CSS
*/
function updatePreference()
{
try {
waiting_box();
var param=$('preference_frm').serialize()+"&op=preference&action=save";
new Ajax.Request("ajax_misc.php",{
method:"post",
parameters:param,
onSuccess:function (req) {
var style=req.responseText.evalJSON();
$('pagestyle').setAttribute('href',style.style);
removeDiv('preference_div');
}
});
} catch (e)
{
smoke.alert(content[48] + e.message);
}
remove_waiting_box();
}

View file

@ -114,29 +114,6 @@ include_once NOALYSS_INCLUDE."/lib/user_menu.php";
$priv=($User->admin==1)?_("Administrateur"):_("Utilisateur");
load_all_script();
if ( isset ($_POST['set_preference'])) {
//// Save value
$pass_1=$hi->post("pass_1","string", "");
$pass_2=$hi->post("pass_2","string", "");
$style_user=$hi->post("style_user","string", "");
$lang=$hi->post("lang", "string","");
$p_email=$hi->post("email","string", "");
if (strlen(trim($pass_1)) != 0 && strlen(trim($pass_2)) != 0)
{
$User->save_password($pass_1,$pass_2);
}
if (trim($style_user) != "") {
$User->save_global_preference('THEME',$style_user);
$_SESSION['g_theme']=$style_user;
}
if (trim($lang) != "") {
$User->save_global_preference('LANG', $lang);
$_SESSION['g_lang']=$lang;
}
$User->load();
$User->save_email($p_email);
}
echo '<div class="welcome"> ';
/**
*

View file

@ -28,26 +28,24 @@ require_once NOALYSS_INCLUDE.'/lib/iperiod.class.php';
require_once NOALYSS_INCLUDE.'/class/acc_report.class.php';
require_once NOALYSS_INCLUDE.'/class/periode.class.php';
require_once NOALYSS_INCLUDE.'/class/exercice.class.php';
echo HtmlInput::title_box(_('Préférence'), 'preference_div');
echo '<DIV class="content">';
echo '<p class="notice">';
echo _("Si vous validez, la page sera rechargée et vous pourriez perdre ce que vous faisiez");
echo '</p>';
//----------------------------------------------------------------------
//
require_once NOALYSS_INCLUDE.'/lib/http_input.class.php';
global $g_user;
$g_user=new User($cn);
$inside_dossier = false;
$http=new HttpInput();
$action=$http->post("action","string","display_form");
if (isset($_REQUEST['gDossier']) && $_REQUEST['gDossier']<>0)
if (isset($_REQUEST['gDossier']) && $http->request("gDossier","number",0) != 0 )
{
$g_user->load_global_pref();
$msg = "";
$cn =Dossier::connect();
$g_user->cn = $cn;
$inside_dossier = true;
$local_pref=$g_user->get_preference();
$g_user->load_global_pref();
$msg = "";
$cn =Dossier::connect();
$g_user->cn = $cn;
$inside_dossier = true;
$local_pref=$g_user->get_preference();
}
//////////////////////////////////////////////////////////////////////////
// Theme
@ -62,11 +60,24 @@ if (isset($_REQUEST['gDossier']) && $_REQUEST['gDossier']<>0)
from theme
order by the_name");
$style->selected =$_SESSION['g_theme'];
//----------------------------------------------------------------------------------------------
// Display the form
//----------------------------------------------------------------------------------------------
if ( $action == 'display_form' )
{
echo HtmlInput::title_box(_('Préférence'), 'preference_div');
echo '<DIV class="content">';
echo '<p class="notice">';
echo _("Après validation, recharger si vous changez la langue");
echo '</p>';
//----------------------------------------------------------------------
//
?>
<div class="content" >
<FORM METHOD="POST">
<FORM METHOD="POST" onsubmit="updatePreference();return false;" id="preference_frm">
<fieldset style="margin: 1%"><legend><?php echo _('Options Générales')?></legend>
<table>
<tr>
@ -272,3 +283,55 @@ if (isset($_REQUEST['gDossier']) && $_REQUEST['gDossier']<>0)
echo "</DIV>";
?>
<?php
}
//---------------------------------------------------------------------------------------------------------------------
// Save the form
//---------------------------------------------------------------------------------------------------------------------
if ($action == 'save')
{
//// Save value
$style_user=$http->post("style_user","string","Classique");
$lang=$http->post("lang","string","fr_FR.utf8");
$p_size=$http->post("p_size","number",50);
$pass_1=$http->post("pass_1","string","");
$pass_2=$http->post("pass_2","string","");
$p_email=$http->post("p_email","string","");
$csv_fieldsep=$http->post("csv_fieldsep","number");
$csv_decimal=$http->post("csv_decimal","number");
$csv_encoding=$http->post("csv_encoding");
if (strlen(trim($pass_1)) != 0 && strlen(trim($pass_2)) != 0)
{
$g_user->save_password($pass_1,$pass_2);
}
if ( $inside_dossier)
{
$minirap=$http->post("minirap","number","0");
$period=$http->post("period","number");
$g_user->set_periode($period);
$g_user->set_mini_report($minirap);
}
$g_user->save_global_preference('THEME', $style_user);
$g_user->save_global_preference('LANG', $lang);
$g_user->save_global_preference('PAGESIZE', $p_size);
$g_user->save_global_preference('csv_fieldsep', $csv_fieldsep);
$g_user->save_global_preference('csv_decimal', $csv_decimal);
$g_user->save_global_preference('csv_encoding', $csv_encoding);
$g_user->save_email($p_email);
$_SESSION['g_theme']=$style_user;
$_SESSION['g_pagesize']=$p_size;
$_SESSION['g_lang']=$lang;
// find the right CSS theme
$style= $repo->get_value("select the_filestyle from theme
where the_name=$1" ,[$style_user]);
if ($style == "")
{
$style = "style-classic7.css";
}
json_response(["style"=>$style]);
}

View file

@ -337,7 +337,7 @@ function html_page_start($p_theme="", $p_script="", $p_script2="")
<TITLE>$title</TITLE>
<link rel=\"icon\" type=\"image/ico\" href=\"favicon.ico\" />
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">
<LINK REL=\"stylesheet\" type=\"text/css\" href=\"".$style."?version=".SVNINFO."\" media=\"screen\"/>
<LINK id=\"pagestyle\" REL=\"stylesheet\" type=\"text/css\" href=\"".$style."?version=".SVNINFO."\" media=\"screen\"/>
<link rel=\"stylesheet\" type=\"text/css\" href=\"./style-print.css?version=".SVNINFO."\" media=\"print\"/>" .
$p_script2 . "
";