Version 21.92: Apr 20, 2022 Default theme is white when printing.

This commit is contained in:
acanas 2022-04-20 22:56:58 +02:00
parent 003951946a
commit a283e2f272
37 changed files with 366 additions and 440 deletions

View File

@ -474,7 +474,7 @@ a:hover /* Default ==> underlined */
.BC_PINK {color:#ffc040;}
.BC_DARK {color:#ffb42e;}
.BC_ICON
.BC_ICO
{
display:inline-block;
width:20px;
@ -483,6 +483,15 @@ a:hover /* Default ==> underlined */
margin:-1px 0 1px 0;
}
/* Creating filter from RGB: https://codepen.io/sosuke/pen/Pjoqqp */
.BC_ICO_WHITE {filter: invert(45%) sepia(0%) saturate(14%) hue-rotate(159deg) brightness(96%) contrast(89%);} /* #707070 */
.BC_ICO_GREY {filter: invert(61%) sepia(96%) saturate(366%) hue-rotate(352deg) brightness(103%) contrast(101%);} /* #ffb42e */
.BC_ICO_PURPLE {filter: invert(77%) sepia(91%) saturate(1669%) hue-rotate(327deg) brightness(110%) contrast(103%);} /* #ffc040 */
.BC_ICO_BLUE {filter: invert(77%) sepia(91%) saturate(1669%) hue-rotate(327deg) brightness(110%) contrast(103%);} /* #ffc040 */
.BC_ICO_YELLOW {filter: invert(61%) sepia(96%) saturate(366%) hue-rotate(352deg) brightness(103%) contrast(101%);} /* #ffb42e */
.BC_ICO_PINK {filter: invert(77%) sepia(91%) saturate(1669%) hue-rotate(327deg) brightness(110%) contrast(103%);} /* #ffc040 */
.BC_ICO_DARK {filter: invert(61%) sepia(96%) saturate(366%) hue-rotate(352deg) brightness(103%) contrast(101%);} /* #ffb42e */
/******** Big name of country, institution, center, degree or course *********/
#main_title
{
@ -584,6 +593,15 @@ a:hover /* Default ==> underlined */
.NOTIF_PINK {color:white; font-size:12pt; white-space:nowrap;}
.NOTIF_DARK {color:#e0e0e0; font-size:12pt; white-space:nowrap;}
/* Creating filter from RGB: https://codepen.io/sosuke/pen/Pjoqqp */
.NOTIF_ICO_WHITE {filter: invert(45%) sepia(0%) saturate(14%) hue-rotate(159deg) brightness(96%) contrast(89%);} /* #707070 */
.NOTIF_ICO_GREY {filter: invert(98%) sepia(44%) saturate(30%) hue-rotate(167deg) brightness(116%) contrast(76%);} /* #e0e0e0 */
.NOTIF_ICO_PURPLE {filter: invert(98%) sepia(44%) saturate(30%) hue-rotate(167deg) brightness(116%) contrast(76%);} /* #e0e0e0 */
.NOTIF_ICO_BLUE {filter: invert(100%) sepia(19%) saturate(4118%) hue-rotate(214deg) brightness(115%) contrast(100%);} /* #ffffff */
.NOTIF_ICO_YELLOW {filter: invert(89%) sepia(3%) saturate(180%) hue-rotate(251deg) brightness(79%) contrast(92%);} /* #b3b0b3 */
.NOTIF_ICO_PINK {filter: invert(100%) sepia(19%) saturate(4118%) hue-rotate(214deg) brightness(115%) contrast(100%);} /* #ffffff */
.NOTIF_ICO_DARK {filter: invert(98%) sepia(44%) saturate(30%) hue-rotate(167deg) brightness(116%) contrast(76%);} /* #e0e0e0 */
/******************* Layout (third heading row with tabs) ********************/
.HEAD_ROW_3_WHITE
{
@ -1952,37 +1970,37 @@ a:hover img.CENTER_PHOTO_SHOW
vertical-align:middle;
}
/* Creating filter from RGB: https://codepen.io/sosuke/pen/Pjoqqp */
.BLACK_ICO_WHITE,
.BLACK_ICO_GREY,
.BLACK_ICO_PURPLE,
.BLACK_ICO_BLUE,
.BLACK_ICO_YELLOW,
.BLACK_ICO_PINK {filter: invert(26%) sepia(0%) saturate(1%) hue-rotate(288deg) brightness(97%) contrast(102%);} /* #404040 */
.BLACK_ICO_DARK {filter: invert(92%) sepia(44%) saturate(2%) hue-rotate(176deg) brightness(110%) contrast(88%);} /* #f0f0f0 */
.ICO_BLACK_WHITE,
.ICO_BLACK_GREY,
.ICO_BLACK_PURPLE,
.ICO_BLACK_BLUE,
.ICO_BLACK_YELLOW,
.ICO_BLACK_PINK {filter: invert(26%) sepia(0%) saturate(1%) hue-rotate(288deg) brightness(97%) contrast(102%);} /* #404040 */
.ICO_BLACK_DARK {filter: invert(92%) sepia(44%) saturate(2%) hue-rotate(176deg) brightness(110%) contrast(88%);} /* #f0f0f0 */
.GREEN_ICO_WHITE,
.GREEN_ICO_GREY,
.GREEN_ICO_PURPLE,
.GREEN_ICO_BLUE,
.GREEN_ICO_YELLOW,
.GREEN_ICO_PINK {filter: invert(31%) sepia(16%) saturate(3727%) hue-rotate(60deg) brightness(94%) contrast(104%);} /* #246600 */
.GREEN_ICO_DARK {filter: invert(75%) sepia(13%) saturate(1915%) hue-rotate(46deg) brightness(89%) contrast(89%);} /* #80c040 */
.ICO_GREEN_WHITE,
.ICO_GREEN_GREY,
.ICO_GREEN_PURPLE,
.ICO_GREEN_BLUE,
.ICO_GREEN_YELLOW,
.ICO_GREEN_PINK {filter: invert(31%) sepia(16%) saturate(3727%) hue-rotate(60deg) brightness(94%) contrast(104%);} /* #246600 */
.ICO_GREEN_DARK {filter: invert(75%) sepia(13%) saturate(1915%) hue-rotate(46deg) brightness(89%) contrast(89%);} /* #80c040 */
.RED_ICO_WHITE,
.RED_ICO_GREY,
.RED_ICO_PURPLE,
.RED_ICO_BLUE,
.RED_ICO_YELLOW,
.RED_ICO_PINK {filter: invert(8%) sepia(61%) saturate(5373%) hue-rotate(0deg) brightness(92%) contrast(114%);} /* #660000 */
.RED_ICO_DARK {filter: invert(51%) sepia(58%) saturate(1457%) hue-rotate(320deg) brightness(126%) contrast(104%);} /* #ff8080 */
.ICO_RED_WHITE,
.ICO_RED_GREY,
.ICO_RED_PURPLE,
.ICO_RED_BLUE,
.ICO_RED_YELLOW,
.ICO_RED_PINK {filter: invert(8%) sepia(61%) saturate(5373%) hue-rotate(0deg) brightness(92%) contrast(114%);} /* #660000 */
.ICO_RED_DARK {filter: invert(51%) sepia(58%) saturate(1457%) hue-rotate(320deg) brightness(126%) contrast(104%);} /* #ff8080 */
.WHITE_ICO_WHITE,
.WHITE_ICO_GREY,
.WHITE_ICO_PURPLE,
.WHITE_ICO_BLUE,
.WHITE_ICO_YELLOW,
.WHITE_ICO_PINK {filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(194deg) brightness(106%) contrast(105%);} /* #ffffff */
.WHITE_ICO_DARK {filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(194deg) brightness(106%) contrast(105%);} /* #ffffff */
.ICO_WHITE_WHITE,
.ICO_WHITE_GREY,
.ICO_WHITE_PURPLE,
.ICO_WHITE_BLUE,
.ICO_WHITE_YELLOW,
.ICO_WHITE_PINK {filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(194deg) brightness(106%) contrast(105%);} /* #ffffff */
.ICO_WHITE_DARK {filter: invert(100%) sepia(100%) saturate(0%) hue-rotate(194deg) brightness(106%) contrast(105%);} /* #ffffff */
/********************************** Frame ************************************/
.FRAME_INLINE
@ -2904,8 +2922,22 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.GRP_TITLE {color:#4d88a1; font-size:15pt; font-weight:bold;}
.ASG_TITLE {color:#4d88a1; font-size:15pt; font-weight:bold;}
.ASG_TITLE_LIGHT {color:#afc4cc; font-size:15pt; font-weight:bold;}
.ASG_TITLE_WHITE,
.ASG_TITLE_GREY,
.ASG_TITLE_PURPLE,
.ASG_TITLE_BLUE,
.ASG_TITLE_YELLOW,
.ASG_TITLE_PINK {color:#4d88a1; font-size:15pt; font-weight:bold;}
.ASG_TITLE_DARK {color:#afc4cc; font-size:15pt; font-weight:bold;}
.ASG_TITLE_LIGHT_WHITE,
.ASG_TITLE_LIGHT_GREY,
.ASG_TITLE_LIGHT_PURPLE,
.ASG_TITLE_LIGHT_BLUE,
.ASG_TITLE_LIGHT_YELLOW,
.ASG_TITLE_LIGHT_PINK {color:rgba( 77,136,161,0.3); font-size:15pt; font-weight:bold;}
.ASG_TITLE_LIGHT_DARK {color:rgba(175,196,204,0.3); font-size:15pt; font-weight:bold;}
.ASG_LABEL {color:#4d88a1; font-size:13pt;}
.ASG_LABEL_LIGHT {color:#afc4cc; font-size:13pt;}
.ASG_GRP {color:#4d88a1; font-size:12pt;}
@ -4407,13 +4439,13 @@ table.CELLS_PAD_10 > tbody > tr > td {padding:10px;}
.MSG_AUT_NEW_PINK {color:#4d88a1; font-size:11pt; font-weight:bold;}
.MSG_AUT_NEW_DARK {color:#afc4cc; font-size:11pt; font-weight:bold;}
.MSG_AUT_REM_WHITE,
.MSG_AUT_REM_GREY,
.MSG_AUT_REM_PURPLE,
.MSG_AUT_REM_BLUE,
.MSG_AUT_REM_YELLOW,
.MSG_AUT_REM_PINK {color:#afc4cc; font-size:11pt;}
.MSG_AUT_REM_DARK {color:#4d88a1; font-size:11pt;}
.MSG_AUT_LIGHT_WHITE,
.MSG_AUT_LIGHT_GREY,
.MSG_AUT_LIGHT_PURPLE,
.MSG_AUT_LIGHT_BLUE,
.MSG_AUT_LIGHT_YELLOW,
.MSG_AUT_LIGHT_PINK {color:rgba( 77,136,161,0.3); font-size:11pt;}
.MSG_AUT_LIGHT_DARK {color:rgba(175,196,204,0.3); font-size:11pt;}
.MSG_DATE {color:#4d88a1; font-size:11pt;}
.MSG_DATE_NEW {color:#4d88a1; font-size:11pt; font-weight:bold;}

View File

@ -1730,7 +1730,7 @@ function disableDetailedClicks () {
/*****************************************************************************/
function Cal_DrawCalendar (id,FirstDayOfWeek,
TimeUTC,CurrentPlcCod,PrintView,Theme,
TimeUTC,CurrentPlcCod,PrintView,ColorSuffix,
CGI,FormGoToCalendarParams,FormEventParams) {
var StartingMonth = [ // Calendar starts one row before current month
10, // January --> October
@ -1776,7 +1776,7 @@ function Cal_DrawCalendar (id,FirstDayOfWeek,
DrawMonth (MonthId,FirstDayOfWeek,
Year,Month,
CurrentMonth,CurrentDay,
CurrentPlcCod,true,PrintView,Theme,
CurrentPlcCod,true,PrintView,ColorSuffix,
CGI,FormGoToCalendarParams,FormEventParams);
Gbl_HTMLContent += '</td>';
if (++Month == 13) {
@ -1795,7 +1795,7 @@ function Cal_DrawCalendar (id,FirstDayOfWeek,
/***************************** Draw current month ****************************/
/*****************************************************************************/
function DrawCurrentMonth (id,FirstDayOfWeek,TimeUTC,CurrentPlcCod,Theme,
function DrawCurrentMonth (id,FirstDayOfWeek,TimeUTC,CurrentPlcCod,ColorSuffix,
CGI,FormGoToCalendarParams,FormEventParams) {
var d = new Date();
d.setTime(TimeUTC * 1000);
@ -1806,7 +1806,7 @@ function DrawCurrentMonth (id,FirstDayOfWeek,TimeUTC,CurrentPlcCod,Theme,
DrawMonth (id,FirstDayOfWeek,
Year,Month,
Month,CurrentDay,
CurrentPlcCod,false,false,Theme,
CurrentPlcCod,false,false,ColorSuffix,
CGI,FormGoToCalendarParams,FormEventParams);
document.getElementById(id).innerHTML = Gbl_HTMLContent;
}
@ -1820,7 +1820,7 @@ function DrawCurrentMonth (id,FirstDayOfWeek,TimeUTC,CurrentPlcCod,Theme,
function DrawMonth (id,FirstDayOfWeek,
YearToDraw,MonthToDraw,
CurrentMonth,CurrentDay,
CurrentPlcCod,DrawingCalendar,PrintView,Theme,
CurrentPlcCod,DrawingCalendar,PrintView,ColorSuffix,
CGI,FormGoToCalendarParams,FormEventParams) {
var Hld_HOLIDAY = 0;
var Hld_NON_SCHOOL_PERIOD = 1;
@ -1873,13 +1873,13 @@ function DrawMonth (id,FirstDayOfWeek,
/***** Month name *****/
if (DrawingCalendar)
Gbl_HTMLContent += '<div class="MONTH MONTH_' + Colors[Theme] + '">';
Gbl_HTMLContent += '<div class="MONTH MONTH_' + ColorSuffix + '">';
else {
FormId = id + '_show_calendar';
Gbl_HTMLContent += '<form method="post" action="' + CGI + '" id="' + FormId + '">' +
FormGoToCalendarParams +
'<div class="MONTH">' +
'<a href="" class="MONTH_' + Colors[Theme] +
'<a href="" class="MONTH_' + ColorSuffix +
'" onclick="document.getElementById(\'' + FormId +
'\').submit();return false;">';
}
@ -1893,8 +1893,8 @@ function DrawMonth (id,FirstDayOfWeek,
Gbl_HTMLContent += '<table class="MONTH_TABLE_DAYS">' + '<tr>';
for (DayOfWeek = 0; DayOfWeek < 7; DayOfWeek++)
Gbl_HTMLContent += '<td class="' +
((DayOfWeek == 6 - FirstDayOfWeek) ? 'DAY DAY_NO_WRK_HEAD_' + Colors[Theme] :
'DAY DAY_WRK_HEAD_' + Colors[Theme]) +
((DayOfWeek == 6 - FirstDayOfWeek) ? 'DAY DAY_NO_WRK_HEAD_' + ColorSuffix :
'DAY DAY_WRK_HEAD_' + ColorSuffix) +
'">' +
DAYS_CAPS[(DayOfWeek + FirstDayOfWeek) % 7] +
'</td>';
@ -1911,8 +1911,8 @@ function DrawMonth (id,FirstDayOfWeek,
DayOfWeek < 7;
DayOfWeek++) {
/***** Set class for day being drawn *****/
ClassForDay = ((Mon == MonthToDraw) ? 'DAY_WRK_' + Colors[Theme] :
'DAY_WRK_LIGHT_' + Colors[Theme]);
ClassForDay = ((Mon == MonthToDraw) ? 'DAY_WRK_' + ColorSuffix :
'DAY_WRK_LIGHT_' + ColorSuffix);
TextForDay = '';
/* Check if day is a holiday or a school day */
@ -1929,16 +1929,16 @@ function DrawMonth (id,FirstDayOfWeek,
switch (Hlds[NumHld].HldTyp) {
case Hld_HOLIDAY:
if (Hlds[NumHld].StartDate == YYYYMMDD) { // If start date == date being drawn
ClassForDay = ((Mon == MonthToDraw) ? 'DAY_HLD_' + Colors[Theme] :
'DAY_HLD_LIGHT_' + Colors[Theme]);
ClassForDay = ((Mon == MonthToDraw) ? 'DAY_HLD_' + ColorSuffix :
'DAY_HLD_LIGHT_' + ColorSuffix);
TextForDay = Hlds[NumHld].Name;
ContinueSearching = false;
}
break;
case Hld_NON_SCHOOL_PERIOD:
if (Hlds[NumHld].EndDate >= YYYYMMDD) { // If start date <= date being drawn <= end date
ClassForDay = ((Mon == MonthToDraw) ? 'DAY_NO_WORK_' + Colors[Theme] :
'DAY_NO_WORK_LIGHT_' + Colors[Theme]);
ClassForDay = ((Mon == MonthToDraw) ? 'DAY_NO_WORK_' + ColorSuffix :
'DAY_NO_WORK_LIGHT_' + ColorSuffix);
TextForDay = Hlds[NumHld].Name;
}
break;
@ -1947,8 +1947,8 @@ function DrawMonth (id,FirstDayOfWeek,
/* Day being drawn is sunday? */
if (DayOfWeek == 6 - FirstDayOfWeek) // All the sundays are holidays
ClassForDay = (Mon == MonthToDraw) ? 'DAY_HLD_' + Colors[Theme] :
'DAY_HLD_LIGHT_' + Colors[Theme];
ClassForDay = (Mon == MonthToDraw) ? 'DAY_HLD_' + ColorSuffix :
'DAY_HLD_LIGHT_' + ColorSuffix;
/* Date being drawn is today? */
IsToday = (Yea == YearToDraw &&

View File

@ -180,7 +180,7 @@ void MFU_ShowMyMFUActions (void)
void MFU_WriteBigMFUActions (struct MFU_ListMFUActions *ListMFUActions)
{
extern const char *Hlp_ANALYTICS_Frequent;
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
extern const char *Txt_My_frequent_actions;
extern const char *Txt_TABS_TXT[Tab_NUM_TABS];
unsigned NumAct;
@ -189,6 +189,7 @@ void MFU_WriteBigMFUActions (struct MFU_ListMFUActions *ListMFUActions)
char TabStr[MFU_MAX_BYTES_TAB + 1];
char MenuStr[MFU_MAX_BYTES_MENU + 1];
char TabMenuStr[MFU_MAX_BYTES_TAB + 6 + MFU_MAX_BYTES_MENU + 1];
char URLIconSet[PATH_MAX + 1];
/***** Begin box *****/
Box_BoxBegin (NULL,Txt_My_frequent_actions,
@ -221,9 +222,11 @@ void MFU_WriteBigMFUActions (struct MFU_ListMFUActions *ListMFUActions)
HTM_BUTTON_Submit_Begin (TabMenuStr,
"class=\"BT_LINK FORM_IN_%s NOWRAP\"",
The_GetSuffix ());
HTM_IMG (Gbl.Prefs.URLIconSet,Act_GetIcon (Action),MenuStr,
"class=\"%s\"",
Ico_ClassColor[Ico_BLACK][Gbl.Prefs.Theme]);
snprintf (URLIconSet,sizeof (URLIconSet),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet]);
HTM_IMG (URLIconSet,Act_GetIcon (Action),MenuStr,
"class=\"ICO_%s_%s\"",
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
HTM_TxtF ("&nbsp;%s",TabMenuStr);
HTM_BUTTON_End ();
Frm_EndForm ();
@ -247,7 +250,7 @@ void MFU_WriteBigMFUActions (struct MFU_ListMFUActions *ListMFUActions)
void MFU_WriteSmallMFUActions (struct MFU_ListMFUActions *ListMFUActions)
{
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
extern const char *Txt_My_frequent_actions;
extern const char *Txt_Frequent_ACTIONS;
extern const char *Txt_TABS_TXT[Tab_NUM_TABS];
@ -257,6 +260,7 @@ void MFU_WriteSmallMFUActions (struct MFU_ListMFUActions *ListMFUActions)
char TabStr[MFU_MAX_BYTES_TAB + 1];
char MenuStr[MFU_MAX_BYTES_MENU + 1];
char TabMenuStr[MFU_MAX_BYTES_TAB + 6 + MFU_MAX_BYTES_MENU + 1];
char URLIconSet[PATH_MAX + 1];
/***** Begin div and link *****/
HTM_DIV_Begin ("id=\"MFU_actions\" class=\"MFU_%s\"",
@ -289,9 +293,11 @@ void MFU_WriteSmallMFUActions (struct MFU_ListMFUActions *ListMFUActions)
HTM_LI_Begin ("class=\"ICO_HIGHLIGHT\"");
Frm_BeginForm (Action);
HTM_BUTTON_Submit_Begin (TabMenuStr,"class=\"BT_LINK\"");
HTM_IMG (Gbl.Prefs.URLIconSet,Act_GetIcon (Action),MenuStr,
"class=\"%s\"",
Ico_ClassColor[Ico_BLACK][Gbl.Prefs.Theme]);
snprintf (URLIconSet,sizeof (URLIconSet),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet]);
HTM_IMG (URLIconSet,Act_GetIcon (Action),MenuStr,
"class=\"ICO_%s_%s\"",
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
HTM_TxtF ("&nbsp;%s",MenuStr);
HTM_BUTTON_End ();
Frm_EndForm ();

View File

@ -842,9 +842,10 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
}
/* Event */
HTM_TD_Begin ("class=\"%s LT %s\"",
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
AgdEvent.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
HTM_ARTICLE_Begin (Anchor);
HTM_Txt (AgdEvent.Event);
@ -853,8 +854,10 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
/* Location */
HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ());
HTM_DIV_Begin ("class=\"%s\"",AgdEvent.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE");
HTM_DIV_Begin ("class=\"%s_%s\"",
AgdEvent.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix ());
HTM_Txt (AgdEvent.Location);
HTM_DIV_End ();
HTM_TD_End ();

View File

@ -457,13 +457,15 @@ static void Asg_ShowOneAssignment (struct Asg_Assignments *Assignments,
/* Assignment title */
if (PrintView)
HTM_TD_Begin ("class=\"%s LT\"",
Asg.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE");
else
HTM_TD_Begin ("class=\"%s LT %s\"",
HTM_TD_Begin ("class=\"LT %s_%s\"",
Asg.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
Asg.Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
HTM_ARTICLE_Begin (Anchor);
HTM_Txt (Asg.Title);

View File

@ -515,13 +515,15 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
/* Attendance event title */
if (ShowOnlyThisAttEventComplete)
HTM_TD_Begin ("class=\"%s LT\"",
Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE");
else
HTM_TD_Begin ("class=\"%s LT %s\"",
HTM_TD_Begin ("class=\"LT %s_%s\"",
Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
HTM_ARTICLE_Begin (Anchor);
Att_PutLinkAttEvent (Event,Txt_View_event,Event->Title);
@ -530,13 +532,15 @@ static void Att_ShowOneAttEvent (struct Att_Events *Events,
/* Number of students in this event */
if (ShowOnlyThisAttEventComplete)
HTM_TD_Begin ("class=\"%s RT\"",
Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE");
else
HTM_TD_Begin ("class=\"%s RT %s\"",
HTM_TD_Begin ("class=\"RT %s_%s\"",
Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"RT %s_%s %s\"",
Event->Hidden ? "ASG_TITLE_LIGHT" :
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
HTM_Unsigned (Event->NumStdsTotal);
HTM_TD_End ();

View File

@ -25,8 +25,10 @@
/********************************* Headers ***********************************/
/*****************************************************************************/
#define _GNU_SOURCE // For asprintf
#include <stdbool.h> // For boolean type
#include <stdlib.h> // For malloc and free
#include <stdio.h> // For asprintf
#include "swad_action.h"
#include "swad_box.h"
@ -82,42 +84,32 @@ void Box_BoxBegin (const char *Width,const char *Title,
void (*FunctionToDrawContextualIcons) (void *Args),void *Args,
const char *HelpLink,Box_Closable_t Closable)
{
static const char *BgColor[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "FRAME FRAME_WHITE",
[The_THEME_GREY ] = "FRAME FRAME_GREY",
[The_THEME_PURPLE] = "FRAME FRAME_PURPLE",
[The_THEME_BLUE ] = "FRAME FRAME_BLUE",
[The_THEME_YELLOW] = "FRAME FRAME_YELLOW",
[The_THEME_PINK ] = "FRAME FRAME_PINK",
[The_THEME_DARK ] = "FRAME FRAME_DARK",
};
char *ClassFrame;
/***** Begin box *****/
if (asprintf (&ClassFrame,"FRAME FRAME_%s",The_GetSuffix ()) < 0)
Err_NotEnoughMemoryExit ();
Box_BoxInternalBegin (Width,Title,
FunctionToDrawContextualIcons,Args,
HelpLink,Closable,
BgColor[Gbl.Prefs.Theme]);
ClassFrame);
free (ClassFrame);
}
void Box_BoxShadowBegin (const char *Width,const char *Title,
void (*FunctionToDrawContextualIcons) (void *Args),void *Args,
const char *HelpLink)
{
static const char *BgColor[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "FRAME_SHADOW FRAME_SHADOW_WHITE",
[The_THEME_GREY ] = "FRAME_SHADOW FRAME_SHADOW_GREY",
[The_THEME_PURPLE] = "FRAME_SHADOW FRAME_SHADOW_PURPLE",
[The_THEME_BLUE ] = "FRAME_SHADOW FRAME_SHADOW_BLUE",
[The_THEME_YELLOW] = "FRAME_SHADOW FRAME_SHADOW_YELLOW",
[The_THEME_PINK ] = "FRAME_SHADOW FRAME_SHADOW_PINK",
[The_THEME_DARK ] = "FRAME_SHADOW FRAME_SHADOW_DARK",
};
char *ClassFrame;
/***** Begin box *****/
if (asprintf (&ClassFrame,"FRAME_SHADOW FRAME_SHADOW_%s",The_GetSuffix ()) < 0)
Err_NotEnoughMemoryExit ();
Box_BoxInternalBegin (Width,Title,
FunctionToDrawContextualIcons,Args,
HelpLink,Box_NOT_CLOSABLE,
BgColor[Gbl.Prefs.Theme]);
ClassFrame);
free (ClassFrame);
}
// Return pointer to box id string

View File

@ -5141,7 +5141,6 @@ static void Brw_PutIconNewFileOrFolder (void)
static void Brw_PutIconFileWithLinkToViewMetadata (const struct FileMetadata *FileMetadata)
{
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Txt_Link;
/***** Begin cell *****/
@ -5161,8 +5160,8 @@ static void Brw_PutIconFileWithLinkToViewMetadata (const struct FileMetadata *Fi
true); // Put link to view metadata
else
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"link.svg",Txt_Link,
"class=\"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16 %s\"",
Ico_ClassColor[Ico_BLACK][Gbl.Prefs.Theme]);
"class=\"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16 ICO_%s_%s\"",
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
/***** End form *****/
Frm_EndForm ();
@ -8511,16 +8510,6 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
extern const char *Txt_Check_marks_in_the_file;
extern const char *Txt_Download;
extern const char *Txt_Link;
static const char *ClassFilename[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "FILENAME_BIG_WHITE",
[The_THEME_GREY ] = "FILENAME_BIG_GREY",
[The_THEME_PURPLE] = "FILENAME_BIG_PURPLE",
[The_THEME_BLUE ] = "FILENAME_BIG_BLUE",
[The_THEME_YELLOW] = "FILENAME_BIG_YELLOW",
[The_THEME_PINK ] = "FILENAME_BIG_PINK",
[The_THEME_DARK ] = "FILENAME_BIG_DARK",
};
const char *Title;
/***** On the screen a link will be shown to download the file *****/
@ -8540,7 +8529,7 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
/* Begin link */
HTM_BUTTON_Submit_Begin (Txt_Check_marks_in_the_file,
"class=\"%s\"",ClassFilename[Gbl.Prefs.Theme]);
"class=\"FILENAME_BIG_%s\"",The_GetSuffix ());
if (FileMetadata->FilFolLnk.Type == Brw_IS_FILE)
Brw_PutIconFile (FileMetadata->FilFolLnk.Name,
@ -8564,8 +8553,9 @@ static void Brw_WriteBigLinkToDownloadFile (const char *URL,
Txt_Download;
/* Put anchor and filename */
HTM_A_Begin ("href=\"%s\" class=\"%s\" title=\"%s\" target=\"_blank\"",
URL,ClassFilename[Gbl.Prefs.Theme],Title);
HTM_A_Begin ("href=\"%s\" title=\"%s\" target=\"_blank\""
" class=\"FILENAME_BIG_%s\"",
URL,Title,The_GetSuffix ());
if (FileMetadata->FilFolLnk.Type == Brw_IS_FILE)
Brw_PutIconFile (FileMetadata->FilFolLnk.Name,
"ICO40x40",

View File

@ -217,11 +217,11 @@ void Cal_DrawCurrentMonth (void)
/* Write script to draw the month */
HTM_SCRIPT_Begin (NULL,NULL);
HTM_Txt ("\tGbl_HTMLContent = '';");
HTM_TxtF ("\tDrawCurrentMonth ('CurrentMonth',%u,%ld,%ld,%u,'%s/%s',",
HTM_TxtF ("\tDrawCurrentMonth ('CurrentMonth',%u,%ld,%ld,'%s','%s/%s',",
Gbl.Prefs.FirstDayOfWeek,
(long) Gbl.StartExecutionTimeUTC,
Gbl.Hierarchy.Ctr.PlcCod,
Gbl.Prefs.Theme,
The_GetSuffix (),
Cfg_URL_SWAD_CGI,Lan_STR_LANG_ID[Gbl.Prefs.Language]);
Frm_SetParamsForm (ParamsStr,ActSeeCal,true);
HTM_TxtF ("'%s',",ParamsStr);
@ -286,13 +286,13 @@ static void Cal_DrawCalendar (Act_Action_t ActionSeeCalendar,
/* Write script to draw the month */
HTM_SCRIPT_Begin (NULL,NULL);
HTM_Txt ("\tGbl_HTMLContent = '';");
HTM_TxtF ("\tCal_DrawCalendar('calendar',%u,%ld,%ld,%s,%u,'%s/%s',",
HTM_TxtF ("\tCal_DrawCalendar('calendar',%u,%ld,%ld,%s,'%s','%s/%s',",
Gbl.Prefs.FirstDayOfWeek,
(long) Gbl.StartExecutionTimeUTC,
Gbl.Hierarchy.Ctr.PlcCod,
PrintView ? "true" :
"false",
Gbl.Prefs.Theme,
The_GetSuffix (),
Cfg_URL_SWAD_CGI,Lan_STR_LANG_ID[Gbl.Prefs.Language]);
Frm_SetParamsForm (ParamsStr,ActionSeeCalendar,true);
HTM_TxtF ("'%s',",ParamsStr);

View File

@ -930,16 +930,6 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
[Cfe_FORM_VIEW ][Cfe_HIDDEN_CALL_FOR_EXAM ] = "CALL_FOR_EXAM_VISIBLE",
[Cfe_FORM_VIEW ][Cfe_DELETED_CALL_FOR_EXAM] = NULL, // Not applicable here
};
static const char *ClassTitle[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "EXAM_TIT_WHITE",
[The_THEME_GREY ] = "EXAM_TIT_GREY",
[The_THEME_PURPLE] = "EXAM_TIT_PURPLE",
[The_THEME_BLUE ] = "EXAM_TIT_BLUE",
[The_THEME_YELLOW] = "EXAM_TIT_YELLOW",
[The_THEME_PINK ] = "EXAM_TIT_PINK",
[The_THEME_DARK ] = "EXAM_TIT_DARK",
};
/***** Get data of institution of this degree *****/
Ins.InsCod = Gbl.Hierarchy.Ins.InsCod;
@ -991,11 +981,11 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
/***** Institution logo *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"CM %s\"",
ClassTitle[Gbl.Prefs.Theme]);
HTM_TD_Begin ("colspan=\"2\" class=\"CM EXAM_TIT_%s\"",
The_GetSuffix ());
if (TypeViewCallForExam == Cfe_NORMAL_VIEW)
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
Ins.WWW,ClassTitle[Gbl.Prefs.Theme]);
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"EXAM_TIT_%s\"",
Ins.WWW,The_GetSuffix ());
Lgo_DrawLogo (HieLvl_INS,Ins.InsCod,Ins.FullName,64,NULL,true);
HTM_BR ();
HTM_Txt (Ins.FullName);
@ -1006,12 +996,12 @@ static void Cfe_ShowCallForExam (struct Cfe_CallsForExams *CallsForExams,
/***** Degree *****/
HTM_TR_Begin (NULL);
HTM_TD_Begin ("colspan=\"2\" class=\"CM %s\"",
ClassTitle[Gbl.Prefs.Theme]);
HTM_TD_Begin ("colspan=\"2\" class=\"CM EXAM_TIT_%s\"",
The_GetSuffix ());
if (TypeViewCallForExam == Cfe_NORMAL_VIEW)
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"%s\"",
HTM_A_Begin ("href=\"%s\" target=\"_blank\" class=\"EXAM_TIT_%s\"",
Gbl.Hierarchy.Deg.WWW,
ClassTitle[Gbl.Prefs.Theme]);
The_GetSuffix ());
HTM_Txt (Gbl.Hierarchy.Deg.FullName);
if (TypeViewCallForExam == Cfe_NORMAL_VIEW)
HTM_A_End ();

View File

@ -606,10 +606,12 @@ TODO: Fix bug: error al enviar un mensaje a dos recipientes, error on duplicate
TODO: Attach pdf files in multimedia.
*/
#define Log_PLATFORM_VERSION "SWAD 21.91.5 (2022-04-07)"
#define CSS_FILE "swad21.91.5.css"
#define JS_FILE "swad21.78.2.js"
#define Log_PLATFORM_VERSION "SWAD 21.92 (2022-04-20)"
#define CSS_FILE "swad21.92.css"
#define JS_FILE "swad21.92.js"
/*
Version 21.92: Apr 20, 2022 Default theme is white when printing. (323246 lines)
Version 21.91.6: Apr 07, 2022 Working on design of dark theme. (323347 lines)
Version 21.91.5: Apr 07, 2022 Working on design of dark theme. (323314 lines)
Version 21.91.4: Apr 05, 2022 Working on design of dark theme. (323247 lines)
Version 21.91.3: Apr 05, 2022 Changes in syllabus. (323227 lines)

View File

@ -2215,8 +2215,9 @@ void Crs_PutIconToSelectMyCoursesInBreadcrumb (void)
Frm_BeginForm (ActMyCrs);
/***** Put icon with link *****/
HTM_INPUT_IMAGE (Gbl.Prefs.URLTheme,"sitemap.svg",Txt_My_courses,
"class=\"BC_ICON ICO_HIGHLIGHT\"");
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"sitemap.svg",Txt_My_courses,
"class=\"BC_ICO BC_ICO_%s ICO_HIGHLIGHT\"",
The_GetSuffix ());
/***** End form *****/
Frm_EndForm ();

View File

@ -1630,7 +1630,6 @@ void Dat_WriteScriptMonths (void)
extern const char *Txt_MONTHS_SMALL[12];
extern const char *Txt_MONTHS_SMALL_SHORT[12];
unsigned NumMonth;
The_Theme_t Theme;
/***** Month names (full) *****/
HTM_Txt ("\tvar Months = [");
@ -1655,18 +1654,6 @@ void Dat_WriteScriptMonths (void)
HTM_TxtF ("'%s'",Txt_MONTHS_SMALL_SHORT[NumMonth]);
}
HTM_Txt ("];\n");
/***** Colors for each theme *****/
HTM_Txt ("\tvar Colors = [");
for (Theme = (The_Theme_t) 0;
Theme <= (The_Theme_t) (The_NUM_THEMES - 1);
Theme++)
{
if (Theme)
HTM_Comma ();
HTM_TxtF ("'%s'",The_GetSuffixForTheme (Theme));
}
HTM_Txt ("];\n");
}
/*****************************************************************************/

View File

@ -539,13 +539,15 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
/***** Exam title and main data *****/
if (ShowOnlyThisExam)
HTM_TD_Begin ("class=\"%s LT\"",
Exam->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE");
else
HTM_TD_Begin ("class=\"%s LT %s\"",
HTM_TD_Begin ("class=\"LT %s_%s\"",
Exam->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
Exam->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
/* Exam title */
@ -574,13 +576,15 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,
/***** Number of sessions in exam *****/
if (ShowOnlyThisExam)
HTM_TD_Begin ("class=\"%s RT\"",
Exam->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE");
else
HTM_TD_Begin ("class=\"%s RT %s\"",
HTM_TD_Begin ("class=\"RT %s_%s\"",
Exam->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"RT %s_%s %s\"",
Exam->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
Exams->ExaCod = Exam->ExaCod;

View File

@ -514,9 +514,10 @@ static void ExaSes_ListOneOrMoreSessionsTitleGrps (struct Exa_Exams *Exams,
extern const char *Txt_Play;
extern const char *Txt_Resume;
HTM_TD_Begin ("class=\"%s LT %s\"",
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
Session->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
/***** Session title *****/

View File

@ -743,15 +743,14 @@ static void Fol_PutInactiveIconToFollowUnfollow (void)
static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1])
{
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Txt_Follow;
/***** Form to unfollow *****/
Frm_BeginForm (ActFolUsr);
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg",Txt_Follow,
"class=\"FOLLOW_USR_ICO ICO16x16 %s ICO_HIGHLIGHT\"",
Ico_ClassColor[Ico_BLACK][Gbl.Prefs.Theme]);
"class=\"FOLLOW_USR_ICO ICO16x16 ICO_%s_%s ICO_HIGHLIGHT\"",
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
Frm_EndForm ();
}

View File

@ -590,13 +590,15 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
/***** Game title and main data *****/
if (ShowOnlyThisGame)
HTM_TD_Begin ("class=\"%s LT\"",
Game->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE");
else
HTM_TD_Begin ("class=\"%s LT %s\"",
HTM_TD_Begin ("class=\"LT %s_%s\"",
Game->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
Game->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
/* Game title */
@ -625,13 +627,15 @@ static void Gam_ShowOneGame (struct Gam_Games *Games,
/***** Number of matches in game *****/
if (ShowOnlyThisGame)
HTM_TD_Begin ("class=\"%s RT\"",
Game->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE");
else
HTM_TD_Begin ("class=\"%s RT %s\"",
HTM_TD_Begin ("class=\"RT %s_%s\"",
Game->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"RT %s_%s %s\"",
Game->Hidden ? "ASG_TITLE_LIGHT":
"ASG_TITLE",
The_GetSuffix (),
The_GetColorRows ());
Games->GamCod = Game->GamCod;

View File

@ -68,8 +68,6 @@ struct Globals Gbl; // All the global parameters and variables must be in this s
void Gbl_InitializeGlobals (void)
{
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
extern const char *The_ThemeId[The_NUM_THEMES];
extern const unsigned Txt_Current_CGI_SWAD_Language;
Rol_Role_t Role;
@ -124,10 +122,6 @@ void Gbl_InitializeGlobals (void)
Gbl.Prefs.Menu = Mnu_MENU_DEFAULT; // Default menu
Gbl.Prefs.Theme = The_THEME_DEFAULT; // Default theme
Gbl.Prefs.IconSet = Ico_ICON_SET_DEFAULT; // Default icon set
snprintf (Gbl.Prefs.URLTheme,sizeof (Gbl.Prefs.URLTheme),"%s/%s",
Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]);
snprintf (Gbl.Prefs.URLIconSet,sizeof (Gbl.Prefs.URLIconSet),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet]);
Gbl.Session.NumSessions = 0;
Gbl.Session.IsOpen = false;

View File

@ -150,8 +150,6 @@ struct Globals
The_Theme_t Theme;
unsigned SideCols;
PhoSha_Shape_t PhotoShape;
char URLTheme[PATH_MAX + 1];
char URLIconSet[PATH_MAX + 1];
} Prefs;
struct

View File

@ -68,55 +68,30 @@ const char *Ico_IconSetNames[Ico_NUM_ICON_SETS] =
[Ico_ICON_SET_NUVOLA ] = "Nuvola",
};
const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES] =
{
[Ico_UNCHANGED][The_THEME_WHITE ] = "",
[Ico_UNCHANGED][The_THEME_GREY ] = "",
[Ico_UNCHANGED][The_THEME_PURPLE] = "",
[Ico_UNCHANGED][The_THEME_BLUE ] = "",
[Ico_UNCHANGED][The_THEME_YELLOW] = "",
[Ico_UNCHANGED][The_THEME_PINK ] = "",
[Ico_UNCHANGED][The_THEME_DARK ] = "",
[Ico_BLACK ][The_THEME_WHITE ] = "BLACK_ICO_WHITE",
[Ico_BLACK ][The_THEME_GREY ] = "BLACK_ICO_GREY",
[Ico_BLACK ][The_THEME_PURPLE] = "BLACK_ICO_PURPLE",
[Ico_BLACK ][The_THEME_BLUE ] = "BLACK_ICO_BLUE",
[Ico_BLACK ][The_THEME_YELLOW] = "BLACK_ICO_YELLOW",
[Ico_BLACK ][The_THEME_PINK ] = "BLACK_ICO_PINK",
[Ico_BLACK ][The_THEME_DARK ] = "BLACK_ICO_DARK",
[Ico_GREEN ][The_THEME_WHITE ] = "GREEN_ICO_WHITE",
[Ico_GREEN ][The_THEME_GREY ] = "GREEN_ICO_GREY",
[Ico_GREEN ][The_THEME_PURPLE] = "GREEN_ICO_PURPLE",
[Ico_GREEN ][The_THEME_BLUE ] = "GREEN_ICO_BLUE",
[Ico_GREEN ][The_THEME_YELLOW] = "GREEN_ICO_YELLOW",
[Ico_GREEN ][The_THEME_PINK ] = "GREEN_ICO_PINK",
[Ico_GREEN ][The_THEME_DARK ] = "GREEN_ICO_DARK",
[Ico_RED ][The_THEME_WHITE ] = "RED_ICO_WHITE",
[Ico_RED ][The_THEME_GREY ] = "RED_ICO_GREY",
[Ico_RED ][The_THEME_PURPLE] = "RED_ICO_PURPLE",
[Ico_RED ][The_THEME_BLUE ] = "RED_ICO_BLUE",
[Ico_RED ][The_THEME_YELLOW] = "RED_ICO_YELLOW",
[Ico_RED ][The_THEME_PINK ] = "RED_ICO_PINK",
[Ico_RED ][The_THEME_DARK ] = "RED_ICO_DARK",
[Ico_WHITE ][The_THEME_WHITE ] = "WHITE_ICO_WHITE",
[Ico_WHITE ][The_THEME_GREY ] = "WHITE_ICO_GREY",
[Ico_WHITE ][The_THEME_PURPLE] = "WHITE_ICO_PURPLE",
[Ico_WHITE ][The_THEME_BLUE ] = "WHITE_ICO_BLUE",
[Ico_WHITE ][The_THEME_YELLOW] = "WHITE_ICO_YELLOW",
[Ico_WHITE ][The_THEME_PINK ] = "WHITE_ICO_PINK",
[Ico_WHITE ][The_THEME_DARK ] = "WHITE_ICO_DARK",
};
/*****************************************************************************/
/***************************** Private prototypes ****************************/
/*****************************************************************************/
static void Ico_PutIconsIconSet (__attribute__((unused)) void *Args);
/*****************************************************************************/
/******************* Get color name for CSS class preffix ********************/
/*****************************************************************************/
const char *Ico_GetPreffix (Ico_Color_t Color)
{
static const char *Ico_CSS_Preffix[Ico_NUM_COLORS] =
{
[Ico_UNCHANGED] = NULL,
[Ico_BLACK ] = "BLACK",
[Ico_GREEN ] = "GREEN",
[Ico_RED ] = "RED",
[Ico_WHITE ] = "WHITE",
};
return Ico_CSS_Preffix[Color];
}
/*****************************************************************************/
/*********** Get icon with extension from icon without extension *************/
/*****************************************************************************/
@ -209,9 +184,6 @@ void Ico_ChangeIconSet (void)
{
/***** Get param with icon set *****/
Gbl.Prefs.IconSet = Ico_GetParamIconSet ();
snprintf (Gbl.Prefs.URLIconSet,sizeof (Gbl.Prefs.URLIconSet),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,
Ico_IconSetId[Gbl.Prefs.IconSet]);
/***** Store icon set in database *****/
if (Gbl.Usrs.Me.Logged)
@ -438,11 +410,16 @@ void Ico_PutDivIcon (const char *DivClass,const char *Icon,Ico_Color_t Color,con
HTM_DIV_Begin ("class=\"%s\"",DivClass);
if (asprintf (&Class,"CONTEXT_ICO16x16 %s",
Ico_ClassColor[Color][Gbl.Prefs.Theme]) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutIcon (Icon,Color,Title,Class);
free (Class);
if (Color == Ico_UNCHANGED)
Ico_PutIcon (Icon,Color,Title,"CONTEXT_ICO16x16");
else
{
if (asprintf (&Class,"CONTEXT_ICO16x16 ICO_%s_%s",
Ico_GetPreffix (Color),The_GetSuffix ()) < 0)
Err_NotEnoughMemoryExit ();
Ico_PutIcon (Icon,Color,Title,Class);
free (Class);
}
HTM_DIV_End ();
}
@ -453,9 +430,13 @@ void Ico_PutDivIcon (const char *DivClass,const char *Icon,Ico_Color_t Color,con
void Ico_PutIconLink (const char *Icon,Ico_Color_t Color,const char *Title)
{
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16 %s\"",
Ico_ClassColor[Color][Gbl.Prefs.Theme]);
if (Color == Ico_UNCHANGED)
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16\"");
else
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"CONTEXT_OPT ICO_HIGHLIGHT CONTEXT_ICO16x16 ICO_%s_%s\"",
Ico_GetPreffix (Color),The_GetSuffix ());
}
/*****************************************************************************/
@ -477,9 +458,13 @@ void Ico_PutIconTextLink (const char *Icon,Ico_Color_t Color,const char *Text)
void Ico_PutSettingIconLink (const char *Icon,Ico_Color_t Color,const char *Title)
{
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"ICO_HIGHLIGHT ICOx20 %s\"",
Ico_ClassColor[Color][Gbl.Prefs.Theme]);
if (Color == Ico_UNCHANGED)
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"ICO_HIGHLIGHT ICOx20\"");
else
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"ICO_HIGHLIGHT ICOx20 ICO_%s_%s\"",
Ico_GetPreffix (Color),The_GetSuffix ());
}
/*****************************************************************************/
@ -502,10 +487,14 @@ void Ico_PutIconOff (const char *Icon,Ico_Color_t Color,const char *Title)
void Ico_PutIcon (const char *Icon,Ico_Color_t Color,const char *Title,const char *Class)
{
const char *CC = Ico_ClassColor[Color][Gbl.Prefs.Theme];
HTM_IMG (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"%s%s%s\"",Class,CC[0] ? " " : "",CC);
if (Color == Ico_UNCHANGED)
HTM_IMG (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"%s\"",
Class);
else
HTM_IMG (Cfg_URL_ICON_PUBLIC,Icon,Title,
"class=\"%s ICO_%s_%s\"",
Class,Ico_GetPreffix (Color),The_GetSuffix ());
}
/*****************************************************************************/
@ -563,23 +552,10 @@ void Ico_GetAndShowNumUsrsPerIconSet (void)
extern const char *Txt_Icons;
extern const char *Txt_Number_of_users;
extern const char *Txt_PERCENT_of_users;
static const char *ClassIco[Ico_NUM_ICON_SETS][The_NUM_THEMES] =
static const Ico_Color_t Color[Ico_NUM_ICON_SETS] =
{
[Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = "ICO20x20 BLACK_ICO_WHITE",
[Ico_ICON_SET_AWESOME][The_THEME_GREY ] = "ICO20x20 BLACK_ICO_GREY",
[Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = "ICO20x20 BLACK_ICO_PURPLE",
[Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = "ICO20x20 BLACK_ICO_BLUE",
[Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = "ICO20x20 BLACK_ICO_YELLOW",
[Ico_ICON_SET_AWESOME][The_THEME_PINK ] = "ICO20x20 BLACK_ICO_PINK",
[Ico_ICON_SET_AWESOME][The_THEME_DARK ] = "ICO20x20 BLACK_ICO_DARK",
[Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "ICO20x20",
[Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "ICO20x20",
[Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "ICO20x20",
[Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "ICO20x20",
[Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "ICO20x20",
[Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "ICO20x20",
[Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "ICO20x20",
[Ico_ICON_SET_AWESOME] = Ico_BLACK,
[Ico_ICON_SET_NUVOLA ] = Ico_UNCHANGED,
};
Ico_IconSet_t IconSet;
char *SubQuery;
@ -626,8 +602,13 @@ void Ico_GetAndShowNumUsrsPerIconSet (void)
if (asprintf (&URL,"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[IconSet]) < 0)
Err_NotEnoughMemoryExit ();
HTM_IMG (URL,"cog.svg",Ico_IconSetNames[IconSet],
"class=\"%s\"",ClassIco[IconSet][Gbl.Prefs.Theme]);
if (Color[IconSet] == Ico_UNCHANGED)
HTM_IMG (URL,"cog.svg",Ico_IconSetNames[IconSet],
"class=\"ICO20x20\"");
else
HTM_IMG (URL,"cog.svg",Ico_IconSetNames[IconSet],
"class=\"ICO20x20 ICO_%s_%s\"",
Ico_GetPreffix (Color[IconSet]),The_GetSuffix ());
free (URL);
HTM_TD_End ();

View File

@ -54,6 +54,8 @@ typedef enum
/***************************** Public prototypes *****************************/
/*****************************************************************************/
const char *Ico_GetPreffix (Ico_Color_t Color);
const char *Ico_GetIcon (const char *IconWithoutExtension);
void Ico_PutIconsToSelectIconSet (void);

View File

@ -926,7 +926,7 @@ static void Ind_ShowTableOfCoursesWithIndicators (const struct Ind_Indicators *I
HTM_TD_Begin ("class=\"LM %s_%s %s\"",
(IndicatorsCrs.TeachingGuideSrc != Inf_NONE) ? "DAT_SMALL_GREEN" :
"DAT_SMAL_RED",
"DAT_SMALL_RED",
The_GetSuffix (),
The_GetColorRows ());
HTM_Txt (Txt_INFO_SRC_SHORT_TEXT[IndicatorsCrs.TeachingGuideSrc]);

View File

@ -288,6 +288,7 @@ void Lay_WriteStartOfPage (void)
break;
}
HTM_Txt (">\n");
Gbl.Prefs.Theme = The_THEME_WHITE; // In a new tab, use white background
Gbl.Layout.WritingHTMLStart = false;
Gbl.Layout.HTMLStartWritten =
Gbl.Layout.DivsEndWritten = true;
@ -968,33 +969,14 @@ static void Lay_WritePageTopHeading (void)
{
extern const char *Txt_TAGLINE;
extern const char *Txt_TAGLINE_BR;
static const char *ClassHeadRow1[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "HEAD_ROW_1_WHITE",
[The_THEME_GREY ] = "HEAD_ROW_1_GREY",
[The_THEME_PURPLE] = "HEAD_ROW_1_PURPLE",
[The_THEME_BLUE ] = "HEAD_ROW_1_BLUE",
[The_THEME_YELLOW] = "HEAD_ROW_1_YELLOW",
[The_THEME_PINK ] = "HEAD_ROW_1_PINK",
[The_THEME_DARK ] = "HEAD_ROW_1_DARK",
};
static const char *ClassHeadRow2[The_NUM_THEMES] =
{
[The_THEME_WHITE ] = "HEAD_ROW_2_WHITE",
[The_THEME_GREY ] = "HEAD_ROW_2_GREY",
[The_THEME_PURPLE] = "HEAD_ROW_2_PURPLE",
[The_THEME_BLUE ] = "HEAD_ROW_2_BLUE",
[The_THEME_YELLOW] = "HEAD_ROW_2_YELLOW",
[The_THEME_PINK ] = "HEAD_ROW_2_PINK",
[The_THEME_DARK ] = "HEAD_ROW_2_DARK",
};
/***** Begin header *****/
HTM_Txt ("<header>");
/***** 1st. row *****/
/* Begin 1st. row */
HTM_DIV_Begin ("id=\"head_row_1\" class=\"%s\"",ClassHeadRow1[Gbl.Prefs.Theme]);
HTM_DIV_Begin ("id=\"head_row_1\" class=\"HEAD_ROW_1_%s\"",
The_GetSuffix ());
/* 1st. row, 1st. column: logo, tagline and search */
HTM_DIV_Begin ("id=\"head_row_1_left\"");
@ -1052,8 +1034,8 @@ static void Lay_WritePageTopHeading (void)
/***** 2nd. row *****/
/* Begin second row */
HTM_DIV_Begin ("id=\"head_row_2\" class=\"%s\"",
ClassHeadRow2[Gbl.Prefs.Theme]);
HTM_DIV_Begin ("id=\"head_row_2\" class=\"HEAD_ROW_2_%s\"",
The_GetSuffix ());
/* 2nd. row, 1st. column
Clock with hour:minute (server hour is shown) */

View File

@ -63,7 +63,6 @@ static void Lgo_PutIconToRemoveLogo (Act_Action_t ActionRem);
void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
unsigned Size,const char *Class,bool PutIconIfNotExists)
{
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
static const char *HieIcon[HieLvl_NUM_LEVELS] =
{
[HieLvl_UNK] = "sitemap.svg", // not applicable here
@ -83,7 +82,6 @@ void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
char *URL;
char *Icon;
bool ClassNotEmpty;
Ico_Color_t Color;
/***** Path to logo *****/
if (HieIcon[Scope]) // Scope is correct
@ -146,6 +144,11 @@ void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
if (LogoFound || PutIconIfNotExists)
{
/***** Draw logo *****/
ClassNotEmpty = false;
if (Class)
if (Class[0])
ClassNotEmpty = true;
if (LogoFound)
{
if (asprintf (&URL,"%s/%s/%02u/%u/logo",
@ -155,7 +158,16 @@ void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
Err_NotEnoughMemoryExit ();
if (asprintf (&Icon,"%u.png",(unsigned) Cod) < 0)
Err_NotEnoughMemoryExit ();
Color = Ico_UNCHANGED;
HTM_IMG (URL,Icon,AltText,
"class=\"ICO%ux%u"
"%s%s\"",
Size,Size,
ClassNotEmpty ? " " :
"",
ClassNotEmpty ? Class :
"");
}
else
{
@ -163,24 +175,18 @@ void Lgo_DrawLogo (HieLvl_Level_t Scope,long Cod,const char *AltText,
Err_NotEnoughMemoryExit ();
if (asprintf (&Icon,"%s",HieIcon[Scope]) < 0)
Err_NotEnoughMemoryExit ();
Color = Ico_BLACK;
HTM_IMG (URL,Icon,AltText,
"class=\"ICO%ux%u ICO_%s_%s"
"%s%s\"",
Size,Size,
Ico_GetPreffix (Ico_BLACK),The_GetSuffix (),
ClassNotEmpty ? " " :
"",
ClassNotEmpty ? Class :
"");
}
ClassNotEmpty = false;
if (Class)
if (Class[0])
ClassNotEmpty = true;
HTM_IMG (URL,Icon,AltText,
"class=\"ICO%ux%u"
"%s%s"
"%s%s\"",
Size,Size,
Ico_ClassColor[Color][Gbl.Prefs.Theme][0] ? " " :
"",
Ico_ClassColor[Color][Gbl.Prefs.Theme],
ClassNotEmpty ? " " :
"",
ClassNotEmpty ? Class :
"");
free (Icon);
free (URL);
}

View File

@ -640,7 +640,8 @@ static void Mch_ListOneOrMoreMatchesTitleGrps (const struct Mch_Match *Match,
HTM_BUTTON_Submit_Begin (Gbl.Usrs.Me.Role.Logged == Rol_STD ? Txt_Play :
Txt_Resume,
"class=\"BT_LINK LT ASG_TITLE\"");
"class=\"BT_LINK LT ASG_TITLE_%s\"",
The_GetSuffix ());
HTM_Txt (Match->Title);
HTM_BUTTON_End ();

View File

@ -214,24 +214,12 @@ Act_Action_t Mnu_GetFirstActionAvailableInCurrentTab (void)
void Mnu_WriteMenuThisTab (void)
{
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
extern const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB];
static const char *ClassIcoMenu[Ico_NUM_ICON_SETS][The_NUM_THEMES] =
static const char *ClassIcoMenu[Ico_NUM_ICON_SETS] =
{
[Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = " MENU_ICO_WHITE",
[Ico_ICON_SET_AWESOME][The_THEME_GREY ] = " MENU_ICO_GREY",
[Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = " MENU_ICO_PURPLE",
[Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = " MENU_ICO_BLUE",
[Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = " MENU_ICO_YELLOW",
[Ico_ICON_SET_AWESOME][The_THEME_PINK ] = " MENU_ICO_PINK",
[Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " MENU_ICO_DARK",
[Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "",
[Ico_ICON_SET_AWESOME] = "MENU_ICO",
[Ico_ICON_SET_NUVOLA ] = NULL,
};
unsigned NumOptInMenu;
Act_Action_t NumAct;
@ -271,10 +259,17 @@ void Mnu_WriteMenuThisTab (void)
/***** Icon and text *****/
HTM_DIV_Begin ("class=\"MENU_ICO_TXT\"");
HTM_DIV_Begin ("class=\"MENU_ICO%s\" style=\"background-image:url('%s/%s');\"",
ClassIcoMenu[Gbl.Prefs.IconSet][Gbl.Prefs.Theme],
Gbl.Prefs.URLIconSet,
Act_GetIcon (NumAct));
if (ClassIcoMenu[Gbl.Prefs.IconSet])
HTM_DIV_Begin ("class=\"MENU_ICO %s_%s\""
" style=\"background-image:url('%s/%s/%s');\"",
ClassIcoMenu[Gbl.Prefs.IconSet],The_GetSuffix (),
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet],
Act_GetIcon (NumAct));
else
HTM_DIV_Begin ("class=\"MENU_ICO\""
" style=\"background-image:url('%s/%s/%s');\"",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet],
Act_GetIcon (NumAct));
HTM_DIV_End ();
HTM_DIV_Begin ("class=\"MENU_TXT MENU_TXT_%s\"",
The_GetSuffix ());

View File

@ -455,7 +455,7 @@ void Ntf_ShowMyNotifications (void)
{
ClassTxt = "MSG_TIT_REM";
ClassLink = "BT_LINK MSG_TIT_REM";
ClassAuthor = "MSG_AUT_REM";
ClassAuthor = "MSG_AUT_LIGHT";
ClassBg = "MSG_BG_REM";
PutLink = false;
}
@ -1661,8 +1661,8 @@ void Ntf_WriteNumberOfNewNtfs (void)
if (NumNewNtfs)
{
HTM_BR ();
HTM_IMG (Gbl.Prefs.URLTheme,"bell.svg",Txt_Notifications,
"class=\"ICO16x16\"");
HTM_IMG (Cfg_URL_ICON_PUBLIC,"bell.svg",Txt_Notifications,
"class=\"ICO16x16 NOTIF_ICO_%s\"",The_GetSuffix ());
HTM_TxtF ("&nbsp;%u",NumNewNtfs);
HTM_SPAN_Begin ("id=\"notif_new\"");
HTM_TxtF ("&nbsp;%s",NumNewNtfs == 1 ? Txt_NOTIF_new_SINGULAR :

View File

@ -649,11 +649,8 @@ static bool Par_CheckIsParamCanBeUsedInGETMethod (const char *ParamName)
void Par_GetMainParams (void)
{
extern Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD];
extern const char *The_ThemeId[The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
long ActCod;
char Nick[Nck_MAX_BYTES_NICK_WITH_ARROBA + 1];
char URL[PATH_MAX + 1];
char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1];
/***** Reset codes of country, institution, center, degree and course *****/
@ -782,17 +779,6 @@ void Par_GetMainParams (void)
/***** Try to get settings changed from current IP *****/
Set_GetSettingsFromIP ();
if (!Gbl.Session.IsOpen) // When no session open (no logged user)...
{
/***** Set path of theme and path of icon set *****/
snprintf (URL,sizeof (URL),"%s/%s",
Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme ]);
Str_Copy (Gbl.Prefs.URLTheme ,URL,sizeof (Gbl.Prefs.URLTheme ) - 1);
snprintf (URL,sizeof (URL),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet]);
Str_Copy (Gbl.Prefs.URLIconSet,URL,sizeof (Gbl.Prefs.URLIconSet) - 1);
}
/***** Get country if exists (from menu) *****/
Par_GetParToText ("cty",LongStr,Cns_MAX_DECIMAL_DIGITS_LONG);
if (LongStr[0]) // Parameter "cty" available

View File

@ -58,7 +58,6 @@ static void PhoSha_PutIconsPhotoShape (__attribute__((unused)) void *Args);
void PhoSha_PutIconsToSelectPhotoShape (void)
{
extern const char *Hlp_PROFILE_Settings_user_photos;
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Txt_User_photos;
extern const char *Txt_PHOTO_SHAPES[PhoSha_NUM_SHAPES];
static const char *ClassPhoto[PhoSha_NUM_SHAPES] =
@ -88,9 +87,9 @@ void PhoSha_PutIconsToSelectPhotoShape (void)
Par_PutHiddenParamUnsigned (NULL,"PhotoShape",Shape);
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user.svg",
Txt_PHOTO_SHAPES[Shape],
"class=\"%s %s\"",
"class=\"%s ICO_%s_%s\"",
ClassPhoto[Shape],
Ico_ClassColor[Ico_BLACK][Gbl.Prefs.Theme]);
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
Frm_EndForm ();
HTM_DIV_End ();
}
@ -160,7 +159,6 @@ PhoSha_Shape_t PhoSha_GetShapeFromStr (const char *Str)
void PhoSha_GetAndShowNumUsrsPerPhotoShape (void)
{
extern const char *Hlp_ANALYTICS_Figures_user_photos;
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Txt_FIGURE_TYPES[Fig_NUM_FIGURES];
extern const char *Txt_User_photos;
extern const char *Txt_Number_of_users;
@ -215,9 +213,9 @@ void PhoSha_GetAndShowNumUsrsPerPhotoShape (void)
HTM_TD_Begin ("class=\"CM\"");
HTM_IMG (Cfg_URL_ICON_PUBLIC,"user.svg",Txt_PHOTO_SHAPES[Shape],
"class=\"%s %s\"",
"class=\"%s ICO_%s_%s\"",
ClassPhoto[Shape],
Ico_ClassColor[Ico_BLACK][Gbl.Prefs.Theme]);
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
HTM_TD_End ();
HTM_TD_Begin ("class=\"RM DAT_%s\"",The_GetSuffix ());

View File

@ -1361,12 +1361,12 @@ static void Prj_ShowOneProject (struct Prj_Projects *Projects,
switch (ProjectView)
{
case Prj_LIST_PROJECTS:
HTM_TD_Begin ("class=\"%s LT %s\"",
ClassTitle,The_GetColorRows ());
HTM_TD_Begin ("class=\"LT %s_%s %s\"",
ClassTitle,The_GetSuffix (),The_GetColorRows ());
break;
default:
HTM_TD_Begin ("class=\"%s LT\"",
ClassTitle);
HTM_TD_Begin ("class=\"LT %s_%s\"",
ClassTitle,The_GetSuffix ());
break;
}
HTM_ARTICLE_Begin (Anchor);

View File

@ -158,26 +158,20 @@ void Set_GetSettingsFromIP (void)
{
row = mysql_fetch_row (mysql_res);
/* Get first day of week (row[0]) */
/* Get first day of week (row[0]),
date format (row[1]),
theme (row[2]),
icon set (row[3]),
menu (row[4]),
if user wants to show side columns (row[5]),
user photo shape (row[6]) */
Gbl.Prefs.FirstDayOfWeek = Cal_GetFirstDayOfWeekFromStr (row[0]);
/* Get date format (row[1]) */
Gbl.Prefs.DateFormat = Dat_GetDateFormatFromStr (row[1]);
/* Get theme (row[2]) */
Gbl.Prefs.Theme = The_GetThemeFromStr (row[2]);
/* Get icon set (row[3]) */
Gbl.Prefs.IconSet = Ico_GetIconSetFromStr (row[3]);
/* Get menu (row[4]) */
Gbl.Prefs.Menu = Mnu_GetMenuFromStr (row[4]);
/* Get if user wants to show side columns (row[5]) */
Gbl.Prefs.SideCols = Set_GetSideColsFromStr (row[5]);
/* Get user photo shape (row[6]) */
Gbl.Prefs.PhotoShape = PhoSha_GetShapeFromStr (row[6]);
Gbl.Prefs.DateFormat = Dat_GetDateFormatFromStr (row[1]);
Gbl.Prefs.Theme = The_GetThemeFromStr (row[2]);
Gbl.Prefs.IconSet = Ico_GetIconSetFromStr (row[3]);
Gbl.Prefs.Menu = Mnu_GetMenuFromStr (row[4]);
Gbl.Prefs.SideCols = Set_GetSideColsFromStr (row[5]);
Gbl.Prefs.PhotoShape = PhoSha_GetShapeFromStr (row[6]);
}
/***** Free structure that stores the query result *****/

View File

@ -529,9 +529,10 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
/* Survey title */
if (ShowOnlyThisSvyComplete)
HTM_TD_Begin ("class=\"%s LT\"",
HTM_TD_Begin ("class=\"LT %s_%s\"",
Svy.Status.Visible ? "ASG_TITLE" :
"ASG_TITLE_LIGHT");
"ASG_TITLE_LIGHT",
The_GetSuffix ());
else
HTM_TD_Begin ("class=\"LT %s\"",The_GetColorRows ());
HTM_ARTICLE_Begin (Anchor);

View File

@ -51,41 +51,20 @@ static const char *Tab_GetIcon (Tab_Tab_t Tab);
void Tab_DrawTabs (void)
{
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
extern const char *Txt_TABS_TXT[Tab_NUM_TABS];
extern const char *Txt_TABS_TXT[Tab_NUM_TABS];
Tab_Tab_t NumTab;
bool ICanViewTab;
static const char *ClassHeadRow3[The_NUM_THEMES] =
char URLIconSet[PATH_MAX + 1];
static const char *ClassIcoTab[Ico_NUM_ICON_SETS] =
{
[The_THEME_WHITE ] = "HEAD_ROW_3_WHITE",
[The_THEME_GREY ] = "HEAD_ROW_3_GREY",
[The_THEME_PURPLE] = "HEAD_ROW_3_PURPLE",
[The_THEME_BLUE ] = "HEAD_ROW_3_BLUE",
[The_THEME_YELLOW] = "HEAD_ROW_3_YELLOW",
[The_THEME_PINK ] = "HEAD_ROW_3_PINK",
[The_THEME_DARK ] = "HEAD_ROW_3_DARK",
};
static const char *ClassIcoTab[Ico_NUM_ICON_SETS][The_NUM_THEMES] =
{
[Ico_ICON_SET_AWESOME][The_THEME_WHITE ] = " TAB_ICO_WHITE",
[Ico_ICON_SET_AWESOME][The_THEME_GREY ] = " TAB_ICO_GREY",
[Ico_ICON_SET_AWESOME][The_THEME_PURPLE] = " TAB_ICO_PURPLE",
[Ico_ICON_SET_AWESOME][The_THEME_BLUE ] = " TAB_ICO_BLUE",
[Ico_ICON_SET_AWESOME][The_THEME_YELLOW] = " TAB_ICO_YELLOW",
[Ico_ICON_SET_AWESOME][The_THEME_PINK ] = " TAB_ICO_PINK",
[Ico_ICON_SET_AWESOME][The_THEME_DARK ] = " TAB_ICO_DARK",
[Ico_ICON_SET_NUVOLA ][The_THEME_WHITE ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_GREY ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_PURPLE] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_BLUE ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_YELLOW] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_PINK ] = "",
[Ico_ICON_SET_NUVOLA ][The_THEME_DARK ] = "",
[Ico_ICON_SET_AWESOME] = "TAB_ICO",
[Ico_ICON_SET_NUVOLA ] = NULL,
};
/***** Begin tabs container *****/
HTM_DIV_Begin ("class=\"%s\"",ClassHeadRow3[Gbl.Prefs.Theme]);
HTM_DIV_Begin ("class=\"HEAD_ROW_3_%s\"",The_GetSuffix ());
HTM_Txt ("<nav id=\"tabs\">");
HTM_UL_Begin ("class=\"TAB_LIST\"");
@ -120,8 +99,15 @@ void Tab_DrawTabs (void)
Par_PutHiddenParamUnsigned (NULL,"NxtTab",(unsigned) NumTab);
HTM_BUTTON_Submit_Begin (Txt_TABS_TXT[NumTab],
"class=\"BT_LINK\"");
HTM_IMG (Gbl.Prefs.URLIconSet,Tab_GetIcon (NumTab),Txt_TABS_TXT[NumTab],
"class=\"TAB_ICO%s\"",ClassIcoTab[Gbl.Prefs.IconSet][Gbl.Prefs.Theme]);
snprintf (URLIconSet,sizeof (URLIconSet),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet]);
if (ClassIcoTab[Gbl.Prefs.IconSet])
HTM_IMG (URLIconSet,Tab_GetIcon (NumTab),Txt_TABS_TXT[NumTab],
"class=\"TAB_ICO %s_%s\"",
ClassIcoTab[Gbl.Prefs.IconSet],The_GetSuffix ());
else
HTM_IMG (URLIconSet,Tab_GetIcon (NumTab),Txt_TABS_TXT[NumTab],
"class=\"TAB_ICO\"");
HTM_DIV_Begin ("class=\"TAB_TXT TAB_%s_TXT_%s\"",
NumTab == Gbl.Action.Tab ? "ON" :
"OFF",

View File

@ -17192,7 +17192,7 @@ const char *Txt_INFO_SRC_SHORT_TEXT[Inf_NUM_SOURCES] =
{
[Inf_NONE] =
#if L==1 // ca
"Ninguna informaci&oacute;n" // Necessita traduccio
"Cap informaci&oacute;"
#elif L==2 // de
"Keine Angaben"
#elif L==3 // en
@ -17213,7 +17213,7 @@ const char *Txt_INFO_SRC_SHORT_TEXT[Inf_NUM_SOURCES] =
,
[Inf_EDITOR] =
#if L==1 // ca
"Editor interno" // Necessita traduccio
"Editor intern"
#elif L==2 // de
"Interner Editor"
#elif L==3 // en
@ -17269,14 +17269,14 @@ const char *Txt_INFO_SRC_SHORT_TEXT[Inf_NUM_SOURCES] =
#elif L==7 // it
"Testo formattato"
#elif L==8 // pl
"Rich text" // Potrzebujesz tlumaczenie
"Tekst sformatowany"
#elif L==9 // pt
"Texto enriquecido"
#endif
,
[Inf_PAGE] =
#if L==1 // ca
"P&aacute;gina interna" // Necessita traduccio
"P&agrave;gina interna"
#elif L==2 // de
"Interne Webseite"
#elif L==3 // en
@ -17297,7 +17297,7 @@ const char *Txt_INFO_SRC_SHORT_TEXT[Inf_NUM_SOURCES] =
,
[Inf_URL] =
#if L==1 // ca
"P&aacute;gina externa" // Necessita traduccio
"P&agrave;gina externa" // Necessita traduccio
#elif L==2 // de
"Externe Webseite"
#elif L==3 // en

View File

@ -138,15 +138,8 @@ static void The_PutIconsTheme (__attribute__((unused)) void *Args)
void The_ChangeTheme (void)
{
char Path[PATH_MAX + 1 +
NAME_MAX + 1 +
NAME_MAX + 1];
/***** Get param theme *****/
Gbl.Prefs.Theme = The_GetParamTheme ();
snprintf (Path,sizeof (Path),"%s/%s",
Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]);
Str_Copy (Gbl.Prefs.URLTheme,Path,sizeof (Gbl.Prefs.URLTheme) - 1);
/***** Store theme in database *****/
if (Gbl.Usrs.Me.Logged)
@ -207,11 +200,6 @@ static const char *The_CSS_Suffix[The_NUM_THEMES] =
[The_THEME_DARK ] = "DARK",
};
const char *The_GetSuffixForTheme (The_Theme_t Theme)
{
return The_CSS_Suffix[Theme];
}
const char *The_GetSuffix (void)
{
return The_CSS_Suffix[Gbl.Prefs.Theme];

View File

@ -54,7 +54,6 @@ void The_ChangeTheme (void);
The_Theme_t The_GetParamTheme (void);
The_Theme_t The_GetThemeFromStr (const char *Str);
const char *The_GetSuffixForTheme (The_Theme_t Theme);
const char *The_GetSuffix (void);
const char *The_GetColorRows (void);
void The_ChangeRowColor (void);

View File

@ -1199,12 +1199,14 @@ void Usr_WriteFormLogin (Act_Action_t NextAction,void (*FuncParams) (void))
void Usr_WelcomeUsr (void)
{
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
extern const unsigned Txt_Current_CGI_SWAD_Language;
extern const char *Txt_NEW_YEAR_GREETING;
extern const char *Txt_Happy_birthday_X;
extern const char *Txt_Please_check_your_email_address;
extern const char *Txt_Check;
extern const char *Txt_Switching_to_LANGUAGE[1 + Lan_NUM_LANGUAGES];
char URLIconSet[PATH_MAX + 1];
if (Gbl.Usrs.Me.Logged)
{
@ -1232,7 +1234,9 @@ void Usr_WelcomeUsr (void)
Gbl.Usrs.Me.UsrDat.FrstName);
/* Show cake icon */
HTM_IMG (Gbl.Prefs.URLIconSet,"birthday-cake.svg",NULL,
snprintf (URLIconSet,sizeof (URLIconSet),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet]);
HTM_IMG (URLIconSet,"birthday-cake.svg",NULL,
"class=\"ICO160x160\"");
/* End alert */
@ -1944,7 +1948,6 @@ static void Usr_ShowAlertThereAreMoreThanOneUsr (void)
static void Usr_SetMyPrefsAndRoles (void)
{
extern const char *The_ThemeId[The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
bool GetRoleAndActionFromLastData;
Act_Action_t LastSuperAction;
@ -1967,10 +1970,6 @@ static void Usr_SetMyPrefsAndRoles (void)
Gbl.Prefs.Theme = Gbl.Usrs.Me.UsrDat.Prefs.Theme;
Gbl.Prefs.SideCols = Gbl.Usrs.Me.UsrDat.Prefs.SideCols;
Gbl.Prefs.PhotoShape = Gbl.Usrs.Me.UsrDat.Prefs.PhotoShape;
snprintf (Gbl.Prefs.URLIconSet,sizeof (Gbl.Prefs.URLIconSet),"%s/%s",
Cfg_URL_ICON_SETS_PUBLIC,Ico_IconSetId[Gbl.Prefs.IconSet]);
snprintf (Gbl.Prefs.URLTheme,sizeof (Gbl.Prefs.URLTheme),"%s/%s",
Cfg_URL_ICON_THEMES_PUBLIC,The_ThemeId[Gbl.Prefs.Theme]);
/***** Construct the path to my directory *****/
Usr_ConstructPathUsr (Gbl.Usrs.Me.UsrDat.UsrCod,Gbl.Usrs.Me.PathDir);
@ -6385,7 +6384,7 @@ void Usr_WriteAuthor1Line (long UsrCod,bool Hidden)
/***** Write name *****/
HTM_DIV_Begin ("class=\"AUTHOR_1_LINE %s_%s\"",
Hidden ? "MSG_AUT_REM" :
Hidden ? "MSG_AUT_LIGHT" :
"MSG_AUT",
The_GetSuffix ());
HTM_Txt (UsrDat.FullName);
@ -6483,7 +6482,6 @@ void Usr_ShowTableCellWithUsrData (struct UsrData *UsrDat,unsigned NumRows)
void Usr_PutWhoIcon (Usr_Who_t Who)
{
extern const char *Ico_ClassColor[Ico_NUM_COLORS][The_NUM_THEMES];
extern const char *Txt_WHO[Usr_NUM_WHO];
static const char *Icon[Usr_NUM_WHO] =
{
@ -6510,8 +6508,8 @@ void Usr_PutWhoIcon (Usr_Who_t Who)
case Usr_WHO_FOLLOWED:
case Usr_WHO_ALL:
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,Icon[Who],Txt_WHO[Who],
"class=\"ICO_HIGHLIGHT ICOx20 %s\"",
Ico_ClassColor[Ico_BLACK][Gbl.Prefs.Theme]);
"class=\"ICO_HIGHLIGHT ICOx20 ICO_%s_%s\"",
Ico_GetPreffix (Ico_BLACK),The_GetSuffix ());
break;
default:
Err_WrongWhoExit ();