Version 17.24.2

This commit is contained in:
Antonio Cañas Vargas 2017-10-10 12:52:02 +02:00
parent 6916ce48b3
commit 14275af952
5 changed files with 56 additions and 74 deletions

View File

@ -254,13 +254,14 @@
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 17.24.1 (2017-10-10)" #define Log_PLATFORM_VERSION "SWAD 17.24.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.24.2: Oct 10, 2017 Code refactoring in projects filter. (234209 lines)
Version 17.24.1: Oct 10, 2017 Changes in pagination of projects. (234228 lines) Version 17.24.1: Oct 10, 2017 Changes in pagination of projects. (234228 lines)
Version 17.24: Oct 10, 2017 Filter projects by department. (234227 lines) Version 17.24: Oct 10, 2017 Filter projects by department. (234227 lines)
Version 17.23.2: Oct 10, 2017 Code refactoring in filter of projects. (234137 lines) Version 17.23.2: Oct 10, 2017 Code refactoring in filter of projects. (234137 lines)

View File

@ -572,13 +572,7 @@ struct Globals
} Asgs; } Asgs;
struct struct
{ {
struct struct Prj_Filter Filter;
{
Prj_WhoseProjects_t My_All; // Show my / all projects
unsigned PreNon; // Show preassigned / non preassigned projects
unsigned HidVis; // Show hidden / visible projects
long DptCod; // Show projects of this department
} 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

View File

@ -164,10 +164,7 @@ 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.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
1, 1,
-1L); -1L);
@ -275,10 +272,7 @@ 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.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
1, 1,
-1L); -1L);
@ -372,10 +366,7 @@ 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.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Pagination->LeftPage, Pagination->LeftPage,
-1L); -1L);
@ -480,10 +471,7 @@ 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.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
NumPage, NumPage,
-1L); -1L);
@ -576,10 +564,7 @@ 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.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Pagination->RightPage, Pagination->RightPage,
-1L); -1L);
@ -671,10 +656,7 @@ 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.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Pagination->NumPags, Pagination->NumPags,
-1L); -1L);

View File

@ -337,6 +337,7 @@ static void Prj_ShowProjectsInCurrentPage (void)
static void Prj_ShowFormToFilterByMy_All (void) static void Prj_ShowFormToFilterByMy_All (void)
{ {
extern const char *Txt_PROJECT_MY_ALL_PROJECTS[Prj_NUM_WHOSE_PROJECTS]; extern const char *Txt_PROJECT_MY_ALL_PROJECTS[Prj_NUM_WHOSE_PROJECTS];
struct Prj_Filter Filter;
Prj_WhoseProjects_t My_All; Prj_WhoseProjects_t My_All;
static const char *WhoseProjectsImage[Prj_NUM_WHOSE_PROJECTS] = static const char *WhoseProjectsImage[Prj_NUM_WHOSE_PROJECTS] =
{ {
@ -353,10 +354,11 @@ static void Prj_ShowFormToFilterByMy_All (void)
(Gbl.Prjs.Filter.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, Filter.My_All = My_All;
Gbl.Prjs.Filter.PreNon, Filter.PreNon = Gbl.Prjs.Filter.PreNon;
Gbl.Prjs.Filter.HidVis, Filter.HidVis = Gbl.Prjs.Filter.HidVis;
Gbl.Prjs.Filter.DptCod, Filter.DptCod = Gbl.Prjs.Filter.DptCod;
Prj_PutParams (&Filter,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -379,6 +381,7 @@ static void Prj_ShowFormToFilterByMy_All (void)
static void Prj_ShowFormToFilterByPreassignedNonPreassig (void) static void Prj_ShowFormToFilterByPreassignedNonPreassig (void)
{ {
extern const char *Txt_PROJECT_PREASSIGNED_NONPREASSIGNED_PLURAL[Prj_NUM_PREASSIGNED_NONPREASSIG]; extern const char *Txt_PROJECT_PREASSIGNED_NONPREASSIGNED_PLURAL[Prj_NUM_PREASSIGNED_NONPREASSIG];
struct Prj_Filter Filter;
Prj_PreassignedNonpreassig_t PreNon; Prj_PreassignedNonpreassig_t PreNon;
fprintf (Gbl.F.Out,"<div class=\"PREF_CONTAINER\">"); fprintf (Gbl.F.Out,"<div class=\"PREF_CONTAINER\">");
@ -390,10 +393,11 @@ static void Prj_ShowFormToFilterByPreassignedNonPreassig (void)
(Gbl.Prjs.Filter.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.Filter.My_All, Filter.My_All = Gbl.Prjs.Filter.My_All;
Gbl.Prjs.Filter.PreNon ^ (1 << PreNon), // Toggle Filter.PreNon = Gbl.Prjs.Filter.PreNon ^ (1 << PreNon); // Toggle
Gbl.Prjs.Filter.HidVis, Filter.HidVis = Gbl.Prjs.Filter.HidVis;
Gbl.Prjs.Filter.DptCod, Filter.DptCod = Gbl.Prjs.Filter.DptCod;
Prj_PutParams (&Filter,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -416,6 +420,7 @@ static void Prj_ShowFormToFilterByPreassignedNonPreassig (void)
static void Prj_ShowFormToFilterByHidden (void) static void Prj_ShowFormToFilterByHidden (void)
{ {
extern const char *Txt_PROJECT_HIDDEN_VISIBL_PROJECTS[Prj_NUM_HIDDEN_VISIBL]; extern const char *Txt_PROJECT_HIDDEN_VISIBL_PROJECTS[Prj_NUM_HIDDEN_VISIBL];
struct Prj_Filter Filter;
Prj_HiddenVisibl_t HidVis; Prj_HiddenVisibl_t HidVis;
static const char *HiddenVisiblImage[Prj_NUM_HIDDEN_VISIBL] = static const char *HiddenVisiblImage[Prj_NUM_HIDDEN_VISIBL] =
{ {
@ -432,10 +437,11 @@ static void Prj_ShowFormToFilterByHidden (void)
(Gbl.Prjs.Filter.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.Filter.My_All, Filter.My_All = Gbl.Prjs.Filter.My_All;
Gbl.Prjs.Filter.PreNon, Filter.PreNon = Gbl.Prjs.Filter.PreNon;
Gbl.Prjs.Filter.HidVis ^ (1 << HidVis), // Toggle Filter.HidVis = Gbl.Prjs.Filter.HidVis ^ (1 << HidVis); // Toggle
Gbl.Prjs.Filter.DptCod, Filter.DptCod = Gbl.Prjs.Filter.DptCod;
Prj_PutParams (&Filter,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -459,14 +465,16 @@ static void Prj_ShowFormToFilterByHidden (void)
static void Prj_ShowFormToFilterByDpt (void) static void Prj_ShowFormToFilterByDpt (void)
{ {
extern const char *Txt_Any_department; extern const char *Txt_Any_department;
struct Prj_Filter Filter;
/***** Start form *****/ /***** Start form *****/
fprintf (Gbl.F.Out,"<div>"); fprintf (Gbl.F.Out,"<div>");
Act_FormStart (ActSeePrj); Act_FormStart (ActSeePrj);
Prj_PutParams (Gbl.Prjs.Filter.My_All, Filter.My_All = Gbl.Prjs.Filter.My_All;
Gbl.Prjs.Filter.PreNon, Filter.PreNon = Gbl.Prjs.Filter.PreNon;
Gbl.Prjs.Filter.HidVis, Filter.HidVis = Gbl.Prjs.Filter.HidVis;
Prj_FILTER_DPT_DEFAULT, // Do not put department parameter here Filter.DptCod = Prj_FILTER_DPT_DEFAULT; // Do not put department parameter here
Prj_PutParams (&Filter,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);
@ -490,10 +498,7 @@ static void Prj_ShowFormToFilterByDpt (void)
static void Prj_PutCurrentParams (void) static void Prj_PutCurrentParams (void)
{ {
Prj_PutParams (Gbl.Prjs.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Gbl.Prjs.SelectedOrder, Gbl.Prjs.SelectedOrder,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
Gbl.Prjs.PrjCod); Gbl.Prjs.PrjCod);
@ -503,28 +508,25 @@ static void Prj_PutCurrentParams (void)
when one or more parameters must be passed explicitely. when one or more parameters must be passed explicitely.
Each parameter is passed only if its value is distinct to default. */ Each parameter is passed only if its value is distinct to default. */
void Prj_PutParams (Prj_WhoseProjects_t My_All, void Prj_PutParams (struct Prj_Filter *Filter,
unsigned PreNon,
unsigned HidVis,
long DptCod,
Prj_Order_t Order, Prj_Order_t Order,
unsigned NumPage, unsigned NumPage,
long PrjCod) long PrjCod)
{ {
/***** Put filter parameters (which projects to show) *****/ /***** Put filter parameters (which projects to show) *****/
if (My_All != Prj_FILTER_WHOSE_PROJECTS_DEFAULT) if (Filter->My_All != Prj_FILTER_WHOSE_PROJECTS_DEFAULT)
Prj_PutHiddenParamMy_All (My_All); Prj_PutHiddenParamMy_All (Filter->My_All);
if (PreNon != ((unsigned) Prj_FILTER_PREASSIGNED_DEFAULT | if (Filter->PreNon != ((unsigned) Prj_FILTER_PREASSIGNED_DEFAULT |
(unsigned) Prj_FILTER_NONPREASSIG_DEFAULT)) (unsigned) Prj_FILTER_NONPREASSIG_DEFAULT))
Prj_PutHiddenParamPreNon (PreNon); Prj_PutHiddenParamPreNon (Filter->PreNon);
if (HidVis != ((unsigned) Prj_FILTER_HIDDEN_DEFAULT | if (Filter->HidVis != ((unsigned) Prj_FILTER_HIDDEN_DEFAULT |
(unsigned) Prj_FILTER_VISIBL_DEFAULT)) (unsigned) Prj_FILTER_VISIBL_DEFAULT))
Prj_PutHiddenParamHidVis (HidVis); Prj_PutHiddenParamHidVis (Filter->HidVis);
if (DptCod != Prj_FILTER_DPT_DEFAULT) if (Filter->DptCod != Prj_FILTER_DPT_DEFAULT)
Prj_PutHiddenParamDptCod (DptCod); Prj_PutHiddenParamDptCod (Filter->DptCod);
/***** Put order field *****/ /***** Put order field *****/
if (Order != Prj_ORDER_DEFAULT) if (Order != Prj_ORDER_DEFAULT)
@ -655,10 +657,7 @@ static void Prj_ShowProjectsHead (bool PrintView)
if (!PrintView) if (!PrintView)
{ {
Act_FormStart (ActSeePrj); Act_FormStart (ActSeePrj);
Prj_PutParams (Gbl.Prjs.Filter.My_All, Prj_PutParams (&Gbl.Prjs.Filter,
Gbl.Prjs.Filter.PreNon,
Gbl.Prjs.Filter.HidVis,
Gbl.Prjs.Filter.DptCod,
Order, Order,
Gbl.Prjs.CurrentPage, Gbl.Prjs.CurrentPage,
-1L); -1L);

View File

@ -71,6 +71,15 @@ typedef enum
/* Project department */ /* Project department */
#define Prj_FILTER_DPT_DEFAULT -1L // Any department #define Prj_FILTER_DPT_DEFAULT -1L // Any department
/* Struct with all filters */
struct Prj_Filter
{
Prj_WhoseProjects_t My_All; // Show my / all projects
unsigned PreNon; // Show preassigned / non preassigned projects
unsigned HidVis; // Show hidden / visible projects
long DptCod; // Show projects of this department
};
/***** Order listing of projects by... *****/ /***** Order listing of projects by... *****/
#define Prj_NUM_ORDERS 4 #define Prj_NUM_ORDERS 4
typedef enum typedef enum
@ -133,10 +142,7 @@ struct Project
void Prj_SeeProjects (void); void Prj_SeeProjects (void);
void Prj_ShowTableAllProjects (void); void Prj_ShowTableAllProjects (void);
void Prj_PutParams (Prj_WhoseProjects_t My_All, void Prj_PutParams (struct Prj_Filter *Filter,
unsigned PreNon,
unsigned HidVis,
long DptCod,
Prj_Order_t Order, Prj_Order_t Order,
unsigned NumPage, unsigned NumPage,
long PrjCod); long PrjCod);