From cb7f4eaf654e1a53b7cca1cd44f24a45bb3f01af Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 28 Mar 2014 18:06:31 +0100 Subject: [PATCH] avanzamenti x componente selettore date (ma fa ancora abb schifio...) --- C2P/Scripts/jSteamware.js | 76 ++++--- C2P/WebUserControls/mod_OffersArchive.ascx | 2 +- C2P/WebUserControls/mod_selPeriodo.ascx | 187 +++++++++--------- C2P/WebUserControls/mod_selPeriodo.ascx.cs | 95 ++++++--- .../mod_selPeriodo.ascx.designer.cs | 22 +-- C2P/bin/C2P.dll | Bin 315392 -> 315392 bytes 6 files changed, 230 insertions(+), 152 deletions(-) diff --git a/C2P/Scripts/jSteamware.js b/C2P/Scripts/jSteamware.js index cc9f6f0..ec0f631 100644 --- a/C2P/Scripts/jSteamware.js +++ b/C2P/Scripts/jSteamware.js @@ -6,29 +6,59 @@ */ -// Gestione oggetti datepicker (globale) -function fixDatePicker() -{ - $.datepicker.setDefaults($.datepicker.regional["it"]); - $(".datepicker").datepicker({ - //showOtherMonths: true, - //selectOtherMonths: true, - showButtonPanel: true, - changeMonth: true, - changeYear: true, - dateFormat: "dd/mm/yy" - }); -} +//// Gestione oggetti datepicker (globale) +//function fixDatePicker() { +// $.datepicker.setDefaults($.datepicker.regional["it"]); +// $(".datepicker").datepicker({ +// //showOtherMonths: true, +// //selectOtherMonths: true, +// showButtonPanel: true, +// changeMonth: true, +// changeYear: true, +// dateFormat: "dd/mm/yy" +// }); +//} -// richiamo quando il DOM della pagina è ok... -$(function () { - fixDatePicker(); -}); +//// richiamo quando il DOM della pagina è ok... +//$(function () { +// fixDatePicker(); +//}); -// oggetto da legare all'update parziale ajax x sistemare script vari -var prm = Sys.WebForms.PageRequestManager.getInstance(); -prm.add_endRequest(function () { - // re-bind post eventi here - fixDatePicker(); -}); \ No newline at end of file +//// oggetto da legare all'update parziale ajax x sistemare script vari +//var prm = Sys.WebForms.PageRequestManager.getInstance(); +//prm.add_endRequest(function () { +// // re-bind your jQuery events here +// $(function () { +// fixDatePicker(); +// }); +//}); + +//$(function () { +// $.datepicker.setDefaults($.datepicker.regional["it"]); +// $(".datepicker").datepicker({ +// //showOtherMonths: true, +// //selectOtherMonths: true, +// showButtonPanel: true, +// changeMonth: true, +// changeYear: true, +// dateFormat: "dd/mm/yy" +// }); +//}); + +//// oggetto da legare all'update parziale ajax x sistemare btns & co +//var prm = Sys.WebForms.PageRequestManager.getInstance(); +//prm.add_endRequest(function () { +// // re-bind your jQuery events here +// $(function () { +// $.datepicker.setDefaults($.datepicker.regional["it"]); +// $(".datepicker").datepicker({ +// //showOtherMonths: true, +// //selectOtherMonths: true, +// showButtonPanel: true, +// changeMonth: true, +// changeYear: true, +// dateFormat: "dd/mm/yy" +// }); +// }); +//}); \ No newline at end of file diff --git a/C2P/WebUserControls/mod_OffersArchive.ascx b/C2P/WebUserControls/mod_OffersArchive.ascx index f39d1dc..d5819e8 100644 --- a/C2P/WebUserControls/mod_OffersArchive.ascx +++ b/C2P/WebUserControls/mod_OffersArchive.ascx @@ -9,7 +9,7 @@
- +
diff --git a/C2P/WebUserControls/mod_selPeriodo.ascx b/C2P/WebUserControls/mod_selPeriodo.ascx index afa2a2a..65cc091 100644 --- a/C2P/WebUserControls/mod_selPeriodo.ascx +++ b/C2P/WebUserControls/mod_selPeriodo.ascx @@ -1,7 +1,11 @@ <%@ Control Language="C#" AutoEventWireup="true" CodeBehind="mod_selPeriodo.ascx.cs" Inherits="C2P.WebUserControls.mod_selPeriodo" %> - -<%----%> -
- -    - - - 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - + +
+
+ + <%: traduci("Date") %> + + + <%-- + 00 + 01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + --%> +
+
+ + <%: traduci("Date") %> + + <%-- → --%> + + <%-- + 00 + 01 + 02 + 03 + 04 + 05 + 06 + 07 + 08 + 09 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + --%> + + + selezione + oggi + ieri + questa sett. + ultimi 7gg + questo mese + ultimi 30gg + 1 anno + + -  →  - - - 00 - 01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - -    - - selezione - oggi - ieri - questa settimana - ultimi 7gg - questo mese - ultimi 30gg - 1 anno - -     - -     - -    - + + + + +
diff --git a/C2P/WebUserControls/mod_selPeriodo.ascx.cs b/C2P/WebUserControls/mod_selPeriodo.ascx.cs index f160d35..c29a0d8 100644 --- a/C2P/WebUserControls/mod_selPeriodo.ascx.cs +++ b/C2P/WebUserControls/mod_selPeriodo.ascx.cs @@ -11,10 +11,21 @@ namespace C2P.WebUserControls { public partial class mod_selPeriodo : System.Web.UI.UserControl { - #region area protected - protected intervalloDate _intervallo; - + /// + /// caricamento pagina + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!Page.IsPostBack) + { + txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati"; + txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati"; + lblDurataMin.Text = "Visualizza eventi con durata superiore a"; + } + } /// /// avvio componente /// @@ -22,6 +33,9 @@ namespace C2P.WebUserControls protected override void OnInit(EventArgs e) { base.OnInit(e); + txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati"; + txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati"; + lblDurataMin.Text = "Visualizza eventi con durata superiore a"; setIntervallo(); setDurataMin(); } @@ -63,10 +77,12 @@ namespace C2P.WebUserControls datario _datario = new datario(); switch (ddlSelPeriodo.SelectedValue) { - case "oggi": + case "1": // selezione libera + break; + case "2": // oggi _intervallo = _datario.giornata(DateTime.Now); break; - case "ieri": + case "3": // ieri _intervallo = _datario.giornata(DateTime.Now.AddDays(-1)); break; case "ultimi 7gg": @@ -93,6 +109,10 @@ namespace C2P.WebUserControls aggiornaDateMostrate(false); // mostro btn update btnUpdate.Visible = true; + if (autoUpdate) + { + forceUpdate(); + } } } /// @@ -118,8 +138,9 @@ namespace C2P.WebUserControls _intervallo = intervalloAnalisi; } txtInizio.Text = _intervallo.inizio.ToShortDateString(); - ddlOraInizio.SelectedValue = _intervallo.inizio.Hour.ToString("00"); txtFine.Text = _intervallo.fine.ToShortDateString(); +#if false + ddlOraInizio.SelectedValue = _intervallo.inizio.Hour.ToString("00"); ddlOraFine.SelectedValue = _intervallo.fine.Hour.ToString("00"); if (mostraSelOra) { @@ -131,6 +152,8 @@ namespace C2P.WebUserControls ddlOraInizio.Visible = false; ddlOraFine.Visible = false; } + +#endif } /// /// imposta intervallo da sessione o di default @@ -171,27 +194,20 @@ namespace C2P.WebUserControls txtDurataMin.Text = _durataMin.ToString(); } /// - /// caricamento pagina + /// update periodo /// - /// - /// - protected void Page_Load(object sender, EventArgs e) - { - lblPeriodo.Text = "Periodo di riferimento: "; - txtInizio.ToolTip = "inizio periodo di riferimento per i dati mostrati"; - txtFine.ToolTip = "fine periodo di riferimento per i dati mostrati"; - lblDurataMin.Text = "Visualizza eventi con durata superiore a"; - } - - private void aggiornaPeriodo() { _intervallo = new intervalloDate(); // calcolo tempi arrotondati +#if false int oraInizio = Convert.ToInt32(ddlOraInizio.SelectedValue); int oraFine = Convert.ToInt32(ddlOraFine.SelectedValue); _intervallo.inizio = Convert.ToDateTime(txtInizio.Text).AddHours(oraInizio); - _intervallo.fine = Convert.ToDateTime(txtFine.Text).AddHours(oraFine); + _intervallo.fine = Convert.ToDateTime(txtFine.Text).AddHours(oraFine); +#endif + _intervallo.inizio = Convert.ToDateTime(txtInizio.Text); + _intervallo.fine = Convert.ToDateTime(txtFine.Text); verificaCoerenzaDate(); int _durataMin; _durataMin = Convert.ToInt32(txtDurataMin.Text); @@ -223,11 +239,22 @@ namespace C2P.WebUserControls /// /// protected void txtInizio_TextChanged(object sender, EventArgs e) + { + procDateMod(); + } + /// + /// verifica la modifica delle date.. + /// + private void procDateMod() { // imposto il selettore a discesa... setPeriodoFree(); // mostro btn update btnUpdate.Visible = true; + if (autoUpdate) + { + forceUpdate(); + } } /// /// evento cambio testo data fine @@ -236,10 +263,7 @@ namespace C2P.WebUserControls /// protected void txtFine_TextChanged(object sender, EventArgs e) { - // imposto il selettore a discesa... - setPeriodoFree(); - // mostro btn update - btnUpdate.Visible = true; + procDateMod(); } /// /// in questo caso faccio udpate periodo mostrato @@ -247,6 +271,13 @@ namespace C2P.WebUserControls /// /// protected void btnUpdate_Click(object sender, EventArgs e) + { + forceUpdate(); + } + /// + /// forza update + /// + private void forceUpdate() { aggiornaPeriodo(); // nascondo btn update @@ -265,10 +296,6 @@ namespace C2P.WebUserControls } } - #endregion - - #region area public - public intervalloDate intervalloAnalisi { get @@ -300,6 +327,19 @@ namespace C2P.WebUserControls { ddlSelPeriodo.SelectedIndex = 0; } + /// + /// indica se il controllo debba fare update in automatico o attendere pressione button update da utente + /// + public bool autoUpdate { get; set; } + /// + /// wrapper traduzione + /// + /// + /// + public string traduci(object lemma) + { + return user_std.UtSn.Traduci(lemma.ToString()); + } #region gestione eventi @@ -308,6 +348,5 @@ namespace C2P.WebUserControls #endregion - #endregion } } \ No newline at end of file diff --git a/C2P/WebUserControls/mod_selPeriodo.ascx.designer.cs b/C2P/WebUserControls/mod_selPeriodo.ascx.designer.cs index efe24cb..ea6b1f5 100644 --- a/C2P/WebUserControls/mod_selPeriodo.ascx.designer.cs +++ b/C2P/WebUserControls/mod_selPeriodo.ascx.designer.cs @@ -12,6 +12,15 @@ namespace C2P.WebUserControls { public partial class mod_selPeriodo { + /// + /// BundleReference1 control. + /// + /// + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// + protected global::Microsoft.AspNet.Web.Optimization.WebForms.BundleReference BundleReference1; + /// /// lblPeriodo control. /// @@ -31,13 +40,13 @@ namespace C2P.WebUserControls { protected global::System.Web.UI.WebControls.TextBox txtInizio; /// - /// ddlOraInizio control. + /// Label1 control. /// /// /// Auto-generated field. /// To modify move field declaration from designer file to code-behind file. /// - protected global::System.Web.UI.WebControls.DropDownList ddlOraInizio; + protected global::System.Web.UI.WebControls.Label Label1; /// /// txtFine control. @@ -48,15 +57,6 @@ namespace C2P.WebUserControls { /// protected global::System.Web.UI.WebControls.TextBox txtFine; - /// - /// ddlOraFine control. - /// - /// - /// Auto-generated field. - /// To modify move field declaration from designer file to code-behind file. - /// - protected global::System.Web.UI.WebControls.DropDownList ddlOraFine; - /// /// ddlSelPeriodo control. /// diff --git a/C2P/bin/C2P.dll b/C2P/bin/C2P.dll index 9caa40172eab89586007a398eb6d28845e109d55..e929d9b1403a108a9efd06e825936d475f8dfa2d 100644 GIT binary patch delta 7279 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 M-}z|0deg-J1-Md$8~^|S delta 7258 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