From 5c093ff11eec5edf69403cfe633efaaf8bd354d8 Mon Sep 17 00:00:00 2001 From: acanas Date: Thu, 29 Sep 2022 00:04:41 +0200 Subject: [PATCH] Version 22.32: Sep 29, 2022 Code refactoring in program resources, assignments and projects. --- swad_action.c | 2 +- swad_assignment.c | 11 ++++ swad_assignment_resource.c | 10 ++-- swad_attendance_resource.c | 4 +- swad_browser.c | 7 ++- swad_browser_resource.c | 43 ++++++++++++---- swad_browser_resource.h | 3 +- swad_call_for_exam_resource.c | 4 +- swad_changelog.h | 3 +- swad_exam_resource.c | 4 +- swad_forum_resource.c | 3 +- swad_game_resource.c | 5 +- swad_program_resource.c | 6 +-- swad_project.c | 95 +++++++++++++++++++---------------- swad_project.h | 5 +- swad_project_resource.c | 5 +- swad_survey_resource.c | 4 +- swad_text.c | 26 +++++----- 18 files changed, 153 insertions(+), 87 deletions(-) diff --git a/swad_action.c b/swad_action.c index d4da6a0f..f84c8be7 100644 --- a/swad_action.c +++ b/swad_action.c @@ -627,7 +627,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = [ActUnlAllPrj ] = {1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnloSelectedPrjsEdition ,NULL}, [ActFrmNewPrj ] = {1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL}, [ActEdiOnePrj ] = {1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL}, - [ActSeeOnePrj ] = {1949,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowProjectWithFileBrowser ,NULL}, + [ActSeeOnePrj ] = {1949,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileBrowserOrWorks ,NULL}, [ActPrnOnePrj ] = {1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL}, [ActNewPrj ] = {1678,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL}, [ActChgPrj ] = {1679,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReceiveFormProject ,NULL}, diff --git a/swad_assignment.c b/swad_assignment.c index 2b43624a..e48ff786 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -284,9 +284,20 @@ static void Asg_PutIconsListAssignments (void *Assignments) { /***** Put icon to create a new assignment *****/ if (Assignments) + { if (Asg_CheckIfICanCreateAssignments ()) Asg_PutIconToCreateNewAsg (Assignments); + /***** Link to get resource link *****/ + if (Gbl.Usrs.Me.Role.Logged == Rol_TCH || // Only if I am a teacher + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) // or a superuser + { + ((struct Asg_Assignments *) Assignments)->AsgCod = -1L; + Ico_PutContextualIconToGetLink (ActReqLnkAsg,NULL, + Asg_PutParams,Assignments); + } + } + /***** Put icon to show a figure *****/ Fig_PutIconToShowFigure (Fig_ASSIGNMENTS); } diff --git a/swad_assignment_resource.c b/swad_assignment_resource.c index bbaf154a..6b139de1 100644 --- a/swad_assignment_resource.c +++ b/swad_assignment_resource.c @@ -53,8 +53,7 @@ void AsgRsc_GetLinkToAssignment (void) Assignments.CurrentPage = Pag_GetParamPagNum (Pag_ASSIGNMENTS); /***** Get assignment code *****/ - if ((Assignments.AsgCod = Asg_GetParamAsgCod ()) <= 0) - Err_WrongAssignmentExit (); + Assignments.AsgCod = Asg_GetParamAsgCod (); /***** Get assignment title *****/ AsgRsc_GetTitleFromAsgCod (Assignments.AsgCod,Title,sizeof (Title) - 1); @@ -67,7 +66,8 @@ void AsgRsc_GetLinkToAssignment (void) Title); /***** Show selected assignment in a box *****/ - Asg_ShowOneAssignmentInBox (&Assignments); + if (Assignments.AsgCod > 0) + Asg_ShowOneAssignmentInBox (&Assignments); /***** Show current assignments, if any *****/ Asg_ShowAllAssignments (&Assignments); @@ -126,6 +126,7 @@ void AsgRsc_WriteAssignmentInCrsProgram (long AsgCod,bool PutFormToGo, void AsgRsc_GetTitleFromAsgCod (long AsgCod,char *Title,size_t TitleSize) { + extern const char *Txt_Assignments; char TitleFromDB[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1]; if (AsgCod > 0) @@ -135,5 +136,6 @@ void AsgRsc_GetTitleFromAsgCod (long AsgCod,char *Title,size_t TitleSize) Str_Copy (Title,TitleFromDB,TitleSize); } else - Str_Copy (Title,"?",TitleSize); + /***** Generic title for all assignments *****/ + Str_Copy (Title,Txt_Assignments,TitleSize); } diff --git a/swad_attendance_resource.c b/swad_attendance_resource.c index 3996a0b3..8444c2d9 100644 --- a/swad_attendance_resource.c +++ b/swad_attendance_resource.c @@ -112,6 +112,7 @@ void AttRsc_WriteAttEventInCrsProgram (long AttCod,bool PutFormToGo, void AttRsc_GetTitleFromAttCod (long AttCod,char *Title,size_t TitleSize) { + extern const char *Txt_Control_of_class_attendance; char TitleFromDB[Att_MAX_BYTES_ATTENDANCE_EVENT_TITLE + 1]; if (AttCod > 0) @@ -121,5 +122,6 @@ void AttRsc_GetTitleFromAttCod (long AttCod,char *Title,size_t TitleSize) Str_Copy (Title,TitleFromDB,TitleSize); } else - Str_Copy (Title,"?",TitleSize); + /***** Generic title for all attendance events *****/ + Str_Copy (Title,Txt_Control_of_class_attendance,TitleSize); } diff --git a/swad_browser.c b/swad_browser.c index 5db08447..ea75cf4b 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -1986,7 +1986,10 @@ void Brw_GetParAndInitFileBrowser (void) Brw_SetFullPathInTree (); /***** Get other parameters *****/ - if (Brw_GetIfCrsAssigWorksFileBrowser ()) + if (Brw_GetIfProjectFileBrowser ()) + /* Get project code */ + Prj_SetPrjCod (Prj_GetParamPrjCod ()); + else if (Brw_GetIfCrsAssigWorksFileBrowser ()) { /* Get lists of the selected users if not already got */ Usr_GetListsSelectedEncryptedUsrsCods (&Gbl.Usrs.Selected); @@ -3320,7 +3323,7 @@ void Brw_ShowAgainFileBrowserOrWorks (void) else if (Brw_GetIfCrsAssigWorksFileBrowser ()) Brw_ShowFileBrowsersAsgWrkCrs (); else if (Brw_GetIfProjectFileBrowser ()) - Prj_ShowProjectWithFileBrowser (); + Prj_ShowOneProject (); else Brw_ShowFileBrowserNormal (); diff --git a/swad_browser_resource.c b/swad_browser_resource.c index 7e659ba6..d84b55e7 100644 --- a/swad_browser_resource.c +++ b/swad_browser_resource.c @@ -196,25 +196,48 @@ void BrwRsc_WriteMrkFileNameInCrsProgram (long FilCod,bool PutFormToGo, } /*****************************************************************************/ -/********************** Get file name from file code *************************/ +/******************** Get document name from file code ***********************/ /*****************************************************************************/ -void BrwRsc_GetFileNameFromFilCod (long FilCod,char *FileName,size_t FileNameSize) +void BrwRsc_GetDocTitleFromFilCod (long FilCod,char *Title,size_t TitleSize) { + extern const char *Txt_Documents; struct Brw_FileMetadata FileMetadata; if (FilCod > 0) { - /***** Return nothing on error *****/ - FileName[0] = '\0'; // Return nothing on error - - /***** Get file metadata *****/ + /***** Get file name *****/ FileMetadata.FilCod = FilCod; - Brw_GetFileMetadataByCod (&FileMetadata); + Brw_GetFileNameByCod (&FileMetadata); - /***** Copy file name into summary string *****/ - Str_Copy (FileName,FileMetadata.FilFolLnk.Name,FileNameSize); + /***** Copy file name into title *****/ + Str_Copy (Title,FileMetadata.FilFolLnk.Name,TitleSize); } else - Str_Copy (FileName,"?",FileNameSize); + /***** Generic title for all documents *****/ + Str_Copy (Title,Txt_Documents,TitleSize); + } + + +/*****************************************************************************/ +/******************* Get marks file name from file code **********************/ +/*****************************************************************************/ + +void BrwRsc_GetMrkTitleFromFilCod (long FilCod,char *Title,size_t TitleSize) + { + extern const char *Txt_Marks_area; + struct Brw_FileMetadata FileMetadata; + + if (FilCod > 0) + { + /***** Get file name *****/ + FileMetadata.FilCod = FilCod; + Brw_GetFileNameByCod (&FileMetadata); + + /***** Copy file name into title *****/ + Str_Copy (Title,FileMetadata.FilFolLnk.Name,TitleSize); + } + else + /***** Generic title for marks area *****/ + Str_Copy (Title,Txt_Marks_area,TitleSize); } diff --git a/swad_browser_resource.h b/swad_browser_resource.h index 50ebbba6..e07e932f 100644 --- a/swad_browser_resource.h +++ b/swad_browser_resource.h @@ -38,6 +38,7 @@ void BrwRsc_WriteDocFileNameInCrsProgram (long FilCod,bool PutFormToGo, const char *Icon,const char *IconTitle); void BrwRsc_WriteMrkFileNameInCrsProgram (long FilCod,bool PutFormToGo, const char *Icon,const char *IconTitle); -void BrwRsc_GetFileNameFromFilCod (long FilCod,char *FileName,size_t FileNameSize); +void BrwRsc_GetDocTitleFromFilCod (long FilCod,char *Title,size_t TitleSize); +void BrwRsc_GetMrkTitleFromFilCod (long FilCod,char *Title,size_t TitleSize); #endif diff --git a/swad_call_for_exam_resource.c b/swad_call_for_exam_resource.c index 9be6745a..cfcfe56a 100644 --- a/swad_call_for_exam_resource.c +++ b/swad_call_for_exam_resource.c @@ -125,6 +125,7 @@ void CfeRsc_WriteCallForExamInCrsProgram (long ExaCod,bool PutFormToGo, void CfeRsc_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize) { extern const char *Txt_Call_for_exam; + extern const char *Txt_Calls_for_exams; struct Cfe_CallsForExams CallsForExams; char SessionAndDate[Cfe_MAX_BYTES_SESSION_AND_DATE]; @@ -145,5 +146,6 @@ void CfeRsc_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize) Cfe_FreeMemCallForExam (&CallsForExams); } else - Str_Copy (Title,"?",TitleSize); + /***** Generic title for all calls for exams *****/ + Str_Copy (Title,Txt_Calls_for_exams,TitleSize); } diff --git a/swad_changelog.h b/swad_changelog.h index 767527e6..2d1caeba 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -606,10 +606,11 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate TODO: Attach pdf files in multimedia. */ -#define Log_PLATFORM_VERSION "SWAD 22.31 (2022-09-28)" +#define Log_PLATFORM_VERSION "SWAD 22.32 (2022-09-29)" #define CSS_FILE "swad22.22.1.css" #define JS_FILE "swad21.100.js" /* + Version 22.32: Sep 29, 2022 Code refactoring in program resources, assignments and projects. (332628 lines) Version 22.31: Sep 28, 2022 New action to view one project. Code refactoring in program resources. (332570 lines) Version 22.30: Sep 28, 2022 New module swad_project_resource. (332490 lines) diff --git a/swad_exam_resource.c b/swad_exam_resource.c index 89d24738..f6b55691 100644 --- a/swad_exam_resource.c +++ b/swad_exam_resource.c @@ -118,6 +118,7 @@ void ExaRsc_WriteExamInCrsProgram (long ExaCod,bool PutFormToGo, void ExaRsc_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize) { + extern const char *Txt_Exams; char TitleFromDB[Exa_MAX_BYTES_TITLE + 1]; if (ExaCod > 0) @@ -127,5 +128,6 @@ void ExaRsc_GetTitleFromExaCod (long ExaCod,char *Title,size_t TitleSize) Str_Copy (Title,TitleFromDB,TitleSize); } else - Str_Copy (Title,"?",TitleSize); + /***** Generic title for all exams *****/ + Str_Copy (Title,Txt_Exams,TitleSize); } diff --git a/swad_forum_resource.c b/swad_forum_resource.c index d57dbe6a..1097897c 100644 --- a/swad_forum_resource.c +++ b/swad_forum_resource.c @@ -134,6 +134,7 @@ void ForRsc_WriteThreadInCrsProgram (long ThrCod,bool PutFormToGo, void ForRsc_GetTitleFromThrCod (long ThrCod,char *Title,size_t TitleSize) { + extern const char *Txt_Forum; char Subject[Cns_MAX_BYTES_SUBJECT + 1]; if (ThrCod > 0) @@ -143,5 +144,5 @@ void ForRsc_GetTitleFromThrCod (long ThrCod,char *Title,size_t TitleSize) Str_Copy (Title,Subject,TitleSize); } else - Str_Copy (Title,"?",TitleSize); + Str_Copy (Title,Txt_Forum,TitleSize); } diff --git a/swad_game_resource.c b/swad_game_resource.c index b0432e5f..a9286faf 100644 --- a/swad_game_resource.c +++ b/swad_game_resource.c @@ -30,6 +30,7 @@ #include "swad_form.h" #include "swad_game.h" #include "swad_game_database.h" +#include "swad_game_resource.h" #include "swad_program_database.h" /*****************************************************************************/ @@ -115,6 +116,7 @@ void GamRsc_WriteGameInCrsProgram (long GamCod,bool PutFormToGo, void GamRsc_GetTitleFromGamCod (long GamCod,char *Title,size_t TitleSize) { + extern const char *Txt_Games; char TitleFromDB[Gam_MAX_BYTES_TITLE + 1]; if (GamCod > 0) @@ -124,5 +126,6 @@ void GamRsc_GetTitleFromGamCod (long GamCod,char *Title,size_t TitleSize) Str_Copy (Title,TitleFromDB,TitleSize); } else - Str_Copy (Title,"?",TitleSize); + /***** Generic title for all games *****/ + Str_Copy (Title,Txt_Games,TitleSize); } diff --git a/swad_program_resource.c b/swad_program_resource.c index 3f5653e8..ae479b79 100644 --- a/swad_program_resource.c +++ b/swad_program_resource.c @@ -1022,7 +1022,7 @@ static void PrgRsc_WriteEmptyLinkInCrsProgram (__attribute__((unused)) long Cod, } /*****************************************************************************/ -/* Get the title for a new resource from link title */ +/************* Get the title for a new resource from link title **************/ /*****************************************************************************/ static void PrgRsc_GetResourceTitleFromLink (struct Prg_Item *Item) @@ -1036,8 +1036,8 @@ static void PrgRsc_GetResourceTitleFromLink (struct Prg_Item *Item) [PrgRsc_EXAM ] = ExaRsc_GetTitleFromExaCod, [PrgRsc_GAME ] = GamRsc_GetTitleFromGamCod, [PrgRsc_SURVEY ] = SvyRsc_GetTitleFromSvyCod, - [PrgRsc_DOCUMENT ] = BrwRsc_GetFileNameFromFilCod, - [PrgRsc_MARKS ] = BrwRsc_GetFileNameFromFilCod, + [PrgRsc_DOCUMENT ] = BrwRsc_GetDocTitleFromFilCod, + [PrgRsc_MARKS ] = BrwRsc_GetMrkTitleFromFilCod, [PrgRsc_ATTENDANCE_EVENT] = AttRsc_GetTitleFromAttCod, [PrgRsc_FORUM_THREAD ] = ForRsc_GetTitleFromThrCod, }; diff --git a/swad_project.c b/swad_project.c index d7048c13..a778a510 100644 --- a/swad_project.c +++ b/swad_project.c @@ -150,8 +150,6 @@ static long Prj_PrjCod = -1L; /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static void Prj_SetPrjCod (long PrjCod); - static void Prj_ReqUsrsToSelect (void *Projects); static void Prj_GetSelectedUsrsAndShowTheirPrjs (struct Prj_Projects *Projects); static void Prj_ShowPrjsInCurrentPage (void *Projects); @@ -182,10 +180,10 @@ static void Prj_PutIconToCreateNewPrj (struct Prj_Projects *Projects); static void Prj_PutButtonToCreateNewPrj (struct Prj_Projects *Projects); static void Prj_PutIconToShowAllData (struct Prj_Projects *Projects); -static void Prj_ShowOneProject (struct Prj_Projects *Projects, - unsigned NumIndex, - struct Prj_Project *Prj, - Prj_ProjectView_t ProjectView); +static void Prj_ShowProject (struct Prj_Projects *Projects, + unsigned NumIndex, + struct Prj_Project *Prj, + Prj_ProjectView_t ProjectView); static bool Prj_CheckIfPrjIsFaulty (long PrjCod,struct Prj_Faults *Faults); static void Prj_PutWarningIcon (void); static void Prj_PutIconToToggleProject (unsigned UniqueId, @@ -267,7 +265,7 @@ static void Prj_PutIconOffLockedUnlocked (const struct Prj_Project *Prj); /******* Set/get project code (used to pass parameter to file browser) *******/ /*****************************************************************************/ -static void Prj_SetPrjCod (long PrjCod) +void Prj_SetPrjCod (long PrjCod) { Prj_PrjCod = PrjCod; } @@ -383,7 +381,7 @@ static void Prj_GetSelectedUsrsAndShowTheirPrjs (struct Prj_Projects *Projects) { Usr_GetSelectedUsrsAndGoToAct (&Gbl.Usrs.Selected, Prj_ShowPrjsInCurrentPage,Projects, // when user(s) selected - Prj_ReqUsrsToSelect,Projects); // when no user selected + Prj_ReqUsrsToSelect,Projects); // when no user selected } /*****************************************************************************/ @@ -529,7 +527,7 @@ static void Prj_ShowPrjsInCurrentPage (void *Projects) } /* Show project */ - Prj_ShowOneProject ((struct Prj_Projects *) Projects, + Prj_ShowProject ((struct Prj_Projects *) Projects, NumIndex,&Prj,Prj_LIST_PROJECTS); } @@ -1143,19 +1141,45 @@ static void Prj_PutIconToShowAllData (struct Prj_Projects *Projects) } /*****************************************************************************/ -/***** Show a project and (if possible) a file browser with its documents ****/ +/************* Show a project followed by the list of projects ***************/ /*****************************************************************************/ -void Prj_ShowProjectWithFileBrowser (void) +void Prj_ShowOneProject (void) + { + struct Prj_Projects Projects; + + /***** Reset projects *****/ + Prj_ResetProjects (&Projects); + + /***** Get parameters *****/ + Prj_GetParams (&Projects); + Projects.PrjCod = Prj_GetParamPrjCod (); + + /***** Show project and (if possible) its file browser *****/ + Prj_ShowOneProjectWithFileBrowser (&Projects); + + /***** Show projects again *****/ + Prj_ShowProjects (&Projects); + } + +/*****************************************************************************/ +/*** Show one project and (if possible) a file browser with its documents ****/ +/*****************************************************************************/ + +void Prj_ShowOneProjectWithFileBrowser (struct Prj_Projects *Projects) { extern const char *Hlp_ASSESSMENT_Projects; struct Prj_Project Prj; + /***** Trivial check: show project only if code > 0 *****/ + if (Projects->PrjCod <= 0) + return; + /***** Allocate memory for the project *****/ Prj_AllocMemProject (&Prj); /***** Get project data *****/ - Prj_SetPrjCod (Prj.PrjCod = Prj_GetParamPrjCod ()); + Prj.PrjCod = Projects->PrjCod; Prj_GetDataOfProjectByCod (&Prj); /***** Begin box *****/ @@ -1163,8 +1187,17 @@ void Prj_ShowProjectWithFileBrowser (void) NULL,NULL, Hlp_ASSESSMENT_Projects,Box_NOT_CLOSABLE); - /***** Show the project *****/ - Prj_ShowOneUniqueProject (&Prj); + /***** Begin table *****/ + HTM_TABLE_BeginWidePadding (2); + + /***** Write project head *****/ + Prj_ShowProjectsHead (Projects,Prj_FILE_BROWSER_PROJECT); + + /***** Show project *****/ + Prj_ShowProject (Projects,0,&Prj,Prj_FILE_BROWSER_PROJECT); + + /***** End table *****/ + HTM_TABLE_End (); /***** Show project file browsers *****/ if (Prj_CheckIfICanViewProjectFiles (Prj.PrjCod)) @@ -1177,30 +1210,6 @@ void Prj_ShowProjectWithFileBrowser (void) Prj_FreeMemProject (&Prj); } -/*****************************************************************************/ -/***************** View / edit file browser of one project *******************/ -/*****************************************************************************/ - -void Prj_ShowOneUniqueProject (struct Prj_Project *Prj) - { - struct Prj_Projects Projects; - - /***** Reset projects *****/ - Prj_ResetProjects (&Projects); - - /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); - - /***** Write project head *****/ - Prj_ShowProjectsHead (&Projects,Prj_FILE_BROWSER_PROJECT); - - /***** Show project *****/ - Prj_ShowOneProject (&Projects,0,Prj,Prj_FILE_BROWSER_PROJECT); - - /***** End table *****/ - HTM_TABLE_End (); - } - /*****************************************************************************/ /********************** Show print view of one project ***********************/ /*****************************************************************************/ @@ -1233,7 +1242,7 @@ void Prj_PrintOneProject (void) Prj_ShowProjectsHead (&Projects,Prj_PRINT_ONE_PROJECT); /***** Write project *****/ - Prj_ShowOneProject (&Projects,0,&Prj,Prj_PRINT_ONE_PROJECT); + Prj_ShowProject (&Projects,0,&Prj,Prj_PRINT_ONE_PROJECT); /***** End table *****/ HTM_TABLE_End (); @@ -1246,10 +1255,10 @@ void Prj_PrintOneProject (void) /***************************** Show one project ******************************/ /*****************************************************************************/ -static void Prj_ShowOneProject (struct Prj_Projects *Projects, - unsigned NumIndex, - struct Prj_Project *Prj, - Prj_ProjectView_t ProjectView) +static void Prj_ShowProject (struct Prj_Projects *Projects, + unsigned NumIndex, + struct Prj_Project *Prj, + Prj_ProjectView_t ProjectView) { extern const char *Txt_Actions[Act_NUM_ACTIONS]; extern const char *Txt_Assigned_QUESTION; diff --git a/swad_project.h b/swad_project.h index 048377c4..c4843d03 100644 --- a/swad_project.h +++ b/swad_project.h @@ -172,6 +172,7 @@ struct Prj_Project /***************************** Public prototypes *****************************/ /*****************************************************************************/ +void Prj_SetPrjCod (long PrjCod); long Prj_GetPrjCod (void); void Prj_ResetProjects (struct Prj_Projects *Projects); @@ -187,8 +188,8 @@ void Prj_PutParams (struct Prj_Filter *Filter, long PrjCod); void Prj_GetParams (struct Prj_Projects *Projects); -void Prj_ShowProjectWithFileBrowser (void); -void Prj_ShowOneUniqueProject (struct Prj_Project *Prj); +void Prj_ShowOneProject (void); +void Prj_ShowOneProjectWithFileBrowser (struct Prj_Projects *Projects); void Prj_PrintOneProject (void); diff --git a/swad_project_resource.c b/swad_project_resource.c index 750c59c1..02fafc55 100644 --- a/swad_project_resource.c +++ b/swad_project_resource.c @@ -43,7 +43,7 @@ void PrjRsc_GetLinkToProject (void) struct Prj_Projects Projects; char Title[Prj_MAX_BYTES_TITLE + 1]; - /***** Reset projects context *****/ + /***** Reset projects *****/ Prj_ResetProjects (&Projects); /***** Get parameters *****/ @@ -60,6 +60,9 @@ void PrjRsc_GetLinkToProject (void) Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard, Title); + /***** Show project and (if possible) its file browser *****/ + Prj_ShowOneProjectWithFileBrowser (&Projects); + /***** Show projects again *****/ Prj_ShowProjects (&Projects); } diff --git a/swad_survey_resource.c b/swad_survey_resource.c index c51f188e..f7b4a464 100644 --- a/swad_survey_resource.c +++ b/swad_survey_resource.c @@ -116,6 +116,7 @@ void SvyRsc_WriteSurveyInCrsProgram (long SvyCod,bool PutFormToGo, void SvyRsc_GetTitleFromSvyCod (long SvyCod,char *Title,size_t TitleSize) { + extern const char *Txt_Surveys; char TitleFromDB[Svy_MAX_BYTES_SURVEY_TITLE + 1]; if (SvyCod > 0) @@ -125,5 +126,6 @@ void SvyRsc_GetTitleFromSvyCod (long SvyCod,char *Title,size_t TitleSize) Str_Copy (Title,TitleFromDB,TitleSize); } else - Str_Copy (Title,"?",TitleSize); + /***** Generic title for all surveys *****/ + Str_Copy (Title,Txt_Surveys,TitleSize); } diff --git a/swad_text.c b/swad_text.c index 986bc705..c00ace34 100644 --- a/swad_text.c +++ b/swad_text.c @@ -4135,7 +4135,7 @@ const char *Txt_Calls_for_exams = #elif L==9 // pt "Chamadas para exames"; #elif L==10 // tr - "Calls for exams"; // Çeviri lazim! + "Sınav çağrıları"; #endif const char *Txt_Can_not_create_the_folder_X_because_it_would_exceed_the_disk_quota = // Warning: it is very important to include %s in the following sentences @@ -11099,7 +11099,7 @@ const char *Txt_Document = #elif L==5 // fr "Document"; #elif L==6 // gn - "Documento"; // Okoteve traducción + "Terakuatia"; #elif L==7 // it "Documento"; #elif L==8 // pl @@ -11149,7 +11149,7 @@ const char *Txt_Documents = #elif L==7 // it "Documenti"; #elif L==8 // pl - "Documents"; // Potrzebujesz tlumaczenie + "Dokumenty"; #elif L==9 // pt "Documentos"; #elif L==10 // tr @@ -12877,7 +12877,7 @@ const char *Txt_Exam = #elif L==5 // fr "Examen"; #elif L==6 // gn - "Kuaara'ã"; + "Aranduchauka"; #elif L==7 // it "Esame"; #elif L==8 // pl @@ -13041,7 +13041,7 @@ const char *Txt_EXAM_Open = #elif L==5 // fr "Ouvert"; #elif L==6 // gn - "Abierto"; // Okoteve traducción + "Ojei"; #elif L==7 // it "Aperto"; #elif L==8 // pl @@ -13158,7 +13158,7 @@ const char *Txt_EXAMS_ORDER[Exa_NUM_ORDERS] = #elif L==5 // fr "Examen" #elif L==6 // gn - "Kuaara'ã" + "Aranduchauka" #elif L==7 // it "Esame" #elif L==8 // pl @@ -24133,7 +24133,7 @@ const char *Txt_MSG_Open = #elif L==5 // fr "Ouvert"; #elif L==6 // gn - "Abierto"; // Okoteve traducción + "Ojei"; #elif L==7 // it "Aperto"; #elif L==8 // pl @@ -25053,7 +25053,7 @@ const char *Txt_New_institution = #elif L==5 // fr "Nouvel établissement (université, collège, école, académie, organisation, entreprise...)"; #elif L==6 // gn - "Nueva institución (universidad, instituto, colegio, academia, organización, empresa...)"; // Okoteve traducción + "Nueva institución (universidad, instituto, mbo'ehao, academia, organización, empresa...)"; // Okoteve traducción #elif L==7 // it "Nuova istituzione (università, istituto, scuola, accademia, organizzazione, società...)"; #elif L==8 // pl @@ -25720,7 +25720,7 @@ const char *Txt_Nickname = #elif L==5 // fr "Surnom"; #elif L==6 // gn - "Apodo"; // Okoteve traducción + "Hero"; #elif L==7 // it "Nome-utente"; #elif L==8 // pl @@ -28035,7 +28035,7 @@ const char *Txt_NOTIFY_EVENTS_SINGULAR[Ntf_NUM_NOTIFY_EVENTS] = #elif L==5 // fr "Fichier de document" #elif L==6 // gn - "Documento" // Okoteve traducción + "Terakuatia" #elif L==7 // it "Documento" #elif L==8 // pl @@ -35778,7 +35778,7 @@ const char *Txt_RESOURCE_TYPES[PrgRsc_NUM_TYPES] = #elif L==5 // fr "Examen" #elif L==6 // gn - "Kuaara'ã" + "Aranduchauka" #elif L==7 // it "Esame" #elif L==8 // pl @@ -35847,7 +35847,7 @@ const char *Txt_RESOURCE_TYPES[PrgRsc_NUM_TYPES] = #elif L==5 // fr "Document" #elif L==6 // gn - "Documento" // Okoteve traducción + "Terakuatia" #elif L==7 // it "Documento" #elif L==8 // pl @@ -44749,7 +44749,7 @@ const char *Txt_STAT_COLOR_TYPES[Sta_NUM_COLOR_TYPES] = #elif L==5 // fr "couleur" #elif L==6 // gn - "color" // Okoteve traducción + "sa'y" #elif L==7 // it "colore" #elif L==8 // pl