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_Project_documents;
|
||||
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;
|
||||
char FileBrowserSectionId[32];
|
||||
bool IAmTeacherOrSysAdm = Gbl.Usrs.Me.Role.Logged == Rol_TCH ||
|
||||
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 *****/
|
||||
Gbl.FileBrowser.IconViewEdit = Brw_ICON_NONE;
|
||||
switch (Gbl.FileBrowser.Type)
|
||||
|
@ -3512,9 +3513,9 @@ static void Brw_ShowFileBrowser (void)
|
|||
"file_browser_%u",Gbl.FileBrowser.Id);
|
||||
HTM_SECTION_Begin (FileBrowserSectionId);
|
||||
|
||||
Box_BoxBegin ("100%",Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type],
|
||||
Box_BoxBegin ("100%",*Brw_TitleOfFileBrowser[Gbl.FileBrowser.Type],
|
||||
Brw_PutIconsFileBrowser,NULL,
|
||||
Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE);
|
||||
*Brw_HelpOfFileBrowser[Gbl.FileBrowser.Type],Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Subtitle *****/
|
||||
Brw_WriteSubtitleOfFileBrowser ();
|
||||
|
@ -5769,12 +5770,12 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
Usr_MAX_BYTES_FULL_NAME +
|
||||
Prj_MAX_BYTES_PROJECT_TITLE];
|
||||
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_FILE ] = Txt_file,
|
||||
[Brw_IS_FOLDER ] = Txt_folder,
|
||||
[Brw_IS_LINK ] = Txt_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)
|
||||
|
@ -5987,7 +5988,7 @@ static void Brw_WriteCurrentClipboard (void)
|
|||
|
||||
Ale_ShowAlert (Ale_CLIPBOARD,"%s: %s, %s <strong>%s</strong>.",
|
||||
Txt_Copy_source,TxtClipboardZone,
|
||||
TxtFileType[Gbl.FileBrowser.Clipboard.FilFolLnk.Type],
|
||||
*TxtFileType[Gbl.FileBrowser.Clipboard.FilFolLnk.Type],
|
||||
FileNameToShow);
|
||||
}
|
||||
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.
|
||||
*/
|
||||
#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 JS_FILE "swad20.69.1.js"
|
||||
/*
|
||||
TODO: Rename CENTRE to CENTER in help wiki.
|
||||
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: 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)
|
||||
|
|
|
@ -159,7 +159,8 @@ unsigned Cty_DB_GetCtysFull (MYSQL_RES **mysql_res)
|
|||
static const char *OrderBySubQueryFmt[Cty_NUM_ORDERS] =
|
||||
{
|
||||
[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;
|
||||
Lan_Language_t Lan;
|
||||
|
|
|
@ -1639,7 +1639,7 @@ void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC,
|
|||
bool WriteToday,bool WriteDateOnSameDay,
|
||||
bool WriteWeekDay,unsigned WriteHMS)
|
||||
{
|
||||
static const char *SeparatorStr[] =
|
||||
static const char *SeparatorStr[Dat_NUM_SEPARATORS] =
|
||||
{
|
||||
[Dat_SEPARATOR_NONE ] = "",
|
||||
[Dat_SEPARATOR_COMMA] = ", ",
|
||||
|
|
|
@ -114,6 +114,7 @@ typedef enum
|
|||
} 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_NUM_SEPARATORS 3
|
||||
typedef enum
|
||||
{
|
||||
Dat_SEPARATOR_NONE, // No separator
|
||||
|
|
|
@ -83,7 +83,8 @@ unsigned Deg_DB_GetDegreeTypes (MYSQL_RES **mysql_res,
|
|||
static const char *OrderBySubQuery[DegTyp_NUM_ORDERS] =
|
||||
{
|
||||
[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 *****/
|
||||
|
|
|
@ -64,7 +64,8 @@ unsigned Dpt_DB_GetListDepartments (MYSQL_RES **mysql_res,
|
|||
static const char *OrderBySubQuery[Dpt_NUM_ORDERS] =
|
||||
{
|
||||
[Dpt_ORDER_BY_DEPARTMENT] = "FullName",
|
||||
[Dpt_ORDER_BY_NUM_TCHS ] = "NumTchs DESC,FullName",
|
||||
[Dpt_ORDER_BY_NUM_TCHS ] = "NumTchs DESC,"
|
||||
"FullName",
|
||||
};
|
||||
|
||||
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] =
|
||||
{
|
||||
[Exa_ORDER_BY_START_DATE] = "StartTime DESC,EndTime DESC,exa_exams.Title DESC",
|
||||
[Exa_ORDER_BY_END_DATE ] = "EndTime DESC,StartTime DESC,exa_exams.Title DESC",
|
||||
[Exa_ORDER_BY_START_DATE] = "StartTime 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",
|
||||
};
|
||||
char *HiddenSubQuery;
|
||||
|
|
|
@ -951,10 +951,10 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
|
|||
[Qst_INVALID_QUESTION] = "times-red.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_VALID_QUESTION ] = Txt_Valid_question,
|
||||
[Qst_INVALID_QUESTION] = &Txt_Invalid_question,
|
||||
[Qst_VALID_QUESTION ] = &Txt_Valid_question,
|
||||
};
|
||||
|
||||
/***** Begin table *****/
|
||||
|
@ -1005,7 +1005,7 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams,
|
|||
Lay_PutContextualLinkOnlyIcon (NextAction[Question.Validity],Anchor,
|
||||
ExaSet_PutParamsOneQst,Exams,
|
||||
Icon[Question.Validity],
|
||||
Title[Question.Validity]);
|
||||
*Title[Question.Validity]);
|
||||
|
||||
HTM_TD_End ();
|
||||
|
||||
|
|
346
swad_follow.c
346
swad_follow.c
|
@ -76,8 +76,8 @@ static void Fol_ListFollowersUsr (struct UsrData *UsrDat);
|
|||
static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat);
|
||||
static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat);
|
||||
static void Fol_PutInactiveIconToFollowUnfollow (void);
|
||||
static void Fol_PutIconToFollow (struct UsrData *UsrDat);
|
||||
static void Fol_PutIconToUnfollow (struct UsrData *UsrDat);
|
||||
static void Fol_PutIconToFollow (const char EncryptedUsrCod[Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64 + 1]);
|
||||
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_RequestUnfollowUsrs (Act_Action_t NextAction);
|
||||
|
@ -135,34 +135,34 @@ void Fol_SuggestUsrsToFollowMainZone (void)
|
|||
Fol_PutIconsWhoToFollow,NULL,
|
||||
Hlp_START_Profiles_who_to_follow,Box_NOT_CLOSABLE,2);
|
||||
|
||||
/***** Initialize structure with user's data *****/
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
/***** Initialize structure with user's data *****/
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List users *****/
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
/***** List users *****/
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
/* Get user's code (row[0]) */
|
||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
/* Get user's code (row[0]) */
|
||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
|
||||
/***** Show user *****/
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0)
|
||||
HTM_TR_Begin (NULL);
|
||||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS))
|
||||
Fol_ShowFollowedOrFollower (&UsrDat);
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) ||
|
||||
NumUsr == NumUsrs - 1)
|
||||
HTM_TR_End ();
|
||||
}
|
||||
/***** Show user *****/
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0)
|
||||
HTM_TR_Begin (NULL);
|
||||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS))
|
||||
Fol_ShowFollowedOrFollower (&UsrDat);
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) ||
|
||||
NumUsr == NumUsrs - 1)
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
|
@ -198,42 +198,42 @@ void Fol_SuggestUsrsToFollowMainZoneOnRightColumn (void)
|
|||
/***** Begin container *****/
|
||||
HTM_DIV_Begin ("class=\"CONNECTED\"");
|
||||
|
||||
/***** Title with link to suggest more users to follow *****/
|
||||
Frm_BeginForm (ActSeeSocPrf);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Who_to_follow,"BT_LINK CONNECTED_TXT",NULL);
|
||||
HTM_Txt (Txt_Who_to_follow);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
/***** Title with link to suggest more users to follow *****/
|
||||
Frm_BeginForm (ActSeeSocPrf);
|
||||
HTM_BUTTON_SUBMIT_Begin (Txt_Who_to_follow,"BT_LINK CONNECTED_TXT",NULL);
|
||||
HTM_Txt (Txt_Who_to_follow);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_Begin (NULL);
|
||||
/***** Begin table *****/
|
||||
HTM_TABLE_Begin (NULL);
|
||||
|
||||
/***** Initialize structure with user's data *****/
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
/***** Initialize structure with user's data *****/
|
||||
Usr_UsrDataConstructor (&UsrDat);
|
||||
|
||||
/***** List users *****/
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
/***** List users *****/
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user *****/
|
||||
row = mysql_fetch_row (mysql_res);
|
||||
|
||||
/* Get user's code (row[0]) */
|
||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
/* Get user's code (row[0]) */
|
||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[0]);
|
||||
|
||||
/***** Show user *****/
|
||||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS))
|
||||
Fol_WriteRowUsrToFollowOnRightColumn (&UsrDat);
|
||||
}
|
||||
/***** Show user *****/
|
||||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS))
|
||||
Fol_WriteRowUsrToFollowOnRightColumn (&UsrDat);
|
||||
}
|
||||
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
/***** Free memory used for user's data *****/
|
||||
Usr_UsrDataDestructor (&UsrDat);
|
||||
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
/***** End table *****/
|
||||
HTM_TABLE_End ();
|
||||
|
||||
/***** End container *****/
|
||||
HTM_DIV_End ();
|
||||
|
@ -265,9 +265,9 @@ static void Fol_PutIconToUpdateWhoToFollow (void)
|
|||
extern const char *Txt_Update;
|
||||
|
||||
Frm_BeginForm (ActSeeSocPrf);
|
||||
HTM_BUTTON_Animated_Begin (Txt_Update,"BT_LINK",NULL);
|
||||
Ico_PutCalculateIcon (Txt_Update);
|
||||
HTM_BUTTON_End ();
|
||||
HTM_BUTTON_Animated_Begin (Txt_Update,"BT_LINK",NULL);
|
||||
Ico_PutCalculateIcon (Txt_Update);
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
||||
|
@ -324,55 +324,55 @@ void Fol_ShowFollowingAndFollowers (const struct UsrData *UsrDat,
|
|||
/***** Begin section *****/
|
||||
HTM_SECTION_Begin (Fol_FOLLOW_SECTION_ID);
|
||||
|
||||
/***** Followed users *****/
|
||||
HTM_DIV_Begin ("id=\"following_side\"");
|
||||
HTM_DIV_Begin ("class=\"FOLLOW_SIDE\"");
|
||||
/***** Followed users *****/
|
||||
HTM_DIV_Begin ("id=\"following_side\"");
|
||||
HTM_DIV_Begin ("class=\"FOLLOW_SIDE\"");
|
||||
|
||||
/* User follows me? */
|
||||
HTM_DIV_Begin ("id=\"follows_me\" class=\"DAT_LIGHT\"");
|
||||
if (UsrFollowsMe)
|
||||
HTM_Txt (Txt_FOLLOWS_YOU);
|
||||
HTM_DIV_End ();
|
||||
/* User follows me? */
|
||||
HTM_DIV_Begin ("id=\"follows_me\" class=\"DAT_LIGHT\"");
|
||||
if (UsrFollowsMe)
|
||||
HTM_Txt (Txt_FOLLOWS_YOU);
|
||||
HTM_DIV_End ();
|
||||
|
||||
/* Number of followed */
|
||||
Fol_ShowNumberOfFollowingOrFollowers (UsrDat,
|
||||
NumFollowing,
|
||||
ActSeeFlg,Txt_Following);
|
||||
/* Number of followed */
|
||||
Fol_ShowNumberOfFollowingOrFollowers (UsrDat,
|
||||
NumFollowing,
|
||||
ActSeeFlg,Txt_Following);
|
||||
|
||||
/* End following side */
|
||||
HTM_DIV_End ();
|
||||
HTM_DIV_End ();
|
||||
/* End following side */
|
||||
HTM_DIV_End ();
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** Followers *****/
|
||||
HTM_DIV_Begin ("id=\"followers_side\"");
|
||||
HTM_DIV_Begin ("class=\"FOLLOW_SIDE\"");
|
||||
/***** Followers *****/
|
||||
HTM_DIV_Begin ("id=\"followers_side\"");
|
||||
HTM_DIV_Begin ("class=\"FOLLOW_SIDE\"");
|
||||
|
||||
/* Number of followers */
|
||||
Fol_ShowNumberOfFollowingOrFollowers (UsrDat,
|
||||
NumFollowers,
|
||||
ActSeeFlr,Txt_Followers);
|
||||
/* Number of followers */
|
||||
Fol_ShowNumberOfFollowingOrFollowers (UsrDat,
|
||||
NumFollowers,
|
||||
ActSeeFlr,Txt_Followers);
|
||||
|
||||
/* I follow user? */
|
||||
HTM_DIV_Begin ("id=\"follow_usr\"");
|
||||
if (Gbl.Usrs.Me.Logged && // Logged
|
||||
!ItsMe) // Not me!
|
||||
{
|
||||
Frm_BeginForm (IFollowUsr ? ActUnfUsr :
|
||||
ActFolUsr);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,
|
||||
IFollowUsr ? "user-check.svg" :
|
||||
"user-plus.svg",
|
||||
IFollowUsr ? Txt_Following_unfollow :
|
||||
Txt_Follow,
|
||||
"ICO_HIGHLIGHT ICO40x40");
|
||||
Frm_EndForm ();
|
||||
}
|
||||
HTM_DIV_End ();
|
||||
/* I follow user? */
|
||||
HTM_DIV_Begin ("id=\"follow_usr\"");
|
||||
if (Gbl.Usrs.Me.Logged && // Logged
|
||||
!ItsMe) // Not me!
|
||||
{
|
||||
Frm_BeginForm (IFollowUsr ? ActUnfUsr :
|
||||
ActFolUsr);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,
|
||||
IFollowUsr ? "user-check.svg" :
|
||||
"user-plus.svg",
|
||||
IFollowUsr ? Txt_Following_unfollow :
|
||||
Txt_Follow,
|
||||
"ICO_HIGHLIGHT ICO40x40");
|
||||
Frm_EndForm ();
|
||||
}
|
||||
HTM_DIV_End ();
|
||||
|
||||
/* End followers side */
|
||||
HTM_DIV_End ();
|
||||
HTM_DIV_End ();
|
||||
/* End followers side */
|
||||
HTM_DIV_End ();
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** End section *****/
|
||||
HTM_SECTION_End ();
|
||||
|
@ -395,50 +395,50 @@ static void Fol_ShowNumberOfFollowingOrFollowers (const struct UsrData *UsrDat,
|
|||
/***** Begin container *****/
|
||||
HTM_DIV_Begin ("class=\"FOLLOW_BOX\"");
|
||||
|
||||
/***** Number *****/
|
||||
if (NumUsrs)
|
||||
{
|
||||
/* Form to list users */
|
||||
Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Title,
|
||||
(Gbl.Action.Act == Action) ? "BT_LINK FOLLOW_NUM_B" :
|
||||
"BT_LINK FOLLOW_NUM",
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
HTM_SPAN_Begin ("class=\"%s\"",(Gbl.Action.Act == Action) ? "FOLLOW_NUM_B" :
|
||||
"FOLLOW_NUM");
|
||||
HTM_Unsigned (NumUsrs);
|
||||
if (NumUsrs)
|
||||
{
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
else
|
||||
HTM_SPAN_End ();
|
||||
/***** Number *****/
|
||||
if (NumUsrs)
|
||||
{
|
||||
/* Form to list users */
|
||||
Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Title,
|
||||
(Gbl.Action.Act == Action) ? "BT_LINK FOLLOW_NUM_B" :
|
||||
"BT_LINK FOLLOW_NUM",
|
||||
NULL);
|
||||
}
|
||||
else
|
||||
HTM_SPAN_Begin ("class=\"%s\"",(Gbl.Action.Act == Action) ? "FOLLOW_NUM_B" :
|
||||
"FOLLOW_NUM");
|
||||
HTM_Unsigned (NumUsrs);
|
||||
if (NumUsrs)
|
||||
{
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
else
|
||||
HTM_SPAN_End ();
|
||||
|
||||
/***** Text *****/
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Action.Act == Action) ? The_ClassFormOutBoxBold[Gbl.Prefs.Theme] :
|
||||
The_ClassFormOutBox [Gbl.Prefs.Theme]);
|
||||
if (NumUsrs)
|
||||
{
|
||||
/* Form to list users */
|
||||
Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Title,
|
||||
(Gbl.Action.Act == Action) ? The_ClassFormLinkOutBoxBold[Gbl.Prefs.Theme] :
|
||||
The_ClassFormLinkOutBox [Gbl.Prefs.Theme],
|
||||
NULL);
|
||||
}
|
||||
HTM_Txt (Title);
|
||||
if (NumUsrs)
|
||||
{
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
HTM_DIV_End ();
|
||||
/***** Text *****/
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Action.Act == Action) ? The_ClassFormOutBoxBold[Gbl.Prefs.Theme] :
|
||||
The_ClassFormOutBox [Gbl.Prefs.Theme]);
|
||||
if (NumUsrs)
|
||||
{
|
||||
/* Form to list users */
|
||||
Frm_BeginFormAnchor (Action,Fol_FOLLOW_SECTION_ID);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_BUTTON_SUBMIT_Begin (Title,
|
||||
(Gbl.Action.Act == Action) ? The_ClassFormLinkOutBoxBold[Gbl.Prefs.Theme] :
|
||||
The_ClassFormLinkOutBox [Gbl.Prefs.Theme],
|
||||
NULL);
|
||||
}
|
||||
HTM_Txt (Title);
|
||||
if (NumUsrs)
|
||||
{
|
||||
HTM_BUTTON_End ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** End container *****/
|
||||
HTM_DIV_End ();
|
||||
|
@ -490,24 +490,24 @@ static void Fol_ListFollowingUsr (struct UsrData *UsrDat)
|
|||
NULL,NULL,
|
||||
NULL,Box_NOT_CLOSABLE,2);
|
||||
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user's code *****/
|
||||
FollowingUsrDat.UsrCod = DB_GetNextCode (mysql_res);
|
||||
for (NumUsr = 0;
|
||||
NumUsr < NumUsrs;
|
||||
NumUsr++)
|
||||
{
|
||||
/***** Get user's code *****/
|
||||
FollowingUsrDat.UsrCod = DB_GetNextCode (mysql_res);
|
||||
|
||||
/***** Show user *****/
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0)
|
||||
HTM_TR_Begin (NULL);
|
||||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&FollowingUsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS))
|
||||
Fol_ShowFollowedOrFollower (&FollowingUsrDat);
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) ||
|
||||
NumUsr == NumUsrs - 1)
|
||||
HTM_TR_End ();
|
||||
}
|
||||
/***** Show user *****/
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == 0)
|
||||
HTM_TR_Begin (NULL);
|
||||
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&FollowingUsrDat,
|
||||
Usr_DONT_GET_PREFS,
|
||||
Usr_DONT_GET_ROLE_IN_CURRENT_CRS))
|
||||
Fol_ShowFollowedOrFollower (&FollowingUsrDat);
|
||||
if ((NumUsr % Fol_NUM_COLUMNS_FOLLOW) == (Fol_NUM_COLUMNS_FOLLOW-1) ||
|
||||
NumUsr == NumUsrs - 1)
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
||||
/***** End table and box *****/
|
||||
Box_BoxTableEnd ();
|
||||
|
@ -649,10 +649,10 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
|
|||
if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
UsrDat->UsrCod)) // I follow user
|
||||
/* Form to unfollow */
|
||||
Fol_PutIconToUnfollow (UsrDat);
|
||||
Fol_PutIconToUnfollow (UsrDat->EnUsrCod);
|
||||
else if (Visible) // I do not follow this user and I can follow
|
||||
/* Form to follow */
|
||||
Fol_PutIconToFollow (UsrDat);
|
||||
Fol_PutIconToFollow (UsrDat->EnUsrCod);
|
||||
}
|
||||
|
||||
HTM_TD_End ();
|
||||
|
@ -705,10 +705,10 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat)
|
|||
if (Fol_DB_CheckUsrIsFollowerOf (Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
UsrDat->UsrCod)) // I follow user
|
||||
/* Form to unfollow */
|
||||
Fol_PutIconToUnfollow (UsrDat);
|
||||
Fol_PutIconToUnfollow (UsrDat->EnUsrCod);
|
||||
else if (Visible) // I do not follow this user and I can follow
|
||||
/* Form to follow */
|
||||
Fol_PutIconToFollow (UsrDat);
|
||||
Fol_PutIconToFollow (UsrDat->EnUsrCod);
|
||||
}
|
||||
HTM_TD_End ();
|
||||
|
||||
|
@ -725,7 +725,7 @@ static void Fol_PutInactiveIconToFollowUnfollow (void)
|
|||
{
|
||||
/***** Inactive icon to follow/unfollow *****/
|
||||
HTM_DIV_Begin ("class=\"FOLLOW_USR_ICO ICO_HIDDEN\"");
|
||||
Ico_PutIcon ("user.svg","","ICO16x16");
|
||||
Ico_PutIcon ("user.svg","","ICO16x16");
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
|
||||
|
@ -733,15 +733,15 @@ static void Fol_PutInactiveIconToFollowUnfollow (void)
|
|||
/*********************** 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;
|
||||
|
||||
/***** Form to unfollow *****/
|
||||
Frm_BeginForm (ActFolUsr);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg",
|
||||
Txt_Follow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
||||
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-plus.svg",
|
||||
Txt_Follow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
||||
|
@ -749,15 +749,15 @@ static void Fol_PutIconToFollow (struct UsrData *UsrDat)
|
|||
/********************** 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;
|
||||
|
||||
/* Form to follow */
|
||||
Frm_BeginForm (ActUnfUsr);
|
||||
Usr_PutParamUsrCodEncrypted (UsrDat->EnUsrCod);
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
||||
Txt_Unfollow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
||||
Usr_PutParamUsrCodEncrypted (EncryptedUsrCod);
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
||||
Txt_Unfollow,"FOLLOW_USR_ICO ICO_HIGHLIGHT ICO16x16");
|
||||
Frm_EndForm ();
|
||||
}
|
||||
|
||||
|
|
|
@ -123,7 +123,6 @@ unsigned Gam_DB_GetListGames (MYSQL_RES **mysql_res,Gam_Order_t SelectedOrder)
|
|||
"gam_games.Title DESC",
|
||||
[Gam_ORDER_BY_TITLE ] = "gam_games.Title",
|
||||
};
|
||||
;
|
||||
char *HiddenSubQuery;
|
||||
unsigned NumGames;
|
||||
|
||||
|
|
|
@ -298,7 +298,8 @@ unsigned Ins_DB_GetFullListOfInssInCty (MYSQL_RES **mysql_res,long CtyCod)
|
|||
static const char *OrderBySubQuery[Ins_NUM_ORDERS] =
|
||||
{
|
||||
[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 *****/
|
||||
|
|
|
@ -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_sent_from_A_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_RECEIVED] = Txt_Messages_received_from_A_COURSE,
|
||||
[Msg_SENT ] = Txt_Messages_sent_from_A_COURSE
|
||||
[Msg_RECEIVED] = &Txt_Messages_received_from_A_COURSE,
|
||||
[Msg_SENT ] = &Txt_Messages_sent_from_A_COURSE
|
||||
};
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -1815,7 +1815,7 @@ static void Msg_ShowFormSelectCourseSentOrRecMsgs (const struct Msg_Messages *Me
|
|||
|
||||
/***** Course selection *****/
|
||||
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,
|
||||
"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_To;
|
||||
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_RECEIVED] = Txt_MSG_From,
|
||||
[Msg_SENT ] = Txt_MSG_To
|
||||
[Msg_RECEIVED] = &Txt_MSG_From,
|
||||
[Msg_SENT ] = &Txt_MSG_To
|
||||
};
|
||||
|
||||
/***** Begin table *****/
|
||||
|
@ -1870,7 +1870,7 @@ static void Msg_ShowFormToFilterMsgs (const struct Msg_Messages *Messages)
|
|||
/***** Filter authors/recipients *****/
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
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,
|
||||
Messages->FilterFromTo,
|
||||
"size=\"20\"");
|
||||
|
|
|
@ -552,7 +552,7 @@ static void Prf_ShowNumFilesCurrentlyPublished (const struct UsrData *UsrDat)
|
|||
Prf_BeginListItem (Txt_Files_uploaded,"file.svg");
|
||||
|
||||
HTM_TxtF ("%u %s",NumFiles,(NumFiles == 1) ? Txt_file :
|
||||
Txt_files);
|
||||
Txt_files);
|
||||
HTM_NBSP ();
|
||||
HTM_Txt ("(");
|
||||
HTM_TxtF ("%u %s",NumPublicFiles,Txt_public_FILES);
|
||||
|
|
|
@ -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_open_documents;
|
||||
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_ALL ] = Txt_all,
|
||||
[Sch_SEARCH_COUNTRIES ] = Txt_countries,
|
||||
[Sch_SEARCH_INSTITS ] = Txt_institutions,
|
||||
[Sch_SEARCH_CENTERS ] = Txt_centers,
|
||||
[Sch_SEARCH_DEGREES ] = Txt_degrees,
|
||||
[Sch_SEARCH_COURSES ] = Txt_courses,
|
||||
[Sch_SEARCH_USERS ] = Txt_users[Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_TEACHERS ] = Txt_ROLES_PLURAL_abc[Rol_TCH][Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_STUDENTS ] = Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_GUESTS ] = Txt_ROLES_PLURAL_abc[Rol_GST][Usr_SEX_UNKNOWN],
|
||||
[Sch_SEARCH_OPEN_DOCUMENTS ] = Txt_open_documents,
|
||||
[Sch_SEARCH_DOCUM_IN_MY_COURSES] = Txt_documents_in_my_courses,
|
||||
[Sch_SEARCH_MY_DOCUMENTS ] = Txt_my_documents,
|
||||
[Sch_SEARCH_UNKNOWN ] = NULL,
|
||||
[Sch_SEARCH_ALL ] = &Txt_all,
|
||||
[Sch_SEARCH_COUNTRIES ] = &Txt_countries,
|
||||
[Sch_SEARCH_INSTITS ] = &Txt_institutions,
|
||||
[Sch_SEARCH_CENTERS ] = &Txt_centers,
|
||||
[Sch_SEARCH_DEGREES ] = &Txt_degrees,
|
||||
[Sch_SEARCH_COURSES ] = &Txt_courses,
|
||||
[Sch_SEARCH_USERS ] = &Txt_users[0],
|
||||
[Sch_SEARCH_TEACHERS ] = &Txt_ROLES_PLURAL_abc[Rol_TCH][0],
|
||||
[Sch_SEARCH_STUDENTS ] = &Txt_ROLES_PLURAL_abc[Rol_STD][0],
|
||||
[Sch_SEARCH_GUESTS ] = &Txt_ROLES_PLURAL_abc[Rol_GST][0],
|
||||
[Sch_SEARCH_OPEN_DOCUMENTS ] = &Txt_open_documents,
|
||||
[Sch_SEARCH_DOCUM_IN_MY_COURSES] = &Txt_documents_in_my_courses,
|
||||
[Sch_SEARCH_MY_DOCUMENTS ] = &Txt_my_documents,
|
||||
};
|
||||
Sch_WhatToSearch_t WhatToSearch;
|
||||
unsigned WTS;
|
||||
|
@ -178,7 +178,7 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Hie
|
|||
WTS = (unsigned) WhatToSearch;
|
||||
HTM_OPTION (HTM_Type_UNSIGNED,&WTS,
|
||||
Gbl.Search.WhatToSearch == WhatToSearch,false,
|
||||
"%s",Titles[WhatToSearch]);
|
||||
"%s",*Titles[WhatToSearch]);
|
||||
}
|
||||
HTM_SELECT_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_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_COMM] = Txt_TIMELINE_Favourited_by_X_USERS,
|
||||
[Tml_Usr_SHA_UNS_NOTE] = Txt_TIMELINE_Shared_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_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_COMM] = Txt_TIMELINE_Not_favourited_by_anyone,
|
||||
[Tml_Usr_SHA_UNS_NOTE] = Txt_TIMELINE_Not_shared_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_SHA_UNS_NOTE] = &Txt_TIMELINE_Not_shared_by_anyone,
|
||||
};
|
||||
|
||||
/***** Disabled icon to fav/share *****/
|
||||
if (NumUsrs)
|
||||
{
|
||||
Ico_PutDivIcon ("TL_ICO_DISABLED",Icon[FavSha],
|
||||
Str_BuildStringLong (TitleWithUsrs[FavSha],(long) NumUsrs));
|
||||
Str_BuildStringLong (*TitleWithUsrs[FavSha],(long) NumUsrs));
|
||||
Str_FreeString ();
|
||||
}
|
||||
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_Unfollow;
|
||||
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_RECORDS ] = Txt_View_records,
|
||||
[Usr_OPTION_HOMEWORK ] = Txt_View_homework,
|
||||
[Usr_OPTION_ATTENDANCE] = Txt_View_attendance,
|
||||
[Usr_OPTION_MESSAGE ] = Txt_Send_message,
|
||||
[Usr_OPTION_EMAIL ] = Txt_Create_email_message,
|
||||
[Usr_OPTION_FOLLOW ] = Txt_Follow,
|
||||
[Usr_OPTION_UNFOLLOW ] = Txt_Unfollow,
|
||||
[Usr_OPTION_RECORDS ] = &Txt_View_records,
|
||||
[Usr_OPTION_HOMEWORK ] = &Txt_View_homework,
|
||||
[Usr_OPTION_ATTENDANCE] = &Txt_View_attendance,
|
||||
[Usr_OPTION_MESSAGE ] = &Txt_Send_message,
|
||||
[Usr_OPTION_EMAIL ] = &Txt_Create_email_message,
|
||||
[Usr_OPTION_FOLLOW ] = &Txt_Follow,
|
||||
[Usr_OPTION_UNFOLLOW ] = &Txt_Unfollow,
|
||||
};
|
||||
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++)
|
||||
if (ICanChooseOption[Opt])
|
||||
Usr_ShowOneListUsrsOption (Opt,Label[Opt]);
|
||||
Usr_ShowOneListUsrsOption (Opt,*Label[Opt]);
|
||||
|
||||
/* End list of options */
|
||||
HTM_UL_End ();
|
||||
|
|
Loading…
Reference in New Issue