Version19.75.1

This commit is contained in:
Antonio Cañas Vargas 2019-11-21 01:27:17 +01:00
parent 7cf99be5e1
commit 36f028f485
19 changed files with 204 additions and 207 deletions

View File

@ -488,13 +488,14 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.75 (2019-11-21)"
#define Log_PLATFORM_VERSION "SWAD 19.75.1 (2019-11-21)"
#define CSS_FILE "swad19.74.3.css"
#define JS_FILE "swad19.70.js"
/*
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
// TODO: Impedir la creación y edición de proyectos si no son editables.
Version 19.75.1: Nov 21, 2019 Code refactoring related to vectors. (247013 lines)
Version 19.75: Nov 21, 2019 Code refactoring related to vectors. (247012 lines)
Version 19.74.4: Nov 20, 2019 Code refactoring related to vectors. (247021 lines)
Version 19.74.3: Nov 20, 2019 Minor bug fixes and changes in layout and users' ranking. (247020 lines)

View File

@ -4466,13 +4466,13 @@ void For_RemoveForums (Hie_Level_t Scope,long ForumLocation)
For_ForumType_t Tchs;
} ForumType[Hie_NUM_LEVELS] =
{
{For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Hie_UNK // No forums for this scope
{For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Hie_SYS // Not removable
{For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Hie_CTY // No forums for this scope
{For_FORUM_INSTIT_USRS,For_FORUM_INSTIT_TCHS}, // Hie_INS
{For_FORUM_CENTRE_USRS,For_FORUM_CENTRE_TCHS}, // Hie_CTR
{For_FORUM_DEGREE_USRS,For_FORUM_DEGREE_TCHS}, // Hie_DEG
{For_FORUM_COURSE_USRS,For_FORUM_COURSE_TCHS}, // Hie_CRS
[Hie_UNK] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
[Hie_SYS] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Not removable
[Hie_CTY] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
[Hie_INS] = {For_FORUM_INSTIT_USRS,For_FORUM_INSTIT_TCHS},
[Hie_CTR] = {For_FORUM_CENTRE_USRS,For_FORUM_CENTRE_TCHS},
[Hie_DEG] = {For_FORUM_DEGREE_USRS,For_FORUM_DEGREE_TCHS},
[Hie_CRS] = {For_FORUM_COURSE_USRS,For_FORUM_COURSE_TCHS},
};
/***** Remove disabled posts *****/

View File

@ -643,9 +643,9 @@ void Gam_GetListGames (void)
{
static const char *OrderBySubQuery[Gam_NUM_ORDERS] =
{
"StartTime DESC,EndTime DESC,gam_games.Title DESC", // Gam_ORDER_BY_START_DATE
"EndTime DESC,StartTime DESC,gam_games.Title DESC", // Gam_ORDER_BY_END_DATE
"gam_games.Title DESC", // Gam_ORDER_BY_TITLE
[Gam_ORDER_BY_START_DATE] = "StartTime DESC,EndTime DESC,gam_games.Title DESC",
[Gam_ORDER_BY_END_DATE ] = "EndTime DESC,StartTime DESC,gam_games.Title DESC",
[Gam_ORDER_BY_TITLE ] = "gam_games.Title DESC",
};
MYSQL_RES *mysql_res;
MYSQL_ROW row;

View File

@ -56,16 +56,16 @@
static const bool Grp_ICanChangeGrps[Rol_NUM_ROLES] =
{
false, // Rol_UNK
false, // Rol_GST
false, // Rol_USR
true, // Rol_STD
false, // Rol_NET
true, // Rol_TCH
false, // Rol_DEG_ADM
false, // Rol_CTR_ADM
false, // Rol_INS_ADM
true, // Rol_SYS_ADM
[Rol_UNK ] = false,
[Rol_GST ] = false,
[Rol_USR ] = false,
[Rol_STD ] = true,
[Rol_NET ] = false,
[Rol_TCH ] = true,
[Rol_DEG_ADM] = false,
[Rol_CTR_ADM] = false,
[Rol_INS_ADM] = false,
[Rol_SYS_ADM] = true,
};
/*****************************************************************************/

View File

@ -105,16 +105,16 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
extern const char *Txt_Create_account;
static const Act_Action_t ActionsRemoveMe[Rol_NUM_ROLES] =
{
ActUnk, // Rol_UNK
ActUnk, // Rol_GST
ActUnk, // Rol_USR
ActRemMe_Std, // Rol_STD
ActRemMe_NET, // Rol_NET
ActRemMe_Tch, // Rol_TCH
ActUnk, // Rol_DEG_ADM
ActUnk, // Rol_CTR_ADM
ActUnk, // Rol_INS_ADM
ActUnk, // Rol_SYS_ADM
[Rol_UNK ] = ActUnk,
[Rol_GST ] = ActUnk,
[Rol_USR ] = ActUnk,
[Rol_STD ] = ActRemMe_Std,
[Rol_NET ] = ActRemMe_NET,
[Rol_TCH ] = ActRemMe_Tch,
[Rol_DEG_ADM] = ActUnk,
[Rol_CTR_ADM] = ActUnk,
[Rol_INS_ADM] = ActUnk,
[Rol_SYS_ADM] = ActUnk,
};
/***** Alert message *****/

View File

@ -289,8 +289,8 @@ void Hld_GetListHolidays (void)
{
static const char *OrderBySubQuery[Hld_NUM_ORDERS] =
{
"Place,StartDate", // Hld_ORDER_BY_PLACE
"StartDate,Place", // Hld_ORDER_BY_START_DATE
[Hld_ORDER_BY_PLACE ] = "Place,StartDate",
[Hld_ORDER_BY_START_DATE] = "StartDate,Place",
};
MYSQL_RES *mysql_res;
MYSQL_ROW row;

View File

@ -350,14 +350,14 @@ void Inf_ShowInfo (void)
bool ShowWarningNoInfo = false;
const char *Help[Inf_NUM_INFO_TYPES] =
{
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE
Hlp_COURSE_Syllabus, // Inf_LECTURES
Hlp_COURSE_Syllabus, // Inf_PRACTICALS
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY
Hlp_COURSE_FAQ, // Inf_FAQ
Hlp_COURSE_Links, // Inf_LINKS
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT
[Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
[Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
[Inf_LECTURES ] = Hlp_COURSE_Syllabus,
[Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
[Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
[Inf_FAQ ] = Hlp_COURSE_FAQ,
[Inf_LINKS ] = Hlp_COURSE_Links,
[Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
};
/***** Set info type *****/
@ -1031,14 +1031,14 @@ static void Inf_ShowPage (const char *URL)
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
const char *Help[Inf_NUM_INFO_TYPES] =
{
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE
Hlp_COURSE_Syllabus, // Inf_LECTURES
Hlp_COURSE_Syllabus, // Inf_PRACTICALS
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY
Hlp_COURSE_FAQ, // Inf_FAQ
Hlp_COURSE_Links, // Inf_LINKS
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT
[Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
[Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
[Inf_LECTURES ] = Hlp_COURSE_Syllabus,
[Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
[Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
[Inf_FAQ ] = Hlp_COURSE_FAQ,
[Inf_LINKS ] = Hlp_COURSE_Links,
[Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
};
/***** Begin box *****/
@ -1769,14 +1769,14 @@ static bool Inf_CheckAndShowPlainTxt (void)
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
const char *Help[Inf_NUM_INFO_TYPES] =
{
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE
Hlp_COURSE_Syllabus, // Inf_LECTURES
Hlp_COURSE_Syllabus, // Inf_PRACTICALS
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY
Hlp_COURSE_FAQ, // Inf_FAQ
Hlp_COURSE_Links, // Inf_LINKS
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT
[Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
[Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
[Inf_LECTURES ] = Hlp_COURSE_Syllabus,
[Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
[Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
[Inf_FAQ ] = Hlp_COURSE_FAQ,
[Inf_LINKS ] = Hlp_COURSE_Links,
[Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
};
/***** Get info text from database *****/
@ -1853,14 +1853,14 @@ static bool Inf_CheckAndShowRichTxt (void)
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
const char *Help[Inf_NUM_INFO_TYPES] =
{
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE
Hlp_COURSE_Syllabus, // Inf_LECTURES
Hlp_COURSE_Syllabus, // Inf_PRACTICALS
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY
Hlp_COURSE_FAQ, // Inf_FAQ
Hlp_COURSE_Links, // Inf_LINKS
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT
[Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
[Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
[Inf_LECTURES ] = Hlp_COURSE_Syllabus,
[Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
[Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
[Inf_FAQ ] = Hlp_COURSE_FAQ,
[Inf_LINKS ] = Hlp_COURSE_Links,
[Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
};
/***** Get info text from database *****/

View File

@ -985,8 +985,8 @@ void Ins_GetListInstitutions (long CtyCod,Ins_GetExtraData_t GetExtraData)
{
static const char *OrderBySubQuery[Ins_NUM_ORDERS] =
{
"FullName", // Ins_ORDER_BY_INSTITUTION
"NumUsrs DESC,FullName", // Ins_ORDER_BY_NUM_USRS
[Ins_ORDER_BY_INSTITUTION] = "FullName",
[Ins_ORDER_BY_NUM_USRS ] = "NumUsrs DESC,FullName",
};
MYSQL_RES *mysql_res;
MYSQL_ROW row;

View File

@ -73,13 +73,13 @@ void Log_DrawLogo (Hie_Level_t Scope,long Cod,const char *AltText,
{
static const char *HieIcon[Hie_NUM_LEVELS] =
{
"sitemap.svg", // Hie_UNK, not applicable here
"sitemap.svg", // Hie_SYS, not applicable here
"sitemap.svg", // Hie_CTY, not applicable here
"university.svg", // Hie_INS
"building.svg", // Hie_CTR
"graduation-cap.svg", // Hie_DEG
"sitemap.svg", // Hie_CRS, not applicable here
[Hie_UNK] = "sitemap.svg", // not applicable here
[Hie_SYS] = "sitemap.svg", // not applicable here
[Hie_CTY] = "sitemap.svg", // not applicable here
[Hie_INS] = "university.svg",
[Hie_CTR] = "building.svg",
[Hie_DEG] = "graduation-cap.svg",
[Hie_CRS] = "sitemap.svg", // not applicable here
};
const char *Folder = NULL; // To avoid warning
char PathLogo[PATH_MAX + 1];

View File

@ -242,9 +242,9 @@ static void Mai_GetListMailDomainsAllowedForNotif (void)
{
static const char *OrderBySubQuery[Mai_NUM_ORDERS] =
{
"Domain,Info,N DESC", // Mai_ORDER_BY_DOMAIN
"Info,Domain,N DESC", // Mai_ORDER_BY_INFO
"N DESC,Info,Domain", // Mai_ORDER_BY_USERS
[Mai_ORDER_BY_DOMAIN] = "Domain,Info,N DESC",
[Mai_ORDER_BY_INFO ] = "Info,Domain,N DESC",
[Mai_ORDER_BY_USERS ] = "N DESC,Info,Domain",
};
MYSQL_RES *mysql_res;
MYSQL_ROW row;

View File

@ -73,8 +73,8 @@ extern struct Globals Gbl;
static const Pag_WhatPaginate_t Msg_WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
{
Pag_MESSAGES_RECEIVED, // Msg_MESSAGES_RECEIVED
Pag_MESSAGES_SENT // Msg_MESSAGES_SENT
[Msg_MESSAGES_RECEIVED] = Pag_MESSAGES_RECEIVED,
[Msg_MESSAGES_SENT ] = Pag_MESSAGES_SENT,
};
/*****************************************************************************/
@ -1702,23 +1702,23 @@ static void Msg_ShowSentOrReceivedMessages (void)
long MsgCod;
static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] =
{
ActSeeRcvMsg,
ActSeeSntMsg,
[Msg_MESSAGES_RECEIVED] = ActSeeRcvMsg,
[Msg_MESSAGES_SENT ] = ActSeeSntMsg,
};
static const Pag_WhatPaginate_t WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
{
Pag_MESSAGES_RECEIVED,
Pag_MESSAGES_SENT,
[Msg_MESSAGES_RECEIVED] = Pag_MESSAGES_RECEIVED,
[Msg_MESSAGES_SENT ] = Pag_MESSAGES_SENT,
};
const char *Help[Msg_NUM_TYPES_OF_MSGS] =
{
Hlp_MESSAGES_Received,
Hlp_MESSAGES_Sent,
[Msg_MESSAGES_RECEIVED] = Hlp_MESSAGES_Received,
[Msg_MESSAGES_SENT ] = Hlp_MESSAGES_Sent,
};
const char *HelpFilter[Msg_NUM_TYPES_OF_MSGS] =
{
Hlp_MESSAGES_Received_filter,
Hlp_MESSAGES_Sent_filter,
[Msg_MESSAGES_RECEIVED] = Hlp_MESSAGES_Received_filter,
[Msg_MESSAGES_SENT ] = Hlp_MESSAGES_Sent_filter,
};
/***** Get the page number *****/
@ -2491,8 +2491,8 @@ static void Msg_PutIconsListMsgs (void)
{
static const Act_Action_t ActionReqDelAllMsg[Msg_NUM_TYPES_OF_MSGS] =
{
ActReqDelAllRcvMsg,
ActReqDelAllSntMsg,
[Msg_MESSAGES_RECEIVED] = ActReqDelAllRcvMsg,
[Msg_MESSAGES_SENT ] = ActReqDelAllSntMsg,
};
/***** Put icon to remove messages *****/
@ -2908,8 +2908,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
extern const char *Txt_MSG_Content;
static const Act_Action_t ActionDelMsg[Msg_NUM_TYPES_OF_MSGS] =
{
ActDelRcvMsg,
ActDelSntMsg,
[Msg_MESSAGES_RECEIVED] = ActDelRcvMsg,
[Msg_MESSAGES_SENT ] = ActDelSntMsg,
};
struct UsrData UsrDat;
const char *Title = NULL; // Initialized to avoid warning
@ -3430,8 +3430,8 @@ static void Msg_WriteMsgTo (long MsgCod)
char PhotoURL[PATH_MAX + 1];
static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] =
{
ActSeeRcvMsg,
ActSeeSntMsg,
[Msg_MESSAGES_RECEIVED] = ActSeeRcvMsg,
[Msg_MESSAGES_SENT ] = ActSeeSntMsg,
};
/***** Get number of recipients of a message from database *****/

View File

@ -615,28 +615,28 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
extern const char *Txt_See_full_notice;
static const char *ContainerClass[Not_NUM_STATUS] =
{
"NOTICE_CONTAINER_ACTIVE", // Not_ACTIVE_NOTICE
"NOTICE_CONTAINER_OBSOLETE", // Not_OBSOLETE_NOTICE
[Not_ACTIVE_NOTICE ] = "NOTICE_CONTAINER_ACTIVE",
[Not_OBSOLETE_NOTICE] = "NOTICE_CONTAINER_OBSOLETE",
};
static const char *ContainerWidthClass[Not_NUM_TYPES_LISTING] =
{
"NOTICE_CONTAINER_NARROW", // Not_LIST_BRIEF_NOTICES
"NOTICE_CONTAINER_WIDE", // Not_LIST_FULL_NOTICES
[Not_LIST_BRIEF_NOTICES] = "NOTICE_CONTAINER_NARROW",
[Not_LIST_FULL_NOTICES ] = "NOTICE_CONTAINER_WIDE",
};
static const char *DateClass[Not_NUM_STATUS] =
{
"NOTICE_DATE_ACTIVE", // Not_ACTIVE_NOTICE
"NOTICE_DATE_OBSOLETE", // Not_OBSOLETE_NOTICE
[Not_ACTIVE_NOTICE ] = "NOTICE_DATE_ACTIVE",
[Not_OBSOLETE_NOTICE] = "NOTICE_DATE_OBSOLETE",
};
static const char *TextClass[Not_NUM_STATUS] =
{
"NOTICE_TEXT_ACTIVE", // Not_ACTIVE_NOTICE
"NOTICE_TEXT_OBSOLETE", // Not_OBSOLETE_NOTICE
[Not_ACTIVE_NOTICE ] = "NOTICE_TEXT_ACTIVE",
[Not_OBSOLETE_NOTICE] = "NOTICE_TEXT_OBSOLETE",
};
static const char *AuthorClass[Not_NUM_STATUS] =
{
"NOTICE_AUTHOR_ACTIVE", // Not_ACTIVE_NOTICE
"NOTICE_AUTHOR_OBSOLETE", // Not_OBSOLETE_NOTICE
[Not_ACTIVE_NOTICE ] = "NOTICE_AUTHOR_ACTIVE",
[Not_OBSOLETE_NOTICE] = "NOTICE_AUTHOR_OBSOLETE",
};
static unsigned UniqueId = 0;
char *Id;

View File

@ -53,17 +53,17 @@ extern const Act_Action_t For_ActionsSeePstFor[For_NUM_TYPES_FORUM];
static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] =
{
"NumPagAsg", // Pag_ASSIGNMENTS
"NumPagPrj", // Pag_PROJECTS
"NumPagGam", // Pag_GAMES
"NumPagSvy", // Pag_SURVEYS
"NumPagAtt", // Pag_ATT_EVENTS
"NumPagThr", // Pag_THREADS_FORUM
"NumPagPst", // Pag_POSTS_FORUM
"NumPagRcv", // Pag_MESSAGES_RECEIVED
"NumPagSnt", // Pag_MESSAGES_SENT
"NumPagMyAgd", // Pag_MY_AGENDA
"NumPagOthAgd", // Pag_ANOTHER_AGENDA
[Pag_ASSIGNMENTS ] = "NumPagAsg",
[Pag_PROJECTS ] = "NumPagPrj",
[Pag_GAMES ] = "NumPagGam",
[Pag_SURVEYS ] = "NumPagSvy",
[Pag_ATT_EVENTS ] = "NumPagAtt",
[Pag_THREADS_FORUM ] = "NumPagThr",
[Pag_POSTS_FORUM ] = "NumPagPst",
[Pag_MESSAGES_RECEIVED] = "NumPagRcv",
[Pag_MESSAGES_SENT ] = "NumPagSnt",
[Pag_MY_AGENDA ] = "NumPagMyAgd",
[Pag_ANOTHER_AGENDA ] = "NumPagOthAgd",
};
/*****************************************************************************/

View File

@ -333,8 +333,8 @@ void Plc_GetListPlaces (void)
{
static const char *OrderBySubQuery[Plc_NUM_ORDERS] =
{
"FullName", // Plc_ORDER_BY_PLACE
"NumCtrs DESC,FullName", // Plc_ORDER_BY_NUM_CTRS
[Plc_ORDER_BY_PLACE ] = "FullName",
[Plc_ORDER_BY_NUM_CTRS] = "NumCtrs DESC,FullName",
};
MYSQL_RES *mysql_res;
MYSQL_ROW row;

View File

@ -84,28 +84,28 @@ static const unsigned Brw_NUM_ROLES_TO_SHOW = sizeof (Prj_RolesToShow) /
/***** Enum field in database for types of proposal *****/
static const char *Prj_Proposal_DB[Prj_NUM_PROPOSAL_TYPES] =
{
"new", // Prj_PROPOSAL_NEW
"modified", // Prj_PROPOSAL_MODIFIED
"unmodified", // Prj_PROPOSAL_UNMODIFIED
[Prj_PROPOSAL_NEW ] = "new",
[Prj_PROPOSAL_MODIFIED ] = "modified",
[Prj_PROPOSAL_UNMODIFIED] = "unmodified",
};
/***** Assigned/non-assigned project *****/
static const char *AssignedNonassigImage[Prj_NUM_ASSIGNED_NONASSIG] =
{
"user.svg", // Prj_ASSIGNED
"user-slash.svg", // Prj_NONASSIG
[Prj_ASSIGNED] = "user.svg",
[Prj_NONASSIG] = "user-slash.svg",
};
/***** Locked/unlocked project edition *****/
static const char *Prj_LockIcons[Prj_NUM_LOCKED_UNLOCKED] =
{
"lock.svg", // Prj_LOCKED
"unlock.svg", // Prj_UNLOCKED
[Prj_LOCKED ] = "lock.svg",
[Prj_UNLOCKED] = "unlock.svg",
};
static const Act_Action_t Prj_LockActions[Prj_NUM_LOCKED_UNLOCKED] =
{
ActUnlPrj, // Prj_LOCKED
ActLckPrj, // Prj_UNLOCKED
[Prj_LOCKED ] = ActUnlPrj,
[Prj_UNLOCKED] = ActLckPrj,
};
/***** List of users to select one or more members
@ -575,8 +575,8 @@ static void Prj_ShowFormToFilterByHidden (void)
Prj_HiddenVisibl_t HidVis;
static const char *HiddenVisiblIcon[Prj_NUM_HIDDEN_VISIBL] =
{
"eye-slash.svg", // Prj_HIDDEN
"eye.svg", // Prj_VISIBL
[Prj_HIDDEN] = "eye-slash.svg",
[Prj_VISIBL] = "eye.svg",
};
Set_StartOneSettingSelector ();
@ -616,8 +616,8 @@ static void Prj_ShowFormToFilterByWarning (void)
Prj_Faultiness_t Faultiness;
static const char *FaultinessIcon[Prj_NUM_FAULTINESS] =
{
"exclamation-triangle.svg", // Prj_FAULTY
"check-circle.svg", // Prj_FAULTLESS
[Prj_FAULTY ] = "exclamation-triangle.svg",
[Prj_FAULTLESS] = "check-circle.svg",
};
Set_StartOneSettingSelector ();
@ -965,16 +965,16 @@ static bool Prj_CheckIfICanCreateProjects (void)
{
static const bool ICanCreateProjects[Rol_NUM_ROLES] =
{
false, // Rol_UNK
false, // Rol_GST
false, // Rol_USR
false, // Rol_STD
true, // Rol_NET
true, // Rol_TCH
true, // Rol_DEG_ADM
true, // Rol_CTR_ADM
true, // Rol_INS_ADM
true, // Rol_SYS_ADM
[Rol_UNK ] = false,
[Rol_GST ] = false,
[Rol_USR ] = false,
[Rol_STD ] = false,
[Rol_NET ] = true,
[Rol_TCH ] = true,
[Rol_DEG_ADM] = true,
[Rol_CTR_ADM] = true,
[Rol_INS_ADM] = true,
[Rol_SYS_ADM] = true,
};
return ICanCreateProjects[Gbl.Usrs.Me.Role.Logged];
@ -1934,17 +1934,17 @@ static void Prj_ShowOneProjectMembersWithARole (const struct Project *Prj,
const char *ClassData;
static const Act_Action_t ActionReqRemUsr[Prj_NUM_ROLES_IN_PROJECT] =
{
ActUnk, // Prj_ROLE_UNK, Unknown
ActReqRemStdPrj, // Prj_ROLE_STD, Student
ActReqRemTutPrj, // Prj_ROLE_TUT, Tutor
ActReqRemEvlPrj, // Prj_ROLE_EVL, Evaluator
[Prj_ROLE_UNK] = ActUnk, // Unknown
[Prj_ROLE_STD] = ActReqRemStdPrj, // Student
[Prj_ROLE_TUT] = ActReqRemTutPrj, // Tutor
[Prj_ROLE_EVL] = ActReqRemEvlPrj, // Evaluator
};
static const Act_Action_t ActionReqAddUsr[Prj_NUM_ROLES_IN_PROJECT] =
{
ActUnk, // Prj_ROLE_UNK, Unknown
ActReqAddStdPrj, // Prj_ROLE_STD, Student
ActReqAddTutPrj, // Prj_ROLE_TUT, Tutor
ActReqAddEvlPrj, // Prj_ROLE_EVL, Evaluator
[Prj_ROLE_UNK] = ActUnk, // Unknown
[Prj_ROLE_STD] = ActReqAddStdPrj, // Student
[Prj_ROLE_TUT] = ActReqAddTutPrj, // Tutor
[Prj_ROLE_EVL] = ActReqAddEvlPrj, // Evaluator
};
/***** Set CSS classes *****/
@ -2681,22 +2681,19 @@ static void Prj_GetListProjects (void)
char *DptCodSubQuery;
static const char *OrderBySubQuery[Prj_NUM_ORDERS] =
{
"projects.CreatTime DESC," // Prj_ORDER_START_TIME
"projects.ModifTime DESC,"
"projects.Title",
"projects.ModifTime DESC," // Prj_ORDER_END_TIME
"projects.CreatTime DESC,"
"projects.Title",
"projects.Title," // Prj_ORDER_TITLE
"projects.CreatTime DESC,"
"projects.ModifTime DESC",
"departments.FullName," // Prj_ORDER_DEPARTMENT
"projects.CreatTime DESC,"
"projects.ModifTime DESC,"
"projects.Title",
[Prj_ORDER_START_TIME] = "projects.CreatTime DESC,"
"projects.ModifTime DESC,"
"projects.Title",
[Prj_ORDER_END_TIME ] = "projects.ModifTime DESC,"
"projects.CreatTime DESC,"
"projects.Title",
[Prj_ORDER_TITLE ] = "projects.Title,"
"projects.CreatTime DESC,"
"projects.ModifTime DESC",
[Prj_ORDER_DEPARTMENT] = "departments.FullName,"
"projects.CreatTime DESC,"
"projects.ModifTime DESC,"
"projects.Title",
};
MYSQL_RES *mysql_res = NULL; // Initialized to avoid freeing when not assigned
MYSQL_ROW row;

View File

@ -350,13 +350,13 @@ const char *Sco_GetDBStrFromScope (Hie_Level_t Scope)
{
static const char *Sco_ScopeDB[Hie_NUM_LEVELS] =
{
"Unk", // Hie_UNK
"Sys", // Hie_SYS
"Cty", // Hie_CTY
"Ins", // Hie_INS
"Ctr", // Hie_CTR
"Deg", // Hie_DEG
"Crs", // Hie_CRS
[Hie_UNK] = "Unk",
[Hie_SYS] = "Sys",
[Hie_CTY] = "Cty",
[Hie_INS] = "Ins",
[Hie_CTR] = "Ctr",
[Hie_DEG] = "Deg",
[Hie_CRS] = "Crs",
};
if (Scope >= Hie_NUM_LEVELS)

View File

@ -890,8 +890,8 @@ static void Svy_GetListSurveys (void)
char *SubQuery[Hie_NUM_LEVELS];
static const char *OrderBySubQuery[Svy_NUM_ORDERS] =
{
"StartTime DESC,EndTime DESC,Title DESC", // Svy_ORDER_BY_START_DATE
"EndTime DESC,StartTime DESC,Title DESC", // Svy_ORDER_BY_END_DATE
[Svy_ORDER_BY_START_DATE] = "StartTime DESC,EndTime DESC,Title DESC",
[Svy_ORDER_BY_END_DATE ] = "EndTime DESC,StartTime DESC,Title DESC",
};
MYSQL_RES *mysql_res;
MYSQL_ROW row;

View File

@ -312,15 +312,15 @@ void TT_ShowClassTimeTable (void)
extern const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES];
const char *Help[TT_NUM_TIMETABLE_TYPES] =
{
Hlp_COURSE_Timetable, // TT_COURSE_TIMETABLE
Hlp_PROFILE_Timetable, // TT_MY_TIMETABLE
NULL, // TT_TUTORING_TIMETABLE
[TT_COURSE_TIMETABLE ] = Hlp_COURSE_Timetable,
[TT_MY_TIMETABLE ] = Hlp_PROFILE_Timetable,
[TT_TUTORING_TIMETABLE] = NULL,
};
Act_Action_t ActChgTT1stDay[TT_NUM_TIMETABLE_TYPES] =
static Act_Action_t ActChgTT1stDay[TT_NUM_TIMETABLE_TYPES] =
{
ActChgCrsTT1stDay,// TT_COURSE_TIMETABLE
ActChgMyTT1stDay, // TT_MY_TIMETABLE
ActUnk, // TT_TUTORING_TIMETABLE
[TT_COURSE_TIMETABLE ] = ActChgCrsTT1stDay,
[TT_MY_TIMETABLE ] = ActChgMyTT1stDay,
[TT_TUTORING_TIMETABLE] = ActUnk,
};
bool PrintView = (Gbl.Action.Act == ActPrnCrsTT ||
Gbl.Action.Act == ActPrnMyTT);;
@ -1435,10 +1435,10 @@ static void TT_TimeTableDrawCell (unsigned Weekday,unsigned Interval,unsigned Co
extern const char *Txt_Info;
static const char *TimeTableClasses[TT_NUM_CLASS_TYPES] =
{
"TT_FREE", // TT_FREE (free hour)
"TT_LECT", // TT_LECTURE (lecture class)
"TT_PRAC", // TT_PRACTICAL (practical class)
"TT_TUTO", // TT_TUTORING (tutoring/office hour)
[TT_FREE ] = "TT_FREE", // free hour
[TT_LECTURE ] = "TT_LECT", // lecture class
[TT_PRACTICAL] = "TT_PRAC", // practical class
[TT_TUTORING ] = "TT_TUTO", // tutoring/office hour
};
char *CellStr; // Unique string for this cell used in labels
struct GroupData GrpDat;

View File

@ -101,37 +101,36 @@ const char *Usr_StringsUsrListTypeInDB[Usr_NUM_USR_LIST_TYPES] =
static const char *Usr_IconsClassPhotoOrList[Usr_NUM_USR_LIST_TYPES] =
{
"", // Usr_LIST_UNKNOWN
"th.svg", // Usr_LIST_AS_CLASS_PHOTO
"list-ol.svg", // Usr_LIST_AS_LISTING
[Usr_LIST_UNKNOWN ] = "",
[Usr_LIST_AS_CLASS_PHOTO] = "th.svg",
[Usr_LIST_AS_LISTING ] = "list-ol.svg",
};
static const char *Usr_NameSelUnsel[Rol_NUM_ROLES] =
{
NULL, // Rol_UNK
"SEL_UNSEL_GSTS", // Rol_GST
NULL, // Rol_USR
"SEL_UNSEL_STDS", // Rol_STD
"SEL_UNSEL_NETS", // Rol_NET
"SEL_UNSEL_TCHS", // Rol_TCH
NULL, // Rol_DEG_ADM
NULL, // Rol_CTR_ADM
NULL, // Rol_INS_ADM
NULL, // Rol_SYS_ADM
[Rol_UNK ] = NULL,
[Rol_GST ] = "SEL_UNSEL_GSTS",
[Rol_USR ] = NULL,
[Rol_STD ] = "SEL_UNSEL_STDS",
[Rol_NET ] = "SEL_UNSEL_NETS",
[Rol_TCH ] = "SEL_UNSEL_TCHS",
[Rol_DEG_ADM] = NULL,
[Rol_CTR_ADM] = NULL,
[Rol_INS_ADM] = NULL,
[Rol_SYS_ADM] = NULL,
};
static const char *Usr_ParamUsrCod[Rol_NUM_ROLES] =
{
"UsrCodAll", // Rol_UNK (here means all users)
"UsrCodGst", // Rol_GST
NULL, // Rol_USR
"UsrCodStd", // Rol_STD
"UsrCodNET", // Rol_NET
"UsrCodTch", // Rol_TCH
NULL, // Rol_DEG_ADM
NULL, // Rol_CTR_ADM
NULL, // Rol_INS_ADM
NULL, // Rol_SYS_ADM
[Rol_UNK ] = "UsrCodAll", // here means all users
[Rol_GST ] = "UsrCodGst",
[Rol_USR ] = NULL,
[Rol_STD ] = "UsrCodStd",
[Rol_NET ] = "UsrCodNET",
[Rol_TCH ] = "UsrCodTch",
[Rol_DEG_ADM] = NULL,
[Rol_CTR_ADM] = NULL,
[Rol_INS_ADM] = NULL,
[Rol_SYS_ADM] = NULL,
};
#define Usr_NUM_MAIN_FIELDS_DATA_ADM 7