From f8203350a9ab97636129dfcd5efdfa94d29cea1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sun, 24 Sep 2017 13:35:19 +0200 Subject: [PATCH] Version 17.9.2 --- swad_changelog.h | 3 +- swad_project.c | 120 +++++++++++++++++++++++++++++++---------------- 2 files changed, 82 insertions(+), 41 deletions(-) diff --git a/swad_changelog.h b/swad_changelog.h index b8c8e63fb..f5787bbb1 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -252,13 +252,14 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 17.9.1 (2017-09-24)" +#define Log_PLATFORM_VERSION "SWAD 17.9.2 (2017-09-24)" #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.9.2: Sep 24, 2017 Header in listing of all projects in a table. (231206 lines) Version 17.9.1: Sep 24, 2017 Changes in listing of all projects in a table. (231172 lines) Version 17.9: Sep 24, 2017 Action to show all projects in a table. (231151 lines) 1 change necessary in database: diff --git a/swad_project.c b/swad_project.c index 4ff564a67..f0031c65d 100644 --- a/swad_project.c +++ b/swad_project.c @@ -66,8 +66,9 @@ typedef enum /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static void Prj_ShowAllProjects (void); -static void Prj_PutHeadForSeeing (bool PrintView); +static void Prj_ShowProjectsInCurrentPage (void); +static void Prj_ShowProjectsHead (bool PrintView); +static void Prj_ShowTableAllProjectsHead (void); static bool Prj_CheckIfICanCreateProjects (void); static void Prj_PutIconsListProjects (void); static void Prj_PutIconToCreateNewPrj (void); @@ -85,7 +86,7 @@ static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj, char *TxtField); static void Prj_ShowOneProjectUsrs (const struct Project *Prj, Prj_ProjectView_t ProjectView, - const char *Label,Prj_RoleInProject_t RoleInProject); + Prj_RoleInProject_t RoleInProject); static void Prj_ShowTableAllProjectsUsrs (const struct Project *Prj, Prj_RoleInProject_t RoleInProject); static void Prj_ShowOneProjectWriteUsrs (long PrjCod,Prj_ProjectView_t ProjectView, @@ -131,7 +132,7 @@ void Prj_SeeProjects (void) Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS); /***** Show all the projects *****/ - Prj_ShowAllProjects (); + Prj_ShowProjectsInCurrentPage (); } /*****************************************************************************/ @@ -154,6 +155,7 @@ void Prj_ShowTableAllProjects (void) /***** Table head *****/ Tbl_StartTableWide (2); + Prj_ShowTableAllProjectsHead (); /***** Write all the projects *****/ for (NumPrj = 0; @@ -175,10 +177,10 @@ void Prj_ShowTableAllProjects (void) } /*****************************************************************************/ -/***************************** Show the projects *****************************/ +/****************** Show the projects in current page ************************/ /*****************************************************************************/ -static void Prj_ShowAllProjects (void) +static void Prj_ShowProjectsInCurrentPage (void) { extern const char *Hlp_ASSESSMENT_Projects; extern const char *Txt_Projects; @@ -213,7 +215,7 @@ static void Prj_ShowAllProjects (void) /***** Table head *****/ Tbl_StartTableWideMargin (5); - Prj_PutHeadForSeeing (false); // Not print view + Prj_ShowProjectsHead (false); // Not print view /***** Write all the projects *****/ for (NumPrj = Pagination.FirstItemVisible; @@ -257,7 +259,7 @@ static void Prj_ShowAllProjects (void) /******************* Write header with fields of a project *******************/ /*****************************************************************************/ -static void Prj_PutHeadForSeeing (bool PrintView) +static void Prj_ShowProjectsHead (bool PrintView) { extern const char *Txt_PROJECT_ORDER_HELP[Prj_NUM_ORDERS]; extern const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS]; @@ -293,6 +295,42 @@ static void Prj_PutHeadForSeeing (bool PrintView) } } +static void Prj_ShowTableAllProjectsHead (void) + { + extern const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS]; + extern const char *Txt_Description; + extern const char *Txt_Required_knowledge; + extern const char *Txt_Required_materials; + extern const char *Txt_Preassigned_QUESTION; + extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT]; + Prj_Order_t Order; + Prj_RoleInProject_t RoleInProject; + + fprintf (Gbl.F.Out,""); + for (Order = (Prj_Order_t) 0; + Order <= (Prj_Order_t) (Prj_NUM_ORDERS - 1); + Order++) + fprintf (Gbl.F.Out,"%s", + Txt_PROJECT_ORDER[Order]); + + fprintf (Gbl.F.Out,"%s", + Txt_Description); + fprintf (Gbl.F.Out,"%s", + Txt_Required_knowledge); + fprintf (Gbl.F.Out,"%s", + Txt_Required_materials); + fprintf (Gbl.F.Out,"%s", + Txt_Preassigned_QUESTION); + + for (RoleInProject = Prj_ROLE_STD; + RoleInProject <= Prj_ROLE_EVA; + RoleInProject++) + fprintf (Gbl.F.Out,"%s", + Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]); + + fprintf (Gbl.F.Out,""); + } + /*****************************************************************************/ /********************** Check if I can create projects ***********************/ /*****************************************************************************/ @@ -388,7 +426,7 @@ void Prj_PrintOneProject (void) /***** Table head *****/ Tbl_StartTableWideMargin (2); - Prj_PutHeadForSeeing (true); // Print view + Prj_ShowProjectsHead (true); // Print view /***** Write project *****/ Prj_ShowOneProject (&Prj,Prj_PRINT_ONE_PROJECT); @@ -413,7 +451,6 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie extern const char *Txt_Required_knowledge; extern const char *Txt_Required_materials; extern const char *Txt_Preassigned_QUESTION; - extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT]; Prj_RoleInProject_t RoleInProject; static unsigned UniqueId = 0; @@ -525,8 +562,7 @@ static void Prj_ShowOneProject (struct Project *Prj,Prj_ProjectView_t ProjectVie for (RoleInProject = Prj_ROLE_STD; RoleInProject <= Prj_ROLE_EVA; RoleInProject++) - Prj_ShowOneProjectUsrs (Prj,ProjectView, - Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject],RoleInProject); + Prj_ShowOneProjectUsrs (Prj,ProjectView,RoleInProject); Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; } @@ -544,7 +580,6 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj) extern const char *Txt_Required_knowledge; extern const char *Txt_Required_materials; extern const char *Txt_Preassigned_QUESTION; - extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT]; Prj_RoleInProject_t RoleInProject; static unsigned UniqueId = 0; @@ -730,7 +765,7 @@ static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj, TxtField,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML /***** Write text *****/ - fprintf (Gbl.F.Out,"" + fprintf (Gbl.F.Out,"" "%s" "", Gbl.RowEvenOdd, @@ -745,8 +780,10 @@ static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj, static void Prj_ShowOneProjectUsrs (const struct Project *Prj, Prj_ProjectView_t ProjectView, - const char *Label,Prj_RoleInProject_t RoleInProject) + Prj_RoleInProject_t RoleInProject) { + extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT]; + /***** Row with label and listing of users *****/ fprintf (Gbl.F.Out,""); switch (ProjectView) @@ -757,7 +794,7 @@ static void Prj_ShowOneProjectUsrs (const struct Project *Prj, Gbl.RowEvenOdd, Prj->Hidden ? "ASG_LABEL_LIGHT" : "ASG_LABEL", - Label, + Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject], Gbl.RowEvenOdd, Prj->Hidden ? "DAT_LIGHT" : "DAT"); @@ -767,14 +804,14 @@ static void Prj_ShowOneProjectUsrs (const struct Project *Prj, "", Prj->Hidden ? "ASG_LABEL_LIGHT" : "ASG_LABEL", - Label, + Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject], Prj->Hidden ? "DAT_LIGHT" : "DAT"); break; case Prj_EDIT_ONE_PROJECT: fprintf (Gbl.F.Out,"%s:" "", - Label); + Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]); break; } Prj_ShowOneProjectWriteUsrs (Prj->PrjCod,ProjectView,RoleInProject); @@ -914,28 +951,33 @@ static void Prj_ShowTableAllProjectsWriteUsrs (long PrjCod, /***** Get users in project from database *****/ NumUsrs = Prj_GetUsrsInPrj (PrjCod,RoleInProject,&mysql_res); - /***** Write users *****/ - for (NumUsr = 0; - NumUsr < NumUsrs; - NumUsr++) + if (NumUsrs) { - /* Get user's code */ - row = mysql_fetch_row (mysql_res); - Gbl.Usrs.Other.UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]); + fprintf (Gbl.F.Out,""); } /***** Free structure that stores the query result *****/ @@ -1848,7 +1890,6 @@ static void Prj_RequestCreatOrEditPrj (long PrjCod) extern const char *Txt_Create_project; extern const char *Txt_Save; extern const char *Txt_Project_members; - extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT]; struct Project Prj; bool ItsANewProject; Prj_RoleInProject_t RoleInProject; @@ -1995,8 +2036,7 @@ static void Prj_RequestCreatOrEditPrj (long PrjCod) for (RoleInProject = Prj_ROLE_STD; RoleInProject <= Prj_ROLE_EVA; RoleInProject++) - Prj_ShowOneProjectUsrs (&Prj,Prj_EDIT_ONE_PROJECT, - Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject],RoleInProject); + Prj_ShowOneProjectUsrs (&Prj,Prj_EDIT_ONE_PROJECT,RoleInProject); Box_EndBoxTable (); } @@ -2007,7 +2047,7 @@ static void Prj_RequestCreatOrEditPrj (long PrjCod) Prj_FreeMemProject (&Prj); /***** Show current projects, if any *****/ - Prj_ShowAllProjects (); + Prj_ShowProjectsInCurrentPage (); } /*****************************************************************************/