mirror of https://github.com/acanas/swad-core.git
Version19.76.1
This commit is contained in:
parent
e862b38e5e
commit
0940245f28
|
@ -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_,
|
||||
|
|
2754
swad_action.c
2754
swad_action.c
File diff suppressed because it is too large
Load Diff
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
21
swad_alert.c
21
swad_alert.c
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 *****/
|
||||
|
|
396
swad_forum.c
396
swad_forum.c
|
@ -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>
|
||||
|
|
|
@ -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 */
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
116
swad_timeline.c
116
swad_timeline.c
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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];
|
||||
|
|
Loading…
Reference in New Issue