Version 17.20

This commit is contained in:
Antonio Cañas Vargas 2017-10-06 20:56:01 +02:00
parent f15e79f0a0
commit 95ebf5b9cd
7 changed files with 268 additions and 121 deletions

View File

@ -456,7 +456,6 @@ Assessment:
316. ActSeeTblAllPrj Show all projects in a table
317. ActFrmNewPrj Form to create a new project
318. ActEdiOnePrj Edit one project
NEW. ActFilBrwOnePrj View / edit project file browser
319. ActPrnOnePrj Print one project
320. ActNewPrj Create new project
321. ActChgPrj Modify data of an existing project
@ -477,6 +476,26 @@ Assessment:
336. ActRemTutPrj Remove a tutor from a project
337. ActRemEvaPrj Remove an emulator from a project
NEW. ActAdmDocPrj Admin. project documents
NEW. ActReqRemFilBrf Request removal of a file from project documents
NEW. ActRemFilBrf Remove a file from project documents
NEW. ActRemFolBrf Remove an empty folder from project documents
NEW. ActCopBrf Set source of copy in project documents
NEW. ActPasBrf Paste a folder or file into project documents
NEW. ActRemTreBrf Remove a non empty folder from project documents
NEW. ActFrmCreBrf Form to create a folder or file in project documents
NEW. ActCreFolBrf Create a new folder in project documents
NEW. ActCreLnkBrf Create a new link in project documents
NEW. ActRenFolBrf Rename a folder in project documents
NEW. ActRcvFilBrfDZ Receive a file in project documents using Dropzone.js
NEW. ActRcvFilBrfCla Receive a file in project documents using the classic way
NEW. ActExpBrf Expand a folder in project documents
NEW. ActConBrf Contract a folder in project documents
NEW. ActZIPBrf Compress a folder in project documents
NEW. ActReqDatBrf Ask for metadata of a file in project documents
NEW. ActChgDatBrf Change metadata of a file in project documents
NEW. ActDowBrf Download a file from project documents
338. ActSeeTst Show the seft-assessment test
339. ActAssTst Assess a self-assessment test
330. ActEdiTstQst Request the edition of self-assessment questions
@ -563,6 +582,7 @@ Files:
417. ActAdmAsgWrkUsr One user sends works of the course
418. ActReqAsgWrkCrs A teacher requests edition of works sent to the course
419. ActSeeAdmMrk Marks zone (see or admin)
1244. ActAdmBrf Show the briefcase of private archives
420. ActChgToSeeDocIns Change to see institution documents
@ -1459,7 +1479,6 @@ Profile:
1241. ActFrmMyAcc Show form to the creation or change of user's account
1242. ActReqEdiRecCom Request the edition of the record with the personal data of the user
1243. ActEdiPrf Show forms to edit preferences
1244. ActAdmBrf Show the briefcase of private archives
1245. ActReqSndNewPwd Show form to send a new password via email
1246. ActSndNewPwd Send a new password via email
@ -1960,7 +1979,6 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSeeTblAllPrj */{1696,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_ShowTableAllProjects ,NULL},
/* ActFrmNewPrj */{1675,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestCreatePrj ,NULL},
/* ActEdiOnePrj */{1676,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RequestEditPrj ,NULL},
/* ActFilBrwOnePrj */{1697,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_FileBrowserPrj ,NULL},
/* ActPrnOnePrj */{1677,-1,TabUnk,ActSeePrj ,0x3F8,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,NULL ,Prj_PrintOneProject ,NULL},
/* ActNewPrj */{1678,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RecFormProject ,NULL},
/* ActChgPrj */{1679,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RecFormProject ,NULL},
@ -1981,6 +1999,26 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActRemTutPrj */{1694,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RemTut ,NULL},
/* ActRemEvaPrj */{1695,-1,TabUnk,ActSeePrj ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_RemEva ,NULL},
/* ActAdmDocPrj */{1697,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prj_FileBrowserPrj ,NULL},
/* ActReqRemFilDocPrj*/{1698,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_AskRemFileFromTree ,NULL},
/* ActRemFilDocPrj */{1699,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_RemFileFromTree ,NULL},
/* ActRemFolDocPrj */{1700,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_RemFolderFromTree ,NULL},
/* ActCopDocPrj */{1701,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_CopyFromFileBrowser ,NULL},
/* ActPasDocPrj */{1702,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_PasteIntoFileBrowser ,NULL},
/* ActRemTreDocPrj */{1703,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_RemSubtreeInFileBrowser ,NULL},
/* ActFrmCreDocPrj */{1704,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFormFileBrowser ,NULL},
/* ActCreFolDocPrj */{1705,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_RecFolderFileBrowser ,NULL},
/* ActCreLnkDocPrj */{1706,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_RecLinkFileBrowser ,NULL},
/* ActRenFolDocPrj */{1707,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_RenFolderFileBrowser ,NULL},
/* ActRcvFilDocPrjDZ */{1708,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_DATA,Act_UPLOAD_FILE,Brw_RcvFileInFileBrwDropzone ,NULL ,NULL},
/* ActRcvFilDocPrjCla*/{1709,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,Brw_RcvFileInFileBrwClassic ,NULL},
/* ActExpDocPrj */{1710,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_204_NO_CONT,Brw_ExpandFileTree ,NULL ,NULL},
/* ActConDocPrj */{1711,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_204_NO_CONT,Brw_ContractFileTree ,NULL ,NULL},
/* ActZIPDocPrj */{1712,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ZIP_CompressFileTree ,NULL},
/* ActReqDatDocPrj */{1713,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileMetadata ,NULL},
/* ActChgDatDocPrj */{1714,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ChgFileMetadata ,NULL},
/* ActDowDocPrj */{1715,-1,TabUnk,ActSeePrj ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
/* ActSeeTst */{ 29,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_ShowNewTest ,NULL},
/* ActAssTst */{ 98,-1,TabUnk,ActReqTst ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Tst_AssessTest ,NULL},
@ -4803,7 +4841,25 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActRemTutPrj, // #1694
ActRemEvaPrj, // #1695
ActSeeTblAllPrj, // #1696
ActFilBrwOnePrj, // #1697
ActAdmDocPrj, // #1697
ActReqRemFilDocPrj, // #1698
ActRemFilDocPrj, // #1699
ActRemFolDocPrj, // #1700
ActCopDocPrj, // #1701
ActPasDocPrj, // #1702
ActRemTreDocPrj, // #1703
ActFrmCreDocPrj, // #1704
ActCreFolDocPrj, // #1705
ActCreLnkDocPrj, // #1706
ActRenFolDocPrj, // #1707
ActRcvFilDocPrjDZ, // #1708
ActRcvFilDocPrjCla, // #1709
ActExpDocPrj, // #1710
ActConDocPrj, // #1711
ActZIPDocPrj, // #1712
ActReqDatDocPrj, // #1713
ActChgDatDocPrj, // #1714
ActDowDocPrj, // #1715
};
/*****************************************************************************/

View File

@ -59,9 +59,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 + 9 + 43 + 17 + 47 + 33 + 24 + 115 + 120 + 437 + 165 + 172 + 42 + 14 + 76)
#define Act_NUM_ACTIONS (1 + 9 + 43 + 17 + 47 + 33 + 24 + 115 + 138 + 437 + 165 + 172 + 42 + 14 + 76)
#define Act_MAX_ACTION_COD 1697
#define Act_MAX_ACTION_COD 1715
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -467,101 +467,120 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActSeeTblAllPrj (ActChgCalCrs1stDay + 28)
#define ActFrmNewPrj (ActChgCalCrs1stDay + 29)
#define ActEdiOnePrj (ActChgCalCrs1stDay + 30)
#define ActFilBrwOnePrj (ActChgCalCrs1stDay + 31)
#define ActPrnOnePrj (ActChgCalCrs1stDay + 32)
#define ActNewPrj (ActChgCalCrs1stDay + 33)
#define ActChgPrj (ActChgCalCrs1stDay + 34)
#define ActReqRemPrj (ActChgCalCrs1stDay + 35)
#define ActRemPrj (ActChgCalCrs1stDay + 36)
#define ActHidPrj (ActChgCalCrs1stDay + 37)
#define ActShoPrj (ActChgCalCrs1stDay + 38)
#define ActReqAddStdPrj (ActChgCalCrs1stDay + 39)
#define ActReqAddTutPrj (ActChgCalCrs1stDay + 40)
#define ActReqAddEvaPrj (ActChgCalCrs1stDay + 41)
#define ActAddStdPrj (ActChgCalCrs1stDay + 42)
#define ActAddTutPrj (ActChgCalCrs1stDay + 43)
#define ActAddEvaPrj (ActChgCalCrs1stDay + 44)
#define ActReqRemStdPrj (ActChgCalCrs1stDay + 45)
#define ActReqRemTutPrj (ActChgCalCrs1stDay + 46)
#define ActReqRemEvaPrj (ActChgCalCrs1stDay + 47)
#define ActRemStdPrj (ActChgCalCrs1stDay + 48)
#define ActRemTutPrj (ActChgCalCrs1stDay + 49)
#define ActRemEvaPrj (ActChgCalCrs1stDay + 50)
#define ActPrnOnePrj (ActChgCalCrs1stDay + 31)
#define ActNewPrj (ActChgCalCrs1stDay + 32)
#define ActChgPrj (ActChgCalCrs1stDay + 33)
#define ActReqRemPrj (ActChgCalCrs1stDay + 34)
#define ActRemPrj (ActChgCalCrs1stDay + 35)
#define ActHidPrj (ActChgCalCrs1stDay + 36)
#define ActShoPrj (ActChgCalCrs1stDay + 37)
#define ActReqAddStdPrj (ActChgCalCrs1stDay + 38)
#define ActReqAddTutPrj (ActChgCalCrs1stDay + 39)
#define ActReqAddEvaPrj (ActChgCalCrs1stDay + 40)
#define ActAddStdPrj (ActChgCalCrs1stDay + 41)
#define ActAddTutPrj (ActChgCalCrs1stDay + 42)
#define ActAddEvaPrj (ActChgCalCrs1stDay + 43)
#define ActReqRemStdPrj (ActChgCalCrs1stDay + 44)
#define ActReqRemTutPrj (ActChgCalCrs1stDay + 45)
#define ActReqRemEvaPrj (ActChgCalCrs1stDay + 46)
#define ActRemStdPrj (ActChgCalCrs1stDay + 47)
#define ActRemTutPrj (ActChgCalCrs1stDay + 48)
#define ActRemEvaPrj (ActChgCalCrs1stDay + 49)
#define ActSeeTst (ActChgCalCrs1stDay + 51)
#define ActAssTst (ActChgCalCrs1stDay + 52)
#define ActEdiTstQst (ActChgCalCrs1stDay + 53)
#define ActEdiOneTstQst (ActChgCalCrs1stDay + 54)
#define ActReqImpTstQst (ActChgCalCrs1stDay + 55)
#define ActImpTstQst (ActChgCalCrs1stDay + 56)
#define ActLstTstQst (ActChgCalCrs1stDay + 57)
#define ActRcvTstQst (ActChgCalCrs1stDay + 58)
#define ActReqRemTstQst (ActChgCalCrs1stDay + 59)
#define ActRemTstQst (ActChgCalCrs1stDay + 60)
#define ActShfTstQst (ActChgCalCrs1stDay + 61)
#define ActCfgTst (ActChgCalCrs1stDay + 62)
#define ActEnableTag (ActChgCalCrs1stDay + 63)
#define ActDisableTag (ActChgCalCrs1stDay + 64)
#define ActRenTag (ActChgCalCrs1stDay + 65)
#define ActRcvCfgTst (ActChgCalCrs1stDay + 66)
#define ActAdmDocPrj (ActChgCalCrs1stDay + 50)
#define ActReqRemFilDocPrj (ActChgCalCrs1stDay + 51)
#define ActRemFilDocPrj (ActChgCalCrs1stDay + 52)
#define ActRemFolDocPrj (ActChgCalCrs1stDay + 53)
#define ActCopDocPrj (ActChgCalCrs1stDay + 54)
#define ActPasDocPrj (ActChgCalCrs1stDay + 55)
#define ActRemTreDocPrj (ActChgCalCrs1stDay + 56)
#define ActFrmCreDocPrj (ActChgCalCrs1stDay + 57)
#define ActCreFolDocPrj (ActChgCalCrs1stDay + 58)
#define ActCreLnkDocPrj (ActChgCalCrs1stDay + 59)
#define ActRenFolDocPrj (ActChgCalCrs1stDay + 60)
#define ActRcvFilDocPrjDZ (ActChgCalCrs1stDay + 61)
#define ActRcvFilDocPrjCla (ActChgCalCrs1stDay + 62)
#define ActExpDocPrj (ActChgCalCrs1stDay + 63)
#define ActConDocPrj (ActChgCalCrs1stDay + 64)
#define ActZIPDocPrj (ActChgCalCrs1stDay + 65)
#define ActReqDatDocPrj (ActChgCalCrs1stDay + 66)
#define ActChgDatDocPrj (ActChgCalCrs1stDay + 67)
#define ActDowDocPrj (ActChgCalCrs1stDay + 68)
#define ActReqSeeMyTstRes (ActChgCalCrs1stDay + 67)
#define ActSeeMyTstRes (ActChgCalCrs1stDay + 68)
#define ActSeeOneTstResMe (ActChgCalCrs1stDay + 69)
#define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 70)
#define ActSeeUsrTstRes (ActChgCalCrs1stDay + 71)
#define ActSeeOneTstResOth (ActChgCalCrs1stDay + 72)
#define ActSeeTst (ActChgCalCrs1stDay + 69)
#define ActAssTst (ActChgCalCrs1stDay + 70)
#define ActEdiTstQst (ActChgCalCrs1stDay + 71)
#define ActEdiOneTstQst (ActChgCalCrs1stDay + 72)
#define ActReqImpTstQst (ActChgCalCrs1stDay + 73)
#define ActImpTstQst (ActChgCalCrs1stDay + 74)
#define ActLstTstQst (ActChgCalCrs1stDay + 75)
#define ActRcvTstQst (ActChgCalCrs1stDay + 76)
#define ActReqRemTstQst (ActChgCalCrs1stDay + 77)
#define ActRemTstQst (ActChgCalCrs1stDay + 78)
#define ActShfTstQst (ActChgCalCrs1stDay + 79)
#define ActCfgTst (ActChgCalCrs1stDay + 80)
#define ActEnableTag (ActChgCalCrs1stDay + 81)
#define ActDisableTag (ActChgCalCrs1stDay + 82)
#define ActRenTag (ActChgCalCrs1stDay + 83)
#define ActRcvCfgTst (ActChgCalCrs1stDay + 84)
#define ActSeeOneGam (ActChgCalCrs1stDay + 73)
#define ActPlyGam (ActChgCalCrs1stDay + 74)
#define ActPlyGam1stQst (ActChgCalCrs1stDay + 75)
#define ActPlyGamNxtQst (ActChgCalCrs1stDay + 76)
#define ActPlyGamAns (ActChgCalCrs1stDay + 77)
#define ActAnsGam (ActChgCalCrs1stDay + 78)
#define ActFrmNewGam (ActChgCalCrs1stDay + 79)
#define ActEdiOneGam (ActChgCalCrs1stDay + 80)
#define ActNewGam (ActChgCalCrs1stDay + 81)
#define ActChgGam (ActChgCalCrs1stDay + 82)
#define ActReqRemGam (ActChgCalCrs1stDay + 83)
#define ActRemGam (ActChgCalCrs1stDay + 84)
#define ActReqRstGam (ActChgCalCrs1stDay + 85)
#define ActRstGam (ActChgCalCrs1stDay + 86)
#define ActHidGam (ActChgCalCrs1stDay + 87)
#define ActShoGam (ActChgCalCrs1stDay + 88)
#define ActAddOneGamQst (ActChgCalCrs1stDay + 89)
#define ActGamLstTstQst (ActChgCalCrs1stDay + 90)
#define ActAddTstQstToGam (ActChgCalCrs1stDay + 91)
#define ActReqRemGamQst (ActChgCalCrs1stDay + 92)
#define ActRemGamQst (ActChgCalCrs1stDay + 93)
#define ActUp_GamQst (ActChgCalCrs1stDay + 94)
#define ActDwnGamQst (ActChgCalCrs1stDay + 95)
#define ActReqSeeMyTstRes (ActChgCalCrs1stDay + 85)
#define ActSeeMyTstRes (ActChgCalCrs1stDay + 86)
#define ActSeeOneTstResMe (ActChgCalCrs1stDay + 87)
#define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 88)
#define ActSeeUsrTstRes (ActChgCalCrs1stDay + 89)
#define ActSeeOneTstResOth (ActChgCalCrs1stDay + 90)
#define ActSeeOneSvy (ActChgCalCrs1stDay + 96)
#define ActAnsSvy (ActChgCalCrs1stDay + 97)
#define ActFrmNewSvy (ActChgCalCrs1stDay + 98)
#define ActEdiOneSvy (ActChgCalCrs1stDay + 99)
#define ActNewSvy (ActChgCalCrs1stDay + 100)
#define ActChgSvy (ActChgCalCrs1stDay + 101)
#define ActReqRemSvy (ActChgCalCrs1stDay + 102)
#define ActRemSvy (ActChgCalCrs1stDay + 103)
#define ActReqRstSvy (ActChgCalCrs1stDay + 104)
#define ActRstSvy (ActChgCalCrs1stDay + 105)
#define ActHidSvy (ActChgCalCrs1stDay + 106)
#define ActShoSvy (ActChgCalCrs1stDay + 107)
#define ActEdiOneSvyQst (ActChgCalCrs1stDay + 108)
#define ActRcvSvyQst (ActChgCalCrs1stDay + 109)
#define ActReqRemSvyQst (ActChgCalCrs1stDay + 110)
#define ActRemSvyQst (ActChgCalCrs1stDay + 111)
#define ActSeeOneGam (ActChgCalCrs1stDay + 91)
#define ActPlyGam (ActChgCalCrs1stDay + 92)
#define ActPlyGam1stQst (ActChgCalCrs1stDay + 93)
#define ActPlyGamNxtQst (ActChgCalCrs1stDay + 94)
#define ActPlyGamAns (ActChgCalCrs1stDay + 95)
#define ActAnsGam (ActChgCalCrs1stDay + 96)
#define ActFrmNewGam (ActChgCalCrs1stDay + 97)
#define ActEdiOneGam (ActChgCalCrs1stDay + 98)
#define ActNewGam (ActChgCalCrs1stDay + 99)
#define ActChgGam (ActChgCalCrs1stDay + 100)
#define ActReqRemGam (ActChgCalCrs1stDay + 101)
#define ActRemGam (ActChgCalCrs1stDay + 102)
#define ActReqRstGam (ActChgCalCrs1stDay + 103)
#define ActRstGam (ActChgCalCrs1stDay + 104)
#define ActHidGam (ActChgCalCrs1stDay + 105)
#define ActShoGam (ActChgCalCrs1stDay + 106)
#define ActAddOneGamQst (ActChgCalCrs1stDay + 107)
#define ActGamLstTstQst (ActChgCalCrs1stDay + 108)
#define ActAddTstQstToGam (ActChgCalCrs1stDay + 109)
#define ActReqRemGamQst (ActChgCalCrs1stDay + 100)
#define ActRemGamQst (ActChgCalCrs1stDay + 111)
#define ActUp_GamQst (ActChgCalCrs1stDay + 112)
#define ActDwnGamQst (ActChgCalCrs1stDay + 113)
#define ActSeeOneExaAnn (ActChgCalCrs1stDay + 112)
#define ActSeeDatExaAnn (ActChgCalCrs1stDay + 113)
#define ActEdiExaAnn (ActChgCalCrs1stDay + 114)
#define ActRcvExaAnn (ActChgCalCrs1stDay + 115)
#define ActPrnExaAnn (ActChgCalCrs1stDay + 116)
#define ActReqRemExaAnn (ActChgCalCrs1stDay + 117)
#define ActRemExaAnn (ActChgCalCrs1stDay + 118)
#define ActHidExaAnn (ActChgCalCrs1stDay + 119)
#define ActShoExaAnn (ActChgCalCrs1stDay + 120)
#define ActSeeOneSvy (ActChgCalCrs1stDay + 114)
#define ActAnsSvy (ActChgCalCrs1stDay + 115)
#define ActFrmNewSvy (ActChgCalCrs1stDay + 116)
#define ActEdiOneSvy (ActChgCalCrs1stDay + 117)
#define ActNewSvy (ActChgCalCrs1stDay + 118)
#define ActChgSvy (ActChgCalCrs1stDay + 119)
#define ActReqRemSvy (ActChgCalCrs1stDay + 120)
#define ActRemSvy (ActChgCalCrs1stDay + 121)
#define ActReqRstSvy (ActChgCalCrs1stDay + 122)
#define ActRstSvy (ActChgCalCrs1stDay + 123)
#define ActHidSvy (ActChgCalCrs1stDay + 124)
#define ActShoSvy (ActChgCalCrs1stDay + 125)
#define ActEdiOneSvyQst (ActChgCalCrs1stDay + 126)
#define ActRcvSvyQst (ActChgCalCrs1stDay + 127)
#define ActReqRemSvyQst (ActChgCalCrs1stDay + 128)
#define ActRemSvyQst (ActChgCalCrs1stDay + 129)
#define ActSeeOneExaAnn (ActChgCalCrs1stDay + 130)
#define ActSeeDatExaAnn (ActChgCalCrs1stDay + 131)
#define ActEdiExaAnn (ActChgCalCrs1stDay + 132)
#define ActRcvExaAnn (ActChgCalCrs1stDay + 133)
#define ActPrnExaAnn (ActChgCalCrs1stDay + 134)
#define ActReqRemExaAnn (ActChgCalCrs1stDay + 135)
#define ActRemExaAnn (ActChgCalCrs1stDay + 136)
#define ActHidExaAnn (ActChgCalCrs1stDay + 137)
#define ActShoExaAnn (ActChgCalCrs1stDay + 138)
/*****************************************************************************/
/******************************** Files tab **********************************/

View File

@ -254,13 +254,34 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 17.19 (2017-10-06)"
#define Log_PLATFORM_VERSION "SWAD 17.20 (2017-10-06)"
#define CSS_FILE "swad17.0.css"
#define JS_FILE "swad17.17.1.js"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/*
Version 17.20: Oct 06, 2017 New file browser for project documents. Not finished. (232915 lines)
18 changes necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1698','es','N','Subir archivo a docs. proyecto (ant.)');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1699','es','N','Eliminar archivo docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1700','es','N','Crear carpeta en docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1701','es','N','Eliminar carpeta docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1702','es','N','Renombrar carpeta en docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1703','es','N','Eliminar árbol docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1704','es','N','Solicitar elim. arch. docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1705','es','N','Copiar de docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1706','es','N','Pegar en docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1707','es','N','Expandir carpeta docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1708','es','N','Contraer carpeta docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1709','es','N','Solic. nuevo arch/carp docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1710','es','N','Ver datos arch. docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1711','es','N','Cambiar datos arch. docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1712','es','N','Descargar arch. docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1713','es','N','Crear ZIP carpeta docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1714','es','N','Subir archivo a docs. proyecto');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1715','es','N','Crear enlace en docs. proyecto');
Version 17.19: Oct 06, 2017 New file browser for project documents. Not finished. (232781 lines)
Version 17.18: Oct 06, 2017 New view in projects for project file browser. (232547 lines)
1 change necessary in database:

View File

@ -1513,11 +1513,11 @@ static void Brw_PutCheckboxFullTree (void);
static void Brw_PutParamsFullTree (void);
static bool Brw_GetFullTreeFromForm (void);
bool Brw_GetIfGroupFileBrowser (void);
bool Brw_GetIfCrsAssigWorksFileBrowser (void);
static bool Brw_GetIfUsrAssigWorksFileBrowser (void);
static bool Brw_GetIfGroupFileBrowser (void);
static bool Brw_GetIfProjectFileBrowser (void);
static bool Brw_GetIfBriefcaseFileBrowser (void);
static bool Brw_GetIfUsrAssigWorksFileBrowser (void);
static bool Brw_GetIfCrsAssigWorksFileBrowser (void);
static void Brw_GetAndUpdateDateLastAccFileBrowser (void);
static long Brw_GetGrpLastAccZone (const char *FieldNameDB);
@ -2298,7 +2298,11 @@ void Brw_GetParAndInitFileBrowser (void)
Brw_SetFullPathInTree (Gbl.FileBrowser.Priv.PathInTreeUntilFilFolLnk,
Gbl.FileBrowser.FilFolLnkName);
if (Brw_GetIfCrsAssigWorksFileBrowser ())
/***** Get other parameters *****/
if (Brw_GetIfProjectFileBrowser ())
/* Get project code */
Gbl.CurrentCrs.Prjs.PrjCod = Prj_GetParamPrjCod ();
else if (Brw_GetIfCrsAssigWorksFileBrowser ())
{
/* Get lists of the selected users */
Usr_GetListsSelectedUsrsCods ();
@ -2527,11 +2531,13 @@ void Brw_PutParamsFileBrowser (Act_Action_t NextAction,
const char *PathInTree,const char *FileFolderName,
Brw_FileType_t FileType,long FilCod)
{
if (Brw_GetIfGroupFileBrowser ())
if (Brw_GetIfGroupFileBrowser ()) // This file browser needs specify a group
/***** Group code *****/
Grp_PutParamGrpCod (Gbl.CurrentCrs.Grps.GrpCod);
else
if (NextAction != ActUnk)
else if (Brw_GetIfProjectFileBrowser ()) // This file browser needs specify a project
/***** Project code *****/
Prj_PutParamPrjCod (Gbl.CurrentCrs.Prjs.PrjCod);
else if (NextAction != ActUnk)
{
if (Brw_GetIfCrsAssigWorksFileBrowser ())
{
@ -2658,13 +2664,19 @@ static void Brw_SetPathFileBrowser (void)
case Brw_SHOW_DOCUM_INS:
case Brw_ADMI_DOCUM_INS:
case Brw_ADMI_SHARE_INS:
/* Create a directory for institutions */
sprintf (Path,"%s/%s",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_INS);
Fil_CreateDirIfNotExists (Path);
/* Create a directory for all institutions which codes end in
institution-code mod 100 */
sprintf (Path,"%s/%s/%02u",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_INS,
(unsigned) (Gbl.CurrentIns.Ins.InsCod % 100));
Fil_CreateDirIfNotExists (Path);
/* Create path to the current institution */
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%u",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_INS,
(unsigned) (Gbl.CurrentIns.Ins.InsCod % 100),
@ -2673,13 +2685,19 @@ static void Brw_SetPathFileBrowser (void)
case Brw_SHOW_DOCUM_CTR:
case Brw_ADMI_DOCUM_CTR:
case Brw_ADMI_SHARE_CTR:
/* Create a directory for centres */
sprintf (Path,"%s/%s",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CTR);
Fil_CreateDirIfNotExists (Path);
/* Create a directory for all centres which codes end in
centre-code mod 100 */
sprintf (Path,"%s/%s/%02u",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CTR,
(unsigned) (Gbl.CurrentCtr.Ctr.CtrCod % 100));
Fil_CreateDirIfNotExists (Path);
/* Create path to the current centre */
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%u",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_CTR,
(unsigned) (Gbl.CurrentCtr.Ctr.CtrCod % 100),
@ -2688,13 +2706,19 @@ static void Brw_SetPathFileBrowser (void)
case Brw_SHOW_DOCUM_DEG:
case Brw_ADMI_DOCUM_DEG:
case Brw_ADMI_SHARE_DEG:
/* Create a directory for degrees */
sprintf (Path,"%s/%s",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_DEG);
Fil_CreateDirIfNotExists (Path);
/* Create a directory for all degrees which codes end in
degree-code mod 100 */
sprintf (Path,"%s/%s/%02u",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_DEG,
(unsigned) (Gbl.CurrentDeg.Deg.DegCod % 100));
Fil_CreateDirIfNotExists (Path);
/* Create path to the current degree */
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%u",
Cfg_PATH_SWAD_PRIVATE,Cfg_FOLDER_DEG,
(unsigned) (Gbl.CurrentDeg.Deg.DegCod % 100),
@ -2706,6 +2730,7 @@ static void Brw_SetPathFileBrowser (void)
case Brw_ADMI_SHARE_CRS:
case Brw_SHOW_MARKS_CRS:
case Brw_ADMI_MARKS_CRS:
/* Create path to the current course */
Str_Copy (Gbl.FileBrowser.Priv.PathAboveRootFolder,
Gbl.CurrentCrs.PathPriv,
PATH_MAX);
@ -2716,24 +2741,31 @@ static void Brw_SetPathFileBrowser (void)
case Brw_ADMI_SHARE_GRP:
case Brw_SHOW_MARKS_GRP:
case Brw_ADMI_MARKS_GRP:
/* Create a directory for groups inside the current course */
sprintf (Path,"%s/%s",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_GRP);
Fil_CreateDirIfNotExists (Path);
/* Create path to this group */
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%ld",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_GRP,
Gbl.CurrentCrs.Grps.GrpCod);
break;
case Brw_ADMI_ASSIG_USR:
case Brw_ADMI_WORKS_USR:
/* Create a directory for me inside the current course */
sprintf (Path,"%s/%s",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR);
Fil_CreateDirIfNotExists (Path);
/* Create a directory for all users whose codes end in
my-user-code mod 100 */
sprintf (Path,"%s/%s/%02u",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100));
Fil_CreateDirIfNotExists (Path);
/* Create path to me */
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%ld",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
(unsigned) (Gbl.Usrs.Me.UsrDat.UsrCod % 100),
@ -2743,14 +2775,19 @@ static void Brw_SetPathFileBrowser (void)
case Brw_ADMI_WORKS_CRS:
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
{
/* Create a directory for this user inside the current course */
sprintf (Path,"%s/%s",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR);
Fil_CreateDirIfNotExists (Path);
/* Create a directory for all users whose codes end in
user-code mod 100 */
sprintf (Path,"%s/%s/%02u",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100));
Fil_CreateDirIfNotExists (Path);
/* Create path to user */
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%ld",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_USR,
(unsigned) (Gbl.Usrs.Other.UsrDat.UsrCod % 100),
@ -2758,13 +2795,23 @@ static void Brw_SetPathFileBrowser (void)
}
break;
case Brw_ADMI_DOCUM_PRJ:
/* Create a directory for projects inside the current course */
sprintf (Path,"%s/%s",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_PRJ);
Fil_CreateDirIfNotExists (Path);
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%ld",
/* Create a directory for all projects which codes end in
project-code mod 100 */
sprintf (Path,"%s/%s/%02u",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_PRJ,
(unsigned) (Gbl.CurrentCrs.Prjs.PrjCod % 100));
Fil_CreateDirIfNotExists (Path);
/* Create path to the current project */
sprintf (Gbl.FileBrowser.Priv.PathAboveRootFolder,"%s/%s/%02u/%ld",
Gbl.CurrentCrs.PathPriv,Cfg_FOLDER_PRJ,
Gbl.CurrentCrs.Grps.GrpCod);
(unsigned) (Gbl.CurrentCrs.Prjs.PrjCod % 100),
Gbl.CurrentCrs.Prjs.PrjCod);
break;
case Brw_ADMI_BRIEF_USR:
Str_Copy (Gbl.FileBrowser.Priv.PathAboveRootFolder,
@ -4879,7 +4926,7 @@ static bool Brw_GetFullTreeFromForm (void)
/********* Get if the current file browser is a group file browser ***********/
/*****************************************************************************/
bool Brw_GetIfGroupFileBrowser (void)
static bool Brw_GetIfGroupFileBrowser (void)
{
switch (Gbl.FileBrowser.Type)
{
@ -4895,6 +4942,15 @@ bool Brw_GetIfGroupFileBrowser (void)
}
}
/*****************************************************************************/
/******** Get if the current file browser is a project file browser **********/
/*****************************************************************************/
static bool Brw_GetIfProjectFileBrowser (void)
{
return (Gbl.FileBrowser.Type == Brw_ADMI_DOCUM_PRJ);
}
/*****************************************************************************/
/****** Get if the current file browser is course assignments or works *******/
/*****************************************************************************/
@ -4924,7 +4980,7 @@ static bool Brw_GetIfUsrAssigWorksFileBrowser (void)
/****** Get if the current file browser is course assignments or works *******/
/*****************************************************************************/
bool Brw_GetIfCrsAssigWorksFileBrowser (void)
static bool Brw_GetIfCrsAssigWorksFileBrowser (void)
{
switch (Gbl.FileBrowser.Type)
{

View File

@ -186,8 +186,6 @@ void Brw_RemoveWrkFilesFromDB (long CrsCod,long UsrCod);
void Brw_RemoveUsrFilesFromDB (long UsrCod);
void Brw_PutHiddenParamFullTreeIfSelected (void);
bool Brw_GetIfGroupFileBrowser (void);
bool Brw_GetIfCrsAssigWorksFileBrowser (void);
void Brw_CreateDirDownloadTmp (void);
void Brw_AskEditWorksCrs (void);

View File

@ -141,7 +141,6 @@ static bool Prj_GetIfIAmTutorInProject (long PrjCod);
static void Prj_PutParams (void);
static void Prj_GetDataOfProject (struct Project *Prj,const char *Query);
static void Prj_ResetProject (struct Project *Prj);
static void Prj_PutParamPrjCod (long PrjCod);
static void Prj_RequestCreatOrEditPrj (long PrjCod);
static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject);
@ -568,7 +567,6 @@ void Prj_FileBrowserPrj (void)
/***** Get project data *****/
Prj.PrjCod = Prj_GetParamPrjCod ();
Prj_GetDataOfProjectByCod (&Prj);
Gbl.CurrentCrs.Prjs.PrjCod = Prj.PrjCod; // Used in file browser
/***** Start box and table *****/
Box_StartBoxTable (NULL,Prj.Title,NULL,
@ -578,17 +576,15 @@ void Prj_FileBrowserPrj (void)
/***** Write project *****/
Prj_ShowOneProject (&Prj,Prj_FILE_BROWSER_PROJECT);
/***** End table *****/
Tbl_EndTable ();
/***** Project file browser *****/
Ale_ShowAlert (Ale_INFO,"Archivos del proyecto");
/***** End box *****/
Box_EndBoxTable ();
/***** Free memory of the project *****/
Prj_FreeMemProject (&Prj);
/***** Project file browser *****/
Gbl.CurrentCrs.Prjs.PrjCod = Prj.PrjCod; // Used in file browser
Brw_ShowFileBrowserOrWorks ();
}
/*****************************************************************************/
@ -1754,7 +1750,7 @@ static void Prj_PutFormsToRemEditOnePrj (long PrjCod,bool Hidden)
/***** Put form to view project file browser *****/
if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)
Ico_PutContextualIconToViewFiles (ActFilBrwOnePrj,Prj_PutParams);
Ico_PutContextualIconToViewFiles (ActAdmDocPrj,Prj_PutParams);
}
/***** Put form to print project *****/
@ -2146,7 +2142,7 @@ void Prj_FreeListProjects (void)
/******************* Write parameter with code of project ********************/
/*****************************************************************************/
static void Prj_PutParamPrjCod (long PrjCod)
void Prj_PutParamPrjCod (long PrjCod)
{
Par_PutHiddenParamLong ("PrjCod",PrjCod);
}

View File

@ -140,6 +140,7 @@ void Prj_GetListProjects (void);
void Prj_GetDataOfProjectByCod (struct Project *Prj);
void Prj_FreeListProjects (void);
void Prj_PutParamPrjCod (long PrjCod);
long Prj_GetParamPrjCod (void);
void Prj_ReqRemProject (void);
void Prj_RemoveProject (void);