Version19.31.13

This commit is contained in:
Antonio Cañas Vargas 2019-10-07 15:15:55 +02:00
parent d570697b6b
commit b093e1b9bf
10 changed files with 635 additions and 513 deletions

View File

@ -607,10 +607,11 @@ static void ID_ShowFormChangeUsrID (const struct UsrData *UsrDat,
fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"REC_C1_BOT RIGHT_TOP\">"
"<label for=\"UsrID\" class=\"%s\">" "<label for=\"UsrID\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_TOP USR_ID\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_ID); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_ID);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_TOP USR_ID\">");
} }
else // NumID >= 1 else // NumID >= 1
fprintf (Gbl.F.Out,"<br />"); fprintf (Gbl.F.Out,"<br />");
@ -674,20 +675,24 @@ static void ID_ShowFormChangeUsrID (const struct UsrData *UsrDat,
{ {
/***** Write help text *****/ /***** Write help text *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"DAT CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<td colspan=\"2\" class=\"DAT CENTER_MIDDLE\">");
Ale_ShowAlert (Ale_INFO,Txt_The_ID_is_used_in_order_to_facilitate_); Ale_ShowAlert (Ale_INFO,Txt_The_ID_is_used_in_order_to_facilitate_);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Form to enter new user's ID *****/ /***** Form to enter new user's ID *****/
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=\"NewID\" class=\"%s\">%s:</label>" "<label for=\"NewID\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"REC_C2_BOT LEFT_TOP DAT\">",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
UsrDat->IDs.Num ? Txt_Another_ID : // A new user's ID UsrDat->IDs.Num ? Txt_Another_ID : // A new user's ID
Txt_ID); // The first user's ID Txt_ID); // The first user's ID
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"REC_C2_BOT LEFT_TOP DAT\">");
if (ItsMe) if (ItsMe)
Frm_StartFormAnchor (ActChgMyID,ID_ID_SECTION_ID); Frm_StartFormAnchor (ActChgMyID,ID_ID_SECTION_ID);
else else
@ -717,6 +722,7 @@ static void ID_ShowFormChangeUsrID (const struct UsrData *UsrDat,
Btn_PutCreateButtonInline (Txt_Add_this_ID); Btn_PutCreateButtonInline (Txt_Add_this_ID);
Frm_EndForm (); Frm_EndForm ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }

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.12 (2019-10-07)" #define Log_PLATFORM_VERSION "SWAD 19.31.13 (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.13: Oct 07, 2019 Code refactoring in HTML tables. (247135 lines)
Version 19.31.12: Oct 07, 2019 Code refactoring in HTML tables. (247121 lines) Version 19.31.12: Oct 07, 2019 Code refactoring in HTML tables. (247121 lines)
Version 19.31.11: Oct 07, 2019 Code refactoring in HTML tables. (247111 lines) Version 19.31.11: Oct 07, 2019 Code refactoring in HTML tables. (247111 lines)
Version 19.31.10: Oct 07, 2019 Code refactoring in HTML tables. (247106 lines) Version 19.31.10: Oct 07, 2019 Code refactoring in HTML tables. (247106 lines)

View File

@ -5870,13 +5870,15 @@ static void Brw_IndentDependingOnLevel (unsigned Level)
for (i = 1; for (i = 1;
i < Level; i < Level;
i++) i++)
{
fprintf (Gbl.F.Out,"<td class=\"BM%u\">" fprintf (Gbl.F.Out,"<td class=\"BM%u\">"
"<img src=\"%s/tr16x16.gif\"" "<img src=\"%s/tr16x16.gif\""
" alt=\"\" title=\"\"" " alt=\"\" title=\"\""
" class=\"ICO20x20\" />" " class=\"ICO20x20\" />",
"</td>",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Cfg_URL_ICON_PUBLIC); Cfg_URL_ICON_PUBLIC);
Tbl_EndCell ();
}
} }
/*****************************************************************************/ /*****************************************************************************/
@ -6127,11 +6129,11 @@ static void Brw_PutIconNewFileOrFolder (void)
fprintf (Gbl.F.Out,"<td class=\"BM%u\">" fprintf (Gbl.F.Out,"<td class=\"BM%u\">"
"<img src=\"%s/star16x16.gif\"" "<img src=\"%s/star16x16.gif\""
" alt=\"%s\" title=\"%s\"" " alt=\"%s\" title=\"%s\""
" class=\"ICO20x20\" />" " class=\"ICO20x20\" />",
"</td>",
Gbl.RowEvenOdd,Cfg_URL_ICON_PUBLIC, Gbl.RowEvenOdd,Cfg_URL_ICON_PUBLIC,
Txt_New_FILE_OR_FOLDER, Txt_New_FILE_OR_FOLDER,
Txt_New_FILE_OR_FOLDER); Txt_New_FILE_OR_FOLDER);
Tbl_EndCell ();
} }
/*****************************************************************************/ /*****************************************************************************/
@ -6314,8 +6316,8 @@ static void Brw_WriteFileName (unsigned Level,bool IsPublic)
Ico_PutIconOff ("unlock.svg", Ico_PutIconOff ("unlock.svg",
Txt_Public_open_educational_resource_OER_for_everyone); Txt_Public_open_educational_resource_OER_for_everyone);
fprintf (Gbl.F.Out,"</div>" fprintf (Gbl.F.Out,"</div>");
"</td>"); Tbl_EndCell ();
} }
} }
@ -6433,10 +6435,10 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
else else
FileSizeStr[0] = '\0'; FileSizeStr[0] = '\0';
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"&nbsp;%s" "&nbsp;%s",
"</td>",
Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd, Gbl.FileBrowser.TxtStyle,Gbl.RowEvenOdd,
FileSizeStr); FileSizeStr);
Tbl_EndCell ();
/***** Write the date *****/ /***** Write the date *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
@ -8511,16 +8513,16 @@ static void Brw_PutFormToCreateALink (const char *FileNameToShow)
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"NewLinkURL\" class=\"%s\">" "<label for=\"NewLinkURL\" class=\"%s\">"
"%s:&nbsp;" "%s:&nbsp;"
"</label>" "</label>",
"</td>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_URL);
"<td class=\"LEFT_MIDDLE\">" Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<input type=\"url\"" "<input type=\"url\""
" id=\"NewLinkURL\" name=\"NewLinkURL\"" " id=\"NewLinkURL\" name=\"NewLinkURL\""
" size=\"30\" maxlength=\"%u\" value=\"\"" " size=\"30\" maxlength=\"%u\" value=\"\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_URL,
PATH_MAX); PATH_MAX);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Link name *****/ /***** Link name *****/
@ -8528,15 +8530,15 @@ static void Brw_PutFormToCreateALink (const char *FileNameToShow)
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"NewLinkName\" class=\"%s\">" "<label for=\"NewLinkName\" class=\"%s\">"
"%s&nbsp;(%s):&nbsp;" "%s&nbsp;(%s):&nbsp;"
"</label>" "</label>",
"</td>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Save_as,Txt_optional);
"<td class=\"LEFT_MIDDLE\">" Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<input type=\"text\"" "<input type=\"text\""
" id=\"NewLinkName\" name=\"NewLinkName\"" " id=\"NewLinkName\" name=\"NewLinkName\""
" size=\"30\" maxlength=\"%u\" value=\"\" />" " size=\"30\" maxlength=\"%u\" value=\"\" />",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Save_as,Txt_optional,
Brw_MAX_CHARS_FOLDER); Brw_MAX_CHARS_FOLDER);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
Tbl_EndTable (); Tbl_EndTable ();
@ -9504,10 +9506,10 @@ void Brw_ShowFileMetadata (void)
/***** Filename *****/ /***** Filename *****/
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=\"DAT LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Filename); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Filename);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
Brw_WriteSmallLinkToDownloadFile (URL,&FileMetadata,FileNameToShow); Brw_WriteSmallLinkToDownloadFile (URL,&FileMetadata,FileNameToShow);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
@ -9515,10 +9517,10 @@ void Brw_ShowFileMetadata (void)
/***** Publisher's data *****/ /***** Publisher's data *****/
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=\"DAT LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Uploaded_by); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Uploaded_by);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
if (FileHasPublisher) if (FileHasPublisher)
{ {
/* Show photo */ /* Show photo */
@ -9545,42 +9547,44 @@ void Brw_ShowFileMetadata (void)
Fil_WriteFileSizeFull ((double) FileMetadata.Size,FileSizeStr); Fil_WriteFileSizeFull ((double) FileMetadata.Size,FileSizeStr);
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=\"DAT LEFT_MIDDLE\">"
"%s"
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_File_size, Txt_File_size);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"%s",
FileSizeStr); FileSizeStr);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Write the date *****/ /***** Write the date *****/
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>" The_ClassFormInBox[Gbl.Prefs.Theme],
"<td id=\"filedate\" class=\"DAT LEFT_MIDDLE\">" Txt_Date_of_creation);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td id=\"filedate\" class=\"DAT LEFT_MIDDLE\">"
"<script type=\"text/javascript\">" "<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('filedate',%ld," "writeLocalDateHMSFromUTC('filedate',%ld,"
"%u,',&nbsp;','%s',true,true,0x7);" "%u,',&nbsp;','%s',true,true,0x7);"
"</script>" "</script>",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Date_of_creation,
(long) FileMetadata.Time, (long) FileMetadata.Time,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today); (unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Private or public? *****/ /***** Private or public? *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"PublicFile\" class=\"%s\">" "<label for=\"PublicFile\" class=\"%s\">"
"%s:" "%s:"
"</label>" "</label>",
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Availability); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Availability);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
if (ICanChangePublic) // I can change file to public if (ICanChangePublic) // I can change file to public
{ {
fprintf (Gbl.F.Out,"<select id=\"PublicFile\" name=\"PublicFile\">"); fprintf (Gbl.F.Out,"<select id=\"PublicFile\" name=\"PublicFile\">");
@ -9602,15 +9606,18 @@ void Brw_ShowFileMetadata (void)
FileMetadata.IsPublic ? Txt_Public_open_educational_resource_OER_for_everyone : FileMetadata.IsPublic ? Txt_Public_open_educational_resource_OER_for_everyone :
Txt_Private_available_to_certain_users_identified); Txt_Private_available_to_certain_users_identified);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** License *****/ /***** License *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"License\" class=\"%s\">%s:</label>" "<label for=\"License\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_License); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_License);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
if (ICanEdit) // I can edit file properties if (ICanEdit) // I can edit file properties
{ {
fprintf (Gbl.F.Out,"<select id=\"License\" name=\"License\">"); fprintf (Gbl.F.Out,"<select id=\"License\" name=\"License\">");
@ -9629,48 +9636,58 @@ void Brw_ShowFileMetadata (void)
else // I can not edit file properties else // I can not edit file properties
fprintf (Gbl.F.Out,"%s",Txt_LICENSES[FileMetadata.License]); fprintf (Gbl.F.Out,"%s",Txt_LICENSES[FileMetadata.License]);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Write my number of views *****/ /***** Write my number of views *****/
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
{ {
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>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_My_views);
"<td class=\"DAT LEFT_MIDDLE\">" Tbl_EndCell ();
"%u"
"</td>", fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_My_views, "%u",
FileMetadata.NumMyViews); FileMetadata.NumMyViews);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
/***** Write number of identificated views *****/ /***** Write number of identificated views *****/
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>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Identified_views);
"<td class=\"DAT LEFT_MIDDLE\">" Tbl_EndCell ();
"%u (%u %s)"
"</td>", fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Identified_views, "%u (%u %s)",
FileMetadata.NumViewsFromLoggedUsrs, FileMetadata.NumViewsFromLoggedUsrs,
FileMetadata.NumLoggedUsrs, FileMetadata.NumLoggedUsrs,
(FileMetadata.NumLoggedUsrs == 1) ? Txt_user[Usr_SEX_UNKNOWN] : (FileMetadata.NumLoggedUsrs == 1) ? Txt_user[Usr_SEX_UNKNOWN] :
Txt_users[Usr_SEX_UNKNOWN]); Txt_users[Usr_SEX_UNKNOWN]);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Write number of public views *****/ /***** Write number of public views *****/
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>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Public_views);
"<td class=\"DAT LEFT_MIDDLE\">" Tbl_EndCell ();
"%u"
"</td>", fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Public_views, "%u",
FileMetadata.NumPublicViews); FileMetadata.NumPublicViews);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End box *****/ /***** End box *****/
@ -11919,12 +11936,13 @@ static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row)
CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? "LIGHT_BLUE" : CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? "LIGHT_BLUE" :
Gbl.ColorRows[Gbl.RowEvenOdd]; Gbl.ColorRows[Gbl.RowEvenOdd];
/***** Write number of document in this search *****/
Tbl_StartRow (); Tbl_StartRow ();
/***** Write number of document in this search *****/
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_TOP %s\">"
"%lu" "%lu",
"</td>",
BgColor,++(*NumDocsNotHidden)); BgColor,++(*NumDocsNotHidden));
Tbl_EndCell ();
/***** Write institution logo, institution short name *****/ /***** Write institution logo, institution short name *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP %s\">", fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP %s\">",
@ -12038,9 +12056,9 @@ static void Brw_WriteRowDocData (unsigned long *NumDocsNotHidden,MYSQL_ROW row)
break; break;
} }
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP %s\">"
"%s" "%s",
"</td>",
BgColor,Title); BgColor,Title);
Tbl_EndCell ();
/***** Get the name of the file to show *****/ /***** Get the name of the file to show *****/
Brw_GetFileNameToShow (FileMetadata.FilFolLnk.Type, Brw_GetFileNameToShow (FileMetadata.FilFolLnk.Type,

View File

@ -1174,13 +1174,13 @@ static void For_ShowAForumPost (unsigned PstNum,long PstCod,
Str_Copy (LastSubject,Subject, Str_Copy (LastSubject,Subject,
Cns_MAX_BYTES_SUBJECT); Cns_MAX_BYTES_SUBJECT);
/***** Put an icon with post status *****/
Tbl_StartRow (); Tbl_StartRow ();
/***** Put an icon with post status *****/
fprintf (Gbl.F.Out,"<td class=\"CONTEXT_COL %s\">" fprintf (Gbl.F.Out,"<td class=\"CONTEXT_COL %s\">"
"<img src=\"%s/%s\"" "<img src=\"%s/%s\""
" alt=\"%s\" title=\"%s\"" " alt=\"%s\" title=\"%s\""
" class=\"ICO16x16\" />" " class=\"ICO16x16\" />",
"</td>",
NewPst ? "MSG_TIT_BG_NEW" : NewPst ? "MSG_TIT_BG_NEW" :
"MSG_TIT_BG", "MSG_TIT_BG",
Cfg_URL_ICON_PUBLIC, Cfg_URL_ICON_PUBLIC,
@ -1190,6 +1190,7 @@ static void For_ShowAForumPost (unsigned PstNum,long PstCod,
Txt_MSG_Open, Txt_MSG_Open,
NewPst ? Txt_MSG_New : NewPst ? Txt_MSG_New :
Txt_MSG_Open); Txt_MSG_Open);
Tbl_EndCell ();
/***** Write post number *****/ /***** Write post number *****/
Msg_WriteMsgNumber ((unsigned long) PstNum,NewPst); Msg_WriteMsgNumber ((unsigned long) PstNum,NewPst);
@ -3514,48 +3515,51 @@ static void For_ListForumThrs (long ThrCods[Pag_ITEMS_PER_PAGE],
"<script type=\"text/javascript\">" "<script type=\"text/javascript\">"
"writeLocalDateHMSFromUTC('thr_date_%u',%ld," "writeLocalDateHMSFromUTC('thr_date_%u',%ld,"
"%u,'<br />','%s',true,false,0x6);" "%u,'<br />','%s',true,false,0x6);"
"</script>" "</script>",
"</td>",
UniqueId,Style,BgColor, UniqueId,Style,BgColor,
UniqueId,(long) TimeUTC, UniqueId,(long) TimeUTC,
(unsigned) Gbl.Prefs.DateFormat,Txt_Today); (unsigned) Gbl.Prefs.DateFormat,Txt_Today);
Tbl_EndCell ();
} }
else else
for (Column = 1; for (Column = 1;
Column <= 2; Column <= 2;
Column++) Column++)
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_TOP %s\">" {
"</td>", fprintf (Gbl.F.Out,"<td class=\"%s LEFT_TOP %s\">",
Style,BgColor); Style,BgColor);
Tbl_EndCell ();
}
} }
/***** Write number of posts in this thread *****/ /***** Write number of posts in this thread *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
"%u&nbsp;" "%u&nbsp;",
"</td>",
Style,BgColor, Style,BgColor,
Thr.NumPosts); Thr.NumPosts);
Tbl_EndCell ();
/***** Write number of new posts in this thread *****/ /***** Write number of new posts in this thread *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
"%u&nbsp;" "%u&nbsp;",
"</td>",
Style,BgColor, Style,BgColor,
Thr.NumUnreadPosts); Thr.NumUnreadPosts);
Tbl_EndCell ();
/***** Write number of users who have write posts in this thread *****/ /***** Write number of users who have write posts in this thread *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
"%u&nbsp;" "%u&nbsp;",
"</td>",
Style,BgColor, Style,BgColor,
Thr.NumWriters); Thr.NumWriters);
Tbl_EndCell ();
/***** Write number of users who have read this thread *****/ /***** Write number of users who have read this thread *****/
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
"%u&nbsp;" "%u&nbsp;",
"</td>",
Style,BgColor, Style,BgColor,
Thr.NumReaders); Thr.NumReaders);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -3963,33 +3967,39 @@ static void For_WriteFormForumPst (bool IsReply,const char *Subject)
// If writing a reply to a message of an existing thread ==> write subject // If writing a reply to a message of an existing thread ==> write subject
/* Subject */ /* Subject */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"Subject\" class=\"%s\">%s:</label>" "<label for=\"Subject\" class=\"%s\">%s:</label>",
"</td>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_MSG_Subject);
"<td class=\"LEFT_MIDDLE\">" Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<input type=\"text\" id=\"Subject\" name=\"Subject\"" "<input type=\"text\" id=\"Subject\" name=\"Subject\""
" class=\"MSG_SUBJECT\"" " class=\"MSG_SUBJECT\""
" maxlength=\"%u\" value=\"%s\"" " maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_MSG_Subject,
Cns_MAX_CHARS_SUBJECT, Cns_MAX_CHARS_SUBJECT,
IsReply ? Subject : IsReply ? Subject :
""); "");
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Content */ /* Content */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP\">"
"<label for=\"Content\" class=\"%s\">%s:</label>" "<label for=\"Content\" class=\"%s\">%s:</label>",
"</td>" The_ClassFormInBox[Gbl.Prefs.Theme],Txt_MSG_Content);
"<td class=\"LEFT_TOP\">" Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"
"<textarea id=\"Content\" name=\"Content\"" "<textarea id=\"Content\" name=\"Content\""
" class=\"MSG_CONTENT\"" " class=\"MSG_CONTENT\""
" rows=\"10\">" " rows=\"10\">"
"</textarea>" "</textarea>");
"</td>", Tbl_EndCell ();
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_MSG_Content);
Tbl_EndRow (); Tbl_EndRow ();
Tbl_EndTable (); Tbl_EndTable ();

View File

@ -507,11 +507,11 @@ void Gam_ShowOneGame (long GamCod,
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
Str_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links Str_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
fprintf (Gbl.F.Out,"<div class=\"PAR %s\">%s</div>" fprintf (Gbl.F.Out,"<div class=\"PAR %s\">%s</div>",
"</td>",
Game.Hidden ? "DAT_LIGHT" : Game.Hidden ? "DAT_LIGHT" :
"DAT", "DAT",
Txt); Txt);
Tbl_EndCell ();
/***** End 2nd row of this game *****/ /***** End 2nd row of this game *****/
Tbl_EndRow (); Tbl_EndRow ();
@ -1136,33 +1136,39 @@ static void Gam_PutFormsEditionGame (struct Game *Game,bool ItsANewGame)
/***** Game title *****/ /***** Game 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],
"<td class=\"LEFT_MIDDLE\">" Txt_Title);
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,
Gam_MAX_CHARS_TITLE,Game->Title); Gam_MAX_CHARS_TITLE,Game->Title);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Game text *****/ /***** Game text *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP\">"
"<label for=\"Txt\" class=\"%s\">%s:</label>" "<label for=\"Txt\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_TOP\">"
"<textarea id=\"Txt\" name=\"Txt\""
" cols=\"60\" rows=\"10\">",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_Description); Txt_Description);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">"
"<textarea id=\"Txt\" name=\"Txt\""
" cols=\"60\" rows=\"10\">");
if (!ItsANewGame) if (!ItsANewGame)
fprintf (Gbl.F.Out,"%s",Txt); fprintf (Gbl.F.Out,"%s",Txt);
fprintf (Gbl.F.Out,"</textarea>" fprintf (Gbl.F.Out,"</textarea>");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End table, send button and end box *****/ /***** End table, send button and end box *****/
@ -1740,15 +1746,15 @@ static void Gam_ListOneOrMoreQuestionsForEdition (long GamCod,unsigned NumQsts,
/* Write answer type (row[2]) */ /* Write answer type (row[2]) */
Gbl.Test.AnswerType = Tst_ConvertFromStrAnsTypDBToAnsTyp (row[2]); Gbl.Test.AnswerType = Tst_ConvertFromStrAnsTypDBToAnsTyp (row[2]);
fprintf (Gbl.F.Out,"<div class=\"DAT_SMALL\">%s</div>" fprintf (Gbl.F.Out,"<div class=\"DAT_SMALL\">%s</div>",
"</td>",
Txt_TST_STR_ANSWER_TYPES[Gbl.Test.AnswerType]); Txt_TST_STR_ANSWER_TYPES[Gbl.Test.AnswerType]);
Tbl_EndCell ();
/* Write question code */ /* Write question code */
fprintf (Gbl.F.Out,"<td class=\"DAT_SMALL CENTER_TOP COLOR%u\">" fprintf (Gbl.F.Out,"<td class=\"DAT_SMALL CENTER_TOP COLOR%u\">"
"%ld&nbsp;" "%ld&nbsp;",
"</td>",
Gbl.RowEvenOdd,Gbl.Test.QstCod); Gbl.RowEvenOdd,Gbl.Test.QstCod);
Tbl_EndCell ();
/* Write the question tags */ /* Write the question tags */
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u\">", fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u\">",

View File

@ -1365,19 +1365,21 @@ static void Grp_ListGroupTypesForEdition (void)
Grp_PutParamGrpTypCod (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod); Grp_PutParamGrpTypCod (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod);
Tbl_StartTableCenterPadding (2); Tbl_StartTableCenterPadding (2);
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:16px;\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:16px;\">"
"<img src=\"%s/clock.svg\"" "<img src=\"%s/clock.svg\""
" alt=\"%s\" title=\"%s\"" " alt=\"%s\" title=\"%s\""
" class=\"%sCONTEXT_ICO_16x16\" />" " class=\"%sCONTEXT_ICO_16x16\" />",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
Cfg_URL_ICON_PUBLIC, Cfg_URL_ICON_PUBLIC,
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? Txt_The_groups_will_automatically_open : Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? Txt_The_groups_will_automatically_open :
Txt_The_groups_will_not_automatically_open, Txt_The_groups_will_not_automatically_open,
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? Txt_The_groups_will_automatically_open : Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? Txt_The_groups_will_automatically_open :
Txt_The_groups_will_not_automatically_open, Txt_The_groups_will_not_automatically_open,
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? "" : Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? "" :
"ICO_HIDDEN "); "ICO_HIDDEN ");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
snprintf (Id,sizeof (Id), snprintf (Id,sizeof (Id),
"open_time_%u", "open_time_%u",
UniqueId); UniqueId);
@ -1390,6 +1392,7 @@ static void Grp_ListGroupTypesForEdition (void)
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second
true); // Submit on change true); // Submit on change
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
Tbl_EndTable (); Tbl_EndTable ();
Frm_EndForm (); Frm_EndForm ();
@ -1397,9 +1400,10 @@ static void Grp_ListGroupTypesForEdition (void)
/* Number of groups of this type */ /* Number of groups of this type */
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"
"%u" "%u",
"</td>",
Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps); Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
@ -1632,10 +1636,12 @@ static void Grp_ListGroupsForEdition (void)
for (Role = Rol_TCH; for (Role = Rol_TCH;
Role >= Rol_STD; Role >= Rol_STD;
Role--) Role--)
{
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"
"%d" "%d",
"</td>",
Grp->NumUsrs[Role]); Grp->NumUsrs[Role]);
Tbl_EndCell ();
}
/***** Maximum number of students of the group (row[3]) *****/ /***** Maximum number of students of the group (row[3]) *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
@ -1762,8 +1768,8 @@ void Grp_ListGrpsToEditAsgAttSvyMch (struct GroupType *GrpTyp,long Cod,
if (!(IBelongToThisGroup || if (!(IBelongToThisGroup ||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM))
fprintf (Gbl.F.Out," disabled=\"disabled\""); fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," onclick=\"uncheckParent(this,'WholeCrs')\" />" fprintf (Gbl.F.Out," onclick=\"uncheckParent(this,'WholeCrs')\" />");
"</td>"); Tbl_EndCell ();
Grp_WriteRowGrp (Grp,IBelongToThisGroup); Grp_WriteRowGrp (Grp,IBelongToThisGroup);
@ -2067,8 +2073,8 @@ static bool Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp,
fprintf (Gbl.F.Out,IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) fprintf (Gbl.F.Out,IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted)
" disabled=\"disabled\""); // I can not register " disabled=\"disabled\""); // I can not register
fprintf (Gbl.F.Out," />" fprintf (Gbl.F.Out," />");
"</td>"); Tbl_EndCell ();
Grp_WriteRowGrp (Grp,IBelongToThisGroup); Grp_WriteRowGrp (Grp,IBelongToThisGroup);
@ -2260,7 +2266,8 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllGroups')\""); fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllGroups')\"");
else else
fprintf (Gbl.F.Out," disabled=\"disabled\""); fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," /></td>"); fprintf (Gbl.F.Out," />");
Tbl_EndCell ();
Grp_WriteRowGrp (Grp,IBelongToThisGroup); Grp_WriteRowGrp (Grp,IBelongToThisGroup);
@ -2297,31 +2304,33 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
} }
else else
fprintf (Gbl.F.Out," disabled=\"disabled\""); fprintf (Gbl.F.Out," disabled=\"disabled\"");
fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllGroups')\" />" fprintf (Gbl.F.Out," onclick=\"checkParent(this,'AllGroups')\" />");
"</td>"); Tbl_EndCell ();
/* Column closed/open */ /* Column closed/open */
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
"</td>"); Tbl_EndCell ();
/* Group name = students with no group */ /* Group name = students with no group */
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"<label for=\"Grp%ld\">%s</label>" "<label for=\"Grp%ld\">%s</label>",
"</td>",
-(GrpTyp->GrpTypCod),Txt_users_with_no_group); -(GrpTyp->GrpTypCod),Txt_users_with_no_group);
Tbl_EndCell ();
/* Classroom */ /* Classroom */
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
"</td>"); Tbl_EndCell ();
/* Number of students who don't belong to any group of this type */ /* Number of students who don't belong to any group of this type */
for (Role = Rol_TCH; for (Role = Rol_TCH;
Role >= Rol_STD; Role >= Rol_STD;
Role--) Role--)
{
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"
"%lu" "%lu",
"</td>",
Grp_CountNumUsrsInNoGrpsOfType (Role,GrpTyp->GrpTypCod)); Grp_CountNumUsrsInNoGrpsOfType (Role,GrpTyp->GrpTypCod));
Tbl_EndCell ();
}
/* Last empty columns for max. students and vacants */ /* Last empty columns for max. students and vacants */
Tbl_PutEmptyCells (2); Tbl_PutEmptyCells (2);
@ -2428,19 +2437,19 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
fprintf (Gbl.F.Out,"\">" fprintf (Gbl.F.Out,"\">"
"<label for=\"Grp%ld\" class=\"DAT\">" "<label for=\"Grp%ld\" class=\"DAT\">"
"%s" "%s"
"</label>" "</label>",
"</td>",
Grp->GrpCod, Grp->GrpCod,
Grp->GrpName); Grp->GrpName);
Tbl_EndCell ();
/***** Classroom *****/ /***** Classroom *****/
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE"); fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE");
if (Highlight) if (Highlight)
fprintf (Gbl.F.Out," LIGHT_BLUE"); fprintf (Gbl.F.Out," LIGHT_BLUE");
fprintf (Gbl.F.Out,"\">" fprintf (Gbl.F.Out,"\">"
"%s" "%s",
"</td>",
Grp->Classroom.ShrtName); Grp->Classroom.ShrtName);
Tbl_EndCell ();
/***** Current number of users in this group *****/ /***** Current number of users in this group *****/
for (Role = Rol_TCH; for (Role = Rol_TCH;
@ -2451,9 +2460,9 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
if (Highlight) if (Highlight)
fprintf (Gbl.F.Out," LIGHT_BLUE"); fprintf (Gbl.F.Out," LIGHT_BLUE");
fprintf (Gbl.F.Out,"\">" fprintf (Gbl.F.Out,"\">"
"%d" "%d",
"</td>",
Grp->NumUsrs[Role]); Grp->NumUsrs[Role]);
Tbl_EndCell ();
} }
/***** Max. number of students in this group *****/ /***** Max. number of students in this group *****/
@ -2462,8 +2471,8 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
fprintf (Gbl.F.Out," LIGHT_BLUE"); fprintf (Gbl.F.Out," LIGHT_BLUE");
fprintf (Gbl.F.Out,"\">"); fprintf (Gbl.F.Out,"\">");
Grp_WriteMaxStds (Grp->MaxStudents); Grp_WriteMaxStds (Grp->MaxStudents);
fprintf (Gbl.F.Out,"&nbsp;" fprintf (Gbl.F.Out,"&nbsp;");
"</td>"); Tbl_EndCell ();
/***** Vacants in this group *****/ /***** Vacants in this group *****/
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE"); fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE");
@ -2508,15 +2517,16 @@ static void Grp_PutFormToCreateGroupType (void)
/***** Column to remove group type, disabled here *****/ /***** Column to remove group type, disabled here *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"BM\"></td>"); fprintf (Gbl.F.Out,"<td class=\"BM\">");
Tbl_EndCell ();
/***** Name of group type *****/ /***** Name of group type *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
"<input type=\"text\" name=\"GrpTypName\"" "<input type=\"text\" name=\"GrpTypName\""
" size=\"12\" maxlength=\"%u\" value=\"%s\"" " size=\"12\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Grp_MAX_CHARS_GROUP_TYPE_NAME,Gbl.Crs.Grps.GrpTyp.GrpTypName); Grp_MAX_CHARS_GROUP_TYPE_NAME,Gbl.Crs.Grps.GrpTyp.GrpTypName);
Tbl_EndCell ();
/***** Is it mandatory to register in any groups of this type? *****/ /***** Is it mandatory to register in any groups of this type? *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -2531,9 +2541,9 @@ static void Grp_PutFormToCreateGroupType (void)
if (Gbl.Crs.Grps.GrpTyp.MandatoryEnrolment) if (Gbl.Crs.Grps.GrpTyp.MandatoryEnrolment)
fprintf (Gbl.F.Out," selected=\"selected\""); fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>" fprintf (Gbl.F.Out,">%s</option>"
"</select>" "</select>",
"</td>",
Txt_It_is_mandatory_to_choose_a_group); Txt_It_is_mandatory_to_choose_a_group);
Tbl_EndCell ();
/***** Is it possible to register in multiple groups of this type? *****/ /***** Is it possible to register in multiple groups of this type? *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -2548,27 +2558,29 @@ static void Grp_PutFormToCreateGroupType (void)
if (Gbl.Crs.Grps.GrpTyp.MultipleEnrolment) if (Gbl.Crs.Grps.GrpTyp.MultipleEnrolment)
fprintf (Gbl.F.Out," selected=\"selected\""); fprintf (Gbl.F.Out," selected=\"selected\"");
fprintf (Gbl.F.Out,">%s</option>" fprintf (Gbl.F.Out,">%s</option>"
"</select>" "</select>",
"</td>",
Txt_A_student_can_belong_to_several_groups); Txt_A_student_can_belong_to_several_groups);
Tbl_EndCell ();
/***** Open time *****/ /***** Open time *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"); fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Tbl_StartTablePadding (2); Tbl_StartTablePadding (2);
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:20px;\">" fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:20px;\">"
"<img src=\"%s/clock.svg\"" "<img src=\"%s/clock.svg\""
" alt=\"%s\" title=\"%s\"" " alt=\"%s\" title=\"%s\""
" class=\"%sCONTEXT_ICO_16x16\" />" " class=\"%sCONTEXT_ICO_16x16\" />",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
Cfg_URL_ICON_PUBLIC, Cfg_URL_ICON_PUBLIC,
Gbl.Crs.Grps.GrpTyp.MustBeOpened ? Txt_The_groups_will_automatically_open : Gbl.Crs.Grps.GrpTyp.MustBeOpened ? Txt_The_groups_will_automatically_open :
Txt_The_groups_will_not_automatically_open, Txt_The_groups_will_not_automatically_open,
Gbl.Crs.Grps.GrpTyp.MustBeOpened ? Txt_The_groups_will_automatically_open : Gbl.Crs.Grps.GrpTyp.MustBeOpened ? Txt_The_groups_will_automatically_open :
Txt_The_groups_will_not_automatically_open, Txt_The_groups_will_not_automatically_open,
Gbl.Crs.Grps.GrpTyp.MustBeOpened ? "" : Gbl.Crs.Grps.GrpTyp.MustBeOpened ? "" :
"ICO_HIDDEN "); "ICO_HIDDEN ");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("open_time", Dat_WriteFormClientLocalDateTimeFromTimeUTC ("open_time",
"Open", "Open",
Gbl.Crs.Grps.GrpTyp.OpenTimeUTC, Gbl.Crs.Grps.GrpTyp.OpenTimeUTC,
@ -2578,14 +2590,16 @@ static void Grp_PutFormToCreateGroupType (void)
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second
false); // Don't submit on change false); // Don't submit on change
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
Tbl_EndTable (); Tbl_EndTable ();
Tbl_EndCell (); Tbl_EndCell ();
/***** Number of groups of this type *****/ /***** Number of groups of this type *****/
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"
"0" // It's a new group type ==> 0 groups "0"); // It's a new group type ==> 0 groups
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End table, send button and end box *****/ /***** End table, send button and end box *****/
@ -2625,7 +2639,8 @@ static void Grp_PutFormToCreateGroup (void)
/***** Empty column to remove *****/ /***** Empty column to remove *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"BM\"></td>"); fprintf (Gbl.F.Out,"<td class=\"BM\">");
Tbl_EndCell ();
/***** Disabled icon to open group *****/ /***** Disabled icon to open group *****/
fprintf (Gbl.F.Out,"<td class=\"BM\">"); fprintf (Gbl.F.Out,"<td class=\"BM\">");
@ -2657,16 +2672,16 @@ static void Grp_PutFormToCreateGroup (void)
} }
/* End selector */ /* End selector */
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
/***** Group name *****/ /***** Group name *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"GrpName\"" "<input type=\"text\" name=\"GrpName\""
" size=\"20\" maxlength=\"%u\" value=\"%s\"" " size=\"20\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Grp_MAX_CHARS_GROUP_NAME,Gbl.Crs.Grps.GrpName); Grp_MAX_CHARS_GROUP_NAME,Gbl.Crs.Grps.GrpName);
Tbl_EndCell ();
/***** Classroom *****/ /***** Classroom *****/
/* Start selector */ /* Start selector */
@ -2701,24 +2716,27 @@ static void Grp_PutFormToCreateGroup (void)
} }
/* End selector */ /* End selector */
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
/***** Current number of users in this group *****/ /***** Current number of users in this group *****/
for (Role = Rol_TCH; for (Role = Rol_TCH;
Role >= Rol_STD; Role >= Rol_STD;
Role--) Role--)
{
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"
"0" "0");
"</td>"); Tbl_EndCell ();
}
/***** Maximum number of students *****/ /***** Maximum number of students *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
"<input type=\"text\" name=\"MaxStudents\"" "<input type=\"text\" name=\"MaxStudents\""
" size=\"3\" maxlength=\"10\" value=\""); " size=\"3\" maxlength=\"10\" value=\"");
Grp_WriteMaxStds (Gbl.Crs.Grps.MaxStudents); Grp_WriteMaxStds (Gbl.Crs.Grps.MaxStudents);
fprintf (Gbl.F.Out,"\" />" fprintf (Gbl.F.Out,"\" />");
"</td>"); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** End table, send button and end box *****/ /***** End table, send button and end box *****/

View File

@ -274,9 +274,9 @@ static void Hlp_ShowRowHelpWhatWouldYouLikeToDo (const char *Description,
/***** Description *****/ /***** Description *****/
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"%s:" "%s:",
"</td>",
Description); Description);
Tbl_EndCell ();
/***** Button *****/ /***** Button *****/
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"); fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");

View File

@ -104,13 +104,16 @@ void Hie_WriteMenuHierarchy (void)
/***** Write a 1st selector /***** Write a 1st selector
with all the countries *****/ with all the countries *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"cty\" class=\"%s\">%s:</label>" "<label for=\"cty\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Country); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Country);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Cty_WriteSelectorOfCountry (); Cty_WriteSelectorOfCountry ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
if (Gbl.Hierarchy.Cty.CtyCod > 0) if (Gbl.Hierarchy.Cty.CtyCod > 0)
@ -118,13 +121,16 @@ void Hie_WriteMenuHierarchy (void)
/***** Write a 2nd selector /***** Write a 2nd selector
with the institutions of selected country *****/ with the institutions of selected country *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"ins\" class=\"%s\">%s:</label>" "<label for=\"ins\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Institution); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Institution);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Ins_WriteSelectorOfInstitution (); Ins_WriteSelectorOfInstitution ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
if (Gbl.Hierarchy.Ins.InsCod > 0) if (Gbl.Hierarchy.Ins.InsCod > 0)
@ -132,13 +138,16 @@ void Hie_WriteMenuHierarchy (void)
/***** Write a 3rd selector /***** Write a 3rd selector
with all the centres of selected institution *****/ with all the centres of selected institution *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"ctr\" class=\"%s\">%s:</label>" "<label for=\"ctr\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Centre); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Centre);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Ctr_WriteSelectorOfCentre (); Ctr_WriteSelectorOfCentre ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
if (Gbl.Hierarchy.Ctr.CtrCod > 0) if (Gbl.Hierarchy.Ctr.CtrCod > 0)
@ -146,13 +155,16 @@ void Hie_WriteMenuHierarchy (void)
/***** Write a 4th selector /***** Write a 4th selector
with all the degrees of selected centre *****/ with all the degrees of selected centre *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"deg\" class=\"%s\">%s:</label>" "<label for=\"deg\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Degree); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Degree);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Deg_WriteSelectorOfDegree (); Deg_WriteSelectorOfDegree ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
if (Gbl.Hierarchy.Deg.DegCod > 0) if (Gbl.Hierarchy.Deg.DegCod > 0)
@ -160,13 +172,16 @@ void Hie_WriteMenuHierarchy (void)
/***** Write a 5th selector /***** Write a 5th selector
with all the courses of selected degree *****/ with all the courses of selected degree *****/
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"crs\" class=\"%s\">%s:</label>" "<label for=\"crs\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Course); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Course);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Crs_WriteSelectorOfCourse (); Crs_WriteSelectorOfCourse ();
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
} }

View File

@ -150,16 +150,19 @@ void Hld_SeeHolidays (void)
{ {
/* Write data of this holiday */ /* Write data of this holiday */
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.Hlds.Lst[NumHld].PlcCod <= 0 ? Txt_All_places : Gbl.Hlds.Lst[NumHld].PlcCod <= 0 ? Txt_All_places :
Gbl.Hlds.Lst[NumHld].PlaceFullName); Gbl.Hlds.Lst[NumHld].PlaceFullName);
Tbl_EndCell ();
Dat_ConvDateToDateStr (&Gbl.Hlds.Lst[NumHld].StartDate,StrDate); Dat_ConvDateToDateStr (&Gbl.Hlds.Lst[NumHld].StartDate,StrDate);
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"&nbsp;%s" "&nbsp;%s",
"</td>",
StrDate); StrDate);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"&nbsp;"); "&nbsp;");
switch (Gbl.Hlds.Lst[NumHld].HldTyp) switch (Gbl.Hlds.Lst[NumHld].HldTyp)
@ -171,11 +174,13 @@ void Hld_SeeHolidays (void)
fprintf (Gbl.F.Out,"%s",StrDate); fprintf (Gbl.F.Out,"%s",StrDate);
break; break;
} }
fprintf (Gbl.F.Out,"</td>" Tbl_EndCell ();
"<td class=\"DAT LEFT_MIDDLE\">"
"&nbsp;%s" fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
"</td>", "&nbsp;%s",
Gbl.Hlds.Lst[NumHld].Name); Gbl.Hlds.Lst[NumHld].Name);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
Tbl_EndTable (); Tbl_EndTable ();
@ -572,9 +577,9 @@ static void Hld_ListHolidaysForEdition (void)
/* Holiday code */ /* Holiday code */
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
"%ld&nbsp;" "%ld&nbsp;",
"</td>",
Hld->HldCod); Hld->HldCod);
Tbl_EndCell ();
/* Holiday place */ /* Holiday place */
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
@ -1009,8 +1014,8 @@ static void Hld_PutFormToCreateHoliday (void)
Gbl.Plcs.Lst[NumPlc].PlcCod == Hld_EditingHld->PlcCod ? " selected=\"selected\"" : Gbl.Plcs.Lst[NumPlc].PlcCod == Hld_EditingHld->PlcCod ? " selected=\"selected\"" :
"", "",
Gbl.Plcs.Lst[NumPlc].ShrtName); Gbl.Plcs.Lst[NumPlc].ShrtName);
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
/***** Holiday type *****/ /***** Holiday type *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
@ -1023,8 +1028,8 @@ static void Hld_PutFormToCreateHoliday (void)
HolidayType == Hld_EditingHld->HldTyp ? " selected=\"selected\"" : HolidayType == Hld_EditingHld->HldTyp ? " selected=\"selected\"" :
"", "",
Txt_HOLIDAY_TYPES[HolidayType]); Txt_HOLIDAY_TYPES[HolidayType]);
fprintf (Gbl.F.Out,"</select>" fprintf (Gbl.F.Out,"</select>");
"</td>"); Tbl_EndCell ();
/***** Holiday date / Non school period start date *****/ /***** Holiday date / Non school period start date *****/
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"); fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
@ -1048,9 +1053,9 @@ static void Hld_PutFormToCreateHoliday (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=\"20\" maxlength=\"%u\" value=\"%s\"" " size=\"20\" maxlength=\"%u\" value=\"%s\""
" required=\"required\" />" " required=\"required\" />",
"</td>",
Hld_MAX_CHARS_HOLIDAY_NAME,Hld_EditingHld->Name); Hld_MAX_CHARS_HOLIDAY_NAME,Hld_EditingHld->Name);
Tbl_EndCell ();
Tbl_PutEmptyCells (1); Tbl_PutEmptyCells (1);

View File

@ -121,37 +121,46 @@ void Ind_ReqIndicatorsCourses (void)
/* Scope */ /* Scope */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"ScopeInd\" class=\"%s\">%s:</label>" "<label for=\"ScopeInd\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Scope); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Scope);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
Sco_PutSelectorScope ("ScopeInd",true); Sco_PutSelectorScope ("ScopeInd",true);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Compute stats for a type of degree */ /* Compute stats for a type of degree */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
"<label for=\"OthDegTypCod\" class=\"%s\">%s:</label>" "<label for=\"OthDegTypCod\" class=\"%s\">%s:</label>",
"</td>"
"<td class=\"DAT LEFT_MIDDLE\">",
The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Types_of_degree); The_ClassFormInBox[Gbl.Prefs.Theme],Txt_Types_of_degree);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
DT_WriteSelectorDegreeTypes (); DT_WriteSelectorDegreeTypes ();
fprintf (Gbl.F.Out," ("); fprintf (Gbl.F.Out," (");
fprintf (Gbl.F.Out,Txt_only_if_the_scope_is_X, fprintf (Gbl.F.Out,Txt_only_if_the_scope_is_X,
Cfg_PLATFORM_SHORT_NAME); Cfg_PLATFORM_SHORT_NAME);
fprintf (Gbl.F.Out,")</td>"); fprintf (Gbl.F.Out,")");
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* Compute stats for courses with teachers belonging to any department or to a particular departament? */ /* Compute stats for courses with teachers belonging to any department or to a particular departament? */
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 insitution Dpt_WriteSelectorDepartment (Gbl.Hierarchy.Ins.InsCod, // Departments in current insitution
Gbl.Stat.DptCod, // Selected department Gbl.Stat.DptCod, // Selected department
"INDICATORS_INPUT", // Selector class "INDICATORS_INPUT", // Selector class
@ -159,6 +168,7 @@ void Ind_ReqIndicatorsCourses (void)
Txt_Any_department, // Text when no department selected Txt_Any_department, // Text when no department selected
true); // Submit on change true); // Submit on change
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/***** Get courses from database *****/ /***** Get courses from database *****/
@ -174,14 +184,17 @@ void Ind_ReqIndicatorsCourses (void)
/* Selection of the number of indicators */ /* Selection of the number of indicators */
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP %s\">" fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP %s\">"
"%s:" "%s:",
"</td>"
"<td class=\"LEFT_TOP\">",
The_ClassFormInBox[Gbl.Prefs.Theme], The_ClassFormInBox[Gbl.Prefs.Theme],
Txt_No_of_indicators); Txt_No_of_indicators);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">");
Ind_ShowNumCoursesWithIndicators (NumCrssWithIndicatorYes,NumCrss,true); Ind_ShowNumCoursesWithIndicators (NumCrssWithIndicatorYes,NumCrss,true);
Tbl_EndCell (); Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
/* End table and form */ /* End table and form */
@ -651,6 +664,7 @@ static void Ind_ShowNumCoursesWithIndicators (unsigned NumCrssWithIndicatorYes[1
Class = Gbl.Stat.IndicatorsSelected[Ind] ? ClassHighlight : Class = Gbl.Stat.IndicatorsSelected[Ind] ? ClassHighlight :
ClassNormal; ClassNormal;
Tbl_StartRow (); Tbl_StartRow ();
if (PutForm) if (PutForm)
{ {
fprintf (Gbl.F.Out,"<td class=\"%s\">" fprintf (Gbl.F.Out,"<td class=\"%s\">"
@ -660,46 +674,54 @@ static void Ind_ShowNumCoursesWithIndicators (unsigned NumCrssWithIndicatorYes[1
Class,Ind,Ind); Class,Ind,Ind);
if (Gbl.Stat.IndicatorsSelected[Ind]) if (Gbl.Stat.IndicatorsSelected[Ind])
fprintf (Gbl.F.Out," checked=\"checked\""); fprintf (Gbl.F.Out," checked=\"checked\"");
fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\" />" fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\" />",
"</td>",
Gbl.Form.Id); Gbl.Form.Id);
Tbl_EndCell ();
} }
fprintf (Gbl.F.Out,"<td class=\"%s\">" fprintf (Gbl.F.Out,"<td class=\"%s\">"
"<label for=\"Indicators%u\">%u</label>" "<label for=\"Indicators%u\">%u</label>",
"</td>"
"<td class=\"%s\">"
"%u"
"</td>"
"<td class=\"%s\">"
"(%.1f%%)"
"</td>",
Class, Class,
Ind,Ind, Ind,Ind);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s\">"
"%u",
Class, Class,
NumCrssWithIndicatorYes[Ind], NumCrssWithIndicatorYes[Ind]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s\">"
"(%.1f%%)",
Class, Class,
NumCrss ? (float) NumCrssWithIndicatorYes[Ind] * 100.0 / (float) NumCrss : NumCrss ? (float) NumCrssWithIndicatorYes[Ind] * 100.0 / (float) NumCrss :
0.0); 0.0);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
} }
/***** Write total of courses *****/ /***** Write total of courses *****/
Tbl_StartRow (); Tbl_StartRow ();
if (PutForm) if (PutForm)
fprintf (Gbl.F.Out,"<td>" Tbl_PutEmptyCells (1);
"</td>");
fprintf (Gbl.F.Out,"<td class=\"DAT_N_LINE_TOP RIGHT_MIDDLE\">" fprintf (Gbl.F.Out,"<td class=\"DAT_N_LINE_TOP RIGHT_MIDDLE\">"
"%s" "%s",
"</td>" Txt_Total);
"<td class=\"DAT_N_LINE_TOP RIGHT_MIDDLE\">" Tbl_EndCell ();
"%u"
"</td>" fprintf (Gbl.F.Out,"<td class=\"DAT_N_LINE_TOP RIGHT_MIDDLE\">"
"<td class=\"DAT_N_LINE_TOP RIGHT_MIDDLE\">" "%u",
"(%.1f%%)" NumCrss);
"</td>", Tbl_EndCell ();
Txt_Total,
NumCrss, fprintf (Gbl.F.Out,"<td class=\"DAT_N_LINE_TOP RIGHT_MIDDLE\">"
"(%.1f%%)",
100.0); 100.0);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
Tbl_EndTable (); Tbl_EndTable ();
@ -1040,117 +1062,121 @@ static void Ind_ShowTableOfCoursesWithIndicators (Ind_IndicatorsLayout_t Indicat
{ {
case Ind_INDICATORS_BRIEF: case Ind_INDICATORS_BRIEF:
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">" fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s" "%s",
"</td>" Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
"<td class=\"%s LEFT_MIDDLE COLOR%u\">" (Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"%s" "DAT_SMALL_RED"),
"</td>" Gbl.RowEvenOdd,
"<td class=\"%s LEFT_MIDDLE COLOR%u\">" row[0]);
"%s" Tbl_EndCell ();
"</td>"
"<td class=\"DAT_SMALL LEFT_MIDDLE COLOR%u\">" fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[1]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[3]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT_SMALL LEFT_MIDDLE COLOR%u\">"
"<a href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\">" "<a href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\">"
"%s/?crs=%ld&amp;act=%ld" "%s/?crs=%ld&amp;act=%ld"
"</a>" "</a>",
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[0],
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[1],
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[3],
Gbl.RowEvenOdd,Cfg_URL_SWAD_CGI,CrsCod,ActCod, Gbl.RowEvenOdd,Cfg_URL_SWAD_CGI,CrsCod,ActCod,
Cfg_URL_SWAD_CGI,CrsCod,ActCod, Cfg_URL_SWAD_CGI,CrsCod,ActCod);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" : Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" : (Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Indicators.NumIndicators, Indicators.NumIndicators);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd, "DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsSyllabus ? Txt_YES : Indicators.ThereIsSyllabus ? Txt_YES :
"", "");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd, "DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsSyllabus ? "" : Indicators.ThereIsSyllabus ? "" :
Txt_NO, Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd, "DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereAreAssignments ? Txt_YES : Indicators.ThereAreAssignments ? Txt_YES :
"", "");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd, "DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereAreAssignments ? "" : Indicators.ThereAreAssignments ? "" :
Txt_NO, Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd, "DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsOnlineTutoring ? Txt_YES : Indicators.ThereIsOnlineTutoring ? Txt_YES :
"", "");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd, "DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsOnlineTutoring ? "" : Indicators.ThereIsOnlineTutoring ? "" :
Txt_NO, Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd, "DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereAreMaterials ? Txt_YES : Indicators.ThereAreMaterials ? Txt_YES :
"", "");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd, "DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereAreMaterials ? "" : Indicators.ThereAreMaterials ? "" :
Txt_NO, Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd, "DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsAssessment ? Txt_YES : Indicators.ThereIsAssessment ? Txt_YES :
"", "");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd, "DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsAssessment ? "" : Indicators.ThereIsAssessment ? "" :
Txt_NO); Txt_NO);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
break; break;
case Ind_INDICATORS_FULL: case Ind_INDICATORS_FULL:
@ -1160,224 +1186,241 @@ static void Ind_ShowTableOfCoursesWithIndicators (Ind_IndicatorsLayout_t Indicat
Usr_GetNumUsrsInCrs (Rol_TCH,CrsCod); // Teachers Usr_GetNumUsrsInCrs (Rol_TCH,CrsCod); // Teachers
Tbl_StartRow (); Tbl_StartRow ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">" fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s" "%s",
"</td>" Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
"<td class=\"%s LEFT_MIDDLE COLOR%u\">" (Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"%s" "DAT_SMALL_RED"),
"</td>" Gbl.RowEvenOdd,
"<td class=\"%s LEFT_MIDDLE COLOR%u\">" row[0]);
"%s" Tbl_EndCell ();
"</td>"
"<td class=\"DAT_SMALL LEFT_MIDDLE COLOR%u\">" fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[1]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[3]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"DAT_SMALL LEFT_MIDDLE COLOR%u\">"
"<a href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\">" "<a href=\"%s/?crs=%ld&amp;act=%ld\" target=\"_blank\">"
"%s/?crs=%ld&amp;act=%ld" "%s/?crs=%ld&amp;act=%ld"
"</a>" "</a>",
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu"
"</td>"
"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s"
"</td>"
"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s"
"</td>",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[0],
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[1],
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"),
Gbl.RowEvenOdd,
row[3],
Gbl.RowEvenOdd,Cfg_URL_SWAD_CGI,CrsCod,ActCod, Gbl.RowEvenOdd,Cfg_URL_SWAD_CGI,CrsCod,ActCod,
Cfg_URL_SWAD_CGI,CrsCod,ActCod, Cfg_URL_SWAD_CGI,CrsCod,ActCod);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
NumTchs != 0 ? "DAT_SMALL_GREEN" : NumTchs != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
NumTchs, NumTchs);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
NumStds != 0 ? "DAT_SMALL_GREEN" : NumStds != 0 ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
NumStds, NumStds);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
Indicators.CourseAllOK ? "DAT_SMALL_GREEN" : Indicators.CourseAllOK ? "DAT_SMALL_GREEN" :
(Indicators.CoursePartiallyOK ? "DAT_SMALL" : (Indicators.CoursePartiallyOK ? "DAT_SMALL" :
"DAT_SMALL_RED"), "DAT_SMALL_RED"),
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Indicators.NumIndicators, Indicators.NumIndicators);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd, "DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsSyllabus ? Txt_YES : Indicators.ThereIsSyllabus ? Txt_YES :
"", "");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd, "DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsSyllabus ? "" : Indicators.ThereIsSyllabus ? "" :
Txt_NO, Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
(Indicators.SyllabusLecSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" : (Indicators.SyllabusLecSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Txt_INFO_SRC_SHORT_TEXT[Indicators.SyllabusLecSrc], Txt_INFO_SRC_SHORT_TEXT[Indicators.SyllabusLecSrc]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
(Indicators.SyllabusPraSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" : (Indicators.SyllabusPraSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Txt_INFO_SRC_SHORT_TEXT[Indicators.SyllabusPraSrc], Txt_INFO_SRC_SHORT_TEXT[Indicators.SyllabusPraSrc]);
(Indicators.TeachingGuideSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" : Tbl_EndCell ();
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Txt_INFO_SRC_SHORT_TEXT[Indicators.TeachingGuideSrc],
"DAT_SMALL_GREEN",Gbl.RowEvenOdd, fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
Indicators.ThereAreAssignments ? Txt_YES : "%s",
"",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereAreAssignments ? "" :
Txt_NO,
(Indicators.NumAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumAssignments,
(Indicators.NumFilesAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesAssignments,
(Indicators.NumFilesWorks != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesWorks,
"DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsOnlineTutoring ? Txt_YES :
"",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsOnlineTutoring ? "" :
Txt_NO,
(Indicators.NumThreads != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumThreads,
(Indicators.NumPosts != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumPosts,
(Indicators.NumMsgsSentByTchs != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumMsgsSentByTchs,
"DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereAreMaterials ? Txt_YES :
"",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereAreMaterials ? "" :
Txt_NO,
(Indicators.NumFilesInDocumentZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesInDocumentZones,
(Indicators.NumFilesInSharedZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesInSharedZones,
"DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsAssessment ? Txt_YES :
"",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsAssessment ? "" :
Txt_NO,
(Indicators.AssessmentSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Txt_INFO_SRC_SHORT_TEXT[Indicators.AssessmentSrc],
(Indicators.TeachingGuideSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" : (Indicators.TeachingGuideSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED", "DAT_SMALL_RED",
Gbl.RowEvenOdd, Gbl.RowEvenOdd,
Txt_INFO_SRC_SHORT_TEXT[Indicators.TeachingGuideSrc]); Txt_INFO_SRC_SHORT_TEXT[Indicators.TeachingGuideSrc]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereAreAssignments ? Txt_YES :
"");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereAreAssignments ? "" :
Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
(Indicators.NumAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumAssignments);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu",
(Indicators.NumFilesAssignments != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesAssignments);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu",
(Indicators.NumFilesWorks != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesWorks);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsOnlineTutoring ? Txt_YES :
"");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsOnlineTutoring ? "" :
Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
(Indicators.NumThreads != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumThreads);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
(Indicators.NumPosts != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumPosts);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%u",
(Indicators.NumMsgsSentByTchs != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumMsgsSentByTchs);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereAreMaterials ? Txt_YES :
"");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereAreMaterials ? "" :
Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu",
(Indicators.NumFilesInDocumentZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesInDocumentZones);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE COLOR%u\">"
"%lu",
(Indicators.NumFilesInSharedZones != 0) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Indicators.NumFilesInSharedZones);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_GREEN",Gbl.RowEvenOdd,
Indicators.ThereIsAssessment ? Txt_YES :
"");
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE COLOR%u\">"
"%s",
"DAT_SMALL_RED",Gbl.RowEvenOdd,
Indicators.ThereIsAssessment ? "" :
Txt_NO);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
(Indicators.AssessmentSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Txt_INFO_SRC_SHORT_TEXT[Indicators.AssessmentSrc]);
Tbl_EndCell ();
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE COLOR%u\">"
"%s",
(Indicators.TeachingGuideSrc != Inf_INFO_SRC_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMALL_RED",
Gbl.RowEvenOdd,
Txt_INFO_SRC_SHORT_TEXT[Indicators.TeachingGuideSrc]);
Tbl_EndCell ();
Tbl_EndRow (); Tbl_EndRow ();
break; break;
} }