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: En OpenSWAD:
ps2pdf source.ps destination.pdf 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 CSS_FILE "swad19.74.3.css"
#define JS_FILE "swad19.70.js" #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: 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. // 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.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.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) 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; For_ForumType_t Tchs;
} ForumType[Hie_NUM_LEVELS] = } ForumType[Hie_NUM_LEVELS] =
{ {
{For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Hie_UNK // No forums for this scope [Hie_UNK] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
{For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Hie_SYS // Not removable [Hie_SYS] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Not removable
{For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // Hie_CTY // No forums for this scope [Hie_CTY] = {For_FORUM_GLOBAL_USRS,For_FORUM_GLOBAL_TCHS}, // No forums for this scope
{For_FORUM_INSTIT_USRS,For_FORUM_INSTIT_TCHS}, // Hie_INS [Hie_INS] = {For_FORUM_INSTIT_USRS,For_FORUM_INSTIT_TCHS},
{For_FORUM_CENTRE_USRS,For_FORUM_CENTRE_TCHS}, // Hie_CTR [Hie_CTR] = {For_FORUM_CENTRE_USRS,For_FORUM_CENTRE_TCHS},
{For_FORUM_DEGREE_USRS,For_FORUM_DEGREE_TCHS}, // Hie_DEG [Hie_DEG] = {For_FORUM_DEGREE_USRS,For_FORUM_DEGREE_TCHS},
{For_FORUM_COURSE_USRS,For_FORUM_COURSE_TCHS}, // Hie_CRS [Hie_CRS] = {For_FORUM_COURSE_USRS,For_FORUM_COURSE_TCHS},
}; };
/***** Remove disabled posts *****/ /***** Remove disabled posts *****/

View File

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

View File

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

View File

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

View File

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

View File

@ -350,14 +350,14 @@ void Inf_ShowInfo (void)
bool ShowWarningNoInfo = false; bool ShowWarningNoInfo = false;
const char *Help[Inf_NUM_INFO_TYPES] = const char *Help[Inf_NUM_INFO_TYPES] =
{ {
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION [Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE [Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
Hlp_COURSE_Syllabus, // Inf_LECTURES [Inf_LECTURES ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Syllabus, // Inf_PRACTICALS [Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY [Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
Hlp_COURSE_FAQ, // Inf_FAQ [Inf_FAQ ] = Hlp_COURSE_FAQ,
Hlp_COURSE_Links, // Inf_LINKS [Inf_LINKS ] = Hlp_COURSE_Links,
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT [Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
}; };
/***** Set info type *****/ /***** Set info type *****/
@ -1031,14 +1031,14 @@ static void Inf_ShowPage (const char *URL)
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM); Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
const char *Help[Inf_NUM_INFO_TYPES] = const char *Help[Inf_NUM_INFO_TYPES] =
{ {
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION [Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE [Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
Hlp_COURSE_Syllabus, // Inf_LECTURES [Inf_LECTURES ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Syllabus, // Inf_PRACTICALS [Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY [Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
Hlp_COURSE_FAQ, // Inf_FAQ [Inf_FAQ ] = Hlp_COURSE_FAQ,
Hlp_COURSE_Links, // Inf_LINKS [Inf_LINKS ] = Hlp_COURSE_Links,
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT [Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
}; };
/***** Begin box *****/ /***** Begin box *****/
@ -1769,14 +1769,14 @@ static bool Inf_CheckAndShowPlainTxt (void)
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM); Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
const char *Help[Inf_NUM_INFO_TYPES] = const char *Help[Inf_NUM_INFO_TYPES] =
{ {
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION [Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE [Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
Hlp_COURSE_Syllabus, // Inf_LECTURES [Inf_LECTURES ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Syllabus, // Inf_PRACTICALS [Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY [Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
Hlp_COURSE_FAQ, // Inf_FAQ [Inf_FAQ ] = Hlp_COURSE_FAQ,
Hlp_COURSE_Links, // Inf_LINKS [Inf_LINKS ] = Hlp_COURSE_Links,
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT [Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
}; };
/***** Get info text from database *****/ /***** Get info text from database *****/
@ -1853,14 +1853,14 @@ static bool Inf_CheckAndShowRichTxt (void)
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM); Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM);
const char *Help[Inf_NUM_INFO_TYPES] = const char *Help[Inf_NUM_INFO_TYPES] =
{ {
Hlp_COURSE_Information_textual_information, // Inf_INTRODUCTION [Inf_INTRODUCTION ] = Hlp_COURSE_Information_textual_information,
Hlp_COURSE_Guide, // Inf_TEACHING_GUIDE [Inf_TEACHING_GUIDE] = Hlp_COURSE_Guide,
Hlp_COURSE_Syllabus, // Inf_LECTURES [Inf_LECTURES ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Syllabus, // Inf_PRACTICALS [Inf_PRACTICALS ] = Hlp_COURSE_Syllabus,
Hlp_COURSE_Bibliography, // Inf_BIBLIOGRAPHY [Inf_BIBLIOGRAPHY ] = Hlp_COURSE_Bibliography,
Hlp_COURSE_FAQ, // Inf_FAQ [Inf_FAQ ] = Hlp_COURSE_FAQ,
Hlp_COURSE_Links, // Inf_LINKS [Inf_LINKS ] = Hlp_COURSE_Links,
Hlp_ASSESSMENT_System, // Inf_ASSESSMENT [Inf_ASSESSMENT ] = Hlp_ASSESSMENT_System,
}; };
/***** Get info text from database *****/ /***** 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] = static const char *OrderBySubQuery[Ins_NUM_ORDERS] =
{ {
"FullName", // Ins_ORDER_BY_INSTITUTION [Ins_ORDER_BY_INSTITUTION] = "FullName",
"NumUsrs DESC,FullName", // Ins_ORDER_BY_NUM_USRS [Ins_ORDER_BY_NUM_USRS ] = "NumUsrs DESC,FullName",
}; };
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; 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] = static const char *HieIcon[Hie_NUM_LEVELS] =
{ {
"sitemap.svg", // Hie_UNK, not applicable here [Hie_UNK] = "sitemap.svg", // not applicable here
"sitemap.svg", // Hie_SYS, not applicable here [Hie_SYS] = "sitemap.svg", // not applicable here
"sitemap.svg", // Hie_CTY, not applicable here [Hie_CTY] = "sitemap.svg", // not applicable here
"university.svg", // Hie_INS [Hie_INS] = "university.svg",
"building.svg", // Hie_CTR [Hie_CTR] = "building.svg",
"graduation-cap.svg", // Hie_DEG [Hie_DEG] = "graduation-cap.svg",
"sitemap.svg", // Hie_CRS, not applicable here [Hie_CRS] = "sitemap.svg", // not applicable here
}; };
const char *Folder = NULL; // To avoid warning const char *Folder = NULL; // To avoid warning
char PathLogo[PATH_MAX + 1]; char PathLogo[PATH_MAX + 1];

View File

@ -242,9 +242,9 @@ static void Mai_GetListMailDomainsAllowedForNotif (void)
{ {
static const char *OrderBySubQuery[Mai_NUM_ORDERS] = static const char *OrderBySubQuery[Mai_NUM_ORDERS] =
{ {
"Domain,Info,N DESC", // Mai_ORDER_BY_DOMAIN [Mai_ORDER_BY_DOMAIN] = "Domain,Info,N DESC",
"Info,Domain,N DESC", // Mai_ORDER_BY_INFO [Mai_ORDER_BY_INFO ] = "Info,Domain,N DESC",
"N DESC,Info,Domain", // Mai_ORDER_BY_USERS [Mai_ORDER_BY_USERS ] = "N DESC,Info,Domain",
}; };
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; 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] = static const Pag_WhatPaginate_t Msg_WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
{ {
Pag_MESSAGES_RECEIVED, // Msg_MESSAGES_RECEIVED [Msg_MESSAGES_RECEIVED] = Pag_MESSAGES_RECEIVED,
Pag_MESSAGES_SENT // Msg_MESSAGES_SENT [Msg_MESSAGES_SENT ] = Pag_MESSAGES_SENT,
}; };
/*****************************************************************************/ /*****************************************************************************/
@ -1702,23 +1702,23 @@ static void Msg_ShowSentOrReceivedMessages (void)
long MsgCod; long MsgCod;
static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] = static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] =
{ {
ActSeeRcvMsg, [Msg_MESSAGES_RECEIVED] = ActSeeRcvMsg,
ActSeeSntMsg, [Msg_MESSAGES_SENT ] = ActSeeSntMsg,
}; };
static const Pag_WhatPaginate_t WhatPaginate[Msg_NUM_TYPES_OF_MSGS] = static const Pag_WhatPaginate_t WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
{ {
Pag_MESSAGES_RECEIVED, [Msg_MESSAGES_RECEIVED] = Pag_MESSAGES_RECEIVED,
Pag_MESSAGES_SENT, [Msg_MESSAGES_SENT ] = Pag_MESSAGES_SENT,
}; };
const char *Help[Msg_NUM_TYPES_OF_MSGS] = const char *Help[Msg_NUM_TYPES_OF_MSGS] =
{ {
Hlp_MESSAGES_Received, [Msg_MESSAGES_RECEIVED] = Hlp_MESSAGES_Received,
Hlp_MESSAGES_Sent, [Msg_MESSAGES_SENT ] = Hlp_MESSAGES_Sent,
}; };
const char *HelpFilter[Msg_NUM_TYPES_OF_MSGS] = const char *HelpFilter[Msg_NUM_TYPES_OF_MSGS] =
{ {
Hlp_MESSAGES_Received_filter, [Msg_MESSAGES_RECEIVED] = Hlp_MESSAGES_Received_filter,
Hlp_MESSAGES_Sent_filter, [Msg_MESSAGES_SENT ] = Hlp_MESSAGES_Sent_filter,
}; };
/***** Get the page number *****/ /***** Get the page number *****/
@ -2491,8 +2491,8 @@ static void Msg_PutIconsListMsgs (void)
{ {
static const Act_Action_t ActionReqDelAllMsg[Msg_NUM_TYPES_OF_MSGS] = static const Act_Action_t ActionReqDelAllMsg[Msg_NUM_TYPES_OF_MSGS] =
{ {
ActReqDelAllRcvMsg, [Msg_MESSAGES_RECEIVED] = ActReqDelAllRcvMsg,
ActReqDelAllSntMsg, [Msg_MESSAGES_SENT ] = ActReqDelAllSntMsg,
}; };
/***** Put icon to remove messages *****/ /***** Put icon to remove messages *****/
@ -2908,8 +2908,8 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
extern const char *Txt_MSG_Content; extern const char *Txt_MSG_Content;
static const Act_Action_t ActionDelMsg[Msg_NUM_TYPES_OF_MSGS] = static const Act_Action_t ActionDelMsg[Msg_NUM_TYPES_OF_MSGS] =
{ {
ActDelRcvMsg, [Msg_MESSAGES_RECEIVED] = ActDelRcvMsg,
ActDelSntMsg, [Msg_MESSAGES_SENT ] = ActDelSntMsg,
}; };
struct UsrData UsrDat; struct UsrData UsrDat;
const char *Title = NULL; // Initialized to avoid warning const char *Title = NULL; // Initialized to avoid warning
@ -3430,8 +3430,8 @@ static void Msg_WriteMsgTo (long MsgCod)
char PhotoURL[PATH_MAX + 1]; char PhotoURL[PATH_MAX + 1];
static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] = static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] =
{ {
ActSeeRcvMsg, [Msg_MESSAGES_RECEIVED] = ActSeeRcvMsg,
ActSeeSntMsg, [Msg_MESSAGES_SENT ] = ActSeeSntMsg,
}; };
/***** Get number of recipients of a message from database *****/ /***** 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; extern const char *Txt_See_full_notice;
static const char *ContainerClass[Not_NUM_STATUS] = static const char *ContainerClass[Not_NUM_STATUS] =
{ {
"NOTICE_CONTAINER_ACTIVE", // Not_ACTIVE_NOTICE [Not_ACTIVE_NOTICE ] = "NOTICE_CONTAINER_ACTIVE",
"NOTICE_CONTAINER_OBSOLETE", // Not_OBSOLETE_NOTICE [Not_OBSOLETE_NOTICE] = "NOTICE_CONTAINER_OBSOLETE",
}; };
static const char *ContainerWidthClass[Not_NUM_TYPES_LISTING] = static const char *ContainerWidthClass[Not_NUM_TYPES_LISTING] =
{ {
"NOTICE_CONTAINER_NARROW", // Not_LIST_BRIEF_NOTICES [Not_LIST_BRIEF_NOTICES] = "NOTICE_CONTAINER_NARROW",
"NOTICE_CONTAINER_WIDE", // Not_LIST_FULL_NOTICES [Not_LIST_FULL_NOTICES ] = "NOTICE_CONTAINER_WIDE",
}; };
static const char *DateClass[Not_NUM_STATUS] = static const char *DateClass[Not_NUM_STATUS] =
{ {
"NOTICE_DATE_ACTIVE", // Not_ACTIVE_NOTICE [Not_ACTIVE_NOTICE ] = "NOTICE_DATE_ACTIVE",
"NOTICE_DATE_OBSOLETE", // Not_OBSOLETE_NOTICE [Not_OBSOLETE_NOTICE] = "NOTICE_DATE_OBSOLETE",
}; };
static const char *TextClass[Not_NUM_STATUS] = static const char *TextClass[Not_NUM_STATUS] =
{ {
"NOTICE_TEXT_ACTIVE", // Not_ACTIVE_NOTICE [Not_ACTIVE_NOTICE ] = "NOTICE_TEXT_ACTIVE",
"NOTICE_TEXT_OBSOLETE", // Not_OBSOLETE_NOTICE [Not_OBSOLETE_NOTICE] = "NOTICE_TEXT_OBSOLETE",
}; };
static const char *AuthorClass[Not_NUM_STATUS] = static const char *AuthorClass[Not_NUM_STATUS] =
{ {
"NOTICE_AUTHOR_ACTIVE", // Not_ACTIVE_NOTICE [Not_ACTIVE_NOTICE ] = "NOTICE_AUTHOR_ACTIVE",
"NOTICE_AUTHOR_OBSOLETE", // Not_OBSOLETE_NOTICE [Not_OBSOLETE_NOTICE] = "NOTICE_AUTHOR_OBSOLETE",
}; };
static unsigned UniqueId = 0; static unsigned UniqueId = 0;
char *Id; 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] = static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] =
{ {
"NumPagAsg", // Pag_ASSIGNMENTS [Pag_ASSIGNMENTS ] = "NumPagAsg",
"NumPagPrj", // Pag_PROJECTS [Pag_PROJECTS ] = "NumPagPrj",
"NumPagGam", // Pag_GAMES [Pag_GAMES ] = "NumPagGam",
"NumPagSvy", // Pag_SURVEYS [Pag_SURVEYS ] = "NumPagSvy",
"NumPagAtt", // Pag_ATT_EVENTS [Pag_ATT_EVENTS ] = "NumPagAtt",
"NumPagThr", // Pag_THREADS_FORUM [Pag_THREADS_FORUM ] = "NumPagThr",
"NumPagPst", // Pag_POSTS_FORUM [Pag_POSTS_FORUM ] = "NumPagPst",
"NumPagRcv", // Pag_MESSAGES_RECEIVED [Pag_MESSAGES_RECEIVED] = "NumPagRcv",
"NumPagSnt", // Pag_MESSAGES_SENT [Pag_MESSAGES_SENT ] = "NumPagSnt",
"NumPagMyAgd", // Pag_MY_AGENDA [Pag_MY_AGENDA ] = "NumPagMyAgd",
"NumPagOthAgd", // Pag_ANOTHER_AGENDA [Pag_ANOTHER_AGENDA ] = "NumPagOthAgd",
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

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

View File

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

View File

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

View File

@ -312,15 +312,15 @@ void TT_ShowClassTimeTable (void)
extern const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES]; extern const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES];
const char *Help[TT_NUM_TIMETABLE_TYPES] = const char *Help[TT_NUM_TIMETABLE_TYPES] =
{ {
Hlp_COURSE_Timetable, // TT_COURSE_TIMETABLE [TT_COURSE_TIMETABLE ] = Hlp_COURSE_Timetable,
Hlp_PROFILE_Timetable, // TT_MY_TIMETABLE [TT_MY_TIMETABLE ] = Hlp_PROFILE_Timetable,
NULL, // TT_TUTORING_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 [TT_COURSE_TIMETABLE ] = ActChgCrsTT1stDay,
ActChgMyTT1stDay, // TT_MY_TIMETABLE [TT_MY_TIMETABLE ] = ActChgMyTT1stDay,
ActUnk, // TT_TUTORING_TIMETABLE [TT_TUTORING_TIMETABLE] = ActUnk,
}; };
bool PrintView = (Gbl.Action.Act == ActPrnCrsTT || bool PrintView = (Gbl.Action.Act == ActPrnCrsTT ||
Gbl.Action.Act == ActPrnMyTT);; Gbl.Action.Act == ActPrnMyTT);;
@ -1435,10 +1435,10 @@ static void TT_TimeTableDrawCell (unsigned Weekday,unsigned Interval,unsigned Co
extern const char *Txt_Info; extern const char *Txt_Info;
static const char *TimeTableClasses[TT_NUM_CLASS_TYPES] = static const char *TimeTableClasses[TT_NUM_CLASS_TYPES] =
{ {
"TT_FREE", // TT_FREE (free hour) [TT_FREE ] = "TT_FREE", // free hour
"TT_LECT", // TT_LECTURE (lecture class) [TT_LECTURE ] = "TT_LECT", // lecture class
"TT_PRAC", // TT_PRACTICAL (practical class) [TT_PRACTICAL] = "TT_PRAC", // practical class
"TT_TUTO", // TT_TUTORING (tutoring/office hour) [TT_TUTORING ] = "TT_TUTO", // tutoring/office hour
}; };
char *CellStr; // Unique string for this cell used in labels char *CellStr; // Unique string for this cell used in labels
struct GroupData GrpDat; 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] = static const char *Usr_IconsClassPhotoOrList[Usr_NUM_USR_LIST_TYPES] =
{ {
"", // Usr_LIST_UNKNOWN [Usr_LIST_UNKNOWN ] = "",
"th.svg", // Usr_LIST_AS_CLASS_PHOTO [Usr_LIST_AS_CLASS_PHOTO] = "th.svg",
"list-ol.svg", // Usr_LIST_AS_LISTING [Usr_LIST_AS_LISTING ] = "list-ol.svg",
}; };
static const char *Usr_NameSelUnsel[Rol_NUM_ROLES] = static const char *Usr_NameSelUnsel[Rol_NUM_ROLES] =
{ {
NULL, // Rol_UNK [Rol_UNK ] = NULL,
"SEL_UNSEL_GSTS", // Rol_GST [Rol_GST ] = "SEL_UNSEL_GSTS",
NULL, // Rol_USR [Rol_USR ] = NULL,
"SEL_UNSEL_STDS", // Rol_STD [Rol_STD ] = "SEL_UNSEL_STDS",
"SEL_UNSEL_NETS", // Rol_NET [Rol_NET ] = "SEL_UNSEL_NETS",
"SEL_UNSEL_TCHS", // Rol_TCH [Rol_TCH ] = "SEL_UNSEL_TCHS",
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,
}; };
static const char *Usr_ParamUsrCod[Rol_NUM_ROLES] = static const char *Usr_ParamUsrCod[Rol_NUM_ROLES] =
{ {
"UsrCodAll", // Rol_UNK (here means all users) [Rol_UNK ] = "UsrCodAll", // here means all users
"UsrCodGst", // Rol_GST [Rol_GST ] = "UsrCodGst",
NULL, // Rol_USR [Rol_USR ] = NULL,
"UsrCodStd", // Rol_STD [Rol_STD ] = "UsrCodStd",
"UsrCodNET", // Rol_NET [Rol_NET ] = "UsrCodNET",
"UsrCodTch", // Rol_TCH [Rol_TCH ] = "UsrCodTch",
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,
}; };
#define Usr_NUM_MAIN_FIELDS_DATA_ADM 7 #define Usr_NUM_MAIN_FIELDS_DATA_ADM 7