Version 16.198.8

This commit is contained in:
Antonio Cañas Vargas 2017-05-01 21:17:38 +02:00
parent 8c70bd432b
commit 34a8d3b3b5
13 changed files with 160 additions and 145 deletions

View File

@ -1571,13 +1571,13 @@ static void Ctr_ListCentresForEdition (void)
/* Centre requester */ /* Centre requester */
UsrDat.UsrCod = Ctr->RequesterUsrCod; UsrDat.UsrCod = Ctr->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/* Centre status */ /* Centre status */
StatusTxt = Ctr_GetStatusTxtFromStatusBits (Ctr->Status); StatusTxt = Ctr_GetStatusTxtFromStatusBits (Ctr->Status);
@ -2516,13 +2516,13 @@ static void Ctr_PutFormToCreateCentre (void)
"</td>"); "</td>");
/***** Centre requester *****/ /***** Centre requester *****/
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/***** Centre status *****/ /***** Centre status *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"

View File

@ -219,17 +219,20 @@
// TODO: Icon to view en "Fuente de información" // TODO: Icon to view en "Fuente de información"
// TODO: Print view of an assignment (suggested by Sandra Daniela Tazzioli Barroso). // TODO: Print view of an assignment (suggested by Sandra Daniela Tazzioli Barroso).
// TODO: Buscar Msg_WriteMsgAuthor y ver si la tabla que hay alrededor se puede meter dentro de la función
/*****************************************************************************/ /*****************************************************************************/
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.198.7 (2017-05-01)" #define Log_PLATFORM_VERSION "SWAD 16.198.8 (2017-05-01)"
#define CSS_FILE "swad16.195.8.css" #define CSS_FILE "swad16.195.8.css"
#define JS_FILE "swad16.181.js" #define JS_FILE "swad16.181.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.198.8: May 01, 2017 Code refactoring related to tables. (218323 lines)
Version 16.198.7: May 01, 2017 Code refactoring related to tables. (218319 lines) Version 16.198.7: May 01, 2017 Code refactoring related to tables. (218319 lines)
Version 16.198.6: May 01, 2017 Code refactoring related to tables. (218312 lines) Version 16.198.6: May 01, 2017 Code refactoring related to tables. (218312 lines)
Version 16.198.5: May 01, 2017 Code refactoring related to tables. (218302 lines) Version 16.198.5: May 01, 2017 Code refactoring related to tables. (218302 lines)

View File

@ -1517,13 +1517,13 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
/* Course requester */ /* Course requester */
UsrDat.UsrCod = Crs->RequesterUsrCod; UsrDat.UsrCod = Crs->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/* Course status */ /* Course status */
StatusTxt = Crs_GetStatusTxtFromStatusBits (Crs->Status); StatusTxt = Crs_GetStatusTxtFromStatusBits (Crs->Status);
@ -1695,13 +1695,13 @@ static void Crs_PutFormToCreateCourse (void)
"</td>"); "</td>");
/***** Course requester *****/ /***** Course requester *****/
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/***** Course status *****/ /***** Course status *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"

View File

@ -337,18 +337,14 @@ void Dat_PutFormStartEndClientLocalDateTimes (time_t TimeUTC[2],
StartEndTime <= Dat_END_TIME; StartEndTime <= Dat_END_TIME;
StartEndTime++) StartEndTime++)
{ {
/* Date-time */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"RIGHT_MIDDLE\">" "<td class=\"RIGHT_MIDDLE\">"
"<label class=\"%s\">%s:</label>" "<label class=\"%s\">%s:</label>"
"</td>" "</td>"
"<td class=\"LEFT_MIDDLE\">" "<td class=\"LEFT_MIDDLE\">",
"<table class=\"CELLS_PAD_2\">"
"<tr>"
"<td class=\"LEFT_TOP\">",
The_ClassForm[Gbl.Prefs.Theme], The_ClassForm[Gbl.Prefs.Theme],
Txt_START_END_TIME[StartEndTime]); Txt_START_END_TIME[StartEndTime]);
/* Date-time */
Dat_WriteFormClientLocalDateTimeFromTimeUTC (Id[StartEndTime], Dat_WriteFormClientLocalDateTimeFromTimeUTC (Id[StartEndTime],
Id[StartEndTime], Id[StartEndTime],
TimeUTC[StartEndTime], TimeUTC[StartEndTime],
@ -358,9 +354,6 @@ void Dat_PutFormStartEndClientLocalDateTimes (time_t TimeUTC[2],
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second
false); // Don't submit on change false); // Don't submit on change
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"
"</table>"
"</td>"
"</tr>"); "</tr>");
} }
} }

View File

@ -817,13 +817,13 @@ static void Deg_ListDegreesForEdition (void)
/* Degree requester */ /* Degree requester */
UsrDat.UsrCod = Deg->RequesterUsrCod; UsrDat.UsrCod = Deg->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/* Degree status */ /* Degree status */
StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status); StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
@ -1002,13 +1002,13 @@ static void Deg_PutFormToCreateDegree (void)
"</td>"); "</td>");
/***** Degree requester *****/ /***** Degree requester *****/
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/***** Degree status *****/ /***** Degree status *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"

View File

@ -1319,9 +1319,9 @@ static void For_ShowAForumPost (unsigned PstNum,long PstCod,
/***** Write author *****/ /***** Write author *****/
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"LEFT_TOP\"" fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"LEFT_TOP\""
" style=\"width:150px;\">" " style=\"width:150px;\">");
"<table class=\"CELLS_PAD_2\" style=\"width:150px;\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
Msg_WriteMsgAuthor (&UsrDat,"AUTHOR_TXT",Enabled,NULL); Msg_WriteMsgAuthor (&UsrDat,"AUTHOR_TXT",Enabled,NULL);
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -1332,8 +1332,8 @@ static void For_ShowAForumPost (unsigned PstNum,long PstCod,
For_WriteNumberOfPosts (UsrDat.UsrCod); For_WriteNumberOfPosts (UsrDat.UsrCod);
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
} }
fprintf (Gbl.F.Out,"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/***** Write post content *****/ /***** Write post content *****/
fprintf (Gbl.F.Out,"<td class=\"MSG_TXT LEFT_TOP\">"); fprintf (Gbl.F.Out,"<td class=\"MSG_TXT LEFT_TOP\">");

View File

@ -2250,9 +2250,9 @@ static void Grp_PutFormToCreateGroupType (void)
Txt_A_student_can_belong_to_several_groups); Txt_A_student_can_belong_to_several_groups);
/***** Open time *****/ /***** Open time *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"LEFT_MIDDLE\" style=\"width:20px;\">" "<td class=\"LEFT_MIDDLE\" style=\"width:20px;\">"
"<img src=\"%s/%s16x16.gif\"" "<img src=\"%s/%s16x16.gif\""
" alt=\"%s\" title=\"%s\"" " alt=\"%s\" title=\"%s\""
@ -2275,9 +2275,9 @@ static void Grp_PutFormToCreateGroupType (void)
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second
false); // Don't submit on change false); // Don't submit on change
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>" "</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/***** Number of groups of this type *****/ /***** Number of groups of this type *****/
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"

View File

@ -1538,13 +1538,13 @@ static void Ins_ListInstitutionsForEdition (void)
/* Institution requester */ /* Institution requester */
UsrDat.UsrCod = Ins->RequesterUsrCod; UsrDat.UsrCod = Ins->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/* Institution status */ /* Institution status */
StatusTxt = Ins_GetStatusTxtFromStatusBits (Ins->Status); StatusTxt = Ins_GetStatusTxtFromStatusBits (Ins->Status);
@ -2232,13 +2232,13 @@ static void Ins_PutFormToCreateInstitution (void)
"</td>"); "</td>");
/***** Institution requester *****/ /***** Institution requester *****/
fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"INPUT_REQUESTER LEFT_TOP\">");
"<table class=\"INPUT_REQUESTER CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,"DAT",true,NULL);
fprintf (Gbl.F.Out,"</tr>" fprintf (Gbl.F.Out,"</tr>");
"</table>" Lay_EndTable ();
"</td>"); fprintf (Gbl.F.Out,"</td>");
/***** Institution status *****/ /***** Institution status *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"

View File

@ -1552,6 +1552,14 @@ void Lay_EndRoundFrame (void)
"</div>"); "</div>");
} }
void Lay_StartTable (unsigned CellPadding)
{
fprintf (Gbl.F.Out,"<table");
if (CellPadding)
fprintf (Gbl.F.Out," class=\"CELLS_PAD_%u\"",CellPadding); // CellPadding must be 0, 1, 2, 5 or 10
fprintf (Gbl.F.Out,">");
}
void Lay_StartTableCenter (unsigned CellPadding) void Lay_StartTableCenter (unsigned CellPadding)
{ {
fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_CENTER"); fprintf (Gbl.F.Out,"<table class=\"FRAME_TBL_CENTER");

View File

@ -123,6 +123,7 @@ void Lay_EndRoundFrameTableWithButton (Lay_Button_t Button,const char *TxtButton
void Lay_EndRoundFrameWithButton (Lay_Button_t Button,const char *TxtButton); void Lay_EndRoundFrameWithButton (Lay_Button_t Button,const char *TxtButton);
void Lay_EndRoundFrame (void); void Lay_EndRoundFrame (void);
void Lay_StartTable (unsigned CellPadding);
void Lay_StartTableCenter (unsigned CellPadding); void Lay_StartTableCenter (unsigned CellPadding);
void Lay_StartTableWide (unsigned CellPadding); void Lay_StartTableWide (unsigned CellPadding);
void Lay_StartTableWideMargin (unsigned CellPadding); void Lay_StartTableWideMargin (unsigned CellPadding);

View File

@ -2974,8 +2974,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
if (Expanded) if (Expanded)
{ {
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td rowspan=\"3\" colspan=\"3\" class=\"LEFT_TOP\">" "<td rowspan=\"3\" colspan=\"3\" class=\"LEFT_TOP\">");
"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2);
/***** Write course origin of message *****/ /***** Write course origin of message *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -2992,9 +2992,10 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
// Guests (users without courses) can read messages but not reply them // Guests (users without courses) can read messages but not reply them
Msg_WriteFormToReply (MsgCod,CrsCod,FromThisCrs,Replied,&UsrDat); Msg_WriteFormToReply (MsgCod,CrsCod,FromThisCrs,Replied,&UsrDat);
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>" "</tr>");
"</table>"
"</td>"); Lay_EndTable ();
fprintf (Gbl.F.Out,"</td>");
/***** Write "From:" *****/ /***** Write "From:" *****/
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP MSG_TIT\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP MSG_TIT\">"

View File

@ -2697,9 +2697,8 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
/* Unique or multiple choice answers */ /* Unique or multiple choice answers */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td></td>" "<td></td>"
"<td class=\"LEFT_TOP\">" "<td class=\"LEFT_TOP\">");
"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2);
for (NumAns = 0; for (NumAns = 0;
NumAns < Svy_MAX_ANSWERS_PER_QUESTION; NumAns < Svy_MAX_ANSWERS_PER_QUESTION;
NumAns++) NumAns++)
@ -2722,8 +2721,8 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
"</td>" "</td>"
"</tr>"); "</tr>");
} }
fprintf (Gbl.F.Out,"</table>" Lay_EndTable ();
"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/***** End table *****/ /***** End table *****/
@ -3355,7 +3354,7 @@ static void Svy_WriteAnswersOfAQst (struct Survey *Svy,struct SurveyQuestion *Sv
/***** Write the answers *****/ /***** Write the answers *****/
if (NumAnswers) if (NumAnswers)
{ {
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_5\">"); Lay_StartTable (5);
for (NumAns = 0; for (NumAns = 0;
NumAns < NumAnswers; NumAns < NumAnswers;
NumAns++) NumAns++)
@ -3419,7 +3418,7 @@ static void Svy_WriteAnswersOfAQst (struct Survey *Svy,struct SurveyQuestion *Sv
/* Free memory allocated for the answer */ /* Free memory allocated for the answer */
free ((void *) Answer); free ((void *) Answer);
} }
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
} }
/***** Free structure that stores the query result *****/ /***** Free structure that stores the query result *****/

View File

@ -324,7 +324,8 @@ void Tst_ShowFormAskTst (void)
if (Tst_CheckIfNextTstAllowed ()) if (Tst_CheckIfNextTstAllowed ())
{ {
Act_FormStart (ActSeeTst); Act_FormStart (ActSeeTst);
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">");
Lay_StartTable (2);
/***** Selection of tags *****/ /***** Selection of tags *****/
Tst_ShowFormSelTags (NumRows,mysql_res,true,1); Tst_ShowFormSelTags (NumRows,mysql_res,true,1);
@ -351,8 +352,9 @@ void Tst_ShowFormAskTst (void)
fprintf (Gbl.F.Out," disabled=\"disabled\""); fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," />" fprintf (Gbl.F.Out," />"
"</td>" "</td>"
"</tr>" "</tr>");
"</table>");
Lay_EndTable ();
/***** Send button *****/ /***** Send button *****/
Lay_PutConfirmButton (Txt_Generate_test); Lay_PutConfirmButton (Txt_Generate_test);
@ -1279,7 +1281,7 @@ void Tst_ShowFormAskEditTsts (void)
Act_FormStart (ActLstTstQst); Act_FormStart (ActLstTstQst);
Par_PutHiddenParamUnsigned ("Order",(unsigned) Tst_ORDER_STEM); Par_PutHiddenParamUnsigned ("Order",(unsigned) Tst_ORDER_STEM);
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2);
/***** Selection of tags *****/ /***** Selection of tags *****/
Tst_ShowFormSelTags (NumRows,mysql_res,false,2); Tst_ShowFormSelTags (NumRows,mysql_res,false,2);
@ -1289,7 +1291,8 @@ void Tst_ShowFormAskEditTsts (void)
/***** Starting and ending dates in the search *****/ /***** Starting and ending dates in the search *****/
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false); Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false);
fprintf (Gbl.F.Out,"</table>");
Lay_EndTable ();
/***** Send button *****/ /***** Send button *****/
Lay_PutConfirmButton (Txt_Show_questions); Lay_PutConfirmButton (Txt_Show_questions);
@ -1638,9 +1641,9 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
fprintf (Gbl.F.Out,"<td"); fprintf (Gbl.F.Out,"<td");
if (NumCols > 1) if (NumCols > 1)
fprintf (Gbl.F.Out," colspan=\"%u\"",NumCols); fprintf (Gbl.F.Out," colspan=\"%u\"",NumCols);
fprintf (Gbl.F.Out," class=\"LEFT_TOP\">" fprintf (Gbl.F.Out," class=\"LEFT_TOP\">");
"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
if (!ShowOnlyEnabledTags) if (!ShowOnlyEnabledTags)
fprintf (Gbl.F.Out,"<td></td>"); fprintf (Gbl.F.Out,"<td></td>");
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
@ -1702,8 +1705,8 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
row[1]); row[1]);
} }
fprintf (Gbl.F.Out,"</table>" Lay_EndTable ();
"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
} }
@ -1844,8 +1847,8 @@ static void Tst_ShowFormConfigTst (void)
Act_FormStart (ActRcvCfgTst); Act_FormStart (ActRcvCfgTst);
/***** Tests are visible from plugins? *****/ /***** Tests are visible from plugins? *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"%s RIGHT_TOP\">" "<td class=\"%s RIGHT_TOP\">"
"%s:" "%s:"
"</td>" "</td>"
@ -1874,18 +1877,18 @@ static void Tst_ShowFormConfigTst (void)
"<td class=\"%s RIGHT_TOP\">" "<td class=\"%s RIGHT_TOP\">"
"%s:" "%s:"
"</td>" "</td>"
"<td class=\"LEFT_BOTTOM\">" "<td class=\"LEFT_BOTTOM\">",
"<table style=\"border-spacing:2px;\">",
The_ClassForm[Gbl.Prefs.Theme], The_ClassForm[Gbl.Prefs.Theme],
Txt_No_of_questions); Txt_No_of_questions);
Lay_StartTable (2);
Tst_PutInputFieldNumQst ("NumQstMin",Txt_minimum, Tst_PutInputFieldNumQst ("NumQstMin",Txt_minimum,
Gbl.Test.Config.Min); // Minimum number of questions Gbl.Test.Config.Min); // Minimum number of questions
Tst_PutInputFieldNumQst ("NumQstDef",Txt_default, Tst_PutInputFieldNumQst ("NumQstDef",Txt_default,
Gbl.Test.Config.Def); // Default number of questions Gbl.Test.Config.Def); // Default number of questions
Tst_PutInputFieldNumQst ("NumQstMax",Txt_maximum, Tst_PutInputFieldNumQst ("NumQstMax",Txt_maximum,
Gbl.Test.Config.Max); // Maximum number of questions Gbl.Test.Config.Max); // Maximum number of questions
fprintf (Gbl.F.Out,"</table>" Lay_EndTable ();
"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/***** Minimum time between consecutive tests, per question *****/ /***** Minimum time between consecutive tests, per question *****/
@ -1928,8 +1931,8 @@ static void Tst_ShowFormConfigTst (void)
Txt_TST_STR_FEEDBACK[FeedbTyp]); Txt_TST_STR_FEEDBACK[FeedbTyp]);
} }
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>" "</tr>");
"</table>"); Lay_EndTable ();
/***** Send button *****/ /***** Send button *****/
Lay_PutConfirmButton (Txt_Save); Lay_PutConfirmButton (Txt_Save);
@ -2253,9 +2256,9 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
fprintf (Gbl.F.Out,"<td"); fprintf (Gbl.F.Out,"<td");
if (NumCols > 1) if (NumCols > 1)
fprintf (Gbl.F.Out," colspan=\"%u\"",NumCols); fprintf (Gbl.F.Out," colspan=\"%u\"",NumCols);
fprintf (Gbl.F.Out," class=\"LEFT_TOP\">" fprintf (Gbl.F.Out," class=\"LEFT_TOP\">");
"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"LEFT_MIDDLE\">" "<td class=\"LEFT_MIDDLE\">"
"<label class=\"%s\">" "<label class=\"%s\">"
"<input type=\"checkbox\" name=\"AllAnsTypes\" value=\"Y\"", "<input type=\"checkbox\" name=\"AllAnsTypes\" value=\"Y\"",
@ -2294,8 +2297,8 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
Txt_TST_STR_ANSWER_TYPES[AnsType]); Txt_TST_STR_ANSWER_TYPES[AnsType]);
} }
fprintf (Gbl.F.Out,"</table>" Lay_EndTable ();
"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
} }
@ -3074,7 +3077,7 @@ static void Tst_WriteAnswersOfAQstEdit (long QstCod)
case Tst_ANS_UNIQUE_CHOICE: case Tst_ANS_UNIQUE_CHOICE:
case Tst_ANS_MULTIPLE_CHOICE: case Tst_ANS_MULTIPLE_CHOICE:
case Tst_ANS_TEXT: case Tst_ANS_TEXT:
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2);
for (NumOpt = 0; for (NumOpt = 0;
NumOpt < Gbl.Test.Answer.NumOptions; NumOpt < Gbl.Test.Answer.NumOptions;
NumOpt++) NumOpt++)
@ -3150,7 +3153,7 @@ static void Tst_WriteAnswersOfAQstEdit (long QstCod)
if (LengthFeedback) if (LengthFeedback)
free ((void *) Feedback); free ((void *) Feedback);
} }
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
break; break;
default: default:
break; break;
@ -3322,8 +3325,8 @@ static void Tst_WriteTFAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -3363,7 +3366,7 @@ static void Tst_WriteTFAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
Tst_WriteScoreEnd (); Tst_WriteScoreEnd ();
} }
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -3391,8 +3394,8 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
row[ 6] Correct row[ 6] Correct
*/ */
/***** Start of table *****/ /***** Start table *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2);
for (NumOpt = 0; for (NumOpt = 0;
NumOpt < Gbl.Test.Answer.NumOptions; NumOpt < Gbl.Test.Answer.NumOptions;
@ -3465,8 +3468,8 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
"</tr>"); "</tr>");
} }
/***** End of table *****/ /***** End table *****/
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
/***** Free structure that stores the query result *****/ /***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res); DB_FreeMySQLResult (&mysql_res);
@ -3571,9 +3574,9 @@ static void Tst_WriteChoiceAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
AnswersUsr[AnsUsr] = true; AnswersUsr[AnsUsr] = true;
} }
/***** Start of table *****/ /***** Start table *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"<td></td>" fprintf (Gbl.F.Out,"<td></td>"
"<td></td>" "<td></td>"
@ -3709,7 +3712,7 @@ static void Tst_WriteChoiceAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** End of table *****/ /***** End of table *****/
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -3781,8 +3784,8 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -3835,8 +3838,9 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
if (Gbl.Test.Config.FeedbackType == Tst_FEEDBACK_EACH_GOOD_BAD || if (Gbl.Test.Config.FeedbackType == Tst_FEEDBACK_EACH_GOOD_BAD ||
Gbl.Test.Config.FeedbackType == Tst_FEEDBACK_FULL_FEEDBACK) Gbl.Test.Config.FeedbackType == Tst_FEEDBACK_FULL_FEEDBACK)
{ {
fprintf (Gbl.F.Out,"<td class=\"CENTER_TOP\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_TOP\">");
"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2);
for (NumOpt = 0; for (NumOpt = 0;
NumOpt < Gbl.Test.Answer.NumOptions; NumOpt < Gbl.Test.Answer.NumOptions;
NumOpt++) NumOpt++)
@ -3863,7 +3867,8 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
} }
fprintf (Gbl.F.Out,"</table>");
Lay_EndTable ();
} }
else else
fprintf (Gbl.F.Out,"<td class=\"ANS CENTER_TOP\">" fprintf (Gbl.F.Out,"<td class=\"ANS CENTER_TOP\">"
@ -3901,7 +3906,7 @@ static void Tst_WriteTextAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
Tst_WriteScoreEnd (); Tst_WriteScoreEnd ();
} }
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -3943,8 +3948,8 @@ static void Tst_WriteIntAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
Lay_ShowErrorAndExit ("Wrong integer answer."); Lay_ShowErrorAndExit ("Wrong integer answer.");
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -4013,7 +4018,7 @@ static void Tst_WriteIntAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
Tst_WriteScoreEnd (); Tst_WriteScoreEnd ();
} }
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -4069,8 +4074,8 @@ static void Tst_WriteFloatAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
} }
/***** Header with the title of each column *****/ /***** Header with the title of each column *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">" Lay_StartTable (2);
"<tr>"); fprintf (Gbl.F.Out,"<tr>");
Tst_WriteHeadUserCorrect (); Tst_WriteHeadUserCorrect ();
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
@ -4138,7 +4143,7 @@ static void Tst_WriteFloatAnsAssessTest (unsigned NumQst,MYSQL_RES *mysql_res,
Tst_WriteScoreEnd (); Tst_WriteScoreEnd ();
} }
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -4235,7 +4240,8 @@ static void Tst_GetAndWriteTagsQst (long QstCod)
if ((NumRows = Tst_GetTagsQst (QstCod,&mysql_res))) // Result: TagTxt if ((NumRows = Tst_GetTagsQst (QstCod,&mysql_res))) // Result: TagTxt
{ {
/***** Write the tags *****/ /***** Write the tags *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2);
for (NumRow = 0; for (NumRow = 0;
NumRow < NumRows; NumRow < NumRows;
NumRow++) NumRow++)
@ -4251,7 +4257,8 @@ static void Tst_GetAndWriteTagsQst (long QstCod)
"</tr>", "</tr>",
row[0]); row[0]);
} }
fprintf (Gbl.F.Out,"</table>");
Lay_EndTable ();
} }
else else
fprintf (Gbl.F.Out,"<span class=\"DAT_SMALL\">&nbsp;(%s)&nbsp;</span>", fprintf (Gbl.F.Out,"<span class=\"DAT_SMALL\">&nbsp;(%s)&nbsp;</span>",
@ -4515,7 +4522,7 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
Tst_PutParamQstCod (); Tst_PutParamQstCod ();
/***** Start table *****/ /***** Start table *****/
fprintf (Gbl.F.Out,"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2); // Table for this question
/***** Help for text editor *****/ /***** Help for text editor *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
@ -4532,9 +4539,10 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
"<td class=\"RIGHT_TOP %s\">" "<td class=\"RIGHT_TOP %s\">"
"%s:" "%s:"
"</td>" "</td>"
"<td class=\"LEFT_TOP\">" "<td class=\"LEFT_TOP\">",
"<table class=\"CELLS_PAD_2\">",
The_ClassForm[Gbl.Prefs.Theme],Txt_Tags); The_ClassForm[Gbl.Prefs.Theme],Txt_Tags);
Lay_StartTable (2); // Table for tags
for (NumTag = 0; for (NumTag = 0;
NumTag < Tst_MAX_TAGS_PER_QUESTION; NumTag < Tst_MAX_TAGS_PER_QUESTION;
NumTag++) NumTag++)
@ -4582,8 +4590,9 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
fprintf (Gbl.F.Out,"</tr>"); fprintf (Gbl.F.Out,"</tr>");
} }
fprintf (Gbl.F.Out,"</table>"
"</td>" Lay_EndTable (); // Table for tags
fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/* Free structure that stores the query result */ /* Free structure that stores the query result */
@ -4711,8 +4720,9 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
/* Simple or multiple choice answers */ /* Simple or multiple choice answers */
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td></td>" "<td></td>"
"<td class=\"LEFT_TOP\">" "<td class=\"LEFT_TOP\">");
"<table class=\"CELLS_PAD_2\">"); Lay_StartTable (2); // Table with choice answers
OptionsDisabled = Gbl.Test.AnswerType != Tst_ANS_UNIQUE_CHOICE && OptionsDisabled = Gbl.Test.AnswerType != Tst_ANS_UNIQUE_CHOICE &&
Gbl.Test.AnswerType != Tst_ANS_MULTIPLE_CHOICE && Gbl.Test.AnswerType != Tst_ANS_MULTIPLE_CHOICE &&
Gbl.Test.AnswerType != Tst_ANS_TEXT; Gbl.Test.AnswerType != Tst_ANS_TEXT;
@ -4836,12 +4846,12 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
"</td>" "</td>"
"</tr>"); "</tr>");
} }
fprintf (Gbl.F.Out,"</table>" Lay_EndTable (); // Table with choice answers
"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/***** End table *****/ /***** End table *****/
fprintf (Gbl.F.Out,"</table>"); Lay_EndTable (); // Table for this question
/***** Send button *****/ /***** Send button *****/
if (Gbl.Test.QstCod > 0) // The question already has assigned a code if (Gbl.Test.QstCod > 0) // The question already has assigned a code
@ -6986,14 +6996,14 @@ void Tst_SelUsrsToSeeUsrsTestResults (void)
"<td class=\"%s RIGHT_TOP\">" "<td class=\"%s RIGHT_TOP\">"
"%s:" "%s:"
"</td>" "</td>"
"<td colspan=\"2\" class=\"%s LEFT_TOP\">" "<td colspan=\"2\" class=\"%s LEFT_TOP\">",
"<table class=\"CELLS_PAD_2\">",
The_ClassForm[Gbl.Prefs.Theme],Txt_Users, The_ClassForm[Gbl.Prefs.Theme],Txt_Users,
The_ClassForm[Gbl.Prefs.Theme]); The_ClassForm[Gbl.Prefs.Theme]);
Lay_StartTable (2);
Usr_ListUsersToSelect (Rol_TEACHER); Usr_ListUsersToSelect (Rol_TEACHER);
Usr_ListUsersToSelect (Rol_STUDENT); Usr_ListUsersToSelect (Rol_STUDENT);
fprintf (Gbl.F.Out,"</table>" Lay_EndTable ();
"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/***** Starting and ending dates in the search *****/ /***** Starting and ending dates in the search *****/