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
NEW. ActLckPrj Lock 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
367. ActReqAddTutPrj Request adding a tutor 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},
/* 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},
/* 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},
/* 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},
/* 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},
/* 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},
@ -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},
/* 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},
/* 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},
/* 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},
/* 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},
/* 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},
@ -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},
/* 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},
/* 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},
/* 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},
@ -4955,6 +4963,10 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActReqMaiUsr, // #1772
ActLckPrj, // #1773
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
#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
@ -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 ActLckPrj (ActChgCrsTT1stDay + 38)
#define ActUnlPrj (ActChgCrsTT1stDay + 39)
#define ActReqAddStdPrj (ActChgCrsTT1stDay + 40)
#define ActReqAddTutPrj (ActChgCrsTT1stDay + 41)
#define ActReqAddEvlPrj (ActChgCrsTT1stDay + 42)
#define ActAddStdPrj (ActChgCrsTT1stDay + 43)
#define ActAddTutPrj (ActChgCrsTT1stDay + 44)
#define ActAddEvlPrj (ActChgCrsTT1stDay + 45)
#define ActReqRemStdPrj (ActChgCrsTT1stDay + 46)
#define ActReqRemTutPrj (ActChgCrsTT1stDay + 47)
#define ActReqRemEvlPrj (ActChgCrsTT1stDay + 48)
#define ActRemStdPrj (ActChgCrsTT1stDay + 49)
#define ActRemTutPrj (ActChgCrsTT1stDay + 50)
#define ActRemEvlPrj (ActChgCrsTT1stDay + 51)
#define ActReqLckAllPrj (ActChgCrsTT1stDay + 40)
#define ActReqUnlAllPrj (ActChgCrsTT1stDay + 41)
#define ActLckAllPrj (ActChgCrsTT1stDay + 42)
#define ActUnlAllPrj (ActChgCrsTT1stDay + 43)
#define ActReqAddStdPrj (ActChgCrsTT1stDay + 44)
#define ActReqAddTutPrj (ActChgCrsTT1stDay + 45)
#define ActReqAddEvlPrj (ActChgCrsTT1stDay + 46)
#define ActAddStdPrj (ActChgCrsTT1stDay + 47)
#define ActAddTutPrj (ActChgCrsTT1stDay + 48)
#define ActAddEvlPrj (ActChgCrsTT1stDay + 49)
#define ActReqRemStdPrj (ActChgCrsTT1stDay + 50)
#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 ActReqRemFilDocPrj (ActChgCrsTT1stDay + 53)
#define ActRemFilDocPrj (ActChgCrsTT1stDay + 54)
#define ActRemFolDocPrj (ActChgCrsTT1stDay + 55)
#define ActCopDocPrj (ActChgCrsTT1stDay + 56)
#define ActPasDocPrj (ActChgCrsTT1stDay + 57)
#define ActRemTreDocPrj (ActChgCrsTT1stDay + 58)
#define ActFrmCreDocPrj (ActChgCrsTT1stDay + 59)
#define ActCreFolDocPrj (ActChgCrsTT1stDay + 60)
#define ActCreLnkDocPrj (ActChgCrsTT1stDay + 61)
#define ActRenFolDocPrj (ActChgCrsTT1stDay + 62)
#define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 63)
#define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 64)
#define ActExpDocPrj (ActChgCrsTT1stDay + 65)
#define ActConDocPrj (ActChgCrsTT1stDay + 66)
#define ActZIPDocPrj (ActChgCrsTT1stDay + 67)
#define ActReqDatDocPrj (ActChgCrsTT1stDay + 68)
#define ActChgDatDocPrj (ActChgCrsTT1stDay + 69)
#define ActDowDocPrj (ActChgCrsTT1stDay + 70)
#define ActAdmDocPrj (ActChgCrsTT1stDay + 56)
#define ActReqRemFilDocPrj (ActChgCrsTT1stDay + 57)
#define ActRemFilDocPrj (ActChgCrsTT1stDay + 58)
#define ActRemFolDocPrj (ActChgCrsTT1stDay + 59)
#define ActCopDocPrj (ActChgCrsTT1stDay + 60)
#define ActPasDocPrj (ActChgCrsTT1stDay + 61)
#define ActRemTreDocPrj (ActChgCrsTT1stDay + 62)
#define ActFrmCreDocPrj (ActChgCrsTT1stDay + 63)
#define ActCreFolDocPrj (ActChgCrsTT1stDay + 64)
#define ActCreLnkDocPrj (ActChgCrsTT1stDay + 65)
#define ActRenFolDocPrj (ActChgCrsTT1stDay + 66)
#define ActRcvFilDocPrjDZ (ActChgCrsTT1stDay + 67)
#define ActRcvFilDocPrjCla (ActChgCrsTT1stDay + 68)
#define ActExpDocPrj (ActChgCrsTT1stDay + 69)
#define ActConDocPrj (ActChgCrsTT1stDay + 70)
#define ActZIPDocPrj (ActChgCrsTT1stDay + 71)
#define ActReqDatDocPrj (ActChgCrsTT1stDay + 72)
#define ActChgDatDocPrj (ActChgCrsTT1stDay + 73)
#define ActDowDocPrj (ActChgCrsTT1stDay + 74)
#define ActAdmAssPrj (ActChgCrsTT1stDay + 71)
#define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 72)
#define ActRemFilAssPrj (ActChgCrsTT1stDay + 73)
#define ActRemFolAssPrj (ActChgCrsTT1stDay + 74)
#define ActCopAssPrj (ActChgCrsTT1stDay + 75)
#define ActPasAssPrj (ActChgCrsTT1stDay + 76)
#define ActRemTreAssPrj (ActChgCrsTT1stDay + 77)
#define ActFrmCreAssPrj (ActChgCrsTT1stDay + 78)
#define ActCreFolAssPrj (ActChgCrsTT1stDay + 79)
#define ActCreLnkAssPrj (ActChgCrsTT1stDay + 80)
#define ActRenFolAssPrj (ActChgCrsTT1stDay + 81)
#define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 82)
#define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 83)
#define ActExpAssPrj (ActChgCrsTT1stDay + 84)
#define ActConAssPrj (ActChgCrsTT1stDay + 85)
#define ActZIPAssPrj (ActChgCrsTT1stDay + 86)
#define ActReqDatAssPrj (ActChgCrsTT1stDay + 87)
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 88)
#define ActDowAssPrj (ActChgCrsTT1stDay + 89)
#define ActAdmAssPrj (ActChgCrsTT1stDay + 75)
#define ActReqRemFilAssPrj (ActChgCrsTT1stDay + 76)
#define ActRemFilAssPrj (ActChgCrsTT1stDay + 77)
#define ActRemFolAssPrj (ActChgCrsTT1stDay + 78)
#define ActCopAssPrj (ActChgCrsTT1stDay + 79)
#define ActPasAssPrj (ActChgCrsTT1stDay + 80)
#define ActRemTreAssPrj (ActChgCrsTT1stDay + 81)
#define ActFrmCreAssPrj (ActChgCrsTT1stDay + 82)
#define ActCreFolAssPrj (ActChgCrsTT1stDay + 83)
#define ActCreLnkAssPrj (ActChgCrsTT1stDay + 84)
#define ActRenFolAssPrj (ActChgCrsTT1stDay + 85)
#define ActRcvFilAssPrjDZ (ActChgCrsTT1stDay + 86)
#define ActRcvFilAssPrjCla (ActChgCrsTT1stDay + 87)
#define ActExpAssPrj (ActChgCrsTT1stDay + 88)
#define ActConAssPrj (ActChgCrsTT1stDay + 89)
#define ActZIPAssPrj (ActChgCrsTT1stDay + 90)
#define ActReqDatAssPrj (ActChgCrsTT1stDay + 91)
#define ActChgDatAssPrj (ActChgCrsTT1stDay + 92)
#define ActDowAssPrj (ActChgCrsTT1stDay + 93)
#define ActSeeTst (ActChgCrsTT1stDay + 90)
#define ActAssTst (ActChgCrsTT1stDay + 91)
#define ActEdiTstQst (ActChgCrsTT1stDay + 92)
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 93)
#define ActReqImpTstQst (ActChgCrsTT1stDay + 94)
#define ActImpTstQst (ActChgCrsTT1stDay + 95)
#define ActLstTstQst (ActChgCrsTT1stDay + 96)
#define ActRcvTstQst (ActChgCrsTT1stDay + 97)
#define ActReqRemTstQst (ActChgCrsTT1stDay + 98)
#define ActRemTstQst (ActChgCrsTT1stDay + 99)
#define ActShfTstQst (ActChgCrsTT1stDay + 100)
#define ActCfgTst (ActChgCrsTT1stDay + 101)
#define ActEnableTag (ActChgCrsTT1stDay + 102)
#define ActDisableTag (ActChgCrsTT1stDay + 103)
#define ActRenTag (ActChgCrsTT1stDay + 104)
#define ActRcvCfgTst (ActChgCrsTT1stDay + 105)
#define ActSeeTst (ActChgCrsTT1stDay + 94)
#define ActAssTst (ActChgCrsTT1stDay + 95)
#define ActEdiTstQst (ActChgCrsTT1stDay + 96)
#define ActEdiOneTstQst (ActChgCrsTT1stDay + 97)
#define ActReqImpTstQst (ActChgCrsTT1stDay + 98)
#define ActImpTstQst (ActChgCrsTT1stDay + 99)
#define ActLstTstQst (ActChgCrsTT1stDay + 100)
#define ActRcvTstQst (ActChgCrsTT1stDay + 101)
#define ActReqRemTstQst (ActChgCrsTT1stDay + 102)
#define ActRemTstQst (ActChgCrsTT1stDay + 103)
#define ActShfTstQst (ActChgCrsTT1stDay + 104)
#define ActCfgTst (ActChgCrsTT1stDay + 105)
#define ActEnableTag (ActChgCrsTT1stDay + 106)
#define ActDisableTag (ActChgCrsTT1stDay + 107)
#define ActRenTag (ActChgCrsTT1stDay + 108)
#define ActRcvCfgTst (ActChgCrsTT1stDay + 109)
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 106)
#define ActSeeMyTstRes (ActChgCrsTT1stDay + 107)
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 108)
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 109)
#define ActSeeUsrTstRes (ActChgCrsTT1stDay + 110)
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 111)
#define ActReqSeeMyTstRes (ActChgCrsTT1stDay + 110)
#define ActSeeMyTstRes (ActChgCrsTT1stDay + 111)
#define ActSeeOneTstResMe (ActChgCrsTT1stDay + 112)
#define ActReqSeeUsrTstRes (ActChgCrsTT1stDay + 113)
#define ActSeeUsrTstRes (ActChgCrsTT1stDay + 114)
#define ActSeeOneTstResOth (ActChgCrsTT1stDay + 115)
#define ActSeeOneGam (ActChgCrsTT1stDay + 112)
#define ActPlyGam (ActChgCrsTT1stDay + 113)
#define ActPlyGam1stQst (ActChgCrsTT1stDay + 114)
#define ActPlyGamNxtQst (ActChgCrsTT1stDay + 115)
#define ActPlyGamAns (ActChgCrsTT1stDay + 116)
#define ActAnsGam (ActChgCrsTT1stDay + 117)
#define ActFrmNewGam (ActChgCrsTT1stDay + 118)
#define ActEdiOneGam (ActChgCrsTT1stDay + 119)
#define ActNewGam (ActChgCrsTT1stDay + 120)
#define ActChgGam (ActChgCrsTT1stDay + 121)
#define ActReqRemGam (ActChgCrsTT1stDay + 122)
#define ActRemGam (ActChgCrsTT1stDay + 123)
#define ActReqRstGam (ActChgCrsTT1stDay + 124)
#define ActRstGam (ActChgCrsTT1stDay + 125)
#define ActHidGam (ActChgCrsTT1stDay + 126)
#define ActShoGam (ActChgCrsTT1stDay + 127)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 128)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 129)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 130)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 131)
#define ActRemGamQst (ActChgCrsTT1stDay + 132)
#define ActUp_GamQst (ActChgCrsTT1stDay + 133)
#define ActDwnGamQst (ActChgCrsTT1stDay + 134)
#define ActSeeOneGam (ActChgCrsTT1stDay + 116)
#define ActPlyGam (ActChgCrsTT1stDay + 117)
#define ActPlyGam1stQst (ActChgCrsTT1stDay + 118)
#define ActPlyGamNxtQst (ActChgCrsTT1stDay + 119)
#define ActPlyGamAns (ActChgCrsTT1stDay + 120)
#define ActAnsGam (ActChgCrsTT1stDay + 121)
#define ActFrmNewGam (ActChgCrsTT1stDay + 122)
#define ActEdiOneGam (ActChgCrsTT1stDay + 123)
#define ActNewGam (ActChgCrsTT1stDay + 124)
#define ActChgGam (ActChgCrsTT1stDay + 125)
#define ActReqRemGam (ActChgCrsTT1stDay + 126)
#define ActRemGam (ActChgCrsTT1stDay + 127)
#define ActReqRstGam (ActChgCrsTT1stDay + 128)
#define ActRstGam (ActChgCrsTT1stDay + 129)
#define ActHidGam (ActChgCrsTT1stDay + 130)
#define ActShoGam (ActChgCrsTT1stDay + 131)
#define ActAddOneGamQst (ActChgCrsTT1stDay + 132)
#define ActGamLstTstQst (ActChgCrsTT1stDay + 133)
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 134)
#define ActReqRemGamQst (ActChgCrsTT1stDay + 135)
#define ActRemGamQst (ActChgCrsTT1stDay + 136)
#define ActUp_GamQst (ActChgCrsTT1stDay + 137)
#define ActDwnGamQst (ActChgCrsTT1stDay + 138)
#define ActSeeOneSvy (ActChgCrsTT1stDay + 135)
#define ActAnsSvy (ActChgCrsTT1stDay + 136)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 137)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 138)
#define ActNewSvy (ActChgCrsTT1stDay + 139)
#define ActChgSvy (ActChgCrsTT1stDay + 140)
#define ActReqRemSvy (ActChgCrsTT1stDay + 141)
#define ActRemSvy (ActChgCrsTT1stDay + 142)
#define ActReqRstSvy (ActChgCrsTT1stDay + 143)
#define ActRstSvy (ActChgCrsTT1stDay + 144)
#define ActHidSvy (ActChgCrsTT1stDay + 145)
#define ActShoSvy (ActChgCrsTT1stDay + 146)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 147)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 148)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 149)
#define ActRemSvyQst (ActChgCrsTT1stDay + 150)
#define ActSeeOneSvy (ActChgCrsTT1stDay + 139)
#define ActAnsSvy (ActChgCrsTT1stDay + 140)
#define ActFrmNewSvy (ActChgCrsTT1stDay + 141)
#define ActEdiOneSvy (ActChgCrsTT1stDay + 142)
#define ActNewSvy (ActChgCrsTT1stDay + 143)
#define ActChgSvy (ActChgCrsTT1stDay + 144)
#define ActReqRemSvy (ActChgCrsTT1stDay + 145)
#define ActRemSvy (ActChgCrsTT1stDay + 146)
#define ActReqRstSvy (ActChgCrsTT1stDay + 147)
#define ActRstSvy (ActChgCrsTT1stDay + 148)
#define ActHidSvy (ActChgCrsTT1stDay + 149)
#define ActShoSvy (ActChgCrsTT1stDay + 150)
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 151)
#define ActRcvSvyQst (ActChgCrsTT1stDay + 152)
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 153)
#define ActRemSvyQst (ActChgCrsTT1stDay + 154)
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 151)
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 152)
#define ActEdiExaAnn (ActChgCrsTT1stDay + 153)
#define ActRcvExaAnn (ActChgCrsTT1stDay + 154)
#define ActPrnExaAnn (ActChgCrsTT1stDay + 155)
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 156)
#define ActRemExaAnn (ActChgCrsTT1stDay + 157)
#define ActHidExaAnn (ActChgCrsTT1stDay + 158)
#define ActShoExaAnn (ActChgCrsTT1stDay + 159)
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 155)
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 156)
#define ActEdiExaAnn (ActChgCrsTT1stDay + 157)
#define ActRcvExaAnn (ActChgCrsTT1stDay + 158)
#define ActPrnExaAnn (ActChgCrsTT1stDay + 159)
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 160)
#define ActRemExaAnn (ActChgCrsTT1stDay + 161)
#define ActHidExaAnn (ActChgCrsTT1stDay + 162)
#define ActShoExaAnn (ActChgCrsTT1stDay + 163)
/*****************************************************************************/
/******************************** 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: Pedro Villar Castro:
// Que haya una opción general que los bloquee todos y que los desbloquee todos
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
@ -453,10 +450,11 @@ En OpenSWAD:
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 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.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)

View File

@ -140,6 +140,8 @@ static void Prj_PutIconsListProjects (void);
static void Prj_PutIconToCreateNewPrj (void);
static void Prj_PutButtonToCreateNewPrj (void);
static void Prj_PutIconToShowAllData (void);
static void Prj_PutIconsToLockUnlockAllProjects (void);
static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
Prj_ProjectView_t ProjectView);
static void Prj_PutIconToToggleProject (unsigned UniqueId,
@ -185,12 +187,15 @@ static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
bool ICanViewProjectFiles);
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_PutIconOffLockedUnlocked (const 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_PutFormProject (struct Project *Prj,bool ItsANewProject);
static void Prj_EditOneProjectTxtArea (const char *Id,
@ -255,6 +260,9 @@ void Prj_ShowTableAllProjects (void)
}
else // No projects created
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 ())
Prj_PutIconToCreateNewPrj ();
/***** Put icon to show all data in a table *****/
Prj_PutIconToShowAllData ();
if (Gbl.Prjs.Num)
{
/***** 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 *****/
Gbl.Figures.FigureType = Fig_PROJECTS;
@ -862,6 +877,26 @@ static void Prj_PutIconToShowAllData (void)
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 *******************/
/*****************************************************************************/
@ -2235,7 +2270,7 @@ static void Prj_PutFormsToRemEditOnePrj (const struct Project *Prj,
Ico_PutContextualIconToPrint (ActPrnOnePrj,Prj_PutCurrentParams);
/***** Locked/unlocked project edition *****/
if (Prj_CheckIfICanLockProject ())
if (Prj_CheckIfICanLockProjects ())
{
/* Put form to lock/unlock project edition */
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)
{
@ -2972,10 +3007,7 @@ void Prj_LockProjectEdition (void)
if (Prj_CheckIfICanEditProject (&Prj))
{
/***** Lock project edition *****/
DB_QueryUPDATE ("can not lock project edition",
"UPDATE projects SET Locked='Y'"
" WHERE PrjCod=%ld AND CrsCod=%ld",
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
Prj_LockProjectEditionInDB (Prj.PrjCod);
Prj.Locked = Prj_LOCKED;
/***** Show updated form and icon *****/
@ -2991,6 +3023,14 @@ void Prj_LockProjectEdition (void)
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 ***********************/
/*****************************************************************************/
@ -3013,10 +3053,7 @@ void Prj_UnlockProjectEdition (void)
if (Prj_CheckIfICanEditProject (&Prj))
{
/***** Unlock project edition *****/
DB_QueryUPDATE ("can not unlock project edition",
"UPDATE projects SET Locked='N'"
" WHERE PrjCod=%ld AND CrsCod=%ld",
Prj.PrjCod,Gbl.Hierarchy.Crs.CrsCod);
Prj_UnlockProjectEditionInDB (Prj.PrjCod);
Prj.Locked = Prj_UNLOCKED;
/***** Show updated form and icon *****/
@ -3032,6 +3069,156 @@ void Prj_UnlockProjectEdition (void)
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 *********************/
/*****************************************************************************/

View File

@ -202,6 +202,12 @@ void Prj_HideProject (void);
void Prj_ShowProject (void);
void Prj_LockProjectEdition (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_RemoveCrsProjects (long CrsCod);

View File

@ -17624,6 +17624,90 @@ const char *Txt_LOCKED_UNLOCKED[Prj_NUM_LOCKED_UNLOCKED] =
#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 =
#if L==1 // ca
"Observaciones"; // Necessita traduccio