Version 23.18: Sep 29, 2023 Code refactoring in file browser.

This commit is contained in:
acanas 2023-09-29 13:13:40 +02:00
parent 236824244f
commit 97f30a63d3
3 changed files with 77 additions and 45 deletions

View File

@ -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;
} }

View File

@ -632,10 +632,11 @@ TODO: Francisco Javier Fern
Me sale este error, no si por no recordar yo la sintaxis apropiada para mandar a varios destinatarios. ¿No era así? Me sale este error, no 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)

View File

@ -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