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}, [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}, [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}, [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}, [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}, [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}, [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}, [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}, [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}, [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}, [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 ActSeePrgItm, // #1927
ActRenPrgRsc, // #1928 ActRenPrgRsc, // #1928
ActNewPrgRsc, // #1929 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 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 #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 ActConSeeDocCrs (ActRemSvyQst + 158)
#define ActZIPSeeDocCrs (ActRemSvyQst + 159) #define ActZIPSeeDocCrs (ActRemSvyQst + 159)
#define ActReqDatSeeDocCrs (ActRemSvyQst + 160) #define ActReqDatSeeDocCrs (ActRemSvyQst + 160)
#define ActDowSeeDocCrs (ActRemSvyQst + 161) #define ActReqLnkSeeDocCrs (ActRemSvyQst + 161)
#define ActDowSeeDocCrs (ActRemSvyQst + 162)
#define ActSeeDocGrp (ActRemSvyQst + 162) #define ActSeeDocGrp (ActRemSvyQst + 163)
#define ActExpSeeDocGrp (ActRemSvyQst + 163) #define ActExpSeeDocGrp (ActRemSvyQst + 164)
#define ActConSeeDocGrp (ActRemSvyQst + 164) #define ActConSeeDocGrp (ActRemSvyQst + 165)
#define ActZIPSeeDocGrp (ActRemSvyQst + 165) #define ActZIPSeeDocGrp (ActRemSvyQst + 166)
#define ActReqDatSeeDocGrp (ActRemSvyQst + 166) #define ActReqDatSeeDocGrp (ActRemSvyQst + 167)
#define ActDowSeeDocGrp (ActRemSvyQst + 167) #define ActDowSeeDocGrp (ActRemSvyQst + 168)
#define ActChgToAdmDocCrs (ActRemSvyQst + 168) #define ActChgToAdmDocCrs (ActRemSvyQst + 169)
#define ActAdmDocCrs (ActRemSvyQst + 169) #define ActAdmDocCrs (ActRemSvyQst + 170)
#define ActReqRemFilDocCrs (ActRemSvyQst + 170) #define ActReqRemFilDocCrs (ActRemSvyQst + 171)
#define ActRemFilDocCrs (ActRemSvyQst + 171) #define ActRemFilDocCrs (ActRemSvyQst + 172)
#define ActRemFolDocCrs (ActRemSvyQst + 172) #define ActRemFolDocCrs (ActRemSvyQst + 173)
#define ActCopDocCrs (ActRemSvyQst + 173) #define ActCopDocCrs (ActRemSvyQst + 174)
#define ActPasDocCrs (ActRemSvyQst + 174) #define ActPasDocCrs (ActRemSvyQst + 175)
#define ActRemTreDocCrs (ActRemSvyQst + 175) #define ActRemTreDocCrs (ActRemSvyQst + 176)
#define ActFrmCreDocCrs (ActRemSvyQst + 176) #define ActFrmCreDocCrs (ActRemSvyQst + 177)
#define ActCreFolDocCrs (ActRemSvyQst + 177) #define ActCreFolDocCrs (ActRemSvyQst + 178)
#define ActCreLnkDocCrs (ActRemSvyQst + 178) #define ActCreLnkDocCrs (ActRemSvyQst + 179)
#define ActRenFolDocCrs (ActRemSvyQst + 179) #define ActRenFolDocCrs (ActRemSvyQst + 180)
#define ActRcvFilDocCrsDZ (ActRemSvyQst + 180) #define ActRcvFilDocCrsDZ (ActRemSvyQst + 181)
#define ActRcvFilDocCrsCla (ActRemSvyQst + 181) #define ActRcvFilDocCrsCla (ActRemSvyQst + 182)
#define ActExpAdmDocCrs (ActRemSvyQst + 182) #define ActExpAdmDocCrs (ActRemSvyQst + 183)
#define ActConAdmDocCrs (ActRemSvyQst + 183) #define ActConAdmDocCrs (ActRemSvyQst + 184)
#define ActZIPAdmDocCrs (ActRemSvyQst + 184) #define ActZIPAdmDocCrs (ActRemSvyQst + 185)
#define ActUnhDocCrs (ActRemSvyQst + 185) #define ActUnhDocCrs (ActRemSvyQst + 186)
#define ActHidDocCrs (ActRemSvyQst + 186) #define ActHidDocCrs (ActRemSvyQst + 187)
#define ActReqDatAdmDocCrs (ActRemSvyQst + 187) #define ActReqDatAdmDocCrs (ActRemSvyQst + 188)
#define ActChgDatAdmDocCrs (ActRemSvyQst + 188) #define ActChgDatAdmDocCrs (ActRemSvyQst + 189)
#define ActDowAdmDocCrs (ActRemSvyQst + 189) #define ActReqLnkAdmDocCrs (ActRemSvyQst + 190)
#define ActDowAdmDocCrs (ActRemSvyQst + 191)
#define ActAdmDocGrp (ActRemSvyQst + 190) #define ActAdmDocGrp (ActRemSvyQst + 192)
#define ActReqRemFilDocGrp (ActRemSvyQst + 191) #define ActReqRemFilDocGrp (ActRemSvyQst + 193)
#define ActRemFilDocGrp (ActRemSvyQst + 192) #define ActRemFilDocGrp (ActRemSvyQst + 194)
#define ActRemFolDocGrp (ActRemSvyQst + 193) #define ActRemFolDocGrp (ActRemSvyQst + 195)
#define ActCopDocGrp (ActRemSvyQst + 194) #define ActCopDocGrp (ActRemSvyQst + 196)
#define ActPasDocGrp (ActRemSvyQst + 195) #define ActPasDocGrp (ActRemSvyQst + 197)
#define ActRemTreDocGrp (ActRemSvyQst + 196) #define ActRemTreDocGrp (ActRemSvyQst + 198)
#define ActFrmCreDocGrp (ActRemSvyQst + 197) #define ActFrmCreDocGrp (ActRemSvyQst + 199)
#define ActCreFolDocGrp (ActRemSvyQst + 198) #define ActCreFolDocGrp (ActRemSvyQst + 200)
#define ActCreLnkDocGrp (ActRemSvyQst + 199) #define ActCreLnkDocGrp (ActRemSvyQst + 201)
#define ActRenFolDocGrp (ActRemSvyQst + 200) #define ActRenFolDocGrp (ActRemSvyQst + 202)
#define ActRcvFilDocGrpDZ (ActRemSvyQst + 201) #define ActRcvFilDocGrpDZ (ActRemSvyQst + 203)
#define ActRcvFilDocGrpCla (ActRemSvyQst + 202) #define ActRcvFilDocGrpCla (ActRemSvyQst + 204)
#define ActExpAdmDocGrp (ActRemSvyQst + 203) #define ActExpAdmDocGrp (ActRemSvyQst + 205)
#define ActConAdmDocGrp (ActRemSvyQst + 204) #define ActConAdmDocGrp (ActRemSvyQst + 206)
#define ActZIPAdmDocGrp (ActRemSvyQst + 205) #define ActZIPAdmDocGrp (ActRemSvyQst + 207)
#define ActUnhDocGrp (ActRemSvyQst + 206) #define ActUnhDocGrp (ActRemSvyQst + 208)
#define ActHidDocGrp (ActRemSvyQst + 207) #define ActHidDocGrp (ActRemSvyQst + 209)
#define ActReqDatAdmDocGrp (ActRemSvyQst + 208) #define ActReqDatAdmDocGrp (ActRemSvyQst + 210)
#define ActChgDatAdmDocGrp (ActRemSvyQst + 209) #define ActChgDatAdmDocGrp (ActRemSvyQst + 211)
#define ActDowAdmDocGrp (ActRemSvyQst + 210) #define ActDowAdmDocGrp (ActRemSvyQst + 212)
#define ActChgToAdmTch (ActRemSvyQst + 211) #define ActChgToAdmTch (ActRemSvyQst + 213)
#define ActAdmTchCrs (ActRemSvyQst + 212) #define ActAdmTchCrs (ActRemSvyQst + 214)
#define ActReqRemFilTchCrs (ActRemSvyQst + 213) #define ActReqRemFilTchCrs (ActRemSvyQst + 215)
#define ActRemFilTchCrs (ActRemSvyQst + 214) #define ActRemFilTchCrs (ActRemSvyQst + 216)
#define ActRemFolTchCrs (ActRemSvyQst + 215) #define ActRemFolTchCrs (ActRemSvyQst + 217)
#define ActCopTchCrs (ActRemSvyQst + 216) #define ActCopTchCrs (ActRemSvyQst + 218)
#define ActPasTchCrs (ActRemSvyQst + 217) #define ActPasTchCrs (ActRemSvyQst + 219)
#define ActRemTreTchCrs (ActRemSvyQst + 218) #define ActRemTreTchCrs (ActRemSvyQst + 220)
#define ActFrmCreTchCrs (ActRemSvyQst + 219) #define ActFrmCreTchCrs (ActRemSvyQst + 221)
#define ActCreFolTchCrs (ActRemSvyQst + 220) #define ActCreFolTchCrs (ActRemSvyQst + 222)
#define ActCreLnkTchCrs (ActRemSvyQst + 221) #define ActCreLnkTchCrs (ActRemSvyQst + 223)
#define ActRenFolTchCrs (ActRemSvyQst + 222) #define ActRenFolTchCrs (ActRemSvyQst + 224)
#define ActRcvFilTchCrsDZ (ActRemSvyQst + 223) #define ActRcvFilTchCrsDZ (ActRemSvyQst + 225)
#define ActRcvFilTchCrsCla (ActRemSvyQst + 224) #define ActRcvFilTchCrsCla (ActRemSvyQst + 226)
#define ActExpTchCrs (ActRemSvyQst + 225) #define ActExpTchCrs (ActRemSvyQst + 227)
#define ActConTchCrs (ActRemSvyQst + 226) #define ActConTchCrs (ActRemSvyQst + 228)
#define ActZIPTchCrs (ActRemSvyQst + 227) #define ActZIPTchCrs (ActRemSvyQst + 229)
#define ActReqDatTchCrs (ActRemSvyQst + 228) #define ActReqDatTchCrs (ActRemSvyQst + 230)
#define ActChgDatTchCrs (ActRemSvyQst + 229) #define ActChgDatTchCrs (ActRemSvyQst + 231)
#define ActDowTchCrs (ActRemSvyQst + 230) #define ActDowTchCrs (ActRemSvyQst + 232)
#define ActAdmTchGrp (ActRemSvyQst + 231) #define ActAdmTchGrp (ActRemSvyQst + 233)
#define ActReqRemFilTchGrp (ActRemSvyQst + 232) #define ActReqRemFilTchGrp (ActRemSvyQst + 234)
#define ActRemFilTchGrp (ActRemSvyQst + 233) #define ActRemFilTchGrp (ActRemSvyQst + 235)
#define ActRemFolTchGrp (ActRemSvyQst + 234) #define ActRemFolTchGrp (ActRemSvyQst + 236)
#define ActCopTchGrp (ActRemSvyQst + 235) #define ActCopTchGrp (ActRemSvyQst + 237)
#define ActPasTchGrp (ActRemSvyQst + 236) #define ActPasTchGrp (ActRemSvyQst + 238)
#define ActRemTreTchGrp (ActRemSvyQst + 237) #define ActRemTreTchGrp (ActRemSvyQst + 239)
#define ActFrmCreTchGrp (ActRemSvyQst + 238) #define ActFrmCreTchGrp (ActRemSvyQst + 240)
#define ActCreFolTchGrp (ActRemSvyQst + 239) #define ActCreFolTchGrp (ActRemSvyQst + 241)
#define ActCreLnkTchGrp (ActRemSvyQst + 240) #define ActCreLnkTchGrp (ActRemSvyQst + 242)
#define ActRenFolTchGrp (ActRemSvyQst + 241) #define ActRenFolTchGrp (ActRemSvyQst + 243)
#define ActRcvFilTchGrpDZ (ActRemSvyQst + 242) #define ActRcvFilTchGrpDZ (ActRemSvyQst + 244)
#define ActRcvFilTchGrpCla (ActRemSvyQst + 243) #define ActRcvFilTchGrpCla (ActRemSvyQst + 245)
#define ActExpTchGrp (ActRemSvyQst + 244) #define ActExpTchGrp (ActRemSvyQst + 246)
#define ActConTchGrp (ActRemSvyQst + 245) #define ActConTchGrp (ActRemSvyQst + 247)
#define ActZIPTchGrp (ActRemSvyQst + 246) #define ActZIPTchGrp (ActRemSvyQst + 248)
#define ActReqDatTchGrp (ActRemSvyQst + 247) #define ActReqDatTchGrp (ActRemSvyQst + 249)
#define ActChgDatTchGrp (ActRemSvyQst + 248) #define ActChgDatTchGrp (ActRemSvyQst + 250)
#define ActDowTchGrp (ActRemSvyQst + 249) #define ActDowTchGrp (ActRemSvyQst + 251)
#define ActChgToAdmSha (ActRemSvyQst + 250) #define ActChgToAdmSha (ActRemSvyQst + 252)
#define ActAdmShaCrs (ActRemSvyQst + 251) #define ActAdmShaCrs (ActRemSvyQst + 253)
#define ActReqRemFilShaCrs (ActRemSvyQst + 252) #define ActReqRemFilShaCrs (ActRemSvyQst + 254)
#define ActRemFilShaCrs (ActRemSvyQst + 253) #define ActRemFilShaCrs (ActRemSvyQst + 255)
#define ActRemFolShaCrs (ActRemSvyQst + 254) #define ActRemFolShaCrs (ActRemSvyQst + 256)
#define ActCopShaCrs (ActRemSvyQst + 255) #define ActCopShaCrs (ActRemSvyQst + 257)
#define ActPasShaCrs (ActRemSvyQst + 256) #define ActPasShaCrs (ActRemSvyQst + 258)
#define ActRemTreShaCrs (ActRemSvyQst + 257) #define ActRemTreShaCrs (ActRemSvyQst + 259)
#define ActFrmCreShaCrs (ActRemSvyQst + 258) #define ActFrmCreShaCrs (ActRemSvyQst + 260)
#define ActCreFolShaCrs (ActRemSvyQst + 259) #define ActCreFolShaCrs (ActRemSvyQst + 261)
#define ActCreLnkShaCrs (ActRemSvyQst + 260) #define ActCreLnkShaCrs (ActRemSvyQst + 262)
#define ActRenFolShaCrs (ActRemSvyQst + 261) #define ActRenFolShaCrs (ActRemSvyQst + 263)
#define ActRcvFilShaCrsDZ (ActRemSvyQst + 262) #define ActRcvFilShaCrsDZ (ActRemSvyQst + 264)
#define ActRcvFilShaCrsCla (ActRemSvyQst + 263) #define ActRcvFilShaCrsCla (ActRemSvyQst + 265)
#define ActExpShaCrs (ActRemSvyQst + 264) #define ActExpShaCrs (ActRemSvyQst + 266)
#define ActConShaCrs (ActRemSvyQst + 265) #define ActConShaCrs (ActRemSvyQst + 267)
#define ActZIPShaCrs (ActRemSvyQst + 266) #define ActZIPShaCrs (ActRemSvyQst + 268)
#define ActReqDatShaCrs (ActRemSvyQst + 267) #define ActReqDatShaCrs (ActRemSvyQst + 269)
#define ActChgDatShaCrs (ActRemSvyQst + 268) #define ActChgDatShaCrs (ActRemSvyQst + 270)
#define ActDowShaCrs (ActRemSvyQst + 269) #define ActDowShaCrs (ActRemSvyQst + 271)
#define ActAdmShaGrp (ActRemSvyQst + 270) #define ActAdmShaGrp (ActRemSvyQst + 272)
#define ActReqRemFilShaGrp (ActRemSvyQst + 271) #define ActReqRemFilShaGrp (ActRemSvyQst + 273)
#define ActRemFilShaGrp (ActRemSvyQst + 272) #define ActRemFilShaGrp (ActRemSvyQst + 274)
#define ActRemFolShaGrp (ActRemSvyQst + 273) #define ActRemFolShaGrp (ActRemSvyQst + 275)
#define ActCopShaGrp (ActRemSvyQst + 274) #define ActCopShaGrp (ActRemSvyQst + 276)
#define ActPasShaGrp (ActRemSvyQst + 275) #define ActPasShaGrp (ActRemSvyQst + 277)
#define ActRemTreShaGrp (ActRemSvyQst + 276) #define ActRemTreShaGrp (ActRemSvyQst + 278)
#define ActFrmCreShaGrp (ActRemSvyQst + 277) #define ActFrmCreShaGrp (ActRemSvyQst + 279)
#define ActCreFolShaGrp (ActRemSvyQst + 278) #define ActCreFolShaGrp (ActRemSvyQst + 280)
#define ActCreLnkShaGrp (ActRemSvyQst + 279) #define ActCreLnkShaGrp (ActRemSvyQst + 281)
#define ActRenFolShaGrp (ActRemSvyQst + 280) #define ActRenFolShaGrp (ActRemSvyQst + 282)
#define ActRcvFilShaGrpDZ (ActRemSvyQst + 281) #define ActRcvFilShaGrpDZ (ActRemSvyQst + 283)
#define ActRcvFilShaGrpCla (ActRemSvyQst + 282) #define ActRcvFilShaGrpCla (ActRemSvyQst + 284)
#define ActExpShaGrp (ActRemSvyQst + 283) #define ActExpShaGrp (ActRemSvyQst + 285)
#define ActConShaGrp (ActRemSvyQst + 284) #define ActConShaGrp (ActRemSvyQst + 286)
#define ActZIPShaGrp (ActRemSvyQst + 285) #define ActZIPShaGrp (ActRemSvyQst + 287)
#define ActReqDatShaGrp (ActRemSvyQst + 286) #define ActReqDatShaGrp (ActRemSvyQst + 288)
#define ActChgDatShaGrp (ActRemSvyQst + 287) #define ActChgDatShaGrp (ActRemSvyQst + 289)
#define ActDowShaGrp (ActRemSvyQst + 288) #define ActDowShaGrp (ActRemSvyQst + 290)
#define ActAdmAsgWrkCrs (ActRemSvyQst + 289) #define ActAdmAsgWrkCrs (ActRemSvyQst + 291)
#define ActReqRemFilAsgUsr (ActRemSvyQst + 290) #define ActReqRemFilAsgUsr (ActRemSvyQst + 292)
#define ActRemFilAsgUsr (ActRemSvyQst + 291) #define ActRemFilAsgUsr (ActRemSvyQst + 293)
#define ActRemFolAsgUsr (ActRemSvyQst + 292) #define ActRemFolAsgUsr (ActRemSvyQst + 294)
#define ActCopAsgUsr (ActRemSvyQst + 293) #define ActCopAsgUsr (ActRemSvyQst + 295)
#define ActPasAsgUsr (ActRemSvyQst + 294) #define ActPasAsgUsr (ActRemSvyQst + 296)
#define ActRemTreAsgUsr (ActRemSvyQst + 295) #define ActRemTreAsgUsr (ActRemSvyQst + 297)
#define ActFrmCreAsgUsr (ActRemSvyQst + 296) #define ActFrmCreAsgUsr (ActRemSvyQst + 298)
#define ActCreFolAsgUsr (ActRemSvyQst + 297) #define ActCreFolAsgUsr (ActRemSvyQst + 299)
#define ActCreLnkAsgUsr (ActRemSvyQst + 298) #define ActCreLnkAsgUsr (ActRemSvyQst + 300)
#define ActRenFolAsgUsr (ActRemSvyQst + 299) #define ActRenFolAsgUsr (ActRemSvyQst + 301)
#define ActRcvFilAsgUsrDZ (ActRemSvyQst + 300) #define ActRcvFilAsgUsrDZ (ActRemSvyQst + 302)
#define ActRcvFilAsgUsrCla (ActRemSvyQst + 301) #define ActRcvFilAsgUsrCla (ActRemSvyQst + 303)
#define ActExpAsgUsr (ActRemSvyQst + 302) #define ActExpAsgUsr (ActRemSvyQst + 304)
#define ActConAsgUsr (ActRemSvyQst + 303) #define ActConAsgUsr (ActRemSvyQst + 305)
#define ActZIPAsgUsr (ActRemSvyQst + 304) #define ActZIPAsgUsr (ActRemSvyQst + 306)
#define ActReqDatAsgUsr (ActRemSvyQst + 305) #define ActReqDatAsgUsr (ActRemSvyQst + 307)
#define ActChgDatAsgUsr (ActRemSvyQst + 306) #define ActChgDatAsgUsr (ActRemSvyQst + 308)
#define ActDowAsgUsr (ActRemSvyQst + 307) #define ActDowAsgUsr (ActRemSvyQst + 309)
#define ActReqRemFilWrkUsr (ActRemSvyQst + 308) #define ActReqRemFilWrkUsr (ActRemSvyQst + 310)
#define ActRemFilWrkUsr (ActRemSvyQst + 309) #define ActRemFilWrkUsr (ActRemSvyQst + 311)
#define ActRemFolWrkUsr (ActRemSvyQst + 310) #define ActRemFolWrkUsr (ActRemSvyQst + 312)
#define ActCopWrkUsr (ActRemSvyQst + 311) #define ActCopWrkUsr (ActRemSvyQst + 313)
#define ActPasWrkUsr (ActRemSvyQst + 312) #define ActPasWrkUsr (ActRemSvyQst + 314)
#define ActRemTreWrkUsr (ActRemSvyQst + 313) #define ActRemTreWrkUsr (ActRemSvyQst + 315)
#define ActFrmCreWrkUsr (ActRemSvyQst + 314) #define ActFrmCreWrkUsr (ActRemSvyQst + 316)
#define ActCreFolWrkUsr (ActRemSvyQst + 315) #define ActCreFolWrkUsr (ActRemSvyQst + 317)
#define ActCreLnkWrkUsr (ActRemSvyQst + 316) #define ActCreLnkWrkUsr (ActRemSvyQst + 318)
#define ActRenFolWrkUsr (ActRemSvyQst + 317) #define ActRenFolWrkUsr (ActRemSvyQst + 319)
#define ActRcvFilWrkUsrDZ (ActRemSvyQst + 318) #define ActRcvFilWrkUsrDZ (ActRemSvyQst + 320)
#define ActRcvFilWrkUsrCla (ActRemSvyQst + 319) #define ActRcvFilWrkUsrCla (ActRemSvyQst + 321)
#define ActExpWrkUsr (ActRemSvyQst + 320) #define ActExpWrkUsr (ActRemSvyQst + 322)
#define ActConWrkUsr (ActRemSvyQst + 321) #define ActConWrkUsr (ActRemSvyQst + 323)
#define ActZIPWrkUsr (ActRemSvyQst + 322) #define ActZIPWrkUsr (ActRemSvyQst + 324)
#define ActReqDatWrkUsr (ActRemSvyQst + 323) #define ActReqDatWrkUsr (ActRemSvyQst + 325)
#define ActChgDatWrkUsr (ActRemSvyQst + 324) #define ActChgDatWrkUsr (ActRemSvyQst + 326)
#define ActDowWrkUsr (ActRemSvyQst + 325) #define ActDowWrkUsr (ActRemSvyQst + 327)
#define ActReqRemFilAsgCrs (ActRemSvyQst + 326) #define ActReqRemFilAsgCrs (ActRemSvyQst + 328)
#define ActRemFilAsgCrs (ActRemSvyQst + 327) #define ActRemFilAsgCrs (ActRemSvyQst + 329)
#define ActRemFolAsgCrs (ActRemSvyQst + 328) #define ActRemFolAsgCrs (ActRemSvyQst + 330)
#define ActCopAsgCrs (ActRemSvyQst + 329) #define ActCopAsgCrs (ActRemSvyQst + 331)
#define ActPasAsgCrs (ActRemSvyQst + 330) #define ActPasAsgCrs (ActRemSvyQst + 332)
#define ActRemTreAsgCrs (ActRemSvyQst + 331) #define ActRemTreAsgCrs (ActRemSvyQst + 333)
#define ActFrmCreAsgCrs (ActRemSvyQst + 332) #define ActFrmCreAsgCrs (ActRemSvyQst + 334)
#define ActCreFolAsgCrs (ActRemSvyQst + 333) #define ActCreFolAsgCrs (ActRemSvyQst + 335)
#define ActCreLnkAsgCrs (ActRemSvyQst + 334) #define ActCreLnkAsgCrs (ActRemSvyQst + 336)
#define ActRenFolAsgCrs (ActRemSvyQst + 335) #define ActRenFolAsgCrs (ActRemSvyQst + 337)
#define ActRcvFilAsgCrsDZ (ActRemSvyQst + 336) #define ActRcvFilAsgCrsDZ (ActRemSvyQst + 338)
#define ActRcvFilAsgCrsCla (ActRemSvyQst + 337) #define ActRcvFilAsgCrsCla (ActRemSvyQst + 339)
#define ActExpAsgCrs (ActRemSvyQst + 338) #define ActExpAsgCrs (ActRemSvyQst + 340)
#define ActConAsgCrs (ActRemSvyQst + 339) #define ActConAsgCrs (ActRemSvyQst + 341)
#define ActZIPAsgCrs (ActRemSvyQst + 340) #define ActZIPAsgCrs (ActRemSvyQst + 342)
#define ActReqDatAsgCrs (ActRemSvyQst + 341) #define ActReqDatAsgCrs (ActRemSvyQst + 343)
#define ActChgDatAsgCrs (ActRemSvyQst + 342) #define ActChgDatAsgCrs (ActRemSvyQst + 344)
#define ActDowAsgCrs (ActRemSvyQst + 343) #define ActDowAsgCrs (ActRemSvyQst + 345)
#define ActReqRemFilWrkCrs (ActRemSvyQst + 344) #define ActReqRemFilWrkCrs (ActRemSvyQst + 346)
#define ActRemFilWrkCrs (ActRemSvyQst + 345) #define ActRemFilWrkCrs (ActRemSvyQst + 347)
#define ActRemFolWrkCrs (ActRemSvyQst + 346) #define ActRemFolWrkCrs (ActRemSvyQst + 348)
#define ActCopWrkCrs (ActRemSvyQst + 347) #define ActCopWrkCrs (ActRemSvyQst + 349)
#define ActPasWrkCrs (ActRemSvyQst + 348) #define ActPasWrkCrs (ActRemSvyQst + 350)
#define ActRemTreWrkCrs (ActRemSvyQst + 349) #define ActRemTreWrkCrs (ActRemSvyQst + 351)
#define ActFrmCreWrkCrs (ActRemSvyQst + 350) #define ActFrmCreWrkCrs (ActRemSvyQst + 352)
#define ActCreFolWrkCrs (ActRemSvyQst + 351) #define ActCreFolWrkCrs (ActRemSvyQst + 353)
#define ActCreLnkWrkCrs (ActRemSvyQst + 352) #define ActCreLnkWrkCrs (ActRemSvyQst + 354)
#define ActRenFolWrkCrs (ActRemSvyQst + 353) #define ActRenFolWrkCrs (ActRemSvyQst + 355)
#define ActRcvFilWrkCrsDZ (ActRemSvyQst + 354) #define ActRcvFilWrkCrsDZ (ActRemSvyQst + 356)
#define ActRcvFilWrkCrsCla (ActRemSvyQst + 355) #define ActRcvFilWrkCrsCla (ActRemSvyQst + 357)
#define ActExpWrkCrs (ActRemSvyQst + 356) #define ActExpWrkCrs (ActRemSvyQst + 358)
#define ActConWrkCrs (ActRemSvyQst + 357) #define ActConWrkCrs (ActRemSvyQst + 359)
#define ActZIPWrkCrs (ActRemSvyQst + 358) #define ActZIPWrkCrs (ActRemSvyQst + 360)
#define ActReqDatWrkCrs (ActRemSvyQst + 359) #define ActReqDatWrkCrs (ActRemSvyQst + 361)
#define ActChgDatWrkCrs (ActRemSvyQst + 360) #define ActChgDatWrkCrs (ActRemSvyQst + 362)
#define ActDowWrkCrs (ActRemSvyQst + 361) #define ActDowWrkCrs (ActRemSvyQst + 363)
#define ActChgToSeeMrk (ActRemSvyQst + 362) #define ActChgToSeeMrk (ActRemSvyQst + 364)
#define ActSeeMrkCrs (ActRemSvyQst + 363) #define ActSeeMrkCrs (ActRemSvyQst + 365)
#define ActExpSeeMrkCrs (ActRemSvyQst + 364) #define ActExpSeeMrkCrs (ActRemSvyQst + 366)
#define ActConSeeMrkCrs (ActRemSvyQst + 365) #define ActConSeeMrkCrs (ActRemSvyQst + 367)
#define ActReqDatSeeMrkCrs (ActRemSvyQst + 366) #define ActReqDatSeeMrkCrs (ActRemSvyQst + 368)
#define ActSeeMyMrkCrs (ActRemSvyQst + 367) #define ActSeeMyMrkCrs (ActRemSvyQst + 369)
#define ActSeeMrkGrp (ActRemSvyQst + 368) #define ActSeeMrkGrp (ActRemSvyQst + 370)
#define ActExpSeeMrkGrp (ActRemSvyQst + 369) #define ActExpSeeMrkGrp (ActRemSvyQst + 371)
#define ActConSeeMrkGrp (ActRemSvyQst + 370) #define ActConSeeMrkGrp (ActRemSvyQst + 372)
#define ActReqDatSeeMrkGrp (ActRemSvyQst + 371) #define ActReqDatSeeMrkGrp (ActRemSvyQst + 373)
#define ActSeeMyMrkGrp (ActRemSvyQst + 372) #define ActSeeMyMrkGrp (ActRemSvyQst + 374)
#define ActChgToAdmMrk (ActRemSvyQst + 373) #define ActChgToAdmMrk (ActRemSvyQst + 375)
#define ActAdmMrkCrs (ActRemSvyQst + 374) #define ActAdmMrkCrs (ActRemSvyQst + 376)
#define ActReqRemFilMrkCrs (ActRemSvyQst + 375) #define ActReqRemFilMrkCrs (ActRemSvyQst + 377)
#define ActRemFilMrkCrs (ActRemSvyQst + 376) #define ActRemFilMrkCrs (ActRemSvyQst + 378)
#define ActRemFolMrkCrs (ActRemSvyQst + 377) #define ActRemFolMrkCrs (ActRemSvyQst + 379)
#define ActCopMrkCrs (ActRemSvyQst + 378) #define ActCopMrkCrs (ActRemSvyQst + 380)
#define ActPasMrkCrs (ActRemSvyQst + 379) #define ActPasMrkCrs (ActRemSvyQst + 381)
#define ActRemTreMrkCrs (ActRemSvyQst + 380) #define ActRemTreMrkCrs (ActRemSvyQst + 382)
#define ActFrmCreMrkCrs (ActRemSvyQst + 381) #define ActFrmCreMrkCrs (ActRemSvyQst + 383)
#define ActCreFolMrkCrs (ActRemSvyQst + 382) #define ActCreFolMrkCrs (ActRemSvyQst + 384)
#define ActRenFolMrkCrs (ActRemSvyQst + 383) #define ActRenFolMrkCrs (ActRemSvyQst + 385)
#define ActRcvFilMrkCrsDZ (ActRemSvyQst + 384) #define ActRcvFilMrkCrsDZ (ActRemSvyQst + 386)
#define ActRcvFilMrkCrsCla (ActRemSvyQst + 385) #define ActRcvFilMrkCrsCla (ActRemSvyQst + 387)
#define ActExpAdmMrkCrs (ActRemSvyQst + 386) #define ActExpAdmMrkCrs (ActRemSvyQst + 388)
#define ActConAdmMrkCrs (ActRemSvyQst + 387) #define ActConAdmMrkCrs (ActRemSvyQst + 389)
#define ActZIPAdmMrkCrs (ActRemSvyQst + 388) #define ActZIPAdmMrkCrs (ActRemSvyQst + 390)
#define ActUnhMrkCrs (ActRemSvyQst + 389) #define ActUnhMrkCrs (ActRemSvyQst + 391)
#define ActHidMrkCrs (ActRemSvyQst + 390) #define ActHidMrkCrs (ActRemSvyQst + 392)
#define ActReqDatAdmMrkCrs (ActRemSvyQst + 391) #define ActReqDatAdmMrkCrs (ActRemSvyQst + 393)
#define ActChgDatAdmMrkCrs (ActRemSvyQst + 392) #define ActChgDatAdmMrkCrs (ActRemSvyQst + 394)
#define ActDowAdmMrkCrs (ActRemSvyQst + 393) #define ActDowAdmMrkCrs (ActRemSvyQst + 395)
#define ActChgNumRowHeaCrs (ActRemSvyQst + 394) #define ActChgNumRowHeaCrs (ActRemSvyQst + 396)
#define ActChgNumRowFooCrs (ActRemSvyQst + 395) #define ActChgNumRowFooCrs (ActRemSvyQst + 397)
#define ActAdmMrkGrp (ActRemSvyQst + 396) #define ActAdmMrkGrp (ActRemSvyQst + 398)
#define ActReqRemFilMrkGrp (ActRemSvyQst + 397) #define ActReqRemFilMrkGrp (ActRemSvyQst + 399)
#define ActRemFilMrkGrp (ActRemSvyQst + 398) #define ActRemFilMrkGrp (ActRemSvyQst + 400)
#define ActRemFolMrkGrp (ActRemSvyQst + 399) #define ActRemFolMrkGrp (ActRemSvyQst + 401)
#define ActCopMrkGrp (ActRemSvyQst + 400) #define ActCopMrkGrp (ActRemSvyQst + 402)
#define ActPasMrkGrp (ActRemSvyQst + 401) #define ActPasMrkGrp (ActRemSvyQst + 403)
#define ActRemTreMrkGrp (ActRemSvyQst + 402) #define ActRemTreMrkGrp (ActRemSvyQst + 404)
#define ActFrmCreMrkGrp (ActRemSvyQst + 403) #define ActFrmCreMrkGrp (ActRemSvyQst + 405)
#define ActCreFolMrkGrp (ActRemSvyQst + 404) #define ActCreFolMrkGrp (ActRemSvyQst + 406)
#define ActRenFolMrkGrp (ActRemSvyQst + 405) #define ActRenFolMrkGrp (ActRemSvyQst + 407)
#define ActRcvFilMrkGrpDZ (ActRemSvyQst + 406) #define ActRcvFilMrkGrpDZ (ActRemSvyQst + 408)
#define ActRcvFilMrkGrpCla (ActRemSvyQst + 407) #define ActRcvFilMrkGrpCla (ActRemSvyQst + 409)
#define ActExpAdmMrkGrp (ActRemSvyQst + 408) #define ActExpAdmMrkGrp (ActRemSvyQst + 410)
#define ActConAdmMrkGrp (ActRemSvyQst + 409) #define ActConAdmMrkGrp (ActRemSvyQst + 411)
#define ActZIPAdmMrkGrp (ActRemSvyQst + 410) #define ActZIPAdmMrkGrp (ActRemSvyQst + 412)
#define ActUnhMrkGrp (ActRemSvyQst + 411) #define ActUnhMrkGrp (ActRemSvyQst + 413)
#define ActHidMrkGrp (ActRemSvyQst + 412) #define ActHidMrkGrp (ActRemSvyQst + 414)
#define ActReqDatAdmMrkGrp (ActRemSvyQst + 413) #define ActReqDatAdmMrkGrp (ActRemSvyQst + 415)
#define ActChgDatAdmMrkGrp (ActRemSvyQst + 414) #define ActChgDatAdmMrkGrp (ActRemSvyQst + 416)
#define ActDowAdmMrkGrp (ActRemSvyQst + 415) #define ActDowAdmMrkGrp (ActRemSvyQst + 417)
#define ActChgNumRowHeaGrp (ActRemSvyQst + 416) #define ActChgNumRowHeaGrp (ActRemSvyQst + 418)
#define ActChgNumRowFooGrp (ActRemSvyQst + 417) #define ActChgNumRowFooGrp (ActRemSvyQst + 419)
#define ActReqRemFilBrf (ActRemSvyQst + 418) #define ActReqRemFilBrf (ActRemSvyQst + 420)
#define ActRemFilBrf (ActRemSvyQst + 419) #define ActRemFilBrf (ActRemSvyQst + 421)
#define ActRemFolBrf (ActRemSvyQst + 420) #define ActRemFolBrf (ActRemSvyQst + 422)
#define ActCopBrf (ActRemSvyQst + 421) #define ActCopBrf (ActRemSvyQst + 423)
#define ActPasBrf (ActRemSvyQst + 422) #define ActPasBrf (ActRemSvyQst + 424)
#define ActRemTreBrf (ActRemSvyQst + 423) #define ActRemTreBrf (ActRemSvyQst + 425)
#define ActFrmCreBrf (ActRemSvyQst + 424) #define ActFrmCreBrf (ActRemSvyQst + 426)
#define ActCreFolBrf (ActRemSvyQst + 425) #define ActCreFolBrf (ActRemSvyQst + 427)
#define ActCreLnkBrf (ActRemSvyQst + 426) #define ActCreLnkBrf (ActRemSvyQst + 428)
#define ActRenFolBrf (ActRemSvyQst + 427) #define ActRenFolBrf (ActRemSvyQst + 429)
#define ActRcvFilBrfDZ (ActRemSvyQst + 428) #define ActRcvFilBrfDZ (ActRemSvyQst + 430)
#define ActRcvFilBrfCla (ActRemSvyQst + 429) #define ActRcvFilBrfCla (ActRemSvyQst + 431)
#define ActExpBrf (ActRemSvyQst + 430) #define ActExpBrf (ActRemSvyQst + 432)
#define ActConBrf (ActRemSvyQst + 431) #define ActConBrf (ActRemSvyQst + 433)
#define ActZIPBrf (ActRemSvyQst + 432) #define ActZIPBrf (ActRemSvyQst + 434)
#define ActReqDatBrf (ActRemSvyQst + 433) #define ActReqDatBrf (ActRemSvyQst + 435)
#define ActChgDatBrf (ActRemSvyQst + 434) #define ActChgDatBrf (ActRemSvyQst + 436)
#define ActDowBrf (ActRemSvyQst + 435) #define ActDowBrf (ActRemSvyQst + 437)
#define ActReqRemOldBrf (ActRemSvyQst + 436) #define ActReqRemOldBrf (ActRemSvyQst + 438)
#define ActRemOldBrf (ActRemSvyQst + 437) #define ActRemOldBrf (ActRemSvyQst + 439)
/*****************************************************************************/ /*****************************************************************************/
/******************************* Users tab ***********************************/ /******************************* 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, [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] = static const Act_Action_t Brw_ActDowFile[Brw_NUM_TYPES_FILE_BROWSER] =
{ {
[Brw_UNKNOWN ] = ActUnk, [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_RcvFileInFileBrw (Brw_UploadType_t UploadType);
static bool Brw_CheckIfUploadIsAllowed (const char *FileType); 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_CheckIfICanEditFileMetadata (long IAmTheOwner);
static bool Brw_CheckIfIAmOwnerOfFile (long PublisherUsrCod); static bool Brw_CheckIfIAmOwnerOfFile (long PublisherUsrCod);
static void Brw_WriteBigLinkToDownloadFile (const char *URL, static void Brw_WriteBigLinkToDownloadFile (const char *URL,
@ -1523,6 +1559,7 @@ void Brw_GetParAndInitFileBrowser (void)
case ActConSeeDocCrs: case ActConSeeDocCrs:
case ActZIPSeeDocCrs: case ActZIPSeeDocCrs:
case ActReqDatSeeDocCrs: case ActReqDatSeeDocCrs:
case ActReqLnkSeeDocCrs:
case ActDowSeeDocCrs: case ActDowSeeDocCrs:
Gbl.FileBrowser.Type = Brw_SHOW_DOC_CRS; Gbl.FileBrowser.Type = Brw_SHOW_DOC_CRS;
break; break;
@ -1559,6 +1596,7 @@ void Brw_GetParAndInitFileBrowser (void)
case ActHidDocCrs: case ActHidDocCrs:
case ActReqDatAdmDocCrs: case ActReqDatAdmDocCrs:
case ActChgDatAdmDocCrs: case ActChgDatAdmDocCrs:
case ActReqLnkAdmDocCrs:
case ActDowAdmDocCrs: case ActDowAdmDocCrs:
Gbl.FileBrowser.Type = Brw_ADMI_DOC_CRS; Gbl.FileBrowser.Type = Brw_ADMI_DOC_CRS;
break; break;
@ -7842,6 +7880,7 @@ void Brw_ShowFileMetadata (void)
bool ICanEdit; bool ICanEdit;
bool ICanChangePublic = false; bool ICanChangePublic = false;
bool FileHasPublisher; bool FileHasPublisher;
bool PutIconToGetLink;
Brw_License_t License; Brw_License_t License;
unsigned LicenseUnsigned; unsigned LicenseUnsigned;
@ -7928,6 +7967,23 @@ void Brw_ShowFileMetadata (void)
FileMetadata.FilFolLnk.Name, FileMetadata.FilFolLnk.Name,
FileNameToShow); 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 *****/ /***** Begin form to update the metadata of a file *****/
if (ICanEdit) // I can edit file properties if (ICanEdit) // I can edit file properties
{ {
@ -7950,16 +8006,14 @@ void Brw_ShowFileMetadata (void)
} }
Frm_BeginForm (Brw_ActRecDatFile[Gbl.FileBrowser.Type]); Frm_BeginForm (Brw_ActRecDatFile[Gbl.FileBrowser.Type]);
Brw_PutParamsFileBrowser (NULL, // Not used Brw_PutParamsFileBrowser (NULL, // Not used
NULL, // Not used NULL, // Not used
Brw_IS_UNKNOWN, // Not used Brw_IS_UNKNOWN, // Not used
FileMetadata.FilCod); FileMetadata.FilCod);
} }
/***** Begin box and table *****/ /***** Begin table *****/
Box_BoxTableShadowBegin (NULL,NULL, HTM_TABLE_BeginWidePadding (2);
NULL,NULL,
NULL,2);
/***** Link to download the file *****/ /***** Link to download the file *****/
HTM_TR_Begin (NULL); HTM_TR_Begin (NULL);
@ -7976,7 +8030,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Filename); Frm_LabelColumn ("RT",NULL,Txt_Filename);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"", HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
Brw_WriteSmallLinkToDownloadFile (URL,&FileMetadata,FileNameToShow); Brw_WriteSmallLinkToDownloadFile (URL,&FileMetadata,FileNameToShow);
HTM_TD_End (); HTM_TD_End ();
@ -7988,13 +8042,13 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Uploaded_by); Frm_LabelColumn ("RT",NULL,Txt_Uploaded_by);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"", HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
if (FileHasPublisher) if (FileHasPublisher)
{ {
/* Show photo */ /* Show photo */
Pho_ShowUsrPhotoIfAllowed (&PublisherUsrDat, Pho_ShowUsrPhotoIfAllowed (&PublisherUsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
false); false);
/* Write name */ /* Write name */
HTM_NBSP (); HTM_NBSP ();
@ -8018,7 +8072,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_File_size); Frm_LabelColumn ("RT",NULL,Txt_File_size);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"", HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
HTM_Txt (FileSizeStr); HTM_Txt (FileSizeStr);
HTM_TD_End (); HTM_TD_End ();
@ -8030,7 +8084,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Date_of_creation); Frm_LabelColumn ("RT",NULL,Txt_Date_of_creation);
HTM_TD_Begin ("id=\"filedate\" class=\"LB DAT_STRONG_%s\"", HTM_TD_Begin ("id=\"filedate\" class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
Dat_WriteLocalDateHMSFromUTC ("filedate",FileMetadata.Time, Dat_WriteLocalDateHMSFromUTC ("filedate",FileMetadata.Time,
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA, Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
true,true,true,0x7); true,true,true,0x7);
@ -8043,12 +8097,12 @@ void Brw_ShowFileMetadata (void)
/* Label */ /* Label */
Frm_LabelColumn ("RT",ICanChangePublic ? "PublicFile" : Frm_LabelColumn ("RT",ICanChangePublic ? "PublicFile" :
NULL, NULL,
Txt_Availability); Txt_Availability);
/* Data */ /* Data */
HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"", HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
if (ICanChangePublic) // I can change file to public if (ICanChangePublic) // I can change file to public
{ {
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE, HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
@ -8073,12 +8127,12 @@ void Brw_ShowFileMetadata (void)
/* Label */ /* Label */
Frm_LabelColumn ("RT",ICanEdit ? "License" : Frm_LabelColumn ("RT",ICanEdit ? "License" :
NULL, NULL,
Txt_License); Txt_License);
/* Data */ /* Data */
HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"", HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
if (ICanEdit) // I can edit file properties if (ICanEdit) // I can edit file properties
{ {
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE, HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
@ -8105,10 +8159,10 @@ void Brw_ShowFileMetadata (void)
{ {
HTM_TR_Begin (NULL); 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\"", HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
HTM_Unsigned (FileMetadata.NumMyViews); HTM_Unsigned (FileMetadata.NumMyViews);
HTM_TD_End (); HTM_TD_End ();
@ -8121,7 +8175,7 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Identified_views); Frm_LabelColumn ("RT",NULL,Txt_Identified_views);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"", HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
HTM_TxtF ("%u ",FileMetadata.NumViewsFromLoggedUsrs); HTM_TxtF ("%u ",FileMetadata.NumViewsFromLoggedUsrs);
HTM_TxtF ("(%u %s)", HTM_TxtF ("(%u %s)",
FileMetadata.NumLoggedUsrs, FileMetadata.NumLoggedUsrs,
@ -8137,24 +8191,24 @@ void Brw_ShowFileMetadata (void)
Frm_LabelColumn ("RT",NULL,Txt_Public_views); Frm_LabelColumn ("RT",NULL,Txt_Public_views);
HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"", HTM_TD_Begin ("class=\"LB DAT_STRONG_%s\"",
The_GetSuffix ()); The_GetSuffix ());
HTM_Unsigned (FileMetadata.NumPublicViews); HTM_Unsigned (FileMetadata.NumPublicViews);
HTM_TD_End (); HTM_TD_End ();
HTM_TR_End (); HTM_TR_End ();
/***** End box *****/ /***** End table *****/
HTM_TABLE_End ();
/***** End form *****/
if (ICanEdit) // I can edit file properties if (ICanEdit) // I can edit file properties
{ {
/* End table, send button and end box */ Btn_PutButton (Btn_CONFIRM_BUTTON,Txt_Save_file_properties);
Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_file_properties);
/* End form */
Frm_EndForm (); Frm_EndForm ();
} }
else
/* End table and box */ /***** End box *****/
Box_BoxTableEnd (); Box_BoxEnd ();
/***** Mark possible notifications as seen *****/ /***** Mark possible notifications as seen *****/
switch (Gbl.FileBrowser.Type) switch (Gbl.FileBrowser.Type)
@ -8231,6 +8285,57 @@ void Brw_ShowFileMetadata (void)
Brw_ShowAgainFileBrowserOrWorks (); 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 *********************/ /******************* Download a file from a file browser *********************/
/*****************************************************************************/ /*****************************************************************************/
@ -8717,7 +8822,7 @@ void Brw_ChgFileMetadata (void)
/***** Write sucess message *****/ /***** Write sucess message *****/
Ale_ShowAlert (Ale_SUCCESS,Txt_The_properties_of_file_X_have_been_saved, Ale_ShowAlert (Ale_SUCCESS,Txt_The_properties_of_file_X_have_been_saved,
Gbl.FileBrowser.FilFolLnk.Name); FileMetadata.FilFolLnk.Name);
} }
else else
/***** Write error message and exit *****/ /***** Write error message and exit *****/

View File

@ -225,6 +225,9 @@ void Brw_SetDocumentAsVisible (void);
void Brw_SetDocumentAsHidden (void); void Brw_SetDocumentAsHidden (void);
bool Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_t FileType,const char *Path); bool Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_t FileType,const char *Path);
void Brw_ShowFileMetadata (void); void Brw_ShowFileMetadata (void);
void Brw_GetLinkToFile (void);
void Brw_DownloadFile (void); void Brw_DownloadFile (void);
void Brw_GetLinkToDownloadFile (const char *PathInTree,const char *FileName,char *URL); void Brw_GetLinkToDownloadFile (const char *PathInTree,const char *FileName,char *URL);
void Brw_ChgFileMetadata (void); 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. 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 CSS_FILE "swad21.107.1.css"
#define JS_FILE "swad21.100.js" #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: 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: If you want to use MyISAM:
ALTER TABLE prg_clipboards ENGINE=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 (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_read ("
"UsrCod INT NOT NULL," "UsrCod INT NOT NULL,"
"CrsCod 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))"); "UNIQUE INDEX(UsrCod,CrsCod,InfoType))");
/***** Table crs_info_src *****/ /***** Table crs_info_src *****/
@ -745,7 +753,15 @@ mysql> DESCRIBE crs_info_src;
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_src (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_src ("
"CrsCod INT NOT NULL DEFAULT -1," "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," "InfoSrc ENUM('none','editor','plain_text','rich_text','page','URL') NOT NULL,"
"MustBeRead ENUM('N','Y') NOT NULL DEFAULT 'N'," "MustBeRead ENUM('N','Y') NOT NULL DEFAULT 'N',"
"UNIQUE INDEX(CrsCod,InfoType))"); "UNIQUE INDEX(CrsCod,InfoType))");
@ -765,7 +781,15 @@ mysql> DESCRIBE crs_info_txt;
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_txt (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_txt ("
"CrsCod INT NOT NULL DEFAULT -1," "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," "InfoTxtHTML LONGTEXT NOT NULL,"
"InfoTxtMD LONGTEXT NOT NULL," "InfoTxtMD LONGTEXT NOT NULL,"
"UNIQUE INDEX(CrsCod,InfoType))"); "UNIQUE INDEX(CrsCod,InfoType))");
@ -2094,7 +2118,15 @@ mysql> DESCRIBE med_media;
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS med_media (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS med_media ("
"MedCod INT NOT NULL AUTO_INCREMENT," "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 "Name VARCHAR(43) NOT NULL DEFAULT ''," // Med_BYTES_NAME
"URL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW "URL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW
"Title VARCHAR(2047) NOT NULL DEFAULT ''," // Med_MAX_BYTES_TITLE "Title VARCHAR(2047) NOT NULL DEFAULT ''," // Med_MAX_BYTES_TITLE
@ -2421,26 +2453,36 @@ mysql> DESCRIBE plg_plugins;
/***** Table prg_clipboards *****/ /***** Table prg_clipboards *****/
/* /*
mysql> DESCRIBE prg_clipboards; mysql> DESCRIBE prg_clipboards;
+-------------+------------+------+-----+-------------------+-----------------------------+ +----------+--------------------------------------------------------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra | | Field | Type | Null | Key | Default | Extra |
+-------------+------------+------+-----+-------------------+-----------------------------+ +----------+--------------------------------------------------------------------+------+-----+---------+-------+
| UsrCod | int(11) | NO | PRI | NULL | | | UsrCod | int | NO | MUL | NULL | |
| FileBrowser | tinyint(4) | NO | MUL | NULL | | | CrsCod | int | NO | MUL | NULL | |
| Cod | int(11) | NO | | -1 | | | Type | enum('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') | NO | | none | |
| WorksUsrCod | int(11) | NO | MUL | NULL | | | Cod | int | NO | | -1 | |
| FileType | tinyint(4) | NO | | 0 | | | CopyTime | timestamp | YES | MUL | NULL | |
| Path | text | NO | | NULL | | +----------+--------------------------------------------------------------------+------+-----+---------+-------+
| CopyTime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 5 rows in set (0,00 sec)
+-------------+------------+------+-----+-------------------+-----------------------------+
7 rows in set (0.00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_clipboards (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_clipboards ("
"UsrCod INT NOT NULL," "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," "Cod INT NOT NULL DEFAULT -1,"
"CopyTime TIMESTAMP," "CopyTime TIMESTAMP,"
"INDEX(UsrCod)," "INDEX(UsrCod,CrsCod,CopyTime),"
"INDEX(RscType,Cod)))"); "INDEX(CrsCod,Type,Cod),"
"INDEX(CopyTime))");
/***** Table prg_items *****/ /***** Table prg_items *****/
/* /*
@ -2478,22 +2520,34 @@ mysql> DESCRIBE prg_items;
/***** Table prg_resources *****/ /***** Table prg_resources *****/
/* /*
mysql> DESCRIBE prg_resources; mysql> DESCRIBE prg_resources;
+--------+---------------+------+-----+---------+----------------+ +--------+--------------------------------------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra | | Field | Type | Null | Key | Default | Extra |
+--------+---------------+------+-----+---------+----------------+ +--------+--------------------------------------------------------------------+------+-----+---------+----------------+
| RscCod | int | NO | PRI | NULL | auto_increment | | RscCod | int | NO | PRI | NULL | auto_increment |
| ItmCod | int | NO | MUL | -1 | | | ItmCod | int | NO | MUL | -1 | |
| RscInd | int | NO | | 0 | | | RscInd | int | NO | | 0 | |
| Hidden | enum('N','Y') | NO | | N | | | Hidden | enum('N','Y') | NO | | N | |
| Title | varchar(2047) | NO | | NULL | | | Type | enum('none','asg','cfe','exa','gam','svy','doc','mrk','att','for') | NO | | none | |
+--------+---------------+------+-----+---------+----------------+ | Title | varchar(2047) | NO | | NULL | |
5 rows in set (0,00 sec) +--------+--------------------------------------------------------------------+------+-----+---------+----------------+
6 rows in set (0,00 sec)
*/ */
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_resources (" DB_CreateTable ("CREATE TABLE IF NOT EXISTS prg_resources ("
"RscCod INT NOT NULL AUTO_INCREMENT," "RscCod INT NOT NULL AUTO_INCREMENT,"
"ItmCod INT NOT NULL DEFAULT -1," "ItmCod INT NOT NULL DEFAULT -1,"
"RscInd INT NOT NULL DEFAULT 0," "RscInd INT NOT NULL DEFAULT 0,"
"Hidden ENUM('N','Y') NOT NULL DEFAULT 'N'," "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 "Title VARCHAR(2047) NOT NULL," // PrgRsc_MAX_BYTES_PROGRAM_RESOURCE_TITLE
"UNIQUE INDEX(RscCod)," "UNIQUE INDEX(RscCod),"
"UNIQUE INDEX(ItmCod,RscInd))"); "UNIQUE INDEX(ItmCod,RscInd))");

View File

@ -307,6 +307,14 @@ void Ico_PutContextualIconToPrint (Act_Action_t NextAction,
"print.svg",Ico_BLACK); "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 Ico_PutContextualIconToCopy (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args) 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); bool Hidden);
void Ico_PutContextualIconToPrint (Act_Action_t NextAction, void Ico_PutContextualIconToPrint (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args); 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 Ico_PutContextualIconToCopy (Act_Action_t NextAction,
void (*FuncParams) (void *Args),void *Args); void (*FuncParams) (void *Args),void *Args);
void Ico_PutContextualIconToPaste (Act_Action_t NextAction, void Ico_PutContextualIconToPaste (Act_Action_t NextAction,

View File

@ -49,6 +49,51 @@ typedef enum
PrgRsc_MOVE_DOWN, PrgRsc_MOVE_DOWN,
} PrgRsc_MoveUpDown_t; } 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 *****************************/ /***************************** Private variables *****************************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -19798,6 +19798,29 @@ const char *Txt_Link_to_call_for_exam =
"Link to call for exam"; // Çeviri lazim! "Link to call for exam"; // Çeviri lazim!
#endif #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 = const char *Txt_List_of_detailed_clicks =
#if L==1 // ca #if L==1 // ca
"Llistat de clics detallats"; "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 "See file metadata in documents zone of course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"See file metadata in documents zone of course" // Çeviri lazim! "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 #endif
, ,
[ActDowSeeDocCrs] = [ActDowSeeDocCrs] =
@ -18230,6 +18253,29 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"Change file metadata in documents zone of course" // Precisa de tradução "Change file metadata in documents zone of course" // Precisa de tradução
#elif L==10 // tr #elif L==10 // tr
"Change file metadata in documents zone of course" // Çeviri lazim! "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 #endif
, ,
[ActDowAdmDocCrs] = [ActDowAdmDocCrs] =

View File

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