Version19.31.5

This commit is contained in:
Antonio Cañas Vargas 2019-10-05 13:09:24 +02:00
parent ddd08117d3
commit 9ee310f364
28 changed files with 523 additions and 521 deletions

View File

@ -487,12 +487,13 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.31.4 (2019-10-04)"
#define Log_PLATFORM_VERSION "SWAD 19.31.5 (2019-10-05)"
#define CSS_FILE "swad19.29.css"
#define JS_FILE "swad19.30.js"
/*
// TODO: Perico: poner un candado de bloqueo de creación/edición de proyectos (por ejemplo en asignaturas obsoletas)
Version 19.31.5: Oct 05, 2019 Code refactoring in HTML tables. (247044 lines)
Version 19.31.4: Oct 04, 2019 Code refactoring in HTML tables. (247043 lines)
Version 19.31.3: Oct 04, 2019 Code refactoring in HTML tables. (247039 lines)
Version 19.31.2: Oct 04, 2019 Fixed bug while removing the matches of a course, reported by Pedro A. García Sánchez.

View File

@ -8534,7 +8534,7 @@ static void Brw_PutFormToCreateALink (const char *FileNameToShow)
"<input type=\"text\""
" id=\"NewLinkName\" name=\"NewLinkName\""
" size=\"30\" maxlength=\"%u\" value=\"\" />"
"</td>",
"</td>"
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Save_as,Txt_optional,
Brw_MAX_CHARS_FOLDER);
Tbl_EndRow ();

View File

@ -1172,8 +1172,8 @@ void Inf_FormsToSelSendInfo (void)
Txt_INFO_SRC_HELP[InfoSrc]);
if (Inf_FormsForEditionTypes[InfoSrc])
Inf_FormsForEditionTypes[InfoSrc] (InfoSrc);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table and box *****/

View File

@ -179,10 +179,10 @@ void Ins_SeeInsWithPendingCtrs (void)
"</th>"
"<th class=\"RIGHT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Institution,
Txt_Centres_ABBREVIATION);
Tbl_EndRow ();
/***** List the institutions *****/
for (NumIns = 0;
@ -211,9 +211,9 @@ void Ins_SeeInsWithPendingCtrs (void)
/* Number of pending centres (row[1]) */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
"%s"
"</td>"
"</tr>",
"</td>",
BgColor,row[1]);
Tbl_EndRow ();
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
}
@ -394,8 +394,8 @@ static void Ins_Configuration (bool PrintView)
else // I can not move institution to another country
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Institution full name *****/
Tbl_StartRow ();
@ -423,8 +423,8 @@ static void Ins_Configuration (bool PrintView)
}
else // I can not edit institution full name
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ins.FullName);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Institution short name *****/
Tbl_StartRow ();
@ -452,8 +452,8 @@ static void Ins_Configuration (bool PrintView)
}
else // I can not edit institution short name
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ins.ShrtName);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Institution WWW *****/
Tbl_StartRow ();
@ -487,8 +487,8 @@ static void Ins_Configuration (bool PrintView)
"</div>",
Gbl.Hierarchy.Ins.WWW,
Gbl.Hierarchy.Ins.WWW);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Shortcut to the institution *****/
Tbl_StartRow ();
@ -499,8 +499,7 @@ static void Ins_Configuration (bool PrintView)
"<a href=\"%s/%s?ins=%ld\" class=\"DAT\" target=\"_blank\">"
"%s/%s?ins=%ld"
"</a>"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Shortcut,
Cfg_URL_SWAD_CGI,
@ -509,6 +508,7 @@ static void Ins_Configuration (bool PrintView)
Cfg_URL_SWAD_CGI,
Lan_STR_LANG_ID[Gbl.Prefs.Language],
Gbl.Hierarchy.Ins.InsCod);
Tbl_EndRow ();
if (PrintView)
{
@ -521,8 +521,8 @@ static void Ins_Configuration (bool PrintView)
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_QR_code);
QR_LinkTo (250,"ins",Gbl.Hierarchy.Ins.InsCod);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
else
{
@ -533,11 +533,11 @@ static void Ins_Configuration (bool PrintView)
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Users_of_the_institution,
Usr_GetNumUsrsWhoClaimToBelongToIns (Gbl.Hierarchy.Ins.InsCod));
Tbl_EndRow ();
/***** Number of centres *****/
Tbl_StartRow ();
@ -559,8 +559,8 @@ static void Ins_Configuration (bool PrintView)
Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod));
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Number of degrees *****/
Tbl_StartRow ();
@ -569,11 +569,11 @@ static void Ins_Configuration (bool PrintView)
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Degrees,
Deg_GetNumDegsInIns (Gbl.Hierarchy.Ins.InsCod));
Tbl_EndRow ();
/***** Number of courses *****/
Tbl_StartRow ();
@ -582,11 +582,11 @@ static void Ins_Configuration (bool PrintView)
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Courses,
Crs_GetNumCrssInIns (Gbl.Hierarchy.Ins.InsCod));
Tbl_EndRow ();
/***** Number of departments *****/
Tbl_StartRow ();
@ -595,11 +595,11 @@ static void Ins_Configuration (bool PrintView)
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Departments,
Dpt_GetNumDepartmentsInInstitution (Gbl.Hierarchy.Ins.InsCod));
Tbl_EndRow ();
/***** Number of users in courses of this institution *****/
Ins_ShowNumUsrsInCrssOfIns (Rol_TCH);
@ -648,12 +648,12 @@ static void Ins_ShowNumUsrsInCrssOfIns (Rol_Role_t Role)
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
(Role == Rol_UNK) ? Txt_Users_in_courses :
Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN],
Usr_GetNumUsrsInCrssOfIns (Role,Gbl.Hierarchy.Ins.InsCod));
Tbl_EndRow ();
}
/*****************************************************************************/
@ -846,8 +846,8 @@ static void Ins_ListOneInstitutionForSeeing (struct Instit *Ins,unsigned NumIns)
TxtClassNormal,BgColor);
if (StatusTxt != Ins_STATUS_ACTIVE) // If active ==> do not show anything
fprintf (Gbl.F.Out,"%s",Txt_INSTITUTION_STATUS[StatusTxt]);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
}
@ -910,15 +910,15 @@ static void Ins_PutHeadInstitutionsForSeeing (bool OrderSelectable)
"%s+<br />%s"
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"</th>"
"</tr>",
"</th>",
Txt_Centres_ABBREVIATION,
Txt_Degrees_ABBREVIATION,
Txt_Courses_ABBREVIATION,
Txt_Departments_ABBREVIATION,
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
}
Tbl_EndRow ();
}
/*****************************************************************************/
/******* Get parameter with the type or order in list of institutions ********/
@ -1626,8 +1626,8 @@ static void Ins_ListInstitutionsForEdition (void)
}
else if (StatusTxt != Ins_STATUS_ACTIVE) // If active ==> do not show anything
fprintf (Gbl.F.Out,"%s",Txt_INSTITUTION_STATUS[StatusTxt]);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table *****/
@ -2300,8 +2300,8 @@ static void Ins_PutFormToCreateInstitution (void)
/***** Institution status *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_institution);
@ -2353,8 +2353,7 @@ static void Ins_PutHeadInstitutionsForEdition (void)
"%s"
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"</th>"
"</tr>",
"</th>",
Txt_Code,
Txt_Short_name_of_the_institution,
Txt_Full_name_of_the_institution,
@ -2364,6 +2363,7 @@ static void Ins_PutHeadInstitutionsForEdition (void)
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD],
Txt_Requester);
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -1714,11 +1714,11 @@ void Lay_AdvertisementMobile (void)
" alt=\"SWADroid\" title=\"%s\""
" style=\"width:250px; height:375px;\" />"
"</a>"
"</td>"
"</tr>",
"</td>",
Txt_Stay_connected_with_SWADroid,
Cfg_URL_ICON_PUBLIC,
Txt_Stay_connected_with_SWADroid);
Tbl_EndRow ();
/***** End table and box *****/
Box_EndBoxTable ();

View File

@ -474,8 +474,8 @@ static void Lnk_ListLinksForEdition (void)
Cns_MAX_CHARS_WWW,Lnk->WWW,
Gbl.Form.Id);
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table *****/
@ -774,9 +774,9 @@ static void Lnk_PutFormToCreateLink (void)
" maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_WWW\""
" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
Cns_MAX_CHARS_WWW,Lnk_EditingLnk->WWW);
Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_link);
@ -809,12 +809,12 @@ static void Lnk_PutHeadLinks (void)
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Code,
Txt_Short_name,
Txt_Full_name,
Txt_WWW);
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -163,11 +163,11 @@ void Mai_SeeMailDomains (void)
"</td>"
"<td class=\"DAT RIGHT_TOP\">"
"%u"
"</td>"
"</tr>",
"</td>",
Gbl.Mails.Lst[NumMai].Domain,
Gbl.Mails.Lst[NumMai].Info,
Gbl.Mails.Lst[NumMai].NumUsrs);
Tbl_EndRow ();
}
/***** End table and box *****/
@ -526,9 +526,9 @@ static void Mai_ListMailDomainsForEdition (void)
/* Number of users */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
Mai->NumUsrs);
Tbl_EndRow ();
}
/***** End table and box *****/
@ -757,10 +757,10 @@ static void Mai_PutFormToCreateMailDomain (void)
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN],
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO ]);
Tbl_EndRow ();
/***** Mail domain *****/
Tbl_StartRow ();
@ -777,9 +777,9 @@ static void Mai_PutFormToCreateMailDomain (void)
" size=\"40\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>"
"<td></td>"
"</tr>",
"<td></td>",
Mai_MAX_CHARS_MAIL_INFO,Mai_EditingMai->Info);
Tbl_EndRow ();
/***** End table, send button and end box *****/
@ -811,12 +811,12 @@ static void Mai_PutHeadMailDomains (void)
"</th>"
"<th class=\"RIGHT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Code,
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_DOMAIN],
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_INFO ],
Txt_EMAIL_DOMAIN_ORDER[Mai_ORDER_BY_USERS ]);
Tbl_EndRow ();
}
/*****************************************************************************/
@ -1374,8 +1374,8 @@ static void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe,
fprintf (Gbl.F.Out,"</td>");
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Form to enter new email *****/
@ -1415,8 +1415,8 @@ static void Mai_ShowFormChangeUsrEmail (const struct UsrData *UsrDat,bool ItsMe,
Btn_PutCreateButtonInline (NumEmails ? Txt_Change_email : // User already has an email address
Txt_Save_changes); // User has no email address yet
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();

View File

@ -1202,11 +1202,11 @@ static void Mch_PutFormNewMatch (struct Game *Game)
"<input type=\"text\" id=\"Title\" name=\"Title\""
" size=\"45\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Title,
Gam_MAX_CHARS_TITLE,Game->Title);
Tbl_EndRow ();
/***** Groups *****/
Mch_ShowLstGrpsToCreateMatch ();
@ -1269,9 +1269,9 @@ static void Mch_ShowLstGrpsToCreateMatch (void)
" onclick=\"uncheckChildren(this,'GrpCods')\" />"
"%s %s"
"</label>"
"</td>"
"</tr>",
"</td>",
Txt_The_whole_course,Gbl.Hierarchy.Crs.ShrtName);
Tbl_EndRow ();
/***** List the groups for each group type *****/
for (NumGrpTyp = 0;
@ -1284,8 +1284,8 @@ static void Mch_ShowLstGrpsToCreateMatch (void)
/***** End table and box *****/
Box_EndBoxTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Free list of groups types and groups in this course *****/

View File

@ -217,8 +217,8 @@ void McR_SelUsrsToViewUsrsMchResults (void)
Usr_ListUsersToSelect (Rol_NET);
Usr_ListUsersToSelect (Rol_STD);
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Starting and ending dates in the search *****/
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false);
@ -353,8 +353,7 @@ static void McR_ShowHeaderMchResults (Usr_MeOrOther_t MeOrOther)
"<th class=\"RIGHT_TOP\">"
"%s<br />%s<br />%u"
"</th>"
"<th></th>"
"</tr>",
"<th></th>",
Txt_User[MeOrOther == Usr_ME ? Gbl.Usrs.Me.UsrDat.Sex :
Usr_SEX_UNKNOWN],
Txt_START_END_TIME[Dat_START_TIME],
@ -365,6 +364,7 @@ static void McR_ShowHeaderMchResults (Usr_MeOrOther_t MeOrOther)
Txt_Total_BR_score,
Txt_Average_BR_score_BR_per_question_BR_from_0_to_1,
Txt_Score,Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
Tbl_EndRow ();
}
/*****************************************************************************/
@ -803,8 +803,8 @@ void McR_ShowOneMchResult (void)
Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL :
NULL,
"PHOTO45x60",Pho_ZOOM,false);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* Start/end time (for user in this match) */
for (StartEndTime = (Dat_StartEndTime_t) 0;
@ -820,13 +820,13 @@ void McR_ShowOneMchResult (void)
"writeLocalDateHMSFromUTC('match_%u',%ld,"
"%u,',&nbsp;','%s',true,true,0x7);"
"</script>"
"</td>"
"</tr>",
"</td>",
Txt_START_END_TIME[StartEndTime],
(unsigned) StartEndTime,
(unsigned) StartEndTime,
TimeUTC[StartEndTime],
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndRow ();
}
/* Number of questions */
@ -836,10 +836,10 @@ void McR_ShowOneMchResult (void)
"</td>"
"<td class=\"DAT LEFT_TOP\">"
"%u (%u %s)"
"</td>"
"</tr>",
"</td>",
Txt_Questions,
NumQsts,NumQstsNotBlank,Txt_non_blank_QUESTIONS);
Tbl_EndRow ();
/* Score */
Tbl_StartRow ();
@ -855,9 +855,9 @@ void McR_ShowOneMchResult (void)
0.0);
else
fprintf (Gbl.F.Out,"? (?"); // No feedback
fprintf (Gbl.F.Out," %s %u)</td>"
"</tr>",
fprintf (Gbl.F.Out," %s %u)</td>",
Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
Tbl_EndRow ();
/* Tags present in this result */
Tbl_StartRow ();
@ -867,8 +867,8 @@ void McR_ShowOneMchResult (void)
"<td class=\"DAT LEFT_TOP\">",
Txt_Tags);
Gam_ShowTstTagsPresentInAGame (Match.GamCod);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write answers and solutions *****/
Tst_ShowTestResult (UsrDat,NumQsts,TimeUTC[Dat_START_TIME]);

View File

@ -313,8 +313,8 @@ static void Msg_PutFormMsgUsrs (char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
Tbl_EndTable ();
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Subject and content sections *****/
Msg_WriteFormSubjectAndContentMsgToUsrs (Content);
@ -485,10 +485,10 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
fprintf (Gbl.F.Out," colspan=\"%u\"",Colspan);
fprintf (Gbl.F.Out," class=\"LEFT_MIDDLE LIGHT_BLUE\">"
"<label for=\"OtherRecipients\">%s:</label>"
"</th>"
"</tr>",
"</th>",
StdsAndTchsWritten ? Txt_Other_recipients :
Txt_Recipients);
Tbl_EndRow ();
/***** Textarea with users' @nicknames, emails or IDs *****/
Tbl_StartRow ();
@ -508,8 +508,8 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void)
if (Nck_GetNicknameFromUsrCod (Gbl.Usrs.Other.UsrDat.UsrCod,Nickname))
fprintf (Gbl.F.Out,"@%s",Nickname);
fprintf (Gbl.F.Out,"</textarea>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -577,9 +577,9 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (char Content[Cns_MAX_BYTES_
fprintf (Gbl.F.Out,"Re: ");
fprintf (Gbl.F.Out,"%s"
"</textarea>"
"</td>"
"</tr>",
"</td>",
Gbl.Msg.Subject);
Tbl_EndRow ();
/***** Message content *****/
Tbl_StartRow ();
@ -609,9 +609,9 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (char Content[Cns_MAX_BYTES_
{
/* End message subject */
fprintf (Gbl.F.Out,"%s</textarea>"
"</td>"
"</tr>",
"</td>",
Gbl.Msg.Subject);
Tbl_EndRow ();
/***** Message content *****/
Tbl_StartRow ();
@ -633,8 +633,8 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (char Content[Cns_MAX_BYTES_
fprintf (Gbl.F.Out,"\n%s",Content);
}
fprintf (Gbl.F.Out,"</textarea>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -2664,11 +2664,11 @@ void Msg_ShowFormToFilterMsgs (void)
"<input type=\"search\" name=\"FilterContent\""
" size=\"20\" maxlength=\"%u\" value=\"%s\" />"
"</label>"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_MSG_Content,
Msg_MAX_CHARS_FILTER_CONTENT,Gbl.Msg.FilterContent);
Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@ -3005,8 +3005,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
FromThisCrs = Msg_WriteCrsOrgMsg (CrsCod);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Form to reply message *****/
Tbl_StartRow ();
@ -3015,8 +3015,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
Gbl.Usrs.Me.Role.Logged >= Rol_USR)
// Guests (users without courses) can read messages but not reply them
Msg_WriteFormToReply (MsgCod,CrsCod,FromThisCrs,Replied,&UsrDat);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>");
@ -3028,8 +3028,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
"<td colspan=\"2\" class=\"LEFT_TOP\">",
Txt_MSG_From);
Msg_WriteMsgFrom (&UsrDat,Deleted);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write "To:" *****/
Tbl_StartRow ();
@ -3039,8 +3039,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
"<td colspan=\"2\" class=\"LEFT_TOP\">",
Txt_MSG_To);
Msg_WriteMsgTo (MsgCod);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write "Content:" *****/
Tbl_StartRow ();
@ -3060,8 +3060,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
if (Content[0])
Msg_WriteMsgContent (Content,Cns_MAX_BYTES_LONG_TEXT,true,false);
Med_ShowMedia (&Media,"MSG_IMG_CONTAINER","MSG_IMG");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Free image *****/
Med_MediaDestructor (&Media);
@ -3238,8 +3238,8 @@ void Msg_WriteMsgAuthor (struct UsrData *UsrDat,bool Enabled,const char *BgColor
}
/***** End second column *****/
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@ -3391,8 +3391,8 @@ static void Msg_WriteMsgFrom (struct UsrData *UsrDat,bool Deleted)
else
fprintf (Gbl.F.Out,"[%s]",
Txt_ROLES_SINGUL_abc[Rol_UNK][Usr_SEX_UNKNOWN]); // User not found, likely an old user who has been removed
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
Tbl_EndTable ();
}
@ -3541,8 +3541,8 @@ static void Msg_WriteMsgTo (long MsgCod)
fprintf (Gbl.F.Out,"%s",UsrDat.FullName);
else
fprintf (Gbl.F.Out,"[%s]",Txt_unknown_recipient); // User not found, likely a user who has been removed
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** If any recipients are unknown *****/
@ -3552,12 +3552,12 @@ static void Msg_WriteMsgTo (long MsgCod)
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td colspan=\"3\" class=\"AUTHOR_TXT LEFT_MIDDLE\">"
"[%u %s]"
"</td>"
"</tr>",
"</td>",
NumRecipientsUnknown,
(NumRecipientsUnknown == 1) ?
Txt_unknown_recipient :
Txt_unknown_recipients);
Tbl_EndRow ();
}
/***** If any known recipient is not listed *****/
@ -3575,8 +3575,8 @@ static void Msg_WriteMsgTo (long MsgCod)
NumRecipientsKnown - NumRecipientsToShow);
fprintf (Gbl.F.Out,"</a>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Free memory used for user's data *****/
@ -3871,9 +3871,9 @@ void Msg_ListBannedUsrs (void)
/* Write user's full name */
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"%s"
"</td>"
"</tr>",
"</td>",
UsrDat.FullName);
Tbl_EndRow ();
}
}

View File

@ -324,7 +324,6 @@ void Net_ShowFormMyWebsAndSocialNets (void)
/***** Row for this web / social network *****/
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT LEFT_MIDDLE\">"
"<label for=\"URL%u\" class=\"%s\">"
"<img src=\"%s/%s\""
@ -339,9 +338,7 @@ void Net_ShowFormMyWebsAndSocialNets (void)
"<input type=\"url\" id=\"URL%u\" name=\"URL%u\""
" maxlength=\"%u\" value=\"%s\""
" class=\"REC_C2_BOT_INPUT\" />"
"</td>"
"</tr>",
"</td>",
(unsigned) NumURL,The_ClassFormInBox[Gbl.Prefs.Theme],
Cfg_URL_ICON_PUBLIC,Net_WebsAndSocialNetworksIcons[NumURL],
Net_WebsAndSocialNetworksTitle[NumURL],
@ -349,6 +346,7 @@ void Net_ShowFormMyWebsAndSocialNets (void)
Net_WebsAndSocialNetworksTitle[NumURL],
(unsigned) NumURL,(unsigned) NumURL,
Cns_MAX_CHARS_WWW,URL);
Tbl_EndRow ();
}
/***** End table *****/
@ -564,11 +562,11 @@ void Net_ShowWebAndSocialNetworksStats (void)
"</th>"
"<th class=\"RIGHT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Web_social_network,
Txt_No_of_users,
Txt_PERCENT_of_users);
Tbl_EndRow ();
/***** For each web / social network... *****/
for (NumRow = 0;
@ -604,8 +602,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%.2f%%"
"</td>"
"</tr>",
"</td>",
Cfg_URL_ICON_PUBLIC,Net_WebsAndSocialNetworksIcons[Web],
Net_WebsAndSocialNetworksTitle[Web],
Net_WebsAndSocialNetworksTitle[Web],
@ -613,6 +610,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
NumUsrs,
NumUsrsTotal ? 100.0 * (float) NumUsrs / (float) NumUsrsTotal :
0.0);
Tbl_EndRow ();
}
}

View File

@ -362,8 +362,8 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its
Frm_EndForm ();
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Form to enter new nickname *****/
@ -405,8 +405,8 @@ static void Nck_ShowFormChangeUsrNickname (const struct UsrData *UsrDat,bool Its
Btn_PutCreateButtonInline (NumNicks ? Txt_Change_nickname : // I already have a nickname
Txt_Save_changes); // I have no nickname yet);
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** End table and box *****/
Box_EndBoxTable ();

View File

@ -409,13 +409,13 @@ void Ntf_ShowMyNotifications (void)
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Event,
Txt_MSG_From,
Txt_Location,
Txt_Date,
Txt_Email); // Date and time, in YYYY-MM-DD HH:MM:SS format
Tbl_EndRow ();
/***** List notifications one by one *****/
for (NumNotif = 0;
@ -591,9 +591,9 @@ void Ntf_ShowMyNotifications (void)
/* Write status (sent by email / pending to be sent by email) */
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_TOP\">"
"%s"
"</td>"
"</tr>",
"</td>",
ClassBackground,Txt_NOTIFICATION_STATUS[StatusTxt]);
Tbl_EndRow ();
/***** Write content of the event *****/
if (PutLink)
@ -607,9 +607,9 @@ void Ntf_ShowMyNotifications (void)
"<td colspan=\"4\" class=\"DAT LEFT_TOP\""
" style=\"padding-bottom:12px;\">"
"%s"
"</td>"
"</tr>",
"</td>",
SummaryStr);
Tbl_EndRow ();
if (ContentStr != NULL)
{
free ((void *) ContentStr);
@ -1946,10 +1946,10 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
"</th>"
"<th class=\"CENTER_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Create_BR_notification,
Txt_Notify_me_BR_by_email);
Tbl_EndRow ();
/***** Checkbox to activate internal notifications and email notifications
about events *****/
@ -1976,8 +1976,8 @@ void Ntf_PutFormChangeNotifSentByEMail (void)
if ((Gbl.Usrs.Me.UsrDat.NtfEvents.SendEmail & (1 << NotifyEvent)))
fprintf (Gbl.F.Out," checked=\"checked\"");
fprintf (Gbl.F.Out," />"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
Tbl_EndTable ();

View File

@ -694,11 +694,11 @@ void Pwd_ShowFormChgMyPwd (void)
" id=\"UsrPwd\" name=\"UsrPwd\""
" size=\"18\" maxlength=\"%u\""
" autocomplete=\"off\" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Current_password,
Pwd_MAX_CHARS_PLAIN_PASSWORD);
Tbl_EndRow ();
}
/***** Help message *****/
@ -706,8 +706,8 @@ void Pwd_ShowFormChgMyPwd (void)
fprintf (Gbl.F.Out,"<td colspan=\"2\">");
Ale_ShowAlert (Ale_INFO,Txt_Your_password_must_be_at_least_X_characters_and_can_not_contain_spaces_,
Pwd_MIN_CHARS_PLAIN_PASSWORD);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** New password *****/
Pwd_PutFormToGetNewPasswordTwice ();
@ -753,8 +753,8 @@ void Pwd_PutFormToGetNewPasswordOnce (void)
/***** End form element ****/
fprintf (Gbl.F.Out,"\""
" required=\"required\" />"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -788,8 +788,8 @@ void Pwd_PutFormToGetNewPasswordTwice (void)
/* End form element */
fprintf (Gbl.F.Out,"\" required=\"required\" />"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** 2nd password *****/
/* Start form element */
@ -811,8 +811,8 @@ void Pwd_PutFormToGetNewPasswordTwice (void)
/* End form element */
fprintf (Gbl.F.Out,"\" required=\"required\" />"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -1810,8 +1810,8 @@ static void Pho_PutSelectorForTypeOfAvg (void)
}
fprintf (Gbl.F.Out,"</select>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -1871,8 +1871,8 @@ static void Pho_PutSelectorForHowComputePhotoSize (void)
}
fprintf (Gbl.F.Out,"</select>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -1932,8 +1932,8 @@ static void Pho_PutSelectorForHowOrderDegrees (void)
}
fprintf (Gbl.F.Out,"</select>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -146,10 +146,10 @@ void Plc_SeePlaces (void)
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
Gbl.Plcs.Lst[NumPlc].FullName,
Gbl.Plcs.Lst[NumPlc].NumCtrs);
Tbl_EndRow ();
NumCtrsWithPlc += Gbl.Plcs.Lst[NumPlc].NumCtrs;
}
@ -157,8 +157,8 @@ void Plc_SeePlaces (void)
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"DAT\">"
"&nbsp;"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** Write centres (of the current institution) with other place *****/
NumCtrsInOtherPlcs = Ctr_GetNumCtrsInPlc (0);
@ -168,9 +168,9 @@ void Plc_SeePlaces (void)
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
Txt_Other_places,NumCtrsInOtherPlcs);
Tbl_EndRow ();
NumCtrsWithPlc += NumCtrsInOtherPlcs;
/***** Write centres (of the current institution) with no place *****/
@ -180,11 +180,11 @@ void Plc_SeePlaces (void)
"</td>"
"<td class=\"DAT RIGHT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
Txt_Place_unspecified,
Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod) -
NumCtrsWithPlc);
Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@ -569,9 +569,9 @@ static void Plc_ListPlacesForEdition (void)
/* Number of centres */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"%u"
"</td>"
"</tr>",
"</td>",
Plc->NumCtrs);
Tbl_EndRow ();
}
/***** End table *****/
@ -832,8 +832,8 @@ static void Plc_PutFormToCreatePlace (void)
/***** Number of centres *****/
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"0"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_place);
@ -866,12 +866,12 @@ static void Plc_PutHeadPlaces (void)
"</th>"
"<th class=\"RIGHT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Code,
Txt_Short_name,
Txt_Full_name,
Txt_Centres);
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -119,9 +119,9 @@ void Plg_ListPlugins (void)
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Plugin);
Tbl_EndRow ();
/***** Write all the plugins *****/
for (NumPlg = 0;
@ -148,13 +148,13 @@ void Plg_ListPlugins (void)
"<a href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\">"
"%s"
"</a>"
"</td>"
"</tr>",
"</td>",
URL,Plg->Name,
Cfg_URL_ICON_PLUGINS_PUBLIC,Gbl.Plugins.Lst[NumPlg].Logo,
Plg->Name,Plg->Name,
URL,Plg->Name,
Plg->Name);
Tbl_EndRow ();
}
/***** End table and box *****/
@ -484,8 +484,8 @@ static void Plg_ListPluginsForEdition (void)
Cns_MAX_CHARS_IP,Plg->IP,
Gbl.Form.Id);
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table *****/
@ -907,14 +907,14 @@ static void Plg_PutFormToCreatePlugin (void)
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Name,
Txt_Description,
Txt_Logo,
Txt_Application_key,
Txt_URL,
Txt_IP);
Tbl_EndRow ();
/***** Plugin name *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -961,9 +961,9 @@ static void Plg_PutFormToCreatePlugin (void)
"<input type=\"text\" name=\"IP\""
" size=\"10\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
Cns_MAX_CHARS_IP,Plg_EditingPlg->IP);
Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_plugin);
@ -1009,8 +1009,7 @@ static void Plg_PutHeadPlugins (void)
"</th>"
"<th class=\"LEFT_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Code,
Txt_Name,
Txt_Description,
@ -1018,6 +1017,7 @@ static void Plg_PutHeadPlugins (void)
Txt_Application_key,
Txt_URL,
Txt_IP);
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -196,8 +196,8 @@ static void Pri_PutFormVisibility (const char *TxtLabel,
fprintf (Gbl.F.Out,"</ul>");
if (Action != ActUnk)
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -1567,10 +1567,10 @@ void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs)
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE COLOR%u\""
" style=\"height:50px;\">"
"%ld"
"</td>"
"</tr>",
"</td>",
Gbl.RowEvenOdd,
Figure);
Tbl_EndRow ();
}
Tbl_EndTable ();
@ -1735,8 +1735,8 @@ void Prf_GetAndShowRankingClicksPerDay (void)
" style=\"height:50px;\">",
Gbl.RowEvenOdd);
Str_WriteFloatNum (Gbl.F.Out,NumClicksPerDay);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
Tbl_EndTable ();

View File

@ -1112,8 +1112,8 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
Txt_No);
Ico_PutIconOff (PreassignedNonpreassigImage[Prj->Preassigned],
Txt_PROJECT_PREASSIGNED_NONPREASSIGNED_SINGUL[Prj->Preassigned]);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Number of students *****/
Tbl_StartRow ();
@ -1145,11 +1145,11 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
}
fprintf (Gbl.F.Out," %s\">"
"%u"
"</td>"
"</tr>",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT",
Prj->NumStds);
Tbl_EndRow ();
/***** Project members *****/
Prj_ShowOneProjectMembers (Prj,ProjectView);
@ -1163,31 +1163,31 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
UniqueId,
Gbl.RowEvenOdd);
Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
fprintf (Gbl.F.Out,"<tr id=\"prj_con_%u\" style=\"display:none;\">"
"<td colspan=\"6\" class=\"CENTER_MIDDLE COLOR%u\">",
UniqueId,
Gbl.RowEvenOdd);
Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
break;
case Prj_FILE_BROWSER_PROJECT:
fprintf (Gbl.F.Out,"<tr id=\"prj_exp_%u\">"
"<td colspan=\"5\" class=\"CENTER_MIDDLE\">",
UniqueId);
Prj_PutIconToToggleProject (UniqueId,"angle-down.svg",Txt_See_more);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
fprintf (Gbl.F.Out,"<tr id=\"prj_con_%u\" style=\"display:none;\">"
"<td colspan=\"5\" class=\"CENTER_MIDDLE\">",
UniqueId);
Prj_PutIconToToggleProject (UniqueId,"angle-up.svg",Txt_See_less);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
break;
default:
break;
@ -1223,11 +1223,11 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out," %s\">"
"%s"
"</td>"
"</tr>",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT",
Txt_PROJECT_STATUS[Prj->Proposal]);
Tbl_EndRow ();
/***** Write rows of data of this project *****/
/* Description of the project */
@ -1417,8 +1417,8 @@ static void Prj_ShowOneProjectDepartment (const struct Project *Prj,
fprintf (Gbl.F.Out,"%s",Dpt.FullName);
if (PutLink)
fprintf (Gbl.F.Out,"</a>");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
static void Prj_ShowTableAllProjectsDepartment (const struct Project *Prj)
@ -1493,11 +1493,11 @@ static void Prj_ShowOneProjectTxtField (struct Project *Prj,
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out," %s\">"
"%s"
"</td>"
"</tr>",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT",
TxtField);
Tbl_EndRow ();
}
static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj,
@ -1568,8 +1568,8 @@ static void Prj_ShowOneProjectURL (const struct Project *Prj,
fprintf (Gbl.F.Out,"%s",Prj->URL);
if (PutLink)
fprintf (Gbl.F.Out,"</a>");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
static void Prj_ShowTableAllProjectsURL (const struct Project *Prj)
@ -1763,8 +1763,8 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
Gbl.Title);
fprintf (Gbl.F.Out,"</td>"
"<td class=\"PRJ_MEMBER_PHO\"></td>" // Column for photo
"<td class=\"PRJ_MEMBER_NAM\"></td>" // Column for name
"</tr>");
"<td class=\"PRJ_MEMBER_NAM\"></td>"); // Column for name
Tbl_EndRow ();
break;
default:
break;
@ -1774,8 +1774,8 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
Tbl_EndTable ();
/***** End row with label and listing of users *****/
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Free structure that stores the query result *****/
@ -3343,10 +3343,10 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
"<input type=\"text\" id=\"Title\" name=\"Title\""
" size=\"45\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Title,
Prj_MAX_CHARS_PROJECT_TITLE,Prj->Title);
Tbl_EndRow ();
/* Department */
Tbl_StartRow ();
@ -3362,8 +3362,8 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
0, // First option
Txt_Another_department, // Text when no department selected
false); // Don't submit on change
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* Preassigned? */
Tbl_StartRow ();
@ -3386,8 +3386,8 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out,">%s</option>",Txt_No);
fprintf (Gbl.F.Out,"</select>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/* Number of students */
Tbl_StartRow ();
@ -3397,11 +3397,11 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
"<td class=\"LEFT_MIDDLE\">"
"<input type=\"number\" name=\"NumStds\""
" min=\"0\" value=\"%u\" />"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Number_of_students,
Prj->NumStds);
Tbl_EndRow ();
/* Proposal */
Tbl_StartRow ();
@ -3423,8 +3423,8 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out,">%s</option>",Txt_PROJECT_STATUS[Proposal]);
}
fprintf (Gbl.F.Out,"</select>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/* Description of the project */
Prj_EditOneProjectTxtArea ("Description",Txt_Description,
@ -3446,11 +3446,11 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
"<td class=\"DAT LEFT_MIDDLE\">"
"<input type=\"url\" id=\"URL\" name=\"URL\""
" size=\"45\" maxlength=\"%u\" value=\"%s\" />"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_URL,
Cns_MAX_CHARS_WWW,Prj->URL);
Tbl_EndRow ();
/* End table, send button and end box */
if (ItsANewProject)
@ -3483,12 +3483,12 @@ static void Prj_EditOneProjectTxtArea (const char *Id,
"<textarea id=\"%s\" name=\"%s\" cols=\"60\" rows=\"%u\">"
"%s"
"</textarea>"
"</td>"
"</tr>",
"</td>",
Id,The_ClassFormInBox[Gbl.Prefs.Theme],Label,
Id,Id,
NumRows,
TxtField);
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -349,8 +349,8 @@ void Rec_ListFieldsRecordsForEdition (void)
}
fprintf (Gbl.F.Out,"</select>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
}
@ -413,8 +413,8 @@ void Rec_ShowFormCreateRecordField (void)
}
fprintf (Gbl.F.Out,"</select>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** End table, send button and end box *****/
Box_EndBoxTableWithButton (Btn_CREATE_BUTTON,Txt_Create_record_field);
@ -443,11 +443,11 @@ static void Rec_WriteHeadingRecordFields (void)
"</th>"
"<th class=\"CENTER_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Field_BR_name,
Txt_No_of_BR_lines,
Txt_Visible_by_BR_the_student);
Tbl_EndRow ();
}
/*****************************************************************************/
@ -1758,13 +1758,13 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
fprintf (Gbl.F.Out,"</td>"
"<td class=\"REC_HEAD CENTER_MIDDLE\">"
"%s<br />%s<br />%s"
"</td>"
"</tr>",
"</td>",
Gbl.Hierarchy.Deg.FullName,Gbl.Hierarchy.Crs.FullName,
UsrDat->FullName);
Tbl_EndRow ();
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Fields of the record that depends on the course *****/
for (NumField = 0, Gbl.RowEvenOdd = 0;
@ -1844,8 +1844,8 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
else
fprintf (Gbl.F.Out,"-");
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* Free structure that stores the query result */
DB_FreeMySQLResult (&mysql_res);
@ -2442,8 +2442,8 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
break;
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table and box *****/
@ -2853,8 +2853,8 @@ static void Rec_ShowEmail (struct UsrData *UsrDat,const char *ClassForm)
fprintf (Gbl.F.Out,"********");
fprintf (Gbl.F.Out,"</div>");
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -2873,8 +2873,8 @@ static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *ClassForm,
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_TOP\">",
ClassForm,Txt_ID);
ID_WriteUsrIDs (UsrDat,Anchor);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3097,8 +3097,8 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
default:
break;
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
else if (SexForm)
{
@ -3122,8 +3122,8 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
"</label>",
Usr_StringsSexIcons[Sex],Txt_SEX_SINGULAR_Abc[Sex]);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
else // RoleForm == false, SexForm == false
{
@ -3134,11 +3134,11 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">"
"%s"
"</td>"
"</tr>",
"</td>",
ClassForm,
Txt_Role,
Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs.Role][UsrDat->Sex]);
Tbl_EndRow ();
}
}
@ -3178,8 +3178,8 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,
}
else if (UsrDat->Surname1[0])
fprintf (Gbl.F.Out,"<strong>%s</strong>",UsrDat->Surname1);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
@ -3210,8 +3210,8 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,
UsrDat->Surname2);
else if (UsrDat->Surname2[0])
fprintf (Gbl.F.Out,"<strong>%s</strong>",UsrDat->Surname2);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3251,8 +3251,8 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,
}
else if (UsrDat->FirstName[0])
fprintf (Gbl.F.Out,"<strong>%s</strong>",UsrDat->FirstName);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3306,8 +3306,8 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
}
fprintf (Gbl.F.Out,"</select>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3340,8 +3340,8 @@ static void Rec_ShowOriginPlace (struct UsrData *UsrDat,
else if (UsrDat->OriginPlace[0])
fprintf (Gbl.F.Out,"%s",UsrDat->OriginPlace);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3371,8 +3371,8 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,
else if (UsrDat->StrBirthday[0])
fprintf (Gbl.F.Out,"%s",UsrDat->StrBirthday);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3405,8 +3405,8 @@ static void Rec_ShowLocalAddress (struct UsrData *UsrDat,
else if (UsrDat->LocalAddress[0])
fprintf (Gbl.F.Out,"%s",UsrDat->LocalAddress);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3441,8 +3441,8 @@ static void Rec_ShowLocalPhone (struct UsrData *UsrDat,
UsrDat->LocalPhone,
UsrDat->LocalPhone);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3475,8 +3475,8 @@ static void Rec_ShowFamilyAddress (struct UsrData *UsrDat,
else if (UsrDat->FamilyAddress[0])
fprintf (Gbl.F.Out,"%s",UsrDat->FamilyAddress);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3511,8 +3511,8 @@ static void Rec_ShowFamilyPhone (struct UsrData *UsrDat,
UsrDat->FamilyPhone,
UsrDat->FamilyPhone);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3546,8 +3546,8 @@ static void Rec_ShowComments (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%s",UsrDat->Comments);
}
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3600,8 +3600,8 @@ static void Rec_ShowInstitution (struct Instit *Ins,
if (Ins->WWW[0])
fprintf (Gbl.F.Out,"</a>");
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3635,8 +3635,8 @@ static void Rec_ShowCentre (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"</a>");
}
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3670,8 +3670,8 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"</a>");
}
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3691,8 +3691,8 @@ static void Rec_ShowOffice (struct UsrData *UsrDat,
ClassForm,Txt_Office);
if (ShowData)
fprintf (Gbl.F.Out,"%s",UsrDat->Tch.Office);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3714,8 +3714,8 @@ static void Rec_ShowOfficePhone (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"<a href=\"tel:%s\" class=\"REC_DAT_BOLD\">%s</a>",
UsrDat->Tch.OfficePhone,
UsrDat->Tch.OfficePhone);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -4026,8 +4026,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
}
fprintf (Gbl.F.Out,"</select>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Institution *****/
Tbl_StartRow ();
@ -4070,8 +4070,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
}
fprintf (Gbl.F.Out,"</select>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
if (IAmATeacher)
{
@ -4116,8 +4116,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
}
fprintf (Gbl.F.Out,"</select>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Department *****/
Tbl_StartRow ();
@ -4134,8 +4134,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
"", // Text when no department selected
true); // Submit on change
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Office *****/
Tbl_StartRow ();
@ -4155,8 +4155,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
Gbl.Usrs.Me.UsrDat.Tch.Office,
Gbl.Form.Id);
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Phone *****/
Tbl_StartRow ();
@ -4177,8 +4177,8 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
Gbl.Usrs.Me.UsrDat.Tch.OfficePhone,
Gbl.Form.Id);
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table and box *****/

View File

@ -386,8 +386,8 @@ void Sta_AskShowCrsHits (void)
Usr_ListUsersToSelect (Rol_NET);
Usr_ListUsersToSelect (Rol_STD);
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Initial and final dates of the search *****/
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (Gbl.Action.Act == ActReqAccCrs);
@ -464,8 +464,8 @@ void Sta_AskShowCrsHits (void)
}
fprintf (Gbl.F.Out,"</select>)"
"</label>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
Tbl_EndTable ();
/***** Hidden param used to get client time zone *****/
@ -554,8 +554,8 @@ void Sta_AskShowGblHits (void)
fprintf (Gbl.F.Out,">%s",Txt_ROLE_STATS[RoleStat]);
}
fprintf (Gbl.F.Out,"</select>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** Selection of action *****/
Sta_WriteSelectorAction ();
@ -576,8 +576,8 @@ void Sta_AskShowGblHits (void)
Gbl.Scope.Default = Hie_SYS;
Sco_GetScope ("ScopeSta");
Sco_PutSelectorScope ("ScopeSta",false);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Count type for the statistic *****/
Tbl_StartRow ();
@ -609,8 +609,8 @@ void Sta_AskShowGblHits (void)
}
fprintf (Gbl.F.Out,"</select>"
"</label>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@ -723,8 +723,8 @@ static void Sta_WriteSelectorAction (void)
}
fprintf (Gbl.F.Out,"</select>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -1645,8 +1645,8 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
Tbl_EndRow ();
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write heading *****/
Tbl_StartRow ();
@ -1670,8 +1670,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
"</th>"
"<th class=\"LEFT_TOP\" style=\"width:10%%;\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_User_ID,
Txt_Name,
@ -1679,6 +1678,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
Txt_Date,
Txt_Action,
Txt_LOG_More_info);
Tbl_EndRow ();
/***** Write rows back *****/
for (NumRow = LastRow, UniqueId = 1, Gbl.RowEvenOdd = 0;
@ -1756,8 +1756,8 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
fprintf (Gbl.F.Out,"<td class=\"LOG LEFT_TOP COLOR%u\">",
Gbl.RowEvenOdd);
Sta_WriteLogComments (LogCod);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Free memory used by the data of the user *****/
@ -1830,14 +1830,14 @@ static void Sta_ShowNumHitsPerUsr (unsigned long NumRows,MYSQL_RES *mysql_res)
"</th>"
"<th colspan=\"2\" class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Photo,
Txt_ID,
Txt_Name,
Txt_Role,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Write rows *****/
for (NumRow = 1, Hits.Max = 0.0, Gbl.RowEvenOdd = 0;
@ -1910,8 +1910,8 @@ static void Sta_ShowNumHitsPerUsr (unsigned long NumRows,MYSQL_RES *mysql_res)
'r', // Non-editing teacher or teacher
BarWidth);
Str_WriteFloatNum (Gbl.F.Out,Hits.Num);
fprintf (Gbl.F.Out,"&nbsp;</td>"
"</tr>");
fprintf (Gbl.F.Out,"&nbsp;</td>");
Tbl_EndRow ();
}
/***** Free memory used by the data of the user *****/
@ -1952,11 +1952,11 @@ static void Sta_ShowNumHitsPerDay (unsigned long NumRows,MYSQL_RES *mysql_res)
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Date,
Txt_Day,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per day *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -2126,8 +2126,8 @@ static void Sta_ShowDistrAccessesPerDayAndHour (unsigned long NumRows,MYSQL_RES
fprintf (Gbl.F.Out,"</select>"
"</label>");
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Compute maximum number of pages generated per day-hour *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,2,1);
@ -2152,19 +2152,21 @@ static void Sta_ShowDistrAccessesPerDayAndHour (unsigned long NumRows,MYSQL_RES
"<th colspan=\"24\" class=\"LEFT_TOP\""
" style=\"width:%upx;\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Date,
Txt_Day,
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td colspan=\"24\" class=\"LEFT_TOP\""
" style=\"width:%upx;\">",
GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH);
Sta_DrawBarColors (SelectedColorType,Hits.Max);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
Tbl_StartRow ();
for (Hour = 0;
Hour < 24;
@ -2390,8 +2392,9 @@ static void Sta_DrawBarColors (Sta_ColorType_t ColorType,float HitsMax)
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2,
(GRAPH_DISTRIBUTION_PER_HOUR_TOTAL_WIDTH/5)/2);
Str_WriteFloatNum (Gbl.F.Out,HitsMax);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
Tbl_StartRow ();
/***** Draw colors *****/
@ -2541,10 +2544,10 @@ static void Sta_ShowNumHitsPerWeek (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Week,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per week *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -2641,10 +2644,10 @@ static void Sta_ShowNumHitsPerMonth (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Month,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per month *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -2741,10 +2744,10 @@ static void Sta_ShowNumHitsPerYear (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Year,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per year *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3024,10 +3027,10 @@ static void Sta_ShowAverageAccessesPerMinute (unsigned long NumRows,MYSQL_RES *m
"<img src=\"%s/tr24x1.gif\""
" alt=\"\" title=\"\""
" style=\"display:block; width:%upx; height:1px;\" />"
"</td>"
"</tr>",
"</td>",
Sta_WIDTH_SEMIDIVISION_GRAPHIC,Cfg_URL_ICON_PUBLIC,
Sta_WIDTH_SEMIDIVISION_GRAPHIC);
Tbl_EndRow ();
/***** Write again the labels of the X axis *****/
Sta_WriteLabelsXAxisAccMin (IncX,Format);
@ -3127,8 +3130,8 @@ static void Sta_WriteAccessMinute (unsigned Minute,float HitsNum,float MaxX)
BarWidth);
/***** End cell of graphic and end row *****/
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3153,10 +3156,10 @@ static void Sta_ShowNumHitsPerAction (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Action,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per day *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3216,10 +3219,10 @@ static void Sta_ShowNumHitsPerPlugin (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Plugin,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per plugin *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3271,10 +3274,10 @@ static void Sta_ShowNumHitsPerWSFunction (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Function,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per function *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3326,10 +3329,10 @@ static void Sta_ShowNumHitsPerBanner (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Banner,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of clicks per banner *****/
for (NumRow = 1;
@ -3405,11 +3408,11 @@ static void Sta_ShowNumHitsPerCountry (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Country,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of hits per country *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3499,11 +3502,11 @@ static void Sta_ShowNumHitsPerInstitution (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Institution,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of hits per institution *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3595,11 +3598,11 @@ static void Sta_ShowNumHitsPerCentre (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Centre,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of hits per centre *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3691,11 +3694,11 @@ static void Sta_ShowNumHitsPerDegree (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Degree,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of hits per degree *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3798,13 +3801,13 @@ static void Sta_ShowNumHitsPerCourse (unsigned long NumRows,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Degree,
Txt_Year_OF_A_DEGREE,
Txt_Course,
Txt_STAT_TYPE_COUNT_CAPS[Gbl.Stat.CountType]);
Tbl_EndRow ();
/***** Compute maximum number of pages generated per course *****/
Sta_ComputeMaxAndTotalHits (&Hits,NumRows,mysql_res,1,1);
@ -3939,8 +3942,8 @@ static void Sta_DrawBarNumHits (char Color,
fprintf (Gbl.F.Out,"0&nbsp;(0");
fprintf (Gbl.F.Out,"%%)&nbsp;"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -4156,8 +4159,7 @@ void Sta_GetAndShowLastClicks (void)
"<th class=\"LEFT_MIDDLE\""
" style=\"width:275px;\">"
"%s" // Action
"</th>"
"</tr>",
"</th>",
Txt_Click,
Txt_ELAPSED_TIME,
Txt_Role,
@ -4166,6 +4168,7 @@ void Sta_GetAndShowLastClicks (void)
Txt_Centre,
Txt_Degree,
Txt_Action);
Tbl_EndRow ();
for (NumRow = 0;
NumRow < NumRows;
@ -4240,8 +4243,8 @@ void Sta_GetAndShowLastClicks (void)
if (row[8])
if (row[8][0])
fprintf (Gbl.F.Out,"%s",row[8]); // Action
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
Tbl_EndTable ();

View File

@ -274,10 +274,10 @@ static void Svy_ListAllSurveys (struct SurveyQuestion *SvyQst)
"</th>"
"<th class=\"CENTER_MIDDLE\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_Survey,
Txt_Status);
Tbl_EndRow ();
/***** Write all the surveys *****/
for (NumSvy = Pagination.FirstItemVisible;
@ -576,8 +576,8 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
}
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write second row of data of this survey *****/
Tbl_StartRow ();
@ -655,11 +655,11 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
Str_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
fprintf (Gbl.F.Out,"<div class=\"PAR %s\">%s</div>"
"</td>"
"</tr>",
"</td>",
Svy.Status.Visible ? "DAT" :
"DAT_LIGHT",
Txt);
Tbl_EndRow ();
/***** Write questions of this survey *****/
if (ShowOnlyThisSvyComplete)
@ -667,8 +667,8 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td colspan=\"5\">");
Svy_ListSvyQuestions (&Svy,SvyQst);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
@ -1867,8 +1867,8 @@ void Svy_RequestCreatOrEditSvy (void)
Svy_SetDefaultAndAllowedScope (&Svy);
Sco_GetScope ("ScopeSvy");
Sco_PutSelectorScope ("ScopeSvy",false);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Survey title *****/
Tbl_StartRow ();
@ -1879,11 +1879,11 @@ void Svy_RequestCreatOrEditSvy (void)
"<input type=\"text\" id=\"Title\" name=\"Title\""
" size=\"45\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Title,
Svy_MAX_CHARS_SURVEY_TITLE,Svy.Title);
Tbl_EndRow ();
/***** Survey start and end dates *****/
Dat_PutFormStartEndClientLocalDateTimes (Svy.TimeUTC,Dat_FORM_SECONDS_ON);
@ -1901,8 +1901,8 @@ void Svy_RequestCreatOrEditSvy (void)
if (!ItsANewSurvey)
fprintf (Gbl.F.Out,"%s",Txt);
fprintf (Gbl.F.Out,"</textarea>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** Users' roles who can answer the survey *****/
Tbl_StartRow ();
@ -1916,8 +1916,8 @@ void Svy_RequestCreatOrEditSvy (void)
1 << Rol_TCH,
Svy.Roles,
false,false);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Groups *****/
Svy_ShowLstGrpsToEditSurvey (Svy.SvyCod);
@ -2056,9 +2056,9 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
fprintf (Gbl.F.Out," onclick=\"uncheckChildren(this,'GrpCods')\" />"
"%s %s"
"</label>"
"</td>"
"</tr>",
"</td>",
Txt_The_whole_course,Gbl.Hierarchy.Crs.ShrtName);
Tbl_EndRow ();
/***** List the groups for each group type *****/
for (NumGrpTyp = 0;
@ -2070,8 +2070,8 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
/***** End table and box *****/
Box_EndBoxTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Free list of groups types and groups in this course *****/
@ -2687,10 +2687,10 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
" cols=\"60\" rows=\"4\">"
"%s"
"</textarea>"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Wording,
Txt);
Tbl_EndRow ();
/***** Type of answer *****/
Tbl_StartRow ();
@ -2716,8 +2716,8 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
"</label><br />",
Txt_SURVEY_STR_ANSWER_TYPES[AnsType]);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Answers *****/
/* Unique or multiple choice answers */
@ -2744,12 +2744,12 @@ static void Svy_ShowFormEditOneQst (long SvyCod,struct SurveyQuestion *SvyQst,
if (SvyQst->AnsChoice[NumAns].Text)
fprintf (Gbl.F.Out,"%s",SvyQst->AnsChoice[NumAns].Text);
fprintf (Gbl.F.Out,"</textarea>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable ();
@ -3200,11 +3200,11 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Type,
Txt_Question);
Tbl_EndRow ();
/***** Write questions one by one *****/
for (NumQst = 0;
@ -3261,8 +3261,8 @@ static void Svy_ListSvyQuestions (struct Survey *Svy,
Gbl.RowEvenOdd);
Svy_WriteQstStem (row[3]);
Svy_WriteAnswersOfAQst (Svy,SvyQst,PutFormAnswerSurvey);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
Tbl_EndTable ();
@ -3494,9 +3494,9 @@ static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs)
BarWidth);
/***** Write the number of users *****/
fprintf (Gbl.F.Out,"%s</td>"
"</tr>",
fprintf (Gbl.F.Out,"%s</td>",
Gbl.Title);
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -370,8 +370,8 @@ void Tst_ShowFormAskTst (void)
if (Gbl.Test.Config.Min == Gbl.Test.Config.Max)
fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," />"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
Tbl_EndTable ();
@ -998,10 +998,10 @@ static void Tst_ShowTestResultAfterAssess (long TstCod,unsigned *NumQstsNotBlank
"</td>"
"<td class=\"DAT_LIGHT LEFT_TOP COLOR%u\">"
"%s"
"</td>"
"</tr>",
"</td>",
Gbl.RowEvenOdd,NumQst + 1,
Gbl.RowEvenOdd,Txt_Question_removed);
Tbl_EndRow ();
}
/***** Free structure that stores the query result *****/
@ -1078,8 +1078,8 @@ static void Tst_WriteQstAndAnsTest (Tst_ActionToDoWithQuestions_t ActionToDoWith
default:
break;
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Destroy test question *****/
Tst_QstDestructor ();
@ -1719,9 +1719,9 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
fprintf (Gbl.F.Out," onclick=\"togglecheckChildren(this,'ChkTag');\" />"
"&nbsp;%s"
"</label>"
"</td>"
"</tr>",
"</td>",
Txt_All_tags);
Tbl_EndRow ();
/***** Select tags one by one *****/
for (NumRow = 1;
@ -1764,14 +1764,14 @@ static void Tst_ShowFormSelTags (unsigned long NumRows,MYSQL_RES *mysql_res,
fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllTags');\" />"
"&nbsp;%s"
"</label>"
"</td>"
"</tr>",
"</td>",
row[1]);
Tbl_EndRow ();
}
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -1826,8 +1826,8 @@ static void Tst_ShowFormEditTags (void)
" onchange=\"document.getElementById('%s').submit();\" />",
Tst_MAX_CHARS_TAG,row[1],Gbl.Form.Id);
Frm_EndForm ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table and box *****/
@ -1933,8 +1933,8 @@ static void Tst_ShowFormConfigTst (void)
"</label><br />",
Txt_TST_PLUGGABLE[Pluggable]);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Number of questions *****/
Tbl_StartRow ();
@ -1952,8 +1952,8 @@ static void Tst_ShowFormConfigTst (void)
Tst_PutInputFieldNumQst ("NumQstMax",Txt_maximum,
Gbl.Test.Config.Max); // Maximum number of questions
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Minimum time between consecutive tests, per question *****/
Tbl_StartRow ();
@ -1967,11 +1967,11 @@ static void Tst_ShowFormConfigTst (void)
" id=\"MinTimeNxtTstPerQst\" name=\"MinTimeNxtTstPerQst\""
" size=\"7\" maxlength=\"7\" value=\"%lu\""
" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Minimum_time_seconds_per_question_between_two_tests,
Gbl.Test.Config.MinTimeNxtTstPerQst);
Tbl_EndRow ();
/***** Feedback to students *****/
Tbl_StartRow ();
@ -1994,8 +1994,8 @@ static void Tst_ShowFormConfigTst (void)
"</label><br />",
Txt_TST_STR_FEEDBACK[Feedback]);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
Tbl_EndTable ();
/***** Send button *****/
@ -2024,11 +2024,11 @@ static void Tst_PutInputFieldNumQst (const char *Field,const char *Label,
" id=\"%s\" name=\"%s\""
" size=\"3\" maxlength=\"3\" value=\"%u\""
" required=\"required\" />"
"</td>"
"</tr>",
"</td>",
Field,Label,
Field,Field,
Value);
Tbl_EndRow ();
}
/*****************************************************************************/
@ -2336,9 +2336,9 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
fprintf (Gbl.F.Out," onclick=\"togglecheckChildren(this,'AnswerType');\" />"
"&nbsp;%s"
"</label>"
"</td>"
"</tr>",
"</td>",
Txt_All_types_of_answers);
Tbl_EndRow ();
/***** Type of answer *****/
for (AnsType = (Tst_AnswerType_t) 0;
@ -2360,14 +2360,14 @@ static void Tst_ShowFormAnswerTypes (unsigned NumCols)
fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllAnsTypes');\" />"
"&nbsp;%s"
"</label>"
"</td>"
"</tr>",
"</td>",
Txt_TST_STR_ANSWER_TYPES[AnsType]);
Tbl_EndRow ();
}
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -3030,8 +3030,8 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
(double) NumHitsNotBlankThisQst);
else
fprintf (Gbl.F.Out,"N.A.");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Destroy test question *****/
Tst_QstDestructor ();
@ -3103,8 +3103,7 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
"</th>"
"<th class=\"CENTER_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Code,
Txt_Date,
@ -3112,6 +3111,7 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
Txt_Type,
Txt_Shuffle,
Txt_Question);
Tbl_EndRow ();
/***** Write rows *****/
for (NumRow = 0, UniqueId = 1;
@ -3216,8 +3216,8 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
/* Write answers */
Tst_WriteAnswersEdit (Gbl.Test.QstCod);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Destroy test question *****/
Tst_QstDestructor ();
@ -3447,8 +3447,8 @@ void Tst_WriteAnswersEdit (long QstCod)
if (LengthFeedback)
fprintf (Gbl.F.Out,"%s",Feedback);
fprintf (Gbl.F.Out,"</div>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/* Free memory allocated for the answer and the feedback */
free ((void *) Answer);
@ -3678,8 +3678,8 @@ static void Tst_WriteTFAnsAssessTest (struct UsrData *UsrDat,
Tst_WriteAnsTF (row[1][0]);
else
fprintf (Gbl.F.Out,"?");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write the mark *****/
if (Gbl.Test.Config.Feedback == Tst_FEEDBACK_EACH_RESULT ||
@ -3797,8 +3797,8 @@ static void Tst_WriteChoiceAnsViewTest (unsigned NumQst,long QstCod,bool Shuffle
Med_ShowMedia (&Gbl.Test.Answer.Options[NumOpt].Media,
"TEST_MED_SHOW_CONTAINER",
"TEST_MED_SHOW");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** End table *****/
@ -3845,8 +3845,8 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat,
Tbl_StartRow ();
Tst_WriteHeadUserCorrect (UsrDat);
fprintf (Gbl.F.Out,"<td></td>"
"<td></td>"
"</tr>");
"<td></td>");
Tbl_EndRow ();
/***** Write answers (one row per answer) *****/
for (NumOpt = 0;
@ -3918,8 +3918,8 @@ static void Tst_WriteChoiceAnsAssessTest (struct UsrData *UsrDat,
"%s"
"</div>",
Gbl.Test.Answer.Options[Indexes[NumOpt]].Feedback);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Write the total score of this question *****/
@ -4395,8 +4395,8 @@ static void Tst_WriteTextAnsAssessTest (struct UsrData *UsrDat,
"%s"
"</div>",
Gbl.Test.Answer.Options[NumOpt].Feedback);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
Tbl_EndTable ();
@ -4404,8 +4404,8 @@ static void Tst_WriteTextAnsAssessTest (struct UsrData *UsrDat,
else
fprintf (Gbl.F.Out,"<td class=\"ANS_0 CENTER_TOP\">"
"?");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Compute the mark *****/
if (!Gbl.Test.StrAnswersOneQst[NumQst][0]) // If user has omitted the answer
@ -4516,8 +4516,8 @@ static void Tst_WriteIntAnsAssessTest (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%ld",IntAnswerCorr);
else
fprintf (Gbl.F.Out,"?");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Compute the score *****/
if (!Gbl.Test.StrAnswersOneQst[NumQst][0]) // If user has omitted the answer
@ -4638,8 +4638,8 @@ static void Tst_WriteFloatAnsAssessTest (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"[%lg; %lg]",FloatAnsCorr[0],FloatAnsCorr[1]);
else
fprintf (Gbl.F.Out,"?");
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Compute mark *****/
if (!Gbl.Test.StrAnswersOneQst[NumQst][0]) // If user has omitted the answer
@ -4713,8 +4713,8 @@ static void Tst_WriteScoreStart (unsigned ColSpan)
static void Tst_WriteScoreEnd (void)
{
fprintf (Gbl.F.Out,"</span>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
/*****************************************************************************/
@ -5075,8 +5075,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td colspan=\"2\">");
Lay_HelpPlainEditor ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Get tags already existing for questions in current course *****/
NumRows = Tst_GetAllTagsFromCurrentCrs (&mysql_res);
@ -5143,8 +5143,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
}
Tbl_EndTable (); // Table for tags
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* Free structure that stores the query result */
DB_FreeMySQLResult (&mysql_res);
@ -5177,8 +5177,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
fprintf (Gbl.F.Out,"%s",Feedback);
fprintf (Gbl.F.Out,"</textarea>"
"</label>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/***** Type of answer *****/
Tbl_StartRow ();
@ -5203,8 +5203,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
"</label><br />",
Txt_TST_STR_ANSWER_TYPES[AnsType]);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Answers *****/
/* Integer answer */
@ -5224,8 +5224,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," required=\"required\" />"
"</label>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
/* Floating point answer */
Tbl_StartRow ();
@ -5235,8 +5235,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
Gbl.Test.Answer.FloatingPoint[0]);
Tst_PutFloatInputField (Txt_Real_number_between_A_and_B_2,"AnsFloatMax",
Gbl.Test.Answer.FloatingPoint[1]);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* T/F answer */
Tbl_StartRow ();
@ -5244,8 +5244,8 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
"<td class=\"LEFT_TOP\">");
Tst_PutTFInputField (Txt_TF_QST[0],'T');
Tst_PutTFInputField (Txt_TF_QST[1],'F');
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* Questions can be shuffled? */
Tbl_StartRow ();
@ -5262,9 +5262,9 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
fprintf (Gbl.F.Out," />"
"%s"
"</label>"
"</td>"
"</tr>",
"</td>",
Txt_Shuffle);
Tbl_EndRow ();
/* Simple or multiple choice answers */
Tbl_StartRow ();
@ -5394,12 +5394,12 @@ static void Tst_PutFormEditOneQst (char Stem[Cns_MAX_BYTES_TEXT + 1],
/* End of right column */
fprintf (Gbl.F.Out,"</div>"
"</td>"
"</tr>");
"</td>");
Tbl_EndRow ();
}
Tbl_EndTable (); // Table with choice answers
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** End table *****/
Tbl_EndTable (); // Table for this question
@ -7466,8 +7466,8 @@ void Tst_SelUsrsToViewUsrsTstResults (void)
Usr_ListUsersToSelect (Rol_NET);
Usr_ListUsersToSelect (Rol_STD);
Tbl_EndTable ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Starting and ending dates in the search *****/
Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (false);
@ -7685,8 +7685,7 @@ static void Tst_ShowHeaderTestResults (void)
"<th class=\"RIGHT_TOP\">"
"%s<br />%s<br />%u"
"</th>"
"<th></th>"
"</tr>",
"<th></th>",
Txt_User[Usr_SEX_UNKNOWN],
Txt_Date,
Txt_Questions,
@ -7694,6 +7693,7 @@ static void Tst_ShowHeaderTestResults (void)
Txt_Total_BR_score,
Txt_Average_BR_score_BR_per_question_BR_from_0_to_1,
Txt_Score,Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
Tbl_EndRow ();
}
/*****************************************************************************/
@ -7876,8 +7876,8 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
Ico_PutIconLink ("tasks.svg",Txt_View_test);
Frm_EndForm ();
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
if (Gbl.Test.AllowTeachers)
NumExamsVisibleByTchs++;
@ -8137,8 +8137,8 @@ void Tst_ShowOneTstResult (void)
Pho_ShowUsrPhoto (&Gbl.Usrs.Other.UsrDat,ShowPhoto ? PhotoURL :
NULL,
"PHOTO45x60",Pho_ZOOM,false);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* Test date */
Tbl_StartRow ();
@ -8150,10 +8150,10 @@ void Tst_ShowOneTstResult (void)
"writeLocalDateHMSFromUTC('test',%ld,"
"%u,',&nbsp;','%s',true,true,0x7);"
"</script>"
"</td>"
"</tr>",
"</td>",
Txt_Date,TstTimeUTC,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndRow ();
/* Number of questions */
Tbl_StartRow ();
@ -8162,10 +8162,10 @@ void Tst_ShowOneTstResult (void)
"</td>"
"<td class=\"DAT LEFT_TOP\">"
"%u (%u %s)"
"</td>"
"</tr>",
"</td>",
Txt_Questions,
Gbl.Test.NumQsts,NumQstsNotBlank,Txt_non_blank_QUESTIONS);
Tbl_EndRow ();
/* Score */
Tbl_StartRow ();
@ -8181,9 +8181,9 @@ void Tst_ShowOneTstResult (void)
0.0);
else
fprintf (Gbl.F.Out,"? (?"); // No feedback
fprintf (Gbl.F.Out," %s %u)</td>"
"</tr>",
fprintf (Gbl.F.Out," %s %u)</td>",
Txt_out_of_PART_OF_A_SCORE,Tst_SCORE_MAX);
Tbl_EndRow ();
/* Tags present in this test */
Tbl_StartRow ();
@ -8193,8 +8193,8 @@ void Tst_ShowOneTstResult (void)
"<td class=\"DAT LEFT_TOP\">",
Txt_Tags);
Tst_ShowTstTagsPresentInATestResult (TstCod);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write answers and solutions *****/
Tst_ShowTestResult (&Gbl.Usrs.Other.UsrDat,
@ -8271,10 +8271,10 @@ void Tst_ShowTestResult (struct UsrData *UsrDat,
"</td>"
"<td class=\"DAT_LIGHT LEFT_TOP COLOR%u\">"
"%s"
"</td>"
"</tr>",
"</td>",
Gbl.RowEvenOdd,NumQst + 1,
Gbl.RowEvenOdd,Txt_Question_modified);
Tbl_EndRow ();
}
else
{
@ -8299,10 +8299,10 @@ void Tst_ShowTestResult (struct UsrData *UsrDat,
"</td>"
"<td class=\"DAT_LIGHT LEFT_TOP COLOR%u\">"
"%s"
"</td>"
"</tr>",
"</td>",
Gbl.RowEvenOdd,NumQst + 1,
Gbl.RowEvenOdd,Txt_Question_removed);
Tbl_EndRow ();
}
/***** Free structure that stores the query result *****/

View File

@ -974,13 +974,13 @@ static void TsI_WriteHeadingListImportedQst (void)
"</th>"
"<th class=\"LEFT_TOP\">"
"%s"
"</th>"
"</tr>",
"</th>",
Txt_No_INDEX,
Txt_Tags,
Txt_Type,
Txt_Shuffle,
Txt_Question);
Tbl_EndRow ();
}
/*****************************************************************************/
@ -1056,10 +1056,10 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
"</td>"
"<td class=\"%s LEFT_TOP\">"
"%s"
"</td>"
"</tr>",
"</td>",
ClassData,
ClassData,Gbl.Test.Tags.Txt[NumTag]);
Tbl_EndRow ();
}
Tbl_EndTable ();
}
@ -1180,8 +1180,8 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
"%s"
"</div>",
AnswerFeedback);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/* Free memory allocated for the answer and the feedback */
free ((void *) AnswerText);
@ -1193,6 +1193,6 @@ static void TsI_WriteRowImportedQst (struct XMLElement *StemElem,
default:
break;
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}

View File

@ -1145,10 +1145,10 @@ static void TT_DrawTimeTable (void)
fprintf (Gbl.F.Out,"<td rowspan=\"2\" class=\"TT_HOUR_BIG LEFT_MIDDLE\""
" style=\"width:%u%%;\">"
"%02u:00"
"</td>"
"</tr>",
"</td>",
TT_PERCENT_WIDTH_OF_AN_HOUR_COLUMN,
Gbl.TimeTable.Config.Range.Hours.Start);
Tbl_EndRow ();
/***** Get list of groups types and groups in this course *****/
if (Gbl.Action.Act == ActEdiCrsTT ||
@ -1283,8 +1283,8 @@ static void TT_TimeTableDrawAdjustRow (void)
Minicolumn++)
fprintf (Gbl.F.Out,"<td class=\"TT_MINICOL\"></td>");
TT_DrawCellAlignTimeTable ();
fprintf (Gbl.F.Out,"<td class=\"TT_HOURCOL\"></td>"
"</tr>");
fprintf (Gbl.F.Out,"<td class=\"TT_HOURCOL\"></td>");
Tbl_EndRow ();
}
/*****************************************************************************/

View File

@ -4047,8 +4047,8 @@ static void Usr_WriteRowAdmData (unsigned NumUsr,struct UsrData *UsrDat)
Usr_WriteMainUsrDataExceptUsrID (UsrDat,Gbl.ColorRows[Gbl.RowEvenOdd]);
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",Gbl.ColorRows[Gbl.RowEvenOdd]);
Ins_DrawInstitutionLogoWithLink (&Ins,25);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** Write degrees which are administrated by this administrator *****/
Hie_GetAndWriteInsCtrDegAdminBy (UsrDat->UsrCod,
@ -6326,10 +6326,10 @@ void Usr_PutCheckboxToSelectAllUsers (Rol_Role_t Role)
Sex = Usr_GetSexOfUsrsLst (Role);
fprintf (Gbl.F.Out,"%s:"
"</label>"
"</th>"
"</tr>",
"</th>",
Gbl.Usrs.LstUsrs[Role].NumUsrs == 1 ? Txt_ROLES_SINGUL_Abc[Role][Sex] :
Txt_ROLES_PLURAL_Abc[Role][Sex]);
Tbl_EndRow ();
}
/*****************************************************************************/
@ -6558,8 +6558,8 @@ static void Usr_ListMainDataStds (bool PutCheckBoxToSelectUsr)
fprintf (Gbl.F.Out,"<td colspan=\"%u\" class=\"TIT CENTER_MIDDLE\">",
1 + Usr_NUM_MAIN_FIELDS_DATA_USR);
Grp_WriteNamesOfSelectedGrps ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Put a row to select all users *****/
@ -6887,8 +6887,8 @@ void Usr_ListAllDataStds (void)
fprintf (Gbl.F.Out,"<td colspan=\"%u\" class=\"TIT CENTER_MIDDLE\">",
NumColumnsTotal);
Grp_WriteNamesOfSelectedGrps ();
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
/***** Heading row with column names *****/
@ -7251,8 +7251,8 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,
}
else
Crs_GetAndWriteCrssOfAUsr (&UsrDat,Role);
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
}
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;

View File

@ -578,8 +578,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
" alt=\"%s\" title=\"%s\""
" class=\"ICO40x40\" />"
"</a>"
"</td>"
"</tr>",
"</td>",
URL,FileName,
CfG_URL_ICON_FILEXT_PUBLIC,
Txt_ZIP_file,
@ -588,6 +587,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
Cfg_URL_ICON_PUBLIC,
Txt_Download,
Txt_Download);
Tbl_EndRow ();
/***** Filename *****/
Tbl_StartRow ();
@ -596,10 +596,10 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"<a href=\"%s\" class=\"DAT\" title=\"%s\" target=\"_blank\">%s</a>"
"</td>"
"</tr>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Filename,
URL,FileName,FileName);
Tbl_EndRow ();
/***** Write the file size *****/
Fil_WriteFileSizeFull ((double) FileSize,FileSizeStr);
@ -618,8 +618,8 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
fprintf (Gbl.F.Out," (%s %s)",
FileSizeStr,Txt_FILE_uncompressed);
}
fprintf (Gbl.F.Out,"</td>"
"</tr>");
fprintf (Gbl.F.Out,"</td>");
Tbl_EndRow ();
/***** End table and box *****/
Box_EndBoxTable ();