Version 17.23.2

This commit is contained in:
Antonio Cañas Vargas 2017-10-10 10:55:09 +02:00
parent a9fd5d23ac
commit 1783c7d40a
5 changed files with 73 additions and 69 deletions

View File

@ -254,13 +254,14 @@
/****************************** Public constants *****************************/ /****************************** 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 CSS_FILE "swad17.0.css"
#define JS_FILE "swad17.17.1.js" #define JS_FILE "swad17.17.1.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // 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.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. Version 17.23: Oct 10, 2017 New filter to select preassigned/non-preassigned projects.
New filter to select hidden/visible projects. New filter to select hidden/visible projects.

View File

@ -350,14 +350,14 @@ void Gbl_InitializeGlobals (void)
Gbl.Asgs.SelectedOrder = Asg_ORDER_DEFAULT; Gbl.Asgs.SelectedOrder = Asg_ORDER_DEFAULT;
/* Projects */ /* 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.LstIsRead = false; // List is not read
Gbl.Prjs.Num = 0; Gbl.Prjs.Num = 0;
Gbl.Prjs.LstPrjCods = NULL; 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.SelectedOrder = Prj_ORDER_DEFAULT;
Gbl.Prjs.PrjCod = -1L; Gbl.Prjs.PrjCod = -1L;

View File

@ -572,13 +572,16 @@ struct Globals
} Asgs; } Asgs;
struct 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? bool LstIsRead; // Is the list already read from database, or it needs to be read?
unsigned Num; // Number of projects unsigned Num; // Number of projects
long *LstPrjCods; // List of project codes long *LstPrjCods; // List of project codes
Prj_Order_t SelectedOrder; 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; unsigned CurrentPage;
long PrjCod; // Current project long PrjCod; // Current project
} Prjs; } Prjs;

View File

@ -164,9 +164,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
break; break;
case Pag_PROJECTS: case Pag_PROJECTS:
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
1, 1,
-1L); -1L);
@ -274,9 +274,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
break; break;
case Pag_PROJECTS: case Pag_PROJECTS:
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
1, 1,
-1L); -1L);
@ -370,9 +370,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
break; break;
case Pag_PROJECTS: case Pag_PROJECTS:
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Pagination->LeftPage, Pagination->LeftPage,
-1L); -1L);
@ -477,9 +477,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
break; break;
case Pag_PROJECTS: case Pag_PROJECTS:
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
NumPage, NumPage,
-1L); -1L);
@ -572,9 +572,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
break; break;
case Pag_PROJECTS: case Pag_PROJECTS:
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Pagination->RightPage, Pagination->RightPage,
-1L); -1L);
@ -666,9 +666,9 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
break; break;
case Pag_PROJECTS: case Pag_PROJECTS:
Act_FormStartAnchor (ActSeePrj,Pagination->Anchor); Act_FormStartAnchor (ActSeePrj,Pagination->Anchor);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Pagination->NumPags, Pagination->NumPags,
-1L); -1L);

View File

@ -340,12 +340,12 @@ static void Prj_ShowFormToSelMy_AllPrjs (void)
My_All++) My_All++)
{ {
fprintf (Gbl.F.Out,"<div class=\"%s\">", fprintf (Gbl.F.Out,"<div class=\"%s\">",
(Gbl.Prjs.My_All == My_All) ? "PREF_ON" : (Gbl.Prjs.Filter.My_All == My_All) ? "PREF_ON" :
"PREF_OFF"); "PREF_OFF");
Act_FormStart (ActSeePrj); Act_FormStart (ActSeePrj);
Prj_PutParams (My_All, Prj_PutParams (My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -376,12 +376,12 @@ static void Prj_ShowFormToSelPreassignedOrNotProjects (void)
PreNon++) PreNon++)
{ {
fprintf (Gbl.F.Out,"<div class=\"%s\">", fprintf (Gbl.F.Out,"<div class=\"%s\">",
(Gbl.Prjs.PreNon & (1 << PreNon)) ? "PREF_ON" : (Gbl.Prjs.Filter.PreNon & (1 << PreNon)) ? "PREF_ON" :
"PREF_OFF"); "PREF_OFF");
Act_FormStart (ActSeePrj); Act_FormStart (ActSeePrj);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon ^ (1 << PreNon), // Toggle Gbl.Prjs.Filter.PreNon ^ (1 << PreNon), // Toggle
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -417,12 +417,12 @@ static void Prj_ShowFormToSelHiddenVisiblProjects (void)
HidVis++) HidVis++)
{ {
fprintf (Gbl.F.Out,"<div class=\"%s\">", fprintf (Gbl.F.Out,"<div class=\"%s\">",
(Gbl.Prjs.HidVis & (1 << HidVis)) ? "PREF_ON" : (Gbl.Prjs.Filter.HidVis & (1 << HidVis)) ? "PREF_ON" :
"PREF_OFF"); "PREF_OFF");
Act_FormStart (ActSeePrj); Act_FormStart (ActSeePrj);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis ^ (1 << HidVis), // Toggle Gbl.Prjs.Filter.HidVis ^ (1 << HidVis), // Toggle
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -445,9 +445,9 @@ static void Prj_ShowFormToSelHiddenVisiblProjects (void)
static void Prj_PutCurrentParams (void) static void Prj_PutCurrentParams (void)
{ {
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
Gbl.Prjs.PrjCod); Gbl.Prjs.PrjCod);
@ -513,20 +513,20 @@ static void Prj_PutHiddenParamHidVis (unsigned HidVis)
static void Prj_GetHiddenParamMy_All (void) static void Prj_GetHiddenParamMy_All (void)
{ {
Gbl.Prjs.My_All = (Prj_WhoseProjects_t) Par_GetParToUnsignedLong (ParamMy_AllName, Gbl.Prjs.Filter.My_All = (Prj_WhoseProjects_t) Par_GetParToUnsignedLong (ParamMy_AllName,
0, 0,
Prj_NUM_WHOSE_PROJECTS - 1, Prj_NUM_WHOSE_PROJECTS - 1,
Prj_WHOSE_PROJECTS_DEFAULT); Prj_WHOSE_PROJECTS_DEFAULT);
} }
static void Prj_GetHiddenParamPreNon (void) static void Prj_GetHiddenParamPreNon (void)
{ {
Gbl.Prjs.PreNon = (unsigned) Par_GetParToUnsignedLong (ParamPreNonName, Gbl.Prjs.Filter.PreNon = (unsigned) Par_GetParToUnsignedLong (ParamPreNonName,
0, 0,
(1 << Prj_PREASSIGNED) | (1 << Prj_PREASSIGNED) |
(1 << Prj_NONPREASSIG), (1 << Prj_NONPREASSIG),
(unsigned) Prj_PREASSIGNED_DEFAULT | (unsigned) Prj_PREASSIGNED_DEFAULT |
(unsigned) Prj_NONPREASSIG_DEFAULT); (unsigned) Prj_NONPREASSIG_DEFAULT);
} }
static void Prj_GetHiddenParamHidVis (void) static void Prj_GetHiddenParamHidVis (void)
@ -534,17 +534,17 @@ static void Prj_GetHiddenParamHidVis (void)
switch (Gbl.Usrs.Me.Role.Logged) switch (Gbl.Usrs.Me.Role.Logged)
{ {
case Rol_STD: // Students can view only visible projects 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; break;
case Rol_NET: case Rol_NET:
case Rol_TCH: case Rol_TCH:
case Rol_SYS_ADM: case Rol_SYS_ADM:
Gbl.Prjs.HidVis = (unsigned) Par_GetParToUnsignedLong (ParamHidVisName, Gbl.Prjs.Filter.HidVis = (unsigned) Par_GetParToUnsignedLong (ParamHidVisName,
0, 0,
(1 << Prj_HIDDEN) | (1 << Prj_HIDDEN) |
(1 << Prj_VISIBL), (1 << Prj_VISIBL),
(unsigned) Prj_HIDDEN_DEFAULT | (unsigned) Prj_HIDDEN_DEFAULT |
(unsigned) Prj_VISIBL_DEFAULT); (unsigned) Prj_VISIBL_DEFAULT);
break; break;
default: default:
Lay_ShowErrorAndExit ("Wrong role."); Lay_ShowErrorAndExit ("Wrong role.");
@ -589,9 +589,9 @@ static void Prj_ShowProjectsHead (bool PrintView)
if (!PrintView) if (!PrintView)
{ {
Act_FormStart (ActSeePrj); Act_FormStart (ActSeePrj);
Prj_PutParams (Gbl.Prjs.My_All, Prj_PutParams (Gbl.Prjs.Filter.My_All,
Gbl.Prjs.PreNon, Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.HidVis, Gbl.Prjs.Filter.HidVis,
Order, Order,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -2087,13 +2087,13 @@ void Prj_GetListProjects (void)
Prj_FreeListProjects (); Prj_FreeListProjects ();
/***** Get list of projects from database *****/ /***** Get list of projects from database *****/
if (Gbl.Prjs.PreNon == 0 || // All selectors are off if (Gbl.Prjs.Filter.PreNon == 0 || // All selectors are off
Gbl.Prjs.HidVis == 0) // All selectors are off Gbl.Prjs.Filter.HidVis == 0) // All selectors are off
Gbl.Prjs.Num = 0; // Nothing to get from database Gbl.Prjs.Num = 0; // Nothing to get from database
else else
{ {
/* Preassigned subquery */ /* Preassigned subquery */
switch (Gbl.Prjs.PreNon) switch (Gbl.Prjs.Filter.PreNon)
{ {
case (1 << Prj_PREASSIGNED): case (1 << Prj_PREASSIGNED):
Str_Copy (PreNonSubQuery," AND projects.Preassigned='Y'", Str_Copy (PreNonSubQuery," AND projects.Preassigned='Y'",
@ -2118,7 +2118,7 @@ void Prj_GetListProjects (void)
case Rol_NET: case Rol_NET:
case Rol_TCH: case Rol_TCH:
case Rol_SYS_ADM: case Rol_SYS_ADM:
switch (Gbl.Prjs.HidVis) switch (Gbl.Prjs.Filter.HidVis)
{ {
case (1 << Prj_HIDDEN): case (1 << Prj_HIDDEN):
Str_Copy (HidVisSubQuery," AND projects.Hidden='Y'", Str_Copy (HidVisSubQuery," AND projects.Hidden='Y'",
@ -2165,7 +2165,7 @@ void Prj_GetListProjects (void)
} }
/* Query */ /* Query */
if (Gbl.Prjs.My_All == Prj_MY__PROJECTS) if (Gbl.Prjs.Filter.My_All == Prj_MY__PROJECTS)
switch (Gbl.Prjs.SelectedOrder) switch (Gbl.Prjs.SelectedOrder)
{ {
case Prj_ORDER_START_TIME: case Prj_ORDER_START_TIME: