Version 21.117: Sep 12, 2022 New database table with clipboards for program resources.

This commit is contained in:
acanas 2022-09-12 10:54:33 +02:00
parent 0302baa8ef
commit dfed213480
12 changed files with 636 additions and 342 deletions

View File

@ -1017,6 +1017,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActConSeeDocCrs ] = { 476,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_204_NO_CONT,Brw_ContractFileTree ,NULL ,NULL},
[ActZIPSeeDocCrs ] = {1124,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ZIP_CompressFileTree ,NULL},
[ActReqDatSeeDocCrs ] = {1033,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileMetadata ,NULL},
[ActReqLnkSeeDocCrs ] = {1930,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_GetLinkToFile ,NULL},
[ActDowSeeDocCrs ] = {1111,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x3F8,0x3C7, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
[ActSeeDocGrp ] = {1200,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileBrowserOrWorks ,NULL},
@ -1048,6 +1049,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
[ActHidDocCrs ] = { 465,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_SetDocumentAsHidden ,NULL},
[ActReqDatAdmDocCrs ] = {1029,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileMetadata ,NULL},
[ActChgDatAdmDocCrs ] = { 996,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ChgFileMetadata ,NULL},
[ActReqLnkAdmDocCrs ] = {1931,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_GetLinkToFile ,NULL},
[ActDowAdmDocCrs ] = {1113,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
[ActAdmDocGrp ] = {1201,-1,TabUnk,ActSeeAdmDocCrsGrp ,0x220,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Brw_ShowFileBrowserOrWorks ,NULL},
@ -3769,6 +3771,8 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActSeePrgItm, // #1927
ActRenPrgRsc, // #1928
ActNewPrgRsc, // #1929
ActReqLnkSeeDocCrs, // #1930
ActReqLnkAdmDocCrs, // #1931
};
/*****************************************************************************/

View File

@ -65,7 +65,7 @@ typedef enum
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_MAX_ACTION_COD 1929
#define Act_MAX_ACTION_COD 1931
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -962,304 +962,306 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActConSeeDocCrs (ActRemSvyQst + 158)
#define ActZIPSeeDocCrs (ActRemSvyQst + 159)
#define ActReqDatSeeDocCrs (ActRemSvyQst + 160)
#define ActDowSeeDocCrs (ActRemSvyQst + 161)
#define ActReqLnkSeeDocCrs (ActRemSvyQst + 161)
#define ActDowSeeDocCrs (ActRemSvyQst + 162)
#define ActSeeDocGrp (ActRemSvyQst + 162)
#define ActExpSeeDocGrp (ActRemSvyQst + 163)
#define ActConSeeDocGrp (ActRemSvyQst + 164)
#define ActZIPSeeDocGrp (ActRemSvyQst + 165)
#define ActReqDatSeeDocGrp (ActRemSvyQst + 166)
#define ActDowSeeDocGrp (ActRemSvyQst + 167)
#define ActSeeDocGrp (ActRemSvyQst + 163)
#define ActExpSeeDocGrp (ActRemSvyQst + 164)
#define ActConSeeDocGrp (ActRemSvyQst + 165)
#define ActZIPSeeDocGrp (ActRemSvyQst + 166)
#define ActReqDatSeeDocGrp (ActRemSvyQst + 167)
#define ActDowSeeDocGrp (ActRemSvyQst + 168)
#define ActChgToAdmDocCrs (ActRemSvyQst + 168)
#define ActAdmDocCrs (ActRemSvyQst + 169)
#define ActReqRemFilDocCrs (ActRemSvyQst + 170)
#define ActRemFilDocCrs (ActRemSvyQst + 171)
#define ActRemFolDocCrs (ActRemSvyQst + 172)
#define ActCopDocCrs (ActRemSvyQst + 173)
#define ActPasDocCrs (ActRemSvyQst + 174)
#define ActRemTreDocCrs (ActRemSvyQst + 175)
#define ActFrmCreDocCrs (ActRemSvyQst + 176)
#define ActCreFolDocCrs (ActRemSvyQst + 177)
#define ActCreLnkDocCrs (ActRemSvyQst + 178)
#define ActRenFolDocCrs (ActRemSvyQst + 179)
#define ActRcvFilDocCrsDZ (ActRemSvyQst + 180)
#define ActRcvFilDocCrsCla (ActRemSvyQst + 181)
#define ActExpAdmDocCrs (ActRemSvyQst + 182)
#define ActConAdmDocCrs (ActRemSvyQst + 183)
#define ActZIPAdmDocCrs (ActRemSvyQst + 184)
#define ActUnhDocCrs (ActRemSvyQst + 185)
#define ActHidDocCrs (ActRemSvyQst + 186)
#define ActReqDatAdmDocCrs (ActRemSvyQst + 187)
#define ActChgDatAdmDocCrs (ActRemSvyQst + 188)
#define ActDowAdmDocCrs (ActRemSvyQst + 189)
#define ActChgToAdmDocCrs (ActRemSvyQst + 169)
#define ActAdmDocCrs (ActRemSvyQst + 170)
#define ActReqRemFilDocCrs (ActRemSvyQst + 171)
#define ActRemFilDocCrs (ActRemSvyQst + 172)
#define ActRemFolDocCrs (ActRemSvyQst + 173)
#define ActCopDocCrs (ActRemSvyQst + 174)
#define ActPasDocCrs (ActRemSvyQst + 175)
#define ActRemTreDocCrs (ActRemSvyQst + 176)
#define ActFrmCreDocCrs (ActRemSvyQst + 177)
#define ActCreFolDocCrs (ActRemSvyQst + 178)
#define ActCreLnkDocCrs (ActRemSvyQst + 179)
#define ActRenFolDocCrs (ActRemSvyQst + 180)
#define ActRcvFilDocCrsDZ (ActRemSvyQst + 181)
#define ActRcvFilDocCrsCla (ActRemSvyQst + 182)
#define ActExpAdmDocCrs (ActRemSvyQst + 183)
#define ActConAdmDocCrs (ActRemSvyQst + 184)
#define ActZIPAdmDocCrs (ActRemSvyQst + 185)
#define ActUnhDocCrs (ActRemSvyQst + 186)
#define ActHidDocCrs (ActRemSvyQst + 187)
#define ActReqDatAdmDocCrs (ActRemSvyQst + 188)
#define ActChgDatAdmDocCrs (ActRemSvyQst + 189)
#define ActReqLnkAdmDocCrs (ActRemSvyQst + 190)
#define ActDowAdmDocCrs (ActRemSvyQst + 191)
#define ActAdmDocGrp (ActRemSvyQst + 190)
#define ActReqRemFilDocGrp (ActRemSvyQst + 191)
#define ActRemFilDocGrp (ActRemSvyQst + 192)
#define ActRemFolDocGrp (ActRemSvyQst + 193)
#define ActCopDocGrp (ActRemSvyQst + 194)
#define ActPasDocGrp (ActRemSvyQst + 195)
#define ActRemTreDocGrp (ActRemSvyQst + 196)
#define ActFrmCreDocGrp (ActRemSvyQst + 197)
#define ActCreFolDocGrp (ActRemSvyQst + 198)
#define ActCreLnkDocGrp (ActRemSvyQst + 199)
#define ActRenFolDocGrp (ActRemSvyQst + 200)
#define ActRcvFilDocGrpDZ (ActRemSvyQst + 201)
#define ActRcvFilDocGrpCla (ActRemSvyQst + 202)
#define ActExpAdmDocGrp (ActRemSvyQst + 203)
#define ActConAdmDocGrp (ActRemSvyQst + 204)
#define ActZIPAdmDocGrp (ActRemSvyQst + 205)
#define ActUnhDocGrp (ActRemSvyQst + 206)
#define ActHidDocGrp (ActRemSvyQst + 207)
#define ActReqDatAdmDocGrp (ActRemSvyQst + 208)
#define ActChgDatAdmDocGrp (ActRemSvyQst + 209)
#define ActDowAdmDocGrp (ActRemSvyQst + 210)
#define ActAdmDocGrp (ActRemSvyQst + 192)
#define ActReqRemFilDocGrp (ActRemSvyQst + 193)
#define ActRemFilDocGrp (ActRemSvyQst + 194)
#define ActRemFolDocGrp (ActRemSvyQst + 195)
#define ActCopDocGrp (ActRemSvyQst + 196)
#define ActPasDocGrp (ActRemSvyQst + 197)
#define ActRemTreDocGrp (ActRemSvyQst + 198)
#define ActFrmCreDocGrp (ActRemSvyQst + 199)
#define ActCreFolDocGrp (ActRemSvyQst + 200)
#define ActCreLnkDocGrp (ActRemSvyQst + 201)
#define ActRenFolDocGrp (ActRemSvyQst + 202)
#define ActRcvFilDocGrpDZ (ActRemSvyQst + 203)
#define ActRcvFilDocGrpCla (ActRemSvyQst + 204)
#define ActExpAdmDocGrp (ActRemSvyQst + 205)
#define ActConAdmDocGrp (ActRemSvyQst + 206)
#define ActZIPAdmDocGrp (ActRemSvyQst + 207)
#define ActUnhDocGrp (ActRemSvyQst + 208)
#define ActHidDocGrp (ActRemSvyQst + 209)
#define ActReqDatAdmDocGrp (ActRemSvyQst + 210)
#define ActChgDatAdmDocGrp (ActRemSvyQst + 211)
#define ActDowAdmDocGrp (ActRemSvyQst + 212)
#define ActChgToAdmTch (ActRemSvyQst + 211)
#define ActChgToAdmTch (ActRemSvyQst + 213)
#define ActAdmTchCrs (ActRemSvyQst + 212)
#define ActReqRemFilTchCrs (ActRemSvyQst + 213)
#define ActRemFilTchCrs (ActRemSvyQst + 214)
#define ActRemFolTchCrs (ActRemSvyQst + 215)
#define ActCopTchCrs (ActRemSvyQst + 216)
#define ActPasTchCrs (ActRemSvyQst + 217)
#define ActRemTreTchCrs (ActRemSvyQst + 218)
#define ActFrmCreTchCrs (ActRemSvyQst + 219)
#define ActCreFolTchCrs (ActRemSvyQst + 220)
#define ActCreLnkTchCrs (ActRemSvyQst + 221)
#define ActRenFolTchCrs (ActRemSvyQst + 222)
#define ActRcvFilTchCrsDZ (ActRemSvyQst + 223)
#define ActRcvFilTchCrsCla (ActRemSvyQst + 224)
#define ActExpTchCrs (ActRemSvyQst + 225)
#define ActConTchCrs (ActRemSvyQst + 226)
#define ActZIPTchCrs (ActRemSvyQst + 227)
#define ActReqDatTchCrs (ActRemSvyQst + 228)
#define ActChgDatTchCrs (ActRemSvyQst + 229)
#define ActDowTchCrs (ActRemSvyQst + 230)
#define ActAdmTchCrs (ActRemSvyQst + 214)
#define ActReqRemFilTchCrs (ActRemSvyQst + 215)
#define ActRemFilTchCrs (ActRemSvyQst + 216)
#define ActRemFolTchCrs (ActRemSvyQst + 217)
#define ActCopTchCrs (ActRemSvyQst + 218)
#define ActPasTchCrs (ActRemSvyQst + 219)
#define ActRemTreTchCrs (ActRemSvyQst + 220)
#define ActFrmCreTchCrs (ActRemSvyQst + 221)
#define ActCreFolTchCrs (ActRemSvyQst + 222)
#define ActCreLnkTchCrs (ActRemSvyQst + 223)
#define ActRenFolTchCrs (ActRemSvyQst + 224)
#define ActRcvFilTchCrsDZ (ActRemSvyQst + 225)
#define ActRcvFilTchCrsCla (ActRemSvyQst + 226)
#define ActExpTchCrs (ActRemSvyQst + 227)
#define ActConTchCrs (ActRemSvyQst + 228)
#define ActZIPTchCrs (ActRemSvyQst + 229)
#define ActReqDatTchCrs (ActRemSvyQst + 230)
#define ActChgDatTchCrs (ActRemSvyQst + 231)
#define ActDowTchCrs (ActRemSvyQst + 232)
#define ActAdmTchGrp (ActRemSvyQst + 231)
#define ActReqRemFilTchGrp (ActRemSvyQst + 232)
#define ActRemFilTchGrp (ActRemSvyQst + 233)
#define ActRemFolTchGrp (ActRemSvyQst + 234)
#define ActCopTchGrp (ActRemSvyQst + 235)
#define ActPasTchGrp (ActRemSvyQst + 236)
#define ActRemTreTchGrp (ActRemSvyQst + 237)
#define ActFrmCreTchGrp (ActRemSvyQst + 238)
#define ActCreFolTchGrp (ActRemSvyQst + 239)
#define ActCreLnkTchGrp (ActRemSvyQst + 240)
#define ActRenFolTchGrp (ActRemSvyQst + 241)
#define ActRcvFilTchGrpDZ (ActRemSvyQst + 242)
#define ActRcvFilTchGrpCla (ActRemSvyQst + 243)
#define ActExpTchGrp (ActRemSvyQst + 244)
#define ActConTchGrp (ActRemSvyQst + 245)
#define ActZIPTchGrp (ActRemSvyQst + 246)
#define ActReqDatTchGrp (ActRemSvyQst + 247)
#define ActChgDatTchGrp (ActRemSvyQst + 248)
#define ActDowTchGrp (ActRemSvyQst + 249)
#define ActAdmTchGrp (ActRemSvyQst + 233)
#define ActReqRemFilTchGrp (ActRemSvyQst + 234)
#define ActRemFilTchGrp (ActRemSvyQst + 235)
#define ActRemFolTchGrp (ActRemSvyQst + 236)
#define ActCopTchGrp (ActRemSvyQst + 237)
#define ActPasTchGrp (ActRemSvyQst + 238)
#define ActRemTreTchGrp (ActRemSvyQst + 239)
#define ActFrmCreTchGrp (ActRemSvyQst + 240)
#define ActCreFolTchGrp (ActRemSvyQst + 241)
#define ActCreLnkTchGrp (ActRemSvyQst + 242)
#define ActRenFolTchGrp (ActRemSvyQst + 243)
#define ActRcvFilTchGrpDZ (ActRemSvyQst + 244)
#define ActRcvFilTchGrpCla (ActRemSvyQst + 245)
#define ActExpTchGrp (ActRemSvyQst + 246)
#define ActConTchGrp (ActRemSvyQst + 247)
#define ActZIPTchGrp (ActRemSvyQst + 248)
#define ActReqDatTchGrp (ActRemSvyQst + 249)
#define ActChgDatTchGrp (ActRemSvyQst + 250)
#define ActDowTchGrp (ActRemSvyQst + 251)
#define ActChgToAdmSha (ActRemSvyQst + 250)
#define ActChgToAdmSha (ActRemSvyQst + 252)
#define ActAdmShaCrs (ActRemSvyQst + 251)
#define ActReqRemFilShaCrs (ActRemSvyQst + 252)
#define ActRemFilShaCrs (ActRemSvyQst + 253)
#define ActRemFolShaCrs (ActRemSvyQst + 254)
#define ActCopShaCrs (ActRemSvyQst + 255)
#define ActPasShaCrs (ActRemSvyQst + 256)
#define ActRemTreShaCrs (ActRemSvyQst + 257)
#define ActFrmCreShaCrs (ActRemSvyQst + 258)
#define ActCreFolShaCrs (ActRemSvyQst + 259)
#define ActCreLnkShaCrs (ActRemSvyQst + 260)
#define ActRenFolShaCrs (ActRemSvyQst + 261)
#define ActRcvFilShaCrsDZ (ActRemSvyQst + 262)
#define ActRcvFilShaCrsCla (ActRemSvyQst + 263)
#define ActExpShaCrs (ActRemSvyQst + 264)
#define ActConShaCrs (ActRemSvyQst + 265)
#define ActZIPShaCrs (ActRemSvyQst + 266)
#define ActReqDatShaCrs (ActRemSvyQst + 267)
#define ActChgDatShaCrs (ActRemSvyQst + 268)
#define ActDowShaCrs (ActRemSvyQst + 269)
#define ActAdmShaCrs (ActRemSvyQst + 253)
#define ActReqRemFilShaCrs (ActRemSvyQst + 254)
#define ActRemFilShaCrs (ActRemSvyQst + 255)
#define ActRemFolShaCrs (ActRemSvyQst + 256)
#define ActCopShaCrs (ActRemSvyQst + 257)
#define ActPasShaCrs (ActRemSvyQst + 258)
#define ActRemTreShaCrs (ActRemSvyQst + 259)
#define ActFrmCreShaCrs (ActRemSvyQst + 260)
#define ActCreFolShaCrs (ActRemSvyQst + 261)
#define ActCreLnkShaCrs (ActRemSvyQst + 262)
#define ActRenFolShaCrs (ActRemSvyQst + 263)
#define ActRcvFilShaCrsDZ (ActRemSvyQst + 264)
#define ActRcvFilShaCrsCla (ActRemSvyQst + 265)
#define ActExpShaCrs (ActRemSvyQst + 266)
#define ActConShaCrs (ActRemSvyQst + 267)
#define ActZIPShaCrs (ActRemSvyQst + 268)
#define ActReqDatShaCrs (ActRemSvyQst + 269)
#define ActChgDatShaCrs (ActRemSvyQst + 270)
#define ActDowShaCrs (ActRemSvyQst + 271)
#define ActAdmShaGrp (ActRemSvyQst + 270)
#define ActReqRemFilShaGrp (ActRemSvyQst + 271)
#define ActRemFilShaGrp (ActRemSvyQst + 272)
#define ActRemFolShaGrp (ActRemSvyQst + 273)
#define ActCopShaGrp (ActRemSvyQst + 274)
#define ActPasShaGrp (ActRemSvyQst + 275)
#define ActRemTreShaGrp (ActRemSvyQst + 276)
#define ActFrmCreShaGrp (ActRemSvyQst + 277)
#define ActCreFolShaGrp (ActRemSvyQst + 278)
#define ActCreLnkShaGrp (ActRemSvyQst + 279)
#define ActRenFolShaGrp (ActRemSvyQst + 280)
#define ActRcvFilShaGrpDZ (ActRemSvyQst + 281)
#define ActRcvFilShaGrpCla (ActRemSvyQst + 282)
#define ActExpShaGrp (ActRemSvyQst + 283)
#define ActConShaGrp (ActRemSvyQst + 284)
#define ActZIPShaGrp (ActRemSvyQst + 285)
#define ActReqDatShaGrp (ActRemSvyQst + 286)
#define ActChgDatShaGrp (ActRemSvyQst + 287)
#define ActDowShaGrp (ActRemSvyQst + 288)
#define ActAdmShaGrp (ActRemSvyQst + 272)
#define ActReqRemFilShaGrp (ActRemSvyQst + 273)
#define ActRemFilShaGrp (ActRemSvyQst + 274)
#define ActRemFolShaGrp (ActRemSvyQst + 275)
#define ActCopShaGrp (ActRemSvyQst + 276)
#define ActPasShaGrp (ActRemSvyQst + 277)
#define ActRemTreShaGrp (ActRemSvyQst + 278)
#define ActFrmCreShaGrp (ActRemSvyQst + 279)
#define ActCreFolShaGrp (ActRemSvyQst + 280)
#define ActCreLnkShaGrp (ActRemSvyQst + 281)
#define ActRenFolShaGrp (ActRemSvyQst + 282)
#define ActRcvFilShaGrpDZ (ActRemSvyQst + 283)
#define ActRcvFilShaGrpCla (ActRemSvyQst + 284)
#define ActExpShaGrp (ActRemSvyQst + 285)
#define ActConShaGrp (ActRemSvyQst + 286)
#define ActZIPShaGrp (ActRemSvyQst + 287)
#define ActReqDatShaGrp (ActRemSvyQst + 288)
#define ActChgDatShaGrp (ActRemSvyQst + 289)
#define ActDowShaGrp (ActRemSvyQst + 290)
#define ActAdmAsgWrkCrs (ActRemSvyQst + 289)
#define ActAdmAsgWrkCrs (ActRemSvyQst + 291)
#define ActReqRemFilAsgUsr (ActRemSvyQst + 290)
#define ActRemFilAsgUsr (ActRemSvyQst + 291)
#define ActRemFolAsgUsr (ActRemSvyQst + 292)
#define ActCopAsgUsr (ActRemSvyQst + 293)
#define ActPasAsgUsr (ActRemSvyQst + 294)
#define ActRemTreAsgUsr (ActRemSvyQst + 295)
#define ActFrmCreAsgUsr (ActRemSvyQst + 296)
#define ActCreFolAsgUsr (ActRemSvyQst + 297)
#define ActCreLnkAsgUsr (ActRemSvyQst + 298)
#define ActRenFolAsgUsr (ActRemSvyQst + 299)
#define ActRcvFilAsgUsrDZ (ActRemSvyQst + 300)
#define ActRcvFilAsgUsrCla (ActRemSvyQst + 301)
#define ActExpAsgUsr (ActRemSvyQst + 302)
#define ActConAsgUsr (ActRemSvyQst + 303)
#define ActZIPAsgUsr (ActRemSvyQst + 304)
#define ActReqDatAsgUsr (ActRemSvyQst + 305)
#define ActChgDatAsgUsr (ActRemSvyQst + 306)
#define ActDowAsgUsr (ActRemSvyQst + 307)
#define ActReqRemFilAsgUsr (ActRemSvyQst + 292)
#define ActRemFilAsgUsr (ActRemSvyQst + 293)
#define ActRemFolAsgUsr (ActRemSvyQst + 294)
#define ActCopAsgUsr (ActRemSvyQst + 295)
#define ActPasAsgUsr (ActRemSvyQst + 296)
#define ActRemTreAsgUsr (ActRemSvyQst + 297)
#define ActFrmCreAsgUsr (ActRemSvyQst + 298)
#define ActCreFolAsgUsr (ActRemSvyQst + 299)
#define ActCreLnkAsgUsr (ActRemSvyQst + 300)
#define ActRenFolAsgUsr (ActRemSvyQst + 301)
#define ActRcvFilAsgUsrDZ (ActRemSvyQst + 302)
#define ActRcvFilAsgUsrCla (ActRemSvyQst + 303)
#define ActExpAsgUsr (ActRemSvyQst + 304)
#define ActConAsgUsr (ActRemSvyQst + 305)
#define ActZIPAsgUsr (ActRemSvyQst + 306)
#define ActReqDatAsgUsr (ActRemSvyQst + 307)
#define ActChgDatAsgUsr (ActRemSvyQst + 308)
#define ActDowAsgUsr (ActRemSvyQst + 309)
#define ActReqRemFilWrkUsr (ActRemSvyQst + 308)
#define ActRemFilWrkUsr (ActRemSvyQst + 309)
#define ActRemFolWrkUsr (ActRemSvyQst + 310)
#define ActCopWrkUsr (ActRemSvyQst + 311)
#define ActPasWrkUsr (ActRemSvyQst + 312)
#define ActRemTreWrkUsr (ActRemSvyQst + 313)
#define ActFrmCreWrkUsr (ActRemSvyQst + 314)
#define ActCreFolWrkUsr (ActRemSvyQst + 315)
#define ActCreLnkWrkUsr (ActRemSvyQst + 316)
#define ActRenFolWrkUsr (ActRemSvyQst + 317)
#define ActRcvFilWrkUsrDZ (ActRemSvyQst + 318)
#define ActRcvFilWrkUsrCla (ActRemSvyQst + 319)
#define ActExpWrkUsr (ActRemSvyQst + 320)
#define ActConWrkUsr (ActRemSvyQst + 321)
#define ActZIPWrkUsr (ActRemSvyQst + 322)
#define ActReqDatWrkUsr (ActRemSvyQst + 323)
#define ActChgDatWrkUsr (ActRemSvyQst + 324)
#define ActDowWrkUsr (ActRemSvyQst + 325)
#define ActReqRemFilWrkUsr (ActRemSvyQst + 310)
#define ActRemFilWrkUsr (ActRemSvyQst + 311)
#define ActRemFolWrkUsr (ActRemSvyQst + 312)
#define ActCopWrkUsr (ActRemSvyQst + 313)
#define ActPasWrkUsr (ActRemSvyQst + 314)
#define ActRemTreWrkUsr (ActRemSvyQst + 315)
#define ActFrmCreWrkUsr (ActRemSvyQst + 316)
#define ActCreFolWrkUsr (ActRemSvyQst + 317)
#define ActCreLnkWrkUsr (ActRemSvyQst + 318)
#define ActRenFolWrkUsr (ActRemSvyQst + 319)
#define ActRcvFilWrkUsrDZ (ActRemSvyQst + 320)
#define ActRcvFilWrkUsrCla (ActRemSvyQst + 321)
#define ActExpWrkUsr (ActRemSvyQst + 322)
#define ActConWrkUsr (ActRemSvyQst + 323)
#define ActZIPWrkUsr (ActRemSvyQst + 324)
#define ActReqDatWrkUsr (ActRemSvyQst + 325)
#define ActChgDatWrkUsr (ActRemSvyQst + 326)
#define ActDowWrkUsr (ActRemSvyQst + 327)
#define ActReqRemFilAsgCrs (ActRemSvyQst + 326)
#define ActRemFilAsgCrs (ActRemSvyQst + 327)
#define ActRemFolAsgCrs (ActRemSvyQst + 328)
#define ActCopAsgCrs (ActRemSvyQst + 329)
#define ActPasAsgCrs (ActRemSvyQst + 330)
#define ActRemTreAsgCrs (ActRemSvyQst + 331)
#define ActFrmCreAsgCrs (ActRemSvyQst + 332)
#define ActCreFolAsgCrs (ActRemSvyQst + 333)
#define ActCreLnkAsgCrs (ActRemSvyQst + 334)
#define ActRenFolAsgCrs (ActRemSvyQst + 335)
#define ActRcvFilAsgCrsDZ (ActRemSvyQst + 336)
#define ActRcvFilAsgCrsCla (ActRemSvyQst + 337)
#define ActExpAsgCrs (ActRemSvyQst + 338)
#define ActConAsgCrs (ActRemSvyQst + 339)
#define ActZIPAsgCrs (ActRemSvyQst + 340)
#define ActReqDatAsgCrs (ActRemSvyQst + 341)
#define ActChgDatAsgCrs (ActRemSvyQst + 342)
#define ActDowAsgCrs (ActRemSvyQst + 343)
#define ActReqRemFilAsgCrs (ActRemSvyQst + 328)
#define ActRemFilAsgCrs (ActRemSvyQst + 329)
#define ActRemFolAsgCrs (ActRemSvyQst + 330)
#define ActCopAsgCrs (ActRemSvyQst + 331)
#define ActPasAsgCrs (ActRemSvyQst + 332)
#define ActRemTreAsgCrs (ActRemSvyQst + 333)
#define ActFrmCreAsgCrs (ActRemSvyQst + 334)
#define ActCreFolAsgCrs (ActRemSvyQst + 335)
#define ActCreLnkAsgCrs (ActRemSvyQst + 336)
#define ActRenFolAsgCrs (ActRemSvyQst + 337)
#define ActRcvFilAsgCrsDZ (ActRemSvyQst + 338)
#define ActRcvFilAsgCrsCla (ActRemSvyQst + 339)
#define ActExpAsgCrs (ActRemSvyQst + 340)
#define ActConAsgCrs (ActRemSvyQst + 341)
#define ActZIPAsgCrs (ActRemSvyQst + 342)
#define ActReqDatAsgCrs (ActRemSvyQst + 343)
#define ActChgDatAsgCrs (ActRemSvyQst + 344)
#define ActDowAsgCrs (ActRemSvyQst + 345)
#define ActReqRemFilWrkCrs (ActRemSvyQst + 344)
#define ActRemFilWrkCrs (ActRemSvyQst + 345)
#define ActRemFolWrkCrs (ActRemSvyQst + 346)
#define ActCopWrkCrs (ActRemSvyQst + 347)
#define ActPasWrkCrs (ActRemSvyQst + 348)
#define ActRemTreWrkCrs (ActRemSvyQst + 349)
#define ActFrmCreWrkCrs (ActRemSvyQst + 350)
#define ActCreFolWrkCrs (ActRemSvyQst + 351)
#define ActCreLnkWrkCrs (ActRemSvyQst + 352)
#define ActRenFolWrkCrs (ActRemSvyQst + 353)
#define ActRcvFilWrkCrsDZ (ActRemSvyQst + 354)
#define ActRcvFilWrkCrsCla (ActRemSvyQst + 355)
#define ActExpWrkCrs (ActRemSvyQst + 356)
#define ActConWrkCrs (ActRemSvyQst + 357)
#define ActZIPWrkCrs (ActRemSvyQst + 358)
#define ActReqDatWrkCrs (ActRemSvyQst + 359)
#define ActChgDatWrkCrs (ActRemSvyQst + 360)
#define ActDowWrkCrs (ActRemSvyQst + 361)
#define ActReqRemFilWrkCrs (ActRemSvyQst + 346)
#define ActRemFilWrkCrs (ActRemSvyQst + 347)
#define ActRemFolWrkCrs (ActRemSvyQst + 348)
#define ActCopWrkCrs (ActRemSvyQst + 349)
#define ActPasWrkCrs (ActRemSvyQst + 350)
#define ActRemTreWrkCrs (ActRemSvyQst + 351)
#define ActFrmCreWrkCrs (ActRemSvyQst + 352)
#define ActCreFolWrkCrs (ActRemSvyQst + 353)
#define ActCreLnkWrkCrs (ActRemSvyQst + 354)
#define ActRenFolWrkCrs (ActRemSvyQst + 355)
#define ActRcvFilWrkCrsDZ (ActRemSvyQst + 356)
#define ActRcvFilWrkCrsCla (ActRemSvyQst + 357)
#define ActExpWrkCrs (ActRemSvyQst + 358)
#define ActConWrkCrs (ActRemSvyQst + 359)
#define ActZIPWrkCrs (ActRemSvyQst + 360)
#define ActReqDatWrkCrs (ActRemSvyQst + 361)
#define ActChgDatWrkCrs (ActRemSvyQst + 362)
#define ActDowWrkCrs (ActRemSvyQst + 363)
#define ActChgToSeeMrk (ActRemSvyQst + 362)
#define ActChgToSeeMrk (ActRemSvyQst + 364)
#define ActSeeMrkCrs (ActRemSvyQst + 363)
#define ActExpSeeMrkCrs (ActRemSvyQst + 364)
#define ActConSeeMrkCrs (ActRemSvyQst + 365)
#define ActReqDatSeeMrkCrs (ActRemSvyQst + 366)
#define ActSeeMyMrkCrs (ActRemSvyQst + 367)
#define ActSeeMrkCrs (ActRemSvyQst + 365)
#define ActExpSeeMrkCrs (ActRemSvyQst + 366)
#define ActConSeeMrkCrs (ActRemSvyQst + 367)
#define ActReqDatSeeMrkCrs (ActRemSvyQst + 368)
#define ActSeeMyMrkCrs (ActRemSvyQst + 369)
#define ActSeeMrkGrp (ActRemSvyQst + 368)
#define ActExpSeeMrkGrp (ActRemSvyQst + 369)
#define ActConSeeMrkGrp (ActRemSvyQst + 370)
#define ActReqDatSeeMrkGrp (ActRemSvyQst + 371)
#define ActSeeMyMrkGrp (ActRemSvyQst + 372)
#define ActSeeMrkGrp (ActRemSvyQst + 370)
#define ActExpSeeMrkGrp (ActRemSvyQst + 371)
#define ActConSeeMrkGrp (ActRemSvyQst + 372)
#define ActReqDatSeeMrkGrp (ActRemSvyQst + 373)
#define ActSeeMyMrkGrp (ActRemSvyQst + 374)
#define ActChgToAdmMrk (ActRemSvyQst + 373)
#define ActChgToAdmMrk (ActRemSvyQst + 375)
#define ActAdmMrkCrs (ActRemSvyQst + 374)
#define ActReqRemFilMrkCrs (ActRemSvyQst + 375)
#define ActRemFilMrkCrs (ActRemSvyQst + 376)
#define ActRemFolMrkCrs (ActRemSvyQst + 377)
#define ActCopMrkCrs (ActRemSvyQst + 378)
#define ActPasMrkCrs (ActRemSvyQst + 379)
#define ActRemTreMrkCrs (ActRemSvyQst + 380)
#define ActFrmCreMrkCrs (ActRemSvyQst + 381)
#define ActCreFolMrkCrs (ActRemSvyQst + 382)
#define ActRenFolMrkCrs (ActRemSvyQst + 383)
#define ActRcvFilMrkCrsDZ (ActRemSvyQst + 384)
#define ActRcvFilMrkCrsCla (ActRemSvyQst + 385)
#define ActExpAdmMrkCrs (ActRemSvyQst + 386)
#define ActConAdmMrkCrs (ActRemSvyQst + 387)
#define ActZIPAdmMrkCrs (ActRemSvyQst + 388)
#define ActUnhMrkCrs (ActRemSvyQst + 389)
#define ActHidMrkCrs (ActRemSvyQst + 390)
#define ActReqDatAdmMrkCrs (ActRemSvyQst + 391)
#define ActChgDatAdmMrkCrs (ActRemSvyQst + 392)
#define ActDowAdmMrkCrs (ActRemSvyQst + 393)
#define ActChgNumRowHeaCrs (ActRemSvyQst + 394)
#define ActChgNumRowFooCrs (ActRemSvyQst + 395)
#define ActAdmMrkCrs (ActRemSvyQst + 376)
#define ActReqRemFilMrkCrs (ActRemSvyQst + 377)
#define ActRemFilMrkCrs (ActRemSvyQst + 378)
#define ActRemFolMrkCrs (ActRemSvyQst + 379)
#define ActCopMrkCrs (ActRemSvyQst + 380)
#define ActPasMrkCrs (ActRemSvyQst + 381)
#define ActRemTreMrkCrs (ActRemSvyQst + 382)
#define ActFrmCreMrkCrs (ActRemSvyQst + 383)
#define ActCreFolMrkCrs (ActRemSvyQst + 384)
#define ActRenFolMrkCrs (ActRemSvyQst + 385)
#define ActRcvFilMrkCrsDZ (ActRemSvyQst + 386)
#define ActRcvFilMrkCrsCla (ActRemSvyQst + 387)
#define ActExpAdmMrkCrs (ActRemSvyQst + 388)
#define ActConAdmMrkCrs (ActRemSvyQst + 389)
#define ActZIPAdmMrkCrs (ActRemSvyQst + 390)
#define ActUnhMrkCrs (ActRemSvyQst + 391)
#define ActHidMrkCrs (ActRemSvyQst + 392)
#define ActReqDatAdmMrkCrs (ActRemSvyQst + 393)
#define ActChgDatAdmMrkCrs (ActRemSvyQst + 394)
#define ActDowAdmMrkCrs (ActRemSvyQst + 395)
#define ActChgNumRowHeaCrs (ActRemSvyQst + 396)
#define ActChgNumRowFooCrs (ActRemSvyQst + 397)
#define ActAdmMrkGrp (ActRemSvyQst + 396)
#define ActReqRemFilMrkGrp (ActRemSvyQst + 397)
#define ActRemFilMrkGrp (ActRemSvyQst + 398)
#define ActRemFolMrkGrp (ActRemSvyQst + 399)
#define ActCopMrkGrp (ActRemSvyQst + 400)
#define ActPasMrkGrp (ActRemSvyQst + 401)
#define ActRemTreMrkGrp (ActRemSvyQst + 402)
#define ActFrmCreMrkGrp (ActRemSvyQst + 403)
#define ActCreFolMrkGrp (ActRemSvyQst + 404)
#define ActRenFolMrkGrp (ActRemSvyQst + 405)
#define ActRcvFilMrkGrpDZ (ActRemSvyQst + 406)
#define ActRcvFilMrkGrpCla (ActRemSvyQst + 407)
#define ActExpAdmMrkGrp (ActRemSvyQst + 408)
#define ActConAdmMrkGrp (ActRemSvyQst + 409)
#define ActZIPAdmMrkGrp (ActRemSvyQst + 410)
#define ActUnhMrkGrp (ActRemSvyQst + 411)
#define ActHidMrkGrp (ActRemSvyQst + 412)
#define ActReqDatAdmMrkGrp (ActRemSvyQst + 413)
#define ActChgDatAdmMrkGrp (ActRemSvyQst + 414)
#define ActDowAdmMrkGrp (ActRemSvyQst + 415)
#define ActChgNumRowHeaGrp (ActRemSvyQst + 416)
#define ActChgNumRowFooGrp (ActRemSvyQst + 417)
#define ActAdmMrkGrp (ActRemSvyQst + 398)
#define ActReqRemFilMrkGrp (ActRemSvyQst + 399)
#define ActRemFilMrkGrp (ActRemSvyQst + 400)
#define ActRemFolMrkGrp (ActRemSvyQst + 401)
#define ActCopMrkGrp (ActRemSvyQst + 402)
#define ActPasMrkGrp (ActRemSvyQst + 403)
#define ActRemTreMrkGrp (ActRemSvyQst + 404)
#define ActFrmCreMrkGrp (ActRemSvyQst + 405)
#define ActCreFolMrkGrp (ActRemSvyQst + 406)
#define ActRenFolMrkGrp (ActRemSvyQst + 407)
#define ActRcvFilMrkGrpDZ (ActRemSvyQst + 408)
#define ActRcvFilMrkGrpCla (ActRemSvyQst + 409)
#define ActExpAdmMrkGrp (ActRemSvyQst + 410)
#define ActConAdmMrkGrp (ActRemSvyQst + 411)
#define ActZIPAdmMrkGrp (ActRemSvyQst + 412)
#define ActUnhMrkGrp (ActRemSvyQst + 413)
#define ActHidMrkGrp (ActRemSvyQst + 414)
#define ActReqDatAdmMrkGrp (ActRemSvyQst + 415)
#define ActChgDatAdmMrkGrp (ActRemSvyQst + 416)
#define ActDowAdmMrkGrp (ActRemSvyQst + 417)
#define ActChgNumRowHeaGrp (ActRemSvyQst + 418)
#define ActChgNumRowFooGrp (ActRemSvyQst + 419)
#define ActReqRemFilBrf (ActRemSvyQst + 418)
#define ActRemFilBrf (ActRemSvyQst + 419)
#define ActRemFolBrf (ActRemSvyQst + 420)
#define ActCopBrf (ActRemSvyQst + 421)
#define ActPasBrf (ActRemSvyQst + 422)
#define ActRemTreBrf (ActRemSvyQst + 423)
#define ActFrmCreBrf (ActRemSvyQst + 424)
#define ActCreFolBrf (ActRemSvyQst + 425)
#define ActCreLnkBrf (ActRemSvyQst + 426)
#define ActRenFolBrf (ActRemSvyQst + 427)
#define ActRcvFilBrfDZ (ActRemSvyQst + 428)
#define ActRcvFilBrfCla (ActRemSvyQst + 429)
#define ActExpBrf (ActRemSvyQst + 430)
#define ActConBrf (ActRemSvyQst + 431)
#define ActZIPBrf (ActRemSvyQst + 432)
#define ActReqDatBrf (ActRemSvyQst + 433)
#define ActChgDatBrf (ActRemSvyQst + 434)
#define ActDowBrf (ActRemSvyQst + 435)
#define ActReqRemOldBrf (ActRemSvyQst + 436)
#define ActRemOldBrf (ActRemSvyQst + 437)
#define ActReqRemFilBrf (ActRemSvyQst + 420)
#define ActRemFilBrf (ActRemSvyQst + 421)
#define ActRemFolBrf (ActRemSvyQst + 422)
#define ActCopBrf (ActRemSvyQst + 423)
#define ActPasBrf (ActRemSvyQst + 424)
#define ActRemTreBrf (ActRemSvyQst + 425)
#define ActFrmCreBrf (ActRemSvyQst + 426)
#define ActCreFolBrf (ActRemSvyQst + 427)
#define ActCreLnkBrf (ActRemSvyQst + 428)
#define ActRenFolBrf (ActRemSvyQst + 429)
#define ActRcvFilBrfDZ (ActRemSvyQst + 430)
#define ActRcvFilBrfCla (ActRemSvyQst + 431)
#define ActExpBrf (ActRemSvyQst + 432)
#define ActConBrf (ActRemSvyQst + 433)
#define ActZIPBrf (ActRemSvyQst + 434)
#define ActReqDatBrf (ActRemSvyQst + 435)
#define ActChgDatBrf (ActRemSvyQst + 436)
#define ActDowBrf (ActRemSvyQst + 437)
#define ActReqRemOldBrf (ActRemSvyQst + 438)
#define ActRemOldBrf (ActRemSvyQst + 439)
/*****************************************************************************/
/******************************* Users tab ***********************************/

View File

@ -449,6 +449,39 @@ static const Act_Action_t Brw_ActReqDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_ASS_PRJ] = ActReqDatAssPrj,
};
static const Act_Action_t Brw_ActReqLnk[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
[Brw_SHOW_DOC_CRS] = ActReqLnkSeeDocCrs,
[Brw_SHOW_MRK_CRS] = ActUnk, // ActReqLnkSeeMrkCrs,
[Brw_ADMI_DOC_CRS] = ActReqLnkAdmDocCrs,
[Brw_ADMI_SHR_CRS] = ActUnk,
[Brw_ADMI_SHR_GRP] = ActUnk,
[Brw_ADMI_WRK_USR] = ActUnk,
[Brw_ADMI_WRK_CRS] = ActUnk,
[Brw_ADMI_MRK_CRS] = ActUnk, // ActReqLnkAdmMrkCrs,
[Brw_ADMI_BRF_USR] = ActUnk,
[Brw_SHOW_DOC_GRP] = ActUnk,
[Brw_ADMI_DOC_GRP] = ActUnk,
[Brw_SHOW_MRK_GRP] = ActUnk, // ActReqLnkSeeMrkGrp,
[Brw_ADMI_MRK_GRP] = ActUnk, // ActReqLnkAdmMrkGrp,
[Brw_ADMI_ASG_USR] = ActUnk,
[Brw_ADMI_ASG_CRS] = ActUnk,
[Brw_SHOW_DOC_DEG] = ActUnk,
[Brw_ADMI_DOC_DEG] = ActUnk,
[Brw_SHOW_DOC_CTR] = ActUnk,
[Brw_ADMI_DOC_CTR] = ActUnk,
[Brw_SHOW_DOC_INS] = ActUnk,
[Brw_ADMI_DOC_INS] = ActUnk,
[Brw_ADMI_SHR_DEG] = ActUnk,
[Brw_ADMI_SHR_CTR] = ActUnk,
[Brw_ADMI_SHR_INS] = ActUnk,
[Brw_ADMI_TCH_CRS] = ActUnk,
[Brw_ADMI_TCH_GRP] = ActUnk,
[Brw_ADMI_DOC_PRJ] = ActUnk,
[Brw_ADMI_ASS_PRJ] = ActUnk,
};
static const Act_Action_t Brw_ActDowFile[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -1260,6 +1293,9 @@ static void Brw_PutFormToCreateALink (const char *FileNameToShow);
static bool Brw_RcvFileInFileBrw (Brw_UploadType_t UploadType);
static bool Brw_CheckIfUploadIsAllowed (const char *FileType);
static void Brw_PutIconToGetLinkToFile (void *FileMetadata);
static void Brw_PutParamsToGetLinkToFile (void *FileMetadata);
static bool Brw_CheckIfICanEditFileMetadata (long IAmTheOwner);
static bool Brw_CheckIfIAmOwnerOfFile (long PublisherUsrCod);
static void Brw_WriteBigLinkToDownloadFile (const char *URL,
@ -1523,6 +1559,7 @@ void Brw_GetParAndInitFileBrowser (void)
case ActConSeeDocCrs:
case ActZIPSeeDocCrs:
case ActReqDatSeeDocCrs:
case ActReqLnkSeeDocCrs:
case ActDowSeeDocCrs:
Gbl.FileBrowser.Type = Brw_SHOW_DOC_CRS;
break;
@ -1559,6 +1596,7 @@ void Brw_GetParAndInitFileBrowser (void)
case ActHidDocCrs:
case ActReqDatAdmDocCrs:
case ActChgDatAdmDocCrs:
case ActReqLnkAdmDocCrs:
case ActDowAdmDocCrs:
Gbl.FileBrowser.Type = Brw_ADMI_DOC_CRS;
break;
@ -7842,6 +7880,7 @@ void Brw_ShowFileMetadata (void)
bool ICanEdit;
bool ICanChangePublic = false;
bool FileHasPublisher;
bool PutIconToGetLink;
Brw_License_t License;
unsigned LicenseUnsigned;
@ -7928,6 +7967,23 @@ void Brw_ShowFileMetadata (void)
FileMetadata.FilFolLnk.Name,
FileNameToShow);
/***** Begin box *****/
PutIconToGetLink = (Gbl.FileBrowser.Type == Brw_SHOW_DOC_CRS || // Only document zone
Gbl.FileBrowser.Type == Brw_ADMI_DOC_CRS) &&
(FileMetadata.FilFolLnk.Type == Brw_IS_FILE || // Only files or links
FileMetadata.FilFolLnk.Type == Brw_IS_LINK) &&
(Gbl.Usrs.Me.Role.Logged == Rol_TCH || // Only if I am teacher or superuser
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
if (PutIconToGetLink)
Box_BoxShadowBegin (NULL,NULL,
Brw_PutIconToGetLinkToFile,&FileMetadata,
NULL);
else
Box_BoxShadowBegin (NULL,NULL,
NULL,NULL,
NULL);
/***** Begin form to update the metadata of a file *****/
if (ICanEdit) // I can edit file properties
{
@ -7950,16 +8006,14 @@ void Brw_ShowFileMetadata (void)
}
Frm_BeginForm (Brw_ActRecDatFile[Gbl.FileBrowser.Type]);
Brw_PutParamsFileBrowser (NULL, // Not used
NULL, // Not used
Brw_PutParamsFileBrowser (NULL, // Not used
NULL, // Not used
Brw_IS_UNKNOWN, // Not used
FileMetadata.FilCod);
}
/***** Begin box and table *****/
Box_BoxTableShadowBegin (NULL,NULL,
NULL,NULL,
NULL,2);
/***** Begin table *****/
HTM_TABLE_BeginWidePadding (2);
/***** Link to download the file *****/
HTM_TR_Begin (NULL);
@ -7976,7 +8030,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Filename);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
Brw_WriteSmallLinkToDownloadFile (URL,&FileMetadata,FileNameToShow);
HTM_TD_End ();
@ -7988,13 +8042,13 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Uploaded_by);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
if (FileHasPublisher)
{
/* Show photo */
Pho_ShowUsrPhotoIfAllowed (&PublisherUsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false);
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false);
/* Write name */
HTM_NBSP ();
@ -8018,7 +8072,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_File_size);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
HTM_Txt (FileSizeStr);
HTM_TD_End ();
@ -8030,7 +8084,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Date_of_creation);
HTM_TD_Begin ("id=\"filedate\" class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
Dat_WriteLocalDateHMSFromUTC ("filedate",FileMetadata.Time,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
true,true,true,0x7);
@ -8043,12 +8097,12 @@ void Brw_ShowFileMetadata (void)
/* Label */
Frm_LabelColumn ("RT",ICanChangePublic ? "PublicFile" :
NULL,
Txt_Availability);
NULL,
Txt_Availability);
/* Data */
HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
if (ICanChangePublic) // I can change file to public
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
@ -8073,12 +8127,12 @@ void Brw_ShowFileMetadata (void)
/* Label */
Frm_LabelColumn ("RT",ICanEdit ? "License" :
NULL,
Txt_License);
NULL,
Txt_License);
/* Data */
HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
if (ICanEdit) // I can edit file properties
{
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
@ -8105,10 +8159,10 @@ void Brw_ShowFileMetadata (void)
{
HTM_TR_Begin (NULL);
Frm_LabelColumn ("RT",NULL,Txt_My_views);
Frm_LabelColumn ("RT",NULL,Txt_My_views);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
HTM_Unsigned (FileMetadata.NumMyViews);
HTM_TD_End ();
@ -8121,7 +8175,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Identified_views);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
HTM_TxtF ("%u ",FileMetadata.NumViewsFromLoggedUsrs);
HTM_TxtF ("(%u %s)",
FileMetadata.NumLoggedUsrs,
@ -8137,24 +8191,24 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Public_views);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ());
The_GetSuffix ());
HTM_Unsigned (FileMetadata.NumPublicViews);
HTM_TD_End ();
HTM_TR_End ();
/***** End box *****/
/***** End table *****/
HTM_TABLE_End ();
/***** End form *****/
if (ICanEdit) // I can edit file properties
{
/* End table, send button and end box */
Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_file_properties);
/* End form */
Btn_PutButton (Btn_CONFIRM_BUTTON,Txt_Save_file_properties);
Frm_EndForm ();
}
else
/* End table and box */
Box_BoxTableEnd ();
/***** End box *****/
Box_BoxEnd ();
/***** Mark possible notifications as seen *****/
switch (Gbl.FileBrowser.Type)
@ -8231,6 +8285,57 @@ void Brw_ShowFileMetadata (void)
Brw_ShowAgainFileBrowserOrWorks ();
}
/*****************************************************************************/
/*********************** Put icon to get link to file ************************/
/*****************************************************************************/
static void Brw_PutIconToGetLinkToFile (void *FileMetadata)
{
Ico_PutContextualIconToGetLink (Brw_ActReqLnk[Gbl.FileBrowser.Type],
Brw_PutParamsToGetLinkToFile,FileMetadata);
}
static void Brw_PutParamsToGetLinkToFile (void *FileMetadata)
{
if (FileMetadata)
Brw_PutParamsFileBrowser (NULL, // Not used
NULL, // Not used
Brw_IS_UNKNOWN, // Not used
((struct FileMetadata *) FileMetadata)->FilCod);
}
/*****************************************************************************/
/*********************** Put icon to get link to file ************************/
/*****************************************************************************/
void Brw_GetLinkToFile (void)
{
extern const char *Txt_Link_to_resource_X_copied_into_clipboard;
struct FileMetadata FileMetadata;
bool Found;
/***** Get parameters related to file browser *****/
Brw_GetParAndInitFileBrowser ();
/***** Get file metadata *****/
FileMetadata.FilCod = Brw_GetParamFilCod ();
Brw_GetFileMetadataByCod (&FileMetadata);
Found = Brw_GetFileTypeSizeAndDate (&FileMetadata);
if (Found)
{
/***** Copy link to file into resource clipboard *****/
// Prg_DB_CopyToClipboard (&FileMetadata);
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_Link_to_resource_X_copied_into_clipboard,
FileMetadata.FilFolLnk.Name);
}
/***** Show again the file browser *****/
Brw_ShowAgainFileBrowserOrWorks ();
}
/*****************************************************************************/
/******************* Download a file from a file browser *********************/
/*****************************************************************************/
@ -8717,7 +8822,7 @@ void Brw_ChgFileMetadata (void)
/***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_The_properties_of_file_X_have_been_saved,
Gbl.FileBrowser.FilFolLnk.Name);
FileMetadata.FilFolLnk.Name);
}
else
/***** Write error message and exit *****/

View File

@ -225,6 +225,9 @@ void Brw_SetDocumentAsVisible (void);
void Brw_SetDocumentAsHidden (void);
bool Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_t FileType,const char *Path);
void Brw_ShowFileMetadata (void);
void Brw_GetLinkToFile (void);
void Brw_DownloadFile (void);
void Brw_GetLinkToDownloadFile (const char *PathInTree,const char *FileName,char *URL);
void Brw_ChgFileMetadata (void);

View File

@ -606,13 +606,15 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia.
*/
#define Log_PLATFORM_VERSION "SWAD 21.116.3 (2022-09-10)"
#define Log_PLATFORM_VERSION "SWAD 21.117 (2022-09-12)"
#define CSS_FILE "swad21.107.1.css"
#define JS_FILE "swad21.100.js"
/*
Version 21.117: Sep 10, 2022 New database table with clipboards for program resources. (? lines)
Version 21.117: Sep 12, 2022 New database table with clipboards for program resources.
New actions to get link to file in course document area. (329514 lines)
1 change necessary in database:
CREATE TABLE IF NOT EXISTS prg_clipboards...
ALTER TABLE prg_resources ADD COLUMN Type ENUM('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'none' AFTER Hidden;
CREATE TABLE IF NOT EXISTS prg_clipboards (UsrCod INT NOT NULL,CrsCod INT NOT NULL,Type ENUM('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') NOT NULL DEFAULT 'none',Cod INT NOT NULL DEFAULT -1,CopyTime TIMESTAMP,INDEX(UsrCod,CrsCod,CopyTime),INDEX(CrsCod,Type,Cod),INDEX(CopyTime));
If you want to use MyISAM:
ALTER TABLE prg_clipboards ENGINE=MyISAM;

View File

@ -727,7 +727,15 @@ mysql> DESCRIBE crs_info_read;
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_read ("
"UsrCod INT NOT NULL,"
"CrsCod INT NOT NULL,"
"InfoType ENUM('intro','description','theory','practices','bibliography','FAQ','links','assessment') NOT NULL,"
"InfoType ENUM("
"'intro',"
"'description',"
"'theory',"
"'practices',"
"'bibliography',"
"'FAQ',"
"'links',"
"'assessment') NOT NULL,"
"UNIQUE INDEX(UsrCod,CrsCod,InfoType))");
/***** Table crs_info_src *****/
@ -745,7 +753,15 @@ mysql> DESCRIBE crs_info_src;
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_src ("
"CrsCod INT NOT NULL DEFAULT -1,"
"InfoType ENUM('intro','description','theory','practices','bibliography','FAQ','links','assessment') NOT NULL,"
"InfoType ENUM("
"'intro',"
"'description',"
"'theory',"
"'practices',"
"'bibliography',"
"'FAQ',"
"'links',"
"'assessment') NOT NULL,"
"InfoSrc ENUM('none','editor','plain_text','rich_text','page','URL') NOT NULL,"
"MustBeRead ENUM('N','Y') NOT NULL DEFAULT 'N',"
"UNIQUE INDEX(CrsCod,InfoType))");
@ -765,7 +781,15 @@ mysql> DESCRIBE crs_info_txt;
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_txt ("
"CrsCod INT NOT NULL DEFAULT -1,"
"InfoType ENUM('intro','description','theory','practices','bibliography','FAQ','links','assessment') NOT NULL,"
"InfoType ENUM("
"'intro',"
"'description',"
"'theory',"
"'practices',"
"'bibliography',"
"'FAQ',"
"'links',"
"'assessment') NOT NULL,"
"InfoTxtHTML LONGTEXT NOT NULL,"
"InfoTxtMD LONGTEXT NOT NULL,"
"UNIQUE INDEX(CrsCod,InfoType))");
@ -2094,7 +2118,15 @@ mysql> DESCRIBE med_media;
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS med_media ("
"MedCod INT NOT NULL AUTO_INCREMENT,"
"Type ENUM('none','jpg','gif','mp4','webm','ogg','youtube','embed') NOT NULL DEFAULT 'none',"
"Type ENUM("
"'none',"
"'jpg',"
"'gif',"
"'mp4',"
"'webm',"
"'ogg',"
"'youtube',"
"'embed') NOT NULL DEFAULT 'none',"
"Name VARCHAR(43) NOT NULL DEFAULT ''," // Med_BYTES_NAME
"URL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW
"Title VARCHAR(2047) NOT NULL DEFAULT ''," // Med_MAX_BYTES_TITLE
@ -2421,26 +2453,36 @@ mysql> DESCRIBE plg_plugins;
/***** Table prg_clipboards *****/
/*
mysql> DESCRIBE prg_clipboards;
+-------------+------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+-------------------+-----------------------------+
| UsrCod | int(11) | NO | PRI | NULL | |
| FileBrowser | tinyint(4) | NO | MUL | NULL | |
| Cod | int(11) | NO | | -1 | |
| WorksUsrCod | int(11) | NO | MUL | NULL | |
| FileType | tinyint(4) | NO | | 0 | |
| Path | text | NO | | NULL | |
| CopyTime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
+-------------+------------+------+-----+-------------------+-----------------------------+
7 rows in set (0.00 sec)
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
| UsrCod | int | NO | MUL | NULL | |
| CrsCod | int | NO | MUL | NULL | |
| Type | enum('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') | NO | | none | |
| Cod | int | NO | | -1 | |
| CopyTime | timestamp | YES | MUL | NULL | |
+----------+--------------------------------------------------------------------+------+-----+---------+-------+
5 rows in set (0,00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_clipboards ("
"UsrCod INT NOT NULL,"
"RscType TINYINT NOT NULL DEFAULT 0,"
"CrsCod INT NOT NULL,"
"Type ENUM("
"'none',"
"'asg',"
"'cfe',"
"'exa',"
"'gam',"
"'svy',"
"'doc',"
"'mrk',"
"'att',"
"'for') NOT NULL DEFAULT 'none',"
"Cod INT NOT NULL DEFAULT -1,"
"CopyTime TIMESTAMP,"
"INDEX(UsrCod),"
"INDEX(RscType,Cod)))");
"INDEX(UsrCod,CrsCod,CopyTime),"
"INDEX(CrsCod,Type,Cod),"
"INDEX(CopyTime))");
/***** Table prg_items *****/
/*
@ -2478,22 +2520,34 @@ mysql> DESCRIBE prg_items;
/***** Table prg_resources *****/
/*
mysql> DESCRIBE prg_resources;
+--------+---------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+
| RscCod | int | NO | PRI | NULL | auto_increment |
| ItmCod | int | NO | MUL | -1 | |
| RscInd | int | NO | | 0 | |
| Hidden | enum('N','Y') | NO | | N | |
| Title | varchar(2047) | NO | | NULL | |
+--------+---------------+------+-----+---------+----------------+
5 rows in set (0,00 sec)
+--------+--------------------------------------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+--------------------------------------------------------------------+------+-----+---------+----------------+
| RscCod | int | NO | PRI | NULL | auto_increment |
| ItmCod | int | NO | MUL | -1 | |
| RscInd | int | NO | | 0 | |
| Hidden | enum('N','Y') | NO | | N | |
| Type | enum('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') | NO | | none | |
| Title | varchar(2047) | NO | | NULL | |
+--------+--------------------------------------------------------------------+------+-----+---------+----------------+
6 rows in set (0,00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_resources ("
"RscCod INT NOT NULL AUTO_INCREMENT,"
"ItmCod INT NOT NULL DEFAULT -1,"
"RscInd INT NOT NULL DEFAULT 0,"
"Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',"
"Type ENUM("
"'none',"
"'asg',"
"'cfe',"
"'exa',"
"'gam',"
"'svy',"
"'doc',"
"'mrk',"
"'att',"
"'for') NOT NULL DEFAULT 'none',"
"Title VARCHAR(2047) NOT NULL," // PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE
"UNIQUE INDEX(RscCod),"
"UNIQUE INDEX(ItmCod,RscInd))");

View File

@ -307,6 +307,14 @@ void Ico_PutContextualIconToPrint (Act_Action_t NextAction,
"print.svg",Ico_BLACK);
}
void Ico_PutContextualIconToGetLink (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args)
{
Lay_PutContextualLinkOnlyIcon (NextAction,NULL,
FuncParams,Args,
"link.svg",Ico_BLACK);
}
void Ico_PutContextualIconToCopy (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args)
{

View File

@ -81,6 +81,8 @@ void Ico_PutContextualIconToHideUnhide (const Act_Action_t NextAction[2],const c
bool Hidden);
void Ico_PutContextualIconToPrint (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args);
void Ico_PutContextualIconToGetLink (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args);
void Ico_PutContextualIconToCopy (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args);
void Ico_PutContextualIconToPaste (Act_Action_t NextAction,

View File

@ -49,6 +49,51 @@ typedef enum
PrgRsc_MOVE_DOWN,
} PrgRsc_MoveUpDown_t;
#define PrgRsc_NUM_TYPES 10
typedef enum
{
PrgRsc_NONE,
// gui TEACHING_GUIDE // Link to teaching guide
// bib BIBLIOGRAPHY // Link to bibliography
// faq FAQ // Link to FAQ
// lnk LINKS // Link to links
// tmt TIMETABLE // Link to timetable
PrgRsc_ASSIGNMENT,
// prj PROJECT // A project is only for some students
PrgRsc_CALL_FOR_EXAM,
// tst TEST // User selects tags, teacher should select
PrgRsc_EXAM,
PrgRsc_GAME,
PrgRsc_SURVEY,
PrgRsc_DOCUMENT,
PrgRsc_MARKS,
// grp GROUPS // ??? User select groups
PrgRsc_ATTENDANCE_EVENT,
PrgRsc_FORUM_THREAD,
} PrgRsc_Type_t;
const char *PrgRsc_TypesDB[PrgRsc_NUM_TYPES] =
{
[PrgRsc_NONE ] = "non",
// gui TEACHING_GUIDE // Link to teaching guide
// bib BIBLIOGRAPHY // Link to bibliography
// faq FAQ // Link to FAQ
// lnk LINKS // Link to links
// tmt TIMETABLE // Link to timetable
[PrgRsc_ASSIGNMENT ] = "asg",
// prj PROJECT // A project is only for some students
[PrgRsc_CALL_FOR_EXAM ] = "cfe",
// tst TEST // User selects tags, teacher should select
[PrgRsc_EXAM ] = "exa",
[PrgRsc_GAME ] = "gam",
[PrgRsc_SURVEY ] = "svy",
[PrgRsc_DOCUMENT ] = "doc",
[PrgRsc_MARKS ] = "mrk",
// grp GROUPS // ??? User select groups
[PrgRsc_ATTENDANCE_EVENT] = "att",
[PrgRsc_FORUM_THREAD ] = "for",
};
/*****************************************************************************/
/***************************** Private variables *****************************/
/*****************************************************************************/

View File

@ -19798,6 +19798,29 @@ const char *Txt_Link_to_call_for_exam =
"Link to call for exam"; // Çeviri lazim!
#endif
const char *Txt_Link_to_resource_X_copied_into_clipboard = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"Enllaç al recurs %s copiat al porta-retalls.";
#elif L==2 // de
"Link zu Ressource %s in die Zwischenablage kopiert.";
#elif L==3 // en
"Link to resource %s copied into clipboard.";
#elif L==4 // es
"Enlace al recurso %s copiado en el portapapeles.";
#elif L==5 // fr
"Lien vers la ressource %s copié dans le presse-papiers.";
#elif L==6 // gn
"Enlace al recurso %s copiado en el portapapeles."; // Okoteve traducción
#elif L==7 // it
"Collegamento alla risorsa %s copiata negli appunti.";
#elif L==8 // pl
"Link do zasobu %s skopiowany do schowka.";
#elif L==9 // pt
"Link para o recurso %s copiado para a área de transferência.";
#elif L==10 // tr
"Panoya kopyalanan %s kaynağına bağlantı.";
#endif
const char *Txt_List_of_detailed_clicks =
#if L==1 // ca
"Llistat de clics detallats";

View File

@ -17586,6 +17586,29 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"See file metadata in documents zone of course" // Precisa de tradução
#elif L==10 // tr
"See file metadata in documents zone of course" // Çeviri lazim!
#endif
,
[ActReqLnkSeeDocCrs] =
#if L==1 // ca
"Copy link to file when showing course documents area" // Necessita traducció
#elif L==2 // de
"Copy link to file when showing course documents area" // Need Übersetzung
#elif L==3 // en
"Copy link to file when showing course documents area"
#elif L==4 // es
"Copiar enlace a archivo viendo zona de documentos de asignatura"
#elif L==5 // fr
"Copy link to file when showing course documents area" // Besoin de traduction
#elif L==6 // gn
"Copiar enlace a archivo viendo zona de documentos de asignatura" // Okoteve traducción
#elif L==7 // it
"Copy link to file when showing course documents area" // Bisogno di traduzione
#elif L==8 // pl
"Copy link to file when showing course documents area" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Copy link to file when showing course documents area" // Precisa de tradução
#elif L==10 // tr
"Copy link to file when showing course documents area" // Çeviri lazim!
#endif
,
[ActDowSeeDocCrs] =
@ -18230,6 +18253,29 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"Change file metadata in documents zone of course" // Precisa de tradução
#elif L==10 // tr
"Change file metadata in documents zone of course" // Çeviri lazim!
#endif
,
[ActReqLnkAdmDocCrs] =
#if L==1 // ca
"Copy link to file when managing course documents area" // Necessita traducció
#elif L==2 // de
"Copy link to file when managing course documents area" // Need Übersetzung
#elif L==3 // en
"Copy link to file when managing course documents area"
#elif L==4 // es
"Copiar enlace a archivo administrando zona de documentos de asignatura"
#elif L==5 // fr
"Copy link to file when managing course documents area" // Besoin de traduction
#elif L==6 // gn
"Copiar enlace a archivo administrando zona de documentos de asignatura" // Okoteve traducción
#elif L==7 // it
"Copy link to file when managing course documents area" // Bisogno di traduzione
#elif L==8 // pl
"Copy link to file when managing course documents area" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"Copy link to file when managing course documents area" // Precisa de tradução
#elif L==10 // tr
"Copy link to file when managing course documents area" // Çeviri lazim!
#endif
,
[ActDowAdmDocCrs] =

View File

@ -1052,7 +1052,7 @@ static void TmlNot_RequestRemovalNote (struct Tml_Timeline *Timeline)
/* End alert */
Timeline->NotCod = Not.NotCod; // Note to be removed
TmlFrm_EndAlertRemove (Timeline,TmlFrm_REM_NOTE,
TmlNot_PutParamsRemoveNote);
TmlNot_PutParamsRemoveNote);
}
/*****************************************************************************/