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:
|
||||
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 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: 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.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)
|
||||
|
|
180
swad_network.c
180
swad_network.c
|
@ -83,103 +83,103 @@ typedef enum
|
|||
|
||||
#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
|
||||
"500px", // Net_500PX
|
||||
"delicious", // Net_DELICIOUS
|
||||
"deviantart", // Net_DEVIANTART
|
||||
"diaspora", // Net_DIASPORA
|
||||
"edmodo", // Net_EDMODO
|
||||
"facebook", // Net_FACEBOOK
|
||||
"flickr", // Net_FLICKR
|
||||
"foursquare", // Net_FOURSQUAREhub
|
||||
"github", // Net_GITHUB
|
||||
"gnusocial", // Net_GNU_SOCIAL
|
||||
"googleplus", // Net_GOOGLE_PLUS
|
||||
"googlescholar", // Net_GOOGLE_SCHOLAR
|
||||
"identica", // Net_IDENTICA
|
||||
"instagram", // Net_INSTAGRAM
|
||||
"linkedin", // Net_LINKEDIN
|
||||
"orcid", // Net_ORCID
|
||||
"paperli", // Net_PAPERLI
|
||||
"pinterest", // Net_PINTEREST
|
||||
"researchgate", // Net_RESEARCH_GATE
|
||||
"researcherid", // Net_RESEARCHERID
|
||||
"scoopit", // Net_SCOOPIT
|
||||
"slideshare", // Net_SLIDESHARE
|
||||
"stackoverflow", // Net_STACK_OVERFLOW
|
||||
"storify", // Net_STORIFY
|
||||
"tumblr", // Net_TUMBLR
|
||||
"twitter", // Net_TWITTER
|
||||
"wikipedia", // Net_WIKIPEDIA
|
||||
"youtube", // Net_YOUTUBE
|
||||
[Net_WWW ] = "www",
|
||||
[Net_500PX ] = "500px",
|
||||
[Net_DELICIOUS ] = "delicious",
|
||||
[Net_DEVIANTART ] = "deviantart",
|
||||
[Net_DIASPORA ] = "diaspora",
|
||||
[Net_EDMODO ] = "edmodo",
|
||||
[Net_FACEBOOK ] = "facebook",
|
||||
[Net_FLICKR ] = "flickr",
|
||||
[Net_FOURSQUARE ] = "foursquare",
|
||||
[Net_GITHUB ] = "github",
|
||||
[Net_GNU_SOCIAL ] = "gnusocial",
|
||||
[Net_GOOGLE_PLUS ] = "googleplus",
|
||||
[Net_GOOGLE_SCHOLAR] = "googlescholar",
|
||||
[Net_IDENTICA ] = "identica",
|
||||
[Net_INSTAGRAM ] = "instagram",
|
||||
[Net_LINKEDIN ] = "linkedin",
|
||||
[Net_ORCID ] = "orcid",
|
||||
[Net_PAPERLI ] = "paperli",
|
||||
[Net_PINTEREST ] = "pinterest",
|
||||
[Net_RESEARCH_GATE ] = "researchgate",
|
||||
[Net_RESEARCHERID ] = "researcherid",
|
||||
[Net_SCOOPIT ] = "scoopit",
|
||||
[Net_SLIDESHARE ] = "slideshare",
|
||||
[Net_STACK_OVERFLOW] = "stackoverflow",
|
||||
[Net_STORIFY ] = "storify",
|
||||
[Net_TUMBLR ] = "tumblr",
|
||||
[Net_TWITTER ] = "twitter",
|
||||
[Net_WIKIPEDIA ] = "wikipedia",
|
||||
[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
|
||||
"500px-brands.svg", // Net_500PX
|
||||
"delicious-brands.svg", // Net_DELICIOUS
|
||||
"deviantart-brands.svg", // Net_DEVIANTART
|
||||
"diaspora-brands.svg", // Net_DIASPORA
|
||||
"edmodo64x64.png", // Net_EDMODO
|
||||
"facebook-brands.svg", // Net_FACEBOOK
|
||||
"flickr-brands.svg", // Net_FLICKR
|
||||
"foursquare-brands.svg", // Net_FOURSQUAREhub
|
||||
"github-brands.svg", // Net_GITHUB
|
||||
"gnusocial64x64.png", // Net_GNU_SOCIAL
|
||||
"google-plus-brands.svg", // Net_GOOGLE_PLUS
|
||||
"googlescholar.svg", // Net_GOOGLE_SCHOLAR
|
||||
"identica64x64.png", // Net_IDENTICA
|
||||
"instagram-brands.svg", // Net_INSTAGRAM
|
||||
"linkedin-brands.svg", // Net_LINKEDIN
|
||||
"orcid64x64.png", // Net_ORCID
|
||||
"paperli64x64.png", // Net_PAPERLI
|
||||
"pinterest-brands.svg", // Net_PINTEREST
|
||||
"researchgate-brands.svg", // Net_RESEARCH_GATE
|
||||
"researcherid64x64.png", // Net_RESEARCHERID
|
||||
"scoopit64x64.png", // Net_SCOOPIT
|
||||
"slideshare-brands.svg", // Net_SLIDESHARE
|
||||
"stack-overflow-brands.svg", // Net_STACK_OVERFLOW
|
||||
"storify64x64.png", // Net_STORIFY
|
||||
"tumblr-brands.svg", // Net_TUMBLR
|
||||
"twitter-brands.svg", // Net_TWITTER
|
||||
"wikipedia-w-brands.svg", // Net_WIKIPEDIA
|
||||
"youtube-brands.svg", // Net_YOUTUBE
|
||||
[Net_WWW ] = "globe.svg",
|
||||
[Net_500PX ] = "500px-brands.svg",
|
||||
[Net_DELICIOUS ] = "delicious-brands.svg",
|
||||
[Net_DEVIANTART ] = "deviantart-brands.svg",
|
||||
[Net_DIASPORA ] = "diaspora-brands.svg",
|
||||
[Net_EDMODO ] = "edmodo64x64.png",
|
||||
[Net_FACEBOOK ] = "facebook-brands.svg",
|
||||
[Net_FLICKR ] = "flickr-brands.svg",
|
||||
[Net_FOURSQUARE ] = "foursquare-brands.svg",
|
||||
[Net_GITHUB ] = "github-brands.svg",
|
||||
[Net_GNU_SOCIAL ] = "gnusocial64x64.png",
|
||||
[Net_GOOGLE_PLUS ] = "google-plus-brands.svg",
|
||||
[Net_GOOGLE_SCHOLAR] = "googlescholar.svg",
|
||||
[Net_IDENTICA ] = "identica64x64.png",
|
||||
[Net_INSTAGRAM ] = "instagram-brands.svg",
|
||||
[Net_LINKEDIN ] = "linkedin-brands.svg",
|
||||
[Net_ORCID ] = "orcid64x64.png",
|
||||
[Net_PAPERLI ] = "paperli64x64.png",
|
||||
[Net_PINTEREST ] = "pinterest-brands.svg",
|
||||
[Net_RESEARCH_GATE ] = "researchgate-brands.svg",
|
||||
[Net_RESEARCHERID ] = "researcherid64x64.png",
|
||||
[Net_SCOOPIT ] = "scoopit64x64.png",
|
||||
[Net_SLIDESHARE ] = "slideshare-brands.svg",
|
||||
[Net_STACK_OVERFLOW] = "stack-overflow-brands.svg",
|
||||
[Net_STORIFY ] = "storify64x64.png",
|
||||
[Net_TUMBLR ] = "tumblr-brands.svg",
|
||||
[Net_TWITTER ] = "twitter-brands.svg",
|
||||
[Net_WIKIPEDIA ] = "wikipedia-w-brands.svg",
|
||||
[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
|
||||
"500px", // Net_500PX
|
||||
"Delicious", // Net_DELICIOUS
|
||||
"DeviantArt", // Net_DEVIANTART
|
||||
"Diaspora", // Net_DIASPORA
|
||||
"Edmodo", // Net_EDMODO
|
||||
"Facebook", // Net_FACEBOOK
|
||||
"Flickr", // Net_FLICKR
|
||||
"Foursquare", // Net_FOURSQUARE
|
||||
"GitHub", // Net_GITHUB
|
||||
"GNU Social", // Net_GNU_SOCIAL
|
||||
"Google+", // Net_GOOGLE_PLUS
|
||||
"Google Scholar", // Net_GOOGLE_SCHOLAR
|
||||
"identi.ca", // Net_IDENTICA
|
||||
"Instagram", // Net_INSTAGRAM
|
||||
"LinkedIn", // Net_LINKEDIN
|
||||
"ORCID", // Net_ORCID
|
||||
"Paper.li", // Net_PAPERLI
|
||||
"Pinterest", // Net_PINTEREST
|
||||
"Research Gate", // Net_RESEARCH_GATE
|
||||
"ResearcherID", // Net_RESEARCHERID
|
||||
"Scoop.it", // Net_SCOOPIT
|
||||
"Slideshare", // Net_SLIDESHARE
|
||||
"Stack Overflow", // Net_STACK_OVERFLOW
|
||||
"Storify", // Net_STORIFY
|
||||
"Tumblr", // Net_TUMBLR
|
||||
"Twitter", // Net_TWITTER
|
||||
"Wikipedia", // Net_WIKIPEDIA
|
||||
"YouTube", // Net_YOUTUBE
|
||||
[Net_WWW ] = "WWW",
|
||||
[Net_500PX ] = "500px",
|
||||
[Net_DELICIOUS ] = "Delicious",
|
||||
[Net_DEVIANTART ] = "DeviantArt",
|
||||
[Net_DIASPORA ] = "Diaspora",
|
||||
[Net_EDMODO ] = "Edmodo",
|
||||
[Net_FACEBOOK ] = "Facebook",
|
||||
[Net_FLICKR ] = "Flickr",
|
||||
[Net_FOURSQUARE ] = "Foursquare",
|
||||
[Net_GITHUB ] = "GitHub",
|
||||
[Net_GNU_SOCIAL ] = "GNU Social",
|
||||
[Net_GOOGLE_PLUS ] = "Google+",
|
||||
[Net_GOOGLE_SCHOLAR] = "Google Scholar",
|
||||
[Net_IDENTICA ] = "identi.ca",
|
||||
[Net_INSTAGRAM ] = "Instagram",
|
||||
[Net_LINKEDIN ] = "LinkedIn",
|
||||
[Net_ORCID ] = "ORCID",
|
||||
[Net_PAPERLI ] = "Paper.li",
|
||||
[Net_PINTEREST ] = "Pinterest",
|
||||
[Net_RESEARCH_GATE ] = "Research Gate",
|
||||
[Net_RESEARCHERID ] = "ResearcherID",
|
||||
[Net_SCOOPIT ] = "Scoop.it",
|
||||
[Net_SLIDESHARE ] = "Slideshare",
|
||||
[Net_STACK_OVERFLOW] = "Stack Overflow",
|
||||
[Net_STORIFY ] = "Storify",
|
||||
[Net_TUMBLR ] = "Tumblr",
|
||||
[Net_TWITTER ] = "Twitter",
|
||||
[Net_WIKIPEDIA ] = "Wikipedia",
|
||||
[Net_YOUTUBE ] = "YouTube",
|
||||
};
|
||||
|
||||
#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)
|
||||
|
||||
const unsigned Not_ContainerWidth[Not_NUM_TYPES_LISTING] =
|
||||
static const unsigned Not_ContainerWidth[Not_NUM_TYPES_LISTING] =
|
||||
{
|
||||
148 + 50, // Not_LIST_BRIEF_NOTICES
|
||||
500 + 50, // Not_LIST_FULL_NOTICES
|
||||
[Not_LIST_BRIEF_NOTICES] = 148 + 50,
|
||||
[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
|
||||
50, // Not_LIST_FULL_NOTICES
|
||||
[Not_LIST_BRIEF_NOTICES] = 15,
|
||||
[Not_LIST_FULL_NOTICES ] = 50,
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -68,12 +68,12 @@ extern struct Globals Gbl;
|
|||
/***************************** 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_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_AVERAGE,
|
||||
|
|
|
@ -49,11 +49,11 @@ extern struct Globals Gbl;
|
|||
/***** Visibility (who can see user's photo or public profile) *****/
|
||||
const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY] =
|
||||
{
|
||||
"unknown", // Pri_VISIBILITY_UNKNOWN
|
||||
"user", // Pri_VISIBILITY_USER
|
||||
"course", // Pri_VISIBILITY_COURSE
|
||||
"system", // Pri_VISIBILITY_SYSTEM
|
||||
"world", // Pri_VISIBILITY_WORLD
|
||||
[Pri_VISIBILITY_UNKNOWN] = "unknown",
|
||||
[Pri_VISIBILITY_USER ] = "user",
|
||||
[Pri_VISIBILITY_COURSE ] = "course",
|
||||
[Pri_VISIBILITY_SYSTEM ] = "system",
|
||||
[Pri_VISIBILITY_WORLD ] = "world",
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -1659,13 +1659,12 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView,
|
|||
extern const char *Txt_Save_changes;
|
||||
const char *Rec_RecordHelp[Rec_COURSE_NUM_VIEW_TYPES] =
|
||||
{
|
||||
Hlp_USERS_Students_course_record_card, // Rec_CRS_MY_RECORD_AS_STUDENT_FORM
|
||||
Hlp_USERS_Students_course_record_card, // Rec_CRS_MY_RECORD_AS_STUDENT_CHECK
|
||||
Hlp_USERS_Students_course_record_card, // Rec_CRS_LIST_ONE_RECORD
|
||||
Hlp_USERS_Students_course_record_card, // Rec_CRS_LIST_SEVERAL_RECORDS
|
||||
NULL, // Rec_CRS_PRINT_ONE_RECORD
|
||||
NULL, // Rec_CRS_PRINT_SEVERAL_RECORDS
|
||||
// Rec_CRS_RECORD_PRINT
|
||||
[Rec_CRS_MY_RECORD_AS_STUDENT_FORM ] = Hlp_USERS_Students_course_record_card,
|
||||
[Rec_CRS_MY_RECORD_AS_STUDENT_CHECK] = Hlp_USERS_Students_course_record_card,
|
||||
[Rec_CRS_LIST_ONE_RECORD ] = Hlp_USERS_Students_course_record_card,
|
||||
[Rec_CRS_LIST_SEVERAL_RECORDS ] = Hlp_USERS_Students_course_record_card,
|
||||
[Rec_CRS_PRINT_ONE_RECORD ] = NULL,
|
||||
[Rec_CRS_PRINT_SEVERAL_RECORDS ] = NULL,
|
||||
};
|
||||
char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
bool ItsMe;
|
||||
|
@ -2148,30 +2147,30 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
|
|||
extern const char *Txt_Confirm;
|
||||
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
|
||||
NULL, // Rec_SHA_OTHER_NEW_USR_FORM
|
||||
NULL, // Rec_SHA_OTHER_USR_CHECK
|
||||
[Rec_SHA_OTHER_EXISTING_USR_FORM] = NULL,
|
||||
[Rec_SHA_OTHER_NEW_USR_FORM ] = NULL,
|
||||
[Rec_SHA_OTHER_USR_CHECK ] = NULL,
|
||||
|
||||
NULL, // Rec_SHA_RECORD_LIST
|
||||
NULL, // Rec_SHA_RECORD_PRINT
|
||||
Hlp_START_Profiles_view_public_profile, // Rec_SHA_RECORD_PUBLIC
|
||||
[Rec_SHA_RECORD_LIST ] = NULL,
|
||||
[Rec_SHA_RECORD_PRINT ] = NULL,
|
||||
[Rec_SHA_RECORD_PUBLIC ] = Hlp_START_Profiles_view_public_profile,
|
||||
};
|
||||
const char *Rec_RecordListHelp[Rol_NUM_ROLES] =
|
||||
{
|
||||
NULL, // Rol_UNK
|
||||
Hlp_USERS_Guests, // Rol_GST
|
||||
NULL, // Rol_USR
|
||||
Hlp_USERS_Students_shared_record_card, // Rol_STD
|
||||
Hlp_USERS_Teachers_shared_record_card, // Rol_NET
|
||||
Hlp_USERS_Teachers_shared_record_card, // Rol_TCH
|
||||
NULL, // Rol_DEG_ADM
|
||||
NULL, // Rol_CTR_ADM
|
||||
NULL, // Rol_INS_ADM
|
||||
NULL, // Rol_SYS_ADM
|
||||
[Rol_UNK ] = NULL,
|
||||
[Rol_GST ] = Hlp_USERS_Guests,
|
||||
[Rol_USR ] = NULL,
|
||||
[Rol_STD ] = Hlp_USERS_Students_shared_record_card,
|
||||
[Rol_NET ] = Hlp_USERS_Teachers_shared_record_card,
|
||||
[Rol_TCH ] = Hlp_USERS_Teachers_shared_record_card,
|
||||
[Rol_DEG_ADM] = NULL,
|
||||
[Rol_CTR_ADM] = NULL,
|
||||
[Rol_INS_ADM] = NULL,
|
||||
[Rol_SYS_ADM] = NULL,
|
||||
};
|
||||
char StrRecordWidth[Cns_MAX_DECIMAL_DIGITS_UINT + 1];
|
||||
const char *ClassForm = "REC_DAT";
|
||||
|
|
20
swad_role.c
20
swad_role.c
|
@ -40,16 +40,16 @@
|
|||
#define Rol_NUM_ROLES 10
|
||||
const char *Rol_Icons[Rol_NUM_ROLES] =
|
||||
{
|
||||
"user.svg", // Rol_UNK
|
||||
"user.svg", // Rol_GST
|
||||
"user.svg", // Rol_USR
|
||||
"user.svg", // Rol_STD
|
||||
"user-tie.svg", // Rol_NET
|
||||
"user-tie.svg", // Rol_TCH
|
||||
"user-tie.svg", // Rol_DEG_ADM
|
||||
"user-tie.svg", // Rol_CTR_ADM
|
||||
"user-tie.svg", // Rol_INS_ADM
|
||||
"user-tie.svg", // Rol_SYS_ADM
|
||||
[Rol_UNK ] = "user.svg",
|
||||
[Rol_GST ] = "user.svg",
|
||||
[Rol_USR ] = "user.svg",
|
||||
[Rol_STD ] = "user.svg",
|
||||
[Rol_NET ] = "user-tie.svg",
|
||||
[Rol_TCH ] = "user-tie.svg",
|
||||
[Rol_DEG_ADM] = "user-tie.svg",
|
||||
[Rol_CTR_ADM] = "user-tie.svg",
|
||||
[Rol_INS_ADM] = "user-tie.svg",
|
||||
[Rol_SYS_ADM] = "user-tie.svg",
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -116,20 +116,20 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
|
|||
extern const char *Txt_Search;
|
||||
const char *Titles[Sch_NUM_WHAT_TO_SEARCH] =
|
||||
{
|
||||
"", // Sch_SEARCH_UNKNOWN
|
||||
Txt_all, // Sch_SEARCH_ALL
|
||||
Txt_countries, // Sch_SEARCH_COUNTRIES
|
||||
Txt_institutions, // Sch_SEARCH_INSTITS
|
||||
Txt_centres, // Sch_SEARCH_CENTRES
|
||||
Txt_degrees, // Sch_SEARCH_DEGREES
|
||||
Txt_courses, // Sch_SEARCH_COURSES
|
||||
Txt_users[Usr_SEX_UNKNOWN], // Sch_SEARCH_USERS
|
||||
Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_UNKNOWN], // Sch_SEARCH_TEACHERS
|
||||
Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN], // Sch_SEARCH_STUDENTS
|
||||
Txt_ROLES_PLURAL_abc[Rol_GST][Usr_SEX_UNKNOWN], // Sch_SEARCH_GUESTS
|
||||
Txt_open_documents, // Sch_SEARCH_OPEN_DOCUMENTS
|
||||
Txt_documents_in_my_courses, // Sch_SEARCH_DOCUM_IN_MY_COURSES
|
||||
Txt_my_documents, // Sch_SEARCH_MY_DOCUMENTS
|
||||
[Sch_SEARCH_UNKNOWN ] = "",
|
||||
[Sch_SEARCH_ALL ] = Txt_all,
|
||||
[Sch_SEARCH_COUNTRIES ] = Txt_countries,
|
||||
[Sch_SEARCH_INSTITS ] = Txt_institutions,
|
||||
[Sch_SEARCH_CENTRES ] = Txt_centres,
|
||||
[Sch_SEARCH_DEGREES ] = Txt_degrees,
|
||||
[Sch_SEARCH_COURSES ] = Txt_courses,
|
||||
[Sch_SEARCH_USERS ] = Txt_users[Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_TEACHERS ] = Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_STUDENTS ] = Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_GUESTS ] = Txt_ROLES_PLURAL_abc[Rol_GST][Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_OPEN_DOCUMENTS ] = Txt_open_documents,
|
||||
[Sch_SEARCH_DOCUM_IN_MY_COURSES] = Txt_documents_in_my_courses,
|
||||
[Sch_SEARCH_MY_DOCUMENTS ] = Txt_my_documents,
|
||||
};
|
||||
Sch_WhatToSearch_t WhatToSearch;
|
||||
unsigned WTS;
|
||||
|
@ -200,22 +200,22 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
|
|||
|
||||
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
|
||||
0x3FF, // Sch_SEARCH_ALL
|
||||
0x3FF, // Sch_SEARCH_COUNTRIES
|
||||
0x3FF, // Sch_SEARCH_INSTITS
|
||||
0x3FF, // Sch_SEARCH_CENTRES
|
||||
0x3FF, // Sch_SEARCH_DEGREES
|
||||
0x3FF, // Sch_SEARCH_COURSES
|
||||
0x3FF, // Sch_SEARCH_USERS
|
||||
0x3FF, // Sch_SEARCH_TEACHERS
|
||||
0x3FF, // Sch_SEARCH_STUDENTS
|
||||
0x3FF, // Sch_SEARCH_GUESTS
|
||||
0x3FF, // Sch_SEARCH_OPEN_DOCUMENTS
|
||||
0x3FE, // Sch_SEARCH_DOCUM_IN_MY_COURSES Only if I am logged
|
||||
0x3FE, // Sch_SEARCH_MY_DOCUMENTS Only if I am logged
|
||||
[Sch_SEARCH_UNKNOWN ] = 0x000,
|
||||
[Sch_SEARCH_ALL ] = 0x3FF,
|
||||
[Sch_SEARCH_COUNTRIES ] = 0x3FF,
|
||||
[Sch_SEARCH_INSTITS ] = 0x3FF,
|
||||
[Sch_SEARCH_CENTRES ] = 0x3FF,
|
||||
[Sch_SEARCH_DEGREES ] = 0x3FF,
|
||||
[Sch_SEARCH_COURSES ] = 0x3FF,
|
||||
[Sch_SEARCH_USERS ] = 0x3FF,
|
||||
[Sch_SEARCH_TEACHERS ] = 0x3FF,
|
||||
[Sch_SEARCH_STUDENTS ] = 0x3FF,
|
||||
[Sch_SEARCH_GUESTS ] = 0x3FF,
|
||||
[Sch_SEARCH_OPEN_DOCUMENTS ] = 0x3FF,
|
||||
[Sch_SEARCH_DOCUM_IN_MY_COURSES] = 0x3FE, // Only if I am logged
|
||||
[Sch_SEARCH_MY_DOCUMENTS ] = 0x3FE, // Only if I am 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
|
||||
|
||||
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,
|
||||
|
||||
|
|
50
swad_tab.c
50
swad_tab.c
|
@ -41,24 +41,6 @@ extern struct Globals Gbl;
|
|||
/****************************** 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 *******************************/
|
||||
/*****************************************************************************/
|
||||
|
@ -88,14 +70,14 @@ void Tab_DrawTabs (void)
|
|||
extern const char *Txt_TABS_TXT[Tab_NUM_TABS];
|
||||
Tab_Tab_t NumTab;
|
||||
bool ICanViewTab;
|
||||
const char *ClassHeadRow3[The_NUM_THEMES] =
|
||||
static const char *ClassHeadRow3[The_NUM_THEMES] =
|
||||
{
|
||||
"HEAD_ROW_3_WHITE", // The_THEME_WHITE
|
||||
"HEAD_ROW_3_GREY", // The_THEME_GREY
|
||||
"HEAD_ROW_3_PURPLE", // The_THEME_PURPLE
|
||||
"HEAD_ROW_3_BLUE", // The_THEME_BLUE
|
||||
"HEAD_ROW_3_YELLOW", // The_THEME_YELLOW
|
||||
"HEAD_ROW_3_PINK", // The_THEME_PINK
|
||||
[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",
|
||||
};
|
||||
|
||||
/***** 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_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)
|
||||
return NULL;
|
||||
|
||||
|
|
22
swad_test.c
22
swad_test.c
|
@ -61,22 +61,22 @@
|
|||
// strings are limited to Tst_MAX_BYTES_FEEDBACK_TYPE bytes
|
||||
const char *Tst_FeedbackXML[Tst_NUM_TYPES_FEEDBACK] =
|
||||
{
|
||||
"nothing",
|
||||
"totalResult",
|
||||
"eachResult",
|
||||
"eachGoodBad",
|
||||
"fullFeedback",
|
||||
[Tst_FEEDBACK_NOTHING ] = "nothing",
|
||||
[Tst_FEEDBACK_TOTAL_RESULT ] = "totalResult",
|
||||
[Tst_FEEDBACK_EACH_RESULT ] = "eachResult",
|
||||
[Tst_FEEDBACK_EACH_GOOD_BAD] = "eachGoodBad",
|
||||
[Tst_FEEDBACK_FULL_FEEDBACK] = "fullFeedback",
|
||||
};
|
||||
|
||||
// strings are limited to Tst_MAX_BYTES_ANSWER_TYPE characters
|
||||
const char *Tst_StrAnswerTypesXML[Tst_NUM_ANS_TYPES] =
|
||||
{
|
||||
"int",
|
||||
"float",
|
||||
"TF",
|
||||
"uniqueChoice",
|
||||
"multipleChoice",
|
||||
"text",
|
||||
[Tst_ANS_INT ] = "int",
|
||||
[Tst_ANS_FLOAT ] = "float",
|
||||
[Tst_ANS_TRUE_FALSE ] = "TF",
|
||||
[Tst_ANS_UNIQUE_CHOICE ] = "uniqueChoice",
|
||||
[Tst_ANS_MULTIPLE_CHOICE] = "multipleChoice",
|
||||
[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] =
|
||||
{
|
||||
"white",
|
||||
"grey",
|
||||
"purple",
|
||||
"blue",
|
||||
"yellow",
|
||||
"pink",
|
||||
[The_THEME_WHITE ] = "white",
|
||||
[The_THEME_GREY ] = "grey",
|
||||
[The_THEME_PURPLE] = "purple",
|
||||
[The_THEME_BLUE ] = "blue",
|
||||
[The_THEME_YELLOW] = "yellow",
|
||||
[The_THEME_PINK ] = "pink",
|
||||
};
|
||||
|
||||
const char *The_ThemeNames[The_NUM_THEMES] =
|
||||
{
|
||||
"White",
|
||||
"Grey",
|
||||
"Purple",
|
||||
"Blue",
|
||||
"Yellow",
|
||||
"Pink",
|
||||
[The_THEME_WHITE ] = "White",
|
||||
[The_THEME_GREY ] = "Grey",
|
||||
[The_THEME_PURPLE] = "Purple",
|
||||
[The_THEME_BLUE ] = "Blue",
|
||||
[The_THEME_YELLOW] = "Yellow",
|
||||
[The_THEME_PINK ] = "Pink",
|
||||
};
|
||||
|
||||
const char *The_TabOnBgColors[The_NUM_THEMES] =
|
||||
{
|
||||
"TAB_ON_WHITE",
|
||||
"TAB_ON_GREY",
|
||||
"TAB_ON_PURPLE",
|
||||
"TAB_ON_BLUE",
|
||||
"TAB_ON_YELLOW",
|
||||
"TAB_ON_PINK",
|
||||
[The_THEME_WHITE ] = "TAB_ON_WHITE",
|
||||
[The_THEME_GREY ] = "TAB_ON_GREY",
|
||||
[The_THEME_PURPLE] = "TAB_ON_PURPLE",
|
||||
[The_THEME_BLUE ] = "TAB_ON_BLUE",
|
||||
[The_THEME_YELLOW] = "TAB_ON_YELLOW",
|
||||
[The_THEME_PINK ] = "TAB_ON_PINK",
|
||||
};
|
||||
|
||||
const char *The_TabOffBgColors[The_NUM_THEMES] =
|
||||
{
|
||||
"TAB_OFF_WHITE",
|
||||
"TAB_OFF_GREY",
|
||||
"TAB_OFF_PURPLE",
|
||||
"TAB_OFF_BLUE",
|
||||
"TAB_OFF_YELLOW",
|
||||
"TAB_OFF_PINK",
|
||||
[The_THEME_WHITE ] = "TAB_OFF_WHITE",
|
||||
[The_THEME_GREY ] = "TAB_OFF_GREY",
|
||||
[The_THEME_PURPLE] = "TAB_OFF_PURPLE",
|
||||
[The_THEME_BLUE ] = "TAB_OFF_BLUE",
|
||||
[The_THEME_YELLOW] = "TAB_OFF_YELLOW",
|
||||
[The_THEME_PINK ] = "TAB_OFF_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassTagline[The_NUM_THEMES] =
|
||||
{
|
||||
"BT_LINK TAGLINE_WHITE",
|
||||
"BT_LINK TAGLINE_GREY",
|
||||
"BT_LINK TAGLINE_PURPLE",
|
||||
"BT_LINK TAGLINE_BLUE",
|
||||
"BT_LINK TAGLINE_YELLOW",
|
||||
"BT_LINK TAGLINE_PINK",
|
||||
[The_THEME_WHITE ] = "BT_LINK TAGLINE_WHITE",
|
||||
[The_THEME_GREY ] = "BT_LINK TAGLINE_GREY",
|
||||
[The_THEME_PURPLE] = "BT_LINK TAGLINE_PURPLE",
|
||||
[The_THEME_BLUE ] = "BT_LINK TAGLINE_BLUE",
|
||||
[The_THEME_YELLOW] = "BT_LINK TAGLINE_YELLOW",
|
||||
[The_THEME_PINK ] = "BT_LINK TAGLINE_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassNotif[The_NUM_THEMES] =
|
||||
{
|
||||
"BT_LINK NOTIF_WHITE",
|
||||
"BT_LINK NOTIF_GREY",
|
||||
"BT_LINK NOTIF_PURPLE",
|
||||
"BT_LINK NOTIF_BLUE",
|
||||
"BT_LINK NOTIF_YELLOW",
|
||||
"BT_LINK NOTIF_PINK",
|
||||
[The_THEME_WHITE ] = "BT_LINK NOTIF_WHITE",
|
||||
[The_THEME_GREY ] = "BT_LINK NOTIF_GREY",
|
||||
[The_THEME_PURPLE] = "BT_LINK NOTIF_PURPLE",
|
||||
[The_THEME_BLUE ] = "BT_LINK NOTIF_BLUE",
|
||||
[The_THEME_YELLOW] = "BT_LINK NOTIF_YELLOW",
|
||||
[The_THEME_PINK ] = "BT_LINK NOTIF_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassUsr[The_NUM_THEMES] =
|
||||
{
|
||||
"USR_WHITE",
|
||||
"USR_GREY",
|
||||
"USR_PURPLE",
|
||||
"USR_BLUE",
|
||||
"USR_YELLOW",
|
||||
"USR_PINK",
|
||||
[The_THEME_WHITE ] = "USR_WHITE",
|
||||
[The_THEME_GREY ] = "USR_GREY",
|
||||
[The_THEME_PURPLE] = "USR_PURPLE",
|
||||
[The_THEME_BLUE ] = "USR_BLUE",
|
||||
[The_THEME_YELLOW] = "USR_YELLOW",
|
||||
[The_THEME_PINK ] = "USR_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassBreadcrumb[The_NUM_THEMES] =
|
||||
{
|
||||
"BC_WHITE",
|
||||
"BC_GREY",
|
||||
"BC_PURPLE",
|
||||
"BC_BLUE",
|
||||
"BC_YELLOW",
|
||||
"BC_PINK",
|
||||
[The_THEME_WHITE ] = "BC_WHITE",
|
||||
[The_THEME_GREY ] = "BC_GREY",
|
||||
[The_THEME_PURPLE] = "BC_PURPLE",
|
||||
[The_THEME_BLUE ] = "BC_BLUE",
|
||||
[The_THEME_YELLOW] = "BC_YELLOW",
|
||||
[The_THEME_PINK ] = "BC_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassCourse[The_NUM_THEMES] =
|
||||
{
|
||||
"MAIN_TITLE_WHITE",
|
||||
"MAIN_TITLE_GREY",
|
||||
"MAIN_TITLE_PURPLE",
|
||||
"MAIN_TITLE_BLUE",
|
||||
"MAIN_TITLE_YELLOW",
|
||||
"MAIN_TITLE_PINK",
|
||||
[The_THEME_WHITE ] = "MAIN_TITLE_WHITE",
|
||||
[The_THEME_GREY ] = "MAIN_TITLE_GREY",
|
||||
[The_THEME_PURPLE] = "MAIN_TITLE_PURPLE",
|
||||
[The_THEME_BLUE ] = "MAIN_TITLE_BLUE",
|
||||
[The_THEME_YELLOW] = "MAIN_TITLE_YELLOW",
|
||||
[The_THEME_PINK ] = "MAIN_TITLE_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassTxtMenu[The_NUM_THEMES] =
|
||||
{
|
||||
"MENU_TXT_WHITE",
|
||||
"MENU_TXT_GREY",
|
||||
"MENU_TXT_PURPLE",
|
||||
"MENU_TXT_BLUE",
|
||||
"MENU_TXT_YELLOW",
|
||||
"MENU_TXT_PINK",
|
||||
[The_THEME_WHITE ] = "MENU_TXT_WHITE",
|
||||
[The_THEME_GREY ] = "MENU_TXT_GREY",
|
||||
[The_THEME_PURPLE] = "MENU_TXT_PURPLE",
|
||||
[The_THEME_BLUE ] = "MENU_TXT_BLUE",
|
||||
[The_THEME_YELLOW] = "MENU_TXT_YELLOW",
|
||||
[The_THEME_PINK ] = "MENU_TXT_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassTxtTabOff[The_NUM_THEMES] =
|
||||
{
|
||||
"TAB_OFF_TXT_WHITE",
|
||||
"TAB_OFF_TXT_GREY",
|
||||
"TAB_OFF_TXT_PURPLE",
|
||||
"TAB_OFF_TXT_BLUE",
|
||||
"TAB_OFF_TXT_YELLOW",
|
||||
"TAB_OFF_TXT_PINK",
|
||||
[The_THEME_WHITE ] = "TAB_OFF_TXT_WHITE",
|
||||
[The_THEME_GREY ] = "TAB_OFF_TXT_GREY",
|
||||
[The_THEME_PURPLE] = "TAB_OFF_TXT_PURPLE",
|
||||
[The_THEME_BLUE ] = "TAB_OFF_TXT_BLUE",
|
||||
[The_THEME_YELLOW] = "TAB_OFF_TXT_YELLOW",
|
||||
[The_THEME_PINK ] = "TAB_OFF_TXT_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassTxtTabOn[The_NUM_THEMES] =
|
||||
{
|
||||
"TAB_ON_TXT_WHITE",
|
||||
"TAB_ON_TXT_GREY",
|
||||
"TAB_ON_TXT_PURPLE",
|
||||
"TAB_ON_TXT_BLUE",
|
||||
"TAB_ON_TXT_YELLOW",
|
||||
"TAB_ON_TXT_PINK",
|
||||
[The_THEME_WHITE ] = "TAB_ON_TXT_WHITE",
|
||||
[The_THEME_GREY ] = "TAB_ON_TXT_GREY",
|
||||
[The_THEME_PURPLE] = "TAB_ON_TXT_PURPLE",
|
||||
[The_THEME_BLUE ] = "TAB_ON_TXT_BLUE",
|
||||
[The_THEME_YELLOW] = "TAB_ON_TXT_YELLOW",
|
||||
[The_THEME_PINK ] = "TAB_ON_TXT_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassTitleAction[The_NUM_THEMES] =
|
||||
{
|
||||
"TITLE_ACTION_WHITE",
|
||||
"TITLE_ACTION_GREY",
|
||||
"TITLE_ACTION_PURPLE",
|
||||
"TITLE_ACTION_BLUE",
|
||||
"TITLE_ACTION_YELLOW",
|
||||
"TITLE_ACTION_PINK",
|
||||
[The_THEME_WHITE ] = "TITLE_ACTION_WHITE",
|
||||
[The_THEME_GREY ] = "TITLE_ACTION_GREY",
|
||||
[The_THEME_PURPLE] = "TITLE_ACTION_PURPLE",
|
||||
[The_THEME_BLUE ] = "TITLE_ACTION_BLUE",
|
||||
[The_THEME_YELLOW] = "TITLE_ACTION_YELLOW",
|
||||
[The_THEME_PINK ] = "TITLE_ACTION_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassSubtitleAction[The_NUM_THEMES] =
|
||||
{
|
||||
"SUBTITLE_ACTION_WHITE",
|
||||
"SUBTITLE_ACTION_GREY",
|
||||
"SUBTITLE_ACTION_PURPLE",
|
||||
"SUBTITLE_ACTION_BLUE",
|
||||
"SUBTITLE_ACTION_YELLOW",
|
||||
"SUBTITLE_ACTION_PINK",
|
||||
[The_THEME_WHITE ] = "SUBTITLE_ACTION_WHITE",
|
||||
[The_THEME_GREY ] = "SUBTITLE_ACTION_GREY",
|
||||
[The_THEME_PURPLE] = "SUBTITLE_ACTION_PURPLE",
|
||||
[The_THEME_BLUE ] = "SUBTITLE_ACTION_BLUE",
|
||||
[The_THEME_YELLOW] = "SUBTITLE_ACTION_YELLOW",
|
||||
[The_THEME_PINK ] = "SUBTITLE_ACTION_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassTitle[The_NUM_THEMES] =
|
||||
{
|
||||
"TITLE_WHITE",
|
||||
"TITLE_GREY",
|
||||
"TITLE_PURPLE",
|
||||
"TITLE_BLUE",
|
||||
"TITLE_YELLOW",
|
||||
"TITLE_PINK",
|
||||
[The_THEME_WHITE ] = "TITLE_WHITE",
|
||||
[The_THEME_GREY ] = "TITLE_GREY",
|
||||
[The_THEME_PURPLE] = "TITLE_PURPLE",
|
||||
[The_THEME_BLUE ] = "TITLE_BLUE",
|
||||
[The_THEME_YELLOW] = "TITLE_YELLOW",
|
||||
[The_THEME_PINK ] = "TITLE_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassFormLinkInBox[The_NUM_THEMES] =
|
||||
{
|
||||
"BT_LINK FORM_IN_WHITE",
|
||||
"BT_LINK FORM_IN_GREY",
|
||||
"BT_LINK FORM_IN_PURPLE",
|
||||
"BT_LINK FORM_IN_BLUE",
|
||||
"BT_LINK FORM_IN_YELLOW",
|
||||
"BT_LINK FORM_IN_PINK",
|
||||
[The_THEME_WHITE ] = "BT_LINK FORM_IN_WHITE",
|
||||
[The_THEME_GREY ] = "BT_LINK FORM_IN_GREY",
|
||||
[The_THEME_PURPLE] = "BT_LINK FORM_IN_PURPLE",
|
||||
[The_THEME_BLUE ] = "BT_LINK FORM_IN_BLUE",
|
||||
[The_THEME_YELLOW] = "BT_LINK FORM_IN_YELLOW",
|
||||
[The_THEME_PINK ] = "BT_LINK FORM_IN_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassFormInBox[The_NUM_THEMES] =
|
||||
{
|
||||
"FORM_IN_WHITE",
|
||||
"FORM_IN_GREY",
|
||||
"FORM_IN_PURPLE",
|
||||
"FORM_IN_BLUE",
|
||||
"FORM_IN_YELLOW",
|
||||
"FORM_IN_PINK",
|
||||
[The_THEME_WHITE ] = "FORM_IN_WHITE",
|
||||
[The_THEME_GREY ] = "FORM_IN_GREY",
|
||||
[The_THEME_PURPLE] = "FORM_IN_PURPLE",
|
||||
[The_THEME_BLUE ] = "FORM_IN_BLUE",
|
||||
[The_THEME_YELLOW] = "FORM_IN_YELLOW",
|
||||
[The_THEME_PINK ] = "FORM_IN_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES] =
|
||||
{
|
||||
"BT_LINK FORM_IN_WHITE BOLD",
|
||||
"BT_LINK FORM_IN_GREY BOLD",
|
||||
"BT_LINK FORM_IN_PURPLE BOLD",
|
||||
"BT_LINK FORM_IN_BLUE BOLD",
|
||||
"BT_LINK FORM_IN_YELLOW BOLD",
|
||||
"BT_LINK FORM_IN_PINK BOLD",
|
||||
[The_THEME_WHITE ] = "BT_LINK FORM_IN_WHITE BOLD",
|
||||
[The_THEME_GREY ] = "BT_LINK FORM_IN_GREY BOLD",
|
||||
[The_THEME_PURPLE] = "BT_LINK FORM_IN_PURPLE BOLD",
|
||||
[The_THEME_BLUE ] = "BT_LINK FORM_IN_BLUE BOLD",
|
||||
[The_THEME_YELLOW] = "BT_LINK FORM_IN_YELLOW BOLD",
|
||||
[The_THEME_PINK ] = "BT_LINK FORM_IN_PINK BOLD",
|
||||
};
|
||||
|
||||
const char *The_ClassFormInBoxBold[The_NUM_THEMES] =
|
||||
{
|
||||
"FORM_IN_WHITE BOLD",
|
||||
"FORM_IN_GREY BOLD",
|
||||
"FORM_IN_PURPLE BOLD",
|
||||
"FORM_IN_BLUE BOLD",
|
||||
"FORM_IN_YELLOW BOLD",
|
||||
"FORM_IN_PINK BOLD",
|
||||
[The_THEME_WHITE ] = "FORM_IN_WHITE BOLD",
|
||||
[The_THEME_GREY ] = "FORM_IN_GREY BOLD",
|
||||
[The_THEME_PURPLE] = "FORM_IN_PURPLE BOLD",
|
||||
[The_THEME_BLUE ] = "FORM_IN_BLUE BOLD",
|
||||
[The_THEME_YELLOW] = "FORM_IN_YELLOW BOLD",
|
||||
[The_THEME_PINK ] = "FORM_IN_PINK BOLD",
|
||||
};
|
||||
|
||||
const char *The_ClassFormLinkInBoxNoWrap[The_NUM_THEMES] =
|
||||
{
|
||||
"BT_LINK FORM_IN_WHITE NOWRAP",
|
||||
"BT_LINK FORM_IN_GREY NOWRAP",
|
||||
"BT_LINK FORM_IN_PURPLE NOWRAP",
|
||||
"BT_LINK FORM_IN_BLUE NOWRAP",
|
||||
"BT_LINK FORM_IN_YELLOW NOWRAP",
|
||||
"BT_LINK FORM_IN_PINK NOWRAP",
|
||||
[The_THEME_WHITE ] = "BT_LINK FORM_IN_WHITE NOWRAP",
|
||||
[The_THEME_GREY ] = "BT_LINK FORM_IN_GREY NOWRAP",
|
||||
[The_THEME_PURPLE] = "BT_LINK FORM_IN_PURPLE NOWRAP",
|
||||
[The_THEME_BLUE ] = "BT_LINK FORM_IN_BLUE NOWRAP",
|
||||
[The_THEME_YELLOW] = "BT_LINK FORM_IN_YELLOW NOWRAP",
|
||||
[The_THEME_PINK ] = "BT_LINK FORM_IN_PINK NOWRAP",
|
||||
};
|
||||
|
||||
const char *The_ClassFormInBoxNoWrap[The_NUM_THEMES] =
|
||||
{
|
||||
"FORM_IN_WHITE NOWRAP",
|
||||
"FORM_IN_GREY NOWRAP",
|
||||
"FORM_IN_PURPLE NOWRAP",
|
||||
"FORM_IN_BLUE NOWRAP",
|
||||
"FORM_IN_YELLOW NOWRAP",
|
||||
"FORM_IN_PINK NOWRAP",
|
||||
[The_THEME_WHITE ] = "FORM_IN_WHITE NOWRAP",
|
||||
[The_THEME_GREY ] = "FORM_IN_GREY NOWRAP",
|
||||
[The_THEME_PURPLE] = "FORM_IN_PURPLE NOWRAP",
|
||||
[The_THEME_BLUE ] = "FORM_IN_BLUE NOWRAP",
|
||||
[The_THEME_YELLOW] = "FORM_IN_YELLOW NOWRAP",
|
||||
[The_THEME_PINK ] = "FORM_IN_PINK NOWRAP",
|
||||
};
|
||||
|
||||
const char *The_ClassFormLinkOutBox[The_NUM_THEMES] =
|
||||
{
|
||||
"BT_LINK FORM_OUT_WHITE",
|
||||
"BT_LINK FORM_OUT_GREY",
|
||||
"BT_LINK FORM_OUT_PURPLE",
|
||||
"BT_LINK FORM_OUT_BLUE",
|
||||
"BT_LINK FORM_OUT_YELLOW",
|
||||
"BT_LINK FORM_OUT_PINK",
|
||||
[The_THEME_WHITE ] = "BT_LINK FORM_OUT_WHITE",
|
||||
[The_THEME_GREY ] = "BT_LINK FORM_OUT_GREY",
|
||||
[The_THEME_PURPLE] = "BT_LINK FORM_OUT_PURPLE",
|
||||
[The_THEME_BLUE ] = "BT_LINK FORM_OUT_BLUE",
|
||||
[The_THEME_YELLOW] = "BT_LINK FORM_OUT_YELLOW",
|
||||
[The_THEME_PINK ] = "BT_LINK FORM_OUT_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassFormOutBox[The_NUM_THEMES] =
|
||||
{
|
||||
"FORM_OUT_WHITE",
|
||||
"FORM_OUT_GREY",
|
||||
"FORM_OUT_PURPLE",
|
||||
"FORM_OUT_BLUE",
|
||||
"FORM_OUT_YELLOW",
|
||||
"FORM_OUT_PINK",
|
||||
[The_THEME_WHITE ] = "FORM_OUT_WHITE",
|
||||
[The_THEME_GREY ] = "FORM_OUT_GREY",
|
||||
[The_THEME_PURPLE] = "FORM_OUT_PURPLE",
|
||||
[The_THEME_BLUE ] = "FORM_OUT_BLUE",
|
||||
[The_THEME_YELLOW] = "FORM_OUT_YELLOW",
|
||||
[The_THEME_PINK ] = "FORM_OUT_PINK",
|
||||
};
|
||||
|
||||
const char *The_ClassFormLinkOutBoxBold[The_NUM_THEMES] =
|
||||
{
|
||||
"BT_LINK FORM_OUT_WHITE BOLD",
|
||||
"BT_LINK FORM_OUT_GREY BOLD",
|
||||
"BT_LINK FORM_OUT_PURPLE BOLD",
|
||||
"BT_LINK FORM_OUT_BLUE BOLD",
|
||||
"BT_LINK FORM_OUT_YELLOW BOLD",
|
||||
"BT_LINK FORM_OUT_PINK BOLD",
|
||||
[The_THEME_WHITE ] = "BT_LINK FORM_OUT_WHITE BOLD",
|
||||
[The_THEME_GREY ] = "BT_LINK FORM_OUT_GREY BOLD",
|
||||
[The_THEME_PURPLE] = "BT_LINK FORM_OUT_PURPLE BOLD",
|
||||
[The_THEME_BLUE ] = "BT_LINK FORM_OUT_BLUE BOLD",
|
||||
[The_THEME_YELLOW] = "BT_LINK FORM_OUT_YELLOW BOLD",
|
||||
[The_THEME_PINK ] = "BT_LINK FORM_OUT_PINK BOLD",
|
||||
};
|
||||
|
||||
const char *The_ClassFormOutBoxBold[The_NUM_THEMES] =
|
||||
{
|
||||
"FORM_OUT_WHITE BOLD",
|
||||
"FORM_OUT_GREY BOLD",
|
||||
"FORM_OUT_PURPLE BOLD",
|
||||
"FORM_OUT_BLUE BOLD",
|
||||
"FORM_OUT_YELLOW BOLD",
|
||||
"FORM_OUT_PINK BOLD",
|
||||
[The_THEME_WHITE ] = "FORM_OUT_WHITE BOLD",
|
||||
[The_THEME_GREY ] = "FORM_OUT_GREY BOLD",
|
||||
[The_THEME_PURPLE] = "FORM_OUT_PURPLE BOLD",
|
||||
[The_THEME_BLUE ] = "FORM_OUT_BLUE BOLD",
|
||||
[The_THEME_YELLOW] = "FORM_OUT_YELLOW 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_TimelineUsrOrGbl_t;
|
||||
|
||||
#define TL_NUM_WHAT_TO_GET_FROM_TIMELINE 3
|
||||
typedef enum
|
||||
{
|
||||
TL_GET_ONLY_NEW_PUBS, // New publications are retrieved via AJAX
|
||||
|
@ -560,11 +561,11 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
|||
unsigned NumPub;
|
||||
long PubCod;
|
||||
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_MAX_REC_PUBS_TO_GET_AND_SHOW, // TL_GET_RECENT_TIMELINE
|
||||
TL_MAX_OLD_PUBS_TO_GET_AND_SHOW, // TL_GET_ONLY_OLD_PUBS
|
||||
[TL_GET_ONLY_NEW_PUBS ] = TL_MAX_NEW_PUBS_TO_GET_AND_SHOW,
|
||||
[TL_GET_RECENT_TIMELINE] = TL_MAX_REC_PUBS_TO_GET_AND_SHOW,
|
||||
[TL_GET_ONLY_OLD_PUBS ] = TL_MAX_OLD_PUBS_TO_GET_AND_SHOW,
|
||||
};
|
||||
|
||||
/***** 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)
|
||||
{
|
||||
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_TOP_MESSAGE_NONE, // TL_PUB_ORIGINAL_NOTE
|
||||
TL_TOP_MESSAGE_SHARED, // TL_PUB_SHARED_NOTE
|
||||
TL_TOP_MESSAGE_COMMENTED, // TL_PUB_COMMENT_TO_NOTE
|
||||
[TL_PUB_UNKNOWN ] = TL_TOP_MESSAGE_NONE,
|
||||
[TL_PUB_ORIGINAL_NOTE ] = TL_TOP_MESSAGE_NONE,
|
||||
[TL_PUB_SHARED_NOTE ] = TL_TOP_MESSAGE_SHARED,
|
||||
[TL_PUB_COMMENT_TO_NOTE] = TL_TOP_MESSAGE_COMMENTED,
|
||||
};
|
||||
|
||||
/***** 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 */
|
||||
#define TT_NUM_RESOLUTIONS 3
|
||||
unsigned TT_MinutesPerInterval[TT_NUM_RESOLUTIONS] =
|
||||
static const unsigned TT_MinutesPerInterval[TT_NUM_RESOLUTIONS] =
|
||||
{
|
||||
5, // 5 minutes
|
||||
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_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_MY_TIMETABLE ] = ActChgMyTT1stDay,
|
||||
|
@ -418,7 +418,7 @@ static void TT_PutContextualIcons (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
|
||||
ActSeeMyTT, // TT_MY_TIMETABLE
|
||||
|
|
38
swad_user.c
38
swad_user.c
|
@ -74,25 +74,25 @@
|
|||
|
||||
const char *Usr_StringsSexIcons[Usr_NUM_SEXS] =
|
||||
{
|
||||
"?", // Usr_SEX_UNKNOWN
|
||||
"♀", // Usr_SEX_FEMALE
|
||||
"♂", // Usr_SEX_MALE
|
||||
"*", // Usr_SEX_ALL
|
||||
[Usr_SEX_UNKNOWN] = "?",
|
||||
[Usr_SEX_FEMALE ] = "♀",
|
||||
[Usr_SEX_MALE ] = "♂",
|
||||
[Usr_SEX_ALL ] = "*",
|
||||
};
|
||||
|
||||
const char *Usr_StringsSexDB[Usr_NUM_SEXS] =
|
||||
{
|
||||
"unknown", // Usr_SEX_UNKNOWN
|
||||
"female", // Usr_SEX_FEMALE
|
||||
"male", // Usr_SEX_MALE
|
||||
"all", // Usr_SEX_ALL
|
||||
[Usr_SEX_UNKNOWN] = "unknown",
|
||||
[Usr_SEX_FEMALE ] = "female",
|
||||
[Usr_SEX_MALE ] = "male",
|
||||
[Usr_SEX_ALL ] = "all",
|
||||
};
|
||||
|
||||
const char *Usr_StringsUsrListTypeInDB[Usr_NUM_USR_LIST_TYPES] =
|
||||
{
|
||||
"", // Usr_LIST_UNKNOWN
|
||||
"classphoto", // Usr_LIST_AS_CLASS_PHOTO
|
||||
"list", // Usr_LIST_AS_LISTING
|
||||
[Usr_LIST_UNKNOWN ] = "",
|
||||
[Usr_LIST_AS_CLASS_PHOTO] = "classphoto",
|
||||
[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;
|
||||
const char *Label[Usr_LIST_USRS_NUM_OPTIONS] =
|
||||
{
|
||||
NULL, // Usr_OPTION_UNKNOWN
|
||||
Txt_View_records, // Usr_OPTION_RECORDS
|
||||
Txt_View_homework, // Usr_OPTION_HOMEWORK
|
||||
Txt_View_attendance, // Usr_OPTION_ATTENDANCE
|
||||
Txt_Send_message, // Usr_OPTION_MESSAGE
|
||||
Txt_Create_email_message, // Usr_OPTION_EMAIL
|
||||
Txt_Follow, // Usr_OPTION_FOLLOW
|
||||
Txt_Unfollow, // Usr_OPTION_UNFOLLOW
|
||||
[Usr_OPTION_UNKNOWN ] = NULL,
|
||||
[Usr_OPTION_RECORDS ] = Txt_View_records,
|
||||
[Usr_OPTION_HOMEWORK ] = Txt_View_homework,
|
||||
[Usr_OPTION_ATTENDANCE] = Txt_View_attendance,
|
||||
[Usr_OPTION_MESSAGE ] = Txt_Send_message,
|
||||
[Usr_OPTION_EMAIL ] = Txt_Create_email_message,
|
||||
[Usr_OPTION_FOLLOW ] = Txt_Follow,
|
||||
[Usr_OPTION_UNFOLLOW ] = Txt_Unfollow,
|
||||
};
|
||||
Usr_ListUsrsOption_t Opt;
|
||||
|
||||
|
|
Loading…
Reference in New Issue