From 27835064bd69076a2aa70cd78d77f96b34d72084 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Tue, 21 Mar 2017 14:36:22 +0100 Subject: [PATCH] Version 16.159 --- icon/backward64x64.png | Bin 745 -> 0 bytes icon/forward64x64.png | Bin 699 -> 0 bytes swad_agenda.c | 462 +++++++++++++++++++++++------------------ swad_agenda.h | 36 +++- swad_changelog.h | 7 +- swad_global.c | 11 +- swad_global.h | 6 +- swad_pagination.c | 108 +++++++--- swad_text.c | 12 +- 9 files changed, 386 insertions(+), 256 deletions(-) delete mode 100644 icon/backward64x64.png delete mode 100644 icon/forward64x64.png diff --git a/icon/backward64x64.png b/icon/backward64x64.png deleted file mode 100644 index c71d3625748d60ba2de484611840c04d77908193..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 745 zcmVnY? z_A#Ez+fW@oxT!#Zj|2cB3<$L$!y{!Q5-0vYqPfjChc>@F7xzEs>hH5|` zZqLzsvD*Ae#3^4QfatwmK62>Z8wA*R|3c0qZutTRY`pKudB|&iVF&ngA2a6OD1bTl z0)L(NwER*5T<@Wgzw?dI7BKJ-TMX~Bn1puC&k?YT5gxtA3FCRyd8ba`5G$T^pZvOJ zJ+FATsjMZ|%GH!A;SUfJ+3Jy~bP47+<}SoP5(1%rQ=J ziZjl4*f^DEl?h1TBT17Z4C$XYOurm?Lz|B0zL3BNkQ~suAOHjat`3M@&_)3Z2{@** zFhT%ebZb3z-B43+BzkV_{(gnFY$~Be5V{St#AT1QxU_ z3x?%iKMTgwr*0Mq$6vjBfpq?suppRw!S*MbLKZZW1#KyyJ{A~Ppn6zf-NEWOBbb*! z=e-~t1-P-G-8-<%f`;%oEC`6IuH8O>E!p|h9@Fvz0I%c@IiDmU06_o4BETjqzlkQA bxVQKX*G(~zu-=PR00000NkvXXu0mjfx`10U diff --git a/icon/forward64x64.png b/icon/forward64x64.png deleted file mode 100644 index 21d00a028c9727c7e0798ce92946f60bd55694ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 699 zcmV;s0!00ZP)TH z<%9|d2_*=ja75zH3&e=!DJlUso*{w!p~Hc+!bzQ-S#K(kJQv5xm-T1=z8#MOG}Tm7 z|5CliO#nb9)IVJuvzR6b(YbP62GAZx0=dAhwYej zdaVI3+cxX;dIKJ|TssS91N&U1H^L<=*tR(=JCz2mu`UZ^3d>HVfe~GHUoZ+H8_9xE zwXGGlZLZfxRt%g%*B8cAuaB%4NR(_%?JO8?V_D1A)Xst~150dyIqLP1Py-9LB4nN{ zgdjL)d;7tSUr_di=i zZqZAlHKHkw+_5ETXldFy8Xl)qT<~2hjJ+FJI2N-%CHS6AJeIPYPvUfnY{5_UCgZ zhqCw0ghKWd%zpjrcmq9OSSKCJb|U{H;!DS}o!r?2Qba1t>Ap_CyC3V?c!OI2"); - for (PstFut = Agd_PAST_EVENTS; + for (PstFut = Agd_PAST___EVENTS; PstFut <= Agd_FUTURE_EVENTS; PstFut++) { fprintf (Gbl.F.Out,"
", - (Gbl.Agenda.PastFutureEvents & (1 << PstFut)) ? "PREF_ON" : - "PREF_OFF"); + (Gbl.Agenda.Past__FutureEvents & (1 << PstFut)) ? "PREF_ON" : + "PREF_OFF"); Act_FormStart (ActSeeMyAgd); - Agd_PutHiddenParamsPastFutureEvents (1 << PstFut); - Agd_PutHiddenParamsPrivatePublicEvents (Gbl.Agenda.PrivatePublicEvents); - Agd_PutHiddenParamsHiddenVisibleEvents (Gbl.Agenda.HiddenVisibleEvents); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents ^ (1 << PstFut), // Toggle + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Gbl.Pag.CurrentPage); fprintf (Gbl.F.Out,"", Gbl.Prefs.IconsURL, Image[PstFut], - Txt_AGENDA_PAST_FUTURE_EVENTS[PstFut], - Txt_AGENDA_PAST_FUTURE_EVENTS[PstFut]); + Txt_AGENDA_PAST___FUTURE_EVENTS[PstFut], + Txt_AGENDA_PAST___FUTURE_EVENTS[PstFut]); Act_FormEnd (); fprintf (Gbl.F.Out,"
"); } @@ -200,36 +215,39 @@ static void Agd_ShowFormToSelPastFutureEvents (void) /************** Show form to select private / public events ******************/ /*****************************************************************************/ -static void Agd_ShowFormToSelPrivatePublicEvents (void) +static void Agd_ShowFormToSelPrivatPublicEvents (void) { - extern const char *Txt_AGENDA_PRIVATE_PUBLIC_EVENTS[2]; - Agd_PastFutureEvents_t PrvPub; + extern const char *Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[2]; + Agd_PrivatPublicEvents_t PrvPub; static const char *Image[2] = { - "lock-on64x64.png", // Agd_PRIVATE_EVENTS + "lock-on64x64.png", // Agd_PRIVAT_EVENTS "unlock-on64x64.png", // Agd_PUBLIC_EVENTS }; fprintf (Gbl.F.Out,"
"); - for (PrvPub = Agd_PAST_EVENTS; - PrvPub <= Agd_FUTURE_EVENTS; + for (PrvPub = Agd_PRIVAT_EVENTS; + PrvPub <= Agd_PUBLIC_EVENTS; PrvPub++) { fprintf (Gbl.F.Out,"
", - (Gbl.Agenda.PrivatePublicEvents & (1 << PrvPub)) ? "PREF_ON" : - "PREF_OFF"); + (Gbl.Agenda.PrivatPublicEvents & (1 << PrvPub)) ? "PREF_ON" : + "PREF_OFF"); Act_FormStart (ActSeeMyAgd); - Agd_PutHiddenParamsPastFutureEvents (Gbl.Agenda.PastFutureEvents); - Agd_PutHiddenParamsPrivatePublicEvents (1 << PrvPub); - Agd_PutHiddenParamsHiddenVisibleEvents (Gbl.Agenda.HiddenVisibleEvents); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents ^ (1 << PrvPub), // Toggle + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Gbl.Pag.CurrentPage); fprintf (Gbl.F.Out,"", Gbl.Prefs.IconsURL, Image[PrvPub], - Txt_AGENDA_PRIVATE_PUBLIC_EVENTS[PrvPub], - Txt_AGENDA_PRIVATE_PUBLIC_EVENTS[PrvPub]); + Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[PrvPub], + Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[PrvPub]); Act_FormEnd (); fprintf (Gbl.F.Out,"
"); } @@ -240,36 +258,39 @@ static void Agd_ShowFormToSelPrivatePublicEvents (void) /************* Show form to select hidden / visible events *******************/ /*****************************************************************************/ -static void Agd_ShowFormToSelHiddenVisibleEvents (void) +static void Agd_ShowFormToSelHiddenVisiblEvents (void) { - extern const char *Txt_AGENDA_HIDDEN_VISIBLE_EVENTS[2]; - Agd_PastFutureEvents_t HidVis; + extern const char *Txt_AGENDA_HIDDEN_VISIBL_EVENTS[2]; + Agd_HiddenVisiblEvents_t HidVis; static const char *Image[2] = { "eye-slash-on64x64.png", // Agd_HIDDEN_EVENTS - "eye-on64x64.png", // Agd_VISIBLE_EVENTS + "eye-on64x64.png", // Agd_VISIBL_EVENTS }; fprintf (Gbl.F.Out,"
"); - for (HidVis = Agd_PAST_EVENTS; - HidVis <= Agd_FUTURE_EVENTS; + for (HidVis = Agd_HIDDEN_EVENTS; + HidVis <= Agd_VISIBL_EVENTS; HidVis++) { fprintf (Gbl.F.Out,"
", - (Gbl.Agenda.HiddenVisibleEvents & (1 << HidVis)) ? "PREF_ON" : - "PREF_OFF"); + (Gbl.Agenda.HiddenVisiblEvents & (1 << HidVis)) ? "PREF_ON" : + "PREF_OFF"); Act_FormStart (ActSeeMyAgd); - Agd_PutHiddenParamsPastFutureEvents (Gbl.Agenda.PastFutureEvents); - Agd_PutHiddenParamsPrivatePublicEvents (Gbl.Agenda.PrivatePublicEvents); - Agd_PutHiddenParamsHiddenVisibleEvents (1 << HidVis); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents ^ (1 << HidVis), // Toggle + Gbl.Agenda.SelectedOrder, + -1L, + Gbl.Pag.CurrentPage); fprintf (Gbl.F.Out,"", Gbl.Prefs.IconsURL, Image[HidVis], - Txt_AGENDA_HIDDEN_VISIBLE_EVENTS[HidVis], - Txt_AGENDA_HIDDEN_VISIBLE_EVENTS[HidVis]); + Txt_AGENDA_HIDDEN_VISIBL_EVENTS[HidVis], + Txt_AGENDA_HIDDEN_VISIBL_EVENTS[HidVis]); Act_FormEnd (); fprintf (Gbl.F.Out,"
"); } @@ -277,63 +298,56 @@ static void Agd_ShowFormToSelHiddenVisibleEvents (void) } /*****************************************************************************/ -/**************** Put hidden params for past / future events *****************/ +/************************ Put hidden params for events ***********************/ /*****************************************************************************/ -static void Agd_PutHiddenParamsPastFutureEvents (unsigned PastFutureEvents) +static void Agd_PutHiddenParamPast__FutureEvents (unsigned Past__FutureEvents) { - Agd_PastFutureEvents_t PstFut; - static const char *ParamName[2] = - { - "Past", // Agd_PAST_EVENTS - "Future", // Agd_FUTURE_EVENTS - }; + Par_PutHiddenParamUnsigned (ParamPast__FutureName,Past__FutureEvents); + } - for (PstFut = Agd_PAST_EVENTS; - PstFut <= Agd_FUTURE_EVENTS; - PstFut++) - if (PastFutureEvents & (1 << PstFut)) // Booleans stored as bits in PastFutureEvents - Par_PutHiddenParamChar (ParamName[PstFut],'Y'); +static void Agd_PutHiddenParamPrivatPublicEvents (unsigned PrivatPublicEvents) + { + Par_PutHiddenParamUnsigned (ParamPrivatPublicName,PrivatPublicEvents); + } + +static void Agd_PutHiddenParamHiddenVisiblEvents (unsigned HiddenVisiblEvents) + { + Par_PutHiddenParamUnsigned (ParamHiddenVisiblName,HiddenVisiblEvents); } /*****************************************************************************/ -/************** Put hidden params for private / public events ****************/ +/************************ Get hidden params for events ***********************/ /*****************************************************************************/ -static void Agd_PutHiddenParamsPrivatePublicEvents (unsigned PrivatePublicEvents) +static void Agd_GetParamsPast__FutureEvents (void) { - Agd_PrivatePublicEvents_t PrvPub; - static const char *ParamName[2] = - { - "Private", // Agd_PRIVATE_EVENTS - "Public", // Agd_PUBLIC_EVENTS - }; - - for (PrvPub = Agd_PRIVATE_EVENTS; - PrvPub <= Agd_PUBLIC_EVENTS; - PrvPub++) - if (PrivatePublicEvents & (1 << PrvPub)) // Booleans stored as bits in PrivatePublicEvents - Par_PutHiddenParamChar (ParamName[PrvPub],'Y'); + Gbl.Agenda.Past__FutureEvents = (unsigned) Par_GetParToUnsignedLong (ParamPast__FutureName, + 0, + (1 << Agd_PAST___EVENTS) | + (1 << Agd_FUTURE_EVENTS), + Agd_DEFAULT_PAST___EVENTS | + Agd_DEFAULT_FUTURE_EVENTS); } -/*****************************************************************************/ -/************** Put hidden params for hidden / visible events ****************/ -/*****************************************************************************/ - -static void Agd_PutHiddenParamsHiddenVisibleEvents (unsigned HiddenVisibleEvents) +static void Agd_GetParamsPrivatPublicEvents (void) { - Agd_HiddenVisibleEvents_t HidVis; - static const char *ParamName[2] = - { - "Hidden", // Agd_HIDDEN_EVENTS - "Visible", // Agd_VISIBLE_EVENTS - }; + Gbl.Agenda.PrivatPublicEvents = (unsigned) Par_GetParToUnsignedLong (ParamPrivatPublicName, + 0, + (1 << Agd_PRIVAT_EVENTS) | + (1 << Agd_PUBLIC_EVENTS), + Agd_DEFAULT_PRIVAT_EVENTS | + Agd_DEFAULT_PUBLIC_EVENTS); + } - for (HidVis = Agd_HIDDEN_EVENTS; - HidVis <= Agd_VISIBLE_EVENTS; - HidVis++) - if (HiddenVisibleEvents & (1 << HidVis)) // Booleans stored as bits in HiddenVisibleEvents - Par_PutHiddenParamChar (ParamName[HidVis],'Y'); +static void Agd_GetParamsHiddenVisiblEvents (void) + { + Gbl.Agenda.HiddenVisiblEvents = (unsigned) Par_GetParToUnsignedLong (ParamHiddenVisiblName, + 0, + (1 << Agd_HIDDEN_EVENTS) | + (1 << Agd_VISIBL_EVENTS), + Agd_DEFAULT_HIDDEN_EVENTS | + Agd_DEFAULT_VISIBL_EVENTS); } /*****************************************************************************/ @@ -471,8 +485,7 @@ static void Agd_ShowEvents (Agd_AgendaType_t AgendaType) }; /***** Get parameters *****/ - Agd_GetParamEventOrder (); - Pag_GetParamPagNum (WhatPaginate[AgendaType]); + Agd_GetParams (AgendaType); /***** Get list of events *****/ Agd_GetListEvents (AgendaType); @@ -534,7 +547,7 @@ static void Agd_ShowEventsToday (Agd_AgendaType_t AgendaType) unsigned NumEvent; /***** Get parameters *****/ - Agd_GetParamEventOrder (); + Agd_GetParams (AgendaType); /***** Get list of events *****/ Agd_GetListEvents (AgendaType); @@ -613,8 +626,8 @@ static void Agd_WriteHeaderListEvents (Agd_AgendaType_t AgendaType) Usr_PutParamOtherUsrCodEncrypted (); break; } - Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); Par_PutHiddenParamUnsigned ("Order",(unsigned) Order); + Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); Act_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL); if (Order == Gbl.Agenda.SelectedOrder) fprintf (Gbl.F.Out,""); @@ -678,7 +691,8 @@ static void Agd_PutIconToCreateNewEvent (void) extern const char *Txt_New_event; /***** Put form to create a new event *****/ - Lay_PutContextualLink (ActFrmNewEvtMyAgd,Agd_PutParamsToCreateNewEvent, + Gbl.Agenda.AgdCodToEdit = -1L; + Lay_PutContextualLink (ActFrmNewEvtMyAgd,Agd_PutCurrentParams, "plus64x64.png", Txt_New_event,NULL, NULL); @@ -748,21 +762,16 @@ static void Agd_PutButtonToCreateNewEvent (void) extern const char *Txt_New_event; Act_FormStart (ActFrmNewEvtMyAgd); - Agd_PutParamsToCreateNewEvent (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Gbl.Pag.CurrentPage); Lay_PutConfirmButton (Txt_New_event); Act_FormEnd (); } -/*****************************************************************************/ -/******************** Put parameters to create a new event *******************/ -/*****************************************************************************/ - -static void Agd_PutParamsToCreateNewEvent (void) - { - Agd_PutHiddenParamEventsOrder (); - Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); - } - /*****************************************************************************/ /******************************* Show one event ******************************/ /*****************************************************************************/ @@ -879,6 +888,141 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod) Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; } +/*****************************************************************************/ +/******************* Put a link (form) to edit one event *********************/ +/*****************************************************************************/ + +static void Agd_PutFormsToRemEditOneEvent (struct AgendaEvent *AgdEvent) + { + extern const char *Txt_Remove; + extern const char *Txt_Show; + extern const char *Txt_Hide; + extern const char *Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses; + extern const char *Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private; + extern const char *Txt_Edit; + + Gbl.Agenda.AgdCodToEdit = AgdEvent->AgdCod; // Used as parameter in contextual links + + /***** Put form to remove event *****/ + Lay_PutContextualLink (ActReqRemEvtMyAgd,Agd_PutCurrentParams, + "remove-on64x64.png", + Txt_Remove,NULL, + NULL); + + /***** Put form to hide/show event *****/ + if (AgdEvent->Hidden) + Lay_PutContextualLink (ActShoEvtMyAgd,Agd_PutCurrentParams, + "eye-slash-on64x64.png", + Txt_Show,NULL, + NULL); + else + Lay_PutContextualLink (ActHidEvtMyAgd,Agd_PutCurrentParams, + "eye-on64x64.png", + Txt_Hide,NULL, + NULL); + + /***** Put form to edit event *****/ + Lay_PutContextualLink (ActEdiOneEvtMyAgd,Agd_PutCurrentParams, + "edit64x64.png", + Txt_Edit,NULL, + NULL); + + /***** Put form to make event public/private *****/ + if (AgdEvent->Public) + Lay_PutContextualLink (ActPrvEvtMyAgd,Agd_PutCurrentParams, + "unlock-on64x64.png", + Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private,NULL, + NULL); + else + Lay_PutContextualLink (ActPubEvtMyAgd,Agd_PutCurrentParams, + "lock-on64x64.png", + Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses,NULL, + NULL); + } + +/*****************************************************************************/ +/******************* Parameters passed in agenda forms ***********************/ +/*****************************************************************************/ + +static void Agd_PutCurrentParams (void) + { + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + Gbl.Agenda.AgdCodToEdit, + Gbl.Pag.CurrentPage); + } + +/* The following function is called + when one or more parameters must be passed explicitely. + Each parameter is passed only if its value is distinct to default. */ + +void Agd_PutParams (unsigned Past__FutureEvents, + unsigned PrivatPublicEvents, + unsigned HiddenVisiblEvents, + Agd_Order_t Order, + long AgdCodToEdit, + unsigned NumPage) + { + if (Past__FutureEvents != (Agd_DEFAULT_PAST___EVENTS | + Agd_DEFAULT_FUTURE_EVENTS)) + Agd_PutHiddenParamPast__FutureEvents (Past__FutureEvents); + + if (PrivatPublicEvents != (Agd_DEFAULT_PRIVAT_EVENTS | + Agd_DEFAULT_PUBLIC_EVENTS)) + Agd_PutHiddenParamPrivatPublicEvents (PrivatPublicEvents); + + if (HiddenVisiblEvents != (Agd_DEFAULT_HIDDEN_EVENTS | + Agd_DEFAULT_VISIBL_EVENTS)) + Agd_PutHiddenParamHiddenVisiblEvents (HiddenVisiblEvents); + + if (Order != Agd_ORDER_DEFAULT) + Par_PutHiddenParamUnsigned ("Order",(unsigned) Order); + + if (AgdCodToEdit > 0) + Par_PutHiddenParamLong ("AgdCod",AgdCodToEdit); + + if (NumPage > 1) + Pag_PutHiddenParamPagNum (NumPage); + } + +/*****************************************************************************/ +/********** Get parameter with the type or order in list of events ***********/ +/*****************************************************************************/ + +static void Agd_GetParams (Agd_AgendaType_t AgendaType) + { + Pag_WhatPaginate_t WhatPaginate[Agd_NUM_AGENDA_TYPES] = + { + Pag_MY_FULL_AGENDA, // Agd_MY_FULL_AGENDA_TODAY, not used + Pag_MY_FULL_AGENDA, // Agd_MY_FULL_AGENDA + Pag_MY_PUBLIC_AGENDA, // Agd_MY_PUBLIC_AGENDA_TODAY, not used + Pag_MY_PUBLIC_AGENDA, // Agd_MY_PUBLIC_AGENDA + Pag_OTHER_PUBLIC_AGENDA, // Agd_OTHER_PUBLIC_AGENDA_TODAY, not used + Pag_OTHER_PUBLIC_AGENDA, // Agd_OTHER_PUBLIC_AGENDA + }; + + if (AgendaType == Agd_MY_FULL_AGENDA) + { + Agd_GetParamsPast__FutureEvents (); + Agd_GetParamsPrivatPublicEvents (); + Agd_GetParamsHiddenVisiblEvents (); + } + Agd_GetParamEventOrder (); + Pag_GetParamPagNum (WhatPaginate[AgendaType]); + } + +/*****************************************************************************/ +/****** Put a hidden parameter with the type of order in list of events ******/ +/*****************************************************************************/ + +void Agd_PutHiddenParamEventsOrder (void) + { + if (Gbl.Agenda.SelectedOrder != Agd_ORDER_DEFAULT) + Par_PutHiddenParamUnsigned ("Order",(unsigned) Gbl.Agenda.SelectedOrder); + } + /*****************************************************************************/ /********** Get parameter with the type or order in list of events ***********/ /*****************************************************************************/ @@ -898,78 +1042,6 @@ static void Agd_GetParamEventOrder (void) } } -/*****************************************************************************/ -/****** Put a hidden parameter with the type of order in list of events ******/ -/*****************************************************************************/ - -void Agd_PutHiddenParamEventsOrder (void) - { - Par_PutHiddenParamUnsigned ("Order",(unsigned) Gbl.Agenda.SelectedOrder); - } - -/*****************************************************************************/ -/******************* Put a link (form) to edit one event *********************/ -/*****************************************************************************/ - -static void Agd_PutFormsToRemEditOneEvent (struct AgendaEvent *AgdEvent) - { - extern const char *Txt_Remove; - extern const char *Txt_Show; - extern const char *Txt_Hide; - extern const char *Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses; - extern const char *Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private; - extern const char *Txt_Edit; - - Gbl.Agenda.AgdCodToEdit = AgdEvent->AgdCod; // Used as parameter in contextual links - - /***** Put form to remove event *****/ - Lay_PutContextualLink (ActReqRemEvtMyAgd,Agd_PutParams, - "remove-on64x64.png", - Txt_Remove,NULL, - NULL); - - /***** Put form to hide/show event *****/ - if (AgdEvent->Hidden) - Lay_PutContextualLink (ActShoEvtMyAgd,Agd_PutParams, - "eye-slash-on64x64.png", - Txt_Show,NULL, - NULL); - else - Lay_PutContextualLink (ActHidEvtMyAgd,Agd_PutParams, - "eye-on64x64.png", - Txt_Hide,NULL, - NULL); - - /***** Put form to edit event *****/ - Lay_PutContextualLink (ActEdiOneEvtMyAgd,Agd_PutParams, - "edit64x64.png", - Txt_Edit,NULL, - NULL); - - /***** Put form to make event public/private *****/ - if (AgdEvent->Public) - Lay_PutContextualLink (ActPrvEvtMyAgd,Agd_PutParams, - "unlock-on64x64.png", - Txt_Event_visible_to_the_users_of_your_courses_click_to_make_it_private,NULL, - NULL); - else - Lay_PutContextualLink (ActPubEvtMyAgd,Agd_PutParams, - "lock-on64x64.png", - Txt_Event_private_click_to_make_it_visible_to_the_users_of_your_courses,NULL, - NULL); - } - -/*****************************************************************************/ -/********************** Params used to edit an event *************************/ -/*****************************************************************************/ - -static void Agd_PutParams (void) - { - Agd_PutParamAgdCod (Gbl.Agenda.AgdCodToEdit); - Agd_PutHiddenParamEventsOrder (); - Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); - } - /*****************************************************************************/ /************************* Get list of agenda events *************************/ /*****************************************************************************/ @@ -1213,15 +1285,6 @@ static void Agd_GetEventTxtFromDB (struct AgendaEvent *AgdEvent, Lay_ShowErrorAndExit ("Error when getting event text."); } -/*****************************************************************************/ -/******************* Write parameter with code of event **********************/ -/*****************************************************************************/ - -static void Agd_PutParamAgdCod (long AgdCod) - { - Par_PutHiddenParamLong ("AgdCod",AgdCod); - } - /*****************************************************************************/ /******************** Get parameter with code of event ***********************/ /*****************************************************************************/ @@ -1243,8 +1306,7 @@ void Agd_AskRemEvent (void) struct AgendaEvent AgdEvent; /***** Get parameters *****/ - Agd_GetParamEventOrder (); - Pag_GetParamPagNum (Pag_MY_FULL_AGENDA); + Agd_GetParams (Agd_MY_FULL_AGENDA); /***** Get event code *****/ if ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L) @@ -1256,9 +1318,8 @@ void Agd_AskRemEvent (void) /***** Button of confirmation of removing *****/ Act_FormStart (ActRemEvtMyAgd); - Agd_PutParamAgdCod (AgdEvent.AgdCod); - Agd_PutHiddenParamEventsOrder (); - Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); + Gbl.Agenda.AgdCodToEdit = AgdEvent.AgdCod; + Agd_PutCurrentParams (); /***** Ask for confirmation of removing *****/ sprintf (Gbl.Message,Txt_Do_you_really_want_to_remove_the_event_X, @@ -1454,8 +1515,7 @@ void Agd_RequestCreatOrEditEvent (void) char Txt[Cns_MAX_BYTES_TEXT + 1]; /***** Get parameters *****/ - Agd_GetParamEventOrder (); - Pag_GetParamPagNum (Pag_MY_FULL_AGENDA); + Agd_GetParams (Agd_MY_FULL_AGENDA); /***** Get the code of the event *****/ ItsANewEvent = ((AgdEvent.AgdCod = Agd_GetParamAgdCod ()) == -1L); @@ -1483,14 +1543,16 @@ void Agd_RequestCreatOrEditEvent (void) /***** Start form *****/ if (ItsANewEvent) + { Act_FormStart (ActNewEvtMyAgd); + Gbl.Agenda.AgdCodToEdit = -1L; + } else { Act_FormStart (ActChgEvtMyAgd); - Agd_PutParamAgdCod (AgdEvent.AgdCod); + Gbl.Agenda.AgdCodToEdit = AgdEvent.AgdCod; } - Agd_PutHiddenParamEventsOrder (); - Pag_PutHiddenParamPagNum (Gbl.Pag.CurrentPage); + Agd_PutCurrentParams (); /***** Table start *****/ Lay_StartRoundFrameTable (NULL, diff --git a/swad_agenda.h b/swad_agenda.h index 0c3b97359..b2ce9f87f 100644 --- a/swad_agenda.h +++ b/swad_agenda.h @@ -61,19 +61,27 @@ struct AgendaEvent typedef enum { - Agd_PAST_EVENTS, // Events until yesterday (included) - Agd_FUTURE_EVENTS, // Events from today (included) onwards - } Agd_PastFutureEvents_t; + Agd_PAST___EVENTS = 0, // Events until yesterday (included) + Agd_FUTURE_EVENTS = 1, // Events from today (included) onwards + } Agd_Past__FutureEvents_t; +#define Agd_DEFAULT_PAST___EVENTS (0 << Agd_PAST___EVENTS) // off +#define Agd_DEFAULT_FUTURE_EVENTS (1 << Agd_FUTURE_EVENTS) // on + typedef enum { - Agd_PRIVATE_EVENTS, - Agd_PUBLIC_EVENTS, - } Agd_PrivatePublicEvents_t; + Agd_PRIVAT_EVENTS = 0, + Agd_PUBLIC_EVENTS = 1, + } Agd_PrivatPublicEvents_t; +#define Agd_DEFAULT_PRIVAT_EVENTS (1 << Agd_PRIVAT_EVENTS) // on +#define Agd_DEFAULT_PUBLIC_EVENTS (1 << Agd_PUBLIC_EVENTS) // on + typedef enum { - Agd_HIDDEN_EVENTS, - Agd_VISIBLE_EVENTS, - } Agd_HiddenVisibleEvents_t; + Agd_HIDDEN_EVENTS = 0, + Agd_VISIBL_EVENTS = 1, + } Agd_HiddenVisiblEvents_t; +#define Agd_DEFAULT_HIDDEN_EVENTS (0 << Agd_HIDDEN_EVENTS) // off +#define Agd_DEFAULT_VISIBL_EVENTS (1 << Agd_VISIBL_EVENTS) // on #define Agd_NUM_ORDERS 2 typedef enum @@ -95,8 +103,16 @@ void Agd_ShowMyPublicAgenda (void); void Agd_ShowUsrAgenda (void); void Agd_ShowOtherAgendaAfterLogIn (void); -void Agd_PutHiddenParamEventsOrder (void); void Agd_RequestCreatOrEditEvent (void); + +void Agd_PutParams (unsigned Past__FutureEvents, + unsigned PrivatPublicEvents, + unsigned HiddenVisiblEvents, + Agd_Order_t Order, + long AgdCodToEdit, + unsigned NumPage); +void Agd_PutHiddenParamEventsOrder (void); + void Agd_FreeListEvents (void); long Agd_GetParamAgdCod (void); diff --git a/swad_changelog.h b/swad_changelog.h index 78a19e03a..5c27ca717 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -210,19 +210,20 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 16.158.1 (2017-03-21)" +#define Log_PLATFORM_VERSION "SWAD 16.159 (2017-03-21)" #define CSS_FILE "swad16.157.css" #define JS_FILE "swad16.144.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 /* + Version 16.159: Mar 21, 2017 Changes in agenda. Not finished. (217511 lines) Version 16.158.1: Mar 21, 2017 Changes in agenda. Not finished. (217395 lines) Version 16.158: Mar 21, 2017 Changes in agenda. Not finished. Fixed bug in user enrollment. (217394 lines) Copy the following icons to icon public directory: -sudo cp -a backward64x64.png /var/www/html/swad/icon/ -sudo cp -a forward64x64.png /var/www/html/swad/icon/ +sudo cp -a past64x64.png /var/www/html/swad/icon/ +sudo cp -a future64x64.png /var/www/html/swad/icon/ Version 16.157.3: Mar 20, 2017 Contextual help in edition of custom record card fields. (217046 lines) Version 16.157.2: Mar 20, 2017 Some help URLs translated to spanish. (217041 lines) diff --git a/swad_global.c b/swad_global.c index 02bf989eb..15fbdbaf4 100644 --- a/swad_global.c +++ b/swad_global.c @@ -423,11 +423,14 @@ void Gbl_InitializeGlobals (void) Gbl.FileBrowser.UploadingWithDropzone = false; /* Agenda */ - Gbl.Agenda.PastFutureEvents = (1 << Agd_FUTURE_EVENTS); - Gbl.Agenda.PrivatePublicEvents = (1 << Agd_PRIVATE_EVENTS) | - (1 << Agd_PUBLIC_EVENTS); - Gbl.Agenda.HiddenVisibleEvents = (1 << Agd_VISIBLE_EVENTS); + Gbl.Agenda.Past__FutureEvents = Agd_DEFAULT_PAST___EVENTS | + Agd_DEFAULT_FUTURE_EVENTS; + Gbl.Agenda.PrivatPublicEvents = Agd_DEFAULT_PRIVAT_EVENTS | + Agd_DEFAULT_PUBLIC_EVENTS; + Gbl.Agenda.HiddenVisiblEvents = Agd_DEFAULT_HIDDEN_EVENTS | + Agd_DEFAULT_VISIBL_EVENTS; Gbl.Agenda.SelectedOrder = Agd_ORDER_DEFAULT; + Gbl.Agenda.AgdCodToEdit = -1L; /* To alternate colors where listing rows */ Gbl.RowEvenOdd = 0; diff --git a/swad_global.h b/swad_global.h index 408be9bee..13bc8dc73 100644 --- a/swad_global.h +++ b/swad_global.h @@ -414,9 +414,9 @@ struct Globals bool LstIsRead; // Is the list already read from database, or it needs to be read? unsigned Num; // Number of events long *LstAgdCods; // List of agenda codes - unsigned PastFutureEvents; - unsigned PrivatePublicEvents; - unsigned HiddenVisibleEvents; + unsigned Past__FutureEvents; + unsigned PrivatPublicEvents; + unsigned HiddenVisiblEvents; Agd_Order_t SelectedOrder; long AgdCodToEdit; // Used as parameter in contextual links } Agenda; diff --git a/swad_pagination.c b/swad_pagination.c index 3f4c651dc..a62889f8f 100644 --- a/swad_pagination.c +++ b/swad_pagination.c @@ -166,18 +166,26 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P break; case Pag_MY_FULL_AGENDA: Act_FormStart (ActSeeMyAgd); - Pag_PutHiddenParamPagNum (1); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + 1); break; case Pag_MY_PUBLIC_AGENDA: Act_FormStart (ActSeeMyPubAgd); - Pag_PutHiddenParamPagNum (1); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + 1); break; case Pag_OTHER_PUBLIC_AGENDA: Act_FormStart (ActSeeUsrAgd); - Pag_PutHiddenParamPagNum (1); Agd_PutHiddenParamEventsOrder (); + Pag_PutHiddenParamPagNum (1); Usr_PutParamOtherUsrCodEncrypted (); break; } @@ -259,18 +267,26 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P break; case Pag_MY_FULL_AGENDA: Act_FormStart (ActSeeMyAgd); - Pag_PutHiddenParamPagNum (1); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + 1); break; case Pag_MY_PUBLIC_AGENDA: Act_FormStart (ActSeeMyPubAgd); - Pag_PutHiddenParamPagNum (1); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + 1); break; case Pag_OTHER_PUBLIC_AGENDA: Act_FormStart (ActSeeUsrAgd); - Pag_PutHiddenParamPagNum (1); Agd_PutHiddenParamEventsOrder (); + Pag_PutHiddenParamPagNum (1); Usr_PutParamOtherUsrCodEncrypted (); break; } @@ -335,18 +351,26 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P break; case Pag_MY_FULL_AGENDA: Act_FormStart (ActSeeMyAgd); - Pag_PutHiddenParamPagNum (Pagination->LeftPage); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Pagination->LeftPage); break; case Pag_MY_PUBLIC_AGENDA: Act_FormStart (ActSeeMyPubAgd); - Pag_PutHiddenParamPagNum (Pagination->LeftPage); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Pagination->LeftPage); break; case Pag_OTHER_PUBLIC_AGENDA: Act_FormStart (ActSeeUsrAgd); - Pag_PutHiddenParamPagNum (Pagination->LeftPage); Agd_PutHiddenParamEventsOrder (); + Pag_PutHiddenParamPagNum (Pagination->LeftPage); Usr_PutParamOtherUsrCodEncrypted (); break; } @@ -418,18 +442,26 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P break; case Pag_MY_FULL_AGENDA: Act_FormStart (ActSeeMyAgd); - Pag_PutHiddenParamPagNum (NumPage); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + NumPage); break; case Pag_MY_PUBLIC_AGENDA: Act_FormStart (ActSeeMyPubAgd); - Pag_PutHiddenParamPagNum (NumPage); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + NumPage); break; case Pag_OTHER_PUBLIC_AGENDA: Act_FormStart (ActSeeUsrAgd); - Pag_PutHiddenParamPagNum (NumPage); Agd_PutHiddenParamEventsOrder (); + Pag_PutHiddenParamPagNum (NumPage); Usr_PutParamOtherUsrCodEncrypted (); break; } @@ -497,18 +529,26 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P break; case Pag_MY_FULL_AGENDA: Act_FormStart (ActSeeMyAgd); - Pag_PutHiddenParamPagNum (Pagination->RightPage); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Pagination->RightPage); break; case Pag_MY_PUBLIC_AGENDA: Act_FormStart (ActSeeMyPubAgd); - Pag_PutHiddenParamPagNum (Pagination->RightPage); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Pagination->RightPage); break; case Pag_OTHER_PUBLIC_AGENDA: Act_FormStart (ActSeeUsrAgd); - Pag_PutHiddenParamPagNum (Pagination->RightPage); Agd_PutHiddenParamEventsOrder (); + Pag_PutHiddenParamPagNum (Pagination->RightPage); Usr_PutParamOtherUsrCodEncrypted (); break; } @@ -573,18 +613,26 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,long ThrCod,struct P break; case Pag_MY_FULL_AGENDA: Act_FormStart (ActSeeMyAgd); - Pag_PutHiddenParamPagNum (Pagination->NumPags); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Pagination->NumPags); break; case Pag_MY_PUBLIC_AGENDA: Act_FormStart (ActSeeMyPubAgd); - Pag_PutHiddenParamPagNum (Pagination->NumPags); - Agd_PutHiddenParamEventsOrder (); + Agd_PutParams (Gbl.Agenda.Past__FutureEvents, + Gbl.Agenda.PrivatPublicEvents, + Gbl.Agenda.HiddenVisiblEvents, + Gbl.Agenda.SelectedOrder, + -1L, + Pagination->NumPags); break; case Pag_OTHER_PUBLIC_AGENDA: Act_FormStart (ActSeeUsrAgd); - Pag_PutHiddenParamPagNum (Pagination->NumPags); Agd_PutHiddenParamEventsOrder (); + Pag_PutHiddenParamPagNum (Pagination->NumPags); Usr_PutParamOtherUsrCodEncrypted (); break; } diff --git a/swad_text.c b/swad_text.c index ea2e8b6b5..84e5292eb 100644 --- a/swad_text.c +++ b/swad_text.c @@ -2105,9 +2105,9 @@ const char *Txt_Administer_user = "Gerenciar utilizador"; #endif -const char *Txt_AGENDA_PAST_FUTURE_EVENTS[2] = +const char *Txt_AGENDA_PAST___FUTURE_EVENTS[2] = { - // Agd_PAST_EVENTS + // Agd_PAST___EVENTS #if L==1 "Esdeveniments passats" #elif L==2 @@ -2150,9 +2150,9 @@ const char *Txt_AGENDA_PAST_FUTURE_EVENTS[2] = #endif }; -const char *Txt_AGENDA_PRIVATE_PUBLIC_EVENTS[2] = +const char *Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[2] = { - // Agd_PRIVATE_EVENTS + // Agd_PRIVAT_EVENTS #if L==1 "Esdeveniments passats" #elif L==2 @@ -2195,7 +2195,7 @@ const char *Txt_AGENDA_PRIVATE_PUBLIC_EVENTS[2] = #endif }; -const char *Txt_AGENDA_HIDDEN_VISIBLE_EVENTS[2] = +const char *Txt_AGENDA_HIDDEN_VISIBL_EVENTS[2] = { // Agd_HIDDEN_EVENTS #if L==1 @@ -2218,7 +2218,7 @@ const char *Txt_AGENDA_HIDDEN_VISIBLE_EVENTS[2] = "Eventos passados" #endif , - // Agd_VISIBLE_EVENTS + // Agd_VISIBL_EVENTS #if L==1 "Esdeveniments actuals i futurs" #elif L==2