diff --git a/swad_HTML.c b/swad_HTML.c index bd18123c7..83bc5c46e 100644 --- a/swad_HTML.c +++ b/swad_HTML.c @@ -1333,7 +1333,7 @@ void HTM_INPUT_IMAGE (const char *URL,const char *Icon,const char *Title, } void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder, - const char *AutoComplete,bool Required, + const char *AutoComplete,HTM_Required_t Required, const char *fmt,...) { va_list ap; @@ -1348,7 +1348,7 @@ void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder, if (AutoComplete) if (AutoComplete[0]) HTM_TxtF (" autocomplete=\"%s\"",AutoComplete); - if (Required) + if (Required == HTM_REQUIRED) HTM_Txt (" required=\"required\""); if (fmt) diff --git a/swad_HTML.h b/swad_HTML.h index bfb4d690c..5a18a095a 100644 --- a/swad_HTML.h +++ b/swad_HTML.h @@ -52,6 +52,13 @@ typedef enum HTM_SUBMIT_ON_CLICK, } HTM_SubmitOnClick_t; +#define HTM_NUM_REQUIRED 2 +typedef enum + { + HTM_NOT_REQUIRED, + HTM_REQUIRED, + } HTM_Required_t; + typedef enum { HTM_OPTION_UNSELECTED, @@ -175,7 +182,7 @@ void HTM_INPUT_BUTTON (const char *Name,const char *Value,const char *Attr); void HTM_INPUT_IMAGE (const char *URL,const char *Icon,const char *Title, const char *fmt,...); void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder, - const char *AutoComplete,bool Required, + const char *AutoComplete,HTM_Required_t Required, const char *fmt,...); void HTM_INPUT_LONG (const char *Name,long Min,long Max,long Value, HTM_SubmitOnChange_t SubmitOnChange,bool Disabled, diff --git a/swad_changelog.h b/swad_changelog.h index 4d22a0c47..5d84ff569 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -637,6 +637,7 @@ Me sale este error, no s #define CSS_FILE "swad23.67.2.css" #define JS_FILE "swad23.79.js" /* + Version 23.79.1: Apr 24, 2024 Code refactoring in HTML related to required field in form. (335751 lines) Version 23.79: Apr 24, 2024 Code refactoring writing dates. (335741 lines) Version 23.78: Apr 23, 2024 Code refactoring in list of actions. (335577 lines) Version 23.77: Apr 19, 2024 Code refactoring in list of actions. (335567 lines) diff --git a/swad_password.c b/swad_password.c index a39b6386b..1ffea6f66 100644 --- a/swad_password.c +++ b/swad_password.c @@ -620,7 +620,7 @@ void Pwd_ShowFormChgMyPwd (void) /* Data */ HTM_TD_Begin ("class=\"Frm_C2 LM\""); HTM_INPUT_PASSWORD ("UsrPwd",NULL,"off", - true, // Required + HTM_REQUIRED, "id=\"UsrPwd\"" " class=\"Frm_C2_INPUT INPUT_%s\"", The_GetSuffix ()); @@ -670,7 +670,7 @@ void Pwd_PutFormToGetNewPasswordOnce (void) /* Data */ HTM_TD_Begin ("class=\"Frm_C2 LM\""); HTM_INPUT_PASSWORD ("Paswd",Txt_HELP_password,NULL, - true, // Required + HTM_REQUIRED, "id=\"Paswd\" class=\"REC_C2_BOT_INPUT INPUT_%s\"", The_GetSuffix ()); @@ -698,7 +698,7 @@ void Pwd_PutFormToGetNewPasswordTwice (void) /* Data */ HTM_TD_Begin ("class=\"Frm_C2 LM\""); HTM_INPUT_PASSWORD ("Paswd1",Txt_HELP_password,NULL, - true, // Required + HTM_REQUIRED, "id=\"Paswd1\" class=\"Frm_C2_INPUT INPUT_%s\"", The_GetSuffix ()); HTM_TD_End (); @@ -714,7 +714,7 @@ void Pwd_PutFormToGetNewPasswordTwice (void) /* Data */ HTM_TD_Begin ("class=\"Frm_C2 LM\""); HTM_INPUT_PASSWORD ("Paswd2",Txt_HELP_password,NULL, - true, // Required + HTM_REQUIRED, "id=\"Paswd2\" class=\"Frm_C2_INPUT INPUT_%s\"", The_GetSuffix ()); HTM_TD_End (); @@ -799,7 +799,7 @@ void Pwd_AskForConfirmationOnDangerousAction (void) HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ()); HTM_TxtColonNBSP (Txt_For_security_enter_your_password); HTM_INPUT_PASSWORD ("OthUsrPwd",NULL,"off", - true, // Required + HTM_REQUIRED, "class=\"INPUT_%s\"", The_GetSuffix ()); HTM_LABEL_End (); diff --git a/swad_project.c b/swad_project.c index 7cbde3b72..57c4b9573 100644 --- a/swad_project.c +++ b/swad_project.c @@ -300,7 +300,7 @@ static void Prj_ReqCreatOrEditPrj (struct Prj_Projects *Projects); static void Prj_PutFormProject (struct Prj_Projects *Projects,bool ItsANewProject); static void Prj_EditOneProjectTxtArea (const char *Id, const char *Label,char *TxtField, - unsigned NumRows,bool Required); + unsigned NumRows,HTM_Required_t Required); static void Prj_CreateProject (struct Prj_Project *Prj); static void Prj_UpdateProject (struct Prj_Project *Prj); @@ -3901,17 +3901,17 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects, /* Description of the project */ Prj_EditOneProjectTxtArea ("Description",Txt_Description, Projects->Prj.Description,12, - true); // Required + HTM_REQUIRED); /* Required knowledge to carry out the project */ Prj_EditOneProjectTxtArea ("Knowledge",Txt_Required_knowledge, Projects->Prj.Knowledge,4, - false); // Not required + HTM_NOT_REQUIRED); /* Required materials to carry out the project */ Prj_EditOneProjectTxtArea ("Materials",Txt_Required_materials, Projects->Prj.Materials,4, - false); // Not required + HTM_NOT_REQUIRED); /* URL for additional info */ HTM_TR_Begin (NULL); @@ -3952,8 +3952,14 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects, static void Prj_EditOneProjectTxtArea (const char *Id, const char *Label,char *TxtField, - unsigned NumRows,bool Required) + unsigned NumRows,HTM_Required_t Required) { + static const char *RequiredTxt[HTM_NUM_REQUIRED] = + { + [HTM_NOT_REQUIRED] = "", + [HTM_REQUIRED ] = " required=\"required\"", + }; + /***** Description *****/ HTM_TR_Begin (NULL); @@ -3965,9 +3971,7 @@ static void Prj_EditOneProjectTxtArea (const char *Id, HTM_TEXTAREA_Begin ("id=\"%s\" name=\"%s\" rows=\"%u\"" " class=\"Frm_C2_INPUT INPUT_%s\"%s", Id,Id,NumRows, - The_GetSuffix (), - Required ? " required=\"required\"" : - ""); + The_GetSuffix (),RequiredTxt[Required]); HTM_Txt (TxtField); HTM_TEXTAREA_End (); HTM_TD_End (); diff --git a/swad_user.c b/swad_user.c index da834e4ab..3a159c82e 100644 --- a/swad_user.c +++ b/swad_user.c @@ -1180,7 +1180,7 @@ void Usr_WriteFormLogin (Act_Action_t NextAction,void (*FuncPars) (void)) Txt_Password,"CONTEXT_ICO16x16"); HTM_LABEL_End (); HTM_INPUT_PASSWORD ("UsrPwd",Txt_password,NULL, - false, // Not required + HTM_NOT_REQUIRED, "id=\"UsrPwd\" class=\"INPUT_%s\"", The_GetSuffix ()); HTM_DIV_End ();