Version18.115

This commit is contained in:
Antonio Cañas Vargas 2019-04-18 14:06:00 +02:00
parent e294717aac
commit 25c45c3482
6 changed files with 437 additions and 146 deletions

View File

@ -508,6 +508,10 @@ Assessment:
365. ActShoPrj Show project 365. ActShoPrj Show project
NEW. ActLckPrj Lock project edition NEW. ActLckPrj Lock project edition
NEW. ActUnlPrj Unlock project edition NEW. ActUnlPrj Unlock project edition
NEW. ActReqLckAllPrj Request locking of all projects
NEW. ActReqUnlAllPrj Request unlocking of all projects
NEW. ActLckAllPrj Lock all projects
NEW. ActUnlAllPrj Unlock all projects
366. ActReqAddStdPrj Request adding a student to a project 366. ActReqAddStdPrj Request adding a student to a project
367. ActReqAddTutPrj Request adding a tutor to a project 367. ActReqAddTutPrj Request adding a tutor to a project
368. ActReqAddEvlPrj Request adding an evaluator to a project 368. ActReqAddEvlPrj Request adding an evaluator to a project
@ -1638,10 +1642,10 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActAllShaSocNotGbl*/{1766,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllSharersNoteGbl ,NULL}, /* ActAllShaSocNotGbl*/{1766,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllSharersNoteGbl ,NULL},
/* ActAllFavSocNotGbl*/{1767,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversNoteGbl ,NULL}, /* ActAllFavSocNotGbl*/{1767,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversNoteGbl ,NULL},
/* ActAllFavSocComGbl*/{1768,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversComGbl ,NULL}, /* ActAllFavSocComGbl*/{1768,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversComGbl ,NULL},
/* ActShaSocNotGbl */{1495,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShaNoteGbl ,NULL}, /* ActShaSocNotGbl */{1495,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShaNoteGbl ,NULL},
/* ActUnsSocNotGbl */{1496,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnsNoteGbl ,NULL}, /* ActUnsSocNotGbl */{1496,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnsNoteGbl ,NULL},
/* ActFavSocNotGbl */{1512,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavNoteGbl ,NULL}, /* ActFavSocNotGbl */{1512,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavNoteGbl ,NULL},
/* ActUnfSocNotGbl */{1513,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfNoteGbl ,NULL}, /* ActUnfSocNotGbl */{1513,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfNoteGbl ,NULL},
/* ActFavSocComGbl */{1516,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavCommentGbl ,NULL}, /* ActFavSocComGbl */{1516,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavCommentGbl ,NULL},
/* ActUnfSocComGbl */{1517,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfCommentGbl ,NULL}, /* ActUnfSocComGbl */{1517,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfCommentGbl ,NULL},
/* ActReqRemSocPubGbl*/{1494,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_RequestRemNoteGbl ,NULL}, /* ActReqRemSocPubGbl*/{1494,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_RequestRemNoteGbl ,NULL},
@ -1656,10 +1660,10 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActAllShaSocNotUsr*/{1769,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllSharersNoteUsr ,NULL}, /* ActAllShaSocNotUsr*/{1769,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllSharersNoteUsr ,NULL},
/* ActAllFavSocNotUsr*/{1770,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversNoteUsr ,NULL}, /* ActAllFavSocNotUsr*/{1770,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversNoteUsr ,NULL},
/* ActAllFavSocComUsr*/{1771,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversComUsr ,NULL}, /* ActAllFavSocComUsr*/{1771,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShowAllFaversComUsr ,NULL},
/* ActShaSocNotUsr */{1499,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShaNoteUsr ,NULL}, /* ActShaSocNotUsr */{1499,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShaNoteUsr ,NULL},
/* ActUnsSocNotUsr */{1500,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnsNoteUsr ,NULL}, /* ActUnsSocNotUsr */{1500,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnsNoteUsr ,NULL},
/* ActFavSocNotUsr */{1514,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavNoteUsr ,NULL}, /* ActFavSocNotUsr */{1514,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavNoteUsr ,NULL},
/* ActUnfSocNotUsr */{1515,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfNoteUsr ,NULL}, /* ActUnfSocNotUsr */{1515,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfNoteUsr ,NULL},
/* ActFavSocComUsr */{1518,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavCommentUsr ,NULL}, /* ActFavSocComUsr */{1518,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavCommentUsr ,NULL},
/* ActUnfSocComUsr */{1519,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfCommentUsr ,NULL}, /* ActUnfSocComUsr */{1519,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfCommentUsr ,NULL},
/* ActReqRemSocPubUsr*/{1501,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RequestRemNoteUsr ,NULL}, /* ActReqRemSocPubUsr*/{1501,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RequestRemNoteUsr ,NULL},
@ -2047,6 +2051,10 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActShoPrj */{1683,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowProject ,NULL}, /* ActShoPrj */{1683,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ShowProject ,NULL},
/* ActLckPrj */{1773,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_LockProjectEdition ,NULL}, /* ActLckPrj */{1773,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_LockProjectEdition ,NULL},
/* ActUnlPrj */{1774,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnlockProjectEdition ,NULL}, /* ActUnlPrj */{1774,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnlockProjectEdition ,NULL},
/* ActReqLckAllPrj */{1775,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqLockAllProjectsEdition ,NULL},
/* ActReqUnlAllPrj */{1776,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqUnlockAllProjectsEdition,NULL},
/* ActLckAllPrj */{1777,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_LockAllProjectsEdition ,NULL},
/* ActUnlAllPrj */{1778,-1,TabUnk,ActSeePrj ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_UnlockAllProjectsEdition ,NULL},
/* ActReqAddStdPrj */{1684,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddStds ,NULL}, /* ActReqAddStdPrj */{1684,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddStds ,NULL},
/* ActReqAddTutPrj */{1685,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddTuts ,NULL}, /* ActReqAddTutPrj */{1685,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddTuts ,NULL},
/* ActReqAddEvlPrj */{1686,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddEvls ,NULL}, /* ActReqAddEvlPrj */{1686,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_ReqAddEvls ,NULL},
@ -4955,6 +4963,10 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActReqMaiUsr, // #1772 ActReqMaiUsr, // #1772
ActLckPrj, // #1773 ActLckPrj, // #1773
ActUnlPrj, // #1774 ActUnlPrj, // #1774
ActReqLckAllPrj, // #1775
ActReqUnlAllPrj, // #1776
ActLckAllPrj, // #1777
ActUnlAllPrj, // #1778
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -61,9 +61,9 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (1 + 8 + 61 + 38 + 12 + 42 + 36 + 19 + 110 + 159 + 437 + 176 + 169 + 15 + 67) #define Act_NUM_ACTIONS (1 + 8 + 61 + 38 + 12 + 42 + 36 + 19 + 110 + 163 + 437 + 176 + 169 + 15 + 67)
#define Act_MAX_ACTION_COD 1774 #define Act_MAX_ACTION_COD 1778
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -524,133 +524,137 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActShoPrj (ActChgCrsTT1stDay + 37) #define ActShoPrj (ActChgCrsTT1stDay + 37)
#define ActLckPrj (ActChgCrsTT1stDay + 38) #define ActLckPrj (ActChgCrsTT1stDay + 38)
#define ActUnlPrj (ActChgCrsTT1stDay + 39) #define ActUnlPrj (ActChgCrsTT1stDay + 39)
#define ActReqAddStdPrj (ActChgCrsTT1stDay + 40) #define ActReqLckAllPrj (ActChgCrsTT1stDay + 40)
#define ActReqAddTutPrj (ActChgCrsTT1stDay + 41) #define ActReqUnlAllPrj (ActChgCrsTT1stDay + 41)
#define ActReqAddEvlPrj (ActChgCrsTT1stDay + 42) #define ActLckAllPrj (ActChgCrsTT1stDay + 42)
#define ActAddStdPrj (ActChgCrsTT1stDay + 43) #define ActUnlAllPrj (ActChgCrsTT1stDay + 43)
#define ActAddTutPrj (ActChgCrsTT1stDay + 44) #define ActReqAddStdPrj (ActChgCrsTT1stDay + 44)
#define ActAddEvlPrj (ActChgCrsTT1stDay + 45) #define ActReqAddTutPrj (ActChgCrsTT1stDay + 45)
#define ActReqRemStdPrj (ActChgCrsTT1stDay + 46) #define ActReqAddEvlPrj (ActChgCrsTT1stDay + 46)
#define ActReqRemTutPrj (ActChgCrsTT1stDay + 47) #define ActAddStdPrj (ActChgCrsTT1stDay + 47)
#define ActReqRemEvlPrj (ActChgCrsTT1stDay + 48) #define ActAddTutPrj (ActChgCrsTT1stDay + 48)
#define ActRemStdPrj (ActChgCrsTT1stDay + 49) #define ActAddEvlPrj (ActChgCrsTT1stDay + 49)
#define ActRemTutPrj (ActChgCrsTT1stDay + 50) #define ActReqRemStdPrj (ActChgCrsTT1stDay + 50)
#define ActRemEvlPrj (ActChgCrsTT1stDay + 51) #define ActReqRemTutPrj (ActChgCrsTT1stDay + 51)
#define ActReqRemEvlPrj (ActChgCrsTT1stDay + 52)
#define ActRemStdPrj (ActChgCrsTT1stDay + 53)
#define ActRemTutPrj (ActChgCrsTT1stDay + 54)
#define ActRemEvlPrj (ActChgCrsTT1stDay + 55)
#define ActAdmDocPrj (ActChgCrsTT1stDay + 52) #define ActAdmDocPrj (ActChgCrsTT1stDay + 56)
#define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 53) #define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 57)
#define ActRemFilDocPrj (ActChgCrsTT1stDay + 54) #define ActRemFilDocPrj (ActChgCrsTT1stDay + 58)
#define ActRemFolDocPrj (ActChgCrsTT1stDay + 55) #define ActRemFolDocPrj (ActChgCrsTT1stDay + 59)
#define ActCopDocPrj (ActChgCrsTT1stDay + 56) #define ActCopDocPrj (ActChgCrsTT1stDay + 60)
#define ActPasDocPrj (ActChgCrsTT1stDay + 57) #define ActPasDocPrj (ActChgCrsTT1stDay + 61)
#define ActRemTreDocPrj (ActChgCrsTT1stDay + 58) #define ActRemTreDocPrj (ActChgCrsTT1stDay + 62)
#define ActFrmCreDocPrj (ActChgCrsTT1stDay + 59) #define ActFrmCreDocPrj (ActChgCrsTT1stDay + 63)
#define ActCreFolDocPrj (ActChgCrsTT1stDay + 60) #define ActCreFolDocPrj (ActChgCrsTT1stDay + 64)
#define ActCreLnkDocPrj (ActChgCrsTT1stDay + 61) #define ActCreLnkDocPrj (ActChgCrsTT1stDay + 65)
#define ActRenFolDocPrj (ActChgCrsTT1stDay + 62) #define ActRenFolDocPrj (ActChgCrsTT1stDay + 66)
#define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 63) #define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 67)
#define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 64) #define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 68)
#define ActExpDocPrj (ActChgCrsTT1stDay + 65) #define ActExpDocPrj (ActChgCrsTT1stDay + 69)
#define ActConDocPrj (ActChgCrsTT1stDay + 66) #define ActConDocPrj (ActChgCrsTT1stDay + 70)
#define ActZIPDocPrj (ActChgCrsTT1stDay + 67) #define ActZIPDocPrj (ActChgCrsTT1stDay + 71)
#define ActReqDatDocPrj (ActChgCrsTT1stDay + 68) #define ActReqDatDocPrj (ActChgCrsTT1stDay + 72)
#define ActChgDatDocPrj (ActChgCrsTT1stDay + 69) #define ActChgDatDocPrj (ActChgCrsTT1stDay + 73)
#define ActDowDocPrj (ActChgCrsTT1stDay + 70) #define ActDowDocPrj (ActChgCrsTT1stDay + 74)
#define ActAdmAssPrj (ActChgCrsTT1stDay + 71) #define ActAdmAssPrj (ActChgCrsTT1stDay + 75)
#define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 72) #define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 76)
#define ActRemFilAssPrj (ActChgCrsTT1stDay + 73) #define ActRemFilAssPrj (ActChgCrsTT1stDay + 77)
#define ActRemFolAssPrj (ActChgCrsTT1stDay + 74) #define ActRemFolAssPrj (ActChgCrsTT1stDay + 78)
#define ActCopAssPrj (ActChgCrsTT1stDay + 75) #define ActCopAssPrj (ActChgCrsTT1stDay + 79)
#define ActPasAssPrj (ActChgCrsTT1stDay + 76) #define ActPasAssPrj (ActChgCrsTT1stDay + 80)
#define ActRemTreAssPrj (ActChgCrsTT1stDay + 77) #define ActRemTreAssPrj (ActChgCrsTT1stDay + 81)
#define ActFrmCreAssPrj (ActChgCrsTT1stDay + 78) #define ActFrmCreAssPrj (ActChgCrsTT1stDay + 82)
#define ActCreFolAssPrj (ActChgCrsTT1stDay + 79) #define ActCreFolAssPrj (ActChgCrsTT1stDay + 83)
#define ActCreLnkAssPrj (ActChgCrsTT1stDay + 80) #define ActCreLnkAssPrj (ActChgCrsTT1stDay + 84)
#define ActRenFolAssPrj (ActChgCrsTT1stDay + 81) #define ActRenFolAssPrj (ActChgCrsTT1stDay + 85)
#define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 82) #define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 86)
#define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 83) #define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 87)
#define ActExpAssPrj (ActChgCrsTT1stDay + 84) #define ActExpAssPrj (ActChgCrsTT1stDay + 88)
#define ActConAssPrj (ActChgCrsTT1stDay + 85) #define ActConAssPrj (ActChgCrsTT1stDay + 89)
#define ActZIPAssPrj (ActChgCrsTT1stDay + 86) #define ActZIPAssPrj (ActChgCrsTT1stDay + 90)
#define ActReqDatAssPrj (ActChgCrsTT1stDay + 87) #define ActReqDatAssPrj (ActChgCrsTT1stDay + 91)
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 88) #define ActChgDatAssPrj (ActChgCrsTT1stDay + 92)
#define ActDowAssPrj (ActChgCrsTT1stDay + 89) #define ActDowAssPrj (ActChgCrsTT1stDay + 93)
#define ActSeeTst (ActChgCrsTT1stDay + 90) #define ActSeeTst (ActChgCrsTT1stDay + 94)
#define ActAssTst (ActChgCrsTT1stDay + 91) #define ActAssTst (ActChgCrsTT1stDay + 95)
#define ActEdiTstQst (ActChgCrsTT1stDay + 92) #define ActEdiTstQst (ActChgCrsTT1stDay + 96)
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 93) #define ActEdiOneTstQst (ActChgCrsTT1stDay + 97)
#define ActReqImpTstQst (ActChgCrsTT1stDay + 94) #define ActReqImpTstQst (ActChgCrsTT1stDay + 98)
#define ActImpTstQst (ActChgCrsTT1stDay + 95) #define ActImpTstQst (ActChgCrsTT1stDay + 99)
#define ActLstTstQst (ActChgCrsTT1stDay + 96) #define ActLstTstQst (ActChgCrsTT1stDay + 100)
#define ActRcvTstQst (ActChgCrsTT1stDay + 97) #define ActRcvTstQst (ActChgCrsTT1stDay + 101)
#define ActReqRemTstQst (ActChgCrsTT1stDay + 98) #define ActReqRemTstQst (ActChgCrsTT1stDay + 102)
#define ActRemTstQst (ActChgCrsTT1stDay + 99) #define ActRemTstQst (ActChgCrsTT1stDay + 103)
#define ActShfTstQst (ActChgCrsTT1stDay + 100) #define ActShfTstQst (ActChgCrsTT1stDay + 104)
#define ActCfgTst (ActChgCrsTT1stDay + 101) #define ActCfgTst (ActChgCrsTT1stDay + 105)
#define ActEnableTag (ActChgCrsTT1stDay + 102) #define ActEnableTag (ActChgCrsTT1stDay + 106)
#define ActDisableTag (ActChgCrsTT1stDay + 103) #define ActDisableTag (ActChgCrsTT1stDay + 107)
#define ActRenTag (ActChgCrsTT1stDay + 104) #define ActRenTag (ActChgCrsTT1stDay + 108)
#define ActRcvCfgTst (ActChgCrsTT1stDay + 105) #define ActRcvCfgTst (ActChgCrsTT1stDay + 109)
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 106) #define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 110)
#define ActSeeMyTstRes (ActChgCrsTT1stDay + 107) #define ActSeeMyTstRes (ActChgCrsTT1stDay + 111)
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 108) #define ActSeeOneTstResMe (ActChgCrsTT1stDay + 112)
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 109) #define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 113)
#define ActSeeUsrTstRes (ActChgCrsTT1stDay + 110) #define ActSeeUsrTstRes (ActChgCrsTT1stDay + 114)
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 111) #define ActSeeOneTstResOth (ActChgCrsTT1stDay + 115)
#define ActSeeOneGam (ActChgCrsTT1stDay + 112) #define ActSeeOneGam (ActChgCrsTT1stDay + 116)
#define ActPlyGam (ActChgCrsTT1stDay + 113) #define ActPlyGam (ActChgCrsTT1stDay + 117)
#define ActPlyGam1stQst (ActChgCrsTT1stDay + 114) #define ActPlyGam1stQst (ActChgCrsTT1stDay + 118)
#define ActPlyGamNxtQst (ActChgCrsTT1stDay + 115) #define ActPlyGamNxtQst (ActChgCrsTT1stDay + 119)
#define ActPlyGamAns (ActChgCrsTT1stDay + 116) #define ActPlyGamAns (ActChgCrsTT1stDay + 120)
#define ActAnsGam (ActChgCrsTT1stDay + 117) #define ActAnsGam (ActChgCrsTT1stDay + 121)
#define ActFrmNewGam (ActChgCrsTT1stDay + 118) #define ActFrmNewGam (ActChgCrsTT1stDay + 122)
#define ActEdiOneGam (ActChgCrsTT1stDay + 119) #define ActEdiOneGam (ActChgCrsTT1stDay + 123)
#define ActNewGam (ActChgCrsTT1stDay + 120) #define ActNewGam (ActChgCrsTT1stDay + 124)
#define ActChgGam (ActChgCrsTT1stDay + 121) #define ActChgGam (ActChgCrsTT1stDay + 125)
#define ActReqRemGam (ActChgCrsTT1stDay + 122) #define ActReqRemGam (ActChgCrsTT1stDay + 126)
#define ActRemGam (ActChgCrsTT1stDay + 123) #define ActRemGam (ActChgCrsTT1stDay + 127)
#define ActReqRstGam (ActChgCrsTT1stDay + 124) #define ActReqRstGam (ActChgCrsTT1stDay + 128)
#define ActRstGam (ActChgCrsTT1stDay + 125) #define ActRstGam (ActChgCrsTT1stDay + 129)
#define ActHidGam (ActChgCrsTT1stDay + 126) #define ActHidGam (ActChgCrsTT1stDay + 130)
#define ActShoGam (ActChgCrsTT1stDay + 127) #define ActShoGam (ActChgCrsTT1stDay + 131)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 128) #define ActAddOneGamQst (ActChgCrsTT1stDay + 132)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 129) #define ActGamLstTstQst (ActChgCrsTT1stDay + 133)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 130) #define ActAddTstQstToGam (ActChgCrsTT1stDay + 134)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 131) #define ActReqRemGamQst (ActChgCrsTT1stDay + 135)
#define ActRemGamQst (ActChgCrsTT1stDay + 132) #define ActRemGamQst (ActChgCrsTT1stDay + 136)
#define ActUp_GamQst (ActChgCrsTT1stDay + 133) #define ActUp_GamQst (ActChgCrsTT1stDay + 137)
#define ActDwnGamQst (ActChgCrsTT1stDay + 134) #define ActDwnGamQst (ActChgCrsTT1stDay + 138)
#define ActSeeOneSvy (ActChgCrsTT1stDay + 135) #define ActSeeOneSvy (ActChgCrsTT1stDay + 139)
#define ActAnsSvy (ActChgCrsTT1stDay + 136) #define ActAnsSvy (ActChgCrsTT1stDay + 140)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 137) #define ActFrmNewSvy (ActChgCrsTT1stDay + 141)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 138) #define ActEdiOneSvy (ActChgCrsTT1stDay + 142)
#define ActNewSvy (ActChgCrsTT1stDay + 139) #define ActNewSvy (ActChgCrsTT1stDay + 143)
#define ActChgSvy (ActChgCrsTT1stDay + 140) #define ActChgSvy (ActChgCrsTT1stDay + 144)
#define ActReqRemSvy (ActChgCrsTT1stDay + 141) #define ActReqRemSvy (ActChgCrsTT1stDay + 145)
#define ActRemSvy (ActChgCrsTT1stDay + 142) #define ActRemSvy (ActChgCrsTT1stDay + 146)
#define ActReqRstSvy (ActChgCrsTT1stDay + 143) #define ActReqRstSvy (ActChgCrsTT1stDay + 147)
#define ActRstSvy (ActChgCrsTT1stDay + 144) #define ActRstSvy (ActChgCrsTT1stDay + 148)
#define ActHidSvy (ActChgCrsTT1stDay + 145) #define ActHidSvy (ActChgCrsTT1stDay + 149)
#define ActShoSvy (ActChgCrsTT1stDay + 146) #define ActShoSvy (ActChgCrsTT1stDay + 150)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 147) #define ActEdiOneSvyQst (ActChgCrsTT1stDay + 151)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 148) #define ActRcvSvyQst (ActChgCrsTT1stDay + 152)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 149) #define ActReqRemSvyQst (ActChgCrsTT1stDay + 153)
#define ActRemSvyQst (ActChgCrsTT1stDay + 150) #define ActRemSvyQst (ActChgCrsTT1stDay + 154)
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 151) #define ActSeeOneExaAnn (ActChgCrsTT1stDay + 155)
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 152) #define ActSeeDatExaAnn (ActChgCrsTT1stDay + 156)
#define ActEdiExaAnn (ActChgCrsTT1stDay + 153) #define ActEdiExaAnn (ActChgCrsTT1stDay + 157)
#define ActRcvExaAnn (ActChgCrsTT1stDay + 154) #define ActRcvExaAnn (ActChgCrsTT1stDay + 158)
#define ActPrnExaAnn (ActChgCrsTT1stDay + 155) #define ActPrnExaAnn (ActChgCrsTT1stDay + 159)
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 156) #define ActReqRemExaAnn (ActChgCrsTT1stDay + 160)
#define ActRemExaAnn (ActChgCrsTT1stDay + 157) #define ActRemExaAnn (ActChgCrsTT1stDay + 161)
#define ActHidExaAnn (ActChgCrsTT1stDay + 158) #define ActHidExaAnn (ActChgCrsTT1stDay + 162)
#define ActShoExaAnn (ActChgCrsTT1stDay + 159) #define ActShoExaAnn (ActChgCrsTT1stDay + 163)
/*****************************************************************************/ /*****************************************************************************/
/******************************** Files tab **********************************/ /******************************** Files tab **********************************/

View File

@ -431,9 +431,6 @@ Lo de mutear anuncios, en principio prefiero hacer una opci
// TODO: Ver cómo recibir un fichero desde el cliente (SWADroid) en gsoap // TODO: Ver cómo recibir un fichero desde el cliente (SWADroid) en gsoap
// TODO: Pedro Villar Castro:
// Que haya una opción general que los bloquee todos y que los desbloquee todos
/*****************************************************************************/ /*****************************************************************************/
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
@ -453,10 +450,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 18.114.3 (2019-04-18)" #define Log_PLATFORM_VERSION "SWAD 18.115 (2019-04-18)"
#define CSS_FILE "swad18.112.1.css" #define CSS_FILE "swad18.112.1.css"
#define JS_FILE "swad18.114.js" #define JS_FILE "swad18.114.js"
/* /*
Version 18.115: Apr 18, 2019 Contextual buttons to lock/unlock edition of all projects, suggested by Pedro Villar Castro. (243275 lines)
Version 18.114.3: Apr 18, 2019 Locked edition of a project. (243025 lines) Version 18.114.3: Apr 18, 2019 Locked edition of a project. (243025 lines)
Version 18.114.2: Apr 18, 2019 Icons to inform about locked/unlocked project edition. (243023 lines) Version 18.114.2: Apr 18, 2019 Icons to inform about locked/unlocked project edition. (243023 lines)
Version 18.114.1: Apr 18, 2019 Changes in translation of title related to project locking/unlocking. (243024 lines) Version 18.114.1: Apr 18, 2019 Changes in translation of title related to project locking/unlocking. (243024 lines)

View File

@ -140,6 +140,8 @@ static void Prj_PutIconsListProjects (void);
static void Prj_PutIconToCreateNewPrj (void); static void Prj_PutIconToCreateNewPrj (void);
static void Prj_PutButtonToCreateNewPrj (void); static void Prj_PutButtonToCreateNewPrj (void);
static void Prj_PutIconToShowAllData (void); static void Prj_PutIconToShowAllData (void);
static void Prj_PutIconsToLockUnlockAllProjects (void);
static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj, static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
Prj_ProjectView_t ProjectView); Prj_ProjectView_t ProjectView);
static void Prj_PutIconToToggleProject (unsigned UniqueId, static void Prj_PutIconToToggleProject (unsigned UniqueId,
@ -185,12 +187,15 @@ static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
bool ICanViewProjectFiles); bool ICanViewProjectFiles);
static bool Prj_CheckIfICanEditProject (const struct Project *Prj); static bool Prj_CheckIfICanEditProject (const struct Project *Prj);
static bool Prj_CheckIfICanLockProject (void); static bool Prj_CheckIfICanLockProjects (void);
static void Prj_FormLockUnlock (const struct Project *Prj); static void Prj_FormLockUnlock (const struct Project *Prj);
static void Prj_PutIconOffLockedUnlocked (const struct Project *Prj); static void Prj_PutIconOffLockedUnlocked (const struct Project *Prj);
static void Prj_ResetProject (struct Project *Prj); static void Prj_ResetProject (struct Project *Prj);
static void Prj_LockProjectEditionInDB (long PrjCod);
static void Prj_UnlockProjectEditionInDB (long PrjCod);
static void Prj_RequestCreatOrEditPrj (long PrjCod); static void Prj_RequestCreatOrEditPrj (long PrjCod);
static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject); static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject);
static void Prj_EditOneProjectTxtArea (const char *Id, static void Prj_EditOneProjectTxtArea (const char *Id,
@ -255,6 +260,9 @@ void Prj_ShowTableAllProjects (void)
} }
else // No projects created else // No projects created
Ale_ShowAlert (Ale_INFO,Txt_No_projects); Ale_ShowAlert (Ale_INFO,Txt_No_projects);
/***** Free list of projects *****/
Prj_FreeListProjects ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -812,8 +820,15 @@ static void Prj_PutIconsListProjects (void)
if (Prj_CheckIfICanCreateProjects ()) if (Prj_CheckIfICanCreateProjects ())
Prj_PutIconToCreateNewPrj (); Prj_PutIconToCreateNewPrj ();
/***** Put icon to show all data in a table *****/ if (Gbl.Prjs.Num)
Prj_PutIconToShowAllData (); {
/***** Put icon to show all data in a table *****/
Prj_PutIconToShowAllData ();
/***** Put icons to lock/unlock edition of all projects *****/
if (Prj_CheckIfICanLockProjects ())
Prj_PutIconsToLockUnlockAllProjects ();
}
/***** Put icon to show a figure *****/ /***** Put icon to show a figure *****/
Gbl.Figures.FigureType = Fig_PROJECTS; Gbl.Figures.FigureType = Fig_PROJECTS;
@ -862,6 +877,26 @@ static void Prj_PutIconToShowAllData (void)
Txt_Show_all_data_in_a_table); Txt_Show_all_data_in_a_table);
} }
/*****************************************************************************/
/****** Put icons to request locking/unlocking edition of all projects *******/
/*****************************************************************************/
static void Prj_PutIconsToLockUnlockAllProjects (void)
{
extern const char *Txt_Lock_editing;
extern const char *Txt_Unlock_editing;
/***** Put icon to lock all projects *****/
Lay_PutContextualLinkOnlyIcon (ActReqLckAllPrj,NULL,Prj_PutCurrentParams,
"lock.svg",
Txt_Lock_editing);
/***** Put icon to unlock all projects *****/
Lay_PutContextualLinkOnlyIcon (ActReqUnlAllPrj,NULL,Prj_PutCurrentParams,
"unlock.svg",
Txt_Unlock_editing);
}
/*****************************************************************************/ /*****************************************************************************/
/***************** View / edit file browser of one project *******************/ /***************** View / edit file browser of one project *******************/
/*****************************************************************************/ /*****************************************************************************/
@ -2235,7 +2270,7 @@ static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
Ico_PutContextualIconToPrint (ActPrnOnePrj,Prj_PutCurrentParams); Ico_PutContextualIconToPrint (ActPrnOnePrj,Prj_PutCurrentParams);
/***** Locked/unlocked project edition *****/ /***** Locked/unlocked project edition *****/
if (Prj_CheckIfICanLockProject ()) if (Prj_CheckIfICanLockProjects ())
{ {
/* Put form to lock/unlock project edition */ /* Put form to lock/unlock project edition */
fprintf (Gbl.F.Out,"<div id=\"prj_lck_%ld\">",Prj->PrjCod); fprintf (Gbl.F.Out,"<div id=\"prj_lck_%ld\">",Prj->PrjCod);
@ -2288,10 +2323,10 @@ static bool Prj_CheckIfICanEditProject (const struct Project *Prj)
} }
/*****************************************************************************/ /*****************************************************************************/
/************************ Can I block a given project? ***********************/ /********************* Can I lock/unlock project edition? ********************/
/*****************************************************************************/ /*****************************************************************************/
static bool Prj_CheckIfICanLockProject (void) static bool Prj_CheckIfICanLockProjects (void)
{ {
switch (Gbl.Usrs.Me.Role.Logged) switch (Gbl.Usrs.Me.Role.Logged)
{ {
@ -2972,10 +3007,7 @@ void Prj_LockProjectEdition (void)
if (Prj_CheckIfICanEditProject (&Prj)) if (Prj_CheckIfICanEditProject (&Prj))
{ {
/***** Lock project edition *****/ /***** Lock project edition *****/
DB_QueryUPDATE ("can not lock project edition", Prj_LockProjectEditionInDB (Prj.PrjCod);
"UPDATE projects SET Locked='Y'"
" WHERE PrjCod=%ld AND CrsCod=%ld",
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
Prj.Locked = Prj_LOCKED; Prj.Locked = Prj_LOCKED;
/***** Show updated form and icon *****/ /***** Show updated form and icon *****/
@ -2991,6 +3023,14 @@ void Prj_LockProjectEdition (void)
Gbl.Layout.DivsEndWritten = Gbl.Layout.HTMLEndWritten = true; Gbl.Layout.DivsEndWritten = Gbl.Layout.HTMLEndWritten = true;
} }
static void Prj_LockProjectEditionInDB (long PrjCod)
{
DB_QueryUPDATE ("can not lock project edition",
"UPDATE projects SET Locked='Y'"
" WHERE PrjCod=%ld AND CrsCod=%ld",
PrjCod,Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/ /*****************************************************************************/
/************************* Unlock edition of a project ***********************/ /************************* Unlock edition of a project ***********************/
/*****************************************************************************/ /*****************************************************************************/
@ -3013,10 +3053,7 @@ void Prj_UnlockProjectEdition (void)
if (Prj_CheckIfICanEditProject (&Prj)) if (Prj_CheckIfICanEditProject (&Prj))
{ {
/***** Unlock project edition *****/ /***** Unlock project edition *****/
DB_QueryUPDATE ("can not unlock project edition", Prj_UnlockProjectEditionInDB (Prj.PrjCod);
"UPDATE projects SET Locked='N'"
" WHERE PrjCod=%ld AND CrsCod=%ld",
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
Prj.Locked = Prj_UNLOCKED; Prj.Locked = Prj_UNLOCKED;
/***** Show updated form and icon *****/ /***** Show updated form and icon *****/
@ -3032,6 +3069,156 @@ void Prj_UnlockProjectEdition (void)
Gbl.Layout.DivsEndWritten = Gbl.Layout.HTMLEndWritten = true; Gbl.Layout.DivsEndWritten = Gbl.Layout.HTMLEndWritten = true;
} }
static void Prj_UnlockProjectEditionInDB (long PrjCod)
{
DB_QueryUPDATE ("can not lock project edition",
"UPDATE projects SET Locked='N'"
" WHERE PrjCod=%ld AND CrsCod=%ld",
PrjCod,Gbl.Hierarchy.Crs.CrsCod);
}
/*****************************************************************************/
/************ Request locking/unlocking edition of all projects **************/
/*****************************************************************************/
void Prj_ReqLockAllProjectsEdition (void)
{
extern const char *Txt_Lock_editing;
extern const char *Txt_Do_you_want_to_lock_the_editing_of_the_X_selected_projects;
extern const char *Txt_No_projects;
/***** Get parameters *****/
Prj_GetParams ();
/***** Show question and button to lock all selected projects *****/
if (Prj_CheckIfICanLockProjects ())
{
/* Get list of projects */
Prj_GetListProjects ();
/* Show question and button */
if (Gbl.Prjs.Num)
Ale_ShowAlertAndButton (ActLckAllPrj,NULL,NULL,Prj_PutCurrentParams,
Btn_REMOVE_BUTTON,Txt_Lock_editing,
Ale_QUESTION,Txt_Do_you_want_to_lock_the_editing_of_the_X_selected_projects,
Gbl.Prjs.Num);
else // No projects found
Ale_ShowAlert (Ale_INFO,Txt_No_projects);
/* Free list of projects */
Prj_FreeListProjects ();
}
else
Lay_NoPermissionExit ();
/***** Show projects again *****/
Prj_ShowProjectsInCurrentPage ();
}
void Prj_ReqUnlockAllProjectsEdition (void)
{
extern const char *Txt_Unlock_editing;
extern const char *Txt_Do_you_want_to_unlock_the_editing_of_the_X_selected_projects;
extern const char *Txt_No_projects;
/***** Get parameters *****/
Prj_GetParams ();
/***** Show question and button to unlock all selected projects *****/
if (Prj_CheckIfICanLockProjects ())
{
/* Get list of projects */
Prj_GetListProjects ();
/* Show question and button */
if (Gbl.Prjs.Num)
Ale_ShowAlertAndButton (ActUnlAllPrj,NULL,NULL,Prj_PutCurrentParams,
Btn_CREATE_BUTTON,Txt_Unlock_editing,
Ale_QUESTION,Txt_Do_you_want_to_unlock_the_editing_of_the_X_selected_projects,
Gbl.Prjs.Num);
else // No projects found
Ale_ShowAlert (Ale_INFO,Txt_No_projects);
/* Free list of projects */
Prj_FreeListProjects ();
}
else
Lay_NoPermissionExit ();
/***** Show projects again *****/
Prj_ShowProjectsInCurrentPage ();
}
/*****************************************************************************/
/******************* Lock/unlock edition of all projects *********************/
/*****************************************************************************/
void Prj_LockAllProjectsEdition (void)
{
extern const char *Txt_No_projects;
unsigned NumPrj;
/***** Get parameters *****/
Prj_GetParams ();
/***** Lock all selected projects *****/
if (Prj_CheckIfICanLockProjects ())
{
/* Get list of projects */
Prj_GetListProjects ();
/* Lock projects */
if (Gbl.Prjs.Num)
for (NumPrj = 0;
NumPrj < Gbl.Prjs.Num;
NumPrj++)
Prj_LockProjectEditionInDB (Gbl.Prjs.LstPrjCods[NumPrj]);
else // No projects found
Ale_ShowAlert (Ale_INFO,Txt_No_projects);
/* Free list of projects */
Prj_FreeListProjects ();
}
else
Lay_NoPermissionExit ();
/***** Show projects again *****/
Prj_ShowProjectsInCurrentPage ();
}
void Prj_UnlockAllProjectsEdition (void)
{
extern const char *Txt_No_projects;
unsigned NumPrj;
/***** Get parameters *****/
Prj_GetParams ();
/***** Unlock all selected projects *****/
if (Prj_CheckIfICanLockProjects ())
{
/* Get list of projects */
Prj_GetListProjects ();
/* Unlock projects */
if (Gbl.Prjs.Num)
for (NumPrj = 0;
NumPrj < Gbl.Prjs.Num;
NumPrj++)
Prj_UnlockProjectEditionInDB (Gbl.Prjs.LstPrjCods[NumPrj]);
else // No projects found
Ale_ShowAlert (Ale_INFO,Txt_No_projects);
/* Free list of projects */
Prj_FreeListProjects ();
}
else
Lay_NoPermissionExit ();
/***** Show projects again *****/
Prj_ShowProjectsInCurrentPage ();
}
/*****************************************************************************/ /*****************************************************************************/
/********************* Put a form to create/edit project *********************/ /********************* Put a form to create/edit project *********************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -202,6 +202,12 @@ void Prj_HideProject (void);
void Prj_ShowProject (void); void Prj_ShowProject (void);
void Prj_LockProjectEdition (void); void Prj_LockProjectEdition (void);
void Prj_UnlockProjectEdition (void); void Prj_UnlockProjectEdition (void);
void Prj_ReqLockAllProjectsEdition (void);
void Prj_ReqUnlockAllProjectsEdition (void);
void Prj_LockAllProjectsEdition (void);
void Prj_UnlockAllProjectsEdition (void);
void Prj_RecFormProject (void); void Prj_RecFormProject (void);
void Prj_RemoveCrsProjects (long CrsCod); void Prj_RemoveCrsProjects (long CrsCod);

View File

@ -17624,6 +17624,90 @@ const char *Txt_LOCKED_UNLOCKED[Prj_NUM_LOCKED_UNLOCKED] =
#endif #endif
}; };
const char *Txt_Lock_editing =
#if L==1 // ca
"Bloquejar edici&oacute;";
#elif L==2 // de
"Bearbeitung sperren";
#elif L==3 // en
"Lock editing";
#elif L==4 // es
"Bloquear edici&oacute;n";
#elif L==5 // fr
"Verrouiller l'&eacute;dition";
#elif L==6 // gn
"Bloquear edici&oacute;n"; // Okoteve traducción
#elif L==7 // it
"Blocca la modifica";
#elif L==8 // pl
"Zablokuj edycj&eogon;";
#elif L==9 // pt
"Bloquear edi&ccedil;&atilde;o";
#endif
const char *Txt_Unlock_editing =
#if L==1 // ca
"Desbloquejar edici&oacute;";
#elif L==2 // de
"Bearbeitung freischalten";
#elif L==3 // en
"Unlock editing";
#elif L==4 // es
"Desbloquear edici&oacute;n";
#elif L==5 // fr
"D&eacute;verrouiller l'&eacute;dition";
#elif L==6 // gn
"Desbloquear edici&oacute;n"; // Okoteve traducción
#elif L==7 // it
"Sblocca la modifica";
#elif L==8 // pl
"Odblokuj edycj&eogon;";
#elif L==9 // pt
"Desbloquear edi&ccedil;&atilde;o";
#endif
const char *Txt_Do_you_want_to_lock_the_editing_of_the_X_selected_projects = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Voleu bloquejar l'edici&oacute;n dels %u projectes seleccionats?";
#elif L==2 // de
"M&ouml;chten Sie die Bearbeitung der ausgew&auml;hlten %u-Projekte sperren?";
#elif L==3 // en
"Do you want to lock the editing of the %u selected projects?";
#elif L==4 // es
"&iquest;Desea bloquear la edici&oacute;n de los %u proyectos seleccionados?";
#elif L==5 // fr
"Voulez-vous verrouiller l'&eacute;dition des %u projets s&eacute;lectionn&eacute;s?";
#elif L==6 // gn
"&iquest;Desea bloquear la edici&oacute;n de los %u proyectos seleccionados?"; // Okoteve traducción
#elif L==7 // it
"Vuoi bloccare la modifica dei %u progetti selezionati?";
#elif L==8 // pl
"Czy chcesz zablokowa&cacute; edycj&eogon; %u wybranych projekt&oacute;w?";
#elif L==9 // pt
"Voc&ecirc; quer bloquear a edi&ccedil;&atilde;o dos %u projetos selecionados?";
#endif
const char *Txt_Do_you_want_to_unlock_the_editing_of_the_X_selected_projects = // Warning: it is very important to include %u in the following sentences
#if L==1 // ca
"Voleu desbloquejar l'edici&oacute; dels %u projectes seleccionats?";
#elif L==2 // de
"M&ouml;chten Sie die Bearbeitung der ausgew&auml;hlten %u-Projekte freischalten?";
#elif L==3 // en
"Do you want to unlock the editing of the %u selected projects?";
#elif L==4 // es
"&iquest;Desea desbloquear la edici&oacute;n de los %u proyectos seleccionados?";
#elif L==5 // fr
"Voulez-vous d&eacute;verrouiller l'&eacute;dition des %u projets s&eacute;lectionn&eacute;s?";
#elif L==6 // gn
"&iquest;Desea desbloquear la edici&oacute;n de los %u proyectos seleccionados?"; // Okoteve traducción
#elif L==7 // it
"Vuoi sbloccare la modifica dei %u progetti selezionati?";
#elif L==8 // pl
"Czy chcesz odblokowa&cacute; edycj&eogon; %u wybranych projekt&oacute;w?";
#elif L==9 // pt
"Voc&ecirc; quer desbloquear a edi&ccedil;&atilde;o dos %u projetos selecionados?";
#endif
const char *Txt_LOG_More_info = const char *Txt_LOG_More_info =
#if L==1 // ca #if L==1 // ca
"Observaciones"; // Necessita traduccio "Observaciones"; // Necessita traduccio