Version 23.57: Jan 19, 2024 Responsive design and changes in layout in assignment/works file browsers.

This commit is contained in:
acanas 2024-01-19 10:41:49 +01:00
parent 8de317f691
commit 0af5ba1909
9 changed files with 207 additions and 327 deletions

View File

@ -2226,7 +2226,7 @@ a:hover img.CENTER_PHOTO_SHOW
padding:10px;
border-radius:2px;
box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 2px 1px -2px rgba(0,0,0,0.2), 0 1px 5px 0 rgba(0,0,0,0.12);
text-align:center;
/* text-align:center; */
overflow:hidden;
}
.FRAME_WHITE,
@ -2742,14 +2742,17 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.FILENAME_BIG_PINK {color:#202020; font-size:18pt; font-weight:bold;}
.FILENAME_BIG_DARK {color:#f0f0f0; font-size:18pt; font-weight:bold;}
.BROWSER_TITLE {color:#94745C; font-size:12pt; font-weight:bold;}
.BROWSER_TITLE {color:#94745C; font-size:12pt; font-weight:bold;}
.BROWSER_TITLE_LIGHT {color:#D5C6BB; font-size:12pt; font-weight:bold;}
.BROWSER_SUBTITLE {color:#94745C; font-size:12pt;}
.BROWSER_TABLE
.BROWSER_SUBTITLE {color:#94745C; font-size:11pt;}
.BROWSER_ASG_WRK
{
box-sizing:border-box;
width:100%;
display: inline-block;
text-align: left;
vertical-align: top;
}
.LST_WHITE,
.LST_GREY,
.LST_PURPLE,
@ -2818,7 +2821,7 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.LST_EDIT_REC_HID_DARK {color:#89be87; border-color:#404040;}
.PUBLIC_FILE {max-width:400px;}
.LICENSE {max-width:400px;}
.LICENSE {max-width:400px;}
/************** Paragraph (margin on top and bottom of a div) ****************/
.PAR
@ -4403,7 +4406,7 @@ legend {font-size:12pt;}
/************************** Owner of assignments and works *******************/
.OWNER_WORKS_PHOTO
{
box-sizing:border-box;
display:inline-block;
width:64px;
text-align:left;
vertical-align:top;
@ -4412,7 +4415,7 @@ legend {font-size:12pt;}
{
display:inline-block;
box-sizing:border-box;
width:100px;
width:160px;
text-align:left;
vertical-align:top;
white-space:nowrap;
@ -5258,7 +5261,7 @@ button.PAG_DARK:hover, .PAG_CUR_DARK {background-color:#707070;}
display: table;
width: 100%;
}
.TBL_SCROLL th,.TBL_SCROLL td {padding: 2px;}
.TBL_SCROLL th,.TBL_SCROLL td {padding: 1px;}
.Ind_TBL td,.Ind_TBL th
{

View File

@ -2785,9 +2785,9 @@ static void Brw_ShowFileBrowsersAsgWrkCrs (void)
Brw_WriteTopBeforeShowingFileBrowser ();
/***** Begin box and table *****/
Box_BoxTableBegin ("100%",Txt_Assignments_and_other_works,
Brw_PutIconShowFigure,NULL,
Hlp_FILES_Homework_for_teachers,Box_NOT_CLOSABLE,0);
Box_BoxBegin (NULL,Txt_Assignments_and_other_works,
Brw_PutIconShowFigure,NULL,
Hlp_FILES_Homework_for_teachers,Box_NOT_CLOSABLE);
/***** List the assignments and works of the selected users *****/
Ptr = Gbl.Usrs.Selected.List[Rol_UNK];
@ -2804,31 +2804,31 @@ static void Brw_ShowFileBrowsersAsgWrkCrs (void)
Gbl.Usrs.Other.UsrDat.Accepted =
Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat);
/***** Show a row with the data of the owner of the works *****/
HTM_TR_Begin (NULL);
/***** Owner of the works *****/
Brw_ShowDataOwnerAsgWrk (&Gbl.Usrs.Other.UsrDat);
Brw_ShowDataOwnerAsgWrk (&Gbl.Usrs.Other.UsrDat);
/***** File browsers *****/
HTM_DIV_Begin ("class=\"BROWSER_ASG_WRK\"");
HTM_TD_Begin ("class=\"LT\"");
/* File browser with the assignments */
Gbl.FileBrowser.Type = Brw_ADMI_ASG_CRS;
Brw_InitializeFileBrowser ();
Brw_ShowFileBrowser ();
/* Show the tree with the assignments */
Gbl.FileBrowser.Type = Brw_ADMI_ASG_CRS;
Brw_InitializeFileBrowser ();
Brw_ShowFileBrowser ();
/* File browser with the works */
Gbl.FileBrowser.Type = Brw_ADMI_WRK_CRS;
Brw_InitializeFileBrowser ();
Brw_ShowFileBrowser ();
/* Show the tree with the works */
Gbl.FileBrowser.Type = Brw_ADMI_WRK_CRS;
Brw_InitializeFileBrowser ();
Brw_ShowFileBrowser ();
HTM_DIV_End ();
HTM_TD_End ();
HTM_TR_End ();
HTM_BR ();
HTM_BR ();
}
}
/***** End table and box *****/
Box_BoxTableEnd ();
Box_BoxEnd ();
/***** Put legal notice *****/
Brw_PutLegalNotice ();
@ -2999,52 +2999,48 @@ static void Brw_ShowDataOwnerAsgWrk (struct Usr_Data *UsrDat)
};
/***** Show user's photo *****/
HTM_TD_Begin ("class=\"OWNER_WORKS_PHOTO\"");
HTM_DIV_Begin ("class=\"OWNER_WORKS_PHOTO\"");
Pho_ShowUsrPhotoIfAllowed (UsrDat,
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM);
HTM_TD_End ();
HTM_DIV_End ();
/***** Begin form to send a message to this user *****/
HTM_TD_Begin ("class=\"LT\"");
HTM_DIV_Begin ("class=\"OWNER_WORKS_DATA MSG_AUT_%s\"",The_GetSuffix ());
HTM_DIV_Begin ("class=\"OWNER_WORKS_DATA MSG_AUT_%s\"",The_GetSuffix ());
if (!NextAction[UsrDat->Roles.InCurrentCrs])
Err_WrongRoleExit ();
Frm_BeginForm (NextAction[UsrDat->Roles.InCurrentCrs]);
Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod);
if (!NextAction[UsrDat->Roles.InCurrentCrs])
Err_WrongRoleExit ();
Frm_BeginForm (NextAction[UsrDat->Roles.InCurrentCrs]);
Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod);
/***** Show user's ID *****/
ID_WriteUsrIDs (UsrDat,NULL);
/***** Show user's ID *****/
ID_WriteUsrIDs (UsrDat,NULL);
/***** Show user's name *****/
HTM_BR ();
/***** Show user's name *****/
HTM_BUTTON_Submit_Begin (Txt_View_record_for_this_course,
"class=\"BT_LINK\"");
HTM_Txt (UsrDat->Surname1);
if (UsrDat->Surname2[0])
HTM_TxtF (" %s",UsrDat->Surname2);
if (UsrDat->FrstName[0])
HTM_TxtF (", %s",UsrDat->FrstName);
HTM_BUTTON_End ();
/***** Show user's email *****/
if (UsrDat->Email[0])
{
HTM_BR ();
HTM_A_Begin ("href=\"mailto:%s\" target=\"_blank\""
" class=\"MSG_AUT_%s\"",
UsrDat->Email,The_GetSuffix ());
HTM_Txt (UsrDat->Email);
HTM_A_End ();
}
HTM_BUTTON_Submit_Begin (Txt_View_record_for_this_course,
"class=\"BT_LINK\"");
HTM_Txt (UsrDat->Surname1);
if (UsrDat->Surname2[0])
HTM_TxtF (" %s",UsrDat->Surname2);
if (UsrDat->FrstName[0])
HTM_TxtF (", %s",UsrDat->FrstName);
HTM_BUTTON_End ();
Frm_EndForm ();
/***** Show user's email *****/
if (UsrDat->Email[0])
{
HTM_BR ();
HTM_A_Begin ("href=\"mailto:%s\" target=\"_blank\""
" class=\"MSG_AUT_%s\"",
UsrDat->Email,The_GetSuffix ());
HTM_Txt (UsrDat->Email);
HTM_A_End ();
}
Frm_EndForm ();
HTM_DIV_End ();
HTM_TD_End ();
HTM_DIV_End ();
}
/*****************************************************************************/
@ -3108,10 +3104,8 @@ static void Brw_ShowFileBrowser (void)
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;
@ -3122,9 +3116,6 @@ static void Brw_ShowFileBrowser (void)
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;
extern const char *Txt_NULL;
extern const char *Txt_Files_of_marks_must_contain_a_table_in_HTML_format_;
static const char **Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] =
@ -3136,7 +3127,7 @@ static void Brw_ShowFileBrowser (void)
[Brw_ADMI_SHR_CRS] = &Txt_Shared_files_area,
[Brw_ADMI_SHR_GRP] = &Txt_Shared_files_area,
[Brw_ADMI_WRK_USR] = &Txt_Works_area,
[Brw_ADMI_WRK_CRS] = &Txt_Works_area,
[Brw_ADMI_WRK_CRS] = NULL,
[Brw_ADMI_MRK_CRS] = &Txt_Marks_management_area,
[Brw_ADMI_BRF_USR] = &Txt_Temporary_private_storage_area,
[Brw_SHOW_DOC_GRP] = &Txt_Documents_area,
@ -3144,7 +3135,7 @@ static void Brw_ShowFileBrowser (void)
[Brw_SHOW_MRK_GRP] = &Txt_Marks_area,
[Brw_ADMI_MRK_GRP] = &Txt_Marks_management_area,
[Brw_ADMI_ASG_USR] = &Txt_Assignments_area,
[Brw_ADMI_ASG_CRS] = &Txt_Assignments_area,
[Brw_ADMI_ASG_CRS] = NULL,
[Brw_SHOW_DOC_DEG] = &Txt_Documents_area,
[Brw_ADMI_DOC_DEG] = &Txt_Documents_management_area,
[Brw_SHOW_DOC_CTR] = &Txt_Documents_area,
@ -3156,8 +3147,8 @@ static void Brw_ShowFileBrowser (void)
[Brw_ADMI_SHR_INS] = &Txt_Shared_files_area,
[Brw_ADMI_TCH_CRS] = &Txt_Teachers_files_area,
[Brw_ADMI_TCH_GRP] = &Txt_Teachers_files_area,
[Brw_ADMI_DOC_PRJ] = &Txt_Project_documents,
[Brw_ADMI_ASS_PRJ] = &Txt_Project_assessment,
[Brw_ADMI_DOC_PRJ] = NULL,
[Brw_ADMI_ASS_PRJ] = NULL,
};
static const char **Brw_HelpOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] =
{
@ -3168,7 +3159,7 @@ static void Brw_ShowFileBrowser (void)
[Brw_ADMI_SHR_CRS] = &Hlp_FILES_Shared,
[Brw_ADMI_SHR_GRP] = &Hlp_FILES_Shared,
[Brw_ADMI_WRK_USR] = &Hlp_FILES_Homework_for_students,
[Brw_ADMI_WRK_CRS] = &Hlp_FILES_Homework_for_teachers,
[Brw_ADMI_WRK_CRS] = NULL,
[Brw_ADMI_MRK_CRS] = &Hlp_FILES_Marks,
[Brw_ADMI_BRF_USR] = &Hlp_FILES_Briefcase,
[Brw_SHOW_DOC_GRP] = &Hlp_FILES_Documents,
@ -3176,7 +3167,7 @@ static void Brw_ShowFileBrowser (void)
[Brw_SHOW_MRK_GRP] = &Hlp_FILES_Marks,
[Brw_ADMI_MRK_GRP] = &Hlp_FILES_Marks,
[Brw_ADMI_ASG_USR] = &Hlp_FILES_Homework_for_students,
[Brw_ADMI_ASG_CRS] = &Hlp_FILES_Homework_for_teachers,
[Brw_ADMI_ASG_CRS] = NULL,
[Brw_SHOW_DOC_DEG] = &Hlp_FILES_Documents,
[Brw_ADMI_DOC_DEG] = &Hlp_FILES_Documents,
[Brw_SHOW_DOC_CTR] = &Hlp_FILES_Documents,
@ -3188,8 +3179,8 @@ static void Brw_ShowFileBrowser (void)
[Brw_ADMI_SHR_INS] = &Hlp_FILES_Shared,
[Brw_ADMI_TCH_CRS] = &Hlp_FILES_Private,
[Brw_ADMI_TCH_GRP] = &Hlp_FILES_Private,
[Brw_ADMI_DOC_PRJ] = &Txt_NULL,
[Brw_ADMI_ASS_PRJ] = &Txt_NULL,
[Brw_ADMI_DOC_PRJ] = NULL,
[Brw_ADMI_ASS_PRJ] = NULL,
};
struct Brw_NumObjects Removed;
char FileBrowserSectionId[32];
@ -3219,36 +3210,38 @@ static void Brw_ShowFileBrowser (void)
"file_browser_%u",Gbl.FileBrowser.Id);
HTM_SECTION_Begin (FileBrowserSectionId);
Box_BoxBegin ("100%",*Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type],
Brw_PutIconsFileBrowser,NULL,
*Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE);
if (Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type])
Box_BoxBegin (NULL,*Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type],
Brw_PutIconsFileBrowser,NULL,
*Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE);
/***** Subtitle *****/
Brw_WriteSubtitleOfFileBrowser ();
/***** Subtitle *****/
Brw_WriteSubtitleOfFileBrowser ();
/***** List recursively the directory *****/
HTM_TABLE_Begin ("BROWSER_TABLE");
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,
Brw_RootFolderInternalNames[Gbl.FileBrowser.Type],
sizeof (Gbl.FileBrowser.FilFolLnk.Path) - 1);
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,".",
sizeof (Gbl.FileBrowser.FilFolLnk.Name) - 1);
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.Path.RootFolder,
Brw_RootFolderInternalNames[Gbl.FileBrowser.Type]);
HTM_TABLE_End ();
/***** List recursively the directory *****/
HTM_TABLE_Begin ("TBL_SCROLL");
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,
Brw_RootFolderInternalNames[Gbl.FileBrowser.Type],
sizeof (Gbl.FileBrowser.FilFolLnk.Path) - 1);
Str_Copy (Gbl.FileBrowser.FilFolLnk.Name,".",
sizeof (Gbl.FileBrowser.FilFolLnk.Name) - 1);
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.Path.RootFolder,
Brw_RootFolderInternalNames[Gbl.FileBrowser.Type]);
HTM_TABLE_End ();
/***** Show and store number of documents found *****/
BrwSiz_ShowAndStoreSizeOfFileBrowser (Size);
/***** Show and store number of documents found *****/
BrwSiz_ShowAndStoreSizeOfFileBrowser (Size);
/***** End box *****/
Box_BoxEnd ();
if (Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type])
Box_BoxEnd ();
HTM_SECTION_End ();
@ -3476,27 +3469,57 @@ static void Brw_UpdateLastAccess (void)
static void Brw_WriteSubtitleOfFileBrowser (void)
{
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_institution;
extern const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_institution;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_institution;
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_center;
extern const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_center;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_center;
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_degree;
extern const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_degree;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_degree;
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_course;
extern const char *Txt_accessible_only_for_reading_by_students_of_the_group_and_teachers_of_the_course;
extern const char *Txt_accessible_for_reading_and_writing_by_teachers_of_the_course;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_course;
extern const char *Txt_accessible_for_reading_and_writing_by_students_of_the_group_and_teachers_of_the_course;
extern const char *Txt_accessible_for_reading_and_writing_by_you_and_the_teachers_of_the_course;
extern const char *Txt_accessible_only_for_reading_by_you_and_the_teachers_of_the_course;
extern const char *Txt_the_marks_of_a_student_chosen_at_random_;
extern const char *Txt_accessible_for_reading_and_writing_by_administrators_of_the_institution;
extern const char *Txt_accessible_for_reading_and_writing_by_project_members;
extern const char *Txt_accessible_for_reading_and_writing_by_project_tutors_and_evaluators;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_center;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_degree;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_institution;
extern const char *Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_course;
extern const char *Txt_accessible_for_reading_and_writing_by_students_of_the_group_and_teachers_of_the_course;
extern const char *Txt_accessible_for_reading_and_writing_by_teachers_of_the_course;
extern const char *Txt_accessible_for_reading_and_writing_by_you_and_the_course_teachers;
extern const char *Txt_accessible_only_for_reading_by_the_student_and_the_course_teachers;
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_institution;
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_center;
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_degree;
extern const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_course;
extern const char *Txt_accessible_only_for_reading_by_students_of_the_group_and_teachers_of_the_course;
extern const char *Txt_nobody_else_can_access_this_content;
char Subtitle[1024 + Usr_MAX_BYTES_FULL_NAME];
static const char **Brw_SubtitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = NULL,
[Brw_SHOW_DOC_CRS] = &Txt_accessible_only_for_reading_by_students_and_teachers_of_the_course,
[Brw_SHOW_MRK_CRS] = &Txt_accessible_only_for_reading_by_the_student_and_the_course_teachers,
[Brw_ADMI_DOC_CRS] = &Txt_accessible_for_reading_and_writing_by_teachers_of_the_course,
[Brw_ADMI_SHR_CRS] = &Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_course,
[Brw_ADMI_SHR_GRP] = &Txt_accessible_for_reading_and_writing_by_students_of_the_group_and_teachers_of_the_course,
[Brw_ADMI_WRK_USR] = &Txt_accessible_for_reading_and_writing_by_you_and_the_course_teachers,
[Brw_ADMI_WRK_CRS] = NULL,
[Brw_ADMI_MRK_CRS] = &Txt_accessible_for_reading_and_writing_by_teachers_of_the_course,
[Brw_ADMI_BRF_USR] = &Txt_nobody_else_can_access_this_content,
[Brw_SHOW_DOC_GRP] = &Txt_accessible_only_for_reading_by_students_of_the_group_and_teachers_of_the_course,
[Brw_ADMI_DOC_GRP] = &Txt_accessible_for_reading_and_writing_by_teachers_of_the_course,
[Brw_SHOW_MRK_GRP] = &Txt_accessible_only_for_reading_by_the_student_and_the_course_teachers,
[Brw_ADMI_MRK_GRP] = &Txt_accessible_for_reading_and_writing_by_teachers_of_the_course,
[Brw_ADMI_ASG_USR] = &Txt_accessible_for_reading_and_writing_by_you_and_the_course_teachers,
[Brw_ADMI_ASG_CRS] = NULL,
[Brw_SHOW_DOC_DEG] = &Txt_accessible_only_for_reading_by_students_and_teachers_of_the_degree,
[Brw_ADMI_DOC_DEG] = &Txt_accessible_for_reading_and_writing_by_administrators_of_the_degree,
[Brw_SHOW_DOC_CTR] = &Txt_accessible_only_for_reading_by_students_and_teachers_of_the_center,
[Brw_ADMI_DOC_CTR] = &Txt_accessible_for_reading_and_writing_by_administrators_of_the_center,
[Brw_SHOW_DOC_INS] = &Txt_accessible_only_for_reading_by_students_and_teachers_of_the_institution,
[Brw_ADMI_DOC_INS] = &Txt_accessible_for_reading_and_writing_by_administrators_of_the_institution,
[Brw_ADMI_SHR_DEG] = &Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_degree,
[Brw_ADMI_SHR_CTR] = &Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_center,
[Brw_ADMI_SHR_INS] = &Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_institution,
[Brw_ADMI_TCH_CRS] = &Txt_accessible_for_reading_and_writing_by_teachers_of_the_course,
[Brw_ADMI_TCH_GRP] = &Txt_accessible_for_reading_and_writing_by_teachers_of_the_course,
[Brw_ADMI_DOC_PRJ] = &Txt_accessible_for_reading_and_writing_by_project_members,
[Brw_ADMI_ASS_PRJ] = &Txt_accessible_for_reading_and_writing_by_project_tutors_and_evaluators,
};
/***** Form to change zone (course and group browsers) *****/
switch (Gbl.FileBrowser.Type)
@ -3520,123 +3543,24 @@ static void Brw_WriteSubtitleOfFileBrowser (void)
}
/***** Write subtitle *****/
/*
Subtitle = NULL;
switch (Gbl.FileBrowser.Type)
{
case Brw_SHOW_DOC_INS:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_only_for_reading_by_students_and_teachers_of_the_institution);
break;
case Brw_ADMI_DOC_INS:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_administrators_of_the_institution);
break;
case Brw_ADMI_SHR_INS:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_institution);
break;
case Brw_SHOW_DOC_CTR:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_only_for_reading_by_students_and_teachers_of_the_center);
break;
case Brw_ADMI_DOC_CTR:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_administrators_of_the_center);
break;
case Brw_ADMI_SHR_CTR:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_center);
break;
case Brw_SHOW_DOC_DEG:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_only_for_reading_by_students_and_teachers_of_the_degree);
break;
case Brw_ADMI_DOC_DEG:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_administrators_of_the_degree);
break;
case Brw_ADMI_SHR_DEG:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_degree);
break;
case Brw_SHOW_DOC_CRS:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_only_for_reading_by_students_and_teachers_of_the_course);
break;
case Brw_SHOW_DOC_GRP:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_only_for_reading_by_students_of_the_group_and_teachers_of_the_course);
break;
case Brw_ADMI_DOC_CRS:
case Brw_ADMI_DOC_GRP:
case Brw_ADMI_TCH_CRS:
case Brw_ADMI_TCH_GRP:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_teachers_of_the_course);
break;
case Brw_ADMI_SHR_CRS:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_students_and_teachers_of_the_course);
break;
case Brw_ADMI_SHR_GRP:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_students_of_the_group_and_teachers_of_the_course);
break;
case Brw_SHOW_MRK_CRS:
case Brw_SHOW_MRK_GRP:
switch (Gbl.Usrs.Me.Role.Logged)
{
case Rol_STD:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_only_for_reading_by_you_and_the_teachers_of_the_course);
break;
case Rol_NET:
case Rol_TCH:
case Rol_SYS_ADM:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_the_marks_of_a_student_chosen_at_random_);
break;
default:
Subtitle[0] = '\0';
Err_WrongRoleExit ();
break;
}
break;
case Brw_ADMI_MRK_CRS:
case Brw_ADMI_MRK_GRP:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_teachers_of_the_course);
break;
case Brw_ADMI_ASG_USR:
case Brw_ADMI_WRK_USR:
snprintf (Subtitle,sizeof (Subtitle),"%s<br />(%s)",
Gbl.Usrs.Me.UsrDat.FullName,
Txt_accessible_for_reading_and_writing_by_you_and_the_teachers_of_the_course);
break;
case Brw_ADMI_ASG_CRS:
case Brw_ADMI_WRK_CRS:
snprintf (Subtitle,sizeof (Subtitle),"%s",
Gbl.Usrs.Other.UsrDat.FullName);
case Brw_ADMI_ASG_CRS:
Subtitle = Gbl.Usrs.Other.UsrDat.FullName;
break;
case Brw_ADMI_DOC_PRJ:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_project_members);
break;
case Brw_ADMI_ASS_PRJ:
snprintf (Subtitle,sizeof (Subtitle),"(%s)",
Txt_accessible_for_reading_and_writing_by_project_tutors_and_evaluators);
break;
case Brw_ADMI_BRF_USR:
snprintf (Subtitle,sizeof (Subtitle),"%s<br />(%s)",
Gbl.Usrs.Me.UsrDat.FullName,
Txt_nobody_else_can_access_this_content);
break;
case Brw_UNKNOWN:
return;
default:
if (Brw_SubtitleOfFileBrowser[Gbl.FileBrowser.Type])
Subtitle = *Brw_SubtitleOfFileBrowser[Gbl.FileBrowser.Type];
break;
}
if (Subtitle[0])
*/
if (Brw_SubtitleOfFileBrowser[Gbl.FileBrowser.Type])
{
HTM_DIV_Begin ("class=\"BROWSER_SUBTITLE\"");
HTM_Txt (Subtitle);
HTM_Txt (*Brw_SubtitleOfFileBrowser[Gbl.FileBrowser.Type]);
HTM_DIV_End ();
}
}
@ -9263,20 +9187,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
extern const char *Txt_Link;
struct Brw_FileMetadata FileMetadata;
struct Hie_Node Hie[Hie_NUM_LEVELS];
/*
long InsCod;
long CtrCod;
long DegCod;
long CrsCod;
*/
long GrpCod;
Act_Action_t Action;
/*
const char *InsShortName;
const char *CtrShortName;
const char *DegShortName;
const char *CrsShortName;
*/
const char *BgColor;
const char *Title;
char FileNameToShow[NAME_MAX + 1];
@ -9443,8 +9355,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
break;
}
HTM_TD_Begin ("class=\"LT DAT_%s %s\"",
The_GetSuffix (),BgColor);
HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),BgColor);
HTM_Txt (Title);
HTM_TD_End ();
@ -9454,8 +9365,7 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
FileNameToShow);
/***** Write file name using path (row[1]) *****/
HTM_TD_Begin ("class=\"LT DAT_STRONG_%s %s\"",
The_GetSuffix (),BgColor);
HTM_TD_Begin ("class=\"LT DAT_STRONG_%s %s\"",The_GetSuffix (),BgColor);
/* Begin form */
Action = Brw_ActReqDatFile[Brw_FileBrowserForFoundDocs[FileMetadata.FileBrowser]];

View File

@ -457,7 +457,7 @@ void BrwSiz_ShowAndStoreSizeOfFileBrowser (const struct BrwSiz_BrowserSize *Size
if (Brw_CheckIfFileBrowserIsEditable (Gbl.FileBrowser.Type))
{
Fil_WriteFileSizeFull ((double) Size->TotalSiz,FileSizeStr);
HTM_TxtF ("%u %s; %lu %s; %lu %s; %s",
HTM_TxtF ("%u %s; %lu %s; %lu %s",
Size->NumLevls,
Size->NumLevls == 1 ? Txt_level :
Txt_levels ,
@ -466,8 +466,9 @@ void BrwSiz_ShowAndStoreSizeOfFileBrowser (const struct BrwSiz_BrowserSize *Size
Txt_folders,
Size->NumFiles,
Size->NumFiles == 1 ? Txt_file :
Txt_files,
FileSizeStr);
Txt_files);
HTM_BR ();
HTM_Txt (FileSizeStr);
if (Size->MaxQuota)
{
@ -481,8 +482,8 @@ void BrwSiz_ShowAndStoreSizeOfFileBrowser (const struct BrwSiz_BrowserSize *Size
Brw_DB_StoreSizeOfFileBrowser (Size);
}
else
HTM_NBSP (); // Blank to occupy the same space as the text for the browser size
// else
// HTM_NBSP (); // Blank to occupy the same space as the text for the browser size
HTM_DIV_End ();
}

View File

@ -633,10 +633,12 @@ Me sale este error, no s
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
*/
#define Log_PLATFORM_VERSION "SWAD 23.55.1 (2024-01-17)"
#define CSS_FILE "swad23.55.css"
#define Log_PLATFORM_VERSION "SWAD 23.57 (2024-01-19)"
#define CSS_FILE "swad23.57.css"
#define JS_FILE "swad23.53.6.js"
/*
Version 23.57: Jan 19, 2024 Responsive design and changes in layout in assignment/works file browsers. (335669 lines)
Version 23.56: Jan 18, 2024 Responsive design and changes in layout in file browsers. (335649 lines)
Version 23.55.1: Jan 17, 2024 Responsive design in groups. (335787 lines)
Version 23.55: Jan 16, 2024 Responsive design in exams. Changes in exam sessions and matches. (335819 lines)
Version 23.54: Dec 20, 2023 Responsive design in games and matches. (335906 lines)

View File

@ -299,15 +299,13 @@ void Inf_ShowInfo (void)
if (ShowWarningNoInfo)
{
if (ICanEdit)
Box_BoxBegin ("100%",Txt_INFO_TITLE[Gbl.Crs.Info.Type],
Inf_PutIconToEditInfo,&Gbl.Crs.Info.Type,
Help[Gbl.Crs.Info.Type],Box_NOT_CLOSABLE);
else
Box_BoxBegin ("100%",Txt_INFO_TITLE[Gbl.Crs.Info.Type],
NULL,NULL,
Help[Gbl.Crs.Info.Type],Box_NOT_CLOSABLE);
Ale_ShowAlert (Ale_INFO,Txt_No_information);
Box_BoxBegin (NULL,Txt_INFO_TITLE[Gbl.Crs.Info.Type],
ICanEdit ? Inf_PutIconToEditInfo :
NULL,
ICanEdit ? &Gbl.Crs.Info.Type :
NULL,
Help[Gbl.Crs.Info.Type],Box_NOT_CLOSABLE);
Ale_ShowAlert (Ale_INFO,Txt_No_information);
Box_BoxEnd ();
}
}

View File

@ -292,7 +292,7 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType,
if (asprintf (&Title,Txt_COURSE_program,
Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0)
Err_NotEnoughMemoryExit ();
Box_BoxBegin ("100%",Title,
Box_BoxBegin (NULL,Title,
FunctionToDrawContextualIcons[ListingType],NULL,
Hlp_COURSE_Program,Box_NOT_CLOSABLE);
free (Title);

View File

@ -1343,15 +1343,15 @@ void Prj_ShowBoxWithOneProject (struct Prj_Projects *Projects)
extern const char *Txt_Project;
/***** Begin box *****/
Box_BoxBegin ("100%",Projects->Prj.Title[0] ? Projects->Prj.Title :
Txt_Project,
Box_BoxBegin (NULL,Projects->Prj.Title[0] ? Projects->Prj.Title :
Txt_Project,
Prj_PutIconsOnePrj,Projects,
Hlp_ASSESSMENT_Projects,Box_NOT_CLOSABLE);
/***** Show project data *****/
HTM_FIELDSET_Begin (NULL);
HTM_LEGEND (Txt_Project);
HTM_TABLE_BeginWidePadding (2);
HTM_TABLE_Begin ("TBL_SCROLL");
/***** Table head and project *****/
Projects->View = Prj_VIEW_ONE_PROJECT;

View File

@ -113,7 +113,6 @@
const unsigned Txt_Current_CGI_SWAD_Language = ((unsigned) L);
const char *Txt_NULL = NULL;
const char *Txt_NEW_LINE = "\r\n"; // End of line in a file. If we put only \n the file does not look good in some Windows text editors
// The HTML entity for "ß" is &szlig; It stands for "S-Z ligature", because this symbol comes from the ligature of a Gothic S and a Z.
@ -894,50 +893,50 @@ const char *Txt_accessible_for_reading_and_writing_by_teachers_of_the_course =
"accessible for reading and writing by teachers of the course"; // Çeviri lazim!
#endif
const char *Txt_accessible_for_reading_and_writing_by_you_and_the_teachers_of_the_course =
const char *Txt_accessible_for_reading_and_writing_by_you_and_the_course_teachers =
#if L==1 // ca
"accessible per a lectura per vost&egrave; i els professors de l'assignatura";
"accessible per a lectura i escriptura per vosaltres i els professors de l'assignatura";
#elif L==2 // de
"zum Schreiben zug&auml;nglich f&uuml;r Sie und die Lehrkr&auml;fte der Kurs";
"f&uuml;r Sie und die Kursleiter zum Lesen und Schreiben zug&auml;nglich";
#elif L==3 // en
"accessible for reading and writing by you and the teachers of the course";
"accessible for reading and writing by you and the course teachers";
#elif L==4 // es
"accesible para lectura por usted y los profesores de la asignatura";
"accesible para lectura y escritura por usted y los profesores de la asignatura";
#elif L==5 // fr
"accessible en lecture et en &eacute;criture par vous et par les &eacute;tudiants et les enseignants de la mati&egrave;re";
"accessible en lecture et en &eacute;criture par vous et les professeurs de la mati&egrave;re";
#elif L==6 // gn
"accesible para lectura por usted y los profesores de la asignatura"; // Okoteve traducción
"accesible omo&ntilde;e'&etilde; ha ohai hagu&atilde; nde ha umi mbo'eh&aacute;ra asignatura rehegua";
#elif L==7 // it
"accessibile per la lettura e la scrittura per te e i professori del corso";
"accessibile in lettura e scrittura da te e dai docenti del corso";
#elif L==8 // pl
"dostep do odczytu i zapisu przez Ciebie i nauczycieli zajec";
"dost&eogon;pne do czytania i pisania przez Ciebie i nauczycieli kursu";
#elif L==9 // pt
"acess&iacute;vel para leitura e escrita por voc&ecirc; e os professores da disciplina";
"acess&iacute;vel para leitura e escrita por voc&ecirc; e pelos professores da disciplina";
#elif L==10 // tr
"accessible for reading and writing by you and the teachers of the course"; // Çeviri lazim!
"siz ve kurs &ouml;&gbreve;retmenleri taraf&inodot;ndan okuma ve yazma i&ccedil;in eri&scedil;ilebilir";
#endif
const char *Txt_accessible_only_for_reading_by_you_and_the_teachers_of_the_course =
const char *Txt_accessible_only_for_reading_by_the_student_and_the_course_teachers =
#if L==1 // ca
"accesible nom&egrave; per a lectura per vost&eacute; i els professors de l'assignatura";
"accessible nom&eacute;s per a lectura per l'estudiant i els professors de l'assignatura";
#elif L==2 // de
"zum Lesen zug&auml;nglich f&uuml;r Sie und die Lehrkr&auml;fte der Kurs";
"nur zur Lekt&uuml;re durch Studierende und Kursleiter zug&auml;nglich";
#elif L==3 // en
"accessible only for reading by you and the teachers of the course";
"accessible only for reading by the student and the course teachers";
#elif L==4 // es
"accesible solo para lectura por usted y los profesores de la asignatura";
"accesible solo para lectura por el estudiante y los profesores de la asignatura";
#elif L==5 // fr
"accessible uniquement pour la lecture par vous et par les &eacute;tudiants et les enseignants de la mati&egrave;re";
"accessible uniquement &agrave; la lecture par l'&eacute;tudiant et les professeurs de la mati&egrave;re";
#elif L==6 // gn
"accesible solo para lectura por usted y los profesores de la asignatura"; // Okoteve traducción
"ojeikekuaa omo&ntilde;e'&etilde; ha&gcirc;u&aacute;nte temimbo'e ha mbo'eh&aacute;ra asignatura rehegua";
#elif L==7 // it
"accessibile solo per la lettura per te e i professori del corso";
"accessibile in sola lettura da parte dello studente e dei docenti del corso";
#elif L==8 // pl
"dost&eogon;pne tylko do czytania przez Ciebie i nauczycieli prowadzacych ten kurs";
"dost&eogon;pne wy&lstrok;&aogon;cznie do czytania przez ucznia i nauczyciela przedmiotu";
#elif L==9 // pt
"acess&iacute;vel apenas para leitura por voc&ecirc; e os professores da disciplina";
"acess&iacute;vel apenas para leitura pelo aluno e pelos professores da disciplina";
#elif L==10 // tr
"accessible only for reading by you and the teachers of the course"; // Çeviri lazim!
"yaln&inodot;zca &ouml;&gbreve;renci ve ders &ouml;&gbreve;retmenlerinin okuyabilece&gbreve;i &scedil;ekilde eri&scedil;ilebilir";
#endif
const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_center =
@ -950,7 +949,7 @@ const char *Txt_accessible_only_for_reading_by_students_and_teachers_of_the_cent
#elif L==4 // es
"accesible solo para lectura por estudiantes y profesores del centro";
#elif L==5 // fr
"accessible uniquement pour la lecture par les &eacute;tudiants et les enseignants du center";
"accessible uniquement &agrave; la lecture par les &eacute;tudiants et les enseignants du center";
#elif L==6 // gn
"accesible solo para lectura por estudiantes y profesores del centro"; // Okoteve traducción
#elif L==7 // it
@ -25693,7 +25692,7 @@ const char *Txt_nobody_else_can_access_this_content =
#elif L==5 // fr
"personne d'autre ne peut acc&eacute;der &agrave; ce contenu";
#elif L==6 // gn
"nadie m&aacute;s puede acceder a este contenido"; // Okoteve traducción
"avave ambue ndaikat&uacute;i oike ko contenido-pe";
#elif L==7 // it
"nessun altro pu&ograve; accedere a questo contenuto";
#elif L==8 // pl
@ -25701,7 +25700,7 @@ const char *Txt_nobody_else_can_access_this_content =
#elif L==9 // pt
"ningu&eacute;m mais pode acessar este conte&uacute;do";
#elif L==10 // tr
"nobody else can access this content"; // Çeviri lazim!
"bu i&ccedil;eri&gbreve;e ba&scedil;ka kimse eri&scedil;emez";
#endif
const char *Txt_Non_editing_teachers_can_create_new_projects =
@ -48917,39 +48916,6 @@ const char *Txt_The_lower_limit_of_correct_answers_must_be_less_than_or_equal_to
" must be less than or equal to the upper limit."; // Çeviri lazim!
#endif
const char *Txt_the_marks_of_a_student_chosen_at_random_ =
#if L==1 // ca
"se mostrar&aacute;n las calificaciones de un estudiante de la asignatura escogido al azar;<br />"
" si ve m&aacute;s de un estudiante, significa que los n&uacute;meros de filas de cabecera o de pie no son correctos"; // Necessita traducció
#elif L==2 // de
"es wird die Bewertung eines nach dem Zufallsprinzip ausgew&auml;ten Studenten angezeigt;<br />"
" wenn Sie mehr als einen Student bedeutet dies, dass die Anzahl der Kopf oder Fuß von Zeilen ist nicht korrekt";
#elif L==3 // en
"the marks of a student chosen at random from the course will be shown;<br />"
" if you see more than one student, it means that the number of header or footer rows is not correct";
#elif L==4 // es
"se mostrar&aacute;n las calificaciones de un estudiante de la asignatura escogido al azar;<br />"
" si ve m&aacute;s de un estudiante, significa que los n&uacute;meros de filas de cabecera o de pie no son correctos";
#elif L==5 // fr
"les notes d'un &eacute;tudiant choisi au hasard dans la mati&egrave;re seront pr&eacute;sent&eacute;s;<br />"
" si vous voyez plus d'un &eacute;tudiant, cela signifie que le nombre de ligned de la t&ecirc;te ou du pied n'est pas correcte";
#elif L==6 // gn
"se mostrar&aacute;n las calificaciones de un estudiante de la asignatura escogido al azar;<br />"
" si ve m&aacute;s de un estudiante, significa que los n&uacute;meros de filas de cabecera o de pie no son correctos"; // Okoteve traducción
#elif L==7 // it
"i risultati di uno studente scelto a caso dal corso verranno mostrati;<br />"
" se si vede pi&uacute; di uno studente, significa che il numero di righe di intestazione o a pi&egrave; di pagina non &egrave; corretto";
#elif L==8 // pl
"the marks of a student chosen at random from the course will be shown;<br />"
" if you see more than one student, it means that the number of header or footer rows is not correct"; // Potrzebujesz tlumaczenie
#elif L==9 // pt
"vai mostrar as notas de um estudante da disciplina escolhido ao acaso;<br />"
" se voc&ecirc; vir mais de um estudante, isso significa que o n&uacute;mero de cabe&ccedil;a ou p&eacute; linhas n&atilde;o est&aacute; correto";
#elif L==10 // tr
"the marks of a student chosen at random from the course will be shown;<br />"
" if you see more than one student, it means that the number of header or footer rows is not correct"; // Çeviri lazim!
#endif
const char *Txt_The_maximum_number_of_students_in_group_X_has_not_changed = // Warning: it is very important to include %s in the following sentences
#if L==1 // ca
"El nombre m&agrave;xim d'estudiants"

View File

@ -361,11 +361,11 @@ void Tmt_ShowClassTimeTable (void)
if (Timetable.ContextualIcons.PutIconEditCrsTT ||
Timetable.ContextualIcons.PutIconEditOfficeHours ||
Timetable.ContextualIcons.PutIconPrint)
Box_BoxBegin ("100%",Txt_TIMETABLE_TYPES[Timetable.Type],
Box_BoxBegin (NULL,Txt_TIMETABLE_TYPES[Timetable.Type],
Tmt_PutContextualIcons,&Timetable,
Help[Timetable.Type],Box_NOT_CLOSABLE);
else
Box_BoxBegin ("100%",Txt_TIMETABLE_TYPES[Timetable.Type],
Box_BoxBegin (NULL,Txt_TIMETABLE_TYPES[Timetable.Type],
NULL,NULL,
NULL,Box_NOT_CLOSABLE);
@ -464,7 +464,7 @@ void Tmt_EditCrsTimeTable (void)
/***** Editable time table *****/
Timetable.Type = Tmt_COURSE_TIMETABLE;
Box_BoxBegin ("100%",Txt_TIMETABLE_TYPES[Timetable.Type],
Box_BoxBegin (NULL,Txt_TIMETABLE_TYPES[Timetable.Type],
Tmt_PutIconToViewCrsTT,NULL,
Hlp_COURSE_Timetable,Box_NOT_CLOSABLE);
Tmt_ShowTimeTable (&Timetable,Gbl.Usrs.Me.UsrDat.UsrCod);
@ -483,7 +483,7 @@ void Tmt_EditMyTutTimeTable (void)
/***** Time table *****/
Timetable.Type = Tmt_TUTORING_TIMETABLE;
Box_BoxBegin ("100%",Txt_TIMETABLE_TYPES[Timetable.Type],
Box_BoxBegin (NULL,Txt_TIMETABLE_TYPES[Timetable.Type],
Tmt_PutIconToViewMyTT,NULL,
Hlp_PROFILE_Timetable,Box_NOT_CLOSABLE);
Tmt_ShowTimeTable (&Timetable,Gbl.Usrs.Me.UsrDat.UsrCod);