mirror of https://github.com/acanas/swad-core.git
Version19.76.4
This commit is contained in:
parent
397b46748e
commit
1176fe30e2
|
@ -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)
|
||||||
|
|
180
swad_network.c
180
swad_network.c
|
@ -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"
|
||||||
|
|
|
@ -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,
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -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,
|
||||||
|
|
|
@ -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",
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -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";
|
||||||
|
|
20
swad_role.c
20
swad_role.c
|
@ -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",
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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,
|
||||||
|
|
||||||
|
|
50
swad_tab.c
50
swad_tab.c
|
@ -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;
|
||||||
|
|
||||||
|
|
22
swad_test.c
22
swad_test.c
|
@ -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",
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
304
swad_theme.c
304
swad_theme.c
|
@ -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",
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -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]) *****/
|
||||||
|
|
|
@ -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
|
||||||
|
|
38
swad_user.c
38
swad_user.c
|
@ -74,25 +74,25 @@
|
||||||
|
|
||||||
const char *Usr_StringsSexIcons[Usr_NUM_SEXS] =
|
const char *Usr_StringsSexIcons[Usr_NUM_SEXS] =
|
||||||
{
|
{
|
||||||
"?", // Usr_SEX_UNKNOWN
|
[Usr_SEX_UNKNOWN] = "?",
|
||||||
"♀", // Usr_SEX_FEMALE
|
[Usr_SEX_FEMALE ] = "♀",
|
||||||
"♂", // Usr_SEX_MALE
|
[Usr_SEX_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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue