Version19.31.16

This commit is contained in:
Antonio Cañas Vargas 2019-10-07 20:17:29 +02:00
parent 58fd148727
commit 291920e560
8 changed files with 675 additions and 445 deletions

View File

@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD: En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 19.31.15 (2019-10-07)" #define Log_PLATFORM_VERSION "SWAD 19.31.16 (2019-10-07)"
#define CSS_FILE "swad19.29.css" #define CSS_FILE "swad19.29.css"
#define JS_FILE "swad19.30.js" #define JS_FILE "swad19.30.js"
/* /*
@ -495,6 +495,7 @@ ps2pdf source.ps destination.pdf
// TODO: Un TFG preasignado sin estudiante tiene que salir un triángulo amarillo // TODO: Un TFG preasignado sin estudiante tiene que salir un triángulo amarillo
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.) // TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
Version 19.31.16: Oct 07, 2019 Code refactoring in HTML tables. (247185 lines)
Version 19.31.15: Oct 07, 2019 Code refactoring in HTML tables. (247153 lines) Version 19.31.15: Oct 07, 2019 Code refactoring in HTML tables. (247153 lines)
Version 19.31.14: Oct 07, 2019 Code refactoring in HTML tables. (247138 lines) Version 19.31.14: Oct 07, 2019 Code refactoring in HTML tables. (247138 lines)
Version 19.31.13: Oct 07, 2019 Code refactoring in HTML tables. (247135 lines) Version 19.31.13: Oct 07, 2019 Code refactoring in HTML tables. (247135 lines)

View File

@ -141,14 +141,17 @@ void Plc_SeePlaces (void)
{ {
/* Write data of this place */ /* Write data of this place */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"%s" "%s",
"</td>" Gbl.Plcs.Lst[NumPlc].FullName);
"<td class=\"DAT RIGHT_MIDDLE\">" Tbl_EndCell ();
"%u"
"</td>", fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
Gbl.Plcs.Lst[NumPlc].FullName, "%u",
Gbl.Plcs.Lst[NumPlc].NumCtrs); Gbl.Plcs.Lst[NumPlc].NumCtrs);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
NumCtrsWithPlc += Gbl.Plcs.Lst[NumPlc].NumCtrs; NumCtrsWithPlc += Gbl.Plcs.Lst[NumPlc].NumCtrs;
} }
@ -156,34 +159,41 @@ void Plc_SeePlaces (void)
/***** Separation row *****/ /***** Separation row *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"DAT\">" fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"DAT\">"
"&nbsp;" "&nbsp;");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Write centres (of the current institution) with other place *****/ /***** Write centres (of the current institution) with other place *****/
NumCtrsInOtherPlcs = Ctr_GetNumCtrsInPlc (0); NumCtrsInOtherPlcs = Ctr_GetNumCtrsInPlc (0);
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"%s" "%s",
"</td>" Txt_Other_places);
"<td class=\"DAT RIGHT_MIDDLE\">" Tbl_EndCell ();
"%u"
"</td>", fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
Txt_Other_places,NumCtrsInOtherPlcs); "%u",
NumCtrsInOtherPlcs);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
NumCtrsWithPlc += NumCtrsInOtherPlcs; NumCtrsWithPlc += NumCtrsInOtherPlcs;
/***** Write centres (of the current institution) with no place *****/ /***** Write centres (of the current institution) with no place *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"%s" "%s",
"</td>" Txt_Place_unspecified);
"<td class=\"DAT RIGHT_MIDDLE\">" Tbl_EndCell ();
"%u"
"</td>", fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
Txt_Place_unspecified, "%u",
Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod) - Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod) -
NumCtrsWithPlc); NumCtrsWithPlc);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End table *****/ /***** End table *****/
@ -538,9 +548,9 @@ static void Plc_ListPlacesForEdition (void)
/* Place code */ /* Place code */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"%ld" "%ld",
"</td>",
Plc->PlcCod); Plc->PlcCod);
Tbl_EndCell ();
/* Place short name */ /* Place short name */
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
@ -568,9 +578,10 @@ static void Plc_ListPlacesForEdition (void)
/* Number of centres */ /* Number of centres */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"%u" "%u",
"</td>",
Plc->NumCtrs); Plc->NumCtrs);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -806,33 +817,36 @@ static void Plc_PutFormToCreatePlace (void)
/***** Column to remove place, disabled here *****/ /***** Column to remove place, disabled here *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"BM\"></td>"); fprintf (Gbl.F.Out,"<td class=\"BM\">");
Tbl_EndCell ();
/***** Place code *****/ /***** Place code *****/
fprintf (Gbl.F.Out,"<td class=\"CODE\"></td>"); fprintf (Gbl.F.Out,"<td class=\"CODE\">");
Tbl_EndCell ();
/***** Place short name *****/ /***** Place short name *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"ShortName\"" "<input type=\"text\" name=\"ShortName\""
" maxlength=\"%u\" value=\"%s\"" " maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_SHORT_NAME\"" " class=\"INPUT_SHORT_NAME\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Plc_MAX_CHARS_PLACE_SHRT_NAME,Plc_EditingPlc->ShrtName); Plc_MAX_CHARS_PLACE_SHRT_NAME,Plc_EditingPlc->ShrtName);
Tbl_EndCell ();
/***** Place full name *****/ /***** Place full name *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"FullName\"" "<input type=\"text\" name=\"FullName\""
" maxlength=\"%u\" value=\"%s\"" " maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_FULL_NAME\"" " class=\"INPUT_FULL_NAME\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Plc_MAX_CHARS_PLACE_FULL_NAME,Plc_EditingPlc->FullName); Plc_MAX_CHARS_PLACE_FULL_NAME,Plc_EditingPlc->FullName);
Tbl_EndCell ();
/***** Number of centres *****/ /***** Number of centres *****/
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"0" "0");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End table, send button and end box *****/ /***** End table, send button and end box *****/

View File

@ -137,23 +137,26 @@ void Plg_ListPlugins (void)
/* Plugin logo */ /* Plugin logo */
// TODO: Change plugin icons to 32x32 // TODO: Change plugin icons to 32x32
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\" style=\"width:45px;\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\" style=\"width:45px;\">"
"<a href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\">" "<a href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\">"
"<img src=\"%s/%s24x24.gif\"" "<img src=\"%s/%s24x24.gif\""
" alt=\"%s\" title=\"%s\"" " alt=\"%s\" title=\"%s\""
" class=\"ICO40x40\" />" " class=\"ICO40x40\" />"
"</a>" "</a>",
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"<a href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\">"
"%s"
"</a>"
"</td>",
URL,Plg->Name, URL,Plg->Name,
Cfg_URL_ICON_PLUGINS_PUBLIC,Gbl.Plugins.Lst[NumPlg].Logo, Cfg_URL_ICON_PLUGINS_PUBLIC,Gbl.Plugins.Lst[NumPlg].Logo,
Plg->Name,Plg->Name, Plg->Name,Plg->Name);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"<a href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\">"
"%s"
"</a>",
URL,Plg->Name, URL,Plg->Name,
Plg->Name); Plg->Name);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -403,21 +406,21 @@ static void Plg_ListPluginsForEdition (void)
/* Plugin code */ /* Plugin code */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"%ld" "%ld",
"</td>",
Plg->PlgCod); Plg->PlgCod);
Tbl_EndCell ();
/* Plugin logo */ /* Plugin logo */
// TODO: Change plugin icons to 32x32 // TODO: Change plugin icons to 32x32
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\" style=\"width:45px;\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\" style=\"width:45px;\">"
"<img src=\"%s/%s24x24.gif\"" "<img src=\"%s/%s24x24.gif\""
" alt=\"%s\" title=\"%s\"" " alt=\"%s\" title=\"%s\""
" class=\"ICO40x40\" />" " class=\"ICO40x40\" />",
"</td>",
Cfg_URL_ICON_PLUGINS_PUBLIC, Cfg_URL_ICON_PLUGINS_PUBLIC,
Gbl.Plugins.Lst[NumPlg].Logo, Gbl.Plugins.Lst[NumPlg].Logo,
Gbl.Plugins.Lst[NumPlg].Name, Gbl.Plugins.Lst[NumPlg].Name,
Gbl.Plugins.Lst[NumPlg].Name); Gbl.Plugins.Lst[NumPlg].Name);
Tbl_EndCell ();
/* Plugin name */ /* Plugin name */
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
@ -920,49 +923,50 @@ static void Plg_PutFormToCreatePlugin (void)
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"Name\"" "<input type=\"text\" name=\"Name\""
" size=\"10\" maxlength=\"%u\" value=\"%s\"" " size=\"10\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Plg_MAX_CHARS_PLUGIN_NAME,Plg_EditingPlg->Name); Plg_MAX_CHARS_PLUGIN_NAME,Plg_EditingPlg->Name);
Tbl_EndCell ();
/***** Plugin description *****/ /***** Plugin description *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"Description\"" "<input type=\"text\" name=\"Description\""
" size=\"30\" maxlength=\"%u\" value=\"%s\"" " size=\"30\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Plg_MAX_CHARS_PLUGIN_DESCRIPTION,Plg_EditingPlg->Description); Plg_MAX_CHARS_PLUGIN_DESCRIPTION,Plg_EditingPlg->Description);
Tbl_EndCell ();
/***** Plugin logo *****/ /***** Plugin logo *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"Logo\"" "<input type=\"text\" name=\"Logo\""
" size=\"4\" maxlength=\"%u\" value=\"%s\"" " size=\"4\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Plg_MAX_CHARS_PLUGIN_LOGO,Plg_EditingPlg->Logo); Plg_MAX_CHARS_PLUGIN_LOGO,Plg_EditingPlg->Logo);
Tbl_EndCell ();
/***** Plugin application key *****/ /***** Plugin application key *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"AppKey\"" "<input type=\"text\" name=\"AppKey\""
" size=\"16\" maxlength=\"%u\" value=\"%s\"" " size=\"16\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Plg_MAX_CHARS_PLUGIN_APP_KEY,Plg_EditingPlg->AppKey); Plg_MAX_CHARS_PLUGIN_APP_KEY,Plg_EditingPlg->AppKey);
Tbl_EndCell ();
/***** Plugin URL *****/ /***** Plugin URL *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"url\" name=\"URL\"" "<input type=\"url\" name=\"URL\""
" size=\"15\" maxlength=\"%u\" value=\"%s\"" " size=\"15\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Cns_MAX_CHARS_WWW,Plg_EditingPlg->URL); Cns_MAX_CHARS_WWW,Plg_EditingPlg->URL);
Tbl_EndCell ();
/***** Plugin IP address *****/ /***** Plugin IP address *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"IP\"" "<input type=\"text\" name=\"IP\""
" size=\"10\" maxlength=\"%u\" value=\"%s\"" " size=\"10\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Cns_MAX_CHARS_IP,Plg_EditingPlg->IP); Cns_MAX_CHARS_IP,Plg_EditingPlg->IP);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End table, send button and end box *****/ /***** End table, send button and end box *****/

View File

@ -159,9 +159,9 @@ static void Pri_PutFormVisibility (const char *TxtLabel,
/***** Select visibility *****/ /***** Select visibility *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP\">"
"%s:" "%s:",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],TxtLabel); The_ClassFormInBox[Gbl.Prefs.Theme],TxtLabel);
Tbl_EndCell ();
/***** Form with list of options *****/ /***** Form with list of options *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"); fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">");

View File

@ -1566,10 +1566,11 @@ void Prf_ShowRankingFigure (MYSQL_RES **mysql_res,unsigned NumUsrs)
Prf_ShowUsrInRanking (&UsrDat,Rank); Prf_ShowUsrInRanking (&UsrDat,Rank);
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE COLOR%u\"" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE COLOR%u\""
" style=\"height:50px;\">" " style=\"height:50px;\">"
"%ld" "%ld",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Figure); Figure);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -1762,15 +1763,15 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank)
fprintf (Gbl.F.Out,"<td class=\"RANK RIGHT_MIDDLE COLOR%u\"" fprintf (Gbl.F.Out,"<td class=\"RANK RIGHT_MIDDLE COLOR%u\""
" style=\"height:50px;\">" " style=\"height:50px;\">"
"#%u" "#%u",
"</td>"
"<td class=\"COLOR%u\""
" style=\"width:35px; height:50px;\">",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Rank, Rank);
Gbl.RowEvenOdd); Tbl_EndCell ();
/***** Check if I can see the public profile *****/ /***** Check if I can see the public profile *****/
fprintf (Gbl.F.Out,"<td class=\"COLOR%u\""
" style=\"width:35px; height:50px;\">",
Gbl.RowEvenOdd);
if (Visible) if (Visible)
{ {
/***** User's photo *****/ /***** User's photo *****/
@ -1779,12 +1780,11 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank)
NULL, NULL,
"PHOTO30x40",Pho_ZOOM,false); "PHOTO30x40",Pho_ZOOM,false);
} }
Tbl_EndCell ();
fprintf (Gbl.F.Out,"</td>"
"<td class=\"COLOR%u\" style=\"height:50px;\">",
Gbl.RowEvenOdd);
/***** Put form to go to public profile *****/ /***** Put form to go to public profile *****/
fprintf (Gbl.F.Out,"<td class=\"COLOR%u\" style=\"height:50px;\">",
Gbl.RowEvenOdd);
if (Visible) if (Visible)
{ {
Frm_StartForm (ActSeeOthPubPrf); Frm_StartForm (ActSeeOthPubPrf);
@ -1796,6 +1796,5 @@ static void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank)
"</div>"); "</div>");
Frm_EndForm (); Frm_EndForm ();
} }
Tbl_EndCell (); Tbl_EndCell ();
} }

View File

@ -1027,10 +1027,10 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
"<script type=\"text/javascript\">" "<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('prj_creat_%u',%ld," "writeLocalDateHMSFromUTC('prj_creat_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);" "%u,'<br />','%s',true,true,0x7);"
"</script>" "</script>",
"</td>",
UniqueId,Prj->CreatTime, UniqueId,Prj->CreatTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today); (unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndCell ();
/* Modification date/time */ /* Modification date/time */
UniqueId++; UniqueId++;
@ -1044,10 +1044,10 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
"<script type=\"text/javascript\">" "<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('prj_modif_%u',%ld," "writeLocalDateHMSFromUTC('prj_modif_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);" "%u,'<br />','%s',true,true,0x7);"
"</script>" "</script>",
"</td>",
UniqueId,Prj->ModifTime, UniqueId,Prj->ModifTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today); (unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndCell ();
/* Project title */ /* Project title */
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_TOP", fprintf (Gbl.F.Out,"<td class=\"%s LEFT_TOP",
@ -1089,11 +1089,12 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
break; break;
} }
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%s:" "%s:",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
Txt_Preassigned_QUESTION); Txt_Preassigned_QUESTION);
Tbl_EndCell ();
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
@ -1128,11 +1129,12 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
break; break;
} }
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%s:" "%s:",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
Txt_Number_of_students); Txt_Number_of_students);
Tbl_EndCell ();
switch (ProjectView) switch (ProjectView)
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
@ -1144,11 +1146,12 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
break; break;
} }
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%u" "%u",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
Prj->NumStds); Prj->NumStds);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Project members *****/ /***** Project members *****/
@ -1207,20 +1210,22 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
break; break;
} }
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%s:" "%s:",
"</td>"
"<td colspan=\"2\" class=\"LEFT_TOP",
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
Txt_Proposal); Txt_Proposal);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"LEFT_TOP");
if (ProjectView == Prj_LIST_PROJECTS) if (ProjectView == Prj_LIST_PROJECTS)
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd); fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%s" "%s",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
Txt_PROJECT_STATUS[Prj->Proposal]); Txt_PROJECT_STATUS[Prj->Proposal]);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Write rows of data of this project *****/ /***** Write rows of data of this project *****/
@ -1288,14 +1293,14 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
"<script type=\"text/javascript\">" "<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('prj_creat_%u',%ld," "writeLocalDateHMSFromUTC('prj_creat_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);" "%u,'<br />','%s',true,true,0x7);"
"</script>" "</script>",
"</td>",
UniqueId, UniqueId,
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DATE_BLUE_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DATE_BLUE_LIGHT" :
"DATE_BLUE", "DATE_BLUE",
UniqueId,Prj->CreatTime, UniqueId,Prj->CreatTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today); (unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndCell ();
/***** End date/time *****/ /***** End date/time *****/
UniqueId++; UniqueId++;
@ -1303,45 +1308,45 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
"<script type=\"text/javascript\">" "<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('prj_modif_%u',%ld," "writeLocalDateHMSFromUTC('prj_modif_%u',%ld,"
"%u,'<br />','%s',true,true,0x7);" "%u,'<br />','%s',true,true,0x7);"
"</script>" "</script>",
"</td>",
UniqueId, UniqueId,
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DATE_BLUE_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DATE_BLUE_LIGHT" :
"DATE_BLUE", "DATE_BLUE",
UniqueId,Prj->ModifTime, UniqueId,Prj->ModifTime,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today); (unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndCell ();
/***** Project title *****/ /***** Project title *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
"%s" "%s",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT_N", "DAT_N",
Prj->Title); Prj->Title);
Tbl_EndCell ();
/***** Department *****/ /***** Department *****/
Prj_ShowTableAllProjectsDepartment (Prj); Prj_ShowTableAllProjectsDepartment (Prj);
/***** Preassigned? *****/ /***** Preassigned? *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
"%s" "%s",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
(Prj->Preassigned == Prj_PREASSIGNED) ? Txt_Yes : (Prj->Preassigned == Prj_PREASSIGNED) ? Txt_Yes :
Txt_No); Txt_No);
Tbl_EndCell ();
/***** Number of students *****/ /***** Number of students *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
"%u" "%u",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
Prj->NumStds); Prj->NumStds);
Tbl_EndCell ();
/***** Project members *****/ /***** Project members *****/
for (NumRoleToShow = 0; for (NumRoleToShow = 0;
@ -1351,12 +1356,12 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
/***** Proposal *****/ /***** Proposal *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
"%s" "%s",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
Txt_PROJECT_STATUS[Prj->Proposal]); Txt_PROJECT_STATUS[Prj->Proposal]);
Tbl_EndCell ();
/***** Write rows of data of this project *****/ /***** Write rows of data of this project *****/
/* Description of the project */ /* Description of the project */
@ -1425,12 +1430,12 @@ static void Prj_ShowTableAllProjectsDepartment (const struct Project *Prj)
/***** Show department *****/ /***** Show department *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
"%s" "%s",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
Dpt.FullName); Dpt.FullName);
Tbl_EndCell ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1476,20 +1481,22 @@ static void Prj_ShowOneProjectTxtField (struct Project *Prj,
break; break;
} }
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%s:" "%s:",
"</td>"
"<td colspan=\"2\" class=\"LEFT_TOP",
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
Label); Label);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"LEFT_TOP");
if (ProjectView == Prj_LIST_PROJECTS) if (ProjectView == Prj_LIST_PROJECTS)
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd); fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%s" "%s",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
TxtField); TxtField);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -1502,12 +1509,12 @@ static void Prj_ShowTableAllProjectsTxtField (struct Project *Prj,
/***** Write text *****/ /***** Write text *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
"%s" "%s",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
TxtField); TxtField);
Tbl_EndCell ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1544,12 +1551,13 @@ static void Prj_ShowOneProjectURL (const struct Project *Prj,
break; break;
} }
fprintf (Gbl.F.Out," %s\">" fprintf (Gbl.F.Out," %s\">"
"%s:" "%s:",
"</td>"
"<td colspan=\"2\" class=\"LEFT_TOP",
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
Txt_URL); Txt_URL);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"LEFT_TOP");
if (ProjectView == Prj_LIST_PROJECTS) if (ProjectView == Prj_LIST_PROJECTS)
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd); fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out," %s\">", fprintf (Gbl.F.Out," %s\">",
@ -1561,6 +1569,7 @@ static void Prj_ShowOneProjectURL (const struct Project *Prj,
if (PutLink) if (PutLink)
fprintf (Gbl.F.Out,"</a>"); fprintf (Gbl.F.Out,"</a>");
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -1568,12 +1577,12 @@ static void Prj_ShowTableAllProjectsURL (const struct Project *Prj)
{ {
/***** Show URL *****/ /***** Show URL *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u %s\">"
"%s" "%s",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "DAT_LIGHT" :
"DAT", "DAT",
Prj->URL); Prj->URL);
Tbl_EndCell ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -1642,35 +1651,36 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
{ {
case Prj_LIST_PROJECTS: case Prj_LIST_PROJECTS:
fprintf (Gbl.F.Out,"<td colspan=\"4\" class=\"RIGHT_TOP COLOR%u %s\">" fprintf (Gbl.F.Out,"<td colspan=\"4\" class=\"RIGHT_TOP COLOR%u %s\">"
"%s:" "%s:",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInProject] : NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInProject] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]); Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]);
Tbl_EndCell ();
break; break;
case Prj_FILE_BROWSER_PROJECT: case Prj_FILE_BROWSER_PROJECT:
fprintf (Gbl.F.Out,"<td colspan=\"3\" class=\"RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td colspan=\"3\" class=\"RIGHT_TOP %s\">"
"%s:" "%s:",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInProject] : NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInProject] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]); Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]);
Tbl_EndCell ();
break; break;
case Prj_PRINT_ONE_PROJECT: case Prj_PRINT_ONE_PROJECT:
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"RIGHT_TOP %s\">"
"%s:" "%s:",
"</td>",
Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" : Prj->Hidden == Prj_HIDDEN ? "ASG_LABEL_LIGHT" :
"ASG_LABEL", "ASG_LABEL",
NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInProject] : NumUsrs == 1 ? Txt_PROJECT_ROLES_SINGUL_Abc[RoleInProject] :
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]); Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]);
Tbl_EndCell ();
break; break;
case Prj_EDIT_ONE_PROJECT: case Prj_EDIT_ONE_PROJECT:
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP ASG_LABEL\">%s:</td>", fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP ASG_LABEL\">%s:",
Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]); Txt_PROJECT_ROLES_PLURAL_Abc[RoleInProject]);
Tbl_EndCell ();
break; break;
} }
@ -1732,8 +1742,9 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
Tbl_EndCell (); Tbl_EndCell ();
/* Write user's name */ /* Write user's name */
fprintf (Gbl.F.Out,"<td class=\"PRJ_MEMBER_NAM\">%s</td>", fprintf (Gbl.F.Out,"<td class=\"PRJ_MEMBER_NAM\">%s",
Gbl.Usrs.Other.UsrDat.FullName); Gbl.Usrs.Other.UsrDat.FullName);
Tbl_EndCell ();
/* End row for this user */ /* End row for this user */
Tbl_EndRow (); Tbl_EndRow ();
@ -1753,9 +1764,14 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
Ico_PutContextualIconToAdd (ActionReqAddUsr[RoleInProject],NULL, Ico_PutContextualIconToAdd (ActionReqAddUsr[RoleInProject],NULL,
Prj_PutCurrentParams, Prj_PutCurrentParams,
Gbl.Title); Gbl.Title);
fprintf (Gbl.F.Out,"</td>" Tbl_EndCell ();
"<td class=\"PRJ_MEMBER_PHO\"></td>" // Column for photo
"<td class=\"PRJ_MEMBER_NAM\"></td>"); // Column for name fprintf (Gbl.F.Out,"<td class=\"PRJ_MEMBER_PHO\">"); // Column for photo
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"PRJ_MEMBER_NAM\">"); // Column for name
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
break; break;
default: default:
@ -3328,26 +3344,31 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
/* Project title */ /* Project title */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"Title\" class=\"%s\">%s:</label>" "<label for=\"Title\" class=\"%s\">%s:</label>",
"</td>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Title);
"<td class=\"LEFT_MIDDLE\">" Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<input type=\"text\" id=\"Title\" name=\"Title\"" "<input type=\"text\" id=\"Title\" name=\"Title\""
" size=\"45\" maxlength=\"%u\" value=\"%s\"" " size=\"45\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Title,
Prj_MAX_CHARS_PROJECT_TITLE,Prj->Title); Prj_MAX_CHARS_PROJECT_TITLE,Prj->Title);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Department */ /* Department */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"%s\" class=\"%s\">%s:</label>" "<label for=\"%s\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
Dpt_PARAM_DPT_COD_NAME, Dpt_PARAM_DPT_COD_NAME,
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Department); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Department);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current institution Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current institution
Prj->DptCod, // Selected department Prj->DptCod, // Selected department
"PRJ_INPUT", // Selector class "PRJ_INPUT", // Selector class
@ -3355,17 +3376,20 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
Txt_Another_department, // Text when no department selected Txt_Another_department, // Text when no department selected
false); // Don't submit on change false); // Don't submit on change
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Preassigned? */ /* Preassigned? */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
"%s:" "%s:",
"</td>"
"<td class=\"LEFT_MIDDLE\">"
"<select name=\"Preassigned\">",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Preassigned_QUESTION); Txt_Preassigned_QUESTION);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<select name=\"Preassigned\">");
fprintf (Gbl.F.Out,"<option value=\"Y\""); fprintf (Gbl.F.Out,"<option value=\"Y\"");
if (Prj->Preassigned == Prj_PREASSIGNED) if (Prj->Preassigned == Prj_PREASSIGNED)
@ -3377,33 +3401,39 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out," selected=\"selected\""); fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_No); fprintf (Gbl.F.Out,">%s</option>",Txt_No);
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Number of students */ /* Number of students */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
"%s:" "%s:",
"</td>"
"<td class=\"LEFT_MIDDLE\">"
"<input type=\"number\" name=\"NumStds\""
" min=\"0\" value=\"%u\" />"
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Number_of_students, Txt_Number_of_students);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<input type=\"number\" name=\"NumStds\""
" min=\"0\" value=\"%u\" />",
Prj->NumStds); Prj->NumStds);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Proposal */ /* Proposal */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
"%s:" "%s:",
"</td>"
"<td class=\"LEFT_MIDDLE\">"
"<select name=\"Proposal\">",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Proposal); Txt_Proposal);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<select name=\"Proposal\">");
for (Proposal = (Prj_Proposal_t) 0; for (Proposal = (Prj_Proposal_t) 0;
Proposal <= (Prj_Proposal_t) (Prj_NUM_PROPOSAL_TYPES - 1); Proposal <= (Prj_Proposal_t) (Prj_NUM_PROPOSAL_TYPES - 1);
Proposal++) Proposal++)
@ -3414,8 +3444,9 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
fprintf (Gbl.F.Out," selected=\"selected\""); fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>",Txt_PROJECT_STATUS[Proposal]); fprintf (Gbl.F.Out,">%s</option>",Txt_PROJECT_STATUS[Proposal]);
} }
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Description of the project */ /* Description of the project */
@ -3432,16 +3463,19 @@ static void Prj_PutFormProject (struct Project *Prj,bool ItsANewProject)
/* URL for additional info */ /* URL for additional info */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"WWW\" class=\"%s\">%s:</label>" "<label for=\"WWW\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">"
"<input type=\"url\" id=\"URL\" name=\"URL\""
" size=\"45\" maxlength=\"%u\" value=\"%s\" />"
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_URL, Txt_URL);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"<input type=\"url\" id=\"URL\" name=\"URL\""
" size=\"45\" maxlength=\"%u\" value=\"%s\" />",
Cns_MAX_CHARS_WWW,Prj->URL); Cns_MAX_CHARS_WWW,Prj->URL);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* End table, send button and end box */ /* End table, send button and end box */
@ -3468,18 +3502,21 @@ static void Prj_EditOneProjectTxtArea (const char *Id,
extern const char *The_ClassFormInBox[The_NUM_THEMES]; extern const char *The_ClassFormInBox[The_NUM_THEMES];
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP\">"
"<label for=\"%s\" class=\"%s\">%s:</label>" "<label for=\"%s\" class=\"%s\">%s:</label>",
"</td>" Id,The_ClassFormInBox[Gbl.Prefs.Theme],Label);
"<td class=\"LEFT_TOP\">" Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"
"<textarea id=\"%s\" name=\"%s\" cols=\"60\" rows=\"%u\">" "<textarea id=\"%s\" name=\"%s\" cols=\"60\" rows=\"%u\">"
"%s" "%s"
"</textarea>" "</textarea>",
"</td>",
Id,The_ClassFormInBox[Gbl.Prefs.Theme],Label,
Id,Id, Id,Id,
NumRows, NumRows,
TxtField); TxtField);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }

View File

@ -386,17 +386,17 @@ void Rec_ShowFormCreateRecordField (void)
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<input type=\"text\" name=\"FieldName\"" "<input type=\"text\" name=\"FieldName\""
" style=\"width:500px;\" maxlength=\"%u\" value=\"%s\"" " style=\"width:500px;\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Rec_MAX_CHARS_NAME_FIELD,Gbl.Crs.Records.Field.Name); Rec_MAX_CHARS_NAME_FIELD,Gbl.Crs.Records.Field.Name);
Tbl_EndCell ();
/***** Number of lines in form ******/ /***** Number of lines in form ******/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"NumLines\"" "<input type=\"text\" name=\"NumLines\""
" size=\"2\" maxlength=\"2\" value=\"%u\"" " size=\"2\" maxlength=\"2\" value=\"%u\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Gbl.Crs.Records.Field.NumLines); Gbl.Crs.Records.Field.NumLines);
Tbl_EndCell ();
/***** Visibility to students *****/ /***** Visibility to students *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -412,8 +412,9 @@ void Rec_ShowFormCreateRecordField (void)
Txt_RECORD_FIELD_VISIBILITY_MENU[Vis]); Txt_RECORD_FIELD_VISIBILITY_MENU[Vis]);
} }
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End table, send button and end box *****/ /***** End table, send button and end box *****/
@ -1751,16 +1752,19 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"LEFT_TOP\">"); fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"LEFT_TOP\">");
Tbl_StartTableWide (); Tbl_StartTableWide ();
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:%upx;\">", fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:%upx;\">",
Rec_DEGREE_LOGO_SIZE); Rec_DEGREE_LOGO_SIZE);
Log_DrawLogo (Hie_DEG,Gbl.Hierarchy.Deg.DegCod, Log_DrawLogo (Hie_DEG,Gbl.Hierarchy.Deg.DegCod,
Gbl.Hierarchy.Deg.ShrtName,Rec_DEGREE_LOGO_SIZE,NULL,true); Gbl.Hierarchy.Deg.ShrtName,Rec_DEGREE_LOGO_SIZE,NULL,true);
fprintf (Gbl.F.Out,"</td>" Tbl_EndCell ();
"<td class=\"REC_HEAD CENTER_MIDDLE\">"
"%s<br />%s<br />%s" fprintf (Gbl.F.Out,"<td class=\"REC_HEAD CENTER_MIDDLE\">"
"</td>", "%s<br />%s<br />%s",
Gbl.Hierarchy.Deg.FullName,Gbl.Hierarchy.Crs.FullName, Gbl.Hierarchy.Deg.FullName,Gbl.Hierarchy.Crs.FullName,
UsrDat->FullName); UsrDat->FullName);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
Tbl_EndTable (); Tbl_EndTable ();
Tbl_EndCell (); Tbl_EndCell ();
@ -2760,8 +2764,8 @@ static void Rec_ShowFullName (struct UsrData *UsrDat)
/***** Surname 2 *****/ /***** Surname 2 *****/
fprintf (Gbl.F.Out,"%s",UsrDat->Surname2); fprintf (Gbl.F.Out,"%s",UsrDat->Surname2);
fprintf (Gbl.F.Out,"</div>" fprintf (Gbl.F.Out,"</div>");
"</td>"); Tbl_EndCell ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -2795,8 +2799,8 @@ static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks)
Frm_EndForm (); Frm_EndForm ();
} }
} }
fprintf (Gbl.F.Out,"</div>" fprintf (Gbl.F.Out,"</div>");
"</td>"); Tbl_EndCell ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -2835,11 +2839,13 @@ static void Rec_ShowEmail (struct UsrData *UsrDat,const char *ClassForm)
extern const char *Txt_Email; extern const char *Txt_Email;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Email); ClassForm,Txt_Email);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (UsrDat->Email[0]) if (UsrDat->Email[0])
{ {
fprintf (Gbl.F.Out,"<div class=\"REC_EMAIL\">"); // Limited width fprintf (Gbl.F.Out,"<div class=\"REC_EMAIL\">"); // Limited width
@ -2854,6 +2860,7 @@ static void Rec_ShowEmail (struct UsrData *UsrDat,const char *ClassForm)
fprintf (Gbl.F.Out,"</div>"); fprintf (Gbl.F.Out,"</div>");
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -2867,13 +2874,16 @@ static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *ClassForm,
extern const char *Txt_ID; extern const char *Txt_ID;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_TOP %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_TOP\">",
ClassForm,Txt_ID); ClassForm,Txt_ID);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_TOP\">");
ID_WriteUsrIDs (UsrDat,Anchor); ID_WriteUsrIDs (UsrDat,Anchor);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -2898,18 +2908,20 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
Rol_Role_t Role; Rol_Role_t Role;
Usr_Sex_t Sex; Usr_Sex_t Sex;
Tbl_StartRow ();
if (RoleForm) if (RoleForm)
{ {
/***** Form to select a role *****/ /***** Form to select a role *****/
/* Get user's roles if not got */ /* Get user's roles if not got */
Rol_GetRolesInAllCrssIfNotYetGot (UsrDat); Rol_GetRolesInAllCrssIfNotYetGot (UsrDat);
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"Role\" class=\"%s\">%s:</label>" "<label for=\"Role\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Role); ClassForm,Txt_Role);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
switch (TypeOfView) switch (TypeOfView)
{ {
case Rec_SHA_SIGN_UP_IN_CRS_FORM: // I want to apply for enrolment case Rec_SHA_SIGN_UP_IN_CRS_FORM: // I want to apply for enrolment
@ -3098,16 +3110,16 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
break; break;
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow ();
} }
else if (SexForm) else if (SexForm)
{ {
/***** Form to select a sex *****/ /***** Form to select a sex *****/
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s*:</td>" "%s*:",
"<td class=\"REC_C2_BOT LEFT_MIDDLE\">",
ClassForm,Txt_Sex); ClassForm,Txt_Sex);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_MIDDLE\">");
for (Sex = Usr_SEX_FEMALE; for (Sex = Usr_SEX_FEMALE;
Sex <= Usr_SEX_MALE; Sex <= Usr_SEX_MALE;
Sex++) Sex++)
@ -3123,23 +3135,23 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
Usr_StringsSexIcons[Sex],Txt_SEX_SINGULAR_Abc[Sex]); Usr_StringsSexIcons[Sex],Txt_SEX_SINGULAR_Abc[Sex]);
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow ();
} }
else // RoleForm == false, SexForm == false else // RoleForm == false, SexForm == false
{ {
/***** No form, only text *****/ /***** No form, only text *****/
Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">"
"%s"
"</td>",
ClassForm, ClassForm,
Txt_Role, Txt_Role);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">"
"%s",
Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs.Role][UsrDat->Sex]); Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs.Role][UsrDat->Sex]);
Tbl_EndRow (); Tbl_EndCell ();
} }
Tbl_EndRow ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -3161,9 +3173,10 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,
if (TypeOfView == Rec_SHA_MY_RECORD_FORM) if (TypeOfView == Rec_SHA_MY_RECORD_FORM)
fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,"*");
fprintf (Gbl.F.Out,":" fprintf (Gbl.F.Out,":"
"</label>" "</label>");
"</td>" Tbl_EndCell ();
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ICanEdit) if (ICanEdit)
{ {
fprintf (Gbl.F.Out,"<input type=\"text\"" fprintf (Gbl.F.Out,"<input type=\"text\""
@ -3194,13 +3207,15 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,
extern const char *Txt_Surname_2; extern const char *Txt_Surname_2;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"Surname2\" class=\"%s\">" "<label for=\"Surname2\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Surname_2); ClassForm,Txt_Surname_2);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ICanEdit) if (ICanEdit)
fprintf (Gbl.F.Out,"<input type=\"text\"" fprintf (Gbl.F.Out,"<input type=\"text\""
" id=\"Surname2\" name=\"Surname2\"" " id=\"Surname2\" name=\"Surname2\""
@ -3211,6 +3226,7 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,
else if (UsrDat->Surname2[0]) else if (UsrDat->Surname2[0])
fprintf (Gbl.F.Out,"<strong>%s</strong>",UsrDat->Surname2); fprintf (Gbl.F.Out,"<strong>%s</strong>",UsrDat->Surname2);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3226,6 +3242,7 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,
extern const char *Txt_First_name; extern const char *Txt_First_name;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"FirstName\" class=\"%s\">" "<label for=\"FirstName\" class=\"%s\">"
"%s", "%s",
@ -3233,9 +3250,10 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,
if (TypeOfView == Rec_SHA_MY_RECORD_FORM) if (TypeOfView == Rec_SHA_MY_RECORD_FORM)
fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,"*");
fprintf (Gbl.F.Out,":" fprintf (Gbl.F.Out,":"
"</label>" "</label>");
"</td>" Tbl_EndCell ();
"<td colspan=\"2\""
fprintf (Gbl.F.Out,"<td colspan=\"2\""
" class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">"); " class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ICanEdit) if (ICanEdit)
{ {
@ -3252,6 +3270,7 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,
else if (UsrDat->FirstName[0]) else if (UsrDat->FirstName[0])
fprintf (Gbl.F.Out,"<strong>%s</strong>",UsrDat->FirstName); fprintf (Gbl.F.Out,"<strong>%s</strong>",UsrDat->FirstName);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3275,14 +3294,16 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,
} }
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"OthCtyCod\" class=\"%s\">%s", "<label for=\"OthCtyCod\" class=\"%s\">%s",
ClassForm,Txt_Country); ClassForm,Txt_Country);
if (TypeOfView == Rec_SHA_MY_RECORD_FORM) if (TypeOfView == Rec_SHA_MY_RECORD_FORM)
fprintf (Gbl.F.Out,"*"); fprintf (Gbl.F.Out,"*");
fprintf (Gbl.F.Out,":</label>" fprintf (Gbl.F.Out,":</label>");
"</td>" Tbl_EndCell ();
"<td colspan=\"2\""
fprintf (Gbl.F.Out,"<td colspan=\"2\""
" class=\"REC_C2_BOT LEFT_MIDDLE\">"); " class=\"REC_C2_BOT LEFT_MIDDLE\">");
/***** Selector of country *****/ /***** Selector of country *****/
@ -3305,8 +3326,9 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,">%s</option>", fprintf (Gbl.F.Out,">%s</option>",
Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]); Gbl.Hierarchy.Sys.Ctys.Lst[NumCty].Name[Gbl.Prefs.Language]);
} }
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3321,13 +3343,15 @@ static void Rec_ShowOriginPlace (struct UsrData *UsrDat,
extern const char *Txt_Place_of_origin; extern const char *Txt_Place_of_origin;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"OriginPlace\" class=\"%s\">" "<label for=\"OriginPlace\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Place_of_origin); ClassForm,Txt_Place_of_origin);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (ICanEdit) if (ICanEdit)
@ -3341,6 +3365,7 @@ static void Rec_ShowOriginPlace (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%s",UsrDat->OriginPlace); fprintf (Gbl.F.Out,"%s",UsrDat->OriginPlace);
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3355,11 +3380,13 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,
extern const char *Txt_Date_of_birth; extern const char *Txt_Date_of_birth;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Date_of_birth); ClassForm,Txt_Date_of_birth);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (ICanEdit) if (ICanEdit)
@ -3372,6 +3399,7 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%s",UsrDat->StrBirthday); fprintf (Gbl.F.Out,"%s",UsrDat->StrBirthday);
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3386,13 +3414,15 @@ static void Rec_ShowLocalAddress (struct UsrData *UsrDat,
extern const char *Txt_Local_address; extern const char *Txt_Local_address;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"LocalAddress\" class=\"%s\">" "<label for=\"LocalAddress\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Local_address); ClassForm,Txt_Local_address);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (ICanEdit) if (ICanEdit)
@ -3406,6 +3436,7 @@ static void Rec_ShowLocalAddress (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%s",UsrDat->LocalAddress); fprintf (Gbl.F.Out,"%s",UsrDat->LocalAddress);
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3420,13 +3451,15 @@ static void Rec_ShowLocalPhone (struct UsrData *UsrDat,
extern const char *Txt_Phone; extern const char *Txt_Phone;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"LocalPhone\" class=\"%s\">" "<label for=\"LocalPhone\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Phone); ClassForm,Txt_Phone);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (ICanEdit) if (ICanEdit)
@ -3442,6 +3475,7 @@ static void Rec_ShowLocalPhone (struct UsrData *UsrDat,
UsrDat->LocalPhone); UsrDat->LocalPhone);
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3456,13 +3490,15 @@ static void Rec_ShowFamilyAddress (struct UsrData *UsrDat,
extern const char *Txt_Family_address; extern const char *Txt_Family_address;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"FamilyAddress\" class=\"%s\">" "<label for=\"FamilyAddress\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Family_address); ClassForm,Txt_Family_address);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (ICanEdit) if (ICanEdit)
@ -3476,6 +3512,7 @@ static void Rec_ShowFamilyAddress (struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"%s",UsrDat->FamilyAddress); fprintf (Gbl.F.Out,"%s",UsrDat->FamilyAddress);
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3490,13 +3527,15 @@ static void Rec_ShowFamilyPhone (struct UsrData *UsrDat,
extern const char *Txt_Phone; extern const char *Txt_Phone;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"FamilyPhone\" class=\"%s\">" "<label for=\"FamilyPhone\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Phone); ClassForm,Txt_Phone);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (ICanEdit) if (ICanEdit)
@ -3512,6 +3551,7 @@ static void Rec_ShowFamilyPhone (struct UsrData *UsrDat,
UsrDat->FamilyPhone); UsrDat->FamilyPhone);
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3526,11 +3566,13 @@ static void Rec_ShowComments (struct UsrData *UsrDat,
extern const char *Txt_USER_comments; extern const char *Txt_USER_comments;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_TOP\">"
"<label for=\"Comments\" class=\"%s\">%s:</label>" "<label for=\"Comments\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_TOP\">",
ClassForm,Txt_USER_comments); ClassForm,Txt_USER_comments);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_TOP\">");
if (ShowData) if (ShowData)
{ {
if (ICanEdit) if (ICanEdit)
@ -3547,6 +3589,7 @@ static void Rec_ShowComments (struct UsrData *UsrDat,
} }
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3584,11 +3627,13 @@ static void Rec_ShowInstitution (struct Instit *Ins,
extern const char *Txt_Institution; extern const char *Txt_Institution;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Institution); ClassForm,Txt_Institution);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
if (Ins->InsCod > 0) if (Ins->InsCod > 0)
{ {
@ -3601,6 +3646,7 @@ static void Rec_ShowInstitution (struct Instit *Ins,
fprintf (Gbl.F.Out,"</a>"); fprintf (Gbl.F.Out,"</a>");
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3615,11 +3661,13 @@ static void Rec_ShowCentre (struct UsrData *UsrDat,
struct Centre Ctr; struct Centre Ctr;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Centre); ClassForm,Txt_Centre);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (UsrDat->Tch.CtrCod > 0) if (UsrDat->Tch.CtrCod > 0)
@ -3636,6 +3684,7 @@ static void Rec_ShowCentre (struct UsrData *UsrDat,
} }
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3650,11 +3699,13 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,
struct Department Dpt; struct Department Dpt;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Department); ClassForm,Txt_Department);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
{ {
if (UsrDat->Tch.DptCod > 0) if (UsrDat->Tch.DptCod > 0)
@ -3671,6 +3722,7 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,
} }
} }
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3684,14 +3736,17 @@ static void Rec_ShowOffice (struct UsrData *UsrDat,
extern const char *Txt_Office; extern const char *Txt_Office;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Office); ClassForm,Txt_Office);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
fprintf (Gbl.F.Out,"%s",UsrDat->Tch.Office); fprintf (Gbl.F.Out,"%s",UsrDat->Tch.Office);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3705,16 +3760,19 @@ static void Rec_ShowOfficePhone (struct UsrData *UsrDat,
extern const char *Txt_Phone; extern const char *Txt_Phone;
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">",
ClassForm,Txt_Phone); ClassForm,Txt_Phone);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT REC_DAT_BOLD LEFT_MIDDLE\">");
if (ShowData) if (ShowData)
fprintf (Gbl.F.Out,"<a href=\"tel:%s\" class=\"REC_DAT_BOLD\">%s</a>", fprintf (Gbl.F.Out,"<a href=\"tel:%s\" class=\"REC_DAT_BOLD\">%s</a>",
UsrDat->Tch.OfficePhone, UsrDat->Tch.OfficePhone,
UsrDat->Tch.OfficePhone); UsrDat->Tch.OfficePhone);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3990,11 +4048,13 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
/***** Country *****/ /***** Country *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"OthCtyCod\" class=\"%s\">%s*:</label>" "<label for=\"OthCtyCod\" class=\"%s\">%s*:</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_MIDDLE\">",
ClassForm,Txt_Country); ClassForm,Txt_Country);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_MIDDLE\">");
/* If list of countries is empty, try to get it */ /* If list of countries is empty, try to get it */
if (!Gbl.Hierarchy.Sys.Ctys.Num) if (!Gbl.Hierarchy.Sys.Ctys.Num)
@ -4027,15 +4087,18 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
fprintf (Gbl.F.Out,"</select>"); fprintf (Gbl.F.Out,"</select>");
Frm_EndForm (); Frm_EndForm ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Institution *****/ /***** Institution *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"OthInsCod\" class=\"%s\">%s*:</label>" "<label for=\"OthInsCod\" class=\"%s\">%s*:</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_MIDDLE\">",
ClassForm,Txt_Institution); ClassForm,Txt_Institution);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_MIDDLE\">");
/* Get list of institutions in this country */ /* Get list of institutions in this country */
Ins_FreeListInstitutions (); Ins_FreeListInstitutions ();
@ -4071,17 +4134,20 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
fprintf (Gbl.F.Out,"</select>"); fprintf (Gbl.F.Out,"</select>");
Frm_EndForm (); Frm_EndForm ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
if (IAmATeacher) if (IAmATeacher)
{ {
/***** Centre *****/ /***** Centre *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"OthCtrCod\" class=\"%s\">%s*:</label>" "<label for=\"OthCtrCod\" class=\"%s\">%s*:</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_MIDDLE\">",
ClassForm,Txt_Centre); ClassForm,Txt_Centre);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_MIDDLE\">");
/* Get list of centres in this institution */ /* Get list of centres in this institution */
Ctr_FreeListCentres (); Ctr_FreeListCentres ();
@ -4117,15 +4183,18 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
fprintf (Gbl.F.Out,"</select>"); fprintf (Gbl.F.Out,"</select>");
Frm_EndForm (); Frm_EndForm ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Department *****/ /***** Department *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"%s\" class=\"%s\">%s*:</label>" "<label for=\"%s\" class=\"%s\">%s*:</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_MIDDLE\">",
Dpt_PARAM_DPT_COD_NAME,ClassForm,Txt_Department); Dpt_PARAM_DPT_COD_NAME,ClassForm,Txt_Department);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_MIDDLE\">");
Frm_StartFormAnchor (ActChgMyDpt,Rec_MY_INS_CTR_DPT_ID); Frm_StartFormAnchor (ActChgMyDpt,Rec_MY_INS_CTR_DPT_ID);
Dpt_WriteSelectorDepartment (Gbl.Usrs.Me.UsrDat.InsCod, // Departments in my institution Dpt_WriteSelectorDepartment (Gbl.Usrs.Me.UsrDat.InsCod, // Departments in my institution
Gbl.Usrs.Me.UsrDat.Tch.DptCod, // Selected department Gbl.Usrs.Me.UsrDat.Tch.DptCod, // Selected department
@ -4135,17 +4204,20 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
true); // Submit on change true); // Submit on change
Frm_EndForm (); Frm_EndForm ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Office *****/ /***** Office *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"Office\" class=\"%s\">" "<label for=\"Office\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_MIDDLE\">",
ClassForm,Txt_Office); ClassForm,Txt_Office);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_MIDDLE\">");
Frm_StartFormAnchor (ActChgMyOff,Rec_MY_INS_CTR_DPT_ID); Frm_StartFormAnchor (ActChgMyOff,Rec_MY_INS_CTR_DPT_ID);
fprintf (Gbl.F.Out,"<input type=\"text\" id=\"Office\" name=\"Office\"" fprintf (Gbl.F.Out,"<input type=\"text\" id=\"Office\" name=\"Office\""
" maxlength=\"%u\" value=\"%s\"" " maxlength=\"%u\" value=\"%s\""
@ -4156,17 +4228,20 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
Gbl.Form.Id); Gbl.Form.Id);
Frm_EndForm (); Frm_EndForm ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Phone *****/ /***** Phone *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_MIDDLE\">"
"<label for=\"OfficePhone\" class=\"%s\">" "<label for=\"OfficePhone\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_MIDDLE\">",
ClassForm,Txt_Phone); ClassForm,Txt_Phone);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_MIDDLE\">");
Frm_StartFormAnchor (ActChgMyOffPho,Rec_MY_INS_CTR_DPT_ID); Frm_StartFormAnchor (ActChgMyOffPho,Rec_MY_INS_CTR_DPT_ID);
fprintf (Gbl.F.Out,"<input type=\"tel\"" fprintf (Gbl.F.Out,"<input type=\"tel\""
" id=\"OfficePhone\" name=\"OfficePhone\"" " id=\"OfficePhone\" name=\"OfficePhone\""
@ -4178,6 +4253,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
Gbl.Form.Id); Gbl.Form.Id);
Frm_EndForm (); Frm_EndForm ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }

File diff suppressed because it is too large Load Diff