mirror of https://github.com/acanas/swad-core.git
Version 21.56.2: Nov 10, 2021 Code refactoring in pointers to text.
This commit is contained in:
parent
5e737fb2b7
commit
25356528f9
145
swad_browser.c
145
swad_browser.c
|
@ -3373,75 +3373,76 @@ static void Brw_ShowFileBrowser (void)
|
||||||
extern const char *Txt_Temporary_private_storage_area;
|
extern const char *Txt_Temporary_private_storage_area;
|
||||||
extern const char *Txt_Project_documents;
|
extern const char *Txt_Project_documents;
|
||||||
extern const char *Txt_Project_assessment;
|
extern const char *Txt_Project_assessment;
|
||||||
const char *Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER];
|
|
||||||
const char *Brw_HelpOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER];
|
static const char **Brw_TitleOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_UNKNOWN ] = NULL,
|
||||||
|
[Brw_SHOW_DOC_CRS] = &Txt_Documents_area,
|
||||||
|
[Brw_SHOW_MRK_CRS] = &Txt_Marks_area,
|
||||||
|
[Brw_ADMI_DOC_CRS] = &Txt_Documents_management_area,
|
||||||
|
[Brw_ADMI_SHR_CRS] = &Txt_Shared_files_area,
|
||||||
|
[Brw_ADMI_SHR_GRP] = &Txt_Shared_files_area,
|
||||||
|
[Brw_ADMI_WRK_USR] = &Txt_Works_area,
|
||||||
|
[Brw_ADMI_WRK_CRS] = &Txt_Works_area,
|
||||||
|
[Brw_ADMI_MRK_CRS] = &Txt_Marks_management_area,
|
||||||
|
[Brw_ADMI_BRF_USR] = &Txt_Temporary_private_storage_area,
|
||||||
|
[Brw_SHOW_DOC_GRP] = &Txt_Documents_area,
|
||||||
|
[Brw_ADMI_DOC_GRP] = &Txt_Documents_management_area,
|
||||||
|
[Brw_SHOW_MRK_GRP] = &Txt_Marks_area,
|
||||||
|
[Brw_ADMI_MRK_GRP] = &Txt_Marks_management_area,
|
||||||
|
[Brw_ADMI_ASG_USR] = &Txt_Assignments_area,
|
||||||
|
[Brw_ADMI_ASG_CRS] = &Txt_Assignments_area,
|
||||||
|
[Brw_SHOW_DOC_DEG] = &Txt_Documents_area,
|
||||||
|
[Brw_ADMI_DOC_DEG] = &Txt_Documents_management_area,
|
||||||
|
[Brw_SHOW_DOC_CTR] = &Txt_Documents_area,
|
||||||
|
[Brw_ADMI_DOC_CTR] = &Txt_Documents_management_area,
|
||||||
|
[Brw_SHOW_DOC_INS] = &Txt_Documents_area,
|
||||||
|
[Brw_ADMI_DOC_INS] = &Txt_Documents_management_area,
|
||||||
|
[Brw_ADMI_SHR_DEG] = &Txt_Shared_files_area,
|
||||||
|
[Brw_ADMI_SHR_CTR] = &Txt_Shared_files_area,
|
||||||
|
[Brw_ADMI_SHR_INS] = &Txt_Shared_files_area,
|
||||||
|
[Brw_ADMI_TCH_CRS] = &Txt_Teachers_files_area,
|
||||||
|
[Brw_ADMI_TCH_GRP] = &Txt_Teachers_files_area,
|
||||||
|
[Brw_ADMI_DOC_PRJ] = &Txt_Project_documents,
|
||||||
|
[Brw_ADMI_ASS_PRJ] = &Txt_Project_assessment,
|
||||||
|
};
|
||||||
|
static const char **Brw_HelpOfFileBrowser[Brw_NUM_TYPES_FILE_BROWSER] =
|
||||||
|
{
|
||||||
|
[Brw_UNKNOWN ] = NULL,
|
||||||
|
[Brw_SHOW_DOC_CRS] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_SHOW_MRK_CRS] = &Hlp_FILES_Marks,
|
||||||
|
[Brw_ADMI_DOC_CRS] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_ADMI_SHR_CRS] = &Hlp_FILES_Shared,
|
||||||
|
[Brw_ADMI_SHR_GRP] = &Hlp_FILES_Shared,
|
||||||
|
[Brw_ADMI_WRK_USR] = &Hlp_FILES_Homework_for_students,
|
||||||
|
[Brw_ADMI_WRK_CRS] = &Hlp_FILES_Homework_for_teachers,
|
||||||
|
[Brw_ADMI_MRK_CRS] = &Hlp_FILES_Marks,
|
||||||
|
[Brw_ADMI_BRF_USR] = &Hlp_FILES_Briefcase,
|
||||||
|
[Brw_SHOW_DOC_GRP] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_ADMI_DOC_GRP] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_SHOW_MRK_GRP] = &Hlp_FILES_Marks,
|
||||||
|
[Brw_ADMI_MRK_GRP] = &Hlp_FILES_Marks,
|
||||||
|
[Brw_ADMI_ASG_USR] = &Hlp_FILES_Homework_for_students,
|
||||||
|
[Brw_ADMI_ASG_CRS] = &Hlp_FILES_Homework_for_teachers,
|
||||||
|
[Brw_SHOW_DOC_DEG] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_ADMI_DOC_DEG] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_SHOW_DOC_CTR] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_ADMI_DOC_CTR] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_SHOW_DOC_INS] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_ADMI_DOC_INS] = &Hlp_FILES_Documents,
|
||||||
|
[Brw_ADMI_SHR_DEG] = &Hlp_FILES_Shared,
|
||||||
|
[Brw_ADMI_SHR_CTR] = &Hlp_FILES_Shared,
|
||||||
|
[Brw_ADMI_SHR_INS] = &Hlp_FILES_Shared,
|
||||||
|
[Brw_ADMI_TCH_CRS] = &Hlp_FILES_Private,
|
||||||
|
[Brw_ADMI_TCH_GRP] = &Hlp_FILES_Private,
|
||||||
|
[Brw_ADMI_DOC_PRJ] = &Hlp_ASSESSMENT_Projects,
|
||||||
|
[Brw_ADMI_ASS_PRJ] = &Hlp_ASSESSMENT_Projects,
|
||||||
|
};
|
||||||
struct Brw_NumObjects Removed;
|
struct Brw_NumObjects Removed;
|
||||||
char FileBrowserSectionId[32];
|
char FileBrowserSectionId[32];
|
||||||
bool IAmTeacherOrSysAdm = Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
|
bool IAmTeacherOrSysAdm = Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
|
||||||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
|
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM;
|
||||||
|
|
||||||
/***** Set title of file browser *****/
|
|
||||||
Brw_TitleOfFileBrowser[Brw_UNKNOWN ] = NULL;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_CRS] = Txt_Documents_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_SHOW_MRK_CRS] = Txt_Marks_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_CRS] = Txt_Documents_management_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_CRS] = Txt_Shared_files_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_GRP] = Txt_Shared_files_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_WRK_USR] = Txt_Works_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_WRK_CRS] = Txt_Works_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_MRK_CRS] = Txt_Marks_management_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_BRF_USR] = Txt_Temporary_private_storage_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_GRP] = Txt_Documents_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_GRP] = Txt_Documents_management_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_SHOW_MRK_GRP] = Txt_Marks_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_MRK_GRP] = Txt_Marks_management_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_ASG_USR] = Txt_Assignments_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_ASG_CRS] = Txt_Assignments_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_DEG] = Txt_Documents_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_DEG] = Txt_Documents_management_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_CTR] = Txt_Documents_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_CTR] = Txt_Documents_management_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_SHOW_DOC_INS] = Txt_Documents_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_INS] = Txt_Documents_management_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_DEG] = Txt_Shared_files_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_CTR] = Txt_Shared_files_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_SHR_INS] = Txt_Shared_files_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_TCH_CRS] = Txt_Teachers_files_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_TCH_GRP] = Txt_Teachers_files_area;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_DOC_PRJ] = Txt_Project_documents;
|
|
||||||
Brw_TitleOfFileBrowser[Brw_ADMI_ASS_PRJ] = Txt_Project_assessment;
|
|
||||||
|
|
||||||
/***** Set help link of file browser *****/
|
|
||||||
Brw_HelpOfFileBrowser[Brw_UNKNOWN ] = NULL;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_CRS] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_MRK_CRS] = Hlp_FILES_Marks;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_CRS] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_CRS] = Hlp_FILES_Shared;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_GRP] = Hlp_FILES_Shared;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_WRK_USR] = Hlp_FILES_Homework_for_students;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_WRK_CRS] = Hlp_FILES_Homework_for_teachers;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_MRK_CRS] = Hlp_FILES_Marks;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_BRF_USR] = Hlp_FILES_Briefcase;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_GRP] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_GRP] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_MRK_GRP] = Hlp_FILES_Marks;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_MRK_GRP] = Hlp_FILES_Marks;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_ASG_USR] = Hlp_FILES_Homework_for_students;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_ASG_CRS] = Hlp_FILES_Homework_for_teachers;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_DEG] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_DEG] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_CTR] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_CTR] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_SHOW_DOC_INS] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_INS] = Hlp_FILES_Documents;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_DEG] = Hlp_FILES_Shared;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_CTR] = Hlp_FILES_Shared;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_SHR_INS] = Hlp_FILES_Shared;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_TCH_CRS] = Hlp_FILES_Private;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_TCH_GRP] = Hlp_FILES_Private;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_DOC_PRJ] = Hlp_ASSESSMENT_Projects;
|
|
||||||
Brw_HelpOfFileBrowser[Brw_ADMI_ASS_PRJ] = Hlp_ASSESSMENT_Projects;
|
|
||||||
|
|
||||||
/***** Set contextual icon in box *****/
|
/***** Set contextual icon in box *****/
|
||||||
Gbl.FileBrowser.IconViewEdit = Brw_ICON_NONE;
|
Gbl.FileBrowser.IconViewEdit = Brw_ICON_NONE;
|
||||||
switch (Gbl.FileBrowser.Type)
|
switch (Gbl.FileBrowser.Type)
|
||||||
|
@ -3512,9 +3513,9 @@ static void Brw_ShowFileBrowser (void)
|
||||||
"file_browser_%u",Gbl.FileBrowser.Id);
|
"file_browser_%u",Gbl.FileBrowser.Id);
|
||||||
HTM_SECTION_Begin (FileBrowserSectionId);
|
HTM_SECTION_Begin (FileBrowserSectionId);
|
||||||
|
|
||||||
Box_BoxBegin ("100%",Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type],
|
Box_BoxBegin ("100%",*Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type],
|
||||||
Brw_PutIconsFileBrowser,NULL,
|
Brw_PutIconsFileBrowser,NULL,
|
||||||
Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE);
|
*Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** Subtitle *****/
|
/***** Subtitle *****/
|
||||||
Brw_WriteSubtitleOfFileBrowser ();
|
Brw_WriteSubtitleOfFileBrowser ();
|
||||||
|
@ -5769,12 +5770,12 @@ static void Brw_WriteCurrentClipboard (void)
|
||||||
Usr_MAX_BYTES_FULL_NAME +
|
Usr_MAX_BYTES_FULL_NAME +
|
||||||
Prj_MAX_BYTES_PROJECT_TITLE];
|
Prj_MAX_BYTES_PROJECT_TITLE];
|
||||||
char FileNameToShow[NAME_MAX + 1];
|
char FileNameToShow[NAME_MAX + 1];
|
||||||
const char *TxtFileType[Brw_NUM_FILE_TYPES] =
|
static const char **TxtFileType[Brw_NUM_FILE_TYPES] =
|
||||||
{
|
{
|
||||||
[Brw_IS_UNKNOWN] = Txt_file_folder,
|
[Brw_IS_UNKNOWN] = &Txt_file_folder,
|
||||||
[Brw_IS_FILE ] = Txt_file,
|
[Brw_IS_FILE ] = &Txt_file,
|
||||||
[Brw_IS_FOLDER ] = Txt_folder,
|
[Brw_IS_FOLDER ] = &Txt_folder,
|
||||||
[Brw_IS_LINK ] = Txt_link,
|
[Brw_IS_LINK ] = &Txt_link,
|
||||||
};
|
};
|
||||||
|
|
||||||
switch (Gbl.FileBrowser.Clipboard.FileBrowser)
|
switch (Gbl.FileBrowser.Clipboard.FileBrowser)
|
||||||
|
@ -5987,7 +5988,7 @@ static void Brw_WriteCurrentClipboard (void)
|
||||||
|
|
||||||
Ale_ShowAlert (Ale_CLIPBOARD,"%s: %s, %s <strong>%s</strong>.",
|
Ale_ShowAlert (Ale_CLIPBOARD,"%s: %s, %s <strong>%s</strong>.",
|
||||||
Txt_Copy_source,TxtClipboardZone,
|
Txt_Copy_source,TxtClipboardZone,
|
||||||
TxtFileType[Gbl.FileBrowser.Clipboard.FilFolLnk.Type],
|
*TxtFileType[Gbl.FileBrowser.Clipboard.FilFolLnk.Type],
|
||||||
FileNameToShow);
|
FileNameToShow);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -602,13 +602,14 @@ TODO: FIX BUG, URGENT! En las fechas como par
|
||||||
|
|
||||||
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
|
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 21.56.1 (2021-11-10)"
|
#define Log_PLATFORM_VERSION "SWAD 21.56.2 (2021-11-10)"
|
||||||
#define CSS_FILE "swad20.45.css"
|
#define CSS_FILE "swad20.45.css"
|
||||||
#define JS_FILE "swad20.69.1.js"
|
#define JS_FILE "swad20.69.1.js"
|
||||||
/*
|
/*
|
||||||
TODO: Rename CENTRE to CENTER in help wiki.
|
TODO: Rename CENTRE to CENTER in help wiki.
|
||||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
||||||
|
|
||||||
|
Version 21.56.2: Nov 10, 2021 Code refactoring in pointers to text. (319501 lines)
|
||||||
Version 21.56.1: Nov 10, 2021 Code refactoring in switch statements (until swad_enrolment.c). (319490 lines)
|
Version 21.56.1: Nov 10, 2021 Code refactoring in switch statements (until swad_enrolment.c). (319490 lines)
|
||||||
Version 21.56: Nov 10, 2021 Code refactoring in hierarchy. (319618 lines)
|
Version 21.56: Nov 10, 2021 Code refactoring in hierarchy. (319618 lines)
|
||||||
Version 21.55.2: Nov 10, 2021 Code refactoring in switch statements (until swad_button.c). (319875 lines)
|
Version 21.55.2: Nov 10, 2021 Code refactoring in switch statements (until swad_button.c). (319875 lines)
|
||||||
|
|
|
@ -159,7 +159,8 @@ unsigned Cty_DB_GetCtysFull (MYSQL_RES **mysql_res)
|
||||||
static const char *OrderBySubQueryFmt[Cty_NUM_ORDERS] =
|
static const char *OrderBySubQueryFmt[Cty_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
[Cty_ORDER_BY_COUNTRY ] = "Name_%s",
|
[Cty_ORDER_BY_COUNTRY ] = "Name_%s",
|
||||||
[Cty_ORDER_BY_NUM_USRS] = "NumUsrs DESC,Name_%s",
|
[Cty_ORDER_BY_NUM_USRS] = "NumUsrs DESC,"
|
||||||
|
"Name_%s",
|
||||||
};
|
};
|
||||||
unsigned NumCtys;
|
unsigned NumCtys;
|
||||||
Lan_Language_t Lan;
|
Lan_Language_t Lan;
|
||||||
|
|
|
@ -1639,7 +1639,7 @@ void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC,
|
||||||
bool WriteToday,bool WriteDateOnSameDay,
|
bool WriteToday,bool WriteDateOnSameDay,
|
||||||
bool WriteWeekDay,unsigned WriteHMS)
|
bool WriteWeekDay,unsigned WriteHMS)
|
||||||
{
|
{
|
||||||
static const char *SeparatorStr[] =
|
static const char *SeparatorStr[Dat_NUM_SEPARATORS] =
|
||||||
{
|
{
|
||||||
[Dat_SEPARATOR_NONE ] = "",
|
[Dat_SEPARATOR_NONE ] = "",
|
||||||
[Dat_SEPARATOR_COMMA] = ", ",
|
[Dat_SEPARATOR_COMMA] = ", ",
|
||||||
|
|
|
@ -114,6 +114,7 @@ typedef enum
|
||||||
} Dat_Format_t; // Do not change these numbers because they are used in database
|
} Dat_Format_t; // Do not change these numbers because they are used in database
|
||||||
#define Dat_FORMAT_DEFAULT Dat_FORMAT_YYYY_MM_DD
|
#define Dat_FORMAT_DEFAULT Dat_FORMAT_YYYY_MM_DD
|
||||||
|
|
||||||
|
#define Dat_NUM_SEPARATORS 3
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
Dat_SEPARATOR_NONE, // No separator
|
Dat_SEPARATOR_NONE, // No separator
|
||||||
|
|
|
@ -83,7 +83,8 @@ unsigned Deg_DB_GetDegreeTypes (MYSQL_RES **mysql_res,
|
||||||
static const char *OrderBySubQuery[DegTyp_NUM_ORDERS] =
|
static const char *OrderBySubQuery[DegTyp_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
[DegTyp_ORDER_BY_DEGREE_TYPE] = "DegTypName",
|
[DegTyp_ORDER_BY_DEGREE_TYPE] = "DegTypName",
|
||||||
[DegTyp_ORDER_BY_NUM_DEGREES] = "NumDegs DESC,DegTypName",
|
[DegTyp_ORDER_BY_NUM_DEGREES] = "NumDegs DESC,"
|
||||||
|
"DegTypName",
|
||||||
};
|
};
|
||||||
|
|
||||||
/***** Get types of degree from database *****/
|
/***** Get types of degree from database *****/
|
||||||
|
|
|
@ -64,7 +64,8 @@ unsigned Dpt_DB_GetListDepartments (MYSQL_RES **mysql_res,
|
||||||
static const char *OrderBySubQuery[Dpt_NUM_ORDERS] =
|
static const char *OrderBySubQuery[Dpt_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
[Dpt_ORDER_BY_DEPARTMENT] = "FullName",
|
[Dpt_ORDER_BY_DEPARTMENT] = "FullName",
|
||||||
[Dpt_ORDER_BY_NUM_TCHS ] = "NumTchs DESC,FullName",
|
[Dpt_ORDER_BY_NUM_TCHS ] = "NumTchs DESC,"
|
||||||
|
"FullName",
|
||||||
};
|
};
|
||||||
|
|
||||||
return (unsigned)
|
return (unsigned)
|
||||||
|
|
|
@ -124,8 +124,12 @@ unsigned Exa_DB_GetListExams (MYSQL_RES **mysql_res,Exa_Order_t SelectedOrder)
|
||||||
{
|
{
|
||||||
static const char *OrderBySubQuery[Exa_NUM_ORDERS] =
|
static const char *OrderBySubQuery[Exa_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
[Exa_ORDER_BY_START_DATE] = "StartTime DESC,EndTime DESC,exa_exams.Title DESC",
|
[Exa_ORDER_BY_START_DATE] = "StartTime DESC,"
|
||||||
[Exa_ORDER_BY_END_DATE ] = "EndTime DESC,StartTime DESC,exa_exams.Title DESC",
|
"EndTime DESC,"
|
||||||
|
"exa_exams.Title DESC",
|
||||||
|
[Exa_ORDER_BY_END_DATE ] = "EndTime DESC,"
|
||||||
|
"StartTime DESC,"
|
||||||
|
"exa_exams.Title DESC",
|
||||||
[Exa_ORDER_BY_TITLE ] = "exa_exams.Title",
|
[Exa_ORDER_BY_TITLE ] = "exa_exams.Title",
|
||||||
};
|
};
|
||||||
char *HiddenSubQuery;
|
char *HiddenSubQuery;
|
||||||
|
|
|
@ -951,10 +951,10 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
|
||||||
[Qst_INVALID_QUESTION] = "times-red.svg",
|
[Qst_INVALID_QUESTION] = "times-red.svg",
|
||||||
[Qst_VALID_QUESTION ] = "check-green.svg",
|
[Qst_VALID_QUESTION ] = "check-green.svg",
|
||||||
};
|
};
|
||||||
const char *Title[Qst_NUM_VALIDITIES] =
|
static const char **Title[Qst_NUM_VALIDITIES] =
|
||||||
{
|
{
|
||||||
[Qst_INVALID_QUESTION] = Txt_Invalid_question,
|
[Qst_INVALID_QUESTION] = &Txt_Invalid_question,
|
||||||
[Qst_VALID_QUESTION ] = Txt_Valid_question,
|
[Qst_VALID_QUESTION ] = &Txt_Valid_question,
|
||||||
};
|
};
|
||||||
|
|
||||||
/***** Begin table *****/
|
/***** Begin table *****/
|
||||||
|
@ -1005,7 +1005,7 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
|
||||||
Lay_PutContextualLinkOnlyIcon (NextAction[Question.Validity],Anchor,
|
Lay_PutContextualLinkOnlyIcon (NextAction[Question.Validity],Anchor,
|
||||||
ExaSet_PutParamsOneQst,Exams,
|
ExaSet_PutParamsOneQst,Exams,
|
||||||
Icon[Question.Validity],
|
Icon[Question.Validity],
|
||||||
Title[Question.Validity]);
|
*Title[Question.Validity]);
|
||||||
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
|
|
@ -76,8 +76,8 @@ static void Fol_ListFollowersUsr (struct UsrData *UsrDat);
|
||||||
static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat);
|
static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat);
|
||||||
static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat);
|
static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat);
|
||||||
static void Fol_PutInactiveIconToFollowUnfollow (void);
|
static void Fol_PutInactiveIconToFollowUnfollow (void);
|
||||||
static void Fol_PutIconToFollow (struct UsrData *UsrDat);
|
static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]);
|
||||||
static void Fol_PutIconToUnfollow (struct UsrData *UsrDat);
|
static void Fol_PutIconToUnfollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]);
|
||||||
|
|
||||||
static void Fol_RequestFollowUsrs (Act_Action_t NextAction);
|
static void Fol_RequestFollowUsrs (Act_Action_t NextAction);
|
||||||
static void Fol_RequestUnfollowUsrs (Act_Action_t NextAction);
|
static void Fol_RequestUnfollowUsrs (Act_Action_t NextAction);
|
||||||
|
@ -649,10 +649,10 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
|
||||||
if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
|
if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
UsrDat->UsrCod)) // I follow user
|
UsrDat->UsrCod)) // I follow user
|
||||||
/* Form to unfollow */
|
/* Form to unfollow */
|
||||||
Fol_PutIconToUnfollow (UsrDat);
|
Fol_PutIconToUnfollow (UsrDat->EnUsrCod);
|
||||||
else if (Visible) // I do not follow this user and I can follow
|
else if (Visible) // I do not follow this user and I can follow
|
||||||
/* Form to follow */
|
/* Form to follow */
|
||||||
Fol_PutIconToFollow (UsrDat);
|
Fol_PutIconToFollow (UsrDat->EnUsrCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -705,10 +705,10 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat)
|
||||||
if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
|
if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
UsrDat->UsrCod)) // I follow user
|
UsrDat->UsrCod)) // I follow user
|
||||||
/* Form to unfollow */
|
/* Form to unfollow */
|
||||||
Fol_PutIconToUnfollow (UsrDat);
|
Fol_PutIconToUnfollow (UsrDat->EnUsrCod);
|
||||||
else if (Visible) // I do not follow this user and I can follow
|
else if (Visible) // I do not follow this user and I can follow
|
||||||
/* Form to follow */
|
/* Form to follow */
|
||||||
Fol_PutIconToFollow (UsrDat);
|
Fol_PutIconToFollow (UsrDat->EnUsrCod);
|
||||||
}
|
}
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
@ -733,13 +733,13 @@ static void Fol_PutInactiveIconToFollowUnfollow (void)
|
||||||
/*********************** Put icon to follow another user *********************/
|
/*********************** Put icon to follow another user *********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Fol_PutIconToFollow (struct UsrData *UsrDat)
|
static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1])
|
||||||
{
|
{
|
||||||
extern const char *Txt_Follow;
|
extern const char *Txt_Follow;
|
||||||
|
|
||||||
/***** Form to unfollow *****/
|
/***** Form to unfollow *****/
|
||||||
Frm_BeginForm (ActFolUsr);
|
Frm_BeginForm (ActFolUsr);
|
||||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
|
||||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg",
|
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg",
|
||||||
Txt_Follow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
Txt_Follow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
@ -749,13 +749,13 @@ static void Fol_PutIconToFollow (struct UsrData *UsrDat)
|
||||||
/********************** Put icon to unfollow another user ********************/
|
/********************** Put icon to unfollow another user ********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Fol_PutIconToUnfollow (struct UsrData *UsrDat)
|
static void Fol_PutIconToUnfollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1])
|
||||||
{
|
{
|
||||||
extern const char *Txt_Unfollow;
|
extern const char *Txt_Unfollow;
|
||||||
|
|
||||||
/* Form to follow */
|
/* Form to follow */
|
||||||
Frm_BeginForm (ActUnfUsr);
|
Frm_BeginForm (ActUnfUsr);
|
||||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
|
||||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
||||||
Txt_Unfollow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
Txt_Unfollow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
|
|
|
@ -123,7 +123,6 @@ unsigned Gam_DB_GetListGames (MYSQL_RES **mysql_res,Gam_Order_t SelectedOrder)
|
||||||
"gam_games.Title DESC",
|
"gam_games.Title DESC",
|
||||||
[Gam_ORDER_BY_TITLE ] = "gam_games.Title",
|
[Gam_ORDER_BY_TITLE ] = "gam_games.Title",
|
||||||
};
|
};
|
||||||
;
|
|
||||||
char *HiddenSubQuery;
|
char *HiddenSubQuery;
|
||||||
unsigned NumGames;
|
unsigned NumGames;
|
||||||
|
|
||||||
|
|
|
@ -298,7 +298,8 @@ unsigned Ins_DB_GetFullListOfInssInCty (MYSQL_RES **mysql_res,long CtyCod)
|
||||||
static const char *OrderBySubQuery[Ins_NUM_ORDERS] =
|
static const char *OrderBySubQuery[Ins_NUM_ORDERS] =
|
||||||
{
|
{
|
||||||
[Ins_ORDER_BY_INSTITUTION] = "FullName",
|
[Ins_ORDER_BY_INSTITUTION] = "FullName",
|
||||||
[Ins_ORDER_BY_NUM_USRS ] = "NumUsrs DESC,FullName",
|
[Ins_ORDER_BY_NUM_USRS ] = "NumUsrs DESC,"
|
||||||
|
"FullName",
|
||||||
};
|
};
|
||||||
|
|
||||||
/***** Get institutions from database *****/
|
/***** Get institutions from database *****/
|
||||||
|
|
|
@ -1788,11 +1788,11 @@ static void Msg_ShowFormSelectCourseSentOrRecMsgs (const struct Msg_Messages *Me
|
||||||
extern const char *Txt_Messages_received_from_A_COURSE;
|
extern const char *Txt_Messages_received_from_A_COURSE;
|
||||||
extern const char *Txt_Messages_sent_from_A_COURSE;
|
extern const char *Txt_Messages_sent_from_A_COURSE;
|
||||||
extern const char *Txt_any_course;
|
extern const char *Txt_any_course;
|
||||||
const char *TxtSelector[Msg_NUM_TYPES_OF_MSGS] =
|
static const char **TxtSelector[Msg_NUM_TYPES_OF_MSGS] =
|
||||||
{
|
{
|
||||||
[Msg_WRITING ] = NULL,
|
[Msg_WRITING ] = NULL,
|
||||||
[Msg_RECEIVED] = Txt_Messages_received_from_A_COURSE,
|
[Msg_RECEIVED] = &Txt_Messages_received_from_A_COURSE,
|
||||||
[Msg_SENT ] = Txt_Messages_sent_from_A_COURSE
|
[Msg_SENT ] = &Txt_Messages_sent_from_A_COURSE
|
||||||
};
|
};
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
|
@ -1815,7 +1815,7 @@ static void Msg_ShowFormSelectCourseSentOrRecMsgs (const struct Msg_Messages *Me
|
||||||
|
|
||||||
/***** Course selection *****/
|
/***** Course selection *****/
|
||||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
|
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
|
||||||
HTM_TxtF ("%s ",TxtSelector[Messages->TypeOfMessages]);
|
HTM_TxtF ("%s ",*TxtSelector[Messages->TypeOfMessages]);
|
||||||
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
|
HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,
|
||||||
"name=\"FilterCrsCod\"");
|
"name=\"FilterCrsCod\"");
|
||||||
|
|
||||||
|
@ -1855,11 +1855,11 @@ static void Msg_ShowFormToFilterMsgs (const struct Msg_Messages *Messages)
|
||||||
extern const char *Txt_MSG_From;
|
extern const char *Txt_MSG_From;
|
||||||
extern const char *Txt_MSG_To;
|
extern const char *Txt_MSG_To;
|
||||||
extern const char *Txt_MSG_Content;
|
extern const char *Txt_MSG_Content;
|
||||||
const char *TxtFromTo[Msg_NUM_TYPES_OF_MSGS] =
|
static const char **TxtFromTo[Msg_NUM_TYPES_OF_MSGS] =
|
||||||
{
|
{
|
||||||
[Msg_WRITING ] = NULL,
|
[Msg_WRITING ] = NULL,
|
||||||
[Msg_RECEIVED] = Txt_MSG_From,
|
[Msg_RECEIVED] = &Txt_MSG_From,
|
||||||
[Msg_SENT ] = Txt_MSG_To
|
[Msg_SENT ] = &Txt_MSG_To
|
||||||
};
|
};
|
||||||
|
|
||||||
/***** Begin table *****/
|
/***** Begin table *****/
|
||||||
|
@ -1870,7 +1870,7 @@ static void Msg_ShowFormToFilterMsgs (const struct Msg_Messages *Messages)
|
||||||
/***** Filter authors/recipients *****/
|
/***** Filter authors/recipients *****/
|
||||||
HTM_TD_Begin ("class=\"LM\"");
|
HTM_TD_Begin ("class=\"LM\"");
|
||||||
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
|
HTM_LABEL_Begin ("class=\"%s\"",The_ClassFormInBox[Gbl.Prefs.Theme]);
|
||||||
HTM_TxtColonNBSP (TxtFromTo[Messages->TypeOfMessages]);
|
HTM_TxtColonNBSP (*TxtFromTo[Messages->TypeOfMessages]);
|
||||||
HTM_INPUT_SEARCH ("FilterFromTo",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME * 3,
|
HTM_INPUT_SEARCH ("FilterFromTo",Usr_MAX_CHARS_FIRSTNAME_OR_SURNAME * 3,
|
||||||
Messages->FilterFromTo,
|
Messages->FilterFromTo,
|
||||||
"size=\"20\"");
|
"size=\"20\"");
|
||||||
|
|
|
@ -114,22 +114,22 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
|
||||||
extern const char *Txt_documents_in_my_courses;
|
extern const char *Txt_documents_in_my_courses;
|
||||||
extern const char *Txt_open_documents;
|
extern const char *Txt_open_documents;
|
||||||
extern const char *Txt_Search;
|
extern const char *Txt_Search;
|
||||||
const char *Titles[Sch_NUM_WHAT_TO_SEARCH] =
|
static const char **Titles[Sch_NUM_WHAT_TO_SEARCH] =
|
||||||
{
|
{
|
||||||
[Sch_SEARCH_UNKNOWN ] = "",
|
[Sch_SEARCH_UNKNOWN ] = NULL,
|
||||||
[Sch_SEARCH_ALL ] = Txt_all,
|
[Sch_SEARCH_ALL ] = &Txt_all,
|
||||||
[Sch_SEARCH_COUNTRIES ] = Txt_countries,
|
[Sch_SEARCH_COUNTRIES ] = &Txt_countries,
|
||||||
[Sch_SEARCH_INSTITS ] = Txt_institutions,
|
[Sch_SEARCH_INSTITS ] = &Txt_institutions,
|
||||||
[Sch_SEARCH_CENTERS ] = Txt_centers,
|
[Sch_SEARCH_CENTERS ] = &Txt_centers,
|
||||||
[Sch_SEARCH_DEGREES ] = Txt_degrees,
|
[Sch_SEARCH_DEGREES ] = &Txt_degrees,
|
||||||
[Sch_SEARCH_COURSES ] = Txt_courses,
|
[Sch_SEARCH_COURSES ] = &Txt_courses,
|
||||||
[Sch_SEARCH_USERS ] = Txt_users[Usr_SEX_UNKNOWN],
|
[Sch_SEARCH_USERS ] = &Txt_users[0],
|
||||||
[Sch_SEARCH_TEACHERS ] = Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_UNKNOWN],
|
[Sch_SEARCH_TEACHERS ] = &Txt_ROLES_PLURAL_abc[Rol_TCH][0],
|
||||||
[Sch_SEARCH_STUDENTS ] = Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN],
|
[Sch_SEARCH_STUDENTS ] = &Txt_ROLES_PLURAL_abc[Rol_STD][0],
|
||||||
[Sch_SEARCH_GUESTS ] = Txt_ROLES_PLURAL_abc[Rol_GST][Usr_SEX_UNKNOWN],
|
[Sch_SEARCH_GUESTS ] = &Txt_ROLES_PLURAL_abc[Rol_GST][0],
|
||||||
[Sch_SEARCH_OPEN_DOCUMENTS ] = Txt_open_documents,
|
[Sch_SEARCH_OPEN_DOCUMENTS ] = &Txt_open_documents,
|
||||||
[Sch_SEARCH_DOCUM_IN_MY_COURSES] = Txt_documents_in_my_courses,
|
[Sch_SEARCH_DOCUM_IN_MY_COURSES] = &Txt_documents_in_my_courses,
|
||||||
[Sch_SEARCH_MY_DOCUMENTS ] = Txt_my_documents,
|
[Sch_SEARCH_MY_DOCUMENTS ] = &Txt_my_documents,
|
||||||
};
|
};
|
||||||
Sch_WhatToSearch_t WhatToSearch;
|
Sch_WhatToSearch_t WhatToSearch;
|
||||||
unsigned WTS;
|
unsigned WTS;
|
||||||
|
@ -178,7 +178,7 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
|
||||||
WTS = (unsigned) WhatToSearch;
|
WTS = (unsigned) WhatToSearch;
|
||||||
HTM_OPTION (HTM_Type_UNSIGNED,&WTS,
|
HTM_OPTION (HTM_Type_UNSIGNED,&WTS,
|
||||||
Gbl.Search.WhatToSearch == WhatToSearch,false,
|
Gbl.Search.WhatToSearch == WhatToSearch,false,
|
||||||
"%s",Titles[WhatToSearch]);
|
"%s",*Titles[WhatToSearch]);
|
||||||
}
|
}
|
||||||
HTM_SELECT_End ();
|
HTM_SELECT_End ();
|
||||||
HTM_LABEL_End ();
|
HTM_LABEL_End ();
|
||||||
|
|
|
@ -305,28 +305,28 @@ static void Tml_Usr_PutDisabledIconFavSha (Tml_Usr_FavSha_t FavSha,
|
||||||
[Tml_Usr_FAV_UNF_COMM] = Tml_Fav_ICON_FAV,
|
[Tml_Usr_FAV_UNF_COMM] = Tml_Fav_ICON_FAV,
|
||||||
[Tml_Usr_SHA_UNS_NOTE] = Tml_Sha_ICON_SHARE,
|
[Tml_Usr_SHA_UNS_NOTE] = Tml_Sha_ICON_SHARE,
|
||||||
};
|
};
|
||||||
const char *TitleWithUsrs[Tml_Usr_NUM_FAV_SHA] =
|
static const char **TitleWithUsrs[Tml_Usr_NUM_FAV_SHA] =
|
||||||
{
|
{
|
||||||
[Tml_Usr_FAV_UNF_NOTE] = Txt_TIMELINE_Favourited_by_X_USERS,
|
[Tml_Usr_FAV_UNF_NOTE] = &Txt_TIMELINE_Favourited_by_X_USERS,
|
||||||
[Tml_Usr_FAV_UNF_COMM] = Txt_TIMELINE_Favourited_by_X_USERS,
|
[Tml_Usr_FAV_UNF_COMM] = &Txt_TIMELINE_Favourited_by_X_USERS,
|
||||||
[Tml_Usr_SHA_UNS_NOTE] = Txt_TIMELINE_Shared_by_X_USERS,
|
[Tml_Usr_SHA_UNS_NOTE] = &Txt_TIMELINE_Shared_by_X_USERS,
|
||||||
};
|
};
|
||||||
const char *TitleWithoutUsrs[Tml_Usr_NUM_FAV_SHA] =
|
static const char **TitleWithoutUsrs[Tml_Usr_NUM_FAV_SHA] =
|
||||||
{
|
{
|
||||||
[Tml_Usr_FAV_UNF_NOTE] = Txt_TIMELINE_Not_favourited_by_anyone,
|
[Tml_Usr_FAV_UNF_NOTE] = &Txt_TIMELINE_Not_favourited_by_anyone,
|
||||||
[Tml_Usr_FAV_UNF_COMM] = Txt_TIMELINE_Not_favourited_by_anyone,
|
[Tml_Usr_FAV_UNF_COMM] = &Txt_TIMELINE_Not_favourited_by_anyone,
|
||||||
[Tml_Usr_SHA_UNS_NOTE] = Txt_TIMELINE_Not_shared_by_anyone,
|
[Tml_Usr_SHA_UNS_NOTE] = &Txt_TIMELINE_Not_shared_by_anyone,
|
||||||
};
|
};
|
||||||
|
|
||||||
/***** Disabled icon to fav/share *****/
|
/***** Disabled icon to fav/share *****/
|
||||||
if (NumUsrs)
|
if (NumUsrs)
|
||||||
{
|
{
|
||||||
Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha],
|
Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha],
|
||||||
Str_BuildStringLong (TitleWithUsrs[FavSha],(long) NumUsrs));
|
Str_BuildStringLong (*TitleWithUsrs[FavSha],(long) NumUsrs));
|
||||||
Str_FreeString ();
|
Str_FreeString ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha],TitleWithoutUsrs[FavSha]);
|
Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha],*TitleWithoutUsrs[FavSha]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
18
swad_user.c
18
swad_user.c
|
@ -5556,16 +5556,16 @@ static void Usr_PutOptionsListUsrs (const bool ICanChooseOption[Usr_LIST_USRS_NU
|
||||||
extern const char *Txt_Follow;
|
extern const char *Txt_Follow;
|
||||||
extern const char *Txt_Unfollow;
|
extern const char *Txt_Unfollow;
|
||||||
extern const char *Txt_Continue;
|
extern const char *Txt_Continue;
|
||||||
const char *Label[Usr_LIST_USRS_NUM_OPTIONS] =
|
static const char **Label[Usr_LIST_USRS_NUM_OPTIONS] =
|
||||||
{
|
{
|
||||||
[Usr_OPTION_UNKNOWN ] = NULL,
|
[Usr_OPTION_UNKNOWN ] = NULL,
|
||||||
[Usr_OPTION_RECORDS ] = Txt_View_records,
|
[Usr_OPTION_RECORDS ] = &Txt_View_records,
|
||||||
[Usr_OPTION_HOMEWORK ] = Txt_View_homework,
|
[Usr_OPTION_HOMEWORK ] = &Txt_View_homework,
|
||||||
[Usr_OPTION_ATTENDANCE] = Txt_View_attendance,
|
[Usr_OPTION_ATTENDANCE] = &Txt_View_attendance,
|
||||||
[Usr_OPTION_MESSAGE ] = Txt_Send_message,
|
[Usr_OPTION_MESSAGE ] = &Txt_Send_message,
|
||||||
[Usr_OPTION_EMAIL ] = Txt_Create_email_message,
|
[Usr_OPTION_EMAIL ] = &Txt_Create_email_message,
|
||||||
[Usr_OPTION_FOLLOW ] = Txt_Follow,
|
[Usr_OPTION_FOLLOW ] = &Txt_Follow,
|
||||||
[Usr_OPTION_UNFOLLOW ] = Txt_Unfollow,
|
[Usr_OPTION_UNFOLLOW ] = &Txt_Unfollow,
|
||||||
};
|
};
|
||||||
Usr_ListUsrsOption_t Opt;
|
Usr_ListUsrsOption_t Opt;
|
||||||
|
|
||||||
|
@ -5581,7 +5581,7 @@ static void Usr_PutOptionsListUsrs (const bool ICanChooseOption[Usr_LIST_USRS_NU
|
||||||
Opt <= (Usr_ListUsrsOption_t) (Usr_LIST_USRS_NUM_OPTIONS - 1);
|
Opt <= (Usr_ListUsrsOption_t) (Usr_LIST_USRS_NUM_OPTIONS - 1);
|
||||||
Opt++)
|
Opt++)
|
||||||
if (ICanChooseOption[Opt])
|
if (ICanChooseOption[Opt])
|
||||||
Usr_ShowOneListUsrsOption (Opt,Label[Opt]);
|
Usr_ShowOneListUsrsOption (Opt,*Label[Opt]);
|
||||||
|
|
||||||
/* End list of options */
|
/* End list of options */
|
||||||
HTM_UL_End ();
|
HTM_UL_End ();
|
||||||
|
|
Loading…
Reference in New Issue