diff --git a/.settings/language.settings.xml b/.settings/language.settings.xml
index 43923f23..5f749312 100644
--- a/.settings/language.settings.xml
+++ b/.settings/language.settings.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/css/swad21.83.1.css b/css/swad21.83.2.css
similarity index 99%
rename from css/swad21.83.1.css
rename to css/swad21.83.2.css
index fa0d4a2c..74c57eb3 100644
--- a/css/swad21.83.1.css
+++ b/css/swad21.83.2.css
@@ -3782,8 +3782,8 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.Tml_WIDTH {width:316px;} /* 556-240 */
.Tml_RIGHT_WIDTH {width:260px;} /* 500-240 */
.Tml_RIGHT_AUTHOR_WIDTH {width:100px;} /* 340-240 */
- .Tml_COMM_WIDTH {width:220px;} /* 460-240 */
- .Tml_COMM_AUTHOR_WIDTH {width: 60px;} /* 300-240 */
+ .Tml_COM_WIDTH {width:220px;} /* 460-240 */
+ .Tml_COM_AUTHOR_WIDTH {width: 60px;} /* 300-240 */
.Tml_MED_INPUT_WIDTH {width:160px;} /* 400-240 */
.Tml_NOTE_FOOT_WIDTH {width:260px;} /* 500-240 */
.Tml_COMM_FOOT_WIDTH {width:220px;} /* 460-240 */
@@ -3796,8 +3796,8 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.Tml_WIDTH {width:556px;}
.Tml_RIGHT_WIDTH {width:500px;}
.Tml_RIGHT_AUTHOR_WIDTH {width:340px;}
- .Tml_COMM_WIDTH {width:460px;}
- .Tml_COMM_AUTHOR_WIDTH {width:300px;}
+ .Tml_COM_WIDTH {width:460px;}
+ .Tml_COM_AUTHOR_WIDTH {width:300px;}
.Tml_MED_INPUT_WIDTH {width:400px;}
.Tml_FAV_NOT_WIDTH {width:240px;}
.Tml_SHA_NOT_WIDTH {width:240px;}
@@ -3870,12 +3870,6 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
text-align:right;
vertical-align:top;
}
-.Tml_PST_TEXTAREA
- {
- box-sizing:border-box;
- margin:0;
- resize:none;
- }
.Tml_PST_MED_CONT
{
box-sizing:border-box;
diff --git a/swad_MAC.c b/swad_MAC.c
index 5e43929b..5da003de 100644
--- a/swad_MAC.c
+++ b/swad_MAC.c
@@ -30,6 +30,7 @@
#include "swad_action.h"
#include "swad_database.h"
#include "swad_form.h"
+#include "swad_global.h"
#include "swad_HTML.h"
#include "swad_MAC.h"
#include "swad_parameter.h"
@@ -45,6 +46,12 @@ struct MAC_Params
char MACstr[MAC_LENGTH_MAC_ADDRESS + 1]; // MAC address
};
+/*****************************************************************************/
+/************** External global variables from others modules ****************/
+/*****************************************************************************/
+
+extern struct Globals Gbl;
+
/*****************************************************************************/
/***************************** Private prototypes ****************************/
/*****************************************************************************/
@@ -73,12 +80,15 @@ static void MAC_PutParams (void *Args)
static void MAC_PutFormToEditMACAddress (Act_Action_t NextAction,const char *Anchor,
void (*FuncParams) (void *Args),void *Args)
{
- /* Form to enter a new MAC address */
+ extern const char *The_ClassInput[The_NUM_THEMES];
+
+ /***** Form to enter a new MAC address *****/
Frm_BeginFormAnchor (NextAction,Anchor);
FuncParams (Args);
HTM_INPUT_TEXT ("NewMAC",MAC_LENGTH_MAC_ADDRESS,((struct MAC_Params *) Args)->MACstr,
HTM_SUBMIT_ON_CHANGE,
- "size=\"8\"");
+ "size=\"8\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
}
diff --git a/swad_account.c b/swad_account.c
index f36c011b..c9d27d47 100644
--- a/swad_account.c
+++ b/swad_account.c
@@ -147,6 +147,7 @@ static void Acc_ShowFormCheckIfIHaveAccount (const char *Title)
{
extern const char *Hlp_PROFILE_SignUp;
extern const char *The_ClassFormInBox[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_If_you_think_you_may_have_been_registered_;
extern const char *Txt_ID;
extern const char *Txt_Check;
@@ -164,8 +165,10 @@ static void Acc_ShowFormCheckIfIHaveAccount (const char *Title)
Frm_BeginForm (ActChkUsrAcc);
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
HTM_TxtColonNBSP (Txt_ID);
- HTM_INPUT_TEXT ("ID",ID_MAX_CHARS_USR_ID,"",HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"18\" required=\"required\"");
+ HTM_INPUT_TEXT ("ID",ID_MAX_CHARS_USR_ID,"",
+ HTM_DONT_SUBMIT_ON_CHANGE,
+ "size=\"18\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_LABEL_End ();
Btn_PutCreateButtonInline (Txt_Check);
Frm_EndForm ();
@@ -362,6 +365,7 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutAr
{
extern const char *Hlp_PROFILE_SignUp;
extern const char *The_ClassFormInBox[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_Create_account;
extern const char *Txt_Nickname;
extern const char *Txt_HELP_nickname;
@@ -394,8 +398,9 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutAr
HTM_INPUT_TEXT ("NewNick",1 + Nck_MAX_CHARS_NICK_WITHOUT_ARROBA,
NewNickWithArr,HTM_DONT_SUBMIT_ON_CHANGE,
"id=\"NewNick\" size=\"18\" placeholder=\"%s\""
- " required=\"required\"",
- Txt_HELP_nickname);
+ " class=\"%s\" required=\"required\"",
+ Txt_HELP_nickname,
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/* End table row */
@@ -412,8 +417,9 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutAr
HTM_TD_Begin ("class=\"LT\"");
HTM_INPUT_EMAIL ("NewEmail",Cns_MAX_CHARS_EMAIL_ADDRESS,NewEmail,
"id=\"NewEmail\" size=\"18\" placeholder=\"%s\""
- " required=\"required\"",
- Txt_HELP_email);
+ " class=\"%s\" required=\"required\"",
+ Txt_HELP_email,
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/* End table row */
diff --git a/swad_attendance.c b/swad_attendance.c
index 42f9b885..6cd14fc8 100644
--- a/swad_attendance.c
+++ b/swad_attendance.c
@@ -1064,8 +1064,8 @@ void Att_RequestCreatOrEditAttEvent (void)
HTM_TD_Begin ("class=\"LT\"");
HTM_INPUT_TEXT ("Title",Att_MAX_CHARS_ATTENDANCE_EVENT_TITLE,Event.Title,
HTM_DONT_SUBMIT_ON_CHANGE,
- "id=\"Title\""
- " class=\"TITLE_DESCRIPTION_WIDTH %s\" required=\"required\"",
+ "id=\"Title\" class=\"TITLE_DESCRIPTION_WIDTH %s\""
+ " required=\"required\"",
The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
diff --git a/swad_changelog.h b/swad_changelog.h
index 90b116d7..90e5d923 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -601,11 +601,19 @@ TODO: Salvador Romero Cort
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
+
+TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate key... Reportado por Salvador Romero Cortés.
+
+TODO: Attach pdf files in multimedia.
*/
-#define Log_PLATFORM_VERSION "SWAD 21.83.1 (2022-01-10)"
-#define CSS_FILE "swad21.83.1.css"
+#define Log_PLATFORM_VERSION "SWAD 21.83.2 (2022-03-10)"
+#define CSS_FILE "swad21.83.2.css"
#define JS_FILE "swad21.78.2.js"
/*
+ Version 21.83.2: Mar 10, 2022 Working on design of dark theme. (323488 lines)
+Copy the following icon to icon public directory:
+sudo cp icon/theme/dark/theme_32x20.gif /var/www/html/swad/icon/theme/dark/
+
Version 21.83.1: Jan 10, 2022 Working on design of dark theme. (322887 lines)
Version 21.83: Jan 09, 2022 Working on design of dark theme. (322857 lines)
Version 21.82: Jan 03, 2022 Functions moved from swad_figure to other modules. (322550 lines)
diff --git a/swad_degree_type.c b/swad_degree_type.c
index 012b2f20..412a5b58 100644
--- a/swad_degree_type.c
+++ b/swad_degree_type.c
@@ -389,6 +389,7 @@ static void DegTyp_PutIconToEditDegTypes (__attribute__((unused)) void *Args)
static void DegTyp_ListDegreeTypesForEdition (void)
{
extern const char *The_ClassDat[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
unsigned NumDegTyp;
/***** Begin table *****/
@@ -426,7 +427,8 @@ static void DegTyp_ListDegreeTypesForEdition (void)
HTM_INPUT_TEXT ("DegTypName",DegTyp_MAX_CHARS_DEGREE_TYPE_NAME,
Gbl.DegTypes.Lst[NumDegTyp].DegTypName,
HTM_SUBMIT_ON_CHANGE,
- "size=\"25\" required=\"required\"");
+ "size=\"25\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -459,6 +461,7 @@ bool DegTyp_CheckIfICanCreateDegreeTypes (void)
static void DegTyp_PutFormToCreateDegreeType (void)
{
extern const char *The_ClassDat[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_New_type_of_degree;
extern const char *Txt_Create_type_of_degree;
@@ -488,7 +491,8 @@ static void DegTyp_PutFormToCreateDegreeType (void)
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_TEXT ("DegTypName",DegTyp_MAX_CHARS_DEGREE_TYPE_NAME,DegTyp_EditingDegTyp->DegTypName,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"25\" required=\"required\"");
+ "size=\"25\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Number of degrees of this degree type ****/
diff --git a/swad_group.c b/swad_group.c
index 5023c091..eb7513ed 100644
--- a/swad_group.c
+++ b/swad_group.c
@@ -2457,7 +2457,8 @@ static void Grp_PutFormToCreateGroupType (void)
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_TEXT ("GrpTypName",Grp_MAX_CHARS_GROUP_TYPE_NAME,
Gbl.Crs.Grps.GrpTyp.GrpTypName,HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"12\" class=\"%s\" required=\"required\"",
+ "size=\"12\" class=\"%s\""
+ " required=\"required\"",
The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
@@ -2611,8 +2612,8 @@ static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms)
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("GrpName",Grp_MAX_CHARS_GROUP_NAME,Gbl.Crs.Grps.GrpName,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"20\""
- " class=\"%s\" required=\"required\"",
+ "size=\"20\" class=\"%s\""
+ " required=\"required\"",
The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
diff --git a/swad_mail.c b/swad_mail.c
index db908ed4..2cf295a6 100644
--- a/swad_mail.c
+++ b/swad_mail.c
@@ -406,6 +406,7 @@ static void Mai_ListMailDomainsForEdition (void)
{
extern const char *Hlp_START_Domains_edit;
extern const char *The_ClassDat[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_Email_domains_allowed_for_notifications;
unsigned NumMai;
struct Mail *Mai;
@@ -444,7 +445,8 @@ static void Mai_ListMailDomainsForEdition (void)
Mai_PutParamMaiCod (&Mai->MaiCod);
HTM_INPUT_TEXT ("Domain",Cns_MAX_CHARS_EMAIL_ADDRESS,Mai->Domain,
HTM_SUBMIT_ON_CHANGE,
- "size=\"15\"");
+ "size=\"15\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -454,7 +456,8 @@ static void Mai_ListMailDomainsForEdition (void)
Mai_PutParamMaiCod (&Mai->MaiCod);
HTM_INPUT_TEXT ("Info",Mai_MAX_CHARS_MAIL_INFO,Mai->Info,
HTM_SUBMIT_ON_CHANGE,
- "size=\"40\"");
+ "size=\"40\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -643,6 +646,7 @@ void Mai_ContEditAfterChgMai (void)
static void Mai_PutFormToCreateMailDomain (void)
{
extern const char *Hlp_START_Domains_edit;
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_New_email_domain;
extern const char *Txt_EMAIL_DOMAIN_ORDER[3];
extern const char *Txt_Create_email_domain;
@@ -668,14 +672,16 @@ static void Mai_PutFormToCreateMailDomain (void)
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("Domain",Cns_MAX_CHARS_EMAIL_ADDRESS,Mai_EditingMai->Domain,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"15\" required=\"required\"");
+ "size=\"15\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/* Mail domain info */
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("Info",Mai_MAX_CHARS_MAIL_INFO,Mai_EditingMai->Info,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"40\" required=\"required\"");
+ "size=\"40\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
HTM_TD_Empty (1);
diff --git a/swad_password.c b/swad_password.c
index c3e8ad03..2b36eb6c 100644
--- a/swad_password.c
+++ b/swad_password.c
@@ -668,6 +668,7 @@ void Pwd_ShowFormChgMyPwd (void)
void Pwd_PutFormToGetNewPasswordOnce (void)
{
extern const char *The_ClassFormInBox[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_Password;
extern const char *Txt_HELP_password;
@@ -680,7 +681,8 @@ void Pwd_PutFormToGetNewPasswordOnce (void)
/* Data */
HTM_TD_Begin ("class=\"LT\"");
HTM_INPUT_PASSWORD ("Paswd",Txt_HELP_password,NULL,true,
- "id=\"Paswd\"");
+ "id=\"Paswd\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
HTM_TR_End ();
@@ -810,7 +812,8 @@ void Pwd_AskForConfirmationOnDangerousAction (void)
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
HTM_TxtColonNBSP (Txt_For_security_enter_your_password);
HTM_INPUT_PASSWORD ("OthUsrPwd",NULL,"off",true,
- "class=\"%s\"",The_ClassInput[Gbl.Prefs.Theme]);
+ "class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_LABEL_End ();
HTM_DIV_End ();
diff --git a/swad_plugin.c b/swad_plugin.c
index d89fdbfd..d7a2eff0 100644
--- a/swad_plugin.c
+++ b/swad_plugin.c
@@ -327,6 +327,7 @@ void Plg_FreeListPlugins (void)
static void Plg_ListPluginsForEdition (void)
{
extern const char *The_ClassDat[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
unsigned NumPlg;
struct Plugin *Plg;
char *Icon;
@@ -374,7 +375,8 @@ static void Plg_ListPluginsForEdition (void)
Plg_PutParamPlgCod (&Plg->PlgCod);
HTM_INPUT_TEXT ("Name",Plg_MAX_CHARS_PLUGIN_NAME,Plg->Name,
HTM_SUBMIT_ON_CHANGE,
- "size=\"10\"");
+ "size=\"10\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -384,7 +386,8 @@ static void Plg_ListPluginsForEdition (void)
Plg_PutParamPlgCod (&Plg->PlgCod);
HTM_INPUT_TEXT ("Description",Plg_MAX_CHARS_PLUGIN_DESCRIPTION,Plg->Description,
HTM_SUBMIT_ON_CHANGE,
- "size=\"30\"");
+ "size=\"30\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -394,7 +397,8 @@ static void Plg_ListPluginsForEdition (void)
Plg_PutParamPlgCod (&Plg->PlgCod);
HTM_INPUT_TEXT ("Logo",Plg_MAX_CHARS_PLUGIN_LOGO,Plg->Logo,
HTM_SUBMIT_ON_CHANGE,
- "size=\"4\"");
+ "size=\"4\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -404,7 +408,8 @@ static void Plg_ListPluginsForEdition (void)
Plg_PutParamPlgCod (&Plg->PlgCod);
HTM_INPUT_TEXT ("AppKey",Plg_MAX_CHARS_PLUGIN_APP_KEY,Plg->AppKey,
HTM_SUBMIT_ON_CHANGE,
- "size=\"16\"");
+ "size=\"16\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -413,7 +418,8 @@ static void Plg_ListPluginsForEdition (void)
Frm_BeginForm (ActChgPlgURL);
Plg_PutParamPlgCod (&Plg->PlgCod);
HTM_INPUT_URL ("URL",Plg->URL,HTM_SUBMIT_ON_CHANGE,
- "size=\"15\"");
+ "size=\"15\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -422,7 +428,8 @@ static void Plg_ListPluginsForEdition (void)
Frm_BeginForm (ActChgPlgIP);
Plg_PutParamPlgCod (&Plg->PlgCod);
HTM_INPUT_TEXT ("IP",Cns_MAX_CHARS_IP,Plg->IP,HTM_SUBMIT_ON_CHANGE,
- "size=\"10\"");
+ "size=\"10\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -769,6 +776,7 @@ void Plg_ContEditAfterChgPlg (void)
static void Plg_PutFormToCreatePlugin (void)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_New_plugin;
extern const char *Txt_Name;
extern const char *Txt_Description;
@@ -803,7 +811,8 @@ static void Plg_PutFormToCreatePlugin (void)
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("Name",Plg_MAX_CHARS_PLUGIN_NAME,Plg_EditingPlg->Name,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"10\" required=\"required\"");
+ "size=\"10\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Plugin description *****/
@@ -811,34 +820,39 @@ static void Plg_PutFormToCreatePlugin (void)
HTM_INPUT_TEXT ("Description",Plg_MAX_CHARS_PLUGIN_DESCRIPTION,
Plg_EditingPlg->Description,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"30\" required=\"required\"");
+ "size=\"30\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Plugin logo *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("Logo",Plg_MAX_CHARS_PLUGIN_LOGO,Plg_EditingPlg->Logo,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"4\" required=\"required\"");
+ "size=\"4\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Plugin application key *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("AppKey",Plg_MAX_CHARS_PLUGIN_APP_KEY,Plg_EditingPlg->AppKey,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"16\" required=\"required\"");
+ "size=\"16\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Plugin URL *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_URL ("URL",Plg_EditingPlg->URL,HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"15\" required=\"required\"");
+ "size=\"15\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Plugin IP address *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_INPUT_TEXT ("IP",Cns_MAX_CHARS_IP,Plg_EditingPlg->IP,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"10\" required=\"required\"");
+ "size=\"10\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Row end *****/
diff --git a/swad_profile.c b/swad_profile.c
index 917d55f8..5f3756a4 100644
--- a/swad_profile.c
+++ b/swad_profile.c
@@ -176,6 +176,7 @@ void Prf_RequestUserProfile (void)
extern const char *Hlp_START_Profiles_view_public_profile;
extern const char *Txt_Another_user_s_profile;
extern const char *The_ClassFormInBox[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_Nickname;
extern const char *Txt_Continue;
char NickWithArr[Nck_MAX_BYTES_NICK_WITH_ARROBA + 1];
@@ -207,7 +208,8 @@ void Prf_RequestUserProfile (void)
Gbl.Usrs.Me.UsrDat.Nickname);
HTM_INPUT_TEXT ("usr",sizeof (NickWithArr) - 1,NickWithArr,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"18\"");
+ "size=\"18\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_LABEL_End ();
/***** Send button and end box *****/
diff --git a/swad_question.c b/swad_question.c
index 871f0fae..9b844b92 100644
--- a/swad_question.c
+++ b/swad_question.c
@@ -2296,6 +2296,7 @@ void Qst_PutFloatInputField (const char *Label,const char *Field,
unsigned Index)
{
extern const char *The_ClassFormInBox[The_NUM_THEMES];
+ extern const char *The_ClassInput[The_NUM_THEMES];
char StrDouble[32];
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
@@ -2304,7 +2305,8 @@ void Qst_PutFloatInputField (const char *Label,const char *Field,
Question->Answer.FloatingPoint[Index]);
HTM_INPUT_TEXT (Field,Qst_MAX_BYTES_FLOAT_ANSWER,StrDouble,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"11\" required=\"required\"%s",
+ "size=\"11\" class=\"%s\" required=\"required\"%s",
+ The_ClassInput[Gbl.Prefs.Theme],
Question->Answer.Type == Qst_ANS_FLOAT ? "" :
" disabled=\"disabled\"");
HTM_LABEL_End ();
diff --git a/swad_record.c b/swad_record.c
index 8797f5b9..48679964 100644
--- a/swad_record.c
+++ b/swad_record.c
@@ -176,7 +176,7 @@ void Rec_ReqEditRecordFields (void)
NULL,NULL,
Hlp_USERS_Students_course_record_card,Box_NOT_CLOSABLE,2);
- Rec_ListFieldsRecordsForEdition ();
+ Rec_ListFieldsRecordsForEdition ();
/* End table and box */
Box_BoxTableEnd ();
@@ -253,6 +253,7 @@ void Rec_GetListRecordFieldsInCurrentCrs (void)
void Rec_ListFieldsRecordsForEdition (void)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_RECORD_FIELD_VISIBILITY_MENU[Rec_NUM_TYPES_VISIBILITY];
unsigned NumField;
Rec_VisibilityRecordFields_t Vis;
@@ -282,7 +283,8 @@ void Rec_ListFieldsRecordsForEdition (void)
HTM_INPUT_TEXT ("FieldName",Rec_MAX_CHARS_NAME_FIELD,
Gbl.Crs.Records.LstFields.Lst[NumField].Name,
HTM_SUBMIT_ON_CHANGE,
- "class=\"REC_FIELDNAME\"");
+ "class=\"REC_FIELDNAME %s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -294,7 +296,8 @@ void Rec_ListFieldsRecordsForEdition (void)
Gbl.Crs.Records.LstFields.Lst[NumField].NumLines);
HTM_INPUT_TEXT ("NumLines",Cns_MAX_DECIMAL_DIGITS_UINT,StrNumLines,
HTM_SUBMIT_ON_CHANGE,
- "size=\"2\"");
+ "size=\"2\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -303,7 +306,8 @@ void Rec_ListFieldsRecordsForEdition (void)
Frm_BeginForm (ActChgVisFie);
Rec_PutParamFieldCod (&Gbl.Crs.Records.LstFields.Lst[NumField].FieldCod);
HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,
- "name=\"Visibility\"");
+ "name=\"Visibility\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
for (Vis = (Rec_VisibilityRecordFields_t) 0;
Vis <= (Rec_VisibilityRecordFields_t) (Rec_NUM_TYPES_VISIBILITY - 1);
Vis++)
@@ -328,6 +332,7 @@ void Rec_ListFieldsRecordsForEdition (void)
void Rec_ShowFormCreateRecordField (void)
{
extern const char *Hlp_USERS_Students_course_record_card;
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_New_record_field;
extern const char *Txt_RECORD_FIELD_VISIBILITY_MENU[Rec_NUM_TYPES_VISIBILITY];
extern const char *Txt_Create_record_field;
@@ -357,7 +362,8 @@ void Rec_ShowFormCreateRecordField (void)
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_TEXT ("FieldName",Rec_MAX_CHARS_NAME_FIELD,Gbl.Crs.Records.Field.Name,
HTM_DONT_SUBMIT_ON_CHANGE,
- "class=\"REC_FIELDNAME\" required=\"required\"");
+ "class=\"REC_FIELDNAME %s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Number of lines in form ******/
@@ -366,13 +372,15 @@ void Rec_ShowFormCreateRecordField (void)
Gbl.Crs.Records.Field.NumLines);
HTM_INPUT_TEXT ("NumLines",Cns_MAX_DECIMAL_DIGITS_UINT,StrNumLines,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"2\" required=\"required\"");
+ "size=\"2\" class=\"%s\" required=\"required\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Visibility to students *****/
HTM_TD_Begin ("class=\"CM\"");
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
- "name=\"Visibility\"");
+ "name=\"Visibility\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
for (Vis = (Rec_VisibilityRecordFields_t) 0;
Vis <= (Rec_VisibilityRecordFields_t) (Rec_NUM_TYPES_VISIBILITY - 1);
Vis++)
diff --git a/swad_room.c b/swad_room.c
index 108f0610..fec03627 100644
--- a/swad_room.c
+++ b/swad_room.c
@@ -716,7 +716,8 @@ static void Roo_ListRoomsForEdition (const struct Bld_Buildings *Buildings,
Roo_PutParamRooCod (&Room->RooCod);
HTM_INPUT_LONG ("Floor",(long) INT_MIN,(long) INT_MAX,(long) Room->Floor,
HTM_SUBMIT_ON_CHANGE,false,
- "class=\"INPUT_LONG\"");
+ "class=\"INPUT_LONG %s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -758,7 +759,8 @@ static void Roo_ListRoomsForEdition (const struct Bld_Buildings *Buildings,
Roo_WriteCapacity (StrCapacity,Room->Capacity);
HTM_INPUT_TEXT ("Capacity",Cns_MAX_DECIMAL_DIGITS_UINT,StrCapacity,
HTM_SUBMIT_ON_CHANGE,
- "size=\"3\"");
+ "size=\"3\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
Frm_EndForm ();
HTM_TD_End ();
@@ -782,13 +784,15 @@ static void Roo_PutSelectorBuilding (long BldCod,
const struct Bld_Buildings *Buildings,
HTM_SubmitOnChange_t SubmitOnChange)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_No_assigned_building;
extern const char *Txt_Another_building;
unsigned NumBld;
/***** Begin selector *****/
HTM_SELECT_Begin (SubmitOnChange,
- "name=\"BldCod\" class=\"BLD_SEL\"");
+ "name=\"BldCod\" class=\"BLD_SEL %s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
/***** Option for no assigned building *****/
HTM_OPTION (HTM_Type_STRING,"-1",
@@ -819,12 +823,14 @@ static void Roo_PutSelectorBuilding (long BldCod,
static void Roo_PutSelectorType (Roo_RoomType_t RoomType,
HTM_SubmitOnChange_t SubmitOnChange)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_ROOM_TYPES[Roo_NUM_TYPES];
Roo_RoomType_t Type;
/***** Begin selector *****/
HTM_SELECT_Begin (SubmitOnChange,
- "name=\"Type\" class=\"ROOM_TYPE_SEL\"");
+ "name=\"Type\" class=\"ROOM_TYPE_SEL %s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
/***** Options for types *****/
for (Type = (Roo_RoomType_t) 0;
@@ -1288,7 +1294,8 @@ static void Roo_PutFormToCreateRoom (const struct Bld_Buildings *Buildings)
HTM_TD_Begin ("class=\"LM\"");
HTM_INPUT_LONG ("Floor",(long) INT_MIN,(long) INT_MAX,(long) Roo_EditingRoom->Floor,
HTM_DONT_SUBMIT_ON_CHANGE,false,
- "class=\"INPUT_LONG\"");
+ "class=\"INPUT_LONG %s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** Room type *****/
@@ -1320,7 +1327,8 @@ static void Roo_PutFormToCreateRoom (const struct Bld_Buildings *Buildings)
Roo_WriteCapacity (StrCapacity,Roo_EditingRoom->Capacity);
HTM_INPUT_TEXT ("Capacity",Cns_MAX_DECIMAL_DIGITS_UINT,StrCapacity,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"3\"");
+ "size=\"3\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
/***** MAC address *****/
@@ -1328,7 +1336,8 @@ static void Roo_PutFormToCreateRoom (const struct Bld_Buildings *Buildings)
MAC_MACnumToMACstr (Roo_EditingRoom->MACnum,MACstr);
HTM_INPUT_TEXT ("MAC",MAC_LENGTH_MAC_ADDRESS,MACstr,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"8\"");
+ "size=\"8\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
HTM_TD_End ();
HTM_TR_End ();
diff --git a/swad_syllabus.c b/swad_syllabus.c
index 122823ae..31c44262 100644
--- a/swad_syllabus.c
+++ b/swad_syllabus.c
@@ -834,6 +834,7 @@ void Syl_WriteSyllabusIntoHTMLTmpFile (FILE *FileHTMLTmp)
static void Syl_PutFormItemSyllabus (struct Syl_Syllabus *Syllabus,
bool NewItem,unsigned NumItem,int Level,int *CodItem,const char *Text)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_Enter_a_new_item_here;
if (Level < 1)
@@ -879,7 +880,8 @@ static void Syl_PutFormItemSyllabus (struct Syl_Syllabus *Syllabus,
Syl_PutParamNumItem (&Syllabus->ParamNumItem);
HTM_INPUT_TEXT ("Txt",Syl_MAX_CHARS_TEXT_ITEM,Text,
HTM_SUBMIT_ON_CHANGE,
- "size=\"60\" placeholder=\"%s\"%s",
+ "size=\"60\" class=\"%s\" placeholder=\"%s\"%s",
+ The_ClassInput[Gbl.Prefs.Theme],
Txt_Enter_a_new_item_here,
NewItem ? " autofocus=\"autofocus\"" :
"");
diff --git a/swad_test_print.c b/swad_test_print.c
index a4ff7dc9..f434da27 100644
--- a/swad_test_print.c
+++ b/swad_test_print.c
@@ -352,13 +352,15 @@ static void TstPrn_WriteIntAnsToFill (const struct TstPrn_PrintedQuestion *Print
unsigned QstInd,
__attribute__((unused)) struct Qst_Question *Question)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
char StrAns[3 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; // "Ansxx...x"
/***** Write input field for the answer *****/
snprintf (StrAns,sizeof (StrAns),"Ans%010u",QstInd);
HTM_INPUT_TEXT (StrAns,11,PrintedQuestion->StrAnswers,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"11\"");
+ "size=\"11\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
}
/*****************************************************************************/
@@ -369,13 +371,15 @@ static void TstPrn_WriteFltAnsToFill (const struct TstPrn_PrintedQuestion *Print
unsigned QstInd,
__attribute__((unused)) struct Qst_Question *Question)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
char StrAns[3 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; // "Ansxx...x"
/***** Write input field for the answer *****/
snprintf (StrAns,sizeof (StrAns),"Ans%010u",QstInd);
HTM_INPUT_TEXT (StrAns,Qst_MAX_BYTES_FLOAT_ANSWER,PrintedQuestion->StrAnswers,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"11\"");
+ "size=\"11\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
}
/*****************************************************************************/
@@ -386,6 +390,7 @@ static void TstPrn_WriteTF_AnsToFill (const struct TstPrn_PrintedQuestion *Print
unsigned QstInd,
__attribute__((unused)) struct Qst_Question *Question)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
extern const char *Txt_TF_QST[2];
/***** Write selector for the answer *****/
@@ -393,7 +398,8 @@ static void TstPrn_WriteTF_AnsToFill (const struct TstPrn_PrintedQuestion *Print
If the user does not confirm the submission of their exam ==>
==> the exam may be half filled ==> the answers displayed will be those selected by the user. */
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
- "name=\"Ans%010u\"",QstInd);
+ "name=\"Ans%010u\" class=\"%s\"",
+ QstInd,The_ClassInput[Gbl.Prefs.Theme]);
HTM_OPTION (HTM_Type_STRING,"" ,PrintedQuestion->StrAnswers[0] == '\0',false," ");
HTM_OPTION (HTM_Type_STRING,"T",PrintedQuestion->StrAnswers[0] == 'T' ,false,"%s",Txt_TF_QST[0]);
HTM_OPTION (HTM_Type_STRING,"F",PrintedQuestion->StrAnswers[0] == 'F' ,false,"%s",Txt_TF_QST[1]);
@@ -490,13 +496,15 @@ static void TstPrn_WriteTxtAnsToFill (const struct TstPrn_PrintedQuestion *Print
unsigned QstInd,
__attribute__((unused)) struct Qst_Question *Question)
{
+ extern const char *The_ClassInput[The_NUM_THEMES];
char StrAns[3 + Cns_MAX_DECIMAL_DIGITS_UINT + 1]; // "Ansxx...x"
/***** Write input field for the answer *****/
snprintf (StrAns,sizeof (StrAns),"Ans%010u",QstInd);
HTM_INPUT_TEXT (StrAns,Qst_MAX_CHARS_ANSWERS_ONE_QST,PrintedQuestion->StrAnswers,
HTM_DONT_SUBMIT_ON_CHANGE,
- "size=\"40\"");
+ "size=\"40\" class=\"%s\"",
+ The_ClassInput[Gbl.Prefs.Theme]);
}
/*****************************************************************************/
diff --git a/swad_timeline_comment.c b/swad_timeline_comment.c
index b9f58233..89951088 100644
--- a/swad_timeline_comment.c
+++ b/swad_timeline_comment.c
@@ -218,14 +218,14 @@ static void TmlCom_PutFormToWriteNewComm (const struct Tml_Timeline *Timeline,
char *ClassTextArea;
/***** Begin container *****/
- HTM_DIV_Begin ("class=\"Tml_COM_CONT Tml_COMM_WIDTH\"");
+ HTM_DIV_Begin ("class=\"Tml_COM_CONT Tml_COM_WIDTH\"");
/***** Begin form to write the post *****/
TmlFrm_BeginForm (Timeline,TmlFrm_RECEIVE_COMM);
TmlNot_PutHiddenParamNotCod (NotCod);
/***** Textarea and button *****/
- if (asprintf (&ClassTextArea,"Tml_COM_TEXTAREA Tml_COMM_WIDTH %s",
+ if (asprintf (&ClassTextArea,"Tml_COM_TEXTAREA Tml_COM_WIDTH %s",
The_ClassInput[Gbl.Prefs.Theme]) < 0)
Err_NotEnoughMemoryExit ();
TmlPst_PutTextarea (Txt_New_TIMELINE_comment,ClassTextArea);
@@ -582,7 +582,7 @@ static void TmlCom_WriteComm (const struct Tml_Timeline *Timeline,
/***** Right: author's name, time, content, and buttons *****/
/* Begin container */
- HTM_DIV_Begin ("class=\"Tml_COM_CONT Tml_COMM_WIDTH\"");
+ HTM_DIV_Begin ("class=\"Tml_COM_CONT Tml_COM_WIDTH\"");
/* Right top: author's name, time, and content */
TmlCom_WriteAuthorTimeAndContent (Com,&UsrDat);
@@ -631,7 +631,7 @@ static void TmlCom_WriteAuthorName (const struct UsrData *UsrDat) // Author
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
/* Author's name */
- if (asprintf (&Class,"Tml_COM_AUTHOR Tml_COMM_AUTHOR_WIDTH BT_LINK %s BOLD",
+ if (asprintf (&Class,"Tml_COM_AUTHOR Tml_COM_AUTHOR_WIDTH BT_LINK %s BOLD",
The_ClassDat[Gbl.Prefs.Theme]) < 0)
Err_NotEnoughMemoryExit ();
HTM_BUTTON_OnSubmit_Begin (Usr_ItsMe (UsrDat->UsrCod) ? Txt_My_public_profile :
@@ -663,8 +663,8 @@ static void TmlCom_WriteContent (struct TmlCom_Comment *Com)
}
/***** Show image *****/
- Med_ShowMedia (&Com->Content.Media,"Tml_COM_MED_CONT Tml_COMM_WIDTH",
- "Tml_COM_MED Tml_COMM_WIDTH");
+ Med_ShowMedia (&Com->Content.Media,"Tml_COM_MED_CONT Tml_COM_WIDTH",
+ "Tml_COM_MED Tml_COM_WIDTH");
}
/*****************************************************************************/
@@ -680,7 +680,7 @@ static void TmlCom_WriteButtons (const struct Tml_Timeline *Timeline,
NumDiv++;
/***** Begin buttons container *****/
- HTM_DIV_Begin ("class=\"Tml_FOOT Tml_COMM_WIDTH\"");
+ HTM_DIV_Begin ("class=\"Tml_FOOT Tml_COM_WIDTH\"");
/***** Foot column 1: fav zone *****/
HTM_DIV_Begin ("id=\"fav_com_%s_%u\" class=\"Tml_FAV_COM Tml_FAV_WIDTH\"",
diff --git a/swad_timeline_post.c b/swad_timeline_post.c
index 4f6eb578..2ec28070 100644
--- a/swad_timeline_post.c
+++ b/swad_timeline_post.c
@@ -193,7 +193,7 @@ static void TmlPst_PutFormToWriteNewPost (struct Tml_Timeline *Timeline)
/* Form with textarea */
TmlFrm_BeginForm (Timeline,TmlFrm_RECEIVE_POST);
- if (asprintf (&Class,"Tml_COM_TEXTAREA Tml_COMM_WIDTH %s",
+ if (asprintf (&Class,"Tml_COM_TEXTAREA Tml_RIGHT_WIDTH %s",
The_ClassInput[Gbl.Prefs.Theme]) < 0)
Err_NotEnoughMemoryExit ();
TmlPst_PutTextarea (Txt_New_TIMELINE_post,Class);