From 5e18bcff3b077e42dc54112ea31856ed182ae2ed Mon Sep 17 00:00:00 2001 From: acanas Date: Wed, 15 Dec 2021 20:42:47 +0100 Subject: [PATCH] Version 21.70.1: Dec 15, 2021 Working on design of dark theme. --- css/{swad21.70.css => swad21.70.1.css} | 9 +- swad_agenda.c | 90 ++++++++-------- swad_calendar.c | 30 +++--- swad_changelog.h | 5 +- swad_group.c | 24 +++-- swad_icon.c | 22 ++-- swad_menu.c | 15 +-- swad_photo_shape.c | 15 +-- swad_project.c | 136 +++++++++++++------------ swad_setting.c | 19 ++-- swad_theme.c | 30 ++++-- swad_timeline_who.c | 22 ++-- swad_user.c | 63 ++++++------ 13 files changed, 268 insertions(+), 212 deletions(-) rename css/{swad21.70.css => swad21.70.1.css} (99%) diff --git a/css/swad21.70.css b/css/swad21.70.1.css similarity index 99% rename from css/swad21.70.css rename to css/swad21.70.1.css index ef036710a..303cfce53 100644 --- a/css/swad21.70.css +++ b/css/swad21.70.1.css @@ -3345,9 +3345,14 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;} text-align:center; vertical-align:middle; border:solid 1px; - border-color:#C0DAE4; - background-color:#DDECF1; } +.PREF_ON_WHITE {border-color:#c0dae4; background-color:#ddecf1;} +.PREF_ON_GREY {border-color:#c0dae4; background-color:#ddecf1;} +.PREF_ON_PURPLE {border-color:#c0dae4; background-color:#ddecf1;} +.PREF_ON_BLUE {border-color:#c0dae4; background-color:#ddecf1;} +.PREF_ON_YELLOW {border-color:#c0dae4; background-color:#ddecf1;} +.PREF_ON_PINK {border-color:#c0dae4; background-color:#ddecf1;} +.PREF_ON_DARK {border-color:#808080; background-color:#707070;} /************************************* Log ***********************************/ .LOG diff --git a/swad_agenda.c b/swad_agenda.c index a7ac75f82..43ef96503 100644 --- a/swad_agenda.c +++ b/swad_agenda.c @@ -206,6 +206,7 @@ static void Agd_ShowMyAgenda (struct Agd_Agenda *Agenda) static void Agd_ShowFormToSelPast__FutureEvents (const struct Agd_Agenda *Agenda) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_AGENDA_PAST___FUTURE_EVENTS[2]; Agd_Past__FutureEvents_t PstFut; static const char *Icon[2] = @@ -215,23 +216,24 @@ static void Agd_ShowFormToSelPast__FutureEvents (const struct Agd_Agenda *Agenda }; Set_BeginOneSettingSelector (); - for (PstFut = Agd_PAST___EVENTS; + for (PstFut = Agd_PAST___EVENTS; PstFut <= Agd_FUTURE_EVENTS; PstFut++) { - HTM_DIV_Begin ("class=\"%s\"", - (Agenda->Past__FutureEvents & (1 << PstFut)) ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActSeeMyAgd); - Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents ^ (1 << PstFut), // Toggle - Agenda->PrivatPublicEvents, - Agenda->HiddenVisiblEvents, - Agenda->SelectedOrder, - Agenda->CurrentPage, - -1L); - Ico_PutSettingIconLink (Icon[PstFut], - Txt_AGENDA_PAST___FUTURE_EVENTS[PstFut]); - Frm_EndForm (); + if ((Agenda->Past__FutureEvents & (1 << PstFut))) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActSeeMyAgd); + Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents ^ (1 << PstFut), // Toggle + Agenda->PrivatPublicEvents, + Agenda->HiddenVisiblEvents, + Agenda->SelectedOrder, + Agenda->CurrentPage, + -1L); + Ico_PutSettingIconLink (Icon[PstFut], + Txt_AGENDA_PAST___FUTURE_EVENTS[PstFut]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); @@ -243,6 +245,7 @@ static void Agd_ShowFormToSelPast__FutureEvents (const struct Agd_Agenda *Agenda static void Agd_ShowFormToSelPrivatPublicEvents (const struct Agd_Agenda *Agenda) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[2]; Agd_PrivatPublicEvents_t PrvPub; static const char *Icon[2] = @@ -252,23 +255,24 @@ static void Agd_ShowFormToSelPrivatPublicEvents (const struct Agd_Agenda *Agenda }; Set_BeginOneSettingSelector (); - for (PrvPub = Agd_PRIVAT_EVENTS; + for (PrvPub = Agd_PRIVAT_EVENTS; PrvPub <= Agd_PUBLIC_EVENTS; PrvPub++) { - HTM_DIV_Begin ("class=\"%s\"", - (Agenda->PrivatPublicEvents & (1 << PrvPub)) ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActSeeMyAgd); - Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents, - Agenda->PrivatPublicEvents ^ (1 << PrvPub), // Toggle - Agenda->HiddenVisiblEvents, - Agenda->SelectedOrder, - Agenda->CurrentPage, - -1L); - Ico_PutSettingIconLink (Icon[PrvPub], - Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[PrvPub]); - Frm_EndForm (); + if ((Agenda->PrivatPublicEvents & (1 << PrvPub))) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActSeeMyAgd); + Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents, + Agenda->PrivatPublicEvents ^ (1 << PrvPub), // Toggle + Agenda->HiddenVisiblEvents, + Agenda->SelectedOrder, + Agenda->CurrentPage, + -1L); + Ico_PutSettingIconLink (Icon[PrvPub], + Txt_AGENDA_PRIVAT_PUBLIC_EVENTS[PrvPub]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); @@ -280,6 +284,7 @@ static void Agd_ShowFormToSelPrivatPublicEvents (const struct Agd_Agenda *Agenda static void Agd_ShowFormToSelHiddenVisiblEvents (const struct Agd_Agenda *Agenda) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_AGENDA_HIDDEN_VISIBL_EVENTS[2]; Agd_HiddenVisiblEvents_t HidVis; static const char *Icon[2] = @@ -289,23 +294,24 @@ static void Agd_ShowFormToSelHiddenVisiblEvents (const struct Agd_Agenda *Agenda }; Set_BeginOneSettingSelector (); - for (HidVis = Agd_HIDDEN_EVENTS; + for (HidVis = Agd_HIDDEN_EVENTS; HidVis <= Agd_VISIBL_EVENTS; HidVis++) { - HTM_DIV_Begin ("class=\"%s\"", - (Agenda->HiddenVisiblEvents & (1 << HidVis)) ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActSeeMyAgd); - Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents, - Agenda->PrivatPublicEvents, - Agenda->HiddenVisiblEvents ^ (1 << HidVis), // Toggle - Agenda->SelectedOrder, - Agenda->CurrentPage, - -1L); - Ico_PutSettingIconLink (Icon[HidVis], - Txt_AGENDA_HIDDEN_VISIBL_EVENTS[HidVis]); - Frm_EndForm (); + if ((Agenda->HiddenVisiblEvents & (1 << HidVis))) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActSeeMyAgd); + Agd_PutParamsMyAgenda (Agenda->Past__FutureEvents, + Agenda->PrivatPublicEvents, + Agenda->HiddenVisiblEvents ^ (1 << HidVis), // Toggle + Agenda->SelectedOrder, + Agenda->CurrentPage, + -1L); + Ico_PutSettingIconLink (Icon[HidVis], + Txt_AGENDA_HIDDEN_VISIBL_EVENTS[HidVis]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_calendar.c b/swad_calendar.c index ca4f85be7..88c566a79 100644 --- a/swad_calendar.c +++ b/swad_calendar.c @@ -112,30 +112,32 @@ static void Cal_PutIconsFirstDayOfWeek (__attribute__((unused)) void *Args) void Cal_ShowFormToSelFirstDayOfWeek (Act_Action_t Action, void (*FuncParams) (void *Args),void *Args) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_First_day_of_the_week_X; extern const char *Txt_DAYS_SMALL[7]; unsigned FirstDayOfWeek; char Icon[32 + 1]; Set_BeginOneSettingSelector (); - for (FirstDayOfWeek = 0; // Monday + for (FirstDayOfWeek = 0; // Monday FirstDayOfWeek <= 6; // Sunday FirstDayOfWeek++) if (Cal_DayIsValidAsFirstDayOfWeek[FirstDayOfWeek]) { - HTM_DIV_Begin ("class=\"%s\"", - FirstDayOfWeek == Gbl.Prefs.FirstDayOfWeek ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (Action); - Par_PutHiddenParamUnsigned (NULL,"FirstDayOfWeek",FirstDayOfWeek); - if (FuncParams) // Extra parameters depending on the action - FuncParams (Args); - snprintf (Icon,sizeof (Icon),"first-day-of-week-%u.png",FirstDayOfWeek); - Ico_PutSettingIconLink (Icon, - Str_BuildString (Txt_First_day_of_the_week_X, - Txt_DAYS_SMALL[FirstDayOfWeek])); - Str_FreeStrings (); - Frm_EndForm (); + if (FirstDayOfWeek == Gbl.Prefs.FirstDayOfWeek) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (Action); + Par_PutHiddenParamUnsigned (NULL,"FirstDayOfWeek",FirstDayOfWeek); + if (FuncParams) // Extra parameters depending on the action + FuncParams (Args); + snprintf (Icon,sizeof (Icon),"first-day-of-week-%u.png",FirstDayOfWeek); + Ico_PutSettingIconLink (Icon, + Str_BuildString (Txt_First_day_of_the_week_X, + Txt_DAYS_SMALL[FirstDayOfWeek])); + Str_FreeStrings (); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_changelog.h b/swad_changelog.h index d4493a0c9..b27b846c1 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -602,12 +602,13 @@ TODO: FIX BUG, URGENT! En las fechas como par TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo. */ -#define Log_PLATFORM_VERSION "SWAD 21.70 (2021-12-15)" -#define CSS_FILE "swad21.70.css" +#define Log_PLATFORM_VERSION "SWAD 21.70.1 (2021-12-15)" +#define CSS_FILE "swad21.70.1.css" #define JS_FILE "swad21.67.4.js" /* // TODO: al ver los resultados de un juego como profesor, el rol del estudiante sale como desconocido y no se puede ver el DNI + Version 21.70.1: Dec 15, 2021 Working on design of dark theme. (321305 lines) Version 21.70: Dec 15, 2021 Working on design of dark theme. (321252 lines) Version 21.69: Dec 15, 2021 Working on design of dark theme. (321089 lines) Version 21.68: Dec 08, 2021 Beginning design of dark theme. (320444 lines) diff --git a/swad_group.c b/swad_group.c index 58aaf7b36..b5f1cc9c2 100644 --- a/swad_group.c +++ b/swad_group.c @@ -4368,6 +4368,7 @@ void Grp_PutParamWhichGrpsAllGrps (void) void Grp_ShowFormToSelWhichGrps (Act_Action_t Action, void (*FuncParams) (void *Args),void *Args) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_GROUP_WHICH_GROUPS[2]; Grp_WhichGroups_t WhichGrps; @@ -4379,17 +4380,18 @@ void Grp_ShowFormToSelWhichGrps (Act_Action_t Action, WhichGrps <= Grp_ALL_GROUPS; WhichGrps++) { - HTM_DIV_Begin ("class=\"%s\"", - WhichGrps == Gbl.Crs.Grps.WhichGrps ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (Action); - Par_PutHiddenParamUnsigned (NULL,"WhichGrps",(unsigned) WhichGrps); - if (FuncParams) // Extra parameters depending on the action - FuncParams (Args); - Ico_PutSettingIconLink (WhichGrps == Grp_MY_GROUPS ? "mysitemap.png" : - "sitemap.svg", - Txt_GROUP_WHICH_GROUPS[WhichGrps]); - Frm_EndForm (); + if (WhichGrps == Gbl.Crs.Grps.WhichGrps) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (Action); + Par_PutHiddenParamUnsigned (NULL,"WhichGrps",(unsigned) WhichGrps); + if (FuncParams) // Extra parameters depending on the action + FuncParams (Args); + Ico_PutSettingIconLink (WhichGrps == Grp_MY_GROUPS ? "mysitemap.png" : + "sitemap.svg", + Txt_GROUP_WHICH_GROUPS[WhichGrps]); + Frm_EndForm (); HTM_DIV_End (); } diff --git a/swad_icon.c b/swad_icon.c index a5e75d740..20eb2d5ef 100644 --- a/swad_icon.c +++ b/swad_icon.c @@ -111,6 +111,7 @@ const char *Ico_GetIcon (const char *IconWithoutExtension) void Ico_PutIconsToSelectIconSet (void) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Hlp_PROFILE_Settings_icons; extern const char *Txt_Icons; Ico_IconSet_t IconSet; @@ -125,16 +126,17 @@ void Ico_PutIconsToSelectIconSet (void) IconSet <= (Ico_IconSet_t) (Ico_NUM_ICON_SETS - 1); IconSet++) { - HTM_DIV_Begin ("class=\"%s\"", - IconSet == Gbl.Prefs.IconSet ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActChgIco); - Par_PutHiddenParamString (NULL,"IconSet",Ico_IconSetId[IconSet]); - snprintf (Icon,sizeof (Icon),"%s/%s/cog.svg", - Cfg_ICON_FOLDER_SETS, - Ico_IconSetId[IconSet]); - Ico_PutSettingIconLink (Icon,Ico_IconSetNames[IconSet]); - Frm_EndForm (); + if (IconSet == Gbl.Prefs.IconSet) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActChgIco); + Par_PutHiddenParamString (NULL,"IconSet",Ico_IconSetId[IconSet]); + snprintf (Icon,sizeof (Icon),"%s/%s/cog.svg", + Cfg_ICON_FOLDER_SETS, + Ico_IconSetId[IconSet]); + Ico_PutSettingIconLink (Icon,Ico_IconSetNames[IconSet]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_menu.c b/swad_menu.c index 297bda9b5..f32191585 100644 --- a/swad_menu.c +++ b/swad_menu.c @@ -304,6 +304,7 @@ void Mnu_WriteMenuThisTab (void) void Mnu_PutIconsToSelectMenu (void) { extern const char *Hlp_PROFILE_Settings_menu; + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_Menu; extern const char *Txt_MENU_NAMES[Mnu_NUM_MENUS]; Mnu_Menu_t Menu; @@ -317,12 +318,14 @@ void Mnu_PutIconsToSelectMenu (void) Menu <= (Mnu_Menu_t) (Mnu_NUM_MENUS - 1); Menu++) { - HTM_DIV_Begin ("class=\"%s\"",Menu == Gbl.Prefs.Menu ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActChgMnu); - Par_PutHiddenParamUnsigned (NULL,"Menu",(unsigned) Menu); - Ico_PutSettingIconLink (Mnu_MenuIcons[Menu],Txt_MENU_NAMES[Menu]); - Frm_EndForm (); + if (Menu == Gbl.Prefs.Menu) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActChgMnu); + Par_PutHiddenParamUnsigned (NULL,"Menu",(unsigned) Menu); + Ico_PutSettingIconLink (Mnu_MenuIcons[Menu],Txt_MENU_NAMES[Menu]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_photo_shape.c b/swad_photo_shape.c index 5ebe32401..7b3d34571 100644 --- a/swad_photo_shape.c +++ b/swad_photo_shape.c @@ -54,6 +54,7 @@ static void Pho_PutIconsPhotoShape (__attribute__((unused)) void *Args); void Pho_PutIconsToSelectPhotoShape (void) { extern const char *Hlp_PROFILE_Settings_user_photos; + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_User_photos; extern const char *Txt_PHOTO_SHAPES[Pho_NUM_SHAPES]; static const char *ClassPhoto[Pho_NUM_SHAPES] = @@ -74,12 +75,14 @@ void Pho_PutIconsToSelectPhotoShape (void) Shape <= (Pho_Shape_t) (Pho_NUM_SHAPES - 1); Shape++) { - HTM_DIV_Begin ("class=\"%s\"",Shape == Gbl.Prefs.PhotoShape ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActChgUsrPho); - Par_PutHiddenParamUnsigned (NULL,"PhotoShape",Shape); - HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user.svg",Txt_PHOTO_SHAPES[Shape],ClassPhoto[Shape]); - Frm_EndForm (); + if (Shape == Gbl.Prefs.PhotoShape) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActChgUsrPho); + Par_PutHiddenParamUnsigned (NULL,"PhotoShape",Shape); + HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user.svg",Txt_PHOTO_SHAPES[Shape],ClassPhoto[Shape]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_project.c b/swad_project.c index 7da87df15..eb7dbbcef 100644 --- a/swad_project.c +++ b/swad_project.c @@ -566,6 +566,7 @@ static void Prj_ShowPrjsInCurrentPage (void *Projects) static void Prj_ShowFormToFilterByMy_All (const struct Prj_Projects *Projects) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; struct Prj_Filter Filter; Usr_Who_t Who; unsigned Mask = 1 << Usr_WHO_ME | @@ -578,22 +579,23 @@ static void Prj_ShowFormToFilterByMy_All (const struct Prj_Projects *Projects) Who++) if (Mask & (1 << Who)) { - HTM_DIV_Begin ("class=\"%s\"", - (Projects->Filter.Who == Who) ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (Who == Usr_WHO_SELECTED ? ActReqUsrPrj : - ActSeePrj); - Filter.Who = Who; - Filter.Assign = Projects->Filter.Assign; - Filter.Hidden = Projects->Filter.Hidden; - Filter.Faulti = Projects->Filter.Faulti; - Filter.DptCod = Projects->Filter.DptCod; - Prj_PutParams (&Filter, - Projects->SelectedOrder, - Projects->CurrentPage, - -1L); - Usr_PutWhoIcon (Who); - Frm_EndForm (); + if (Who == Projects->Filter.Who) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (Who == Usr_WHO_SELECTED ? ActReqUsrPrj : + ActSeePrj); + Filter.Who = Who; + Filter.Assign = Projects->Filter.Assign; + Filter.Hidden = Projects->Filter.Hidden; + Filter.Faulti = Projects->Filter.Faulti; + Filter.DptCod = Projects->Filter.DptCod; + Prj_PutParams (&Filter, + Projects->SelectedOrder, + Projects->CurrentPage, + -1L); + Usr_PutWhoIcon (Who); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); @@ -605,6 +607,7 @@ static void Prj_ShowFormToFilterByMy_All (const struct Prj_Projects *Projects) static void Prj_ShowFormToFilterByAssign (const struct Prj_Projects *Projects) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_PROJECT_ASSIGNED_NONASSIGNED_PLURAL[Prj_NUM_ASSIGNED_NONASSIG]; struct Prj_Filter Filter; Prj_AssignedNonassig_t Assign; @@ -614,22 +617,23 @@ static void Prj_ShowFormToFilterByAssign (const struct Prj_Projects *Projects) Assign <= (Prj_AssignedNonassig_t) (Prj_NUM_ASSIGNED_NONASSIG - 1); Assign++) { - HTM_DIV_Begin ("class=\"%s\"", - (Projects->Filter.Assign & (1 << Assign)) ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActSeePrj); - Filter.Who = Projects->Filter.Who; - Filter.Assign = Projects->Filter.Assign ^ (1 << Assign); // Toggle - Filter.Hidden = Projects->Filter.Hidden; - Filter.Faulti = Projects->Filter.Faulti; - Filter.DptCod = Projects->Filter.DptCod; - Prj_PutParams (&Filter, - Projects->SelectedOrder, - Projects->CurrentPage, - -1L); - Ico_PutSettingIconLink (AssignedNonassigImage[Assign], - Txt_PROJECT_ASSIGNED_NONASSIGNED_PLURAL[Assign]); - Frm_EndForm (); + if ((Projects->Filter.Assign & (1 << Assign))) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActSeePrj); + Filter.Who = Projects->Filter.Who; + Filter.Assign = Projects->Filter.Assign ^ (1 << Assign); // Toggle + Filter.Hidden = Projects->Filter.Hidden; + Filter.Faulti = Projects->Filter.Faulti; + Filter.DptCod = Projects->Filter.DptCod; + Prj_PutParams (&Filter, + Projects->SelectedOrder, + Projects->CurrentPage, + -1L); + Ico_PutSettingIconLink (AssignedNonassigImage[Assign], + Txt_PROJECT_ASSIGNED_NONASSIGNED_PLURAL[Assign]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); @@ -641,6 +645,7 @@ static void Prj_ShowFormToFilterByAssign (const struct Prj_Projects *Projects) static void Prj_ShowFormToFilterByHidden (const struct Prj_Projects *Projects) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_PROJECT_HIDDEN_VISIBL_PROJECTS[Prj_NUM_HIDDEN_VISIBL]; struct Prj_Filter Filter; Prj_HiddenVisibl_t HidVis; @@ -655,22 +660,23 @@ static void Prj_ShowFormToFilterByHidden (const struct Prj_Projects *Projects) HidVis <= (Prj_HiddenVisibl_t) (Prj_NUM_HIDDEN_VISIBL - 1); HidVis++) { - HTM_DIV_Begin ("class=\"%s\"", - (Projects->Filter.Hidden & (1 << HidVis)) ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActSeePrj); - Filter.Who = Projects->Filter.Who; - Filter.Assign = Projects->Filter.Assign; - Filter.Hidden = Projects->Filter.Hidden ^ (1 << HidVis); // Toggle - Filter.Faulti = Projects->Filter.Faulti; - Filter.DptCod = Projects->Filter.DptCod; - Prj_PutParams (&Filter, - Projects->SelectedOrder, - Projects->CurrentPage, - -1L); - Ico_PutSettingIconLink (HiddenVisiblIcon[HidVis], - Txt_PROJECT_HIDDEN_VISIBL_PROJECTS[HidVis]); - Frm_EndForm (); + if ((Projects->Filter.Hidden & (1 << HidVis))) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActSeePrj); + Filter.Who = Projects->Filter.Who; + Filter.Assign = Projects->Filter.Assign; + Filter.Hidden = Projects->Filter.Hidden ^ (1 << HidVis); // Toggle + Filter.Faulti = Projects->Filter.Faulti; + Filter.DptCod = Projects->Filter.DptCod; + Prj_PutParams (&Filter, + Projects->SelectedOrder, + Projects->CurrentPage, + -1L); + Ico_PutSettingIconLink (HiddenVisiblIcon[HidVis], + Txt_PROJECT_HIDDEN_VISIBL_PROJECTS[HidVis]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); @@ -682,6 +688,7 @@ static void Prj_ShowFormToFilterByHidden (const struct Prj_Projects *Projects) static void Prj_ShowFormToFilterByWarning (const struct Prj_Projects *Projects) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Prj_NUM_FAULTINESS]; struct Prj_Filter Filter; Prj_Faultiness_t Faultiness; @@ -696,22 +703,23 @@ static void Prj_ShowFormToFilterByWarning (const struct Prj_Projects *Projects) Faultiness <= (Prj_Faultiness_t) (Prj_NUM_FAULTINESS - 1); Faultiness++) { - HTM_DIV_Begin ("class=\"%s\"", - (Projects->Filter.Faulti & (1 << Faultiness)) ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActSeePrj); - Filter.Who = Projects->Filter.Who; - Filter.Assign = Projects->Filter.Assign; - Filter.Hidden = Projects->Filter.Hidden; - Filter.Faulti = Projects->Filter.Faulti ^ (1 << Faultiness); // Toggle - Filter.DptCod = Projects->Filter.DptCod; - Prj_PutParams (&Filter, - Projects->SelectedOrder, - Projects->CurrentPage, - -1L); - Ico_PutSettingIconLink (FaultinessIcon[Faultiness], - Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Faultiness]); - Frm_EndForm (); + if ((Projects->Filter.Faulti & (1 << Faultiness))) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActSeePrj); + Filter.Who = Projects->Filter.Who; + Filter.Assign = Projects->Filter.Assign; + Filter.Hidden = Projects->Filter.Hidden; + Filter.Faulti = Projects->Filter.Faulti ^ (1 << Faultiness); // Toggle + Filter.DptCod = Projects->Filter.DptCod; + Prj_PutParams (&Filter, + Projects->SelectedOrder, + Projects->CurrentPage, + -1L); + Ico_PutSettingIconLink (FaultinessIcon[Faultiness], + Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Faultiness]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_setting.c b/swad_setting.c index 7bf20afc1..53761cce2 100644 --- a/swad_setting.c +++ b/swad_setting.c @@ -206,6 +206,7 @@ void Set_SetSettingsFromIP (void) static void Set_PutIconsToSelectSideCols (void) { extern const char *Hlp_PROFILE_Settings_columns; + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_Columns; extern const char *Txt_LAYOUT_SIDE_COLUMNS[4]; unsigned SideCols; @@ -220,14 +221,16 @@ static void Set_PutIconsToSelectSideCols (void) SideCols <= Lay_SHOW_BOTH_COLUMNS; SideCols++) { - HTM_DIV_Begin ("class=\"%s\"",SideCols == Gbl.Prefs.SideCols ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActChgCol); - Par_PutHiddenParamUnsigned (NULL,"SideCols",SideCols); - snprintf (Icon,sizeof (Icon),"layout%u%u_32x20.gif", - SideCols >> 1,SideCols & 1); - Ico_PutSettingIconLink (Icon,Txt_LAYOUT_SIDE_COLUMNS[SideCols]); - Frm_EndForm (); + if (SideCols == Gbl.Prefs.SideCols) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActChgCol); + Par_PutHiddenParamUnsigned (NULL,"SideCols",SideCols); + snprintf (Icon,sizeof (Icon),"layout%u%u_32x20.gif", + SideCols >> 1,SideCols & 1); + Ico_PutSettingIconLink (Icon,Txt_LAYOUT_SIDE_COLUMNS[SideCols]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_theme.c b/swad_theme.c index a0dc1b9b3..6a21aaed9 100644 --- a/swad_theme.c +++ b/swad_theme.c @@ -360,6 +360,17 @@ const char *The_ClassBgHighlight[The_NUM_THEMES] = [The_THEME_DARK ] = "BG_HIGHLIGHT_DARK", }; +const char *The_ClassPrefOn[The_NUM_THEMES] = + { + [The_THEME_WHITE ] = "PREF_ON_WHITE", + [The_THEME_GREY ] = "PREF_ON_GREY", + [The_THEME_PURPLE] = "PREF_ON_PURPLE", + [The_THEME_BLUE ] = "PREF_ON_BLUE", + [The_THEME_YELLOW] = "PREF_ON_YELLOW", + [The_THEME_PINK ] = "PREF_ON_PINK", + [The_THEME_DARK ] = "PREF_ON_DARK", + }; + /*****************************************************************************/ /****************************** Private prototypes ***************************/ /*****************************************************************************/ @@ -373,6 +384,7 @@ static void The_PutIconsTheme (__attribute__((unused)) void *Args); void The_PutIconsToSelectTheme (void) { extern const char *Hlp_PROFILE_Settings_theme; + extern const char *The_ClassPrefOn[The_NUM_THEMES]; extern const char *Txt_Theme_SKIN; The_Theme_t Theme; char Icon[PATH_MAX + 1]; @@ -386,14 +398,16 @@ void The_PutIconsToSelectTheme (void) Theme <= (The_Theme_t) (The_NUM_THEMES - 1); Theme++) { - HTM_DIV_Begin ("class=\"%s\"",Theme == Gbl.Prefs.Theme ? "PREF_ON" : - "PREF_OFF"); - Frm_BeginForm (ActChgThe); - Par_PutHiddenParamString (NULL,"Theme",The_ThemeId[Theme]); - snprintf (Icon,sizeof (Icon),"%s/%s/theme_32x20.gif", - Cfg_ICON_FOLDER_THEMES,The_ThemeId[Theme]); - Ico_PutSettingIconLink (Icon,The_ThemeNames[Theme]); - Frm_EndForm (); + if (Theme == Gbl.Prefs.Theme) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Frm_BeginForm (ActChgThe); + Par_PutHiddenParamString (NULL,"Theme",The_ThemeId[Theme]); + snprintf (Icon,sizeof (Icon),"%s/%s/theme_32x20.gif", + Cfg_ICON_FOLDER_THEMES,The_ThemeId[Theme]); + Ico_PutSettingIconLink (Icon,The_ThemeNames[Theme]); + Frm_EndForm (); HTM_DIV_End (); } Set_EndOneSettingSelector (); diff --git a/swad_timeline_who.c b/swad_timeline_who.c index 08c716b4c..5d92037c8 100644 --- a/swad_timeline_who.c +++ b/swad_timeline_who.c @@ -62,6 +62,7 @@ static void Tml_Who_ShowWarningYouDontFollowAnyUser (void); void Tml_Who_PutFormWho (struct Tml_Timeline *Timeline) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; Usr_Who_t Who; unsigned Mask = 1 << Usr_WHO_ME | 1 << Usr_WHO_FOLLOWED | @@ -76,19 +77,20 @@ void Tml_Who_PutFormWho (struct Tml_Timeline *Timeline) if (Mask & (1 << Who)) { /* Begin container */ - HTM_DIV_Begin ("class=\"%s\"", - Who == Timeline->Who ? "PREF_ON" : - "PREF_OFF"); + if (Who == Timeline->Who) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); - /* Begin form */ - Frm_BeginForm (ActSeeGblTL); - Par_PutHiddenParamUnsigned (NULL,"Who",(unsigned) Who); + /* Begin form */ + Frm_BeginForm (ActSeeGblTL); + Par_PutHiddenParamUnsigned (NULL,"Who",(unsigned) Who); - /* Icon to select which users */ - Usr_PutWhoIcon (Who); + /* Icon to select which users */ + Usr_PutWhoIcon (Who); - /* End form */ - Frm_EndForm (); + /* End form */ + Frm_EndForm (); /* End container */ HTM_DIV_End (); diff --git a/swad_user.c b/swad_user.c index 16f747ced..0d6f48dd4 100644 --- a/swad_user.c +++ b/swad_user.c @@ -3567,44 +3567,49 @@ void Usr_FreeListOtherRecipients (void) void Usr_ShowFormsToSelectUsrListType (void (*FuncParams) (void *Args),void *Args) { + extern const char *The_ClassPrefOn[The_NUM_THEMES]; + Set_BeginSettingsHead (); Set_BeginOneSettingSelector (); /***** Select Set_USR_LIST_AS_CLASS_PHOTO *****/ - HTM_DIV_Begin ("class=\"%s\"", - Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO ? "PREF_ON" : - "PREF_OFF"); - Set_FormToSelectUsrListType (FuncParams,Args, - Set_USR_LIST_AS_CLASS_PHOTO); + if (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_CLASS_PHOTO) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Set_FormToSelectUsrListType (FuncParams,Args, + Set_USR_LIST_AS_CLASS_PHOTO); - /* Number of columns in the class photo */ - Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action - Usr_USER_LIST_SECTION_ID); - Grp_PutParamsCodGrps (); - Set_PutParamUsrListType (Set_USR_LIST_AS_CLASS_PHOTO); - Set_PutParamListWithPhotos (); - Usr_PutSelectorNumColsClassPhoto (); - if (FuncParams) - FuncParams (Args); - Frm_EndForm (); + /* Number of columns in the class photo */ + Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action + Usr_USER_LIST_SECTION_ID); + Grp_PutParamsCodGrps (); + Set_PutParamUsrListType (Set_USR_LIST_AS_CLASS_PHOTO); + Set_PutParamListWithPhotos (); + Usr_PutSelectorNumColsClassPhoto (); + if (FuncParams) + FuncParams (Args); + Frm_EndForm (); HTM_DIV_End (); /***** Select Usr_LIST_AS_LISTING *****/ - HTM_DIV_Begin ("class=\"%s\"", - Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_LISTING ? "PREF_ON" : - "PREF_OFF"); - Set_FormToSelectUsrListType (FuncParams,Args, - Set_USR_LIST_AS_LISTING); + if (Gbl.Usrs.Me.ListType == Set_USR_LIST_AS_LISTING) + HTM_DIV_Begin ("class=\"PREF_ON %s\"",The_ClassPrefOn[Gbl.Prefs.Theme]); + else + HTM_DIV_Begin ("class=\"PREF_OFF\""); + Set_FormToSelectUsrListType (FuncParams,Args, + Set_USR_LIST_AS_LISTING); + + /* See the photos in list? */ + Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action + Usr_USER_LIST_SECTION_ID); + Grp_PutParamsCodGrps (); + Set_PutParamUsrListType (Set_USR_LIST_AS_LISTING); + if (FuncParams) + FuncParams (Args); + Usr_PutCheckboxListWithPhotos (); + Frm_EndForm (); - /* See the photos in list? */ - Frm_BeginFormAnchor (Gbl.Action.Act, // Repeat current action - Usr_USER_LIST_SECTION_ID); - Grp_PutParamsCodGrps (); - Set_PutParamUsrListType (Set_USR_LIST_AS_LISTING); - if (FuncParams) - FuncParams (Args); - Usr_PutCheckboxListWithPhotos (); - Frm_EndForm (); HTM_DIV_End (); Set_EndOneSettingSelector ();