From 3da5bfb06cefeb3a898e85a2ae83ed347a5c3995 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sat, 2 Jan 2016 17:07:58 +0100 Subject: [PATCH] Version 15.92 --- swad_action.c | 126 ++++++++++++++++----------------- swad_action.h | 6 +- swad_changelog.h | 6 +- swad_file_browser.c | 97 +++++++++++++++++++++---- swad_file_browser.h | 6 +- swad_mark.c | 6 +- swad_menu.c | 6 +- swad_notification.c | 59 +++++++++++++--- swad_social.c | 169 ++++++++++++++++++++++++++++++-------------- swad_text.c | 12 ++-- swad_web_service.c | 6 ++ 11 files changed, 344 insertions(+), 155 deletions(-) diff --git a/swad_action.c b/swad_action.c index 0d31e41fc..d41f56013 100644 --- a/swad_action.c +++ b/swad_action.c @@ -171,7 +171,7 @@ Institution: 78. ActSeePlc List places 79. ActSeeHld List holidays 80. ActSeeAdmDocIns Documents zone of the institution (see or admin) - 81. ActAdmComIns Admin the shared files zone of the institution + 81. ActAdmShaIns Admin the shared files zone of the institution 82. ActInsSch Search for courses, teachers, documents... @@ -271,7 +271,7 @@ Centre: 165. ActSeeCtrInf Show information on the current centre 166. ActSeeDeg List degrees of a type 167. ActSeeAdmDocCtr Documents zone of the centre (see or admin) - 168. ActAdmComCtr Admin the shared files zone of the centre + 168. ActAdmShaCtr Admin the shared files zone of the centre 169. ActCtrSch Search for courses, teachers, documents... @@ -353,7 +353,7 @@ Degree: 237. ActSeeDegInf Show information on the current degree 238. ActSeeCrs List courses of a degree 239. ActSeeAdmDocDeg Documents zone of the degree (see or admin) - 240. ActAdmComDeg Admin the shared files zone of the degree + 240. ActAdmShaDeg Admin the shared files zone of the degree 241. ActDegSch Search for courses, teachers, documents... @@ -1435,7 +1435,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActSeePlc */{ 703, 4,TabIns,ActSeePlc ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Plc_SeePlaces ,"earth64x64.gif" }, /* ActSeeHld */{ 707, 5,TabIns,ActSeeHld ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Hld_SeeHolidays ,"date64x64.gif" }, /* ActSeeAdmDocIns */{1249, 6,TabIns,ActSeeAdmDocIns ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folder64x64.gif" }, - /* ActAdmComIns */{1382, 7,TabIns,ActAdmComIns ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folderusers64x64.gif" }, + /* ActAdmShaIns */{1382, 7,TabIns,ActAdmShaIns ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folderusers64x64.gif" }, // Actions not in menu: /* ActInsSch */{1182,-1,TabIns,ActInsReqSch ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Sch_GetParamsSearch ,Sch_InsSearch ,NULL}, @@ -1512,24 +1512,24 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActChgDatAdmDocIns*/{1335,-1,TabIns,ActSeeAdmDocIns ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, /* ActDowAdmDocIns */{1336,-1,TabIns,ActSeeAdmDocIns ,0x180,0x180,0x180,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, - /* ActReqRemFilShaIns*/{1383,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemFileFromTree ,NULL}, - /* ActRemFilShaIns */{1384,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFileFromTree ,NULL}, - /* ActRemFolShaIns */{1385,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFolderFromTree ,NULL}, - /* ActCopShaIns */{1386,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_CopyFromFileBrowser ,NULL}, - /* ActPasShaIns */{1387,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_PasteIntoFileBrowser ,NULL}, - /* ActRemTreShaIns */{1388,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemSubtreeInFileBrowser ,NULL}, - /* ActFrmCreShaIns */{1389,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFormFileBrowser ,NULL}, - /* ActCreFolShaIns */{1390,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecFolderFileBrowser ,NULL}, - /* ActCreLnkShaIns */{1391,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecLinkFileBrowser ,NULL}, - /* ActRenFolShaIns */{1392,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RenFolderFileBrowser ,NULL}, - /* ActRcvFilShaInsDZ */{1393,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_UPLOAD_FILE,Brw_RcvFileInFileBrwDropzone,NULL ,NULL}, - /* ActRcvFilShaInsCla*/{1394,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Brw_RcvFileInFileBrwClassic ,NULL}, - /* ActExpShaIns */{1395,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ExpandFileTree ,NULL}, - /* ActConShaIns */{1396,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ContractFileTree ,NULL}, - /* ActZIPShaIns */{1397,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ZIP_CompressFileTree ,NULL}, - /* ActReqDatShaIns */{1398,-1,TabIns,ActAdmComIns ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL}, - /* ActChgDatShaIns */{1399,-1,TabIns,ActAdmComIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, - /* ActDowShaIns */{1400,-1,TabIns,ActAdmComIns ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, + /* ActReqRemFilShaIns*/{1383,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemFileFromTree ,NULL}, + /* ActRemFilShaIns */{1384,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFileFromTree ,NULL}, + /* ActRemFolShaIns */{1385,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFolderFromTree ,NULL}, + /* ActCopShaIns */{1386,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_CopyFromFileBrowser ,NULL}, + /* ActPasShaIns */{1387,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_PasteIntoFileBrowser ,NULL}, + /* ActRemTreShaIns */{1388,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemSubtreeInFileBrowser ,NULL}, + /* ActFrmCreShaIns */{1389,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFormFileBrowser ,NULL}, + /* ActCreFolShaIns */{1390,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecFolderFileBrowser ,NULL}, + /* ActCreLnkShaIns */{1391,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecLinkFileBrowser ,NULL}, + /* ActRenFolShaIns */{1392,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RenFolderFileBrowser ,NULL}, + /* ActRcvFilShaInsDZ */{1393,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_UPLOAD_FILE,Brw_RcvFileInFileBrwDropzone,NULL ,NULL}, + /* ActRcvFilShaInsCla*/{1394,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Brw_RcvFileInFileBrwClassic ,NULL}, + /* ActExpShaIns */{1395,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ExpandFileTree ,NULL}, + /* ActConShaIns */{1396,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ContractFileTree ,NULL}, + /* ActZIPShaIns */{1397,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ZIP_CompressFileTree ,NULL}, + /* ActReqDatShaIns */{1398,-1,TabIns,ActAdmShaIns ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL}, + /* ActChgDatShaIns */{1399,-1,TabIns,ActAdmShaIns ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, + /* ActDowShaIns */{1400,-1,TabIns,ActAdmShaIns ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, // TabCtr ****************************************************************** // Actions in menu: @@ -1538,7 +1538,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActSeeCtrInf */{1151, 1,TabCtr,ActSeeCtrInf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Ctr_ShowConfiguration ,"ctr64x64.gif" }, /* ActSeeDeg */{1011, 2,TabCtr,ActSeeDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ShowDegsOfCurrentCtr ,"deg64x64.gif" }, /* ActSeeAdmDocCtr */{1248, 3,TabCtr,ActSeeAdmDocCtr ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folder64x64.gif" }, - /* ActAdmComCtr */{1363, 4,TabCtr,ActAdmComCtr ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folderusers64x64.gif" }, + /* ActAdmShaCtr */{1363, 4,TabCtr,ActAdmShaCtr ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folderusers64x64.gif" }, // Actions not in menu: /* ActCtrSch */{1183,-1,TabCtr,ActCtrReqSch ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Sch_GetParamsSearch ,Sch_CtrSearch ,NULL}, @@ -1597,24 +1597,24 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActChgDatAdmDocCtr*/{1306,-1,TabCtr,ActSeeAdmDocCtr ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, /* ActDowAdmDocCtr */{1307,-1,TabCtr,ActSeeAdmDocCtr ,0x1C0,0x1C0,0x1C0,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, - /* ActReqRemFilShaCtr*/{1364,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemFileFromTree ,NULL}, - /* ActRemFilShaCtr */{1365,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFileFromTree ,NULL}, - /* ActRemFolShaCtr */{1366,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFolderFromTree ,NULL}, - /* ActCopShaCtr */{1367,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_CopyFromFileBrowser ,NULL}, - /* ActPasShaCtr */{1368,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_PasteIntoFileBrowser ,NULL}, - /* ActRemTreShaCtr */{1369,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemSubtreeInFileBrowser ,NULL}, - /* ActFrmCreShaCtr */{1370,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFormFileBrowser ,NULL}, - /* ActCreFolShaCtr */{1371,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecFolderFileBrowser ,NULL}, - /* ActCreLnkShaCtr */{1372,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecLinkFileBrowser ,NULL}, - /* ActRenFolShaCtr */{1373,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RenFolderFileBrowser ,NULL}, - /* ActRcvFilShaCtrDZ */{1374,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_UPLOAD_FILE,Brw_RcvFileInFileBrwDropzone,NULL ,NULL}, - /* ActRcvFilShaCtrCla*/{1375,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Brw_RcvFileInFileBrwClassic ,NULL}, - /* ActExpShaCtr */{1376,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ExpandFileTree ,NULL}, - /* ActConShaCtr */{1377,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ContractFileTree ,NULL}, - /* ActZIPShaCtr */{1378,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ZIP_CompressFileTree ,NULL}, - /* ActReqDatShaCtr */{1379,-1,TabCtr,ActAdmComCtr ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL}, - /* ActChgDatShaCtr */{1380,-1,TabCtr,ActAdmComCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, - /* ActDowShaCtr */{1381,-1,TabCtr,ActAdmComCtr ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, + /* ActReqRemFilShaCtr*/{1364,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemFileFromTree ,NULL}, + /* ActRemFilShaCtr */{1365,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFileFromTree ,NULL}, + /* ActRemFolShaCtr */{1366,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFolderFromTree ,NULL}, + /* ActCopShaCtr */{1367,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_CopyFromFileBrowser ,NULL}, + /* ActPasShaCtr */{1368,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_PasteIntoFileBrowser ,NULL}, + /* ActRemTreShaCtr */{1369,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemSubtreeInFileBrowser ,NULL}, + /* ActFrmCreShaCtr */{1370,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFormFileBrowser ,NULL}, + /* ActCreFolShaCtr */{1371,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecFolderFileBrowser ,NULL}, + /* ActCreLnkShaCtr */{1372,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecLinkFileBrowser ,NULL}, + /* ActRenFolShaCtr */{1373,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RenFolderFileBrowser ,NULL}, + /* ActRcvFilShaCtrDZ */{1374,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_UPLOAD_FILE,Brw_RcvFileInFileBrwDropzone,NULL ,NULL}, + /* ActRcvFilShaCtrCla*/{1375,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Brw_RcvFileInFileBrwClassic ,NULL}, + /* ActExpShaCtr */{1376,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ExpandFileTree ,NULL}, + /* ActConShaCtr */{1377,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ContractFileTree ,NULL}, + /* ActZIPShaCtr */{1378,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ZIP_CompressFileTree ,NULL}, + /* ActReqDatShaCtr */{1379,-1,TabCtr,ActAdmShaCtr ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL}, + /* ActChgDatShaCtr */{1380,-1,TabCtr,ActAdmShaCtr ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, + /* ActDowShaCtr */{1381,-1,TabCtr,ActAdmShaCtr ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, // TabDeg ****************************************************************** // Actions in menu: @@ -1623,7 +1623,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActSeeDegInf */{1149, 1,TabDeg,ActSeeDegInf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Deg_ShowConfiguration ,"deg64x64.gif" }, /* ActSeeCrs */{1009, 2,TabDeg,ActSeeCrs ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Crs_ShowCrssOfCurrentDeg ,"coursesdegree64x64.gif"}, /* ActSeeAdmDocDeg */{1247, 3,TabDeg,ActSeeAdmDocDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folder64x64.gif" }, - /* ActAdmComDeg */{1344, 4,TabDeg,ActAdmComDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folderusers64x64.gif" }, + /* ActAdmShaDeg */{1344, 4,TabDeg,ActAdmShaDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,"folderusers64x64.gif" }, // Actions not in menu: /* ActDegSch */{1184,-1,TabDeg,ActDegReqSch ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Sch_GetParamsSearch ,Sch_DegSearch ,NULL}, @@ -1677,24 +1677,24 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActChgDatAdmDocDeg*/{1277,-1,TabDeg,ActSeeAdmDocDeg ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, /* ActDowAdmDocDeg */{1278,-1,TabDeg,ActSeeAdmDocDeg ,0x1E0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, - /* ActReqRemFilShaDeg*/{1345,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemFileFromTree ,NULL}, - /* ActRemFilShaDeg */{1346,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFileFromTree ,NULL}, - /* ActRemFolShaDeg */{1347,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFolderFromTree ,NULL}, - /* ActCopShaDeg */{1348,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_CopyFromFileBrowser ,NULL}, - /* ActPasShaDeg */{1349,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_PasteIntoFileBrowser ,NULL}, - /* ActRemTreShaDeg */{1350,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemSubtreeInFileBrowser ,NULL}, - /* ActFrmCreShaDeg */{1351,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFormFileBrowser ,NULL}, - /* ActCreFolShaDeg */{1352,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecFolderFileBrowser ,NULL}, - /* ActCreLnkShaDeg */{1353,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecLinkFileBrowser ,NULL}, - /* ActRenFolShaDeg */{1354,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RenFolderFileBrowser ,NULL}, - /* ActRcvFilShaDegDZ */{1355,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_UPLOAD_FILE,Brw_RcvFileInFileBrwDropzone,NULL ,NULL}, - /* ActRcvFilShaDegCla*/{1356,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Brw_RcvFileInFileBrwClassic ,NULL}, - /* ActExpShaDeg */{1357,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ExpandFileTree ,NULL}, - /* ActConShaDeg */{1358,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ContractFileTree ,NULL}, - /* ActZIPShaDeg */{1359,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ZIP_CompressFileTree ,NULL}, - /* ActReqDatShaDeg */{1360,-1,TabDeg,ActAdmComDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL}, - /* ActChgDatShaDeg */{1361,-1,TabDeg,ActAdmComDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, - /* ActDowShaDeg */{1362,-1,TabDeg,ActAdmComDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, + /* ActReqRemFilShaDeg*/{1345,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemFileFromTree ,NULL}, + /* ActRemFilShaDeg */{1346,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFileFromTree ,NULL}, + /* ActRemFolShaDeg */{1347,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemFolderFromTree ,NULL}, + /* ActCopShaDeg */{1348,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_CopyFromFileBrowser ,NULL}, + /* ActPasShaDeg */{1349,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_PasteIntoFileBrowser ,NULL}, + /* ActRemTreShaDeg */{1350,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemSubtreeInFileBrowser ,NULL}, + /* ActFrmCreShaDeg */{1351,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFormFileBrowser ,NULL}, + /* ActCreFolShaDeg */{1352,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecFolderFileBrowser ,NULL}, + /* ActCreLnkShaDeg */{1353,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RecLinkFileBrowser ,NULL}, + /* ActRenFolShaDeg */{1354,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RenFolderFileBrowser ,NULL}, + /* ActRcvFilShaDegDZ */{1355,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_UPLOAD_FILE,Brw_RcvFileInFileBrwDropzone,NULL ,NULL}, + /* ActRcvFilShaDegCla*/{1356,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Brw_RcvFileInFileBrwClassic ,NULL}, + /* ActExpShaDeg */{1357,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ExpandFileTree ,NULL}, + /* ActConShaDeg */{1358,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ContractFileTree ,NULL}, + /* ActZIPShaDeg */{1359,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,ZIP_CompressFileTree ,NULL}, + /* ActReqDatShaDeg */{1360,-1,TabDeg,ActAdmShaDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL}, + /* ActChgDatShaDeg */{1361,-1,TabDeg,ActAdmShaDeg ,0x1F8,0x1F8,0x1F8,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL}, + /* ActDowShaDeg */{1362,-1,TabDeg,ActAdmShaDeg ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL}, // TabCrs ****************************************************************** // Actions in menu: @@ -4027,7 +4027,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq ActRemInsLog, // #1341 ActRemCtrLog, // #1342 ActRemDegLog, // #1343 - ActAdmComDeg, // #1344 + ActAdmShaDeg, // #1344 ActReqRemFilShaDeg, // #1345 ActRemFilShaDeg, // #1346 ActRemFolShaDeg, // #1347 @@ -4046,7 +4046,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq ActReqDatShaDeg, // #1360 ActChgDatShaDeg, // #1361 ActDowShaDeg, // #1362 - ActAdmComCtr, // #1363 + ActAdmShaCtr, // #1363 ActReqRemFilShaCtr, // #1364 ActRemFilShaCtr, // #1365 ActRemFolShaCtr, // #1366 @@ -4065,7 +4065,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq ActReqDatShaCtr, // #1379 ActChgDatShaCtr, // #1380 ActDowShaCtr, // #1381 - ActAdmComIns, // #1382 + ActAdmShaIns, // #1382 ActReqRemFilShaIns, // #1383 ActRemFilShaIns, // #1384 ActRemFolShaIns, // #1385 diff --git a/swad_action.h b/swad_action.h index ba3b715e3..0f9cf5a69 100644 --- a/swad_action.h +++ b/swad_action.h @@ -185,7 +185,7 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica #define ActSeePlc (ActChgInsSta+ 5) #define ActSeeHld (ActChgInsSta+ 6) #define ActSeeAdmDocIns (ActChgInsSta+ 7) -#define ActAdmComIns (ActChgInsSta+ 8) +#define ActAdmShaIns (ActChgInsSta+ 8) // Secondary actions #define ActInsSch (ActChgInsSta+ 9) @@ -285,7 +285,7 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica #define ActSeeCtrInf (ActDowShaIns+ 2) #define ActSeeDeg (ActDowShaIns+ 3) #define ActSeeAdmDocCtr (ActDowShaIns+ 4) -#define ActAdmComCtr (ActDowShaIns+ 5) +#define ActAdmShaCtr (ActDowShaIns+ 5) // Secondary actions #define ActCtrSch (ActDowShaIns+ 6) @@ -368,7 +368,7 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica #define ActSeeDegInf (ActDowShaCtr+ 2) #define ActSeeCrs (ActDowShaCtr+ 3) #define ActSeeAdmDocDeg (ActDowShaCtr+ 4) -#define ActAdmComDeg (ActDowShaCtr+ 5) +#define ActAdmShaDeg (ActDowShaCtr+ 5) // Secondary actions #define ActDegSch (ActDowShaCtr+ 6) diff --git a/swad_changelog.h b/swad_changelog.h index ed02f2359..a529ffe3c 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -117,13 +117,17 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.91.4 (2016-01-02)" +#define Log_PLATFORM_VERSION "SWAD 15.92 (2016-01-02)" #define CSS_FILE "swad15.88.1.css" #define JS_FILE "swad15.77.7.js" // Number of lines (includes comments but not blank lines) has been got with the following command: // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1 /* + Version 15.92: Jan 02, 2016 Fixing bugs in file metadata of files in institution, centre and degree zones. Not finished. (190365 lines) + 1 change necessary in database: +ALTER TABLE social_notes DROP COLUMN DegCod; + Version 15.91.4: Jan 02, 2016 Fixed minor bugs in social timeline. (190184 lines) Version 15.91.3: Jan 02, 2016 Just before to remove a social note, display at top the note to remove. (190183 lines) Version 15.91.2: Jan 02, 2016 After unsharing a social note, display at top the note just unshared. (190175 lines) diff --git a/swad_file_browser.c b/swad_file_browser.c index 2a2b9e7ae..7b64def2e 100644 --- a/swad_file_browser.c +++ b/swad_file_browser.c @@ -334,9 +334,9 @@ static const Act_Action_t Brw_ActSeeAdm[Brw_NUM_TYPES_FILE_BROWSER] = ActAdmDocCtr, // Brw_ADMI_DOCUM_CTR ActSeeDocIns, // Brw_SHOW_DOCUM_INS ActAdmDocIns, // Brw_ADMI_DOCUM_INS - ActAdmComDeg, // Brw_ADMI_SHARE_DEG - ActAdmComCtr, // Brw_ADMI_SHARE_CTR - ActAdmComIns, // Brw_ADMI_SHARE_INS + ActAdmShaDeg, // Brw_ADMI_SHARE_DEG + ActAdmShaCtr, // Brw_ADMI_SHARE_CTR + ActAdmShaIns, // Brw_ADMI_SHARE_INS }; static const Act_Action_t Brw_ActChgZone[Brw_NUM_TYPES_FILE_BROWSER] = { @@ -838,9 +838,9 @@ static const Act_Action_t Brw_ActRefreshAfterUploadFiles[Brw_NUM_TYPES_FILE_BROW ActAdmDocCtr, // Brw_ADMI_DOCUM_CTR ActUnk, // Brw_SHOW_DOCUM_INS ActAdmDocIns, // Brw_ADMI_DOCUM_INS - ActAdmComDeg, // Brw_ADMI_SHARE_DEG - ActAdmComCtr, // Brw_ADMI_SHARE_CTR - ActAdmComIns, // Brw_ADMI_SHARE_INS + ActAdmShaDeg, // Brw_ADMI_SHARE_DEG + ActAdmShaCtr, // Brw_ADMI_SHARE_CTR + ActAdmShaIns, // Brw_ADMI_SHARE_INS }; static const Act_Action_t Brw_ActExpandFolder[Brw_NUM_TYPES_FILE_BROWSER] = { @@ -1528,7 +1528,7 @@ void Brw_GetParAndInitFileBrowser (void) break; /***** Shared files of institution *****/ - case ActAdmComIns: + case ActAdmShaIns: case ActReqRemFilShaIns: case ActRemFilShaIns: case ActRemFolShaIns: @@ -1594,7 +1594,7 @@ void Brw_GetParAndInitFileBrowser (void) break; /***** Shared files of centre *****/ - case ActAdmComCtr: + case ActAdmShaCtr: case ActReqRemFilShaCtr: case ActRemFilShaCtr: case ActRemFolShaCtr: @@ -1660,7 +1660,7 @@ void Brw_GetParAndInitFileBrowser (void) break; /***** Shared files of degree *****/ - case ActAdmComDeg: + case ActAdmShaDeg: case ActReqRemFilShaDeg: case ActRemFilShaDeg: case ActRemFolShaDeg: @@ -8870,6 +8870,11 @@ void Brw_ShowFileMetadata (void) Brw_GetFileMetadataByPath (&FileMetadata); Found = Brw_GetFileTypeSizeAndDate (&FileMetadata); + sprintf (Gbl.Message,"Found = %s; FileMetadata.FilCod = %ld", + Found ? "true" : "false", + FileMetadata.FilCod); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + if (Found) { if (FileMetadata.FilCod <= 0) // No entry for this file in database table of files @@ -9943,12 +9948,21 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata) MYSQL_ROW row; unsigned UnsignedNum; + sprintf (Gbl.Message,"FileMetadata->FilCod = %ld", + FileMetadata->FilCod); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + /***** Get metadata of a file from database *****/ sprintf (Query,"SELECT FilCod,FileBrowser,Cod,ZoneUsrCod," "PublisherUsrCod,FileType,Path,Hidden,Public,License" " FROM files" " WHERE FilCod='%ld'", FileMetadata->FilCod); + + sprintf (Gbl.Message,"Query = %s", + Query); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + if (DB_QuerySELECT (Query,&mysql_res,"can not get file metadata")) { /* Get row */ @@ -9982,6 +9996,10 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata) strncpy (FileMetadata->Path,row[6],PATH_MAX); FileMetadata->Path[PATH_MAX] = '\0'; + sprintf (Gbl.Message,"FileMetadata->Path = %s", + FileMetadata->Path); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + /* Is a hidden file? (row[7]) */ switch (Gbl.FileBrowser.Type) { @@ -10045,6 +10063,10 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata) /***** Free structure that stores the query result *****/ DB_FreeMySQLResult (&mysql_res); + sprintf (Gbl.Message,"FileMetadata->Path = %s", + FileMetadata->Path); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + /***** Fill some values with 0 (unused at this moment) *****/ FileMetadata->Size = (off_t) 0; FileMetadata->Time = (time_t) 0; @@ -10476,30 +10498,79 @@ static long Brw_GetZoneUsrCodForFiles (void) /*****************************************************************************/ void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod, - long *CrsCod,long *GrpCod) + long *InsCod, + long *CtrCod, + long *DegCod, + long *CrsCod, + long *GrpCod) { + struct Centre Ctr; + struct Degree Deg; + struct Course Crs; struct GroupData GrpDat; switch (FileBrowser) { + case Brw_ADMI_DOCUM_INS: + case Brw_ADMI_SHARE_INS: + *GrpCod = -1L; + *CrsCod = -1L; + *DegCod = -1L; + *CtrCod = -1L; + *InsCod = Cod; + break; + case Brw_ADMI_DOCUM_CTR: + case Brw_ADMI_SHARE_CTR: + *GrpCod = -1L; + *CrsCod = -1L; + *DegCod = -1L; + *CtrCod = Ctr.CtrCod = Cod; + Ctr_GetDataOfCentreByCod (&Ctr); + *InsCod = Ctr.InsCod; + break; + case Brw_ADMI_DOCUM_DEG: + case Brw_ADMI_SHARE_DEG: + *GrpCod = -1L; + *CrsCod = -1L; + *DegCod = Deg.DegCod = Cod; + Deg_GetDataOfDegreeByCod (&Deg); + *CtrCod = Ctr.CtrCod = Deg.CtrCod; + Ctr_GetDataOfCentreByCod (&Ctr); + *InsCod = Ctr.InsCod; + break; case Brw_ADMI_DOCUM_CRS: case Brw_ADMI_SHARE_CRS: case Brw_ADMI_ASSIG_USR: case Brw_ADMI_WORKS_USR: case Brw_ADMI_MARKS_CRS: - *CrsCod = Cod; *GrpCod = -1L; + *CrsCod = Crs.CrsCod = Cod; + Crs_GetDataOfCourseByCod (&Crs); + *DegCod = Deg.DegCod = Crs.DegCod; + Deg_GetDataOfDegreeByCod (&Deg); + *CtrCod = Ctr.CtrCod = Deg.CtrCod; + Ctr_GetDataOfCentreByCod (&Ctr); + *InsCod = Ctr.InsCod; break; case Brw_ADMI_DOCUM_GRP: case Brw_ADMI_SHARE_GRP: case Brw_ADMI_MARKS_GRP: *GrpCod = GrpDat.GrpCod = Cod; Grp_GetDataOfGroupByCod (&GrpDat); - *CrsCod = GrpDat.CrsCod; + *CrsCod = Crs.CrsCod = GrpDat.CrsCod; + Crs_GetDataOfCourseByCod (&Crs); + *DegCod = Deg.DegCod = Crs.DegCod; + Deg_GetDataOfDegreeByCod (&Deg); + *CtrCod = Ctr.CtrCod = Deg.CtrCod; + Ctr_GetDataOfCentreByCod (&Ctr); + *InsCod = Ctr.InsCod; break; default: - *CrsCod = -1L; *GrpCod = -1L; + *CrsCod = -1L; + *DegCod = -1L; + *CtrCod = -1L; + *InsCod = -1L; break; } } diff --git a/swad_file_browser.h b/swad_file_browser.h index 8de995beb..c4ddbdd9b 100644 --- a/swad_file_browser.h +++ b/swad_file_browser.h @@ -192,7 +192,11 @@ unsigned Brw_GetNumPublicFilesUsr (long UsrCod); long Brw_GetCodForFiles (void); void Brw_GetCrsGrpFromFileMetadata (Brw_FileBrowser_t FileBrowser,long Cod, - long *CrsCod,long *GrpCod); + long *InsCod, + long *CtrCod, + long *DegCod, + long *CrsCod, + long *GrpCod); long Brw_AddPathToDB (long PublisherUsrCod,Brw_FileType_t FileType, const char *Path,bool IsPublic,Brw_License_t License); diff --git a/swad_mark.c b/swad_mark.c index 7a7e454d7..4c1356580 100644 --- a/swad_mark.c +++ b/swad_mark.c @@ -718,6 +718,9 @@ void Mrk_GetNotifMyMarks (char *SummaryStr,char **ContentStr, unsigned UnsignedNum; Brw_FileBrowser_t FileBrowser; long Cod; + long InsCod; // Not applicable here + long CtrCod; // Not applicable here + long DegCod; // Not applicable here long CrsCod; long GrpCod; struct MarksProperties Marks; @@ -765,7 +768,8 @@ void Mrk_GetNotifMyMarks (char *SummaryStr,char **ContentStr, /* Course/group code (row[1]) */ Cod = Str_ConvertStrCodToLongCod (row[1]); - Brw_GetCrsGrpFromFileMetadata (FileBrowser,Cod,&CrsCod,&GrpCod); + Brw_GetCrsGrpFromFileMetadata (FileBrowser,Cod, + &InsCod,&CtrCod,&DegCod,&CrsCod,&GrpCod); /* Path (row[2]) */ strncpy (FullPathInTreeFromDBMarksTable,row[2],PATH_MAX); diff --git a/swad_menu.c b/swad_menu.c index 3ade3a296..06c710124 100644 --- a/swad_menu.c +++ b/swad_menu.c @@ -100,7 +100,7 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB ActSeePlc, ActSeeHld, ActSeeAdmDocIns, - ActAdmComIns, + ActAdmShaIns, }, // TabCtr ********** { @@ -108,7 +108,7 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB ActSeeCtrInf, ActSeeDeg, ActSeeAdmDocCtr, - ActAdmComCtr, + ActAdmShaCtr, }, // TabDeg ********** { @@ -116,7 +116,7 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB ActSeeDegInf, ActSeeCrs, ActSeeAdmDocDeg, - ActAdmComDeg, + ActAdmShaDeg, }, // TabCrs ********** { diff --git a/swad_notification.c b/swad_notification.c index 9fe1e3894..63e05c4e1 100644 --- a/swad_notification.c +++ b/swad_notification.c @@ -638,6 +638,9 @@ static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, { extern const Act_Action_t For_ActionsSeeFor[For_NUM_TYPES_FORUM]; struct FileMetadata FileMetadata; + long InsCod = -1L; + long CtrCod = -1L; + long DegCod = -1L; long GrpCod = -1L; char PathUntilFileName[PATH_MAX+1]; char FileName[NAME_MAX+1]; @@ -653,7 +656,8 @@ static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, { FileMetadata.FilCod = Cod; Brw_GetFileMetadataByCod (&FileMetadata); - Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod,&CrsCod,&GrpCod); + Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod, + &InsCod,&CtrCod,&DegCod,&CrsCod,&GrpCod); Str_SplitFullPathIntoPathAndFileName (FileMetadata.Path, PathUntilFileName, FileName); @@ -662,15 +666,31 @@ static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, { case Ntf_EVENT_DOCUMENT_FILE: Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatSeeDocGrp : - ActReqDatSeeDocCrs) : - ((GrpCod > 0) ? ActSeeDocGrp : - ActSeeDocCrs); + ((CrsCod > 0) ? ActReqDatSeeDocCrs : + ((DegCod > 0) ? ActReqDatSeeDocDeg : + (CtrCod > 0) ? ActReqDatSeeDocCtr : + ActReqDatSeeDocIns))) : + ((GrpCod > 0) ? ActSeeDocGrp : + ((CrsCod > 0) ? ActSeeDocCrs : + ((DegCod > 0) ? ActSeeDocDeg : + (CtrCod > 0) ? ActSeeDocCtr : + ActSeeDocIns))); break; case Ntf_EVENT_SHARED_FILE: Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatShaGrp : ActReqDatShaCrs) : ((GrpCod > 0) ? ActAdmShaGrp : ActAdmShaCrs); + Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatShaGrp : + ((CrsCod > 0) ? ActReqDatShaCrs : + ((DegCod > 0) ? ActReqDatShaDeg : + (CtrCod > 0) ? ActReqDatShaCtr : + ActReqDatShaIns))) : + ((GrpCod > 0) ? ActAdmShaGrp : + ((CrsCod > 0) ? ActAdmShaCrs : + ((DegCod > 0) ? ActAdmShaDeg : + (CtrCod > 0) ? ActAdmShaCtr : + ActAdmShaIns))); break; case Ntf_EVENT_MARKS_FILE: Action = (Cod > 0) ? ((GrpCod > 0) ? ActReqDatSeeMrkGrp : @@ -682,8 +702,10 @@ static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, break; } Act_FormStart (Action); - Grp_PutParamGrpCod (GrpCod > 0 ? GrpCod : - -1L); + // Grp_PutParamGrpCod (GrpCod > 0 ? GrpCod : + // -1L); + if (GrpCod > 0) + Grp_PutParamGrpCod (GrpCod); if (Cod > 0) // File code Brw_PutParamsPathAndFile (Brw_IS_UNKNOWN,PathUntilFileName,FileName); // TODO: Brw_IS_UNKNOWN should be changed to Brw_IS_FILE or Brw_IS_LINK break; @@ -705,10 +727,27 @@ static void Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent, break; } - /***** Parameter to go to another course *****/ - if (CrsCod > 0 && // Course specified - CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course - Crs_PutParamCrsCod (CrsCod); // Go to another course + /***** Parameter to go to another course/degree/centre/institution *****/ + if (CrsCod > 0) // Course specified + { + if (CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course + Crs_PutParamCrsCod (CrsCod); // Go to another course + } + else if (DegCod > 0) // Degree specified + { + if (DegCod != Gbl.CurrentDeg.Deg.DegCod) // Not the current degree + Deg_PutParamDegCod (DegCod); // Go to another degree + } + else if (CtrCod > 0) // Centre specified + { + if (CtrCod != Gbl.CurrentCtr.Ctr.CtrCod) // Not the current centre + Ctr_PutParamCtrCod (CtrCod); // Go to another centre + } + else if (InsCod > 0) // Institution specified + { + if (InsCod != Gbl.CurrentIns.Ins.InsCod) // Not the current institution + Ins_PutParamInsCod (InsCod); // Go to another institution + } } /*****************************************************************************/ diff --git a/swad_social.c b/swad_social.c index 1599f31fb..4d14b5df5 100644 --- a/swad_social.c +++ b/swad_social.c @@ -59,15 +59,15 @@ static const Act_Action_t Soc_DefaultActions[Soc_NUM_SOCIAL_NOTES] = /* Institution tab */ ActSeeDocIns, // Soc_NOTE_INS_DOC_PUB_FILE - ActAdmComIns, // Soc_NOTE_INS_SHA_PUB_FILE + ActAdmShaIns, // Soc_NOTE_INS_SHA_PUB_FILE /* Centre tab */ ActSeeDocCtr, // Soc_NOTE_CTR_DOC_PUB_FILE - ActAdmComCtr, // Soc_NOTE_CTR_SHA_PUB_FILE + ActAdmShaCtr, // Soc_NOTE_CTR_SHA_PUB_FILE /* Degree tab */ ActSeeDocDeg, // Soc_NOTE_DEG_DOC_PUB_FILE - ActAdmComDeg, // Soc_NOTE_DEG_SHA_PUB_FILE + ActAdmShaDeg, // Soc_NOTE_DEG_SHA_PUB_FILE /* Course tab */ ActSeeDocCrs, // Soc_NOTE_CRS_DOC_PUB_FILE @@ -303,6 +303,11 @@ static void Soc_ShowTimeline (const char *Query,Act_Action_t UpdateAction) /* Get and write social note */ SocNot.NotCod = SocPub.NotCod; Soc_GetDataOfSocialNoteByCod (&SocNot); + + sprintf (Gbl.Message,"SocNot.Cod = %ld", + SocNot.Cod); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + Soc_WriteSocialNote (&SocPub,&SocNot,true,NumPub == NumPublishings - 1); } @@ -366,30 +371,17 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub, char ForumName[512]; char SummaryStr[Cns_MAX_BYTES_TEXT+1]; - /***** Initialize structure with user's data *****/ - Usr_UsrDataConstructor (&UsrDat); + /***** Initialize location in hierarchy *****/ + Ins.InsCod = -1L; + Ctr.CtrCod = -1L; + Deg.DegCod = -1L; + Crs.CrsCod = -1L; - /***** Get details *****/ - /* Get author data */ + /***** Get author data *****/ + Usr_UsrDataConstructor (&UsrDat); UsrDat.UsrCod = SocNot->UsrCod; Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); - /* Get forum type of the post */ - if (SocNot->NoteType == Soc_NOTE_FORUM_POST) - { - Gbl.Forum.ForumType = For_GetForumTypeOfAPost (SocNot->Cod); - For_SetForumName (Gbl.Forum.ForumType, - &Ins, - &Ctr, - &Deg, - &Crs, - ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language - Gbl.Forum.Ins.InsCod = Ins.InsCod; - Gbl.Forum.Ctr.CtrCod = Ctr.CtrCod; - Gbl.Forum.Deg.DegCod = Deg.DegCod; - Gbl.Forum.Crs.CrsCod = Crs.CrsCod; - } - /***** Start list item *****/ fprintf (Gbl.F.Out,"NoteType) + { + case Soc_NOTE_INS_DOC_PUB_FILE: + case Soc_NOTE_INS_SHA_PUB_FILE: + /* Get institution data */ + Ins.InsCod = SocNot->HieCod; + Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA); + + sprintf (Gbl.Message,"SocNot->Cod = %ld", + SocNot->Cod); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + break; + case Soc_NOTE_CTR_DOC_PUB_FILE: + case Soc_NOTE_CTR_SHA_PUB_FILE: + /* Get centre data */ + Ctr.CtrCod = SocNot->HieCod; + Ctr_GetDataOfCentreByCod (&Ctr); + break; + case Soc_NOTE_DEG_DOC_PUB_FILE: + case Soc_NOTE_DEG_SHA_PUB_FILE: + /* Get degree data */ + Deg.DegCod = SocNot->HieCod; + Deg_GetDataOfDegreeByCod (&Deg); + break; + case Soc_NOTE_CRS_DOC_PUB_FILE: + case Soc_NOTE_CRS_SHA_PUB_FILE: + case Soc_NOTE_EXAM_ANNOUNCEMENT: + case Soc_NOTE_NOTICE: + /* Get course data */ + Crs.CrsCod = SocNot->HieCod; + Crs_GetDataOfCourseByCod (&Crs); + break; + case Soc_NOTE_FORUM_POST: + /* Get forum type of the post */ + Gbl.Forum.ForumType = For_GetForumTypeOfAPost (SocNot->Cod); + For_SetForumName (Gbl.Forum.ForumType, + &Ins, + &Ctr, + &Deg, + &Crs, + ForumName,Gbl.Prefs.Language,false); // Set forum name in recipient's language + Gbl.Forum.Ins.InsCod = Ins.InsCod; + Gbl.Forum.Ctr.CtrCod = Ctr.CtrCod; + Gbl.Forum.Deg.DegCod = Deg.DegCod; + Gbl.Forum.Crs.CrsCod = Crs.CrsCod; + break; + default: + break; + } + + /* Write note type */ fprintf (Gbl.F.Out,"
"); Soc_StartFormGoToAction (SocNot->NoteType,Crs.CrsCod,SocNot->Cod); Act_LinkFormSubmit (Txt_SOCIAL_NOTE[SocNot->NoteType], @@ -438,34 +481,23 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub, Act_FormEnd (); fprintf (Gbl.F.Out,"
"); + /* Write location in hierarchy */ switch (SocNot->NoteType) { case Soc_NOTE_INS_DOC_PUB_FILE: case Soc_NOTE_INS_SHA_PUB_FILE: - /* Get institution data */ - Ins.InsCod = SocNot->HieCod; - Ins_GetDataOfInstitutionByCod (&Ins,Ins_GET_BASIC_DATA); - /* Write location (institution) in hierarchy */ fprintf (Gbl.F.Out,"
%s: %s
", Txt_Institution,Ins.ShortName); break; case Soc_NOTE_CTR_DOC_PUB_FILE: case Soc_NOTE_CTR_SHA_PUB_FILE: - /* Get centre data */ - Ctr.CtrCod = SocNot->HieCod; - Ctr_GetDataOfCentreByCod (&Ctr); - /* Write location (centre) in hierarchy */ fprintf (Gbl.F.Out,"
%s: %s
", Txt_Centre,Ctr.ShortName); break; case Soc_NOTE_DEG_DOC_PUB_FILE: case Soc_NOTE_DEG_SHA_PUB_FILE: - /* Get degree data */ - Deg.DegCod = SocNot->HieCod; - Deg_GetDataOfDegreeByCod (&Deg); - /* Write location (degree) in hierarchy */ fprintf (Gbl.F.Out,"
%s: %s
", Txt_Degree,Deg.ShortName); @@ -474,10 +506,6 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub, case Soc_NOTE_CRS_SHA_PUB_FILE: case Soc_NOTE_EXAM_ANNOUNCEMENT: case Soc_NOTE_NOTICE: - /* Get course data */ - Crs.CrsCod = SocNot->HieCod; - Crs_GetDataOfCourseByCod (&Crs); - /* Write location (course) in hierarchy */ fprintf (Gbl.F.Out,"
%s: %s
", Txt_Course,Crs.ShortName); @@ -596,11 +624,13 @@ static void Soc_GetAndWriteSocialPost (long PstCod) /********* Put form to go to an action depending on the social note **********/ /*****************************************************************************/ -static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType, - long CrsCod,long Cod) +static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType,long CrsCod,long Cod) { extern const Act_Action_t For_ActionsSeeFor[For_NUM_TYPES_FORUM]; struct FileMetadata FileMetadata; + long InsCod = -1L; + long CtrCod = -1L; + long DegCod = -1L; long GrpCod = -1L; char PathUntilFileName[PATH_MAX+1]; char FileName[NAME_MAX+1]; @@ -619,12 +649,26 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType, case Soc_NOTE_CRS_SHA_PUB_FILE: if (Cod > 0) // File code { + sprintf (Gbl.Message,"Cod = %ld", + Cod); + Lay_ShowAlert (Lay_INFO,Gbl.Message); + FileMetadata.FilCod = Cod; - Brw_GetFileMetadataByCod (&FileMetadata); - Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod,&CrsCod,&GrpCod); - Str_SplitFullPathIntoPathAndFileName (FileMetadata.Path, - PathUntilFileName, - FileName); + Brw_GetFileMetadataByCod (&FileMetadata); // TODO: Check all calls to this function!!!!! + if (FileMetadata.FilCod > 0) // Found + { + Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod, + &InsCod,&CtrCod,&DegCod,&CrsCod,&GrpCod); + Str_SplitFullPathIntoPathAndFileName (FileMetadata.Path, + PathUntilFileName, + FileName); + } + Cod = FileMetadata.FilCod; // If file not found ==> FileMetadata.FilCod == -1 + + sprintf (Gbl.Message,"PathUntilFileName = %s; FileName = %s; FileMetadata.FilCod = %ld", + PathUntilFileName,FileName, + FileMetadata.FilCod); + Lay_ShowAlert (Lay_INFO,Gbl.Message); } switch (NoteType) { @@ -632,19 +676,19 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType, Action = (Cod > 0) ? ActReqDatSeeDocIns : ActSeeDocIns; break; case Soc_NOTE_INS_SHA_PUB_FILE: - Action = (Cod > 0) ? ActReqDatShaIns : ActAdmComIns; + Action = (Cod > 0) ? ActReqDatShaIns : ActAdmShaIns; break; case Soc_NOTE_CTR_DOC_PUB_FILE: Action = (Cod > 0) ? ActReqDatSeeDocCtr : ActSeeDocCtr; break; case Soc_NOTE_CTR_SHA_PUB_FILE: - Action = (Cod > 0) ? ActReqDatShaCtr : ActAdmComCtr; + Action = (Cod > 0) ? ActReqDatShaCtr : ActAdmShaCtr; break; case Soc_NOTE_DEG_DOC_PUB_FILE: Action = (Cod > 0) ? ActReqDatSeeDocDeg : ActSeeDocDeg; break; case Soc_NOTE_DEG_SHA_PUB_FILE: - Action = (Cod > 0) ? ActReqDatShaDeg : ActAdmComDeg; + Action = (Cod > 0) ? ActReqDatShaDeg : ActAdmShaDeg; break; case Soc_NOTE_CRS_DOC_PUB_FILE: Action = (Cod > 0) ? ActReqDatSeeDocCrs : ActSeeDocCrs; @@ -656,7 +700,7 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType, break; } Act_FormStart (Action); - Grp_PutParamGrpCod (-1L); + // Grp_PutParamGrpCod (-1L); if (Cod > 0) // File code Brw_PutParamsPathAndFile (Brw_IS_FILE,PathUntilFileName,FileName); break; @@ -674,9 +718,26 @@ static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType, } /***** Parameter to go to another course *****/ - if (CrsCod > 0 && // Course specified - CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course - Crs_PutParamCrsCod (CrsCod); // Go to another course + if (CrsCod > 0) // Course specified + { + if (CrsCod != Gbl.CurrentCrs.Crs.CrsCod) // Not the current course + Crs_PutParamCrsCod (CrsCod); // Go to another course + } + else if (DegCod > 0) // Degree specified + { + if (DegCod != Gbl.CurrentDeg.Deg.DegCod) // Not the current degree + Deg_PutParamDegCod (DegCod); // Go to another degree + } + else if (CtrCod > 0) // Centre specified + { + if (CtrCod != Gbl.CurrentCtr.Ctr.CtrCod) // Not the current centre + Ctr_PutParamCtrCod (CtrCod); // Go to another centre + } + else if (InsCod > 0) // Institution specified + { + if (InsCod != Gbl.CurrentIns.Ins.InsCod) // Not the current institution + Ins_PutParamInsCod (InsCod); // Go to another institution + } } /*****************************************************************************/ diff --git a/swad_text.c b/swad_text.c index aadc157f9..22703e531 100644 --- a/swad_text.c +++ b/swad_text.c @@ -17031,7 +17031,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Documentos" #endif , - // ActAdmComIns + // ActAdmShaIns #if L==1 "Compartits" #elif L==2 @@ -17151,7 +17151,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Documentos" #endif , - // ActAdmComCtr + // ActAdmShaCtr #if L==1 "Compartits" #elif L==2 @@ -17274,7 +17274,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Documentos" #endif , - // ActAdmComDeg + // ActAdmShaDeg #if L==1 "Compartits" #elif L==2 @@ -18952,7 +18952,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Documentos" #endif , - // ActAdmComIns + // ActAdmShaIns #if L==1 "Arxius compartits per professors i estudiants" " de l'institució" @@ -19076,7 +19076,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Documentos" #endif , - // ActAdmComCtr + // ActAdmShaCtr #if L==1 "Arxius compartits per professors i estudiants" " del centre" @@ -19203,7 +19203,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] = "Documentos" #endif , - // ActAdmComDeg + // ActAdmShaDeg #if L==1 "Arxius compartits per professors i estudiants" " de la titulació" diff --git a/swad_web_service.c b/swad_web_service.c index 52477244f..51a28894b 100644 --- a/swad_web_service.c +++ b/swad_web_service.c @@ -4221,6 +4221,9 @@ int swad__getFile (struct soap *soap, /***** Set course and group codes *****/ Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod, + &Gbl.CurrentIns.Ins.InsCod, + &Gbl.CurrentCtr.Ctr.CtrCod, + &Gbl.CurrentDeg.Deg.DegCod, &Gbl.CurrentCrs.Crs.CrsCod, &Gbl.CurrentCrs.Grps.GrpCod); @@ -4358,6 +4361,9 @@ int swad__getMarks (struct soap *soap, /***** Set course and group codes *****/ Brw_GetCrsGrpFromFileMetadata (FileMetadata.FileBrowser,FileMetadata.Cod, + &Gbl.CurrentIns.Ins.InsCod, + &Gbl.CurrentCtr.Ctr.CtrCod, + &Gbl.CurrentDeg.Deg.DegCod, &Gbl.CurrentCrs.Crs.CrsCod, &Gbl.CurrentCrs.Grps.GrpCod);