Version19.31.23

This commit is contained in:
Antonio Cañas Vargas 2019-10-08 15:49:01 +02:00
parent 0af579adbd
commit f12ab4bc97
5 changed files with 131 additions and 155 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.22 (2019-10-08)" #define Log_PLATFORM_VERSION "SWAD 19.31.23 (2019-10-08)"
#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.23: Oct 08, 2019 Code refactoring in HTML tables. (247076 lines)
Version 19.31.22: Oct 08, 2019 Code refactoring in HTML tables. (247099 lines) Version 19.31.22: Oct 08, 2019 Code refactoring in HTML tables. (247099 lines)
Version 19.31.21: Oct 08, 2019 Code refactoring in HTML tables. (247124 lines) Version 19.31.21: Oct 08, 2019 Code refactoring in HTML tables. (247124 lines)
Version 19.31.20: Oct 07, 2019 Code refactoring in HTML tables. (247192 lines) Version 19.31.20: Oct 07, 2019 Code refactoring in HTML tables. (247192 lines)

View File

@ -861,15 +861,13 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
/***** Write time from last access *****/ /***** Write time from last access *****/
Font = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_SINCE CON_CRS" : Font = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_SINCE CON_CRS" :
"CON_SINCE CON_NO_CRS"); "CON_SINCE CON_NO_CRS");
Tbl_StartCellAttr ("class=\"%s COLOR%u\"",Font,Gbl.RowEvenOdd); Tbl_StartCellAttr ("class=\"%s COLOR%u\"",Font,Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"<div id=\"hm%u\">", fprintf (Gbl.F.Out,"<div id=\"hm%u\">",
Gbl.Usrs.Connected.NumUsr); // Used for automatic update, only when displayed on right column Gbl.Usrs.Connected.NumUsr); // Used for automatic update, only when displayed on right column
Dat_WriteHoursMinutesSecondsFromSeconds (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].TimeDiff); Dat_WriteHoursMinutesSecondsFromSeconds (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].TimeDiff);
fprintf (Gbl.F.Out,"</div>"); // Used for automatic update, only when displayed on right column fprintf (Gbl.F.Out,"</div>"); // Used for automatic update, only when displayed on right column
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
if (!ItsMe) if (!ItsMe)

View File

@ -430,14 +430,14 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
Tbl_StartRow (); Tbl_StartRow ();
/***** Start date-time *****/ /***** Start date-time *****/
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<label class=\"%s\">%s:</label>", fprintf (Gbl.F.Out,"<label class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_START_END_TIME[Dat_START_TIME]); Txt_START_END_TIME[Dat_START_TIME]);
Tbl_EndCell (); Tbl_EndCell ();
/* Date-time */ /* Date-time */
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("Start", Dat_WriteFormClientLocalDateTimeFromTimeUTC ("Start",
"Start", "Start",
Gbl.DateRange.TimeUTC[0], Gbl.DateRange.TimeUTC[0],
@ -450,8 +450,8 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
Tbl_EndCell (); Tbl_EndCell ();
/***** "Yesterday" and "Today" buttons *****/ /***** "Yesterday" and "Today" buttons *****/
fprintf (Gbl.F.Out,"<td rowspan=\"2\" class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("rowspan=\"2\" class=\"LEFT_MIDDLE\"");
"<input type=\"button\" name=\"Yesterday\" value=\"%s\"" fprintf (Gbl.F.Out,"<input type=\"button\" name=\"Yesterday\" value=\"%s\""
" onclick=\"setDateToYesterday('Start','End');\" />" " onclick=\"setDateToYesterday('Start','End');\" />"
"<input type=\"button\" name=\"Today\" value=\"%s\"" "<input type=\"button\" name=\"Today\" value=\"%s\""
" onclick=\"setDateToToday('Start','End');\" />", " onclick=\"setDateToToday('Start','End');\" />",
@ -463,14 +463,14 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
Tbl_StartRow (); Tbl_StartRow ();
/***** End date-time *****/ /***** End date-time *****/
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<label class=\"%s\">%s:</label>", fprintf (Gbl.F.Out,"<label class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_START_END_TIME[Dat_END_TIME]); Txt_START_END_TIME[Dat_END_TIME]);
Tbl_EndCell (); Tbl_EndCell ();
/* Date-time */ /* Date-time */
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("End", Dat_WriteFormClientLocalDateTimeFromTimeUTC ("End",
"End", "End",
Gbl.DateRange.TimeUTC[1], Gbl.DateRange.TimeUTC[1],
@ -508,13 +508,13 @@ void Dat_PutFormStartEndClientLocalDateTimes (time_t TimeUTC[2],
/* Date-time */ /* Date-time */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<label class=\"%s\">%s:</label>", fprintf (Gbl.F.Out,"<label class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_START_END_TIME[StartEndTime]); Txt_START_END_TIME[StartEndTime]);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
Dat_WriteFormClientLocalDateTimeFromTimeUTC (Id[StartEndTime], Dat_WriteFormClientLocalDateTimeFromTimeUTC (Id[StartEndTime],
Id[StartEndTime], Id[StartEndTime],
TimeUTC[StartEndTime], TimeUTC[StartEndTime],
@ -561,8 +561,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Tbl_StartRow (); Tbl_StartRow ();
/***** Year *****/ /***** Year *****/
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<select id=\"%sYear\" name=\"%sYear\"" fprintf (Gbl.F.Out,"<select id=\"%sYear\" name=\"%sYear\""
" onchange=\"" " onchange=\""
"adjustDateForm('%s');" "adjustDateForm('%s');"
"setUTCFromLocalDateTimeForm('%s');", "setUTCFromLocalDateTimeForm('%s');",
@ -580,8 +580,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Tbl_EndCell (); Tbl_EndCell ();
/***** Month *****/ /***** Month *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" Tbl_StartCellAttr ("class=\"CENTER_MIDDLE\"");
"<select id=\"%sMonth\" name=\"%sMonth\"" fprintf (Gbl.F.Out,"<select id=\"%sMonth\" name=\"%sMonth\""
" onchange=\"" " onchange=\""
"adjustDateForm('%s');" "adjustDateForm('%s');"
"setUTCFromLocalDateTimeForm('%s');", "setUTCFromLocalDateTimeForm('%s');",
@ -599,8 +599,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Tbl_EndCell (); Tbl_EndCell ();
/***** Day *****/ /***** Day *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
"<select id=\"%sDay\" name=\"%sDay\"" fprintf (Gbl.F.Out,"<select id=\"%sDay\" name=\"%sDay\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');", " onchange=\"setUTCFromLocalDateTimeForm('%s');",
Id,ParamName,Id); Id,ParamName,Id);
if (SubmitFormOnChange) if (SubmitFormOnChange)
@ -616,8 +616,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Tbl_EndCell (); Tbl_EndCell ();
/***** Hour *****/ /***** Hour *****/
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<select id=\"%sHour\" name=\"%sHour\"" fprintf (Gbl.F.Out,"<select id=\"%sHour\" name=\"%sHour\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');", " onchange=\"setUTCFromLocalDateTimeForm('%s');",
Id,ParamName,Id); Id,ParamName,Id);
if (SubmitFormOnChange) if (SubmitFormOnChange)
@ -633,8 +633,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
Tbl_EndCell (); Tbl_EndCell ();
/***** Minute *****/ /***** Minute *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" Tbl_StartCellAttr ("class=\"CENTER_MIDDLE\"");
"<select id=\"%sMinute\" name=\"%sMinute\"" fprintf (Gbl.F.Out,"<select id=\"%sMinute\" name=\"%sMinute\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');", " onchange=\"setUTCFromLocalDateTimeForm('%s');",
Id,ParamName,Id); Id,ParamName,Id);
if (SubmitFormOnChange) if (SubmitFormOnChange)
@ -654,8 +654,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
/***** Second *****/ /***** Second *****/
if (FormSeconds == Dat_FORM_SECONDS_ON) if (FormSeconds == Dat_FORM_SECONDS_ON)
{ {
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
"<select id=\"%sSecond\" name=\"%sSecond\"" fprintf (Gbl.F.Out,"<select id=\"%sSecond\" name=\"%sSecond\""
" onchange=\"setUTCFromLocalDateTimeForm('%s');", " onchange=\"setUTCFromLocalDateTimeForm('%s');",
Id,ParamName,Id); Id,ParamName,Id);
if (SubmitFormOnChange) if (SubmitFormOnChange)
@ -828,8 +828,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
Tbl_StartRow (); Tbl_StartRow ();
/***** Year *****/ /***** Year *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" Tbl_StartCellAttr ("class=\"CENTER_MIDDLE\"");
"<select id=\"%sYear\" name=\"%sYear\"" fprintf (Gbl.F.Out,"<select id=\"%sYear\" name=\"%sYear\""
" onchange=\"adjustDateForm('%s');", " onchange=\"adjustDateForm('%s');",
Id,Id,Id); Id,Id,Id);
if (SubmitFormOnChange) if (SubmitFormOnChange)
@ -853,8 +853,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
Tbl_EndCell (); Tbl_EndCell ();
/***** Month *****/ /***** Month *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" Tbl_StartCellAttr ("class=\"CENTER_MIDDLE\"");
"<select id=\"%sMonth\" name=\"%sMonth\"" fprintf (Gbl.F.Out,"<select id=\"%sMonth\" name=\"%sMonth\""
" onchange=\"adjustDateForm('%s');", " onchange=\"adjustDateForm('%s');",
Id,Id,Id); Id,Id,Id);
if (SubmitFormOnChange) if (SubmitFormOnChange)
@ -877,9 +877,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
Tbl_EndCell (); Tbl_EndCell ();
/***** Day *****/ /***** Day *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" Tbl_StartCellAttr ("class=\"CENTER_MIDDLE\"");
"<select id=\"%sDay\" name=\"%sDay\"", fprintf (Gbl.F.Out,"<select id=\"%sDay\" name=\"%sDay\"",Id,Id);
Id,Id);
if (SubmitFormOnChange) if (SubmitFormOnChange)
fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\"", fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\"",
Gbl.Form.Id); Gbl.Form.Id);

View File

@ -215,16 +215,14 @@ void Deg_SeeDegWithPendingCrss (void)
Tbl_StartRow (); Tbl_StartRow ();
/* Degree logo and full name */ /* Degree logo and full name */
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">", Tbl_StartCellAttr ("class=\"LEFT_MIDDLE %s\"",BgColor);
BgColor);
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeCrs, Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeCrs,
"DAT_NOBR","CENTER_MIDDLE"); "DAT_NOBR","CENTER_MIDDLE");
Tbl_EndCell (); Tbl_EndCell ();
/* Number of pending courses (row[1]) */ /* Number of pending courses (row[1]) */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">" Tbl_StartCellAttr ("class=\"DAT RIGHT_MIDDLE %s\"",BgColor);
"%s", fprintf (Gbl.F.Out,"%s",row[1]);
BgColor,row[1]);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
@ -346,13 +344,13 @@ static void Deg_Configuration (bool PrintView)
/***** Centre *****/ /***** Centre *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<label for=\"OthCtrCod\" class=\"%s\">%s:</label>", fprintf (Gbl.F.Out,"<label for=\"OthCtrCod\" class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Centre); Txt_Centre);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT_N LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT_N LEFT_MIDDLE\"");
if (!PrintView && if (!PrintView &&
Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM)
// Only institution admins and system admin can move a degree to another centre // Only institution admins and system admin can move a degree to another centre
@ -388,13 +386,13 @@ static void Deg_Configuration (bool PrintView)
/***** Degree full name *****/ /***** Degree full name *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<label for=\"FullName\" class=\"%s\">%s:</label>", fprintf (Gbl.F.Out,"<label for=\"FullName\" class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Degree); Txt_Degree);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT_N LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT_N LEFT_MIDDLE\"");
if (!PrintView && if (!PrintView &&
Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)
// Only centre admins, institution admins and system admins // Only centre admins, institution admins and system admins
@ -420,13 +418,13 @@ static void Deg_Configuration (bool PrintView)
/***** Degree short name *****/ /***** Degree short name *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<label for=\"ShortName\" class=\"%s\">%s:</label>", fprintf (Gbl.F.Out,"<label for=\"ShortName\" class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Short_name); Txt_Short_name);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT_N LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT_N LEFT_MIDDLE\"");
if (!PrintView && if (!PrintView &&
Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)
// Only centre admins, institution admins and system admins // Only centre admins, institution admins and system admins
@ -452,13 +450,13 @@ static void Deg_Configuration (bool PrintView)
/***** Degree WWW *****/ /***** Degree WWW *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"RIGHT_MIDDLE\"");
"<label for=\"WWW\" class=\"%s\">%s:</label>", fprintf (Gbl.F.Out,"<label for=\"WWW\" class=\"%s\">%s:</label>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Web); Txt_Web);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (!PrintView && if (!PrintView &&
Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM)
// Only degree admins, centre admins, institution admins // Only degree admins, centre admins, institution admins
@ -489,14 +487,12 @@ static void Deg_Configuration (bool PrintView)
/***** Shortcut to the degree *****/ /***** Shortcut to the degree *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
"%s:", fprintf (Gbl.F.Out,"%s:",Txt_Shortcut);
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Shortcut);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
"<a href=\"%s/%s?deg=%ld\" class=\"DAT\" target=\"_blank\">" fprintf (Gbl.F.Out,"<a href=\"%s/%s?deg=%ld\" class=\"DAT\" target=\"_blank\">"
"%s/%s?deg=%ld" "%s/%s?deg=%ld"
"</a>", "</a>",
Cfg_URL_SWAD_CGI, Cfg_URL_SWAD_CGI,
@ -514,13 +510,11 @@ static void Deg_Configuration (bool PrintView)
/***** QR code with link to the degree *****/ /***** QR code with link to the degree *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
"%s:", fprintf (Gbl.F.Out,"%s:",Txt_QR_code);
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_QR_code);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
QR_LinkTo (250,"deg",Gbl.Hierarchy.Deg.DegCod); QR_LinkTo (250,"deg",Gbl.Hierarchy.Deg.DegCod);
Tbl_EndCell (); Tbl_EndCell ();
@ -528,18 +522,15 @@ static void Deg_Configuration (bool PrintView)
} }
else else
{ {
/***** Number of courses *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">" /***** Number of courses *****/
"%s:", Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
The_ClassFormInBox[Gbl.Prefs.Theme], fprintf (Gbl.F.Out,"%s:",Txt_Courses);
Txt_Courses);
Tbl_EndCell (); Tbl_EndCell ();
/* Form to go to see courses of this degree */ /* Form to go to see courses of this degree */
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
Frm_StartFormGoTo (ActSeeCrs); Frm_StartFormGoTo (ActSeeCrs);
Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod); Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod);
snprintf (Gbl.Title,sizeof (Gbl.Title), snprintf (Gbl.Title,sizeof (Gbl.Title),
@ -595,15 +586,14 @@ static void Deg_ShowNumUsrsInCrssOfDeg (Rol_Role_t Role)
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
"%s:", fprintf (Gbl.F.Out,"%s:",
The_ClassFormInBox[Gbl.Prefs.Theme],
(Role == Rol_UNK) ? Txt_Users_in_courses : (Role == Rol_UNK) ? Txt_Users_in_courses :
Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN]); Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN]);
Tbl_EndCell (); Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
"%u", fprintf (Gbl.F.Out,"%u",
Usr_GetNumUsrsInCrssOfDeg (Role,Gbl.Hierarchy.Deg.DegCod)); Usr_GetNumUsrsInCrssOfDeg (Role,Gbl.Hierarchy.Deg.DegCod));
Tbl_EndCell (); Tbl_EndCell ();
@ -738,9 +728,10 @@ static void Deg_ListDegreesForEdition (void)
ICanEdit = Deg_CheckIfICanEditADegree (Deg); ICanEdit = Deg_CheckIfICanEditADegree (Deg);
/* Put icon to remove degree */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"BM\">");
/* Put icon to remove degree */
Tbl_StartCellAttr ("class=\"BM\"");
if (NumCrss || // Degree has courses ==> deletion forbidden if (NumCrss || // Degree has courses ==> deletion forbidden
!ICanEdit) !ICanEdit)
Ico_PutIconRemovalNotAllowed (); Ico_PutIconRemovalNotAllowed ();
@ -754,19 +745,18 @@ static void Deg_ListDegreesForEdition (void)
Tbl_EndCell (); Tbl_EndCell ();
/* Degree code */ /* Degree code */
fprintf (Gbl.F.Out,"<td class=\"DAT CODE\">" Tbl_StartCellAttr ("class=\"DAT CODE\"");
"%ld", fprintf (Gbl.F.Out,"%ld",Deg->DegCod);
Deg->DegCod);
Tbl_EndCell (); Tbl_EndCell ();
/* Degree logo */ /* Degree logo */
fprintf (Gbl.F.Out,"<td title=\"%s LEFT_MIDDLE\" style=\"width:25px;\">", Tbl_StartCellAttr ("title=\"%s LEFT_MIDDLE\" style=\"width:25px;\"",
Deg->FullName); Deg->FullName);
Log_DrawLogo (Hie_DEG,Deg->DegCod,Deg->ShrtName,20,NULL,true); Log_DrawLogo (Hie_DEG,Deg->DegCod,Deg->ShrtName,20,NULL,true);
Tbl_EndCell (); Tbl_EndCell ();
/* Degree short name */ /* Degree short name */
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (ICanEdit) if (ICanEdit)
{ {
Frm_StartForm (ActRenDegSho); Frm_StartForm (ActRenDegSho);
@ -783,7 +773,7 @@ static void Deg_ListDegreesForEdition (void)
Tbl_EndCell (); Tbl_EndCell ();
/* Degree full name */ /* Degree full name */
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (ICanEdit) if (ICanEdit)
{ {
Frm_StartForm (ActRenDegFul); Frm_StartForm (ActRenDegFul);
@ -800,7 +790,7 @@ static void Deg_ListDegreesForEdition (void)
Tbl_EndCell (); Tbl_EndCell ();
/* Degree type */ /* Degree type */
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (ICanEdit) if (ICanEdit)
{ {
Frm_StartForm (ActChgDegTyp); Frm_StartForm (ActChgDegTyp);
@ -832,7 +822,7 @@ static void Deg_ListDegreesForEdition (void)
Tbl_EndCell (); Tbl_EndCell ();
/* Degree WWW */ /* Degree WWW */
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (ICanEdit) if (ICanEdit)
{ {
Frm_StartForm (ActChgDegWWW); Frm_StartForm (ActChgDegWWW);
@ -859,21 +849,20 @@ static void Deg_ListDegreesForEdition (void)
Tbl_EndCell (); Tbl_EndCell ();
/* Current number of courses in this degree */ /* Current number of courses in this degree */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"DAT RIGHT_MIDDLE\"");
"%u", fprintf (Gbl.F.Out,"%u",NumCrss);
NumCrss);
Tbl_EndCell (); Tbl_EndCell ();
/* Degree requester */ /* Degree requester */
UsrDat.UsrCod = Deg->RequesterUsrCod; UsrDat.UsrCod = Deg->RequesterUsrCod;
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,Usr_DONT_GET_PREFS); Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,Usr_DONT_GET_PREFS);
fprintf (Gbl.F.Out,"<td class=\"DAT INPUT_REQUESTER LEFT_TOP\">"); Tbl_StartCellAttr ("class=\"DAT INPUT_REQUESTER LEFT_TOP\"");
Msg_WriteMsgAuthor (&UsrDat,true,NULL); Msg_WriteMsgAuthor (&UsrDat,true,NULL);
Tbl_EndCell (); Tbl_EndCell ();
/* Degree status */ /* Degree status */
StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status); StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
if (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM && if (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM &&
StatusTxt == Deg_STATUS_PENDING) StatusTxt == Deg_STATUS_PENDING)
{ {
@ -986,21 +975,21 @@ static void Deg_PutFormToCreateDegree (void)
Tbl_StartRow (); Tbl_StartRow ();
/***** Column to remove degree, disabled here *****/ /***** Column to remove degree, disabled here *****/
fprintf (Gbl.F.Out,"<td class=\"BM\">"); Tbl_StartCellAttr ("class=\"BM\"");
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree code *****/ /***** Degree code *****/
fprintf (Gbl.F.Out,"<td class=\"CODE\">"); Tbl_StartCellAttr ("class=\"CODE\"");
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree logo *****/ /***** Degree logo *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:25px;\">"); Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\" style=\"width:25px;\"");
Log_DrawLogo (Hie_DEG,-1L,"",20,NULL,true); Log_DrawLogo (Hie_DEG,-1L,"",20,NULL,true);
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree short name *****/ /***** Degree short name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
"<input type=\"text\" name=\"ShortName\"" fprintf (Gbl.F.Out,"<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\" />",
@ -1008,8 +997,8 @@ static void Deg_PutFormToCreateDegree (void)
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree full name *****/ /***** Degree full name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
"<input type=\"text\" name=\"FullName\"" fprintf (Gbl.F.Out,"<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\" />",
@ -1017,8 +1006,8 @@ static void Deg_PutFormToCreateDegree (void)
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree type *****/ /***** Degree type *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
"<select name=\"OthDegTypCod\" style=\"width:62px;\">"); fprintf (Gbl.F.Out,"<select name=\"OthDegTypCod\" style=\"width:62px;\">");
for (NumDegTyp = 0; for (NumDegTyp = 0;
NumDegTyp < Gbl.DegTypes.Num; NumDegTyp < Gbl.DegTypes.Num;
NumDegTyp++) NumDegTyp++)
@ -1034,8 +1023,8 @@ static void Deg_PutFormToCreateDegree (void)
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree WWW *****/ /***** Degree WWW *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
"<input type=\"url\" name=\"WWW\"" fprintf (Gbl.F.Out,"<input type=\"url\" name=\"WWW\""
" maxlength=\"%u\" value=\"%s\"" " maxlength=\"%u\" value=\"%s\""
" class=\"INPUT_WWW\"" " class=\"INPUT_WWW\""
" required=\"required\" />", " required=\"required\" />",
@ -1043,17 +1032,17 @@ static void Deg_PutFormToCreateDegree (void)
Tbl_EndCell (); Tbl_EndCell ();
/***** Current number of courses in this degree *****/ /***** Current number of courses in this degree *****/
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"DAT RIGHT_MIDDLE\"");
"0"); fprintf (Gbl.F.Out,"0");
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree requester *****/ /***** Degree requester *****/
fprintf (Gbl.F.Out,"<td class=\"DAT INPUT_REQUESTER LEFT_TOP\">"); Tbl_StartCellAttr ("class=\"DAT INPUT_REQUESTER LEFT_TOP\"");
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL); Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL);
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree status *****/ /***** Degree status *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"DAT LEFT_MIDDLE\"");
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
@ -1310,44 +1299,38 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
Tbl_StartRow (); Tbl_StartRow ();
/***** Put tip if degree has courses *****/ /***** Put tip if degree has courses *****/
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\" title=\"%s\">" Tbl_StartCellAttr ("class=\"%s CENTER_MIDDLE %s\" title=\"%s\"",
"%s",
TxtClassNormal,BgColor, TxtClassNormal,BgColor,
NumCrss ? Txt_DEGREE_With_courses : NumCrss ? Txt_DEGREE_With_courses :
Txt_DEGREE_Without_courses, Txt_DEGREE_Without_courses);
NumCrss ? "&check;" : fprintf (Gbl.F.Out,"%s",NumCrss ? "&check;" :
"&nbsp;"); "&nbsp;");
Tbl_EndCell (); Tbl_EndCell ();
/***** Number of degree in this list *****/ /***** Number of degree in this list *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">" Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE %s\"",TxtClassNormal,BgColor);
"%u", fprintf (Gbl.F.Out,"%u",NumDeg);
TxtClassNormal,BgColor,
NumDeg);
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree logo and name *****/ /***** Degree logo and name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",BgColor); Tbl_StartCellAttr ("class=\"LEFT_MIDDLE %s\"",BgColor);
Deg_DrawDegreeLogoAndNameWithLink (Deg,ActSeeCrs, Deg_DrawDegreeLogoAndNameWithLink (Deg,ActSeeCrs,
TxtClassStrong,"CENTER_MIDDLE"); TxtClassStrong,"CENTER_MIDDLE");
Tbl_EndCell (); Tbl_EndCell ();
/***** Type of degree *****/ /***** Type of degree *****/
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE %s\">" Tbl_StartCellAttr ("class=\"%s LEFT_MIDDLE %s\"",TxtClassNormal,BgColor);
"%s", fprintf (Gbl.F.Out,"%s",DegTyp.DegTypName);
TxtClassNormal,BgColor,DegTyp.DegTypName);
Tbl_EndCell (); Tbl_EndCell ();
/***** Current number of courses in this degree *****/ /***** Current number of courses in this degree *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">" Tbl_StartCellAttr ("class=\"%s RIGHT_MIDDLE %s\"",TxtClassNormal,BgColor);
"%u", fprintf (Gbl.F.Out,"%u",NumCrss);
TxtClassNormal,BgColor,NumCrss);
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree status *****/ /***** Degree status *****/
StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status); StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE %s\">", Tbl_StartCellAttr ("class=\"%s LEFT_MIDDLE %s\"",TxtClassNormal,BgColor);
TxtClassNormal,BgColor);
if (StatusTxt != Deg_STATUS_ACTIVE) // If active ==> do not show anything if (StatusTxt != Deg_STATUS_ACTIVE) // If active ==> do not show anything
fprintf (Gbl.F.Out,"%s",Txt_DEGREE_STATUS[StatusTxt]); fprintf (Gbl.F.Out,"%s",Txt_DEGREE_STATUS[StatusTxt]);
Tbl_EndCell (); Tbl_EndCell ();
@ -2549,18 +2532,17 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
Tbl_StartRow (); Tbl_StartRow ();
/***** Indent *****/ /***** Indent *****/
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP COLOR%u\">" Tbl_StartCellAttr ("class=\"RIGHT_TOP COLOR%u\"",Gbl.RowEvenOdd);
"<img src=\"%s/%s20x20.gif\"" fprintf (Gbl.F.Out,"<img src=\"%s/%s20x20.gif\""
" alt=\"\" title=\"\"" " alt=\"\" title=\"\""
" class=\"ICO25x25\" />", " class=\"ICO25x25\" />",
Gbl.RowEvenOdd,Cfg_URL_ICON_PUBLIC, Cfg_URL_ICON_PUBLIC,
NumRow == NumRows ? "subend" : NumRow == NumRows ? "subend" :
"submid"); "submid");
Tbl_EndCell (); Tbl_EndCell ();
/***** Write institution, centre, degree *****/ /***** Write institution, centre, degree *****/
fprintf (Gbl.F.Out,"<td colspan=\"%u\"" Tbl_StartCellAttr ("colspan=\"%u\" class=\"DAT_SMALL_NOBR LEFT_TOP COLOR%u\">",
" class=\"DAT_SMALL_NOBR LEFT_TOP COLOR%u\">",
ColSpan - 1,Gbl.RowEvenOdd); ColSpan - 1,Gbl.RowEvenOdd);
/* Get next institution, centre, degree */ /* Get next institution, centre, degree */

View File

@ -330,23 +330,21 @@ static void DT_ListDegreeTypesForSeeing (void)
Gbl.Hierarchy.Deg.DegTypCod) ? "LIGHT_BLUE" : Gbl.Hierarchy.Deg.DegTypCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[Gbl.RowEvenOdd]; Gbl.ColorRows[Gbl.RowEvenOdd];
/* Number of degree type in this list */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"DAT_N RIGHT_MIDDLE %s\">"
"%u", /* Number of degree type in this list */
BgColor,NumDegTyp + 1); Tbl_StartCellAttr ("class=\"DAT_N RIGHT_MIDDLE %s\"",BgColor);
fprintf (Gbl.F.Out,"%u",NumDegTyp + 1);
Tbl_EndCell (); Tbl_EndCell ();
/* Name of degree type */ /* Name of degree type */
fprintf (Gbl.F.Out,"<td class=\"DAT_N LEFT_MIDDLE %s\">" Tbl_StartCellAttr ("class=\"DAT_N LEFT_MIDDLE %s\"",BgColor);
"%s", fprintf (Gbl.F.Out,"%s",Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
BgColor,Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
Tbl_EndCell (); Tbl_EndCell ();
/* Number of degrees of this type */ /* Number of degrees of this type */
fprintf (Gbl.F.Out,"<td class=\"DAT_N RIGHT_MIDDLE %s\">" Tbl_StartCellAttr ("class=\"DAT_N RIGHT_MIDDLE %s\"",BgColor);
"%u", fprintf (Gbl.F.Out,"%u",Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
BgColor,Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
@ -403,7 +401,7 @@ static void DT_ListDegreeTypesForEdition (void)
Tbl_StartRow (); Tbl_StartRow ();
/* Put icon to remove degree type */ /* Put icon to remove degree type */
fprintf (Gbl.F.Out,"<td class=\"BM\">"); Tbl_StartCellAttr ("class=\"BM\"");
if (Gbl.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees => deletion forbidden if (Gbl.DegTypes.Lst[NumDegTyp].NumDegs) // Degree type has degrees => deletion forbidden
Ico_PutIconRemovalNotAllowed (); Ico_PutIconRemovalNotAllowed ();
else else
@ -416,13 +414,12 @@ static void DT_ListDegreeTypesForEdition (void)
Tbl_EndCell (); Tbl_EndCell ();
/* Degree type code */ /* Degree type code */
fprintf (Gbl.F.Out,"<td class=\"DAT CODE\">" Tbl_StartCellAttr ("class=\"DAT CODE\"");
"%ld", fprintf (Gbl.F.Out,"%ld",Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
Tbl_EndCell (); Tbl_EndCell ();
/* Name of degree type */ /* Name of degree type */
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"); Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
Frm_StartForm (ActRenDegTyp); Frm_StartForm (ActRenDegTyp);
DT_PutParamOtherDegTypCod (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod); DT_PutParamOtherDegTypCod (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
fprintf (Gbl.F.Out,"<input type=\"text\" name=\"DegTypName\"" fprintf (Gbl.F.Out,"<input type=\"text\" name=\"DegTypName\""
@ -436,9 +433,8 @@ static void DT_ListDegreeTypesForEdition (void)
Tbl_EndCell (); Tbl_EndCell ();
/* Number of degrees of this type */ /* Number of degrees of this type */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"DAT RIGHT_MIDDLE\"");
"%u", fprintf (Gbl.F.Out,"%u",Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
@ -479,24 +475,24 @@ static void DT_PutFormToCreateDegreeType (void)
Tbl_StartRow (); Tbl_StartRow ();
/***** Column to remove degree type, disabled here *****/ /***** Column to remove degree type, disabled here *****/
fprintf (Gbl.F.Out,"<td class=\"BM\">"); Tbl_StartCellAttr ("class=\"BM\"");
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree type code *****/ /***** Degree type code *****/
fprintf (Gbl.F.Out,"<td class=\"CODE\">"); Tbl_StartCellAttr ("class=\"CODE\"");
Tbl_EndCell (); Tbl_EndCell ();
/***** Degree type name *****/ /***** Degree type name *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" Tbl_StartCellAttr ("class=\"LEFT_MIDDLE\"");
"<input type=\"text\" name=\"DegTypName\"" fprintf (Gbl.F.Out,"<input type=\"text\" name=\"DegTypName\""
" size=\"25\" maxlength=\"%u\" value=\"%s\"" " size=\"25\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />", " required=\"required\" />",
Deg_MAX_CHARS_DEGREE_TYPE_NAME,DT_EditingDegTyp->DegTypName); Deg_MAX_CHARS_DEGREE_TYPE_NAME,DT_EditingDegTyp->DegTypName);
Tbl_EndCell (); Tbl_EndCell ();
/***** Number of degrees of this degree type ****/ /***** Number of degrees of this degree type ****/
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" Tbl_StartCellAttr ("class=\"DAT RIGHT_MIDDLE\"");
"0"); fprintf (Gbl.F.Out,"0");
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();