From 22abfd80114bb1e10e2e02e2fd8a410718a5c3f9 Mon Sep 17 00:00:00 2001 From: acanas Date: Tue, 30 Jan 2024 00:20:11 +0100 Subject: [PATCH] Version 23.63.1: Jan 30, 2024 Responsive design in questions. --- css/{swad23.61.css => swad23.63.1.css} | 125 +++++++------------------ swad_account.c | 47 +--------- swad_banner.c | 28 +++--- swad_box.c | 4 +- swad_building.c | 6 +- swad_center.c | 4 +- swad_changelog.h | 7 +- swad_country.c | 4 +- swad_course.c | 10 +- swad_degree.c | 4 +- swad_degree_type.c | 8 +- swad_department.c | 4 +- swad_exam_print.c | 2 +- swad_exam_session.c | 3 +- swad_exam_set.c | 2 +- swad_form.c | 5 +- swad_form.h | 3 +- swad_group.c | 19 ++-- swad_holiday.c | 14 +-- swad_institution.c | 4 +- swad_link.c | 8 +- swad_mail.c | 40 ++++++-- swad_mail.h | 2 + swad_match.c | 2 +- swad_name.c | 2 +- swad_nickname.c | 35 +++++++ swad_nickname.h | 2 + swad_password.c | 16 +++- swad_place.c | 4 +- swad_plugin.c | 28 +++--- swad_program.c | 107 ++++----------------- swad_program_resource.c | 68 +++++++------- swad_question.c | 29 ++++-- swad_record.c | 30 +++--- swad_room.c | 8 +- swad_rubric_criteria.c | 4 +- swad_tag.c | 2 +- swad_test.c | 56 ++++++----- swad_text.c | 4 +- swad_user.c | 3 +- 40 files changed, 343 insertions(+), 410 deletions(-) rename css/{swad23.61.css => swad23.63.1.css} (98%) diff --git a/css/swad23.61.css b/css/swad23.63.1.css similarity index 98% rename from css/swad23.61.css rename to css/swad23.63.1.css index 0b4b1282..fe2d8f89 100644 --- a/css/swad23.61.css +++ b/css/swad23.63.1.css @@ -1746,74 +1746,29 @@ a:hover img.CENTER_PHOTO_SHOW box-sizing:border-box; width:44px; } - .PRG_TITLE_DESCRIPTION_WIDTH { box-sizing:border-box; width:100%; } - .PRG_NUM { - width:30px; + width:44px; text-align:left; vertical-align:top; } - - -/******************************* Record card *********************************/ -@media only screen and (max-width: 480px) - { /* For mobile-phones */ - .PRG_MAIN - { - box-sizing:border-box; - max-width:100px; - overflow:hidden; - text-overflow:ellipsis; - text-align:left; - vertical-align:top; - } - .PRG_DATE - { - box-sizing:border-box; - max-width:72px; - overflow:hidden; - text-overflow:ellipsis; - } +.PRG_MAIN + { + box-sizing:border-box; + text-align:left; + vertical-align:top; } -@media only screen and (min-width: 480px) and (max-width: 600px) - { /* For mobile-phones */ - .PRG_MAIN - { - box-sizing:border-box; - max-width:244px; - overflow:hidden; - text-overflow:ellipsis; - text-align:left; - vertical-align:top; - } - .PRG_DATE - { - box-sizing:border-box; - max-width:120px; - overflow:hidden; - text-overflow:ellipsis; - } - } -@media only screen and (min-width: 600px) - { /* For desktop */ - .PRG_MAIN - { - text-align:left; - vertical-align:top; - } - .PRG_DATE - { - box-sizing:border-box; - max-width:120px; - overflow:hidden; - text-overflow:ellipsis; - } +.PRG_DATE + { + box-sizing:border-box; + min-width:120px; + overflow:hidden; + text-overflow:ellipsis; } .PRG_TIT_1_WHITE, @@ -1868,16 +1823,6 @@ a:hover img.CENTER_PHOTO_SHOW { opacity:0.33; } - -#prg_highlighted - { - animation:itemfadein 1s ease forwards; - } -@keyframes itemfadein - { - from {opacity:0;} - to {opacity:1;} - } .PRG_RSC_COL1 { @@ -3528,28 +3473,10 @@ legend {font-size:12pt;} .PrjCfg_RUBRIC_SEL {max-width:400px;} /********************************** Tests ************************************/ -.TAG_SEL {box-sizing:border-box; width:346px;} -.TAG_TXT {box-sizing:border-box; width:346px;} -.STEM - { - box-sizing:border-box; - margin:0 auto; - width:700px; - } -.STEM_TEXTAREA - { - width:696px; - } -.ANSWER - { - box-sizing:border-box; - margin:0 auto; - width:600px; - } -.ANSWER_TEXTAREA - { - width:596px; - } +.TAG_SEL {box-sizing: border-box; width: 390px;} +.TAG_TXT {box-sizing: border-box; width: 390px;} +.STEM_TEXTAREA {width: 780px;} +.ANSWER_TEXTAREA {width: 682px;} .Tst_SUBTITLE { @@ -5192,6 +5119,14 @@ button.PAG_DARK:hover, .PAG_CUR_DARK {background-color:#707070;} height:48px; } +/*********************** Table with no horizontal scroll *********************/ +.TBL_WIDE + { + box-sizing:border-box; + width:100%; + } +table.TBL_WIDE > tbody > tr > th {padding: 2px;} + /************************* Table with horizontal scroll **********************/ @media only screen and (max-width: 480px) { /* For mobile-phones */ @@ -5223,7 +5158,7 @@ button.PAG_DARK:hover, .PAG_CUR_DARK {background-color:#707070;} margin: 0 auto; } } -@media only screen and (min-width: 1024px) +@media only screen and (min-width: 1024px) and (max-width: 1600px) { /* For desktop */ .TBL_SCROLL { @@ -5233,6 +5168,16 @@ button.PAG_DARK:hover, .PAG_CUR_DARK {background-color:#707070;} margin: 0 auto; } } +@media only screen and (min-width: 1600px) + { /* For desktop */ + .TBL_SCROLL + { + display: block; + overflow-x: auto; + width: 1200px; + margin: 0 auto; + } + } @media only screen and (max-width: 480px) { /* For mobile-phones */ diff --git a/swad_account.c b/swad_account.c index 0d854c50..dd94e047 100644 --- a/swad_account.c +++ b/swad_account.c @@ -366,12 +366,7 @@ static void Acc_ShowFormRequestNewAccountWithPars (const char *NewNickWithoutArr { extern const char *Hlp_PROFILE_SignUp; extern const char *Txt_Actions[ActLst_NUM_ACTIONS]; - extern const char *Txt_Nickname; - extern const char *Txt_HELP_nickname; - extern const char *Txt_HELP_email; - extern const char *Txt_Email; extern const char *Txt_Create; - char NewNickWithArr[Nck_MAX_BYTES_NICK_WITH_ARROBA + 1]; /***** Begin form to enter some data of the new user *****/ Frm_BeginForm (ActCreUsrAcc); @@ -381,48 +376,10 @@ static void Acc_ShowFormRequestNewAccountWithPars (const char *NewNickWithoutArr Hlp_PROFILE_SignUp,Box_NOT_CLOSABLE,2); /***** Nickname *****/ - /* Begin table row */ - HTM_TR_Begin (NULL); - - /* Label */ - Frm_LabelColumn ("RT","NewNick",Txt_Nickname); - - /* Data */ - HTM_TD_Begin ("class=\"LT\""); - if (NewNickWithoutArr[0]) - snprintf (NewNickWithArr,sizeof (NewNickWithArr),"@%s", - NewNickWithoutArr); - else - NewNickWithArr[0] = '\0'; - HTM_INPUT_TEXT ("NewNick",1 + Nck_MAX_CHARS_NICK_WITHOUT_ARROBA, - NewNickWithArr,HTM_DONT_SUBMIT_ON_CHANGE, - "id=\"NewNick\" size=\"16\" placeholder=\"%s\"" - " class=\"INPUT_%s\" required=\"required\"", - Txt_HELP_nickname, - The_GetSuffix ()); - HTM_TD_End (); - - /* End table row */ - HTM_TR_End (); + Nck_PutFormToGetNewNickname (NewNickWithoutArr); /***** Email *****/ - /* Begin table row */ - HTM_TR_Begin (NULL); - - /* Label */ - Frm_LabelColumn ("RT","NewEmail",Txt_Email); - - /* Data */ - HTM_TD_Begin ("class=\"LT\""); - HTM_INPUT_EMAIL ("NewEmail",Cns_MAX_CHARS_EMAIL_ADDRESS,NewEmail, - "id=\"NewEmail\" size=\"16\" placeholder=\"%s\"" - " class=\"INPUT_%s\" required=\"required\"", - Txt_HELP_email, - The_GetSuffix ()); - HTM_TD_End (); - - /* End table row */ - HTM_TR_End (); + Mai_PutFormToGetNewEmail (NewEmail); /***** Password *****/ Pwd_PutFormToGetNewPasswordOnce (); diff --git a/swad_banner.c b/swad_banner.c index 4a9d5111..e5abf05d 100644 --- a/swad_banner.c +++ b/swad_banner.c @@ -398,7 +398,7 @@ static void Ban_ListBannersForEdition (struct Ban_Banners *Banners) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Table head *****/ Ban_PutHeadBanners (); @@ -433,7 +433,7 @@ static void Ban_ListBannersForEdition (struct Ban_Banners *Banners) HTM_TD_End (); /* Banner code */ - HTM_TD_Begin ("class=\"RM %s_%s\"", + HTM_TD_Begin ("class=\"CODE %s_%s\"", HidVis_DataClass[Ban->HiddenOrVisible], The_GetSuffix ()); HTM_ARTICLE_Begin (Anchor); @@ -450,7 +450,7 @@ static void Ban_ListBannersForEdition (struct Ban_Banners *Banners) true); // Put form /* Banner image */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgBanImg); ParCod_PutPar (ParCod_Ban,Banners->BanCodToEdit); HTM_INPUT_TEXT ("Img",Ban_MAX_CHARS_IMAGE,Ban->Img, @@ -461,7 +461,7 @@ static void Ban_ListBannersForEdition (struct Ban_Banners *Banners) HTM_TD_End (); /* Banner WWW */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgBanWWW); ParCod_PutPar (ParCod_Ban,Banners->BanCodToEdit); HTM_INPUT_URL ("WWW",Ban->WWW,HTM_SUBMIT_ON_CHANGE, @@ -773,7 +773,7 @@ static void Ban_PutFormToCreateBanner (const struct Ban_Banner *Ban) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewBan,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewBan,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Ban_PutHeadBanners (); @@ -782,22 +782,24 @@ static void Ban_PutFormToCreateBanner (const struct Ban_Banner *Ban) /* Begin table row */ HTM_TR_Begin (NULL); + /* Icons */ + HTM_TD_Begin ("class=\"BM\""); + HTM_TD_End (); + + HTM_TD_Begin ("class=\"BM\""); + HTM_TD_End (); + /* Banner code */ - HTM_TD_Begin ("class=\"BM\""); + HTM_TD_Begin ("class=\"CODE\""); HTM_TD_End (); - HTM_TD_Begin ("class=\"BM\""); - HTM_TD_End (); - - HTM_TD_Empty (1); - /* Banner short name and full name */ Names[Nam_SHRT_NAME] = Ban->ShrtName; Names[Nam_FULL_NAME] = Ban->FullName; Nam_NewShortAndFullNames (Names); /* Banner image */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("Img",Ban_MAX_CHARS_IMAGE,Ban->Img, HTM_DONT_SUBMIT_ON_CHANGE, "size=\"12\" class=\"INPUT_%s\"" @@ -806,7 +808,7 @@ static void Ban_PutFormToCreateBanner (const struct Ban_Banner *Ban) HTM_TD_End (); /* Banner WWW */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_URL ("WWW",Ban->WWW,HTM_DONT_SUBMIT_ON_CHANGE, "class=\"INPUT_WWW_NARROW INPUT_%s\"" " required=\"required\"", diff --git a/swad_box.c b/swad_box.c index c76ef1d3..f657605e 100644 --- a/swad_box.c +++ b/swad_box.c @@ -72,7 +72,7 @@ void Box_BoxTableBegin (const char *Title, unsigned CellPadding) // CellPadding must be 0, 1, 2, 5 or 10 { Box_BoxBegin (Title,FunctionToDrawContextualIcons,Args,HelpLink,Closable); - HTM_TABLE_BeginWidePadding (CellPadding); + HTM_TABLE_BeginPadding (CellPadding); } void Box_BoxTableShadowBegin (const char *Title, @@ -83,7 +83,7 @@ void Box_BoxTableShadowBegin (const char *Title, Box_BoxShadowBegin (Title, FunctionToDrawContextualIcons,Args, HelpLink); - HTM_TABLE_BeginWidePadding (CellPadding); + HTM_TABLE_BeginPadding (CellPadding); } void Box_BoxBegin (const char *Title, diff --git a/swad_building.c b/swad_building.c index 230e21fe..b4a81a2f 100644 --- a/swad_building.c +++ b/swad_building.c @@ -399,7 +399,7 @@ static void Bld_ListBuildingsForEdition (const struct Bld_Buildings *Buildings) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Bld_PutHeadBuildings (); @@ -423,7 +423,7 @@ static void Bld_ListBuildingsForEdition (const struct Bld_Buildings *Buildings) HTM_TD_End (); /* Building code */ - HTM_TD_Begin ("class=\"RM DAT_%s\"",The_GetSuffix ()); + HTM_TD_Begin ("class=\"CODE DAT_%s\"",The_GetSuffix ()); HTM_ARTICLE_Begin (Anchor); HTM_Long (Building->BldCod); HTM_ARTICLE_End (); @@ -654,7 +654,7 @@ static void Bld_PutFormToCreateBuilding (void) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewBld,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewBld,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Bld_PutHeadBuildings (); diff --git a/swad_center.c b/swad_center.c index 7469606a..0b277ba7 100644 --- a/swad_center.c +++ b/swad_center.c @@ -747,7 +747,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) Usr_UsrDataConstructor (&UsrDat); /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Ctr_PutHeadCentersForEdition (); @@ -1238,7 +1238,7 @@ static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places) Err_NoPermissionExit (); /***** Begin form to create *****/ - Frm_BeginFormTable (NextAction,NULL,NULL,NULL); + Frm_BeginFormTable (NextAction,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Ctr_PutHeadCentersForEdition (); diff --git a/swad_changelog.h b/swad_changelog.h index 4c964fa9..2fcccbde 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -633,10 +633,13 @@ Me sale este error, no s "can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod') */ -#define Log_PLATFORM_VERSION "SWAD 23.62 (2024-01-29)" -#define CSS_FILE "swad23.61.css" +#define Log_PLATFORM_VERSION "SWAD 23.63.1 (2024-01-30)" +#define CSS_FILE "swad23.63.1.css" #define JS_FILE "swad23.53.6.js" /* + Version 23.63.1: Jan 30, 2024 Responsive design in questions. (335400 lines) + Version 23.63: Jan 29, 2024 Responsive design in tables. + Changes in program layout. (335404 lines) Version 23.62: Jan 29, 2024 Code refactoring in boxes. (335474 lines) Version 23.61.1: Jan 29, 2024 Code refactoring in boxes. (335684 lines) Version 23.61: Jan 28, 2024 Responsive design. (335753 lines) diff --git a/swad_country.c b/swad_country.c index fb124801..f2b1afef 100644 --- a/swad_country.c +++ b/swad_country.c @@ -1034,7 +1034,7 @@ static void Cty_ListCountriesForEdition (void) char WWWInSeveralLanguages [1 + Lan_NUM_LANGUAGES][Cns_MAX_BYTES_WWW + 1]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Cty_PutHeadCountriesForEdition (); @@ -1390,7 +1390,7 @@ static void Cty_PutFormToCreateCountry (void) char StrName[32]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewCty,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewCty,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Cty_PutHeadCountriesForEdition (); diff --git a/swad_course.c b/swad_course.c index bc8e9618..92cd9337 100644 --- a/swad_course.c +++ b/swad_course.c @@ -629,7 +629,7 @@ static void Crs_ListCoursesForEdition (void) unsigned Year; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Crs_PutHeadCoursesForEdition (); @@ -733,7 +733,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_End (); /* Institutional code of the course */ - HTM_TD_Begin ("class=\"CT DAT_%s\"",The_GetSuffix ()); + HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ()); if (ICanEdit) { Frm_BeginForm (ActChgInsCrsCod); @@ -817,7 +817,7 @@ static void Crs_PutFormToCreateCourse (void) Err_NoPermissionExit (); /***** Begin form to create *****/ - Frm_BeginFormTable (NextAction,NULL,NULL,NULL); + Frm_BeginFormTable (NextAction,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Crs_PutHeadCoursesForEdition (); @@ -850,7 +850,7 @@ static void Crs_PutFormToCreateCourse (void) HTM_TD_End (); /***** Institutional code of the course *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("InsCrsCod",Hie_MAX_CHARS_INSTITUTIONAL_COD, Crs_EditingCrs->InstitutionalCod, HTM_DONT_SUBMIT_ON_CHANGE, @@ -925,7 +925,7 @@ static void Crs_PutHeadCoursesForEdition (void) HTM_TH_Span (NULL ,HTM_HEAD_CENTER,1,1,"BT"); HTM_TH (Txt_Code ,HTM_HEAD_RIGHT ); HTM_TH (Txt_Year_OF_A_DEGREE ,HTM_HEAD_CENTER); - HTM_TH_Begin (HTM_HEAD_CENTER); + HTM_TH_Begin (HTM_HEAD_LEFT); HTM_TxtF ("%s (%s)",Txt_Institutional_code,Txt_optional); HTM_TH_End (); HTM_TH (Txt_Short_name_of_the_course ,HTM_HEAD_LEFT ); diff --git a/swad_degree.c b/swad_degree.c index 5dfaf5f9..6d07d46f 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -334,7 +334,7 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) Usr_UsrDataConstructor (&UsrDat); /***** Begin table of degrees *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Deg_PutHeadDegreesForEdition (); @@ -511,7 +511,7 @@ static void Deg_PutFormToCreateDegree (const struct DegTyp_DegTypes *DegTypes) Err_NoPermissionExit (); /***** Begin form to create *****/ - Frm_BeginFormTable (NextAction,NULL,NULL,NULL); + Frm_BeginFormTable (NextAction,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Deg_PutHeadDegreesForEdition (); diff --git a/swad_degree_type.c b/swad_degree_type.c index d6351c08..87e40dc2 100644 --- a/swad_degree_type.c +++ b/swad_degree_type.c @@ -389,7 +389,7 @@ static void DegTyp_ListDegreeTypesForEdition (const struct DegTyp_DegTypes *DegT unsigned NumDegTyp; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ DegTyp_PutHeadDegreeTypesForEdition (); @@ -457,7 +457,7 @@ bool DegTyp_CheckIfICanCreateDegreeTypes (void) static void DegTyp_PutFormToCreateDegreeType (void) { /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewDegTyp,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewDegTyp,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ DegTyp_PutHeadDegreeTypesForEdition (); @@ -562,8 +562,8 @@ static void DegTyp_PutHeadDegreeTypesForEdition (void) HTM_TR_Begin (NULL); HTM_TH_Span (NULL ,HTM_HEAD_CENTER,1,1,"BT"); - HTM_TH (Txt_Code ,HTM_HEAD_CENTER); - HTM_TH (Txt_Type_of_degree ,HTM_HEAD_CENTER); + HTM_TH (Txt_Code ,HTM_HEAD_RIGHT); + HTM_TH (Txt_Type_of_degree ,HTM_HEAD_LEFT); HTM_TH (Txt_HIERARCHY_PLURAL_Abc[Hie_DEG],HTM_HEAD_RIGHT ); HTM_TR_End (); diff --git a/swad_department.c b/swad_department.c index e1b4ff4e..c81d2a74 100644 --- a/swad_department.c +++ b/swad_department.c @@ -453,7 +453,7 @@ static void Dpt_ListDepartmentsForEdition (const struct Dpt_Departments *Departm const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin table *****/ - HTM_TABLE_BeginPadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Dpt_PutHeadDepartments (); @@ -772,7 +772,7 @@ static void Dpt_PutFormToCreateDepartment (void) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewDpt,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewDpt,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Dpt_PutHeadDepartments (); diff --git a/swad_exam_print.c b/swad_exam_print.c index cb726328..848a28df 100644 --- a/swad_exam_print.c +++ b/swad_exam_print.c @@ -829,7 +829,7 @@ static void ExaPrn_WriteTF_AnsToFill (const struct ExaPrn_Print *Print, } /*****************************************************************************/ -/******** Write single or multiple choice answer when seeing a test **********/ +/***** Write single or multiple choice answer when seeing an exam print ******/ /*****************************************************************************/ static void ExaPrn_WriteChoAnsToFill (const struct ExaPrn_Print *Print, diff --git a/swad_exam_session.c b/swad_exam_session.c index d1547bb2..f3e42b10 100644 --- a/swad_exam_session.c +++ b/swad_exam_session.c @@ -934,7 +934,8 @@ static void ExaSes_PutFormSession (struct ExaSes_Session *Session) Frm_BeginFormTable (ItsANewSession ? ActNewExaSes : ActChgExaSes, ExaSes_NEW_SESSION_SECTION_ID, - ExaSes_ParsFormSession,Session); + ExaSes_ParsFormSession,Session, + "TBL_WIDE"); /***** Session title *****/ HTM_TR_Begin (NULL); diff --git a/swad_exam_set.c b/swad_exam_set.c index 7b32b3da..5052a309 100644 --- a/swad_exam_set.c +++ b/swad_exam_set.c @@ -181,7 +181,7 @@ static void ExaSet_PutFormNewSet (struct Exa_Exams *Exams, unsigned MaxSetInd) { /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewExaSet,NULL,Exa_PutPars,Exams); + Frm_BeginFormTable (ActNewExaSet,NULL,Exa_PutPars,Exams,"TBL_WIDE"); /***** Table heading *****/ ExaSet_PutTableHeadingForSets (); diff --git a/swad_form.c b/swad_form.c index 6c012762..bc962337 100644 --- a/swad_form.c +++ b/swad_form.c @@ -233,7 +233,8 @@ void Frm_EndForm (void) /*****************************************************************************/ void Frm_BeginFormTable (Act_Action_t NextAction,const char *Anchor, - void (*FuncPars) (void *Args),void *Args) + void (*FuncPars) (void *Args),void *Args, + const char *ClassTable) { extern const char *Txt_Actions[ActLst_NUM_ACTIONS]; @@ -247,7 +248,7 @@ void Frm_BeginFormTable (Act_Action_t NextAction,const char *Anchor, FuncPars (Args); /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin (ClassTable); } void Frm_EndFormTable (Btn_Button_t Button) diff --git a/swad_form.h b/swad_form.h index 7a9d50a6..7bd9bb81 100644 --- a/swad_form.h +++ b/swad_form.h @@ -70,7 +70,8 @@ void Frm_SetParsForm (char ParsStr[Frm_MAX_BYTES_PARAMS_STR + 1], void Frm_EndForm (void); void Frm_BeginFormTable (Act_Action_t NextAction,const char *Anchor, - void (*FuncPars) (void *Args),void *Args); + void (*FuncPars) (void *Args),void *Args, + const char *ClassTable); void Frm_EndFormTable (Btn_Button_t Button); void Frm_SetUniqueId (char UniqueId[Frm_MAX_BYTES_ID + 1]); diff --git a/swad_group.c b/swad_group.c index 8d76ef1d..9875e199 100644 --- a/swad_group.c +++ b/swad_group.c @@ -1213,7 +1213,7 @@ static void Grp_ListGroupTypesForEdition (void) char Id[32]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Grp_WriteHeadingGroupTypes (); @@ -1232,7 +1232,7 @@ static void Grp_ListGroupTypesForEdition (void) HTM_TD_End (); /* Name of group type */ - HTM_TD_Begin ("class=\"LM\""); + HTM_TD_Begin ("class=\"CM\""); Frm_BeginFormAnchor (ActRenGrpTyp,Grp_GROUP_TYPES_SECTION_ID); ParCod_PutPar (ParCod_GrpTyp,Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod); HTM_INPUT_TEXT ("GrpTypName",Grp_MAX_CHARS_GROUP_TYPE_NAME, @@ -1288,7 +1288,7 @@ static void Grp_ListGroupTypesForEdition (void) HTM_TD_End (); /* Open time */ - HTM_TD_Begin ("class=\"LM\""); + HTM_TD_Begin ("class=\"CM\""); Frm_BeginFormAnchor (ActChgTimGrpTyp,Grp_GROUP_TYPES_SECTION_ID); ParCod_PutPar (ParCod_GrpTyp,Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].GrpTypCod); HTM_TABLE_BeginCenterPadding (2); @@ -1399,7 +1399,7 @@ static void Grp_ListGroupsForEdition (const struct Roo_Rooms *Rooms) char StrMaxStudents[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Grp_WriteHeadingGroups (); @@ -2397,7 +2397,7 @@ static void Grp_PutFormToCreateGroupType (void) /***** Begin form to create *****/ Frm_BeginFormTable (ActNewGrpTyp,Grp_NEW_GROUP_TYPE_SECTION_ID, - NULL,NULL); + NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Grp_WriteHeadingGroupTypes (); @@ -2409,7 +2409,7 @@ static void Grp_PutFormToCreateGroupType (void) HTM_TD_End (); /***** Name of group type *****/ - HTM_TD_Begin ("class=\"LM\""); + HTM_TD_Begin ("class=\"CM\""); HTM_INPUT_TEXT ("GrpTypName",Grp_MAX_CHARS_GROUP_TYPE_NAME, Gbl.Crs.Grps.GrpTyp.GrpTypName,HTM_DONT_SUBMIT_ON_CHANGE, "size=\"12\" class=\"INPUT_%s\"" @@ -2456,8 +2456,8 @@ static void Grp_PutFormToCreateGroupType (void) HTM_TD_End (); /***** Open time *****/ - HTM_TD_Begin ("class=\"LM\""); - HTM_TABLE_BeginPadding (2); + HTM_TD_Begin ("class=\"CM\""); + HTM_TABLE_BeginCenterPadding (2); HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"LM\" style=\"width:20px;\""); @@ -2521,7 +2521,8 @@ static void Grp_PutFormToCreateGroup (const struct Roo_Rooms *Rooms) HTM_SECTION_Begin (Grp_NEW_GROUP_SECTION_ID); /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewGrp,Grp_GROUPS_SECTION_ID,NULL,NULL); + Frm_BeginFormTable (ActNewGrp,Grp_GROUPS_SECTION_ID,NULL,NULL, + "TBL_SCROLL"); /***** Write heading *****/ Grp_WriteHeadingGroups (); diff --git a/swad_holiday.c b/swad_holiday.c index 7174922e..0f029f85 100644 --- a/swad_holiday.c +++ b/swad_holiday.c @@ -497,7 +497,7 @@ static void Hld_ListHolidaysForEdition (const struct Hld_Holidays *Holidays, if (Places->Num) { /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Hld_PutHeadHolidays (); @@ -884,7 +884,7 @@ static void Hld_PutFormToCreateHoliday (const struct Plc_Places *Places) unsigned CurrentYear = Dat_GetCurrentYear (); /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewHld,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewHld,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Hld_PutHeadHolidays (); @@ -995,11 +995,11 @@ static void Hld_PutHeadHolidays (void) HTM_TR_Begin (NULL); HTM_TH_Span (NULL ,HTM_HEAD_CENTER,1,1,"BT"); HTM_TH (Txt_Code ,HTM_HEAD_RIGHT); - HTM_TH (Txt_Place ,HTM_HEAD_LEFT ); - HTM_TH (Txt_Type ,HTM_HEAD_LEFT ); - HTM_TH (Txt_START_END_TIME[Dat_STR_TIME],HTM_HEAD_LEFT ); - HTM_TH (Txt_START_END_TIME[Dat_END_TIME],HTM_HEAD_LEFT ); - HTM_TH (Txt_Holiday ,HTM_HEAD_LEFT ); + HTM_TH (Txt_Place ,HTM_HEAD_CENTER); + HTM_TH (Txt_Type ,HTM_HEAD_CENTER); + HTM_TH (Txt_START_END_TIME[Dat_STR_TIME],HTM_HEAD_CENTER); + HTM_TH (Txt_START_END_TIME[Dat_END_TIME],HTM_HEAD_CENTER); + HTM_TH (Txt_Holiday ,HTM_HEAD_CENTER); HTM_TR_End (); } diff --git a/swad_institution.c b/swad_institution.c index a945915f..f9f09ad5 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -894,7 +894,7 @@ static void Ins_ListInstitutionsForEdition (void) Usr_UsrDataConstructor (&UsrDat); /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Ins_PutHeadInstitutionsForEdition (); @@ -1334,7 +1334,7 @@ static void Ins_PutFormToCreateInstitution (void) Err_NoPermissionExit (); /***** Begin form to create *****/ - Frm_BeginFormTable (NextAction,NULL,NULL,NULL); + Frm_BeginFormTable (NextAction,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Ins_PutHeadInstitutionsForEdition (); diff --git a/swad_link.c b/swad_link.c index 260da034..b1a04bff 100644 --- a/swad_link.c +++ b/swad_link.c @@ -405,7 +405,7 @@ static void Lnk_ListLinksForEdition (const struct Lnk_Links *Links) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Table head *****/ Lnk_PutHeadLinks (); @@ -439,7 +439,7 @@ static void Lnk_ListLinksForEdition (const struct Lnk_Links *Links) true); // Put form /* Link WWW */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgLnkWWW); ParCod_PutPar (ParCod_Lnk,Lnk->LnkCod); HTM_INPUT_URL ("WWW",Lnk->WWW,HTM_SUBMIT_ON_CHANGE, @@ -649,7 +649,7 @@ static void Lnk_PutFormToCreateLink (void) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewLnk,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewLnk,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Lnk_PutHeadLinks (); @@ -670,7 +670,7 @@ static void Lnk_PutFormToCreateLink (void) Nam_NewShortAndFullNames (Names); /***** Link WWW *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_URL ("WWW",Lnk_EditingLnk->WWW,HTM_DONT_SUBMIT_ON_CHANGE, "class=\"INPUT_WWW_NARROW INPUT_%s\"" " required=\"required\"", diff --git a/swad_mail.c b/swad_mail.c index 2a3c7626..98a029d8 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -451,7 +451,7 @@ static void Mai_ListMailDomainsForEdition (const struct Mai_Mails *Mails) if (Mails->Num) { /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Mai_PutHeadMailDomains (); @@ -477,7 +477,7 @@ static void Mai_ListMailDomainsForEdition (const struct Mai_Mails *Mails) HTM_TD_End (); /* Mail domain */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActRenMaiSho); ParCod_PutPar (ParCod_Mai,Mai->MaiCod); HTM_INPUT_TEXT ("Domain",Cns_MAX_CHARS_EMAIL_ADDRESS,Mai->Domain, @@ -488,7 +488,7 @@ static void Mai_ListMailDomainsForEdition (const struct Mai_Mails *Mails) HTM_TD_End (); /* Mail domain info */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActRenMaiFul); ParCod_PutPar (ParCod_Mai,Mai->MaiCod); HTM_INPUT_TEXT ("Info",Mai_MAX_CHARS_MAIL_INFO,Mai->Info, @@ -674,7 +674,7 @@ void Mai_ContEditAfterChgMai (void) static void Mai_PutFormToCreateMailDomain (void) { /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewMai,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewMai,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Mai_PutHeadMailDomains (); @@ -691,7 +691,7 @@ static void Mai_PutFormToCreateMailDomain (void) HTM_TD_End (); /* Mail domain */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("Domain",Cns_MAX_CHARS_EMAIL_ADDRESS,Mai_EditingMai->Domain, HTM_DONT_SUBMIT_ON_CHANGE, "size=\"15\" class=\"INPUT_%s\"" @@ -700,7 +700,7 @@ static void Mai_PutFormToCreateMailDomain (void) HTM_TD_End (); /* Mail domain info */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("Info",Mai_MAX_CHARS_MAIL_INFO,Mai_EditingMai->Info, HTM_DONT_SUBMIT_ON_CHANGE, "size=\"40\" class=\"INPUT_%s\"" @@ -1006,6 +1006,34 @@ bool Mai_GetEmailFromUsrCod (struct Usr_Data *UsrDat) return Found; } +/*****************************************************************************/ +/******************** Put form to request the new email **********************/ +/*****************************************************************************/ + +void Mai_PutFormToGetNewEmail (const char *NewEmail) + { + extern const char *Txt_Email; + extern const char *Txt_HELP_email; + + /***** Email *****/ + HTM_TR_Begin (NULL); + + /* Label */ + Frm_LabelColumn ("REC_C1_BOT RM","NewEmail",Txt_Email); + + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + HTM_INPUT_EMAIL ("NewEmail",Cns_MAX_CHARS_EMAIL_ADDRESS,NewEmail, + "id=\"NewEmail\" size=\"16\" placeholder=\"%s\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"" + " required=\"required\"", + Txt_HELP_email, + The_GetSuffix ()); + HTM_TD_End (); + + HTM_TR_End (); + } + /*****************************************************************************/ /*********************** Show form to change my email ************************/ /*****************************************************************************/ diff --git a/swad_mail.h b/swad_mail.h index 824fff77..a566b67a 100644 --- a/swad_mail.h +++ b/swad_mail.h @@ -79,6 +79,8 @@ void Mai_GetSelUsrsAndListEmails (void); bool Mai_CheckIfEmailIsValid (const char *Email); bool Mai_GetEmailFromUsrCod (struct Usr_Data *UsrDat); +void Mai_PutFormToGetNewEmail (const char *NewEmail); + void Mai_ShowFormChangeMyEmail (bool IMustFillInEmail,bool IShouldConfirmEmail); void Mai_ShowFormChangeOtherUsrEmail (void); diff --git a/swad_match.c b/swad_match.c index f0809d0b..58a8122b 100644 --- a/swad_match.c +++ b/swad_match.c @@ -1193,7 +1193,7 @@ static void Mch_PutFormMatch (struct Mch_Match *Match) Frm_BeginFormTable (ItsANewMatch ? ActNewMch : ActChgMch, Mch_NEW_MATCH_SECTION_ID, - Mch_ParsFormMatch,Match); + Mch_ParsFormMatch,Match,"TBL_WIDE"); /***** Match title *****/ HTM_TR_Begin (NULL); diff --git a/swad_name.c b/swad_name.c index eb35de81..e1a3b9e3 100644 --- a/swad_name.c +++ b/swad_name.c @@ -93,7 +93,7 @@ void Nam_NewShortAndFullNames (const char *Names[Nam_NUM_SHRT_FULL_NAMES]) ShrtOrFull <= Nam_FULL_NAME; ShrtOrFull++) { - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT (Nam_Params[ShrtOrFull],Nam_MaxChars[ShrtOrFull], Names[ShrtOrFull], HTM_DONT_SUBMIT_ON_CHANGE, diff --git a/swad_nickname.c b/swad_nickname.c index 85fe6fb8..01415c83 100644 --- a/swad_nickname.c +++ b/swad_nickname.c @@ -124,6 +124,41 @@ long Nck_GetUsrCodFromNickname (const char *NickWithArr) return Nck_DB_GetUsrCodFromNickname (CopyOfNick); } +/*****************************************************************************/ +/******************* Put form to request the new nickname ********************/ +/*****************************************************************************/ + +void Nck_PutFormToGetNewNickname (const char *NewNickWithoutArr) + { + extern const char *Txt_Nickname; + extern const char *Txt_HELP_nickname; + char NewNickWithArr[Nck_MAX_BYTES_NICK_WITH_ARROBA + 1]; + + /***** Nickname *****/ + HTM_TR_Begin (NULL); + + /* Label */ + Frm_LabelColumn ("REC_C1_BOT RM","NewNick",Txt_Nickname); + + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + if (NewNickWithoutArr[0]) + snprintf (NewNickWithArr,sizeof (NewNickWithArr),"@%s", + NewNickWithoutArr); + else + NewNickWithArr[0] = '\0'; + HTM_INPUT_TEXT ("NewNick",1 + Nck_MAX_CHARS_NICK_WITHOUT_ARROBA, + NewNickWithArr,HTM_DONT_SUBMIT_ON_CHANGE, + "id=\"NewNick\" size=\"16\" placeholder=\"%s\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"" + " required=\"required\"", + Txt_HELP_nickname, + The_GetSuffix ()); + HTM_TD_End (); + + HTM_TR_End (); + } + /*****************************************************************************/ /*********************** Show form to change my nickname *********************/ /*****************************************************************************/ diff --git a/swad_nickname.h b/swad_nickname.h index 575eca6e..4f548bc2 100644 --- a/swad_nickname.h +++ b/swad_nickname.h @@ -42,6 +42,8 @@ bool Nck_CheckIfNickWithArrIsValid (const char *NickWithArr); long Nck_GetUsrCodFromNickname (const char *NickWithArr); +void Nck_PutFormToGetNewNickname (const char *NewNickWithoutArr); + void Nck_ShowFormChangeMyNickname (bool IMustFillNickname); void Nck_ShowFormChangeOtherUsrNickname (void); diff --git a/swad_password.c b/swad_password.c index d9198487..407a4439 100644 --- a/swad_password.c +++ b/swad_password.c @@ -616,7 +616,8 @@ void Pwd_ShowFormChgMyPwd (void) /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - HTM_INPUT_PASSWORD ("UsrPwd",NULL,"off",true, + HTM_INPUT_PASSWORD ("UsrPwd",NULL,"off", + true, // Required "id=\"UsrPwd\"" " class=\"REC_C2_BOT_INPUT INPUT_%s\"", The_GetSuffix ()); @@ -665,9 +666,11 @@ void Pwd_PutFormToGetNewPasswordOnce (void) /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - HTM_INPUT_PASSWORD ("Paswd",Txt_HELP_password,NULL,true, + HTM_INPUT_PASSWORD ("Paswd",Txt_HELP_password,NULL, + true, // Required "id=\"Paswd\" class=\"REC_C2_BOT_INPUT INPUT_%s\"", The_GetSuffix ()); + HTM_TD_End (); HTM_TR_End (); @@ -691,7 +694,8 @@ void Pwd_PutFormToGetNewPasswordTwice (void) /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - HTM_INPUT_PASSWORD ("Paswd1",Txt_HELP_password,NULL,true, + HTM_INPUT_PASSWORD ("Paswd1",Txt_HELP_password,NULL, + true, // Required "id=\"Paswd1\" class=\"REC_C2_BOT_INPUT INPUT_%s\"", The_GetSuffix ()); HTM_TD_End (); @@ -706,7 +710,8 @@ void Pwd_PutFormToGetNewPasswordTwice (void) /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - HTM_INPUT_PASSWORD ("Paswd2",Txt_HELP_password,NULL,true, + HTM_INPUT_PASSWORD ("Paswd2",Txt_HELP_password,NULL, + true, // Required "id=\"Paswd2\" class=\"REC_C2_BOT_INPUT INPUT_%s\"", The_GetSuffix ()); HTM_TD_End (); @@ -790,7 +795,8 @@ void Pwd_AskForConfirmationOnDangerousAction (void) /***** Password *****/ HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ()); HTM_TxtColonNBSP (Txt_For_security_enter_your_password); - HTM_INPUT_PASSWORD ("OthUsrPwd",NULL,"off",true, + HTM_INPUT_PASSWORD ("OthUsrPwd",NULL,"off", + true, // Required "class=\"INPUT_%s\"", The_GetSuffix ()); HTM_LABEL_End (); diff --git a/swad_place.c b/swad_place.c index f36af18b..a5ec0c49 100644 --- a/swad_place.c +++ b/swad_place.c @@ -433,7 +433,7 @@ static void Plc_ListPlacesForEdition (const struct Plc_Places *Places) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Plc_PutHeadPlaces (); @@ -639,7 +639,7 @@ static void Plc_PutFormToCreatePlace (void) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewPlc,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewPlc,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Plc_PutHeadPlaces (); diff --git a/swad_plugin.c b/swad_plugin.c index 0485384f..63d09473 100644 --- a/swad_plugin.c +++ b/swad_plugin.c @@ -359,7 +359,7 @@ static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins) char *Icon; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Plg_PutHeadPlugins (); @@ -396,7 +396,7 @@ static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins) HTM_TD_End (); /* Plugin name */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActRenPlg); ParCod_PutPar (ParCod_Plg,Plg->PlgCod); HTM_INPUT_TEXT ("Name",Plg_MAX_CHARS_PLUGIN_NAME,Plg->Name, @@ -407,7 +407,7 @@ static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins) HTM_TD_End (); /* Plugin description */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgPlgDes); ParCod_PutPar (ParCod_Plg,Plg->PlgCod); HTM_INPUT_TEXT ("Description",Plg_MAX_CHARS_PLUGIN_DESCRIPTION,Plg->Description, @@ -418,7 +418,7 @@ static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins) HTM_TD_End (); /* Plugin logo */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgPlgLog); ParCod_PutPar (ParCod_Plg,Plg->PlgCod); HTM_INPUT_TEXT ("Logo",Plg_MAX_CHARS_PLUGIN_LOGO,Plg->Logo, @@ -429,7 +429,7 @@ static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins) HTM_TD_End (); /* Plugin application key */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgPlgAppKey); ParCod_PutPar (ParCod_Plg,Plg->PlgCod); HTM_INPUT_TEXT ("AppKey",Plg_MAX_CHARS_PLUGIN_APP_KEY,Plg->AppKey, @@ -440,7 +440,7 @@ static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins) HTM_TD_End (); /* Plugin URL */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgPlgURL); ParCod_PutPar (ParCod_Plg,Plg->PlgCod); HTM_INPUT_URL ("URL",Plg->URL,HTM_SUBMIT_ON_CHANGE, @@ -450,7 +450,7 @@ static void Plg_ListPluginsForEdition (struct Plg_Plugins *Plugins) HTM_TD_End (); /* Plugin IP address */ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); Frm_BeginForm (ActChgPlgIP); ParCod_PutPar (ParCod_Plg,Plg->PlgCod); HTM_INPUT_TEXT ("IP",Cns_MAX_CHARS_IP,Plg->IP,HTM_SUBMIT_ON_CHANGE, @@ -788,7 +788,7 @@ void Plg_ContEditAfterChgPlg (void) static void Plg_PutFormToCreatePlugin (void) { /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewPlg,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewPlg,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Plg_PutHeadPlugins (); @@ -810,7 +810,7 @@ static void Plg_PutFormToCreatePlugin (void) HTM_TD_End (); /***** Plugin name *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("Name",Plg_MAX_CHARS_PLUGIN_NAME,Plg_EditingPlg->Name, HTM_DONT_SUBMIT_ON_CHANGE, "size=\"8\" class=\"INPUT_%s\"" @@ -819,7 +819,7 @@ static void Plg_PutFormToCreatePlugin (void) HTM_TD_End (); /***** Plugin description *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("Description",Plg_MAX_CHARS_PLUGIN_DESCRIPTION, Plg_EditingPlg->Description, HTM_DONT_SUBMIT_ON_CHANGE, @@ -829,7 +829,7 @@ static void Plg_PutFormToCreatePlugin (void) HTM_TD_End (); /***** Plugin logo *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("Logo",Plg_MAX_CHARS_PLUGIN_LOGO,Plg_EditingPlg->Logo, HTM_DONT_SUBMIT_ON_CHANGE, "size=\"4\" class=\"INPUT_%s\"" @@ -838,7 +838,7 @@ static void Plg_PutFormToCreatePlugin (void) HTM_TD_End (); /***** Plugin application key *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("AppKey",Plg_MAX_CHARS_PLUGIN_APP_KEY,Plg_EditingPlg->AppKey, HTM_DONT_SUBMIT_ON_CHANGE, "size=\"8\" class=\"INPUT_%s\"" @@ -847,7 +847,7 @@ static void Plg_PutFormToCreatePlugin (void) HTM_TD_End (); /***** Plugin URL *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_URL ("URL",Plg_EditingPlg->URL,HTM_DONT_SUBMIT_ON_CHANGE, "size=\"8\" class=\"INPUT_%s\"" " required=\"required\"", @@ -855,7 +855,7 @@ static void Plg_PutFormToCreatePlugin (void) HTM_TD_End (); /***** Plugin IP address *****/ - HTM_TD_Begin ("class=\"CM\""); + HTM_TD_Begin ("class=\"LM\""); HTM_INPUT_TEXT ("IP",Cns_MAX_CHARS_IP,Plg_EditingPlg->IP, HTM_DONT_SUBMIT_ON_CHANGE, "size=\"8\" class=\"INPUT_%s\"" diff --git a/swad_program.c b/swad_program.c index e9f2ae77..a3403a94 100644 --- a/swad_program.c +++ b/swad_program.c @@ -110,7 +110,6 @@ static struct }; static const char *Prg_ITEM_SECTION_ID = "item_section"; -static const char *Prg_HIGHLIGHTED_SECTION_ID = "prg_highlighted"; /*****************************************************************************/ /***************************** Private prototypes ****************************/ @@ -179,7 +178,6 @@ static void Prg_MoveLeftRightItem (Prg_MoveLeftRight_t LeftRight); static void Prg_ExpandContractItem (Prg_ExpandContract_t ExpandContract); -static void Prg_SetItemRangeOnlyItem (unsigned NumItem,struct Prg_ItemRange *ItemRange); static void Prg_SetItemRangeWithAllChildren (unsigned NumItem,struct Prg_ItemRange *ItemRange); static unsigned Prg_GetLastChild (int NumItem); @@ -234,10 +232,8 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType, unsigned NumItem; unsigned FormLevel = 0; // Initialized to avoid warning struct Prg_Item Item; - struct Prg_ItemRange ToHighlight; ConExp_ContractedOrExpanded_t ContractedOrExpanded; char *Title; - static bool FirstTBodyOpen = false; static void (*FunctionToDrawContextualIcons[Prg_NUM_LISTING_TYPES]) (void *Args) = { [Prg_PRINT ] = NULL, @@ -259,33 +255,12 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType, Prg_CreateLevels (); /***** Compute form level *****/ - ToHighlight.Begin = - ToHighlight.End = 0; - switch (ListingType) + if (ListingType == Prg_FORM_NEW_CHILD_ITEM) { - case Prg_VIEW: - case Prg_EDIT_ITEMS: - if (SelectedItmCod > 0) - Prg_SetItemRangeWithAllChildren (Prg_GetNumItemFromItmCod (SelectedItmCod), - &ToHighlight); - break; - case Prg_RECEIVE_ITEM: - // case Prg_EDIT_RESOURCES: // Uncomment to higlight item - // case Prg_EDIT_RESOURCE_LINK: // Uncomment to higlight item - // case Prg_CHANGE_RESOURCE_LINK: // Uncomment to higlight item - // case Prg_END_EDIT_RES: // Uncomment to higlight item - if (SelectedItmCod > 0) - Prg_SetItemRangeOnlyItem (Prg_GetNumItemFromItmCod (SelectedItmCod), - &ToHighlight); - break; - case Prg_FORM_NEW_CHILD_ITEM: - ParentItmCod = SelectedItmCod; // Item code here is parent of the item to create - NumItem = Prg_GetNumItemFromItmCod (SelectedItmCod); - SelectedItmCod = Prg_GetItmCodFromNumItem (Prg_GetLastChild (NumItem)); - FormLevel = Prg_GetLevelFromNumItem (NumItem) + 1; - break; - default: - break; + ParentItmCod = SelectedItmCod; // Item code here is parent of the item to create + NumItem = Prg_GetNumItemFromItmCod (SelectedItmCod); + SelectedItmCod = Prg_GetItmCodFromNumItem (Prg_GetLastChild (NumItem)); + FormLevel = Prg_GetLevelFromNumItem (NumItem) + 1; } /***** Begin box *****/ @@ -297,14 +272,7 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType, free (Title); /***** Table *****/ - HTM_TABLE_BeginWideMarginPadding (2); - - /* In general, the table is divided into three bodys: - 1. Rows before highlighted: - 2. Rows highlighted: - 3. Rows after highlighted: */ - HTM_TBODY_Begin (NULL); // 1st tbody start - FirstTBodyOpen = true; + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write all program items *****/ for (NumItem = 0, The_ResetRowColor (); @@ -315,18 +283,6 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType, Item.Hierarchy.ItmCod = Prg_GetItmCodFromNumItem (NumItem); Prg_GetItemDataByCod (&Item); - /* Begin range to highlight? */ - if (Item.Hierarchy.ItmInd == ToHighlight.Begin) // Begin of the highlighted range - { - if (FirstTBodyOpen) - { - HTM_TBODY_End (); // 1st tbody end - FirstTBodyOpen = false; - } - HTM_TBODY_Begin ("id=\"%s\"", - Prg_HIGHLIGHTED_SECTION_ID); // Highlighted tbody start - } - /* Set if this level is expanded */ ContractedOrExpanded = Prg_DB_GetIfContractedOrExpandedItem (Item.Hierarchy.ItmCod); Prg_SetExpandedLevel (Item.Hierarchy.Level,ContractedOrExpanded); @@ -347,14 +303,6 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType, The_ChangeRowColor (); } } - - /* End range to highlight? */ - if (Item.Hierarchy.ItmInd == ToHighlight.End) // End of the highlighted range - { - HTM_TBODY_End (); // Highlighted tbody end - if (NumItem < Prg_Gbl.List.NumItems - 1) // Not the last item - HTM_TBODY_Begin (NULL); // 3rd tbody begin - } } /***** Create item at the end? *****/ @@ -362,7 +310,6 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType, Prg_WriteRowToCreateItem (-1L,1); /***** End table *****/ - HTM_TBODY_End (); // 3rd tbody end HTM_TABLE_End (); /***** End box *****/ @@ -519,9 +466,12 @@ static void Prg_WriteRowItem (Prg_ListingType_t ListingType, Prg_IncreaseNumberInLevel (Item->Hierarchy.Level); /***** Is this the item selected? *****/ + /* HighlightItem = Item->Hierarchy.ItmCod == SelectedItmCod && (ListingType == Prg_FORM_EDIT_ITEM || ListingType == Prg_END_EDIT_ITEM); + */ + HighlightItem = Item->Hierarchy.ItmCod == SelectedItmCod; /***** First row (title and dates) *****/ HTM_TR_Begin (NULL); @@ -687,7 +637,8 @@ static void Prg_PutIconToContractOrExpandItem (struct Prg_Item *Item, /***** Icon to hide/unhide program item *****/ PutContextualIcon[ContractedOrExpanded] (NextAction[ContractedOrExpanded][ViewType], - Prg_HIGHLIGHTED_SECTION_ID, + // Prg_HIGHLIGHTED_SECTION_ID, + Prg_ITEM_SECTION_ID, Prg_PutParItmCod,&Item->Hierarchy.ItmCod); } @@ -1002,7 +953,7 @@ static void Prg_PutFormsToRemEditOneItem (Prg_ListingType_t ListingType, Prg_PutParItmCod,&Item->Hierarchy.ItmCod); /***** Icon to hide/unhide program item *****/ - Ico_PutContextualIconToHideUnhide (ActionHideUnhide,Prg_HIGHLIGHTED_SECTION_ID, + Ico_PutContextualIconToHideUnhide (ActionHideUnhide,Prg_ITEM_SECTION_ID /*Prg_HIGHLIGHTED_SECTION_ID */, Prg_PutParItmCod,&Item->Hierarchy.ItmCod, Item->Hierarchy.HiddenOrVisible); @@ -1022,7 +973,7 @@ static void Prg_PutFormsToRemEditOneItem (Prg_ListingType_t ListingType, /***** Icon to move up the item *****/ if (Prg_CheckIfMoveUpIsAllowed (NumItem)) - Lay_PutContextualLinkOnlyIcon (ActUp_PrgItm,Prg_HIGHLIGHTED_SECTION_ID, + Lay_PutContextualLinkOnlyIcon (ActUp_PrgItm,Prg_ITEM_SECTION_ID /* Prg_HIGHLIGHTED_SECTION_ID */, Prg_PutParItmCod,&Item->Hierarchy.ItmCod, "arrow-up.svg",Ico_BLACK); else @@ -1030,7 +981,7 @@ static void Prg_PutFormsToRemEditOneItem (Prg_ListingType_t ListingType, /***** Icon to move down the item *****/ if (Prg_CheckIfMoveDownIsAllowed (NumItem)) - Lay_PutContextualLinkOnlyIcon (ActDwnPrgItm,Prg_HIGHLIGHTED_SECTION_ID, + Lay_PutContextualLinkOnlyIcon (ActDwnPrgItm,Prg_ITEM_SECTION_ID /* Prg_HIGHLIGHTED_SECTION_ID */, Prg_PutParItmCod,&Item->Hierarchy.ItmCod, "arrow-down.svg",Ico_BLACK); else @@ -1038,7 +989,7 @@ static void Prg_PutFormsToRemEditOneItem (Prg_ListingType_t ListingType, /***** Icon to move left item (increase level) *****/ if (Prg_CheckIfMoveLeftIsAllowed (NumItem)) - Lay_PutContextualLinkOnlyIcon (ActLftPrgItm,Prg_HIGHLIGHTED_SECTION_ID, + Lay_PutContextualLinkOnlyIcon (ActLftPrgItm,Prg_ITEM_SECTION_ID /* Prg_HIGHLIGHTED_SECTION_ID */, Prg_PutParItmCod,&Item->Hierarchy.ItmCod, "arrow-left.svg",Ico_BLACK); else @@ -1046,7 +997,7 @@ static void Prg_PutFormsToRemEditOneItem (Prg_ListingType_t ListingType, /***** Icon to move right item (indent, decrease level) *****/ if (Prg_CheckIfMoveRightIsAllowed (NumItem)) - Lay_PutContextualLinkOnlyIcon (ActRgtPrgItm,Prg_HIGHLIGHTED_SECTION_ID, + Lay_PutContextualLinkOnlyIcon (ActRgtPrgItm,Prg_ITEM_SECTION_ID /* Prg_HIGHLIGHTED_SECTION_ID */, Prg_PutParItmCod,&Item->Hierarchy.ItmCod, "arrow-right.svg",Ico_BLACK); else @@ -1808,25 +1759,6 @@ static void Prg_ExpandContractItem (Prg_ExpandContract_t ExpandContract) Prg_FreeListItems (); } -/*****************************************************************************/ -/****** Set subtree begin and end from number of item in course program ******/ -/*****************************************************************************/ - -static void Prg_SetItemRangeOnlyItem (unsigned NumItem,struct Prg_ItemRange *ItemRange) - { - /***** List of items must be filled *****/ - if (!Prg_Gbl.List.IsRead) - Err_WrongItemsListExit (); - - /***** Number of item must be in the correct range *****/ - if (NumItem >= Prg_Gbl.List.NumItems) - Err_WrongItemExit (); - - /***** Range includes only this item *****/ - ItemRange->Begin = - ItemRange->End = Prg_GetItmIndFromNumItem (NumItem); - } - static void Prg_SetItemRangeWithAllChildren (unsigned NumItem,struct Prg_ItemRange *ItemRange) { /***** List of items must be filled *****/ @@ -1971,7 +1903,8 @@ static void Prg_ShowFormToCreateItem (long ParentItmCod) /***** Begin form to create *****/ Frm_BeginFormTable (ActNewPrgItm,NULL, - Prg_ParsFormItem,&ParentItem.Hierarchy.ItmCod); + Prg_ParsFormItem,&ParentItem.Hierarchy.ItmCod, + "TBL_WIDE"); /***** Show form *****/ Prg_ShowFormItem (&Item,SetHMS,NULL); @@ -1996,8 +1929,8 @@ static void Prg_ShowFormToChangeItem (long ItmCod) Prg_DB_GetItemTxt (Item.Hierarchy.ItmCod,Txt); /***** Begin form to change *****/ - Frm_BeginFormTable (ActChgPrgItm,Prg_HIGHLIGHTED_SECTION_ID, - Prg_ParsFormItem,&Item.Hierarchy.ItmCod); + Frm_BeginFormTable (ActChgPrgItm,Prg_ITEM_SECTION_ID /* Prg_HIGHLIGHTED_SECTION_ID */, + Prg_ParsFormItem,&Item.Hierarchy.ItmCod,"TBL_WIDE"); /***** Show form *****/ Prg_ShowFormItem (&Item,SetHMS,Txt); diff --git a/swad_program_resource.c b/swad_program_resource.c index 4faa4bbe..1aa4a4ae 100644 --- a/swad_program_resource.c +++ b/swad_program_resource.c @@ -244,46 +244,44 @@ void PrgRsc_ListItemResources (Prg_ListingType_t ListingType, /***** Table *****/ HTM_TABLE_BeginWidePadding (2); - HTM_TBODY_Begin (NULL); - /***** Write all item resources *****/ - for (NumRsc = 0, The_ResetRowColor1 (1); - NumRsc < NumResources; - NumRsc++, The_ChangeRowColor1 (1)) + /***** Write all item resources *****/ + for (NumRsc = 0, The_ResetRowColor1 (1); + NumRsc < NumResources; + NumRsc++, The_ChangeRowColor1 (1)) + { + /* Get data of this item resource */ + PrgRsc_GetResourceDataFromRow (mysql_res,Item); + + /* Show item */ + switch (ViewingOrEditingResourcesOfThisItem) { - /* Get data of this item resource */ - PrgRsc_GetResourceDataFromRow (mysql_res,Item); - - /* Show item */ - switch (ViewingOrEditingResourcesOfThisItem) - { - case Vie_VIEW: - PrgRsc_WriteRowViewResource (NumRsc,Item); - break; - case Vie_EDIT: - PrgRsc_WriteRowEditResource (NumRsc,NumResources,Item, - (ListingType == Prg_EDIT_RESOURCE_LINK && - Item->Resource.Hierarchy.RscCod == SelectedRscCod) ? Vie_EDIT : - Vie_VIEW); - break; - default: - Err_WrongTypeExit (); - break; - } + case Vie_VIEW: + PrgRsc_WriteRowViewResource (NumRsc,Item); + break; + case Vie_EDIT: + PrgRsc_WriteRowEditResource (NumRsc,NumResources,Item, + (ListingType == Prg_EDIT_RESOURCE_LINK && + Item->Resource.Hierarchy.RscCod == SelectedRscCod) ? Vie_EDIT : + Vie_VIEW); + break; + default: + Err_WrongTypeExit (); + break; } + } - /***** Form to create a new resource *****/ - if (ViewingOrEditingResourcesOfThisItem == Vie_EDIT) - { - Prg_ResetResource (Item); - PrgRsc_WriteRowNewResource (NumResources,Item, - (ListingType == Prg_EDIT_RESOURCE_LINK && - Item->Resource.Hierarchy.RscCod == SelectedRscCod) ? Vie_EDIT : - Vie_VIEW); - } + /***** Form to create a new resource *****/ + if (ViewingOrEditingResourcesOfThisItem == Vie_EDIT) + { + Prg_ResetResource (Item); + PrgRsc_WriteRowNewResource (NumResources,Item, + (ListingType == Prg_EDIT_RESOURCE_LINK && + Item->Resource.Hierarchy.RscCod == SelectedRscCod) ? Vie_EDIT : + Vie_VIEW); + } - /***** End table *****/ - HTM_TBODY_End (); + /***** End table *****/ HTM_TABLE_End (); /***** End box *****/ diff --git a/swad_question.c b/swad_question.c index a180e47d..5c55740f 100644 --- a/swad_question.c +++ b/swad_question.c @@ -221,7 +221,7 @@ void Qst_ShowFormAnswerTypes (const struct Qst_AnswerTypes *AnswerTypes) HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_TxtColon (Txt_Types_of_answers); + Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Types_of_answers); /***** Select all types of answers *****/ HTM_TD_Begin ("class=\"REC_C2_BOT LT\""); @@ -1861,7 +1861,7 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question) ParCod_PutPar (ParCod_Qst,Question->QstCod); /***** Begin table *****/ - HTM_TABLE_BeginPadding (2); // Table for this question + HTM_TABLE_Begin ("TBL_SCROLL"); // Table for this question /***** Help for text editor *****/ HTM_TR_Begin (NULL); @@ -1875,8 +1875,13 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question) /***** Write the tags *****/ HTM_TR_Begin (NULL); - HTM_TD_TxtColon (Txt_Tags); + + /* Label */ + Frm_LabelColumn ("RT","",Txt_Tags); + + /* Tags */ HTM_TD_Begin ("class=\"LT\""); + HTM_TABLE_BeginPadding (2); // Table for tags for (IndTag = 0; @@ -1994,7 +1999,11 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question) /***** Type of answer *****/ HTM_TR_Begin (NULL); - HTM_TD_TxtColon (Txt_Type); + + /* Label */ + Frm_LabelColumn ("RT","",Txt_Type); + + /* Data */ HTM_TD_Begin ("class=\"LT FORM_IN_%s\"",The_GetSuffix ()); for (AnsType = (Qst_AnswerType_t) 0; AnsType <= (Qst_AnswerType_t) (Qst_NUM_ANS_TYPES - 1); @@ -2016,10 +2025,13 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question) /***** Answers *****/ /* Integer answer */ HTM_TR_Begin (NULL); - HTM_TD_TxtColon (Txt_Answers); + + /* Label */ + Frm_LabelColumn ("RT","",Txt_Answers); + + /* Data */ HTM_TD_Begin ("class=\"LT\""); - HTM_LABEL_Begin ("class=\"FORM_IN_%s\"", - The_GetSuffix ()); + HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ()); HTM_TxtColonNBSP (Txt_Integer_number); snprintf (StrInteger,sizeof (StrInteger),"%ld",Question->Answer.Integer); HTM_INPUT_TEXT ("AnsInt",Cns_MAX_DECIMAL_DIGITS_LONG,StrInteger, @@ -2055,9 +2067,7 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question) /* Questions can be shuffled? */ HTM_TR_Begin (NULL); - HTM_TD_Empty (1); - HTM_TD_Begin ("class=\"LT\""); HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ()); HTM_INPUT_CHECKBOX ("Shuffle",HTM_DONT_SUBMIT_ON_CHANGE, @@ -2070,7 +2080,6 @@ void Qst_PutFormEditOneQst (struct Qst_Question *Question) HTM_Txt (Txt_Shuffle); HTM_LABEL_End (); HTM_TD_End (); - HTM_TR_End (); /* Simple or multiple choice answers */ diff --git a/swad_record.c b/swad_record.c index 0c9a2402..1b2969fe 100644 --- a/swad_record.c +++ b/swad_record.c @@ -276,10 +276,9 @@ static void Rec_ListFieldsRecordsForEdition (void) struct RecordField *Fld; Rec_VisibilityRecordFields_t Vis; unsigned VisUnsigned; - char StrNumLines[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Rec_WriteHeadingRecordFields (); @@ -299,8 +298,8 @@ static void Rec_ListFieldsRecordsForEdition (void) Rec_PutParFldCod,&Fld->FieldCod); HTM_TD_End (); - /* Name of the field */ - HTM_TD_Begin ("class=\"LM\""); + /* Field name */ + HTM_TD_Begin ("class=\"CM\""); Frm_BeginForm (ActRenFie); ParCod_PutPar (ParCod_Fld,Fld->FieldCod); HTM_INPUT_TEXT ("FieldName",Rec_MAX_CHARS_NAME_FIELD, @@ -315,11 +314,10 @@ static void Rec_ListFieldsRecordsForEdition (void) HTM_TD_Begin ("class=\"CM\""); Frm_BeginForm (ActChgRowFie); ParCod_PutPar (ParCod_Fld,Fld->FieldCod); - snprintf (StrNumLines,sizeof (StrNumLines),"%u", - Fld->NumLines); - HTM_INPUT_TEXT ("NumLines",Cns_MAX_DECIMAL_DIGITS_UINT,StrNumLines, - HTM_SUBMIT_ON_CHANGE, - "size=\"2\" class=\"INPUT_%s\"", + HTM_INPUT_LONG ("NumLines",1,UINT_MAX,(long) Fld->NumLines, + HTM_SUBMIT_ON_CHANGE,false, + "class=\"INPUT_LONG INPUT_%s\"" + " required=\"required\"", The_GetSuffix ()); Frm_EndForm (); HTM_TD_End (); @@ -363,10 +361,9 @@ void Rec_ShowFormCreateRecordField (void) extern const char *Txt_RECORD_FIELD_VISIBILITY_MENU[Rec_NUM_TYPES_VISIBILITY]; Rec_VisibilityRecordFields_t Vis; unsigned VisUnsigned; - char StrNumLines[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewFie,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewFie,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Rec_WriteHeadingRecordFields (); @@ -379,7 +376,7 @@ void Rec_ShowFormCreateRecordField (void) HTM_TD_End (); /***** Field name *****/ - HTM_TD_Begin ("class=\"LM\""); + HTM_TD_Begin ("class=\"CM\""); HTM_INPUT_TEXT ("FieldName",Rec_MAX_CHARS_NAME_FIELD,Gbl.Crs.Records.Field.Name, HTM_DONT_SUBMIT_ON_CHANGE, "class=\"REC_FIELDNAME INPUT_%s\"" @@ -389,11 +386,10 @@ void Rec_ShowFormCreateRecordField (void) /***** Number of lines in form ******/ HTM_TD_Begin ("class=\"CM\""); - snprintf (StrNumLines,sizeof (StrNumLines),"%u", - Gbl.Crs.Records.Field.NumLines); - HTM_INPUT_TEXT ("NumLines",Cns_MAX_DECIMAL_DIGITS_UINT,StrNumLines, - HTM_DONT_SUBMIT_ON_CHANGE, - "size=\"2\" class=\"INPUT_%s\"" + HTM_INPUT_LONG ("NumLines",1,UINT_MAX, + (long) Gbl.Crs.Records.Field.NumLines, + HTM_DONT_SUBMIT_ON_CHANGE,false, + "class=\"INPUT_LONG INPUT_%s\"" " required=\"required\"", The_GetSuffix ()); HTM_TD_End (); diff --git a/swad_room.c b/swad_room.c index aa12d68d..0a9cf215 100644 --- a/swad_room.c +++ b/swad_room.c @@ -637,7 +637,7 @@ static void Roo_ListRoomsForEdition (const struct Bld_Buildings *Buildings, char StrCapacity[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; const char *Names[Nam_NUM_SHRT_FULL_NAMES]; - HTM_TABLE_BeginWidePadding (2); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write heading *****/ Roo_PutHeadRooms (); @@ -1197,7 +1197,7 @@ static void Roo_PutFormToCreateRoom (const struct Bld_Buildings *Buildings) const char *Names[Nam_NUM_SHRT_FULL_NAMES]; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewRoo,NULL,NULL,NULL); + Frm_BeginFormTable (ActNewRoo,NULL,NULL,NULL,"TBL_SCROLL"); /***** Write heading *****/ Roo_PutHeadRooms (); @@ -1213,7 +1213,7 @@ static void Roo_PutFormToCreateRoom (const struct Bld_Buildings *Buildings) HTM_TD_End (); /***** Building *****/ - HTM_TD_Begin ("class=\"LM\""); + HTM_TD_Begin ("class=\"CM\""); Roo_PutSelectorBuilding (Roo_EditingRoom->BldCod,Buildings, HTM_DONT_SUBMIT_ON_CHANGE); HTM_TD_End (); @@ -1279,7 +1279,7 @@ static void Roo_PutHeadRooms (void) HTM_TR_Begin (NULL); HTM_TH_Span (NULL ,HTM_HEAD_CENTER,1,1,"BT"); HTM_TH (Txt_Code ,HTM_HEAD_CENTER); - HTM_TH (Txt_Building ,HTM_HEAD_LEFT ); + HTM_TH (Txt_Building ,HTM_HEAD_CENTER); HTM_TH (Txt_Floor ,HTM_HEAD_LEFT ); HTM_TH (Txt_Type ,HTM_HEAD_LEFT ); HTM_TH (Txt_Short_name ,HTM_HEAD_LEFT ); diff --git a/swad_rubric_criteria.c b/swad_rubric_criteria.c index dbcdead9..a5f49cdf 100644 --- a/swad_rubric_criteria.c +++ b/swad_rubric_criteria.c @@ -172,7 +172,7 @@ static void RubCri_PutFormNewCriterion (struct Rub_Rubrics *Rubrics, RubCri_ValueRange_t ValueRange; /***** Begin form to create *****/ - Frm_BeginFormTable (ActNewRubCri,NULL,Rub_PutPars,Rubrics); + Frm_BeginFormTable (ActNewRubCri,NULL,Rub_PutPars,Rubrics,"TBL_SCROLL"); /***** Table heading *****/ RubCri_PutTableHeadingForEdition (); @@ -666,7 +666,7 @@ static void RubCri_ListOneOrMoreCriteriaForEdition (struct Rub_Rubrics *Rubrics, double SumOfWeights = 0.0; /***** Begin table *****/ - HTM_TABLE_BeginWideMarginPadding (5); + HTM_TABLE_Begin ("TBL_SCROLL"); /***** Write the heading *****/ RubCri_PutTableHeadingForEdition (); diff --git a/swad_tag.c b/swad_tag.c index 7d9c2fb1..b105ef37 100644 --- a/swad_tag.c +++ b/swad_tag.c @@ -294,7 +294,7 @@ void Tag_ShowFormSelTags (const struct Tag_Tags *Tags, HTM_TR_Begin (NULL); /***** Label *****/ - HTM_TD_TxtColon (Txt_Tags); + Frm_LabelColumn ("REC_C1_BOT RT","",Txt_Tags); /***** Select all tags *****/ HTM_TD_Begin ("class=\"REC_C2_BOT LT\""); diff --git a/swad_test.c b/swad_test.c index dacb367e..6335f96d 100644 --- a/swad_test.c +++ b/swad_test.c @@ -79,6 +79,7 @@ extern struct Globals Gbl; /*****************************************************************************/ static void Tst_ShowFormRequestTest (struct Qst_Questions *Questions); +static void Tst_ShowFormNumQsts (void); static bool Tst_CheckIfNextTstAllowed (void); @@ -116,7 +117,6 @@ static void Tst_ShowFormRequestTest (struct Qst_Questions *Questions) { extern const char *Hlp_ASSESSMENT_Tests; extern const char *Txt_Test; - extern const char *Txt_Number_of_questions; extern const char *Txt_Generate_test; extern const char *Txt_No_questions; MYSQL_RES *mysql_res; @@ -146,32 +146,13 @@ static void Tst_ShowFormRequestTest (struct Qst_Questions *Questions) Qst_ShowFormAnswerTypes (&Questions->AnswerTypes); /***** Number of questions to generate ****/ - HTM_TR_Begin (NULL); - - /* Label */ - Frm_LabelColumn ("REC_C1_BOT RT","NumQst", - Txt_Number_of_questions); - - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT\""); - HTM_INPUT_LONG ("NumQst", - (long) TstCfg_GetConfigMin (), - (long) TstCfg_GetConfigMax (), - (long) TstCfg_GetConfigDef (), - HTM_DONT_SUBMIT_ON_CHANGE, - TstCfg_GetConfigMin () == TstCfg_GetConfigMax (), - "id=\"NumQst\"" - " class=\"REC_C2_BOT_INPUT INPUT_%s\"" - " required=\"required\"", - The_GetSuffix ()); - HTM_TD_End (); - - HTM_TR_End (); + Tst_ShowFormNumQsts (); HTM_TABLE_End (); /***** Send button *****/ Btn_PutConfirmButton (Txt_Generate_test); + Frm_EndForm (); } } @@ -186,6 +167,37 @@ static void Tst_ShowFormRequestTest (struct Qst_Questions *Questions) Box_BoxEnd (); } +/*****************************************************************************/ +/************ Show form for enter number of questions to generate ************/ +/*****************************************************************************/ + +static void Tst_ShowFormNumQsts (void) + { + extern const char *Txt_Number_of_questions; + + HTM_TR_Begin (NULL); + + /***** Label *****/ + Frm_LabelColumn ("REC_C1_BOT RT","NumQst", + Txt_Number_of_questions); + + /***** Data *****/ + HTM_TD_Begin ("class=\"REC_C2_BOT LT\""); + HTM_INPUT_LONG ("NumQst", + (long) TstCfg_GetConfigMin (), + (long) TstCfg_GetConfigMax (), + (long) TstCfg_GetConfigDef (), + HTM_DONT_SUBMIT_ON_CHANGE, + TstCfg_GetConfigMin () == TstCfg_GetConfigMax (), + "id=\"NumQst\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"" + " required=\"required\"", + The_GetSuffix ()); + HTM_TD_End (); + + HTM_TR_End (); + } + /*****************************************************************************/ /********************** Generate self-assessment test ************************/ /*****************************************************************************/ diff --git a/swad_text.c b/swad_text.c index acda2822..65c8e446 100644 --- a/swad_text.c +++ b/swad_text.c @@ -46342,11 +46342,11 @@ const char *Txt_Tags = // Tags used in test #elif L==7 // it "Etichette"; #elif L==8 // pl - "Tags"; // Potrzebujesz tlumaczenie + "Tagi"; #elif L==9 // pt "Descritores"; #elif L==10 // tr - "Tags"; // Çeviri lazim! + "Etiketler"; #endif const char *Txt_teachers_ABBREVIATION = // Abbreviation of "Teachers" diff --git a/swad_user.c b/swad_user.c index e54ecbac..59a38421 100644 --- a/swad_user.c +++ b/swad_user.c @@ -1191,7 +1191,8 @@ void Usr_WriteFormLogin (Act_Action_t NextAction,void (*FuncPars) (void)) Ico_PutIcon ("key.svg",Ico_BLACK, Txt_Password,"CONTEXT_ICO16x16"); HTM_LABEL_End (); - HTM_INPUT_PASSWORD ("UsrPwd",Txt_password,NULL,false, + HTM_INPUT_PASSWORD ("UsrPwd",Txt_password,NULL, + false, // Not required "id=\"UsrPwd\" class=\"INPUT_%s\"", The_GetSuffix ()); HTM_DIV_End ();