Roles.InCurrentCrs.Role)
{
case Rol_STD:
NextAction = ActSeeRecOneStd;
break;
case Rol_NET:
case Rol_TCH:
NextAction = ActSeeRecOneTch;
break;
default:
NextAction = ActUnk;
Rol_WrongRoleExit ();
break;
}
Frm_StartForm (NextAction);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
/***** Show user's ID *****/
ID_WriteUsrIDs (UsrDat,NULL);
/***** Show user's name *****/
fprintf (Gbl.F.Out,"
");
Frm_LinkFormSubmit (Txt_View_record_for_this_course,"AUTHOR_TXT",NULL);
fprintf (Gbl.F.Out,"%s",UsrDat->Surname1);
if (UsrDat->Surname2[0])
fprintf (Gbl.F.Out," %s",UsrDat->Surname2);
if (UsrDat->FirstName[0])
fprintf (Gbl.F.Out,", %s",UsrDat->FirstName);
fprintf (Gbl.F.Out,"");
/***** Show user's email *****/
if (UsrDat->Email[0])
fprintf (Gbl.F.Out,"
"
"
%s",
UsrDat->Email,UsrDat->Email);
Frm_EndForm ();
HTM_DIV_End ();
HTM_TD_End ();
}
/*****************************************************************************/
/******* Get and check list of selected users, and show users' works ********/
/*****************************************************************************/
void Brw_GetSelectedUsrsAndShowWorks (void)
{
Usr_GetSelectedUsrsAndGoToAct (Brw_ShowFileBrowserOrWorks, // when user(s) selected
Brw_AskEditWorksCrs); // when no user selected
}
/*****************************************************************************/
/******************** Show a file browser or users' works *******************/
/*****************************************************************************/
void Brw_ShowFileBrowserOrWorks (void)
{
/***** Get parameters related to file browser *****/
Brw_GetParAndInitFileBrowser ();
/***** Show the file browser or works *****/
Brw_ShowAgainFileBrowserOrWorks ();
}
/*****************************************************************************/
/******************* Show a file browser or users' works ********************/
/*****************************************************************************/
void Brw_ShowAgainFileBrowserOrWorks (void)
{
extern const char *Txt_Files_of_marks_must_contain_a_table_in_HTML_format_;
extern const char *Txt_Disclaimer_the_files_hosted_here_;
if (Brw_GetIfUsrAssigWorksFileBrowser ())
Brw_ShowFileBrowsersAsgWrkUsr ();
else if (Brw_GetIfCrsAssigWorksFileBrowser ())
Brw_ShowFileBrowsersAsgWrkCrs ();
else if (Brw_GetIfProjectFileBrowser ())
Brw_ShowFileBrowserProject ();
else
Brw_ShowFileBrowserNormal ();
/***** Help *****/
switch (Gbl.FileBrowser.Type)
{
case Brw_ADMI_MRK_CRS:
case Brw_ADMI_MRK_GRP:
Ale_ShowAlert (Ale_INFO,Txt_Files_of_marks_must_contain_a_table_in_HTML_format_);
break;
default:
break;
}
/***** Legal notice *****/
Ale_ShowAlert (Ale_INFO,Txt_Disclaimer_the_files_hosted_here_,
Cfg_PLATFORM_SHORT_NAME,
Cfg_PLATFORM_RESPONSIBLE_EMAIL);
}
/*****************************************************************************/
/**************************** Show a file browser ****************************/
/*****************************************************************************/
static void Brw_ShowFileBrowser (void)
{
extern const char *Hlp_FILES_Documents;
extern const char *Hlp_FILES_Shared;
extern const char *Hlp_FILES_Documents;
extern const char *Hlp_FILES_Shared;
extern const char *Hlp_FILES_Documents;
extern const char *Hlp_FILES_Shared;
extern const char *Hlp_FILES_Documents;
extern const char *Hlp_FILES_Private;
extern const char *Hlp_FILES_Shared;
extern const char *Hlp_FILES_Homework_for_students;
extern const char *Hlp_FILES_Homework_for_teachers;
extern const char *Hlp_FILES_Marks;
extern const char *Hlp_FILES_Briefcase;
extern const char *Hlp_ASSESSMENT_Projects;
extern const char *Txt_Documents_area;
extern const char *Txt_Documents_management_area;
extern const char *Txt_Teachers_files_area;
extern const char *Txt_Shared_files_area;
extern const char *Txt_Marks_area;
extern const char *Txt_Marks_management_area;
extern const char *Txt_Assignments_area;
extern const char *Txt_Works_area;
extern const char *Txt_Temporary_private_storage_area;
extern const char *Txt_Project_documents;
extern const char *Txt_Project_assessment;
const char *Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER];
const char *Brw_HelpOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER];
struct Brw_NumObjects Removed;
char FileBrowserSectionId[32];
bool IAmTeacherOrSysAdm = Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
/***** Set title of file browser *****/
Brw_TitleOfFileBrowser[Brw_UNKNOWN ] = NULL; // Brw_UNKNOWN
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_CRS] = Txt_Documents_area; // Brw_SHOW_DOC_CRS
Brw_TitleOfFileBrowser[Brw_SHOW_MRK_CRS] = Txt_Marks_area; // Brw_SHOW_MRK_CRS
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_CRS] = Txt_Documents_management_area; // Brw_ADMI_DOC_CRS
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_CRS] = Txt_Shared_files_area; // Brw_ADMI_SHR_CRS
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_GRP] = Txt_Shared_files_area; // Brw_ADMI_SHR_GRP
Brw_TitleOfFileBrowser[Brw_ADMI_WRK_USR] = Txt_Works_area; // Brw_ADMI_WRK_USR
Brw_TitleOfFileBrowser[Brw_ADMI_WRK_CRS] = Txt_Works_area; // Brw_ADMI_WRK_CRS
Brw_TitleOfFileBrowser[Brw_ADMI_MRK_CRS] = Txt_Marks_management_area; // Brw_ADMI_MRK_CRS
Brw_TitleOfFileBrowser[Brw_ADMI_BRF_USR] = Txt_Temporary_private_storage_area; // Brw_ADMI_BRF_USR
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_GRP] = Txt_Documents_area; // Brw_SHOW_DOC_GRP
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_GRP] = Txt_Documents_management_area; // Brw_ADMI_DOC_GRP
Brw_TitleOfFileBrowser[Brw_SHOW_MRK_GRP] = Txt_Marks_area; // Brw_SHOW_MRK_GRP
Brw_TitleOfFileBrowser[Brw_ADMI_MRK_GRP] = Txt_Marks_management_area; // Brw_ADMI_MRK_GRP
Brw_TitleOfFileBrowser[Brw_ADMI_ASG_USR] = Txt_Assignments_area; // Brw_ADMI_ASG_USR
Brw_TitleOfFileBrowser[Brw_ADMI_ASG_CRS] = Txt_Assignments_area; // Brw_ADMI_ASG_CRS
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_DEG] = Txt_Documents_area; // Brw_SHOW_DOC_DEG
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_DEG] = Txt_Documents_management_area; // Brw_ADMI_DOC_DEG
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_CTR] = Txt_Documents_area; // Brw_SHOW_DOC_CTR
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_CTR] = Txt_Documents_management_area; // Brw_ADMI_DOC_CTR
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_INS] = Txt_Documents_area; // Brw_SHOW_DOC_INS
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_INS] = Txt_Documents_management_area; // Brw_ADMI_DOC_INS
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_DEG] = Txt_Shared_files_area; // Brw_ADMI_SHR_DEG
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_CTR] = Txt_Shared_files_area; // Brw_ADMI_SHR_CTR
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_INS] = Txt_Shared_files_area; // Brw_ADMI_SHR_INS
Brw_TitleOfFileBrowser[Brw_ADMI_TCH_CRS] = Txt_Teachers_files_area; // Brw_ADMI_TCH_CRS
Brw_TitleOfFileBrowser[Brw_ADMI_TCH_GRP] = Txt_Teachers_files_area; // Brw_ADMI_TCH_GRP
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_PRJ] = Txt_Project_documents; // Brw_ADMI_DOC_PRJ
Brw_TitleOfFileBrowser[Brw_ADMI_ASS_PRJ] = Txt_Project_assessment; // Brw_ADMI_ASS_PRJ
/***** Set help link of file browser *****/
Brw_HelpOfFileBrowser[Brw_UNKNOWN ] = NULL; // Brw_UNKNOWN
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_CRS] = Hlp_FILES_Documents; // Brw_SHOW_DOC_CRS
Brw_HelpOfFileBrowser[Brw_SHOW_MRK_CRS] = Hlp_FILES_Marks; // Brw_SHOW_MRK_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_CRS] = Hlp_FILES_Documents; // Brw_ADMI_DOC_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_CRS] = Hlp_FILES_Shared; // Brw_ADMI_SHR_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_GRP] = Hlp_FILES_Shared; // Brw_ADMI_SHR_GRP
Brw_HelpOfFileBrowser[Brw_ADMI_WRK_USR] = Hlp_FILES_Homework_for_students; // Brw_ADMI_WRK_USR
Brw_HelpOfFileBrowser[Brw_ADMI_WRK_CRS] = Hlp_FILES_Homework_for_teachers; // Brw_ADMI_WRK_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_MRK_CRS] = Hlp_FILES_Marks; // Brw_ADMI_MRK_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_BRF_USR] = Hlp_FILES_Briefcase; // Brw_ADMI_BRF_USR
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_GRP] = Hlp_FILES_Documents; // Brw_SHOW_DOC_GRP
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_GRP] = Hlp_FILES_Documents; // Brw_ADMI_DOC_GRP
Brw_HelpOfFileBrowser[Brw_SHOW_MRK_GRP] = Hlp_FILES_Marks; // Brw_SHOW_MRK_GRP
Brw_HelpOfFileBrowser[Brw_ADMI_MRK_GRP] = Hlp_FILES_Marks; // Brw_ADMI_MRK_GRP
Brw_HelpOfFileBrowser[Brw_ADMI_ASG_USR] = Hlp_FILES_Homework_for_students; // Brw_ADMI_ASG_USR
Brw_HelpOfFileBrowser[Brw_ADMI_ASG_CRS] = Hlp_FILES_Homework_for_teachers; // Brw_ADMI_ASG_CRS
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_DEG] = Hlp_FILES_Documents; // Brw_SHOW_DOC_DEG
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_DEG] = Hlp_FILES_Documents; // Brw_ADMI_DOC_DEG
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_CTR] = Hlp_FILES_Documents; // Brw_SHOW_DOC_CTR
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_CTR] = Hlp_FILES_Documents; // Brw_ADMI_DOC_CTR
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_INS] = Hlp_FILES_Documents; // Brw_SHOW_DOC_INS
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_INS] = Hlp_FILES_Documents; // Brw_ADMI_DOC_INS
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_DEG] = Hlp_FILES_Shared; // Brw_ADMI_SHR_DEG
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_CTR] = Hlp_FILES_Shared; // Brw_ADMI_SHR_CTR
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_INS] = Hlp_FILES_Shared; // Brw_ADMI_SHR_INS
Brw_HelpOfFileBrowser[Brw_ADMI_TCH_CRS] = Hlp_FILES_Private; // Brw_ADMI_TCH_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_TCH_GRP] = Hlp_FILES_Private; // Brw_ADMI_TCH_GRP
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_PRJ] = Hlp_ASSESSMENT_Projects; // Brw_ADMI_DOC_PRJ
Brw_HelpOfFileBrowser[Brw_ADMI_ASS_PRJ] = Hlp_ASSESSMENT_Projects; // Brw_ADMI_ASS_PRJ
/***** Set contextual icon in box *****/
Gbl.FileBrowser.IconViewEdit = Brw_ICON_NONE;
switch (Gbl.FileBrowser.Type)
{
case Brw_SHOW_DOC_INS:
if (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_EDIT;
break;
case Brw_ADMI_DOC_INS:
if (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_VIEW;
break;
case Brw_SHOW_DOC_CTR:
if (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_EDIT;
break;
case Brw_ADMI_DOC_CTR:
if (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_VIEW;
break;
case Brw_SHOW_DOC_DEG:
if (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_EDIT;
break;
case Brw_ADMI_DOC_DEG:
if (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_VIEW;
break;
case Brw_SHOW_DOC_CRS:
case Brw_SHOW_DOC_GRP:
case Brw_SHOW_MRK_CRS:
case Brw_SHOW_MRK_GRP:
if (IAmTeacherOrSysAdm)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_EDIT;
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_MRK_CRS:
case Brw_ADMI_MRK_GRP:
if (IAmTeacherOrSysAdm)
Gbl.FileBrowser.IconViewEdit = Brw_ICON_VIEW;
break;
default:
break;
}
/***** Every time user clicks in menu option to view
his/her (temporary) briefcase ==> remove old files *****/
if (Gbl.Action.Act == ActAdmBrf)
/* There are two reasons to not remove old files on any action in briefcase:
1) To avoid wasting time unnecessarily
2) To allow copying of files from briefcase,
because the clipboard is deleted every time file browswer changes
*/
Brw_RemoveOldFilesInBrowser (Brw_MAX_MONTHS_IN_BRIEFCASE,
&Removed); // Not used here
/***** Check if the maximum quota has been exceeded *****/
if (Brw_FileBrowserIsEditable[Gbl.FileBrowser.Type])
Brw_SetAndCheckQuota ();
/***** Check if the clipboard is in this tree *****/
Gbl.FileBrowser.Clipboard.IsThisTree = Brw_CheckIfClipboardIsInThisTree ();
/***** Start box *****/
Gbl.FileBrowser.Id++;
snprintf (FileBrowserSectionId,sizeof (FileBrowserSectionId),
"file_browser_%u",
Gbl.FileBrowser.Id);
Lay_StartSection (FileBrowserSectionId);
Box_StartBox ("100%",Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type],
Brw_PutIconsFileBrowser,
Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE);
/***** Subtitle *****/
Brw_WriteSubtitleOfFileBrowser ();
/***** List recursively the directory *****/
HTM_TABLE_Begin ("BROWSER_TABLE");
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,Brw_RootFolderInternalNames[Gbl.FileBrowser.Type],
PATH_MAX);
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,".",
NAME_MAX);
Brw_SetFullPathInTree ();
Gbl.FileBrowser.FilFolLnk.Type = Brw_IS_FOLDER;
if (Brw_WriteRowFileBrowser (0,"1",
false, // Tree not contracted
Brw_ICON_TREE_NOTHING))
Brw_ListDir (1,"1",
false, // Tree not contracted
Gbl.FileBrowser.Priv.PathRootFolder,
Brw_RootFolderInternalNames[Gbl.FileBrowser.Type]);
HTM_TABLE_End ();
/***** Show and store number of documents found *****/
Brw_ShowAndStoreSizeOfFileTree ();
/***** Put button to show / edit *****/
Brw_PutButtonToShowEdit ();
/***** End box *****/
Box_EndBox ();
Lay_EndSection ();
}
/*****************************************************************************/
/******************* Put contextual icons in file browser ********************/
/*****************************************************************************/
static void Brw_PutIconsFileBrowser (void)
{
/***** Put icon to view / edit file browser *****/
switch (Gbl.FileBrowser.IconViewEdit)
{
case Brw_ICON_NONE:
break;
case Brw_ICON_VIEW:
Ico_PutContextualIconToView (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type],
Brw_PutHiddenParamFullTreeIfSelected);
break;
case Brw_ICON_EDIT:
Ico_PutContextualIconToEdit (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type],
Brw_PutHiddenParamFullTreeIfSelected);
break;
}
/***** Put icon to show a figure *****/
switch (Gbl.FileBrowser.Type)
{
case Brw_ADMI_WRK_CRS:
case Brw_ADMI_ASG_CRS:
case Brw_ADMI_DOC_PRJ:
case Brw_ADMI_ASS_PRJ:
break;
default:
Brw_PutIconShowFigure ();
break;
}
}
static void Brw_PutIconShowFigure (void)
{
Gbl.Figures.FigureType = Fig_FOLDERS_AND_FILES;
Fig_PutIconToShowFigure ();
}
/*****************************************************************************/
/***************** Put button to view / edit file browser ********************/
/*****************************************************************************/
static void Brw_PutButtonToShowEdit (void)
{
extern const char *Txt_View;
extern const char *Txt_Edit;
switch (Gbl.FileBrowser.IconViewEdit)
{
case Brw_ICON_NONE:
break;
case Brw_ICON_VIEW:
if (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type] != ActUnk)
{
Frm_StartForm (Brw_ActFromAdmToSee[Gbl.FileBrowser.Type]);
Brw_PutHiddenParamFullTreeIfSelected ();
Btn_PutConfirmButton (Txt_View);
Frm_EndForm ();
}
break;
case Brw_ICON_EDIT:
if (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type] != ActUnk)
{
Frm_StartForm (Brw_ActFromSeeToAdm[Gbl.FileBrowser.Type]);
Brw_PutHiddenParamFullTreeIfSelected ();
Btn_PutConfirmButton (Txt_Edit);
Frm_EndForm ();
}
break;
}
}
/*****************************************************************************/
/********************** Write title of a file browser ************************/
/*****************************************************************************/
static void Brw_WriteTopBeforeShowingFileBrowser (void)
{
/***** Update last access to this file browser *****/
Brw_UpdateLastAccess ();
/***** Write contextual links *****/
fprintf (Gbl.F.Out,"