mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-14 12:44:09 +02:00
Version20.2
This commit is contained in:
parent
e2ab1b601b
commit
d15f8b7d94
|
@ -1518,7 +1518,7 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActSeeFor ] = { 95, 2,TabMsg,ActSeeFor ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,For_ShowForumTheads ,"comments" },
|
||||
// [ActSeeChtRms ] = { 51, 3,TabMsg,ActSeeChtRms ,0x3F8,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cht_ShowChatRooms ,"comments" },
|
||||
[ActSeeChtRms ] = { 51, 3,TabMsg,ActSeeChtRms ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cht_ShowChatRooms ,"comments" },
|
||||
[ActSeeMsg ] = {1912, 4,TabMsg,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,"envelope" },
|
||||
[ActSeeRcvMsg ] = { 3, 4,TabMsg,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,"envelope" },
|
||||
[ActReqMaiUsr ] = {1772, 5,TabMsg,ActReqMaiUsr ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mai_ReqUsrsToListEmails ,"at" },
|
||||
|
||||
// Actions not in menu:
|
||||
|
@ -1682,26 +1682,25 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
// [ActCht ] = { 52,-1,TabUnk,ActSeeChtRms ,0x3F8,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,0x3C4,Act_CONT_NORM,Act_BRW_NEW_TAB,Cht_OpenChatWindow ,NULL ,NULL},
|
||||
[ActCht ] = { 52,-1,TabUnk,ActSeeChtRms ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_NEW_TAB,Cht_OpenChatWindow ,NULL ,NULL},
|
||||
|
||||
[ActReqMsgUsr ] = { 26,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_FormMsgUsrs ,NULL},
|
||||
[ActSeeRcvMsg ] = { 3,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,NULL},
|
||||
[ActSeeSntMsg ] = { 70,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowSntMsgs ,NULL},
|
||||
[ActReqMsgUsr ] = { 26,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_FormMsgUsrs ,NULL},
|
||||
[ActSeeSntMsg ] = { 70,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowSntMsgs ,NULL},
|
||||
|
||||
[ActRcvMsgUsr ] = { 27,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,Msg_RecMsgFromUsr ,NULL},
|
||||
[ActReqDelAllSntMsg ] = { 604,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ReqDelAllSntMsgs ,NULL},
|
||||
[ActReqDelAllRcvMsg ] = { 593,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ReqDelAllRecMsgs ,NULL},
|
||||
[ActDelAllSntMsg ] = { 434,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelAllSntMsgs ,NULL},
|
||||
[ActDelAllRcvMsg ] = { 436,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelAllRecMsgs ,NULL},
|
||||
[ActDelSntMsg ] = { 90,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelSntMsg ,NULL},
|
||||
[ActDelRcvMsg ] = { 64,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelRecMsg ,NULL},
|
||||
[ActExpSntMsg ] = { 664,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ExpSntMsg ,NULL},
|
||||
[ActExpRcvMsg ] = { 663,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ExpRecMsg ,NULL},
|
||||
[ActConSntMsg ] = {1020,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ConSntMsg ,NULL},
|
||||
[ActConRcvMsg ] = {1019,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ConRecMsg ,NULL},
|
||||
[ActRcvMsgUsr ] = { 27,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,Msg_RecMsgFromUsr ,NULL},
|
||||
[ActReqDelAllSntMsg ] = { 604,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ReqDelAllSntMsgs ,NULL},
|
||||
[ActReqDelAllRcvMsg ] = { 593,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ReqDelAllRecMsgs ,NULL},
|
||||
[ActDelAllSntMsg ] = { 434,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelAllSntMsgs ,NULL},
|
||||
[ActDelAllRcvMsg ] = { 436,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelAllRecMsgs ,NULL},
|
||||
[ActDelSntMsg ] = { 90,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelSntMsg ,NULL},
|
||||
[ActDelRcvMsg ] = { 64,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_DelRecMsg ,NULL},
|
||||
[ActExpSntMsg ] = { 664,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ExpSntMsg ,NULL},
|
||||
[ActExpRcvMsg ] = { 663,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ExpRecMsg ,NULL},
|
||||
[ActConSntMsg ] = {1020,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ConSntMsg ,NULL},
|
||||
[ActConRcvMsg ] = {1019,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ConRecMsg ,NULL},
|
||||
|
||||
[ActLstBanUsr ] = {1017,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ListBannedUsrs ,NULL},
|
||||
[ActBanUsrMsg ] = {1015,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_BanSenderWhenShowingMsgs ,NULL},
|
||||
[ActUnbUsrMsg ] = {1016,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_UnbanSenderWhenShowingMsgs ,NULL},
|
||||
[ActUnbUsrLst ] = {1018,-1,TabUnk,ActSeeMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_UnbanSenderWhenListingUsrs ,NULL},
|
||||
[ActLstBanUsr ] = {1017,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ListBannedUsrs ,NULL},
|
||||
[ActBanUsrMsg ] = {1015,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_BanSenderWhenShowingMsgs ,NULL},
|
||||
[ActUnbUsrMsg ] = {1016,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_UnbanSenderWhenShowingMsgs ,NULL},
|
||||
[ActUnbUsrLst ] = {1018,-1,TabUnk,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_UnbanSenderWhenListingUsrs ,NULL},
|
||||
|
||||
[ActMaiUsr ] = { 100,-1,TabUnk,ActReqMaiUsr ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mai_GetSelectedUsrsAndListEmails,NULL},
|
||||
|
||||
|
@ -3726,7 +3725,6 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActValSetQst, // #1909
|
||||
ActInvSetQst, // #1910
|
||||
ActChgRooMAC, // #1911
|
||||
ActSeeMsg, // #1912
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -64,7 +64,7 @@ typedef enum
|
|||
|
||||
typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||
|
||||
#define Act_MAX_ACTION_COD 1912
|
||||
#define Act_MAX_ACTION_COD 1911
|
||||
|
||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
|
||||
|
||||
|
@ -1457,7 +1457,7 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
|||
#define ActSeeAllNot (ActUnfSevTch + 2)
|
||||
#define ActSeeFor (ActUnfSevTch + 3)
|
||||
#define ActSeeChtRms (ActUnfSevTch + 4)
|
||||
#define ActSeeMsg (ActUnfSevTch + 5)
|
||||
#define ActSeeRcvMsg (ActUnfSevTch + 5)
|
||||
#define ActReqMaiUsr (ActUnfSevTch + 6)
|
||||
// Secondary actions
|
||||
#define ActWriAnn (ActUnfSevTch + 7)
|
||||
|
@ -1609,26 +1609,25 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
|||
#define ActCht (ActUnfSevTch + 151)
|
||||
|
||||
#define ActReqMsgUsr (ActUnfSevTch + 152)
|
||||
#define ActSeeRcvMsg (ActUnfSevTch + 153)
|
||||
#define ActSeeSntMsg (ActUnfSevTch + 154)
|
||||
#define ActSeeSntMsg (ActUnfSevTch + 153)
|
||||
|
||||
#define ActRcvMsgUsr (ActUnfSevTch + 155)
|
||||
#define ActReqDelAllSntMsg (ActUnfSevTch + 156)
|
||||
#define ActReqDelAllRcvMsg (ActUnfSevTch + 157)
|
||||
#define ActDelAllSntMsg (ActUnfSevTch + 158)
|
||||
#define ActDelAllRcvMsg (ActUnfSevTch + 159)
|
||||
#define ActDelSntMsg (ActUnfSevTch + 160)
|
||||
#define ActDelRcvMsg (ActUnfSevTch + 161)
|
||||
#define ActExpSntMsg (ActUnfSevTch + 162)
|
||||
#define ActExpRcvMsg (ActUnfSevTch + 163)
|
||||
#define ActConSntMsg (ActUnfSevTch + 164)
|
||||
#define ActConRcvMsg (ActUnfSevTch + 165)
|
||||
#define ActLstBanUsr (ActUnfSevTch + 166)
|
||||
#define ActBanUsrMsg (ActUnfSevTch + 167)
|
||||
#define ActUnbUsrMsg (ActUnfSevTch + 168)
|
||||
#define ActUnbUsrLst (ActUnfSevTch + 169)
|
||||
#define ActRcvMsgUsr (ActUnfSevTch + 154)
|
||||
#define ActReqDelAllSntMsg (ActUnfSevTch + 155)
|
||||
#define ActReqDelAllRcvMsg (ActUnfSevTch + 156)
|
||||
#define ActDelAllSntMsg (ActUnfSevTch + 157)
|
||||
#define ActDelAllRcvMsg (ActUnfSevTch + 158)
|
||||
#define ActDelSntMsg (ActUnfSevTch + 159)
|
||||
#define ActDelRcvMsg (ActUnfSevTch + 160)
|
||||
#define ActExpSntMsg (ActUnfSevTch + 161)
|
||||
#define ActExpRcvMsg (ActUnfSevTch + 162)
|
||||
#define ActConSntMsg (ActUnfSevTch + 163)
|
||||
#define ActConRcvMsg (ActUnfSevTch + 164)
|
||||
#define ActLstBanUsr (ActUnfSevTch + 165)
|
||||
#define ActBanUsrMsg (ActUnfSevTch + 166)
|
||||
#define ActUnbUsrMsg (ActUnfSevTch + 167)
|
||||
#define ActUnbUsrLst (ActUnfSevTch + 168)
|
||||
|
||||
#define ActMaiUsr (ActUnfSevTch + 170)
|
||||
#define ActMaiUsr (ActUnfSevTch + 169)
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Analytics tab ********************************/
|
||||
|
|
|
@ -79,7 +79,7 @@ static void Ann_CreateAnnouncement (unsigned Roles,const char *Subject,const cha
|
|||
|
||||
void Ann_ShowAllAnnouncements (void)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Announcements;
|
||||
extern const char *Hlp_COMMUNICATION_Announcements;
|
||||
extern const char *Txt_Announcements;
|
||||
extern const char *Txt_No_announcements;
|
||||
MYSQL_RES *mysql_res;
|
||||
|
@ -130,7 +130,7 @@ void Ann_ShowAllAnnouncements (void)
|
|||
Box_BoxBegin ("550px",Txt_Announcements,
|
||||
ICanEdit ? Ann_PutIconToAddNewAnnouncement :
|
||||
NULL,NULL,
|
||||
Hlp_MESSAGES_Announcements,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Announcements,Box_NOT_CLOSABLE);
|
||||
if (!NumAnnouncements)
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_announcements);
|
||||
|
||||
|
@ -395,7 +395,7 @@ static long Ann_GetParamAnnCod (void)
|
|||
|
||||
void Ann_ShowFormAnnouncement (void)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Announcements;
|
||||
extern const char *Hlp_COMMUNICATION_Announcements;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *Txt_New_announcement;
|
||||
extern const char *Txt_MSG_Subject;
|
||||
|
@ -409,7 +409,7 @@ void Ann_ShowFormAnnouncement (void)
|
|||
/***** Begin box and table *****/
|
||||
Box_BoxTableBegin (NULL,Txt_New_announcement,
|
||||
NULL,NULL,
|
||||
Hlp_MESSAGES_Announcements,Box_NOT_CLOSABLE,2);
|
||||
Hlp_COMMUNICATION_Announcements,Box_NOT_CLOSABLE,2);
|
||||
|
||||
/***** Announcement subject and body *****/
|
||||
Ann_PutSubjectMessage ("Subject",Txt_MSG_Subject, 2);
|
||||
|
|
|
@ -555,7 +555,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.1.1 (2020-09-25)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.2 (2020-09-26)"
|
||||
#define CSS_FILE "swad20.1.1.css"
|
||||
#define JS_FILE "swad19.254.js"
|
||||
/*
|
||||
|
@ -573,6 +573,9 @@ TODO: Que al generar un examen s
|
|||
TODO: Create module swad_test_result
|
||||
"sudo apt install webp" en Ubuntu, y "yum install libwebp libwebp-tools" en CentOS, para decodificar imágenes Web/ug reportado por Javier Fernández Baldomero.
|
||||
|
||||
Version 20.2: Sep 26, 2020 Removed unused action.
|
||||
Contextual menu in box used to write a new message.
|
||||
Changes in help links. (304440 lines)
|
||||
Version 20.1.1: Sep 25, 2020 Old options related to messages removed from menu. (304394 lines)
|
||||
Copy the following icon to icon public directory:
|
||||
sudo cp icon/iconset/awesome/comment.svg /var/www/html/swad/icon/iconset/awesome/
|
||||
|
|
20
swad_forum.c
20
swad_forum.c
|
@ -989,7 +989,7 @@ void For_RemoveUsrFromReadThrs (long UsrCod)
|
|||
static void For_ShowPostsOfAThread (struct For_Forums *Forums,
|
||||
Ale_AlertType_t AlertType,const char *Message)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Forums_posts;
|
||||
extern const char *Hlp_COMMUNICATION_Forums_posts;
|
||||
extern const char *Txt_Thread;
|
||||
struct For_Thread Thread;
|
||||
char LastSubject[Cns_MAX_BYTES_SUBJECT + 1];
|
||||
|
@ -1031,7 +1031,7 @@ static void For_ShowPostsOfAThread (struct For_Forums *Forums,
|
|||
Txt_Thread,Thread.Subject);
|
||||
Box_BoxBegin (NULL,FrameTitle,
|
||||
For_PutIconNewPost,Forums,
|
||||
Hlp_MESSAGES_Forums_posts,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Forums_posts,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Get posts of a thread from database *****/
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get posts of a thread",
|
||||
|
@ -1564,7 +1564,7 @@ static void For_PutHiddenParamPstCod (long PstCod)
|
|||
|
||||
static void For_ShowForumList (struct For_Forums *Forums)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Forums;
|
||||
extern const char *Hlp_COMMUNICATION_Forums;
|
||||
extern const char *Txt_Forums;
|
||||
bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS];
|
||||
MYSQL_RES *mysql_resCtr;
|
||||
|
@ -1596,7 +1596,7 @@ static void For_ShowForumList (struct For_Forums *Forums)
|
|||
/***** Begin box *****/
|
||||
Box_BoxBegin (NULL,Txt_Forums,
|
||||
For_PutIconsForums,NULL,
|
||||
Hlp_MESSAGES_Forums,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Forums,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Put a form to select which forums *****/
|
||||
For_PutFormWhichForums (Forums);
|
||||
|
@ -2428,7 +2428,7 @@ void For_ShowForumTheads (void)
|
|||
static void For_ShowForumThreadsHighlightingOneThread (struct For_Forums *Forums,
|
||||
Ale_AlertType_t AlertType,const char *Message)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Forums_threads;
|
||||
extern const char *Hlp_COMMUNICATION_Forums_threads;
|
||||
extern const char *Txt_Forum;
|
||||
extern const char *Txt_MSG_Subject;
|
||||
extern const char *Txt_FORUM_THREAD_HELP_ORDER[Dat_NUM_START_END_TIME];
|
||||
|
@ -2518,7 +2518,7 @@ static void For_ShowForumThreadsHighlightingOneThread (struct For_Forums *Forums
|
|||
Txt_Forum,ForumName);
|
||||
Box_BoxBegin (NULL,FrameTitle,
|
||||
For_PutIconNewThread,Forums,
|
||||
Hlp_MESSAGES_Forums_threads,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Forums_threads,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** List the threads *****/
|
||||
if (NumThrs)
|
||||
|
@ -3847,8 +3847,8 @@ static void For_RestrictAccess (const struct For_Forums *Forums)
|
|||
static void For_WriteFormForumPst (struct For_Forums *Forums,
|
||||
bool IsReply,const char *Subject)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Forums_new_post;
|
||||
extern const char *Hlp_MESSAGES_Forums_new_thread;
|
||||
extern const char *Hlp_COMMUNICATION_Forums_new_post;
|
||||
extern const char *Hlp_COMMUNICATION_Forums_new_thread;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *Txt_New_post;
|
||||
extern const char *Txt_New_thread;
|
||||
|
@ -3860,11 +3860,11 @@ static void For_WriteFormForumPst (struct For_Forums *Forums,
|
|||
if (IsReply)
|
||||
Box_BoxBegin (NULL,Txt_New_post,
|
||||
NULL,NULL,
|
||||
Hlp_MESSAGES_Forums_new_post,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Forums_new_post,Box_NOT_CLOSABLE);
|
||||
else
|
||||
Box_BoxBegin (NULL,Txt_New_thread,
|
||||
NULL,NULL,
|
||||
Hlp_MESSAGES_Forums_new_thread,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Forums_new_thread,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Begin form *****/
|
||||
if (IsReply) // Form to write a reply to a post of an existing thread
|
||||
|
|
388
swad_help_URL.c
388
swad_help_URL.c
|
@ -157,6 +157,69 @@ const char *Hlp_START_Calendar =
|
|||
"START.Calendar.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_START_Notifications =
|
||||
#if L==1
|
||||
"START.Notifications.es";
|
||||
#elif L==2
|
||||
"START.Notifications.en";
|
||||
#elif L==3
|
||||
"START.Notifications.en";
|
||||
#elif L==4
|
||||
"START.Notifications.es";
|
||||
#elif L==5
|
||||
"START.Notifications.en";
|
||||
#elif L==6
|
||||
"START.Notifications.es";
|
||||
#elif L==7
|
||||
"START.Notifications.en";
|
||||
#elif L==8
|
||||
"START.Notifications.en";
|
||||
#elif L==9
|
||||
"START.Notifications.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_START_Domains =
|
||||
#if L==1
|
||||
"START.Domains.es";
|
||||
#elif L==2
|
||||
"START.Domains.en";
|
||||
#elif L==3
|
||||
"START.Domains.en";
|
||||
#elif L==4
|
||||
"START.Domains.es";
|
||||
#elif L==5
|
||||
"START.Domains.en";
|
||||
#elif L==6
|
||||
"START.Domains.es";
|
||||
#elif L==7
|
||||
"START.Domains.en";
|
||||
#elif L==8
|
||||
"START.Domains.en";
|
||||
#elif L==9
|
||||
"START.Domains.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_START_Domains_edit =
|
||||
#if L==1
|
||||
"START.Domains.es#editar";
|
||||
#elif L==2
|
||||
"START.Domains.en#edit";
|
||||
#elif L==3
|
||||
"START.Domains.en#edit";
|
||||
#elif L==4
|
||||
"START.Domains.es#editar";
|
||||
#elif L==5
|
||||
"START.Domains.en#edit";
|
||||
#elif L==6
|
||||
"START.Domains.es#editar";
|
||||
#elif L==7
|
||||
"START.Domains.en#edit";
|
||||
#elif L==8
|
||||
"START.Domains.en#edit";
|
||||
#elif L==9
|
||||
"START.Domains.en#edit";
|
||||
#endif
|
||||
|
||||
/***** SYSTEM tab *****/
|
||||
|
||||
const char *Hlp_SYSTEM_Information =
|
||||
|
@ -2486,342 +2549,279 @@ const char *Hlp_USERS_Connected_last_clicks =
|
|||
"USERS.Connected.en#last-clicks";
|
||||
#endif
|
||||
|
||||
/***** MESSAGES tab *****/
|
||||
/***** COMMUNICATION tab *****/
|
||||
|
||||
const char *Hlp_START_Notifications =
|
||||
const char *Hlp_COMMUNICATION_Announcements =
|
||||
#if L==1
|
||||
"MESSAGES.Notifications.es";
|
||||
"COMMUNICATION.Announcements.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Notifications.en";
|
||||
"COMMUNICATION.Announcements.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Notifications.en";
|
||||
"COMMUNICATION.Announcements.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Notifications.es";
|
||||
"COMMUNICATION.Announcements.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Notifications.en";
|
||||
"COMMUNICATION.Announcements.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Notifications.es";
|
||||
"COMMUNICATION.Announcements.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Notifications.en";
|
||||
"COMMUNICATION.Announcements.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Notifications.en";
|
||||
"COMMUNICATION.Announcements.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Notifications.en";
|
||||
"COMMUNICATION.Announcements.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_START_Domains =
|
||||
const char *Hlp_COMMUNICATION_Notices =
|
||||
#if L==1
|
||||
"MESSAGES.Domains.es";
|
||||
"COMMUNICATION.Notices.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Domains.en";
|
||||
"COMMUNICATION.Notices.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Domains.en";
|
||||
"COMMUNICATION.Notices.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Domains.es";
|
||||
"COMMUNICATION.Notices.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Domains.en";
|
||||
"COMMUNICATION.Notices.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Domains.es";
|
||||
"COMMUNICATION.Notices.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Domains.en";
|
||||
"COMMUNICATION.Notices.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Domains.en";
|
||||
"COMMUNICATION.Notices.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Domains.en";
|
||||
"COMMUNICATION.Notices.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_START_Domains_edit =
|
||||
const char *Hlp_COMMUNICATION_Forums =
|
||||
#if L==1
|
||||
"MESSAGES.Domains.es#editar";
|
||||
"COMMUNICATION.Forums.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Domains.en#edit";
|
||||
"COMMUNICATION.Forums.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Domains.en#edit";
|
||||
"COMMUNICATION.Forums.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Domains.es#editar";
|
||||
"COMMUNICATION.Forums.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Domains.en#edit";
|
||||
"COMMUNICATION.Forums.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Domains.es#editar";
|
||||
"COMMUNICATION.Forums.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Domains.en#edit";
|
||||
"COMMUNICATION.Forums.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Domains.en#edit";
|
||||
"COMMUNICATION.Forums.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Domains.en#edit";
|
||||
"COMMUNICATION.Forums.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Announcements =
|
||||
const char *Hlp_COMMUNICATION_Forums_threads =
|
||||
#if L==1
|
||||
"MESSAGES.Announcements.es";
|
||||
"COMMUNICATION.Forums.es#discusiones";
|
||||
#elif L==2
|
||||
"MESSAGES.Announcements.en";
|
||||
"COMMUNICATION.Forums.en#threads";
|
||||
#elif L==3
|
||||
"MESSAGES.Announcements.en";
|
||||
"COMMUNICATION.Forums.en#threads";
|
||||
#elif L==4
|
||||
"MESSAGES.Announcements.es";
|
||||
"COMMUNICATION.Forums.es#discusiones";
|
||||
#elif L==5
|
||||
"MESSAGES.Announcements.en";
|
||||
"COMMUNICATION.Forums.en#threads";
|
||||
#elif L==6
|
||||
"MESSAGES.Announcements.es";
|
||||
"COMMUNICATION.Forums.es#discusiones";
|
||||
#elif L==7
|
||||
"MESSAGES.Announcements.en";
|
||||
"COMMUNICATION.Forums.en#threads";
|
||||
#elif L==8
|
||||
"MESSAGES.Announcements.en";
|
||||
"COMMUNICATION.Forums.en#threads";
|
||||
#elif L==9
|
||||
"MESSAGES.Announcements.en";
|
||||
"COMMUNICATION.Forums.en#threads";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Notices =
|
||||
const char *Hlp_COMMUNICATION_Forums_new_thread =
|
||||
#if L==1
|
||||
"MESSAGES.Notices.es";
|
||||
"COMMUNICATION.Forums.es#nueva-discusi%C3%B3n";
|
||||
#elif L==2
|
||||
"MESSAGES.Notices.en";
|
||||
"COMMUNICATION.Forums.en#new-thread";
|
||||
#elif L==3
|
||||
"MESSAGES.Notices.en";
|
||||
"COMMUNICATION.Forums.en#new-thread";
|
||||
#elif L==4
|
||||
"MESSAGES.Notices.es";
|
||||
"COMMUNICATION.Forums.es#nueva-discusi%C3%B3n";
|
||||
#elif L==5
|
||||
"MESSAGES.Notices.en";
|
||||
"COMMUNICATION.Forums.en#new-thread";
|
||||
#elif L==6
|
||||
"MESSAGES.Notices.es";
|
||||
"COMMUNICATION.Forums.es#nueva-discusi%C3%B3n";
|
||||
#elif L==7
|
||||
"MESSAGES.Notices.en";
|
||||
"COMMUNICATION.Forums.en#new-thread";
|
||||
#elif L==8
|
||||
"MESSAGES.Notices.en";
|
||||
"COMMUNICATION.Forums.en#new-thread";
|
||||
#elif L==9
|
||||
"MESSAGES.Notices.en";
|
||||
"COMMUNICATION.Forums.en#new-thread";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Forums =
|
||||
const char *Hlp_COMMUNICATION_Forums_posts =
|
||||
#if L==1
|
||||
"MESSAGES.Forums.es";
|
||||
"COMMUNICATION.Forums.es#comentarios";
|
||||
#elif L==2
|
||||
"MESSAGES.Forums.en";
|
||||
"COMMUNICATION.Forums.en#posts";
|
||||
#elif L==3
|
||||
"MESSAGES.Forums.en";
|
||||
"COMMUNICATION.Forums.en#posts";
|
||||
#elif L==4
|
||||
"MESSAGES.Forums.es";
|
||||
"COMMUNICATION.Forums.es#comentarios";
|
||||
#elif L==5
|
||||
"MESSAGES.Forums.en";
|
||||
"COMMUNICATION.Forums.en#posts";
|
||||
#elif L==6
|
||||
"MESSAGES.Forums.es";
|
||||
"COMMUNICATION.Forums.es#comentarios";
|
||||
#elif L==7
|
||||
"MESSAGES.Forums.en";
|
||||
"COMMUNICATION.Forums.en#posts";
|
||||
#elif L==8
|
||||
"MESSAGES.Forums.en";
|
||||
"COMMUNICATION.Forums.en#posts";
|
||||
#elif L==9
|
||||
"MESSAGES.Forums.en";
|
||||
"COMMUNICATION.Forums.en#posts";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Forums_threads =
|
||||
const char *Hlp_COMMUNICATION_Forums_new_post =
|
||||
#if L==1
|
||||
"MESSAGES.Forums.es#discusiones";
|
||||
"COMMUNICATION.Forums.es#nuevo-comentario";
|
||||
#elif L==2
|
||||
"MESSAGES.Forums.en#threads";
|
||||
"COMMUNICATION.Forums.en#new-post";
|
||||
#elif L==3
|
||||
"MESSAGES.Forums.en#threads";
|
||||
"COMMUNICATION.Forums.en#new-post";
|
||||
#elif L==4
|
||||
"MESSAGES.Forums.es#discusiones";
|
||||
"COMMUNICATION.Forums.es#nuevo-comentario";
|
||||
#elif L==5
|
||||
"MESSAGES.Forums.en#threads";
|
||||
"COMMUNICATION.Forums.en#new-post";
|
||||
#elif L==6
|
||||
"MESSAGES.Forums.es#discusiones";
|
||||
"COMMUNICATION.Forums.es#nuevo-comentario";
|
||||
#elif L==7
|
||||
"MESSAGES.Forums.en#threads";
|
||||
"COMMUNICATION.Forums.en#new-post";
|
||||
#elif L==8
|
||||
"MESSAGES.Forums.en#threads";
|
||||
"COMMUNICATION.Forums.en#new-post";
|
||||
#elif L==9
|
||||
"MESSAGES.Forums.en#threads";
|
||||
"COMMUNICATION.Forums.en#new-post";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Forums_new_thread =
|
||||
const char *Hlp_COMMUNICATION_Messages_write =
|
||||
#if L==1
|
||||
"MESSAGES.Forums.es#nueva-discusi%C3%B3n";
|
||||
"COMMUNICATION.Write.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Forums.en#new-thread";
|
||||
"COMMUNICATION.Write.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Forums.en#new-thread";
|
||||
"COMMUNICATION.Write.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Forums.es#nueva-discusi%C3%B3n";
|
||||
"COMMUNICATION.Write.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Forums.en#new-thread";
|
||||
"COMMUNICATION.Write.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Forums.es#nueva-discusi%C3%B3n";
|
||||
"COMMUNICATION.Write.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Forums.en#new-thread";
|
||||
"COMMUNICATION.Write.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Forums.en#new-thread";
|
||||
"COMMUNICATION.Write.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Forums.en#new-thread";
|
||||
"COMMUNICATION.Write.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Forums_posts =
|
||||
const char *Hlp_COMMUNICATION_Messages_received =
|
||||
#if L==1
|
||||
"MESSAGES.Forums.es#comentarios";
|
||||
"COMMUNICATION.Received.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Forums.en#posts";
|
||||
"COMMUNICATION.Received.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Forums.en#posts";
|
||||
"COMMUNICATION.Received.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Forums.es#comentarios";
|
||||
"COMMUNICATION.Received.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Forums.en#posts";
|
||||
"COMMUNICATION.Received.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Forums.es#comentarios";
|
||||
"COMMUNICATION.Received.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Forums.en#posts";
|
||||
"COMMUNICATION.Received.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Forums.en#posts";
|
||||
"COMMUNICATION.Received.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Forums.en#posts";
|
||||
"COMMUNICATION.Received.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Forums_new_post =
|
||||
const char *Hlp_COMMUNICATION_Messages_received_filter =
|
||||
#if L==1
|
||||
"MESSAGES.Forums.es#nuevo-comentario";
|
||||
"COMMUNICATION.Received.es#filtro";
|
||||
#elif L==2
|
||||
"MESSAGES.Forums.en#new-post";
|
||||
"COMMUNICATION.Received.en#filter";
|
||||
#elif L==3
|
||||
"MESSAGES.Forums.en#new-post";
|
||||
"COMMUNICATION.Received.en#filter";
|
||||
#elif L==4
|
||||
"MESSAGES.Forums.es#nuevo-comentario";
|
||||
"COMMUNICATION.Received.es#filtro";
|
||||
#elif L==5
|
||||
"MESSAGES.Forums.en#new-post";
|
||||
"COMMUNICATION.Received.en#filter";
|
||||
#elif L==6
|
||||
"MESSAGES.Forums.es#nuevo-comentario";
|
||||
"COMMUNICATION.Received.es#filtro";
|
||||
#elif L==7
|
||||
"MESSAGES.Forums.en#new-post";
|
||||
"COMMUNICATION.Received.en#filter";
|
||||
#elif L==8
|
||||
"MESSAGES.Forums.en#new-post";
|
||||
"COMMUNICATION.Received.en#filter";
|
||||
#elif L==9
|
||||
"MESSAGES.Forums.en#new-post";
|
||||
"COMMUNICATION.Received.en#filter";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Write =
|
||||
const char *Hlp_COMMUNICATION_Messages_sent =
|
||||
#if L==1
|
||||
"MESSAGES.Write.es";
|
||||
"COMMUNICATION.Sent.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Write.en";
|
||||
"COMMUNICATION.Sent.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Write.en";
|
||||
"COMMUNICATION.Sent.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Write.es";
|
||||
"COMMUNICATION.Sent.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Write.en";
|
||||
"COMMUNICATION.Sent.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Write.es";
|
||||
"COMMUNICATION.Sent.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Write.en";
|
||||
"COMMUNICATION.Sent.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Write.en";
|
||||
"COMMUNICATION.Sent.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Write.en";
|
||||
"COMMUNICATION.Sent.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Received =
|
||||
const char *Hlp_COMMUNICATION_Messages_sent_filter =
|
||||
#if L==1
|
||||
"MESSAGES.Received.es";
|
||||
"COMMUNICATION.Sent.es#filtro";
|
||||
#elif L==2
|
||||
"MESSAGES.Received.en";
|
||||
"COMMUNICATION.Sent.en#filter";
|
||||
#elif L==3
|
||||
"MESSAGES.Received.en";
|
||||
"COMMUNICATION.Sent.en#filter";
|
||||
#elif L==4
|
||||
"MESSAGES.Received.es";
|
||||
"COMMUNICATION.Sent.es#filtro";
|
||||
#elif L==5
|
||||
"MESSAGES.Received.en";
|
||||
"COMMUNICATION.Sent.en#filter";
|
||||
#elif L==6
|
||||
"MESSAGES.Received.es";
|
||||
"COMMUNICATION.Sent.es#filtro";
|
||||
#elif L==7
|
||||
"MESSAGES.Received.en";
|
||||
"COMMUNICATION.Sent.en#filter";
|
||||
#elif L==8
|
||||
"MESSAGES.Received.en";
|
||||
"COMMUNICATION.Sent.en#filter";
|
||||
#elif L==9
|
||||
"MESSAGES.Received.en";
|
||||
"COMMUNICATION.Sent.en#filter";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Received_filter =
|
||||
const char *Hlp_COMMUNICATION_Email =
|
||||
#if L==1
|
||||
"MESSAGES.Received.es#filtro";
|
||||
"COMMUNICATION.Email.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Received.en#filter";
|
||||
"COMMUNICATION.Email.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Received.en#filter";
|
||||
"COMMUNICATION.Email.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Received.es#filtro";
|
||||
"COMMUNICATION.Email.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Received.en#filter";
|
||||
"COMMUNICATION.Email.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Received.es#filtro";
|
||||
"COMMUNICATION.Email.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Received.en#filter";
|
||||
"COMMUNICATION.Email.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Received.en#filter";
|
||||
"COMMUNICATION.Email.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Received.en#filter";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Sent =
|
||||
#if L==1
|
||||
"MESSAGES.Sent.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Sent.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Sent.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Sent.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Sent.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Sent.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Sent.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Sent.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Sent.en";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Sent_filter =
|
||||
#if L==1
|
||||
"MESSAGES.Sent.es#filtro";
|
||||
#elif L==2
|
||||
"MESSAGES.Sent.en#filter";
|
||||
#elif L==3
|
||||
"MESSAGES.Sent.en#filter";
|
||||
#elif L==4
|
||||
"MESSAGES.Sent.es#filtro";
|
||||
#elif L==5
|
||||
"MESSAGES.Sent.en#filter";
|
||||
#elif L==6
|
||||
"MESSAGES.Sent.es#filtro";
|
||||
#elif L==7
|
||||
"MESSAGES.Sent.en#filter";
|
||||
#elif L==8
|
||||
"MESSAGES.Sent.en#filter";
|
||||
#elif L==9
|
||||
"MESSAGES.Sent.en#filter";
|
||||
#endif
|
||||
|
||||
const char *Hlp_MESSAGES_Email =
|
||||
#if L==1
|
||||
"MESSAGES.Email.es";
|
||||
#elif L==2
|
||||
"MESSAGES.Email.en";
|
||||
#elif L==3
|
||||
"MESSAGES.Email.en";
|
||||
#elif L==4
|
||||
"MESSAGES.Email.es";
|
||||
#elif L==5
|
||||
"MESSAGES.Email.en";
|
||||
#elif L==6
|
||||
"MESSAGES.Email.es";
|
||||
#elif L==7
|
||||
"MESSAGES.Email.en";
|
||||
#elif L==8
|
||||
"MESSAGES.Email.en";
|
||||
#elif L==9
|
||||
"MESSAGES.Email.en";
|
||||
"COMMUNICATION.Email.en";
|
||||
#endif
|
||||
|
||||
/***** ANALYTICS tab *****/
|
||||
|
|
|
@ -879,7 +879,7 @@ void Mai_ReqUsrsToListEmails (void)
|
|||
|
||||
static void Mai_PutFormToSelectUsrsToListEmails (__attribute__((unused)) void *Args)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Email;
|
||||
extern const char *Hlp_COMMUNICATION_Email;
|
||||
extern const char *Txt_Email;
|
||||
extern const char *Txt_View_email_addresses;
|
||||
|
||||
|
@ -888,7 +888,7 @@ static void Mai_PutFormToSelectUsrsToListEmails (__attribute__((unused)) void *A
|
|||
ActMaiUsr,
|
||||
NULL,NULL,
|
||||
Txt_Email,
|
||||
Hlp_MESSAGES_Email,
|
||||
Hlp_COMMUNICATION_Email,
|
||||
Txt_View_email_addresses,
|
||||
false); // Do not put form with date range
|
||||
}
|
||||
|
@ -912,7 +912,7 @@ void Mai_GetSelectedUsrsAndListEmails (void)
|
|||
|
||||
static void Mai_ListEmails (__attribute__((unused)) void *Args)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Email;
|
||||
extern const char *Hlp_COMMUNICATION_Email;
|
||||
extern const char *The_ClassFormOutBoxBold[The_NUM_THEMES];
|
||||
extern const char *Txt_Email_addresses;
|
||||
extern const char *Txt_X_users_who_have_email;
|
||||
|
@ -928,7 +928,7 @@ static void Mai_ListEmails (__attribute__((unused)) void *Args)
|
|||
/***** Start the box used to list the emails *****/
|
||||
Box_BoxBegin (NULL,Txt_Email_addresses,
|
||||
NULL,NULL,
|
||||
Hlp_MESSAGES_Email,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Email,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Start list with users' email addresses *****/
|
||||
HTM_DIV_Begin ("class=\"DAT_SMALL CM\"");
|
||||
|
|
|
@ -152,7 +152,7 @@ static const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_
|
|||
[ 1] = ActSeeAllNot,
|
||||
[ 2] = ActSeeFor,
|
||||
[ 3] = ActSeeChtRms,
|
||||
[ 4] = ActSeeMsg,
|
||||
[ 4] = ActSeeRcvMsg,
|
||||
[ 5] = ActReqMaiUsr,
|
||||
},
|
||||
[TabAna] = {
|
||||
|
|
207
swad_message.c
207
swad_message.c
|
@ -75,8 +75,9 @@ extern struct Globals Gbl;
|
|||
|
||||
static const Pag_WhatPaginate_t Msg_WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = Pag_MESSAGES_RECEIVED,
|
||||
[Msg_MESSAGES_SENT ] = Pag_MESSAGES_SENT,
|
||||
[Msg_WRITING ] = Pag_NONE,
|
||||
[Msg_RECEIVED] = Pag_MESSAGES_RECEIVED,
|
||||
[Msg_SENT ] = Pag_MESSAGES_SENT,
|
||||
};
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -236,7 +237,7 @@ void Msg_FormMsgUsrs (void)
|
|||
static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
|
||||
char Content[Cns_MAX_BYTES_LONG_TEXT + 1])
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Write;
|
||||
extern const char *Hlp_COMMUNICATION_Messages_write;
|
||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||
extern const char *Txt_Reply_message;
|
||||
extern const char *Txt_New_message;
|
||||
|
@ -290,8 +291,8 @@ static void Msg_PutFormMsgUsrs (struct Msg_Messages *Messages,
|
|||
/***** Begin box *****/
|
||||
Box_BoxBegin (NULL,Messages->Reply.IsReply ? Txt_Reply_message :
|
||||
Txt_New_message,
|
||||
NULL,NULL,
|
||||
Hlp_MESSAGES_Write,Box_NOT_CLOSABLE);
|
||||
Msg_PutIconsListMsgs,Messages,
|
||||
Hlp_COMMUNICATION_Messages_write,Box_NOT_CLOSABLE);
|
||||
|
||||
if (Messages->ShowOnlyOneRecipient)
|
||||
/***** Form to show several potential recipients *****/
|
||||
|
@ -989,7 +990,7 @@ void Msg_ReqDelAllRecMsgs (void)
|
|||
}
|
||||
|
||||
/* Show received messages again */
|
||||
Messages.TypeOfMessages = Msg_MESSAGES_RECEIVED;
|
||||
Messages.TypeOfMessages = Msg_RECEIVED;
|
||||
Msg_ShowSentOrReceivedMessages (&Messages);
|
||||
|
||||
/* End alert */
|
||||
|
@ -1032,7 +1033,7 @@ void Msg_ReqDelAllSntMsgs (void)
|
|||
Messages.FilterCrsShrtName);
|
||||
|
||||
/* Show sent messages again */
|
||||
Messages.TypeOfMessages = Msg_MESSAGES_SENT;
|
||||
Messages.TypeOfMessages = Msg_SENT;
|
||||
Msg_ShowSentOrReceivedMessages (&Messages);
|
||||
|
||||
/* End alert */
|
||||
|
@ -1063,7 +1064,7 @@ void Msg_DelAllRecMsgs (void)
|
|||
|
||||
/***** Delete messages *****/
|
||||
NumMsgs = Msg_DelSomeRecOrSntMsgsUsr (&Messages,
|
||||
Msg_MESSAGES_RECEIVED,
|
||||
Msg_RECEIVED,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
FilterFromToSubquery);
|
||||
Msg_ShowNumMsgsDeleted (NumMsgs);
|
||||
|
@ -1091,7 +1092,7 @@ void Msg_DelAllSntMsgs (void)
|
|||
|
||||
/***** Delete messages *****/
|
||||
NumMsgs = Msg_DelSomeRecOrSntMsgsUsr (&Messages,
|
||||
Msg_MESSAGES_SENT,
|
||||
Msg_SENT,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||
FilterFromToSubquery);
|
||||
Msg_ShowNumMsgsDeleted (NumMsgs);
|
||||
|
@ -1470,10 +1471,10 @@ static unsigned long Msg_DelSomeRecOrSntMsgsUsr (const struct Msg_Messages *Mess
|
|||
Lay_ShowErrorAndExit ("Wrong code of message.");
|
||||
switch (TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
Msg_MoveReceivedMsgToDeleted (MsgCod,UsrCod);
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
Msg_MoveSentMsgToDeleted (MsgCod);
|
||||
break;
|
||||
default:
|
||||
|
@ -1774,7 +1775,7 @@ void Msg_ShowSntMsgs (void)
|
|||
Msg_ResetMessages (&Messages);
|
||||
|
||||
/***** Show the sent messages *****/
|
||||
Messages.TypeOfMessages = Msg_MESSAGES_SENT;
|
||||
Messages.TypeOfMessages = Msg_SENT;
|
||||
Msg_ShowSentOrReceivedMessages (&Messages);
|
||||
}
|
||||
|
||||
|
@ -1798,7 +1799,7 @@ void Msg_ShowRecMsgs (void)
|
|||
}
|
||||
|
||||
/***** Show the received messages *****/
|
||||
Messages.TypeOfMessages = Msg_MESSAGES_RECEIVED;
|
||||
Messages.TypeOfMessages = Msg_RECEIVED;
|
||||
Msg_ShowSentOrReceivedMessages (&Messages);
|
||||
}
|
||||
|
||||
|
@ -1808,10 +1809,10 @@ void Msg_ShowRecMsgs (void)
|
|||
|
||||
static void Msg_ShowSentOrReceivedMessages (struct Msg_Messages *Messages)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Received;
|
||||
extern const char *Hlp_MESSAGES_Received_filter;
|
||||
extern const char *Hlp_MESSAGES_Sent;
|
||||
extern const char *Hlp_MESSAGES_Sent_filter;
|
||||
extern const char *Hlp_COMMUNICATION_Messages_received;
|
||||
extern const char *Hlp_COMMUNICATION_Messages_received_filter;
|
||||
extern const char *Hlp_COMMUNICATION_Messages_sent;
|
||||
extern const char *Hlp_COMMUNICATION_Messages_sent_filter;
|
||||
extern const char *The_ClassFormLinkInBoxBold[The_NUM_THEMES];
|
||||
extern const char *Txt_Filter;
|
||||
extern const char *Txt_Update_messages;
|
||||
|
@ -1821,29 +1822,33 @@ static void Msg_ShowSentOrReceivedMessages (struct Msg_Messages *Messages)
|
|||
unsigned long NumRow;
|
||||
unsigned long NumRows;
|
||||
char *NumMsgsStr;
|
||||
unsigned long NumMsg = 0; // Initialized to avoid warning
|
||||
unsigned NumUnreadMsgs = 0; // Initialized to avoid warning
|
||||
unsigned long NumMsg;
|
||||
unsigned NumUnreadMsgs;
|
||||
struct Pagination Pagination;
|
||||
long MsgCod;
|
||||
static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = ActSeeRcvMsg,
|
||||
[Msg_MESSAGES_SENT ] = ActSeeSntMsg,
|
||||
[Msg_WRITING ] = ActUnk,
|
||||
[Msg_RECEIVED] = ActSeeRcvMsg,
|
||||
[Msg_SENT ] = ActSeeSntMsg,
|
||||
};
|
||||
static const Pag_WhatPaginate_t WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = Pag_MESSAGES_RECEIVED,
|
||||
[Msg_MESSAGES_SENT ] = Pag_MESSAGES_SENT,
|
||||
[Msg_WRITING ] = Pag_NONE,
|
||||
[Msg_RECEIVED] = Pag_MESSAGES_RECEIVED,
|
||||
[Msg_SENT ] = Pag_MESSAGES_SENT,
|
||||
};
|
||||
const char *Help[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = Hlp_MESSAGES_Received,
|
||||
[Msg_MESSAGES_SENT ] = Hlp_MESSAGES_Sent,
|
||||
[Msg_WRITING ] = NULL,
|
||||
[Msg_RECEIVED] = Hlp_COMMUNICATION_Messages_received,
|
||||
[Msg_SENT ] = Hlp_COMMUNICATION_Messages_sent,
|
||||
};
|
||||
const char *HelpFilter[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = Hlp_MESSAGES_Received_filter,
|
||||
[Msg_MESSAGES_SENT ] = Hlp_MESSAGES_Sent_filter,
|
||||
[Msg_WRITING ] = NULL,
|
||||
[Msg_RECEIVED] = Hlp_COMMUNICATION_Messages_received_filter,
|
||||
[Msg_SENT ] = Hlp_COMMUNICATION_Messages_sent_filter,
|
||||
};
|
||||
|
||||
/***** Get the page number *****/
|
||||
|
@ -1859,14 +1864,17 @@ static void Msg_ShowSentOrReceivedMessages (struct Msg_Messages *Messages)
|
|||
/***** Get number of unread messages *****/
|
||||
switch (Messages->TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
Messages->ShowOnlyUnreadMsgs = Msg_GetParamOnlyUnreadMsgs ();
|
||||
NumUnreadMsgs = Msg_GetNumUnreadMsgs (Messages,
|
||||
FilterFromToSubquery);
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
NumUnreadMsgs = 0;
|
||||
break;
|
||||
default:
|
||||
NumUnreadMsgs = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Get messages from database *****/
|
||||
|
@ -1894,7 +1902,7 @@ static void Msg_ShowSentOrReceivedMessages (struct Msg_Messages *Messages)
|
|||
|
||||
HTM_DIV_Begin ("class=\"CM\"");
|
||||
Msg_ShowFormSelectCourseSentOrRecMsgs (Messages);
|
||||
if (Messages->TypeOfMessages == Msg_MESSAGES_RECEIVED)
|
||||
if (Messages->TypeOfMessages == Msg_RECEIVED)
|
||||
Msg_ShowFormToShowOnlyUnreadMessages (Messages);
|
||||
HTM_DIV_End ();
|
||||
Msg_ShowFormToFilterMsgs (Messages);
|
||||
|
@ -1954,7 +1962,7 @@ static void Msg_ShowSentOrReceivedMessages (struct Msg_Messages *Messages)
|
|||
HTM_TABLE_BeginWidePadding (2);
|
||||
|
||||
mysql_data_seek (mysql_res,(my_ulonglong) (Pagination.FirstItemVisible - 1));
|
||||
for (NumRow = Pagination.FirstItemVisible;
|
||||
for (NumRow = Pagination.FirstItemVisible;
|
||||
NumRow <= Pagination.LastItemVisible;
|
||||
NumRow++)
|
||||
{
|
||||
|
@ -2023,7 +2031,7 @@ static unsigned long Msg_GetSentOrReceivedMsgs (const struct Msg_Messages *Messa
|
|||
if (Messages->FilterCrsCod > 0) // If origin course selected
|
||||
switch (Messages->TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
StrUnreadMsg = (Messages->ShowOnlyUnreadMsgs ? " AND msg_rcv.Open='N'" :
|
||||
"");
|
||||
if (FilterFromToSubquery[0])
|
||||
|
@ -2063,7 +2071,7 @@ static unsigned long Msg_GetSentOrReceivedMsgs (const struct Msg_Messages *Messa
|
|||
Lay_NotEnoughMemoryExit ();
|
||||
}
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
if (FilterFromToSubquery[0])
|
||||
{
|
||||
if (asprintf (&SubQuery,"(SELECT DISTINCT msg_snt.MsgCod"
|
||||
|
@ -2098,7 +2106,7 @@ static unsigned long Msg_GetSentOrReceivedMsgs (const struct Msg_Messages *Messa
|
|||
else // If no origin course selected
|
||||
switch (Messages->TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
if (FilterFromToSubquery[0])
|
||||
{
|
||||
StrUnreadMsg = (Messages->ShowOnlyUnreadMsgs ? " AND msg_rcv.Open='N'" :
|
||||
|
@ -2129,7 +2137,7 @@ static unsigned long Msg_GetSentOrReceivedMsgs (const struct Msg_Messages *Messa
|
|||
Lay_NotEnoughMemoryExit ();
|
||||
}
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
if (FilterFromToSubquery[0])
|
||||
{
|
||||
if (asprintf (&SubQuery,"(SELECT msg_snt.MsgCod"
|
||||
|
@ -2566,7 +2574,7 @@ static void Msg_SetNumMsgsStr (const struct Msg_Messages *Messages,
|
|||
|
||||
switch (Messages->TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
if (Messages->NumMsgs == 1)
|
||||
{
|
||||
if (NumUnreadMsgs)
|
||||
|
@ -2605,7 +2613,7 @@ static void Msg_SetNumMsgsStr (const struct Msg_Messages *Messages,
|
|||
}
|
||||
}
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
if (Messages->NumMsgs == 1)
|
||||
{
|
||||
if (asprintf (NumMsgsStr,"1 %s",Txt_message_sent) < 0)
|
||||
|
@ -2618,6 +2626,8 @@ static void Msg_SetNumMsgsStr (const struct Msg_Messages *Messages,
|
|||
Lay_NotEnoughMemoryExit ();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2632,31 +2642,66 @@ static void Msg_PutIconsListMsgs (void *Messages)
|
|||
extern const char *Txt_MSGS_Write;
|
||||
static const Act_Action_t ActionReqDelAllMsg[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = ActReqDelAllRcvMsg,
|
||||
[Msg_MESSAGES_SENT ] = ActReqDelAllSntMsg,
|
||||
[Msg_WRITING ] = ActUnk,
|
||||
[Msg_RECEIVED] = ActReqDelAllRcvMsg,
|
||||
[Msg_SENT ] = ActReqDelAllSntMsg,
|
||||
};
|
||||
|
||||
if (Messages)
|
||||
{
|
||||
/***** Put icon to write a new message *****/
|
||||
Lay_PutContextualLinkOnlyIcon (ActReqMsgUsr,NULL,
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages,
|
||||
"marker.svg",
|
||||
Txt_MSGS_Write);
|
||||
switch (((struct Msg_Messages *) Messages)->TypeOfMessages)
|
||||
{
|
||||
case Msg_RECEIVED:
|
||||
case Msg_SENT:
|
||||
Lay_PutContextualLinkOnlyIcon (ActReqMsgUsr,NULL,
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages,
|
||||
"marker.svg",
|
||||
Txt_MSGS_Write);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Put icon to see received/sent messages *****/
|
||||
Lay_PutContextualLinkOnlyIcon (ActSeeRcvMsg,NULL,
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages,
|
||||
"inbox.svg",
|
||||
Txt_MSGS_Received);
|
||||
Lay_PutContextualLinkOnlyIcon (ActSeeSntMsg,NULL,
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages,
|
||||
"share.svg",
|
||||
Txt_MSGS_Sent);
|
||||
/***** Put icon to see received messages *****/
|
||||
switch (((struct Msg_Messages *) Messages)->TypeOfMessages)
|
||||
{
|
||||
case Msg_WRITING:
|
||||
case Msg_SENT:
|
||||
Lay_PutContextualLinkOnlyIcon (ActSeeRcvMsg,NULL,
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages,
|
||||
"inbox.svg",
|
||||
Txt_MSGS_Received);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Put icon to see sent messages *****/
|
||||
switch (((struct Msg_Messages *) Messages)->TypeOfMessages)
|
||||
{
|
||||
case Msg_WRITING:
|
||||
case Msg_RECEIVED:
|
||||
Lay_PutContextualLinkOnlyIcon (ActSeeSntMsg,NULL,
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages,
|
||||
"share.svg",
|
||||
Txt_MSGS_Sent);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Put icon to remove messages *****/
|
||||
Ico_PutContextualIconToRemove (ActionReqDelAllMsg[((struct Msg_Messages *) Messages)->TypeOfMessages],
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages);
|
||||
switch (((struct Msg_Messages *) Messages)->TypeOfMessages)
|
||||
{
|
||||
case Msg_RECEIVED:
|
||||
case Msg_SENT:
|
||||
Ico_PutContextualIconToRemove (ActionReqDelAllMsg[((struct Msg_Messages *) Messages)->TypeOfMessages],
|
||||
Msg_PutHiddenParamsMsgsFilters,Messages);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Put icon to show a figure *****/
|
||||
Fig_PutIconToShowFigure (Fig_MESSAGES);
|
||||
|
@ -2712,7 +2757,7 @@ static void Msg_GetDistinctCoursesInMyMessages (struct Msg_Messages *Messages)
|
|||
/***** Get distinct courses in my messages from database *****/
|
||||
switch (Messages->TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get distinct courses"
|
||||
" in your messages",""
|
||||
"SELECT DISTINCT courses.CrsCod,courses.ShortName"
|
||||
|
@ -2723,7 +2768,7 @@ static void Msg_GetDistinctCoursesInMyMessages (struct Msg_Messages *Messages)
|
|||
" ORDER BY courses.ShortName",
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get distinct courses"
|
||||
" in your messages",
|
||||
"SELECT DISTINCT courses.CrsCod,courses.ShortName"
|
||||
|
@ -2773,8 +2818,9 @@ static void Msg_ShowFormSelectCourseSentOrRecMsgs (const struct Msg_Messages *Me
|
|||
unsigned NumOriginCrs;
|
||||
const char *TxtSelector[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = Txt_Messages_received_from_A_COURSE,
|
||||
[Msg_MESSAGES_SENT ] = Txt_Messages_sent_from_A_COURSE
|
||||
[Msg_WRITING ] = NULL,
|
||||
[Msg_RECEIVED] = Txt_Messages_received_from_A_COURSE,
|
||||
[Msg_SENT ] = Txt_Messages_sent_from_A_COURSE
|
||||
};
|
||||
|
||||
/***** Course selection *****/
|
||||
|
@ -2809,8 +2855,9 @@ static void Msg_ShowFormToFilterMsgs (const struct Msg_Messages *Messages)
|
|||
extern const char *Txt_MSG_Content;
|
||||
const char *TxtFromTo[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = Txt_MSG_From,
|
||||
[Msg_MESSAGES_SENT ] = Txt_MSG_To
|
||||
[Msg_WRITING ] = NULL,
|
||||
[Msg_RECEIVED] = Txt_MSG_From,
|
||||
[Msg_SENT ] = Txt_MSG_To
|
||||
};
|
||||
|
||||
/***** Begin table *****/
|
||||
|
@ -3075,8 +3122,9 @@ static void Msg_ShowASentOrReceivedMessage (struct Msg_Messages *Messages,
|
|||
extern const char *Txt_MSG_Content;
|
||||
static const Act_Action_t ActionDelMsg[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = ActDelRcvMsg,
|
||||
[Msg_MESSAGES_SENT ] = ActDelSntMsg,
|
||||
[Msg_WRITING ] = ActUnk,
|
||||
[Msg_RECEIVED] = ActDelRcvMsg,
|
||||
[Msg_SENT ] = ActDelSntMsg,
|
||||
};
|
||||
struct UsrData UsrDat;
|
||||
const char *Title = NULL; // Initialized to avoid warning
|
||||
|
@ -3098,37 +3146,41 @@ static void Msg_ShowASentOrReceivedMessage (struct Msg_Messages *Messages,
|
|||
Msg_GetMsgSntData (MsgCod,&CrsCod,&UsrDat.UsrCod,&CreatTimeUTC,Subject,&Deleted);
|
||||
switch (Messages->TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
Msg_GetStatusOfReceivedMsg (MsgCod,&Open,&Replied,&Expanded);
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
Msg_GetStatusOfSentMsg (MsgCod,&Expanded);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
/***** Put an icon with message status *****/
|
||||
switch (Messages->TypeOfMessages)
|
||||
{
|
||||
case Msg_MESSAGES_RECEIVED:
|
||||
case Msg_RECEIVED:
|
||||
Title = (Open ? (Replied ? Txt_MSG_Replied :
|
||||
Txt_MSG_Not_replied) :
|
||||
Txt_MSG_Unopened);
|
||||
break;
|
||||
case Msg_MESSAGES_SENT:
|
||||
case Msg_SENT:
|
||||
Title = Txt_MSG_Sent;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
HTM_TR_Begin (NULL);
|
||||
|
||||
HTM_TD_Begin ("class=\"CONTEXT_COL %s\"",
|
||||
Messages->TypeOfMessages == Msg_MESSAGES_RECEIVED ? (Open ? "BG_MSG_BLUE" :
|
||||
"BG_MSG_GREEN") :
|
||||
"BG_MSG_BLUE");
|
||||
Ico_PutIcon (Messages->TypeOfMessages == Msg_MESSAGES_RECEIVED ? (Open ? (Replied ? "reply.svg" :
|
||||
"envelope-open-text.svg") :
|
||||
"envelope.svg") :
|
||||
"share.svg",
|
||||
Messages->TypeOfMessages == Msg_RECEIVED ? (Open ? "BG_MSG_BLUE" :
|
||||
"BG_MSG_GREEN") :
|
||||
"BG_MSG_BLUE");
|
||||
Ico_PutIcon (Messages->TypeOfMessages == Msg_RECEIVED ? (Open ? (Replied ? "reply.svg" :
|
||||
"envelope-open-text.svg") :
|
||||
"envelope.svg") :
|
||||
"share.svg",
|
||||
Title,"ICO16x16");
|
||||
|
||||
/***** Form to delete message *****/
|
||||
|
@ -3175,7 +3227,7 @@ static void Msg_ShowASentOrReceivedMessage (struct Msg_Messages *Messages,
|
|||
/***** Form to reply message *****/
|
||||
HTM_TR_Begin (NULL);
|
||||
HTM_TD_Begin ("class=\"LM\"");
|
||||
if (Messages->TypeOfMessages == Msg_MESSAGES_RECEIVED &&
|
||||
if (Messages->TypeOfMessages == Msg_RECEIVED &&
|
||||
Gbl.Usrs.Me.Role.Logged >= Rol_USR)
|
||||
// Guests (users without courses) can read messages but not reply them
|
||||
Msg_WriteFormToReply (MsgCod,CrsCod,FromThisCrs,Replied,&UsrDat);
|
||||
|
@ -3319,7 +3371,7 @@ static void Msg_WriteSentOrReceivedMsgSubject (struct Msg_Messages *Messages,
|
|||
"MSG_TIT_BG_NEW");
|
||||
|
||||
/***** Begin form to expand/contract the message *****/
|
||||
Frm_StartForm (Messages->TypeOfMessages == Msg_MESSAGES_RECEIVED ? (Expanded ? ActConRcvMsg :
|
||||
Frm_StartForm (Messages->TypeOfMessages == Msg_RECEIVED ? (Expanded ? ActConRcvMsg :
|
||||
ActExpRcvMsg) :
|
||||
(Expanded ? ActConSntMsg :
|
||||
ActExpSntMsg));
|
||||
|
@ -3597,8 +3649,9 @@ static void Msg_WriteMsgTo (struct Msg_Messages *Messages,long MsgCod)
|
|||
char PhotoURL[PATH_MAX + 1];
|
||||
static const Act_Action_t ActionSee[Msg_NUM_TYPES_OF_MSGS] =
|
||||
{
|
||||
[Msg_MESSAGES_RECEIVED] = ActSeeRcvMsg,
|
||||
[Msg_MESSAGES_SENT ] = ActSeeSntMsg,
|
||||
[Msg_WRITING ] = ActUnk,
|
||||
[Msg_RECEIVED] = ActSeeRcvMsg,
|
||||
[Msg_SENT ] = ActSeeSntMsg,
|
||||
};
|
||||
|
||||
/***** Get number of recipients of a message from database *****/
|
||||
|
|
|
@ -40,11 +40,12 @@
|
|||
/******************************** Public types *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Msg_NUM_TYPES_OF_MSGS 2
|
||||
#define Msg_NUM_TYPES_OF_MSGS 3
|
||||
typedef enum
|
||||
{
|
||||
Msg_MESSAGES_RECEIVED,
|
||||
Msg_MESSAGES_SENT,
|
||||
Msg_WRITING,
|
||||
Msg_RECEIVED,
|
||||
Msg_SENT,
|
||||
} Msg_TypeOfMessages_t;
|
||||
|
||||
typedef enum
|
||||
|
|
|
@ -94,7 +94,7 @@ static long Not_GetParamNotCod (void);
|
|||
|
||||
void Not_ShowFormNotice (void)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Notices;
|
||||
extern const char *Hlp_COMMUNICATION_Notices;
|
||||
extern const char *Txt_The_notice_will_appear_as_a_yellow_note_;
|
||||
extern const char *Txt_New_notice;
|
||||
extern const char *Txt_Create_notice;
|
||||
|
@ -109,7 +109,7 @@ void Not_ShowFormNotice (void)
|
|||
/***** Begin box *****/
|
||||
Box_BoxBegin (NULL,Txt_New_notice,
|
||||
NULL,NULL,
|
||||
Hlp_MESSAGES_Notices,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Notices,Box_NOT_CLOSABLE);
|
||||
|
||||
/***** Message body *****/
|
||||
HTM_TEXTAREA_Begin ("name=\"Content\" cols=\"30\" rows=\"10\""
|
||||
|
@ -353,7 +353,7 @@ void Not_RemoveNotice (void)
|
|||
|
||||
void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod)
|
||||
{
|
||||
extern const char *Hlp_MESSAGES_Notices;
|
||||
extern const char *Hlp_COMMUNICATION_Notices;
|
||||
extern const char *Txt_Notices;
|
||||
extern const char *Txt_No_notices;
|
||||
MYSQL_RES *mysql_res;
|
||||
|
@ -412,7 +412,7 @@ void Not_ShowNotices (Not_Listing_t TypeNoticesListing,long HighlightNotCod)
|
|||
Not_ContainerWidth[Not_LIST_FULL_NOTICES] + 50);
|
||||
Box_BoxBegin (StrWidth,Txt_Notices,
|
||||
Not_PutIconsListNotices,NULL,
|
||||
Hlp_MESSAGES_Notices,Box_NOT_CLOSABLE);
|
||||
Hlp_COMMUNICATION_Notices,Box_NOT_CLOSABLE);
|
||||
if (!NumNotices)
|
||||
Ale_ShowAlert (Ale_INFO,Txt_No_notices);
|
||||
}
|
||||
|
|
|
@ -61,6 +61,7 @@ extern const Act_Action_t For_ActionsSeePstFor[For_NUM_TYPES_FORUM];
|
|||
|
||||
static const char *Pag_ParamNumPag[Pag_NUM_WHAT_PAGINATE] =
|
||||
{
|
||||
[Pag_NONE ] = NULL,
|
||||
[Pag_ASSIGNMENTS ] = "NumPagAsg",
|
||||
[Pag_PROJECTS ] = "NumPagPrj",
|
||||
[Pag_EXAMS ] = "NumPagExa",
|
||||
|
@ -264,6 +265,8 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
|||
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (asprintf (&ClassLink,"BT_LINK LT %s",ClassTxt) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
@ -389,6 +392,8 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
|||
Pag_PutHiddenParamPagNum (WhatPaginate,1);
|
||||
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (asprintf (&Title,Txt_Page_X_of_Y,1,Pagination->NumPags) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
@ -500,6 +505,8 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
|||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->LeftPage);
|
||||
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (asprintf (&Title,Txt_Page_X_of_Y,
|
||||
Pagination->LeftPage,Pagination->NumPags) < 0)
|
||||
|
@ -623,6 +630,8 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
|||
Pag_PutHiddenParamPagNum (WhatPaginate,NumPage);
|
||||
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
HTM_BUTTON_SUBMIT_Begin (Title,ClassLink,NULL);
|
||||
HTM_Unsigned (NumPage);
|
||||
|
@ -733,6 +742,8 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
|||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->RightPage);
|
||||
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (asprintf (&Title,Txt_Page_X_of_Y,
|
||||
Pagination->RightPage,Pagination->NumPags) < 0)
|
||||
|
@ -844,6 +855,8 @@ void Pag_WriteLinksToPages (Pag_WhatPaginate_t WhatPaginate,
|
|||
Pag_PutHiddenParamPagNum (WhatPaginate,Pagination->NumPags);
|
||||
Usr_PutParamOtherUsrCodEncrypted (Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (asprintf (&Title,Txt_Page_X_of_Y,
|
||||
Pagination->NumPags,Pagination->NumPags) < 0)
|
||||
|
|
|
@ -39,21 +39,22 @@
|
|||
/******************************** Public types *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Pag_NUM_WHAT_PAGINATE 12
|
||||
#define Pag_NUM_WHAT_PAGINATE 13
|
||||
typedef enum
|
||||
{
|
||||
Pag_ASSIGNMENTS = 0,
|
||||
Pag_PROJECTS = 1,
|
||||
Pag_EXAMS = 2,
|
||||
Pag_GAMES = 3,
|
||||
Pag_SURVEYS = 4,
|
||||
Pag_ATT_EVENTS = 5,
|
||||
Pag_THREADS_FORUM = 6,
|
||||
Pag_POSTS_FORUM = 7,
|
||||
Pag_MESSAGES_RECEIVED = 8,
|
||||
Pag_MESSAGES_SENT = 9,
|
||||
Pag_MY_AGENDA = 10,
|
||||
Pag_ANOTHER_AGENDA = 11,
|
||||
Pag_NONE = 0,
|
||||
Pag_ASSIGNMENTS = 1,
|
||||
Pag_PROJECTS = 2,
|
||||
Pag_EXAMS = 3,
|
||||
Pag_GAMES = 4,
|
||||
Pag_SURVEYS = 5,
|
||||
Pag_ATT_EVENTS = 6,
|
||||
Pag_THREADS_FORUM = 7,
|
||||
Pag_POSTS_FORUM = 8,
|
||||
Pag_MESSAGES_RECEIVED = 9,
|
||||
Pag_MESSAGES_SENT = 10,
|
||||
Pag_MY_AGENDA = 11,
|
||||
Pag_ANOTHER_AGENDA = 12,
|
||||
} Pag_WhatPaginate_t;
|
||||
|
||||
struct Pagination // Used for threads and messages pagination
|
||||
|
|
|
@ -25367,7 +25367,7 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActSeeMsg] =
|
||||
[ActSeeRcvMsg] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
|
@ -28473,27 +28473,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActSeeRcvMsg] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
"Show the messages received from other users"
|
||||
#elif L==4 // es
|
||||
"Ver mensajes recibidos de otros usuarios"
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"Ver mensajes recibidos de otros usuarios" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActSeeSntMsg] =
|
||||
|
|
Loading…
Reference in New Issue
Block a user