mirror of https://github.com/acanas/swad-core.git
Version 23.18: Sep 29, 2023 Code refactoring in file browser.
This commit is contained in:
parent
236824244f
commit
97f30a63d3
115
swad_browser.c
115
swad_browser.c
|
@ -4006,6 +4006,45 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
bool TreeContracted,
|
bool TreeContracted,
|
||||||
Brw_IconTree_t IconThisRow)
|
Brw_IconTree_t IconThisRow)
|
||||||
{
|
{
|
||||||
|
static bool SeeDoc[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_SHOW_DOC_INS] = true,
|
||||||
|
[Brw_SHOW_DOC_CTR] = true,
|
||||||
|
[Brw_SHOW_DOC_DEG] = true,
|
||||||
|
[Brw_SHOW_DOC_CRS] = true,
|
||||||
|
[Brw_SHOW_DOC_GRP] = true,
|
||||||
|
};
|
||||||
|
static bool AdmDoc[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_ADMI_DOC_INS] = true,
|
||||||
|
[Brw_ADMI_DOC_CTR] = true,
|
||||||
|
[Brw_ADMI_DOC_DEG] = true,
|
||||||
|
[Brw_ADMI_DOC_CRS] = true,
|
||||||
|
[Brw_ADMI_DOC_GRP] = true,
|
||||||
|
};
|
||||||
|
static bool AdmSha[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_ADMI_SHR_INS] = true,
|
||||||
|
[Brw_ADMI_SHR_CTR] = true,
|
||||||
|
[Brw_ADMI_SHR_DEG] = true,
|
||||||
|
[Brw_ADMI_SHR_CRS] = true,
|
||||||
|
[Brw_ADMI_SHR_GRP] = true,
|
||||||
|
};
|
||||||
|
static bool AdmAsg[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_ADMI_ASG_USR] = true,
|
||||||
|
[Brw_ADMI_ASG_CRS] = true,
|
||||||
|
};
|
||||||
|
static bool SeeMrk[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_SHOW_MRK_CRS] = true,
|
||||||
|
[Brw_SHOW_MRK_GRP] = true,
|
||||||
|
};
|
||||||
|
static bool AdmMrk[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_ADMI_MRK_CRS] = true,
|
||||||
|
[Brw_ADMI_MRK_GRP] = true,
|
||||||
|
};
|
||||||
char *Anchor;
|
char *Anchor;
|
||||||
HidVis_HiddenOrVisible_t HiddenOrVisible = HidVis_VISIBLE;
|
HidVis_HiddenOrVisible_t HiddenOrVisible = HidVis_VISIBLE;
|
||||||
bool RowSetAsPublic = false;
|
bool RowSetAsPublic = false;
|
||||||
|
@ -4013,27 +4052,6 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
bool IsRecent = false;
|
bool IsRecent = false;
|
||||||
struct Brw_FileMetadata FileMetadata;
|
struct Brw_FileMetadata FileMetadata;
|
||||||
char FileBrowserId[32];
|
char FileBrowserId[32];
|
||||||
bool SeeDocsZone = Gbl.FileBrowser.Type == Brw_SHOW_DOC_INS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_SHOW_DOC_CTR ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_SHOW_DOC_DEG ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_SHOW_DOC_CRS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_SHOW_DOC_GRP;
|
|
||||||
bool AdminDocsZone = Gbl.FileBrowser.Type == Brw_ADMI_DOC_INS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_DOC_CTR ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_DOC_DEG ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_DOC_CRS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_DOC_GRP;
|
|
||||||
bool SharedZone = Gbl.FileBrowser.Type == Brw_ADMI_SHR_INS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_SHR_CTR ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_SHR_DEG ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_SHR_CRS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_SHR_GRP;
|
|
||||||
bool AssignmentsZone = Gbl.FileBrowser.Type == Brw_ADMI_ASG_USR ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_ASG_CRS;
|
|
||||||
bool SeeMarks = Gbl.FileBrowser.Type == Brw_SHOW_MRK_CRS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_SHOW_MRK_GRP;
|
|
||||||
bool AdminMarks = Gbl.FileBrowser.Type == Brw_ADMI_MRK_CRS ||
|
|
||||||
Gbl.FileBrowser.Type == Brw_ADMI_MRK_GRP;
|
|
||||||
|
|
||||||
/***** Initializations *****/
|
/***** Initializations *****/
|
||||||
Gbl.FileBrowser.Clipboard.IsThisFile = false;
|
Gbl.FileBrowser.Clipboard.IsThisFile = false;
|
||||||
|
@ -4041,14 +4059,21 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
Gbl.FileBrowser.Id);
|
Gbl.FileBrowser.Id);
|
||||||
|
|
||||||
/***** Is this row hidden or visible? *****/
|
/***** Is this row hidden or visible? *****/
|
||||||
if (SeeDocsZone || AdminDocsZone ||
|
if (SeeDoc[Gbl.FileBrowser.Type] ||
|
||||||
SeeMarks || AdminMarks)
|
SeeMrk[Gbl.FileBrowser.Type] ||
|
||||||
|
AdmDoc[Gbl.FileBrowser.Type] ||
|
||||||
|
AdmMrk[Gbl.FileBrowser.Type])
|
||||||
{
|
{
|
||||||
HiddenOrVisible = Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Gbl.FileBrowser.FilFolLnk.Type,
|
HiddenOrVisible = Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Gbl.FileBrowser.FilFolLnk.Type,
|
||||||
Gbl.FileBrowser.FilFolLnk.Full);
|
Gbl.FileBrowser.FilFolLnk.Full);
|
||||||
if (HiddenOrVisible == HidVis_HIDDEN && Level && (SeeDocsZone || SeeMarks))
|
if (HiddenOrVisible == HidVis_HIDDEN &&
|
||||||
|
(SeeDoc[Gbl.FileBrowser.Type] ||
|
||||||
|
SeeMrk[Gbl.FileBrowser.Type]) &&
|
||||||
|
Level) // Don't return on level 0
|
||||||
return false;
|
return false;
|
||||||
if (AdminDocsZone || AdminMarks)
|
|
||||||
|
if (AdmDoc[Gbl.FileBrowser.Type] ||
|
||||||
|
AdmMrk[Gbl.FileBrowser.Type])
|
||||||
{
|
{
|
||||||
if (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER)
|
if (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER)
|
||||||
Gbl.FileBrowser.HiddenLevels[Level] = (HiddenOrVisible == HidVis_HIDDEN);
|
Gbl.FileBrowser.HiddenLevels[Level] = (HiddenOrVisible == HidVis_HIDDEN);
|
||||||
|
@ -4073,7 +4098,9 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT);
|
Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT);
|
||||||
|
|
||||||
/***** Is this row public or private? *****/
|
/***** Is this row public or private? *****/
|
||||||
if (SeeDocsZone || AdminDocsZone || SharedZone)
|
if (SeeDoc[Gbl.FileBrowser.Type] ||
|
||||||
|
AdmDoc[Gbl.FileBrowser.Type] ||
|
||||||
|
AdmSha[Gbl.FileBrowser.Type])
|
||||||
{
|
{
|
||||||
RowSetAsPublic = (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER) ? Brw_DB_GetIfFolderHasPublicFiles (Gbl.FileBrowser.FilFolLnk.Full) :
|
RowSetAsPublic = (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER) ? Brw_DB_GetIfFolderHasPublicFiles (Gbl.FileBrowser.FilFolLnk.Full) :
|
||||||
FileMetadata.IsPublic;
|
FileMetadata.IsPublic;
|
||||||
|
@ -4089,18 +4116,20 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
/* Style of the text in this row */
|
/* Style of the text in this row */
|
||||||
snprintf (Gbl.FileBrowser.TxtStyle,sizeof (Gbl.FileBrowser.TxtStyle),
|
snprintf (Gbl.FileBrowser.TxtStyle,sizeof (Gbl.FileBrowser.TxtStyle),
|
||||||
"%s_%s",
|
"%s_%s",
|
||||||
LightStyle ? (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER || !IsRecent ? "LST_HID" :
|
Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER ||
|
||||||
"LST_REC_HID") :
|
!IsRecent ? (LightStyle ? "LST_HID" :
|
||||||
(Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER || !IsRecent ? "LST" :
|
"LST") :
|
||||||
"LST_REC"),
|
(LightStyle ? "LST_REC_HID" :
|
||||||
|
"LST_REC"),
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
Gbl.FileBrowser.InputStyle = (LightStyle ? (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER || !IsRecent ? "LST_EDIT_HID" :
|
Gbl.FileBrowser.InputStyle = (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER ||
|
||||||
"LST_EDIT_REC_HID") :
|
!IsRecent) ? (LightStyle ? "LST_EDIT_HID" :
|
||||||
(Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER || !IsRecent ? "LST_EDIT" :
|
"LST_EDIT") :
|
||||||
"LST_EDIT_REC"));
|
(LightStyle ? "LST_EDIT_REC_HID" :
|
||||||
|
"LST_EDIT_REC");
|
||||||
|
|
||||||
/***** Get data of assignment using the name of the folder *****/
|
/***** Get data of assignment using the name of the folder *****/
|
||||||
if (AssignmentsZone)
|
if (AdmAsg[Gbl.FileBrowser.Type])
|
||||||
{
|
{
|
||||||
if (Level == 1) // Main folder of the assignment
|
if (Level == 1) // Main folder of the assignment
|
||||||
{
|
{
|
||||||
|
@ -4189,7 +4218,8 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
Brw_IndentAndWriteIconExpandContract (Level,FileBrowserId,RowId,IconThisRow);
|
Brw_IndentAndWriteIconExpandContract (Level,FileBrowserId,RowId,IconThisRow);
|
||||||
|
|
||||||
/* Put icon to hide/unhide file or folder */
|
/* Put icon to hide/unhide file or folder */
|
||||||
if (AdminDocsZone || AdminMarks)
|
if (AdmDoc[Gbl.FileBrowser.Type] ||
|
||||||
|
AdmMrk[Gbl.FileBrowser.Type])
|
||||||
Brw_PutIconHideUnhide (Anchor,HiddenOrVisible);
|
Brw_PutIconHideUnhide (Anchor,HiddenOrVisible);
|
||||||
|
|
||||||
/***** File or folder icon *****/
|
/***** File or folder icon *****/
|
||||||
|
@ -4223,11 +4253,10 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
/* End column */
|
/* End column */
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
if (AdminMarks)
|
if (AdmMrk[Gbl.FileBrowser.Type])
|
||||||
/***** Header and footer rows *****/
|
/***** Header and footer rows *****/
|
||||||
Mrk_GetAndWriteNumRowsHeaderAndFooter ();
|
Mrk_GetAndWriteNumRowsHeaderAndFooter ();
|
||||||
|
else if (AdmAsg[Gbl.FileBrowser.Type] && Level == 1)
|
||||||
if (AssignmentsZone && Level == 1)
|
|
||||||
/***** Start and end dates of assignment *****/
|
/***** Start and end dates of assignment *****/
|
||||||
Brw_WriteDatesAssignment ();
|
Brw_WriteDatesAssignment ();
|
||||||
else
|
else
|
||||||
|
@ -4239,8 +4268,8 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
/***** Put icon to download ZIP of folder *****/
|
/***** Put icon to download ZIP of folder *****/
|
||||||
HTM_TD_Begin ("class=\"BM %s\"",The_GetColorRows ());
|
HTM_TD_Begin ("class=\"BM %s\"",The_GetColorRows ());
|
||||||
if (Gbl.Usrs.Me.Role.Logged >= Rol_STD && // Only ZIP folders if I am student, teacher...
|
if (Gbl.Usrs.Me.Role.Logged >= Rol_STD && // Only ZIP folders if I am student, teacher...
|
||||||
!SeeMarks && // Do not ZIP folders when seeing marks
|
!SeeMrk[Gbl.FileBrowser.Type] && // Do not ZIP folders when showing marks
|
||||||
!(SeeDocsZone && HiddenOrVisible == HidVis_HIDDEN)) // When seeing docs, if folder is not hidden (this could happen for Level == 0)
|
!(SeeDoc[Gbl.FileBrowser.Type] && HiddenOrVisible == HidVis_HIDDEN)) // When seeing docs, if folder is not hidden (this could happen for Level == 0)
|
||||||
Brw_PutButtonToDownloadZIPOfAFolder ();
|
Brw_PutButtonToDownloadZIPOfAFolder ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
}
|
}
|
||||||
|
@ -4254,7 +4283,9 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId,
|
||||||
|
|
||||||
The_ChangeRowColor ();
|
The_ChangeRowColor ();
|
||||||
|
|
||||||
if (HiddenOrVisible == HidVis_HIDDEN && (SeeDocsZone || SeeMarks))
|
if (HiddenOrVisible == HidVis_HIDDEN &&
|
||||||
|
(SeeDoc[Gbl.FileBrowser.Type] ||
|
||||||
|
SeeMrk[Gbl.FileBrowser.Type]))
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -632,10 +632,11 @@ TODO: Francisco Javier Fern
|
||||||
Me sale este error, no sé si por no recordar yo la sintaxis apropiada para mandar a varios destinatarios. ¿No era así?
|
Me sale este error, no sé si por no recordar yo la sintaxis apropiada para mandar a varios destinatarios. ¿No era así?
|
||||||
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 23.17.5 (2023-09-28)"
|
#define Log_PLATFORM_VERSION "SWAD 23.18 (2023-09-29)"
|
||||||
#define CSS_FILE "swad23.16.1.css"
|
#define CSS_FILE "swad23.16.1.css"
|
||||||
#define JS_FILE "swad22.49.js"
|
#define JS_FILE "swad22.49.js"
|
||||||
/*
|
/*
|
||||||
|
Version 23.18: Sep 29, 2023 Code refactoring in file browser. (336670 lines)
|
||||||
Version 23.17.5: Sep 28, 2023 Code refactoring in scopes. (336638 lines)
|
Version 23.17.5: Sep 28, 2023 Code refactoring in scopes. (336638 lines)
|
||||||
Version 23.17.4: Sep 26, 2023 Code refactoring in hierarchy. (336661 lines)
|
Version 23.17.4: Sep 26, 2023 Code refactoring in hierarchy. (336661 lines)
|
||||||
Version 23.17.3: Sep 25, 2023 Code refactoring in hierarchy. (336679 lines)
|
Version 23.17.3: Sep 25, 2023 Code refactoring in hierarchy. (336679 lines)
|
||||||
|
|
|
@ -80,8 +80,8 @@ struct Globals
|
||||||
} Session;
|
} Session;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
Tab_Tab_t Tab;
|
Tab_Tab_t Tab; // Current navigation tab
|
||||||
Act_Action_t Act;
|
Act_Action_t Act; // Current action
|
||||||
Act_Action_t Original; // Used in some actions to know what action gave rise to the current action
|
Act_Action_t Original; // Used in some actions to know what action gave rise to the current action
|
||||||
bool UsesAJAX; // Do not generate full HTML page, only the content of a div
|
bool UsesAJAX; // Do not generate full HTML page, only the content of a div
|
||||||
bool IsAJAXAutoRefresh; // It's an automatic refresh drom time to time
|
bool IsAJAXAutoRefresh; // It's an automatic refresh drom time to time
|
||||||
|
|
Loading…
Reference in New Issue