mirror of https://github.com/acanas/swad-core.git
Version18.115
This commit is contained in:
parent
e294717aac
commit
25c45c3482
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
248
swad_action.h
248
swad_action.h
|
@ -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 **********************************/
|
||||||
|
|
|
@ -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)
|
||||||
|
|
215
swad_project.c
215
swad_project.c
|
@ -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 *********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -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);
|
||||||
|
|
84
swad_text.c
84
swad_text.c
|
@ -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ó";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Bearbeitung sperren";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Lock editing";
|
||||||
|
#elif L==4 // es
|
||||||
|
"Bloquear edición";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Verrouiller l'édition";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Bloquear edición"; // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Blocca la modifica";
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Zablokuj edycję";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Bloquear edição";
|
||||||
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Unlock_editing =
|
||||||
|
#if L==1 // ca
|
||||||
|
"Desbloquejar edició";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Bearbeitung freischalten";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Unlock editing";
|
||||||
|
#elif L==4 // es
|
||||||
|
"Desbloquear edición";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Déverrouiller l'édition";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Desbloquear edición"; // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Sblocca la modifica";
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Odblokuj edycję";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Desbloquear ediçã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ón dels %u projectes seleccionats?";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Möchten Sie die Bearbeitung der ausgewählten %u-Projekte sperren?";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Do you want to lock the editing of the %u selected projects?";
|
||||||
|
#elif L==4 // es
|
||||||
|
"¿Desea bloquear la edición de los %u proyectos seleccionados?";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Voulez-vous verrouiller l'édition des %u projets sélectionnés?";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"¿Desea bloquear la edició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ć edycję %u wybranych projektów?";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Você quer bloquear a ediçã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ó dels %u projectes seleccionats?";
|
||||||
|
#elif L==2 // de
|
||||||
|
"Möchten Sie die Bearbeitung der ausgewählten %u-Projekte freischalten?";
|
||||||
|
#elif L==3 // en
|
||||||
|
"Do you want to unlock the editing of the %u selected projects?";
|
||||||
|
#elif L==4 // es
|
||||||
|
"¿Desea desbloquear la edición de los %u proyectos seleccionados?";
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Voulez-vous déverrouiller l'édition des %u projets sélectionnés?";
|
||||||
|
#elif L==6 // gn
|
||||||
|
"¿Desea desbloquear la edició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ć edycję %u wybranych projektów?";
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Você quer desbloquear a ediçã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
|
||||||
|
|
Loading…
Reference in New Issue