mirror of https://github.com/acanas/swad-core.git
Version19.31.10
This commit is contained in:
parent
a8d8cadda6
commit
da3b69116f
|
@ -487,12 +487,13 @@ 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.9 (2019-10-06)"
|
#define Log_PLATFORM_VERSION "SWAD 19.31.10 (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"
|
||||||
/*
|
/*
|
||||||
// TODO: Perico: poner un candado de bloqueo de creación/edición de proyectos (por ejemplo en asignaturas obsoletas)
|
// TODO: Perico: poner un candado de bloqueo de creación/edición de proyectos (por ejemplo en asignaturas obsoletas)
|
||||||
|
|
||||||
|
Version 19.31.10: Oct 07, 2019 Code refactoring in HTML tables. (247106 lines)
|
||||||
Version 19.31.9: Oct 06, 2019 Code refactoring in HTML tables. (247097 lines)
|
Version 19.31.9: Oct 06, 2019 Code refactoring in HTML tables. (247097 lines)
|
||||||
Version 19.31.8: Oct 05, 2019 Code refactoring in HTML tables. (247089 lines)
|
Version 19.31.8: Oct 05, 2019 Code refactoring in HTML tables. (247089 lines)
|
||||||
Version 19.31.7: Oct 05, 2019 Code refactoring in HTML tables. (247076 lines)
|
Version 19.31.7: Oct 05, 2019 Code refactoring in HTML tables. (247076 lines)
|
||||||
|
|
365
swad_country.c
365
swad_country.c
|
@ -197,7 +197,7 @@ void Cty_SeeCtyWithPendingInss (void)
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
"%s",
|
"%s",
|
||||||
BgColor,row[1]);
|
BgColor,row[1]);
|
||||||
Tbl_EndRow ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||||
|
@ -327,12 +327,14 @@ static void Cty_Configuration (bool PrintView)
|
||||||
|
|
||||||
/***** Country name (an link to WWW if exists) *****/
|
/***** Country name (an link to WWW if exists) *****/
|
||||||
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_N LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Country);
|
Txt_Country);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT_N LEFT_MIDDLE\">");
|
||||||
if (!PrintView && Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language][0])
|
if (!PrintView && Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language][0])
|
||||||
fprintf (Gbl.F.Out,"<a href=\"%s\" target=\"_blank\" class=\"DAT_N\">",
|
fprintf (Gbl.F.Out,"<a href=\"%s\" target=\"_blank\" class=\"DAT_N\">",
|
||||||
Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]);
|
Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]);
|
||||||
|
@ -340,66 +342,77 @@ static void Cty_Configuration (bool PrintView)
|
||||||
if (!PrintView && Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language][0])
|
if (!PrintView && Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language][0])
|
||||||
fprintf (Gbl.F.Out,"</a>");
|
fprintf (Gbl.F.Out,"</a>");
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Link to the country inside platform *****/
|
/***** Link to the country inside platform *****/
|
||||||
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\">"
|
|
||||||
"<a href=\"%s/%s?cty=%ld\" class=\"DAT\" target=\"_blank\">"
|
|
||||||
"%s/%s?cty=%ld</a>"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Shortcut,
|
Txt_Shortcut);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"<a href=\"%s/%s?cty=%ld\" class=\"DAT\" target=\"_blank\">"
|
||||||
|
"%s/%s?cty=%ld</a>",
|
||||||
Cfg_URL_SWAD_CGI,
|
Cfg_URL_SWAD_CGI,
|
||||||
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
||||||
Gbl.Hierarchy.Cty.CtyCod,
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
Cfg_URL_SWAD_CGI,
|
Cfg_URL_SWAD_CGI,
|
||||||
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
||||||
Gbl.Hierarchy.Cty.CtyCod);
|
Gbl.Hierarchy.Cty.CtyCod);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
if (PrintView)
|
if (PrintView)
|
||||||
{
|
{
|
||||||
/***** QR code with link to the country *****/
|
/***** QR code with link to the country *****/
|
||||||
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],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_QR_code);
|
Txt_QR_code);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
QR_LinkTo (250,"cty",Gbl.Hierarchy.Cty.CtyCod);
|
QR_LinkTo (250,"cty",Gbl.Hierarchy.Cty.CtyCod);
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/***** Number of users who claim to belong to this country *****/
|
/***** Number of users who claim to belong to this country *****/
|
||||||
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\">"
|
|
||||||
"%u"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Users_of_the_country,
|
Txt_Users_of_the_country);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%u",
|
||||||
Usr_GetNumUsrsWhoClaimToBelongToCty (Gbl.Hierarchy.Cty.CtyCod));
|
Usr_GetNumUsrsWhoClaimToBelongToCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Number of institutions *****/
|
/***** Number of institutions *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
||||||
"%s:"
|
"%s:",
|
||||||
"</td>"
|
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Institutions);
|
Txt_Institutions);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Form to go to see institutions of this country */
|
/* Form to go to see institutions of this country */
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||||
Frm_StartFormGoTo (ActSeeIns);
|
Frm_StartFormGoTo (ActSeeIns);
|
||||||
Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod);
|
Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod);
|
||||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
|
@ -409,47 +422,56 @@ static void Cty_Configuration (bool PrintView)
|
||||||
fprintf (Gbl.F.Out,"%u</a>",
|
fprintf (Gbl.F.Out,"%u</a>",
|
||||||
Ins_GetNumInssInCty (Gbl.Hierarchy.Cty.CtyCod));
|
Ins_GetNumInssInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Number of centres *****/
|
/***** Number of centres *****/
|
||||||
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\">"
|
|
||||||
"%u"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Centres,
|
Txt_Centres);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%u",
|
||||||
Ctr_GetNumCtrsInCty (Gbl.Hierarchy.Cty.CtyCod));
|
Ctr_GetNumCtrsInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Number of degrees *****/
|
/***** Number of degrees *****/
|
||||||
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\">"
|
|
||||||
"%u"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Degrees,
|
Txt_Degrees);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%u",
|
||||||
Deg_GetNumDegsInCty (Gbl.Hierarchy.Cty.CtyCod));
|
Deg_GetNumDegsInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Number of courses *****/
|
/***** Number of courses *****/
|
||||||
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\">"
|
|
||||||
"%u"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Courses,
|
Txt_Courses);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%u",
|
||||||
Crs_GetNumCrssInCty (Gbl.Hierarchy.Cty.CtyCod));
|
Crs_GetNumCrssInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Number of users in courses of this country *****/
|
/***** Number of users in courses of this country *****/
|
||||||
|
@ -486,16 +508,19 @@ static void Cty_ShowNumUsrsInCrssOfCty (Rol_Role_t Role)
|
||||||
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||||
|
|
||||||
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\">"
|
|
||||||
"%u"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
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 ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%u",
|
||||||
Usr_GetNumUsrsInCrssOfCty (Role,Gbl.Hierarchy.Cty.CtyCod));
|
Usr_GetNumUsrsInCrssOfCty (Role,Gbl.Hierarchy.Cty.CtyCod));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -549,75 +574,93 @@ void Cty_ListCountries2 (void)
|
||||||
/***** Separation row *****/
|
/***** Separation row *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td colspan=\"8\" class=\"DAT CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td colspan=\"8\" class=\"DAT CENTER_MIDDLE\">"
|
||||||
" "
|
" ");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Write users and institutions in other countries *****/
|
/***** Write users and institutions in other countries *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%s",
|
||||||
|
Txt_Other_countries);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"</td>"
|
"%u",
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">"
|
Cty_GetNumUsrsWhoClaimToBelongToCty (0));
|
||||||
"%s"
|
Tbl_EndCell ();
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>"
|
Ins_GetNumInssInCty (0));
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
Tbl_EndCell ();
|
||||||
"%u"
|
|
||||||
"</td>"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
"%u",
|
||||||
"%u"
|
Ctr_GetNumCtrsInCty (0));
|
||||||
"</td>"
|
Tbl_EndCell ();
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
|
||||||
"%u"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"</td>"
|
"%u",
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
Deg_GetNumDegsInCty (0));
|
||||||
"%u"
|
Tbl_EndCell ();
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
Crs_GetNumCrssInCty (0));
|
||||||
Txt_Other_countries,
|
Tbl_EndCell ();
|
||||||
Cty_GetNumUsrsWhoClaimToBelongToCty (0),
|
|
||||||
Ins_GetNumInssInCty (0),
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
Ctr_GetNumCtrsInCty (0),
|
"%u",
|
||||||
Deg_GetNumDegsInCty (0),
|
|
||||||
Crs_GetNumCrssInCty (0),
|
|
||||||
Usr_GetNumUsrsInCrssOfCty (Rol_TCH,0));
|
Usr_GetNumUsrsInCrssOfCty (Rol_TCH,0));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Write users and institutions with unknown country *****/
|
/***** Write users and institutions with unknown country *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%s",
|
||||||
|
Txt_Country_unspecified);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"</td>"
|
"%u",
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">"
|
Cty_GetNumUsrsWhoClaimToBelongToCty (-1L));
|
||||||
"%s"
|
Tbl_EndCell ();
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>"
|
Ins_GetNumInssInCty (-1L));
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
Tbl_EndCell ();
|
||||||
"%u"
|
|
||||||
"</td>"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
"%u",
|
||||||
"%u"
|
Ctr_GetNumCtrsInCty (-1L));
|
||||||
"</td>"
|
Tbl_EndCell ();
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
|
||||||
"%u"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"</td>"
|
"%u",
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
Deg_GetNumDegsInCty (-1L));
|
||||||
"%u"
|
Tbl_EndCell ();
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"0"
|
"%u",
|
||||||
"</td>",
|
|
||||||
Txt_Country_unspecified,
|
|
||||||
Cty_GetNumUsrsWhoClaimToBelongToCty (-1L),
|
|
||||||
Ins_GetNumInssInCty (-1L),
|
|
||||||
Ctr_GetNumCtrsInCty (-1L),
|
|
||||||
Deg_GetNumDegsInCty (-1L),
|
|
||||||
Crs_GetNumCrssInCty (-1L));
|
Crs_GetNumCrssInCty (-1L));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
|
"0");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** End table and box *****/
|
/***** End table and box *****/
|
||||||
|
@ -651,6 +694,7 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable)
|
||||||
Cty_Order_t Order;
|
Cty_Order_t Order;
|
||||||
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<th></th>");
|
fprintf (Gbl.F.Out,"<th></th>");
|
||||||
for (Order = Cty_ORDER_BY_COUNTRY;
|
for (Order = Cty_ORDER_BY_COUNTRY;
|
||||||
Order <= Cty_ORDER_BY_NUM_USRS;
|
Order <= Cty_ORDER_BY_NUM_USRS;
|
||||||
|
@ -698,6 +742,7 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable)
|
||||||
Txt_Courses_ABBREVIATION,
|
Txt_Courses_ABBREVIATION,
|
||||||
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],
|
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_TCH],
|
||||||
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
|
Txt_ROLES_PLURAL_BRIEF_Abc[Rol_STD]);
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -712,12 +757,13 @@ static void Cty_ListOneCountryForSeeing (struct Country *Cty,unsigned NumCty)
|
||||||
BgColor = (Cty->CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? "LIGHT_BLUE" :
|
BgColor = (Cty->CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? "LIGHT_BLUE" :
|
||||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||||
|
|
||||||
/***** Number of country in this list *****/
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
/***** Number of country in this list *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
BgColor,NumCty);
|
BgColor,NumCty);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Country map (and link to WWW if exists) *****/
|
/***** Country map (and link to WWW if exists) *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",BgColor);
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",BgColor);
|
||||||
|
@ -729,29 +775,35 @@ static void Cty_ListOneCountryForSeeing (struct Country *Cty,unsigned NumCty)
|
||||||
|
|
||||||
/* Write stats of this country */
|
/* Write stats of this country */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>"
|
BgColor,Cty->NumUsrsWhoClaimToBelongToCty);
|
||||||
"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
Tbl_EndCell ();
|
||||||
"%u"
|
|
||||||
"</td>"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
"%u",
|
||||||
"%u"
|
BgColor,Cty->Inss.Num);
|
||||||
"</td>"
|
Tbl_EndCell ();
|
||||||
"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
|
||||||
"%u"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
"</td>"
|
"%u",
|
||||||
"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
BgColor,Cty->NumCtrs);
|
||||||
"%u"
|
Tbl_EndCell ();
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
BgColor,Cty->NumDegs);
|
||||||
BgColor,Cty->NumUsrsWhoClaimToBelongToCty,
|
Tbl_EndCell ();
|
||||||
BgColor,Cty->Inss.Num,
|
|
||||||
BgColor,Cty->NumCtrs,
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
BgColor,Cty->NumDegs,
|
"%u",
|
||||||
BgColor,Cty->NumCrss,
|
BgColor,Cty->NumCrss);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
|
"%u",
|
||||||
BgColor,Cty->NumUsrs);
|
BgColor,Cty->NumUsrs);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||||
|
@ -1631,29 +1683,29 @@ static void Cty_ListCountriesForEdition (void)
|
||||||
|
|
||||||
/* Numerical country code (ISO 3166-1) */
|
/* Numerical country code (ISO 3166-1) */
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
||||||
"%03ld"
|
"%03ld",
|
||||||
"</td>",
|
|
||||||
1 + Lan_NUM_LANGUAGES,Cty->CtyCod);
|
1 + Lan_NUM_LANGUAGES,Cty->CtyCod);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Alphabetic country code with 2 letters (ISO 3166-1) */
|
/* Alphabetic country code with 2 letters (ISO 3166-1) */
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
1 + Lan_NUM_LANGUAGES,Cty->Alpha2);
|
1 + Lan_NUM_LANGUAGES,Cty->Alpha2);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_PutEmptyCells (3);
|
Tbl_PutEmptyCells (3);
|
||||||
|
|
||||||
/* Number of users */
|
/* Number of users */
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
1 + Lan_NUM_LANGUAGES,Cty->NumUsrsWhoClaimToBelongToCty);
|
1 + Lan_NUM_LANGUAGES,Cty->NumUsrsWhoClaimToBelongToCty);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Number of institutions */
|
/* Number of institutions */
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
1 + Lan_NUM_LANGUAGES,Cty->Inss.Num);
|
1 + Lan_NUM_LANGUAGES,Cty->Inss.Num);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
@ -1666,9 +1718,9 @@ static void Cty_ListCountriesForEdition (void)
|
||||||
|
|
||||||
/* Language */
|
/* Language */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%s:"
|
"%s:",
|
||||||
"</td>",
|
|
||||||
Txt_STR_LANG_NAME[Lan]);
|
Txt_STR_LANG_NAME[Lan]);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Name */
|
/* Name */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">");
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">");
|
||||||
|
@ -2054,8 +2106,9 @@ static void Cty_PutFormToCreateCountry (void)
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
/***** Column to remove country, disabled here *****/
|
/***** Column to remove country, disabled here *****/
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"BT\"></td>",
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"BT\">",
|
||||||
1 + Lan_NUM_LANGUAGES);
|
1 + Lan_NUM_LANGUAGES);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Numerical country code (ISO 3166-1) *****/
|
/***** Numerical country code (ISO 3166-1) *****/
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"RIGHT_TOP\">"
|
||||||
|
@ -2064,30 +2117,30 @@ static void Cty_PutFormToCreateCountry (void)
|
||||||
1 + Lan_NUM_LANGUAGES);
|
1 + Lan_NUM_LANGUAGES);
|
||||||
if (Cty_EditingCty->CtyCod > 0)
|
if (Cty_EditingCty->CtyCod > 0)
|
||||||
fprintf (Gbl.F.Out,"%03ld",Cty_EditingCty->CtyCod);
|
fprintf (Gbl.F.Out,"%03ld",Cty_EditingCty->CtyCod);
|
||||||
fprintf (Gbl.F.Out,"\" required=\"required\" />"
|
fprintf (Gbl.F.Out,"\" required=\"required\" />");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Alphabetic country code with 2 letters (ISO 3166-1) *****/
|
/***** Alphabetic country code with 2 letters (ISO 3166-1) *****/
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"RIGHT_TOP\">"
|
||||||
"<input type=\"text\" name=\"Alpha2\""
|
"<input type=\"text\" name=\"Alpha2\""
|
||||||
" size=\"2\" maxlength=\"2\" value=\"%s\""
|
" size=\"2\" maxlength=\"2\" value=\"%s\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
1 + Lan_NUM_LANGUAGES,Cty_EditingCty->Alpha2);
|
1 + Lan_NUM_LANGUAGES,Cty_EditingCty->Alpha2);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_PutEmptyCells (3);
|
Tbl_PutEmptyCells (3);
|
||||||
|
|
||||||
/***** Number of users *****/
|
/***** Number of users *****/
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
||||||
"0"
|
"0",
|
||||||
"</td>",
|
|
||||||
1 + Lan_NUM_LANGUAGES);
|
1 + Lan_NUM_LANGUAGES);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Number of institutions *****/
|
/***** Number of institutions *****/
|
||||||
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td rowspan=\"%u\" class=\"DAT RIGHT_TOP\">"
|
||||||
"0"
|
"0",
|
||||||
"</td>",
|
|
||||||
1 + Lan_NUM_LANGUAGES);
|
1 + Lan_NUM_LANGUAGES);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
@ -2100,29 +2153,29 @@ static void Cty_PutFormToCreateCountry (void)
|
||||||
|
|
||||||
/* Language */
|
/* Language */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_TOP\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_TOP\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
Txt_STR_LANG_NAME[Lan]);
|
Txt_STR_LANG_NAME[Lan]);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Name */
|
/* Name */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<input type=\"text\" name=\"Name_%s\""
|
"<input type=\"text\" name=\"Name_%s\""
|
||||||
" size=\"15\" maxlength=\"%u\" value=\"%s\""
|
" size=\"15\" maxlength=\"%u\" value=\"%s\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
Lan_STR_LANG_ID[Lan],
|
Lan_STR_LANG_ID[Lan],
|
||||||
Cty_MAX_CHARS_NAME,
|
Cty_MAX_CHARS_NAME,
|
||||||
Cty_EditingCty->Name[Lan]);
|
Cty_EditingCty->Name[Lan]);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* WWW */
|
/* WWW */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<input type=\"url\" name=\"WWW_%s\""
|
"<input type=\"url\" name=\"WWW_%s\""
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_WWW\" />"
|
" class=\"INPUT_WWW\" />",
|
||||||
"</td>",
|
|
||||||
Lan_STR_LANG_ID[Lan],
|
Lan_STR_LANG_ID[Lan],
|
||||||
Cns_MAX_CHARS_WWW,
|
Cns_MAX_CHARS_WWW,
|
||||||
Cty_EditingCty->WWW[Lan]);
|
Cty_EditingCty->WWW[Lan]);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
@ -2148,6 +2201,7 @@ static void Cty_PutHeadCountriesForEdition (void)
|
||||||
extern const char *Txt_Institutions_ABBREVIATION;
|
extern const char *Txt_Institutions_ABBREVIATION;
|
||||||
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<th class=\"BM\"></th>"
|
fprintf (Gbl.F.Out,"<th class=\"BM\"></th>"
|
||||||
"<th class=\"RIGHT_MIDDLE\">"
|
"<th class=\"RIGHT_MIDDLE\">"
|
||||||
"%s"
|
"%s"
|
||||||
|
@ -2174,6 +2228,7 @@ static void Cty_PutHeadCountriesForEdition (void)
|
||||||
Txt_WWW,
|
Txt_WWW,
|
||||||
Txt_Users,
|
Txt_Users,
|
||||||
Txt_Institutions_ABBREVIATION);
|
Txt_Institutions_ABBREVIATION);
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
202
swad_course.c
202
swad_course.c
|
@ -239,12 +239,14 @@ static void Crs_Configuration (bool PrintView)
|
||||||
|
|
||||||
/***** Degree *****/
|
/***** Degree *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"OthDegCod\" class=\"%s\">%s:</label>"
|
"<label for=\"OthDegCod\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Degree);
|
Txt_Degree);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
|
|
||||||
if (!PrintView &&
|
if (!PrintView &&
|
||||||
Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)
|
Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM)
|
||||||
|
@ -277,16 +279,19 @@ static void Crs_Configuration (bool PrintView)
|
||||||
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Deg.FullName);
|
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Deg.FullName);
|
||||||
|
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Course full name *****/
|
/***** Course full name *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"FullName\" class=\"%s\">%s:</label>"
|
"<label for=\"FullName\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT_N LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Course);
|
Txt_Course);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT_N 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 and system admins can edit course full name
|
// Only degree admins, centre admins, institution admins and system admins can edit course full name
|
||||||
|
@ -306,16 +311,21 @@ static void Crs_Configuration (bool PrintView)
|
||||||
else // I can not edit course full name
|
else // I can not edit course full name
|
||||||
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Crs.FullName);
|
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Crs.FullName);
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Course short name *****/
|
/***** Course short name *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"ShortName\" class=\"%s\">%s:</label>"
|
"<label for=\"ShortName\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT_N LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Short_name);
|
Txt_Short_name);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT_N 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 and system admins can edit course short name
|
// Only degree admins, centre admins, institution admins and system admins can edit course short name
|
||||||
|
@ -340,12 +350,14 @@ static void Crs_Configuration (bool PrintView)
|
||||||
/***** Course year *****/
|
/***** Course year *****/
|
||||||
IsForm = (!PrintView && Gbl.Usrs.Me.Role.Logged >= Rol_TCH);
|
IsForm = (!PrintView && Gbl.Usrs.Me.Role.Logged >= Rol_TCH);
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"OthCrsYear\" class=\"%s\">%s:</label>"
|
"<label for=\"OthCrsYear\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Year_OF_A_DEGREE);
|
Txt_Year_OF_A_DEGREE);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
if (IsForm)
|
if (IsForm)
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActChgCrsYeaCfg);
|
Frm_StartForm (ActChgCrsYeaCfg);
|
||||||
|
@ -374,12 +386,14 @@ static void Crs_Configuration (bool PrintView)
|
||||||
{
|
{
|
||||||
/***** Institutional code of the course *****/
|
/***** Institutional code of the course *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"InsCrsCod\" class=\"%s\">%s:</label>"
|
"<label for=\"InsCrsCod\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Institutional_code);
|
Txt_Institutional_code);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
if (IsForm)
|
if (IsForm)
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActChgInsCrsCodCfg);
|
Frm_StartForm (ActChgInsCrsCodCfg);
|
||||||
|
@ -400,29 +414,33 @@ static void Crs_Configuration (bool PrintView)
|
||||||
|
|
||||||
/***** Internal code of the course *****/
|
/***** Internal code of the course *****/
|
||||||
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\">"
|
|
||||||
"%ld"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Internal_code,
|
Txt_Internal_code);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Link to the course *****/
|
/***** Link to the course *****/
|
||||||
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\">"
|
|
||||||
"<a href=\"%s/%s?crs=%ld\" class=\"DAT\" target=\"_blank\">"
|
|
||||||
"%s/%s?crs=%ld</a>"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Shortcut,
|
Txt_Shortcut);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"<a href=\"%s/%s?crs=%ld\" class=\"DAT\" target=\"_blank\">"
|
||||||
|
"%s/%s?crs=%ld</a>",
|
||||||
Cfg_URL_SWAD_CGI,
|
Cfg_URL_SWAD_CGI,
|
||||||
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
|
@ -431,18 +449,23 @@ static void Crs_Configuration (bool PrintView)
|
||||||
Gbl.Hierarchy.Crs.CrsCod);
|
Gbl.Hierarchy.Crs.CrsCod);
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
if (PrintView)
|
if (PrintView)
|
||||||
{
|
{
|
||||||
/***** QR code with link to the course *****/
|
/***** QR code with link to the course *****/
|
||||||
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],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_QR_code);
|
Txt_QR_code);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
QR_LinkTo (250,"crs",Gbl.Hierarchy.Crs.CrsCod);
|
QR_LinkTo (250,"crs",Gbl.Hierarchy.Crs.CrsCod);
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -457,12 +480,14 @@ static void Crs_Configuration (bool PrintView)
|
||||||
Ind_ComputeAndStoreIndicatorsCrs (Gbl.Hierarchy.Crs.CrsCod,
|
Ind_ComputeAndStoreIndicatorsCrs (Gbl.Hierarchy.Crs.CrsCod,
|
||||||
NumIndicatorsFromDB,&Indicators);
|
NumIndicatorsFromDB,&Indicators);
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
||||||
"%s:"
|
"%s:",
|
||||||
"</td>"
|
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Indicators);
|
Txt_Indicators);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||||
Frm_StartForm (ActReqStaCrs);
|
Frm_StartForm (ActReqStaCrs);
|
||||||
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
snprintf (Gbl.Title,sizeof (Gbl.Title),
|
||||||
"%u %s %u",
|
"%u %s %u",
|
||||||
|
@ -508,16 +533,19 @@ static void Crs_ShowNumUsrsInCrs (Rol_Role_t Role)
|
||||||
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||||
|
|
||||||
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\">"
|
|
||||||
"%u"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN],
|
Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN]);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%u",
|
||||||
Gbl.Hierarchy.Crs.NumUsrs[Role]);
|
Gbl.Hierarchy.Crs.NumUsrs[Role]);
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1272,30 +1300,31 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
||||||
BgColor = (Usr_CheckIfIBelongToCrs (Crs->CrsCod)) ? "LIGHT_BLUE" :
|
BgColor = (Usr_CheckIfIBelongToCrs (Crs->CrsCod)) ? "LIGHT_BLUE" :
|
||||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||||
|
|
||||||
/* Put green tip if course has users */
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
/* Put green tip if course has users */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\" title=\"%s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\" title=\"%s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,
|
TxtClassNormal,BgColor,
|
||||||
Crs->NumUsrs[Rol_UNK] ? Txt_COURSE_With_users :
|
Crs->NumUsrs[Rol_UNK] ? Txt_COURSE_With_users :
|
||||||
Txt_COURSE_Without_users,
|
Txt_COURSE_Without_users,
|
||||||
Crs->NumUsrs[Rol_UNK] ? "✓" :
|
Crs->NumUsrs[Rol_UNK] ? "✓" :
|
||||||
" ");
|
" ");
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Institutional code of the course */
|
/* Institutional code of the course */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,
|
TxtClassNormal,BgColor,
|
||||||
Crs->InstitutionalCrsCod);
|
Crs->InstitutionalCrsCod);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Course year */
|
/* Course year */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,
|
TxtClassNormal,BgColor,
|
||||||
Txt_YEAR_OF_DEGREE[Crs->Year]);
|
Txt_YEAR_OF_DEGREE[Crs->Year]);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Course full name */
|
/* Course full name */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE %s\">",
|
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE %s\">",
|
||||||
|
@ -1313,18 +1342,18 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
||||||
|
|
||||||
/* Current number of teachers in this course */
|
/* Current number of teachers in this course */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,
|
TxtClassNormal,BgColor,
|
||||||
Crs->NumUsrs[Rol_TCH] +
|
Crs->NumUsrs[Rol_TCH] +
|
||||||
Crs->NumUsrs[Rol_NET]);
|
Crs->NumUsrs[Rol_NET]);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Current number of students in this course */
|
/* Current number of students in this course */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,
|
TxtClassNormal,BgColor,
|
||||||
Crs->NumUsrs[Rol_STD]);
|
Crs->NumUsrs[Rol_STD]);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Course status */
|
/* Course status */
|
||||||
StatusTxt = Crs_GetStatusTxtFromStatusBits (Crs->Status);
|
StatusTxt = Crs_GetStatusTxtFromStatusBits (Crs->Status);
|
||||||
|
@ -1489,9 +1518,9 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
||||||
|
|
||||||
/* Course code */
|
/* Course code */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT CODE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT CODE\">"
|
||||||
"%ld"
|
"%ld",
|
||||||
"</td>",
|
|
||||||
Crs->CrsCod);
|
Crs->CrsCod);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Institutional code of the course */
|
/* Institutional code of the course */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">");
|
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">");
|
||||||
|
@ -1575,16 +1604,16 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
||||||
|
|
||||||
/* Current number of teachers in this course */
|
/* Current number of teachers in this course */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
Crs->NumUsrs[Rol_TCH] +
|
Crs->NumUsrs[Rol_TCH] +
|
||||||
Crs->NumUsrs[Rol_NET]);
|
Crs->NumUsrs[Rol_NET]);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Current number of students in this course */
|
/* Current number of students in this course */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
Crs->NumUsrs[Rol_STD]);
|
Crs->NumUsrs[Rol_STD]);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/* Course requester */
|
/* Course requester */
|
||||||
UsrDat.UsrCod = Crs->RequesterUsrCod;
|
UsrDat.UsrCod = Crs->RequesterUsrCod;
|
||||||
|
@ -1703,21 +1732,24 @@ static void Crs_PutFormToCreateCourse (void)
|
||||||
/***** Write heading *****/
|
/***** Write heading *****/
|
||||||
Crs_PutHeadCoursesForEdition ();
|
Crs_PutHeadCoursesForEdition ();
|
||||||
|
|
||||||
/***** Column to remove course, disabled here *****/
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td class=\"BM\"></td>");
|
|
||||||
|
/***** Column to remove course, disabled here *****/
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"BM\">");
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Course code *****/
|
/***** Course code *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CODE\"></td>");
|
fprintf (Gbl.F.Out,"<td class=\"CODE\">");
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Institutional code of the course *****/
|
/***** Institutional code of the course *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
"<input type=\"text\" name=\"InsCrsCod\""
|
"<input type=\"text\" name=\"InsCrsCod\""
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_INS_CODE\" />"
|
" class=\"INPUT_INS_CODE\" />",
|
||||||
"</td>",
|
|
||||||
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
|
Crs_MAX_CHARS_INSTITUTIONAL_CRS_COD,
|
||||||
Crs_EditingCrs->InstitutionalCrsCod);
|
Crs_EditingCrs->InstitutionalCrsCod);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Year *****/
|
/***** Year *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -1730,36 +1762,36 @@ static void Crs_PutFormToCreateCourse (void)
|
||||||
Year == Crs_EditingCrs->Year ? " selected=\"selected\"" :
|
Year == Crs_EditingCrs->Year ? " selected=\"selected\"" :
|
||||||
"",
|
"",
|
||||||
Txt_YEAR_OF_DEGREE[Year]);
|
Txt_YEAR_OF_DEGREE[Year]);
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Course short name *****/
|
/***** Course short name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<input type=\"text\" name=\"ShortName\""
|
"<input type=\"text\" name=\"ShortName\""
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_SHORT_NAME\""
|
" class=\"INPUT_SHORT_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
Hie_MAX_CHARS_SHRT_NAME,Crs_EditingCrs->ShrtName);
|
Hie_MAX_CHARS_SHRT_NAME,Crs_EditingCrs->ShrtName);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Course full name *****/
|
/***** Course full name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<input type=\"text\" name=\"FullName\""
|
"<input type=\"text\" name=\"FullName\""
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_FULL_NAME\""
|
" class=\"INPUT_FULL_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
Hie_MAX_CHARS_FULL_NAME,Crs_EditingCrs->FullName);
|
Hie_MAX_CHARS_FULL_NAME,Crs_EditingCrs->FullName);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Current number of teachers in this course *****/
|
/***** Current number of teachers in this course *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"0"
|
"0");
|
||||||
"</td>");
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Current number of students in this course *****/
|
/***** Current number of students in this course *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"0"
|
"0");
|
||||||
"</td>");
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Course requester *****/
|
/***** Course requester *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT INPUT_REQUESTER LEFT_TOP\">");
|
fprintf (Gbl.F.Out,"<td class=\"DAT INPUT_REQUESTER LEFT_TOP\">");
|
||||||
|
@ -1767,8 +1799,9 @@ static void Crs_PutFormToCreateCourse (void)
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Course status *****/
|
/***** Course status *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
"</td>");
|
Tbl_EndRow ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** End table, send button and end box *****/
|
/***** End table, send button and end box *****/
|
||||||
|
@ -3283,20 +3316,20 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
||||||
{
|
{
|
||||||
Accepted = (row[7][0] == 'Y');
|
Accepted = (row[7][0] == 'Y');
|
||||||
fprintf (Gbl.F.Out,"<td class=\"BT %s\" title=\"%s\">"
|
fprintf (Gbl.F.Out,"<td class=\"BT %s\" title=\"%s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
BgColor,
|
BgColor,
|
||||||
Accepted ? Txt_Enrolment_confirmed :
|
Accepted ? Txt_Enrolment_confirmed :
|
||||||
Txt_Enrolment_not_confirmed,
|
Txt_Enrolment_not_confirmed,
|
||||||
Accepted ? "✓" :
|
Accepted ? "✓" :
|
||||||
"✗");
|
"✗");
|
||||||
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Write number of course in this search *****/
|
/***** Write number of course in this search *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
StyleNoBR,BgColor,NumCrs);
|
StyleNoBR,BgColor,NumCrs);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Write degree logo, degree short name (row[2])
|
/***** Write degree logo, degree short name (row[2])
|
||||||
and centre short name (row[6]) *****/
|
and centre short name (row[6]) *****/
|
||||||
|
@ -3317,9 +3350,9 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
||||||
|
|
||||||
/***** Write year (row[4]) *****/
|
/***** Write year (row[4]) *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_TOP %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_TOP %s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
Style,BgColor,Txt_YEAR_OF_DEGREE[Deg_ConvStrToYear (row[4])]);
|
Style,BgColor,Txt_YEAR_OF_DEGREE[Deg_ConvStrToYear (row[4])]);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Write course full name (row[5]) *****/
|
/***** Write course full name (row[5]) *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_TOP %s\">",
|
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_TOP %s\">",
|
||||||
|
@ -3336,17 +3369,18 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
||||||
|
|
||||||
/***** Write number of teachers in course *****/
|
/***** Write number of teachers in course *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
Style,BgColor,NumTchs);
|
Style,BgColor,NumTchs);
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Write number of students in course *****/
|
/***** Write number of students in course *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_TOP %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
Style,BgColor,NumStds);
|
Style,BgColor,NumStds);
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
|
Tbl_EndRow ();
|
||||||
|
|
||||||
RowEvenOdd = 1 - RowEvenOdd;
|
RowEvenOdd = 1 - RowEvenOdd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
73
swad_date.c
73
swad_date.c
|
@ -427,16 +427,17 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
|
||||||
extern const char *Txt_Yesterday;
|
extern const char *Txt_Yesterday;
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
|
|
||||||
/***** Start date-time *****/
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
/***** Start date-time *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label class=\"%s\">%s:</label>"
|
"<label class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
|
||||||
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 ();
|
||||||
|
|
||||||
/* Date-time */
|
/* Date-time */
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||||
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("Start",
|
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("Start",
|
||||||
"Start",
|
"Start",
|
||||||
Gbl.DateRange.TimeUTC[0],
|
Gbl.DateRange.TimeUTC[0],
|
||||||
|
@ -446,28 +447,30 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
|
||||||
SetHMS000000To235959 ? Dat_HMS_TO_000000 : // Set hour, minute and second to 00:00:00
|
SetHMS000000To235959 ? Dat_HMS_TO_000000 : // Set hour, minute and second to 00:00:00
|
||||||
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second to 00:00:00
|
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second to 00:00:00
|
||||||
false); // Don't submit on change
|
false); // Don't submit on change
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** "Yesterday" and "Today" buttons *****/
|
/***** "Yesterday" and "Today" buttons *****/
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"<td rowspan=\"2\" class=\"LEFT_MIDDLE\">"
|
||||||
"<td rowspan=\"2\" class=\"LEFT_MIDDLE\">"
|
|
||||||
"<input type=\"button\" name=\"Yesterday\" value=\"%s\""
|
"<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');\" />",
|
||||||
"</td>",
|
|
||||||
Txt_Yesterday,
|
Txt_Yesterday,
|
||||||
Txt_Today);
|
Txt_Today);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
Tbl_StartRow ();
|
||||||
|
|
||||||
/***** End date-time *****/
|
/***** End date-time *****/
|
||||||
Tbl_StartRow ();
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label class=\"%s\">%s:</label>"
|
"<label class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
|
||||||
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 ();
|
||||||
|
|
||||||
/* Date-time */
|
/* Date-time */
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||||
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("End",
|
Dat_WriteFormClientLocalDateTimeFromTimeUTC ("End",
|
||||||
"End",
|
"End",
|
||||||
Gbl.DateRange.TimeUTC[1],
|
Gbl.DateRange.TimeUTC[1],
|
||||||
|
@ -478,6 +481,7 @@ void Dat_PutFormStartEndClientLocalDateTimesWithYesterdayToday (bool SetHMS00000
|
||||||
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 ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -503,12 +507,14 @@ void Dat_PutFormStartEndClientLocalDateTimes (time_t TimeUTC[2],
|
||||||
{
|
{
|
||||||
/* Date-time */
|
/* Date-time */
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label class=\"%s\">%s:</label>"
|
"<label class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_START_END_TIME[StartEndTime]);
|
Txt_START_END_TIME[StartEndTime]);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||||
Dat_WriteFormClientLocalDateTimeFromTimeUTC (Id[StartEndTime],
|
Dat_WriteFormClientLocalDateTimeFromTimeUTC (Id[StartEndTime],
|
||||||
Id[StartEndTime],
|
Id[StartEndTime],
|
||||||
TimeUTC[StartEndTime],
|
TimeUTC[StartEndTime],
|
||||||
|
@ -518,6 +524,7 @@ void Dat_PutFormStartEndClientLocalDateTimes (time_t TimeUTC[2],
|
||||||
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second
|
Dat_HMS_DO_NOT_SET, // Don't set hour, minute and second
|
||||||
false); // Don't submit on change
|
false); // Don't submit on change
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -569,8 +576,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
|
||||||
Year++)
|
Year++)
|
||||||
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
|
||||||
Year,Year);
|
Year,Year);
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Month *****/
|
/***** Month *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -588,8 +595,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
|
||||||
Month++)
|
Month++)
|
||||||
fprintf (Gbl.F.Out,"<option value=\"%u\">%s</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%s</option>",
|
||||||
Month,Txt_MONTHS_SMALL[Month - 1]);
|
Month,Txt_MONTHS_SMALL[Month - 1]);
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Day *****/
|
/***** Day *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
|
@ -605,8 +612,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
|
||||||
Day++)
|
Day++)
|
||||||
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
|
||||||
Day,Day);
|
Day,Day);
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Hour *****/
|
/***** Hour *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
|
@ -622,8 +629,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
|
||||||
Hour++)
|
Hour++)
|
||||||
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u h</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u h</option>",
|
||||||
Hour,Hour);
|
Hour,Hour);
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Minute *****/
|
/***** Minute *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -641,8 +648,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
|
||||||
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u '</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u '</option>",
|
||||||
Minute,Minute);
|
Minute,Minute);
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Second *****/
|
/***** Second *****/
|
||||||
if (FormSeconds == Dat_FORM_SECONDS_ON)
|
if (FormSeconds == Dat_FORM_SECONDS_ON)
|
||||||
|
@ -660,8 +667,8 @@ void Dat_WriteFormClientLocalDateTimeFromTimeUTC (const char *Id,
|
||||||
Second++)
|
Second++)
|
||||||
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u "</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u "</option>",
|
||||||
Second,Second);
|
Second,Second);
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** End table *****/
|
/***** End table *****/
|
||||||
|
@ -842,8 +849,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||||
fprintf (Gbl.F.Out,">%u</option>",Year);
|
fprintf (Gbl.F.Out,">%u</option>",Year);
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Month *****/
|
/***** Month *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -866,8 +873,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||||
fprintf (Gbl.F.Out,">%s</option>",Txt_MONTHS_SMALL[Month - 1]);
|
fprintf (Gbl.F.Out,">%s</option>",Txt_MONTHS_SMALL[Month - 1]);
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Day *****/
|
/***** Day *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
@ -891,8 +898,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
fprintf (Gbl.F.Out," selected=\"selected\"");
|
fprintf (Gbl.F.Out," selected=\"selected\"");
|
||||||
fprintf (Gbl.F.Out,">%u</option>",Day);
|
fprintf (Gbl.F.Out,">%u</option>",Day);
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** End table *****/
|
/***** End table *****/
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
158
swad_degree.c
158
swad_degree.c
|
@ -212,8 +212,9 @@ void Deg_SeeDegWithPendingCrss (void)
|
||||||
/* Get data of degree */
|
/* Get data of degree */
|
||||||
Deg_GetDataOfDegreeByCod (&Deg);
|
Deg_GetDataOfDegreeByCod (&Deg);
|
||||||
|
|
||||||
/* Degree logo and full name */
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
/* Degree logo and full name */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",
|
||||||
BgColor);
|
BgColor);
|
||||||
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeCrs,
|
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeCrs,
|
||||||
|
@ -222,9 +223,10 @@ void Deg_SeeDegWithPendingCrss (void)
|
||||||
|
|
||||||
/* Number of pending courses (row[1]) */
|
/* Number of pending courses (row[1]) */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE %s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
BgColor,row[1]);
|
BgColor,row[1]);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||||
|
@ -343,13 +345,14 @@ static void Deg_Configuration (bool PrintView)
|
||||||
|
|
||||||
/***** Centre *****/
|
/***** Centre *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"OthCtrCod\" class=\"%s\">%s:</label>"
|
"<label for=\"OthCtrCod\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT_N LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Centre);
|
Txt_Centre);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td 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
|
||||||
|
@ -379,18 +382,19 @@ static void Deg_Configuration (bool PrintView)
|
||||||
}
|
}
|
||||||
else // I can not move degree to another centre
|
else // I can not move degree to another centre
|
||||||
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ctr.FullName);
|
fprintf (Gbl.F.Out,"%s",Gbl.Hierarchy.Ctr.FullName);
|
||||||
|
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Degree full name *****/
|
/***** Degree full name *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"FullName\" class=\"%s\">%s:</label>"
|
"<label for=\"FullName\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT_N LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Degree);
|
Txt_Degree);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td 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
|
||||||
|
@ -416,11 +420,11 @@ static void Deg_Configuration (bool PrintView)
|
||||||
/***** Degree short name *****/
|
/***** Degree short name *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"ShortName\" class=\"%s\">%s:</label>"
|
"<label for=\"ShortName\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT_N LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Short_name);
|
Txt_Short_name);
|
||||||
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
|
"<td 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
|
||||||
|
@ -446,11 +450,12 @@ static void Deg_Configuration (bool PrintView)
|
||||||
/***** Degree WWW *****/
|
/***** Degree WWW *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_MIDDLE\">"
|
||||||
"<label for=\"WWW\" class=\"%s\">%s:</label>"
|
"<label for=\"WWW\" class=\"%s\">%s:</label>",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Web);
|
Txt_Web);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td 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
|
||||||
|
@ -480,50 +485,58 @@ 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\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
||||||
"%s:"
|
"%s:",
|
||||||
"</td>"
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">"
|
Txt_Shortcut);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
"<a href=\"%s/%s?deg=%ld\" class=\"DAT\" target=\"_blank\">"
|
"<a href=\"%s/%s?deg=%ld\" class=\"DAT\" target=\"_blank\">"
|
||||||
"%s/%s?deg=%ld"
|
"%s/%s?deg=%ld"
|
||||||
"</a>"
|
"</a>",
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
|
||||||
Txt_Shortcut,
|
|
||||||
Cfg_URL_SWAD_CGI,
|
Cfg_URL_SWAD_CGI,
|
||||||
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
||||||
Gbl.Hierarchy.Deg.DegCod,
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
Cfg_URL_SWAD_CGI,
|
Cfg_URL_SWAD_CGI,
|
||||||
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
Lan_STR_LANG_ID[Gbl.Prefs.Language],
|
||||||
Gbl.Hierarchy.Deg.DegCod);
|
Gbl.Hierarchy.Deg.DegCod);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
if (PrintView)
|
if (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\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
||||||
"%s:"
|
"%s:",
|
||||||
"</td>"
|
|
||||||
"<td class=\"DAT LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_QR_code);
|
Txt_QR_code);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
QR_LinkTo (250,"deg",Gbl.Hierarchy.Deg.DegCod);
|
QR_LinkTo (250,"deg",Gbl.Hierarchy.Deg.DegCod);
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/***** Number of courses *****/
|
/***** Number of courses *****/
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE\">"
|
||||||
"%s:"
|
"%s:",
|
||||||
"</td>"
|
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
The_ClassFormInBox[Gbl.Prefs.Theme],
|
||||||
Txt_Courses);
|
Txt_Courses);
|
||||||
|
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\">");
|
||||||
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),
|
||||||
|
@ -533,8 +546,8 @@ static void Deg_Configuration (bool PrintView)
|
||||||
fprintf (Gbl.F.Out,"%u</a>",
|
fprintf (Gbl.F.Out,"%u</a>",
|
||||||
Crs_GetNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod));
|
Crs_GetNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod));
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** Number of users *****/
|
/***** Number of users *****/
|
||||||
|
@ -578,16 +591,19 @@ static void Deg_ShowNumUsrsInCrssOfDeg (Rol_Role_t Role)
|
||||||
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||||
|
|
||||||
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\">"
|
|
||||||
"%u"
|
|
||||||
"</td>",
|
|
||||||
The_ClassFormInBox[Gbl.Prefs.Theme],
|
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 ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
||||||
|
"%u",
|
||||||
Usr_GetNumUsrsInCrssOfDeg (Role,Gbl.Hierarchy.Deg.DegCod));
|
Usr_GetNumUsrsInCrssOfDeg (Role,Gbl.Hierarchy.Deg.DegCod));
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -736,9 +752,9 @@ static void Deg_ListDegreesForEdition (void)
|
||||||
|
|
||||||
/* Degree code */
|
/* Degree code */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT CODE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT CODE\">"
|
||||||
"%ld"
|
"%ld",
|
||||||
"</td>",
|
|
||||||
Deg->DegCod);
|
Deg->DegCod);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Degree logo */
|
/* Degree logo */
|
||||||
fprintf (Gbl.F.Out,"<td title=\"%s LEFT_MIDDLE\" style=\"width:25px;\">",
|
fprintf (Gbl.F.Out,"<td title=\"%s LEFT_MIDDLE\" style=\"width:25px;\">",
|
||||||
|
@ -841,9 +857,9 @@ static void Deg_ListDegreesForEdition (void)
|
||||||
|
|
||||||
/* Current number of courses in this degree */
|
/* Current number of courses in this degree */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
NumCrss);
|
NumCrss);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Degree requester */
|
/* Degree requester */
|
||||||
UsrDat.UsrCod = Deg->RequesterUsrCod;
|
UsrDat.UsrCod = Deg->RequesterUsrCod;
|
||||||
|
@ -964,12 +980,15 @@ static void Deg_PutFormToCreateDegree (void)
|
||||||
/***** Write heading *****/
|
/***** Write heading *****/
|
||||||
Deg_PutHeadDegreesForEdition ();
|
Deg_PutHeadDegreesForEdition ();
|
||||||
|
|
||||||
/***** Column to remove degree, disabled here *****/
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td class=\"BM\"></td>");
|
|
||||||
|
/***** Column to remove degree, disabled here *****/
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"BM\">");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree code *****/
|
/***** Degree code *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CODE\"></td>");
|
fprintf (Gbl.F.Out,"<td class=\"CODE\">");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree logo *****/
|
/***** Degree logo *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:25px;\">");
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\" style=\"width:25px;\">");
|
||||||
|
@ -981,18 +1000,18 @@ static void Deg_PutFormToCreateDegree (void)
|
||||||
"<input type=\"text\" name=\"ShortName\""
|
"<input type=\"text\" name=\"ShortName\""
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_SHORT_NAME\""
|
" class=\"INPUT_SHORT_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
Hie_MAX_CHARS_SHRT_NAME,Deg_EditingDeg->ShrtName);
|
Hie_MAX_CHARS_SHRT_NAME,Deg_EditingDeg->ShrtName);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree full name *****/
|
/***** Degree full name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<input type=\"text\" name=\"FullName\""
|
"<input type=\"text\" name=\"FullName\""
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_FULL_NAME\""
|
" class=\"INPUT_FULL_NAME\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
Hie_MAX_CHARS_FULL_NAME,Deg_EditingDeg->FullName);
|
Hie_MAX_CHARS_FULL_NAME,Deg_EditingDeg->FullName);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree type *****/
|
/***** Degree type *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
|
@ -1008,22 +1027,22 @@ static void Deg_PutFormToCreateDegree (void)
|
||||||
"",
|
"",
|
||||||
DegTyp->DegTypName);
|
DegTyp->DegTypName);
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree WWW *****/
|
/***** Degree WWW *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<input type=\"url\" name=\"WWW\""
|
"<input type=\"url\" name=\"WWW\""
|
||||||
" maxlength=\"%u\" value=\"%s\""
|
" maxlength=\"%u\" value=\"%s\""
|
||||||
" class=\"INPUT_WWW\""
|
" class=\"INPUT_WWW\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
Cns_MAX_CHARS_WWW,Deg_EditingDeg->WWW);
|
Cns_MAX_CHARS_WWW,Deg_EditingDeg->WWW);
|
||||||
|
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\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"0"
|
"0");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree requester *****/
|
/***** Degree requester *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT INPUT_REQUESTER LEFT_TOP\">");
|
fprintf (Gbl.F.Out,"<td class=\"DAT INPUT_REQUESTER LEFT_TOP\">");
|
||||||
|
@ -1031,8 +1050,9 @@ static void Deg_PutFormToCreateDegree (void)
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree status *****/
|
/***** Degree status *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** End table, send button and end box *****/
|
/***** End table, send button and end box *****/
|
||||||
|
@ -1284,23 +1304,24 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
||||||
BgColor = (Deg->DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
|
BgColor = (Deg->DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
|
||||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||||
|
|
||||||
/***** Put tip if degree has courses *****/
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
/***** Put tip if degree has courses *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\" title=\"%s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s CENTER_MIDDLE %s\" title=\"%s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,
|
TxtClassNormal,BgColor,
|
||||||
NumCrss ? Txt_DEGREE_With_courses :
|
NumCrss ? Txt_DEGREE_With_courses :
|
||||||
Txt_DEGREE_Without_courses,
|
Txt_DEGREE_Without_courses,
|
||||||
NumCrss ? "✓" :
|
NumCrss ? "✓" :
|
||||||
" ");
|
" ");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Number of degree in this list *****/
|
/***** Number of degree in this list *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,
|
TxtClassNormal,BgColor,
|
||||||
NumDeg);
|
NumDeg);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree logo and name *****/
|
/***** Degree logo and name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",BgColor);
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE %s\">",BgColor);
|
||||||
|
@ -1310,15 +1331,15 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
||||||
|
|
||||||
/***** Type of degree *****/
|
/***** Type of degree *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s LEFT_MIDDLE %s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,DegTyp.DegTypName);
|
TxtClassNormal,BgColor,DegTyp.DegTypName);
|
||||||
|
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\">"
|
fprintf (Gbl.F.Out,"<td class=\"%s RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
TxtClassNormal,BgColor,NumCrss);
|
TxtClassNormal,BgColor,NumCrss);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree status *****/
|
/***** Degree status *****/
|
||||||
StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
|
StatusTxt = Deg_GetStatusTxtFromStatusBits (Deg->Status);
|
||||||
|
@ -1327,6 +1348,7 @@ static void Deg_ListOneDegreeForSeeing (struct Degree *Deg,unsigned NumDeg)
|
||||||
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 ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||||
|
@ -2521,16 +2543,17 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
|
||||||
NumRow <= NumRows;
|
NumRow <= NumRows;
|
||||||
NumRow++)
|
NumRow++)
|
||||||
{
|
{
|
||||||
/***** Indent *****/
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
/***** Indent *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP COLOR%u\">"
|
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP COLOR%u\">"
|
||||||
"<img src=\"%s/%s20x20.gif\""
|
"<img src=\"%s/%s20x20.gif\""
|
||||||
" alt=\"\" title=\"\""
|
" alt=\"\" title=\"\""
|
||||||
" class=\"ICO25x25\" />"
|
" class=\"ICO25x25\" />",
|
||||||
"</td>",
|
|
||||||
Gbl.RowEvenOdd,Cfg_URL_ICON_PUBLIC,
|
Gbl.RowEvenOdd,Cfg_URL_ICON_PUBLIC,
|
||||||
NumRow == NumRows ? "subend" :
|
NumRow == NumRows ? "subend" :
|
||||||
"submid");
|
"submid");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Write institution, centre, degree *****/
|
/***** Write institution, centre, degree *****/
|
||||||
fprintf (Gbl.F.Out,"<td colspan=\"%u\""
|
fprintf (Gbl.F.Out,"<td colspan=\"%u\""
|
||||||
|
@ -2594,6 +2617,7 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Tbl_EndCell ();
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -333,21 +333,22 @@ static void DT_ListDegreeTypesForSeeing (void)
|
||||||
/* Number of degree type in this list */
|
/* Number of degree type in this list */
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT_N RIGHT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT_N RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
BgColor,NumDegTyp + 1);
|
BgColor,NumDegTyp + 1);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Name of degree type */
|
/* Name of degree type */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT_N LEFT_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT_N LEFT_MIDDLE %s\">"
|
||||||
"%s"
|
"%s",
|
||||||
"</td>",
|
|
||||||
BgColor,Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
|
BgColor,Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
|
||||||
|
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\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT_N RIGHT_MIDDLE %s\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
BgColor,Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
|
BgColor,Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||||
|
@ -399,8 +400,9 @@ static void DT_ListDegreeTypesForEdition (void)
|
||||||
NumDegTyp < Gbl.DegTypes.Num;
|
NumDegTyp < Gbl.DegTypes.Num;
|
||||||
NumDegTyp++)
|
NumDegTyp++)
|
||||||
{
|
{
|
||||||
/* Put icon to remove degree type */
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
|
|
||||||
|
/* Put icon to remove degree type */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"BM\">");
|
fprintf (Gbl.F.Out,"<td 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 ();
|
||||||
|
@ -411,13 +413,13 @@ static void DT_ListDegreeTypesForEdition (void)
|
||||||
Ico_PutIconRemove ();
|
Ico_PutIconRemove ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Degree type code */
|
/* Degree type code */
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"<td class=\"DAT CODE\">"
|
||||||
"<td class=\"DAT CODE\">"
|
"%ld",
|
||||||
"%ld"
|
|
||||||
"</td>",
|
|
||||||
Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
|
Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/* Name of degree type */
|
/* Name of degree type */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">");
|
||||||
|
@ -435,9 +437,10 @@ static void DT_ListDegreeTypesForEdition (void)
|
||||||
|
|
||||||
/* Number of degrees of this type */
|
/* Number of degrees of this type */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"%u"
|
"%u",
|
||||||
"</td>",
|
|
||||||
Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
|
Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -473,25 +476,29 @@ static void DT_PutFormToCreateDegreeType (void)
|
||||||
/***** Write heading *****/
|
/***** Write heading *****/
|
||||||
DT_PutHeadDegreeTypesForEdition ();
|
DT_PutHeadDegreeTypesForEdition ();
|
||||||
|
|
||||||
/***** Column to remove degree type, disabled here *****/
|
|
||||||
Tbl_StartRow ();
|
Tbl_StartRow ();
|
||||||
fprintf (Gbl.F.Out,"<td class=\"BM\"></td>");
|
|
||||||
|
/***** Column to remove degree type, disabled here *****/
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"BM\">");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree type code *****/
|
/***** Degree type code *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CODE\"></td>");
|
fprintf (Gbl.F.Out,"<td class=\"CODE\">");
|
||||||
|
Tbl_EndCell ();
|
||||||
|
|
||||||
/***** Degree type name *****/
|
/***** Degree type name *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<input type=\"text\" name=\"DegTypName\""
|
"<input type=\"text\" name=\"DegTypName\""
|
||||||
" size=\"25\" maxlength=\"%u\" value=\"%s\""
|
" size=\"25\" maxlength=\"%u\" value=\"%s\""
|
||||||
" required=\"required\" />"
|
" required=\"required\" />",
|
||||||
"</td>",
|
|
||||||
Deg_MAX_CHARS_DEGREE_TYPE_NAME,DT_EditingDegTyp->DegTypName);
|
Deg_MAX_CHARS_DEGREE_TYPE_NAME,DT_EditingDegTyp->DegTypName);
|
||||||
|
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\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT RIGHT_MIDDLE\">"
|
||||||
"0"
|
"0");
|
||||||
"</td>");
|
Tbl_EndCell ();
|
||||||
|
|
||||||
Tbl_EndRow ();
|
Tbl_EndRow ();
|
||||||
|
|
||||||
/***** End table, send button and end box *****/
|
/***** End table, send button and end box *****/
|
||||||
|
|
Loading…
Reference in New Issue