Version19.76.1

This commit is contained in:
Antonio Cañas Vargas 2019-11-21 11:39:30 +01:00
parent e862b38e5e
commit 0940245f28
15 changed files with 1779 additions and 1824 deletions

View File

@ -171,7 +171,7 @@ typedef enum
} API_Role_t;
/* Translation from service-web-role to swad-core-role */
Rol_Role_t API_SvcRole_to_RolRole[API_NUM_ROLES] =
static const Rol_Role_t API_SvcRole_to_RolRole[API_NUM_ROLES] =
{
[API_ROLE_UNKNOWN] = Rol_UNK,
[API_ROLE__GUEST_] = Rol_GST,
@ -180,7 +180,7 @@ Rol_Role_t API_SvcRole_to_RolRole[API_NUM_ROLES] =
};
/* Translation from swad-core-role to service-web-role */
API_Role_t API_RolRole_to_SvcRole[Rol_NUM_ROLES] =
static const API_Role_t API_RolRole_to_SvcRole[Rol_NUM_ROLES] =
{
[Rol_UNK ] = API_ROLE_UNKNOWN,
[Rol_GST ] = API_ROLE__GUEST_,

File diff suppressed because it is too large Load Diff

View File

@ -1535,7 +1535,7 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActMaiUsr (ActUnfSevTch + 169)
/*****************************************************************************/
/****************************** Statistics tab *******************************/
/****************************** Analytics tab ********************************/
/*****************************************************************************/
// Actions in menu
#define ActReqUseGbl (ActMaiUsr + 1)

View File

@ -440,7 +440,7 @@ static void Agd_ShowEvents (Agd_AgendaType_t AgendaType)
extern const char *Txt_No_events;
struct Pagination Pagination;
unsigned NumEvent;
Pag_WhatPaginate_t WhatPaginate[Agd_NUM_AGENDA_TYPES] =
static const Pag_WhatPaginate_t WhatPaginate[Agd_NUM_AGENDA_TYPES] =
{
[Agd_MY_AGENDA_TODAY ] = Pag_MY_AGENDA, // not used
[Agd_MY_AGENDA ] = Pag_MY_AGENDA,
@ -917,7 +917,7 @@ void Agd_PutParamsMyAgenda (unsigned Past__FutureEvents,
static void Agd_GetParams (Agd_AgendaType_t AgendaType)
{
Pag_WhatPaginate_t WhatPaginate[Agd_NUM_AGENDA_TYPES] =
static const Pag_WhatPaginate_t WhatPaginate[Agd_NUM_AGENDA_TYPES] =
{
[Agd_MY_AGENDA_TODAY ] = Pag_MY_AGENDA, // not used
[Agd_MY_AGENDA ] = Pag_MY_AGENDA,

View File

@ -51,17 +51,6 @@ extern struct Globals Gbl;
/***************************** Private constants *****************************/
/*****************************************************************************/
static const char *Ale_AlertIcons[Ale_NUM_ALERT_TYPES] =
{
[Ale_NONE ] = NULL,
[Ale_CLIPBOARD] = "clipboard.svg",
[Ale_INFO ] = "info-circle.svg",
[Ale_SUCCESS ] = "check-circle.svg",
[Ale_QUESTION ] = "question64x64.gif", // animated gif
[Ale_WARNING ] = "warning64x64.gif", // animated gif
[Ale_ERROR ] = "error64x64.gif", // animated gif
};
/*****************************************************************************/
/******************************* Private types *******************************/
/*****************************************************************************/
@ -390,6 +379,16 @@ static void Ale_ShowFixAlertAndButton1 (Ale_AlertType_t AlertType,const char *Tx
[Ale_WARNING ] = true,
[Ale_ERROR ] = true,
};
static const char *Ale_AlertIcons[Ale_NUM_ALERT_TYPES] =
{
[Ale_NONE ] = NULL,
[Ale_CLIPBOARD] = "clipboard.svg",
[Ale_INFO ] = "info-circle.svg",
[Ale_SUCCESS ] = "check-circle.svg",
[Ale_QUESTION ] = "question64x64.gif", // animated gif
[Ale_WARNING ] = "warning64x64.gif", // animated gif
[Ale_ERROR ] = "error64x64.gif", // animated gif
};
/****** If start of page is not written yet, do it now ******/
if (!Gbl.Layout.HTMLStartWritten)

View File

@ -469,6 +469,8 @@ contiene una de las que yo imparto. As
// TODO: En resultados de test y de juegos, en preguntas modificadas se podría mostrar la puntuación obtenida en la pregunta (ahora no sale)
// TODO: Al crear un nuevo juego, debería irse a la pantalla de añadir preguntas (la misma opción que sale cuando pulsas en editar un juego existente)
// TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area
// TODO: ¿Añadir dos columnas a resultados de juegos entre "Preguntas contestadas" y "Puntuación total": Preguntas "Correctas" y Preguntas "Erróneas"?
// Problema: sólo es aplicable a tipo test
/*****************************************************************************/
/****************************** Public constants *****************************/
@ -488,13 +490,16 @@ 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.2 (2019-11-21)"
#define Log_PLATFORM_VERSION "SWAD 19.76.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.
// TODO: En cada juego, poder listar los resultados en una tabla como la de resultados globales
Version 19.76.1: Nov 21, 2019 Code refactoring related to vectors. (247023 lines)
Version 19.76: Nov 21, 2019 Code refactoring related to vectors. (247019 lines)
Version 19.75.2: Nov 21, 2019 Fixed bug in enrolment. (247015 lines)
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)

View File

@ -62,7 +62,6 @@ static const bool Enr_ICanAdminOtherUsrs[Rol_NUM_ROLES] =
[Rol_USR ] = false,
[Rol_STD ] = false,
[Rol_NET ] = false,
/* Users who can admin */
[Rol_TCH ] = true,
[Rol_DEG_ADM] = true,

View File

@ -3564,7 +3564,7 @@ static void Fig_GetAndShowFollowStats (void)
extern const char *Txt_Followed;
extern const char *Txt_Followers;
extern const char *Txt_FollowPerFollow[2];
const char *FieldDB[2] =
static const char *FieldDB[2] =
{
"FollowedCod",
"FollowerCod"
@ -4759,17 +4759,17 @@ static void Fig_GetAndShowNumUsrsPerCookies (void)
extern const char *Txt_No_of_users;
extern const char *Txt_PERCENT_of_users;
unsigned i;
char AcceptedInDB[2] =
static const char AcceptedInDB[2] =
{
'N', // false
'Y' // true
};
char *AcceptedClass[2] =
static const char *AcceptedClass[2] =
{
"DAT_RED", // false
"DAT_GREEN" // true
};
char *AcceptedSymbol[2] =
static const char *AcceptedSymbol[2] =
{
"✗", // false
"✓" // true

View File

@ -84,17 +84,9 @@ struct Brw_NumObjects
};
/*****************************************************************************/
/**************************** Internal constants *****************************/
/***************************** Public constants ******************************/
/*****************************************************************************/
static const char *Brw_FileTypeParamName[Brw_NUM_FILE_TYPES] =
{
[Brw_IS_UNKNOWN] = "BrwFFL",
[Brw_IS_FILE ] = "BrwFil", // Do not use Fil_NAME_OF_PARAM_FILENAME_ORG
[Brw_IS_FOLDER ] = "BrwFol",
[Brw_IS_LINK ] = "BrwLnk",
};
// Browsers types for database "files" and "file_browser_size" tables
const Brw_FileBrowser_t Brw_FileBrowserForDB_files[Brw_NUM_TYPES_FILE_BROWSER] =
{
@ -128,6 +120,53 @@ const Brw_FileBrowser_t Brw_FileBrowserForDB_files[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = Brw_ADMI_DOC_PRJ,
[Brw_ADMI_ASS_PRJ] = Brw_ADMI_ASS_PRJ,
};
// Names of root folders
const char *Brw_RootFolderInternalNames[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = "",
[Brw_SHOW_DOC_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_SHOW_MRK_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_DOC_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_ADMI_SHR_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED,
[Brw_ADMI_SHR_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED,
[Brw_ADMI_WRK_USR] = Brw_INTERNAL_NAME_ROOT_FOLDER_WORKS,
[Brw_ADMI_WRK_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_WORKS,
[Brw_ADMI_MRK_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_BRF_USR] = Brw_INTERNAL_NAME_ROOT_FOLDER_BRIEF,
[Brw_SHOW_DOC_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_ADMI_DOC_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_SHOW_MRK_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_MRK_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_ASG_USR] = Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,
[Brw_ADMI_ASG_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,
[Brw_SHOW_DOC_DEG] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_DOC_DEG] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_SHOW_DOC_CTR] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_DOC_CTR] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_SHOW_DOC_INS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_DOC_INS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_SHR_DEG] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES,
[Brw_ADMI_SHR_CTR] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES,
[Brw_ADMI_SHR_INS] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES,
[Brw_ADMI_TCH_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_TEACHERS,
[Brw_ADMI_TCH_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_TEACHERS,
[Brw_ADMI_DOC_PRJ] = Brw_INTERNAL_NAME_ROOT_FOLDER_PROJECT_DOCUMENTS,
[Brw_ADMI_ASS_PRJ] = Brw_INTERNAL_NAME_ROOT_FOLDER_PROJECT_ASSESSMENT,
};
/*****************************************************************************/
/***************************** Private constants *****************************/
/*****************************************************************************/
static const char *Brw_FileTypeParamName[Brw_NUM_FILE_TYPES] =
{
[Brw_IS_UNKNOWN] = "BrwFFL",
[Brw_IS_FILE ] = "BrwFil", // Do not use Fil_NAME_OF_PARAM_FILENAME_ORG
[Brw_IS_FOLDER ] = "BrwFol",
[Brw_IS_LINK ] = "BrwLnk",
};
// Browsers viewable shown in search for documents
static const Brw_FileBrowser_t Brw_FileBrowserForFoundDocs[Brw_NUM_TYPES_FILE_BROWSER] =
{
@ -161,6 +200,7 @@ static const Brw_FileBrowser_t Brw_FileBrowserForFoundDocs[Brw_NUM_TYPES_FILE_BR
[Brw_ADMI_DOC_PRJ] = Brw_ADMI_DOC_PRJ,
[Brw_ADMI_ASS_PRJ] = Brw_ADMI_ASS_PRJ,
};
// Browsers types for database "clipboard" table
static const Brw_FileBrowser_t Brw_FileBrowserForDB_clipboard[Brw_NUM_TYPES_FILE_BROWSER] =
{
@ -194,6 +234,7 @@ static const Brw_FileBrowser_t Brw_FileBrowserForDB_clipboard[Brw_NUM_TYPES_FILE
[Brw_ADMI_DOC_PRJ] = Brw_ADMI_DOC_PRJ,
[Brw_ADMI_ASS_PRJ] = Brw_ADMI_ASS_PRJ,
};
// Browsers types for database "expanded_folders" table
static const Brw_FileBrowser_t Brw_FileBrowserForDB_expanded_folders[Brw_NUM_TYPES_FILE_BROWSER] =
{
@ -227,6 +268,7 @@ static const Brw_FileBrowser_t Brw_FileBrowserForDB_expanded_folders[Brw_NUM_TYP
[Brw_ADMI_DOC_PRJ] = Brw_ADMI_DOC_PRJ,
[Brw_ADMI_ASS_PRJ] = Brw_ADMI_ASS_PRJ,
};
// Browsers types for database "file_browser_last" table
// Assignments and works are stored as one in file_browser_last...
// ...because a user views them at the same time
@ -263,40 +305,6 @@ static const Brw_FileBrowser_t Brw_FileBrowserForDB_file_browser_last[Brw_NUM_TY
[Brw_ADMI_ASS_PRJ] = Brw_ADMI_ASS_PRJ,
};
// Internal names of root folders
const char *Brw_RootFolderInternalNames[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = "",
[Brw_SHOW_DOC_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_SHOW_MRK_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_DOC_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_ADMI_SHR_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED,
[Brw_ADMI_SHR_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED,
[Brw_ADMI_WRK_USR] = Brw_INTERNAL_NAME_ROOT_FOLDER_WORKS,
[Brw_ADMI_WRK_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_WORKS,
[Brw_ADMI_MRK_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_BRF_USR] = Brw_INTERNAL_NAME_ROOT_FOLDER_BRIEF,
[Brw_SHOW_DOC_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_ADMI_DOC_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOWNLOAD,
[Brw_SHOW_MRK_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_MRK_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_MARKS,
[Brw_ADMI_ASG_USR] = Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,
[Brw_ADMI_ASG_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_ASSIGNMENTS,
[Brw_SHOW_DOC_DEG] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_DOC_DEG] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_SHOW_DOC_CTR] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_DOC_CTR] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_SHOW_DOC_INS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_DOC_INS] = Brw_INTERNAL_NAME_ROOT_FOLDER_DOCUMENTS,
[Brw_ADMI_SHR_DEG] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES,
[Brw_ADMI_SHR_CTR] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES,
[Brw_ADMI_SHR_INS] = Brw_INTERNAL_NAME_ROOT_FOLDER_SHARED_FILES,
[Brw_ADMI_TCH_CRS] = Brw_INTERNAL_NAME_ROOT_FOLDER_TEACHERS,
[Brw_ADMI_TCH_GRP] = Brw_INTERNAL_NAME_ROOT_FOLDER_TEACHERS,
[Brw_ADMI_DOC_PRJ] = Brw_INTERNAL_NAME_ROOT_FOLDER_PROJECT_DOCUMENTS,
[Brw_ADMI_ASS_PRJ] = Brw_INTERNAL_NAME_ROOT_FOLDER_PROJECT_ASSESSMENT,
};
static const bool Brw_FileBrowserIsEditable[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = false,
@ -329,6 +337,7 @@ static const bool Brw_FileBrowserIsEditable[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = true,
[Brw_ADMI_ASS_PRJ] = true,
};
static const Act_Action_t Brw_ActSeeAdm[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -394,6 +403,7 @@ static const Act_Action_t Brw_ActFromSeeToAdm[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActUnk,
[Brw_ADMI_ASS_PRJ] = ActUnk,
};
static const Act_Action_t Brw_ActFromAdmToSee[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -459,6 +469,7 @@ static const Act_Action_t Brw_ActChgZone[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActUnk,
[Brw_ADMI_ASS_PRJ] = ActUnk,
};
static const Act_Action_t Brw_ActShow[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -491,6 +502,7 @@ static const Act_Action_t Brw_ActShow[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActUnk,
[Brw_ADMI_ASS_PRJ] = ActUnk,
};
static const Act_Action_t Brw_ActHide[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -523,6 +535,7 @@ static const Act_Action_t Brw_ActHide[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActUnk,
[Brw_ADMI_ASS_PRJ] = ActUnk,
};
static const Act_Action_t Brw_ActReqDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -555,6 +568,7 @@ static const Act_Action_t Brw_ActReqDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActReqDatDocPrj,
[Brw_ADMI_ASS_PRJ] = ActReqDatAssPrj,
};
static const Act_Action_t Brw_ActDowFile[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -587,6 +601,7 @@ static const Act_Action_t Brw_ActDowFile[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActDowDocPrj,
[Brw_ADMI_ASS_PRJ] = ActDowAssPrj,
};
static const Act_Action_t Brw_ActAskRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -619,6 +634,7 @@ static const Act_Action_t Brw_ActAskRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActReqRemFilDocPrj,
[Brw_ADMI_ASS_PRJ] = ActReqRemFilAssPrj,
};
static const Act_Action_t Brw_ActRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -651,6 +667,7 @@ static const Act_Action_t Brw_ActRemoveFile[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActRemFilDocPrj,
[Brw_ADMI_ASS_PRJ] = ActRemFilAssPrj,
};
static const Act_Action_t Brw_ActRemoveFolder[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -683,6 +700,7 @@ static const Act_Action_t Brw_ActRemoveFolder[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActRemFolDocPrj,
[Brw_ADMI_ASS_PRJ] = ActRemFolAssPrj,
};
static const Act_Action_t Brw_ActRemoveFolderNotEmpty[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -715,6 +733,7 @@ static const Act_Action_t Brw_ActRemoveFolderNotEmpty[Brw_NUM_TYPES_FILE_BROWSER
[Brw_ADMI_DOC_PRJ] = ActRemTreDocPrj,
[Brw_ADMI_ASS_PRJ] = ActRemTreAssPrj,
};
static const Act_Action_t Brw_ActCopy[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -747,6 +766,7 @@ static const Act_Action_t Brw_ActCopy[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActCopDocPrj,
[Brw_ADMI_ASS_PRJ] = ActCopAssPrj,
};
static const Act_Action_t Brw_ActPaste[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -779,6 +799,7 @@ static const Act_Action_t Brw_ActPaste[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActPasDocPrj,
[Brw_ADMI_ASS_PRJ] = ActPasAssPrj,
};
static const Act_Action_t Brw_ActFormCreate[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -811,6 +832,7 @@ static const Act_Action_t Brw_ActFormCreate[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActFrmCreDocPrj,
[Brw_ADMI_ASS_PRJ] = ActFrmCreAssPrj,
};
static const Act_Action_t Brw_ActCreateFolder[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -843,6 +865,7 @@ static const Act_Action_t Brw_ActCreateFolder[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActCreFolDocPrj,
[Brw_ADMI_ASS_PRJ] = ActCreFolAssPrj,
};
static const Act_Action_t Brw_ActCreateLink[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -875,6 +898,7 @@ static const Act_Action_t Brw_ActCreateLink[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActCreLnkDocPrj,
[Brw_ADMI_ASS_PRJ] = ActCreLnkAssPrj,
};
static const Act_Action_t Brw_ActRenameFolder[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -907,6 +931,7 @@ static const Act_Action_t Brw_ActRenameFolder[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActRenFolDocPrj,
[Brw_ADMI_ASS_PRJ] = ActRenFolAssPrj,
};
static const Act_Action_t Brw_ActUploadFileDropzone[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -939,6 +964,7 @@ static const Act_Action_t Brw_ActUploadFileDropzone[Brw_NUM_TYPES_FILE_BROWSER]
[Brw_ADMI_DOC_PRJ] = ActRcvFilDocPrjDZ,
[Brw_ADMI_ASS_PRJ] = ActRcvFilAssPrjDZ,
};
static const Act_Action_t Brw_ActUploadFileClassic[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -971,6 +997,7 @@ static const Act_Action_t Brw_ActUploadFileClassic[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActRcvFilDocPrjCla,
[Brw_ADMI_ASS_PRJ] = ActRcvFilAssPrjCla,
};
static const Act_Action_t Brw_ActRefreshAfterUploadFiles[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -1003,6 +1030,7 @@ static const Act_Action_t Brw_ActRefreshAfterUploadFiles[Brw_NUM_TYPES_FILE_BROW
[Brw_ADMI_DOC_PRJ] = ActAdmDocPrj,
[Brw_ADMI_ASS_PRJ] = ActAdmAssPrj,
};
static const Act_Action_t Brw_ActExpandFolder[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -1035,6 +1063,7 @@ static const Act_Action_t Brw_ActExpandFolder[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActExpDocPrj,
[Brw_ADMI_ASS_PRJ] = ActExpAssPrj,
};
static const Act_Action_t Brw_ActContractFolder[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -1067,6 +1096,7 @@ static const Act_Action_t Brw_ActContractFolder[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActConDocPrj,
[Brw_ADMI_ASS_PRJ] = ActConAssPrj,
};
static const Act_Action_t Brw_ActRecDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -1099,6 +1129,7 @@ static const Act_Action_t Brw_ActRecDatFile[Brw_NUM_TYPES_FILE_BROWSER] =
[Brw_ADMI_DOC_PRJ] = ActChgDatDocPrj,
[Brw_ADMI_ASS_PRJ] = ActChgDatAssPrj,
};
static const Act_Action_t Brw_ActZIPFolder[Brw_NUM_TYPES_FILE_BROWSER] =
{
[Brw_UNKNOWN ] = ActUnk,
@ -1208,18 +1239,18 @@ static const Act_Action_t Brw_ActZIPFolder[Brw_NUM_TYPES_FILE_BROWSER] =
#define Brw_MAX_FILES_MARKS_GRP 200
#define Brw_MAX_FOLDS_MARKS_GRP 20
const unsigned long long Brw_MAX_QUOTA_BRIEF[Rol_NUM_ROLES] = // MaxRole is used
static const unsigned long long Brw_MAX_QUOTA_BRIEF[Rol_NUM_ROLES] = // MaxRole is used
{
0, // Rol_UNK
0, // Rol_GST
0, // Rol_USR
32ULL*Brw_GiB, // Rol_STD
32ULL*Brw_GiB, // Rol_NET
64ULL*Brw_GiB, // Rol_TCH
0, // Rol_DEG_ADM
0, // Rol_CTR_ADM
0, // Rol_INS_ADM
0, // Rol_SYS_ADM
[Rol_UNK ] = 0,
[Rol_GST ] = 0,
[Rol_USR ] = 0,
[Rol_STD ] = 32ULL*Brw_GiB,
[Rol_NET ] = 32ULL*Brw_GiB,
[Rol_TCH ] = 64ULL*Brw_GiB,
[Rol_DEG_ADM] = 0,
[Rol_CTR_ADM] = 0,
[Rol_INS_ADM] = 0,
[Rol_SYS_ADM] = 0,
};
#define Brw_MAX_FILES_BRIEF 5000
#define Brw_MAX_FOLDS_BRIEF 1000
@ -6630,10 +6661,7 @@ void Brw_RemFolderFromTree (void)
Gbl.FileBrowser.FilFolLnk.Full))
{
if (errno == ENOTEMPTY) // The directory is not empty
{
Brw_AskConfirmRemoveFolderNotEmpty ();
// Gbl.Alert.Txt[0] = '\0'; // TODO: Remove this line
}
else // The directory is empty
Lay_ShowErrorAndExit ("Can not remove folder.");
}
@ -6812,10 +6840,10 @@ static void Brw_WriteCurrentClipboard (void)
char FileNameToShow[NAME_MAX + 1];
const char *TxtFileType[Brw_NUM_FILE_TYPES] =
{
Txt_file_folder, // Brw_IS_UNKNOWN
Txt_file, // Brw_IS_FILE
Txt_folder, // Brw_IS_FOLDER
Txt_link, // Brw_IS_LINK
[Brw_IS_UNKNOWN] = Txt_file_folder,
[Brw_IS_FILE ] = Txt_file,
[Brw_IS_FOLDER ] = Txt_folder,
[Brw_IS_LINK ] = Txt_link,
};
switch (Gbl.FileBrowser.Clipboard.FileBrowser)
@ -7048,13 +7076,13 @@ static bool Brw_GetMyClipboard (void)
unsigned UnsignedNum;
/***** Clear clipboard data *****/
Gbl.FileBrowser.Clipboard.FileBrowser = Brw_UNKNOWN;
Gbl.FileBrowser.Clipboard.Cod = -1L;
Gbl.FileBrowser.Clipboard.WorksUsrCod = -1L;
Gbl.FileBrowser.Clipboard.FileBrowser = Brw_UNKNOWN;
Gbl.FileBrowser.Clipboard.Cod = -1L;
Gbl.FileBrowser.Clipboard.WorksUsrCod = -1L;
Gbl.FileBrowser.Clipboard.FilFolLnk.Type = Brw_IS_UNKNOWN;
Gbl.FileBrowser.Clipboard.FilFolLnk.Full[0] = '\0';
Gbl.FileBrowser.Clipboard.FilFolLnk.Full[0] = '\0';
Gbl.FileBrowser.Clipboard.FilFolLnk.Name[0] = '\0';
Gbl.FileBrowser.Clipboard.Level = 0;
Gbl.FileBrowser.Clipboard.Level = 0;
/***** Get my current clipboard from database *****/
NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get source of copy"
@ -10560,18 +10588,18 @@ void Brw_GetFileMetadataByCod (struct FileMetadata *FileMetadata)
}
else
{
FileMetadata->FilCod = -1L;
FileMetadata->FileBrowser = Brw_UNKNOWN;
FileMetadata->Cod = -1L;
FileMetadata->ZoneUsrCod = -1L;
FileMetadata->PublisherUsrCod = -1L;
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN;
FileMetadata->FilFolLnk.Full[0] = '\0';
FileMetadata->FilCod = -1L;
FileMetadata->FileBrowser = Brw_UNKNOWN;
FileMetadata->Cod = -1L;
FileMetadata->ZoneUsrCod = -1L;
FileMetadata->PublisherUsrCod = -1L;
FileMetadata->FilFolLnk.Type = Brw_IS_UNKNOWN;
FileMetadata->FilFolLnk.Full[0] = '\0';
FileMetadata->FilFolLnk.Path[0] = '\0';
FileMetadata->FilFolLnk.Name[0] = '\0';
FileMetadata->IsHidden = false;
FileMetadata->IsPublic = false;
FileMetadata->License = Brw_LICENSE_DEFAULT;
FileMetadata->FilFolLnk.Name[0] = '\0';
FileMetadata->IsHidden = false;
FileMetadata->IsPublic = false;
FileMetadata->License = Brw_LICENSE_DEFAULT;
}
/***** Free structure that stores the query result *****/

View File

@ -55,204 +55,218 @@
extern struct Globals Gbl;
/*****************************************************************************/
/************************ Public constants and types *************************/
/*****************************************************************************/
const Act_Action_t For_ActionsSeeFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActSeeForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActSeeForCrsTch,
[For_FORUM_DEGREE_USRS] = ActSeeForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActSeeForDegTch,
[For_FORUM_CENTRE_USRS] = ActSeeForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActSeeForCtrTch,
[For_FORUM_INSTIT_USRS] = ActSeeForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActSeeForInsTch,
[For_FORUM_GLOBAL_USRS] = ActSeeForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActSeeForGenTch,
[For_FORUM__SWAD__USRS] = ActSeeForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActSeeForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsSeePstFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActSeePstForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActSeePstForCrsTch,
[For_FORUM_DEGREE_USRS] = ActSeePstForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActSeePstForDegTch,
[For_FORUM_CENTRE_USRS] = ActSeePstForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActSeePstForCtrTch,
[For_FORUM_INSTIT_USRS] = ActSeePstForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActSeePstForInsTch,
[For_FORUM_GLOBAL_USRS] = ActSeePstForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActSeePstForGenTch,
[For_FORUM__SWAD__USRS] = ActSeePstForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActSeePstForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsRecThrFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActRcvThrForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActRcvThrForCrsTch,
[For_FORUM_DEGREE_USRS] = ActRcvThrForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActRcvThrForDegTch,
[For_FORUM_CENTRE_USRS] = ActRcvThrForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActRcvThrForCtrTch,
[For_FORUM_INSTIT_USRS] = ActRcvThrForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActRcvThrForInsTch,
[For_FORUM_GLOBAL_USRS] = ActRcvThrForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActRcvThrForGenTch,
[For_FORUM__SWAD__USRS] = ActRcvThrForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActRcvThrForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsRecRepFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActRcvRepForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActRcvRepForCrsTch,
[For_FORUM_DEGREE_USRS] = ActRcvRepForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActRcvRepForDegTch,
[For_FORUM_CENTRE_USRS] = ActRcvRepForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActRcvRepForCtrTch,
[For_FORUM_INSTIT_USRS] = ActRcvRepForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActRcvRepForInsTch,
[For_FORUM_GLOBAL_USRS] = ActRcvRepForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActRcvRepForGenTch,
[For_FORUM__SWAD__USRS] = ActRcvRepForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActRcvRepForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsReqDelThr[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActReqDelThrCrsUsr,
[For_FORUM_COURSE_TCHS] = ActReqDelThrCrsTch,
[For_FORUM_DEGREE_USRS] = ActReqDelThrDegUsr,
[For_FORUM_DEGREE_TCHS] = ActReqDelThrDegTch,
[For_FORUM_CENTRE_USRS] = ActReqDelThrCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActReqDelThrCtrTch,
[For_FORUM_INSTIT_USRS] = ActReqDelThrInsUsr,
[For_FORUM_INSTIT_TCHS] = ActReqDelThrInsTch,
[For_FORUM_GLOBAL_USRS] = ActReqDelThrGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActReqDelThrGenTch,
[For_FORUM__SWAD__USRS] = ActReqDelThrSWAUsr,
[For_FORUM__SWAD__TCHS] = ActReqDelThrSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsDelThrFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActDelThrForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActDelThrForCrsTch,
[For_FORUM_DEGREE_USRS] = ActDelThrForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActDelThrForDegTch,
[For_FORUM_CENTRE_USRS] = ActDelThrForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActDelThrForCtrTch,
[For_FORUM_INSTIT_USRS] = ActDelThrForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActDelThrForInsTch,
[For_FORUM_GLOBAL_USRS] = ActDelThrForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActDelThrForGenTch,
[For_FORUM__SWAD__USRS] = ActDelThrForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActDelThrForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsCutThrFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActCutThrForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActCutThrForCrsTch,
[For_FORUM_DEGREE_USRS] = ActCutThrForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActCutThrForDegTch,
[For_FORUM_CENTRE_USRS] = ActCutThrForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActCutThrForCtrTch,
[For_FORUM_INSTIT_USRS] = ActCutThrForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActCutThrForInsTch,
[For_FORUM_GLOBAL_USRS] = ActCutThrForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActCutThrForGenTch,
[For_FORUM__SWAD__USRS] = ActCutThrForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActCutThrForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsPasThrFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActPasThrForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActPasThrForCrsTch,
[For_FORUM_DEGREE_USRS] = ActPasThrForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActPasThrForDegTch,
[For_FORUM_CENTRE_USRS] = ActPasThrForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActPasThrForCtrTch,
[For_FORUM_INSTIT_USRS] = ActPasThrForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActPasThrForInsTch,
[For_FORUM_GLOBAL_USRS] = ActPasThrForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActPasThrForGenTch,
[For_FORUM__SWAD__USRS] = ActPasThrForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActPasThrForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsDelPstFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActDelPstForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActDelPstForCrsTch,
[For_FORUM_DEGREE_USRS] = ActDelPstForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActDelPstForDegTch,
[For_FORUM_CENTRE_USRS] = ActDelPstForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActDelPstForCtrTch,
[For_FORUM_INSTIT_USRS] = ActDelPstForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActDelPstForInsTch,
[For_FORUM_GLOBAL_USRS] = ActDelPstForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActDelPstForGenTch,
[For_FORUM__SWAD__USRS] = ActDelPstForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActDelPstForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsEnbPstFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActEnbPstForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActEnbPstForCrsTch,
[For_FORUM_DEGREE_USRS] = ActEnbPstForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActEnbPstForDegTch,
[For_FORUM_CENTRE_USRS] = ActEnbPstForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActEnbPstForCtrTch,
[For_FORUM_INSTIT_USRS] = ActEnbPstForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActEnbPstForInsTch,
[For_FORUM_GLOBAL_USRS] = ActEnbPstForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActEnbPstForGenTch,
[For_FORUM__SWAD__USRS] = ActEnbPstForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActEnbPstForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
const Act_Action_t For_ActionsDisPstFor[For_NUM_TYPES_FORUM] =
{
[For_FORUM_COURSE_USRS] = ActDisPstForCrsUsr,
[For_FORUM_COURSE_TCHS] = ActDisPstForCrsTch,
[For_FORUM_DEGREE_USRS] = ActDisPstForDegUsr,
[For_FORUM_DEGREE_TCHS] = ActDisPstForDegTch,
[For_FORUM_CENTRE_USRS] = ActDisPstForCtrUsr,
[For_FORUM_CENTRE_TCHS] = ActDisPstForCtrTch,
[For_FORUM_INSTIT_USRS] = ActDisPstForInsUsr,
[For_FORUM_INSTIT_TCHS] = ActDisPstForInsTch,
[For_FORUM_GLOBAL_USRS] = ActDisPstForGenUsr,
[For_FORUM_GLOBAL_TCHS] = ActDisPstForGenTch,
[For_FORUM__SWAD__USRS] = ActDisPstForSWAUsr,
[For_FORUM__SWAD__TCHS] = ActDisPstForSWATch,
[For_FORUM_UNKNOWN ] = ActSeeFor,
};
/*****************************************************************************/
/*********************** Private constants and types *************************/
/*****************************************************************************/
#define For_FORUM_MAX_LEVELS 4
const unsigned PermissionThreadDeletion[For_NUM_TYPES_FORUM] =
static const unsigned PermissionThreadDeletion[For_NUM_TYPES_FORUM] =
{
0x3F0, // For_FORUM_COURSE_USRS
0x3F0, // For_FORUM_COURSE_TCHS
0x3E0, // For_FORUM_DEGREE_USRS
0x3E0, // For_FORUM_DEGREE_TCHS
0x3C0, // For_FORUM_CENTRE_USRS
0x3C0, // For_FORUM_CENTRE_TCHS
0x380, // For_FORUM_INSTIT_USRS
0x380, // For_FORUM_INSTIT_TCHS
0x300, // For_FORUM_GLOBAL_USRS
0x300, // For_FORUM_GLOBAL_TCHS
0x300, // For_FORUM__SWAD__USRS
0x300, // For_FORUM__SWAD__TCHS
0x000, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsSeeFor[For_NUM_TYPES_FORUM] =
{
ActSeeForCrsUsr,
ActSeeForCrsTch,
ActSeeForDegUsr,
ActSeeForDegTch,
ActSeeForCtrUsr,
ActSeeForCtrTch,
ActSeeForInsUsr,
ActSeeForInsTch,
ActSeeForGenUsr,
ActSeeForGenTch,
ActSeeForSWAUsr,
ActSeeForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsSeePstFor[For_NUM_TYPES_FORUM] =
{
ActSeePstForCrsUsr,
ActSeePstForCrsTch,
ActSeePstForDegUsr,
ActSeePstForDegTch,
ActSeePstForCtrUsr,
ActSeePstForCtrTch,
ActSeePstForInsUsr,
ActSeePstForInsTch,
ActSeePstForGenUsr,
ActSeePstForGenTch,
ActSeePstForSWAUsr,
ActSeePstForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsRecThrFor[For_NUM_TYPES_FORUM] =
{
ActRcvThrForCrsUsr,
ActRcvThrForCrsTch,
ActRcvThrForDegUsr,
ActRcvThrForDegTch,
ActRcvThrForCtrUsr,
ActRcvThrForCtrTch,
ActRcvThrForInsUsr,
ActRcvThrForInsTch,
ActRcvThrForGenUsr,
ActRcvThrForGenTch,
ActRcvThrForSWAUsr,
ActRcvThrForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsRecRepFor[For_NUM_TYPES_FORUM] =
{
ActRcvRepForCrsUsr,
ActRcvRepForCrsTch,
ActRcvRepForDegUsr,
ActRcvRepForDegTch,
ActRcvRepForCtrUsr,
ActRcvRepForCtrTch,
ActRcvRepForInsUsr,
ActRcvRepForInsTch,
ActRcvRepForGenUsr,
ActRcvRepForGenTch,
ActRcvRepForSWAUsr,
ActRcvRepForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsReqDelThr[For_NUM_TYPES_FORUM] =
{
ActReqDelThrCrsUsr,
ActReqDelThrCrsTch,
ActReqDelThrDegUsr,
ActReqDelThrDegTch,
ActReqDelThrCtrUsr,
ActReqDelThrCtrTch,
ActReqDelThrInsUsr,
ActReqDelThrInsTch,
ActReqDelThrGenUsr,
ActReqDelThrGenTch,
ActReqDelThrSWAUsr,
ActReqDelThrSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsDelThrFor[For_NUM_TYPES_FORUM] =
{
ActDelThrForCrsUsr,
ActDelThrForCrsTch,
ActDelThrForDegUsr,
ActDelThrForDegTch,
ActDelThrForCtrUsr,
ActDelThrForCtrTch,
ActDelThrForInsUsr,
ActDelThrForInsTch,
ActDelThrForGenUsr,
ActDelThrForGenTch,
ActDelThrForSWAUsr,
ActDelThrForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsCutThrFor[For_NUM_TYPES_FORUM] =
{
ActCutThrForCrsUsr,
ActCutThrForCrsTch,
ActCutThrForDegUsr,
ActCutThrForDegTch,
ActCutThrForCtrUsr,
ActCutThrForCtrTch,
ActCutThrForInsUsr,
ActCutThrForInsTch,
ActCutThrForGenUsr,
ActCutThrForGenTch,
ActCutThrForSWAUsr,
ActCutThrForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsPasThrFor[For_NUM_TYPES_FORUM] =
{
ActPasThrForCrsUsr,
ActPasThrForCrsTch,
ActPasThrForDegUsr,
ActPasThrForDegTch,
ActPasThrForCtrUsr,
ActPasThrForCtrTch,
ActPasThrForInsUsr,
ActPasThrForInsTch,
ActPasThrForGenUsr,
ActPasThrForGenTch,
ActPasThrForSWAUsr,
ActPasThrForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsDelPstFor[For_NUM_TYPES_FORUM] =
{
ActDelPstForCrsUsr,
ActDelPstForCrsTch,
ActDelPstForDegUsr,
ActDelPstForDegTch,
ActDelPstForCtrUsr,
ActDelPstForCtrTch,
ActDelPstForInsUsr,
ActDelPstForInsTch,
ActDelPstForGenUsr,
ActDelPstForGenTch,
ActDelPstForSWAUsr,
ActDelPstForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsEnbPstFor[For_NUM_TYPES_FORUM] =
{
ActEnbPstForCrsUsr,
ActEnbPstForCrsTch,
ActEnbPstForDegUsr,
ActEnbPstForDegTch,
ActEnbPstForCtrUsr,
ActEnbPstForCtrTch,
ActEnbPstForInsUsr,
ActEnbPstForInsTch,
ActEnbPstForGenUsr,
ActEnbPstForGenTch,
ActEnbPstForSWAUsr,
ActEnbPstForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
};
const Act_Action_t For_ActionsDisPstFor[For_NUM_TYPES_FORUM] =
{
ActDisPstForCrsUsr,
ActDisPstForCrsTch,
ActDisPstForDegUsr,
ActDisPstForDegTch,
ActDisPstForCtrUsr,
ActDisPstForCtrTch,
ActDisPstForInsUsr,
ActDisPstForInsTch,
ActDisPstForGenUsr,
ActDisPstForGenTch,
ActDisPstForSWAUsr,
ActDisPstForSWATch,
ActSeeFor, // For_FORUM_UNKNOWN
[For_FORUM_COURSE_USRS] = 0x3F0,
[For_FORUM_COURSE_TCHS] = 0x3F0,
[For_FORUM_DEGREE_USRS] = 0x3E0,
[For_FORUM_DEGREE_TCHS] = 0x3E0,
[For_FORUM_CENTRE_USRS] = 0x3C0,
[For_FORUM_CENTRE_TCHS] = 0x3C0,
[For_FORUM_INSTIT_USRS] = 0x380,
[For_FORUM_INSTIT_TCHS] = 0x380,
[For_FORUM_GLOBAL_USRS] = 0x300,
[For_FORUM_GLOBAL_TCHS] = 0x300,
[For_FORUM__SWAD__USRS] = 0x300,
[For_FORUM__SWAD__TCHS] = 0x300,
[For_FORUM_UNKNOWN ] = 0x000,
};
// Links to go to <section>

View File

@ -63,92 +63,76 @@ extern struct Globals Gbl;
const char *Ntf_WSNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
{
[Ntf_EVENT_UNKNOWN ] = "unknown",
/* Start tab */
[Ntf_EVENT_TIMELINE_COMMENT ] = "timelineComment",
[Ntf_EVENT_TIMELINE_FAV ] = "timelineFav",
[Ntf_EVENT_TIMELINE_SHARE ] = "timelineShare",
[Ntf_EVENT_TIMELINE_MENTION ] = "timelineMention",
[Ntf_EVENT_FOLLOWER ] = "follower",
/* System tab */
/* Country tab */
/* Institution tab */
/* Centre tab */
/* Degree tab */
/* Course tab */
/* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "assignment",
[Ntf_EVENT_SURVEY ] = "survey",
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "examAnnouncement",
/* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "documentFile",
[Ntf_EVENT_TEACHERS_FILE ] = "teachersFile",
[Ntf_EVENT_SHARED_FILE ] = "sharedFile",
[Ntf_EVENT_MARKS_FILE ] = "marksFile",
/* Users tab */
[Ntf_EVENT_ENROLMENT_STD ] = "enrollmentStudent",
[Ntf_EVENT_ENROLMENT_NET ] = "enrolmentNonEditingTeacher",
[Ntf_EVENT_ENROLMENT_TCH ] = "enrollmentTeacher",
[Ntf_EVENT_ENROLMENT_REQUEST] = "enrollmentRequest",
/* Messages tab */
[Ntf_EVENT_NOTICE ] = "notice",
[Ntf_EVENT_FORUM_POST_COURSE] = "forumPostCourse",
[Ntf_EVENT_FORUM_REPLY ] = "forumReply",
[Ntf_EVENT_MESSAGE ] = "message",
/* Analytics tab */
/* Profile tab */
};
static const Act_Action_t Ntf_DefaultActions[Ntf_NUM_NOTIFY_EVENTS] =
{
[Ntf_EVENT_UNKNOWN ] = ActUnk,
/* Start tab */
[Ntf_EVENT_TIMELINE_COMMENT ] = ActSeeSocTmlGbl,
[Ntf_EVENT_TIMELINE_FAV ] = ActSeeSocTmlGbl,
[Ntf_EVENT_TIMELINE_SHARE ] = ActSeeSocTmlGbl,
[Ntf_EVENT_TIMELINE_MENTION ] = ActSeeSocTmlGbl,
[Ntf_EVENT_FOLLOWER ] = ActSeeFlr,
/* System tab */
/* Country tab */
/* Institution tab */
/* Centre tab */
/* Degree tab */
/* Course tab */
/* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = ActSeeAsg,
[Ntf_EVENT_SURVEY ] = ActSeeAllSvy,
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = ActSeeAllExaAnn,
/* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = ActSeeAdmDocCrsGrp,
[Ntf_EVENT_TEACHERS_FILE ] = ActAdmTchCrsGrp,
[Ntf_EVENT_SHARED_FILE ] = ActAdmShaCrsGrp,
[Ntf_EVENT_MARKS_FILE ] = ActSeeAdmMrk,
/* Users tab */
[Ntf_EVENT_ENROLMENT_STD ] = ActReqAccEnrStd,
[Ntf_EVENT_ENROLMENT_NET ] = ActReqAccEnrNET,
[Ntf_EVENT_ENROLMENT_TCH ] = ActReqAccEnrTch,
[Ntf_EVENT_ENROLMENT_REQUEST] = ActSeeSignUpReq,
/* Messages tab */
[Ntf_EVENT_NOTICE ] = ActSeeOneNot,
[Ntf_EVENT_FORUM_POST_COURSE] = ActSeeFor,
[Ntf_EVENT_FORUM_REPLY ] = ActSeeFor,
[Ntf_EVENT_MESSAGE ] = ActExpRcvMsg,
/* Analytics tab */
/* Profile tab */
};
@ -160,46 +144,38 @@ static const Act_Action_t Ntf_DefaultActions[Ntf_NUM_NOTIFY_EVENTS] =
static const char *Ntf_ParamNotifMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
{
[Ntf_EVENT_UNKNOWN ] = "NotifyNtfEventUnknown",
/* Start tab */
[Ntf_EVENT_TIMELINE_COMMENT ] = "NotifyNtfEventTimelineComment",
[Ntf_EVENT_TIMELINE_FAV ] = "NotifyNtfEventTimelineFav",
[Ntf_EVENT_TIMELINE_SHARE ] = "NotifyNtfEventTimelineShare",
[Ntf_EVENT_TIMELINE_MENTION ] = "NotifyNtfEventTimelineMention",
[Ntf_EVENT_FOLLOWER ] = "NotifyNtfEventFollower",
/* System tab */
/* Country tab */
/* Institution tab */
/* Centre tab */
/* Degree tab */
/* Course tab */
/* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "NotifyNtfEventAssignment",
[Ntf_EVENT_SURVEY ] = "NotifyNtfEventSurvey",
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "NotifyNtfEventExamAnnouncement",
/* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "NotifyNtfEventDocumentFile",
[Ntf_EVENT_TEACHERS_FILE ] = "NotifyNtfEventTeachersFile",
[Ntf_EVENT_SHARED_FILE ] = "NotifyNtfEventSharedFile",
[Ntf_EVENT_MARKS_FILE ] = "NotifyNtfEventMarksFile",
/* Messages tab */
[Ntf_EVENT_NOTICE ] = "NotifyNtfEventNotice",
[Ntf_EVENT_FORUM_POST_COURSE] = "NotifyNtfEventForumPostCourse",
[Ntf_EVENT_FORUM_REPLY ] = "NotifyNtfEventForumReply",
[Ntf_EVENT_MESSAGE ] = "NotifyNtfEventMessage",
/* Users tab */
[Ntf_EVENT_ENROLMENT_STD ] = "NotifyNtfEventEnrolmentStudent",
[Ntf_EVENT_ENROLMENT_NET ] = "NotifyNtfEventEnrolmentNonEditingTeacher",
[Ntf_EVENT_ENROLMENT_TCH ] = "NotifyNtfEventEnrolmentTeacher",
[Ntf_EVENT_ENROLMENT_REQUEST] = "NotifyNtfEventEnrolmentRequest",
/* Analytics tab */
/* Profile tab */
};
@ -207,46 +183,38 @@ static const char *Ntf_ParamNotifMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
static const char *Ntf_ParamEmailMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
{
[Ntf_EVENT_UNKNOWN ] = "EmailNtfEventUnknown",
/* Start tab */
[Ntf_EVENT_TIMELINE_COMMENT ] = "EmailNtfEventTimelineComment",
[Ntf_EVENT_TIMELINE_FAV ] = "EmailNtfEventTimelineFav",
[Ntf_EVENT_TIMELINE_SHARE ] = "EmailNtfEventTimelineShare",
[Ntf_EVENT_TIMELINE_MENTION ] = "EmailNtfEventTimelineMention",
[Ntf_EVENT_FOLLOWER ] = "EmailNtfEventSocialFollower",
/* System tab */
/* Country tab */
/* Institution tab */
/* Centre tab */
/* Degree tab */
/* Course tab */
/* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "EmailNtfEventAssignment",
[Ntf_EVENT_SURVEY ] = "EmailNtfEventSurvey",
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "EmailNtfEventExamAnnouncement",
/* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "EmailNtfEventDocumentFile",
[Ntf_EVENT_TEACHERS_FILE ] = "EmailNtfEventTeachersFile",
[Ntf_EVENT_SHARED_FILE ] = "EmailNtfEventSharedFile",
[Ntf_EVENT_MARKS_FILE ] = "EmailNtfEventMarksFile",
/* Messages tab */
[Ntf_EVENT_NOTICE ] = "EmailNtfEventNotice",
[Ntf_EVENT_FORUM_POST_COURSE] = "EmailNtfEventForumPostCourse",
[Ntf_EVENT_FORUM_REPLY ] = "EmailNtfEventForumReply",
[Ntf_EVENT_MESSAGE ] = "EmailNtfEventMessage",
/* Users tab */
[Ntf_EVENT_ENROLMENT_STD ] = "EmailNtfEventEnrolmentStudent",
[Ntf_EVENT_ENROLMENT_NET ] = "EmailNtfEventEnrolmentNonEditingTeacher",
[Ntf_EVENT_ENROLMENT_TCH ] = "EmailNtfEventEnrolmentTeacher",
[Ntf_EVENT_ENROLMENT_REQUEST] = "EmailNtfEventEnrolmentRequest",
/* Statistics tab */
/* Analytics tab */
/* Profile tab */
};
@ -254,46 +222,38 @@ static const char *Ntf_ParamEmailMeAboutNotifyEvents[Ntf_NUM_NOTIFY_EVENTS] =
static const char *Ntf_Icons[Ntf_NUM_NOTIFY_EVENTS] =
{
[Ntf_EVENT_UNKNOWN ] = "question.svg",
/* Start tab */
[Ntf_EVENT_TIMELINE_COMMENT ] = "comment-dots.svg",
[Ntf_EVENT_TIMELINE_FAV ] = "star.svg",
[Ntf_EVENT_TIMELINE_SHARE ] = "share-alt.svg",
[Ntf_EVENT_TIMELINE_MENTION ] = "at.svg",
[Ntf_EVENT_FOLLOWER ] = "user-plus.svg",
/* System tab */
/* Country tab */
/* Institution tab */
/* Centre tab */
/* Degree tab */
/* Course tab */
/* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = "edit.svg",
[Ntf_EVENT_SURVEY ] = "poll.svg",
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = "bullhorn.svg",
/* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = "file.svg",
[Ntf_EVENT_TEACHERS_FILE ] = "file.svg",
[Ntf_EVENT_SHARED_FILE ] = "file.svg",
[Ntf_EVENT_MARKS_FILE ] = "clipboard-list.svg",
/* Messages tab */
[Ntf_EVENT_NOTICE ] = "sticky-note.svg",
[Ntf_EVENT_FORUM_POST_COURSE] = "comments.svg",
[Ntf_EVENT_FORUM_REPLY ] = "comments.svg",
[Ntf_EVENT_MESSAGE ] = "envelope.svg",
/* Users tab */
[Ntf_EVENT_ENROLMENT_STD ] = "user.svg",
[Ntf_EVENT_ENROLMENT_NET ] = "user-tie.svg",
[Ntf_EVENT_ENROLMENT_TCH ] = "user-tie.svg",
[Ntf_EVENT_ENROLMENT_REQUEST] = "hand-point-up.svg",
/* Statistics tab */
/* Analytics tab */
/* Profile tab */
};

View File

@ -54,48 +54,39 @@
typedef enum // TODO: Change numbers (also in database)!!!!!!!!!!!!!!
{
Ntf_EVENT_UNKNOWN = 0,
/* Start tab */
Ntf_EVENT_TIMELINE_COMMENT = 10, // New comment to one of my social publishings (notes or comments)
Ntf_EVENT_TIMELINE_FAV = 11, // New fav of one of my social publishings (notes or comments)
Ntf_EVENT_TIMELINE_SHARE = 12, // New sharing of one of my social notes
Ntf_EVENT_TIMELINE_MENTION = 13, // New mention
Ntf_EVENT_FOLLOWER = 14,
/* System tab */
/* Country tab */
/* Institution tab */
/* Centre tab */
/* Degree tab */
/* Course tab */
/* Assessment tab */
Ntf_EVENT_ASSIGNMENT = 4,
Ntf_EVENT_SURVEY = 19,
Ntf_EVENT_EXAM_ANNOUNCEMENT = 5,
/* Files tab */
Ntf_EVENT_DOCUMENT_FILE = 1,
Ntf_EVENT_TEACHERS_FILE = 2,
Ntf_EVENT_SHARED_FILE = 3,
Ntf_EVENT_MARKS_FILE = 6,
/* Users tab */
Ntf_EVENT_ENROLMENT_STD = 7,
Ntf_EVENT_ENROLMENT_NET = 20,
Ntf_EVENT_ENROLMENT_TCH = 8,
Ntf_EVENT_ENROLMENT_REQUEST = 9,
/* Messages tab */
Ntf_EVENT_NOTICE = 17,
Ntf_EVENT_FORUM_POST_COURSE = 15, // New post in forums of my courses
Ntf_EVENT_FORUM_REPLY = 16, // New reply to one of my posts in any forum
Ntf_EVENT_MESSAGE = 18,
/* Analytics tab */
/* Profile tab */
} Ntf_NotifyEvent_t;
typedef enum

View File

@ -341,49 +341,41 @@ void TL_ShowTimelineGbl2 (void)
struct TL_Note SocNot;
struct UsrData UsrDat;
Ntf_NotifyEvent_t NotifyEvent;
const TL_TopMessage_t TopMessages[Ntf_NUM_NOTIFY_EVENTS] =
static const TL_TopMessage_t TopMessages[Ntf_NUM_NOTIFY_EVENTS] =
{
[Ntf_EVENT_UNKNOWN ] = TL_TOP_MESSAGE_NONE,
/* Start tab */
[Ntf_EVENT_TIMELINE_COMMENT ] = TL_TOP_MESSAGE_COMMENTED,
[Ntf_EVENT_TIMELINE_FAV ] = TL_TOP_MESSAGE_FAVED,
[Ntf_EVENT_TIMELINE_SHARE ] = TL_TOP_MESSAGE_SHARED,
[Ntf_EVENT_TIMELINE_MENTION ] = TL_TOP_MESSAGE_MENTIONED,
[Ntf_EVENT_FOLLOWER ] = TL_TOP_MESSAGE_NONE,
/* System tab */
/* Country tab */
/* Institution tab */
/* Centre tab */
/* Degree tab */
/* Course tab */
/* Assessment tab */
[Ntf_EVENT_ASSIGNMENT ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_SURVEY ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_EXAM_ANNOUNCEMENT] = TL_TOP_MESSAGE_NONE,
/* Files tab */
[Ntf_EVENT_DOCUMENT_FILE ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_TEACHERS_FILE ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_SHARED_FILE ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_MARKS_FILE ] = TL_TOP_MESSAGE_NONE,
/* Users tab */
[Ntf_EVENT_ENROLMENT_STD ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_ENROLMENT_NET ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_ENROLMENT_TCH ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_ENROLMENT_REQUEST] = TL_TOP_MESSAGE_NONE,
/* Messages tab */
[Ntf_EVENT_NOTICE ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_FORUM_POST_COURSE] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_FORUM_REPLY ] = TL_TOP_MESSAGE_NONE,
[Ntf_EVENT_MESSAGE ] = TL_TOP_MESSAGE_NONE,
/* Analytics tab */
/* Profile tab */
};
@ -1871,79 +1863,57 @@ static void TL_PutFormGoToAction (const struct TL_Note *SocNot)
extern const char *Txt_not_available;
char *Class;
char *Anchor = NULL;
const Act_Action_t TL_DefaultActions[TL_NUM_NOTE_TYPES] =
static const Act_Action_t TL_DefaultActions[TL_NUM_NOTE_TYPES] =
{
ActUnk, // TL_NOTE_UNKNOWN
/* Institution tab */
ActReqDatSeeDocIns, // TL_NOTE_INS_DOC_PUB_FILE
ActReqDatShaIns, // TL_NOTE_INS_SHA_PUB_FILE
/* Centre tab */
ActReqDatSeeDocCtr, // TL_NOTE_CTR_DOC_PUB_FILE
ActReqDatShaCtr, // TL_NOTE_CTR_SHA_PUB_FILE
/* Degree tab */
ActReqDatSeeDocDeg, // TL_NOTE_DEG_DOC_PUB_FILE
ActReqDatShaDeg, // TL_NOTE_DEG_SHA_PUB_FILE
/* Course tab */
ActReqDatSeeDocCrs, // TL_NOTE_CRS_DOC_PUB_FILE
ActReqDatShaCrs, // TL_NOTE_CRS_SHA_PUB_FILE
/* Assessment tab */
ActSeeOneExaAnn, // TL_NOTE_EXAM_ANNOUNCEMENT
/* Users tab */
[TL_NOTE_UNKNOWN ] = ActUnk,
/* Start tab */
ActUnk, // TL_NOTE_SOCIAL_POST (action not used) // TODO: Move to start tab
[TL_NOTE_POST ] = ActUnk, // action not used
/* Institution tab */
[TL_NOTE_INS_DOC_PUB_FILE ] = ActReqDatSeeDocIns,
[TL_NOTE_INS_SHA_PUB_FILE ] = ActReqDatShaIns,
/* Centre tab */
[TL_NOTE_CTR_DOC_PUB_FILE ] = ActReqDatSeeDocCtr,
[TL_NOTE_CTR_SHA_PUB_FILE ] = ActReqDatShaCtr,
/* Degree tab */
[TL_NOTE_DEG_DOC_PUB_FILE ] = ActReqDatSeeDocDeg,
[TL_NOTE_DEG_SHA_PUB_FILE ] = ActReqDatShaDeg,
/* Course tab */
[TL_NOTE_CRS_DOC_PUB_FILE ] = ActReqDatSeeDocCrs,
[TL_NOTE_CRS_SHA_PUB_FILE ] = ActReqDatShaCrs,
/* Assessment tab */
[TL_NOTE_EXAM_ANNOUNCEMENT] = ActSeeOneExaAnn,
/* Users tab */
/* Messages tab */
ActSeeFor, // TL_NOTE_FORUM_POST // TODO: Move down
ActSeeOneNot, // TL_NOTE_NOTICE
/* Statistics tab */
[TL_NOTE_NOTICE ] = ActSeeOneNot,
[TL_NOTE_FORUM_POST ] = ActSeeFor,
/* Analytics tab */
/* Profile tab */
};
const char *TL_Icons[TL_NUM_NOTE_TYPES] =
static const char *TL_Icons[TL_NUM_NOTE_TYPES] =
{
NULL, // TL_NOTE_UNKNOWN
/* Institution tab */
"file.svg", // TL_NOTE_INS_DOC_PUB_FILE
"file.svg", // TL_NOTE_INS_SHA_PUB_FILE
/* Centre tab */
"file.svg", // TL_NOTE_CTR_DOC_PUB_FILE
"file.svg", // TL_NOTE_CTR_SHA_PUB_FILE
/* Degree tab */
"file.svg", // TL_NOTE_DEG_DOC_PUB_FILE
"file.svg", // TL_NOTE_DEG_SHA_PUB_FILE
/* Course tab */
"file.svg", // TL_NOTE_CRS_DOC_PUB_FILE
"file.svg", // TL_NOTE_CRS_SHA_PUB_FILE
/* Assessment tab */
"bullhorn.svg", // TL_NOTE_EXAM_ANNOUNCEMENT
/* Users tab */
[TL_NOTE_UNKNOWN ] = NULL,
/* Start tab */
NULL, // TL_NOTE_SOCIAL_POST (icon not used)
[TL_NOTE_POST ] = NULL, // icon not used
/* Institution tab */
[TL_NOTE_INS_DOC_PUB_FILE ] = "file.svg",
[TL_NOTE_INS_SHA_PUB_FILE ] = "file.svg",
/* Centre tab */
[TL_NOTE_CTR_DOC_PUB_FILE ] = "file.svg",
[TL_NOTE_CTR_SHA_PUB_FILE ] = "file.svg",
/* Degree tab */
[TL_NOTE_DEG_DOC_PUB_FILE ] = "file.svg",
[TL_NOTE_DEG_SHA_PUB_FILE ] = "file.svg",
/* Course tab */
[TL_NOTE_CRS_DOC_PUB_FILE ] = "file.svg",
[TL_NOTE_CRS_SHA_PUB_FILE ] = "file.svg",
/* Assessment tab */
[TL_NOTE_EXAM_ANNOUNCEMENT] = "bullhorn.svg",
/* Users tab */
/* Messages tab */
"comments.svg", // TL_NOTE_FORUM_POST // TODO: Move down
"sticky-note.svg", // TL_NOTE_NOTICE
/* Statistics tab */
[TL_NOTE_NOTICE ] = "sticky-note.svg",
[TL_NOTE_FORUM_POST ] = "comments.svg",
/* Analytics tab */
/* Profile tab */
};
if (SocNot->Unavailable || // File/notice... pointed by this note is unavailable

View File

@ -50,7 +50,7 @@
typedef enum
{
TL_PUB_UNKNOWN = 0,
TL_PUB_ORIGINAL_NOTE = 1,
TL_PUB_ORIGINAL_NOTE = 1,
TL_PUB_SHARED_NOTE = 2,
TL_PUB_COMMENT_TO_NOTE = 3,
} TL_PubType_t;
@ -61,39 +61,28 @@ typedef enum
typedef enum
{
TL_NOTE_UNKNOWN = 0,
/* Start tab */
TL_NOTE_POST = 10, // Post written directly in timeline
/* Institution tab */
TL_NOTE_INS_DOC_PUB_FILE = 1,
TL_NOTE_INS_SHA_PUB_FILE = 2,
TL_NOTE_INS_DOC_PUB_FILE = 1, // Public file in documents of institution
TL_NOTE_INS_SHA_PUB_FILE = 2, // Public file in shared files of institution
/* Centre tab */
TL_NOTE_CTR_DOC_PUB_FILE = 3,
TL_NOTE_CTR_SHA_PUB_FILE = 4,
TL_NOTE_CTR_DOC_PUB_FILE = 3, // Public file in documents of centre
TL_NOTE_CTR_SHA_PUB_FILE = 4, // Public file in shared files of centre
/* Degree tab */
TL_NOTE_DEG_DOC_PUB_FILE = 5,
TL_NOTE_DEG_SHA_PUB_FILE = 6,
TL_NOTE_DEG_DOC_PUB_FILE = 5, // Public file in documents of degree
TL_NOTE_DEG_SHA_PUB_FILE = 6, // Public file in shared files of degree
/* Course tab */
TL_NOTE_CRS_DOC_PUB_FILE = 7,
TL_NOTE_CRS_SHA_PUB_FILE = 8,
TL_NOTE_CRS_DOC_PUB_FILE = 7, // Public file in documents of course
TL_NOTE_CRS_SHA_PUB_FILE = 8, // Public file in shared files of course
/* Assessment tab */
TL_NOTE_EXAM_ANNOUNCEMENT = 9,
TL_NOTE_EXAM_ANNOUNCEMENT = 9, // Exam announcement in a course
/* Users tab */
/* Start tab */ // TODO: Move to the top
TL_NOTE_POST = 10,
TL_NOTE_FORUM_POST = 11,
/* Messages tab */
TL_NOTE_NOTICE = 12,
/* Statistics tab */
TL_NOTE_NOTICE = 12, // A public notice in a course
TL_NOTE_FORUM_POST = 11, // Post in global/swad forums
/* Analytics tab */
/* Profile tab */
} TL_NoteType_t;
#define TL_NUM_TOP_MESSAGES (1 + 6)
@ -101,7 +90,7 @@ typedef enum
{
TL_TOP_MESSAGE_NONE = 0,
TL_TOP_MESSAGE_COMMENTED = 1,
TL_TOP_MESSAGE_FAVED = 2,
TL_TOP_MESSAGE_FAVED = 2,
TL_TOP_MESSAGE_UNFAVED = 3,
TL_TOP_MESSAGE_SHARED = 4,
TL_TOP_MESSAGE_UNSHARED = 5,

View File

@ -98,15 +98,15 @@ struct TT_Cell
};
/*****************************************************************************/
/************************* Internal global variables *************************/
/************************** Private global variables *************************/
/*****************************************************************************/
char *TT_ClassTypeDB[TT_NUM_CLASS_TYPES] =
static const char *TT_ClassTypeDB[TT_NUM_CLASS_TYPES] =
{
"free",
"lecture",
"practical",
"tutoring",
[TT_FREE ] = "free",
[TT_LECTURE ] = "lecture",
[TT_PRACTICAL] = "practical",
[TT_TUTORING ] = "tutoring",
};
struct TT_Cell *TT_TimeTable[TT_DAYS_PER_WEEK];