From c8bb6f7d884531b693a3dc027f452d903907c258 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Fri, 29 Sep 2017 15:05:23 +0200 Subject: [PATCH] Version 17.11 --- swad_changelog.h | 3 +- swad_group.c | 4 +- swad_project.c | 127 +++++++++++++++++++++++++++++++++++++++-------- swad_text.c | 36 +++++++------- 4 files changed, 127 insertions(+), 43 deletions(-) diff --git a/swad_changelog.h b/swad_changelog.h index 15a35f893..aad23a0e4 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -252,13 +252,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 17.10.7 (2017-09-29)" +#define Log_PLATFORM_VERSION "SWAD 17.11 (2017-09-29)" #define CSS_FILE "swad17.0.css" #define JS_FILE "swad16.206.3.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.11: Sep 29, 2017 Select which projects to show: only my projects or all projects. (231531 lines) Version 17.10.7: Sep 29, 2017 Icons to select which projects to show: only my projects or all projects. (231456 lines) Version 17.10.6: Sep 25, 2017 Fixed bug when receiving projects. (231357 lines) Version 17.10.5: Sep 25, 2017 Removed unused code in projects. (231354 lines) diff --git a/swad_group.c b/swad_group.c index abff80aec..361ea2971 100644 --- a/swad_group.c +++ b/swad_group.c @@ -4802,7 +4802,7 @@ void Grp_PutParamAllGroups (void) } /*****************************************************************************/ -/****** Parameter to show only my groups or all groups or in timetable *******/ +/************* Parameter to show only my groups or all groups ****************/ /*****************************************************************************/ void Grp_PutParamWhichGrps (void) @@ -4868,7 +4868,7 @@ void Grp_GetParamWhichGrps (void) if (!AlreadyGot) { - /***** Get which grous (my groups or all groups) *****/ + /***** Get which groups (my groups or all groups) *****/ /* Set default */ switch (Gbl.Action.Act) { diff --git a/swad_project.c b/swad_project.c index dea706b07..b05132a61 100644 --- a/swad_project.c +++ b/swad_project.c @@ -70,8 +70,12 @@ typedef enum /*****************************************************************************/ static void Prj_ShowProjectsInCurrentPage (void); + static void Prj_PutFormToSelectWhichProjecsToShow (void); static void Prj_ShowFormToSelWhichPrjs (Act_Action_t Action,void (*FuncParams) ()); +static void Prj_PutParamWhichPrjs (void); +static void Prj_GetParamWhichPrjs (void); + static void Prj_ShowProjectsHead (bool PrintView); static void Prj_ShowTableAllProjectsHead (void); static bool Prj_CheckIfICanCreateProjects (void); @@ -141,6 +145,7 @@ void Prj_SeeProjects (void) { /***** Get parameters *****/ Prj_GetParamPrjOrder (); + Prj_GetParamWhichPrjs (); Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS); /***** Show all the projects *****/ @@ -159,6 +164,7 @@ void Prj_ShowTableAllProjects (void) /***** Get parameters *****/ Prj_GetParamPrjOrder (); + Prj_GetParamWhichPrjs (); /***** Get list of projects *****/ Prj_GetListProjects (); @@ -319,6 +325,38 @@ static void Prj_ShowFormToSelWhichPrjs (Act_Action_t Action,void (*FuncParams) ( fprintf (Gbl.F.Out,""); } +/*****************************************************************************/ +/************* Parameter to show only my projects or all projects ************/ +/*****************************************************************************/ + +static void Prj_PutParamWhichPrjs (void) + { + Prj_GetParamWhichPrjs (); + + Par_PutHiddenParamUnsigned ("WhichPrjs",(unsigned) Gbl.CurrentCrs.Prjs.WhichPrjs); + } + +/*****************************************************************************/ +/*********** Get whether to show only my projects or all projects ************/ +/*****************************************************************************/ + +static void Prj_GetParamWhichPrjs (void) + { + static bool AlreadyGot = false; + + if (!AlreadyGot) + { + /***** Get which projects (my projects or all projects) *****/ + Gbl.CurrentCrs.Prjs.WhichPrjs = (Prj_WhichProjects_t) + Par_GetParToUnsignedLong ("WhichPrjs", + 0, + Prj_NUM_WHICH_PROJECTS - 1, + (unsigned long) Prj_WHICH_PROJECTS_DEFAULT); + + AlreadyGot = true; + } + } + /*****************************************************************************/ /******************* Write header with fields of a project *******************/ /*****************************************************************************/ @@ -340,6 +378,7 @@ static void Prj_ShowProjectsHead (bool PrintView) if (!PrintView) { Act_FormStart (ActSeePrj); + Prj_PutParamWhichPrjs (); Pag_PutHiddenParamPagNum (Pag_PROJECTS,Gbl.Prjs.CurrentPage); Par_PutHiddenParamUnsigned ("Order",(unsigned) Order); Act_LinkFormSubmit (Txt_PROJECT_ORDER_HELP[Order],"TIT_TBL",NULL); @@ -1322,6 +1361,7 @@ static void Prj_ReqRemUsrFromPrj (Prj_RoleInProject_t RoleInProject) /***** Get parameters *****/ Prj_GetParamPrjOrder (); + Prj_GetParamWhichPrjs (); Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS); if ((Prj.PrjCod = Prj_GetParamPrjCod ()) == -1L) Lay_ShowErrorAndExit ("Code of project is missing."); @@ -1404,6 +1444,7 @@ static void Prj_RemUsrFromPrj (Prj_RoleInProject_t RoleInProject) /***** Get parameters *****/ Prj_GetParamPrjOrder (); + Prj_GetParamWhichPrjs (); Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS); if ((Prj.PrjCod = Prj_GetParamPrjCod ()) == -1L) Lay_ShowErrorAndExit ("Code of project is missing."); @@ -1534,6 +1575,7 @@ static void Prj_PutParams (void) if (Gbl.Prjs.PrjCodToEdit > 0) Prj_PutParamPrjCod (Gbl.Prjs.PrjCodToEdit); Prj_PutHiddenParamPrjOrder (); + Prj_PutParamWhichPrjs (); Pag_PutHiddenParamPagNum (Pag_PROJECTS,Gbl.Prjs.CurrentPage); if (Gbl.Usrs.Other.UsrDat.UsrCod > 0) Usr_PutParamOtherUsrCodEncrypted (); @@ -1579,31 +1621,57 @@ void Prj_GetListProjects (void) switch (Gbl.Prjs.SelectedOrder) { case Prj_ORDER_START_TIME: - sprintf (OrderBySubQuery,"StartTime DESC," - "EndTime DESC," - "Title"); + if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + sprintf (OrderBySubQuery,"projects.StartTime DESC," + "projects.EndTime DESC," + "projects.Title"); + else + sprintf (OrderBySubQuery,"StartTime DESC," + "EndTime DESC," + "Title"); break; case Prj_ORDER_END_TIME: - sprintf (OrderBySubQuery,"EndTime DESC," - "StartTime DESC," - "Title"); + if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + sprintf (OrderBySubQuery,"projects.EndTime DESC," + "projects.StartTime DESC," + "projects.Title"); + else + sprintf (OrderBySubQuery,"EndTime DESC," + "StartTime DESC," + "Title"); break; case Prj_ORDER_TITLE: - sprintf (OrderBySubQuery,"Title," - "StartTime DESC," - "EndTime DESC"); + if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + sprintf (OrderBySubQuery,"projects.Title," + "projects.StartTime DESC," + "projects.EndTime DESC"); + else + sprintf (OrderBySubQuery,"Title," + "StartTime DESC," + "EndTime DESC"); break; case Prj_ORDER_DEPARTMENT: // Not applicable break; } /* Query */ - sprintf (Query,"SELECT PrjCod" - " FROM projects" - " WHERE CrsCod=%ld%s" - " ORDER BY %s", - Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, - OrderBySubQuery); + if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + sprintf (Query,"SELECT projects.PrjCod" + " FROM projects,prj_usr" + " WHERE projects.CrsCod=%ld%s" + " AND projects.PrjCod=prj_usr.PrjCod" + " AND prj_usr.UsrCod=%ld" + " ORDER BY %s", + Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, + Gbl.Usrs.Me.UsrDat.UsrCod, + OrderBySubQuery); + else // Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ALL_PROJECTS + sprintf (Query,"SELECT PrjCod" + " FROM projects" + " WHERE CrsCod=%ld%s" + " ORDER BY %s", + Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, + OrderBySubQuery); break; case Prj_ORDER_DEPARTMENT: /* Hidden subquery */ @@ -1625,13 +1693,25 @@ void Prj_GetListProjects (void) "projects.Title"); /* Query */ - sprintf (Query,"SELECT projects.PrjCod" - " FROM projects LEFT JOIN departments" - " ON projects.DptCod=departments.DptCod" - " WHERE projects.CrsCod=%ld%s" - " ORDER BY %s", - Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, - OrderBySubQuery); + if (Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ONLY_MY_PROJECTS) + sprintf (Query,"SELECT projects.PrjCod" + " FROM prj_usr,projects LEFT JOIN departments" + " ON projects.DptCod=departments.DptCod" + " WHERE projects.CrsCod=%ld%s" + " AND projects.PrjCod=prj_usr.PrjCod" + " AND prj_usr.UsrCod=%ld" + " ORDER BY %s", + Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, + Gbl.Usrs.Me.UsrDat.UsrCod, + OrderBySubQuery); + else // Gbl.CurrentCrs.Prjs.WhichPrjs == Prj_ALL_PROJECTS + sprintf (Query,"SELECT projects.PrjCod" + " FROM projects LEFT JOIN departments" + " ON projects.DptCod=departments.DptCod" + " WHERE projects.CrsCod=%ld%s" + " ORDER BY %s", + Gbl.CurrentCrs.Crs.CrsCod,HiddenSubQuery, + OrderBySubQuery); break; } @@ -1860,6 +1940,7 @@ void Prj_ReqRemProject (void) /***** Get parameters *****/ Prj_GetParamPrjOrder (); + Prj_GetParamWhichPrjs (); Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS); if ((Prj.PrjCod = Prj_GetParamPrjCod ()) == -1L) Lay_ShowErrorAndExit ("Code of project is missing."); @@ -1902,6 +1983,7 @@ void Prj_RemoveProject (void) /***** Get parameters *****/ Prj_GetParamPrjOrder (); + Prj_GetParamWhichPrjs (); Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS); if ((Prj.PrjCod = Prj_GetParamPrjCod ()) == -1L) Lay_ShowErrorAndExit ("Code of project is missing."); @@ -2057,6 +2139,7 @@ static void Prj_RequestCreatOrEditPrj (long PrjCod) /***** Get parameters *****/ Prj_GetParamPrjOrder (); + Prj_GetParamWhichPrjs (); Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS); /***** Get the code of the project *****/ diff --git a/swad_text.c b/swad_text.c index e9055d500..44b811f8a 100644 --- a/swad_text.c +++ b/swad_text.c @@ -31168,43 +31168,43 @@ const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT] = const char *Txt_PROJECT_WHICH_PROJECTS[2] = { #if L==1 - "Només els meus grups" + "Només els meus projectes" #elif L==2 - "Nur meine Gruppen" + "Nur meine Projekte" #elif L==3 - "Only my groups" + "Only my projects" #elif L==4 - "Solo mis grupos" + "Solo mis proyectos" #elif L==5 - "Uniquement mes groupes" + "Uniquement mes projets" #elif L==6 - "Solo mis grupos" // Okoteve traducción + "Solo mis proyectos" // Okoteve traducción #elif L==7 - "Solo i miei gruppi" + "Solo i miei progetti" #elif L==8 - "Tylko moje grupy" + "Tylko moje projekty" #elif L==9 - "Apenas os meus grupos" + "Apenas os meus projetos" #endif , #if L==1 - "Tots els grups" + "Tots els projectes" #elif L==2 - "Alle Gruppen" + "Alle Projekte" #elif L==3 - "All groups" + "All projects" #elif L==4 - "Todos los grupos" + "Todos los proyectos" #elif L==5 - "Tous les groupes" + "Tous les projets" #elif L==6 - "Todos los grupos" // Okoteve traducción + "Todos los proyectos" // Okoteve traducción #elif L==7 - "Tutti i gruppi" + "Tutti i progetti" #elif L==8 - "Wszystkie grupy" + "Wszystkie projekty" #elif L==9 - "Todos os grupos" + "Todos os projetos" #endif };