mirror of https://github.com/acanas/swad-core.git
Version 21.69: Dec 15, 2021 Working on design of dark theme.
This commit is contained in:
parent
5a9f5d9009
commit
4112c3fa55
|
@ -35,7 +35,7 @@ body
|
|||
.BODY_BG_BLUE {background-color:white;}
|
||||
.BODY_BG_YELLOW {background-color:white;}
|
||||
.BODY_BG_PINK {background-color:white;}
|
||||
.BODY_BG_DARK {background-color:#404040;}
|
||||
.BODY_BG_DARK {background-color:#383838;}
|
||||
|
||||
input
|
||||
{
|
||||
|
@ -148,8 +148,8 @@ a:hover /* Default ==> underlined */
|
|||
}
|
||||
.HEAD_ROW_1_DARK
|
||||
{
|
||||
background-image:-webkit-linear-gradient(#383838 0,#404040 100%); /* Safari */
|
||||
background-image:linear-gradient(#383838 0,#404040 100%);
|
||||
background-image:-webkit-linear-gradient(#303030 0,#383838 100%); /* Safari */
|
||||
background-image:linear-gradient(#303030 0,#383838 100%);
|
||||
background-repeat:no-repeat;
|
||||
}
|
||||
|
||||
|
@ -254,7 +254,7 @@ a:hover /* Default ==> underlined */
|
|||
.USR_BLUE {color:white; font-size:15pt; font-weight:bold; white-space:nowrap;}
|
||||
.USR_YELLOW {color:#b3b0b3; font-size:15pt; font-weight:bold; white-space:nowrap;}
|
||||
.USR_PINK {color:white; font-size:15pt; font-weight:bold; white-space:nowrap;}
|
||||
.USR_BLACK {color:#e0e0e0; font-size:15pt; font-weight:bold; white-space:nowrap;}
|
||||
.USR_DARK {color:#e0e0e0; font-size:15pt; font-weight:bold; white-space:nowrap;}
|
||||
|
||||
#head_row_1_right
|
||||
{
|
||||
|
@ -283,7 +283,7 @@ a:hover /* Default ==> underlined */
|
|||
}
|
||||
.HEAD_ROW_2_GREY
|
||||
{
|
||||
background-color:#404040;
|
||||
background-color:#383838;
|
||||
}
|
||||
.HEAD_ROW_2_PURPLE
|
||||
{
|
||||
|
@ -309,7 +309,7 @@ a:hover /* Default ==> underlined */
|
|||
}
|
||||
.HEAD_ROW_2_DARK
|
||||
{
|
||||
background-color:#404040;
|
||||
background-color:#383838;
|
||||
}
|
||||
|
||||
/******************************* Current time ********************************/
|
||||
|
@ -608,8 +608,8 @@ a:hover /* Default ==> underlined */
|
|||
}
|
||||
.HEAD_ROW_3_DARK
|
||||
{
|
||||
background-image:-webkit-linear-gradient(#404040 0,#404040 54px,white 54px,white 100%); /* Safari */
|
||||
background-image:linear-gradient(#404040 0,#404040 54px,#404040 54px,#404040 100%);
|
||||
background-image:-webkit-linear-gradient(#383838 0,#383838 54px,#383838 54px,#383838 100%); /* Safari */
|
||||
background-image:linear-gradient(#383838 0,#383838 54px,#383838 54px,#383838 100%);
|
||||
}
|
||||
|
||||
.TAB_LIST
|
||||
|
@ -781,7 +781,7 @@ a:hover /* Default ==> underlined */
|
|||
.TAB_OFF_BLUE {background-color:#cae1e8;}
|
||||
.TAB_OFF_YELLOW {background-color:#f4dfb2;}
|
||||
.TAB_OFF_PINK {background-color:#f3dcca;}
|
||||
.TAB_OFF_DARK {background-color:#aea79f;}
|
||||
.TAB_OFF_DARK {background-color:#484848;}
|
||||
|
||||
.TAB_OFF_TXT_WHITE {color:#707070;}
|
||||
.TAB_OFF_TXT_GREY {color:#505050;}
|
||||
|
@ -789,7 +789,7 @@ a:hover /* Default ==> underlined */
|
|||
.TAB_OFF_TXT_BLUE {color:#365e6e;}
|
||||
.TAB_OFF_TXT_YELLOW {color:#4a2e19;}
|
||||
.TAB_OFF_TXT_PINK {color:#505050;}
|
||||
.TAB_OFF_TXT_DARK {color:#505050;}
|
||||
.TAB_OFF_TXT_DARK {color:#d0d0d0;}
|
||||
|
||||
.TAB_ON_TXT_WHITE {color:#4d88A1;}
|
||||
.TAB_ON_TXT_GREY {color:#606060;}
|
||||
|
@ -797,7 +797,7 @@ a:hover /* Default ==> underlined */
|
|||
.TAB_ON_TXT_BLUE {color:#4d88A1;}
|
||||
.TAB_ON_TXT_YELLOW {color:#7c4d2a;}
|
||||
.TAB_ON_TXT_PINK {color:#63474e;}
|
||||
.TAB_ON_TXT_DARK {color:#606060;}
|
||||
.TAB_ON_TXT_DARK {color:#e0e0e0;}
|
||||
|
||||
.TAB_ICO
|
||||
{
|
||||
|
@ -806,6 +806,8 @@ a:hover /* Default ==> underlined */
|
|||
padding:4px 0;
|
||||
}
|
||||
|
||||
.TAB_ICO_DARK {filter:invert(1);}
|
||||
|
||||
/*********************** Layout (fourth row, main zone) **********************/
|
||||
#main_zone
|
||||
{
|
||||
|
@ -1112,6 +1114,8 @@ a:hover /* Default ==> underlined */
|
|||
overflow:hidden;
|
||||
}
|
||||
}
|
||||
|
||||
.MENU_ICO_DARK {filter:invert(1);}
|
||||
|
||||
/********************************* Menu fonts ********************************/
|
||||
@media only screen and (max-width: 800px)
|
||||
|
@ -1141,16 +1145,13 @@ a:hover /* Default ==> underlined */
|
|||
padding:2px 0;
|
||||
}
|
||||
}
|
||||
|
||||
.MENU_ICO_DARK {filter:invert(1);}
|
||||
|
||||
.MENU_TXT_WHITE {color:#4D88a1;}
|
||||
.MENU_TXT_GREY {color:#606060;}
|
||||
.MENU_TXT_PURPLE {color:#573c4d;}
|
||||
.MENU_TXT_BLUE {color:#4D88a1;}
|
||||
.MENU_TXT_YELLOW {color:#7c4d2a;}
|
||||
.MENU_TXT_PINK {color:#63474e;}
|
||||
.MENU_TXT_DARK {color:#c0c0c0;}
|
||||
.MENU_TXT_DARK {color:#d0d0d0;}
|
||||
|
||||
/***************************** Users connected *******************************/
|
||||
.CONNECTED
|
||||
|
@ -1922,6 +1923,7 @@ a:hover img.CENTER_PHOTO_SHOW
|
|||
margin-top:-2px;
|
||||
vertical-align:middle;
|
||||
}
|
||||
.CONTEXT_ICO_DARK {filter:invert(1);}
|
||||
|
||||
/********************************** Frame ************************************/
|
||||
.FRAME_INLINE
|
||||
|
@ -1937,18 +1939,26 @@ a:hover img.CENTER_PHOTO_SHOW
|
|||
text-align:center;
|
||||
vertical-align:middle;
|
||||
}
|
||||
|
||||
.FRAME
|
||||
{
|
||||
display:inline-block;
|
||||
box-sizing:border-box;
|
||||
margin:5px 0;
|
||||
padding:8px 12px 12px 12px;
|
||||
background-color:white;
|
||||
border-radius:2px;
|
||||
box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 2px 1px -2px rgba(0,0,0,0.2), 0 1px 5px 0 rgba(0,0,0,0.12);
|
||||
text-align:center;
|
||||
overflow:hidden;
|
||||
}
|
||||
.FRAME_WHITE {background-color:white;}
|
||||
.FRAME_GREY {background-color:white;}
|
||||
.FRAME_PURPLE {background-color:white;}
|
||||
.FRAME_BLUE {background-color:white;}
|
||||
.FRAME_YELLOW {background-color:white;}
|
||||
.FRAME_PINK {background-color:white;}
|
||||
.FRAME_DARK {background-color:#484848;}
|
||||
|
||||
.FRAME_SHADOW
|
||||
{
|
||||
display:inline-block;
|
||||
|
@ -2013,14 +2023,19 @@ a:hover img.CENTER_PHOTO_SHOW
|
|||
}
|
||||
.FRAME_TITLE_BIG
|
||||
{
|
||||
color:#404040;
|
||||
font-size:22pt;
|
||||
}
|
||||
.FRAME_TITLE_SMALL
|
||||
{
|
||||
color:#808080;
|
||||
font-size:18pt;
|
||||
}
|
||||
.FRAME_TITLE_WHITE {color:#404040;}
|
||||
.FRAME_TITLE_GREY {color:#404040;}
|
||||
.FRAME_TITLE_PURPLE {color:#404040;}
|
||||
.FRAME_TITLE_BLUE {color:#404040;}
|
||||
.FRAME_TITLE_YELLOW {color:#404040;}
|
||||
.FRAME_TITLE_PINK {color:#404040;}
|
||||
.FRAME_TITLE_DARK {color:#d0d0d0;}
|
||||
|
||||
/* Apply only to the first level of th and td */
|
||||
table.CELLS_PAD_1 > tbody > tr > th {padding: 1px;}
|
||||
|
@ -2300,7 +2315,7 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
|
|||
.FORM_OUT_BLUE {color:#4d88a1; font-size:13pt;}
|
||||
.FORM_OUT_YELLOW {color:#7c4d2a; font-size:13pt;}
|
||||
.FORM_OUT_PINK {color:#63474e; font-size:13pt;}
|
||||
.FORM_OUT_DARK {color:#4d88a1; font-size:13pt;}
|
||||
.FORM_OUT_DARK {color:#c0e0ff; font-size:13pt;}
|
||||
|
||||
.BOLD {font-weight:bold;}
|
||||
.NOWRAP {white-space:nowrap;}
|
||||
|
@ -2439,19 +2454,33 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
|
|||
|
||||
/*****************************************************************************/
|
||||
|
||||
.T1 {color:#202020; font-size:15pt;}
|
||||
.T2 {color:#202020; font-size:13pt;}
|
||||
.T3 {color:#202020; font-size:12pt;}
|
||||
.T1 {color:#202020; font-size:15pt;}
|
||||
.T2 {color:#202020; font-size:13pt;}
|
||||
.T3 {color:#202020; font-size:12pt;}
|
||||
|
||||
.DAT {color:#404040; font-size:13pt;}
|
||||
.DAT_NOBR {color:#404040; font-size:13pt; white-space:nowrap;}
|
||||
.DAT_BOLD {color:#404040; font-size:13pt; font-weight:bold;}
|
||||
.DAT_GREEN {color:#246600; font-size:13pt;}
|
||||
.DAT_RED {color:#660000; font-size:13pt;}
|
||||
.DAT_LIGHT {color:#A0A0A0; font-size:13pt;}
|
||||
.DAT_N {color:black; font-size:13pt;}
|
||||
.DAT_NOBR_N {color:black; font-size:13pt; white-space:nowrap;}
|
||||
.DAT_N_BOLD {color:black; font-size:13pt; font-weight:bold;}
|
||||
.DAT_WHITE {color:#404040; font-size:13pt;}
|
||||
.DAT_GREY {color:#404040; font-size:13pt;}
|
||||
.DAT_PURPLE {color:#404040; font-size:13pt;}
|
||||
.DAT_BLUE {color:#404040; font-size:13pt;}
|
||||
.DAT_YELLOW {color:#404040; font-size:13pt;}
|
||||
.DAT_PINK {color:#404040; font-size:13pt;}
|
||||
.DAT_DARK {color:#d0d0d0; font-size:13pt;}
|
||||
|
||||
.DAT_N_WHITE {color:black; font-size:13pt;}
|
||||
.DAT_N_GREY {color:black; font-size:13pt;}
|
||||
.DAT_N_PURPLE {color:black; font-size:13pt;}
|
||||
.DAT_N_BLUE {color:black; font-size:13pt;}
|
||||
.DAT_N_YELLOW {color:black; font-size:13pt;}
|
||||
.DAT_N_PINK {color:black; font-size:13pt;}
|
||||
.DAT_N_DARK {color:white; font-size:13pt;}
|
||||
|
||||
.DAT_NOBR {color:#404040; font-size:13pt; white-space:nowrap;}
|
||||
.DAT_BOLD {color:#404040; font-size:13pt; font-weight:bold;}
|
||||
.DAT_GREEN {color:#246600; font-size:13pt;}
|
||||
.DAT_RED {color:#660000; font-size:13pt;}
|
||||
.DAT_LIGHT {color:#A0A0A0; font-size:13pt;}
|
||||
.DAT_NOBR_N {color:black; font-size:13pt; white-space:nowrap;}
|
||||
.DAT_N_BOLD {color:black; font-size:13pt; font-weight:bold;}
|
||||
|
||||
/*********************** Line in top part of a table row *********************/
|
||||
.LINE_TOP
|
||||
|
|
|
@ -1393,6 +1393,7 @@ static int API_WriteSyllabusIntoHTMLBuffer (struct soap *soap,
|
|||
static int API_WritePlainTextIntoHTMLBuffer (struct soap *soap,
|
||||
char **HTMLBuffer)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_INFO_TITLE[Inf_NUM_TYPES];
|
||||
char TxtHTML[Cns_MAX_BYTES_LONG_TEXT + 1];
|
||||
char FileNameHTMLTmp[PATH_MAX + 1];
|
||||
|
@ -1421,7 +1422,7 @@ static int API_WritePlainTextIntoHTMLBuffer (struct soap *soap,
|
|||
/***** Write start of HTML code *****/
|
||||
Lay_BeginHTMLFile (FileHTMLTmp,Txt_INFO_TITLE[Gbl.Crs.Info.Type]);
|
||||
fprintf (FileHTMLTmp,"<body>\n"
|
||||
"<div class=\"DAT LM\">\n");
|
||||
"<div class=\"%s LM\">\n",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
/***** Write plain text into text buffer *****/
|
||||
/* Convert to respectful HTML and insert links */
|
||||
|
|
|
@ -499,6 +499,7 @@ void ID_ShowFormChangeOtherUsrID (void)
|
|||
static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID)
|
||||
{
|
||||
extern const char *Hlp_PROFILE_Account;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Please_fill_in_your_ID;
|
||||
extern const char *Txt_ID_X_confirmed;
|
||||
extern const char *Txt_ID_X_not_confirmed;
|
||||
|
@ -579,7 +580,7 @@ static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID)
|
|||
Str_BuildStringStr (UsrDat->IDs.List[NumID].Confirmed ? Txt_ID_X_confirmed :
|
||||
Txt_ID_X_not_confirmed,
|
||||
UsrDat->IDs.List[NumID].ID));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_Txt (UsrDat->IDs.List[NumID].ID);
|
||||
HTM_Txt (UsrDat->IDs.List[NumID].Confirmed ? "✓" :
|
||||
"");
|
||||
|
@ -597,7 +598,8 @@ static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID)
|
|||
/***** Write help text *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"%s CM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Ale_ShowAlert (Ale_INFO,Txt_The_ID_is_used_in_order_to_facilitate_);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -612,7 +614,8 @@ static void ID_ShowFormChangeUsrID (bool ItsMe,bool IShouldFillInID)
|
|||
Txt_ID); // The first user's ID
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ItsMe)
|
||||
Frm_BeginFormAnchor (ActChgMyID,ID_ID_SECTION_ID);
|
||||
else
|
||||
|
|
|
@ -272,6 +272,7 @@ void Acc_CheckIfEmptyAccountExists (void)
|
|||
|
||||
static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrData *UsrDat)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_ID;
|
||||
extern const char *Txt_Name;
|
||||
extern const char *Txt_yet_unnamed;
|
||||
|
@ -287,7 +288,9 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Write user's ID and name *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TxtF ("%s: %s",Txt_ID,ID);
|
||||
HTM_BR ();
|
||||
HTM_TxtColonNBSP (Txt_Name);
|
||||
|
@ -439,7 +442,7 @@ void Acc_ShowFormGoToRequestNewAccount (void)
|
|||
Cfg_PLATFORM_SHORT_NAME),
|
||||
NULL,NULL,
|
||||
Hlp_PROFILE_SignUp,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Button to go to request the creation of a new account *****/
|
||||
Frm_BeginForm (ActFrmMyAcc);
|
||||
|
|
|
@ -395,7 +395,7 @@ void Agd_ShowUsrAgenda (void)
|
|||
Gbl.Usrs.Other.UsrDat.FullName),
|
||||
Agd_PutIconsOtherPublicAgenda,Gbl.Usrs.Other.UsrDat.EnUsrCod,
|
||||
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Show the current events in the user's agenda *****/
|
||||
Agd_ShowEventsToday (&Agenda,Agd_ANOTHER_AGENDA_TODAY);
|
||||
|
@ -447,7 +447,7 @@ void Agd_ShowOtherAgendaAfterLogIn (void)
|
|||
Gbl.Usrs.Other.UsrDat.FullName),
|
||||
Agd_PutIconsOtherPublicAgenda,Gbl.Usrs.Other.UsrDat.EnUsrCod,
|
||||
Hlp_PROFILE_Agenda_public_agenda,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Show the current events in the user's agenda *****/
|
||||
Agd_ShowEventsToday (&Agenda,Agd_ANOTHER_AGENDA_TODAY);
|
||||
|
@ -770,6 +770,7 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
|
|||
{
|
||||
extern const char *Dat_TimeStatusClassVisible[Dat_NUM_TIME_STATUS];
|
||||
extern const char *Dat_TimeStatusClassHidden[Dat_NUM_TIME_STATUS];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
|
@ -857,7 +858,7 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
|
|||
/* Text of the event */
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",AgdEvent.Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Agd_DB_GetEventTxt (&AgdEvent,Txt);
|
||||
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
|
||||
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to recpectful HTML
|
||||
|
@ -1619,7 +1620,7 @@ void Agd_PrintAgdQRCode (void)
|
|||
Gbl.Usrs.Me.UsrDat.FullName),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Print QR code ****/
|
||||
QR_PrintQRCode ();
|
||||
|
|
|
@ -349,6 +349,7 @@ void Ann_ShowFormAnnouncement (void)
|
|||
{
|
||||
extern const char *Hlp_COMMUNICATION_Announcements;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_announcement;
|
||||
extern const char *Txt_MSG_Subject;
|
||||
extern const char *Txt_MSG_Content;
|
||||
|
@ -374,7 +375,7 @@ void Ann_ShowFormAnnouncement (void)
|
|||
HTM_TxtColonNBSP (Txt_Users);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Rol_WriteSelectorRoles (1 << Rol_UNK |
|
||||
1 << Rol_GST |
|
||||
1 << Rol_STD |
|
||||
|
|
|
@ -393,6 +393,7 @@ void Asg_PrintOneAssignment (void)
|
|||
static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
|
||||
long AsgCod,bool PrintView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
|
@ -468,9 +469,11 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
|
|||
|
||||
/* Assignment folder */
|
||||
if (PrintView)
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
else
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (Asg.SendWork == Asg_SEND_WORK)
|
||||
Asg_WriteAssignmentFolder (&Asg,PrintView);
|
||||
HTM_TD_End ();
|
||||
|
@ -501,7 +504,7 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
|
|||
Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (&Asg);
|
||||
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",Asg.Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt);
|
||||
HTM_DIV_End ();
|
||||
|
||||
|
@ -1065,6 +1068,7 @@ void Asg_RequestCreatOrEditAsg (void)
|
|||
{
|
||||
extern const char *Hlp_ASSESSMENT_Assignments_new_assignment;
|
||||
extern const char *Hlp_ASSESSMENT_Assignments_edit_assignment;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_assignment;
|
||||
extern const char *Txt_Edit_assignment;
|
||||
extern const char *Txt_Title;
|
||||
|
@ -1134,84 +1138,84 @@ void Asg_RequestCreatOrEditAsg (void)
|
|||
}
|
||||
Asg_PutParams (&Assignments);
|
||||
|
||||
/***** Begin box and table *****/
|
||||
if (ItsANewAssignment)
|
||||
Box_BoxTableBegin (NULL,Txt_New_assignment,
|
||||
NULL,NULL,
|
||||
Hlp_ASSESSMENT_Assignments_new_assignment,Box_NOT_CLOSABLE,2);
|
||||
else
|
||||
Box_BoxTableBegin (NULL,
|
||||
Asg.Title[0] ? Asg.Title :
|
||||
Txt_Edit_assignment,
|
||||
NULL,NULL,
|
||||
Hlp_ASSESSMENT_Assignments_edit_assignment,Box_NOT_CLOSABLE,2);
|
||||
/***** Begin box and table *****/
|
||||
if (ItsANewAssignment)
|
||||
Box_BoxTableBegin (NULL,Txt_New_assignment,
|
||||
NULL,NULL,
|
||||
Hlp_ASSESSMENT_Assignments_new_assignment,Box_NOT_CLOSABLE,2);
|
||||
else
|
||||
Box_BoxTableBegin (NULL,
|
||||
Asg.Title[0] ? Asg.Title :
|
||||
Txt_Edit_assignment,
|
||||
NULL,NULL,
|
||||
Hlp_ASSESSMENT_Assignments_edit_assignment,Box_NOT_CLOSABLE,2);
|
||||
|
||||
|
||||
/***** Assignment title *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
/***** Assignment title *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RM","Title",Txt_Title);
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RM","Title",Txt_Title);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_INPUT_TEXT ("Title",Asg_MAX_CHARS_ASSIGNMENT_TITLE,Asg.Title,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Title\" required=\"required\""
|
||||
" class=\"TITLE_DESCRIPTION_WIDTH\"");
|
||||
HTM_TD_End ();
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_INPUT_TEXT ("Title",Asg_MAX_CHARS_ASSIGNMENT_TITLE,Asg.Title,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Title\" required=\"required\""
|
||||
" class=\"TITLE_DESCRIPTION_WIDTH\"");
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
HTM_TR_End ();
|
||||
|
||||
/***** Assignment start and end dates *****/
|
||||
Dat_PutFormStartEndClientLocalDateTimes (Asg.TimeUTC,
|
||||
Dat_FORM_SECONDS_ON,
|
||||
Gbl.Action.Act == ActFrmNewAsg ? SetHMSAllDay :
|
||||
SetHMSDontSet);
|
||||
/***** Assignment start and end dates *****/
|
||||
Dat_PutFormStartEndClientLocalDateTimes (Asg.TimeUTC,
|
||||
Dat_FORM_SECONDS_ON,
|
||||
Gbl.Action.Act == ActFrmNewAsg ? SetHMSAllDay :
|
||||
SetHMSDontSet);
|
||||
|
||||
/***** Send work? *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
/***** Send work? *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RM","Folder",Txt_Upload_files_QUESTION);
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RM","Folder",Txt_Upload_files_QUESTION);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_LABEL_Begin ("class=\"DAT\"");
|
||||
HTM_TxtColon (Txt_Folder);
|
||||
HTM_INPUT_TEXT ("Folder",Brw_MAX_CHARS_FOLDER,Asg.Folder,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Folder\" size=\"30\"");
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Folder);
|
||||
HTM_INPUT_TEXT ("Folder",Brw_MAX_CHARS_FOLDER,Asg.Folder,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Folder\" size=\"30\"");
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
HTM_TR_End ();
|
||||
|
||||
/***** Assignment text *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
/***** Assignment text *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RT","Txt",Txt_Description);
|
||||
/* Label */
|
||||
Frm_LabelColumn ("RT","Txt",Txt_Description);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"10\""
|
||||
" class=\"TITLE_DESCRIPTION_WIDTH\"");
|
||||
if (!ItsANewAssignment)
|
||||
HTM_Txt (Txt);
|
||||
HTM_TEXTAREA_End ();
|
||||
HTM_TD_End ();
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
HTM_TEXTAREA_Begin ("id=\"Txt\" name=\"Txt\" rows=\"10\""
|
||||
" class=\"TITLE_DESCRIPTION_WIDTH\"");
|
||||
if (!ItsANewAssignment)
|
||||
HTM_Txt (Txt);
|
||||
HTM_TEXTAREA_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
HTM_TR_End ();
|
||||
|
||||
/***** Groups *****/
|
||||
Asg_ShowLstGrpsToEditAssignment (Asg.AsgCod);
|
||||
/***** Groups *****/
|
||||
Asg_ShowLstGrpsToEditAssignment (Asg.AsgCod);
|
||||
|
||||
/***** End table, send button and end box *****/
|
||||
if (ItsANewAssignment)
|
||||
Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_assignment);
|
||||
else
|
||||
Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes);
|
||||
/***** End table, send button and end box *****/
|
||||
if (ItsANewAssignment)
|
||||
Box_BoxTableWithButtonEnd (Btn_CREATE_BUTTON,Txt_Create_assignment);
|
||||
else
|
||||
Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes);
|
||||
|
||||
/***** End form *****/
|
||||
Frm_EndForm ();
|
||||
|
@ -1228,6 +1232,7 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
|||
{
|
||||
extern const char *Hlp_USERS_Groups;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Groups;
|
||||
extern const char *Txt_The_whole_course;
|
||||
unsigned NumGrpTyp;
|
||||
|
@ -1252,7 +1257,8 @@ static void Asg_ShowLstGrpsToEditAssignment (long AsgCod)
|
|||
|
||||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"WholeCrs\" value=\"Y\"%s"
|
||||
|
|
|
@ -447,6 +447,7 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
|
|||
struct Att_Event *Event,
|
||||
bool ShowOnlyThisAttEventComplete)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_View_event;
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
|
@ -561,7 +562,7 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
|
|||
Att_GetAndWriteNamesOfGrpsAssociatedToAttEvent (Event);
|
||||
|
||||
HTM_DIV_Begin ("class=\"%s\"",Event->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Description);
|
||||
HTM_DIV_End ();
|
||||
|
||||
|
@ -1126,6 +1127,7 @@ void Att_RequestCreatOrEditAttEvent (void)
|
|||
static void Att_ShowLstGrpsToEditAttEvent (long AttCod)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Groups;
|
||||
extern const char *Txt_The_whole_course;
|
||||
unsigned NumGrpTyp;
|
||||
|
@ -1150,7 +1152,8 @@ static void Att_ShowLstGrpsToEditAttEvent (long AttCod)
|
|||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"WholeCrs\" value=\"Y\"%s"
|
||||
|
@ -1680,6 +1683,8 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
|
|||
struct UsrData *UsrDat,
|
||||
struct Att_Event *Event)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
static const char *ClassPhoto[Pho_NUM_SHAPES] =
|
||||
{
|
||||
[Pho_SHAPE_CIRCLE ] = "PHOTOC45x60",
|
||||
|
@ -1746,8 +1751,8 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr,
|
|||
|
||||
/***** Write number of student in the list *****/
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
UsrDat->Accepted ? "DAT_N" :
|
||||
"DAT",
|
||||
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (NumUsr);
|
||||
HTM_TD_End ();
|
||||
|
@ -1927,7 +1932,7 @@ void Att_RegisterMeAsStdInAttEvent (void)
|
|||
Par_GetParToHTML (Str_BuildStringStr ("CommentStd%s",
|
||||
Gbl.Usrs.Me.UsrDat.EnUsrCod),
|
||||
CommentStd,Cns_MAX_BYTES_TEXT);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
if (Present ||
|
||||
CommentStd[0] ||
|
||||
|
@ -2044,7 +2049,7 @@ void Att_RegisterStudentsInAttEvent (void)
|
|||
Par_GetParToHTML (Str_BuildStringStr ("CommentTch%s",
|
||||
Gbl.Usrs.LstUsrs[Rol_STD].Lst[NumUsr].EnUsrCod),
|
||||
CommentTch,Cns_MAX_BYTES_TEXT);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
Present = !Gbl.Usrs.LstUsrs[Rol_STD].Lst[NumUsr].Remove;
|
||||
|
||||
|
@ -2630,6 +2635,7 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
|
|||
Att_TypeOfView_t TypeOfView)
|
||||
{
|
||||
extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Events;
|
||||
extern const char *Txt_Event;
|
||||
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
|
@ -2693,7 +2699,8 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
|
|||
/* Write a row for this event */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_INPUT_CHECKBOX ("AttCods",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Event%u\" value=\"%ld\"%s",
|
||||
NumAttEvent,Events->Lst[NumAttEvent].AttCod,
|
||||
|
@ -2701,13 +2708,15 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
|
|||
"");
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent);
|
||||
HTM_TxtF ("%u:",NumAttEvent + 1);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (asprintf (&Id,"att_date_start_%u",UniqueId) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_LABEL_Begin ("for=\"Event%u\"",NumAttEvent);
|
||||
|
@ -2720,12 +2729,14 @@ static void Att_ListEventsToSelect (const struct Att_Events *Events,
|
|||
free (Id);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_Txt (Events->Lst[NumAttEvent].Title);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Txt (Events->Lst[NumAttEvent].Title);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsTotal);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsTotal);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
@ -2787,6 +2798,7 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events,
|
|||
unsigned NumUsrsInList,
|
||||
long *LstSelectedUsrCods)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Number_of_users;
|
||||
struct UsrData UsrDat;
|
||||
unsigned NumUsr;
|
||||
|
@ -2829,9 +2841,10 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events,
|
|||
{
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"DAT_N LINE_TOP RM\"",
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"%s LINE_TOP RM\"",
|
||||
Gbl.Usrs.Listing.WithPhotos ? 4 :
|
||||
3);
|
||||
3,
|
||||
The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Number_of_users);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2840,14 +2853,16 @@ static void Att_ListUsrsAttendanceTable (const struct Att_Events *Events,
|
|||
NumAttEvent++)
|
||||
if (Events->Lst[NumAttEvent].Selected)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\"");
|
||||
HTM_TD_Begin ("class=\"%s LINE_TOP RM\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Events->Lst[NumAttEvent].NumStdsFromList);
|
||||
HTM_TD_End ();
|
||||
|
||||
Total += Events->Lst[NumAttEvent].NumStdsFromList;
|
||||
}
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\"");
|
||||
HTM_TD_Begin ("class=\"%s LINE_TOP RM\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Total);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2915,6 +2930,8 @@ static void Att_WriteTableHeadSeveralAttEvents (const struct Att_Events *Events)
|
|||
static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
|
||||
unsigned NumUsr,struct UsrData *UsrDat)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
static const char *ClassPhoto[Pho_NUM_SHAPES] =
|
||||
{
|
||||
[Pho_SHAPE_CIRCLE ] = "PHOTOC21x28",
|
||||
|
@ -2930,8 +2947,8 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
|
||||
UsrDat->Accepted ? "DAT_N" :
|
||||
"DAT",
|
||||
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (NumUsr + 1);
|
||||
HTM_TD_End ();
|
||||
|
@ -2986,7 +3003,8 @@ static void Att_WriteRowUsrSeveralAttEvents (const struct Att_Events *Events,
|
|||
}
|
||||
|
||||
/***** Last column with the number of times this user is present *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (NumTimesPresent);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -3074,6 +3092,8 @@ static void Att_ListStdsWithAttEventsDetails (const struct Att_Events *Events,
|
|||
static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
|
||||
unsigned NumUsr,struct UsrData *UsrDat)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Student_comment;
|
||||
extern const char *Txt_Teachers_comment;
|
||||
static const char *ClassPhoto[Pho_NUM_SHAPES] =
|
||||
|
@ -3097,8 +3117,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
|
||||
UsrDat->Accepted ? "DAT_N" :
|
||||
"DAT",
|
||||
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TxtF ("%u:",NumUsr);
|
||||
HTM_TD_End ();
|
||||
|
@ -3117,8 +3137,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
|
|||
|
||||
/***** Write user's ID ******/
|
||||
HTM_TD_Begin ("class=\"%s LM\"",
|
||||
UsrDat->Accepted ? "DAT_N" :
|
||||
"DAT");
|
||||
UsrDat->Accepted ? The_ClassDatN[Gbl.Prefs.Theme] :
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
ID_WriteUsrIDs (UsrDat,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -3172,7 +3192,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
|
|||
Att_PutCheckOrCross (Present);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (asprintf (&Id,"att_date_start_%u_%u",NumUsr,UniqueId) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_SPAN_Begin ("id=\"%s\"",Id);
|
||||
|
@ -3197,7 +3218,8 @@ static void Att_ListAttEventsForAStd (const struct Att_Events *Events,
|
|||
HTM_TD_Begin ("class=\"BT%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LM COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
|
||||
HTM_DL_Begin ();
|
||||
if (ShowCommentStd)
|
||||
|
|
|
@ -168,26 +168,28 @@ void Ban_ShowAllBanners (void)
|
|||
|
||||
static void Ban_WriteListOfBanners (const struct Ban_Banners *Banners)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumBan;
|
||||
|
||||
/***** List start *****/
|
||||
HTM_UL_Begin ("class=\"LIST_LEFT\"");
|
||||
|
||||
/***** Write all banners *****/
|
||||
for (NumBan = 0;
|
||||
NumBan < Banners->Num;
|
||||
NumBan++)
|
||||
{
|
||||
/* Write data of this banner */
|
||||
HTM_LI_Begin (NULL);
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"",
|
||||
Banners->Lst[NumBan].WWW,
|
||||
Banners->Lst[NumBan].FullName);
|
||||
HTM_IMG (Cfg_URL_BANNER_PUBLIC,Banners->Lst[NumBan].Img,Banners->Lst[NumBan].FullName,
|
||||
"class=\"BANNER\"");
|
||||
HTM_A_End ();
|
||||
HTM_LI_End ();
|
||||
}
|
||||
/***** Write all banners *****/
|
||||
for (NumBan = 0;
|
||||
NumBan < Banners->Num;
|
||||
NumBan++)
|
||||
{
|
||||
/* Write data of this banner */
|
||||
HTM_LI_Begin (NULL);
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"",
|
||||
Banners->Lst[NumBan].WWW,
|
||||
Banners->Lst[NumBan].FullName,
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_IMG (Cfg_URL_BANNER_PUBLIC,Banners->Lst[NumBan].Img,Banners->Lst[NumBan].FullName,
|
||||
"class=\"BANNER\"");
|
||||
HTM_A_End ();
|
||||
HTM_LI_End ();
|
||||
}
|
||||
|
||||
/***** List end *****/
|
||||
HTM_UL_End ();
|
||||
|
@ -400,6 +402,7 @@ void Ban_PutIconToViewBanners (void)
|
|||
|
||||
static void Ban_ListBannersForEdition (struct Ban_Banners *Banners)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumBan;
|
||||
struct Ban_Banner *Ban;
|
||||
char *Anchor = NULL;
|
||||
|
@ -446,7 +449,7 @@ static void Ban_ListBannersForEdition (struct Ban_Banners *Banners)
|
|||
/* Banner code */
|
||||
HTM_TD_Begin ("class=\"%s RM\"",
|
||||
Ban->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_ARTICLE_Begin (Anchor);
|
||||
HTM_Long (Ban->BanCod);
|
||||
HTM_ARTICLE_End ();
|
||||
|
|
86
swad_box.c
86
swad_box.c
|
@ -82,10 +82,21 @@ void Box_BoxBegin (const char *Width,const char *Title,
|
|||
void (*FunctionToDrawContextualIcons) (void *Args),void *Args,
|
||||
const char *HelpLink,Box_Closable_t Closable)
|
||||
{
|
||||
static const char *BgColor[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "FRAME FRAME_WHITE",
|
||||
[The_THEME_GREY ] = "FRAME FRAME_GREY",
|
||||
[The_THEME_PURPLE] = "FRAME FRAME_PURPLE",
|
||||
[The_THEME_BLUE ] = "FRAME FRAME_BLUE",
|
||||
[The_THEME_YELLOW] = "FRAME FRAME_YELLOW",
|
||||
[The_THEME_PINK ] = "FRAME FRAME_PINK",
|
||||
[The_THEME_DARK ] = "FRAME FRAME_DARK",
|
||||
};
|
||||
|
||||
Box_BoxInternalBegin (Width,Title,
|
||||
FunctionToDrawContextualIcons,Args,
|
||||
HelpLink,Closable,
|
||||
"FRAME");
|
||||
BgColor[Gbl.Prefs.Theme]);
|
||||
}
|
||||
|
||||
void Box_BoxShadowBegin (const char *Width,const char *Title,
|
||||
|
@ -106,6 +117,16 @@ static void Box_BoxInternalBegin (const char *Width,const char *Title,
|
|||
{
|
||||
extern const char *Txt_Help;
|
||||
extern const char *Txt_Close;
|
||||
static const char *ClassFrameTitleColor[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "FRAME_TITLE_WHITE",
|
||||
[The_THEME_GREY ] = "FRAME_TITLE_GREY",
|
||||
[The_THEME_PURPLE] = "FRAME_TITLE_PURPLE",
|
||||
[The_THEME_BLUE ] = "FRAME_TITLE_BLUE",
|
||||
[The_THEME_YELLOW] = "FRAME_TITLE_YELLOW",
|
||||
[The_THEME_PINK ] = "FRAME_TITLE_PINK",
|
||||
[The_THEME_DARK ] = "FRAME_TITLE_DARK",
|
||||
};
|
||||
|
||||
/***** Check level of nesting *****/
|
||||
if (Gbl.Box.Nested >= Box_MAX_NESTED - 1) // Can not nest a new box
|
||||
|
@ -143,35 +164,35 @@ static void Box_BoxInternalBegin (const char *Width,const char *Title,
|
|||
/***** Row for left and right icons *****/
|
||||
HTM_DIV_Begin ("class=\"FRAME_ICO\"");
|
||||
|
||||
/* Contextual icons at left */
|
||||
if (FunctionToDrawContextualIcons)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"FRAME_ICO_LEFT\"");
|
||||
FunctionToDrawContextualIcons (Args);
|
||||
/* Contextual icons at left */
|
||||
if (FunctionToDrawContextualIcons)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"FRAME_ICO_LEFT\"");
|
||||
FunctionToDrawContextualIcons (Args);
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
||||
/* Icons at right: help and close */
|
||||
HTM_DIV_Begin ("class=\"FRAME_ICO_RIGHT\"");
|
||||
|
||||
if (HelpLink) // Link to help
|
||||
{
|
||||
HTM_A_Begin ("href=\"%s%s\" target=\"_blank\"",Hlp_WIKI,HelpLink);
|
||||
Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT",
|
||||
"question.svg",Txt_Help);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
||||
if (Closable == Box_CLOSABLE) // Icon to close the box
|
||||
{
|
||||
HTM_A_Begin ("href=\"\" onclick=\"toggleDisplay('%s');return false;\"",
|
||||
Gbl.Box.Ids[Gbl.Box.Nested]);
|
||||
Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT",
|
||||
"times.svg",Txt_Close);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
||||
/* Icons at right: help and close */
|
||||
HTM_DIV_Begin ("class=\"FRAME_ICO_RIGHT\"");
|
||||
|
||||
if (HelpLink) // Link to help
|
||||
{
|
||||
HTM_A_Begin ("href=\"%s%s\" target=\"_blank\"",Hlp_WIKI,HelpLink);
|
||||
Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT",
|
||||
"question.svg",Txt_Help);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
||||
if (Closable == Box_CLOSABLE) // Icon to close the box
|
||||
{
|
||||
HTM_A_Begin ("href=\"\" onclick=\"toggleDisplay('%s');return false;\"",
|
||||
Gbl.Box.Ids[Gbl.Box.Nested]);
|
||||
Ico_PutDivIcon ("CONTEXT_OPT HLP_HIGHLIGHT",
|
||||
"times.svg",Txt_Close);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** End row for left and right icons *****/
|
||||
HTM_DIV_End ();
|
||||
|
@ -179,10 +200,11 @@ static void Box_BoxInternalBegin (const char *Width,const char *Title,
|
|||
/***** Frame title *****/
|
||||
if (Title)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"FRAME_TITLE %s\"",
|
||||
HTM_DIV_Begin ("class=\"FRAME_TITLE %s %s\"",
|
||||
Gbl.Box.Nested ? "FRAME_TITLE_SMALL" :
|
||||
"FRAME_TITLE_BIG");
|
||||
HTM_Txt (Title);
|
||||
"FRAME_TITLE_BIG",
|
||||
ClassFrameTitleColor[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Title);
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3930,6 +3930,7 @@ static void Brw_InitHiddenLevels (void)
|
|||
|
||||
static void Brw_ShowAndStoreSizeOfFileTree (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_level;
|
||||
extern const char *Txt_levels;
|
||||
extern const char *Txt_folder;
|
||||
|
@ -3939,7 +3940,7 @@ static void Brw_ShowAndStoreSizeOfFileTree (void)
|
|||
extern const char *Txt_of_PART_OF_A_TOTAL;
|
||||
char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1];
|
||||
|
||||
HTM_DIV_Begin ("class=\"DAT CM\"");
|
||||
HTM_DIV_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
if (Brw_FileBrowserIsEditable[Gbl.FileBrowser.Type])
|
||||
{
|
||||
|
@ -7828,6 +7829,7 @@ bool Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_t FileType,const cha
|
|||
void Brw_ShowFileMetadata (void)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_The_file_of_folder_no_longer_exists_or_is_now_hidden;
|
||||
extern const char *Txt_Filename;
|
||||
extern const char *Txt_File_size;
|
||||
|
@ -7998,7 +8000,7 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TxtColon (Txt_Filename);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Brw_WriteSmallLinkToDownloadFile (URL,&FileMetadata,FileNameToShow);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -8011,7 +8013,7 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TxtColon (Txt_Uploaded_by);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (FileHasPublisher)
|
||||
{
|
||||
/* Show photo */
|
||||
|
@ -8042,7 +8044,7 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TxtColon (Txt_File_size);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (FileSizeStr);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -8055,7 +8057,8 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TxtColon (Txt_Date_of_creation);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("id=\"filedate\" class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("id=\"filedate\" class=\"%s LB\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Dat_WriteLocalDateHMSFromUTC ("filedate",FileMetadata.Time,
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||
true,true,true,0x7);
|
||||
|
@ -8070,7 +8073,7 @@ void Brw_ShowFileMetadata (void)
|
|||
Frm_LabelColumn ("RT","PublicFile",Txt_Availability);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanChangePublic) // I can change file to public
|
||||
{
|
||||
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
|
@ -8097,7 +8100,7 @@ void Brw_ShowFileMetadata (void)
|
|||
Frm_LabelColumn ("RT","License",Txt_License);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit) // I can edit file properties
|
||||
{
|
||||
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
|
@ -8128,7 +8131,7 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TxtColon (Txt_My_views);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (FileMetadata.NumMyViews);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -8142,7 +8145,7 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TxtColon (Txt_Identified_views);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%u ",FileMetadata.NumViewsFromLoggedUsrs);
|
||||
HTM_TxtF ("(%u %s)",
|
||||
FileMetadata.NumLoggedUsrs,
|
||||
|
@ -8159,7 +8162,7 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TxtColon (Txt_Public_views);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (FileMetadata.NumPublicViews);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -8536,6 +8539,7 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL,
|
|||
struct FileMetadata *FileMetadata,
|
||||
const char *FileNameToShow)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Check_marks_in_the_file;
|
||||
|
||||
/***** On the screen a link will be shown to download the file *****/
|
||||
|
@ -8553,7 +8557,10 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL,
|
|||
Brw_PutImplicitParamsFileBrowser (&Gbl.FileBrowser.FilFolLnk);
|
||||
|
||||
/* Begin link */
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Check_marks_in_the_file,"BT_LINK DAT",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Check_marks_in_the_file,
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* Name of the file of marks */
|
||||
HTM_Txt (FileNameToShow);
|
||||
|
@ -8567,8 +8574,8 @@ static void Brw_WriteSmallLinkToDownloadFile (const char *URL,
|
|||
else
|
||||
{
|
||||
/* Put anchor and filename */
|
||||
HTM_A_Begin ("href=\"%s\" class=\"DAT\" title=\"%s\" target=\"_blank\"",
|
||||
URL,FileNameToShow);
|
||||
HTM_A_Begin ("href=\"%s\" class=\"%s\" title=\"%s\" target=\"_blank\"",
|
||||
URL,The_ClassDat[Gbl.Prefs.Theme],FileNameToShow);
|
||||
HTM_Txt (FileNameToShow);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
@ -9807,7 +9814,7 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs,
|
|||
TitlePlural),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Write heading *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -9861,6 +9868,8 @@ void Brw_ListDocsFound (MYSQL_RES **mysql_res,unsigned NumDocs,
|
|||
|
||||
static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Documents_area;
|
||||
extern const char *Txt_Teachers_files_area;
|
||||
extern const char *Txt_Shared_files_area;
|
||||
|
@ -9931,7 +9940,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Write number of document in this search *****/
|
||||
HTM_TD_Begin ("class=\"RT DAT %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"RT %s %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (++(*NumDocsNotHidden));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -9941,9 +9951,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeInsInf);
|
||||
Deg_PutParamDegCod (InsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (InsShortName),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (InsShortName),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
Lgo_DrawLogo (HieLvl_INS,InsCod,InsShortName,20,"BT_LINK LT",true);
|
||||
HTM_TxtF (" %s",InsShortName);
|
||||
HTM_BUTTON_End ();
|
||||
|
@ -9957,9 +9968,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeCtrInf);
|
||||
Deg_PutParamDegCod (CtrCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (CtrShortName),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (CtrShortName),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
Lgo_DrawLogo (HieLvl_CTR,CtrCod,CtrShortName,20,"LT",true);
|
||||
HTM_TxtF (" %s",CtrShortName);
|
||||
HTM_BUTTON_End ();
|
||||
|
@ -9973,9 +9985,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeDegInf);
|
||||
Deg_PutParamDegCod (DegCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (DegShortName),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (DegShortName),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
Lgo_DrawLogo (HieLvl_DEG,DegCod,DegShortName,20,"LT",true);
|
||||
HTM_TxtF (" %s",DegShortName);
|
||||
HTM_BUTTON_End ();
|
||||
|
@ -9989,8 +10002,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeCrsInf);
|
||||
Crs_PutParamCrsCod (CrsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (CrsShortName),"BT_LINK DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (CrsShortName),
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_Txt (CrsShortName);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -10042,7 +10057,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
break;
|
||||
}
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Txt (Title);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -10052,7 +10068,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
FileNameToShow);
|
||||
|
||||
/***** Write file name using path (row[1]) *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N LT %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s LT %s\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
|
||||
|
||||
/* Begin form */
|
||||
Action = Brw_ActReqDatFile[Brw_FileBrowserForFoundDocs[FileMetadata.FileBrowser]];
|
||||
|
@ -10092,7 +10109,10 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row)
|
|||
FileMetadata.FilCod);
|
||||
|
||||
/* File or folder icon */
|
||||
HTM_BUTTON_SUBMIT_Begin (FileNameToShow,"BT_LINK LT DAT_N",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (FileNameToShow,
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
if (FileMetadata.FilFolLnk.Type == Brw_IS_FOLDER)
|
||||
/* Icon with folder */
|
||||
Ico_PutIcon ("folder-yellow.png",Txt_Folder,"CONTEXT_ICO_16x16");
|
||||
|
|
|
@ -92,6 +92,7 @@ void Bld_ResetBuildings (struct Bld_Buildings *Buildings)
|
|||
void Bld_SeeBuildings (void)
|
||||
{
|
||||
extern const char *Hlp_CENTER_Buildings;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Buildings;
|
||||
extern const char *Txt_BUILDINGS_HELP_ORDER[Bld_NUM_ORDERS];
|
||||
extern const char *Txt_BUILDINGS_ORDER[Bld_NUM_ORDERS];
|
||||
|
@ -148,17 +149,20 @@ void Bld_SeeBuildings (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Short name */
|
||||
HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LM %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Buildings.Lst[NumBuilding].ShrtName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Full name */
|
||||
HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LM %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Buildings.Lst[NumBuilding].FullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Location */
|
||||
HTM_TD_Begin ("class=\"DAT LM %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LM %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Buildings.Lst[NumBuilding].Location);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -404,6 +408,7 @@ void Bld_FreeListBuildings (struct Bld_Buildings *Buildings)
|
|||
|
||||
static void Bld_ListBuildingsForEdition (const struct Bld_Buildings *Buildings)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumBld;
|
||||
struct Bld_Building *Building;
|
||||
char *Anchor = NULL;
|
||||
|
@ -433,7 +438,7 @@ static void Bld_ListBuildingsForEdition (const struct Bld_Buildings *Buildings)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Building code */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_ARTICLE_Begin (Anchor);
|
||||
HTM_Long (Building->BldCod);
|
||||
HTM_ARTICLE_End ();
|
||||
|
|
|
@ -134,7 +134,7 @@ void Cal_ShowFormToSelFirstDayOfWeek (Act_Action_t Action,
|
|||
Ico_PutSettingIconLink (Icon,
|
||||
Str_BuildStringStr (Txt_First_day_of_the_week_X,
|
||||
Txt_DAYS_SMALL[FirstDayOfWeek]));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
|
|
@ -105,6 +105,7 @@ static void Ctr_FormToGoToMap (struct Ctr_Center *Ctr);
|
|||
void Ctr_SeeCtrWithPendingDegs (void)
|
||||
{
|
||||
extern const char *Hlp_SYSTEM_Pending;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Centers_with_pending_degrees;
|
||||
extern const char *Txt_Center;
|
||||
extern const char *Txt_Degrees_ABBREVIATION;
|
||||
|
@ -157,7 +158,8 @@ void Ctr_SeeCtrWithPendingDegs (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of pending degrees (row[1]) */
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Txt (row[1]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -186,8 +188,8 @@ void Ctr_DrawCenterLogoAndNameWithLink (struct Ctr_Center *Ctr,Act_Action_t Acti
|
|||
Ctr_PutParamCtrCod (Ctr->CtrCod);
|
||||
|
||||
/***** Link to action *****/
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Ctr->FullName),ClassLink,NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Ctr->FullName),ClassLink,NULL);
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Center logo and name *****/
|
||||
Lgo_DrawLogo (HieLvl_CTR,Ctr->CtrCod,Ctr->ShrtName,16,ClassLogo,true);
|
||||
|
@ -248,7 +250,7 @@ static void Ctr_ListCenters (void)
|
|||
Gbl.Hierarchy.Ins.FullName),
|
||||
Ctr_PutIconsListingCenters,NULL,
|
||||
Hlp_INSTITUTION_Centers,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
if (Gbl.Hierarchy.Ctrs.Num) // There are centers in the current institution
|
||||
{
|
||||
|
@ -325,6 +327,8 @@ static void Ctr_PutIconToEditCenters (void)
|
|||
|
||||
static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_CENTER_STATUS[Hie_NUM_STATUS_TXT];
|
||||
struct Plc_Place Plc;
|
||||
const char *TxtClassNormal;
|
||||
|
@ -338,12 +342,12 @@ static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr)
|
|||
if (Ctr->Status & Hie_STATUS_BIT_PENDING)
|
||||
{
|
||||
TxtClassNormal = "DAT_LIGHT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_LIGHT";
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
|
||||
}
|
||||
else
|
||||
{
|
||||
TxtClassNormal = "DAT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_N";
|
||||
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
}
|
||||
BgColor = (Ctr->CtrCod == Gbl.Hierarchy.Ctr.CtrCod) ? "LIGHT_BLUE" :
|
||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||
|
@ -394,6 +398,7 @@ static void Ctr_ListOneCenterForSeeing (struct Ctr_Center *Ctr,unsigned NumCtr)
|
|||
|
||||
HTM_TR_End ();
|
||||
|
||||
Str_FreeStrings ();
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
|
@ -452,7 +457,7 @@ static void Ctr_EditCentersInternal (void)
|
|||
Gbl.Hierarchy.Ins.FullName),
|
||||
Ctr_PutIconsEditingCenters,NULL,
|
||||
Hlp_INSTITUTION_Centers,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Put a form to create a new center *****/
|
||||
Ctr_PutFormToCreateCenter (&Places);
|
||||
|
@ -740,6 +745,7 @@ void Ctr_WriteSelectorOfCenter (void)
|
|||
|
||||
static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Another_place;
|
||||
extern const char *Txt_CENTER_STATUS[Hie_NUM_STATUS_TXT];
|
||||
unsigned NumCtr;
|
||||
|
@ -791,7 +797,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Center code */
|
||||
HTM_TD_Begin ("class=\"DAT CODE\"");
|
||||
HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Ctr->CtrCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -801,7 +807,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Place */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActChgCtrPlc);
|
||||
|
@ -829,7 +835,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Center short name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenCtrSho);
|
||||
|
@ -844,7 +850,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Center full name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenCtrFul);
|
||||
|
@ -859,7 +865,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Center WWW */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActChgCtrWWW);
|
||||
|
@ -873,7 +879,10 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
Str_Copy (WWW,Ctr->WWW,sizeof (WWW) - 1);
|
||||
HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\"");
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\""
|
||||
" class=\"DAT\" title=\"%s\"",Ctr->WWW,Ctr->WWW);
|
||||
" class=\"%s\" title=\"%s\"",
|
||||
Ctr->WWW,
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Ctr->WWW);
|
||||
HTM_Txt (WWW);
|
||||
HTM_A_End ();
|
||||
HTM_DIV_End ();
|
||||
|
@ -881,17 +890,17 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of users who claim to belong to this center */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrsCtr);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of degrees */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumDegs);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of users in courses of this center */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrsInCrssOfCtr);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -900,7 +909,8 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places)
|
|||
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS);
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Msg_WriteMsgAuthor (&UsrDat,true,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1257,8 +1267,8 @@ static void Ctr_ShowAlertAndButtonToGoToCtr (void)
|
|||
Ale_ShowLastAlertAndButton (ActSeeDeg,NULL,NULL,
|
||||
Ctr_PutParamGoToCtr,&Ctr_EditingCtr->CtrCod,
|
||||
Btn_CONFIRM_BUTTON,
|
||||
Hie_BuildGoToMsg (Ctr_EditingCtr->ShrtName));
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_BuildGoToMsg (Ctr_EditingCtr->ShrtName));
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
/***** Alert *****/
|
||||
|
@ -1277,6 +1287,7 @@ static void Ctr_PutParamGoToCtr (void *CtrCod)
|
|||
|
||||
static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_center;
|
||||
extern const char *Txt_Another_place;
|
||||
extern const char *Txt_Create_center;
|
||||
|
@ -1350,27 +1361,28 @@ static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Number of users who claim to belong to this center *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of degrees *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of users in courses of this center *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Center requester *****/
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Center status *****/
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
@ -1824,7 +1836,7 @@ void Ctr_ListCtrsFound (MYSQL_RES **mysql_res,unsigned NumCtrs)
|
|||
Txt_centers),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Write heading *****/
|
||||
Ctr_PutHeadCentersForSeeing (false); // Order not selectable
|
||||
|
|
|
@ -433,6 +433,7 @@ static void CtrCfg_Altitude (void)
|
|||
static void CtrCfg_Photo (bool PrintView,bool PutForm,bool PutLink,
|
||||
const char PathPhoto[PATH_MAX + 1])
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
char *PhotoAttribution = NULL;
|
||||
char *URL;
|
||||
char *Icon;
|
||||
|
@ -449,8 +450,8 @@ static void CtrCfg_Photo (bool PrintView,bool PutForm,bool PutLink,
|
|||
/***** Photo image *****/
|
||||
HTM_DIV_Begin ("class=\"DAT_SMALL CM\"");
|
||||
if (PutLink)
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"",
|
||||
Gbl.Hierarchy.Ctr.WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
|
||||
Gbl.Hierarchy.Ctr.WWW,The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (asprintf (&URL,"%s/%02u/%u",
|
||||
Cfg_URL_CTR_PUBLIC,
|
||||
(unsigned) (Gbl.Hierarchy.Ctr.CtrCod % 100),
|
||||
|
@ -546,6 +547,7 @@ static void CtrCfg_FreePhotoAttr (char **PhotoAttribution)
|
|||
|
||||
static void CtrCfg_Institution (bool PrintView,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Institution;
|
||||
unsigned NumIns;
|
||||
|
||||
|
@ -558,7 +560,7 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
|
|||
Txt_Institution);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Get list of institutions of the current country */
|
||||
|
@ -587,9 +589,10 @@ static void CtrCfg_Institution (bool PrintView,bool PutForm)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeInsInf);
|
||||
Ins_PutParamInsCod (Gbl.Hierarchy.Ins.InsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Ins.ShrtName),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Ins.ShrtName),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
Lgo_DrawLogo (HieLvl_INS,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Ins.ShrtName,
|
||||
|
@ -635,6 +638,7 @@ static void CtrCfg_ShrtName (bool PutForm)
|
|||
|
||||
static void CtrCfg_Place (bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Place;
|
||||
extern const char *Txt_Another_place;
|
||||
struct Plc_Places Places;
|
||||
|
@ -657,7 +661,7 @@ static void CtrCfg_Place (bool PutForm)
|
|||
Txt_Place);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Get list of places of the current institution */
|
||||
|
@ -723,6 +727,7 @@ static void CtrCfg_QR (void)
|
|||
|
||||
static void CtrCfg_NumUsrs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Users_of_the_center;
|
||||
|
||||
/***** Number of users *****/
|
||||
|
@ -732,7 +737,7 @@ static void CtrCfg_NumUsrs (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Users_of_the_center);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ctr_GetCachedNumUsrsWhoClaimToBelongToCtr (&Gbl.Hierarchy.Ctr));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -745,6 +750,7 @@ static void CtrCfg_NumUsrs (void)
|
|||
|
||||
static void CtrCfg_NumDegs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Degrees;
|
||||
extern const char *Txt_Degrees_of_CENTER_X;
|
||||
|
||||
|
@ -760,8 +766,9 @@ static void CtrCfg_NumDegs (void)
|
|||
Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Degrees_of_CENTER_X,
|
||||
Gbl.Hierarchy.Ctr.ShrtName),
|
||||
"BT_LINK DAT",NULL);
|
||||
Str_FreeString ();
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_Unsigned (Deg_GetCachedNumDegsInCtr (Gbl.Hierarchy.Ctr.CtrCod));
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -776,6 +783,7 @@ static void CtrCfg_NumDegs (void)
|
|||
|
||||
static void CtrCfg_NumCrss (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Courses;
|
||||
|
||||
/***** Number of courses *****/
|
||||
|
@ -785,7 +793,7 @@ static void CtrCfg_NumCrss (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Courses);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInCtr (Gbl.Hierarchy.Ctr.CtrCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -602,10 +602,13 @@ TODO: FIX BUG, URGENT! En las fechas como par
|
|||
|
||||
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.68 (2021-12-08)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 21.69 (2021-12-15)"
|
||||
#define CSS_FILE "swad21.68.css"
|
||||
#define JS_FILE "swad21.67.4.js"
|
||||
/*
|
||||
// TODO: al ver los resultados de un juego como profesor, el rol del estudiante sale como desconocido y no se puede ver el DNI
|
||||
|
||||
Version 21.69: Dec 15, 2021 Working on design of dark theme. (321089 lines)
|
||||
Version 21.68: Dec 08, 2021 Beginning design of dark theme. (320444 lines)
|
||||
Copy the following icons to icon public directory:
|
||||
sudo mkdir /var/www/html/swad/icon/theme/dark
|
||||
|
|
|
@ -103,6 +103,7 @@ void Cht_ShowChatRooms (void)
|
|||
|
||||
void Cht_ShowListOfAvailableChatRooms (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Chat_rooms;
|
||||
extern const char *Txt_General;
|
||||
extern const char *Txt_SEX_PLURAL_Abc[Usr_NUM_SEXS];
|
||||
|
@ -135,7 +136,7 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
|||
HTM_UL_Begin ("class=\"LIST_TREE\"");
|
||||
|
||||
/***** Title of top level *****/
|
||||
HTM_LI_Begin ("class=\"DAT\"");
|
||||
HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Ico_PutIcon ("comments.svg",Txt_Chat_rooms,"ICO16x16");
|
||||
HTM_TxtF (" %s",Txt_Chat_rooms);
|
||||
HTM_LI_End ();
|
||||
|
@ -242,6 +243,7 @@ void Cht_ShowListOfAvailableChatRooms (void)
|
|||
|
||||
void Cht_ShowListOfChatRoomsWithUsrs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Rooms_with_users;
|
||||
extern const char *Txt_CHAT_Room_code;
|
||||
extern const char *Txt_Number_of_users;
|
||||
|
@ -275,11 +277,11 @@ void Cht_ShowListOfChatRoomsWithUsrs (void)
|
|||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (row[0]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (row[1]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -55,6 +55,8 @@ static void Coo_PutIconsCookies (__attribute__((unused)) void *Args);
|
|||
void Coo_EditMyPrefsOnCookies (void)
|
||||
{
|
||||
extern const char *Hlp_PROFILE_Settings_cookies;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Cookies;
|
||||
extern const char *Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites;
|
||||
|
||||
|
@ -71,17 +73,19 @@ void Coo_EditMyPrefsOnCookies (void)
|
|||
Frm_BeginFormAnchor (ActChgCooPrf,Coo_COOKIES_ID);
|
||||
|
||||
/* Begin container */
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies) ? "DAT_N LIGHT_BLUE" :
|
||||
"DAT");
|
||||
/* Check box */
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("cookies",HTM_SUBMIT_ON_CHANGE,
|
||||
"value=\"Y\"%s",
|
||||
Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies ? " checked=\"checked\"" :
|
||||
"");
|
||||
HTM_Txt (Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites);
|
||||
HTM_LABEL_End ();
|
||||
if (Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies)
|
||||
HTM_DIV_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
else
|
||||
HTM_DIV_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
/* Check box */
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("cookies",HTM_SUBMIT_ON_CHANGE,
|
||||
"value=\"Y\"%s",
|
||||
Gbl.Usrs.Me.UsrDat.Prefs.AcceptCookies ? " checked=\"checked\"" :
|
||||
"");
|
||||
HTM_Txt (Txt_Accept_third_party_cookies_to_view_multimedia_content_from_other_websites);
|
||||
HTM_LABEL_End ();
|
||||
|
||||
/* End container */
|
||||
HTM_DIV_End ();
|
||||
|
|
100
swad_country.c
100
swad_country.c
|
@ -98,6 +98,7 @@ static void Cty_FormToGoToMap (struct Cty_Countr *Cty);
|
|||
void Cty_SeeCtyWithPendingInss (void)
|
||||
{
|
||||
extern const char *Hlp_SYSTEM_Pending;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Countries_with_pending_institutions;
|
||||
extern const char *Txt_Country;
|
||||
extern const char *Txt_Institutions_ABBREVIATION;
|
||||
|
@ -156,11 +157,13 @@ void Cty_SeeCtyWithPendingInss (void)
|
|||
Cty_DrawCountryMapAndNameWithLink (&Cty,ActSeeIns,
|
||||
"COUNTRY_SMALL",
|
||||
"COUNTRY_MAP_SMALL",
|
||||
"BT_LINK DAT");
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]));
|
||||
Str_FreeStrings ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of pending institutions (row[1]) */
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Txt (row[1]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -204,6 +207,7 @@ void Cty_ListCountries1 (void)
|
|||
void Cty_ListCountries2 (void)
|
||||
{
|
||||
extern const char *Hlp_SYSTEM_Countries;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Countries;
|
||||
extern const char *Txt_Other_countries;
|
||||
extern const char *Txt_Country_unspecified;
|
||||
|
@ -228,7 +232,8 @@ void Cty_ListCountries2 (void)
|
|||
|
||||
/***** Separation row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("colspan=\"8\" class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("colspan=\"8\" class=\"%s CM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_NBSP ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
|
@ -236,40 +241,40 @@ void Cty_ListCountries2 (void)
|
|||
/***** Write users and institutions in other countries *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Other_countries);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of users who claim to belong to another country */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Cty_GetCachedNumUsrsWhoClaimToBelongToAnotherCty ());
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of institutions in other countries */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ins_GetCachedNumInssInCty (0));
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of centers in other countries */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ctr_GetCachedNumCtrsInCty (0));
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of degrees in other countries */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Deg_GetCachedNumDegsInCty (0));
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of courses in other countries */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInCty (0));
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of users in courses of other countries */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Enr_GetCachedNumUsrsInCrss (HieLvl_CTY,0,
|
||||
1 << Rol_STD |
|
||||
1 << Rol_NET |
|
||||
|
@ -281,39 +286,39 @@ void Cty_ListCountries2 (void)
|
|||
/***** Write users and institutions with unknown country *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Country_unspecified);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of users who do not claim to belong to any country */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Cty_GetCachedNumUsrsWhoDontClaimToBelongToAnyCty ());
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of institutions with unknown country */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ins_GetCachedNumInssInCty (-1L));
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of centers with unknown country */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ctr_GetCachedNumCtrsInCty (-1L));
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of degrees with unknown country */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Deg_GetCachedNumDegsInCty (-1L));
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of courses with unknown country */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInCty (-1L));
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -395,6 +400,8 @@ static void Cty_PutHeadCountriesForSeeing (bool OrderSelectable)
|
|||
|
||||
static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
const char *BgColor;
|
||||
|
||||
BgColor = (Cty->CtyCod == Gbl.Hierarchy.Cty.CtyCod) ? "LIGHT_BLUE" :
|
||||
|
@ -403,7 +410,7 @@ static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Number of country in this list *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (NumCty);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -412,36 +419,37 @@ static void Cty_ListOneCountryForSeeing (struct Cty_Countr *Cty,unsigned NumCty)
|
|||
Cty_DrawCountryMapAndNameWithLink (Cty,ActSeeIns,
|
||||
"COUNTRY_SMALL",
|
||||
"COUNTRY_MAP_SMALL",
|
||||
"BT_LINK DAT_N");
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDatN[Gbl.Prefs.Theme]));
|
||||
Str_FreeStrings ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of users who claim to belong to this country *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (Cty_GetCachedNumUsrsWhoClaimToBelongToCty (Cty));
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of institutions *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (Ins_GetCachedNumInssInCty (Cty->CtyCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of centers *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (Ctr_GetCachedNumCtrsInCty (Cty->CtyCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of degrees *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (Deg_GetCachedNumDegsInCty (Cty->CtyCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of courses *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInCty (Cty->CtyCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of users in courses *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (Enr_GetCachedNumUsrsInCrss (HieLvl_CTY,Cty->CtyCod,
|
||||
1 << Rol_STD |
|
||||
1 << Rol_NET |
|
||||
|
@ -505,9 +513,9 @@ void Cty_DrawCountryMapAndNameWithLink (struct Cty_Countr *Cty,Act_Action_t Acti
|
|||
HTM_DIV_Begin ("class=\"%s\"",ClassContainer);
|
||||
|
||||
/***** Link to action *****/
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Cty->Name[Gbl.Prefs.Language]),
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Cty->Name[Gbl.Prefs.Language]),
|
||||
ClassLink,NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Draw country map *****/
|
||||
Cty_DrawCountryMap (Cty,ClassMap);
|
||||
|
@ -548,7 +556,7 @@ void Cty_DrawCountryMap (struct Cty_Countr *Cty,const char *Class)
|
|||
HTM_IMG (URL,Str_BuildStringStr ("%s.png",Cty->Alpha2),
|
||||
Cty->Name[Gbl.Prefs.Language],
|
||||
"class=\"%s\"",Class);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
free (URL);
|
||||
}
|
||||
else
|
||||
|
@ -1040,6 +1048,7 @@ void Cty_FreeListCountries (void)
|
|||
|
||||
static void Cty_ListCountriesForEdition (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_STR_LANG_NAME[1 + Lan_NUM_LANGUAGES];
|
||||
unsigned NumCty;
|
||||
struct Cty_Countr *Cty;
|
||||
|
@ -1082,24 +1091,28 @@ static void Cty_ListCountriesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Numerical country code (ISO 3166-1) */
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES);
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"",
|
||||
1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%03ld",Cty->CtyCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Alphabetic country code with 2 letters (ISO 3166-1) */
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES);
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"",
|
||||
1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Cty->Alpha2);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Empty (3);
|
||||
|
||||
/* Number of users */
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES);
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"",
|
||||
1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrsCty);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of institutions */
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES);
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"",
|
||||
1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumInss);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1113,7 +1126,7 @@ static void Cty_ListCountriesForEdition (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Language */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_STR_LANG_NAME[Lan]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1395,8 +1408,8 @@ static void Cty_ShowAlertAndButtonToGoToCty (void)
|
|||
Ale_ShowLastAlertAndButton (ActSeeIns,NULL,NULL,
|
||||
Cty_PutParamGoToCty,&Cty_EditingCty->CtyCod,
|
||||
Btn_CONFIRM_BUTTON,
|
||||
Hie_BuildGoToMsg (Cty_EditingCty->Name[Gbl.Prefs.Language]));
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_BuildGoToMsg (Cty_EditingCty->Name[Gbl.Prefs.Language]));
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
/***** Alert *****/
|
||||
|
@ -1416,9 +1429,10 @@ static void Cty_PutParamGoToCty (void *CtyCod)
|
|||
|
||||
static void Cty_PutFormToCreateCountry (void)
|
||||
{
|
||||
extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_country;
|
||||
extern const char *Txt_STR_LANG_NAME[1 + Lan_NUM_LANGUAGES];
|
||||
extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES];
|
||||
extern const char *Txt_Create_country;
|
||||
Lan_Language_t Lan;
|
||||
char StrCtyCod[Cns_MAX_DECIMAL_DIGITS_LONG + 1];
|
||||
|
@ -1460,12 +1474,14 @@ static void Cty_PutFormToCreateCountry (void)
|
|||
HTM_TD_Empty (3);
|
||||
|
||||
/***** Number of users *****/
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES);
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"",
|
||||
1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of institutions *****/
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"DAT RT\"",1 + Lan_NUM_LANGUAGES);
|
||||
HTM_TD_Begin ("rowspan=\"%u\" class=\"%s RT\"",
|
||||
1 + Lan_NUM_LANGUAGES,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1479,7 +1495,7 @@ static void Cty_PutFormToCreateCountry (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Language */
|
||||
HTM_TD_Begin ("class=\"DAT RT\"");
|
||||
HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_STR_LANG_NAME[Lan]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1796,7 +1812,7 @@ void Cty_ListCtysFound (MYSQL_RES **mysql_res,unsigned NumCtys)
|
|||
Txt_countries),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Write heading *****/
|
||||
Cty_PutHeadCountriesForSeeing (false); // Order not selectable
|
||||
|
|
|
@ -357,6 +357,7 @@ static void CtyCfg_MapImage (bool PrintView,bool PutLink)
|
|||
|
||||
static void CtyCfg_Platform (bool PrintView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Platform;
|
||||
|
||||
/***** Institution *****/
|
||||
|
@ -366,13 +367,14 @@ static void CtyCfg_Platform (bool PrintView)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Platform);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (!PrintView)
|
||||
{
|
||||
Frm_BeginFormGoTo (ActSeeSysInf);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Cfg_PLATFORM_SHORT_NAME),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Cfg_PLATFORM_SHORT_NAME),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
Ico_PutIcon ("swad64x64.png",Cfg_PLATFORM_FULL_NAME,"ICO20x20");
|
||||
HTM_NBSP ();
|
||||
|
@ -393,6 +395,7 @@ static void CtyCfg_Platform (bool PrintView)
|
|||
|
||||
static void CtyCfg_Name (bool PutLink)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Country;
|
||||
|
||||
/***** Country name *****/
|
||||
|
@ -402,10 +405,11 @@ static void CtyCfg_Name (bool PutLink)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Country);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT_N LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (PutLink)
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"",
|
||||
Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language]);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
|
||||
Gbl.Hierarchy.Cty.WWW[Gbl.Prefs.Language],
|
||||
The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]);
|
||||
if (PutLink)
|
||||
HTM_A_End ();
|
||||
|
@ -438,6 +442,7 @@ static void CtyCfg_QR (void)
|
|||
|
||||
static void CtyCfg_NumUsrs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Users_of_the_country;
|
||||
|
||||
/***** Number of users *****/
|
||||
|
@ -447,7 +452,7 @@ static void CtyCfg_NumUsrs (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Users_of_the_country);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Cty_GetCachedNumUsrsWhoClaimToBelongToCty (&Gbl.Hierarchy.Cty));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -460,6 +465,7 @@ static void CtyCfg_NumUsrs (void)
|
|||
|
||||
static void CtyCfg_NumInss (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Institutions;
|
||||
extern const char *Txt_Institutions_of_COUNTRY_X;
|
||||
|
||||
|
@ -475,8 +481,9 @@ static void CtyCfg_NumInss (void)
|
|||
Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Institutions_of_COUNTRY_X,
|
||||
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
|
||||
"BT_LINK DAT",NULL);
|
||||
Str_FreeString ();
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_Unsigned (Ins_GetCachedNumInssInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -491,6 +498,7 @@ static void CtyCfg_NumInss (void)
|
|||
|
||||
static void CtyCfg_NumDegs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Degrees;
|
||||
|
||||
/***** Number of degrees *****/
|
||||
|
@ -500,7 +508,7 @@ static void CtyCfg_NumDegs (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Degrees);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Deg_GetCachedNumDegsInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -513,6 +521,7 @@ static void CtyCfg_NumDegs (void)
|
|||
|
||||
static void CtyCfg_NumCrss (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Courses;
|
||||
|
||||
/***** Number of courses *****/
|
||||
|
@ -522,7 +531,7 @@ static void CtyCfg_NumCrss (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Courses);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInCty (Gbl.Hierarchy.Cty.CtyCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -364,11 +364,11 @@ static void Crs_WriteListMyCoursesToSelectOne (void)
|
|||
Lay_IndentDependingOnLevel (5,IsLastItemInLevel);
|
||||
Frm_BeginForm (ActMyCrs);
|
||||
Crs_PutParamCrsCod (Hie.Crs.CrsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Hie.Crs.ShrtName),
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Hie.Crs.ShrtName),
|
||||
Highlight ? ClassHighlight :
|
||||
ClassNormal,
|
||||
NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_FreeStrings ();
|
||||
Ico_PutIcon ("chalkboard-teacher.svg",Hie.Crs.FullName,"ICO16x16");
|
||||
HTM_TxtF (" %s",Hie.Crs.ShrtName);
|
||||
HTM_BUTTON_End ();
|
||||
|
@ -851,7 +851,7 @@ static void Crs_ListCourses (void)
|
|||
Gbl.Hierarchy.Deg.ShrtName),
|
||||
Crs_PutIconsListCourses,NULL,
|
||||
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
if (Gbl.Hierarchy.Crss.Num) // There are courses in the current degree
|
||||
{
|
||||
|
@ -928,6 +928,8 @@ static void Crs_PutIconToEditCourses (void)
|
|||
|
||||
static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_COURSE_With_users;
|
||||
extern const char *Txt_COURSE_Without_users;
|
||||
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
|
||||
|
@ -952,12 +954,12 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
|||
if (Crs->Status & Hie_STATUS_BIT_PENDING)
|
||||
{
|
||||
TxtClassNormal = "DAT_LIGHT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_LIGHT";
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
|
||||
}
|
||||
else
|
||||
{
|
||||
TxtClassNormal = "DAT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_N";
|
||||
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
}
|
||||
|
||||
/* Check if this course is one of my courses */
|
||||
|
@ -997,9 +999,9 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
|||
HTM_TD_Begin ("class=\"%s LM %s\"",TxtClassStrong,BgColor);
|
||||
Frm_BeginFormGoTo (ActSeeCrsInf);
|
||||
Crs_PutParamCrsCod (Crs->CrsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs->FullName),
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs->FullName),
|
||||
TxtClassStrong,NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_FreeStrings ();
|
||||
HTM_Txt (Crs->FullName);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -1020,6 +1022,8 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year)
|
|||
Hie_WriteStatusCell (Crs->Status,TxtClassNormal,BgColor,Txt_COURSE_STATUS);
|
||||
|
||||
HTM_TR_End ();
|
||||
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1061,7 +1065,7 @@ static void Crs_EditCoursesInternal (void)
|
|||
Gbl.Hierarchy.Deg.ShrtName),
|
||||
Crs_PutIconsEditingCourses,NULL,
|
||||
Hlp_DEGREE_Courses,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Put a form to create or request a new course *****/
|
||||
Crs_PutFormToCreateCourse ();
|
||||
|
@ -1138,6 +1142,7 @@ static void Crs_ListCoursesForEdition (void)
|
|||
|
||||
static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
|
||||
extern const char *Txt_COURSE_STATUS[Hie_NUM_STATUS_TXT];
|
||||
struct Crs_Course *Crs;
|
||||
|
@ -1181,12 +1186,12 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Course code */
|
||||
HTM_TD_Begin ("class=\"DAT CODE\"");
|
||||
HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Crs->CrsCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Institutional code of the course */
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActChgInsCrsCod);
|
||||
|
@ -1201,7 +1206,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Course year */
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActChgCrsYea);
|
||||
|
@ -1224,7 +1229,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Course short name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenCrsSho);
|
||||
|
@ -1239,7 +1244,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Course full name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenCrsFul);
|
||||
|
@ -1254,13 +1259,13 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Current number of teachers in this course */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrs[Rol_TCH] +
|
||||
NumUsrs[Rol_NET]);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Current number of students in this course */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrs[Rol_STD]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1269,7 +1274,8 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year)
|
|||
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS);
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Msg_WriteMsgAuthor (&UsrDat,true,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1303,6 +1309,7 @@ static bool Crs_CheckIfICanEdit (struct Crs_Course *Crs)
|
|||
|
||||
static void Crs_PutFormToCreateCourse (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_course;
|
||||
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
|
||||
extern const char *Txt_Create_course;
|
||||
|
@ -1370,22 +1377,23 @@ static void Crs_PutFormToCreateCourse (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Current number of teachers in this course *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Current number of students in this course *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Course requester *****/
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Course status *****/
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
@ -2130,8 +2138,8 @@ static void Crs_PutButtonToGoToCrs (void)
|
|||
{
|
||||
Frm_BeginForm (ActSeeCrsInf);
|
||||
Crs_PutParamCrsCod (Crs_EditingCrs->CrsCod);
|
||||
Btn_PutConfirmButton (Hie_BuildGoToMsg (Crs_EditingCrs->ShrtName));
|
||||
Hie_FreeGoToMsg ();
|
||||
Btn_PutConfirmButton (Str_BuildGoToMsg (Crs_EditingCrs->ShrtName));
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
}
|
||||
|
@ -2151,7 +2159,7 @@ static void Crs_PutButtonToRegisterInCrs (void)
|
|||
|
||||
Btn_PutCreateButton (Str_BuildStringStr (Txt_Register_me_in_X,
|
||||
Crs_EditingCrs->ShrtName));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
@ -2272,7 +2280,7 @@ void Crs_GetAndWriteCrssOfAUsr (const struct UsrData *UsrDat,Rol_Role_t Role)
|
|||
HTM_TxtColon (Str_BuildStringStr (Txt_USER_in_COURSE,
|
||||
Role == Rol_UNK ? Txt_User[Usr_SEX_UNKNOWN] : // Role == Rol_UNK ==> any role
|
||||
Txt_ROLES_SINGUL_Abc[Role][UsrDat->Sex]));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_TH_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
@ -2335,7 +2343,7 @@ void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss)
|
|||
Txt_courses),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Heading row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -2376,6 +2384,8 @@ void Crs_ListCrssFound (MYSQL_RES **mysql_res,unsigned NumCrss)
|
|||
|
||||
static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnAccepted)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Enrolment_confirmed;
|
||||
extern const char *Txt_Enrolment_not_confirmed;
|
||||
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
|
||||
|
@ -2418,13 +2428,13 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
NumUsrs = NumStds + NumNETs + NumTchs;
|
||||
if (NumUsrs)
|
||||
{
|
||||
ClassTxt = "DAT_N";
|
||||
ClassLink = "BT_LINK LT DAT_N";
|
||||
ClassTxt = The_ClassDatN[Gbl.Prefs.Theme];
|
||||
ClassLink = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
}
|
||||
else
|
||||
{
|
||||
ClassTxt = "DAT";
|
||||
ClassLink = "BT_LINK LT DAT";
|
||||
ClassTxt = The_ClassDat[Gbl.Prefs.Theme];
|
||||
ClassLink = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
}
|
||||
BgColor = (CrsCod == Gbl.Hierarchy.Crs.CrsCod) ? "LIGHT_BLUE" :
|
||||
Gbl.ColorRows[RowEvenOdd];
|
||||
|
@ -2455,8 +2465,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
HTM_TD_Begin ("class=\"LT %s\"",BgColor);
|
||||
Frm_BeginFormGoTo (ActSeeDegInf);
|
||||
Deg_PutParamDegCod (Deg.DegCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (row[2]),ClassLink,NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (row[2]),ClassLink,NULL);
|
||||
Lgo_DrawLogo (HieLvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true);
|
||||
HTM_TxtF (" %s (%s)",row[2],row[6]);
|
||||
HTM_BUTTON_End ();
|
||||
|
@ -2472,8 +2481,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
HTM_TD_Begin ("class=\"LT %s\"",BgColor);
|
||||
Frm_BeginFormGoTo (ActSeeCrsInf);
|
||||
Crs_PutParamCrsCod (CrsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (row[5]),ClassLink,NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (row[5]),ClassLink,NULL);
|
||||
HTM_Txt (row[5]);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -2496,6 +2504,7 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA
|
|||
|
||||
HTM_TR_End ();
|
||||
|
||||
Str_FreeStrings ();
|
||||
RowEvenOdd = 1 - RowEvenOdd;
|
||||
}
|
||||
|
||||
|
|
|
@ -207,6 +207,7 @@ static void CrsCfg_Title (bool PutLink)
|
|||
|
||||
static void CrsCfg_Degree (bool PrintView,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Degree;
|
||||
unsigned NumDeg;
|
||||
|
||||
|
@ -219,7 +220,7 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm)
|
|||
Txt_Degree);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Get list of degrees of the current center */
|
||||
|
@ -248,9 +249,10 @@ static void CrsCfg_Degree (bool PrintView,bool PutForm)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeDegInf);
|
||||
Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Deg.ShrtName),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Deg.ShrtName),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
Lgo_DrawLogo (HieLvl_DEG,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Deg.ShrtName,
|
||||
20,"LM",true);
|
||||
|
@ -294,6 +296,7 @@ static void CrsCfg_ShrtName (bool PutForm)
|
|||
|
||||
static void CrsCfg_Year (bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Year_OF_A_DEGREE;
|
||||
extern const char *Txt_YEAR_OF_DEGREE[1 + Deg_MAX_YEARS_PER_DEGREE];
|
||||
extern const char *Txt_Not_applicable;
|
||||
|
@ -308,7 +311,7 @@ static void CrsCfg_Year (bool PutForm)
|
|||
Txt_Year_OF_A_DEGREE);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
Frm_BeginForm (ActChgCrsYeaCfg);
|
||||
|
@ -337,6 +340,7 @@ static void CrsCfg_Year (bool PutForm)
|
|||
|
||||
static void CrsCfg_InstitutionalCode (bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Institutional_code;
|
||||
|
||||
/***** Institutional course code *****/
|
||||
|
@ -348,7 +352,7 @@ static void CrsCfg_InstitutionalCode (bool PutForm)
|
|||
Txt_Institutional_code);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
Frm_BeginForm (ActChgInsCrsCodCfg);
|
||||
|
@ -372,6 +376,7 @@ static void CrsCfg_InstitutionalCode (bool PutForm)
|
|||
|
||||
static void CrsCfg_InternalCode (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Internal_code;
|
||||
|
||||
/***** Internal course code *****/
|
||||
|
@ -381,7 +386,7 @@ static void CrsCfg_InternalCode (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Internal_code);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Gbl.Hierarchy.Crs.CrsCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -412,6 +417,7 @@ static void CrsCfg_QR (void)
|
|||
|
||||
static void CrsCfg_Indicators (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Indicators;
|
||||
extern const char *Txt_of_PART_OF_A_TOTAL;
|
||||
struct Ind_IndicatorsCrs IndicatorsCrs;
|
||||
|
@ -435,7 +441,10 @@ static void CrsCfg_Indicators (void)
|
|||
IndicatorsCrs.NumIndicators,
|
||||
Txt_of_PART_OF_A_TOTAL,Ind_NUM_INDICATORS) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Title,"BT_LINK DAT",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (Title,
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_TxtF ("%s ",Title);
|
||||
Ico_PutIcon ((IndicatorsCrs.NumIndicators == Ind_NUM_INDICATORS) ? "check-circle.svg" :
|
||||
"exclamation-triangle.svg",
|
||||
|
|
|
@ -3728,7 +3728,9 @@ mysql> DESCRIBE usr_webs;
|
|||
|
||||
static void DB_CreateTable (const char *Query)
|
||||
{
|
||||
HTM_LI_Begin ("class=\"DAT\"");
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
|
||||
HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Query);
|
||||
HTM_LI_End ();
|
||||
|
||||
|
|
28
swad_date.c
28
swad_date.c
|
@ -122,6 +122,8 @@ void Dat_ResetHour (struct Dat_Hour *Hour)
|
|||
void Dat_PutBoxToSelectDateFormat (void)
|
||||
{
|
||||
extern const char *Hlp_PROFILE_Settings_dates;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Dates;
|
||||
Dat_Format_t Format;
|
||||
|
||||
|
@ -140,17 +142,19 @@ void Dat_PutBoxToSelectDateFormat (void)
|
|||
Format <= (Dat_Format_t) (Dat_NUM_OPTIONS_FORMAT - 1);
|
||||
Format++)
|
||||
{
|
||||
HTM_LI_Begin ("class=\"%s\"",(Format == Gbl.Prefs.DateFormat) ? "DAT_N LIGHT_BLUE" :
|
||||
"DAT");
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_RADIO ("DateFormat",true,
|
||||
" value=\"%u\"%s",
|
||||
(unsigned) Format,
|
||||
Format == Gbl.Prefs.DateFormat ? " checked=\"checked\"" :
|
||||
"");
|
||||
Dat_PutSpanDateFormat (Format);
|
||||
Dat_PutScriptDateFormat (Format);
|
||||
HTM_LABEL_End ();
|
||||
if (Format == Gbl.Prefs.DateFormat)
|
||||
HTM_LI_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
else
|
||||
HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_RADIO ("DateFormat",true,
|
||||
" value=\"%u\"%s",
|
||||
(unsigned) Format,
|
||||
Format == Gbl.Prefs.DateFormat ? " checked=\"checked\"" :
|
||||
"");
|
||||
Dat_PutSpanDateFormat (Format);
|
||||
Dat_PutScriptDateFormat (Format);
|
||||
HTM_LABEL_End ();
|
||||
HTM_LI_End ();
|
||||
}
|
||||
|
||||
|
@ -191,7 +195,7 @@ void Dat_PutScriptDateFormat (Dat_Format_t Format)
|
|||
Gbl.StartExecutionTimeUTC,
|
||||
Format,Dat_SEPARATOR_NONE,
|
||||
false,true,false,0x0);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -109,6 +109,7 @@ static void Deg_EditingDegreeDestructor (void);
|
|||
void Deg_SeeDegWithPendingCrss (void)
|
||||
{
|
||||
extern const char *Hlp_SYSTEM_Pending;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Degrees_with_pending_courses;
|
||||
extern const char *Txt_Degree;
|
||||
extern const char *Txt_Courses_ABBREVIATION;
|
||||
|
@ -162,7 +163,8 @@ void Deg_SeeDegWithPendingCrss (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of pending courses (row[1]) */
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Txt (row[1]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -192,8 +194,8 @@ void Deg_DrawDegreeLogoAndNameWithLink (struct Deg_Degree *Deg,Act_Action_t Acti
|
|||
Deg_PutParamDegCod (Deg->DegCod);
|
||||
|
||||
/***** Link to action *****/
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Deg->FullName),ClassLink,NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Deg->FullName),ClassLink,NULL);
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Degree logo and name *****/
|
||||
Lgo_DrawLogo (HieLvl_DEG,Deg->DegCod,Deg->ShrtName,16,ClassLogo,true);
|
||||
|
@ -300,6 +302,7 @@ void Deg_ShowDegsOfCurrentCtr (void)
|
|||
|
||||
static void Deg_ListDegreesForEdition (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_DEGREE_STATUS[Hie_NUM_STATUS_TXT];
|
||||
unsigned NumDeg;
|
||||
struct DegreeType *DegTyp;
|
||||
|
@ -348,7 +351,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Degree code */
|
||||
HTM_TD_Begin ("class=\"DAT CODE\"");
|
||||
HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Deg->DegCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -358,7 +361,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Degree short name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenDegSho);
|
||||
|
@ -373,7 +376,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Degree full name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenDegFul);
|
||||
|
@ -388,7 +391,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Degree type */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActChgDegTyp);
|
||||
|
@ -417,7 +420,7 @@ static void Deg_ListDegreesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Degree WWW */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActChgDegWWW);
|
||||
|
@ -430,8 +433,10 @@ static void Deg_ListDegreesForEdition (void)
|
|||
{
|
||||
Str_Copy (WWW,Deg->WWW,sizeof (WWW) - 1);
|
||||
HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\"");
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"",
|
||||
Deg->WWW,Deg->WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\" title=\"%s\"",
|
||||
Deg->WWW,
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Deg->WWW);
|
||||
HTM_Txt (WWW);
|
||||
HTM_A_End ();
|
||||
HTM_DIV_End ();
|
||||
|
@ -439,12 +444,12 @@ static void Deg_ListDegreesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of courses in this degree */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumCrss);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of users in courses of this degree */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrsInCrssOfDeg);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -453,7 +458,8 @@ static void Deg_ListDegreesForEdition (void)
|
|||
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS);
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Msg_WriteMsgAuthor (&UsrDat,true,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -489,6 +495,7 @@ static bool Deg_CheckIfICanEditADegree (struct Deg_Degree *Deg)
|
|||
|
||||
static void Deg_PutFormToCreateDegree (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_degree;
|
||||
extern const char *Txt_Create_degree;
|
||||
struct DegreeType *DegTyp;
|
||||
|
@ -562,22 +569,23 @@ static void Deg_PutFormToCreateDegree (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Number of courses in this degree *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of users in courses of this degree *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Degree requester *****/
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Degree status *****/
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
@ -688,7 +696,7 @@ static void Deg_ListDegrees (void)
|
|||
Gbl.Hierarchy.Ctr.ShrtName),
|
||||
Deg_PutIconsListingDegrees,NULL,
|
||||
Hlp_CENTER_Degrees,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
if (Gbl.Hierarchy.Degs.Num) // There are degrees in the current center
|
||||
{
|
||||
|
@ -765,6 +773,8 @@ static void Deg_PutIconToEditDegrees (void)
|
|||
|
||||
static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_DEGREE_With_courses;
|
||||
extern const char *Txt_DEGREE_Without_courses;
|
||||
extern const char *Txt_DEGREE_STATUS[Hie_NUM_STATUS_TXT];
|
||||
|
@ -782,12 +792,12 @@ static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg)
|
|||
if (Deg->Status & Hie_STATUS_BIT_PENDING)
|
||||
{
|
||||
TxtClassNormal = "DAT_LIGHT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_LIGHT";
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
|
||||
}
|
||||
else
|
||||
{
|
||||
TxtClassNormal = "DAT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_N";
|
||||
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
}
|
||||
BgColor = (Deg->DegCod == Gbl.Hierarchy.Deg.DegCod) ? "LIGHT_BLUE" :
|
||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||
|
@ -839,6 +849,7 @@ static void Deg_ListOneDegreeForSeeing (struct Deg_Degree *Deg,unsigned NumDeg)
|
|||
/***** End table row *****/
|
||||
HTM_TR_End ();
|
||||
|
||||
Str_FreeStrings ();
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
|
@ -878,7 +889,7 @@ static void Deg_EditDegreesInternal (void)
|
|||
Gbl.Hierarchy.Ctr.ShrtName),
|
||||
Deg_PutIconsEditingDegrees,NULL,
|
||||
Hlp_CENTER_Degrees,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
if (Gbl.DegTypes.Num)
|
||||
{
|
||||
|
@ -1529,8 +1540,8 @@ static void Deg_ShowAlertAndButtonToGoToDeg (void)
|
|||
Ale_ShowLastAlertAndButton (ActSeeCrs,NULL,NULL,
|
||||
Deg_PutParamGoToDeg,&Deg_EditingDeg->DegCod,
|
||||
Btn_CONFIRM_BUTTON,
|
||||
Hie_BuildGoToMsg (Deg_EditingDeg->ShrtName));
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_BuildGoToMsg (Deg_EditingDeg->ShrtName));
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
/***** Alert *****/
|
||||
|
@ -1785,7 +1796,7 @@ void Deg_ListDegsFound (MYSQL_RES **mysql_res,unsigned NumDegs)
|
|||
Txt_degrees),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Write heading *****/
|
||||
Deg_PutHeadDegreesForSeeing ();
|
||||
|
|
|
@ -198,6 +198,7 @@ static void DegCfg_Title (bool PutLink)
|
|||
|
||||
static void DegCfg_Center (bool PrintView,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Center;
|
||||
unsigned NumCtr;
|
||||
|
||||
|
@ -210,7 +211,7 @@ static void DegCfg_Center (bool PrintView,bool PutForm)
|
|||
Txt_Center);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Get list of centers of the current institution */
|
||||
|
@ -239,9 +240,10 @@ static void DegCfg_Center (bool PrintView,bool PutForm)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeCtrInf);
|
||||
Ctr_PutParamCtrCod (Gbl.Hierarchy.Ctr.CtrCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Ctr.ShrtName),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Ctr.ShrtName),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
Lgo_DrawLogo (HieLvl_CTR,Gbl.Hierarchy.Ctr.CtrCod,Gbl.Hierarchy.Ctr.ShrtName,
|
||||
20,"LM",true);
|
||||
|
@ -312,6 +314,7 @@ static void DegCfg_QR (void)
|
|||
|
||||
static void DegCfg_NumCrss (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Courses;
|
||||
extern const char *Txt_Courses_of_DEGREE_X;
|
||||
|
||||
|
@ -328,8 +331,9 @@ static void DegCfg_NumCrss (void)
|
|||
Deg_PutParamDegCod (Gbl.Hierarchy.Deg.DegCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Courses_of_DEGREE_X,
|
||||
Gbl.Hierarchy.Deg.ShrtName),
|
||||
"BT_LINK DAT",NULL);
|
||||
Str_FreeString ();
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInDeg (Gbl.Hierarchy.Deg.DegCod));
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
|
|
@ -313,6 +313,7 @@ void DegTyp_PutIconToViewDegreeTypes (void)
|
|||
|
||||
static void DegTyp_ListDegreeTypesForSeeing (void)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
unsigned NumDegTyp;
|
||||
const char *BgColor;
|
||||
|
||||
|
@ -329,17 +330,20 @@ static void DegTyp_ListDegreeTypesForSeeing (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Number of degree type in this list */
|
||||
HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"RM %s %s\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (NumDegTyp + 1);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Name of degree type */
|
||||
HTM_TD_Begin ("class=\"DAT_N LM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"LM %s %s\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Txt (Gbl.DegTypes.Lst[NumDegTyp].DegTypName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of degrees of this type */
|
||||
HTM_TD_Begin ("class=\"DAT_N RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"RM %s %s\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -382,6 +386,7 @@ static void DegTyp_PutIconToEditDegTypes (__attribute__((unused)) void *Args)
|
|||
|
||||
static void DegTyp_ListDegreeTypesForEdition (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumDegTyp;
|
||||
|
||||
/***** Begin table *****/
|
||||
|
@ -408,7 +413,7 @@ static void DegTyp_ListDegreeTypesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Degree type code */
|
||||
HTM_TD_Begin ("class=\"DAT CODE\"");
|
||||
HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Gbl.DegTypes.Lst[NumDegTyp].DegTypCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -424,7 +429,7 @@ static void DegTyp_ListDegreeTypesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of degrees of this type */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Gbl.DegTypes.Lst[NumDegTyp].NumDegs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -451,6 +456,7 @@ bool DegTyp_CheckIfICanCreateDegreeTypes (void)
|
|||
|
||||
static void DegTyp_PutFormToCreateDegreeType (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_type_of_degree;
|
||||
extern const char *Txt_Create_type_of_degree;
|
||||
|
||||
|
@ -484,7 +490,7 @@ static void DegTyp_PutFormToCreateDegreeType (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Number of degrees of this degree type ****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -97,6 +97,7 @@ static void Dpt_ResetDepartments (struct Dpt_Departments *Departments)
|
|||
void Dpt_SeeDepts (void)
|
||||
{
|
||||
extern const char *Hlp_INSTITUTION_Departments;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Departments_of_INSTITUTION_X;
|
||||
extern const char *Txt_DEPARTMENTS_HELP_ORDER[2];
|
||||
extern const char *Txt_DEPARTMENTS_ORDER[2];
|
||||
|
@ -132,7 +133,7 @@ void Dpt_SeeDepts (void)
|
|||
Gbl.Hierarchy.Ins.FullName),
|
||||
NULL,NULL,
|
||||
Hlp_INSTITUTION_Departments,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Write heading *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -167,13 +168,14 @@ void Dpt_SeeDepts (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\"",
|
||||
Departments.Lst[NumDpt].WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
|
||||
Departments.Lst[NumDpt].WWW,
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Departments.Lst[NumDpt].FullName);
|
||||
HTM_A_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Departments.Lst[NumDpt].NumTchs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -182,7 +184,8 @@ void Dpt_SeeDepts (void)
|
|||
|
||||
/***** Separation row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("colspan=\"3\" class=\"DAT\"");
|
||||
HTM_TD_Begin ("colspan=\"3\" class=\"%s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_NBSP ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
|
@ -192,11 +195,11 @@ void Dpt_SeeDepts (void)
|
|||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Other_departments);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumTchsInsInOtherDpts);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -207,11 +210,11 @@ void Dpt_SeeDepts (void)
|
|||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Department_unspecified);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumTchsInsWithNoDpt);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -286,7 +289,7 @@ static void Dpt_EditDepartmentsInternal (void)
|
|||
Gbl.Hierarchy.Ins.FullName),
|
||||
NULL,NULL,
|
||||
Hlp_INSTITUTION_Departments_edit,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Put a form to create a new department *****/
|
||||
Dpt_PutFormToCreateDepartment ();
|
||||
|
@ -436,6 +439,7 @@ void Dpt_FreeListDepartments (struct Dpt_Departments *Departments)
|
|||
|
||||
static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departments)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Another_institution;
|
||||
unsigned NumDpt;
|
||||
struct Dpt_Department *Dpt;
|
||||
|
@ -471,7 +475,7 @@ static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departm
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Department code */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%ld ",Dpt->DptCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -523,7 +527,7 @@ static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departm
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of teachers */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Dpt->NumTchs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -107,6 +107,7 @@ void Dup_PutLinkToListDupUsrs (void)
|
|||
void Dup_ListDuplicateUsrs (void)
|
||||
{
|
||||
extern const char *Hlp_USERS_Duplicates_possibly_duplicate_users;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Possibly_duplicate_users;
|
||||
extern const char *Txt_Informants;
|
||||
MYSQL_RES *mysql_res;
|
||||
|
@ -165,8 +166,9 @@ void Dup_ListDuplicateUsrs (void)
|
|||
HTM_TD_Begin ("colspan=\"2\" class=\"COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"DAT LM COLOR%u\"",
|
||||
Usr_NUM_MAIN_FIELDS_DATA_USR-2,
|
||||
HTM_TD_Begin ("colspan=\"%u\" class=\"%s LM COLOR%u\"",
|
||||
Usr_NUM_MAIN_FIELDS_DATA_USR - 2,
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.RowEvenOdd);
|
||||
|
||||
/* Write number of informants (row[1]) if greater than 1 */
|
||||
|
|
|
@ -2062,6 +2062,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
{
|
||||
extern const char *Hlp_USERS_Requests;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Enrolment_requests;
|
||||
extern const char *Txt_Scope;
|
||||
extern const char *Txt_Users;
|
||||
|
@ -2140,7 +2141,7 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
|
||||
Frm_LabelColumn ("RT","Role",Txt_Users);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Rol_WriteSelectorRoles (1 << Rol_STD |
|
||||
1 << Rol_NET |
|
||||
1 << Rol_TCH,
|
||||
|
@ -2212,7 +2213,8 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Number *****/
|
||||
HTM_TD_Begin ("class=\"DAT RT\"");
|
||||
HTM_TD_Begin ("class=\"%s RT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumReqs - NumReq);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2225,9 +2227,10 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
|
||||
Frm_BeginFormGoTo (ActSeeCrsInf);
|
||||
Crs_PutParamCrsCod (Crs.CrsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs.FullName),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs.FullName),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_TxtF ("%s > %s",Deg.ShrtName,Crs.ShrtName);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -2235,35 +2238,41 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Number of teachers in the course *****/
|
||||
HTM_TD_Begin ("class=\"DAT RT\"");
|
||||
HTM_TD_Begin ("class=\"%s RT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Enr_GetNumUsrsInCrss (HieLvl_CRS,Crs.CrsCod,
|
||||
1 << Rol_TCH));
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** User photo *****/
|
||||
HTM_TD_Begin ("class=\"DAT CT\" style=\"width:22px;\"");
|
||||
HTM_TD_Begin ("class=\"%s CT\" style=\"width:22px;\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Pho_ShowUsrPhotoIfAllowed (&UsrDat,
|
||||
ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM,
|
||||
false);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** User name *****/
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_DIV_Begin ("class=\"REQUESTER_NAME\""); // Limited width
|
||||
Usr_WriteFirstNameBRSurnames (&UsrDat);
|
||||
HTM_DIV_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Requested role (row[3]) *****/
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_ROLES_SINGUL_abc[DesiredRole][UsrDat.Sex]);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Request time (row[4]) *****/
|
||||
Msg_WriteMsgDate (Dat_GetUNIXTimeFromStr (row[4]),"DAT");
|
||||
Msg_WriteMsgDate (Dat_GetUNIXTimeFromStr (row[4]),
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
/***** Button to confirm the request *****/
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (!NextAction[DesiredRole])
|
||||
Err_WrongRoleExit ();
|
||||
Frm_BeginForm (NextAction[DesiredRole]);
|
||||
|
@ -2274,7 +2283,8 @@ static void Enr_ShowEnrolmentRequestsGivenRoles (unsigned RolesSelected)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Button to reject the request *****/
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Frm_BeginForm (ActReqRejSignUp);
|
||||
Crs_PutParamCrsCod (Crs.CrsCod);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat.EnUsrCod);
|
||||
|
|
|
@ -473,6 +473,7 @@ void Exa_ShowOnlyOneExamEnd (void)
|
|||
static void Exa_ShowOneExam (struct Exa_Exams *Exams,
|
||||
struct Exa_Exam *Exam,bool ShowOnlyThisExam)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_View_exam;
|
||||
extern const char *Txt_Sets_of_questions;
|
||||
extern const char *Txt_Maximum_grade;
|
||||
|
@ -613,7 +614,7 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
|
|||
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
|
||||
ALn_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",Exam->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt);
|
||||
HTM_DIV_End ();
|
||||
HTM_TD_End ();
|
||||
|
|
|
@ -208,7 +208,7 @@ void ExaRes_ShowMyResultsInExa (void)
|
|||
ExaRes_ShowResultsBegin (&Exams,
|
||||
Str_BuildStringStr (Txt_Results_of_exam_X,Exam.Title),
|
||||
false); // Do not list exams to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
ExaRes_ListMyResultsInExa (&Exams,Exam.ExaCod);
|
||||
ExaRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -260,7 +260,7 @@ void ExaRes_ShowMyResultsInSes (void)
|
|||
/***** List my sessions results in session *****/
|
||||
ExaRes_ShowResultsBegin (&Exams,Str_BuildStringStr (Txt_Results_of_session_X,Session.Title),
|
||||
false); // Do not list exams to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
ExaRes_ListMyResultsInSes (&Exams,Session.SesCod);
|
||||
ExaRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -408,7 +408,7 @@ void ExaRes_ShowAllResultsInExa (void)
|
|||
ExaRes_ShowResultsBegin (&Exams,
|
||||
Str_BuildStringStr (Txt_Results_of_exam_X,Exam.Title),
|
||||
false); // Do not list exams to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
ExaRes_ListAllResultsInExa (&Exams,Exam.ExaCod);
|
||||
ExaRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -485,7 +485,7 @@ void ExaRes_ShowAllResultsInSes (void)
|
|||
ExaRes_ShowResultsBegin (&Exams,
|
||||
Str_BuildStringStr (Txt_Results_of_session_X,Session.Title),
|
||||
false); // Do not list exams to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
ExaRes_ListAllResultsInSes (&Exams,Session.SesCod);
|
||||
ExaRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -575,6 +575,7 @@ static void ExaRes_ShowResultsEnd (void)
|
|||
static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
|
||||
{
|
||||
extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Exams;
|
||||
extern const char *Txt_Exam;
|
||||
extern const char *Txt_Update_results;
|
||||
|
@ -618,7 +619,8 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
|
|||
/* Write a row for this session */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_INPUT_CHECKBOX ("ExaCod",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Gam%u\" value=\"%ld\"%s",
|
||||
NumExam,Exams->Lst[NumExam].ExaCod,
|
||||
|
@ -626,13 +628,15 @@ static void ExaRes_ListExamsToSelect (struct Exa_Exams *Exams)
|
|||
"");
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_LABEL_Begin ("for=\"Gam%u\"",NumExam);
|
||||
HTM_TxtF ("%u:",NumExam + 1);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Txt (Exam.Title);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -762,6 +766,7 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
long ExaCod, // <= 0 ==> any
|
||||
const char *ExamsSelectedCommas)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Result;
|
||||
MYSQL_RES *mysql_res;
|
||||
struct UsrData *UsrDat;
|
||||
|
@ -839,8 +844,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
UniqueId++;
|
||||
if (asprintf (&Id,"exa_res_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id =\"%s\" class=\"DAT LT COLOR%u\"",
|
||||
Id,Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("id =\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||
true,true,false,0x7);
|
||||
|
@ -849,7 +854,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
}
|
||||
|
||||
/* Write session title */
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Txt (Session.Title);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -872,7 +878,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
}
|
||||
|
||||
/* Write total number of questions */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
HTM_Unsigned (Print.NumQsts.All);
|
||||
else
|
||||
|
@ -907,7 +914,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write number of correct questions */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
if (Print.NumQsts.Valid.Correct)
|
||||
|
@ -920,7 +928,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write number of wrong questions */
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
if (Print.NumQsts.Valid.Wrong.Negative)
|
||||
|
@ -932,7 +941,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
Ico_PutIconNotVisible ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
if (Print.NumQsts.Valid.Wrong.Zero)
|
||||
|
@ -944,7 +954,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
Ico_PutIconNotVisible ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
if (Print.NumQsts.Valid.Wrong.Positive)
|
||||
|
@ -957,7 +968,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write number of blank questions */
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
if (Print.NumQsts.Valid.Blank)
|
||||
|
@ -970,7 +982,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write score valid (taking into account only valid questions) */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
HTM_Double2Decimals (Print.Score.Valid);
|
||||
|
@ -982,7 +995,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write average score per question (taking into account only valid questions) */
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
HTM_Double2Decimals (Print.NumQsts.Valid.Total ? Print.Score.Valid /
|
||||
(double) Print.NumQsts.Valid.Total :
|
||||
|
@ -992,7 +1006,8 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write grade over maximum grade (taking into account only valid questions) */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
Grade = TstPrn_ComputeGrade (Print.NumQsts.Valid.Total,Print.Score.Valid,Exam.MaxGrade);
|
||||
|
@ -1086,22 +1101,25 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
|
|||
const struct ExaPrn_Score *TotalScore,
|
||||
double TotalGrade)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Sessions;
|
||||
unsigned NumTotalQstsInvalid;
|
||||
|
||||
/***** Row title *****/
|
||||
HTM_TD_Begin ("colspan=\"3\" class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_TxtColonNBSP (Txt_Sessions);
|
||||
HTM_Unsigned (NumResults);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (NumTotalQsts->All);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of valid questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT_GREEN RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RT DAT_GREEN LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
if (NumTotalQsts->Valid.Total)
|
||||
HTM_Unsigned (NumTotalQsts->Valid.Total);
|
||||
else
|
||||
|
@ -1118,7 +1136,8 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Write number of correct questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumTotalQsts->Valid.Correct)
|
||||
HTM_Unsigned (NumTotalQsts->Valid.Correct);
|
||||
else
|
||||
|
@ -1126,21 +1145,24 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Write number of wrong questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumTotalQsts->Valid.Wrong.Negative)
|
||||
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Negative);
|
||||
else
|
||||
HTM_Light0 ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumTotalQsts->Valid.Wrong.Zero)
|
||||
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Zero);
|
||||
else
|
||||
HTM_Light0 ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumTotalQsts->Valid.Wrong.Positive)
|
||||
HTM_Unsigned (NumTotalQsts->Valid.Wrong.Positive);
|
||||
else
|
||||
|
@ -1148,7 +1170,8 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Write number of blank questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RT %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumTotalQsts->Valid.Blank)
|
||||
HTM_Unsigned (NumTotalQsts->Valid.Blank);
|
||||
else
|
||||
|
@ -1156,14 +1179,16 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Write total valid score *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Double2Decimals (TotalScore->Valid);
|
||||
HTM_Txt ("/");
|
||||
HTM_Unsigned (NumTotalQsts->Valid.Total);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write average valid score per valid question *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Double2Decimals (NumTotalQsts->Valid.Total ? TotalScore->Valid /
|
||||
(double) NumTotalQsts->Valid.Total :
|
||||
0.0);
|
||||
|
@ -1171,12 +1196,14 @@ static void ExaRes_ShowResultsSummaryRow (unsigned NumResults,
|
|||
|
||||
|
||||
/***** Write total grade *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Double2Decimals (TotalGrade);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Last cell *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
|
@ -1482,6 +1509,8 @@ static void ExaRes_ComputeValidPrintScore (struct ExaPrn_Print *Print)
|
|||
|
||||
void ExaRes_ShowExamResultUser (struct UsrData *UsrDat)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
static const char *ClassPhoto[Pho_NUM_SHAPES] =
|
||||
{
|
||||
|
@ -1495,12 +1524,12 @@ void ExaRes_ShowExamResultUser (struct UsrData *UsrDat)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Label *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** User's data *****/
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
ID_WriteUsrIDs (UsrDat,NULL);
|
||||
HTM_TxtF (" %s",UsrDat->Surname1);
|
||||
if (UsrDat->Surname2[0])
|
||||
|
@ -1523,6 +1552,8 @@ void ExaRes_ShowExamResultUser (struct UsrData *UsrDat)
|
|||
|
||||
static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
char *Id;
|
||||
|
@ -1535,14 +1566,15 @@ static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Label *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_START_END_TIME[StartEndTime]);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Time *****/
|
||||
if (asprintf (&Id,"match_%u",(unsigned) StartEndTime) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"DAT LB\"",Id);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"",
|
||||
Id,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Print->TimeUTC[StartEndTime],
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||
true,true,true,0x7);
|
||||
|
@ -1561,6 +1593,8 @@ static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print)
|
|||
static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print,
|
||||
const struct ExaRes_ICanView *ICanView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Questions;
|
||||
extern const char *Txt_QUESTIONS_valid;
|
||||
extern const char *Txt_QUESTIONS_invalid;
|
||||
|
@ -1569,12 +1603,12 @@ static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Label *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Questions);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView->Result)
|
||||
{
|
||||
HTM_TxtF ("%u",Print->NumQsts.All);
|
||||
|
@ -1614,6 +1648,8 @@ static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print,
|
|||
static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print,
|
||||
const struct ExaRes_ICanView *ICanView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Valid_answers;
|
||||
extern const char *Txt_ANSWERS_correct;
|
||||
extern const char *Txt_ANSWERS_wrong;
|
||||
|
@ -1623,12 +1659,12 @@ static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Label *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Valid_answers);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of answers *****/
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView->Score)
|
||||
HTM_TxtF ("%s(<em>p<sub>i</sub></em>=1): %u; "
|
||||
"%s(-1≤<em>p<sub>i</sub></em><0): %u; "
|
||||
|
@ -1655,6 +1691,8 @@ static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print,
|
|||
static void ExaRes_ShowExamResultScore (struct ExaPrn_Print *Print,
|
||||
const struct ExaRes_ICanView *ICanView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Score;
|
||||
extern const char *Txt_valid_score;
|
||||
|
||||
|
@ -1662,12 +1700,12 @@ static void ExaRes_ShowExamResultScore (struct ExaPrn_Print *Print,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Label *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Score);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Score *****/
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView->Score)
|
||||
{
|
||||
/* Score counting all questions */
|
||||
|
@ -1707,6 +1745,8 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam,
|
|||
struct ExaPrn_Print *Print,
|
||||
const struct ExaRes_ICanView *ICanView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Grade;
|
||||
extern const char *Txt_valid_grade;
|
||||
|
||||
|
@ -1714,12 +1754,12 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Label *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Grade);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Grade *****/
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView->Score)
|
||||
{
|
||||
/* Grade counting all questions */
|
||||
|
|
|
@ -614,6 +614,7 @@ static void ExaSes_GetAndWriteNamesOfGrpsAssociatedToSession (const struct ExaSe
|
|||
static void ExaSes_ListOneOrMoreSessionsResult (struct Exa_Exams *Exams,
|
||||
const struct ExaSes_Session *Session)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
static void (*Function[Rol_NUM_ROLES]) (struct Exa_Exams *Exams,
|
||||
const struct ExaSes_Session *Session) =
|
||||
{
|
||||
|
@ -623,7 +624,8 @@ static void ExaSes_ListOneOrMoreSessionsResult (struct Exa_Exams *Exams,
|
|||
[Rol_SYS_ADM] = ExaSes_ListOneOrMoreSessionsResultTch,
|
||||
};
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
|
||||
if (Function[Gbl.Usrs.Me.Role.Logged])
|
||||
Function[Gbl.Usrs.Me.Role.Logged] (Exams,Session);
|
||||
|
@ -1058,6 +1060,7 @@ static void ExaSes_PutFormSession (const struct ExaSes_Session *Session)
|
|||
static void ExaSes_ShowLstGrpsToCreateSession (long SesCod)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Groups;
|
||||
extern const char *Txt_The_whole_course;
|
||||
unsigned NumGrpTyp;
|
||||
|
@ -1082,7 +1085,8 @@ static void ExaSes_ShowLstGrpsToCreateSession (long SesCod)
|
|||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"WholeCrs\" value=\"Y\"%s"
|
||||
|
|
|
@ -788,7 +788,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
|
|||
"arrow-up.svg",
|
||||
Str_BuildStringStr (Txt_Move_up_X,
|
||||
StrSetInd));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed);
|
||||
|
@ -801,7 +801,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams,
|
|||
"arrow-down.svg",
|
||||
Str_BuildStringStr (Txt_Move_down_X,
|
||||
StrSetInd));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed);
|
||||
|
|
365
swad_figure.c
365
swad_figure.c
File diff suppressed because it is too large
Load Diff
|
@ -611,6 +611,7 @@ static void Fol_ListFollowersUsr (struct UsrData *UsrDat)
|
|||
|
||||
static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Another_user_s_profile;
|
||||
static const char *ClassPhoto[Pho_NUM_SHAPES] =
|
||||
{
|
||||
|
@ -638,7 +639,10 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
|
|||
Frm_BeginForm (ActSeeOthPubPrf);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_DIV_Begin ("class=\"FOLLOW_USR_NAME\""); // Limited width
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Another_user_s_profile,"BT_LINK LT DAT",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Another_user_s_profile,
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
Usr_WriteFirstNameBRSurnames (UsrDat);
|
||||
HTM_BUTTON_End ();
|
||||
HTM_DIV_End ();
|
||||
|
|
|
@ -295,6 +295,7 @@ void Frm_FreeAnchorStr (char *Anchor)
|
|||
void Frm_LabelColumn (const char *TDClass,const char *Id,const char *Label)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
|
||||
/***** Column/cell begin *****/
|
||||
if (TDClass)
|
||||
|
@ -313,7 +314,7 @@ void Frm_LabelColumn (const char *TDClass,const char *Id,const char *Label)
|
|||
The_ClassFormInBox[Gbl.Prefs.Theme]);
|
||||
}
|
||||
else
|
||||
HTM_LABEL_Begin ("class=\"DAT\"");
|
||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Label);
|
||||
HTM_LABEL_End ();
|
||||
|
||||
|
|
|
@ -931,7 +931,7 @@ static void For_ShowAForumPost (struct For_Forums *Forums,
|
|||
Str_BuildStringLong (Enabled ? Txt_FORUM_Post_X_allowed_Click_to_ban_it :
|
||||
Txt_FORUM_Post_X_banned_Click_to_unban_it,
|
||||
(long) PstNum));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
else
|
||||
|
@ -942,7 +942,7 @@ static void For_ShowAForumPost (struct For_Forums *Forums,
|
|||
Txt_FORUM_Post_X_banned,
|
||||
(long) PstNum),
|
||||
"ICO_HIDDEN ICO16x16");
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
/***** Form to remove post *****/
|
||||
|
|
|
@ -514,6 +514,7 @@ void Gam_ShowOnlyOneGameEnd (void)
|
|||
static void Gam_ShowOneGame (struct Gam_Games *Games,
|
||||
struct Gam_Game *Game,bool ShowOnlyThisGame)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_View_game;
|
||||
extern const char *Txt_Number_of_questions;
|
||||
extern const char *Txt_Maximum_grade;
|
||||
|
@ -664,7 +665,7 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
|
|||
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
|
||||
ALn_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",Game->Hidden ? "DAT_LIGHT" :
|
||||
"DAT");
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt);
|
||||
HTM_DIV_End ();
|
||||
HTM_TD_End ();
|
||||
|
@ -1761,7 +1762,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
|
|||
"arrow-up.svg",
|
||||
Str_BuildStringStr (Txt_Move_up_X,
|
||||
StrQstInd));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed);
|
||||
|
@ -1774,7 +1775,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games,
|
|||
"arrow-down.svg",
|
||||
Str_BuildStringStr (Txt_Move_down_X,
|
||||
StrQstInd));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed);
|
||||
|
|
52
swad_group.c
52
swad_group.c
|
@ -1226,6 +1226,7 @@ static void Grp_RemoveUsrFromGroup (long UsrCod,long GrpCod)
|
|||
|
||||
static void Grp_ListGroupTypesForEdition (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_It_is_optional_to_choose_a_group;
|
||||
extern const char *Txt_It_is_mandatory_to_choose_a_group;
|
||||
extern const char *Txt_A_student_can_belong_to_several_groups;
|
||||
|
@ -1333,7 +1334,7 @@ static void Grp_ListGroupTypesForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of groups of this type */
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1408,6 +1409,7 @@ static void Grp_WriteHeadingGroupTypes (void)
|
|||
|
||||
static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Group_X_open_click_to_close_it;
|
||||
extern const char *Txt_Group_X_closed_click_to_open_it;
|
||||
extern const char *Txt_File_zones_of_the_group_X_enabled_click_to_disable_them;
|
||||
|
@ -1461,7 +1463,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
|
|||
Str_BuildStringStr (Grp->Open ? Txt_Group_X_open_click_to_close_it :
|
||||
Txt_Group_X_closed_click_to_open_it,
|
||||
Grp->GrpName));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1476,7 +1478,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
|
|||
Str_BuildStringStr (Grp->FileZones ? Txt_File_zones_of_the_group_X_enabled_click_to_disable_them :
|
||||
Txt_File_zones_of_the_group_X_disabled_click_to_enable_them,
|
||||
Grp->GrpName));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1550,7 +1552,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms)
|
|||
Role >= Rol_STD;
|
||||
Role--)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Int (Grp->NumUsrs[Role]);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
@ -2111,6 +2113,7 @@ static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod)
|
|||
static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
||||
Grp_WhichGroups_t GroupsSelectableByStdsOrNETs)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_users_with_no_group;
|
||||
unsigned NumGrpThisType;
|
||||
unsigned NumGrpSel;
|
||||
|
@ -2236,14 +2239,14 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Group name = students with no group */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin ("for=\"Grp%ld\"",-GrpTyp->GrpTypCod);
|
||||
HTM_Txt (Txt_users_with_no_group);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Room */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of students who don't belong to any group of this type */
|
||||
|
@ -2251,7 +2254,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp,
|
|||
Role >= Rol_STD;
|
||||
Role--)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Grp_DB_CountNumUsrsInNoGrpsOfType (Role,GrpTyp->GrpTypCod));
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
@ -2322,6 +2325,7 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
|
|||
|
||||
static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Group_X_open;
|
||||
extern const char *Txt_Group_X_closed;
|
||||
int Vacant;
|
||||
|
@ -2339,22 +2343,23 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
|
|||
Str_BuildStringStr (Grp->Open ? Txt_Group_X_open :
|
||||
Txt_Group_X_closed,
|
||||
Grp->GrpName));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Group name *****/
|
||||
HTM_TD_Begin ("class=\"%s\"",
|
||||
Highlight ? "LM LIGHT_BLUE" :
|
||||
"LM");
|
||||
HTM_LABEL_Begin ("for=\"Grp%ld\" class=\"DAT\"",Grp->GrpCod);
|
||||
HTM_LABEL_Begin ("for=\"Grp%ld\" class=\"%s\"",
|
||||
Grp->GrpCod,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Grp->GrpName);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Room *****/
|
||||
HTM_TD_Begin ("class=\"%s\"",
|
||||
Highlight ? "DAT LM LIGHT_BLUE" :
|
||||
"DAT LM");
|
||||
HTM_TD_Begin ("class=\"%s %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Highlight ? "LM LIGHT_BLUE" :
|
||||
"LM");
|
||||
HTM_Txt (Grp->Room.ShrtName);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2363,22 +2368,25 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
|
|||
Role >= Rol_STD;
|
||||
Role--)
|
||||
{
|
||||
HTM_TD_Begin (Highlight ? "class=\"DAT CM LIGHT_BLUE\"" :
|
||||
"class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Highlight ? "CM LIGHT_BLUE" :
|
||||
"CM");
|
||||
HTM_Int (Grp->NumUsrs[Role]);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
/***** Max. number of students in this group *****/
|
||||
HTM_TD_Begin (Highlight ? "class=\"DAT CM LIGHT_BLUE\"" :
|
||||
"class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Highlight ? "CM LIGHT_BLUE" :
|
||||
"CM");
|
||||
Grp_WriteMaxStds (StrMaxStudents,Grp->MaxStudents);
|
||||
HTM_TxtF ("%s ",StrMaxStudents);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Vacants in this group *****/
|
||||
HTM_TD_Begin (Highlight ? "class=\"DAT CM LIGHT_BLUE\"" :
|
||||
"class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Highlight ? "CM LIGHT_BLUE" :
|
||||
"CM");
|
||||
if (Grp->MaxStudents <= Grp_MAX_STUDENTS_IN_A_GROUP)
|
||||
{
|
||||
Vacant = (int) Grp->MaxStudents - (int) Grp->NumUsrs[Rol_STD];
|
||||
|
@ -2394,6 +2402,7 @@ static void Grp_WriteRowGrp (struct Group *Grp,bool Highlight)
|
|||
|
||||
static void Grp_PutFormToCreateGroupType (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_type_of_group;
|
||||
extern const char *Txt_It_is_optional_to_choose_a_group;
|
||||
extern const char *Txt_It_is_mandatory_to_choose_a_group;
|
||||
|
@ -2485,7 +2494,7 @@ static void Grp_PutFormToCreateGroupType (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Number of groups of this type *****/
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0); // It's a new group type ==> 0 groups
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2507,6 +2516,7 @@ static void Grp_PutFormToCreateGroupType (void)
|
|||
|
||||
static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_group;
|
||||
extern const char *Txt_Group_closed;
|
||||
extern const char *Txt_File_zones_disabled;
|
||||
|
@ -2601,11 +2611,11 @@ static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Current number of users in this group *****/
|
||||
for (Role = Rol_TCH;
|
||||
for (Role = Rol_TCH;
|
||||
Role >= Rol_STD;
|
||||
Role--)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
|
20
swad_help.c
20
swad_help.c
|
@ -131,7 +131,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Gbl.Hierarchy.Crs.ShrtName),
|
||||
ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs],
|
||||
Btn_REMOVE_BUTTON,Txt_Remove_me);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
}
|
||||
else // I do not belong to this course
|
||||
|
@ -141,7 +141,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Gbl.Hierarchy.Crs.ShrtName),
|
||||
ActReqSignUp,
|
||||
Btn_CREATE_BUTTON,Txt_Sign_up);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -157,7 +157,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Gbl.Hierarchy.Crs.ShrtName),
|
||||
ActReqEnrSevStd,
|
||||
Btn_CREATE_BUTTON,Txt_Register_students);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
if (Gbl.Action.Act != ActMyCrs) // I am not seeing the action to list my courses
|
||||
|
@ -175,7 +175,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Gbl.Hierarchy.Deg.ShrtName),
|
||||
ActSeeCrs,
|
||||
Btn_CONFIRM_BUTTON,Txt_Courses);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else if (Gbl.Hierarchy.Ctr.CtrCod > 0) // Center selected
|
||||
{
|
||||
|
@ -185,7 +185,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Gbl.Hierarchy.Ctr.ShrtName),
|
||||
ActSeeDeg,
|
||||
Btn_CONFIRM_BUTTON,Txt_Degrees);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else if (Gbl.Hierarchy.Ins.InsCod > 0) // Institution selected
|
||||
{
|
||||
|
@ -195,7 +195,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Gbl.Hierarchy.Ins.ShrtName),
|
||||
ActSeeCtr,
|
||||
Btn_CONFIRM_BUTTON,Txt_Centers);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else if (Gbl.Hierarchy.Cty.CtyCod > 0) // Country selected
|
||||
{
|
||||
|
@ -205,7 +205,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
|
||||
ActSeeIns,
|
||||
Btn_CONFIRM_BUTTON,Txt_Institutions);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
/* Select a country */
|
||||
|
@ -231,7 +231,7 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
|
|||
Cfg_PLATFORM_SHORT_NAME),
|
||||
ActFrmMyAcc,
|
||||
Btn_CREATE_BUTTON,Txt_Create_account);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
/***** End table and box *****/
|
||||
|
@ -247,10 +247,12 @@ static void Hlp_ShowRowHelpWhatWouldYouLikeToDo (const char *Description,
|
|||
Btn_Button_t Button,
|
||||
const char *TxtButton)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Description *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Description);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -735,24 +735,6 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan)
|
|||
DB_FreeMySQLResult (&mysql_res);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********************* Build a "Go to <where>" message ***********************/
|
||||
/*****************************************************************************/
|
||||
// Where is a hierarchy member (country, institution, center, degree or course
|
||||
// Hie_FreeGoToMsg() must be called after calling this function
|
||||
|
||||
char *Hie_BuildGoToMsg (const char *Where)
|
||||
{
|
||||
extern const char *Txt_Go_to_X;
|
||||
|
||||
return Str_BuildStringStr (Txt_Go_to_X,Where);
|
||||
}
|
||||
|
||||
void Hie_FreeGoToMsg (void)
|
||||
{
|
||||
Str_FreeString ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********************** Write status cell in table **************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -773,11 +755,12 @@ void Hie_WriteStatusCellEditable (bool ICanEdit,Hie_Status_t Status,
|
|||
Act_Action_t NextAction,long HieCod,
|
||||
const char *Txt[Hie_NUM_STATUS_TXT])
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
Hie_StatusTxt_t StatusTxt = Hie_GetStatusTxtFromStatusBits (Status);
|
||||
unsigned StatusUnsigned;
|
||||
|
||||
/***** Begin cell *****/
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit && StatusTxt == Hie_STATUS_PENDING)
|
||||
{
|
||||
/* Begin form */
|
||||
|
|
|
@ -62,9 +62,6 @@ void Hie_ResetHierarchy (void);
|
|||
|
||||
void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan);
|
||||
|
||||
char *Hie_BuildGoToMsg (const char *Where);
|
||||
void Hie_FreeGoToMsg (void);
|
||||
|
||||
void Hie_WriteStatusCell (Hie_Status_t Status,
|
||||
const char *Class,const char *BgColor,
|
||||
const char *Txt[Hie_NUM_STATUS_TXT]);
|
||||
|
|
|
@ -70,6 +70,8 @@ void HieCfg_Title (bool PutLink,
|
|||
void HieCfg_FullName (bool PutForm,const char *Label,Act_Action_t NextAction,
|
||||
const char FullName[Cns_HIERARCHY_MAX_BYTES_FULL_NAME + 1])
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
|
||||
/***** Full name *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
|
@ -79,7 +81,7 @@ void HieCfg_FullName (bool PutForm,const char *Label,Act_Action_t NextAction,
|
|||
Label);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT_N LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Form to change full name */
|
||||
|
@ -104,6 +106,7 @@ void HieCfg_FullName (bool PutForm,const char *Label,Act_Action_t NextAction,
|
|||
void HieCfg_ShrtName (bool PutForm,Act_Action_t NextAction,
|
||||
const char ShrtName[Cns_HIERARCHY_MAX_BYTES_SHRT_NAME + 1])
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Short_name;
|
||||
|
||||
/***** Short name *****/
|
||||
|
@ -115,7 +118,7 @@ void HieCfg_ShrtName (bool PutForm,Act_Action_t NextAction,
|
|||
Txt_Short_name);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT_N LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Form to change short name */
|
||||
|
@ -140,6 +143,7 @@ void HieCfg_ShrtName (bool PutForm,Act_Action_t NextAction,
|
|||
void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction,
|
||||
const char WWW[Cns_MAX_BYTES_WWW + 1])
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Web;
|
||||
|
||||
/***** Web *****/
|
||||
|
@ -151,7 +155,7 @@ void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction,
|
|||
Txt_Web);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Form to change web */
|
||||
|
@ -164,7 +168,8 @@ void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction,
|
|||
{
|
||||
HTM_DIV_Begin ("class=\"EXTERNAL_WWW_LONG\"");
|
||||
if (!PrintView)
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\"",WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
|
||||
WWW,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (WWW);
|
||||
if (!PrintView)
|
||||
HTM_A_End ();
|
||||
|
@ -181,6 +186,7 @@ void HieCfg_WWW (bool PrintView,bool PutForm,Act_Action_t NextAction,
|
|||
|
||||
void HieCfg_Shortcut (bool PrintView,const char *ParamName,long HieCod)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Shortcut;
|
||||
|
||||
/***** Short cut *****/
|
||||
|
@ -190,16 +196,18 @@ void HieCfg_Shortcut (bool PrintView,const char *ParamName,long HieCod)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Shortcut);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (!PrintView)
|
||||
{
|
||||
if (ParamName)
|
||||
HTM_A_Begin ("href=\"%s/?%s=%ld\" class=\"DAT\" target=\"_blank\"",
|
||||
HTM_A_Begin ("href=\"%s/?%s=%ld\" class=\"%s\" target=\"_blank\"",
|
||||
Cfg_URL_SWAD_CGI,
|
||||
ParamName,HieCod);
|
||||
ParamName,HieCod,
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
else
|
||||
HTM_A_Begin ("href=\"%s/\" class=\"DAT\" target=\"_blank\"",
|
||||
Cfg_URL_SWAD_CGI);
|
||||
HTM_A_Begin ("href=\"%s/\" class=\"%s\" target=\"_blank\"",
|
||||
Cfg_URL_SWAD_CGI,
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
}
|
||||
if (ParamName)
|
||||
HTM_TxtF ("%s/?%s=%ld",
|
||||
|
@ -221,6 +229,7 @@ void HieCfg_Shortcut (bool PrintView,const char *ParamName,long HieCod)
|
|||
|
||||
void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Centers;
|
||||
extern const char *Txt_Centers_of_INSTITUTION_X;
|
||||
|
||||
|
@ -238,8 +247,9 @@ void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm)
|
|||
Ins_PutParamInsCod (Gbl.Hierarchy.Ins.InsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringStr (Txt_Centers_of_INSTITUTION_X,
|
||||
Gbl.Hierarchy.Ins.ShrtName),
|
||||
"BT_LINK DAT",NULL);
|
||||
Str_FreeString ();
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
HTM_Unsigned (NumCtrs);
|
||||
if (PutForm)
|
||||
|
@ -258,6 +268,7 @@ void HieCfg_NumCtrs (unsigned NumCtrs,bool PutForm)
|
|||
|
||||
void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Centers_with_map;
|
||||
|
||||
/***** Number of centers with map *****/
|
||||
|
@ -267,7 +278,7 @@ void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Centers_with_map);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%u (%.1lf%%)",
|
||||
NumCtrsWithMap,
|
||||
NumCtrs ? (double) NumCtrsWithMap * 100.0 /
|
||||
|
@ -284,6 +295,7 @@ void HieCfg_NumCtrsWithMap (unsigned NumCtrs,unsigned NumCtrsWithMap)
|
|||
|
||||
void HieCfg_QR (const char *ParamName,long HieCod)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_QR_code;
|
||||
|
||||
/***** QR *****/
|
||||
|
@ -293,7 +305,7 @@ void HieCfg_QR (const char *ParamName,long HieCod)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_QR_code);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
QR_LinkTo (250,ParamName,HieCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -306,6 +318,7 @@ void HieCfg_QR (const char *ParamName,long HieCod)
|
|||
|
||||
void HieCfg_NumUsrsInCrss (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Users_in_courses;
|
||||
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
|
||||
|
@ -318,7 +331,7 @@ void HieCfg_NumUsrsInCrss (HieLvl_Level_t Scope,long Cod,Rol_Role_t Role)
|
|||
Txt_ROLES_PLURAL_Abc[Role][Usr_SEX_UNKNOWN]);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Enr_GetCachedNumUsrsInCrss (Scope,Cod,
|
||||
Role == Rol_UNK ? (1 << Rol_STD) |
|
||||
(1 << Rol_NET) |
|
||||
|
|
|
@ -95,6 +95,7 @@ void Hld_ResetHolidays (struct Hld_Holidays *Holidays)
|
|||
void Hld_SeeHolidays (void)
|
||||
{
|
||||
extern const char *Hlp_INSTITUTION_Holidays;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Holidays;
|
||||
extern const char *Txt_HOLIDAYS_HELP_ORDER[2];
|
||||
extern const char *Txt_HOLIDAYS_ORDER[2];
|
||||
|
@ -163,18 +164,20 @@ void Hld_SeeHolidays (void)
|
|||
/* Write data of this holiday */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Holidays.Lst[NumHld].PlcCod <= 0 ? Txt_All_places :
|
||||
Holidays.Lst[NumHld].PlaceFullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
Dat_ConvDateToDateStr (&Holidays.Lst[NumHld].StartDate,StrDate);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF (" %s",StrDate);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_NBSP ();
|
||||
switch (Holidays.Lst[NumHld].HldTyp)
|
||||
{
|
||||
|
@ -187,7 +190,8 @@ void Hld_SeeHolidays (void)
|
|||
}
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF (" %s",Holidays.Lst[NumHld].Name);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -503,6 +507,7 @@ static void Hld_ListHolidaysForEdition (const struct Hld_Holidays *Holidays,
|
|||
const struct Plc_Places *Places)
|
||||
{
|
||||
extern const char *Hlp_INSTITUTION_Holidays_edit;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Holidays;
|
||||
extern const char *Txt_All_places;
|
||||
extern const char *Txt_HOLIDAY_TYPES[Hld_NUM_TYPES_HOLIDAY];
|
||||
|
@ -536,7 +541,7 @@ static void Hld_ListHolidaysForEdition (const struct Hld_Holidays *Holidays,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Holiday code */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%ld ",Hld->HldCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
39
swad_icon.c
39
swad_icon.c
|
@ -384,8 +384,19 @@ void Ico_PutContextualIconToZIP (Act_Action_t NextAction,
|
|||
|
||||
void Ico_PutDivIcon (const char *DivClass,const char *Icon,const char *Title)
|
||||
{
|
||||
static const char *ClassIco[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "CONTEXT_ICO_16x16",
|
||||
[The_THEME_GREY ] = "CONTEXT_ICO_16x16",
|
||||
[The_THEME_PURPLE] = "CONTEXT_ICO_16x16",
|
||||
[The_THEME_BLUE ] = "CONTEXT_ICO_16x16",
|
||||
[The_THEME_YELLOW] = "CONTEXT_ICO_16x16",
|
||||
[The_THEME_PINK ] = "CONTEXT_ICO_16x16",
|
||||
[The_THEME_DARK ] = "CONTEXT_ICO_16x16 CONTEXT_ICO_DARK",
|
||||
};
|
||||
|
||||
HTM_DIV_Begin ("class=\"%s\"",DivClass);
|
||||
Ico_PutIcon (Icon,Title,"CONTEXT_ICO_16x16");
|
||||
Ico_PutIcon (Icon,Title,ClassIco[Gbl.Prefs.Theme]);
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
||||
|
@ -406,7 +417,18 @@ void Ico_PutDivIconLink (const char *DivClass,const char *Icon,const char *Title
|
|||
|
||||
void Ico_PutIconLink (const char *Icon,const char *Title)
|
||||
{
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16");
|
||||
static const char *ClassIco[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16",
|
||||
[The_THEME_GREY ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16",
|
||||
[The_THEME_PURPLE] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16",
|
||||
[The_THEME_BLUE ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16",
|
||||
[The_THEME_YELLOW] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16",
|
||||
[The_THEME_PINK ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16",
|
||||
[The_THEME_DARK ] = "CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO_16x16 CONTEXT_ICO_DARK",
|
||||
};
|
||||
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,ClassIco[Gbl.Prefs.Theme]);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -415,9 +437,20 @@ void Ico_PutIconLink (const char *Icon,const char *Title)
|
|||
|
||||
void Ico_PutIconTextLink (const char *Icon,const char *Text)
|
||||
{
|
||||
static const char *ClassIco[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "CONTEXT_ICO_x16",
|
||||
[The_THEME_GREY ] = "CONTEXT_ICO_x16",
|
||||
[The_THEME_PURPLE] = "CONTEXT_ICO_x16",
|
||||
[The_THEME_BLUE ] = "CONTEXT_ICO_x16",
|
||||
[The_THEME_YELLOW] = "CONTEXT_ICO_x16",
|
||||
[The_THEME_PINK ] = "CONTEXT_ICO_x16",
|
||||
[The_THEME_DARK ] = "CONTEXT_ICO_x16 CONTEXT_ICO_DARK",
|
||||
};
|
||||
|
||||
/***** Print icon and optional text *****/
|
||||
HTM_DIV_Begin ("class=\"CONTEXT_OPT ICO_HIGHLIGHT\"");
|
||||
Ico_PutIcon (Icon,Text,"CONTEXT_ICO_x16");
|
||||
Ico_PutIcon (Icon,Text,ClassIco[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF (" %s",Text);
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
|
|
@ -93,6 +93,7 @@ void Ind_ReqIndicatorsCourses (void)
|
|||
{
|
||||
extern const char *Hlp_ANALYTICS_Indicators;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Scope;
|
||||
extern const char *Txt_Types_of_degree;
|
||||
extern const char *Txt_only_if_the_scope_is_X;
|
||||
|
@ -141,7 +142,7 @@ void Ind_ReqIndicatorsCourses (void)
|
|||
Frm_LabelColumn ("RT","OthDegTypCod",Txt_Types_of_degree);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
DegTyp_WriteSelectorDegreeTypes (Indicators.DegTypCod);
|
||||
HTM_Txt (" (");
|
||||
HTM_TxtF (Txt_only_if_the_scope_is_X,Cfg_PLATFORM_SHORT_NAME);
|
||||
|
@ -427,13 +428,15 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
|
|||
unsigned NumCrssWithIndicatorYes[1 + Ind_NUM_INDICATORS],
|
||||
unsigned NumCrss,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Indicators;
|
||||
extern const char *Txt_Courses;
|
||||
extern const char *Txt_Total;
|
||||
unsigned Ind;
|
||||
const char *Class;
|
||||
const char *ClassNormal = "DAT_LIGHT RM";
|
||||
const char *ClassHighlight = "DAT RM LIGHT_BLUE";
|
||||
const char *ClassHighlight = Str_BuildStringStr ("%s RM LIGHT_BLUE",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
/***** Write number of courses with each number of indicators valid *****/
|
||||
HTM_TABLE_BeginPadding (2);
|
||||
|
@ -492,21 +495,23 @@ static void Ind_ShowNumCoursesWithIndicators (const struct Ind_Indicators *Indic
|
|||
if (PutForm)
|
||||
HTM_TD_Empty (1);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\"");
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Total);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\"");
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumCrss);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP RM\"");
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("(%.1f%%)",100.0);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
||||
HTM_TABLE_End ();
|
||||
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
36
swad_info.c
36
swad_info.c
|
@ -887,6 +887,7 @@ void Inf_SetInfoSrc (void)
|
|||
void Inf_FormsToSelSendInfo (void)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Source_of_information;
|
||||
extern const char *Txt_INFO_SRC_FULL_TEXT[Inf_NUM_SOURCES];
|
||||
extern const char *Txt_INFO_SRC_HELP[Inf_NUM_SOURCES];
|
||||
|
@ -947,21 +948,21 @@ void Inf_FormsToSelSendInfo (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Select info source */
|
||||
if (InfoSrc == FromDB.Src)
|
||||
HTM_TD_Begin ("class=\"DAT LT LIGHT_BLUE\"");
|
||||
else
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
Frm_BeginForm (Inf_ActionsSelecInfoSrc[Gbl.Crs.Info.Type]);
|
||||
HTM_INPUT_RADIO ("InfoSrc",InfoSrc != FromDB.Src &&
|
||||
(InfoSrc == Inf_NONE ||
|
||||
InfoAvailable[InfoSrc]), // Info available for this source
|
||||
"id=\"InfoSrc%u\" value=\"%u\"%s",
|
||||
(unsigned) InfoSrc,(unsigned) InfoSrc,
|
||||
InfoSrc == FromDB.Src ? " checked=\"checked\"" :
|
||||
(InfoSrc == Inf_NONE ||
|
||||
InfoAvailable[InfoSrc]) ? "" : // Info available for this source
|
||||
" disabled=\"disabled\"");
|
||||
Frm_EndForm ();
|
||||
HTM_TD_Begin ("class=\"%s LT%s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
InfoSrc == FromDB.Src ? " LIGHT_BLUE" :
|
||||
"");
|
||||
Frm_BeginForm (Inf_ActionsSelecInfoSrc[Gbl.Crs.Info.Type]);
|
||||
HTM_INPUT_RADIO ("InfoSrc",InfoSrc != FromDB.Src &&
|
||||
(InfoSrc == Inf_NONE ||
|
||||
InfoAvailable[InfoSrc]), // Info available for this source
|
||||
"id=\"InfoSrc%u\" value=\"%u\"%s",
|
||||
(unsigned) InfoSrc,(unsigned) InfoSrc,
|
||||
InfoSrc == FromDB.Src ? " checked=\"checked\"" :
|
||||
(InfoSrc == Inf_NONE ||
|
||||
InfoAvailable[InfoSrc]) ? "" : // Info available for this source
|
||||
" disabled=\"disabled\"");
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Form for this info source */
|
||||
|
@ -975,7 +976,7 @@ void Inf_FormsToSelSendInfo (void)
|
|||
HTM_LABEL_End ();
|
||||
if (Txt_INFO_SRC_HELP[InfoSrc])
|
||||
{
|
||||
HTM_SPAN_Begin ("class=\"DAT\"");
|
||||
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_BR ();
|
||||
HTM_TxtF ("(%s)",Txt_INFO_SRC_HELP[InfoSrc]);
|
||||
HTM_SPAN_End ();
|
||||
|
@ -1459,6 +1460,7 @@ static bool Inf_CheckPlainTxt (long CrsCod,Inf_Type_t InfoType)
|
|||
|
||||
static bool Inf_CheckAndShowPlainTxt (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_INFO_TITLE[Inf_NUM_TYPES];
|
||||
char TxtHTML[Cns_MAX_BYTES_LONG_TEXT + 1];
|
||||
bool ICanEdit = (Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
|
||||
|
@ -1495,7 +1497,7 @@ static bool Inf_CheckAndShowPlainTxt (void)
|
|||
Gbl.Crs.Info.Type == Inf_TEACHING_GUIDE)
|
||||
Lay_WriteHeaderClassPhoto (false,false,Gbl.Hierarchy.Ins.InsCod,Gbl.Hierarchy.Deg.DegCod,Gbl.Hierarchy.Crs.CrsCod);
|
||||
|
||||
HTM_DIV_Begin ("class=\"DAT LM\"");
|
||||
HTM_DIV_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
/***** Convert to respectful HTML and insert links *****/
|
||||
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
|
||||
|
|
|
@ -106,6 +106,7 @@ static void Ins_FormToGoToMap (struct Ins_Instit *Ins);
|
|||
void Ins_SeeInsWithPendingCtrs (void)
|
||||
{
|
||||
extern const char *Hlp_SYSTEM_Pending;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Institutions_with_pending_centers;
|
||||
extern const char *Txt_Institution;
|
||||
extern const char *Txt_Centers_ABBREVIATION;
|
||||
|
@ -170,7 +171,8 @@ void Ins_SeeInsWithPendingCtrs (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of pending centers (row[1]) */
|
||||
HTM_TD_Begin ("class=\"DAT RM %s\"",BgColor);
|
||||
HTM_TD_Begin ("class=\"%s RM %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],BgColor);
|
||||
HTM_Txt (row[1]);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -224,8 +226,8 @@ void Ins_DrawInstitutionLogoAndNameWithLink (struct Ins_Instit *Ins,Act_Action_t
|
|||
Ins_PutParamInsCod (Ins->InsCod);
|
||||
|
||||
/***** Link to action *****/
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Ins->FullName),ClassLink,NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Ins->FullName),ClassLink,NULL);
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Institution logo and name *****/
|
||||
Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,16,ClassLogo,true);
|
||||
|
@ -284,7 +286,7 @@ static void Ins_ListInstitutions (void)
|
|||
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
|
||||
Ins_PutIconsListingInstitutions,NULL,
|
||||
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
if (Gbl.Hierarchy.Inss.Num) // There are institutions in the current country
|
||||
{
|
||||
|
@ -356,6 +358,8 @@ static void Ins_PutIconToEditInstitutions (void)
|
|||
|
||||
static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned NumIns)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_INSTITUTION_STATUS[Hie_NUM_STATUS_TXT];
|
||||
const char *TxtClassNormal;
|
||||
const char *TxtClassStrong;
|
||||
|
@ -364,12 +368,12 @@ static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned Num
|
|||
if (Ins->Status & Hie_STATUS_BIT_PENDING)
|
||||
{
|
||||
TxtClassNormal = "DAT_LIGHT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_LIGHT";
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s","DAT_LIGHT");
|
||||
}
|
||||
else
|
||||
{
|
||||
TxtClassNormal = "DAT";
|
||||
TxtClassStrong = "BT_LINK LT DAT_N";
|
||||
TxtClassNormal = The_ClassDat[Gbl.Prefs.Theme];
|
||||
TxtClassStrong = Str_BuildStringStr ("BT_LINK LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
}
|
||||
BgColor = (Ins->InsCod == Gbl.Hierarchy.Ins.InsCod) ? "LIGHT_BLUE" :
|
||||
Gbl.ColorRows[Gbl.RowEvenOdd];
|
||||
|
@ -426,6 +430,7 @@ static void Ins_ListOneInstitutionForSeeing (struct Ins_Instit *Ins,unsigned Num
|
|||
|
||||
HTM_TR_End ();
|
||||
|
||||
Str_FreeStrings ();
|
||||
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
|
||||
}
|
||||
|
||||
|
@ -539,7 +544,7 @@ static void Ins_EditInstitutionsInternal (void)
|
|||
Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
|
||||
Ins_PutIconsEditingInstitutions,NULL,
|
||||
Hlp_COUNTRY_Institutions,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Put a form to create a new institution *****/
|
||||
Ins_PutFormToCreateInstitution ();
|
||||
|
@ -910,6 +915,7 @@ void Ins_WriteSelectorOfInstitution (void)
|
|||
|
||||
static void Ins_ListInstitutionsForEdition (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_INSTITUTION_STATUS[Hie_NUM_STATUS_TXT];
|
||||
unsigned NumIns;
|
||||
struct Ins_Instit *Ins;
|
||||
|
@ -948,44 +954,44 @@ static void Ins_ListInstitutionsForEdition (void)
|
|||
|
||||
/* Put icon to remove institution */
|
||||
HTM_TD_Begin ("class=\"BM\"");
|
||||
if (!ICanEdit ||
|
||||
NumCtrs || // Institution has centers
|
||||
NumUsrsIns || // Institution has users
|
||||
NumUsrsInCrssOfIns) // Institution has users
|
||||
// Institution has centers or users ==> deletion forbidden
|
||||
Ico_PutIconRemovalNotAllowed ();
|
||||
else
|
||||
Ico_PutContextualIconToRemove (ActRemIns,NULL,
|
||||
Hie_PutParamOtherHieCod,&Ins->InsCod);
|
||||
if (!ICanEdit ||
|
||||
NumCtrs || // Institution has centers
|
||||
NumUsrsIns || // Institution has users
|
||||
NumUsrsInCrssOfIns) // Institution has users
|
||||
// Institution has centers or users ==> deletion forbidden
|
||||
Ico_PutIconRemovalNotAllowed ();
|
||||
else
|
||||
Ico_PutContextualIconToRemove (ActRemIns,NULL,
|
||||
Hie_PutParamOtherHieCod,&Ins->InsCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Institution code */
|
||||
HTM_TD_Begin ("class=\"DAT CODE\"");
|
||||
HTM_Long (Ins->InsCod);
|
||||
HTM_TD_Begin ("class=\"%s CODE\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Ins->InsCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Institution logo */
|
||||
HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ins->FullName);
|
||||
Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,20,NULL,true);
|
||||
Lgo_DrawLogo (HieLvl_INS,Ins->InsCod,Ins->ShrtName,20,NULL,true);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Institution short name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenInsSho);
|
||||
Hie_PutParamOtherHieCod (&Ins->InsCod);
|
||||
HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Ins->ShrtName,
|
||||
HTM_SUBMIT_ON_CHANGE,
|
||||
"class=\"INPUT_SHORT_NAME\"");
|
||||
Frm_EndForm ();
|
||||
}
|
||||
else
|
||||
HTM_Txt (Ins->ShrtName);
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenInsSho);
|
||||
Hie_PutParamOtherHieCod (&Ins->InsCod);
|
||||
HTM_INPUT_TEXT ("ShortName",Cns_HIERARCHY_MAX_CHARS_SHRT_NAME,Ins->ShrtName,
|
||||
HTM_SUBMIT_ON_CHANGE,
|
||||
"class=\"INPUT_SHORT_NAME\"");
|
||||
Frm_EndForm ();
|
||||
}
|
||||
else
|
||||
HTM_Txt (Ins->ShrtName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Institution full name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActRenInsFul);
|
||||
|
@ -1000,7 +1006,7 @@ static void Ins_ListInstitutionsForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Institution WWW */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanEdit)
|
||||
{
|
||||
Frm_BeginForm (ActChgInsWWW);
|
||||
|
@ -1013,8 +1019,10 @@ static void Ins_ListInstitutionsForEdition (void)
|
|||
{
|
||||
Str_Copy (WWW,Ins->WWW,sizeof (WWW) - 1);
|
||||
HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHORT\"");
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT\" title=\"%s\"",
|
||||
Ins->WWW,Ins->WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\" title=\"%s\"",
|
||||
Ins->WWW,
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Ins->WWW);
|
||||
HTM_Txt (WWW);
|
||||
HTM_A_End ();
|
||||
HTM_DIV_End ();
|
||||
|
@ -1022,22 +1030,23 @@ static void Ins_ListInstitutionsForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of users who claim to belong to this institution */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrsIns);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of centers */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumCtrs);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Number of users in courses of this institution */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrsInCrssOfIns);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Institution requester */
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
UsrDat.UsrCod = Ins->RequesterUsrCod;
|
||||
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
|
@ -1396,8 +1405,8 @@ static void Ins_ShowAlertAndButtonToGoToIns (void)
|
|||
Ale_ShowLastAlertAndButton (ActSeeCtr,NULL,NULL,
|
||||
Ins_PutParamGoToIns,&Ins_EditingIns->InsCod,
|
||||
Btn_CONFIRM_BUTTON,
|
||||
Hie_BuildGoToMsg (Ins_EditingIns->ShrtName));
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_BuildGoToMsg (Ins_EditingIns->ShrtName));
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
/***** Alert *****/
|
||||
|
@ -1417,6 +1426,7 @@ static void Ins_PutParamGoToIns (void *InsCod)
|
|||
|
||||
static void Ins_PutFormToCreateInstitution (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_institution;
|
||||
extern const char *Txt_Create_institution;
|
||||
|
||||
|
@ -1472,27 +1482,28 @@ static void Ins_PutFormToCreateInstitution (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Number of users who claim to belong to this institution ****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of centers *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Number of users in courses of this institution ****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Institution requester *****/
|
||||
HTM_TD_Begin ("class=\"DAT INPUT_REQUESTER LT\"");
|
||||
HTM_TD_Begin ("class=\"%s INPUT_REQUESTER LT\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Msg_WriteMsgAuthor (&Gbl.Usrs.Me.UsrDat,true,NULL);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Institution status *****/
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TR_End ();
|
||||
|
@ -1797,7 +1808,7 @@ void Ins_ListInssFound (MYSQL_RES **mysql_res,unsigned NumInss)
|
|||
Txt_institutions),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Write heading *****/
|
||||
Ins_PutHeadInstitutionsForSeeing (false); // Order not selectable
|
||||
|
|
|
@ -302,6 +302,7 @@ static void InsCfg_Map (void)
|
|||
|
||||
static void InsCfg_Country (bool PrintView,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Country;
|
||||
unsigned NumCty;
|
||||
|
||||
|
@ -317,7 +318,7 @@ static void InsCfg_Country (bool PrintView,bool PutForm)
|
|||
Txt_Country);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
{
|
||||
/* Put form to select country */
|
||||
|
@ -340,9 +341,10 @@ static void InsCfg_Country (bool PrintView,bool PutForm)
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeCtyInf);
|
||||
Cty_PutParamCtyCod (Gbl.Hierarchy.Cty.CtyCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
|
||||
"BT_LINK LT DAT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Gbl.Hierarchy.Cty.Name[Gbl.Prefs.Language]),
|
||||
Str_BuildStringStr ("BT_LINK LT %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
Cty_DrawCountryMap (&Gbl.Hierarchy.Cty,"COUNTRY_MAP_TINY");
|
||||
HTM_NBSP ();
|
||||
|
@ -414,6 +416,7 @@ static void InsCfg_QR (void)
|
|||
|
||||
static void InsCfg_NumUsrs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Users_of_the_institution;
|
||||
|
||||
/***** Number of users *****/
|
||||
|
@ -423,7 +426,7 @@ static void InsCfg_NumUsrs (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Users_of_the_institution);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ins_GetCachedNumUsrsWhoClaimToBelongToIns (&Gbl.Hierarchy.Ins));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -436,6 +439,7 @@ static void InsCfg_NumUsrs (void)
|
|||
|
||||
static void InsCfg_NumDegs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Degrees;
|
||||
|
||||
/***** Number of degrees *****/
|
||||
|
@ -445,7 +449,7 @@ static void InsCfg_NumDegs (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Degrees);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Deg_GetCachedNumDegsInIns (Gbl.Hierarchy.Ins.InsCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -458,6 +462,7 @@ static void InsCfg_NumDegs (void)
|
|||
|
||||
static void InsCfg_NumCrss (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Courses;
|
||||
|
||||
/***** Number of courses *****/
|
||||
|
@ -467,7 +472,7 @@ static void InsCfg_NumCrss (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Courses);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInIns (Gbl.Hierarchy.Ins.InsCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -480,6 +485,7 @@ static void InsCfg_NumCrss (void)
|
|||
|
||||
static void InsCfg_NumDpts (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Departments;
|
||||
|
||||
/***** Number of departments *****/
|
||||
|
@ -489,7 +495,7 @@ static void InsCfg_NumDpts (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Departments);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Dpt_GetNumDptsInIns (Gbl.Hierarchy.Ins.InsCod));
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -1581,6 +1581,7 @@ void Lay_WriteHeaderClassPhoto (bool PrintView,bool DrawingClassPhoto,
|
|||
|
||||
void Lay_AdvertisementMobile (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Stay_connected_with_SWADroid;
|
||||
|
||||
if (!(rand () % Lay_SHOW_ADVERTISEMENT_ONE_TIME_OF_X))
|
||||
|
@ -1594,9 +1595,9 @@ void Lay_AdvertisementMobile (void)
|
|||
|
||||
/***** Show advertisement *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("class=\"DAT CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_A_Begin ("href=\"https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid\""
|
||||
" class=\"DAT\"");
|
||||
" class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Stay_connected_with_SWADroid);
|
||||
HTM_BR ();
|
||||
HTM_BR ();
|
||||
|
|
|
@ -375,6 +375,7 @@ void Lnk_FreeListLinks (void)
|
|||
|
||||
static void Lnk_ListLinksForEdition (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumLnk;
|
||||
struct Lnk_Link *Lnk;
|
||||
|
||||
|
@ -400,7 +401,7 @@ static void Lnk_ListLinksForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Link code */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Lnk->LnkCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
25
swad_mail.c
25
swad_mail.c
|
@ -101,6 +101,7 @@ static void Mai_EditingMailDomainDestructor (void);
|
|||
void Mai_SeeMailDomains (void)
|
||||
{
|
||||
extern const char *Hlp_START_Domains;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Email_domains_allowed_for_notifications;
|
||||
extern const char *Txt_EMAIL_DOMAIN_HELP_ORDER[3];
|
||||
extern const char *Txt_EMAIL_DOMAIN_ORDER[3];
|
||||
|
@ -154,15 +155,15 @@ void Mai_SeeMailDomains (void)
|
|||
/* Write data of this mail domain */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Gbl.Mails.Lst[NumMai].Domain);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Gbl.Mails.Lst[NumMai].Info);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RT\"");
|
||||
HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Gbl.Mails.Lst[NumMai].NumUsrs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -401,6 +402,7 @@ void Mai_FreeListMailDomains (void)
|
|||
static void Mai_ListMailDomainsForEdition (void)
|
||||
{
|
||||
extern const char *Hlp_START_Domains_edit;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Email_domains_allowed_for_notifications;
|
||||
unsigned NumMai;
|
||||
struct Mail *Mai;
|
||||
|
@ -429,7 +431,7 @@ static void Mai_ListMailDomainsForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Mail code */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Mai->MaiCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -454,7 +456,7 @@ static void Mai_ListMailDomainsForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of users */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Mai->NumUsrs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -792,6 +794,7 @@ static void Mai_ListEmails (__attribute__((unused)) void *Args)
|
|||
{
|
||||
extern const char *Hlp_COMMUNICATION_Email;
|
||||
extern const char *The_ClassFormOutBoxBold[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Email_addresses;
|
||||
extern const char *Txt_X_users_who_have_email;
|
||||
extern const char *Txt_X_users_who_have_accepted_and_who_have_email;
|
||||
|
@ -865,12 +868,12 @@ static void Mai_ListEmails (__attribute__((unused)) void *Args)
|
|||
HTM_DIV_End ();
|
||||
|
||||
/***** Show a message with the number of users with email ****/
|
||||
HTM_DIV_Begin ("class=\"DAT CM\"");
|
||||
HTM_DIV_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF (Txt_X_users_who_have_email,NumUsrsWithEmail);
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** Show a message with the number of users who have accepted and have email ****/
|
||||
HTM_DIV_Begin ("class=\"DAT CM\"");
|
||||
HTM_DIV_Begin ("class=\"%s CM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF (Txt_X_users_who_have_accepted_and_who_have_email,
|
||||
NumAcceptedUsrsWithEmail);
|
||||
HTM_DIV_End ();
|
||||
|
@ -1047,6 +1050,7 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe,
|
|||
bool IMustFillInEmail,
|
||||
bool IShouldConfirmEmail)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_in_your_email_address;
|
||||
extern const char *Txt_Please_confirm_your_email_address;
|
||||
extern const char *Txt_Current_email;
|
||||
|
@ -1126,7 +1130,8 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe,
|
|||
Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Other_emails);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
}
|
||||
|
||||
/* Form to remove email */
|
||||
|
@ -1146,7 +1151,7 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe,
|
|||
Ico_PutIcon ("check-circle.svg",
|
||||
Str_BuildStringStr (Txt_Email_X_confirmed,row[0]),
|
||||
"ICO16x16");
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
/* Form to change user's email */
|
||||
|
@ -1185,7 +1190,7 @@ static void Mai_ShowFormChangeUsrEmail (bool ItsMe,
|
|||
Txt_Email); // The first email
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ItsMe)
|
||||
Frm_BeginFormAnchor (ActChgMyMai,Mai_EMAIL_SECTION_ID);
|
||||
else
|
||||
|
|
31
swad_match.c
31
swad_match.c
|
@ -717,8 +717,11 @@ static void Mch_GetAndWriteNamesOfGrpsAssociatedToMatch (const struct Mch_Match
|
|||
|
||||
void Mch_ListOneOrMoreMatchesNumPlayers (const struct Mch_Match *Match)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
|
||||
/***** Number of players who have answered any question in the match ******/
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (Mch_DB_GetNumUsrsWhoHavePlayedMch (Match->MchCod));
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
@ -729,15 +732,17 @@ void Mch_ListOneOrMoreMatchesNumPlayers (const struct Mch_Match *Match)
|
|||
|
||||
static void Mch_ListOneOrMoreMatchesStatus (struct Mch_Match *Match,unsigned NumQsts)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Play;
|
||||
extern const char *Txt_Resume;
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
|
||||
if (Match->Status.Showing != Mch_END) // Match not over
|
||||
{
|
||||
/* Current question index / total of questions */
|
||||
HTM_DIV_Begin ("class=\"DAT\"");
|
||||
HTM_DIV_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%u/%u",Match->Status.QstInd,NumQsts);
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
@ -762,6 +767,7 @@ static void Mch_ListOneOrMoreMatchesStatus (struct Mch_Match *Match,unsigned Num
|
|||
static void Mch_ListOneOrMoreMatchesResult (struct Gam_Games *Games,
|
||||
const struct Mch_Match *Match)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
static void (*Function[Rol_NUM_ROLES]) (struct Gam_Games *Games,
|
||||
const struct Mch_Match *Match) =
|
||||
{
|
||||
|
@ -771,7 +777,8 @@ static void Mch_ListOneOrMoreMatchesResult (struct Gam_Games *Games,
|
|||
[Rol_SYS_ADM] = Mch_ListOneOrMoreMatchesResultTch,
|
||||
};
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
|
||||
if (Function[Gbl.Usrs.Me.Role.Logged])
|
||||
Function[Gbl.Usrs.Me.Role.Logged] (Games,Match);
|
||||
|
@ -1318,6 +1325,7 @@ static void Mch_PutFormNewMatch (const struct Gam_Game *Game)
|
|||
static void Mch_ShowLstGrpsToEditMatch (long MchCod)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Groups;
|
||||
extern const char *Txt_The_whole_course;
|
||||
unsigned NumGrpTyp;
|
||||
|
@ -1343,7 +1351,8 @@ static void Mch_ShowLstGrpsToEditMatch (long MchCod)
|
|||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"WholeCrs\" value=\"Y\"%s"
|
||||
|
@ -2370,7 +2379,7 @@ static void Mch_PutFormCountdown (struct Mch_Match *Match,long Seconds,const cha
|
|||
"BT_LINK_OFF MCH_BUTTON_HIDDEN %s",
|
||||
Color),
|
||||
NULL);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
HTM_NBSP ();
|
||||
if (Seconds >= 0)
|
||||
|
@ -2639,7 +2648,7 @@ static void Mch_ShowFormColumns (const struct Mch_Match *Match)
|
|||
Str_BuildStringLongStr ((long) NumCols,
|
||||
NumCols == 1 ? Txt_column :
|
||||
Txt_columns));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* End form */
|
||||
Frm_EndForm ();
|
||||
|
@ -2667,6 +2676,7 @@ static void Mch_PutParamNumCols (unsigned NumCols) // Number of columns
|
|||
|
||||
static void Mch_PutCheckboxResult (const struct Mch_Match *Match)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_View_results;
|
||||
|
||||
/***** Begin container *****/
|
||||
|
@ -2677,7 +2687,10 @@ static void Mch_PutCheckboxResult (const struct Mch_Match *Match)
|
|||
Mch_PutParamMchCod (Match->MchCod); // Current match being played
|
||||
|
||||
/***** Put icon with link *****/
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_View_results,"BT_LINK DAT ICO_HIGHLIGHT",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_View_results,
|
||||
Str_BuildStringStr ("BT_LINK %s ICO_HIGHLIGHT",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_TxtF ("<i class=\"%s\"></i>",
|
||||
Match->Status.ShowQstResults ? "fas fa-toggle-on" :
|
||||
"fas fa-toggle-off");
|
||||
|
@ -3220,7 +3233,7 @@ static void Mch_DrawScoreRow (double Score,double MinScore,double MaxScore,
|
|||
NumUsrs == 1 ? Txt_ROLES_SINGUL_abc[Rol_STD][Usr_SEX_UNKNOWN] :
|
||||
Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN]),
|
||||
"class=\"MCH_SCO_BAR\" style=\"width:%u%%;\"",BarWidth);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
free (Icon);
|
||||
HTM_TxtF (" %u",NumUsrs);
|
||||
HTM_TD_End ();
|
||||
|
|
|
@ -171,7 +171,7 @@ void MchRes_ShowMyMchResultsInGam (void)
|
|||
MchRes_ShowResultsBegin (&Games,
|
||||
Str_BuildStringStr (Txt_Results_of_game_X,Game.Title),
|
||||
false); // Do not list games to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
MchRes_ListMyMchResultsInGam (&Games,Game.GamCod);
|
||||
MchRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -223,7 +223,7 @@ void MchRes_ShowMyMchResultsInMch (void)
|
|||
/***** List my matches results in match *****/
|
||||
MchRes_ShowResultsBegin (&Games,Str_BuildStringStr (Txt_Results_of_match_X,Match.Title),
|
||||
false); // Do not list games to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
MchRes_ListMyMchResultsInMch (&Games,Match.MchCod);
|
||||
MchRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -375,7 +375,7 @@ void MchRes_ShowAllMchResultsInGam (void)
|
|||
MchRes_ShowResultsBegin (&Games,
|
||||
Str_BuildStringStr (Txt_Results_of_game_X,Game.Title),
|
||||
false); // Do not list games to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
MchRes_ListAllMchResultsInGam (&Games,Game.GamCod);
|
||||
MchRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -450,7 +450,7 @@ void MchRes_ShowAllMchResultsInMch (void)
|
|||
MchRes_ShowResultsBegin (&Games,
|
||||
Str_BuildStringStr (Txt_Results_of_match_X,Match.Title),
|
||||
false); // Do not list games to select
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
MchRes_ListAllMchResultsInMch (&Games,Match.MchCod);
|
||||
MchRes_ShowResultsEnd ();
|
||||
|
||||
|
@ -532,6 +532,7 @@ static void MchRes_ShowResultsEnd (void)
|
|||
static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
|
||||
{
|
||||
extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Games;
|
||||
extern const char *Txt_Game;
|
||||
extern const char *Txt_Update_results;
|
||||
|
@ -576,7 +577,8 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
|
|||
/* Write a row for this event */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT CT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s CT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_INPUT_CHECKBOX ("GamCod",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"Gam%u\" value=\"%ld\"%s",
|
||||
NumGame,Games->Lst[NumGame].GamCod,
|
||||
|
@ -584,13 +586,15 @@ static void MchRes_ListGamesToSelect (struct Gam_Games *Games)
|
|||
"");
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_LABEL_Begin ("for=\"Gam%u\"",NumGame);
|
||||
HTM_TxtF ("%u:",NumGame + 1);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Txt (Game.Title);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -716,6 +720,7 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
long GamCod, // <= 0 ==> any
|
||||
const char *GamesSelectedCommas)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Result;
|
||||
MYSQL_RES *mysql_res;
|
||||
struct UsrData *UsrDat;
|
||||
|
@ -788,8 +793,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
if (asprintf (&Id,"mch_res_time_%u_%u",
|
||||
(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id =\"%s\" class=\"DAT LT COLOR%u\"",
|
||||
Id,Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("id =\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||
true,true,false,0x7);
|
||||
|
@ -798,7 +803,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
}
|
||||
|
||||
/* Write match title */
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Txt (Match.Title);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -811,7 +817,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
}
|
||||
|
||||
/* Write number of questions */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
HTM_Unsigned (Print.NumQsts.All);
|
||||
else
|
||||
|
@ -819,7 +826,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write number of non-blank answers */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
if (Print.NumQsts.NotBlank)
|
||||
|
@ -832,7 +840,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write number of blank answers */
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank;
|
||||
if (ICanView.Score)
|
||||
{
|
||||
|
@ -846,7 +855,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write score */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
HTM_Double2Decimals (Print.Score);
|
||||
|
@ -858,7 +868,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write average score per question */
|
||||
HTM_TD_Begin ("class=\"DAT RT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
HTM_Double2Decimals (Print.NumQsts.All ? Print.Score /
|
||||
(double) Print.NumQsts.All :
|
||||
|
@ -868,7 +879,8 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write grade over maximum grade */
|
||||
HTM_TD_Begin ("class=\"DAT RT LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RT LINE_LEFT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
Grade = TstPrn_ComputeGrade (Print.NumQsts.All,Print.Score,Game.MaxGrade);
|
||||
|
@ -963,64 +975,65 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults,
|
|||
double TotalScore,
|
||||
double TotalGrade)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Matches;
|
||||
|
||||
/***** Begin row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Row title *****/
|
||||
HTM_TD_Begin ("colspan=\"3\" class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("colspan=\"3\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_TxtColonNBSP (Txt_Matches);
|
||||
HTM_Unsigned (NumResults);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumResults)
|
||||
HTM_Unsigned (NumTotalQsts->All);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of non-blank answers *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumResults)
|
||||
HTM_Unsigned (NumTotalQsts->NotBlank);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of blank answers *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumResults)
|
||||
HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total score *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Double2Decimals (TotalScore);
|
||||
HTM_Txt ("/");
|
||||
HTM_Unsigned (NumTotalQsts->All);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write average score per question *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Double2Decimals (NumTotalQsts->All ? TotalScore /
|
||||
(double) NumTotalQsts->All :
|
||||
0.0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total grade *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Double2Decimals (TotalGrade);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Last cell *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** End row *****/
|
||||
|
@ -1034,6 +1047,8 @@ static void MchRes_ShowMchResultsSummaryRow (unsigned NumResults,
|
|||
void MchRes_ShowOneMchResult (void)
|
||||
{
|
||||
extern const char *Hlp_ASSESSMENT_Games_results;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
|
||||
extern const char *Txt_Questions;
|
||||
|
@ -1120,11 +1135,11 @@ void MchRes_ShowOneMchResult (void)
|
|||
/* User */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
ID_WriteUsrIDs (UsrDat,NULL);
|
||||
HTM_TxtF (" %s",UsrDat->Surname1);
|
||||
if (UsrDat->Surname2[0])
|
||||
|
@ -1146,13 +1161,14 @@ void MchRes_ShowOneMchResult (void)
|
|||
{
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_START_END_TIME[StartEndTime]);
|
||||
HTM_TD_End ();
|
||||
|
||||
if (asprintf (&Id,"match_%u",(unsigned) StartEndTime) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"DAT LB\"",Id);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"",
|
||||
Id,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||
true,true,true,0x7);
|
||||
|
@ -1165,11 +1181,11 @@ void MchRes_ShowOneMchResult (void)
|
|||
/***** Number of questions *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Questions);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Print.NumQsts.All);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1178,11 +1194,11 @@ void MchRes_ShowOneMchResult (void)
|
|||
/***** Number of answers *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Answers);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Print.NumQsts.NotBlank);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -1191,11 +1207,11 @@ void MchRes_ShowOneMchResult (void)
|
|||
/***** Score *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Score);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
HTM_STRONG_Begin ();
|
||||
|
@ -1213,11 +1229,11 @@ void MchRes_ShowOneMchResult (void)
|
|||
/***** Grade *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Grade);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
HTM_STRONG_Begin ();
|
||||
|
@ -1233,11 +1249,11 @@ void MchRes_ShowOneMchResult (void)
|
|||
/***** Tags present in this result *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Tags);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Gam_ShowTstTagsPresentInAGame (Match.GamCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
21
swad_menu.c
21
swad_menu.c
|
@ -209,9 +209,26 @@ Act_Action_t Mnu_GetFirstActionAvailableInCurrentTab (void)
|
|||
|
||||
void Mnu_WriteMenuThisTab (void)
|
||||
{
|
||||
extern const char *The_ClassIcoMenu[Ico_NUM_ICON_SETS][The_NUM_THEMES];
|
||||
extern const char *The_ClassTxtMenu[The_NUM_THEMES];
|
||||
extern const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB];
|
||||
static const char *ClassIcoMenu[Ico_NUM_ICON_SETS][The_NUM_THEMES] =
|
||||
{
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_GREY ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_PINK ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " MENU_ICO_DARK",
|
||||
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "",
|
||||
};
|
||||
unsigned NumOptInMenu;
|
||||
Act_Action_t NumAct;
|
||||
const char *Title;
|
||||
|
@ -252,7 +269,7 @@ void Mnu_WriteMenuThisTab (void)
|
|||
/***** Icon and text *****/
|
||||
HTM_DIV_Begin ("class=\"MENU_ICO_TXT\"");
|
||||
HTM_DIV_Begin ("class=\"MENU_ICO%s\" style=\"background-image:url('%s/%s');\"",
|
||||
The_ClassIcoMenu[Gbl.Prefs.IconSet][Gbl.Prefs.Theme],
|
||||
ClassIcoMenu[Gbl.Prefs.IconSet][Gbl.Prefs.Theme],
|
||||
Gbl.Prefs.URLIconSet,
|
||||
Act_GetIcon (NumAct));
|
||||
HTM_DIV_End ();
|
||||
|
|
|
@ -2390,9 +2390,9 @@ static bool Msg_WriteCrsOrgMsg (long CrsCod)
|
|||
Crs_PutParamCrsCod (Crs.CrsCod);
|
||||
HTM_DIV_Begin ("class=\"AUTHOR_TXT\"");
|
||||
HTM_Txt ("(");
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs.FullName),
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs.FullName),
|
||||
"BT_LINK AUTHOR_TXT",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
Str_FreeStrings ();
|
||||
HTM_Txt (Crs.ShrtName);
|
||||
HTM_BUTTON_End ();
|
||||
HTM_Txt (")");
|
||||
|
@ -2876,6 +2876,7 @@ static void Msg_UnbanSender (void)
|
|||
|
||||
void Msg_ListBannedUsrs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_You_have_not_banned_any_sender;
|
||||
extern const char *Txt_Banned_users;
|
||||
extern const char *Txt_Sender_banned_click_to_unban_him;
|
||||
|
@ -2933,7 +2934,7 @@ void Msg_ListBannedUsrs (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write user's full name */
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (UsrDat.FullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -322,6 +322,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
|
|||
{
|
||||
extern const char *Hlp_ANALYTICS_Figures_webs_social_networks;
|
||||
extern const char *Net_DB_WebsAndSocialNetworks[Net_NUM_WEBS_AND_SOCIAL_NETWORKS];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
|
||||
extern const char *Txt_Web_social_network;
|
||||
extern const char *Txt_Number_of_users;
|
||||
|
@ -376,7 +377,7 @@ void Net_ShowWebAndSocialNetworksStats (void)
|
|||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_IMG (Cfg_URL_ICON_PUBLIC,
|
||||
Net_WebsAndSocialNetworksIcons[Web],
|
||||
Net_WebsAndSocialNetworksTitle[Web],
|
||||
|
@ -385,11 +386,11 @@ void Net_ShowWebAndSocialNetworksStats (void)
|
|||
HTM_Txt (Net_WebsAndSocialNetworksTitle[Web]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumUsrs);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Percentage (NumUsrsTotal ? 100.0 * (double) NumUsrs /
|
||||
(double) NumUsrsTotal :
|
||||
0.0);
|
||||
|
|
|
@ -150,6 +150,7 @@ static void Nck_ShowFormChangeUsrNickname (bool ItsMe,
|
|||
bool IMustFillNickname)
|
||||
{
|
||||
extern const char *Hlp_PROFILE_Account;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Nickname;
|
||||
extern const char *Txt_Before_going_to_any_other_option_you_must_fill_your_nickname;
|
||||
extern const char *Txt_Current_nickname;
|
||||
|
@ -235,7 +236,8 @@ static void Nck_ShowFormChangeUsrNickname (bool ItsMe,
|
|||
Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Other_nicknames);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
}
|
||||
|
||||
/* Form to remove old nickname */
|
||||
|
@ -292,7 +294,8 @@ static void Nck_ShowFormChangeUsrNickname (bool ItsMe,
|
|||
Txt_Nickname); // The first nickname
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ItsMe)
|
||||
Frm_BeginFormAnchor (ActChgMyNck,Nck_NICKNAME_SECTION_ID);
|
||||
else
|
||||
|
|
|
@ -309,6 +309,7 @@ static void Ntf_GetParamsNotifyEvents (void);
|
|||
void Ntf_ShowMyNotifications (void)
|
||||
{
|
||||
extern const char *Hlp_START_Notifications;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Settings;
|
||||
extern const char *Txt_Domains;
|
||||
extern const char *Txt_Mark_all_NOTIFICATIONS_as_read;
|
||||
|
@ -590,8 +591,9 @@ void Ntf_ShowMyNotifications (void)
|
|||
HTM_TD_Begin ("colspan=\"2\"");
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("colspan=\"4\" class=\"DAT LT\""
|
||||
" style=\"padding-bottom:12px;\"");
|
||||
HTM_TD_Begin ("colspan=\"4\" class=\"%s LT\""
|
||||
" style=\"padding-bottom:12px;\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (SummaryStr);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
30
swad_photo.c
30
swad_photo.c
|
@ -793,7 +793,7 @@ static bool Pho_ReceivePhotoAndDetectFaces (bool ItsMe,const struct UsrData *Usr
|
|||
Str_BuildStringStr ("%s_map.jpg",Gbl.UniqueNameEncrypted),
|
||||
Txt_Faces_detected,
|
||||
"usemap=\"#faces_map\"");
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** End alert *****/
|
||||
|
@ -886,6 +886,7 @@ static void Pho_UpdatePhoto1 (struct UsrData *UsrDat)
|
|||
|
||||
static void Pho_UpdatePhoto2 (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_PHOTO_PROCESSING_CAPTIONS[3];
|
||||
unsigned NumPhoto;
|
||||
char *Img;
|
||||
|
@ -900,7 +901,8 @@ static void Pho_UpdatePhoto2 (void)
|
|||
NumPhoto < 3;
|
||||
NumPhoto++)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"DAT CT\" style=\"width:33%%;\"");
|
||||
HTM_TD_Begin ("class=\"%s CT\" style=\"width:33%%;\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (asprintf (&Img,"%s_paso%u.jpg",Gbl.Usrs.FileNamePhoto,NumPhoto + 1) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
HTM_IMG (Cfg_URL_PHOTO_TMP_PUBLIC,Img,Txt_PHOTO_PROCESSING_CAPTIONS[NumPhoto],
|
||||
|
@ -2177,6 +2179,7 @@ static void Pho_ShowOrPrintClassPhotoDegrees (struct Pho_DegPhotos *DegPhotos,
|
|||
static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
|
||||
Pho_AvgPhotoSeeOrPrint_t SeeOrPrint)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_No_INDEX;
|
||||
extern const char *Txt_Degree;
|
||||
extern const char *Txt_SEX_PLURAL_Abc[Usr_NUM_SEXS];
|
||||
|
@ -2229,15 +2232,21 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Show logo and name of this degree *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s RM COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_Unsigned (++NumDegsNotEmpty);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Show logo and name of this degree *****/
|
||||
HTM_TD_Begin ("class=\"DAT LM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LM COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (SeeOrPrint == Pho_DEGREES_SEE)
|
||||
{
|
||||
Deg_DrawDegreeLogoAndNameWithLink (&Deg,ActSeeDegInf,
|
||||
"BT_LINK DAT","CT");
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
"CT");
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else // Pho_DEGREES_PRINT
|
||||
{
|
||||
Lgo_DrawLogo (HieLvl_DEG,Deg.DegCod,Deg.ShrtName,20,"CT",true);
|
||||
|
@ -2310,9 +2319,10 @@ static void Pho_GetNumStdsInDegree (long DegCod,Usr_Sex_t Sex,
|
|||
|
||||
static void Pho_ShowDegreeStat (int NumStds,int NumStdsWithPhoto)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_photos;
|
||||
|
||||
HTM_SPAN_Begin ("class=\"DAT\"");
|
||||
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%d ",NumStds);
|
||||
HTM_SPAN_End ();
|
||||
|
||||
|
@ -2335,6 +2345,7 @@ static void Pho_ShowDegreeAvgPhotoAndStat (const struct Deg_Degree *Deg,
|
|||
int NumStds,int NumStdsWithPhoto)
|
||||
{
|
||||
extern const char *Usr_StringsSexDB[Usr_NUM_SEXS];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_students_ABBREVIATION;
|
||||
extern const char *Txt_SEX_PLURAL_abc[Usr_NUM_SEXS];
|
||||
extern const char *Txt_photos;
|
||||
|
@ -2361,8 +2372,8 @@ static void Pho_ShowDegreeAvgPhotoAndStat (const struct Deg_Degree *Deg,
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeDegInf);
|
||||
Deg_PutParamDegCod (Deg->DegCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Deg->FullName),"BT_LINK",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Deg->FullName),"BT_LINK",NULL);
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
/***** Check if photo of degree can be shown *****/
|
||||
|
@ -2398,7 +2409,8 @@ static void Pho_ShowDegreeAvgPhotoAndStat (const struct Deg_Degree *Deg,
|
|||
0);
|
||||
Frm_SetUniqueId (IdCaption);
|
||||
HTM_DIV_Begin ("id=\"%s\" class=\"NOT_SHOWN\"",IdCaption);
|
||||
HTM_DIV_Begin ("class=\"ZOOM_TXT_LINE DAT_N\"");
|
||||
HTM_DIV_Begin ("class=\"ZOOM_TXT_LINE %s\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (PhotoCaption);
|
||||
HTM_DIV_End ();
|
||||
HTM_DIV_End ();
|
||||
|
|
24
swad_place.c
24
swad_place.c
|
@ -94,6 +94,7 @@ void Plc_ResetPlaces (struct Plc_Places *Places)
|
|||
void Plc_SeePlaces (void)
|
||||
{
|
||||
extern const char *Hlp_INSTITUTION_Places;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Places;
|
||||
extern const char *Txt_PLACES_HELP_ORDER[2];
|
||||
extern const char *Txt_PLACES_ORDER[2];
|
||||
|
@ -152,11 +153,11 @@ void Plc_SeePlaces (void)
|
|||
/* Write data of this place */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Places.Lst[NumPlc].FullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Places.Lst[NumPlc].NumCtrs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -166,7 +167,8 @@ void Plc_SeePlaces (void)
|
|||
|
||||
/***** Separation row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"DAT\"");
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"%s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_NBSP ();
|
||||
HTM_TD_End ();
|
||||
HTM_TR_End ();
|
||||
|
@ -175,11 +177,11 @@ void Plc_SeePlaces (void)
|
|||
NumCtrsInOtherPlcs = Ctr_DB_GetNumCtrsInPlc (0);
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Other_places);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (NumCtrsInOtherPlcs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -189,11 +191,11 @@ void Plc_SeePlaces (void)
|
|||
/***** Write centers (of the current institution) with no place *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_Place_unspecified);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ctr_GetNumCtrsInIns (Gbl.Hierarchy.Ins.InsCod) -
|
||||
NumCtrsWithPlc);
|
||||
HTM_TD_End ();
|
||||
|
@ -455,6 +457,7 @@ void Plc_FreeListPlaces (struct Plc_Places *Places)
|
|||
|
||||
static void Plc_ListPlacesForEdition (const struct Plc_Places *Places)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumPlc;
|
||||
struct Plc_Place *Plc;
|
||||
|
||||
|
@ -483,7 +486,7 @@ static void Plc_ListPlacesForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Place code */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Plc->PlcCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -508,7 +511,7 @@ static void Plc_ListPlacesForEdition (const struct Plc_Places *Places)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Number of centers */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Plc->NumCtrs);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -699,6 +702,7 @@ void Plc_ContEditAfterChgPlc (void)
|
|||
|
||||
static void Plc_PutFormToCreatePlace (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_place;
|
||||
extern const char *Txt_Create_place;
|
||||
|
||||
|
@ -738,7 +742,7 @@ static void Plc_PutFormToCreatePlace (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Number of centers *****/
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (0);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -82,6 +82,7 @@ static void Plg_EditingPluginDestructor (void);
|
|||
|
||||
void Plg_ListPlugins (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Option_under_development;
|
||||
extern const char *Txt_Plugins;
|
||||
extern const char *Txt_Plugin;
|
||||
|
@ -129,20 +130,21 @@ void Plg_ListPlugins (void)
|
|||
// TODO: Change plugin icons to 32x32
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\" style=\"width:45px;\"");
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"",
|
||||
URL,Plg->Name);
|
||||
HTM_TD_Begin ("class=\"%s LM\" style=\"width:45px;\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"",
|
||||
URL,Plg->Name,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_IMG (Cfg_URL_ICON_PLUGINS_PUBLIC,
|
||||
Str_BuildStringStr ("%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo),
|
||||
Plg->Name,
|
||||
"class=\"ICO40x40\"");
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_A_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"",
|
||||
URL,Plg->Name);
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"",
|
||||
URL,Plg->Name,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Plg->Name);
|
||||
HTM_A_End ();
|
||||
HTM_TD_End ();
|
||||
|
@ -326,6 +328,7 @@ void Plg_FreeListPlugins (void)
|
|||
|
||||
static void Plg_ListPluginsForEdition (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumPlg;
|
||||
struct Plugin *Plg;
|
||||
|
||||
|
@ -352,7 +355,7 @@ static void Plg_ListPluginsForEdition (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Plugin code */
|
||||
HTM_TD_Begin ("class=\"DAT RM\"");
|
||||
HTM_TD_Begin ("class=\"%s RM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Long (Plg->PlgCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -363,7 +366,7 @@ static void Plg_ListPluginsForEdition (void)
|
|||
Str_BuildStringStr ("%s24x24.gif",Gbl.Plugins.Lst[NumPlg].Logo),
|
||||
Gbl.Plugins.Lst[NumPlg].Name,
|
||||
"class=\"ICO40x40\"");
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Plugin name */
|
||||
|
|
|
@ -154,6 +154,8 @@ static void Pri_PutFormVisibility (const char *TxtLabel,
|
|||
unsigned MaskAllowedVisibility)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_PRIVACY_OPTIONS[Pri_NUM_OPTIONS_PRIVACY];
|
||||
Pri_Visibility_t Visibility;
|
||||
|
||||
|
@ -170,24 +172,25 @@ static void Pri_PutFormVisibility (const char *TxtLabel,
|
|||
Frm_BeginFormAnchor (Action,Pri_PRIVACY_ID);
|
||||
HTM_UL_Begin ("class=\"PRI_LIST LIST_LEFT\"");
|
||||
|
||||
for (Visibility = Pri_VISIBILITY_USER;
|
||||
for (Visibility = Pri_VISIBILITY_USER;
|
||||
Visibility <= Pri_VISIBILITY_WORLD;
|
||||
Visibility++)
|
||||
if (MaskAllowedVisibility & (1 << Visibility))
|
||||
{
|
||||
HTM_LI_Begin ("class=\"%s\"",
|
||||
(Visibility == CurrentVisibilityInDB) ? "DAT_N LIGHT_BLUE" :
|
||||
"DAT");
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_RADIO (ParamName,Action != ActUnk,
|
||||
"value=\"%u\"%s%s",
|
||||
(unsigned) Visibility,
|
||||
Visibility == CurrentVisibilityInDB ? " checked=\"checked\"" :
|
||||
"",
|
||||
Action == ActUnk ? " disabled=\"disabled\"" :
|
||||
"");
|
||||
HTM_Txt (Txt_PRIVACY_OPTIONS[Visibility]);
|
||||
HTM_LABEL_End ();
|
||||
if (Visibility == CurrentVisibilityInDB)
|
||||
HTM_LI_Begin ("class=\"%s LIGHT_BLUE\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
else
|
||||
HTM_LI_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_RADIO (ParamName,Action != ActUnk,
|
||||
"value=\"%u\"%s%s",
|
||||
(unsigned) Visibility,
|
||||
Visibility == CurrentVisibilityInDB ? " checked=\"checked\"" :
|
||||
"",
|
||||
Action == ActUnk ? " disabled=\"disabled\"" :
|
||||
"");
|
||||
HTM_Txt (Txt_PRIVACY_OPTIONS[Visibility]);
|
||||
HTM_LABEL_End ();
|
||||
HTM_LI_End ();
|
||||
}
|
||||
|
||||
|
|
|
@ -778,7 +778,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
|
|||
"arrow-up.svg",
|
||||
Str_BuildStringStr (Txt_Move_up_X,
|
||||
StrItemIndex));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed);
|
||||
|
@ -791,7 +791,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
|
|||
"arrow-down.svg",
|
||||
Str_BuildStringStr (Txt_Move_down_X,
|
||||
StrItemIndex));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed);
|
||||
|
@ -804,7 +804,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
|
|||
"arrow-left.svg",
|
||||
Str_BuildStringStr (Txt_Increase_level_of_X,
|
||||
StrItemIndex));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-left.svg",Txt_Movement_not_allowed);
|
||||
|
@ -817,7 +817,7 @@ static void Prg_PutFormsToRemEditOneItem (unsigned NumItem,
|
|||
"arrow-right.svg",
|
||||
Str_BuildStringStr (Txt_Decrease_level_of_X,
|
||||
StrItemIndex));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-right.svg",Txt_Movement_not_allowed);
|
||||
|
|
|
@ -1003,6 +1003,7 @@ static void Prj_ShowProjectsHead (struct Prj_Projects *Projects,
|
|||
|
||||
static void Prj_ShowTableAllProjectsHead (void)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_PROJECT_ORDER[Prj_NUM_ORDERS];
|
||||
extern const char *Txt_Assigned_QUESTION;
|
||||
extern const char *Txt_Number_of_students;
|
||||
|
@ -1014,26 +1015,29 @@ static void Prj_ShowTableAllProjectsHead (void)
|
|||
extern const char *Txt_URL;
|
||||
Prj_Order_t Order;
|
||||
unsigned NumRoleToShow;
|
||||
const char *Class = Str_BuildStringStr ("LT %s",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
for (Order = (Prj_Order_t) 0;
|
||||
Order <= (Prj_Order_t) (Prj_NUM_ORDERS - 1);
|
||||
Order++)
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_PROJECT_ORDER[Order]);
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_Assigned_QUESTION);
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_Number_of_students);
|
||||
HTM_TH (1,1,Class,Txt_PROJECT_ORDER[Order]);
|
||||
HTM_TH (1,1,Class,Txt_Assigned_QUESTION);
|
||||
HTM_TH (1,1,Class,Txt_Number_of_students);
|
||||
for (NumRoleToShow = 0;
|
||||
NumRoleToShow < Brw_NUM_ROLES_TO_SHOW;
|
||||
NumRoleToShow++)
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]);
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_Proposal);
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_Description);
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_Required_knowledge);
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_Required_materials);
|
||||
HTM_TH (1,1,"LT DAT_N",Txt_URL);
|
||||
HTM_TH (1,1,Class,Txt_PROJECT_ROLES_PLURAL_Abc[Prj_RolesToShow[NumRoleToShow]]);
|
||||
HTM_TH (1,1,Class,Txt_Proposal);
|
||||
HTM_TH (1,1,Class,Txt_Description);
|
||||
HTM_TH (1,1,Class,Txt_Required_knowledge);
|
||||
HTM_TH (1,1,Class,Txt_Required_materials);
|
||||
HTM_TH (1,1,Class,Txt_URL);
|
||||
|
||||
HTM_TR_End ();
|
||||
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1214,6 +1218,7 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
|
|||
struct Prj_Project *Prj,
|
||||
Prj_ProjectView_t ProjectView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Project_files;
|
||||
extern const char *Txt_Assigned_QUESTION;
|
||||
extern const char *Txt_Yes;
|
||||
|
@ -1249,7 +1254,7 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
|
|||
ClassLink = (Prj->Hidden == Prj_HIDDEN) ? "BT_LINK LT ASG_TITLE_LIGHT" :
|
||||
"BT_LINK LT ASG_TITLE";
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Set anchor string *****/
|
||||
Frm_SetAnchorStr (Prj->PrjCod,&Anchor);
|
||||
|
@ -1651,6 +1656,7 @@ static void Prj_PutIconToToggleProject (unsigned UniqueId,
|
|||
|
||||
static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Yes;
|
||||
extern const char *Txt_No;
|
||||
extern const char *Txt_PROJECT_STATUS[Prj_NUM_PROPOSAL_TYPES];
|
||||
|
@ -1667,7 +1673,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
|
|||
ClassDate = (Prj->Hidden == Prj_HIDDEN) ? "DATE_BLUE_LIGHT" :
|
||||
"DATE_BLUE";
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Begin row *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -1754,13 +1760,14 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
|
|||
static void Prj_ShowOneProjectDepartment (const struct Prj_Project *Prj,
|
||||
Prj_ProjectView_t ProjectView)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
struct Dpt_Department Dpt;
|
||||
bool PutLink;
|
||||
const char *ClassData;
|
||||
|
||||
/***** Set CSS classes *****/
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Get data of department *****/
|
||||
Dpt.DptCod = Prj->DptCod;
|
||||
|
@ -1792,12 +1799,13 @@ static void Prj_ShowOneProjectDepartment (const struct Prj_Project *Prj,
|
|||
|
||||
static void Prj_ShowTableAllProjectsDepartment (const struct Prj_Project *Prj)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
struct Dpt_Department Dpt;
|
||||
const char *ClassData;
|
||||
|
||||
/***** Set CSS classes *****/
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Get data of department *****/
|
||||
Dpt.DptCod = Prj->DptCod;
|
||||
|
@ -1819,6 +1827,7 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj,
|
|||
const char *Label,char *TxtField,
|
||||
bool Warning)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
const char *ClassLabel;
|
||||
const char *ClassData;
|
||||
|
||||
|
@ -1826,7 +1835,7 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj,
|
|||
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
|
||||
"ASG_LABEL";
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Label *****/
|
||||
switch (ProjectView)
|
||||
|
@ -1887,11 +1896,12 @@ static void Prj_ShowOneProjectTxtField (struct Prj_Project *Prj,
|
|||
static void Prj_ShowTableAllProjectsTxtField (struct Prj_Project *Prj,
|
||||
char *TxtField)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
const char *ClassData;
|
||||
|
||||
/***** Set CSS classes *****/
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Change format *****/
|
||||
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
|
||||
|
@ -1911,6 +1921,7 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
|
|||
Prj_ProjectView_t ProjectView,
|
||||
const char *id,unsigned UniqueId)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_URL;
|
||||
const char *ClassLabel;
|
||||
const char *ClassData;
|
||||
|
@ -1922,7 +1933,7 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
|
|||
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
|
||||
"ASG_LABEL";
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Write row with label and text *****/
|
||||
switch (ProjectView)
|
||||
|
@ -1970,11 +1981,12 @@ static void Prj_ShowOneProjectURL (const struct Prj_Project *Prj,
|
|||
|
||||
static void Prj_ShowTableAllProjectsURL (const struct Prj_Project *Prj)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
const char *ClassData;
|
||||
|
||||
/***** Set CSS classes *****/
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Show URL *****/
|
||||
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",ClassData,Gbl.RowEvenOdd);
|
||||
|
@ -2009,6 +2021,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
|
|||
Prj_ProjectView_t ProjectView,
|
||||
Prj_RoleInProject_t RoleInPrj)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_PROJECT_ROLES_SINGUL_Abc[Prj_NUM_ROLES_IN_PROJECT];
|
||||
extern const char *Txt_PROJECT_ROLES_PLURAL_Abc[Prj_NUM_ROLES_IN_PROJECT];
|
||||
extern const char *Txt_Remove;
|
||||
|
@ -2047,7 +2060,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
|
|||
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
|
||||
"ASG_LABEL";
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Get users in project from database *****/
|
||||
NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj);
|
||||
|
@ -2098,7 +2111,8 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
|
|||
ClassData);
|
||||
break;
|
||||
case Prj_EDIT_ONE_PROJECT:
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"LT DAT\"");
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -2161,7 +2175,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
|
|||
Prj_PutCurrentParams,Projects,
|
||||
Str_BuildStringStr (Txt_Add_USERS,
|
||||
Txt_PROJECT_ROLES_PLURAL_abc[RoleInPrj]));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"PRJ_MEMBER_PHO\""); // Column for photo
|
||||
|
@ -2191,6 +2205,7 @@ static void Prj_ShowOneProjectMembersWithARole (struct Prj_Projects *Projects,
|
|||
static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *Prj,
|
||||
Prj_RoleInProject_t RoleInPrj)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
unsigned NumUsr;
|
||||
|
@ -2199,7 +2214,7 @@ static void Prj_ShowTableAllProjectsMembersWithARole (const struct Prj_Project *
|
|||
|
||||
/***** Set CSS classes *****/
|
||||
ClassData = (Prj->Hidden == Prj_HIDDEN) ? "DAT_LIGHT" :
|
||||
"DAT";
|
||||
The_ClassDat[Gbl.Prefs.Theme];
|
||||
|
||||
/***** Get users in project from database *****/
|
||||
NumUsrs = Prj_DB_GetUsrsInPrj (&mysql_res,Prj->PrjCod,RoleInPrj);
|
||||
|
@ -2573,7 +2588,7 @@ static void Prj_ReqRemUsrFromPrj (struct Prj_Projects *Projects,
|
|||
Prj_PutCurrentParams (Projects);
|
||||
Btn_PutRemoveButton (Str_BuildStringStr (Txt_Remove_USER_from_this_project,
|
||||
Txt_PROJECT_ROLES_SINGUL_abc[RoleInPrj][Gbl.Usrs.Other.UsrDat.Sex]));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
|
||||
/* End alert */
|
||||
|
@ -3241,6 +3256,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects,
|
|||
extern const char *Hlp_ASSESSMENT_Projects_new_project;
|
||||
extern const char *Hlp_ASSESSMENT_Projects_edit_project;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_project;
|
||||
extern const char *Txt_Edit_project;
|
||||
extern const char *Txt_Data;
|
||||
|
@ -3420,7 +3436,7 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects,
|
|||
Frm_LabelColumn ("RT","WWW",Txt_URL);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LT\"");
|
||||
HTM_TD_Begin ("class=\"%s LT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_INPUT_URL ("URL",Prj->URL,HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"class=\"TITLE_DESCRIPTION_WIDTH\"");
|
||||
HTM_TD_End ();
|
||||
|
|
|
@ -195,6 +195,7 @@ void Qst_ShowFormRequestEditQsts (struct Qst_Questions *Questions)
|
|||
void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Types_of_answers;
|
||||
extern const char *Txt_All_types_of_answers;
|
||||
extern const char *Txt_TST_STR_ANSWER_TYPES[Qst_NUM_ANS_TYPES];
|
||||
|
@ -247,7 +248,7 @@ void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes)
|
|||
}
|
||||
}
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_LABEL_Begin ("class=\"DAT\"");
|
||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_INPUT_CHECKBOX ("AnswerType",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"value=\"%u\"%s onclick=\"checkParent(this,'AllAnsTypes');\"",
|
||||
(unsigned) AnsType,
|
||||
|
@ -1860,7 +1861,7 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question)
|
|||
Box_BoxBegin (NULL,Str_BuildStringLong (Txt_Question_code_X,Question->QstCod),
|
||||
Qst_PutIconToRemoveOneQst,&Question->QstCod,
|
||||
Hlp_ASSESSMENT_Questions_writing_a_question,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Box_BoxBegin (NULL,Txt_New_question,
|
||||
|
|
|
@ -1565,6 +1565,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
|
|||
struct UsrData *UsrDat,const char *Anchor)
|
||||
{
|
||||
extern const char *Hlp_USERS_Students_course_record_card;
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *Txt_RECORD_FIELD_VISIBILITY_RECORD[Rec_NUM_TYPES_VISIBILITY];
|
||||
extern const char *Txt_Save_changes;
|
||||
|
@ -1733,7 +1734,8 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
|
|||
|
||||
/* Write form, text, or nothing depending on
|
||||
the user's role and the visibility of the field */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanEditThisField) // Show with form
|
||||
{
|
||||
HTM_TEXTAREA_Begin ("name=\"Field%ld\" rows=\"%u\""
|
||||
|
@ -2681,11 +2683,16 @@ static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks)
|
|||
|
||||
static void Rec_ShowCountryInHead (struct UsrData *UsrDat,bool ShowData)
|
||||
{
|
||||
HTM_TD_Begin ("class=\"REC_C2_MID DAT_N LT\"");
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
|
||||
HTM_TD_Begin ("class=\"REC_C2_MID LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData && UsrDat->CtyCod > 0)
|
||||
{
|
||||
/* Link to see country information */
|
||||
Cty_WriteCountryName (UsrDat->CtyCod,
|
||||
"BT_LINK DAT_N"); // Put link to country
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDatN[Gbl.Prefs.Theme])); // Put link to country
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
||||
|
@ -2708,6 +2715,7 @@ static void Rec_ShowWebsAndSocialNets (struct UsrData *UsrDat,
|
|||
|
||||
static void Rec_ShowEmail (struct UsrData *UsrDat)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Email;
|
||||
|
||||
/***** Email *****/
|
||||
|
@ -2717,13 +2725,14 @@ static void Rec_ShowEmail (struct UsrData *UsrDat)
|
|||
Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Email);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (UsrDat->Email[0])
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"REC_EMAIL\""); // Limited width
|
||||
if (Mai_ICanSeeOtherUsrEmail (UsrDat))
|
||||
{
|
||||
HTM_A_Begin ("href=\"mailto:%s\" class=\"DAT_N\"",UsrDat->Email);
|
||||
HTM_A_Begin ("href=\"mailto:%s\" class=\"%s\"",
|
||||
UsrDat->Email,The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (UsrDat->Email);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
@ -2742,6 +2751,7 @@ static void Rec_ShowEmail (struct UsrData *UsrDat)
|
|||
|
||||
static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *Anchor)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_ID;
|
||||
|
||||
/***** User's IDs *****/
|
||||
|
@ -2751,7 +2761,7 @@ static void Rec_ShowUsrIDs (struct UsrData *UsrDat,const char *Anchor)
|
|||
Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_ID);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
ID_WriteUsrIDs (UsrDat,Anchor);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2766,6 +2776,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
|
|||
Rec_SharedRecordViewType_t TypeOfView)
|
||||
{
|
||||
extern const char *Usr_StringsSexIcons[Usr_NUM_SEXS];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Role;
|
||||
extern const char *Txt_Sex;
|
||||
extern const char *Txt_SEX_SINGULAR_Abc[Usr_NUM_SEXS];
|
||||
|
@ -2791,7 +2802,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
|
|||
Frm_LabelColumn ("REC_C1_BOT RM","Role",Txt_Role);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
switch (TypeOfView)
|
||||
{
|
||||
case Rec_SHA_SIGN_UP_IN_CRS_FORM: // I want to apply for enrolment
|
||||
|
@ -2987,7 +2998,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
|
|||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","",
|
||||
Str_BuildStringStr ("%s*",Txt_Sex));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
|
@ -2995,7 +3006,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
|
|||
Sex <= Usr_SEX_MALE;
|
||||
Sex++)
|
||||
{
|
||||
HTM_LABEL_Begin ("class=\"DAT_N\"");
|
||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_INPUT_RADIO ("Sex",false,
|
||||
"value=\"%u\"%s required=\"required\"",
|
||||
(unsigned) Sex,
|
||||
|
@ -3012,7 +3023,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
|
|||
Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Role);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Txt_ROLES_SINGUL_Abc[UsrDat->Roles.InCurrentCrs][UsrDat->Sex]);
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
@ -3026,6 +3037,7 @@ static void Rec_ShowRole (struct UsrData *UsrDat,
|
|||
|
||||
static void Rec_ShowSurname1 (struct UsrData *UsrDat,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Surname_1;
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -3035,13 +3047,13 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,bool PutForm)
|
|||
{
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","Surname1",
|
||||
Str_BuildStringStr ("%s*",Txt_Surname_1));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Surname_1);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
HTM_INPUT_TEXT ("Surname1",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME,UsrDat->Surname1,
|
||||
HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
|
@ -3064,6 +3076,7 @@ static void Rec_ShowSurname1 (struct UsrData *UsrDat,bool PutForm)
|
|||
|
||||
static void Rec_ShowSurname2 (struct UsrData *UsrDat,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Surname_2;
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -3074,7 +3087,7 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,bool PutForm)
|
|||
Txt_Surname_2);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
HTM_INPUT_TEXT ("Surname2",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME,
|
||||
UsrDat->Surname2,
|
||||
|
@ -3097,6 +3110,7 @@ static void Rec_ShowSurname2 (struct UsrData *UsrDat,bool PutForm)
|
|||
|
||||
static void Rec_ShowFirstName (struct UsrData *UsrDat,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_First_name;
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
@ -3106,13 +3120,14 @@ static void Rec_ShowFirstName (struct UsrData *UsrDat,bool PutForm)
|
|||
{
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","FirstName",
|
||||
Str_BuildStringStr ("%s*",Txt_First_name));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_First_name);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"REC_C2_BOT LM %s\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (PutForm)
|
||||
HTM_INPUT_TEXT ("FirstName",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME,
|
||||
UsrDat->FrstName,
|
||||
|
@ -3151,7 +3166,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm)
|
|||
{
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","OthCtyCod",
|
||||
Str_BuildStringStr ("%s*",Txt_Country));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Country);
|
||||
|
@ -3185,6 +3200,7 @@ static void Rec_ShowCountry (struct UsrData *UsrDat,bool PutForm)
|
|||
|
||||
static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,bool ShowData,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Date_of_birth;
|
||||
|
||||
/***** Date of birth *****/
|
||||
|
@ -3196,7 +3212,7 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,bool ShowData,bool PutFo
|
|||
Txt_Date_of_birth);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
{
|
||||
if (PutForm)
|
||||
|
@ -3221,6 +3237,7 @@ static void Rec_ShowDateOfBirth (struct UsrData *UsrDat,bool ShowData,bool PutFo
|
|||
static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm,
|
||||
unsigned NumPhone)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Phone;
|
||||
char *Name;
|
||||
char *Label;
|
||||
|
@ -3242,7 +3259,7 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm,
|
|||
Label);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
{
|
||||
if (PutForm)
|
||||
|
@ -3251,7 +3268,8 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm,
|
|||
"id=\"%s\" class=\"REC_C2_BOT_INPUT\"",Name);
|
||||
else if (UsrDat->Phone[NumPhone][0])
|
||||
{
|
||||
HTM_A_Begin ("href=\"tel:%s\" class=\"DAT_N\"",UsrDat->Phone[NumPhone]);
|
||||
HTM_A_Begin ("href=\"tel:%s\" class=\"%s\"",
|
||||
UsrDat->Phone[NumPhone],The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (UsrDat->Phone[NumPhone]);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
@ -3273,6 +3291,7 @@ static void Rec_ShowPhone (struct UsrData *UsrDat,bool ShowData,bool PutForm,
|
|||
|
||||
static void Rec_ShowComments (struct UsrData *UsrDat,bool ShowData,bool PutForm)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_USER_comments;
|
||||
|
||||
/***** Comments *****/
|
||||
|
@ -3284,7 +3303,7 @@ static void Rec_ShowComments (struct UsrData *UsrDat,bool ShowData,bool PutForm)
|
|||
Txt_USER_comments);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
{
|
||||
if (PutForm)
|
||||
|
@ -3335,6 +3354,7 @@ static void Rec_ShowTeacherRows (struct UsrData *UsrDat,struct Ins_Instit *Ins,
|
|||
|
||||
static void Rec_ShowInstitution (struct Ins_Instit *Ins,bool ShowData)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Institution;
|
||||
|
||||
/***** Institution *****/
|
||||
|
@ -3344,13 +3364,13 @@ static void Rec_ShowInstitution (struct Ins_Instit *Ins,bool ShowData)
|
|||
Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Institution);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
if (Ins->InsCod > 0)
|
||||
{
|
||||
if (Ins->WWW[0])
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"",
|
||||
Ins->WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
|
||||
Ins->WWW,The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Ins->FullName);
|
||||
if (Ins->WWW[0])
|
||||
HTM_A_End ();
|
||||
|
@ -3366,6 +3386,7 @@ static void Rec_ShowInstitution (struct Ins_Instit *Ins,bool ShowData)
|
|||
|
||||
static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Center;
|
||||
struct Ctr_Center Ctr;
|
||||
|
||||
|
@ -3376,7 +3397,7 @@ static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData)
|
|||
Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Center);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
{
|
||||
if (UsrDat->Tch.CtrCod > 0)
|
||||
|
@ -3384,8 +3405,8 @@ static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData)
|
|||
Ctr.CtrCod = UsrDat->Tch.CtrCod;
|
||||
Ctr_GetDataOfCenterByCod (&Ctr);
|
||||
if (Ctr.WWW[0])
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"",
|
||||
Ctr.WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
|
||||
Ctr.WWW,The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Ctr.FullName);
|
||||
if (Ctr.WWW[0])
|
||||
HTM_A_End ();
|
||||
|
@ -3402,6 +3423,7 @@ static void Rec_ShowCenter (struct UsrData *UsrDat,bool ShowData)
|
|||
|
||||
static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Department;
|
||||
struct Dpt_Department Dpt;
|
||||
|
||||
|
@ -3412,7 +3434,7 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData)
|
|||
Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Department);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
{
|
||||
if (UsrDat->Tch.DptCod > 0)
|
||||
|
@ -3420,8 +3442,8 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData)
|
|||
Dpt.DptCod = UsrDat->Tch.DptCod;
|
||||
Dpt_GetDataOfDepartmentByCod (&Dpt);
|
||||
if (Dpt.WWW[0])
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"DAT_N\"",
|
||||
Dpt.WWW);
|
||||
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
|
||||
Dpt.WWW,The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Dpt.FullName);
|
||||
if (Dpt.WWW[0])
|
||||
HTM_A_End ();
|
||||
|
@ -3438,6 +3460,7 @@ static void Rec_ShowDepartment (struct UsrData *UsrDat,bool ShowData)
|
|||
|
||||
static void Rec_ShowOffice (struct UsrData *UsrDat,bool ShowData)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Office;
|
||||
|
||||
/***** Office *****/
|
||||
|
@ -3447,7 +3470,7 @@ static void Rec_ShowOffice (struct UsrData *UsrDat,bool ShowData)
|
|||
Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Office);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LT\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
HTM_Txt (UsrDat->Tch.Office);
|
||||
HTM_TD_End ();
|
||||
|
@ -3461,6 +3484,7 @@ static void Rec_ShowOffice (struct UsrData *UsrDat,bool ShowData)
|
|||
|
||||
static void Rec_ShowOfficePhone (struct UsrData *UsrDat,bool ShowData)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Phone;
|
||||
|
||||
/***** Office phone *****/
|
||||
|
@ -3470,11 +3494,11 @@ static void Rec_ShowOfficePhone (struct UsrData *UsrDat,bool ShowData)
|
|||
Frm_LabelColumn ("REC_C1_BOT RM",NULL,Txt_Phone);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT DAT_N LM\"");
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
if (ShowData)
|
||||
{
|
||||
HTM_A_Begin ("href=\"tel:%s\" class=\"DAT_N\"",
|
||||
UsrDat->Tch.OfficePhone);
|
||||
HTM_A_Begin ("href=\"tel:%s\" class=\"%s\"",
|
||||
UsrDat->Tch.OfficePhone,The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (UsrDat->Tch.OfficePhone);
|
||||
HTM_A_End ();
|
||||
}
|
||||
|
@ -3751,7 +3775,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","InsCtyCod",
|
||||
Str_BuildStringStr ("%s*",Txt_Country));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
|
@ -3783,7 +3807,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","OthInsCod",
|
||||
Str_BuildStringStr ("%s*",Txt_Institution));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
|
@ -3824,7 +3848,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RM","OthCtrCod",
|
||||
Str_BuildStringStr ("%s*",Txt_Center));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
|
@ -3863,7 +3887,7 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher)
|
|||
/* Label */
|
||||
Frm_LabelColumn ("REC_C1_BOT RM",Dpt_PARAM_DPT_COD_NAME,
|
||||
Str_BuildStringStr ("%s*",Txt_Department));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"REC_C2_BOT LM\"");
|
||||
|
|
|
@ -128,7 +128,7 @@ void Rep_ReqMyUsageReport (void)
|
|||
Cfg_PLATFORM_SHORT_NAME),
|
||||
NULL,NULL,
|
||||
Hlp_ANALYTICS_Report,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Header *****/
|
||||
Rep_TitleReport (NULL); // NULL means do not write date
|
||||
|
@ -236,7 +236,7 @@ static void Rep_PutLinkToMyUsageReport (struct Rep_Report *Report)
|
|||
Cfg_PLATFORM_SHORT_NAME),
|
||||
NULL,NULL,
|
||||
Hlp_ANALYTICS_Report,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Header *****/
|
||||
Rep_TitleReport (&Report->CurrentTimeUTC);
|
||||
|
@ -267,10 +267,12 @@ static void Rep_PutLinkToMyUsageReport (struct Rep_Report *Report)
|
|||
|
||||
static void Rep_TitleReport (struct Rep_CurrentTimeUTC *CurrentTimeUTC)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_User[Usr_NUM_SEXS];
|
||||
extern const char *Txt_Date;
|
||||
|
||||
HTM_DIV_Begin ("class=\"TITLE_REPORT DAT\"");
|
||||
HTM_DIV_Begin ("class=\"TITLE_REPORT %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
/***** User *****/
|
||||
HTM_TxtColonNBSP (Txt_User[Gbl.Usrs.Me.UsrDat.Sex]);
|
||||
|
@ -283,7 +285,7 @@ static void Rep_TitleReport (struct Rep_CurrentTimeUTC *CurrentTimeUTC)
|
|||
{
|
||||
HTM_BR ();
|
||||
HTM_TxtColonNBSP (Txt_Date);
|
||||
HTM_SPAN_Begin ("class=\"DAT_N\"");
|
||||
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%s %s UTC",CurrentTimeUTC->StrDate,
|
||||
CurrentTimeUTC->StrTime);
|
||||
HTM_SPAN_End ();
|
||||
|
|
32
swad_room.c
32
swad_room.c
|
@ -145,6 +145,7 @@ void Roo_ResetRooms (struct Roo_Rooms *Rooms)
|
|||
void Roo_SeeRooms (void)
|
||||
{
|
||||
extern const char *Hlp_CENTER_Rooms;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Rooms;
|
||||
extern const char *Txt_ROOMS_HELP_ORDER[Roo_NUM_ORDERS];
|
||||
extern const char *Txt_ROOMS_ORDER[Roo_NUM_ORDERS];
|
||||
|
@ -220,32 +221,44 @@ void Roo_SeeRooms (void)
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/* Building short name */
|
||||
HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Rooms.Lst[NumRoom].BldShrtName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Floor */
|
||||
HTM_TD_Begin ("class=\"DAT RT %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s RT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Int (Rooms.Lst[NumRoom].Floor);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Type */
|
||||
HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.ColorRows[RowEvenOdd]);
|
||||
Ico_PutIconOn (Roo_TypesIcons[Rooms.Lst[NumRoom].Type],Txt_ROOM_TYPES[Rooms.Lst[NumRoom].Type]);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Short name */
|
||||
HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Rooms.Lst[NumRoom].ShrtName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Full name */
|
||||
HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_Txt (Rooms.Lst[NumRoom].FullName);
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Capacity */
|
||||
HTM_TD_Begin ("class=\"DAT RT %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s RT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.ColorRows[RowEvenOdd]);
|
||||
Roo_WriteCapacity (StrCapacity,Rooms.Lst[NumRoom].Capacity);
|
||||
HTM_Txt (StrCapacity);
|
||||
HTM_TD_End ();
|
||||
|
@ -256,7 +269,9 @@ void Roo_SeeRooms (void)
|
|||
case Rol_CTR_ADM:
|
||||
case Rol_INS_ADM:
|
||||
case Rol_SYS_ADM:
|
||||
HTM_TD_Begin ("class=\"DAT LT %s\"",Gbl.ColorRows[RowEvenOdd]);
|
||||
HTM_TD_Begin ("class=\"%s LT %s\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],
|
||||
Gbl.ColorRows[RowEvenOdd]);
|
||||
Roo_GetAndListMACAddresses (Rooms.Lst[NumRoom].RooCod);
|
||||
HTM_TD_End ();
|
||||
break;
|
||||
|
@ -649,6 +664,7 @@ void Roo_FreeListRooms (struct Roo_Rooms *Rooms)
|
|||
static void Roo_ListRoomsForEdition (const struct Bld_Buildings *Buildings,
|
||||
const struct Roo_Rooms *Rooms)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumRoom;
|
||||
struct Roo_Room *Room;
|
||||
char *Anchor = NULL;
|
||||
|
@ -678,7 +694,7 @@ static void Roo_ListRoomsForEdition (const struct Bld_Buildings *Buildings,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Room code */
|
||||
HTM_TD_Begin ("class=\"DAT RT\"");
|
||||
HTM_TD_Begin ("class=\"%s RT\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_ARTICLE_Begin (Anchor);
|
||||
HTM_Long (Room->RooCod);
|
||||
HTM_ARTICLE_End ();
|
||||
|
|
|
@ -279,7 +279,7 @@ static void Sta_PutFormCrsHits (struct Sta_Stats *Stats)
|
|||
Gbl.Hierarchy.Crs.ShrtName),
|
||||
NULL,NULL,
|
||||
Hlp_ANALYTICS_Visits_visits_to_course,Box_NOT_CLOSABLE);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Show form to select the groups *****/
|
||||
Grp_ShowFormToSelectSeveralGroups (NULL,NULL,
|
||||
|
@ -1047,6 +1047,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
MYSQL_RES *mysql_res)
|
||||
{
|
||||
extern Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Show_previous_X_clicks;
|
||||
extern const char *Txt_PAGES_Previous;
|
||||
extern const char *Txt_Clicks;
|
||||
|
@ -1134,7 +1135,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringLong (Txt_Show_previous_X_clicks,
|
||||
(long) Stats->RowsPerPage),
|
||||
"BT_LINK TIT_TBL",NULL);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_STRONG_Begin ();
|
||||
HTM_TxtF ("<%s",Txt_PAGES_Previous);
|
||||
HTM_STRONG_End ();
|
||||
|
@ -1145,7 +1146,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
Frm_EndForm ();
|
||||
|
||||
/* Write number of current page */
|
||||
HTM_TD_Begin ("class=\"DAT_N CM\"");
|
||||
HTM_TD_Begin ("class=\"%s CM\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_STRONG_Begin ();
|
||||
HTM_TxtF ("%s %u-%u %s %u (%s %u %s %u)",
|
||||
Txt_Clicks,
|
||||
|
@ -1172,7 +1173,7 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
|||
HTM_BUTTON_SUBMIT_Begin (Str_BuildStringLong (Txt_Show_next_X_clicks,
|
||||
(long) Stats->RowsPerPage),
|
||||
"BT_LINK TIT_TBL",NULL);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_STRONG_Begin ();
|
||||
HTM_TxtF ("%s>",Txt_PAGES_Next);
|
||||
HTM_STRONG_End ();
|
||||
|
@ -2781,6 +2782,7 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType,
|
|||
unsigned NumHits,
|
||||
MYSQL_RES *mysql_res)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Banner;
|
||||
extern const char *Txt_STAT_TYPE_COUNT_CAPS[Sta_NUM_COUNT_TYPES];
|
||||
unsigned NumHit;
|
||||
|
@ -2825,9 +2827,10 @@ static void Sta_ShowNumHitsPerBanner (Sta_CountType_t CountType,
|
|||
Err_WrongBannerExit ();
|
||||
Ban_GetDataOfBannerByCod (&Ban);
|
||||
HTM_TD_Begin ("class=\"LOG LT\"");
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"DAT\" target=\"_blank\"",
|
||||
HTM_A_Begin ("href=\"%s\" title=\"%s\" class=\"%s\" target=\"_blank\"",
|
||||
Ban.WWW,
|
||||
Ban.FullName);
|
||||
Ban.FullName,
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_IMG (Cfg_URL_BANNER_PUBLIC,Ban.Img,Ban.FullName,
|
||||
"style=\"margin:0 10px 5px 0;\"");
|
||||
HTM_A_End ();
|
||||
|
@ -3279,8 +3282,8 @@ static void Sta_ShowNumHitsPerCourse (Sta_CountType_t CountType,
|
|||
{
|
||||
Frm_BeginFormGoTo (ActSeeCrsInf);
|
||||
Crs_PutParamCrsCod (Crs.CrsCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Hie_BuildGoToMsg (Crs.FullName),"BT_LINK LT LOG",NULL);
|
||||
Hie_FreeGoToMsg ();
|
||||
HTM_BUTTON_SUBMIT_Begin (Str_BuildGoToMsg (Crs.FullName),"BT_LINK LT LOG",NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_Txt (Crs.ShrtName);
|
||||
HTM_BUTTON_End ();
|
||||
}
|
||||
|
|
|
@ -2657,52 +2657,102 @@ void Str_Concat (char *Dst,const char *Src,size_t DstSize)
|
|||
strcat (Dst,Src);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********************* Build a "Go to <where>" message ***********************/
|
||||
/*****************************************************************************/
|
||||
// Where is a hierarchy member (country, institution, center, degree or course
|
||||
// Str_FreeStrings() must be called after calling this function
|
||||
|
||||
char *Str_BuildGoToMsg (const char *Where)
|
||||
{
|
||||
extern const char *Txt_Go_to_X;
|
||||
|
||||
return Str_BuildStringStr (Txt_Go_to_X,Where);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************** Build and free a text with format **********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static char *Str_String = NULL;
|
||||
#define Str_MAX_STRINGS 10
|
||||
static struct
|
||||
{
|
||||
size_t Num;
|
||||
char *Str[Str_MAX_STRINGS];
|
||||
} Str_Strings =
|
||||
{
|
||||
.Num = 0,
|
||||
};
|
||||
|
||||
// Str_FreeStrings() must be called after calling these functions
|
||||
|
||||
// fmt must be a string including "%s"
|
||||
// Str_FreeString() must be called after calling this function
|
||||
|
||||
char *Str_BuildStringStr (const char *fmt,const char *Str)
|
||||
{
|
||||
Str_FreeString ();
|
||||
if (asprintf (&Str_String,fmt,Str) < 0)
|
||||
char *Ptr;
|
||||
|
||||
if (Str_Strings.Num >= Str_MAX_STRINGS)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
|
||||
return Str_String;
|
||||
if (Str_Strings.Str[Str_Strings.Num] != NULL)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
|
||||
if (asprintf (&Str_Strings.Str[Str_Strings.Num],fmt,Str) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Ptr = Str_Strings.Str[Str_Strings.Num];
|
||||
Str_Strings.Num++;
|
||||
|
||||
return Ptr;
|
||||
}
|
||||
|
||||
// fmt must be a string including "%ld"
|
||||
// Str_FreeString() must be called after calling this function
|
||||
|
||||
char *Str_BuildStringLong (const char *fmt,long Num)
|
||||
{
|
||||
Str_FreeString ();
|
||||
if (asprintf (&Str_String,fmt,Num) < 0)
|
||||
char *Ptr;
|
||||
|
||||
if (Str_Strings.Num >= Str_MAX_STRINGS)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
|
||||
return Str_String;
|
||||
}
|
||||
if (Str_Strings.Str[Str_Strings.Num] != NULL)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
|
||||
// Str_FreeString() must be called after calling this function
|
||||
if (asprintf (&Str_Strings.Str[Str_Strings.Num],fmt,Num) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Ptr = Str_Strings.Str[Str_Strings.Num];
|
||||
Str_Strings.Num++;
|
||||
|
||||
return Ptr;
|
||||
}
|
||||
|
||||
char *Str_BuildStringLongStr (long Num,const char *Str)
|
||||
{
|
||||
Str_FreeString ();
|
||||
if (asprintf (&Str_String,"%ld %s",Num,Str) < 0)
|
||||
char *Ptr;
|
||||
|
||||
if (Str_Strings.Num >= Str_MAX_STRINGS)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
|
||||
return Str_String;
|
||||
if (Str_Strings.Str[Str_Strings.Num] != NULL)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
|
||||
if (asprintf (&Str_Strings.Str[Str_Strings.Num],"%ld %s",Num,Str) < 0)
|
||||
Err_NotEnoughMemoryExit ();
|
||||
Ptr = Str_Strings.Str[Str_Strings.Num];
|
||||
Str_Strings.Num++;
|
||||
|
||||
return Ptr;
|
||||
}
|
||||
|
||||
void Str_FreeString (void)
|
||||
void Str_FreeStrings (void)
|
||||
{
|
||||
if (Str_String != NULL)
|
||||
size_t i;
|
||||
|
||||
for (i = Str_Strings.Num;
|
||||
i != 0;
|
||||
i--)
|
||||
{
|
||||
free (Str_String);
|
||||
Str_String = NULL;
|
||||
free (Str_Strings.Str[i - 1]);
|
||||
Str_Strings.Str[i - 1] = NULL;
|
||||
}
|
||||
|
||||
Str_Strings.Num = 0;
|
||||
}
|
||||
|
|
|
@ -146,9 +146,10 @@ void Str_CreateRandomAlphanumStr (char *Str,size_t Length);
|
|||
void Str_Copy (char *Dst,const char *Src,size_t DstSize);
|
||||
void Str_Concat (char *Dst,const char *Src,size_t DstSize);
|
||||
|
||||
char *Str_BuildGoToMsg (const char *Where);
|
||||
char *Str_BuildStringStr (const char *fmt,const char *Str);
|
||||
char *Str_BuildStringLong (const char *fmt,long Num);
|
||||
char *Str_BuildStringLongStr (long Num,const char *Str);
|
||||
void Str_FreeString (void);
|
||||
void Str_FreeStrings (void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -424,6 +424,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
|
|||
long SvyCod,bool ShowOnlyThisSvyComplete)
|
||||
{
|
||||
extern const char *Hlp_ASSESSMENT_Surveys;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Survey;
|
||||
extern const char *Txt_View_survey;
|
||||
extern const char *Txt_Number_of_questions;
|
||||
|
@ -671,7 +672,7 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
|
|||
Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML,
|
||||
Txt,Cns_MAX_BYTES_TEXT,false); // Convert from HTML to rigorous HTML
|
||||
ALn_InsertLinks (Txt,Cns_MAX_BYTES_TEXT,60); // Insert links
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",Svy.Status.Visible ? "DAT" :
|
||||
HTM_DIV_Begin ("class=\"PAR %s\"",Svy.Status.Visible ? The_ClassDat[Gbl.Prefs.Theme] :
|
||||
"DAT_LIGHT");
|
||||
HTM_Txt (Txt);
|
||||
HTM_DIV_End ();
|
||||
|
@ -1642,6 +1643,7 @@ void Svy_RequestCreatOrEditSvy (void)
|
|||
extern const char *Hlp_ASSESSMENT_Surveys_new_survey;
|
||||
extern const char *Hlp_ASSESSMENT_Surveys_edit_survey;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_New_survey;
|
||||
extern const char *Txt_Scope;
|
||||
extern const char *Txt_Edit_survey;
|
||||
|
@ -1785,7 +1787,7 @@ void Svy_RequestCreatOrEditSvy (void)
|
|||
HTM_TxtColon (Txt_Users);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Rol_WriteSelectorRoles (1 << Rol_STD |
|
||||
1 << Rol_NET |
|
||||
1 << Rol_TCH,
|
||||
|
@ -1901,6 +1903,7 @@ static void Svy_SetDefaultAndAllowedScope (struct Svy_Survey *Svy)
|
|||
static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Groups;
|
||||
extern const char *Txt_The_whole_course;
|
||||
unsigned NumGrpTyp;
|
||||
|
@ -1925,7 +1928,8 @@ static void Svy_ShowLstGrpsToEditSurvey (long SvyCod)
|
|||
/***** First row: checkbox to select the whole course *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("colspan=\"7\" class=\"%s LM\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_CHECKBOX ("WholeCrs",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"id=\"WholeCrs\" value=\"Y\"%s onclick=\"uncheckChildren(this,'GrpCods')\"",
|
||||
|
@ -2731,6 +2735,7 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys,
|
|||
struct Svy_Survey *Svy)
|
||||
{
|
||||
extern const char *Hlp_ASSESSMENT_Surveys_questions;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Questions;
|
||||
extern const char *Txt_No_INDEX;
|
||||
extern const char *Txt_Type;
|
||||
|
@ -2828,7 +2833,8 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys,
|
|||
HTM_TD_End ();
|
||||
|
||||
/* Write the stem and the answers of this question */
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LT COLOR%u\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
Svy_WriteQstStem (Stem);
|
||||
Svy_WriteAnswersOfAQst (Svy,&SvyQst,PutFormAnswerSurvey);
|
||||
HTM_TD_End ();
|
||||
|
@ -2958,6 +2964,7 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy,
|
|||
struct Svy_Question *SvyQst,
|
||||
bool PutFormAnswerSurvey)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
unsigned NumAnswers;
|
||||
unsigned NumAns;
|
||||
MYSQL_RES *mysql_res;
|
||||
|
@ -3023,16 +3030,18 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy,
|
|||
|
||||
/* Write the number of option */
|
||||
HTM_TD_Begin ("class=\"SVY_OPT LT\"");
|
||||
HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"DAT\"",
|
||||
(unsigned) SvyQst->QstCod,NumAns);
|
||||
HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"%s\"",
|
||||
(unsigned) SvyQst->QstCod,NumAns,
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtF ("%u)",NumAns + 1);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
||||
/* Write the text of the answer */
|
||||
HTM_TD_Begin ("class=\"LT\"");
|
||||
HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"DAT\"",
|
||||
(unsigned) SvyQst->QstCod,NumAns);
|
||||
HTM_LABEL_Begin ("for=\"Ans%010u_%010u\" class=\"%s\"",
|
||||
(unsigned) SvyQst->QstCod,NumAns,
|
||||
The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (SvyQst->AnsChoice[NumAns].Text);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
@ -3062,6 +3071,7 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy,
|
|||
|
||||
static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_of_PART_OF_A_TOTAL;
|
||||
unsigned BarWidth = 0;
|
||||
char *Title;
|
||||
|
@ -3082,7 +3092,8 @@ static void Svy_DrawBarNumUsrs (unsigned NumUsrs,unsigned MaxUsrs)
|
|||
Err_NotEnoughMemoryExit ();
|
||||
}
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT\" style=\"width:%upx;\"",Svy_MAX_BAR_WIDTH + 125);
|
||||
HTM_TD_Begin ("class=\"%s LT\" style=\"width:%upx;\"",
|
||||
The_ClassDat[Gbl.Prefs.Theme],Svy_MAX_BAR_WIDTH + 125);
|
||||
|
||||
/***** Draw bar with a with proportional to the number of clicks *****/
|
||||
if (NumUsrs && MaxUsrs)
|
||||
|
|
|
@ -153,6 +153,7 @@ Syl_WhichSyllabus_t Syl_GetParamWhichSyllabus (void)
|
|||
|
||||
void Syl_PutFormWhichSyllabus (Syl_WhichSyllabus_t SyllabusSelected)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_SYLLABUS_WHICH_SYLLABUS[Syl_NUM_WHICH_SYLLABUS];
|
||||
Syl_WhichSyllabus_t WhichSyl;
|
||||
|
||||
|
@ -165,7 +166,7 @@ void Syl_PutFormWhichSyllabus (Syl_WhichSyllabus_t SyllabusSelected)
|
|||
WhichSyl <= (Syl_WhichSyllabus_t) (For_NUM_FORUM_SETS - 1);
|
||||
WhichSyl++)
|
||||
{
|
||||
HTM_LI_Begin ("class=\"DAT LM\"");
|
||||
HTM_LI_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_LABEL_Begin (NULL);
|
||||
HTM_INPUT_RADIO ("WhichSyllabus",true,
|
||||
"value=\"%u\"%s",
|
||||
|
@ -650,7 +651,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
|
|||
Str_BuildStringStr (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_up_X_and_its_subsections :
|
||||
Txt_Move_up_X,
|
||||
StrItemCod));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-up.svg",Txt_Movement_not_allowed);
|
||||
|
@ -669,7 +670,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
|
|||
Str_BuildStringStr (Syl_LstItemsSyllabus.Lst[NumItem].HasChildren ? Txt_Move_down_X_and_its_subsections :
|
||||
Txt_Move_down_X,
|
||||
StrItemCod));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-down.svg",Txt_Movement_not_allowed);
|
||||
|
@ -686,7 +687,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
|
|||
"arrow-left.svg",
|
||||
Str_BuildStringStr (Txt_Increase_level_of_X,
|
||||
StrItemCod));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-left.svg",Txt_Movement_not_allowed);
|
||||
|
@ -704,7 +705,7 @@ static void Syl_ShowRowSyllabus (struct Syl_Syllabus *Syllabus,unsigned NumItem,
|
|||
"arrow-right.svg",
|
||||
Str_BuildStringStr (Txt_Decrease_level_of_X,
|
||||
StrItemCod));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutIconOff ("arrow-right.svg",Txt_Movement_not_allowed);
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
#include "swad_error.h"
|
||||
#include "swad_figure_cache.h"
|
||||
#include "swad_form.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_help.h"
|
||||
#include "swad_hierarchy_config.h"
|
||||
#include "swad_hierarchy_level.h"
|
||||
|
@ -47,6 +48,12 @@
|
|||
#include "swad_role.h"
|
||||
#include "swad_system_config.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
extern struct Globals Gbl;
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************************** Private prototypes ****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -251,6 +258,7 @@ static void SysCfg_Map (void)
|
|||
|
||||
static void SysCfg_Platform (void)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Platform;
|
||||
|
||||
/***** Institution *****/
|
||||
|
@ -260,7 +268,7 @@ static void SysCfg_Platform (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Platform);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT_N LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Cfg_PLATFORM_SHORT_NAME);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -291,6 +299,7 @@ static void SysCfg_QR (void)
|
|||
|
||||
static void SysCfg_NumCtys (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Countries;
|
||||
|
||||
/***** Number of countries ******/
|
||||
|
@ -302,7 +311,10 @@ static void SysCfg_NumCtys (void)
|
|||
/* Data */
|
||||
HTM_TD_Begin ("class=\"LB\"");
|
||||
Frm_BeginFormGoTo (ActSeeCty);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Countries,"BT_LINK DAT",NULL);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Countries,
|
||||
Str_BuildStringStr ("BT_LINK %s",The_ClassDat[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeStrings ();
|
||||
HTM_Unsigned (Cty_GetCachedNumCtysInSys ());
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -317,6 +329,7 @@ static void SysCfg_NumCtys (void)
|
|||
|
||||
static void SysCfg_NumInss (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Institutions;
|
||||
|
||||
/***** Number of institutions ******/
|
||||
|
@ -326,7 +339,7 @@ static void SysCfg_NumInss (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Institutions);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Ins_GetCachedNumInssInSys ());
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -339,6 +352,7 @@ static void SysCfg_NumInss (void)
|
|||
|
||||
static void SysCfg_NumDegs (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Degrees;
|
||||
|
||||
/***** Number of degrees *****/
|
||||
|
@ -348,7 +362,7 @@ static void SysCfg_NumDegs (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Degrees);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Deg_GetCachedNumDegsInSys ());
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -361,6 +375,7 @@ static void SysCfg_NumDegs (void)
|
|||
|
||||
static void SysCfg_NumCrss (void)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Courses;
|
||||
|
||||
/***** Number of courses *****/
|
||||
|
@ -370,7 +385,7 @@ static void SysCfg_NumCrss (void)
|
|||
Frm_LabelColumn ("RT",NULL,Txt_Courses);
|
||||
|
||||
/* Data */
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"%s LB\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Crs_GetCachedNumCrssInSys ());
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
20
swad_tab.c
20
swad_tab.c
|
@ -69,6 +69,24 @@ void Tab_DrawTabs (void)
|
|||
[The_THEME_PINK ] = "HEAD_ROW_3_PINK",
|
||||
[The_THEME_DARK ] = "HEAD_ROW_3_DARK",
|
||||
};
|
||||
static const char *ClassIcoTab[Ico_NUM_ICON_SETS][The_NUM_THEMES] =
|
||||
{
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_GREY ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_PINK ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " TAB_ICO_DARK",
|
||||
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "",
|
||||
};
|
||||
|
||||
/***** Begin tabs container *****/
|
||||
HTM_DIV_Begin ("class=\"%s\"",ClassHeadRow3[Gbl.Prefs.Theme]);
|
||||
|
@ -110,7 +128,7 @@ void Tab_DrawTabs (void)
|
|||
"BT_LINK",
|
||||
NULL);
|
||||
HTM_IMG (Gbl.Prefs.URLIconSet,Tab_GetIcon (NumTab),Txt_TABS_TXT[NumTab],
|
||||
"class=\"TAB_ICO\"");
|
||||
"class=\"TAB_ICO%s\"",ClassIcoTab[Gbl.Prefs.IconSet][Gbl.Prefs.Theme]);
|
||||
HTM_DIV_Begin ("class=\"TAB_TXT %s\"",
|
||||
NumTab == Gbl.Action.Tab ? The_ClassTxtTabOn[Gbl.Prefs.Theme] :
|
||||
The_ClassTxtTabOff[Gbl.Prefs.Theme]);
|
||||
|
|
|
@ -291,6 +291,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags,
|
|||
bool ShowOnlyEnabledTags)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Tags;
|
||||
extern const char *Txt_All_tags;
|
||||
extern const char *Txt_Tag_not_allowed;
|
||||
|
@ -370,7 +371,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags,
|
|||
}
|
||||
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
HTM_LABEL_Begin ("class=\"DAT\"");
|
||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_INPUT_CHECKBOX ("ChkTag",HTM_DONT_SUBMIT_ON_CHANGE,
|
||||
"value=\"%s\"%s onclick=\"checkParent(this,'AllTags');\"",
|
||||
row[1],
|
||||
|
@ -471,7 +472,7 @@ static void Tag_PutIconEnable (long TagCod,const char *TagTxt)
|
|||
Ico_PutIconLink ("eye-slash-red.svg",
|
||||
Str_BuildStringStr (Txt_Tag_X_not_allowed_Click_to_allow_it,
|
||||
TagTxt));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
@ -490,7 +491,7 @@ static void Tag_PutIconDisable (long TagCod,const char *TagTxt)
|
|||
Ico_PutIconLink ("eye-green.svg",
|
||||
Str_BuildStringStr (Txt_Tag_X_allowed_Click_to_disable_it,
|
||||
TagTxt));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
Frm_EndForm ();
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
|
|
@ -143,6 +143,7 @@ static void TstCfg_ShowFormConfig (void)
|
|||
{
|
||||
extern const char *Hlp_ASSESSMENT_Tests_configuring_tests;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Configure_tests;
|
||||
extern const char *Txt_Plugins;
|
||||
extern const char *Txt_TST_PLUGGABLE[TstCfg_NUM_OPTIONS_PLUGGABLE];
|
||||
|
@ -184,7 +185,7 @@ static void TstCfg_ShowFormConfig (void)
|
|||
Pluggable <= TstCfg_PLUGGABLE_YES;
|
||||
Pluggable++)
|
||||
{
|
||||
HTM_LABEL_Begin ("class=\"DAT\"");
|
||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_INPUT_RADIO ("Pluggable",false,
|
||||
"value=\"%u\"%s",
|
||||
(unsigned) Pluggable,
|
||||
|
@ -271,12 +272,14 @@ static void TstCfg_ShowFormConfig (void)
|
|||
static void TstCfg_PutInputFieldNumQsts (const char *Field,const char *Label,
|
||||
unsigned Value)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
char StrValue[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"RM\"");
|
||||
HTM_LABEL_Begin ("for=\"%s\" class=\"DAT\"",Field);
|
||||
HTM_LABEL_Begin ("for=\"%s\" class=\"%s\"",
|
||||
Field,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (Label);
|
||||
HTM_LABEL_End ();
|
||||
HTM_TD_End ();
|
||||
|
|
|
@ -1829,6 +1829,7 @@ static void TstPrn_ShowHeaderPrints (Usr_MeOrOther_t MeOrOther)
|
|||
|
||||
static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_View_test;
|
||||
MYSQL_RES *mysql_res;
|
||||
unsigned NumPrints;
|
||||
|
@ -1842,7 +1843,7 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
|
|||
double TotalScore;
|
||||
unsigned NumPrintsVisibleByTchs = 0;
|
||||
struct TstRes_ICanView ICanView;
|
||||
char *ClassDat;
|
||||
const char *ClassDat;
|
||||
|
||||
/***** Reset total number of questions and total score *****/
|
||||
NumTotalQsts.All =
|
||||
|
@ -1870,7 +1871,7 @@ static void TstPrn_ShowUsrPrints (struct UsrData *UsrDat)
|
|||
|
||||
/* Get print data */
|
||||
TstPrn_GetPrintDataByPrnCod (&Print);
|
||||
ClassDat = Print.AllowTeachers ? "DAT" :
|
||||
ClassDat = Print.AllowTeachers ? The_ClassDat[Gbl.Prefs.Theme] :
|
||||
"DAT_LIGHT";
|
||||
|
||||
/* Get if I can see print result and score */
|
||||
|
@ -2056,6 +2057,7 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
|
|||
struct TstPrn_NumQuestions *NumTotalQsts,
|
||||
double TotalScore)
|
||||
{
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Visible_tests;
|
||||
bool ICanViewTotalScore;
|
||||
|
||||
|
@ -2085,31 +2087,36 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
|
|||
HTM_TR_Begin (NULL);
|
||||
|
||||
/***** Row title *****/
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_TxtColonNBSP (Txt_Visible_tests);
|
||||
HTM_Unsigned (NumPrints);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of questions *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumPrints)
|
||||
HTM_Unsigned (NumTotalQsts->All);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of non-blank answers *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumPrints)
|
||||
HTM_Unsigned (NumTotalQsts->NotBlank);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total number of blank answers *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (NumPrints)
|
||||
HTM_Unsigned (NumTotalQsts->All - NumTotalQsts->NotBlank);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write total score *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanViewTotalScore)
|
||||
{
|
||||
HTM_Double2Decimals (TotalScore);
|
||||
|
@ -2119,20 +2126,23 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
|
|||
HTM_TD_End ();
|
||||
|
||||
/***** Write average score per question *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanViewTotalScore)
|
||||
HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All :
|
||||
0.0);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Write grade over Tst_SCORE_MAX *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N RM LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"RM %s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
if (ICanViewTotalScore)
|
||||
TstPrn_ComputeAndShowGrade (NumTotalQsts->All,TotalScore,Tst_SCORE_MAX);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** Last cell *****/
|
||||
HTM_TD_Begin ("class=\"DAT_N LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("class=\"%s LINE_TOP LINE_BOTTOM LINE_LEFT COLOR%u\"",
|
||||
The_ClassDatN[Gbl.Prefs.Theme],Gbl.RowEvenOdd);
|
||||
HTM_TD_End ();
|
||||
|
||||
/***** End row *****/
|
||||
|
@ -2146,6 +2156,8 @@ static void TstPrn_ShowPrintsSummaryRow (bool ItsMe,
|
|||
void TstPrn_ShowOnePrint (void)
|
||||
{
|
||||
extern const char *Hlp_ASSESSMENT_Tests_results;
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *The_ClassDatN[The_NUM_THEMES];
|
||||
extern const char *Txt_Result;
|
||||
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
|
||||
|
@ -2209,11 +2221,11 @@ void TstPrn_ShowOnePrint (void)
|
|||
/* User */
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_ROLES_SINGUL_Abc[Gbl.Usrs.Other.UsrDat.Roles.InCurrentCrs][Gbl.Usrs.Other.UsrDat.Sex]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
ID_WriteUsrIDs (&Gbl.Usrs.Other.UsrDat,NULL);
|
||||
HTM_TxtF (" %s",Gbl.Usrs.Other.UsrDat.Surname1);
|
||||
if (Gbl.Usrs.Other.UsrDat.Surname2[0])
|
||||
|
@ -2238,11 +2250,12 @@ void TstPrn_ShowOnePrint (void)
|
|||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_START_END_TIME[StartEndTime]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"DAT LB\"",Id);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"",
|
||||
Id,The_ClassDat[Gbl.Prefs.Theme]);
|
||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||
true,true,true,0x7);
|
||||
|
@ -2256,11 +2269,11 @@ void TstPrn_ShowOnePrint (void)
|
|||
/***** Number of questions *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Questions);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Print.NumQsts.All);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2269,11 +2282,11 @@ void TstPrn_ShowOnePrint (void)
|
|||
/***** Number of answers *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Answers);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Unsigned (Print.NumQsts.NotBlank);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -2282,11 +2295,11 @@ void TstPrn_ShowOnePrint (void)
|
|||
/***** Score *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Score);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
HTM_STRONG_Begin ();
|
||||
|
@ -2304,11 +2317,11 @@ void TstPrn_ShowOnePrint (void)
|
|||
/***** Grade *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Grade);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
if (ICanView.Score)
|
||||
{
|
||||
HTM_STRONG_Begin ();
|
||||
|
@ -2324,11 +2337,11 @@ void TstPrn_ShowOnePrint (void)
|
|||
/***** Tags present in this test *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT_N RT\"");
|
||||
HTM_TD_Begin ("class=\"RT %s\"",The_ClassDatN[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColon (Txt_Tags);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LB\"");
|
||||
HTM_TD_Begin ("class=\"LB %s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
TstPrn_ShowTagsPresentInAPrint (Print.PrnCod);
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
|
@ -30,10 +30,17 @@
|
|||
#include <stdlib.h> // For malloc, free
|
||||
|
||||
#include "swad_error.h"
|
||||
#include "swad_global.h"
|
||||
#include "swad_HTML.h"
|
||||
#include "swad_parameter.h"
|
||||
#include "swad_test_visibility.h"
|
||||
|
||||
/*****************************************************************************/
|
||||
/************** External global variables from others modules ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
extern struct Globals Gbl;
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************* Show visibility *****************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -86,6 +93,7 @@ void TstVis_ShowVisibilityIcons (unsigned SelectedVisibility,bool Hidden)
|
|||
|
||||
void TstVis_PutVisibilityCheckboxes (unsigned SelectedVisibility)
|
||||
{
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_TST_STR_VISIBILITY[TstVis_NUM_ITEMS_VISIBILITY];
|
||||
static const char *Icons[TstVis_NUM_ITEMS_VISIBILITY] =
|
||||
{
|
||||
|
@ -104,7 +112,7 @@ void TstVis_PutVisibilityCheckboxes (unsigned SelectedVisibility)
|
|||
Visibility++)
|
||||
{
|
||||
/* Begin label */
|
||||
HTM_LABEL_Begin ("class=\"DAT\"");
|
||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
|
||||
/* Checkbox with icon and text */
|
||||
ItemVisible = (SelectedVisibility & (1 << Visibility)) != 0;
|
||||
|
|
41
swad_theme.c
41
swad_theme.c
|
@ -162,25 +162,6 @@ const char *The_ClassCourse[The_NUM_THEMES] =
|
|||
[The_THEME_DARK ] = "MAIN_TITLE_DARK",
|
||||
};
|
||||
|
||||
const char *The_ClassIcoMenu[Ico_NUM_ICON_SETS][The_NUM_THEMES] =
|
||||
{
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_GREY ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_PINK ] = "",
|
||||
[Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " MENU_ICO_DARK",
|
||||
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "",
|
||||
[Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "",
|
||||
};
|
||||
|
||||
const char *The_ClassTxtMenu[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "MENU_TXT_WHITE",
|
||||
|
@ -335,6 +316,28 @@ const char *The_ClassFormOutBoxBold[The_NUM_THEMES] =
|
|||
[The_THEME_DARK ] = "FORM_OUT_DARK BOLD",
|
||||
};
|
||||
|
||||
const char *The_ClassDat[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "DAT_WHITE",
|
||||
[The_THEME_GREY ] = "DAT_GREY",
|
||||
[The_THEME_PURPLE] = "DAT_PURPLE",
|
||||
[The_THEME_BLUE ] = "DAT_BLUE",
|
||||
[The_THEME_YELLOW] = "DAT_YELLOW",
|
||||
[The_THEME_PINK ] = "DAT_PINK",
|
||||
[The_THEME_DARK ] = "DAT_DARK",
|
||||
};
|
||||
|
||||
const char *The_ClassDatN[The_NUM_THEMES] =
|
||||
{
|
||||
[The_THEME_WHITE ] = "DAT_N_WHITE",
|
||||
[The_THEME_GREY ] = "DAT_N_GREY",
|
||||
[The_THEME_PURPLE] = "DAT_N_PURPLE",
|
||||
[The_THEME_BLUE ] = "DAT_N_BLUE",
|
||||
[The_THEME_YELLOW] = "DAT_N_YELLOW",
|
||||
[The_THEME_PINK ] = "DAT_N_PINK",
|
||||
[The_THEME_DARK ] = "DAT_N_DARK",
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Private prototypes ***************************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -280,7 +280,7 @@ void Tml_ShowTimelineUsrHighlighting (struct Tml_Timeline *Timeline,long NotCod)
|
|||
Tml_ShowTimeline (Timeline,NotCod,
|
||||
Str_BuildStringStr (Txt_Timeline_OF_A_USER,
|
||||
Gbl.Usrs.Other.UsrDat.FrstName));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Free chained list of publications *****/
|
||||
Tml_Pub_FreeListPubs (Timeline);
|
||||
|
|
|
@ -488,7 +488,7 @@ static void Tml_Com_LinkToShowComms (Tml_Com_ContractExpand_t ConExp,
|
|||
/* Icon and text */
|
||||
Tml_Com_PutIconToToggleComms (IdComms,Link[ConExp].Icon,
|
||||
Str_BuildStringLong (*Link[ConExp].Text,(long) NumComms));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* End container */
|
||||
HTM_DIV_End ();
|
||||
|
|
|
@ -342,7 +342,7 @@ void Tml_Frm_FormToShowHiddenComms (long NotCod,
|
|||
Ico_PutIconTextLink ("angle-up.svg",
|
||||
Str_BuildStringLong (Txt_See_the_previous_X_COMMENTS,
|
||||
(long) NumInitialComms));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_BUTTON_End ();
|
||||
|
||||
/* End form */
|
||||
|
|
|
@ -686,7 +686,7 @@ static void Tml_Not_PutFormGoToAction (const struct Tml_Not_Note *Not,
|
|||
Str_BuildStringStr ("BT_LINK %s ICO_HIGHLIGHT",
|
||||
The_ClassFormInBoxBold[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/* Icon and text */
|
||||
Ico_PutIcon (Tml_Icons[Not->Type],
|
||||
|
|
|
@ -352,7 +352,7 @@ static void Tml_Usr_PutDisabledIconFavSha (Tml_Usr_FavSha_t FavSha,
|
|||
{
|
||||
Ico_PutDivIcon ("Tml_ICO_DISABLED",Ico[FavSha].Icon,
|
||||
Str_BuildStringLong (*Ico[FavSha].Title.WithUsrs,(long) NumUsrs));
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
}
|
||||
else
|
||||
Ico_PutDivIcon ("Tml_ICO_DISABLED",Ico[FavSha].Icon,
|
||||
|
|
|
@ -1359,7 +1359,7 @@ void Usr_WriteLoggedUsrHead (void)
|
|||
Str_BuildStringStr ("BT_LINK %s",
|
||||
The_ClassUsr[Gbl.Prefs.Theme]),
|
||||
NULL);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
HTM_Txt (Txt_ROLES_SINGUL_Abc[Gbl.Usrs.Me.Role.Logged][Gbl.Usrs.Me.UsrDat.Sex]);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
@ -2031,6 +2031,7 @@ void Usr_ShowFormsLogoutAndRole (void)
|
|||
{
|
||||
extern const char *Hlp_PROFILE_Session_role;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_Session;
|
||||
extern const char *Txt_Role;
|
||||
extern const char *Txt_You_are_now_LOGGED_IN_as_X;
|
||||
|
@ -2052,7 +2053,7 @@ void Usr_ShowFormsLogoutAndRole (void)
|
|||
/***** Put a form to change my role *****/
|
||||
if (Rol_GetNumAvailableRoles () == 1)
|
||||
{
|
||||
HTM_SPAN_Begin ("class=\"DAT\"");
|
||||
HTM_SPAN_Begin ("class=\"%s\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_TxtColonNBSP (Txt_Role);
|
||||
HTM_SPAN_End ();
|
||||
|
||||
|
@ -4732,7 +4733,7 @@ unsigned Usr_ListUsrsFound (Rol_Role_t Role,
|
|||
Txt_ROLES_PLURAL_abc[Role][Sex])),
|
||||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
Str_FreeString ();
|
||||
Str_FreeStrings ();
|
||||
|
||||
/***** Heading row with column names *****/
|
||||
Gbl.Usrs.Listing.WithPhotos = true;
|
||||
|
|
|
@ -522,6 +522,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
|
|||
off_t FileSize,unsigned long long UncompressedSize)
|
||||
{
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *The_ClassDat[The_NUM_THEMES];
|
||||
extern const char *Txt_ZIP_file;
|
||||
extern const char *Txt_Download;
|
||||
extern const char *Txt_Filename;
|
||||
|
@ -554,9 +555,9 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
|
|||
HTM_TxtColon (Txt_Filename);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_A_Begin ("href=\"%s\" class=\"DAT\" title=\"%s\" target=\"_blank\"",
|
||||
URL,FileName);
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_A_Begin ("href=\"%s\" class=\"%s\" title=\"%s\" target=\"_blank\"",
|
||||
URL,The_ClassDat[Gbl.Prefs.Theme],FileName);
|
||||
HTM_Txt (FileName);
|
||||
HTM_A_End ();
|
||||
HTM_TD_End ();
|
||||
|
@ -571,7 +572,7 @@ static void ZIP_ShowLinkToDownloadZIP (const char *FileName,const char *URL,
|
|||
HTM_TxtColon (Txt_File_size);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LM\"");
|
||||
HTM_TD_Begin ("class=\"%s LM\"",The_ClassDat[Gbl.Prefs.Theme]);
|
||||
HTM_Txt (FileSizeStr);
|
||||
if (UncompressedSize)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue