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 316. ActSeeTblAllPrj Show all projects in a table
317. ActFrmNewPrj Form to create a new project 317. ActFrmNewPrj Form to create a new project
318. ActEdiOnePrj Edit one project 318. ActEdiOnePrj Edit one project
NEW. ActFilBrwOnePrj View / edit project file browser
319. ActPrnOnePrj Print one project 319. ActPrnOnePrj Print one project
320. ActNewPrj Create new project 320. ActNewPrj Create new project
321. ActChgPrj Modify data of an existing project 321. ActChgPrj Modify data of an existing project
@ -477,6 +476,26 @@ Assessment:
336. ActRemTutPrj Remove a tutor from a project 336. ActRemTutPrj Remove a tutor from a project
337. ActRemEvaPrj Remove an emulator 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 338. ActSeeTst Show the seft-assessment test
339. ActAssTst Assess a self-assessment test 339. ActAssTst Assess a self-assessment test
330. ActEdiTstQst Request the edition of self-assessment questions 330. ActEdiTstQst Request the edition of self-assessment questions
@ -563,6 +582,7 @@ Files:
417. ActAdmAsgWrkUsr One user sends works of the course 417. ActAdmAsgWrkUsr One user sends works of the course
418. ActReqAsgWrkCrs A teacher requests edition of works sent to the course 418. ActReqAsgWrkCrs A teacher requests edition of works sent to the course
419. ActSeeAdmMrk Marks zone (see or admin) 419. ActSeeAdmMrk Marks zone (see or admin)
1244. ActAdmBrf Show the briefcase of private archives
420. ActChgToSeeDocIns Change to see institution documents 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 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 1242. ActReqEdiRecCom Request the edition of the record with the personal data of the user
1243. ActEdiPrf Show forms to edit preferences 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 1245. ActReqSndNewPwd Show form to send a new password via email
1246. ActSndNewPwd 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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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}, /* 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 ActRemTutPrj, // #1694
ActRemEvaPrj, // #1695 ActRemEvaPrj, // #1695
ActSeeTblAllPrj, // #1696 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 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 #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 ActSeeTblAllPrj (ActChgCalCrs1stDay + 28)
#define ActFrmNewPrj (ActChgCalCrs1stDay + 29) #define ActFrmNewPrj (ActChgCalCrs1stDay + 29)
#define ActEdiOnePrj (ActChgCalCrs1stDay + 30) #define ActEdiOnePrj (ActChgCalCrs1stDay + 30)
#define ActFilBrwOnePrj (ActChgCalCrs1stDay + 31) #define ActPrnOnePrj (ActChgCalCrs1stDay + 31)
#define ActPrnOnePrj (ActChgCalCrs1stDay + 32) #define ActNewPrj (ActChgCalCrs1stDay + 32)
#define ActNewPrj (ActChgCalCrs1stDay + 33) #define ActChgPrj (ActChgCalCrs1stDay + 33)
#define ActChgPrj (ActChgCalCrs1stDay + 34) #define ActReqRemPrj (ActChgCalCrs1stDay + 34)
#define ActReqRemPrj (ActChgCalCrs1stDay + 35) #define ActRemPrj (ActChgCalCrs1stDay + 35)
#define ActRemPrj (ActChgCalCrs1stDay + 36) #define ActHidPrj (ActChgCalCrs1stDay + 36)
#define ActHidPrj (ActChgCalCrs1stDay + 37) #define ActShoPrj (ActChgCalCrs1stDay + 37)
#define ActShoPrj (ActChgCalCrs1stDay + 38) #define ActReqAddStdPrj (ActChgCalCrs1stDay + 38)
#define ActReqAddStdPrj (ActChgCalCrs1stDay + 39) #define ActReqAddTutPrj (ActChgCalCrs1stDay + 39)
#define ActReqAddTutPrj (ActChgCalCrs1stDay + 40) #define ActReqAddEvaPrj (ActChgCalCrs1stDay + 40)
#define ActReqAddEvaPrj (ActChgCalCrs1stDay + 41) #define ActAddStdPrj (ActChgCalCrs1stDay + 41)
#define ActAddStdPrj (ActChgCalCrs1stDay + 42) #define ActAddTutPrj (ActChgCalCrs1stDay + 42)
#define ActAddTutPrj (ActChgCalCrs1stDay + 43) #define ActAddEvaPrj (ActChgCalCrs1stDay + 43)
#define ActAddEvaPrj (ActChgCalCrs1stDay + 44) #define ActReqRemStdPrj (ActChgCalCrs1stDay + 44)
#define ActReqRemStdPrj (ActChgCalCrs1stDay + 45) #define ActReqRemTutPrj (ActChgCalCrs1stDay + 45)
#define ActReqRemTutPrj (ActChgCalCrs1stDay + 46) #define ActReqRemEvaPrj (ActChgCalCrs1stDay + 46)
#define ActReqRemEvaPrj (ActChgCalCrs1stDay + 47) #define ActRemStdPrj (ActChgCalCrs1stDay + 47)
#define ActRemStdPrj (ActChgCalCrs1stDay + 48) #define ActRemTutPrj (ActChgCalCrs1stDay + 48)
#define ActRemTutPrj (ActChgCalCrs1stDay + 49) #define ActRemEvaPrj (ActChgCalCrs1stDay + 49)
#define ActRemEvaPrj (ActChgCalCrs1stDay + 50)
#define ActSeeTst (ActChgCalCrs1stDay + 51) #define ActAdmDocPrj (ActChgCalCrs1stDay + 50)
#define ActAssTst (ActChgCalCrs1stDay + 52) #define ActReqRemFilDocPrj (ActChgCalCrs1stDay + 51)
#define ActEdiTstQst (ActChgCalCrs1stDay + 53) #define ActRemFilDocPrj (ActChgCalCrs1stDay + 52)
#define ActEdiOneTstQst (ActChgCalCrs1stDay + 54) #define ActRemFolDocPrj (ActChgCalCrs1stDay + 53)
#define ActReqImpTstQst (ActChgCalCrs1stDay + 55) #define ActCopDocPrj (ActChgCalCrs1stDay + 54)
#define ActImpTstQst (ActChgCalCrs1stDay + 56) #define ActPasDocPrj (ActChgCalCrs1stDay + 55)
#define ActLstTstQst (ActChgCalCrs1stDay + 57) #define ActRemTreDocPrj (ActChgCalCrs1stDay + 56)
#define ActRcvTstQst (ActChgCalCrs1stDay + 58) #define ActFrmCreDocPrj (ActChgCalCrs1stDay + 57)
#define ActReqRemTstQst (ActChgCalCrs1stDay + 59) #define ActCreFolDocPrj (ActChgCalCrs1stDay + 58)
#define ActRemTstQst (ActChgCalCrs1stDay + 60) #define ActCreLnkDocPrj (ActChgCalCrs1stDay + 59)
#define ActShfTstQst (ActChgCalCrs1stDay + 61) #define ActRenFolDocPrj (ActChgCalCrs1stDay + 60)
#define ActCfgTst (ActChgCalCrs1stDay + 62) #define ActRcvFilDocPrjDZ (ActChgCalCrs1stDay + 61)
#define ActEnableTag (ActChgCalCrs1stDay + 63) #define ActRcvFilDocPrjCla (ActChgCalCrs1stDay + 62)
#define ActDisableTag (ActChgCalCrs1stDay + 64) #define ActExpDocPrj (ActChgCalCrs1stDay + 63)
#define ActRenTag (ActChgCalCrs1stDay + 65) #define ActConDocPrj (ActChgCalCrs1stDay + 64)
#define ActRcvCfgTst (ActChgCalCrs1stDay + 66) #define ActZIPDocPrj (ActChgCalCrs1stDay + 65)
#define ActReqDatDocPrj (ActChgCalCrs1stDay + 66)
#define ActChgDatDocPrj (ActChgCalCrs1stDay + 67)
#define ActDowDocPrj (ActChgCalCrs1stDay + 68)
#define ActReqSeeMyTstRes (ActChgCalCrs1stDay + 67) #define ActSeeTst (ActChgCalCrs1stDay + 69)
#define ActSeeMyTstRes (ActChgCalCrs1stDay + 68) #define ActAssTst (ActChgCalCrs1stDay + 70)
#define ActSeeOneTstResMe (ActChgCalCrs1stDay + 69) #define ActEdiTstQst (ActChgCalCrs1stDay + 71)
#define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 70) #define ActEdiOneTstQst (ActChgCalCrs1stDay + 72)
#define ActSeeUsrTstRes (ActChgCalCrs1stDay + 71) #define ActReqImpTstQst (ActChgCalCrs1stDay + 73)
#define ActSeeOneTstResOth (ActChgCalCrs1stDay + 72) #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 ActReqSeeMyTstRes (ActChgCalCrs1stDay + 85)
#define ActPlyGam (ActChgCalCrs1stDay + 74) #define ActSeeMyTstRes (ActChgCalCrs1stDay + 86)
#define ActPlyGam1stQst (ActChgCalCrs1stDay + 75) #define ActSeeOneTstResMe (ActChgCalCrs1stDay + 87)
#define ActPlyGamNxtQst (ActChgCalCrs1stDay + 76) #define ActReqSeeUsrTstRes (ActChgCalCrs1stDay + 88)
#define ActPlyGamAns (ActChgCalCrs1stDay + 77) #define ActSeeUsrTstRes (ActChgCalCrs1stDay + 89)
#define ActAnsGam (ActChgCalCrs1stDay + 78) #define ActSeeOneTstResOth (ActChgCalCrs1stDay + 90)
#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 ActSeeOneSvy (ActChgCalCrs1stDay + 96) #define ActSeeOneGam (ActChgCalCrs1stDay + 91)
#define ActAnsSvy (ActChgCalCrs1stDay + 97) #define ActPlyGam (ActChgCalCrs1stDay + 92)
#define ActFrmNewSvy (ActChgCalCrs1stDay + 98) #define ActPlyGam1stQst (ActChgCalCrs1stDay + 93)
#define ActEdiOneSvy (ActChgCalCrs1stDay + 99) #define ActPlyGamNxtQst (ActChgCalCrs1stDay + 94)
#define ActNewSvy (ActChgCalCrs1stDay + 100) #define ActPlyGamAns (ActChgCalCrs1stDay + 95)
#define ActChgSvy (ActChgCalCrs1stDay + 101) #define ActAnsGam (ActChgCalCrs1stDay + 96)
#define ActReqRemSvy (ActChgCalCrs1stDay + 102) #define ActFrmNewGam (ActChgCalCrs1stDay + 97)
#define ActRemSvy (ActChgCalCrs1stDay + 103) #define ActEdiOneGam (ActChgCalCrs1stDay + 98)
#define ActReqRstSvy (ActChgCalCrs1stDay + 104) #define ActNewGam (ActChgCalCrs1stDay + 99)
#define ActRstSvy (ActChgCalCrs1stDay + 105) #define ActChgGam (ActChgCalCrs1stDay + 100)
#define ActHidSvy (ActChgCalCrs1stDay + 106) #define ActReqRemGam (ActChgCalCrs1stDay + 101)
#define ActShoSvy (ActChgCalCrs1stDay + 107) #define ActRemGam (ActChgCalCrs1stDay + 102)
#define ActEdiOneSvyQst (ActChgCalCrs1stDay + 108) #define ActReqRstGam (ActChgCalCrs1stDay + 103)
#define ActRcvSvyQst (ActChgCalCrs1stDay + 109) #define ActRstGam (ActChgCalCrs1stDay + 104)
#define ActReqRemSvyQst (ActChgCalCrs1stDay + 110) #define ActHidGam (ActChgCalCrs1stDay + 105)
#define ActRemSvyQst (ActChgCalCrs1stDay + 111) #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 ActSeeOneSvy (ActChgCalCrs1stDay + 114)
#define ActSeeDatExaAnn (ActChgCalCrs1stDay + 113) #define ActAnsSvy (ActChgCalCrs1stDay + 115)
#define ActEdiExaAnn (ActChgCalCrs1stDay + 114) #define ActFrmNewSvy (ActChgCalCrs1stDay + 116)
#define ActRcvExaAnn (ActChgCalCrs1stDay + 115) #define ActEdiOneSvy (ActChgCalCrs1stDay + 117)
#define ActPrnExaAnn (ActChgCalCrs1stDay + 116) #define ActNewSvy (ActChgCalCrs1stDay + 118)
#define ActReqRemExaAnn (ActChgCalCrs1stDay + 117) #define ActChgSvy (ActChgCalCrs1stDay + 119)
#define ActRemExaAnn (ActChgCalCrs1stDay + 118) #define ActReqRemSvy (ActChgCalCrs1stDay + 120)
#define ActHidExaAnn (ActChgCalCrs1stDay + 119) #define ActRemSvy (ActChgCalCrs1stDay + 121)
#define ActShoExaAnn (ActChgCalCrs1stDay + 120) #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 **********************************/ /******************************** Files tab **********************************/

View File

@ -254,13 +254,34 @@
/****************************** Public constants *****************************/ /****************************** 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 CSS_FILE "swad17.0.css"
#define JS_FILE "swad17.17.1.js" #define JS_FILE "swad17.17.1.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // 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 // 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.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) Version 17.18: Oct 06, 2017 New view in projects for project file browser. (232547 lines)
1 change necessary in database: 1 change necessary in database:

View File

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

View File

@ -186,8 +186,6 @@ void Brw_RemoveWrkFilesFromDB (long CrsCod,long UsrCod);
void Brw_RemoveUsrFilesFromDB (long UsrCod); void Brw_RemoveUsrFilesFromDB (long UsrCod);
void Brw_PutHiddenParamFullTreeIfSelected (void); void Brw_PutHiddenParamFullTreeIfSelected (void);
bool Brw_GetIfGroupFileBrowser (void);
bool Brw_GetIfCrsAssigWorksFileBrowser (void);
void Brw_CreateDirDownloadTmp (void); void Brw_CreateDirDownloadTmp (void);
void Brw_AskEditWorksCrs (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_PutParams (void);
static void Prj_GetDataOfProject (struct Project *Prj,const char *Query); static void Prj_GetDataOfProject (struct Project *Prj,const char *Query);
static void Prj_ResetProject (struct Project *Prj); static void Prj_ResetProject (struct Project *Prj);
static void Prj_PutParamPrjCod (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);
@ -568,7 +567,6 @@ void Prj_FileBrowserPrj (void)
/***** Get project data *****/ /***** Get project data *****/
Prj.PrjCod = Prj_GetParamPrjCod (); Prj.PrjCod = Prj_GetParamPrjCod ();
Prj_GetDataOfProjectByCod (&Prj); Prj_GetDataOfProjectByCod (&Prj);
Gbl.CurrentCrs.Prjs.PrjCod = Prj.PrjCod; // Used in file browser
/***** Start box and table *****/ /***** Start box and table *****/
Box_StartBoxTable (NULL,Prj.Title,NULL, Box_StartBoxTable (NULL,Prj.Title,NULL,
@ -578,17 +576,15 @@ void Prj_FileBrowserPrj (void)
/***** Write project *****/ /***** Write project *****/
Prj_ShowOneProject (&Prj,Prj_FILE_BROWSER_PROJECT); Prj_ShowOneProject (&Prj,Prj_FILE_BROWSER_PROJECT);
/***** End table *****/
Tbl_EndTable ();
/***** Project file browser *****/
Ale_ShowAlert (Ale_INFO,"Archivos del proyecto");
/***** End box *****/ /***** End box *****/
Box_EndBoxTable (); Box_EndBoxTable ();
/***** Free memory of the project *****/ /***** Free memory of the project *****/
Prj_FreeMemProject (&Prj); 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 *****/ /***** Put form to view project file browser *****/
if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)
Ico_PutContextualIconToViewFiles (ActFilBrwOnePrj,Prj_PutParams); Ico_PutContextualIconToViewFiles (ActAdmDocPrj,Prj_PutParams);
} }
/***** Put form to print project *****/ /***** Put form to print project *****/
@ -2146,7 +2142,7 @@ void Prj_FreeListProjects (void)
/******************* Write parameter with code of project ********************/ /******************* Write parameter with code of project ********************/
/*****************************************************************************/ /*****************************************************************************/
static void Prj_PutParamPrjCod (long PrjCod) void Prj_PutParamPrjCod (long PrjCod)
{ {
Par_PutHiddenParamLong ("PrjCod",PrjCod); Par_PutHiddenParamLong ("PrjCod",PrjCod);
} }

View File

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