Version20.1

This commit is contained in:
acanas 2020-09-25 12:43:21 +02:00
parent b600920e67
commit e341edc427
9 changed files with 325 additions and 197 deletions

1
icon/inbox.svg Normal file
View File

@ -0,0 +1 @@
<svg aria-hidden="true" data-prefix="fas" data-icon="inbox" class="svg-inline--fa fa-inbox fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="#404040" d="M567.938 243.908L462.25 85.374A48.003 48.003 0 0 0 422.311 64H153.689a48 48 0 0 0-39.938 21.374L8.062 243.908A47.994 47.994 0 0 0 0 270.533V400c0 26.51 21.49 48 48 48h480c26.51 0 48-21.49 48-48V270.533a47.994 47.994 0 0 0-8.062-26.625zM162.252 128h251.497l85.333 128H376l-32 64H232l-32-64H76.918l85.334-128z"></path></svg>

After

Width:  |  Height:  |  Size: 515 B

View File

@ -1195,7 +1195,10 @@ int swad__getAvailableRoles (struct soap *soap,
/***** Initializations *****/ /***** Initializations *****/
API_Set_gSOAP_RuntimeEnv (soap); API_Set_gSOAP_RuntimeEnv (soap);
Gbl.WebService.Function = API_getAvailableRoles; Gbl.WebService.Function = API_getAvailableRoles;
/***** Initialize hierarchy *****/
Gbl.Hierarchy.Crs.CrsCod = (long) courseCode; Gbl.Hierarchy.Crs.CrsCod = (long) courseCode;
Hie_InitHierarchy ();
/***** Default value returned on error *****/ /***** Default value returned on error *****/
getAvailableRolesOut->roles = 0; // error getAvailableRolesOut->roles = 0; // error
@ -1473,7 +1476,10 @@ int swad__getCourseInfo (struct soap *soap,
/***** Initializations *****/ /***** Initializations *****/
API_Set_gSOAP_RuntimeEnv (soap); API_Set_gSOAP_RuntimeEnv (soap);
Gbl.WebService.Function = API_getCourseInfo; Gbl.WebService.Function = API_getCourseInfo;
/***** Initialize hierarchy *****/
Gbl.Hierarchy.Crs.CrsCod = (long) courseCode; Gbl.Hierarchy.Crs.CrsCod = (long) courseCode;
Hie_InitHierarchy ();
/***** Check web service key *****/ /***** Check web service key *****/
if ((ReturnCode = API_CheckWSKey (wsKey)) != SOAP_OK) if ((ReturnCode = API_CheckWSKey (wsKey)) != SOAP_OK)
@ -1528,9 +1534,6 @@ int swad__getCourseInfo (struct soap *soap,
Str_Copy (getCourseInfo->infoSrc,NamesInWSForInfoSrc[InfoSrc], Str_Copy (getCourseInfo->infoSrc,NamesInWSForInfoSrc[InfoSrc],
Length); Length);
/***** Set paths *****/
Hie_InitHierarchy ();
/***** Get info text *****/ /***** Get info text *****/
getCourseInfo->infoTxt = NULL; getCourseInfo->infoTxt = NULL;
switch (InfoSrc) switch (InfoSrc)
@ -2070,7 +2073,10 @@ int swad__getGroupTypes (struct soap *soap,
/***** Initializations *****/ /***** Initializations *****/
API_Set_gSOAP_RuntimeEnv (soap); API_Set_gSOAP_RuntimeEnv (soap);
Gbl.WebService.Function = API_getGroupTypes; Gbl.WebService.Function = API_getGroupTypes;
/***** Initialize hierarchy *****/
Gbl.Hierarchy.Crs.CrsCod = (long) courseCode; Gbl.Hierarchy.Crs.CrsCod = (long) courseCode;
Hie_InitHierarchy ();
/***** Open groups of this course that must be opened /***** Open groups of this course that must be opened
if open time is in the past *****/ if open time is in the past *****/
@ -2186,7 +2192,10 @@ int swad__getGroups (struct soap *soap,
/***** Initializations *****/ /***** Initializations *****/
API_Set_gSOAP_RuntimeEnv (soap); API_Set_gSOAP_RuntimeEnv (soap);
Gbl.WebService.Function = API_getGroups; Gbl.WebService.Function = API_getGroups;
/***** Initialize hierarchy *****/
Gbl.Hierarchy.Crs.CrsCod = (long) courseCode; Gbl.Hierarchy.Crs.CrsCod = (long) courseCode;
Hie_InitHierarchy ();
/***** Open groups of this course that must be opened /***** Open groups of this course that must be opened
if open time is in the past *****/ if open time is in the past *****/
@ -5821,6 +5830,7 @@ int swad__getFile (struct soap *soap,
&Gbl.Hierarchy.Deg.DegCod, &Gbl.Hierarchy.Deg.DegCod,
&Gbl.Hierarchy.Crs.CrsCod, &Gbl.Hierarchy.Crs.CrsCod,
&Gbl.Crs.Grps.GrpCod); &Gbl.Crs.Grps.GrpCod);
Hie_InitHierarchy ();
/***** Get some of my data *****/ /***** Get some of my data *****/
if (!API_GetSomeUsrDataFromUsrCod (&Gbl.Usrs.Me.UsrDat,Gbl.Hierarchy.Crs.CrsCod)) if (!API_GetSomeUsrDataFromUsrCod (&Gbl.Usrs.Me.UsrDat,Gbl.Hierarchy.Crs.CrsCod))
@ -5875,7 +5885,6 @@ int swad__getFile (struct soap *soap,
} }
/***** Set paths *****/ /***** Set paths *****/
Hie_InitHierarchy ();
Brw_InitializeFileBrowser (); Brw_InitializeFileBrowser ();
Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata.FilFolLnk.Path, Str_Copy (Gbl.FileBrowser.FilFolLnk.Path,FileMetadata.FilFolLnk.Path,
PATH_MAX); PATH_MAX);

View File

@ -1518,10 +1518,11 @@ 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" }, [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 ,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" }, [ActSeeChtRms ] = { 51, 3,TabMsg,ActSeeChtRms ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cht_ShowChatRooms ,"comments" },
[ActReqMsgUsr ] = { 26, 4,TabMsg,ActReqMsgUsr ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_FormMsgUsrs ,"marker" }, [ActSeeMsg ] = {1912, 4,TabMsg,ActSeeMsg ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,"envelope" },
[ActSeeRcvMsg ] = { 3, 5,TabMsg,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,"inbox" }, [ActReqMsgUsr ] = { 26, 5,TabMsg,ActReqMsgUsr ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_FormMsgUsrs ,"marker" },
[ActSeeSntMsg ] = { 70, 6,TabMsg,ActSeeSntMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowSntMsgs ,"share" }, [ActSeeRcvMsg ] = { 3, 6,TabMsg,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,"inbox" },
[ActReqMaiUsr ] = {1772, 7,TabMsg,ActReqMaiUsr ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mai_ReqUsrsToListEmails ,"envelope" }, [ActSeeSntMsg ] = { 70, 7,TabMsg,ActSeeSntMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowSntMsgs ,"share" },
[ActReqMaiUsr ] = {1772, 8,TabMsg,ActReqMaiUsr ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mai_ReqUsrsToListEmails ,"at" },
// Actions not in menu: // Actions not in menu:
[ActWriAnn ] = {1237,-1,TabUnk,ActSeeAnn ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ann_ShowFormAnnouncement ,NULL}, [ActWriAnn ] = {1237,-1,TabUnk,ActSeeAnn ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ann_ShowFormAnnouncement ,NULL},
@ -3724,6 +3725,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActValSetQst, // #1909 ActValSetQst, // #1909
ActInvSetQst, // #1910 ActInvSetQst, // #1910
ActChgRooMAC, // #1911 ActChgRooMAC, // #1911
ActSeeMsg, // #1912
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -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 typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_MAX_ACTION_COD 1911 #define Act_MAX_ACTION_COD 1912
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -1457,176 +1457,177 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActSeeAllNot (ActUnfSevTch + 2) #define ActSeeAllNot (ActUnfSevTch + 2)
#define ActSeeFor (ActUnfSevTch + 3) #define ActSeeFor (ActUnfSevTch + 3)
#define ActSeeChtRms (ActUnfSevTch + 4) #define ActSeeChtRms (ActUnfSevTch + 4)
#define ActReqMsgUsr (ActUnfSevTch + 5) #define ActSeeMsg (ActUnfSevTch + 5)
#define ActSeeRcvMsg (ActUnfSevTch + 6) #define ActReqMsgUsr (ActUnfSevTch + 6)
#define ActSeeSntMsg (ActUnfSevTch + 7) #define ActSeeRcvMsg (ActUnfSevTch + 7)
#define ActReqMaiUsr (ActUnfSevTch + 8) #define ActSeeSntMsg (ActUnfSevTch + 8)
#define ActReqMaiUsr (ActUnfSevTch + 9)
// Secondary actions // Secondary actions
#define ActWriAnn (ActUnfSevTch + 9) #define ActWriAnn (ActUnfSevTch + 10)
#define ActRcvAnn (ActUnfSevTch + 10) #define ActRcvAnn (ActUnfSevTch + 11)
#define ActHidAnn (ActUnfSevTch + 11) #define ActHidAnn (ActUnfSevTch + 12)
#define ActRevAnn (ActUnfSevTch + 12) #define ActRevAnn (ActUnfSevTch + 13)
#define ActRemAnn (ActUnfSevTch + 13) #define ActRemAnn (ActUnfSevTch + 14)
#define ActSeeOneNot (ActUnfSevTch + 14) #define ActSeeOneNot (ActUnfSevTch + 15)
#define ActWriNot (ActUnfSevTch + 15) #define ActWriNot (ActUnfSevTch + 16)
#define ActRcvNot (ActUnfSevTch + 16) #define ActRcvNot (ActUnfSevTch + 17)
#define ActHidNot (ActUnfSevTch + 17) #define ActHidNot (ActUnfSevTch + 18)
#define ActRevNot (ActUnfSevTch + 18) #define ActRevNot (ActUnfSevTch + 19)
#define ActReqRemNot (ActUnfSevTch + 19) #define ActReqRemNot (ActUnfSevTch + 20)
#define ActRemNot (ActUnfSevTch + 20) #define ActRemNot (ActUnfSevTch + 21)
#define ActSeeForCrsUsr (ActUnfSevTch + 21) #define ActSeeForCrsUsr (ActUnfSevTch + 22)
#define ActSeeForCrsTch (ActUnfSevTch + 22) #define ActSeeForCrsTch (ActUnfSevTch + 23)
#define ActSeeForDegUsr (ActUnfSevTch + 23) #define ActSeeForDegUsr (ActUnfSevTch + 24)
#define ActSeeForDegTch (ActUnfSevTch + 24) #define ActSeeForDegTch (ActUnfSevTch + 25)
#define ActSeeForCtrUsr (ActUnfSevTch + 25) #define ActSeeForCtrUsr (ActUnfSevTch + 26)
#define ActSeeForCtrTch (ActUnfSevTch + 26) #define ActSeeForCtrTch (ActUnfSevTch + 27)
#define ActSeeForInsUsr (ActUnfSevTch + 27) #define ActSeeForInsUsr (ActUnfSevTch + 28)
#define ActSeeForInsTch (ActUnfSevTch + 28) #define ActSeeForInsTch (ActUnfSevTch + 29)
#define ActSeeForGenUsr (ActUnfSevTch + 29) #define ActSeeForGenUsr (ActUnfSevTch + 30)
#define ActSeeForGenTch (ActUnfSevTch + 30) #define ActSeeForGenTch (ActUnfSevTch + 31)
#define ActSeeForSWAUsr (ActUnfSevTch + 31) #define ActSeeForSWAUsr (ActUnfSevTch + 32)
#define ActSeeForSWATch (ActUnfSevTch + 32) #define ActSeeForSWATch (ActUnfSevTch + 33)
#define ActSeePstForCrsUsr (ActUnfSevTch + 33) #define ActSeePstForCrsUsr (ActUnfSevTch + 34)
#define ActSeePstForCrsTch (ActUnfSevTch + 34) #define ActSeePstForCrsTch (ActUnfSevTch + 35)
#define ActSeePstForDegUsr (ActUnfSevTch + 35) #define ActSeePstForDegUsr (ActUnfSevTch + 36)
#define ActSeePstForDegTch (ActUnfSevTch + 36) #define ActSeePstForDegTch (ActUnfSevTch + 37)
#define ActSeePstForCtrUsr (ActUnfSevTch + 37) #define ActSeePstForCtrUsr (ActUnfSevTch + 38)
#define ActSeePstForCtrTch (ActUnfSevTch + 38) #define ActSeePstForCtrTch (ActUnfSevTch + 39)
#define ActSeePstForInsUsr (ActUnfSevTch + 39) #define ActSeePstForInsUsr (ActUnfSevTch + 40)
#define ActSeePstForInsTch (ActUnfSevTch + 40) #define ActSeePstForInsTch (ActUnfSevTch + 41)
#define ActSeePstForGenUsr (ActUnfSevTch + 41) #define ActSeePstForGenUsr (ActUnfSevTch + 42)
#define ActSeePstForGenTch (ActUnfSevTch + 42) #define ActSeePstForGenTch (ActUnfSevTch + 43)
#define ActSeePstForSWAUsr (ActUnfSevTch + 43) #define ActSeePstForSWAUsr (ActUnfSevTch + 44)
#define ActSeePstForSWATch (ActUnfSevTch + 44) #define ActSeePstForSWATch (ActUnfSevTch + 45)
#define ActRcvThrForCrsUsr (ActUnfSevTch + 45) #define ActRcvThrForCrsUsr (ActUnfSevTch + 46)
#define ActRcvThrForCrsTch (ActUnfSevTch + 46) #define ActRcvThrForCrsTch (ActUnfSevTch + 47)
#define ActRcvThrForDegUsr (ActUnfSevTch + 47) #define ActRcvThrForDegUsr (ActUnfSevTch + 48)
#define ActRcvThrForDegTch (ActUnfSevTch + 48) #define ActRcvThrForDegTch (ActUnfSevTch + 49)
#define ActRcvThrForCtrUsr (ActUnfSevTch + 49) #define ActRcvThrForCtrUsr (ActUnfSevTch + 50)
#define ActRcvThrForCtrTch (ActUnfSevTch + 50) #define ActRcvThrForCtrTch (ActUnfSevTch + 51)
#define ActRcvThrForInsUsr (ActUnfSevTch + 51) #define ActRcvThrForInsUsr (ActUnfSevTch + 52)
#define ActRcvThrForInsTch (ActUnfSevTch + 52) #define ActRcvThrForInsTch (ActUnfSevTch + 53)
#define ActRcvThrForGenUsr (ActUnfSevTch + 53) #define ActRcvThrForGenUsr (ActUnfSevTch + 54)
#define ActRcvThrForGenTch (ActUnfSevTch + 54) #define ActRcvThrForGenTch (ActUnfSevTch + 55)
#define ActRcvThrForSWAUsr (ActUnfSevTch + 55) #define ActRcvThrForSWAUsr (ActUnfSevTch + 56)
#define ActRcvThrForSWATch (ActUnfSevTch + 56) #define ActRcvThrForSWATch (ActUnfSevTch + 57)
#define ActRcvRepForCrsUsr (ActUnfSevTch + 57) #define ActRcvRepForCrsUsr (ActUnfSevTch + 58)
#define ActRcvRepForCrsTch (ActUnfSevTch + 58) #define ActRcvRepForCrsTch (ActUnfSevTch + 59)
#define ActRcvRepForDegUsr (ActUnfSevTch + 59) #define ActRcvRepForDegUsr (ActUnfSevTch + 60)
#define ActRcvRepForDegTch (ActUnfSevTch + 60) #define ActRcvRepForDegTch (ActUnfSevTch + 61)
#define ActRcvRepForCtrUsr (ActUnfSevTch + 61) #define ActRcvRepForCtrUsr (ActUnfSevTch + 62)
#define ActRcvRepForCtrTch (ActUnfSevTch + 62) #define ActRcvRepForCtrTch (ActUnfSevTch + 63)
#define ActRcvRepForInsUsr (ActUnfSevTch + 63) #define ActRcvRepForInsUsr (ActUnfSevTch + 64)
#define ActRcvRepForInsTch (ActUnfSevTch + 64) #define ActRcvRepForInsTch (ActUnfSevTch + 65)
#define ActRcvRepForGenUsr (ActUnfSevTch + 65) #define ActRcvRepForGenUsr (ActUnfSevTch + 66)
#define ActRcvRepForGenTch (ActUnfSevTch + 66) #define ActRcvRepForGenTch (ActUnfSevTch + 67)
#define ActRcvRepForSWAUsr (ActUnfSevTch + 67) #define ActRcvRepForSWAUsr (ActUnfSevTch + 68)
#define ActRcvRepForSWATch (ActUnfSevTch + 68) #define ActRcvRepForSWATch (ActUnfSevTch + 69)
#define ActReqDelThrCrsUsr (ActUnfSevTch + 69) #define ActReqDelThrCrsUsr (ActUnfSevTch + 70)
#define ActReqDelThrCrsTch (ActUnfSevTch + 70) #define ActReqDelThrCrsTch (ActUnfSevTch + 71)
#define ActReqDelThrDegUsr (ActUnfSevTch + 71) #define ActReqDelThrDegUsr (ActUnfSevTch + 72)
#define ActReqDelThrDegTch (ActUnfSevTch + 72) #define ActReqDelThrDegTch (ActUnfSevTch + 73)
#define ActReqDelThrCtrUsr (ActUnfSevTch + 73) #define ActReqDelThrCtrUsr (ActUnfSevTch + 74)
#define ActReqDelThrCtrTch (ActUnfSevTch + 74) #define ActReqDelThrCtrTch (ActUnfSevTch + 75)
#define ActReqDelThrInsUsr (ActUnfSevTch + 75) #define ActReqDelThrInsUsr (ActUnfSevTch + 76)
#define ActReqDelThrInsTch (ActUnfSevTch + 76) #define ActReqDelThrInsTch (ActUnfSevTch + 77)
#define ActReqDelThrGenUsr (ActUnfSevTch + 77) #define ActReqDelThrGenUsr (ActUnfSevTch + 78)
#define ActReqDelThrGenTch (ActUnfSevTch + 78) #define ActReqDelThrGenTch (ActUnfSevTch + 79)
#define ActReqDelThrSWAUsr (ActUnfSevTch + 79) #define ActReqDelThrSWAUsr (ActUnfSevTch + 80)
#define ActReqDelThrSWATch (ActUnfSevTch + 80) #define ActReqDelThrSWATch (ActUnfSevTch + 81)
#define ActDelThrForCrsUsr (ActUnfSevTch + 81) #define ActDelThrForCrsUsr (ActUnfSevTch + 82)
#define ActDelThrForCrsTch (ActUnfSevTch + 82) #define ActDelThrForCrsTch (ActUnfSevTch + 83)
#define ActDelThrForDegUsr (ActUnfSevTch + 83) #define ActDelThrForDegUsr (ActUnfSevTch + 84)
#define ActDelThrForDegTch (ActUnfSevTch + 84) #define ActDelThrForDegTch (ActUnfSevTch + 85)
#define ActDelThrForCtrUsr (ActUnfSevTch + 85) #define ActDelThrForCtrUsr (ActUnfSevTch + 86)
#define ActDelThrForCtrTch (ActUnfSevTch + 86) #define ActDelThrForCtrTch (ActUnfSevTch + 87)
#define ActDelThrForInsUsr (ActUnfSevTch + 87) #define ActDelThrForInsUsr (ActUnfSevTch + 88)
#define ActDelThrForInsTch (ActUnfSevTch + 88) #define ActDelThrForInsTch (ActUnfSevTch + 89)
#define ActDelThrForGenUsr (ActUnfSevTch + 89) #define ActDelThrForGenUsr (ActUnfSevTch + 90)
#define ActDelThrForGenTch (ActUnfSevTch + 90) #define ActDelThrForGenTch (ActUnfSevTch + 91)
#define ActDelThrForSWAUsr (ActUnfSevTch + 91) #define ActDelThrForSWAUsr (ActUnfSevTch + 92)
#define ActDelThrForSWATch (ActUnfSevTch + 92) #define ActDelThrForSWATch (ActUnfSevTch + 93)
#define ActCutThrForCrsUsr (ActUnfSevTch + 93) #define ActCutThrForCrsUsr (ActUnfSevTch + 94)
#define ActCutThrForCrsTch (ActUnfSevTch + 94) #define ActCutThrForCrsTch (ActUnfSevTch + 95)
#define ActCutThrForDegUsr (ActUnfSevTch + 95) #define ActCutThrForDegUsr (ActUnfSevTch + 96)
#define ActCutThrForDegTch (ActUnfSevTch + 96) #define ActCutThrForDegTch (ActUnfSevTch + 97)
#define ActCutThrForCtrUsr (ActUnfSevTch + 97) #define ActCutThrForCtrUsr (ActUnfSevTch + 98)
#define ActCutThrForCtrTch (ActUnfSevTch + 98) #define ActCutThrForCtrTch (ActUnfSevTch + 99)
#define ActCutThrForInsUsr (ActUnfSevTch + 99) #define ActCutThrForInsUsr (ActUnfSevTch + 100)
#define ActCutThrForInsTch (ActUnfSevTch + 100) #define ActCutThrForInsTch (ActUnfSevTch + 101)
#define ActCutThrForGenUsr (ActUnfSevTch + 101) #define ActCutThrForGenUsr (ActUnfSevTch + 102)
#define ActCutThrForGenTch (ActUnfSevTch + 102) #define ActCutThrForGenTch (ActUnfSevTch + 103)
#define ActCutThrForSWAUsr (ActUnfSevTch + 103) #define ActCutThrForSWAUsr (ActUnfSevTch + 104)
#define ActCutThrForSWATch (ActUnfSevTch + 104) #define ActCutThrForSWATch (ActUnfSevTch + 105)
#define ActPasThrForCrsUsr (ActUnfSevTch + 105) #define ActPasThrForCrsUsr (ActUnfSevTch + 106)
#define ActPasThrForCrsTch (ActUnfSevTch + 106) #define ActPasThrForCrsTch (ActUnfSevTch + 107)
#define ActPasThrForDegUsr (ActUnfSevTch + 107) #define ActPasThrForDegUsr (ActUnfSevTch + 108)
#define ActPasThrForDegTch (ActUnfSevTch + 108) #define ActPasThrForDegTch (ActUnfSevTch + 109)
#define ActPasThrForCtrUsr (ActUnfSevTch + 109) #define ActPasThrForCtrUsr (ActUnfSevTch + 110)
#define ActPasThrForCtrTch (ActUnfSevTch + 110) #define ActPasThrForCtrTch (ActUnfSevTch + 111)
#define ActPasThrForInsUsr (ActUnfSevTch + 111) #define ActPasThrForInsUsr (ActUnfSevTch + 112)
#define ActPasThrForInsTch (ActUnfSevTch + 112) #define ActPasThrForInsTch (ActUnfSevTch + 113)
#define ActPasThrForGenUsr (ActUnfSevTch + 113) #define ActPasThrForGenUsr (ActUnfSevTch + 114)
#define ActPasThrForGenTch (ActUnfSevTch + 114) #define ActPasThrForGenTch (ActUnfSevTch + 115)
#define ActPasThrForSWAUsr (ActUnfSevTch + 115) #define ActPasThrForSWAUsr (ActUnfSevTch + 116)
#define ActPasThrForSWATch (ActUnfSevTch + 116) #define ActPasThrForSWATch (ActUnfSevTch + 117)
#define ActDelPstForCrsUsr (ActUnfSevTch + 117) #define ActDelPstForCrsUsr (ActUnfSevTch + 118)
#define ActDelPstForCrsTch (ActUnfSevTch + 118) #define ActDelPstForCrsTch (ActUnfSevTch + 119)
#define ActDelPstForDegUsr (ActUnfSevTch + 119) #define ActDelPstForDegUsr (ActUnfSevTch + 120)
#define ActDelPstForDegTch (ActUnfSevTch + 120) #define ActDelPstForDegTch (ActUnfSevTch + 121)
#define ActDelPstForCtrUsr (ActUnfSevTch + 121) #define ActDelPstForCtrUsr (ActUnfSevTch + 122)
#define ActDelPstForCtrTch (ActUnfSevTch + 122) #define ActDelPstForCtrTch (ActUnfSevTch + 123)
#define ActDelPstForInsUsr (ActUnfSevTch + 123) #define ActDelPstForInsUsr (ActUnfSevTch + 124)
#define ActDelPstForInsTch (ActUnfSevTch + 124) #define ActDelPstForInsTch (ActUnfSevTch + 125)
#define ActDelPstForGenUsr (ActUnfSevTch + 125) #define ActDelPstForGenUsr (ActUnfSevTch + 126)
#define ActDelPstForGenTch (ActUnfSevTch + 126) #define ActDelPstForGenTch (ActUnfSevTch + 127)
#define ActDelPstForSWAUsr (ActUnfSevTch + 127) #define ActDelPstForSWAUsr (ActUnfSevTch + 128)
#define ActDelPstForSWATch (ActUnfSevTch + 128) #define ActDelPstForSWATch (ActUnfSevTch + 129)
#define ActEnbPstForCrsUsr (ActUnfSevTch + 129) #define ActEnbPstForCrsUsr (ActUnfSevTch + 130)
#define ActEnbPstForCrsTch (ActUnfSevTch + 130) #define ActEnbPstForCrsTch (ActUnfSevTch + 131)
#define ActEnbPstForDegUsr (ActUnfSevTch + 131) #define ActEnbPstForDegUsr (ActUnfSevTch + 132)
#define ActEnbPstForDegTch (ActUnfSevTch + 132) #define ActEnbPstForDegTch (ActUnfSevTch + 133)
#define ActEnbPstForCtrUsr (ActUnfSevTch + 133) #define ActEnbPstForCtrUsr (ActUnfSevTch + 134)
#define ActEnbPstForCtrTch (ActUnfSevTch + 134) #define ActEnbPstForCtrTch (ActUnfSevTch + 135)
#define ActEnbPstForInsUsr (ActUnfSevTch + 135) #define ActEnbPstForInsUsr (ActUnfSevTch + 136)
#define ActEnbPstForInsTch (ActUnfSevTch + 136) #define ActEnbPstForInsTch (ActUnfSevTch + 137)
#define ActEnbPstForGenUsr (ActUnfSevTch + 137) #define ActEnbPstForGenUsr (ActUnfSevTch + 138)
#define ActEnbPstForGenTch (ActUnfSevTch + 138) #define ActEnbPstForGenTch (ActUnfSevTch + 139)
#define ActEnbPstForSWAUsr (ActUnfSevTch + 139) #define ActEnbPstForSWAUsr (ActUnfSevTch + 140)
#define ActEnbPstForSWATch (ActUnfSevTch + 140) #define ActEnbPstForSWATch (ActUnfSevTch + 141)
#define ActDisPstForCrsUsr (ActUnfSevTch + 141) #define ActDisPstForCrsUsr (ActUnfSevTch + 142)
#define ActDisPstForCrsTch (ActUnfSevTch + 142) #define ActDisPstForCrsTch (ActUnfSevTch + 143)
#define ActDisPstForDegUsr (ActUnfSevTch + 143) #define ActDisPstForDegUsr (ActUnfSevTch + 144)
#define ActDisPstForDegTch (ActUnfSevTch + 144) #define ActDisPstForDegTch (ActUnfSevTch + 145)
#define ActDisPstForCtrUsr (ActUnfSevTch + 145) #define ActDisPstForCtrUsr (ActUnfSevTch + 146)
#define ActDisPstForCtrTch (ActUnfSevTch + 146) #define ActDisPstForCtrTch (ActUnfSevTch + 147)
#define ActDisPstForInsUsr (ActUnfSevTch + 147) #define ActDisPstForInsUsr (ActUnfSevTch + 148)
#define ActDisPstForInsTch (ActUnfSevTch + 148) #define ActDisPstForInsTch (ActUnfSevTch + 149)
#define ActDisPstForGenUsr (ActUnfSevTch + 149) #define ActDisPstForGenUsr (ActUnfSevTch + 150)
#define ActDisPstForGenTch (ActUnfSevTch + 150) #define ActDisPstForGenTch (ActUnfSevTch + 151)
#define ActDisPstForSWAUsr (ActUnfSevTch + 151) #define ActDisPstForSWAUsr (ActUnfSevTch + 152)
#define ActDisPstForSWATch (ActUnfSevTch + 152) #define ActDisPstForSWATch (ActUnfSevTch + 153)
#define ActCht (ActUnfSevTch + 153) #define ActCht (ActUnfSevTch + 154)
#define ActRcvMsgUsr (ActUnfSevTch + 154) #define ActRcvMsgUsr (ActUnfSevTch + 155)
#define ActReqDelAllSntMsg (ActUnfSevTch + 155) #define ActReqDelAllSntMsg (ActUnfSevTch + 156)
#define ActReqDelAllRcvMsg (ActUnfSevTch + 156) #define ActReqDelAllRcvMsg (ActUnfSevTch + 157)
#define ActDelAllSntMsg (ActUnfSevTch + 157) #define ActDelAllSntMsg (ActUnfSevTch + 158)
#define ActDelAllRcvMsg (ActUnfSevTch + 158) #define ActDelAllRcvMsg (ActUnfSevTch + 159)
#define ActDelSntMsg (ActUnfSevTch + 159) #define ActDelSntMsg (ActUnfSevTch + 160)
#define ActDelRcvMsg (ActUnfSevTch + 160) #define ActDelRcvMsg (ActUnfSevTch + 161)
#define ActExpSntMsg (ActUnfSevTch + 161) #define ActExpSntMsg (ActUnfSevTch + 162)
#define ActExpRcvMsg (ActUnfSevTch + 162) #define ActExpRcvMsg (ActUnfSevTch + 163)
#define ActConSntMsg (ActUnfSevTch + 163) #define ActConSntMsg (ActUnfSevTch + 164)
#define ActConRcvMsg (ActUnfSevTch + 164) #define ActConRcvMsg (ActUnfSevTch + 165)
#define ActLstBanUsr (ActUnfSevTch + 165) #define ActLstBanUsr (ActUnfSevTch + 166)
#define ActBanUsrMsg (ActUnfSevTch + 166) #define ActBanUsrMsg (ActUnfSevTch + 167)
#define ActUnbUsrMsg (ActUnfSevTch + 167) #define ActUnbUsrMsg (ActUnfSevTch + 168)
#define ActUnbUsrLst (ActUnfSevTch + 168) #define ActUnbUsrLst (ActUnfSevTch + 169)
#define ActMaiUsr (ActUnfSevTch + 169) #define ActMaiUsr (ActUnfSevTch + 170)
/*****************************************************************************/ /*****************************************************************************/
/****************************** Analytics tab ********************************/ /****************************** Analytics tab ********************************/

View File

@ -555,7 +555,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD: En OpenSWAD:
ps2pdf source.ps destination.pdf ps2pdf source.ps destination.pdf
*/ */
#define Log_PLATFORM_VERSION "SWAD 20.0 (2020-09-22)" #define Log_PLATFORM_VERSION "SWAD 20.1 (2020-09-25)"
#define CSS_FILE "swad19.253.css" #define CSS_FILE "swad19.253.css"
#define JS_FILE "swad19.254.js" #define JS_FILE "swad19.254.js"
/* /*
@ -573,6 +573,11 @@ TODO: Que al generar un examen s
TODO: Create module swad_test_result 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. "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.1: Sep 25, 2020 Options related to messages are grouped into one. (304520 lines)
Copy the following 2 icons to icon public directory:
sudo cp icon/inbox.svg /var/www/html/swad/icon/
sudo cp icon/marker.svg /var/www/html/swad/icon/
Version 20.0: Sep 22, 2020 Changes in API function getAvailableRoles. Version 20.0: Sep 22, 2020 Changes in API function getAvailableRoles.
Fixed bug when listing teachers' records. (304400 lines) Fixed bug when listing teachers' records. (304400 lines)
Version 19.263.1: Sep 02, 2020 MAC address in form to create a new room. (304389 lines) Version 19.263.1: Sep 02, 2020 MAC address in form to create a new room. (304389 lines)

View File

@ -152,10 +152,11 @@ static const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_
[ 1] = ActSeeAllNot, [ 1] = ActSeeAllNot,
[ 2] = ActSeeFor, [ 2] = ActSeeFor,
[ 3] = ActSeeChtRms, [ 3] = ActSeeChtRms,
[ 4] = ActReqMsgUsr, [ 4] = ActSeeMsg,
[ 5] = ActSeeRcvMsg, [ 5] = ActReqMsgUsr,
[ 6] = ActSeeSntMsg, [ 6] = ActSeeRcvMsg,
[ 7] = ActReqMaiUsr, [ 7] = ActSeeSntMsg,
[ 8] = ActReqMaiUsr,
}, },
[TabAna] = { [TabAna] = {
[ 0] = ActReqUseGbl, [ 0] = ActReqUseGbl,

View File

@ -2627,6 +2627,19 @@ static void Msg_SetNumMsgsStr (const struct Msg_Messages *Messages,
static void Msg_PutIconsListMsgs (void *Messages) static void Msg_PutIconsListMsgs (void *Messages)
{ {
extern const char *Txt_MSGS_Sent;
extern const char *Txt_MSGS_Received;
extern const char *Txt_MSGS_Write;
static struct
{
const Act_Action_t Act;
const char *Icon;
const char *Title;
} SeeRcvSntMsg[Msg_NUM_TYPES_OF_MSGS] =
{
[Msg_MESSAGES_RECEIVED] = {ActSeeSntMsg,"share.svg",NULL},
[Msg_MESSAGES_SENT ] = {ActSeeRcvMsg,"inbox.svg",NULL},
};
static const Act_Action_t ActionReqDelAllMsg[Msg_NUM_TYPES_OF_MSGS] = static const Act_Action_t ActionReqDelAllMsg[Msg_NUM_TYPES_OF_MSGS] =
{ {
[Msg_MESSAGES_RECEIVED] = ActReqDelAllRcvMsg, [Msg_MESSAGES_RECEIVED] = ActReqDelAllRcvMsg,
@ -2635,6 +2648,20 @@ static void Msg_PutIconsListMsgs (void *Messages)
if (Messages) if (Messages)
{ {
/***** Put icon to write a new message *****/
Lay_PutContextualLinkOnlyIcon (ActReqMsgUsr,NULL,
Msg_PutHiddenParamsMsgsFilters,Messages,
"marker.svg",
Txt_MSGS_Write);
/***** Put icon to see received/sent messages *****/
SeeRcvSntMsg[Msg_MESSAGES_RECEIVED].Title = Txt_MSGS_Sent;
SeeRcvSntMsg[Msg_MESSAGES_SENT ].Title = Txt_MSGS_Received;
Lay_PutContextualLinkOnlyIcon (SeeRcvSntMsg[((struct Msg_Messages *) Messages)->TypeOfMessages].Act,NULL,
Msg_PutHiddenParamsMsgsFilters,Messages,
SeeRcvSntMsg[((struct Msg_Messages *) Messages)->TypeOfMessages].Icon,
SeeRcvSntMsg[((struct Msg_Messages *) Messages)->TypeOfMessages].Title);
/***** Put icon to remove messages *****/ /***** Put icon to remove messages *****/
Ico_PutContextualIconToRemove (ActionReqDelAllMsg[((struct Msg_Messages *) Messages)->TypeOfMessages], Ico_PutContextualIconToRemove (ActionReqDelAllMsg[((struct Msg_Messages *) Messages)->TypeOfMessages],
Msg_PutHiddenParamsMsgsFilters,Messages); Msg_PutHiddenParamsMsgsFilters,Messages);

View File

@ -21064,7 +21064,28 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Chat" "Chat"
#endif #endif
, ,
// 4: ActReqMsgUsr // 4: ActMsgUsr
#if L==1 // ca
"Missatges"
#elif L==2 // de
"Nachrichten"
#elif L==3 // en
"Messages"
#elif L==4 // es
"Mensajes"
#elif L==5 // fr
"Messages"
#elif L==6 // gn
"Marandu"
#elif L==7 // it
"Messaggi"
#elif L==8 // pl
"Wiadomo&sacute;ci"
#elif L==9 // pt
"Mensagens"
#endif
,
// 5: ActReqMsgUsr
#if L==1 // ca #if L==1 // ca
"Redactar" "Redactar"
#elif L==2 // de #elif L==2 // de
@ -21085,7 +21106,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Escrever" "Escrever"
#endif #endif
, ,
// 5: ActSeeRcvMsg // 6: ActSeeRcvMsg
#if L==1 // ca #if L==1 // ca
"Rebuts" "Rebuts"
#elif L==2 // de #elif L==2 // de
@ -21106,7 +21127,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Recebidas" "Recebidas"
#endif #endif
, ,
// 6: ActSeeSntMsg // 7: ActSeeSntMsg
#if L==1 // ca #if L==1 // ca
"Enviats" "Enviats"
#elif L==2 // de #elif L==2 // de
@ -21127,7 +21148,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Enviadas" "Enviadas"
#endif #endif
, ,
// 7: ActReqMaiUsr // 8: ActReqMaiUsr
#if L==1 // ca #if L==1 // ca
"Correu" "Correu"
#elif L==2 // de #elif L==2 // de
@ -21148,7 +21169,6 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Email" "Email"
#endif #endif
, ,
NULL, // 8
NULL, // 9 NULL, // 9
NULL, // 10 NULL, // 10
NULL, // 11 NULL, // 11
@ -23018,7 +23038,28 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Chat" "Chat"
#endif #endif
, ,
// 4: ActReqMsgUsr // 4: ActMsgUsr
#if L==1 // ca
"Missatges"
#elif L==2 // de
"Nachrichten"
#elif L==3 // en
"Messages"
#elif L==4 // es
"Mensajes"
#elif L==5 // fr
"Messages"
#elif L==6 // gn
"Marandu"
#elif L==7 // it
"Messaggi"
#elif L==8 // pl
"Wiadomo&sacute;ci"
#elif L==9 // pt
"Mensagens"
#endif
,
// 5: ActReqMsgUsr
#if L==1 // ca #if L==1 // ca
"Enviament d'un nou missatge a altres usuaris" "Enviament d'un nou missatge a altres usuaris"
#elif L==2 // de #elif L==2 // de
@ -23039,7 +23080,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Envio de uma nova mensagem para outros usu&aacute;rios" "Envio de uma nova mensagem para outros usu&aacute;rios"
#endif #endif
, ,
// 5: ActSeeRcvMsg // 6: ActSeeRcvMsg
#if L==1 // ca #if L==1 // ca
"Missatges rebuts d'altres usuaris" "Missatges rebuts d'altres usuaris"
#elif L==2 // de #elif L==2 // de
@ -23060,7 +23101,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Mensagens recebidas de outros usu&aacute;rios" "Mensagens recebidas de outros usu&aacute;rios"
#endif #endif
, ,
// 6: ActSeeSntMsg // 7: ActSeeSntMsg
#if L==1 // ca #if L==1 // ca
"Missatges enviats per mi a altres usuaris" "Missatges enviats per mi a altres usuaris"
#elif L==2 // de #elif L==2 // de
@ -23081,7 +23122,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Mensagens enviadas por mim para outros usu&aacute;rios" "Mensagens enviadas por mim para outros usu&aacute;rios"
#endif #endif
, ,
// 7: ActReqMaiUsr // 8: ActReqMaiUsr
#if L==1 // ca #if L==1 // ca
"Creaci&oacute; d'un missatge de correu" "Creaci&oacute; d'un missatge de correu"
" per enviar-lo a usuaris d'aquesta assignatura" " per enviar-lo a usuaris d'aquesta assignatura"
@ -23108,7 +23149,6 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Email" "Email"
#endif #endif
, ,
NULL, // 8
NULL, // 9 NULL, // 9
NULL, // 10 NULL, // 10
NULL, // 11 NULL, // 11
@ -24930,6 +24970,27 @@ const char *Txt_MSGS_Sent =
"Enviadas"; "Enviadas";
#endif #endif
const char *Txt_MSGS_Write =
#if L==1 // ca
"Redactar";
#elif L==2 // de
"Schreiben";
#elif L==3 // en
"Write";
#elif L==4 // es
"Redactar";
#elif L==5 // fr
"Ecrire";
#elif L==6 // gn
"Redactar"; // Okoteve traducción
#elif L==7 // it
"Scrivi";
#elif L==8 // pl
"Napisz";
#elif L==9 // pt
"Escrever";
#endif
const char *Txt_Multimedia = const char *Txt_Multimedia =
#if L==1 // ca #if L==1 // ca
"Multim&egrave;dia"; "Multim&egrave;dia";

View File

@ -25365,6 +25365,27 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"" // Potrzebujesz tlumaczenie "" // Potrzebujesz tlumaczenie
#elif L==9 // pt #elif L==9 // pt
"" // Precisa de tradução "" // Precisa de tradução
#endif
,
[ActSeeMsg] =
#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 #endif
, ,
[ActReqMsgUsr] = [ActReqMsgUsr] =
@ -25373,13 +25394,13 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
#elif L==2 // de #elif L==2 // de
"" // Need Übersetzung "" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Write message to several users" "Write message to other users"
#elif L==4 // es #elif L==4 // es
"" "Redactar mensaje a otros usuarios"
#elif L==5 // fr #elif L==5 // fr
"" // Besoin de traduction "" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"" // Okoteve traducción "Redactar mensaje a otros usuarios" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"" // Bisogno di traduzione "" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
@ -25394,13 +25415,13 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
#elif L==2 // de #elif L==2 // de
"" // Need Übersetzung "" // Need Übersetzung
#elif L==3 // en #elif L==3 // en
"Show the messages received from other users (link in menu)" "Show the messages received from other users"
#elif L==4 // es #elif L==4 // es
"" "Ver mensajes recibidos de otros usuarios"
#elif L==5 // fr #elif L==5 // fr
"" // Besoin de traduction "" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"" // Okoteve traducción "Ver mensajes recibidos de otros usuarios" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"" // Bisogno di traduzione "" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl
@ -25417,11 +25438,11 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
#elif L==3 // en #elif L==3 // en
"Show the messages sent to other users" "Show the messages sent to other users"
#elif L==4 // es #elif L==4 // es
"" "Ver mensajes enviados a otros usuarios"
#elif L==5 // fr #elif L==5 // fr
"" // Besoin de traduction "" // Besoin de traduction
#elif L==6 // gn #elif L==6 // gn
"" // Okoteve traducción "Ver mensajes enviados a otros usuarios" // Okoteve traducción
#elif L==7 // it #elif L==7 // it
"" // Bisogno di traduzione "" // Bisogno di traduzione
#elif L==8 // pl #elif L==8 // pl