From aaa15743790561aa8144f46fb4b8e33100867ec3 Mon Sep 17 00:00:00 2001 From: acanas Date: Fri, 24 Nov 2023 14:37:55 +0100 Subject: [PATCH] Version 23.48: Nov 23, 2023 Responsive design in record cards. --- css/{swad23.47.3.css => swad23.48.css} | 433 +++++++++--- swad_ID.c | 38 +- swad_browser.c | 18 +- swad_call_for_exam.c | 2 +- swad_center.c | 20 +- swad_center_config.c | 2 +- swad_changelog.h | 5 +- swad_chat.c | 6 +- swad_course.c | 14 +- swad_course_config.c | 2 +- swad_date.c | 157 +++-- swad_degree.c | 18 +- swad_degree_config.c | 2 +- swad_forum.c | 18 +- swad_hierarchy.c | 2 +- swad_hierarchy_config.c | 2 +- swad_layout.c | 4 +- swad_logo.c | 16 +- swad_logo.h | 6 +- swad_mail.c | 44 +- swad_network.c | 90 +-- swad_nickname.c | 195 +++--- swad_password.c | 90 +-- swad_photo.c | 2 +- swad_profile.c | 91 +-- swad_record.c | 867 +++++++++++++------------ swad_record.h | 2 - 27 files changed, 1175 insertions(+), 971 deletions(-) rename css/{swad23.47.3.css => swad23.48.css} (95%) diff --git a/css/swad23.47.3.css b/css/swad23.48.css similarity index 95% rename from css/swad23.47.3.css rename to css/swad23.48.css index 1957da1c..54a132b8 100644 --- a/css/swad23.47.3.css +++ b/css/swad23.48.css @@ -444,6 +444,11 @@ a:hover /* Default ==> underlined */ max-width:28px; overflow:hidden; } + #my_courses + { + width:100px; + margin:1px; + } } @media only screen and (min-width: 480px) and (max-width: 800px) { /* For mobile-phones */ @@ -461,6 +466,11 @@ a:hover /* Default ==> underlined */ max-width:60px; overflow:hidden; } + #my_courses + { + width:130px; + margin:1px; + } } @media only screen and (min-width: 800px) and (max-width: 1024px) { /* For tablets */ @@ -478,6 +488,11 @@ a:hover /* Default ==> underlined */ max-width:100px; overflow:hidden; } + #my_courses + { + width:130px; + margin:1px; + } } @media only screen and (min-width: 1024px) { /* For desktop */ @@ -495,6 +510,11 @@ a:hover /* Default ==> underlined */ max-width:150px; overflow:hidden; } + #my_courses + { + width:130px; + margin:1px; + } } .BC_SEMIOFF {opacity:0.7;} @@ -616,11 +636,6 @@ a:hover /* Default ==> underlined */ .MAIN_TITLE_YELLOW {color:white;} .MAIN_TITLE_PINK {color:white;} .MAIN_TITLE_DARK {color:#f7f6f5;} -#my_courses - { - width:130px; - margin:1px; - } /******************************** Search *************************************/ .WHAT_TO_SEARCH {width:186px;} @@ -2045,23 +2060,25 @@ a:hover img.CENTER_PHOTO_SHOW .ALERT_TXT_DARK {color:white;} /*********************************** Icons ***********************************/ -.ICOx16 { height:16px; vertical-align:middle;} -.ICO16x16 {width:16px; height:16px; vertical-align:middle;} -.ICO20x20 {width:20px; height:20px; vertical-align:middle;} -.ICOx20 { height:20px; vertical-align:middle; margin:0 auto;} -.ICO25x25 {width:25px; height:25px; vertical-align:middle;} -.ICO40x40 {width:40px; height:40px; vertical-align:middle;} -.ICO64x64 {width:64px; height:64px; vertical-align:middle;} +.ICO {width:100%; vertical-align:middle;} +.ICOx16 { height:16px; vertical-align:middle;} +.ICO16x16 {width:16px; height:16px; vertical-align:middle;} +.ICO20x20 {width:20px; height:20px; vertical-align:middle;} +.ICOx20 { height:20px; vertical-align:middle; margin:0 auto;} +.ICO25x25 {width:25px; height:25px; vertical-align:middle;} +.ICO40x40 {width:40px; height:40px; vertical-align:middle;} +.ICO64x64 {width:64px; height:64px; vertical-align:middle;} -.ICO80x40 {width:80px; height:40px; vertical-align:middle;} -.ICO140x40 {width:140px; height:40px; vertical-align:middle;} -.ICO212x40 {width:212px; height:40px; vertical-align:middle;} -.ICO220x40 {width:220px; height:40px; vertical-align:middle;} -.ICO265x40 {width:265px; height:40px; vertical-align:middle;} +.ICO80x40 {width:80px; height:40px; vertical-align:middle;} +.ICO140x40 {width:140px; height:40px; vertical-align:middle;} +.ICO212x40 {width:212px; height:40px; vertical-align:middle;} +.ICO220x40 {width:220px; height:40px; vertical-align:middle;} +.ICO265x40 {width:265px; height:40px; vertical-align:middle;} -.ICO160x160 {width:160px; height:160px; vertical-align:middle;} -.BANNER {width:150px; height:50px;} -.BANNER_SMALL {width:75px; height:25px;} +.ICO160x160 {width:160px; height:160px; vertical-align:middle;} + +.BANNER {width:150px; height:50px;} +.BANNER_SMALL {width:75px; height:25px;} .ICO_DARKRED {color:#660000;} @@ -2404,6 +2421,9 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;} .PHOTOR60x80 {width: 60px; height: 80px; border-radius:3px; vertical-align:middle;} .PHOTOR186x248 {width:186px; height:248px; border-radius:4px;} +.PHOTO_REC {width:100%; border-radius:4px; + max-width: 100%; height: auto;} + .IMG_USR { box-sizing:border-box; @@ -2957,6 +2977,289 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;} .USR_ID_NC_DARK {color:#f98a8a} /******************************* Record card *********************************/ +@media only screen and (max-width: 480px) + { /* For mobile-phones */ + .REC_CONT + { + box-sizing: border-box; + width:300px; + margin:0 auto; + } + .REC_HEAD + { + font-family:Georgia,"DejaVu LGC Serif","Bitstream Vera Serif",serif; + color:#808080; + font-size:10pt; + } + .REC_NAME + { + box-sizing:border-box; + max-width:168px; + white-space:nowrap; + overflow:hidden; + text-overflow:ellipsis; + color:#808080; + font-size:12pt; + font-weight:bold; + background-color:orange; + } + .REC_NICK + { + color:#808080; + font-size:10pt; + font-weight:bold; + } + + .REC_C1_TOP + { + box-sizing:border-box; + width:32px; + padding-top:8px !important; + vertical-align:top; + background-color:red; + } + .REC_C2_TOP + { + box-sizing:border-box; + width:168px; + height:36px; + padding-top:8px !important; + background-color:yellow; + } + .REC_C3_TOP + { + box-sizing:border-box; + width:80px; + background-color:green; + } + + .REC_C1_MID + { + box-sizing:border-box; + width:32px; + background-color:red; + } + .REC_C2_MID + { + box-sizing:border-box; + width:168px; + background-color:yellow; + } + .REC_C3_MID + { + box-sizing:border-box; + width:80px; + background-color:green; + } + + .REC_C1_BOT + { + box-sizing:border-box; + width:130px; + background-color:red; + } + .REC_C2_BOT + { + box-sizing:border-box; + width:138px; + background-color:yellow; + } + .REC_C2_BOT_INPUT + { + box-sizing:border-box; + width:134px; + background-color:green; + } + } +@media only screen and (min-width: 480px) and (max-width: 600px) + { /* For mobile-phones */ + .REC_CONT + { + box-sizing: border-box; + width:460px; + margin:0 auto; + } + .REC_HEAD + { + font-family:Georgia,"DejaVu LGC Serif","Bitstream Vera Serif",serif; + color:#808080; + font-size:11pt; + } + .REC_NAME + { + box-sizing:border-box; + max-width:264px; + white-space:nowrap; + overflow:hidden; + text-overflow:ellipsis; + color:#808080; + font-size:16pt; + font-weight:bold; + background-color:orange; + } + .REC_NICK + { + color:#808080; + font-size:12pt; + font-weight:bold; + } + + .REC_C1_TOP + { + box-sizing:border-box; + width:52px; + padding-top:8px !important; + vertical-align:top; + background-color:red; + } + .REC_C2_TOP + { + box-sizing:border-box; + width:264px; + height:56px; + padding-top:8px !important; + background-color:yellow; + } + .REC_C3_TOP + { + box-sizing:border-box; + width:124px; + background-color:green; + } + + .REC_C1_MID + { + box-sizing:border-box; + width:52px; + background-color:red; + } + .REC_C2_MID + { + box-sizing:border-box; + width:264px; + background-color:yellow; + } + .REC_C3_MID + { + box-sizing:border-box; + width:124px; + background-color:green; + } + + .REC_C1_BOT + { + box-sizing:border-box; + width:150px; + background-color:red; + } + .REC_C2_BOT + { + box-sizing:border-box; + width:278px; + background-color:yellow; + } + .REC_C2_BOT_INPUT + { + box-sizing:border-box; + width:274px; + background-color:green; + } + } +@media only screen and (min-width: 600px) + { /* For desktop */ + .REC_CONT + { + box-sizing: border-box; + width:560px; + margin:0 auto; + } + .REC_HEAD + { + font-family:Georgia,"DejaVu LGC Serif","Bitstream Vera Serif",serif; + color:#808080; + font-size:12pt; + } + .REC_NAME + { + box-sizing:border-box; + max-width:316px; + white-space:nowrap; + overflow:hidden; + text-overflow:ellipsis; + color:#808080; + font-size:20pt; + font-weight:bold; + background-color:orange; + } + .REC_NICK + { + color:#808080; + font-size:15pt; + font-weight:bold; + } + + .REC_C1_TOP + { + box-sizing:border-box; + width:64px; + padding-top:8px !important; + vertical-align:top; + background-color:red; + } + .REC_C2_TOP + { + box-sizing:border-box; + width:316px; + height:68px; + padding-top:8px !important; + background-color:yellow; + } + .REC_C3_TOP + { + box-sizing:border-box; + width:160px; + background-color:green; + } + + .REC_C1_MID + { + box-sizing:border-box; + width:64px; + background-color:red; + } + .REC_C2_MID + { + box-sizing:border-box; + width:316px; + background-color:yellow; + } + .REC_C3_MID + { + box-sizing:border-box; + width:160px; + background-color:green; + } + + .REC_C1_BOT + { + box-sizing:border-box; + width:170px; + background-color:red; + } + .REC_C2_BOT + { + box-sizing:border-box; + width:358px; + background-color:yellow; + } + .REC_C2_BOT_INPUT + { + box-sizing:border-box; + width:354px; + background-color:green; + } + } + .REC_USR { display:block; @@ -2970,84 +3273,8 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;} vertical-align:top; } -.REC_C1_TOP - { - box-sizing:border-box; - width:68px; - padding-top:8px !important; - vertical-align:top; - } -.REC_C2_TOP - { - box-sizing:border-box; - width:278px; - height:68px; - padding-top:8px !important; - } -.REC_C3_TOP - { - box-sizing:border-box; - width:190px; - } - -.REC_C1_MID - { - box-sizing:border-box; - width:68px; - } -.REC_C2_MID - { - box-sizing:border-box; - width:278px; - } -.REC_C3_MID - { - box-sizing:border-box; - width:190px; - } - -.REC_C1_BOT - { - box-sizing:border-box; - width:170px; - } -.REC_C2_BOT - { - box-sizing:border-box; - width:362px; - } -.REC_C2_BOT_INPUT - { - box-sizing:border-box; - width:358px; - } - -.REC_HEAD - { - font-family:Georgia,"DejaVu LGC Serif","Bitstream Vera Serif",serif; - color:#808080; - font-size:12pt; - } -.REC_NAME - { - box-sizing:border-box; - max-width:274px; - white-space:nowrap; - overflow:hidden; - text-overflow:ellipsis; - color:#808080; - font-size:20pt; - font-weight:bold; - } -.REC_NICK - { - color:#808080; - font-size:15pt; - font-weight:bold; - } .REC_WEBS { - width:180px; margin:0 auto; } .REC_EMAIL @@ -4796,20 +5023,16 @@ button.PAG_DARK:hover, .PAG_CUR_DARK {background-color:#707070;} } /***************************** Public user's profile *************************/ -.PRF_FIG_LEFT_CONT +.PRF_FIG_CONT { - display:inline-block; - box-sizing:border-box; - width:50%; - padding-right:10px; - text-align:right; - vertical-align:top; + margin:4px auto 6px auto; + text-align:center; } -.PRF_FIG_RIGHT_CONT +.PRF_FIG_LEFT_RIGHT { display:inline-block; box-sizing:border-box; - width:50%; + width:280px; padding-left:10px; text-align:left; vertical-align:top; diff --git a/swad_ID.c b/swad_ID.c index 843b2036..4bb62faf 100644 --- a/swad_ID.c +++ b/swad_ID.c @@ -445,22 +445,22 @@ void ID_ShowFormChangeMyID (bool IShouldFillInID) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_ID; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Begin section *****/ HTM_SECTION_Begin (ID_ID_SECTION_ID); /***** Begin box *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxBegin (StrRecordWidth,Txt_ID, - Acc_PutLinkToRemoveMyAccount,NULL, - Hlp_PROFILE_Account,Box_NOT_CLOSABLE); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxBegin ("100%",Txt_ID, + Acc_PutLinkToRemoveMyAccount,NULL, + Hlp_PROFILE_Account,Box_NOT_CLOSABLE); - /***** Show form to change ID *****/ - ID_ShowFormChangeUsrID (Usr_ME,IShouldFillInID); + /***** Show form to change ID *****/ + ID_ShowFormChangeUsrID (Usr_ME,IShouldFillInID); - /***** End box *****/ - Box_BoxEnd (); + /***** End box *****/ + Box_BoxEnd (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); @@ -474,23 +474,23 @@ void ID_ShowFormChangeOtherUsrID (void) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_ID; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Begin section *****/ HTM_SECTION_Begin (ID_ID_SECTION_ID); /***** Begin box *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxBegin (StrRecordWidth,Txt_ID, - NULL,NULL, - Hlp_PROFILE_Account,Box_NOT_CLOSABLE); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxBegin ("100%",Txt_ID, + NULL,NULL, + Hlp_PROFILE_Account,Box_NOT_CLOSABLE); - /***** Show form to change ID *****/ - ID_ShowFormChangeUsrID (Usr_OTHER, - false); // IShouldFillInID + /***** Show form to change ID *****/ + ID_ShowFormChangeUsrID (Usr_OTHER, + false); // IShouldFillInID - /***** End box *****/ - Box_BoxEnd (); + /***** End box *****/ + Box_BoxEnd (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); diff --git a/swad_browser.c b/swad_browser.c index 5eb97ffe..4b71f3f3 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -9332,10 +9332,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (InsShortName), "class=\"LT BT_LINK\""); Str_FreeGoToTitle (); - Lgo_DrawLogo (Hie_INS, - InsCod, - InsShortName, - 20,"BT_LINK LT"); + Lgo_DrawLogo (Hie_INS,InsCod,InsShortName, + "ICO20x20","LT BT_LINK"); HTM_TxtF (" %s",InsShortName); HTM_BUTTON_End (); Frm_EndForm (); @@ -9352,10 +9350,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (CtrShortName), "class=\"LT BT_LINK\""); Str_FreeGoToTitle (); - Lgo_DrawLogo (Hie_CTR, - CtrCod, - CtrShortName, - 20,"LT"); + Lgo_DrawLogo (Hie_CTR,CtrCod,CtrShortName, + "ICO20x20","LT"); HTM_TxtF (" %s",CtrShortName); HTM_BUTTON_End (); Frm_EndForm (); @@ -9372,10 +9368,8 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (DegShortName), "class=\"LT BT_LINK\""); Str_FreeGoToTitle (); - Lgo_DrawLogo (Hie_DEG, - DegCod, - DegShortName, - 20,"LT"); + Lgo_DrawLogo (Hie_DEG,DegCod,DegShortName, + "ICO20x20","LT"); HTM_TxtF (" %s",DegShortName); HTM_BUTTON_End (); Frm_EndForm (); diff --git a/swad_call_for_exam.c b/swad_call_for_exam.c index e39d4483..fdea9af1 100644 --- a/swad_call_for_exam.c +++ b/swad_call_for_exam.c @@ -955,7 +955,7 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams, Lgo_DrawLogo (Hie_INS, Gbl.Hierarchy.Node[Hie_INS].HieCod, Gbl.Hierarchy.Node[Hie_INS].FullName, - 64,NULL); + "ICO64x64",NULL); HTM_BR (); HTM_Txt (Gbl.Hierarchy.Node[Hie_INS].FullName); if (TypeViewCallForExam == Cfe_NORMAL_VIEW) diff --git a/swad_center.c b/swad_center.c index 9f9c4dbe..8c694ddb 100644 --- a/swad_center.c +++ b/swad_center.c @@ -193,14 +193,12 @@ void Ctr_DrawCenterLogoAndNameWithLink (struct Hie_Node *Ctr,Act_Action_t Action /***** Link to action *****/ HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Ctr->FullName), - "class=\"BT_LINK LT\""); + "class=\"LT BT_LINK\""); Str_FreeGoToTitle (); /***** Center logo and name *****/ - Lgo_DrawLogo (Hie_CTR, - Ctr->HieCod, - Ctr->ShrtName, - 16,ClassLogo); + Lgo_DrawLogo (Hie_CTR,Ctr->HieCod,Ctr->ShrtName, + "ICO16x16",ClassLogo); HTM_TxtF (" %s",Ctr->FullName); /***** End link *****/ @@ -794,10 +792,8 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) /* Center logo */ HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ctr->FullName); - Lgo_DrawLogo (Hie_CTR, - Ctr->HieCod, - Ctr->ShrtName, - 20,NULL); + Lgo_DrawLogo (Hie_CTR,Ctr->HieCod,Ctr->ShrtName, + "ICO20x20",NULL); HTM_TD_End (); /* Place */ @@ -1256,10 +1252,8 @@ static void Ctr_PutFormToCreateCenter (const struct Plc_Places *Places) /***** Center logo *****/ HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Ctr_EditingCtr->FullName); - Lgo_DrawLogo (Hie_CTR, - -1L, - "", - 20,NULL); + Lgo_DrawLogo (Hie_CTR,-1L,"", + "ICO20x20",NULL); HTM_TD_End (); /***** Place *****/ diff --git a/swad_center_config.c b/swad_center_config.c index a84767d9..9302f4cb 100644 --- a/swad_center_config.c +++ b/swad_center_config.c @@ -583,7 +583,7 @@ static void CtrCfg_Institution (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) Lgo_DrawLogo (Hie_INS, Gbl.Hierarchy.Node[Hie_INS].HieCod, Gbl.Hierarchy.Node[Hie_INS].ShrtName, - 20,"LM"); + "ICO20x20","LM"); HTM_NBSP (); HTM_Txt (Gbl.Hierarchy.Node[Hie_INS].FullName); diff --git a/swad_changelog.h b/swad_changelog.h index bfe72cc6..9ad3b798 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -633,10 +633,11 @@ 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.47.4 (2023-11-09)" -#define CSS_FILE "swad23.47.3.css" +#define Log_PLATFORM_VERSION "SWAD 23.48 (2023-11-23)" +#define CSS_FILE "swad23.48.css" #define JS_FILE "swad23.47.3.js" /* + Version 23.48: Nov 23, 2023 Responsive design in record cards. (335777 lines) Version 23.47.4: Nov 08, 2023 Fixed bug in program resources. (335581 lines) Version 23.47.3: Nov 08, 2023 Changes in infinite scroll in timeline. (335581 lines) Version 23.47.2: Nov 08, 2023 Changes in infinite scroll in timeline. (335566 lines) diff --git a/swad_chat.c b/swad_chat.c index 0fa7a8a8..577fb1a4 100644 --- a/swad_chat.c +++ b/swad_chat.c @@ -191,10 +191,8 @@ void Cht_ShowListOfAvailableChatRooms (void) Txt_HIERARCHY_SINGUL_Abc[Hie_DEG],Deg.ShrtName); Cht_WriteLinkToChat1 (ThisRoomCode,ThisRoomShrtName, ThisRoomFullName,1,IsLastItemInLevel); - Lgo_DrawLogo (Hie_DEG, - Deg.HieCod, - Deg.ShrtName, - 16,NULL); + Lgo_DrawLogo (Hie_DEG,Deg.HieCod,Deg.ShrtName, + "ICO16x16",NULL); Cht_WriteLinkToChat2 (ThisRoomCode,ThisRoomFullName); /* Get my courses in this degree from database */ diff --git a/swad_course.c b/swad_course.c index 773bbbab..87a6f00e 100644 --- a/swad_course.c +++ b/swad_course.c @@ -267,7 +267,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void) Lgo_DrawLogo (Hie_INS, Hie[Hie_INS].HieCod, Hie[Hie_INS].ShrtName, - 16,NULL); + "ICO16x16",NULL); HTM_TxtF (" %s",Hie[Hie_INS].ShrtName); HTM_BUTTON_End (); Frm_EndForm (); @@ -304,7 +304,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void) Lgo_DrawLogo (Hie_CTR, Hie[Hie_CTR].HieCod, Hie[Hie_CTR].ShrtName, - 16,NULL); + "ICO16x16",NULL); HTM_TxtF (" %s",Hie[Hie_CTR].ShrtName); HTM_BUTTON_End (); Frm_EndForm (); @@ -341,7 +341,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void) Lgo_DrawLogo (Hie_DEG, Hie[Hie_DEG].HieCod, Hie[Hie_DEG].ShrtName, - 16,NULL); + "ICO16x16",NULL); HTM_TxtF (" %s",Hie[Hie_DEG].ShrtName); HTM_BUTTON_End (); Frm_EndForm (); @@ -382,7 +382,7 @@ static void Crs_WriteListMyCoursesToSelectOne (void) Lgo_DrawLogo (Hie_CRS, Hie[Hie_CRS].HieCod, Hie[Hie_CRS].ShrtName, - 16,NULL); + "ICO16x16",NULL); HTM_DIV_Begin ("class=\"MY_CRS_TXT\""); HTM_TxtF (" %s",Hie[Hie_CRS].ShrtName); HTM_DIV_End (); @@ -2175,10 +2175,8 @@ static void Crs_WriteRowCrsData (unsigned NumCrs,MYSQL_ROW row,bool WriteColumnA HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (row[2]), "class=\"LT BT_LINK\""); Str_FreeGoToTitle (); - Lgo_DrawLogo (Hie_DEG, - Deg.HieCod, - Deg.ShrtName, - 20,"CT"); + Lgo_DrawLogo (Hie_DEG,Deg.HieCod,Deg.ShrtName, + "ICO20x20","CT"); HTM_TxtF (" %s (%s)",row[2],row[6]); HTM_BUTTON_End (); Frm_EndForm (); diff --git a/swad_course_config.c b/swad_course_config.c index d4183f5f..62cdee17 100644 --- a/swad_course_config.c +++ b/swad_course_config.c @@ -238,7 +238,7 @@ static void CrsCfg_Degree (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) Lgo_DrawLogo (Hie_DEG, Gbl.Hierarchy.Node[Hie_DEG].HieCod, Gbl.Hierarchy.Node[Hie_DEG].ShrtName, - 20,"LM"); + "ICO20x20","LM"); HTM_NBSP (); HTM_Txt (Gbl.Hierarchy.Node[Hie_DEG].FullName); if (ViewType == Vie_VIEW) diff --git a/swad_date.c b/swad_date.c index 7998b24b..f8f1ae9f 100644 --- a/swad_date.c +++ b/swad_date.c @@ -1004,93 +1004,86 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear, unsigned Day; unsigned NumDaysSelectedMonth; - /***** Begin table *****/ - HTM_TABLE_Begin (NULL); - HTM_TR_Begin (NULL); - if (asprintf (&FuncOnChange,"adjustDateForm('%s');",Id) < 0) - Err_NotEnoughMemoryExit (); + if (asprintf (&FuncOnChange,"adjustDateForm('%s');",Id) < 0) + Err_NotEnoughMemoryExit (); - /***** Year *****/ - HTM_TD_Begin ("class=\"CM\""); - HTM_SELECT_Begin (SubmitOnChange,FuncOnChange, - "id=\"%sYear\" name=\"%sYear\"" - " class=\"INPUT_%s\"%s", - Id,Id, - The_GetSuffix (), - Disabled ? " disabled=\"disabled\"" : - ""); - HTM_OPTION (HTM_Type_STRING,"0", - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "-"); - for (Year = FirstYear; - Year <= LastYear; - Year++) - HTM_OPTION (HTM_Type_UNSIGNED,&Year, - Year == DateSelected->Year ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "%u",Year); - HTM_SELECT_End (); - HTM_TD_End (); + /***** Year *****/ + // HTM_TD_Begin ("class=\"CM\""); + HTM_SELECT_Begin (SubmitOnChange,FuncOnChange, + "id=\"%sYear\" name=\"%sYear\"" + " class=\"INPUT_%s\"%s", + Id,Id, + The_GetSuffix (), + Disabled ? " disabled=\"disabled\"" : + ""); + HTM_OPTION (HTM_Type_STRING,"0", + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "-"); + for (Year = FirstYear; + Year <= LastYear; + Year++) + HTM_OPTION (HTM_Type_UNSIGNED,&Year, + Year == DateSelected->Year ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "%u",Year); + HTM_SELECT_End (); + // HTM_TD_End (); - /***** Month *****/ - HTM_TD_Begin ("class=\"CM\""); - HTM_SELECT_Begin (SubmitOnChange,FuncOnChange, - "id=\"%sMonth\" name=\"%sMonth\"" - " class=\"INPUT_%s\"%s", - Id,Id, - The_GetSuffix (), - Disabled ? " disabled=\"disabled\"" : - ""); - HTM_OPTION (HTM_Type_STRING,"0", - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "-"); - for (Month = 1; - Month <= 12; - Month++) - HTM_OPTION (HTM_Type_UNSIGNED,&Month, - Month == DateSelected->Month ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "%s",Txt_MONTHS_SMALL[Month - 1]); - HTM_SELECT_End (); - HTM_TD_End (); + /***** Month *****/ + // HTM_TD_Begin ("class=\"CM\""); + HTM_SELECT_Begin (SubmitOnChange,FuncOnChange, + "id=\"%sMonth\" name=\"%sMonth\"" + " class=\"INPUT_%s\"%s", + Id,Id, + The_GetSuffix (), + Disabled ? " disabled=\"disabled\"" : + ""); + HTM_OPTION (HTM_Type_STRING,"0", + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "-"); + for (Month = 1; + Month <= 12; + Month++) + HTM_OPTION (HTM_Type_UNSIGNED,&Month, + Month == DateSelected->Month ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "%s",Txt_MONTHS_SMALL[Month - 1]); + HTM_SELECT_End (); + // HTM_TD_End (); - free (FuncOnChange); + free (FuncOnChange); - /***** Day *****/ - HTM_TD_Begin ("class=\"CM\""); - HTM_SELECT_Begin (SubmitOnChange,NULL, - "id=\"%sDay\" name=\"%sDay\"" - " class=\"INPUT_%s\"%s", - Id,Id, - The_GetSuffix (), - Disabled ? " disabled=\"disabled\"" : - ""); - HTM_OPTION (HTM_Type_STRING,"0", - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "-"); - NumDaysSelectedMonth = (DateSelected->Month == 0) ? 31 : - ((DateSelected->Month == 2) ? Dat_GetNumDaysFebruary (DateSelected->Year) : - Dat_NumDaysMonth[DateSelected->Month]); - for (Day = 1; - Day <= NumDaysSelectedMonth; - Day++) - HTM_OPTION (HTM_Type_UNSIGNED,&Day, - Day == DateSelected->Day ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "%u",Day); - HTM_SELECT_End (); - HTM_TD_End (); - - /***** End table *****/ - HTM_TR_End (); - HTM_TABLE_End (); + /***** Day *****/ + // HTM_TD_Begin ("class=\"CM\""); + HTM_SELECT_Begin (SubmitOnChange,NULL, + "id=\"%sDay\" name=\"%sDay\"" + " class=\"INPUT_%s\"%s", + Id,Id, + The_GetSuffix (), + Disabled ? " disabled=\"disabled\"" : + ""); + HTM_OPTION (HTM_Type_STRING,"0", + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "-"); + NumDaysSelectedMonth = (DateSelected->Month == 0) ? 31 : + ((DateSelected->Month == 2) ? Dat_GetNumDaysFebruary (DateSelected->Year) : + Dat_NumDaysMonth[DateSelected->Month]); + for (Day = 1; + Day <= NumDaysSelectedMonth; + Day++) + HTM_OPTION (HTM_Type_UNSIGNED,&Day, + Day == DateSelected->Day ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "%u",Day); + HTM_SELECT_End (); + // HTM_TD_End (); } /*****************************************************************************/ diff --git a/swad_degree.c b/swad_degree.c index 1af709c0..5b2a5759 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -203,10 +203,8 @@ void Deg_DrawDegreeLogoAndNameWithLink (struct Hie_Node *Deg,Act_Action_t Action Str_FreeGoToTitle (); /***** Degree logo and name *****/ - Lgo_DrawLogo (Hie_DEG, - Deg->HieCod, - Deg->ShrtName, - 16,ClassLogo); + Lgo_DrawLogo (Hie_DEG,Deg->HieCod,Deg->ShrtName, + "ICO20x20",ClassLogo); HTM_TxtF (" %s",Deg->FullName); /***** End link *****/ @@ -378,10 +376,8 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) /* Degree logo */ HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Deg->FullName); - Lgo_DrawLogo (Hie_DEG, - Deg->HieCod, - Deg->ShrtName - ,20,NULL); + Lgo_DrawLogo (Hie_DEG,Deg->HieCod,Deg->ShrtName, + "ICO20x20",NULL); HTM_TD_End (); /* Degree short name and full name */ @@ -533,10 +529,8 @@ static void Deg_PutFormToCreateDegree (const struct DegTyp_DegTypes *DegTypes) /***** Degree logo *****/ HTM_TD_Begin ("title=\"%s\" class=\"HIE_LOGO\"",Deg_EditingDeg->FullName); - Lgo_DrawLogo (Hie_DEG, - -1L, - "", - 20,NULL); + Lgo_DrawLogo (Hie_DEG,-1L,"", + "ICO20x20",NULL); HTM_TD_End (); /***** Degree short name and full name *****/ diff --git a/swad_degree_config.c b/swad_degree_config.c index a7e01f31..8497264d 100644 --- a/swad_degree_config.c +++ b/swad_degree_config.c @@ -232,7 +232,7 @@ static void DegCfg_Center (Vie_ViewType_t ViewType,Frm_PutForm_t PutForm) Lgo_DrawLogo (Hie_CTR, Gbl.Hierarchy.Node[Hie_CTR].HieCod, Gbl.Hierarchy.Node[Hie_CTR].ShrtName, - 20,"LM"); + "ICO20x20","LM"); HTM_NBSP (); HTM_Txt (Gbl.Hierarchy.Node[Hie_CTR].FullName); if (ViewType == Vie_VIEW) diff --git a/swad_forum.c b/swad_forum.c index ed717dbc..0396d793 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -1782,24 +1782,18 @@ static void For_WriteLinkToForum (const struct For_Forums *Forums, break; case For_FORUM_INSTIT_USRS: case For_FORUM_INSTIT_TCHS: - Lgo_DrawLogo (Hie_INS, - Forum->HieCod, - ForumName, - 16,NULL); + Lgo_DrawLogo (Hie_INS,Forum->HieCod,ForumName, + "ICO16x16",NULL); break; case For_FORUM_CENTER_USRS: case For_FORUM_CENTER_TCHS: - Lgo_DrawLogo (Hie_CTR, - Forum->HieCod, - ForumName, - 16,NULL); + Lgo_DrawLogo (Hie_CTR,Forum->HieCod,ForumName, + "ICO16x16",NULL); break; case For_FORUM_DEGREE_USRS: case For_FORUM_DEGREE_TCHS: - Lgo_DrawLogo (Hie_DEG, - Forum->HieCod, - ForumName, - 16,NULL); + Lgo_DrawLogo (Hie_DEG,Forum->HieCod,ForumName, + "ICO16x16",NULL); break; case For_FORUM_COURSE_USRS: case For_FORUM_COURSE_TCHS: diff --git a/swad_hierarchy.c b/swad_hierarchy.c index ba273bd1..3f49338b 100644 --- a/swad_hierarchy.c +++ b/swad_hierarchy.c @@ -456,7 +456,7 @@ static void Hie_DrawLogo (void) Lgo_DrawLogo (LogoScope[Gbl.Hierarchy.Level], *LogoCode[Gbl.Hierarchy.Level], Gbl.Hierarchy.Node[Gbl.Hierarchy.Level].ShrtName, - 40,"TOP_LOGO"); + "ICO40x40","TOP_LOGO"); break; } } diff --git a/swad_hierarchy_config.c b/swad_hierarchy_config.c index 6e27c94d..03e84138 100644 --- a/swad_hierarchy_config.c +++ b/swad_hierarchy_config.c @@ -70,7 +70,7 @@ void HieCfg_Title (Hie_PutLink_t PutLink,Hie_Level_t Level) Lgo_DrawLogo (LevelLogo, Gbl.Hierarchy.Node[LevelLogo].HieCod, Gbl.Hierarchy.Node[LevelLogo].ShrtName, - 64,NULL); + "ICO64x64",NULL); HTM_BR (); HTM_Txt (Gbl.Hierarchy.Node[Level].FullName); diff --git a/swad_layout.c b/swad_layout.c index bfd7841d..c695c841 100644 --- a/swad_layout.c +++ b/swad_layout.c @@ -1515,7 +1515,7 @@ void Lay_WriteHeaderClassPhoto (Vie_ViewType_t ViewType) Lgo_DrawLogo (Hie_INS, Hie[Hie_INS].HieCod, Hie[Hie_INS].ShrtName, - 40,NULL); + "ICO40x40",NULL); if (ViewType == Vie_VIEW) HTM_A_End (); } @@ -1569,7 +1569,7 @@ void Lay_WriteHeaderClassPhoto (Vie_ViewType_t ViewType) Lgo_DrawLogo (Hie_DEG, Hie[Hie_DEG].HieCod, Hie[Hie_DEG].ShrtName, - 40,NULL); + "ICO40x40",NULL); if (ViewType == Vie_VIEW) HTM_A_End (); } diff --git a/swad_logo.c b/swad_logo.c index cf8867bf..2508cdc4 100644 --- a/swad_logo.c +++ b/swad_logo.c @@ -74,10 +74,8 @@ static void Lgo_PutIconToRemoveLogo (Act_Action_t ActionRem); /***************** Draw institution, center or degree logo *******************/ /*****************************************************************************/ -void Lgo_DrawLogo (Hie_Level_t Level, - long HieCod, - const char *AltText, - unsigned Size,const char *Class) +void Lgo_DrawLogo (Hie_Level_t Level,long HieCod,const char *AltText, + const char *IconClass,const char *Class) { static const char *HieIcon[Hie_NUM_LEVELS] = { @@ -171,9 +169,8 @@ void Lgo_DrawLogo (Hie_Level_t Level, Err_NotEnoughMemoryExit (); HTM_IMG (URL,Icon,AltText, - "class=\"ICO%ux%u" - "%s%s\"", - Size,Size, + "class=\"%s%s%s\"", + IconClass, ClassNotEmpty ? " " : "", ClassNotEmpty ? Class : @@ -183,9 +180,8 @@ void Lgo_DrawLogo (Hie_Level_t Level, } else HTM_IMG (Cfg_URL_ICON_PUBLIC,HieIcon[Level],AltText, - "class=\"ICO%ux%u ICO_%s_%s" - "%s%s\"", - Size,Size, + "class=\"%s ICO_%s_%s%s%s\"", + IconClass, Ico_GetPreffix (Ico_BLACK),The_GetSuffix (), ClassNotEmpty ? " " : "", diff --git a/swad_logo.h b/swad_logo.h index 4ab7ecbf..5762f6d2 100644 --- a/swad_logo.h +++ b/swad_logo.h @@ -27,10 +27,8 @@ /***************************** Public prototypes *****************************/ /*****************************************************************************/ -void Lgo_DrawLogo (Hie_Level_t Level, - long HieCod, - const char *AltText, - unsigned Size,const char *Class); +void Lgo_DrawLogo (Hie_Level_t Level,long HieCod,const char *AltText, + const char *IconClass,const char *Class); void Lgo_PutIconToChangeLogo (Hie_Level_t Level); void Lgo_RequestLogo (Hie_Level_t Level); void Lgo_ReceiveLogo (Hie_Level_t Level); diff --git a/swad_mail.c b/swad_mail.c index a99fd683..4ca6ec28 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -1020,24 +1020,24 @@ void Mai_ShowFormChangeMyEmail (bool IMustFillInEmail,bool IShouldConfirmEmail) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_Email; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Begin section *****/ HTM_SECTION_Begin (Mai_EMAIL_SECTION_ID); /***** Begin box *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxBegin (StrRecordWidth,Txt_Email, - Acc_PutLinkToRemoveMyAccount,NULL, - Hlp_PROFILE_Account,Box_NOT_CLOSABLE); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxBegin ("100%",Txt_Email, + Acc_PutLinkToRemoveMyAccount,NULL, + Hlp_PROFILE_Account,Box_NOT_CLOSABLE); - /***** Show form to change email *****/ - Mai_ShowFormChangeUsrEmail (Usr_ME, - IMustFillInEmail, - IShouldConfirmEmail); + /***** Show form to change email *****/ + Mai_ShowFormChangeUsrEmail (Usr_ME, + IMustFillInEmail, + IShouldConfirmEmail); - /***** End box *****/ - Box_BoxEnd (); + /***** End box *****/ + Box_BoxEnd (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); @@ -1051,24 +1051,24 @@ void Mai_ShowFormChangeOtherUsrEmail (void) { extern const char *Hlp_PROFILE_Account; extern const char *Txt_Email; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Begin section *****/ HTM_SECTION_Begin (Mai_EMAIL_SECTION_ID); /***** Begin box *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxBegin (StrRecordWidth,Txt_Email, - NULL,NULL, - Hlp_PROFILE_Account,Box_NOT_CLOSABLE); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxBegin ("100%",Txt_Email, + NULL,NULL, + Hlp_PROFILE_Account,Box_NOT_CLOSABLE); - /***** Show form to change email *****/ - Mai_ShowFormChangeUsrEmail (Usr_OTHER, - false, // IMustFillInEmail - false); // IShouldConfirmEmail + /***** Show form to change email *****/ + Mai_ShowFormChangeUsrEmail (Usr_OTHER, + false, // IMustFillInEmail + false); // IShouldConfirmEmail - /***** End box *****/ - Box_BoxEnd (); + /***** End box *****/ + Box_BoxEnd (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); diff --git a/swad_network.c b/swad_network.c index c70a4ce5..1c965f35 100644 --- a/swad_network.c +++ b/swad_network.c @@ -197,68 +197,68 @@ void Net_ShowFormMyWebsAndSocialNets (void) extern const char *Txt_Save_changes; Net_WebsAndSocialNetworks_t NumURL; char URL[Cns_MAX_BYTES_WWW + 1]; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; char StrName[32]; /***** Begin section *****/ HTM_SECTION_Begin (Net_MY_WEBS_ID); /***** Begin box *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxBegin (StrRecordWidth,Txt_Webs_social_networks, - Net_PutIconsWebsSocialNetworks,NULL, - Hlp_PROFILE_Webs,Box_NOT_CLOSABLE); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxBegin ("100%",Txt_Webs_social_networks, + Net_PutIconsWebsSocialNetworks,NULL, + Hlp_PROFILE_Webs,Box_NOT_CLOSABLE); - /***** Begin form *****/ - Frm_BeginFormAnchor (ActChgMyNet,Net_MY_WEBS_ID); + /***** Begin form *****/ + Frm_BeginFormAnchor (ActChgMyNet,Net_MY_WEBS_ID); - /***** Begin table *****/ - HTM_TABLE_BeginPadding (2); + /***** Begin table *****/ + HTM_TABLE_BeginWidePadding (2); - /***** List webs and social networks *****/ - for (NumURL = (Net_WebsAndSocialNetworks_t) 0; - NumURL <= (Net_WebsAndSocialNetworks_t) (Net_NUM_WEBS_AND_SOCIAL_NETWORKS - 1); - NumURL++) - { - /***** Get user's web / social network from database *****/ - Net_DB_GetURL (Gbl.Usrs.Me.UsrDat.UsrCod,NumURL,URL); + /***** List webs and social networks *****/ + for (NumURL = (Net_WebsAndSocialNetworks_t) 0; + NumURL <= (Net_WebsAndSocialNetworks_t) (Net_NUM_WEBS_AND_SOCIAL_NETWORKS - 1); + NumURL++) + { + /***** Get user's web / social network from database *****/ + Net_DB_GetURL (Gbl.Usrs.Me.UsrDat.UsrCod,NumURL,URL); - /***** Row for this web / social network *****/ - snprintf (StrName,sizeof (StrName),"URL%u",(unsigned) NumURL); - HTM_TR_Begin (NULL); + /***** Row for this web / social network *****/ + snprintf (StrName,sizeof (StrName),"URL%u",(unsigned) NumURL); + HTM_TR_Begin (NULL); - HTM_TD_Begin ("class=\"REC_C1_BOT LM\""); - HTM_LABEL_Begin ("for=\"%s\" class=\"FORM_IN_%s\"", - StrName,The_GetSuffix ()); - Ico_PutIcon (Net_WebsAndSocialNetworksIcons[NumURL],Ico_BLACK, - Net_WebsAndSocialNetworksTitle[NumURL], - "CONTEXT_OPT CONTEXT_ICO16x16"); - HTM_TxtF (" %s:",Net_WebsAndSocialNetworksTitle[NumURL]); - HTM_LABEL_End (); - HTM_TD_End (); + HTM_TD_Begin ("class=\"REC_C1_BOT LM\""); + HTM_LABEL_Begin ("for=\"%s\" class=\"FORM_IN_%s\"", + StrName,The_GetSuffix ()); + Ico_PutIcon (Net_WebsAndSocialNetworksIcons[NumURL],Ico_BLACK, + Net_WebsAndSocialNetworksTitle[NumURL], + "CONTEXT_OPT CONTEXT_ICO16x16"); + HTM_TxtF (" %s:",Net_WebsAndSocialNetworksTitle[NumURL]); + HTM_LABEL_End (); + HTM_TD_End (); - HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - HTM_INPUT_URL (StrName,URL,HTM_DONT_SUBMIT_ON_CHANGE, - "id=\"%s\"" - " class=\"REC_C2_BOT_INPUT INPUT_%s\"", - StrName, - The_GetSuffix ()); - HTM_TD_End (); + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + HTM_INPUT_URL (StrName,URL,HTM_DONT_SUBMIT_ON_CHANGE, + "id=\"%s\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"", + StrName, + The_GetSuffix ()); + HTM_TD_End (); - HTM_TR_End (); - } + HTM_TR_End (); + } - /***** End table *****/ - HTM_TABLE_End (); + /***** End table *****/ + HTM_TABLE_End (); - /***** Confirm button *****/ - Btn_PutConfirmButton (Txt_Save_changes); + /***** Confirm button *****/ + Btn_PutConfirmButton (Txt_Save_changes); - /***** End form *****/ - Frm_EndForm (); + /***** End form *****/ + Frm_EndForm (); - /***** End box *****/ - Box_BoxEnd (); + /***** End box *****/ + Box_BoxEnd (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); diff --git a/swad_nickname.c b/swad_nickname.c index ed987c71..6484698d 100644 --- a/swad_nickname.c +++ b/swad_nickname.c @@ -179,7 +179,6 @@ static void Nck_ShowFormChangeUsrNickname (Usr_MeOrOther_t MeOrOther, }; MYSQL_RES *mysql_res; MYSQL_ROW row; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; unsigned NumNicks; unsigned NumNick; char NickWithArr[Nck_MAX_BYTES_NICK_WITH_ARROBA + 1]; @@ -212,121 +211,123 @@ static void Nck_ShowFormChangeUsrNickname (Usr_MeOrOther_t MeOrOther, NumNicks = Nck_DB_GetUsrNicknames (&mysql_res,UsrDat[MeOrOther]->UsrCod); /***** Begin box *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxBegin (StrRecordWidth,Txt_Nickname, - Acc_PutLinkToRemoveMyAccount,NULL, - Hlp_PROFILE_Account,Box_NOT_CLOSABLE); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxBegin ("100%",Txt_Nickname, + Acc_PutLinkToRemoveMyAccount,NULL, + Hlp_PROFILE_Account,Box_NOT_CLOSABLE); - /***** Show possible alerts *****/ - Ale_ShowAlerts (Nck_NICKNAME_SECTION_ID); + /***** Show possible alerts *****/ + Ale_ShowAlerts (Nck_NICKNAME_SECTION_ID); - /***** Help message *****/ - if (IMustFillNickname) - Ale_ShowAlert (Ale_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_nickname); + /***** Help message *****/ + if (IMustFillNickname) + Ale_ShowAlert (Ale_WARNING,Txt_Before_going_to_any_other_option_you_must_fill_your_nickname); - /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + /***** Begin table *****/ + HTM_TABLE_BeginWidePadding (2); - /***** List nicknames *****/ - for (NumNick = 1; - NumNick <= NumNicks; - NumNick++) - { - /* Get nickname */ - row = mysql_fetch_row (mysql_res); - - if (NumNick == 1) + /***** List nicknames *****/ + for (NumNick = 1; + NumNick <= NumNicks; + NumNick++) { - /* The first nickname is the current one */ - HTM_TR_Begin (NULL); + /* Get nickname */ + row = mysql_fetch_row (mysql_res); - /* Label */ - Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Current_nickname); - - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT USR_ID\""); - } - else // NumNick >= 2 - { - if (NumNick == 2) + if (NumNick == 1) { + /* The first nickname is the current one */ HTM_TR_Begin (NULL); /* Label */ - Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Other_nicknames); + Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Current_nickname); /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT_%s\"", - The_GetSuffix ()); + HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT_STRONG_%s\"", + The_GetSuffix ()); + } + else // NumNick >= 2 + { + if (NumNick == 2) + { + HTM_TR_Begin (NULL); + + /* Label */ + Frm_LabelColumn ("REC_C1_BOT RT",NULL,Txt_Other_nicknames); + + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT_%s\"", + The_GetSuffix ()); + } + + /* Form to remove old nickname */ + Ico_PutContextualIconToRemove (ActNck[MeOrOther].Remove,Nck_NICKNAME_SECTION_ID, + FuncParsRemove[MeOrOther],row[0]); } - /* Form to remove old nickname */ - Ico_PutContextualIconToRemove (ActNck[MeOrOther].Remove,Nck_NICKNAME_SECTION_ID, - FuncParsRemove[MeOrOther],row[0]); - } + /* Nickname */ + HTM_TxtF ("@%s",row[0]); - /* Nickname */ - HTM_TxtF ("@%s",row[0]); + /* Link to QR code */ + if (NumNick == 1 && UsrDat[MeOrOther]->Nickname[0]) + QR_PutLinkToPrintQRCode (ActPrnUsrQR, + Usr_PutParOtherUsrCodEncrypted,UsrDat[MeOrOther]->EnUsrCod); - /* Link to QR code */ - if (NumNick == 1 && UsrDat[MeOrOther]->Nickname[0]) - QR_PutLinkToPrintQRCode (ActPrnUsrQR, - Usr_PutParOtherUsrCodEncrypted,UsrDat[MeOrOther]->EnUsrCod); - - /* Form to change the nickname */ - if (NumNick > 1) - { - HTM_BR (); - Frm_BeginFormAnchor (ActNck[MeOrOther].Change,Nck_NICKNAME_SECTION_ID); - if (MeOrOther == Usr_OTHER) - Usr_PutParUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EnUsrCod); - snprintf (NickWithArr,sizeof (NickWithArr),"@%s",row[0]); - Par_PutParString (NULL,"NewNick",NickWithArr); // Nickname - Btn_PutConfirmButtonInline (Txt_Use_this_nickname); - Frm_EndForm (); - } - - if (NumNick == 1 || - NumNick == NumNicks) - { - HTM_TD_End (); - HTM_TR_End (); - } - else - HTM_BR (); - } - - /***** Form to enter new nickname *****/ - HTM_TR_Begin (NULL); - - /* Label */ - Frm_LabelColumn ("REC_C1_BOT RT","NewNick", - NumNicks ? Txt_New_nickname : // A new nickname - Txt_Nickname); // The first nickname - - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT_%s\"", - The_GetSuffix ()); - Frm_BeginFormAnchor (ActNck[MeOrOther].Change,Nck_NICKNAME_SECTION_ID); - if (MeOrOther == Usr_OTHER) - Usr_PutParUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EnUsrCod); - snprintf (NickWithArr,sizeof (NickWithArr),"@%s", - UsrDat[MeOrOther]->Nickname); - HTM_INPUT_TEXT ("NewNick",1 + Nck_MAX_CHARS_NICK_WITHOUT_ARROBA, - NickWithArr,HTM_DONT_SUBMIT_ON_CHANGE, - "id=\"NewNick\" class=\"INPUT_%s\"" - " size=\"16\"", - The_GetSuffix ()); + /* Form to change the nickname */ + if (NumNick > 1) + { HTM_BR (); - Btn_PutCreateButtonInline (NumNicks ? Txt_Change_nickname : // I already have a nickname - Txt_Save_changes); // I have no nickname yet); - Frm_EndForm (); - HTM_TD_End (); + Frm_BeginFormAnchor (ActNck[MeOrOther].Change,Nck_NICKNAME_SECTION_ID); + if (MeOrOther == Usr_OTHER) + Usr_PutParUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EnUsrCod); + snprintf (NickWithArr,sizeof (NickWithArr),"@%s",row[0]); + Par_PutParString (NULL,"NewNick",NickWithArr); // Nickname + Btn_PutConfirmButtonInline (Txt_Use_this_nickname); + Frm_EndForm (); + } - HTM_TR_End (); + if (NumNick == 1 || + NumNick == NumNicks) + { + HTM_TD_End (); + HTM_TR_End (); + } + else + HTM_BR (); + } - /***** End table and box *****/ - Box_BoxTableEnd (); + /***** Form to enter new nickname *****/ + HTM_TR_Begin (NULL); + + /* Label */ + Frm_LabelColumn ("REC_C1_BOT RT","NewNick", + NumNicks ? Txt_New_nickname : // A new nickname + Txt_Nickname); // The first nickname + + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LT DAT_%s\"", + The_GetSuffix ()); + Frm_BeginFormAnchor (ActNck[MeOrOther].Change,Nck_NICKNAME_SECTION_ID); + if (MeOrOther == Usr_OTHER) + Usr_PutParUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EnUsrCod); + snprintf (NickWithArr,sizeof (NickWithArr),"@%s", + UsrDat[MeOrOther]->Nickname); + HTM_INPUT_TEXT ("NewNick",1 + Nck_MAX_CHARS_NICK_WITHOUT_ARROBA, + NickWithArr,HTM_DONT_SUBMIT_ON_CHANGE, + "id=\"NewNick\" class=\"INPUT_%s\"" + " size=\"16\"", + The_GetSuffix ()); + HTM_BR (); + Btn_PutCreateButtonInline (NumNicks ? Txt_Change_nickname : // I already have a nickname + Txt_Save_changes); // I have no nickname yet); + Frm_EndForm (); + HTM_TD_End (); + + HTM_TR_End (); + + /***** End table and box *****/ + Box_BoxTableEnd (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); diff --git a/swad_password.c b/swad_password.c index 2104102d..d41fde69 100644 --- a/swad_password.c +++ b/swad_password.c @@ -579,7 +579,6 @@ void Pwd_ShowFormChgMyPwd (void) extern const char *Txt_Current_password; extern const char *Txt_Change_password; extern const char *Txt_Set_password; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; bool IHaveAPasswordInDB = (bool) Gbl.Usrs.Me.UsrDat.Password[0]; /***** Begin section *****/ @@ -589,59 +588,60 @@ void Pwd_ShowFormChgMyPwd (void) Frm_BeginFormAnchor (ActChgMyPwd,Pwd_PASSWORD_SECTION_ID); /***** Begin box *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxBegin (StrRecordWidth,Txt_Password, - NULL,NULL, - Hlp_PROFILE_Password,Box_NOT_CLOSABLE); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxBegin ("100%",Txt_Password, + NULL,NULL, + Hlp_PROFILE_Password,Box_NOT_CLOSABLE); - /***** Show possible alerts *****/ - Ale_ShowAlerts (Pwd_PASSWORD_SECTION_ID); + /***** Show possible alerts *****/ + Ale_ShowAlerts (Pwd_PASSWORD_SECTION_ID); - /***** Help message *****/ - if (!IHaveAPasswordInDB) // If I don't have a password in database... - Ale_ShowAlert (Ale_WARNING,Txt_Before_going_to_any_other_option_you_must_create_your_password); - else if (Gbl.Usrs.Me.LoginPlainPassword[0]) - { - if (!Pwd_FastCheckIfPasswordSeemsGood (Gbl.Usrs.Me.LoginPlainPassword)) - Ale_ShowAlert (Ale_WARNING,Txt_Your_password_is_not_secure_enough); - } + /***** Help message *****/ + if (!IHaveAPasswordInDB) // If I don't have a password in database... + Ale_ShowAlert (Ale_WARNING,Txt_Before_going_to_any_other_option_you_must_create_your_password); + else if (Gbl.Usrs.Me.LoginPlainPassword[0]) + { + if (!Pwd_FastCheckIfPasswordSeemsGood (Gbl.Usrs.Me.LoginPlainPassword)) + Ale_ShowAlert (Ale_WARNING,Txt_Your_password_is_not_secure_enough); + } - /***** Begin table *****/ - HTM_TABLE_BeginWidePadding (2); + /***** Begin table *****/ + HTM_TABLE_BeginWidePadding (2); - /***** Current password *****/ - if (IHaveAPasswordInDB) // If I have a password in database... - { + /***** Current password *****/ + if (IHaveAPasswordInDB) // If I have a password in database... + { + HTM_TR_Begin (NULL); + + /* Label */ + Frm_LabelColumn ("REC_C1_BOT RM","UsrPwd",Txt_Current_password); + + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + HTM_INPUT_PASSWORD ("UsrPwd",NULL,"off",true, + "id=\"UsrPwd\" class=\"INPUT_%s\"", + The_GetSuffix ()); + HTM_TD_End (); + + HTM_TR_End (); + } + + /***** Help message *****/ HTM_TR_Begin (NULL); - - /* Label */ - Frm_LabelColumn ("REC_C1_BOT RM","UsrPwd",Txt_Current_password); - - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - HTM_INPUT_PASSWORD ("UsrPwd",NULL,"off",true, - "id=\"UsrPwd\" class=\"INPUT_%s\"", - The_GetSuffix ()); + HTM_TD_Begin ("colspan=\"2\""); + Ale_ShowAlert (Ale_INFO,Txt_Your_password_must_be_at_least_X_characters_and_can_not_contain_spaces_, + Pwd_MIN_CHARS_PLAIN_PASSWORD); HTM_TD_End (); - HTM_TR_End (); - } - /***** Help message *****/ - HTM_TR_Begin (NULL); - HTM_TD_Begin ("colspan=\"2\""); - Ale_ShowAlert (Ale_INFO,Txt_Your_password_must_be_at_least_X_characters_and_can_not_contain_spaces_, - Pwd_MIN_CHARS_PLAIN_PASSWORD); - HTM_TD_End (); - HTM_TR_End (); + /***** New password *****/ + Pwd_PutFormToGetNewPasswordTwice (); - /***** New password *****/ - Pwd_PutFormToGetNewPasswordTwice (); - - /***** End table, send button and end box *****/ - Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON, - IHaveAPasswordInDB ? Txt_Change_password : - Txt_Set_password); + /***** End table, send button and end box *****/ + Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON, + IHaveAPasswordInDB ? Txt_Change_password : + Txt_Set_password); + HTM_DIV_End (); /***** End form *****/ Frm_EndForm (); diff --git a/swad_photo.c b/swad_photo.c index 3db18c38..ce544b45 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -2265,7 +2265,7 @@ static void Pho_ShowOrPrintListDegrees (struct Pho_DegPhotos *DegPhotos, Lgo_DrawLogo (Hie_DEG, Deg.HieCod, Deg.ShrtName, - 20,"CT"); + "ICO20x20","CT"); HTM_TxtF (" %s",Deg.FullName); } HTM_TD_End (); diff --git a/swad_profile.c b/swad_profile.c index c04b7bac..49284d8f 100644 --- a/swad_profile.c +++ b/swad_profile.c @@ -387,56 +387,61 @@ void Prf_ShowDetailsUserProfile (const struct Usr_Data *UsrDat) /***** Get figures *****/ Prf_GetUsrFigures (UsrDat->UsrCod,&UsrFigures); - /***** Left list *****/ - /* Begin left list */ - HTM_DIV_Begin ("class=\"PRF_FIG_LEFT_CONT\""); - HTM_UL_Begin ("class=\"PRF_FIG_UL DAT_STRONG_%s NOWRAP\"", - The_GetSuffix ()); + /***** Container *****/ + HTM_DIV_Begin ("class=\"PRF_FIG_CONT\""); - /* Time since first click */ - Prf_ShowTimeSinceFirstClick (UsrDat,&UsrFigures); - - /* Number of courses in which the user has a role */ - for (Role = Rol_TCH; - Role >= Rol_STD; - Role--) - Prf_ShowNumCrssWithRole (UsrDat,Role); - - /* Number of files currently published */ - Prf_ShowNumFilesCurrentlyPublished (UsrDat); - - /* End left list */ - HTM_UL_End (); - HTM_DIV_End (); - - /***** Right list *****/ - HTM_DIV_Begin ("class=\"PRF_FIG_RIGHT_CONT\""); - - UsrIsBannedFromRanking = Prf_DB_CheckIfUsrBanned (UsrDat->UsrCod); - if (!UsrIsBannedFromRanking) - { - /* Begin right list */ + /***** Left list *****/ + /* Begin left list */ + HTM_DIV_Begin ("class=\"PRF_FIG_LEFT_RIGHT\""); HTM_UL_Begin ("class=\"PRF_FIG_UL DAT_STRONG_%s NOWRAP\"", - The_GetSuffix ()); + The_GetSuffix ()); - /* Number of clicks */ - Prf_ShowNumClicks (UsrDat,&UsrFigures); + /* Time since first click */ + Prf_ShowTimeSinceFirstClick (UsrDat,&UsrFigures); - /* Number of file views */ - Prf_ShowNumFileViews (UsrDat,&UsrFigures); + /* Number of courses in which the user has a role */ + for (Role = Rol_TCH; + Role >= Rol_STD; + Role--) + Prf_ShowNumCrssWithRole (UsrDat,Role); - /* Number of timeline publications */ - Prf_ShowNumTimelinePubs (UsrDat,&UsrFigures); + /* Number of files currently published */ + Prf_ShowNumFilesCurrentlyPublished (UsrDat); - /* Number of posts in forums */ - Prf_ShowNumForumPosts (UsrDat,&UsrFigures); - - /* Number of messages sent */ - Prf_ShowNumMessagesSent (UsrDat,&UsrFigures); - - /* End right list */ + /* End left list */ HTM_UL_End (); - } + HTM_DIV_End (); + + /***** Right list *****/ + HTM_DIV_Begin ("class=\"PRF_FIG_LEFT_RIGHT\""); + + UsrIsBannedFromRanking = Prf_DB_CheckIfUsrBanned (UsrDat->UsrCod); + if (!UsrIsBannedFromRanking) + { + /* Begin right list */ + HTM_UL_Begin ("class=\"PRF_FIG_UL DAT_STRONG_%s NOWRAP\"", + The_GetSuffix ()); + + /* Number of clicks */ + Prf_ShowNumClicks (UsrDat,&UsrFigures); + + /* Number of file views */ + Prf_ShowNumFileViews (UsrDat,&UsrFigures); + + /* Number of timeline publications */ + Prf_ShowNumTimelinePubs (UsrDat,&UsrFigures); + + /* Number of posts in forums */ + Prf_ShowNumForumPosts (UsrDat,&UsrFigures); + + /* Number of messages sent */ + Prf_ShowNumMessagesSent (UsrDat,&UsrFigures); + + /* End right list */ + HTM_UL_End (); + } + + HTM_DIV_End (); HTM_DIV_End (); } diff --git a/swad_record.c b/swad_record.c index 0dcd2d4c..5e0e4942 100644 --- a/swad_record.c +++ b/swad_record.c @@ -149,6 +149,7 @@ static void Rec_ShowEmail (struct Usr_Data *UsrDat); static void Rec_ShowUsrIDs (struct Usr_Data *UsrDat,const char *Anchor); static void Rec_ShowRole (struct Usr_Data *UsrDat, Rec_SharedRecordViewType_t TypeOfView); +static void Rec_ShowFormSex (struct Usr_Data *UsrDat,Usr_Sex_t Sex); static void Rec_ShowSurname1 (struct Usr_Data *UsrDat,Vie_ViewType_t ViewType); static void Rec_ShowSurname2 (struct Usr_Data *UsrDat,Vie_ViewType_t ViewType); static void Rec_ShowFirstName (struct Usr_Data *UsrDat,Vie_ViewType_t ViewType); @@ -172,6 +173,7 @@ static void Rec_WriteLinkToDataProtectionClause (void); static void Rec_GetUsrExtraDataFromRecordForm (struct Usr_Data *UsrDat); static void Rec_GetUsrCommentsFromForm (struct Usr_Data *UsrDat); +static void Rec_ShowAlertsIfNotFilled (bool IAmATeacher); static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher); /*****************************************************************************/ @@ -1008,7 +1010,8 @@ static void Rec_ShowRecordOneStdCrs (void) /***** Shared record *****/ HTM_DIV_Begin ("class=\"REC_LEFT\""); - Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat,NULL); + Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST, + &Gbl.Usrs.Other.UsrDat,NULL); HTM_DIV_End (); /***** Record of the student in the course *****/ @@ -1137,7 +1140,8 @@ static void Rec_ListRecordsStds (Rec_SharedRecordViewType_t ShaTypeOfView, /* Shared record */ HTM_DIV_Begin ("class=\"REC_LEFT\""); - Rec_ShowSharedUsrRecord (ShaTypeOfView,&UsrDat,RecordSectionId); + Rec_ShowSharedUsrRecord (ShaTypeOfView, + &UsrDat,RecordSectionId); HTM_DIV_End (); /* Record of the student in the course */ @@ -1198,12 +1202,8 @@ static void Rec_ShowRecordOneTchCrs (void) extern const char *Hlp_USERS_Teachers_timetable; extern const char *Txt_TIMETABLE_TYPES[Tmt_NUM_TIMETABLE_TYPES]; struct Tmt_Timetable Timetable; - char Width[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; bool ShowOfficeHours; - /***** Width for office hours *****/ - snprintf (Width,sizeof (Width),"%upx",Rec_RECORD_WIDTH); - /***** Get if teacher has accepted enrolment in current course *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -1237,7 +1237,8 @@ static void Rec_ShowRecordOneTchCrs (void) /***** Shared record *****/ HTM_DIV_Begin ("class=\"REC_LEFT\""); - Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST,&Gbl.Usrs.Other.UsrDat,NULL); + Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_LIST, + &Gbl.Usrs.Other.UsrDat,NULL); HTM_DIV_End (); /***** Office hours *****/ @@ -1245,7 +1246,7 @@ static void Rec_ShowRecordOneTchCrs (void) { HTM_DIV_Begin ("class=\"REC_RIGHT\""); Timetable.Type = Tmt_TUTORING_TIMETABLE; - Box_BoxBegin (Width,Txt_TIMETABLE_TYPES[Timetable.Type], + Box_BoxBegin ("100%",Txt_TIMETABLE_TYPES[Timetable.Type], NULL,NULL, Hlp_USERS_Teachers_timetable,Box_NOT_CLOSABLE); Tmt_ShowTimeTable (&Timetable,Gbl.Usrs.Other.UsrDat.UsrCod); @@ -1283,14 +1284,10 @@ static void Rec_ListRecordsTchs (Rec_SharedRecordViewType_t TypeOfView) struct Usr_Data UsrDat; char RecordSectionId[32]; bool ShowOfficeHours; - char Width[Cns_MAX_DECIMAL_DIGITS_UINT + 2 + 1]; /***** Get list of selected users if not already got *****/ Usr_GetListsSelectedEncryptedUsrsCods (&Gbl.Usrs.Selected); - /***** Width for office hours *****/ - snprintf (Width,sizeof (Width),"%upx",Rec_RECORD_WIDTH); - /***** Assign users listing type depending on current action *****/ Gbl.Usrs.Listing.RecsUsrs = Rec_RECORD_USERS_TEACHERS; @@ -1366,7 +1363,7 @@ static void Rec_ListRecordsTchs (Rec_SharedRecordViewType_t TypeOfView) { HTM_DIV_Begin ("class=\"REC_RIGHT\""); Timetable.Type = Tmt_TUTORING_TIMETABLE; - Box_BoxBegin (Width,Txt_TIMETABLE_TYPES[Timetable.Type], + Box_BoxBegin ("100%",Txt_TIMETABLE_TYPES[Timetable.Type], NULL,NULL, Hlp_USERS_Teachers_timetable,Box_NOT_CLOSABLE); Tmt_ShowTimeTable (&Timetable,UsrDat.UsrCod); @@ -1582,7 +1579,6 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, [Rec_CRS_PRINT_ONE_RECORD ] = NULL, [Rec_CRS_PRINT_SEVERAL_RECORDS ] = NULL, }; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; bool ICanEdit = false; unsigned NumField; MYSQL_RES *mysql_res; @@ -1647,8 +1643,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, } /***** Begin box and table *****/ - snprintf (StrRecordWidth,sizeof (StrRecordWidth),"%upx",Rec_RECORD_WIDTH); - Box_BoxTableBegin (StrRecordWidth,NULL, + Box_BoxTableBegin ("100%",NULL, NULL,NULL, Rec_RecordHelp[TypeOfView],Box_NOT_CLOSABLE,2); @@ -1662,7 +1657,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, Lgo_DrawLogo (Hie_DEG, Gbl.Hierarchy.Node[Hie_DEG].HieCod, Gbl.Hierarchy.Node[Hie_DEG].ShrtName, - Rec_DEGREE_LOGO_SIZE,NULL); + "ICO64x64",NULL); HTM_TD_End (); HTM_TD_Begin ("class=\"REC_HEAD CM\""); @@ -1926,7 +1921,8 @@ static bool Rec_CheckIfICanEditField (Rec_VisibilityRecordFields_t Visibility) void Rec_ShowFormSignUpInCrsWithMySharedRecord (void) { /***** Show the form *****/ - Rec_ShowSharedUsrRecord (Rec_SHA_SIGN_UP_IN_CRS_FORM,&Gbl.Usrs.Me.UsrDat,NULL); + Rec_ShowSharedUsrRecord (Rec_SHA_SIGN_UP_IN_CRS_FORM, + &Gbl.Usrs.Me.UsrDat,NULL); } /*****************************************************************************/ @@ -2028,7 +2024,6 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView, [Rol_NET ] = Hlp_USERS_Teachers_shared_record_card, [Rol_TCH ] = Hlp_USERS_Teachers_shared_record_card, }; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; Usr_MeOrOther_t MeOrOther; bool IAmLoggedAsTeacherOrSysAdm; bool CountryForm; @@ -2095,195 +2090,196 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView, Ins_GetInstitDataByCod (&Ins); /***** Begin box and table *****/ - sprintf (StrRecordWidth,"%upx",Rec_RECORD_WIDTH); Rec_Record.UsrDat = UsrDat; Rec_Record.TypeOfView = TypeOfView; - Box_BoxTableBegin (StrRecordWidth,NULL, - TypeOfView == Rec_SHA_OTHER_NEW_USR_FORM ? NULL : // New user ==> don't put icons - Rec_PutIconsCommands,NULL, - Rec_RecordHelp[TypeOfView],Box_NOT_CLOSABLE,2); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxTableBegin ("100%",NULL, + TypeOfView == Rec_SHA_OTHER_NEW_USR_FORM ? NULL : // New user ==> don't put icons + Rec_PutIconsCommands,NULL, + Rec_RecordHelp[TypeOfView],Box_NOT_CLOSABLE,2); - /***** Institution and user's photo *****/ - HTM_TR_Begin (NULL); - Rec_ShowInstitutionInHead (&Ins,PutFormLinks); - Rec_ShowPhoto (UsrDat); - HTM_TR_End (); - - /***** Full name *****/ - HTM_TR_Begin (NULL); - Rec_ShowFullName (UsrDat); - HTM_TR_End (); - - /***** User's nickname *****/ - HTM_TR_Begin (NULL); - Rec_ShowNickname (UsrDat,PutFormLinks); - HTM_TR_End (); - - /***** User's country, web and social networks *****/ - HTM_TR_Begin (NULL); - Rec_ShowCountryInHead (UsrDat,ShowData); - Rec_ShowWebsAndSocialNets (UsrDat,TypeOfView); - HTM_TR_End (); - - if (ShowIDRows || - ShowAddressRows || - ShowTeacherRows) - { + /***** Institution and user's photo *****/ HTM_TR_Begin (NULL); + Rec_ShowInstitutionInHead (&Ins,PutFormLinks); + Rec_ShowPhoto (UsrDat); + HTM_TR_End (); - HTM_TD_Begin ("colspan=\"3\""); + /***** Full name *****/ + HTM_TR_Begin (NULL); + Rec_ShowFullName (UsrDat); + HTM_TR_End (); - /***** Show email and user's IDs *****/ - if (ShowIDRows) - { - HTM_TABLE_BeginWidePadding (2); + /***** User's nickname *****/ + HTM_TR_Begin (NULL); + Rec_ShowNickname (UsrDat,PutFormLinks); + HTM_TR_End (); - /* Show email */ - Rec_ShowEmail (UsrDat); + /***** User's country, web and social networks *****/ + HTM_TR_Begin (NULL); + Rec_ShowCountryInHead (UsrDat,ShowData); + Rec_ShowWebsAndSocialNets (UsrDat,TypeOfView); + HTM_TR_End (); - /* Show user's IDs */ - Rec_ShowUsrIDs (UsrDat,Anchor); + if (ShowIDRows || + ShowAddressRows || + ShowTeacherRows) + { + HTM_TR_Begin (NULL); - HTM_TABLE_End (); - } - - /***** Begin form *****/ - switch (TypeOfView) - { - case Rec_SHA_SIGN_UP_IN_CRS_FORM: - Frm_BeginForm (ActSignUp); - break; - case Rec_SHA_MY_RECORD_FORM: - Frm_BeginForm (ActChgMyData); - break; - case Rec_SHA_OTHER_EXISTING_USR_FORM: - switch (Gbl.Action.Act) - { - case ActReqMdfStd: - NextAction = ActUpdStd; - break; - case ActReqMdfNET: - NextAction = ActUpdNET; - break; - case ActReqMdfTch: - NextAction = ActUpdTch; - break; - default: - NextAction = ActUpdOth; - break; - } - Frm_BeginForm (NextAction); - Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod); // Existing user - break; - case Rec_SHA_OTHER_NEW_USR_FORM: - switch (Gbl.Action.Act) - { - case ActReqMdfStd: - NextAction = ActCreStd; - break; - case ActReqMdfNET: - NextAction = ActCreNET; - break; - case ActReqMdfTch: - NextAction = ActCreTch; - break; - default: - NextAction = ActCreOth; - break; - } - Frm_BeginForm (NextAction); - ID_PutParOtherUsrIDPlain (); // New user - break; - default: - break; - } - - HTM_TABLE_BeginWidePadding (2); + HTM_TD_Begin ("colspan=\"3\""); + /***** Show email and user's IDs *****/ if (ShowIDRows) { - /***** Role or sex *****/ - Rec_ShowRole (UsrDat,TypeOfView); + HTM_TABLE_BeginWidePadding (2); - /***** Name *****/ - Rec_ShowSurname1 (UsrDat,ViewType); - Rec_ShowSurname2 (UsrDat,ViewType); - Rec_ShowFirstName (UsrDat,ViewType); + /* Show email */ + Rec_ShowEmail (UsrDat); - /***** Country *****/ - if (CountryForm) - Rec_ShowCountry (UsrDat,ViewType); + /* Show user's IDs */ + Rec_ShowUsrIDs (UsrDat,Anchor); + + HTM_TABLE_End (); } - /***** Address rows *****/ - if (ShowAddressRows) + /***** Begin form *****/ + switch (TypeOfView) { - /***** Date of birth *****/ - Rec_ShowDateOfBirth (UsrDat,ShowData,ViewType); - - /***** Phones *****/ - Rec_ShowPhone (UsrDat,ShowData,ViewType,0); - Rec_ShowPhone (UsrDat,ShowData,ViewType,1); - - /***** User's comments *****/ - Rec_ShowComments (UsrDat,ShowData,ViewType); - } - - /***** Teacher's rows *****/ - if (ShowTeacherRows) - Rec_ShowTeacherRows (UsrDat,&Ins,ShowData); - - HTM_TABLE_End (); - - /***** Button and end form *****/ - switch (TypeOfView) - { - case Rec_SHA_SIGN_UP_IN_CRS_FORM: - Btn_PutConfirmButton (Txt_Sign_up); - Frm_EndForm (); - break; - case Rec_SHA_MY_RECORD_FORM: - Btn_PutConfirmButton (Txt_Save_changes); - Frm_EndForm (); - break; - case Rec_SHA_OTHER_NEW_USR_FORM: - if (Gbl.Crs.Grps.NumGrps) // This course has groups? - Grp_ShowLstGrpsToChgOtherUsrsGrps (UsrDat->UsrCod); - Btn_PutConfirmButton (Txt_Register); - Frm_EndForm (); - break; - case Rec_SHA_OTHER_EXISTING_USR_FORM: - /***** Show list of groups to register/remove me/user *****/ - if (Gbl.Crs.Grps.NumGrps) // This course has groups? - switch (MeOrOther) + case Rec_SHA_SIGN_UP_IN_CRS_FORM: + Frm_BeginForm (ActSignUp); + break; + case Rec_SHA_MY_RECORD_FORM: + Frm_BeginForm (ActChgMyData); + break; + case Rec_SHA_OTHER_EXISTING_USR_FORM: + switch (Gbl.Action.Act) { - case Usr_ME: - // Don't show groups if I don't belong to course - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - Grp_ShowLstGrpsToChgMyGrps (); + case ActReqMdfStd: + NextAction = ActUpdStd; + break; + case ActReqMdfNET: + NextAction = ActUpdNET; + break; + case ActReqMdfTch: + NextAction = ActUpdTch; break; - case Usr_OTHER: default: - Grp_ShowLstGrpsToChgOtherUsrsGrps (UsrDat->UsrCod); + NextAction = ActUpdOth; break; } + Frm_BeginForm (NextAction); + Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod); // Existing user + break; + case Rec_SHA_OTHER_NEW_USR_FORM: + switch (Gbl.Action.Act) + { + case ActReqMdfStd: + NextAction = ActCreStd; + break; + case ActReqMdfNET: + NextAction = ActCreNET; + break; + case ActReqMdfTch: + NextAction = ActCreTch; + break; + default: + NextAction = ActCreOth; + break; + } + Frm_BeginForm (NextAction); + ID_PutParOtherUsrIDPlain (); // New user + break; + default: + break; + } - /***** Which action, register or removing? *****/ - if (Enr_PutActionsRegRemOneUsr (MeOrOther)) - Btn_PutConfirmButton (Txt_Confirm); + HTM_TABLE_BeginWidePadding (2); - Frm_EndForm (); - break; - default: - break; - } + if (ShowIDRows) + { + /***** Role or sex *****/ + Rec_ShowRole (UsrDat,TypeOfView); - HTM_TD_End (); - HTM_TR_End (); - } + /***** Name *****/ + Rec_ShowSurname1 (UsrDat,ViewType); + Rec_ShowSurname2 (UsrDat,ViewType); + Rec_ShowFirstName (UsrDat,ViewType); - /***** End table and box *****/ - Box_BoxTableEnd (); + /***** Country *****/ + if (CountryForm) + Rec_ShowCountry (UsrDat,ViewType); + } + + /***** Address rows *****/ + if (ShowAddressRows) + { + /***** Date of birth *****/ + Rec_ShowDateOfBirth (UsrDat,ShowData,ViewType); + + /***** Phones *****/ + Rec_ShowPhone (UsrDat,ShowData,ViewType,0); + Rec_ShowPhone (UsrDat,ShowData,ViewType,1); + + /***** User's comments *****/ + Rec_ShowComments (UsrDat,ShowData,ViewType); + } + + /***** Teacher's rows *****/ + if (ShowTeacherRows) + Rec_ShowTeacherRows (UsrDat,&Ins,ShowData); + + HTM_TABLE_End (); + + /***** Button and end form *****/ + switch (TypeOfView) + { + case Rec_SHA_SIGN_UP_IN_CRS_FORM: + Btn_PutConfirmButton (Txt_Sign_up); + Frm_EndForm (); + break; + case Rec_SHA_MY_RECORD_FORM: + Btn_PutConfirmButton (Txt_Save_changes); + Frm_EndForm (); + break; + case Rec_SHA_OTHER_NEW_USR_FORM: + if (Gbl.Crs.Grps.NumGrps) // This course has groups? + Grp_ShowLstGrpsToChgOtherUsrsGrps (UsrDat->UsrCod); + Btn_PutConfirmButton (Txt_Register); + Frm_EndForm (); + break; + case Rec_SHA_OTHER_EXISTING_USR_FORM: + /***** Show list of groups to register/remove me/user *****/ + if (Gbl.Crs.Grps.NumGrps) // This course has groups? + switch (MeOrOther) + { + case Usr_ME: + // Don't show groups if I don't belong to course + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + Grp_ShowLstGrpsToChgMyGrps (); + break; + case Usr_OTHER: + default: + Grp_ShowLstGrpsToChgOtherUsrsGrps (UsrDat->UsrCod); + break; + } + + /***** Which action, register or removing? *****/ + if (Enr_PutActionsRegRemOneUsr (MeOrOther)) + Btn_PutConfirmButton (Txt_Confirm); + + Frm_EndForm (); + break; + default: + break; + } + + HTM_TD_End (); + HTM_TR_End (); + } + + /***** End table and box *****/ + Box_BoxTableEnd (); + HTM_DIV_End (); } /*****************************************************************************/ @@ -2540,10 +2536,8 @@ static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins, ParCod_PutPar (ParCod_Ins,Ins->HieCod); HTM_BUTTON_Submit_Begin (Ins->FullName,"class=\"BT_LINK\""); } - Lgo_DrawLogo (Hie_INS, - Ins->HieCod, - Ins->ShrtName, - Rec_INSTITUTION_LOGO_SIZE,NULL); + Lgo_DrawLogo (Hie_INS,Ins->HieCod,Ins->ShrtName, + "ICO",NULL); if (PutFormLinks == Frm_PUT_FORM) { HTM_BUTTON_End (); @@ -2561,7 +2555,7 @@ static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins, { Frm_BeginFormGoTo (ActSeeInsInf); ParCod_PutPar (ParCod_Ins,Ins->HieCod); - HTM_BUTTON_Submit_Begin (Ins->FullName,"class=\"BT_LINK\""); + HTM_BUTTON_Submit_Begin (Ins->FullName,"class=\"LM BT_LINK\""); } HTM_Txt (Ins->FullName); if (PutFormLinks == Frm_PUT_FORM) @@ -2579,18 +2573,9 @@ static void Rec_ShowInstitutionInHead (struct Hie_Node *Ins, static void Rec_ShowPhoto (struct Usr_Data *UsrDat) { - static const char *ClassPhoto[PhoSha_NUM_SHAPES] = - { - [PhoSha_SHAPE_CIRCLE ] = "PHOTOR186x248", - [PhoSha_SHAPE_ELLIPSE ] = "PHOTOR186x248", - [PhoSha_SHAPE_OVAL ] = "PHOTOR186x248", - [PhoSha_SHAPE_RECTANGLE] = "PHOTOR186x248", - }; - - /***** User's photo *****/ HTM_TD_Begin ("rowspan=\"3\" class=\"REC_C3_TOP CT\""); Pho_ShowUsrPhotoIfAllowed (UsrDat, - ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM); + "PHOTO_REC",Pho_ZOOM); HTM_TD_End (); } @@ -2751,10 +2736,8 @@ static void Rec_ShowUsrIDs (struct Usr_Data *UsrDat,const char *Anchor) static void Rec_ShowRole (struct Usr_Data *UsrDat, Rec_SharedRecordViewType_t TypeOfView) { - extern const char *Usr_StringsSexIcons[Usr_NUM_SEXS]; extern const char *Txt_Role; extern const char *Txt_Sex; - extern const char *Txt_SEX_SINGULAR_Abc[Usr_NUM_SEXS]; extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; bool RoleForm = (TypeOfView == Rec_SHA_SIGN_UP_IN_CRS_FORM || TypeOfView == Rec_SHA_OTHER_EXISTING_USR_FORM || @@ -2763,7 +2746,6 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat, Rol_Role_t DefaultRoleInForm; Rol_Role_t Role; unsigned RoleUnsigned; - Usr_Sex_t Sex; char *Label; HTM_TR_Begin (NULL); @@ -3001,19 +2983,9 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat, /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - for (Sex = Usr_SEX_FEMALE; - Sex <= Usr_SEX_MALE; - Sex++) - { - HTM_LABEL_Begin ("class=\"DAT_STRONG_%s\"", - The_GetSuffix ()); - HTM_INPUT_RADIO ("Sex",HTM_DONT_SUBMIT_ON_CLICK, - "value=\"%u\"%s required=\"required\"", - (unsigned) Sex, - Sex == Gbl.Usrs.Me.UsrDat.Sex ? " checked=\"checked\"" : ""); - HTM_TxtF ("%s %s",Usr_StringsSexIcons[Sex],Txt_SEX_SINGULAR_Abc[Sex]); - HTM_LABEL_End (); - } + Rec_ShowFormSex (UsrDat,Usr_SEX_FEMALE); + HTM_BR (); + Rec_ShowFormSex (UsrDat,Usr_SEX_MALE ); HTM_TD_End (); } else // RoleForm == false, SexForm == false @@ -3032,6 +3004,25 @@ static void Rec_ShowRole (struct Usr_Data *UsrDat, HTM_TR_End (); } +/*****************************************************************************/ +/*************************** Show form to fill sex ***************************/ +/*****************************************************************************/ + +static void Rec_ShowFormSex (struct Usr_Data *UsrDat,Usr_Sex_t Sex) + { + extern const char *Usr_StringsSexIcons[Usr_NUM_SEXS]; + extern const char *Txt_SEX_SINGULAR_Abc[Usr_NUM_SEXS]; + + HTM_LABEL_Begin ("class=\"DAT_STRONG_%s\"", + The_GetSuffix ()); + HTM_INPUT_RADIO ("Sex",HTM_DONT_SUBMIT_ON_CLICK, + "value=\"%u\"%s required=\"required\"", + (unsigned) Sex, + Sex == UsrDat->Sex ? " checked=\"checked\"" : ""); + HTM_TxtF ("%s %s",Usr_StringsSexIcons[Sex],Txt_SEX_SINGULAR_Abc[Sex]); + HTM_LABEL_End (); + } + /*****************************************************************************/ /*************************** Show user's surname 1 ***************************/ /*****************************************************************************/ @@ -3764,13 +3755,6 @@ static void Rec_GetUsrCommentsFromForm (struct Usr_Data *UsrDat) void Rec_ShowMySharedRecordAndMore (void) { - extern const char *Txt_Please_fill_in_your_record_card_including_your_name; - extern const char *Txt_Please_fill_in_your_record_card_including_your_sex; - extern const char *Txt_Please_fill_in_your_record_card_including_your_country_nationality; - extern const char *Txt_Please_select_the_country_of_your_institution; - extern const char *Txt_Please_select_your_institution; - extern const char *Txt_Please_select_your_center; - extern const char *Txt_Please_select_your_department; bool IAmATeacher; /***** Get my roles if not yet got *****/ @@ -3781,40 +3765,21 @@ void Rec_ShowMySharedRecordAndMore (void) (1 << Rol_TCH))); // ...or a teacher in any course /***** If user has no name and surname, sex... *****/ - if (!Gbl.Usrs.Me.UsrDat.FrstName[0] || - !Gbl.Usrs.Me.UsrDat.Surname1[0]) // 1. No name - Ale_ShowAlert (Ale_WARNING,Txt_Please_fill_in_your_record_card_including_your_name); - else if (Gbl.Usrs.Me.UsrDat.Sex == Usr_SEX_UNKNOWN) // 2. No sex - Ale_ShowAlert (Ale_WARNING,Txt_Please_fill_in_your_record_card_including_your_sex); - else if (Gbl.Usrs.Me.UsrDat.CtyCod < 0) // 3. No country - Ale_ShowAlert (Ale_WARNING,Txt_Please_fill_in_your_record_card_including_your_country_nationality); - else if (Gbl.Usrs.Me.UsrDat.InsCtyCod < 0) // 4. No institution country - Ale_ShowAlert (Ale_WARNING,Txt_Please_select_the_country_of_your_institution); - else if (Gbl.Usrs.Me.UsrDat.InsCod < 0) // 5. No institution - Ale_ShowAlert (Ale_WARNING,Txt_Please_select_your_institution); - else if (IAmATeacher) - { - if (Gbl.Usrs.Me.UsrDat.Tch.CtrCod < 0) // 6. No center - Ale_ShowAlert (Ale_WARNING,Txt_Please_select_your_center); - else if (Gbl.Usrs.Me.UsrDat.Tch.DptCod < 0) // 7. No deparment - Ale_ShowAlert (Ale_WARNING,Txt_Please_select_your_department); - } + Rec_ShowAlertsIfNotFilled (IAmATeacher); /***** Begin container *****/ HTM_DIV_Begin ("class=\"REC_USR\""); /***** Left part *****/ - /* Begin container for left part */ HTM_DIV_Begin ("class=\"REC_LEFT\""); /* My shared record card */ - Rec_ShowSharedUsrRecord (Rec_SHA_MY_RECORD_FORM,&Gbl.Usrs.Me.UsrDat,NULL); + Rec_ShowSharedUsrRecord (Rec_SHA_MY_RECORD_FORM, + &Gbl.Usrs.Me.UsrDat,NULL); - /* End container for left part */ HTM_DIV_End (); /***** Right part *****/ - /* Begin container for right part */ HTM_DIV_Begin ("class=\"REC_RIGHT\""); /* My institution, center and department */ @@ -3823,7 +3788,6 @@ void Rec_ShowMySharedRecordAndMore (void) /* My webs / social networks */ Net_ShowFormMyWebsAndSocialNets (); - /* End container for right part */ HTM_DIV_End (); /***** End container *****/ @@ -3833,6 +3797,59 @@ void Rec_ShowMySharedRecordAndMore (void) Rec_WriteLinkToDataProtectionClause (); } +/*****************************************************************************/ +/***************** Show alerts if some fields are not filled *****************/ +/*****************************************************************************/ + +static void Rec_ShowAlertsIfNotFilled (bool IAmATeacher) + { + extern const char *Txt_Please_fill_in_your_record_card_including_your_name; + extern const char *Txt_Please_fill_in_your_record_card_including_your_sex; + extern const char *Txt_Please_fill_in_your_record_card_including_your_country_nationality; + extern const char *Txt_Please_select_the_country_of_your_institution; + extern const char *Txt_Please_select_your_institution; + extern const char *Txt_Please_select_your_center; + extern const char *Txt_Please_select_your_department; + bool RecordFilled = true; + + /***** First check that all mandatory fields are filled *****/ + if (!Gbl.Usrs.Me.UsrDat.FrstName[0] || + !Gbl.Usrs.Me.UsrDat.Surname1[0]) // 1. No name + { + Ale_ShowAlert (Ale_WARNING,Txt_Please_fill_in_your_record_card_including_your_name); + RecordFilled = false; + } + + if (Gbl.Usrs.Me.UsrDat.Sex == Usr_SEX_UNKNOWN) // 2. No sex + { + Ale_ShowAlert (Ale_WARNING,Txt_Please_fill_in_your_record_card_including_your_sex); + RecordFilled = false; + } + + if (Gbl.Usrs.Me.UsrDat.CtyCod < 0) // 3. No country + { + Ale_ShowAlert (Ale_WARNING,Txt_Please_fill_in_your_record_card_including_your_country_nationality); + RecordFilled = false; + } + + /***** Only when all mandatory fields are filled, + check my institution country, country, center and department *****/ + if (RecordFilled) + { + if (Gbl.Usrs.Me.UsrDat.InsCtyCod < 0) // 4. No institution country + Ale_ShowAlert (Ale_WARNING,Txt_Please_select_the_country_of_your_institution); + else if (Gbl.Usrs.Me.UsrDat.InsCod < 0) // 5. No institution + Ale_ShowAlert (Ale_WARNING,Txt_Please_select_your_institution); + else if (IAmATeacher) + { + if (Gbl.Usrs.Me.UsrDat.Tch.CtrCod < 0) // 6. No center + Ale_ShowAlert (Ale_WARNING,Txt_Please_select_your_center); + else if (Gbl.Usrs.Me.UsrDat.Tch.DptCod < 0) // 7. No deparment + Ale_ShowAlert (Ale_WARNING,Txt_Please_select_your_department); + } + } + } + /*****************************************************************************/ /********* Show form to edit my institution, center and department ***********/ /*****************************************************************************/ @@ -3854,7 +3871,6 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) const struct Hie_Node *Ins; unsigned NumCtr; const struct Hie_Node *Ctr; - char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char *Label; char *SelectClass; @@ -3865,149 +3881,97 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) HTM_SECTION_Begin (Rec_MY_INS_CTR_DPT_ID); /***** Begin box and table *****/ - sprintf (StrRecordWidth,"%upx",Rec_RECORD_WIDTH); - Box_BoxTableBegin (StrRecordWidth, - IAmATeacher ? Txt_Institution_center_and_department : - Txt_HIERARCHY_SINGUL_Abc[Hie_INS], - NULL,NULL, - Hlp_PROFILE_Institution,Box_NOT_CLOSABLE,2); + HTM_DIV_Begin ("class=\"REC_CONT\""); + Box_BoxTableBegin ("100%", + IAmATeacher ? Txt_Institution_center_and_department : + Txt_HIERARCHY_SINGUL_Abc[Hie_INS], + NULL,NULL, + Hlp_PROFILE_Institution,Box_NOT_CLOSABLE,2); - /***** Country *****/ - HTM_TR_Begin (NULL); - - /* Label */ - if (asprintf (&Label,"%s*",Txt_HIERARCHY_SINGUL_Abc[Hie_CTY]) < 0) - Err_NotEnoughMemoryExit (); - Frm_LabelColumn ("REC_C1_BOT RM","InsCtyCod",Label); - free (Label); - - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - - /* Begin form to select the country of my institution */ - Frm_BeginFormAnchor (ActChgCtyMyIns,Rec_MY_INS_CTR_DPT_ID); - HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, - "id=\"InsCtyCod\" name=\"OthCtyCod\"" - " class=\"REC_C2_BOT_INPUT INPUT_%s\"", - The_GetSuffix ()); - HTM_OPTION (HTM_Type_STRING,"-1", - Gbl.Usrs.Me.UsrDat.InsCtyCod <= 0 ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_DISABLED, - NULL); - for (NumCty = 0; - NumCty < Gbl.Hierarchy.List[Hie_SYS].Num; - NumCty++) - { - Cty = &Gbl.Hierarchy.List[Hie_SYS].Lst[NumCty]; - HTM_OPTION (HTM_Type_LONG,&Cty->HieCod, - Cty->HieCod == Gbl.Usrs.Me.UsrDat.InsCtyCod ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "%s",Cty->FullName); - } - HTM_SELECT_End (); - Frm_EndForm (); - - HTM_TD_End (); - - HTM_TR_End (); - - /***** Institution *****/ - HTM_TR_Begin (NULL); - - /* Label */ - if (asprintf (&Label,"%s*",Txt_HIERARCHY_SINGUL_Abc[Hie_INS]) < 0) - Err_NotEnoughMemoryExit (); - Frm_LabelColumn ("REC_C1_BOT RM",Par_CodeStr[ParCod_OthIns],Label); - free (Label); - - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - - /* Get list of institutions in this country */ - Hie_FreeList (Hie_CTY); - if (Gbl.Usrs.Me.UsrDat.InsCtyCod > 0) - Ins_GetBasicListOfInstitutions (Gbl.Usrs.Me.UsrDat.InsCtyCod); - - /* Begin form to select institution */ - Frm_BeginFormAnchor (ActChgMyIns,Rec_MY_INS_CTR_DPT_ID); - HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, - "id=\"OthInsCod\" name=\"OthInsCod\"" - " class=\"REC_C2_BOT_INPUT INPUT_%s\"", - The_GetSuffix ()); - HTM_OPTION (HTM_Type_STRING,"-1", - Gbl.Usrs.Me.UsrDat.InsCod < 0 ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_DISABLED, - NULL); - HTM_OPTION (HTM_Type_STRING,"0", - Gbl.Usrs.Me.UsrDat.InsCod == 0 ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "%s",Txt_Another_institution); - for (NumIns = 0; - NumIns < Gbl.Hierarchy.List[Hie_CTY].Num; - NumIns++) - { - Ins = &Gbl.Hierarchy.List[Hie_CTY].Lst[NumIns]; - HTM_OPTION (HTM_Type_LONG,&Ins->HieCod, - Ins->HieCod == Gbl.Usrs.Me.UsrDat.InsCod ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - "%s",Ins->FullName); - } - HTM_SELECT_End (); - Frm_EndForm (); - HTM_TD_End (); - - HTM_TR_End (); - - if (IAmATeacher) - { - /***** Center *****/ + /***** Country *****/ HTM_TR_Begin (NULL); /* Label */ - if (asprintf (&Label,"%s*",Txt_HIERARCHY_SINGUL_Abc[Hie_CTR]) < 0) + if (asprintf (&Label,"%s*",Txt_HIERARCHY_SINGUL_Abc[Hie_CTY]) < 0) Err_NotEnoughMemoryExit (); - Frm_LabelColumn ("REC_C1_BOT RM",Par_CodeStr[ParCod_OthCtr],Label); + Frm_LabelColumn ("REC_C1_BOT RM","InsCtyCod",Label); free (Label); /* Data */ HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - /* Get list of centers in this institution */ - Hie_FreeList (Hie_INS); - if (Gbl.Usrs.Me.UsrDat.InsCod > 0) - Ctr_GetBasicListOfCenters (Gbl.Usrs.Me.UsrDat.InsCod); - - /* Begin form to select center */ - Frm_BeginFormAnchor (ActChgMyCtr,Rec_MY_INS_CTR_DPT_ID); + /* Begin form to select the country of my institution */ + Frm_BeginFormAnchor (ActChgCtyMyIns,Rec_MY_INS_CTR_DPT_ID); HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, - "id=\"OthCtrCod\" name=\"OthCtrCod\"" + "id=\"InsCtyCod\" name=\"OthCtyCod\"" " class=\"REC_C2_BOT_INPUT INPUT_%s\"", The_GetSuffix ()); HTM_OPTION (HTM_Type_STRING,"-1", - Gbl.Usrs.Me.UsrDat.Tch.CtrCod < 0 ? HTM_OPTION_SELECTED : + Gbl.Usrs.Me.UsrDat.InsCtyCod <= 0 ? HTM_OPTION_SELECTED : HTM_OPTION_UNSELECTED, HTM_OPTION_DISABLED, NULL); - HTM_OPTION (HTM_Type_STRING,"0", - Gbl.Usrs.Me.UsrDat.Tch.CtrCod == 0 ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, - HTM_OPTION_ENABLED, - Txt_Another_center); - for (NumCtr = 0; - NumCtr < Gbl.Hierarchy.List[Hie_SYS].Num; - NumCtr++) + for (NumCty = 0; + NumCty < Gbl.Hierarchy.List[Hie_SYS].Num; + NumCty++) { - Ctr = &Gbl.Hierarchy.List[Hie_SYS].Lst[NumCtr]; - HTM_OPTION (HTM_Type_LONG,&Ctr->HieCod, - Ctr->HieCod == Gbl.Usrs.Me.UsrDat.Tch.CtrCod ? HTM_OPTION_SELECTED : - HTM_OPTION_UNSELECTED, + Cty = &Gbl.Hierarchy.List[Hie_SYS].Lst[NumCty]; + HTM_OPTION (HTM_Type_LONG,&Cty->HieCod, + Cty->HieCod == Gbl.Usrs.Me.UsrDat.InsCtyCod ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, HTM_OPTION_ENABLED, - Ctr->FullName); + "%s",Cty->FullName); + } + HTM_SELECT_End (); + Frm_EndForm (); + + HTM_TD_End (); + + HTM_TR_End (); + + /***** Institution *****/ + HTM_TR_Begin (NULL); + + /* Label */ + if (asprintf (&Label,"%s*",Txt_HIERARCHY_SINGUL_Abc[Hie_INS]) < 0) + Err_NotEnoughMemoryExit (); + Frm_LabelColumn ("REC_C1_BOT RM",Par_CodeStr[ParCod_OthIns],Label); + free (Label); + + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + + /* Get list of institutions in this country */ + Hie_FreeList (Hie_CTY); + if (Gbl.Usrs.Me.UsrDat.InsCtyCod > 0) + Ins_GetBasicListOfInstitutions (Gbl.Usrs.Me.UsrDat.InsCtyCod); + + /* Begin form to select institution */ + Frm_BeginFormAnchor (ActChgMyIns,Rec_MY_INS_CTR_DPT_ID); + HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, + "id=\"OthInsCod\" name=\"OthInsCod\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"", + The_GetSuffix ()); + HTM_OPTION (HTM_Type_STRING,"-1", + Gbl.Usrs.Me.UsrDat.InsCod < 0 ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_DISABLED, + NULL); + HTM_OPTION (HTM_Type_STRING,"0", + Gbl.Usrs.Me.UsrDat.InsCod == 0 ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "%s",Txt_Another_institution); + for (NumIns = 0; + NumIns < Gbl.Hierarchy.List[Hie_CTY].Num; + NumIns++) + { + Ins = &Gbl.Hierarchy.List[Hie_CTY].Lst[NumIns]; + HTM_OPTION (HTM_Type_LONG,&Ins->HieCod, + Ins->HieCod == Gbl.Usrs.Me.UsrDat.InsCod ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + "%s",Ins->FullName); } HTM_SELECT_End (); Frm_EndForm (); @@ -4015,75 +3979,128 @@ static void Rec_ShowFormMyInsCtrDpt (bool IAmATeacher) HTM_TR_End (); - /***** Department *****/ - HTM_TR_Begin (NULL); + if (IAmATeacher) + { + /***** Center *****/ + HTM_TR_Begin (NULL); - /* Label */ - if (asprintf (&Label,"%s*",Txt_Department) < 0) - Err_NotEnoughMemoryExit (); - Frm_LabelColumn ("REC_C1_BOT RM",Par_CodeStr[ParCod_Dpt],Label); - free (Label); + /* Label */ + if (asprintf (&Label,"%s*",Txt_HIERARCHY_SINGUL_Abc[Hie_CTR]) < 0) + Err_NotEnoughMemoryExit (); + Frm_LabelColumn ("REC_C1_BOT RM",Par_CodeStr[ParCod_OthCtr],Label); + free (Label); - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - Frm_BeginFormAnchor (ActChgMyDpt,Rec_MY_INS_CTR_DPT_ID); - if (asprintf (&SelectClass,"REC_C2_BOT_INPUT INPUT_%s", - The_GetSuffix ()) < 0) - Err_NotEnoughMemoryExit (); - Dpt_WriteSelectorDepartment (Gbl.Usrs.Me.UsrDat.InsCod, // Departments in my institution - Gbl.Usrs.Me.UsrDat.Tch.DptCod, // Selected department - Par_CodeStr[ParCod_Dpt], // Parameter name - SelectClass, // Selector class - -1L, // First option - "", // Text when no department selected - HTM_SUBMIT_ON_CHANGE); - free (SelectClass); - Frm_EndForm (); - HTM_TD_End (); + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - HTM_TR_End (); + /* Get list of centers in this institution */ + Hie_FreeList (Hie_INS); + if (Gbl.Usrs.Me.UsrDat.InsCod > 0) + Ctr_GetBasicListOfCenters (Gbl.Usrs.Me.UsrDat.InsCod); - /***** Office *****/ - HTM_TR_Begin (NULL); + /* Begin form to select center */ + Frm_BeginFormAnchor (ActChgMyCtr,Rec_MY_INS_CTR_DPT_ID); + HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, + "id=\"OthCtrCod\" name=\"OthCtrCod\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"", + The_GetSuffix ()); + HTM_OPTION (HTM_Type_STRING,"-1", + Gbl.Usrs.Me.UsrDat.Tch.CtrCod < 0 ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_DISABLED, + NULL); + HTM_OPTION (HTM_Type_STRING,"0", + Gbl.Usrs.Me.UsrDat.Tch.CtrCod == 0 ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + Txt_Another_center); + for (NumCtr = 0; + NumCtr < Gbl.Hierarchy.List[Hie_SYS].Num; + NumCtr++) + { + Ctr = &Gbl.Hierarchy.List[Hie_SYS].Lst[NumCtr]; + HTM_OPTION (HTM_Type_LONG,&Ctr->HieCod, + Ctr->HieCod == Gbl.Usrs.Me.UsrDat.Tch.CtrCod ? HTM_OPTION_SELECTED : + HTM_OPTION_UNSELECTED, + HTM_OPTION_ENABLED, + Ctr->FullName); + } + HTM_SELECT_End (); + Frm_EndForm (); + HTM_TD_End (); - /* Label */ - Frm_LabelColumn ("REC_C1_BOT RM","Office",Txt_Office); + HTM_TR_End (); - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - Frm_BeginFormAnchor (ActChgMyOff,Rec_MY_INS_CTR_DPT_ID); - HTM_INPUT_TEXT ("Office",Usr_MAX_CHARS_ADDRESS,Gbl.Usrs.Me.UsrDat.Tch.Office, - HTM_SUBMIT_ON_CHANGE, - "id=\"Office\"" - " class=\"REC_C2_BOT_INPUT INPUT_%s\"", - The_GetSuffix ()); - Frm_EndForm (); - HTM_TD_End (); + /***** Department *****/ + HTM_TR_Begin (NULL); - HTM_TR_End (); + /* Label */ + if (asprintf (&Label,"%s*",Txt_Department) < 0) + Err_NotEnoughMemoryExit (); + Frm_LabelColumn ("REC_C1_BOT RM",Par_CodeStr[ParCod_Dpt],Label); + free (Label); - /***** Office phone *****/ - HTM_TR_Begin (NULL); + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + Frm_BeginFormAnchor (ActChgMyDpt,Rec_MY_INS_CTR_DPT_ID); + if (asprintf (&SelectClass,"REC_C2_BOT_INPUT INPUT_%s", + The_GetSuffix ()) < 0) + Err_NotEnoughMemoryExit (); + Dpt_WriteSelectorDepartment (Gbl.Usrs.Me.UsrDat.InsCod, // Departments in my institution + Gbl.Usrs.Me.UsrDat.Tch.DptCod, // Selected department + Par_CodeStr[ParCod_Dpt], // Parameter name + SelectClass, // Selector class + -1L, // First option + "", // Text when no department selected + HTM_SUBMIT_ON_CHANGE); + free (SelectClass); + Frm_EndForm (); + HTM_TD_End (); - /* Label */ - Frm_LabelColumn ("REC_C1_BOT RM","OfficePhone",Txt_Phone); + HTM_TR_End (); - /* Data */ - HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); - Frm_BeginFormAnchor (ActChgMyOffPho,Rec_MY_INS_CTR_DPT_ID); - HTM_INPUT_TEL ("OfficePhone",Gbl.Usrs.Me.UsrDat.Tch.OfficePhone, - HTM_SUBMIT_ON_CHANGE, - "id=\"OfficePhone\"" - " class=\"REC_C2_BOT_INPUT INPUT_%s\"", - The_GetSuffix ()); - Frm_EndForm (); - HTM_TD_End (); + /***** Office *****/ + HTM_TR_Begin (NULL); - HTM_TR_End (); - } + /* Label */ + Frm_LabelColumn ("REC_C1_BOT RM","Office",Txt_Office); - /***** End table and box *****/ - Box_BoxTableEnd (); + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + Frm_BeginFormAnchor (ActChgMyOff,Rec_MY_INS_CTR_DPT_ID); + HTM_INPUT_TEXT ("Office",Usr_MAX_CHARS_ADDRESS,Gbl.Usrs.Me.UsrDat.Tch.Office, + HTM_SUBMIT_ON_CHANGE, + "id=\"Office\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"", + The_GetSuffix ()); + Frm_EndForm (); + HTM_TD_End (); + + HTM_TR_End (); + + /***** Office phone *****/ + HTM_TR_Begin (NULL); + + /* Label */ + Frm_LabelColumn ("REC_C1_BOT RM","OfficePhone",Txt_Phone); + + /* Data */ + HTM_TD_Begin ("class=\"REC_C2_BOT LM\""); + Frm_BeginFormAnchor (ActChgMyOffPho,Rec_MY_INS_CTR_DPT_ID); + HTM_INPUT_TEL ("OfficePhone",Gbl.Usrs.Me.UsrDat.Tch.OfficePhone, + HTM_SUBMIT_ON_CHANGE, + "id=\"OfficePhone\"" + " class=\"REC_C2_BOT_INPUT INPUT_%s\"", + The_GetSuffix ()); + Frm_EndForm (); + HTM_TD_End (); + + HTM_TR_End (); + } + + /***** End table and box *****/ + Box_BoxTableEnd (); + HTM_DIV_End (); /***** End section *****/ HTM_SECTION_End (); diff --git a/swad_record.h b/swad_record.h index 5ff935d0..a58daaef 100644 --- a/swad_record.h +++ b/swad_record.h @@ -35,8 +35,6 @@ /***************************** Public constants ******************************/ /*****************************************************************************/ -#define Rec_RECORD_WIDTH 560 - #define Rec_MAX_CHARS_NAME_FIELD (128 - 1) // 127 #define Rec_MAX_BYTES_NAME_FIELD ((Rec_MAX_CHARS_NAME_FIELD + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047