mirror of https://github.com/acanas/swad-core.git
Version 23.59: Jan 24, 2024 Responsive design in assignments.
This commit is contained in:
parent
2c21ad6017
commit
733cd629ac
|
@ -1089,8 +1089,7 @@ a:hover /* Default ==> underlined */
|
|||
width:100%;
|
||||
padding:4px 8px;
|
||||
margin:0 auto;
|
||||
text-align:left;
|
||||
vertical-align:top;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
/************** Main central zone with vertical menu and canvas **************/
|
||||
|
@ -1151,8 +1150,7 @@ a:hover /* Default ==> underlined */
|
|||
width:100%;
|
||||
padding:4px 8px;
|
||||
margin:0 auto;
|
||||
text-align:left;
|
||||
vertical-align:top;
|
||||
text-align:center;
|
||||
}
|
||||
#action_title /* Do not display action title */
|
||||
{
|
||||
|
@ -1215,8 +1213,7 @@ a:hover /* Default ==> underlined */
|
|||
box-sizing:border-box;
|
||||
padding:4px 8px;
|
||||
margin:0 auto;
|
||||
text-align:left;
|
||||
vertical-align:top;
|
||||
text-align:center;
|
||||
}
|
||||
#action_title
|
||||
{
|
||||
|
@ -2211,13 +2208,6 @@ a:hover img.CENTER_PHOTO_SHOW
|
|||
margin:0 8px;
|
||||
vertical-align:top;
|
||||
}
|
||||
.FRAME_CONT
|
||||
{
|
||||
box-sizing:border-box;
|
||||
width:100%;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
.FRAME
|
||||
{
|
||||
display:inline-block;
|
||||
|
@ -2226,7 +2216,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,
|
|
@ -1148,8 +1148,7 @@ void Asg_ReqCreatOrEditAsg (void)
|
|||
extern const char *Hlp_ASSESSMENT_Assignments_edit_assignment;
|
||||
extern const char *Txt_Assignment;
|
||||
extern const char *Txt_Title;
|
||||
extern const char *Txt_Upload_files_QUESTION;
|
||||
extern const char *Txt_Folder;
|
||||
extern const char *Folder_to_upload_files;
|
||||
extern const char *Txt_Description;
|
||||
extern const char *Txt_Create;
|
||||
extern const char *Txt_Save_changes;
|
||||
|
@ -1224,14 +1223,14 @@ void Asg_ReqCreatOrEditAsg (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RM","Title",Txt_Title);
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","Title",Txt_Title);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
HTM_INPUT_TEXT ("Title",Asg_MAX_CHARS_ASSIGNMENT_TITLE,Assignments.Asg.Title,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Title\""
|
||||
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\""
|
||||
" class=\"REC_C2_BOT_INPUT INPUT_%s\""
|
||||
" required=\"required\"",
|
||||
The_GetSuffix ());
|
||||
HTM_TD_End ();
|
||||
|
@ -1248,15 +1247,15 @@ void Asg_ReqCreatOrEditAsg (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RM","Folder",Txt_Upload_files_QUESTION);
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","Folder",Folder_to_upload_files);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
HTM_LABEL_Begin ("class=\"DAT_%s\"",The_GetSuffix ());
|
||||
HTM_TxtColon (Txt_Folder);
|
||||
HTM_INPUT_TEXT ("Folder",Brw_MAX_CHARS_FOLDER,Assignments.Asg.Folder,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Folder\" size=\"30\" class=\"INPUT_%s\"",
|
||||
"id=\"Folder\""
|
||||
" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
|
||||
The_GetSuffix ());
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
@ -1267,12 +1266,12 @@ void Asg_ReqCreatOrEditAsg (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RT","Txt",Txt_Description);
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","Txt",Txt_Description);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"10\""
|
||||
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
|
||||
" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
|
||||
The_GetSuffix ());
|
||||
if (!ItsANewAssignment)
|
||||
HTM_Txt (Txt);
|
||||
|
@ -1303,7 +1302,6 @@ void Asg_ReqCreatOrEditAsg (void)
|
|||
|
||||
static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
||||
{
|
||||
extern const char *Hlp_USERS_Groups;
|
||||
extern const char *Txt_Groups;
|
||||
extern const char *Txt_The_whole_course;
|
||||
unsigned NumGrpTyp;
|
||||
|
@ -1313,29 +1311,30 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
|||
|
||||
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
||||
{
|
||||
/***** Begin box and table *****/
|
||||
/***** Begin row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_TxtColon (Txt_Groups);
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
|
||||
Box_BoxTableBegin ("100%",NULL,
|
||||
NULL,NULL,
|
||||
Hlp_USERS_Groups,Box_NOT_CLOSABLE,0);
|
||||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||
|
||||
/* Groups */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_TABLE_Begin (NULL);
|
||||
|
||||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"LM DAT_%s\"",
|
||||
The_GetSuffix ());
|
||||
The_GetSuffix ());
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"WholeCrs\" value=\"Y\"%s"
|
||||
" onclick=\"uncheckChildren(this,'GrpCods')\"",
|
||||
Grp_DB_CheckIfAssociatedToGrps ("asg_groups",
|
||||
"AsgCod",
|
||||
AsgCod) ? "" :
|
||||
"AsgCod",
|
||||
AsgCod) ? "" :
|
||||
" checked=\"checked\"");
|
||||
HTM_TxtF ("%s %s",Txt_The_whole_course,
|
||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName);
|
||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
|
@ -1348,9 +1347,7 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
|||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||
Grp_ASSIGNMENT,AsgCod);
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
|
||||
HTM_TABLE_End ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
|
|
@ -1087,11 +1087,13 @@ static void Att_ShowLstGrpsToEditEvent (long AttCod)
|
|||
{
|
||||
/***** Begin box and table *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_TxtColon (Txt_Groups);
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
Box_BoxTableBegin ("100%",NULL,
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,0);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||
|
||||
/* Groups */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_TABLE_Begin (NULL);
|
||||
|
||||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -1121,8 +1123,7 @@ static void Att_ShowLstGrpsToEditEvent (long AttCod)
|
|||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||
Grp_ATT_EVENT,AttCod);
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
HTM_TABLE_End ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
|
38
swad_box.c
38
swad_box.c
|
@ -145,23 +145,26 @@ static void Box_BoxInternalBegin (const char *Width,const char *Title,
|
|||
else
|
||||
Box_Boxes.Ids[Box_Boxes.Nested] = NULL;
|
||||
|
||||
/***** Begin box container *****/
|
||||
/***** Begin box *****/
|
||||
if (Closable == Box_CLOSABLE)
|
||||
{
|
||||
/* Create unique id for alert */
|
||||
Frm_SetUniqueId (Box_Boxes.Ids[Box_Boxes.Nested]);
|
||||
|
||||
HTM_DIV_Begin ("class=\"FRAME_CONT\" id=\"%s\"",
|
||||
Box_Boxes.Ids[Box_Boxes.Nested]);
|
||||
if (Width)
|
||||
HTM_DIV_Begin ("id=\"%s\" class=\"%s\" style=\"width:%s;\"",
|
||||
Box_Boxes.Ids[Box_Boxes.Nested],ClassFrame,Width);
|
||||
else
|
||||
HTM_DIV_Begin ("id=\"%s\" class=\"%s\"",
|
||||
Box_Boxes.Ids[Box_Boxes.Nested],ClassFrame);
|
||||
}
|
||||
else
|
||||
HTM_DIV_Begin ("class=\"FRAME_CONT\"");
|
||||
|
||||
/***** Begin box *****/
|
||||
if (Width)
|
||||
HTM_DIV_Begin ("class=\"%s\" style=\"width:%s;\"",ClassFrame,Width);
|
||||
else
|
||||
HTM_DIV_Begin ("class=\"%s\"",ClassFrame);
|
||||
{
|
||||
if (Width)
|
||||
HTM_DIV_Begin ("class=\"%s\" style=\"width:%s;\"",ClassFrame,Width);
|
||||
else
|
||||
HTM_DIV_Begin ("class=\"%s\"",ClassFrame);
|
||||
}
|
||||
|
||||
/***** Row for left and right icons *****/
|
||||
if (FunctionToDrawContextualIcons ||
|
||||
|
@ -237,16 +240,15 @@ void Box_BoxWithButtonEnd (Btn_Button_t Button,const char *TxtButton)
|
|||
|
||||
void Box_BoxEnd (void)
|
||||
{
|
||||
/***** Check level of nesting *****/
|
||||
if (Box_Boxes.Nested < 0)
|
||||
Err_ShowErrorAndExit ("Trying to end a box not open.");
|
||||
/***** Check level of nesting *****/
|
||||
if (Box_Boxes.Nested < 0)
|
||||
Err_ShowErrorAndExit ("Trying to end a box not open.");
|
||||
|
||||
/***** Free memory allocated for box id string *****/
|
||||
if (Box_Boxes.Ids[Box_Boxes.Nested])
|
||||
free (Box_Boxes.Ids[Box_Boxes.Nested]);
|
||||
/***** Free memory allocated for box id string *****/
|
||||
if (Box_Boxes.Ids[Box_Boxes.Nested])
|
||||
free (Box_Boxes.Ids[Box_Boxes.Nested]);
|
||||
|
||||
/***** End box and box container *****/
|
||||
HTM_DIV_End ();
|
||||
/***** End box *****/
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** Decrease level of nesting *****/
|
||||
|
|
|
@ -760,7 +760,7 @@ static void CtrCfg_NumUsrs (void)
|
|||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
|
||||
HTM_Unsigned (Hie_GetCachedNumUsrsWhoClaimToBelongTo (Hie_CTR,
|
||||
&Gbl.Hierarchy.Node[Hie_CTR]));
|
||||
&Gbl.Hierarchy.Node[Hie_CTR]));
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
|
|
@ -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.58 (2024-01-20)"
|
||||
#define CSS_FILE "swad23.57.css"
|
||||
#define Log_PLATFORM_VERSION "SWAD 23.59 (2024-01-24)"
|
||||
#define CSS_FILE "swad23.58.1.css"
|
||||
#define JS_FILE "swad23.53.6.js"
|
||||
/*
|
||||
Version 23.59: Jan 24, 2024 Responsive design in assignments. (335664 lines)
|
||||
Version 23.58.1: Jan 20, 2024 Changes in layout. (335670 lines)
|
||||
Version 23.58: Jan 20, 2024 Responsive design and layout changes in exam sets. (335673 lines)
|
||||
Version 23.57.3: Jan 19, 2024 Responsive design in exam results. (335676 lines)
|
||||
Version 23.57.2: Jan 19, 2024 Responsive design in attendance. (335675 lines)
|
||||
|
|
|
@ -943,10 +943,10 @@ static void ExaSes_PutFormSession (struct ExaSes_Session *Session)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RT","Title",Txt_Title);
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","Title",Txt_Title);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_INPUT_TEXT ("Title",ExaSes_MAX_CHARS_TITLE,Session->Title,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Title\" class=\"REC_C2_BOT_INPUT INPUT_%s\""
|
||||
|
@ -993,13 +993,15 @@ static void ExaSes_ShowLstGrpsToCreateSession (long SesCod)
|
|||
|
||||
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
||||
{
|
||||
/***** Begin box and table *****/
|
||||
/***** Begin row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_TxtColon (Txt_Groups);
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
Box_BoxTableBegin ("100%",NULL,
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,0);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||
|
||||
/* Groups */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_TABLE_Begin (NULL);
|
||||
|
||||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -1029,8 +1031,7 @@ static void ExaSes_ShowLstGrpsToCreateSession (long SesCod)
|
|||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||
Grp_EXA_EVENT,SesCod);
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
HTM_TABLE_End ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
|
|
@ -520,7 +520,7 @@ static void ExaSet_ListSetQuestions (struct Exa_Exams *Exams,
|
|||
bool ICanEditQuestions = Exa_CheckIfEditable (&Exams->Exam);
|
||||
|
||||
/***** Begin box *****/
|
||||
Box_BoxBegin ("100%",Txt_Questions,
|
||||
Box_BoxBegin (NULL,Txt_Questions,
|
||||
ICanEditQuestions ? ExaSet_PutIconToAddNewQuestions :
|
||||
NULL,
|
||||
ICanEditQuestions ? Exams :
|
||||
|
|
172
swad_help.c
172
swad_help.c
|
@ -122,108 +122,110 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Txt_If_you_can_not_find_your_institution_your_center_your_degree_or_your_courses_you_can_create_them);
|
||||
|
||||
/***** Begin box and table *****/
|
||||
Box_BoxTableBegin (NULL,Txt_What_would_you_like_to_do,
|
||||
NULL,NULL,
|
||||
NULL,Box_CLOSABLE,2);
|
||||
HTM_DIV_Begin (NULL);
|
||||
Box_BoxTableBegin (NULL,Txt_What_would_you_like_to_do,
|
||||
NULL,NULL,
|
||||
NULL,Box_CLOSABLE,2);
|
||||
|
||||
if (Gbl.Usrs.Me.Logged) // I am logged
|
||||
{
|
||||
if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected
|
||||
if (Gbl.Usrs.Me.Logged) // I am logged
|
||||
{
|
||||
if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) // I belong to this course
|
||||
if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected
|
||||
{
|
||||
if (Gbl.Action.Act != ActLogIn &&
|
||||
Gbl.Action.Act != ActLogInNew &&
|
||||
Gbl.Action.Act != ActLogInLan) // I am not just logged
|
||||
if (ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs] != ActUnk)
|
||||
{
|
||||
/***** Request my removing from this course *****/
|
||||
if (asprintf (&Description,Txt_Remove_me_from_THE_COURSE_X,
|
||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs],
|
||||
Btn_REMOVE_BUTTON,Txt_Remove_me);
|
||||
free (Description);
|
||||
}
|
||||
}
|
||||
else // I do not belong to this course
|
||||
{
|
||||
/***** Request my registration in this course *****/
|
||||
if (asprintf (&Description,Txt_Register_me_in_X,
|
||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
ActReqSignUp,
|
||||
Btn_CREATE_BUTTON,Txt_Sign_up);
|
||||
free (Description);
|
||||
}
|
||||
}
|
||||
|
||||
if (Gbl.Usrs.Me.Hierarchy[Hie_CRS].Num) // I am enroled in some courses
|
||||
{
|
||||
if (Gbl.Hierarchy.Level == Hie_CRS && // Course selected
|
||||
Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs == Rol_TCH) // I am a teacher in current course
|
||||
if (!Enr_GetCachedNumUsrsInCrss (Hie_CRS,Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
||||
1 << Rol_STD)) // Current course probably has no students
|
||||
if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) // I belong to this course
|
||||
{
|
||||
/***** Request students enrolment *****/
|
||||
if (asprintf (&Description,Txt_Register_students_in_COURSE_X,
|
||||
if (Gbl.Action.Act != ActLogIn &&
|
||||
Gbl.Action.Act != ActLogInNew &&
|
||||
Gbl.Action.Act != ActLogInLan) // I am not just logged
|
||||
if (ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs] != ActUnk)
|
||||
{
|
||||
/***** Request my removing from this course *****/
|
||||
if (asprintf (&Description,Txt_Remove_me_from_THE_COURSE_X,
|
||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs],
|
||||
Btn_REMOVE_BUTTON,Txt_Remove_me);
|
||||
free (Description);
|
||||
}
|
||||
}
|
||||
else // I do not belong to this course
|
||||
{
|
||||
/***** Request my registration in this course *****/
|
||||
if (asprintf (&Description,Txt_Register_me_in_X,
|
||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
ActReqEnrSevStd,
|
||||
Btn_CREATE_BUTTON,Txt_Register_students);
|
||||
ActReqSignUp,
|
||||
Btn_CREATE_BUTTON,Txt_Sign_up);
|
||||
free (Description);
|
||||
}
|
||||
}
|
||||
|
||||
if (Gbl.Action.Act != ActMyCrs) // I am not seeing the action to list my courses
|
||||
/***** Request list my courses *****/
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Go_to_one_of_my_courses,
|
||||
ActMyCrs,
|
||||
Btn_CONFIRM_BUTTON,Txt_My_courses);
|
||||
if (Gbl.Usrs.Me.Hierarchy[Hie_CRS].Num) // I am enroled in some courses
|
||||
{
|
||||
if (Gbl.Hierarchy.Level == Hie_CRS && // Course selected
|
||||
Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs == Rol_TCH) // I am a teacher in current course
|
||||
if (!Enr_GetCachedNumUsrsInCrss (Hie_CRS,Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
||||
1 << Rol_STD)) // Current course probably has no students
|
||||
{
|
||||
/***** Request students enrolment *****/
|
||||
if (asprintf (&Description,Txt_Register_students_in_COURSE_X,
|
||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
ActReqEnrSevStd,
|
||||
Btn_CREATE_BUTTON,Txt_Register_students);
|
||||
free (Description);
|
||||
}
|
||||
|
||||
if (Gbl.Action.Act != ActMyCrs) // I am not seeing the action to list my courses
|
||||
/***** Request list my courses *****/
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Go_to_one_of_my_courses,
|
||||
ActMyCrs,
|
||||
Btn_CONFIRM_BUTTON,Txt_My_courses);
|
||||
}
|
||||
|
||||
/***** Go to list of hierarchy subnodes
|
||||
to select or create a new one *****/
|
||||
if (Gbl.Hierarchy.Level >= Hie_SYS &&
|
||||
Gbl.Hierarchy.Level <= Hie_DEG)
|
||||
{
|
||||
if (asprintf (&Description,*(SelectOrCreate[Gbl.Hierarchy.Level].Description),
|
||||
Gbl.Hierarchy.Node[Gbl.Hierarchy.Level].ShrtName) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
SelectOrCreate[Gbl.Hierarchy.Level].Action,
|
||||
Btn_CONFIRM_BUTTON,
|
||||
Txt_HIERARCHY_PLURAL_Abc[Gbl.Hierarchy.Level + 1]);
|
||||
free (Description);
|
||||
}
|
||||
|
||||
if (!Gbl.Usrs.Me.MyPhotoExists) // I have no photo
|
||||
/***** Upload my photo *****/
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Upload_my_picture,
|
||||
ActReqMyPho,
|
||||
Btn_CREATE_BUTTON,Txt_Upload_photo);
|
||||
}
|
||||
|
||||
/***** Go to list of hierarchy subnodes
|
||||
to select or create a new one *****/
|
||||
if (Gbl.Hierarchy.Level >= Hie_SYS &&
|
||||
Gbl.Hierarchy.Level <= Hie_DEG)
|
||||
else // I am not logged
|
||||
{
|
||||
if (asprintf (&Description,*(SelectOrCreate[Gbl.Hierarchy.Level].Description),
|
||||
Gbl.Hierarchy.Node[Gbl.Hierarchy.Level].ShrtName) < 0)
|
||||
/***** Log in *****/
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Log_in,
|
||||
ActFrmLogIn,
|
||||
Btn_CONFIRM_BUTTON,Txt_Log_in);
|
||||
|
||||
/***** Sign up *****/
|
||||
if (asprintf (&Description,Txt_New_on_PLATFORM_Sign_up,
|
||||
Cfg_PLATFORM_SHORT_NAME) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
SelectOrCreate[Gbl.Hierarchy.Level].Action,
|
||||
Btn_CONFIRM_BUTTON,
|
||||
Txt_HIERARCHY_PLURAL_Abc[Gbl.Hierarchy.Level + 1]);
|
||||
ActFrmMyAcc,
|
||||
Btn_CREATE_BUTTON,Txt_Actions[ActCreUsrAcc]);
|
||||
free (Description);
|
||||
}
|
||||
|
||||
if (!Gbl.Usrs.Me.MyPhotoExists) // I have no photo
|
||||
/***** Upload my photo *****/
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Upload_my_picture,
|
||||
ActReqMyPho,
|
||||
Btn_CREATE_BUTTON,Txt_Upload_photo);
|
||||
}
|
||||
else // I am not logged
|
||||
{
|
||||
/***** Log in *****/
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Log_in,
|
||||
ActFrmLogIn,
|
||||
Btn_CONFIRM_BUTTON,Txt_Log_in);
|
||||
|
||||
/***** Sign up *****/
|
||||
if (asprintf (&Description,Txt_New_on_PLATFORM_Sign_up,
|
||||
Cfg_PLATFORM_SHORT_NAME) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||
ActFrmMyAcc,
|
||||
Btn_CREATE_BUTTON,Txt_Actions[ActCreUsrAcc]);
|
||||
free (Description);
|
||||
}
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
23
swad_match.c
23
swad_match.c
|
@ -1202,13 +1202,14 @@ static void Mch_PutFormMatch (struct Mch_Match *Match)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RT","Title",Txt_Title);
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","Title",Txt_Title);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_INPUT_TEXT ("Title",Mch_MAX_CHARS_TITLE,Match->Title,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Title\" size=\"45\" class=\"INPUT_%s\""
|
||||
"id=\"Title\""
|
||||
" class=\"REC_C2_BOT_INPUT INPUT_%s\""
|
||||
" required=\"required\"",
|
||||
The_GetSuffix ());
|
||||
HTM_TD_End ();
|
||||
|
@ -1247,14 +1248,14 @@ static void Mch_ShowLstGrpsToEditMatch (long MchCod)
|
|||
|
||||
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
||||
{
|
||||
/***** Begin box and table *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_TxtColon (Txt_Groups);
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
|
||||
Box_BoxTableBegin ("100%",NULL,
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,0);
|
||||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||
|
||||
/* Groups */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_TABLE_Begin (NULL);
|
||||
|
||||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -1284,9 +1285,7 @@ static void Mch_ShowLstGrpsToEditMatch (long MchCod)
|
|||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||
Grp_MATCH,MchCod);
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
|
||||
HTM_TABLE_End ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
|
|
@ -1820,11 +1820,13 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
|
|||
{
|
||||
/***** Begin box and table *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_TxtColon (Txt_Groups);
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
Box_BoxTableBegin ("100%",NULL,
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,0);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||
|
||||
/* Groups */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||
HTM_TABLE_Begin (NULL);
|
||||
|
||||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -1852,8 +1854,7 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
|
|||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||
Grp_SURVEY,SvyCod);
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
HTM_TABLE_End ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
|
46
swad_text.c
46
swad_text.c
|
@ -13326,6 +13326,29 @@ const char *Txt_Folder_X_removed = // Warning: it is very important to include %
|
|||
"Folder <strong>%s</strong> removed."; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Folder_to_upload_files =
|
||||
#if L==1 // ca
|
||||
"Carpeta per pujar arxius?";
|
||||
#elif L==2 // de
|
||||
"Ordner zum Hochladen von Dateien?";
|
||||
#elif L==3 // en
|
||||
"Folder to upload files?";
|
||||
#elif L==4 // es
|
||||
"¿Carpeta para subir archivos?";
|
||||
#elif L==5 // fr
|
||||
"Dossier pour t%eacute;lécharger des fichiers?";
|
||||
#elif L==6 // gn
|
||||
"Carpeta ojegueraha hag>ilde;ua archivo-kuéra?";
|
||||
#elif L==7 // it
|
||||
"Cartella per caricare i file?";
|
||||
#elif L==8 // pl
|
||||
"Folder do przesłania plików?";
|
||||
#elif L==9 // pt
|
||||
"Pasta para fazer upload de arquivos?";
|
||||
#elif L==10 // tr
|
||||
"Dosyaların yükleneceği klasör?";
|
||||
#endif
|
||||
|
||||
const char *Txt_Folders =
|
||||
#if L==1 // ca
|
||||
"Carpetes";
|
||||
|
@ -55516,29 +55539,6 @@ const char *Txt_Upload_files =
|
|||
"Upload files"; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Upload_files_QUESTION =
|
||||
#if L==1 // ca
|
||||
"Enviar arxius?";
|
||||
#elif L==2 // de
|
||||
"Upload Dateien?";
|
||||
#elif L==3 // en
|
||||
"Upload files?";
|
||||
#elif L==4 // es
|
||||
"¿Enviar archivos?";
|
||||
#elif L==5 // fr
|
||||
"Télécharger fichiers?";
|
||||
#elif L==6 // gn
|
||||
"¿Envia archivos?"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Caricare file?";
|
||||
#elif L==8 // pl
|
||||
"Przesyłać pliki?";
|
||||
#elif L==9 // pt
|
||||
"Fazer upload de arquivos?";
|
||||
#elif L==10 // tr
|
||||
"Upload files?"; // Çeviri lazim!
|
||||
#endif
|
||||
|
||||
const char *Txt_Upload_my_picture =
|
||||
#if L==1 // ca
|
||||
"Pujar la meva fotografia";
|
||||
|
|
Loading…
Reference in New Issue