From 71c26d81be0b50e8e93c14e7d18f3e2b4df72c83 Mon Sep 17 00:00:00 2001 From: Dany De Bontridder Date: Tue, 30 Jul 2019 22:27:55 +0200 Subject: [PATCH] #0001729: Preference : ne plus recharger la page --- html/ajax_misc.php | 12 +++-- html/do.php | 36 ------------- html/js/scripts.js | 28 +++++++++- html/user_login.php | 23 -------- include/ajax/ajax_preference.php | 93 ++++++++++++++++++++++++++------ include/lib/ac_common.php | 2 +- 6 files changed, 115 insertions(+), 79 deletions(-) diff --git a/html/ajax_misc.php b/html/ajax_misc.php index 39371f252..928713e65 100644 --- a/html/ajax_misc.php +++ b/html/ajax_misc.php @@ -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; diff --git a/html/do.php b/html/do.php index 715dcf87f..fa90b492c 100644 --- a/html/do.php +++ b/html/do.php @@ -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); diff --git a/html/js/scripts.js b/html/js/scripts.js index ec64b844a..140305d9a 100644 --- a/html/js/scripts.js +++ b/html/js/scripts.js @@ -3542,4 +3542,30 @@ function toggle_lock(p_domid) } -} \ No newline at end of file +} + +/*** + * 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(); + +} diff --git a/html/user_login.php b/html/user_login.php index d1f037656..cd40014b5 100644 --- a/html/user_login.php +++ b/html/user_login.php @@ -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 '
'; /** * diff --git a/include/ajax/ajax_preference.php b/include/ajax/ajax_preference.php index 07f62bf5e..02f0028d3 100644 --- a/include/ajax/ajax_preference.php +++ b/include/ajax/ajax_preference.php @@ -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 '
'; -echo '

'; -echo _("Si vous validez, la page sera rechargée et vous pourriez perdre ce que vous faisiez"); -echo '

'; -//---------------------------------------------------------------------- -// +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 '
'; + echo '

'; + echo _("Après validation, recharger si vous changez la langue"); + echo '

'; + //---------------------------------------------------------------------- + // ?>
-
+
@@ -272,3 +283,55 @@ if (isset($_REQUEST['gDossier']) && $_REQUEST['gDossier']<>0) echo ""; ?> +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]); + +} \ No newline at end of file diff --git a/include/lib/ac_common.php b/include/lib/ac_common.php index 86d40f44f..0b46cf6bb 100644 --- a/include/lib/ac_common.php +++ b/include/lib/ac_common.php @@ -337,7 +337,7 @@ function html_page_start($p_theme="", $p_script="", $p_script2="") $title - + " . $p_script2 . " ";