diff --git a/swad_changelog.h b/swad_changelog.h index 82ed36744..cfb9e8f7d 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -254,13 +254,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 17.23.1 (2017-10-10)" +#define Log_PLATFORM_VERSION "SWAD 17.23.2 (2017-10-10)" #define CSS_FILE "swad17.0.css" #define JS_FILE "swad17.17.1.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 17.23.2: Oct 10, 2017 Code refactoring in filter of projects. (234137 lines) Version 17.23.1: Oct 10, 2017 Changes in selectors of departments. (234133 lines) Version 17.23: Oct 10, 2017 New filter to select preassigned/non-preassigned projects. New filter to select hidden/visible projects. diff --git a/swad_global.c b/swad_global.c index 63c201071..8e4f7ce43 100644 --- a/swad_global.c +++ b/swad_global.c @@ -350,14 +350,14 @@ void Gbl_InitializeGlobals (void) Gbl.Asgs.SelectedOrder = Asg_ORDER_DEFAULT; /* Projects */ + Gbl.Prjs.Filter.My_All = Prj_WHOSE_PROJECTS_DEFAULT; + Gbl.Prjs.Filter.PreNon = Prj_PREASSIGNED_DEFAULT | + Prj_NONPREASSIG_DEFAULT; + Gbl.Prjs.Filter.HidVis = Prj_HIDDEN_DEFAULT | + Prj_VISIBL_DEFAULT; Gbl.Prjs.LstIsRead = false; // List is not read Gbl.Prjs.Num = 0; Gbl.Prjs.LstPrjCods = NULL; - Gbl.Prjs.My_All = Prj_WHOSE_PROJECTS_DEFAULT; - Gbl.Prjs.PreNon = Prj_PREASSIGNED_DEFAULT | - Prj_NONPREASSIG_DEFAULT; - Gbl.Prjs.HidVis = Prj_HIDDEN_DEFAULT | - Prj_VISIBL_DEFAULT; Gbl.Prjs.SelectedOrder = Prj_ORDER_DEFAULT; Gbl.Prjs.PrjCod = -1L; diff --git a/swad_global.h b/swad_global.h index ec205ba79..f5cf55a96 100644 --- a/swad_global.h +++ b/swad_global.h @@ -572,13 +572,16 @@ struct Globals } Asgs; struct { + struct + { + Prj_WhoseProjects_t My_All; // Show my / all projects + unsigned PreNon; // Show preassigned / non preassigned projects + unsigned HidVis; // Show hidden / visible projects + } Filter; bool LstIsRead; // Is the list already read from database, or it needs to be read? unsigned Num; // Number of projects long *LstPrjCods; // List of project codes Prj_Order_t SelectedOrder; - Prj_WhoseProjects_t My_All; // Show my / all projects - unsigned PreNon; // Show preassigned / non preassigned projects - unsigned HidVis; // Show hidden / visible projects unsigned CurrentPage; long PrjCod; // Current project } Prjs; diff --git a/swad_pagination.c b/swad_pagination.c index 3cbef0cb8..8df8a36df 100644 --- a/swad_pagination.c +++ b/swad_pagination.c @@ -164,9 +164,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, break; case Pag_PROJECTS: Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, 1, -1L); @@ -274,9 +274,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, break; case Pag_PROJECTS: Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, 1, -1L); @@ -370,9 +370,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, break; case Pag_PROJECTS: Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, Pagination->LeftPage, -1L); @@ -477,9 +477,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, break; case Pag_PROJECTS: Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, NumPage, -1L); @@ -572,9 +572,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, break; case Pag_PROJECTS: Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, Pagination->RightPage, -1L); @@ -666,9 +666,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate, break; case Pag_PROJECTS: Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, Pagination->NumPags, -1L); diff --git a/swad_project.c b/swad_project.c index 7f97cca38..7e48e31e8 100644 --- a/swad_project.c +++ b/swad_project.c @@ -340,12 +340,12 @@ static void Prj_ShowFormToSelMy_AllPrjs (void) My_All++) { fprintf (Gbl.F.Out,"
", - (Gbl.Prjs.My_All == My_All) ? "PREF_ON" : - "PREF_OFF"); + (Gbl.Prjs.Filter.My_All == My_All) ? "PREF_ON" : + "PREF_OFF"); Act_FormStart (ActSeePrj); Prj_PutParams (My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, Gbl.Prjs.CurrentPage, -1L); @@ -376,12 +376,12 @@ static void Prj_ShowFormToSelPreassignedOrNotProjects (void) PreNon++) { fprintf (Gbl.F.Out,"
", - (Gbl.Prjs.PreNon & (1 << PreNon)) ? "PREF_ON" : - "PREF_OFF"); + (Gbl.Prjs.Filter.PreNon & (1 << PreNon)) ? "PREF_ON" : + "PREF_OFF"); Act_FormStart (ActSeePrj); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon ^ (1 << PreNon), // Toggle - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon ^ (1 << PreNon), // Toggle + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, Gbl.Prjs.CurrentPage, -1L); @@ -417,12 +417,12 @@ static void Prj_ShowFormToSelHiddenVisiblProjects (void) HidVis++) { fprintf (Gbl.F.Out,"
", - (Gbl.Prjs.HidVis & (1 << HidVis)) ? "PREF_ON" : - "PREF_OFF"); + (Gbl.Prjs.Filter.HidVis & (1 << HidVis)) ? "PREF_ON" : + "PREF_OFF"); Act_FormStart (ActSeePrj); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis ^ (1 << HidVis), // Toggle + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis ^ (1 << HidVis), // Toggle Gbl.Prjs.SelectedOrder, Gbl.Prjs.CurrentPage, -1L); @@ -445,9 +445,9 @@ static void Prj_ShowFormToSelHiddenVisiblProjects (void) static void Prj_PutCurrentParams (void) { - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Gbl.Prjs.SelectedOrder, Gbl.Prjs.CurrentPage, Gbl.Prjs.PrjCod); @@ -513,20 +513,20 @@ static void Prj_PutHiddenParamHidVis (unsigned HidVis) static void Prj_GetHiddenParamMy_All (void) { - Gbl.Prjs.My_All = (Prj_WhoseProjects_t) Par_GetParToUnsignedLong (ParamMy_AllName, - 0, - Prj_NUM_WHOSE_PROJECTS - 1, - Prj_WHOSE_PROJECTS_DEFAULT); + Gbl.Prjs.Filter.My_All = (Prj_WhoseProjects_t) Par_GetParToUnsignedLong (ParamMy_AllName, + 0, + Prj_NUM_WHOSE_PROJECTS - 1, + Prj_WHOSE_PROJECTS_DEFAULT); } static void Prj_GetHiddenParamPreNon (void) { - Gbl.Prjs.PreNon = (unsigned) Par_GetParToUnsignedLong (ParamPreNonName, - 0, - (1 << Prj_PREASSIGNED) | - (1 << Prj_NONPREASSIG), - (unsigned) Prj_PREASSIGNED_DEFAULT | - (unsigned) Prj_NONPREASSIG_DEFAULT); + Gbl.Prjs.Filter.PreNon = (unsigned) Par_GetParToUnsignedLong (ParamPreNonName, + 0, + (1 << Prj_PREASSIGNED) | + (1 << Prj_NONPREASSIG), + (unsigned) Prj_PREASSIGNED_DEFAULT | + (unsigned) Prj_NONPREASSIG_DEFAULT); } static void Prj_GetHiddenParamHidVis (void) @@ -534,17 +534,17 @@ static void Prj_GetHiddenParamHidVis (void) switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: // Students can view only visible projects - Gbl.Prjs.HidVis = (1 << Prj_VISIBL); // Only visible projects + Gbl.Prjs.Filter.HidVis = (1 << Prj_VISIBL); // Only visible projects break; case Rol_NET: case Rol_TCH: case Rol_SYS_ADM: - Gbl.Prjs.HidVis = (unsigned) Par_GetParToUnsignedLong (ParamHidVisName, - 0, - (1 << Prj_HIDDEN) | - (1 << Prj_VISIBL), - (unsigned) Prj_HIDDEN_DEFAULT | - (unsigned) Prj_VISIBL_DEFAULT); + Gbl.Prjs.Filter.HidVis = (unsigned) Par_GetParToUnsignedLong (ParamHidVisName, + 0, + (1 << Prj_HIDDEN) | + (1 << Prj_VISIBL), + (unsigned) Prj_HIDDEN_DEFAULT | + (unsigned) Prj_VISIBL_DEFAULT); break; default: Lay_ShowErrorAndExit ("Wrong role."); @@ -589,9 +589,9 @@ static void Prj_ShowProjectsHead (bool PrintView) if (!PrintView) { Act_FormStart (ActSeePrj); - Prj_PutParams (Gbl.Prjs.My_All, - Gbl.Prjs.PreNon, - Gbl.Prjs.HidVis, + Prj_PutParams (Gbl.Prjs.Filter.My_All, + Gbl.Prjs.Filter.PreNon, + Gbl.Prjs.Filter.HidVis, Order, Gbl.Prjs.CurrentPage, -1L); @@ -2087,13 +2087,13 @@ void Prj_GetListProjects (void) Prj_FreeListProjects (); /***** Get list of projects from database *****/ - if (Gbl.Prjs.PreNon == 0 || // All selectors are off - Gbl.Prjs.HidVis == 0) // All selectors are off + if (Gbl.Prjs.Filter.PreNon == 0 || // All selectors are off + Gbl.Prjs.Filter.HidVis == 0) // All selectors are off Gbl.Prjs.Num = 0; // Nothing to get from database else { /* Preassigned subquery */ - switch (Gbl.Prjs.PreNon) + switch (Gbl.Prjs.Filter.PreNon) { case (1 << Prj_PREASSIGNED): Str_Copy (PreNonSubQuery," AND projects.Preassigned='Y'", @@ -2118,7 +2118,7 @@ void Prj_GetListProjects (void) case Rol_NET: case Rol_TCH: case Rol_SYS_ADM: - switch (Gbl.Prjs.HidVis) + switch (Gbl.Prjs.Filter.HidVis) { case (1 << Prj_HIDDEN): Str_Copy (HidVisSubQuery," AND projects.Hidden='Y'", @@ -2165,7 +2165,7 @@ void Prj_GetListProjects (void) } /* Query */ - if (Gbl.Prjs.My_All == Prj_MY__PROJECTS) + if (Gbl.Prjs.Filter.My_All == Prj_MY__PROJECTS) switch (Gbl.Prjs.SelectedOrder) { case Prj_ORDER_START_TIME: