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%;
|
width:100%;
|
||||||
padding:4px 8px;
|
padding:4px 8px;
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
text-align:left;
|
text-align:center;
|
||||||
vertical-align:top;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/************** Main central zone with vertical menu and canvas **************/
|
/************** Main central zone with vertical menu and canvas **************/
|
||||||
|
@ -1151,8 +1150,7 @@ a:hover /* Default ==> underlined */
|
||||||
width:100%;
|
width:100%;
|
||||||
padding:4px 8px;
|
padding:4px 8px;
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
text-align:left;
|
text-align:center;
|
||||||
vertical-align:top;
|
|
||||||
}
|
}
|
||||||
#action_title /* Do not display action title */
|
#action_title /* Do not display action title */
|
||||||
{
|
{
|
||||||
|
@ -1215,8 +1213,7 @@ a:hover /* Default ==> underlined */
|
||||||
box-sizing:border-box;
|
box-sizing:border-box;
|
||||||
padding:4px 8px;
|
padding:4px 8px;
|
||||||
margin:0 auto;
|
margin:0 auto;
|
||||||
text-align:left;
|
text-align:center;
|
||||||
vertical-align:top;
|
|
||||||
}
|
}
|
||||||
#action_title
|
#action_title
|
||||||
{
|
{
|
||||||
|
@ -2211,13 +2208,6 @@ a:hover img.CENTER_PHOTO_SHOW
|
||||||
margin:0 8px;
|
margin:0 8px;
|
||||||
vertical-align:top;
|
vertical-align:top;
|
||||||
}
|
}
|
||||||
.FRAME_CONT
|
|
||||||
{
|
|
||||||
box-sizing:border-box;
|
|
||||||
width:100%;
|
|
||||||
text-align:center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.FRAME
|
.FRAME
|
||||||
{
|
{
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
|
@ -2226,7 +2216,7 @@ a:hover img.CENTER_PHOTO_SHOW
|
||||||
padding:10px;
|
padding:10px;
|
||||||
border-radius:2px;
|
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);
|
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;
|
overflow:hidden;
|
||||||
}
|
}
|
||||||
.FRAME_WHITE,
|
.FRAME_WHITE,
|
|
@ -1148,8 +1148,7 @@ void Asg_ReqCreatOrEditAsg (void)
|
||||||
extern const char *Hlp_ASSESSMENT_Assignments_edit_assignment;
|
extern const char *Hlp_ASSESSMENT_Assignments_edit_assignment;
|
||||||
extern const char *Txt_Assignment;
|
extern const char *Txt_Assignment;
|
||||||
extern const char *Txt_Title;
|
extern const char *Txt_Title;
|
||||||
extern const char *Txt_Upload_files_QUESTION;
|
extern const char *Folder_to_upload_files;
|
||||||
extern const char *Txt_Folder;
|
|
||||||
extern const char *Txt_Description;
|
extern const char *Txt_Description;
|
||||||
extern const char *Txt_Create;
|
extern const char *Txt_Create;
|
||||||
extern const char *Txt_Save_changes;
|
extern const char *Txt_Save_changes;
|
||||||
|
@ -1224,14 +1223,14 @@ void Asg_ReqCreatOrEditAsg (void)
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
/* Label */
|
/* Label */
|
||||||
Frm_LabelColumn ("RM","Title",Txt_Title);
|
Frm_LabelColumn ("REC_C1_BOT RM","Title",Txt_Title);
|
||||||
|
|
||||||
/* Data */
|
/* 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_INPUT_TEXT ("Title",Asg_MAX_CHARS_ASSIGNMENT_TITLE,Assignments.Asg.Title,
|
||||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||||
"id=\"Title\""
|
"id=\"Title\""
|
||||||
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\""
|
" class=\"REC_C2_BOT_INPUT INPUT_%s\""
|
||||||
" required=\"required\"",
|
" required=\"required\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -1248,15 +1247,15 @@ void Asg_ReqCreatOrEditAsg (void)
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
/* Label */
|
/* Label */
|
||||||
Frm_LabelColumn ("RM","Folder",Txt_Upload_files_QUESTION);
|
Frm_LabelColumn ("REC_C1_BOT RM","Folder",Folder_to_upload_files);
|
||||||
|
|
||||||
/* Data */
|
/* Data */
|
||||||
HTM_TD_Begin ("class=\"LM\"");
|
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||||
HTM_LABEL_Begin ("class=\"DAT_%s\"",The_GetSuffix ());
|
HTM_LABEL_Begin ("class=\"DAT_%s\"",The_GetSuffix ());
|
||||||
HTM_TxtColon (Txt_Folder);
|
|
||||||
HTM_INPUT_TEXT ("Folder",Brw_MAX_CHARS_FOLDER,Assignments.Asg.Folder,
|
HTM_INPUT_TEXT ("Folder",Brw_MAX_CHARS_FOLDER,Assignments.Asg.Folder,
|
||||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||||
"id=\"Folder\" size=\"30\" class=\"INPUT_%s\"",
|
"id=\"Folder\""
|
||||||
|
" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_LABEL_End ();
|
HTM_LABEL_End ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -1267,12 +1266,12 @@ void Asg_ReqCreatOrEditAsg (void)
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
/* Label */
|
/* Label */
|
||||||
Frm_LabelColumn ("RT","Txt",Txt_Description);
|
Frm_LabelColumn ("REC_C1_BOT RT","Txt",Txt_Description);
|
||||||
|
|
||||||
/* Data */
|
/* Data */
|
||||||
HTM_TD_Begin ("class=\"LT\"");
|
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||||
HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"10\""
|
HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"10\""
|
||||||
" class=\"TITLE_DESCRIPTION_WIDTH INPUT_%s\"",
|
" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
if (!ItsANewAssignment)
|
if (!ItsANewAssignment)
|
||||||
HTM_Txt (Txt);
|
HTM_Txt (Txt);
|
||||||
|
@ -1303,7 +1302,6 @@ void Asg_ReqCreatOrEditAsg (void)
|
||||||
|
|
||||||
static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_USERS_Groups;
|
|
||||||
extern const char *Txt_Groups;
|
extern const char *Txt_Groups;
|
||||||
extern const char *Txt_The_whole_course;
|
extern const char *Txt_The_whole_course;
|
||||||
unsigned NumGrpTyp;
|
unsigned NumGrpTyp;
|
||||||
|
@ -1313,29 +1311,30 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
||||||
|
|
||||||
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
||||||
{
|
{
|
||||||
/***** Begin box and table *****/
|
/***** Begin row *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
HTM_TD_TxtColon (Txt_Groups);
|
|
||||||
HTM_TD_Begin ("class=\"LT\"");
|
|
||||||
|
|
||||||
Box_BoxTableBegin ("100%",NULL,
|
/* Label */
|
||||||
NULL,NULL,
|
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||||
Hlp_USERS_Groups,Box_NOT_CLOSABLE,0);
|
|
||||||
|
/* Groups */
|
||||||
|
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||||
|
HTM_TABLE_Begin (NULL);
|
||||||
|
|
||||||
/***** First row: checkbox to select the whole course *****/
|
/***** First row: checkbox to select the whole course *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
HTM_TD_Begin ("colspan=\"7\" class=\"LM DAT_%s\"",
|
HTM_TD_Begin ("colspan=\"7\" class=\"LM DAT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_LABEL_Begin (NULL);
|
HTM_LABEL_Begin (NULL);
|
||||||
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||||
"id=\"WholeCrs\" value=\"Y\"%s"
|
"id=\"WholeCrs\" value=\"Y\"%s"
|
||||||
" onclick=\"uncheckChildren(this,'GrpCods')\"",
|
" onclick=\"uncheckChildren(this,'GrpCods')\"",
|
||||||
Grp_DB_CheckIfAssociatedToGrps ("asg_groups",
|
Grp_DB_CheckIfAssociatedToGrps ("asg_groups",
|
||||||
"AsgCod",
|
"AsgCod",
|
||||||
AsgCod) ? "" :
|
AsgCod) ? "" :
|
||||||
" checked=\"checked\"");
|
" checked=\"checked\"");
|
||||||
HTM_TxtF ("%s %s",Txt_The_whole_course,
|
HTM_TxtF ("%s %s",Txt_The_whole_course,
|
||||||
Gbl.Hierarchy.Node[Hie_CRS].ShrtName);
|
Gbl.Hierarchy.Node[Hie_CRS].ShrtName);
|
||||||
HTM_LABEL_End ();
|
HTM_LABEL_End ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
|
@ -1348,9 +1347,7 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
||||||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
Grp_ASSIGNMENT,AsgCod);
|
Grp_ASSIGNMENT,AsgCod);
|
||||||
|
|
||||||
/***** End table and box *****/
|
HTM_TABLE_End ();
|
||||||
Box_BoxTableEnd ();
|
|
||||||
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1087,11 +1087,13 @@ static void Att_ShowLstGrpsToEditEvent (long AttCod)
|
||||||
{
|
{
|
||||||
/***** Begin box and table *****/
|
/***** Begin box and table *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
HTM_TD_TxtColon (Txt_Groups);
|
|
||||||
HTM_TD_Begin ("class=\"LT\"");
|
/* Label */
|
||||||
Box_BoxTableBegin ("100%",NULL,
|
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||||
NULL,NULL,
|
|
||||||
NULL,Box_NOT_CLOSABLE,0);
|
/* Groups */
|
||||||
|
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||||
|
HTM_TABLE_Begin (NULL);
|
||||||
|
|
||||||
/***** First row: checkbox to select the whole course *****/
|
/***** First row: checkbox to select the whole course *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
@ -1121,8 +1123,7 @@ static void Att_ShowLstGrpsToEditEvent (long AttCod)
|
||||||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
Grp_ATT_EVENT,AttCod);
|
Grp_ATT_EVENT,AttCod);
|
||||||
|
|
||||||
/***** End table and box *****/
|
HTM_TABLE_End ();
|
||||||
Box_BoxTableEnd ();
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
HTM_TR_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
|
else
|
||||||
Box_Boxes.Ids[Box_Boxes.Nested] = NULL;
|
Box_Boxes.Ids[Box_Boxes.Nested] = NULL;
|
||||||
|
|
||||||
/***** Begin box container *****/
|
/***** Begin box *****/
|
||||||
if (Closable == Box_CLOSABLE)
|
if (Closable == Box_CLOSABLE)
|
||||||
{
|
{
|
||||||
/* Create unique id for alert */
|
/* Create unique id for alert */
|
||||||
Frm_SetUniqueId (Box_Boxes.Ids[Box_Boxes.Nested]);
|
Frm_SetUniqueId (Box_Boxes.Ids[Box_Boxes.Nested]);
|
||||||
|
|
||||||
HTM_DIV_Begin ("class=\"FRAME_CONT\" id=\"%s\"",
|
if (Width)
|
||||||
Box_Boxes.Ids[Box_Boxes.Nested]);
|
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
|
else
|
||||||
HTM_DIV_Begin ("class=\"FRAME_CONT\"");
|
{
|
||||||
|
if (Width)
|
||||||
/***** Begin box *****/
|
HTM_DIV_Begin ("class=\"%s\" style=\"width:%s;\"",ClassFrame,Width);
|
||||||
if (Width)
|
else
|
||||||
HTM_DIV_Begin ("class=\"%s\" style=\"width:%s;\"",ClassFrame,Width);
|
HTM_DIV_Begin ("class=\"%s\"",ClassFrame);
|
||||||
else
|
}
|
||||||
HTM_DIV_Begin ("class=\"%s\"",ClassFrame);
|
|
||||||
|
|
||||||
/***** Row for left and right icons *****/
|
/***** Row for left and right icons *****/
|
||||||
if (FunctionToDrawContextualIcons ||
|
if (FunctionToDrawContextualIcons ||
|
||||||
|
@ -237,16 +240,15 @@ void Box_BoxWithButtonEnd (Btn_Button_t Button,const char *TxtButton)
|
||||||
|
|
||||||
void Box_BoxEnd (void)
|
void Box_BoxEnd (void)
|
||||||
{
|
{
|
||||||
/***** Check level of nesting *****/
|
/***** Check level of nesting *****/
|
||||||
if (Box_Boxes.Nested < 0)
|
if (Box_Boxes.Nested < 0)
|
||||||
Err_ShowErrorAndExit ("Trying to end a box not open.");
|
Err_ShowErrorAndExit ("Trying to end a box not open.");
|
||||||
|
|
||||||
/***** Free memory allocated for box id string *****/
|
/***** Free memory allocated for box id string *****/
|
||||||
if (Box_Boxes.Ids[Box_Boxes.Nested])
|
if (Box_Boxes.Ids[Box_Boxes.Nested])
|
||||||
free (Box_Boxes.Ids[Box_Boxes.Nested]);
|
free (Box_Boxes.Ids[Box_Boxes.Nested]);
|
||||||
|
|
||||||
/***** End box and box container *****/
|
/***** End box *****/
|
||||||
HTM_DIV_End ();
|
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
|
|
||||||
/***** Decrease level of nesting *****/
|
/***** Decrease level of nesting *****/
|
||||||
|
|
|
@ -760,7 +760,7 @@ static void CtrCfg_NumUsrs (void)
|
||||||
/* Data */
|
/* Data */
|
||||||
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
|
HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ());
|
||||||
HTM_Unsigned (Hie_GetCachedNumUsrsWhoClaimToBelongTo (Hie_CTR,
|
HTM_Unsigned (Hie_GetCachedNumUsrsWhoClaimToBelongTo (Hie_CTR,
|
||||||
&Gbl.Hierarchy.Node[Hie_CTR]));
|
&Gbl.Hierarchy.Node[Hie_CTR]));
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
HTM_TR_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')
|
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 23.58 (2024-01-20)"
|
#define Log_PLATFORM_VERSION "SWAD 23.59 (2024-01-24)"
|
||||||
#define CSS_FILE "swad23.57.css"
|
#define CSS_FILE "swad23.58.1.css"
|
||||||
#define JS_FILE "swad23.53.6.js"
|
#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.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.3: Jan 19, 2024 Responsive design in exam results. (335676 lines)
|
||||||
Version 23.57.2: Jan 19, 2024 Responsive design in attendance. (335675 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);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
/* Label */
|
/* Label */
|
||||||
Frm_LabelColumn ("RT","Title",Txt_Title);
|
Frm_LabelColumn ("REC_C1_BOT RT","Title",Txt_Title);
|
||||||
|
|
||||||
/* Data */
|
/* 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_INPUT_TEXT ("Title",ExaSes_MAX_CHARS_TITLE,Session->Title,
|
||||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||||
"id=\"Title\" class=\"REC_C2_BOT_INPUT INPUT_%s\""
|
"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)
|
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
||||||
{
|
{
|
||||||
/***** Begin box and table *****/
|
/***** Begin row *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
HTM_TD_TxtColon (Txt_Groups);
|
|
||||||
HTM_TD_Begin ("class=\"LT\"");
|
/* Label */
|
||||||
Box_BoxTableBegin ("100%",NULL,
|
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||||
NULL,NULL,
|
|
||||||
NULL,Box_NOT_CLOSABLE,0);
|
/* Groups */
|
||||||
|
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||||
|
HTM_TABLE_Begin (NULL);
|
||||||
|
|
||||||
/***** First row: checkbox to select the whole course *****/
|
/***** First row: checkbox to select the whole course *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
@ -1029,8 +1031,7 @@ static void ExaSes_ShowLstGrpsToCreateSession (long SesCod)
|
||||||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
Grp_EXA_EVENT,SesCod);
|
Grp_EXA_EVENT,SesCod);
|
||||||
|
|
||||||
/***** End table and box *****/
|
HTM_TABLE_End ();
|
||||||
Box_BoxTableEnd ();
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -520,7 +520,7 @@ static void ExaSet_ListSetQuestions (struct Exa_Exams *Exams,
|
||||||
bool ICanEditQuestions = Exa_CheckIfEditable (&Exams->Exam);
|
bool ICanEditQuestions = Exa_CheckIfEditable (&Exams->Exam);
|
||||||
|
|
||||||
/***** Begin box *****/
|
/***** Begin box *****/
|
||||||
Box_BoxBegin ("100%",Txt_Questions,
|
Box_BoxBegin (NULL,Txt_Questions,
|
||||||
ICanEditQuestions ? ExaSet_PutIconToAddNewQuestions :
|
ICanEditQuestions ? ExaSet_PutIconToAddNewQuestions :
|
||||||
NULL,
|
NULL,
|
||||||
ICanEditQuestions ? Exams :
|
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);
|
Txt_If_you_can_not_find_your_institution_your_center_your_degree_or_your_courses_you_can_create_them);
|
||||||
|
|
||||||
/***** Begin box and table *****/
|
/***** Begin box and table *****/
|
||||||
Box_BoxTableBegin (NULL,Txt_What_would_you_like_to_do,
|
HTM_DIV_Begin (NULL);
|
||||||
NULL,NULL,
|
Box_BoxTableBegin (NULL,Txt_What_would_you_like_to_do,
|
||||||
NULL,Box_CLOSABLE,2);
|
NULL,NULL,
|
||||||
|
NULL,Box_CLOSABLE,2);
|
||||||
|
|
||||||
if (Gbl.Usrs.Me.Logged) // I am logged
|
if (Gbl.Usrs.Me.Logged) // I am logged
|
||||||
{
|
|
||||||
if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected
|
|
||||||
{
|
{
|
||||||
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 &&
|
if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) // I belong to this course
|
||||||
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
|
|
||||||
{
|
{
|
||||||
/***** Request students enrolment *****/
|
if (Gbl.Action.Act != ActLogIn &&
|
||||||
if (asprintf (&Description,Txt_Register_students_in_COURSE_X,
|
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)
|
Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0)
|
||||||
Err_NotEnoughMemoryExit ();
|
Err_NotEnoughMemoryExit ();
|
||||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||||
ActReqEnrSevStd,
|
ActReqSignUp,
|
||||||
Btn_CREATE_BUTTON,Txt_Register_students);
|
Btn_CREATE_BUTTON,Txt_Sign_up);
|
||||||
free (Description);
|
free (Description);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Gbl.Action.Act != ActMyCrs) // I am not seeing the action to list my courses
|
if (Gbl.Usrs.Me.Hierarchy[Hie_CRS].Num) // I am enroled in some courses
|
||||||
/***** Request list my courses *****/
|
{
|
||||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Go_to_one_of_my_courses,
|
if (Gbl.Hierarchy.Level == Hie_CRS && // Course selected
|
||||||
ActMyCrs,
|
Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs == Rol_TCH) // I am a teacher in current course
|
||||||
Btn_CONFIRM_BUTTON,Txt_My_courses);
|
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);
|
||||||
}
|
}
|
||||||
|
else // I am not logged
|
||||||
/***** 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),
|
/***** Log in *****/
|
||||||
Gbl.Hierarchy.Node[Gbl.Hierarchy.Level].ShrtName) < 0)
|
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 ();
|
Err_NotEnoughMemoryExit ();
|
||||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description,
|
||||||
SelectOrCreate[Gbl.Hierarchy.Level].Action,
|
ActFrmMyAcc,
|
||||||
Btn_CONFIRM_BUTTON,
|
Btn_CREATE_BUTTON,Txt_Actions[ActCreUsrAcc]);
|
||||||
Txt_HIERARCHY_PLURAL_Abc[Gbl.Hierarchy.Level + 1]);
|
|
||||||
free (Description);
|
free (Description);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Gbl.Usrs.Me.MyPhotoExists) // I have no photo
|
/***** End table and box *****/
|
||||||
/***** Upload my photo *****/
|
Box_BoxTableEnd ();
|
||||||
Hlp_ShowRowHelpWhatWouldYouLikeToDo (Txt_Upload_my_picture,
|
HTM_DIV_End ();
|
||||||
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 ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
23
swad_match.c
23
swad_match.c
|
@ -1202,13 +1202,14 @@ static void Mch_PutFormMatch (struct Mch_Match *Match)
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
/* Label */
|
/* Label */
|
||||||
Frm_LabelColumn ("RT","Title",Txt_Title);
|
Frm_LabelColumn ("REC_C1_BOT RT","Title",Txt_Title);
|
||||||
|
|
||||||
/* Data */
|
/* 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_INPUT_TEXT ("Title",Mch_MAX_CHARS_TITLE,Match->Title,
|
||||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||||
"id=\"Title\" size=\"45\" class=\"INPUT_%s\""
|
"id=\"Title\""
|
||||||
|
" class=\"REC_C2_BOT_INPUT INPUT_%s\""
|
||||||
" required=\"required\"",
|
" required=\"required\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -1247,14 +1248,14 @@ static void Mch_ShowLstGrpsToEditMatch (long MchCod)
|
||||||
|
|
||||||
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
if (Gbl.Crs.Grps.GrpTypes.NumGrpTypes)
|
||||||
{
|
{
|
||||||
/***** Begin box and table *****/
|
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
HTM_TD_TxtColon (Txt_Groups);
|
|
||||||
HTM_TD_Begin ("class=\"LT\"");
|
|
||||||
|
|
||||||
Box_BoxTableBegin ("100%",NULL,
|
/* Label */
|
||||||
NULL,NULL,
|
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||||
NULL,Box_NOT_CLOSABLE,0);
|
|
||||||
|
/* Groups */
|
||||||
|
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||||
|
HTM_TABLE_Begin (NULL);
|
||||||
|
|
||||||
/***** First row: checkbox to select the whole course *****/
|
/***** First row: checkbox to select the whole course *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
@ -1284,9 +1285,7 @@ static void Mch_ShowLstGrpsToEditMatch (long MchCod)
|
||||||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
Grp_MATCH,MchCod);
|
Grp_MATCH,MchCod);
|
||||||
|
|
||||||
/***** End table and box *****/
|
HTM_TABLE_End ();
|
||||||
Box_BoxTableEnd ();
|
|
||||||
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1820,11 +1820,13 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
|
||||||
{
|
{
|
||||||
/***** Begin box and table *****/
|
/***** Begin box and table *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
HTM_TD_TxtColon (Txt_Groups);
|
|
||||||
HTM_TD_Begin ("class=\"LT\"");
|
/* Label */
|
||||||
Box_BoxTableBegin ("100%",NULL,
|
Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Groups);
|
||||||
NULL,NULL,
|
|
||||||
NULL,Box_NOT_CLOSABLE,0);
|
/* Groups */
|
||||||
|
HTM_TD_Begin ("class=\"REC_C2_BOT LT\"");
|
||||||
|
HTM_TABLE_Begin (NULL);
|
||||||
|
|
||||||
/***** First row: checkbox to select the whole course *****/
|
/***** First row: checkbox to select the whole course *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
@ -1852,8 +1854,7 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
|
||||||
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
Grp_ListGrpsToEditAsgAttSvyEvtMch (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp],
|
||||||
Grp_SURVEY,SvyCod);
|
Grp_SURVEY,SvyCod);
|
||||||
|
|
||||||
/***** End table and box *****/
|
HTM_TABLE_End ();
|
||||||
Box_BoxTableEnd ();
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
HTM_TR_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!
|
"Folder <strong>%s</strong> removed."; // Çeviri lazim!
|
||||||
#endif
|
#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 =
|
const char *Txt_Folders =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Carpetes";
|
"Carpetes";
|
||||||
|
@ -55516,29 +55539,6 @@ const char *Txt_Upload_files =
|
||||||
"Upload files"; // Çeviri lazim!
|
"Upload files"; // Çeviri lazim!
|
||||||
#endif
|
#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 =
|
const char *Txt_Upload_my_picture =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"Pujar la meva fotografia";
|
"Pujar la meva fotografia";
|
||||||
|
|
Loading…
Reference in New Issue