Version19.76.4

This commit is contained in:
Antonio Cañas Vargas 2019-11-22 01:04:03 +01:00
parent 397b46748e
commit 1176fe30e2
15 changed files with 391 additions and 386 deletions

View File

@ -490,7 +490,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD: En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 19.76.3 (2019-11-21)" #define Log_PLATFORM_VERSION "SWAD 19.76.4 (2019-11-22)"
#define CSS_FILE "swad19.74.3.css" #define CSS_FILE "swad19.74.3.css"
#define JS_FILE "swad19.70.js" #define JS_FILE "swad19.70.js"
/* /*
@ -498,6 +498,7 @@ ps2pdf source.ps destination.pdf
// TODO: Impedir la creación y edición de proyectos si no son editables. // TODO: Impedir la creación y edición de proyectos si no son editables.
// TODO: En cada juego, poder listar los resultados en una tabla como la de resultados globales // TODO: En cada juego, poder listar los resultados en una tabla como la de resultados globales
Version 19.76.4: Nov 22, 2019 Code refactoring related to vectors. (246851 lines)
Version 19.76.3: Nov 21, 2019 Code refactoring related to vectors. (246850 lines) Version 19.76.3: Nov 21, 2019 Code refactoring related to vectors. (246850 lines)
Version 19.76.2: Nov 21, 2019 Code refactoring related to vectors. (246966 lines) Version 19.76.2: Nov 21, 2019 Code refactoring related to vectors. (246966 lines)
Version 19.76.1: Nov 21, 2019 Code refactoring related to vectors. (247023 lines) Version 19.76.1: Nov 21, 2019 Code refactoring related to vectors. (247023 lines)

View File

@ -83,103 +83,103 @@ typedef enum
#define Net_MAX_BYTES_NETWORK_NAME 32 #define Net_MAX_BYTES_NETWORK_NAME 32
const char *Net_WebsAndSocialNetworksDB[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] = static const char *Net_WebsAndSocialNetworksDB[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] =
{ {
"www", // Net_WWW [Net_WWW ] = "www",
"500px", // Net_500PX [Net_500PX ] = "500px",
"delicious", // Net_DELICIOUS [Net_DELICIOUS ] = "delicious",
"deviantart", // Net_DEVIANTART [Net_DEVIANTART ] = "deviantart",
"diaspora", // Net_DIASPORA [Net_DIASPORA ] = "diaspora",
"edmodo", // Net_EDMODO [Net_EDMODO ] = "edmodo",
"facebook", // Net_FACEBOOK [Net_FACEBOOK ] = "facebook",
"flickr", // Net_FLICKR [Net_FLICKR ] = "flickr",
"foursquare", // Net_FOURSQUAREhub [Net_FOURSQUARE ] = "foursquare",
"github", // Net_GITHUB [Net_GITHUB ] = "github",
"gnusocial", // Net_GNU_SOCIAL [Net_GNU_SOCIAL ] = "gnusocial",
"googleplus", // Net_GOOGLE_PLUS [Net_GOOGLE_PLUS ] = "googleplus",
"googlescholar", // Net_GOOGLE_SCHOLAR [Net_GOOGLE_SCHOLAR] = "googlescholar",
"identica", // Net_IDENTICA [Net_IDENTICA ] = "identica",
"instagram", // Net_INSTAGRAM [Net_INSTAGRAM ] = "instagram",
"linkedin", // Net_LINKEDIN [Net_LINKEDIN ] = "linkedin",
"orcid", // Net_ORCID [Net_ORCID ] = "orcid",
"paperli", // Net_PAPERLI [Net_PAPERLI ] = "paperli",
"pinterest", // Net_PINTEREST [Net_PINTEREST ] = "pinterest",
"researchgate", // Net_RESEARCH_GATE [Net_RESEARCH_GATE ] = "researchgate",
"researcherid", // Net_RESEARCHERID [Net_RESEARCHERID ] = "researcherid",
"scoopit", // Net_SCOOPIT [Net_SCOOPIT ] = "scoopit",
"slideshare", // Net_SLIDESHARE [Net_SLIDESHARE ] = "slideshare",
"stackoverflow", // Net_STACK_OVERFLOW [Net_STACK_OVERFLOW] = "stackoverflow",
"storify", // Net_STORIFY [Net_STORIFY ] = "storify",
"tumblr", // Net_TUMBLR [Net_TUMBLR ] = "tumblr",
"twitter", // Net_TWITTER [Net_TWITTER ] = "twitter",
"wikipedia", // Net_WIKIPEDIA [Net_WIKIPEDIA ] = "wikipedia",
"youtube", // Net_YOUTUBE [Net_YOUTUBE ] = "youtube",
}; };
const char *Net_WebsAndSocialNetworksIcons[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] = static const char *Net_WebsAndSocialNetworksIcons[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] =
{ {
"globe.svg", // Net_WWW [Net_WWW ] = "globe.svg",
"500px-brands.svg", // Net_500PX [Net_500PX ] = "500px-brands.svg",
"delicious-brands.svg", // Net_DELICIOUS [Net_DELICIOUS ] = "delicious-brands.svg",
"deviantart-brands.svg", // Net_DEVIANTART [Net_DEVIANTART ] = "deviantart-brands.svg",
"diaspora-brands.svg", // Net_DIASPORA [Net_DIASPORA ] = "diaspora-brands.svg",
"edmodo64x64.png", // Net_EDMODO [Net_EDMODO ] = "edmodo64x64.png",
"facebook-brands.svg", // Net_FACEBOOK [Net_FACEBOOK ] = "facebook-brands.svg",
"flickr-brands.svg", // Net_FLICKR [Net_FLICKR ] = "flickr-brands.svg",
"foursquare-brands.svg", // Net_FOURSQUAREhub [Net_FOURSQUARE ] = "foursquare-brands.svg",
"github-brands.svg", // Net_GITHUB [Net_GITHUB ] = "github-brands.svg",
"gnusocial64x64.png", // Net_GNU_SOCIAL [Net_GNU_SOCIAL ] = "gnusocial64x64.png",
"google-plus-brands.svg", // Net_GOOGLE_PLUS [Net_GOOGLE_PLUS ] = "google-plus-brands.svg",
"googlescholar.svg", // Net_GOOGLE_SCHOLAR [Net_GOOGLE_SCHOLAR] = "googlescholar.svg",
"identica64x64.png", // Net_IDENTICA [Net_IDENTICA ] = "identica64x64.png",
"instagram-brands.svg", // Net_INSTAGRAM [Net_INSTAGRAM ] = "instagram-brands.svg",
"linkedin-brands.svg", // Net_LINKEDIN [Net_LINKEDIN ] = "linkedin-brands.svg",
"orcid64x64.png", // Net_ORCID [Net_ORCID ] = "orcid64x64.png",
"paperli64x64.png", // Net_PAPERLI [Net_PAPERLI ] = "paperli64x64.png",
"pinterest-brands.svg", // Net_PINTEREST [Net_PINTEREST ] = "pinterest-brands.svg",
"researchgate-brands.svg", // Net_RESEARCH_GATE [Net_RESEARCH_GATE ] = "researchgate-brands.svg",
"researcherid64x64.png", // Net_RESEARCHERID [Net_RESEARCHERID ] = "researcherid64x64.png",
"scoopit64x64.png", // Net_SCOOPIT [Net_SCOOPIT ] = "scoopit64x64.png",
"slideshare-brands.svg", // Net_SLIDESHARE [Net_SLIDESHARE ] = "slideshare-brands.svg",
"stack-overflow-brands.svg", // Net_STACK_OVERFLOW [Net_STACK_OVERFLOW] = "stack-overflow-brands.svg",
"storify64x64.png", // Net_STORIFY [Net_STORIFY ] = "storify64x64.png",
"tumblr-brands.svg", // Net_TUMBLR [Net_TUMBLR ] = "tumblr-brands.svg",
"twitter-brands.svg", // Net_TWITTER [Net_TWITTER ] = "twitter-brands.svg",
"wikipedia-w-brands.svg", // Net_WIKIPEDIA [Net_WIKIPEDIA ] = "wikipedia-w-brands.svg",
"youtube-brands.svg", // Net_YOUTUBE [Net_YOUTUBE ] = "youtube-brands.svg",
}; };
const char *Net_WebsAndSocialNetworksTitle[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] = static const char *Net_WebsAndSocialNetworksTitle[Net_NUM_WEBS_AND_SOCIAL_NETWORKS] =
{ {
"WWW", // Net_WWW [Net_WWW ] = "WWW",
"500px", // Net_500PX [Net_500PX ] = "500px",
"Delicious", // Net_DELICIOUS [Net_DELICIOUS ] = "Delicious",
"DeviantArt", // Net_DEVIANTART [Net_DEVIANTART ] = "DeviantArt",
"Diaspora", // Net_DIASPORA [Net_DIASPORA ] = "Diaspora",
"Edmodo", // Net_EDMODO [Net_EDMODO ] = "Edmodo",
"Facebook", // Net_FACEBOOK [Net_FACEBOOK ] = "Facebook",
"Flickr", // Net_FLICKR [Net_FLICKR ] = "Flickr",
"Foursquare", // Net_FOURSQUARE [Net_FOURSQUARE ] = "Foursquare",
"GitHub", // Net_GITHUB [Net_GITHUB ] = "GitHub",
"GNU Social", // Net_GNU_SOCIAL [Net_GNU_SOCIAL ] = "GNU Social",
"Google+", // Net_GOOGLE_PLUS [Net_GOOGLE_PLUS ] = "Google+",
"Google Scholar", // Net_GOOGLE_SCHOLAR [Net_GOOGLE_SCHOLAR] = "Google Scholar",
"identi.ca", // Net_IDENTICA [Net_IDENTICA ] = "identi.ca",
"Instagram", // Net_INSTAGRAM [Net_INSTAGRAM ] = "Instagram",
"LinkedIn", // Net_LINKEDIN [Net_LINKEDIN ] = "LinkedIn",
"ORCID", // Net_ORCID [Net_ORCID ] = "ORCID",
"Paper.li", // Net_PAPERLI [Net_PAPERLI ] = "Paper.li",
"Pinterest", // Net_PINTEREST [Net_PINTEREST ] = "Pinterest",
"Research Gate", // Net_RESEARCH_GATE [Net_RESEARCH_GATE ] = "Research Gate",
"ResearcherID", // Net_RESEARCHERID [Net_RESEARCHERID ] = "ResearcherID",
"Scoop.it", // Net_SCOOPIT [Net_SCOOPIT ] = "Scoop.it",
"Slideshare", // Net_SLIDESHARE [Net_SLIDESHARE ] = "Slideshare",
"Stack Overflow", // Net_STACK_OVERFLOW [Net_STACK_OVERFLOW] = "Stack Overflow",
"Storify", // Net_STORIFY [Net_STORIFY ] = "Storify",
"Tumblr", // Net_TUMBLR [Net_TUMBLR ] = "Tumblr",
"Twitter", // Net_TWITTER [Net_TWITTER ] = "Twitter",
"Wikipedia", // Net_WIKIPEDIA [Net_WIKIPEDIA ] = "Wikipedia",
"YouTube", // Net_YOUTUBE [Net_YOUTUBE ] = "YouTube",
}; };
#define Net_MY_WEBS_ID "my_webs_section" #define Net_MY_WEBS_ID "my_webs_section"

View File

@ -55,16 +55,16 @@ extern struct Globals Gbl;
#define Not_MAX_CHARS_ON_NOTICE 40 // Maximum number of characters in notices (when not expanded) #define Not_MAX_CHARS_ON_NOTICE 40 // Maximum number of characters in notices (when not expanded)
const unsigned Not_ContainerWidth[Not_NUM_TYPES_LISTING] = static const unsigned Not_ContainerWidth[Not_NUM_TYPES_LISTING] =
{ {
148 + 50, // Not_LIST_BRIEF_NOTICES [Not_LIST_BRIEF_NOTICES] = 148 + 50,
500 + 50, // Not_LIST_FULL_NOTICES [Not_LIST_FULL_NOTICES ] = 500 + 50,
}; };
const unsigned Not_MaxCharsURLOnScreen[Not_NUM_TYPES_LISTING] = static const unsigned Not_MaxCharsURLOnScreen[Not_NUM_TYPES_LISTING] =
{ {
15, // Not_LIST_BRIEF_NOTICES [Not_LIST_BRIEF_NOTICES] = 15,
50, // Not_LIST_FULL_NOTICES [Not_LIST_FULL_NOTICES ] = 50,
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -68,12 +68,12 @@ extern struct Globals Gbl;
/***************************** Private constants *****************************/ /***************************** Private constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
const char *Pho_StrAvgPhotoDirs[Pho_NUM_AVERAGE_PHOTO_TYPES] = static const char *Pho_StrAvgPhotoDirs[Pho_NUM_AVERAGE_PHOTO_TYPES] =
{ {
Cfg_FOLDER_DEGREE_PHOTO_MEDIAN, Cfg_FOLDER_DEGREE_PHOTO_MEDIAN,
Cfg_FOLDER_DEGREE_PHOTO_AVERAGE, Cfg_FOLDER_DEGREE_PHOTO_AVERAGE,
}; };
const char *Pho_StrAvgPhotoPrograms[Pho_NUM_AVERAGE_PHOTO_TYPES] = static const char *Pho_StrAvgPhotoPrograms[Pho_NUM_AVERAGE_PHOTO_TYPES] =
{ {
Cfg_COMMAND_DEGREE_PHOTO_MEDIAN, Cfg_COMMAND_DEGREE_PHOTO_MEDIAN,
Cfg_COMMAND_DEGREE_PHOTO_AVERAGE, Cfg_COMMAND_DEGREE_PHOTO_AVERAGE,

View File

@ -49,11 +49,11 @@ extern struct Globals Gbl;
/***** Visibility (who can see user's photo or public profile) *****/ /***** Visibility (who can see user's photo or public profile) *****/
const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY] = const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY] =
{ {
"unknown", // Pri_VISIBILITY_UNKNOWN [Pri_VISIBILITY_UNKNOWN] = "unknown",
"user", // Pri_VISIBILITY_USER [Pri_VISIBILITY_USER ] = "user",
"course", // Pri_VISIBILITY_COURSE [Pri_VISIBILITY_COURSE ] = "course",
"system", // Pri_VISIBILITY_SYSTEM [Pri_VISIBILITY_SYSTEM ] = "system",
"world", // Pri_VISIBILITY_WORLD [Pri_VISIBILITY_WORLD ] = "world",
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -1659,13 +1659,12 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
extern const char *Txt_Save_changes; extern const char *Txt_Save_changes;
const char *Rec_RecordHelp[Rec_COURSE_NUM_VIEW_TYPES] = const char *Rec_RecordHelp[Rec_COURSE_NUM_VIEW_TYPES] =
{ {
Hlp_USERS_Students_course_record_card, // Rec_CRS_MY_RECORD_AS_STUDENT_FORM [Rec_CRS_MY_RECORD_AS_STUDENT_FORM ] = Hlp_USERS_Students_course_record_card,
Hlp_USERS_Students_course_record_card, // Rec_CRS_MY_RECORD_AS_STUDENT_CHECK [Rec_CRS_MY_RECORD_AS_STUDENT_CHECK] = Hlp_USERS_Students_course_record_card,
Hlp_USERS_Students_course_record_card, // Rec_CRS_LIST_ONE_RECORD [Rec_CRS_LIST_ONE_RECORD ] = Hlp_USERS_Students_course_record_card,
Hlp_USERS_Students_course_record_card, // Rec_CRS_LIST_SEVERAL_RECORDS [Rec_CRS_LIST_SEVERAL_RECORDS ] = Hlp_USERS_Students_course_record_card,
NULL, // Rec_CRS_PRINT_ONE_RECORD [Rec_CRS_PRINT_ONE_RECORD ] = NULL,
NULL, // Rec_CRS_PRINT_SEVERAL_RECORDS [Rec_CRS_PRINT_SEVERAL_RECORDS ] = NULL,
// Rec_CRS_RECORD_PRINT
}; };
char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
bool ItsMe; bool ItsMe;
@ -2148,30 +2147,30 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
extern const char *Txt_Confirm; extern const char *Txt_Confirm;
const char *Rec_RecordHelp[Rec_SHARED_NUM_VIEW_TYPES] = const char *Rec_RecordHelp[Rec_SHARED_NUM_VIEW_TYPES] =
{ {
Hlp_USERS_SignUp, // Rec_SHA_SIGN_UP_IN_CRS_FORM [Rec_SHA_SIGN_UP_IN_CRS_FORM ] = Hlp_USERS_SignUp,
Hlp_PROFILE_Record, // Rec_SHA_MY_RECORD_FORM [Rec_SHA_MY_RECORD_FORM ] = Hlp_PROFILE_Record,
NULL, // Rec_SHA_OTHER_EXISTING_USR_FORM [Rec_SHA_OTHER_EXISTING_USR_FORM] = NULL,
NULL, // Rec_SHA_OTHER_NEW_USR_FORM [Rec_SHA_OTHER_NEW_USR_FORM ] = NULL,
NULL, // Rec_SHA_OTHER_USR_CHECK [Rec_SHA_OTHER_USR_CHECK ] = NULL,
NULL, // Rec_SHA_RECORD_LIST [Rec_SHA_RECORD_LIST ] = NULL,
NULL, // Rec_SHA_RECORD_PRINT [Rec_SHA_RECORD_PRINT ] = NULL,
Hlp_START_Profiles_view_public_profile, // Rec_SHA_RECORD_PUBLIC [Rec_SHA_RECORD_PUBLIC ] = Hlp_START_Profiles_view_public_profile,
}; };
const char *Rec_RecordListHelp[Rol_NUM_ROLES] = const char *Rec_RecordListHelp[Rol_NUM_ROLES] =
{ {
NULL, // Rol_UNK [Rol_UNK ] = NULL,
Hlp_USERS_Guests, // Rol_GST [Rol_GST ] = Hlp_USERS_Guests,
NULL, // Rol_USR [Rol_USR ] = NULL,
Hlp_USERS_Students_shared_record_card, // Rol_STD [Rol_STD ] = Hlp_USERS_Students_shared_record_card,
Hlp_USERS_Teachers_shared_record_card, // Rol_NET [Rol_NET ] = Hlp_USERS_Teachers_shared_record_card,
Hlp_USERS_Teachers_shared_record_card, // Rol_TCH [Rol_TCH ] = Hlp_USERS_Teachers_shared_record_card,
NULL, // Rol_DEG_ADM [Rol_DEG_ADM] = NULL,
NULL, // Rol_CTR_ADM [Rol_CTR_ADM] = NULL,
NULL, // Rol_INS_ADM [Rol_INS_ADM] = NULL,
NULL, // Rol_SYS_ADM [Rol_SYS_ADM] = NULL,
}; };
char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1]; char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
const char *ClassForm = "REC_DAT"; const char *ClassForm = "REC_DAT";

View File

@ -40,16 +40,16 @@
#define Rol_NUM_ROLES 10 #define Rol_NUM_ROLES 10
const char *Rol_Icons[Rol_NUM_ROLES] = const char *Rol_Icons[Rol_NUM_ROLES] =
{ {
"user.svg", // Rol_UNK [Rol_UNK ] = "user.svg",
"user.svg", // Rol_GST [Rol_GST ] = "user.svg",
"user.svg", // Rol_USR [Rol_USR ] = "user.svg",
"user.svg", // Rol_STD [Rol_STD ] = "user.svg",
"user-tie.svg", // Rol_NET [Rol_NET ] = "user-tie.svg",
"user-tie.svg", // Rol_TCH [Rol_TCH ] = "user-tie.svg",
"user-tie.svg", // Rol_DEG_ADM [Rol_DEG_ADM] = "user-tie.svg",
"user-tie.svg", // Rol_CTR_ADM [Rol_CTR_ADM] = "user-tie.svg",
"user-tie.svg", // Rol_INS_ADM [Rol_INS_ADM] = "user-tie.svg",
"user-tie.svg", // Rol_SYS_ADM [Rol_SYS_ADM] = "user-tie.svg",
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -116,20 +116,20 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
extern const char *Txt_Search; extern const char *Txt_Search;
const char *Titles[Sch_NUM_WHAT_TO_SEARCH] = const char *Titles[Sch_NUM_WHAT_TO_SEARCH] =
{ {
"", // Sch_SEARCH_UNKNOWN [Sch_SEARCH_UNKNOWN ] = "",
Txt_all, // Sch_SEARCH_ALL [Sch_SEARCH_ALL ] = Txt_all,
Txt_countries, // Sch_SEARCH_COUNTRIES [Sch_SEARCH_COUNTRIES ] = Txt_countries,
Txt_institutions, // Sch_SEARCH_INSTITS [Sch_SEARCH_INSTITS ] = Txt_institutions,
Txt_centres, // Sch_SEARCH_CENTRES [Sch_SEARCH_CENTRES ] = Txt_centres,
Txt_degrees, // Sch_SEARCH_DEGREES [Sch_SEARCH_DEGREES ] = Txt_degrees,
Txt_courses, // Sch_SEARCH_COURSES [Sch_SEARCH_COURSES ] = Txt_courses,
Txt_users[Usr_SEX_UNKNOWN], // Sch_SEARCH_USERS [Sch_SEARCH_USERS ] = Txt_users[Usr_SEX_UNKNOWN],
Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_UNKNOWN], // Sch_SEARCH_TEACHERS [Sch_SEARCH_TEACHERS ] = Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_UNKNOWN],
Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN], // Sch_SEARCH_STUDENTS [Sch_SEARCH_STUDENTS ] = Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN],
Txt_ROLES_PLURAL_abc[Rol_GST][Usr_SEX_UNKNOWN], // Sch_SEARCH_GUESTS [Sch_SEARCH_GUESTS ] = Txt_ROLES_PLURAL_abc[Rol_GST][Usr_SEX_UNKNOWN],
Txt_open_documents, // Sch_SEARCH_OPEN_DOCUMENTS [Sch_SEARCH_OPEN_DOCUMENTS ] = Txt_open_documents,
Txt_documents_in_my_courses, // Sch_SEARCH_DOCUM_IN_MY_COURSES [Sch_SEARCH_DOCUM_IN_MY_COURSES] = Txt_documents_in_my_courses,
Txt_my_documents, // Sch_SEARCH_MY_DOCUMENTS [Sch_SEARCH_MY_DOCUMENTS ] = Txt_my_documents,
}; };
Sch_WhatToSearch_t WhatToSearch; Sch_WhatToSearch_t WhatToSearch;
unsigned WTS; unsigned WTS;
@ -200,22 +200,22 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
static bool Sch_CheckIfIHavePermissionToSearch (Sch_WhatToSearch_t WhatToSearch) static bool Sch_CheckIfIHavePermissionToSearch (Sch_WhatToSearch_t WhatToSearch)
{ {
unsigned Permissions[Sch_NUM_WHAT_TO_SEARCH] = static unsigned Permissions[Sch_NUM_WHAT_TO_SEARCH] =
{ {
0x000, // Sch_SEARCH_UNKNOWN [Sch_SEARCH_UNKNOWN ] = 0x000,
0x3FF, // Sch_SEARCH_ALL [Sch_SEARCH_ALL ] = 0x3FF,
0x3FF, // Sch_SEARCH_COUNTRIES [Sch_SEARCH_COUNTRIES ] = 0x3FF,
0x3FF, // Sch_SEARCH_INSTITS [Sch_SEARCH_INSTITS ] = 0x3FF,
0x3FF, // Sch_SEARCH_CENTRES [Sch_SEARCH_CENTRES ] = 0x3FF,
0x3FF, // Sch_SEARCH_DEGREES [Sch_SEARCH_DEGREES ] = 0x3FF,
0x3FF, // Sch_SEARCH_COURSES [Sch_SEARCH_COURSES ] = 0x3FF,
0x3FF, // Sch_SEARCH_USERS [Sch_SEARCH_USERS ] = 0x3FF,
0x3FF, // Sch_SEARCH_TEACHERS [Sch_SEARCH_TEACHERS ] = 0x3FF,
0x3FF, // Sch_SEARCH_STUDENTS [Sch_SEARCH_STUDENTS ] = 0x3FF,
0x3FF, // Sch_SEARCH_GUESTS [Sch_SEARCH_GUESTS ] = 0x3FF,
0x3FF, // Sch_SEARCH_OPEN_DOCUMENTS [Sch_SEARCH_OPEN_DOCUMENTS ] = 0x3FF,
0x3FE, // Sch_SEARCH_DOCUM_IN_MY_COURSES Only if I am logged [Sch_SEARCH_DOCUM_IN_MY_COURSES] = 0x3FE, // Only if I am logged
0x3FE, // Sch_SEARCH_MY_DOCUMENTS Only if I am logged [Sch_SEARCH_MY_DOCUMENTS ] = 0x3FE, // Only if I am logged
}; };
return (Permissions[WhatToSearch] & (1 << Gbl.Usrs.Me.Role.Logged)); return (Permissions[WhatToSearch] & (1 << Gbl.Usrs.Me.Role.Logged));

View File

@ -53,7 +53,7 @@ extern struct Globals Gbl;
#define Sta_SECONDS_IN_RECENT_LOG ((time_t) (Cfg_DAYS_IN_RECENT_LOG * 24UL * 60UL * 60UL)) // Remove entries in recent log oldest than this time #define Sta_SECONDS_IN_RECENT_LOG ((time_t) (Cfg_DAYS_IN_RECENT_LOG * 24UL * 60UL * 60UL)) // Remove entries in recent log oldest than this time
const unsigned Sta_CellPadding[Sta_NUM_CLICKS_GROUPED_BY] = static const unsigned Sta_CellPadding[Sta_NUM_CLICKS_GROUPED_BY] =
{ {
[Sta_CLICKS_CRS_DETAILED_LIST ] = 2, [Sta_CLICKS_CRS_DETAILED_LIST ] = 2,

View File

@ -41,24 +41,6 @@ extern struct Globals Gbl;
/****************************** Private constants ****************************/ /****************************** Private constants ****************************/
/*****************************************************************************/ /*****************************************************************************/
const char *Tab_TabIcons[Tab_NUM_TABS] =
{
/* TabUnk */ NULL,
/* TabStr */ "home",
/* TabSys */ "sitemap",
/* TabCty */ "globe",
/* TabIns */ "university",
/* TabCtr */ "building",
/* TabDeg */ "graduation-cap",
/* TabCrs */ "list-ol",
/* TabAss */ "check",
/* TabFil */ "folder-open",
/* TabUsr */ "users",
/* TabMsg */ "envelope",
/* TabAna */ "chart-bar",
/* TabPrf */ "user",
};
/*****************************************************************************/ /*****************************************************************************/
/******************************* Private types *******************************/ /******************************* Private types *******************************/
/*****************************************************************************/ /*****************************************************************************/
@ -88,14 +70,14 @@ void Tab_DrawTabs (void)
extern const char *Txt_TABS_TXT[Tab_NUM_TABS]; extern const char *Txt_TABS_TXT[Tab_NUM_TABS];
Tab_Tab_t NumTab; Tab_Tab_t NumTab;
bool ICanViewTab; bool ICanViewTab;
const char *ClassHeadRow3[The_NUM_THEMES] = static const char *ClassHeadRow3[The_NUM_THEMES] =
{ {
"HEAD_ROW_3_WHITE", // The_THEME_WHITE [The_THEME_WHITE ] = "HEAD_ROW_3_WHITE",
"HEAD_ROW_3_GREY", // The_THEME_GREY [The_THEME_GREY ] = "HEAD_ROW_3_GREY",
"HEAD_ROW_3_PURPLE", // The_THEME_PURPLE [The_THEME_PURPLE] = "HEAD_ROW_3_PURPLE",
"HEAD_ROW_3_BLUE", // The_THEME_BLUE [The_THEME_BLUE ] = "HEAD_ROW_3_BLUE",
"HEAD_ROW_3_YELLOW", // The_THEME_YELLOW [The_THEME_YELLOW] = "HEAD_ROW_3_YELLOW",
"HEAD_ROW_3_PINK", // The_THEME_PINK [The_THEME_PINK ] = "HEAD_ROW_3_PINK",
}; };
/***** Start tabs container *****/ /***** Start tabs container *****/
@ -201,6 +183,24 @@ static bool Tab_CheckIfICanViewTab (Tab_Tab_t Tab)
static const char *Tab_GetIcon (Tab_Tab_t NumTab) static const char *Tab_GetIcon (Tab_Tab_t NumTab)
{ {
static const char *Tab_TabIcons[Tab_NUM_TABS] =
{
[TabUnk] = NULL,
[TabStr] = "home",
[TabSys] = "sitemap",
[TabCty] = "globe",
[TabIns] = "university",
[TabCtr] = "building",
[TabDeg] = "graduation-cap",
[TabCrs] = "list-ol",
[TabAss] = "check",
[TabFil] = "folder-open",
[TabUsr] = "users",
[TabMsg] = "envelope",
[TabAna] = "chart-bar",
[TabPrf] = "user",
};
if (NumTab < (Tab_Tab_t) 1 || NumTab >= Tab_NUM_TABS) if (NumTab < (Tab_Tab_t) 1 || NumTab >= Tab_NUM_TABS)
return NULL; return NULL;

View File

@ -61,22 +61,22 @@
// strings are limited to Tst_MAX_BYTES_FEEDBACK_TYPE bytes // strings are limited to Tst_MAX_BYTES_FEEDBACK_TYPE bytes
const char *Tst_FeedbackXML[Tst_NUM_TYPES_FEEDBACK] = const char *Tst_FeedbackXML[Tst_NUM_TYPES_FEEDBACK] =
{ {
"nothing", [Tst_FEEDBACK_NOTHING ] = "nothing",
"totalResult", [Tst_FEEDBACK_TOTAL_RESULT ] = "totalResult",
"eachResult", [Tst_FEEDBACK_EACH_RESULT ] = "eachResult",
"eachGoodBad", [Tst_FEEDBACK_EACH_GOOD_BAD] = "eachGoodBad",
"fullFeedback", [Tst_FEEDBACK_FULL_FEEDBACK] = "fullFeedback",
}; };
// strings are limited to Tst_MAX_BYTES_ANSWER_TYPE characters // strings are limited to Tst_MAX_BYTES_ANSWER_TYPE characters
const char *Tst_StrAnswerTypesXML[Tst_NUM_ANS_TYPES] = const char *Tst_StrAnswerTypesXML[Tst_NUM_ANS_TYPES] =
{ {
"int", [Tst_ANS_INT ] = "int",
"float", [Tst_ANS_FLOAT ] = "float",
"TF", [Tst_ANS_TRUE_FALSE ] = "TF",
"uniqueChoice", [Tst_ANS_UNIQUE_CHOICE ] = "uniqueChoice",
"multipleChoice", [Tst_ANS_MULTIPLE_CHOICE] = "multipleChoice",
"text", [Tst_ANS_TEXT ] = "text",
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -53,248 +53,252 @@ extern struct Globals Gbl;
const char *The_ThemeId[The_NUM_THEMES] = const char *The_ThemeId[The_NUM_THEMES] =
{ {
"white", [The_THEME_WHITE ] = "white",
"grey", [The_THEME_GREY ] = "grey",
"purple", [The_THEME_PURPLE] = "purple",
"blue", [The_THEME_BLUE ] = "blue",
"yellow", [The_THEME_YELLOW] = "yellow",
"pink", [The_THEME_PINK ] = "pink",
}; };
const char *The_ThemeNames[The_NUM_THEMES] = const char *The_ThemeNames[The_NUM_THEMES] =
{ {
"White", [The_THEME_WHITE ] = "White",
"Grey", [The_THEME_GREY ] = "Grey",
"Purple", [The_THEME_PURPLE] = "Purple",
"Blue", [The_THEME_BLUE ] = "Blue",
"Yellow", [The_THEME_YELLOW] = "Yellow",
"Pink", [The_THEME_PINK ] = "Pink",
}; };
const char *The_TabOnBgColors[The_NUM_THEMES] = const char *The_TabOnBgColors[The_NUM_THEMES] =
{ {
"TAB_ON_WHITE", [The_THEME_WHITE ] = "TAB_ON_WHITE",
"TAB_ON_GREY", [The_THEME_GREY ] = "TAB_ON_GREY",
"TAB_ON_PURPLE", [The_THEME_PURPLE] = "TAB_ON_PURPLE",
"TAB_ON_BLUE", [The_THEME_BLUE ] = "TAB_ON_BLUE",
"TAB_ON_YELLOW", [The_THEME_YELLOW] = "TAB_ON_YELLOW",
"TAB_ON_PINK", [The_THEME_PINK ] = "TAB_ON_PINK",
}; };
const char *The_TabOffBgColors[The_NUM_THEMES] = const char *The_TabOffBgColors[The_NUM_THEMES] =
{ {
"TAB_OFF_WHITE", [The_THEME_WHITE ] = "TAB_OFF_WHITE",
"TAB_OFF_GREY", [The_THEME_GREY ] = "TAB_OFF_GREY",
"TAB_OFF_PURPLE", [The_THEME_PURPLE] = "TAB_OFF_PURPLE",
"TAB_OFF_BLUE", [The_THEME_BLUE ] = "TAB_OFF_BLUE",
"TAB_OFF_YELLOW", [The_THEME_YELLOW] = "TAB_OFF_YELLOW",
"TAB_OFF_PINK", [The_THEME_PINK ] = "TAB_OFF_PINK",
}; };
const char *The_ClassTagline[The_NUM_THEMES] = const char *The_ClassTagline[The_NUM_THEMES] =
{ {
"BT_LINK TAGLINE_WHITE", [The_THEME_WHITE ] = "BT_LINK TAGLINE_WHITE",
"BT_LINK TAGLINE_GREY", [The_THEME_GREY ] = "BT_LINK TAGLINE_GREY",
"BT_LINK TAGLINE_PURPLE", [The_THEME_PURPLE] = "BT_LINK TAGLINE_PURPLE",
"BT_LINK TAGLINE_BLUE", [The_THEME_BLUE ] = "BT_LINK TAGLINE_BLUE",
"BT_LINK TAGLINE_YELLOW", [The_THEME_YELLOW] = "BT_LINK TAGLINE_YELLOW",
"BT_LINK TAGLINE_PINK", [The_THEME_PINK ] = "BT_LINK TAGLINE_PINK",
}; };
const char *The_ClassNotif[The_NUM_THEMES] = const char *The_ClassNotif[The_NUM_THEMES] =
{ {
"BT_LINK NOTIF_WHITE", [The_THEME_WHITE ] = "BT_LINK NOTIF_WHITE",
"BT_LINK NOTIF_GREY", [The_THEME_GREY ] = "BT_LINK NOTIF_GREY",
"BT_LINK NOTIF_PURPLE", [The_THEME_PURPLE] = "BT_LINK NOTIF_PURPLE",
"BT_LINK NOTIF_BLUE", [The_THEME_BLUE ] = "BT_LINK NOTIF_BLUE",
"BT_LINK NOTIF_YELLOW", [The_THEME_YELLOW] = "BT_LINK NOTIF_YELLOW",
"BT_LINK NOTIF_PINK", [The_THEME_PINK ] = "BT_LINK NOTIF_PINK",
}; };
const char *The_ClassUsr[The_NUM_THEMES] = const char *The_ClassUsr[The_NUM_THEMES] =
{ {
"USR_WHITE", [The_THEME_WHITE ] = "USR_WHITE",
"USR_GREY", [The_THEME_GREY ] = "USR_GREY",
"USR_PURPLE", [The_THEME_PURPLE] = "USR_PURPLE",
"USR_BLUE", [The_THEME_BLUE ] = "USR_BLUE",
"USR_YELLOW", [The_THEME_YELLOW] = "USR_YELLOW",
"USR_PINK", [The_THEME_PINK ] = "USR_PINK",
}; };
const char *The_ClassBreadcrumb[The_NUM_THEMES] = const char *The_ClassBreadcrumb[The_NUM_THEMES] =
{ {
"BC_WHITE", [The_THEME_WHITE ] = "BC_WHITE",
"BC_GREY", [The_THEME_GREY ] = "BC_GREY",
"BC_PURPLE", [The_THEME_PURPLE] = "BC_PURPLE",
"BC_BLUE", [The_THEME_BLUE ] = "BC_BLUE",
"BC_YELLOW", [The_THEME_YELLOW] = "BC_YELLOW",
"BC_PINK", [The_THEME_PINK ] = "BC_PINK",
}; };
const char *The_ClassCourse[The_NUM_THEMES] = const char *The_ClassCourse[The_NUM_THEMES] =
{ {
"MAIN_TITLE_WHITE", [The_THEME_WHITE ] = "MAIN_TITLE_WHITE",
"MAIN_TITLE_GREY", [The_THEME_GREY ] = "MAIN_TITLE_GREY",
"MAIN_TITLE_PURPLE", [The_THEME_PURPLE] = "MAIN_TITLE_PURPLE",
"MAIN_TITLE_BLUE", [The_THEME_BLUE ] = "MAIN_TITLE_BLUE",
"MAIN_TITLE_YELLOW", [The_THEME_YELLOW] = "MAIN_TITLE_YELLOW",
"MAIN_TITLE_PINK", [The_THEME_PINK ] = "MAIN_TITLE_PINK",
}; };
const char *The_ClassTxtMenu[The_NUM_THEMES] = const char *The_ClassTxtMenu[The_NUM_THEMES] =
{ {
"MENU_TXT_WHITE", [The_THEME_WHITE ] = "MENU_TXT_WHITE",
"MENU_TXT_GREY", [The_THEME_GREY ] = "MENU_TXT_GREY",
"MENU_TXT_PURPLE", [The_THEME_PURPLE] = "MENU_TXT_PURPLE",
"MENU_TXT_BLUE", [The_THEME_BLUE ] = "MENU_TXT_BLUE",
"MENU_TXT_YELLOW", [The_THEME_YELLOW] = "MENU_TXT_YELLOW",
"MENU_TXT_PINK", [The_THEME_PINK ] = "MENU_TXT_PINK",
}; };
const char *The_ClassTxtTabOff[The_NUM_THEMES] = const char *The_ClassTxtTabOff[The_NUM_THEMES] =
{ {
"TAB_OFF_TXT_WHITE", [The_THEME_WHITE ] = "TAB_OFF_TXT_WHITE",
"TAB_OFF_TXT_GREY", [The_THEME_GREY ] = "TAB_OFF_TXT_GREY",
"TAB_OFF_TXT_PURPLE", [The_THEME_PURPLE] = "TAB_OFF_TXT_PURPLE",
"TAB_OFF_TXT_BLUE", [The_THEME_BLUE ] = "TAB_OFF_TXT_BLUE",
"TAB_OFF_TXT_YELLOW", [The_THEME_YELLOW] = "TAB_OFF_TXT_YELLOW",
"TAB_OFF_TXT_PINK", [The_THEME_PINK ] = "TAB_OFF_TXT_PINK",
}; };
const char *The_ClassTxtTabOn[The_NUM_THEMES] = const char *The_ClassTxtTabOn[The_NUM_THEMES] =
{ {
"TAB_ON_TXT_WHITE", [The_THEME_WHITE ] = "TAB_ON_TXT_WHITE",
"TAB_ON_TXT_GREY", [The_THEME_GREY ] = "TAB_ON_TXT_GREY",
"TAB_ON_TXT_PURPLE", [The_THEME_PURPLE] = "TAB_ON_TXT_PURPLE",
"TAB_ON_TXT_BLUE", [The_THEME_BLUE ] = "TAB_ON_TXT_BLUE",
"TAB_ON_TXT_YELLOW", [The_THEME_YELLOW] = "TAB_ON_TXT_YELLOW",
"TAB_ON_TXT_PINK", [The_THEME_PINK ] = "TAB_ON_TXT_PINK",
}; };
const char *The_ClassTitleAction[The_NUM_THEMES] = const char *The_ClassTitleAction[The_NUM_THEMES] =
{ {
"TITLE_ACTION_WHITE", [The_THEME_WHITE ] = "TITLE_ACTION_WHITE",
"TITLE_ACTION_GREY", [The_THEME_GREY ] = "TITLE_ACTION_GREY",
"TITLE_ACTION_PURPLE", [The_THEME_PURPLE] = "TITLE_ACTION_PURPLE",
"TITLE_ACTION_BLUE", [The_THEME_BLUE ] = "TITLE_ACTION_BLUE",
"TITLE_ACTION_YELLOW", [The_THEME_YELLOW] = "TITLE_ACTION_YELLOW",
"TITLE_ACTION_PINK", [The_THEME_PINK ] = "TITLE_ACTION_PINK",
}; };
const char *The_ClassSubtitleAction[The_NUM_THEMES] = const char *The_ClassSubtitleAction[The_NUM_THEMES] =
{ {
"SUBTITLE_ACTION_WHITE", [The_THEME_WHITE ] = "SUBTITLE_ACTION_WHITE",
"SUBTITLE_ACTION_GREY", [The_THEME_GREY ] = "SUBTITLE_ACTION_GREY",
"SUBTITLE_ACTION_PURPLE", [The_THEME_PURPLE] = "SUBTITLE_ACTION_PURPLE",
"SUBTITLE_ACTION_BLUE", [The_THEME_BLUE ] = "SUBTITLE_ACTION_BLUE",
"SUBTITLE_ACTION_YELLOW", [The_THEME_YELLOW] = "SUBTITLE_ACTION_YELLOW",
"SUBTITLE_ACTION_PINK", [The_THEME_PINK ] = "SUBTITLE_ACTION_PINK",
}; };
const char *The_ClassTitle[The_NUM_THEMES] = const char *The_ClassTitle[The_NUM_THEMES] =
{ {
"TITLE_WHITE", [The_THEME_WHITE ] = "TITLE_WHITE",
"TITLE_GREY", [The_THEME_GREY ] = "TITLE_GREY",
"TITLE_PURPLE", [The_THEME_PURPLE] = "TITLE_PURPLE",
"TITLE_BLUE", [The_THEME_BLUE ] = "TITLE_BLUE",
"TITLE_YELLOW", [The_THEME_YELLOW] = "TITLE_YELLOW",
"TITLE_PINK", [The_THEME_PINK ] = "TITLE_PINK",
}; };
const char *The_ClassFormLinkInBox[The_NUM_THEMES] = const char *The_ClassFormLinkInBox[The_NUM_THEMES] =
{ {
"BT_LINK FORM_IN_WHITE", [The_THEME_WHITE ] = "BT_LINK FORM_IN_WHITE",
"BT_LINK FORM_IN_GREY", [The_THEME_GREY ] = "BT_LINK FORM_IN_GREY",
"BT_LINK FORM_IN_PURPLE", [The_THEME_PURPLE] = "BT_LINK FORM_IN_PURPLE",
"BT_LINK FORM_IN_BLUE", [The_THEME_BLUE ] = "BT_LINK FORM_IN_BLUE",
"BT_LINK FORM_IN_YELLOW", [The_THEME_YELLOW] = "BT_LINK FORM_IN_YELLOW",
"BT_LINK FORM_IN_PINK", [The_THEME_PINK ] = "BT_LINK FORM_IN_PINK",
}; };
const char *The_ClassFormInBox[The_NUM_THEMES] = const char *The_ClassFormInBox[The_NUM_THEMES] =
{ {
"FORM_IN_WHITE", [The_THEME_WHITE ] = "FORM_IN_WHITE",
"FORM_IN_GREY", [The_THEME_GREY ] = "FORM_IN_GREY",
"FORM_IN_PURPLE", [The_THEME_PURPLE] = "FORM_IN_PURPLE",
"FORM_IN_BLUE", [The_THEME_BLUE ] = "FORM_IN_BLUE",
"FORM_IN_YELLOW", [The_THEME_YELLOW] = "FORM_IN_YELLOW",
"FORM_IN_PINK", [The_THEME_PINK ] = "FORM_IN_PINK",
}; };
const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES] = const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES] =
{ {
"BT_LINK FORM_IN_WHITE BOLD", [The_THEME_WHITE ] = "BT_LINK FORM_IN_WHITE BOLD",
"BT_LINK FORM_IN_GREY BOLD", [The_THEME_GREY ] = "BT_LINK FORM_IN_GREY BOLD",
"BT_LINK FORM_IN_PURPLE BOLD", [The_THEME_PURPLE] = "BT_LINK FORM_IN_PURPLE BOLD",
"BT_LINK FORM_IN_BLUE BOLD", [The_THEME_BLUE ] = "BT_LINK FORM_IN_BLUE BOLD",
"BT_LINK FORM_IN_YELLOW BOLD", [The_THEME_YELLOW] = "BT_LINK FORM_IN_YELLOW BOLD",
"BT_LINK FORM_IN_PINK BOLD", [The_THEME_PINK ] = "BT_LINK FORM_IN_PINK BOLD",
}; };
const char *The_ClassFormInBoxBold[The_NUM_THEMES] = const char *The_ClassFormInBoxBold[The_NUM_THEMES] =
{ {
"FORM_IN_WHITE BOLD", [The_THEME_WHITE ] = "FORM_IN_WHITE BOLD",
"FORM_IN_GREY BOLD", [The_THEME_GREY ] = "FORM_IN_GREY BOLD",
"FORM_IN_PURPLE BOLD", [The_THEME_PURPLE] = "FORM_IN_PURPLE BOLD",
"FORM_IN_BLUE BOLD", [The_THEME_BLUE ] = "FORM_IN_BLUE BOLD",
"FORM_IN_YELLOW BOLD", [The_THEME_YELLOW] = "FORM_IN_YELLOW BOLD",
"FORM_IN_PINK BOLD", [The_THEME_PINK ] = "FORM_IN_PINK BOLD",
}; };
const char *The_ClassFormLinkInBoxNoWrap[The_NUM_THEMES] = const char *The_ClassFormLinkInBoxNoWrap[The_NUM_THEMES] =
{ {
"BT_LINK FORM_IN_WHITE NOWRAP", [The_THEME_WHITE ] = "BT_LINK FORM_IN_WHITE NOWRAP",
"BT_LINK FORM_IN_GREY NOWRAP", [The_THEME_GREY ] = "BT_LINK FORM_IN_GREY NOWRAP",
"BT_LINK FORM_IN_PURPLE NOWRAP", [The_THEME_PURPLE] = "BT_LINK FORM_IN_PURPLE NOWRAP",
"BT_LINK FORM_IN_BLUE NOWRAP", [The_THEME_BLUE ] = "BT_LINK FORM_IN_BLUE NOWRAP",
"BT_LINK FORM_IN_YELLOW NOWRAP", [The_THEME_YELLOW] = "BT_LINK FORM_IN_YELLOW NOWRAP",
"BT_LINK FORM_IN_PINK NOWRAP", [The_THEME_PINK ] = "BT_LINK FORM_IN_PINK NOWRAP",
}; };
const char *The_ClassFormInBoxNoWrap[The_NUM_THEMES] = const char *The_ClassFormInBoxNoWrap[The_NUM_THEMES] =
{ {
"FORM_IN_WHITE NOWRAP", [The_THEME_WHITE ] = "FORM_IN_WHITE NOWRAP",
"FORM_IN_GREY NOWRAP", [The_THEME_GREY ] = "FORM_IN_GREY NOWRAP",
"FORM_IN_PURPLE NOWRAP", [The_THEME_PURPLE] = "FORM_IN_PURPLE NOWRAP",
"FORM_IN_BLUE NOWRAP", [The_THEME_BLUE ] = "FORM_IN_BLUE NOWRAP",
"FORM_IN_YELLOW NOWRAP", [The_THEME_YELLOW] = "FORM_IN_YELLOW NOWRAP",
"FORM_IN_PINK NOWRAP", [The_THEME_PINK ] = "FORM_IN_PINK NOWRAP",
}; };
const char *The_ClassFormLinkOutBox[The_NUM_THEMES] = const char *The_ClassFormLinkOutBox[The_NUM_THEMES] =
{ {
"BT_LINK FORM_OUT_WHITE", [The_THEME_WHITE ] = "BT_LINK FORM_OUT_WHITE",
"BT_LINK FORM_OUT_GREY", [The_THEME_GREY ] = "BT_LINK FORM_OUT_GREY",
"BT_LINK FORM_OUT_PURPLE", [The_THEME_PURPLE] = "BT_LINK FORM_OUT_PURPLE",
"BT_LINK FORM_OUT_BLUE", [The_THEME_BLUE ] = "BT_LINK FORM_OUT_BLUE",
"BT_LINK FORM_OUT_YELLOW", [The_THEME_YELLOW] = "BT_LINK FORM_OUT_YELLOW",
"BT_LINK FORM_OUT_PINK", [The_THEME_PINK ] = "BT_LINK FORM_OUT_PINK",
}; };
const char *The_ClassFormOutBox[The_NUM_THEMES] = const char *The_ClassFormOutBox[The_NUM_THEMES] =
{ {
"FORM_OUT_WHITE", [The_THEME_WHITE ] = "FORM_OUT_WHITE",
"FORM_OUT_GREY", [The_THEME_GREY ] = "FORM_OUT_GREY",
"FORM_OUT_PURPLE", [The_THEME_PURPLE] = "FORM_OUT_PURPLE",
"FORM_OUT_BLUE", [The_THEME_BLUE ] = "FORM_OUT_BLUE",
"FORM_OUT_YELLOW", [The_THEME_YELLOW] = "FORM_OUT_YELLOW",
"FORM_OUT_PINK", [The_THEME_PINK ] = "FORM_OUT_PINK",
}; };
const char *The_ClassFormLinkOutBoxBold[The_NUM_THEMES] = const char *The_ClassFormLinkOutBoxBold[The_NUM_THEMES] =
{ {
"BT_LINK FORM_OUT_WHITE BOLD", [The_THEME_WHITE ] = "BT_LINK FORM_OUT_WHITE BOLD",
"BT_LINK FORM_OUT_GREY BOLD", [The_THEME_GREY ] = "BT_LINK FORM_OUT_GREY BOLD",
"BT_LINK FORM_OUT_PURPLE BOLD", [The_THEME_PURPLE] = "BT_LINK FORM_OUT_PURPLE BOLD",
"BT_LINK FORM_OUT_BLUE BOLD", [The_THEME_BLUE ] = "BT_LINK FORM_OUT_BLUE BOLD",
"BT_LINK FORM_OUT_YELLOW BOLD", [The_THEME_YELLOW] = "BT_LINK FORM_OUT_YELLOW BOLD",
"BT_LINK FORM_OUT_PINK BOLD", [The_THEME_PINK ] = "BT_LINK FORM_OUT_PINK BOLD",
}; };
const char *The_ClassFormOutBoxBold[The_NUM_THEMES] = const char *The_ClassFormOutBoxBold[The_NUM_THEMES] =
{ {
"FORM_OUT_WHITE BOLD", [The_THEME_WHITE ] = "FORM_OUT_WHITE BOLD",
"FORM_OUT_GREY BOLD", [The_THEME_GREY ] = "FORM_OUT_GREY BOLD",
"FORM_OUT_PURPLE BOLD", [The_THEME_PURPLE] = "FORM_OUT_PURPLE BOLD",
"FORM_OUT_BLUE BOLD", [The_THEME_BLUE ] = "FORM_OUT_BLUE BOLD",
"FORM_OUT_YELLOW BOLD", [The_THEME_YELLOW] = "FORM_OUT_YELLOW BOLD",
"FORM_OUT_PINK BOLD", [The_THEME_PINK ] = "FORM_OUT_PINK BOLD",
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -77,6 +77,7 @@ typedef enum
TL_TIMELINE_GBL, // Show the timeline of the users follwed by me TL_TIMELINE_GBL, // Show the timeline of the users follwed by me
} TL_TimelineUsrOrGbl_t; } TL_TimelineUsrOrGbl_t;
#define TL_NUM_WHAT_TO_GET_FROM_TIMELINE 3
typedef enum typedef enum
{ {
TL_GET_ONLY_NEW_PUBS, // New publications are retrieved via AJAX TL_GET_ONLY_NEW_PUBS, // New publications are retrieved via AJAX
@ -560,11 +561,11 @@ static void TL_BuildQueryToGetTimeline (char **Query,
unsigned NumPub; unsigned NumPub;
long PubCod; long PubCod;
long NotCod; long NotCod;
const unsigned MaxPubsToGet[3] = static const unsigned MaxPubsToGet[TL_NUM_WHAT_TO_GET_FROM_TIMELINE] =
{ {
TL_MAX_NEW_PUBS_TO_GET_AND_SHOW, // TL_GET_ONLY_NEW_PUBS [TL_GET_ONLY_NEW_PUBS ] = TL_MAX_NEW_PUBS_TO_GET_AND_SHOW,
TL_MAX_REC_PUBS_TO_GET_AND_SHOW, // TL_GET_RECENT_TIMELINE [TL_GET_RECENT_TIMELINE] = TL_MAX_REC_PUBS_TO_GET_AND_SHOW,
TL_MAX_OLD_PUBS_TO_GET_AND_SHOW, // TL_GET_ONLY_OLD_PUBS [TL_GET_ONLY_OLD_PUBS ] = TL_MAX_OLD_PUBS_TO_GET_AND_SHOW,
}; };
/***** Clear timeline for this session in database *****/ /***** Clear timeline for this session in database *****/
@ -4929,12 +4930,12 @@ static void TL_GetDataOfCommByCod (struct TL_Comment *SocCom)
static void TL_GetDataOfPublicationFromRow (MYSQL_ROW row,struct TL_Publication *SocPub) static void TL_GetDataOfPublicationFromRow (MYSQL_ROW row,struct TL_Publication *SocPub)
{ {
const TL_TopMessage_t TopMessages[TL_NUM_PUB_TYPES] = static const TL_TopMessage_t TopMessages[TL_NUM_PUB_TYPES] =
{ {
TL_TOP_MESSAGE_NONE, // TL_PUB_UNKNOWN [TL_PUB_UNKNOWN ] = TL_TOP_MESSAGE_NONE,
TL_TOP_MESSAGE_NONE, // TL_PUB_ORIGINAL_NOTE [TL_PUB_ORIGINAL_NOTE ] = TL_TOP_MESSAGE_NONE,
TL_TOP_MESSAGE_SHARED, // TL_PUB_SHARED_NOTE [TL_PUB_SHARED_NOTE ] = TL_TOP_MESSAGE_SHARED,
TL_TOP_MESSAGE_COMMENTED, // TL_PUB_COMMENT_TO_NOTE [TL_PUB_COMMENT_TO_NOTE] = TL_TOP_MESSAGE_COMMENTED,
}; };
/***** Get code of publication (row[0]) *****/ /***** Get code of publication (row[0]) *****/

View File

@ -113,7 +113,7 @@ struct TT_Cell *TT_TimeTable[TT_DAYS_PER_WEEK];
/* Possible resolutions of the timetable in minutes */ /* Possible resolutions of the timetable in minutes */
#define TT_NUM_RESOLUTIONS 3 #define TT_NUM_RESOLUTIONS 3
unsigned TT_MinutesPerInterval[TT_NUM_RESOLUTIONS] = static const unsigned TT_MinutesPerInterval[TT_NUM_RESOLUTIONS] =
{ {
5, // 5 minutes 5, // 5 minutes
15, // 15 minutes // Use 10 or 15 minutes (15 looks better), never both together 15, // 15 minutes // Use 10 or 15 minutes (15 looks better), never both together
@ -316,7 +316,7 @@ void TT_ShowClassTimeTable (void)
[TT_MY_TIMETABLE ] = Hlp_PROFILE_Timetable, [TT_MY_TIMETABLE ] = Hlp_PROFILE_Timetable,
[TT_TUTORING_TIMETABLE] = NULL, [TT_TUTORING_TIMETABLE] = NULL,
}; };
static Act_Action_t ActChgTT1stDay[TT_NUM_TIMETABLE_TYPES] = static const Act_Action_t ActChgTT1stDay[TT_NUM_TIMETABLE_TYPES] =
{ {
[TT_COURSE_TIMETABLE ] = ActChgCrsTT1stDay, [TT_COURSE_TIMETABLE ] = ActChgCrsTT1stDay,
[TT_MY_TIMETABLE ] = ActChgMyTT1stDay, [TT_MY_TIMETABLE ] = ActChgMyTT1stDay,
@ -418,7 +418,7 @@ static void TT_PutContextualIcons (void)
static void TT_PutFormToSelectWhichGroupsToShow (void) static void TT_PutFormToSelectWhichGroupsToShow (void)
{ {
Act_Action_t ActSeeTT[TT_NUM_TIMETABLE_TYPES] = static const Act_Action_t ActSeeTT[TT_NUM_TIMETABLE_TYPES] =
{ {
ActSeeCrsTT, // TT_COURSE_TIMETABLE ActSeeCrsTT, // TT_COURSE_TIMETABLE
ActSeeMyTT, // TT_MY_TIMETABLE ActSeeMyTT, // TT_MY_TIMETABLE

View File

@ -74,25 +74,25 @@
const char *Usr_StringsSexIcons[Usr_NUM_SEXS] = const char *Usr_StringsSexIcons[Usr_NUM_SEXS] =
{ {
"?", // Usr_SEX_UNKNOWN [Usr_SEX_UNKNOWN] = "?",
"&female;", // Usr_SEX_FEMALE [Usr_SEX_FEMALE ] = "&female;",
"&male;", // Usr_SEX_MALE [Usr_SEX_MALE ] = "&male;",
"*", // Usr_SEX_ALL [Usr_SEX_ALL ] = "*",
}; };
const char *Usr_StringsSexDB[Usr_NUM_SEXS] = const char *Usr_StringsSexDB[Usr_NUM_SEXS] =
{ {
"unknown", // Usr_SEX_UNKNOWN [Usr_SEX_UNKNOWN] = "unknown",
"female", // Usr_SEX_FEMALE [Usr_SEX_FEMALE ] = "female",
"male", // Usr_SEX_MALE [Usr_SEX_MALE ] = "male",
"all", // Usr_SEX_ALL [Usr_SEX_ALL ] = "all",
}; };
const char *Usr_StringsUsrListTypeInDB[Usr_NUM_USR_LIST_TYPES] = const char *Usr_StringsUsrListTypeInDB[Usr_NUM_USR_LIST_TYPES] =
{ {
"", // Usr_LIST_UNKNOWN [Usr_LIST_UNKNOWN ] = "",
"classphoto", // Usr_LIST_AS_CLASS_PHOTO [Usr_LIST_AS_CLASS_PHOTO] = "classphoto",
"list", // Usr_LIST_AS_LISTING [Usr_LIST_AS_LISTING ] = "list",
}; };
/*****************************************************************************/ /*****************************************************************************/
@ -8496,14 +8496,14 @@ static void Usr_PutOptionsListUsrs (const bool ICanChooseOption[Usr_LIST_USRS_NU
extern const char *Txt_Continue; extern const char *Txt_Continue;
const char *Label[Usr_LIST_USRS_NUM_OPTIONS] = const char *Label[Usr_LIST_USRS_NUM_OPTIONS] =
{ {
NULL, // Usr_OPTION_UNKNOWN [Usr_OPTION_UNKNOWN ] = NULL,
Txt_View_records, // Usr_OPTION_RECORDS [Usr_OPTION_RECORDS ] = Txt_View_records,
Txt_View_homework, // Usr_OPTION_HOMEWORK [Usr_OPTION_HOMEWORK ] = Txt_View_homework,
Txt_View_attendance, // Usr_OPTION_ATTENDANCE [Usr_OPTION_ATTENDANCE] = Txt_View_attendance,
Txt_Send_message, // Usr_OPTION_MESSAGE [Usr_OPTION_MESSAGE ] = Txt_Send_message,
Txt_Create_email_message, // Usr_OPTION_EMAIL [Usr_OPTION_EMAIL ] = Txt_Create_email_message,
Txt_Follow, // Usr_OPTION_FOLLOW [Usr_OPTION_FOLLOW ] = Txt_Follow,
Txt_Unfollow, // Usr_OPTION_UNFOLLOW [Usr_OPTION_UNFOLLOW ] = Txt_Unfollow,
}; };
Usr_ListUsrsOption_t Opt; Usr_ListUsrsOption_t Opt;