diff --git a/css/swad19.253.css b/css/swad20.1.1.css
similarity index 99%
rename from css/swad19.253.css
rename to css/swad20.1.1.css
index 850f677e..36ab1d50 100644
--- a/css/swad19.253.css
+++ b/css/swad20.1.1.css
@@ -713,7 +713,7 @@ a:hover /* Default ==> underlined */
{
display:table-cell;
box-sizing:border-box;
- width:98px;
+ width:108px;
height:58px;
margin:0;
padding:0;
@@ -727,7 +727,7 @@ a:hover /* Default ==> underlined */
{
display:table-cell;
box-sizing:border-box;
- width:98px;
+ width:108px;
height:58px;
margin:0;
padding:0;
@@ -742,7 +742,7 @@ a:hover /* Default ==> underlined */
font-size:9pt;
font-weight:bold;
line-height:100%;
- max-width:90px;
+ max-width:100px;
white-space:nowrap;
overflow:hidden;
margin:0 auto;
diff --git a/icon/iconset/awesome/comment.svg b/icon/iconset/awesome/comment.svg
new file mode 100644
index 00000000..821f0f39
--- /dev/null
+++ b/icon/iconset/awesome/comment.svg
@@ -0,0 +1 @@
+
diff --git a/icon/iconset/nuvola/comment.svg b/icon/iconset/nuvola/comment.svg
new file mode 100644
index 00000000..45a9b6dd
--- /dev/null
+++ b/icon/iconset/nuvola/comment.svg
@@ -0,0 +1,47 @@
+
+
+
\ No newline at end of file
diff --git a/swad_action.c b/swad_action.c
index f571f3fa..b5c2c60c 100644
--- a/swad_action.c
+++ b/swad_action.c
@@ -1518,11 +1518,8 @@ 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 ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,"envelope" },
- [ActReqMsgUsr ] = { 26, 5,TabMsg,ActReqMsgUsr ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_FormMsgUsrs ,"marker" },
- [ActSeeRcvMsg ] = { 3, 6,TabMsg,ActSeeRcvMsg ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Msg_ShowRecMsgs ,"inbox" },
- [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" },
+ [ActSeeMsg ] = {1912, 4,TabMsg,ActSeeMsg ,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:
[ActWriAnn ] = {1237,-1,TabUnk,ActSeeAnn ,0x200,0x200,0x200,0x200,0x200,0x200,0x200,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ann_ShowFormAnnouncement ,NULL},
@@ -1685,22 +1682,26 @@ 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},
- [ActRcvMsgUsr ] = { 27,-1,TabUnk,ActReqMsgUsr ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,Msg_RecMsgFromUsr ,NULL},
- [ActReqDelAllSntMsg ] = { 604,-1,TabUnk,ActSeeSntMsg ,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,ActSeeSntMsg ,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,ActSeeSntMsg ,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,ActSeeSntMsg ,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,ActSeeSntMsg ,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},
+ [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},
- [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},
+ [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},
+
+ [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},
[ActMaiUsr ] = { 100,-1,TabUnk,ActReqMaiUsr ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mai_GetSelectedUsrsAndListEmails,NULL},
diff --git a/swad_action.h b/swad_action.h
index 725d6399..5543fd2e 100644
--- a/swad_action.h
+++ b/swad_action.h
@@ -1458,158 +1458,159 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActSeeFor (ActUnfSevTch + 3)
#define ActSeeChtRms (ActUnfSevTch + 4)
#define ActSeeMsg (ActUnfSevTch + 5)
-#define ActReqMsgUsr (ActUnfSevTch + 6)
-#define ActSeeRcvMsg (ActUnfSevTch + 7)
-#define ActSeeSntMsg (ActUnfSevTch + 8)
-#define ActReqMaiUsr (ActUnfSevTch + 9)
+#define ActReqMaiUsr (ActUnfSevTch + 6)
// Secondary actions
-#define ActWriAnn (ActUnfSevTch + 10)
-#define ActRcvAnn (ActUnfSevTch + 11)
-#define ActHidAnn (ActUnfSevTch + 12)
-#define ActRevAnn (ActUnfSevTch + 13)
-#define ActRemAnn (ActUnfSevTch + 14)
-#define ActSeeOneNot (ActUnfSevTch + 15)
-#define ActWriNot (ActUnfSevTch + 16)
-#define ActRcvNot (ActUnfSevTch + 17)
-#define ActHidNot (ActUnfSevTch + 18)
-#define ActRevNot (ActUnfSevTch + 19)
-#define ActReqRemNot (ActUnfSevTch + 20)
-#define ActRemNot (ActUnfSevTch + 21)
+#define ActWriAnn (ActUnfSevTch + 7)
+#define ActRcvAnn (ActUnfSevTch + 8)
+#define ActHidAnn (ActUnfSevTch + 9)
+#define ActRevAnn (ActUnfSevTch + 10)
+#define ActRemAnn (ActUnfSevTch + 11)
+#define ActSeeOneNot (ActUnfSevTch + 12)
+#define ActWriNot (ActUnfSevTch + 13)
+#define ActRcvNot (ActUnfSevTch + 14)
+#define ActHidNot (ActUnfSevTch + 15)
+#define ActRevNot (ActUnfSevTch + 16)
+#define ActReqRemNot (ActUnfSevTch + 17)
+#define ActRemNot (ActUnfSevTch + 18)
-#define ActSeeForCrsUsr (ActUnfSevTch + 22)
-#define ActSeeForCrsTch (ActUnfSevTch + 23)
-#define ActSeeForDegUsr (ActUnfSevTch + 24)
-#define ActSeeForDegTch (ActUnfSevTch + 25)
-#define ActSeeForCtrUsr (ActUnfSevTch + 26)
-#define ActSeeForCtrTch (ActUnfSevTch + 27)
-#define ActSeeForInsUsr (ActUnfSevTch + 28)
-#define ActSeeForInsTch (ActUnfSevTch + 29)
-#define ActSeeForGenUsr (ActUnfSevTch + 30)
-#define ActSeeForGenTch (ActUnfSevTch + 31)
-#define ActSeeForSWAUsr (ActUnfSevTch + 32)
-#define ActSeeForSWATch (ActUnfSevTch + 33)
-#define ActSeePstForCrsUsr (ActUnfSevTch + 34)
-#define ActSeePstForCrsTch (ActUnfSevTch + 35)
-#define ActSeePstForDegUsr (ActUnfSevTch + 36)
-#define ActSeePstForDegTch (ActUnfSevTch + 37)
-#define ActSeePstForCtrUsr (ActUnfSevTch + 38)
-#define ActSeePstForCtrTch (ActUnfSevTch + 39)
-#define ActSeePstForInsUsr (ActUnfSevTch + 40)
-#define ActSeePstForInsTch (ActUnfSevTch + 41)
-#define ActSeePstForGenUsr (ActUnfSevTch + 42)
-#define ActSeePstForGenTch (ActUnfSevTch + 43)
-#define ActSeePstForSWAUsr (ActUnfSevTch + 44)
-#define ActSeePstForSWATch (ActUnfSevTch + 45)
-#define ActRcvThrForCrsUsr (ActUnfSevTch + 46)
-#define ActRcvThrForCrsTch (ActUnfSevTch + 47)
-#define ActRcvThrForDegUsr (ActUnfSevTch + 48)
-#define ActRcvThrForDegTch (ActUnfSevTch + 49)
-#define ActRcvThrForCtrUsr (ActUnfSevTch + 50)
-#define ActRcvThrForCtrTch (ActUnfSevTch + 51)
-#define ActRcvThrForInsUsr (ActUnfSevTch + 52)
-#define ActRcvThrForInsTch (ActUnfSevTch + 53)
-#define ActRcvThrForGenUsr (ActUnfSevTch + 54)
-#define ActRcvThrForGenTch (ActUnfSevTch + 55)
-#define ActRcvThrForSWAUsr (ActUnfSevTch + 56)
-#define ActRcvThrForSWATch (ActUnfSevTch + 57)
-#define ActRcvRepForCrsUsr (ActUnfSevTch + 58)
-#define ActRcvRepForCrsTch (ActUnfSevTch + 59)
-#define ActRcvRepForDegUsr (ActUnfSevTch + 60)
-#define ActRcvRepForDegTch (ActUnfSevTch + 61)
-#define ActRcvRepForCtrUsr (ActUnfSevTch + 62)
-#define ActRcvRepForCtrTch (ActUnfSevTch + 63)
-#define ActRcvRepForInsUsr (ActUnfSevTch + 64)
-#define ActRcvRepForInsTch (ActUnfSevTch + 65)
-#define ActRcvRepForGenUsr (ActUnfSevTch + 66)
-#define ActRcvRepForGenTch (ActUnfSevTch + 67)
-#define ActRcvRepForSWAUsr (ActUnfSevTch + 68)
-#define ActRcvRepForSWATch (ActUnfSevTch + 69)
-#define ActReqDelThrCrsUsr (ActUnfSevTch + 70)
-#define ActReqDelThrCrsTch (ActUnfSevTch + 71)
-#define ActReqDelThrDegUsr (ActUnfSevTch + 72)
-#define ActReqDelThrDegTch (ActUnfSevTch + 73)
-#define ActReqDelThrCtrUsr (ActUnfSevTch + 74)
-#define ActReqDelThrCtrTch (ActUnfSevTch + 75)
-#define ActReqDelThrInsUsr (ActUnfSevTch + 76)
-#define ActReqDelThrInsTch (ActUnfSevTch + 77)
-#define ActReqDelThrGenUsr (ActUnfSevTch + 78)
-#define ActReqDelThrGenTch (ActUnfSevTch + 79)
-#define ActReqDelThrSWAUsr (ActUnfSevTch + 80)
-#define ActReqDelThrSWATch (ActUnfSevTch + 81)
-#define ActDelThrForCrsUsr (ActUnfSevTch + 82)
-#define ActDelThrForCrsTch (ActUnfSevTch + 83)
-#define ActDelThrForDegUsr (ActUnfSevTch + 84)
-#define ActDelThrForDegTch (ActUnfSevTch + 85)
-#define ActDelThrForCtrUsr (ActUnfSevTch + 86)
-#define ActDelThrForCtrTch (ActUnfSevTch + 87)
-#define ActDelThrForInsUsr (ActUnfSevTch + 88)
-#define ActDelThrForInsTch (ActUnfSevTch + 89)
-#define ActDelThrForGenUsr (ActUnfSevTch + 90)
-#define ActDelThrForGenTch (ActUnfSevTch + 91)
-#define ActDelThrForSWAUsr (ActUnfSevTch + 92)
-#define ActDelThrForSWATch (ActUnfSevTch + 93)
-#define ActCutThrForCrsUsr (ActUnfSevTch + 94)
-#define ActCutThrForCrsTch (ActUnfSevTch + 95)
-#define ActCutThrForDegUsr (ActUnfSevTch + 96)
-#define ActCutThrForDegTch (ActUnfSevTch + 97)
-#define ActCutThrForCtrUsr (ActUnfSevTch + 98)
-#define ActCutThrForCtrTch (ActUnfSevTch + 99)
-#define ActCutThrForInsUsr (ActUnfSevTch + 100)
-#define ActCutThrForInsTch (ActUnfSevTch + 101)
-#define ActCutThrForGenUsr (ActUnfSevTch + 102)
-#define ActCutThrForGenTch (ActUnfSevTch + 103)
-#define ActCutThrForSWAUsr (ActUnfSevTch + 104)
-#define ActCutThrForSWATch (ActUnfSevTch + 105)
-#define ActPasThrForCrsUsr (ActUnfSevTch + 106)
-#define ActPasThrForCrsTch (ActUnfSevTch + 107)
-#define ActPasThrForDegUsr (ActUnfSevTch + 108)
-#define ActPasThrForDegTch (ActUnfSevTch + 109)
-#define ActPasThrForCtrUsr (ActUnfSevTch + 110)
-#define ActPasThrForCtrTch (ActUnfSevTch + 111)
-#define ActPasThrForInsUsr (ActUnfSevTch + 112)
-#define ActPasThrForInsTch (ActUnfSevTch + 113)
-#define ActPasThrForGenUsr (ActUnfSevTch + 114)
-#define ActPasThrForGenTch (ActUnfSevTch + 115)
-#define ActPasThrForSWAUsr (ActUnfSevTch + 116)
-#define ActPasThrForSWATch (ActUnfSevTch + 117)
-#define ActDelPstForCrsUsr (ActUnfSevTch + 118)
-#define ActDelPstForCrsTch (ActUnfSevTch + 119)
-#define ActDelPstForDegUsr (ActUnfSevTch + 120)
-#define ActDelPstForDegTch (ActUnfSevTch + 121)
-#define ActDelPstForCtrUsr (ActUnfSevTch + 122)
-#define ActDelPstForCtrTch (ActUnfSevTch + 123)
-#define ActDelPstForInsUsr (ActUnfSevTch + 124)
-#define ActDelPstForInsTch (ActUnfSevTch + 125)
-#define ActDelPstForGenUsr (ActUnfSevTch + 126)
-#define ActDelPstForGenTch (ActUnfSevTch + 127)
-#define ActDelPstForSWAUsr (ActUnfSevTch + 128)
-#define ActDelPstForSWATch (ActUnfSevTch + 129)
-#define ActEnbPstForCrsUsr (ActUnfSevTch + 130)
-#define ActEnbPstForCrsTch (ActUnfSevTch + 131)
-#define ActEnbPstForDegUsr (ActUnfSevTch + 132)
-#define ActEnbPstForDegTch (ActUnfSevTch + 133)
-#define ActEnbPstForCtrUsr (ActUnfSevTch + 134)
-#define ActEnbPstForCtrTch (ActUnfSevTch + 135)
-#define ActEnbPstForInsUsr (ActUnfSevTch + 136)
-#define ActEnbPstForInsTch (ActUnfSevTch + 137)
-#define ActEnbPstForGenUsr (ActUnfSevTch + 138)
-#define ActEnbPstForGenTch (ActUnfSevTch + 139)
-#define ActEnbPstForSWAUsr (ActUnfSevTch + 140)
-#define ActEnbPstForSWATch (ActUnfSevTch + 141)
-#define ActDisPstForCrsUsr (ActUnfSevTch + 142)
-#define ActDisPstForCrsTch (ActUnfSevTch + 143)
-#define ActDisPstForDegUsr (ActUnfSevTch + 144)
-#define ActDisPstForDegTch (ActUnfSevTch + 145)
-#define ActDisPstForCtrUsr (ActUnfSevTch + 146)
-#define ActDisPstForCtrTch (ActUnfSevTch + 147)
-#define ActDisPstForInsUsr (ActUnfSevTch + 148)
-#define ActDisPstForInsTch (ActUnfSevTch + 149)
-#define ActDisPstForGenUsr (ActUnfSevTch + 150)
-#define ActDisPstForGenTch (ActUnfSevTch + 151)
-#define ActDisPstForSWAUsr (ActUnfSevTch + 152)
-#define ActDisPstForSWATch (ActUnfSevTch + 153)
+#define ActSeeForCrsUsr (ActUnfSevTch + 19)
+#define ActSeeForCrsTch (ActUnfSevTch + 20)
+#define ActSeeForDegUsr (ActUnfSevTch + 21)
+#define ActSeeForDegTch (ActUnfSevTch + 22)
+#define ActSeeForCtrUsr (ActUnfSevTch + 23)
+#define ActSeeForCtrTch (ActUnfSevTch + 24)
+#define ActSeeForInsUsr (ActUnfSevTch + 25)
+#define ActSeeForInsTch (ActUnfSevTch + 26)
+#define ActSeeForGenUsr (ActUnfSevTch + 27)
+#define ActSeeForGenTch (ActUnfSevTch + 28)
+#define ActSeeForSWAUsr (ActUnfSevTch + 29)
+#define ActSeeForSWATch (ActUnfSevTch + 30)
+#define ActSeePstForCrsUsr (ActUnfSevTch + 31)
+#define ActSeePstForCrsTch (ActUnfSevTch + 32)
+#define ActSeePstForDegUsr (ActUnfSevTch + 33)
+#define ActSeePstForDegTch (ActUnfSevTch + 34)
+#define ActSeePstForCtrUsr (ActUnfSevTch + 35)
+#define ActSeePstForCtrTch (ActUnfSevTch + 36)
+#define ActSeePstForInsUsr (ActUnfSevTch + 37)
+#define ActSeePstForInsTch (ActUnfSevTch + 38)
+#define ActSeePstForGenUsr (ActUnfSevTch + 39)
+#define ActSeePstForGenTch (ActUnfSevTch + 40)
+#define ActSeePstForSWAUsr (ActUnfSevTch + 41)
+#define ActSeePstForSWATch (ActUnfSevTch + 42)
+#define ActRcvThrForCrsUsr (ActUnfSevTch + 43)
+#define ActRcvThrForCrsTch (ActUnfSevTch + 44)
+#define ActRcvThrForDegUsr (ActUnfSevTch + 45)
+#define ActRcvThrForDegTch (ActUnfSevTch + 46)
+#define ActRcvThrForCtrUsr (ActUnfSevTch + 47)
+#define ActRcvThrForCtrTch (ActUnfSevTch + 48)
+#define ActRcvThrForInsUsr (ActUnfSevTch + 49)
+#define ActRcvThrForInsTch (ActUnfSevTch + 50)
+#define ActRcvThrForGenUsr (ActUnfSevTch + 51)
+#define ActRcvThrForGenTch (ActUnfSevTch + 52)
+#define ActRcvThrForSWAUsr (ActUnfSevTch + 53)
+#define ActRcvThrForSWATch (ActUnfSevTch + 54)
+#define ActRcvRepForCrsUsr (ActUnfSevTch + 55)
+#define ActRcvRepForCrsTch (ActUnfSevTch + 56)
+#define ActRcvRepForDegUsr (ActUnfSevTch + 57)
+#define ActRcvRepForDegTch (ActUnfSevTch + 58)
+#define ActRcvRepForCtrUsr (ActUnfSevTch + 59)
+#define ActRcvRepForCtrTch (ActUnfSevTch + 60)
+#define ActRcvRepForInsUsr (ActUnfSevTch + 61)
+#define ActRcvRepForInsTch (ActUnfSevTch + 62)
+#define ActRcvRepForGenUsr (ActUnfSevTch + 63)
+#define ActRcvRepForGenTch (ActUnfSevTch + 64)
+#define ActRcvRepForSWAUsr (ActUnfSevTch + 65)
+#define ActRcvRepForSWATch (ActUnfSevTch + 66)
+#define ActReqDelThrCrsUsr (ActUnfSevTch + 67)
+#define ActReqDelThrCrsTch (ActUnfSevTch + 68)
+#define ActReqDelThrDegUsr (ActUnfSevTch + 69)
+#define ActReqDelThrDegTch (ActUnfSevTch + 70)
+#define ActReqDelThrCtrUsr (ActUnfSevTch + 71)
+#define ActReqDelThrCtrTch (ActUnfSevTch + 72)
+#define ActReqDelThrInsUsr (ActUnfSevTch + 73)
+#define ActReqDelThrInsTch (ActUnfSevTch + 74)
+#define ActReqDelThrGenUsr (ActUnfSevTch + 75)
+#define ActReqDelThrGenTch (ActUnfSevTch + 76)
+#define ActReqDelThrSWAUsr (ActUnfSevTch + 77)
+#define ActReqDelThrSWATch (ActUnfSevTch + 78)
+#define ActDelThrForCrsUsr (ActUnfSevTch + 79)
+#define ActDelThrForCrsTch (ActUnfSevTch + 80)
+#define ActDelThrForDegUsr (ActUnfSevTch + 81)
+#define ActDelThrForDegTch (ActUnfSevTch + 82)
+#define ActDelThrForCtrUsr (ActUnfSevTch + 83)
+#define ActDelThrForCtrTch (ActUnfSevTch + 84)
+#define ActDelThrForInsUsr (ActUnfSevTch + 85)
+#define ActDelThrForInsTch (ActUnfSevTch + 86)
+#define ActDelThrForGenUsr (ActUnfSevTch + 87)
+#define ActDelThrForGenTch (ActUnfSevTch + 88)
+#define ActDelThrForSWAUsr (ActUnfSevTch + 89)
+#define ActDelThrForSWATch (ActUnfSevTch + 90)
+#define ActCutThrForCrsUsr (ActUnfSevTch + 91)
+#define ActCutThrForCrsTch (ActUnfSevTch + 92)
+#define ActCutThrForDegUsr (ActUnfSevTch + 93)
+#define ActCutThrForDegTch (ActUnfSevTch + 94)
+#define ActCutThrForCtrUsr (ActUnfSevTch + 95)
+#define ActCutThrForCtrTch (ActUnfSevTch + 96)
+#define ActCutThrForInsUsr (ActUnfSevTch + 97)
+#define ActCutThrForInsTch (ActUnfSevTch + 98)
+#define ActCutThrForGenUsr (ActUnfSevTch + 99)
+#define ActCutThrForGenTch (ActUnfSevTch + 100)
+#define ActCutThrForSWAUsr (ActUnfSevTch + 101)
+#define ActCutThrForSWATch (ActUnfSevTch + 102)
+#define ActPasThrForCrsUsr (ActUnfSevTch + 103)
+#define ActPasThrForCrsTch (ActUnfSevTch + 104)
+#define ActPasThrForDegUsr (ActUnfSevTch + 105)
+#define ActPasThrForDegTch (ActUnfSevTch + 106)
+#define ActPasThrForCtrUsr (ActUnfSevTch + 107)
+#define ActPasThrForCtrTch (ActUnfSevTch + 108)
+#define ActPasThrForInsUsr (ActUnfSevTch + 109)
+#define ActPasThrForInsTch (ActUnfSevTch + 110)
+#define ActPasThrForGenUsr (ActUnfSevTch + 111)
+#define ActPasThrForGenTch (ActUnfSevTch + 112)
+#define ActPasThrForSWAUsr (ActUnfSevTch + 113)
+#define ActPasThrForSWATch (ActUnfSevTch + 114)
+#define ActDelPstForCrsUsr (ActUnfSevTch + 115)
+#define ActDelPstForCrsTch (ActUnfSevTch + 116)
+#define ActDelPstForDegUsr (ActUnfSevTch + 117)
+#define ActDelPstForDegTch (ActUnfSevTch + 118)
+#define ActDelPstForCtrUsr (ActUnfSevTch + 119)
+#define ActDelPstForCtrTch (ActUnfSevTch + 120)
+#define ActDelPstForInsUsr (ActUnfSevTch + 121)
+#define ActDelPstForInsTch (ActUnfSevTch + 122)
+#define ActDelPstForGenUsr (ActUnfSevTch + 123)
+#define ActDelPstForGenTch (ActUnfSevTch + 124)
+#define ActDelPstForSWAUsr (ActUnfSevTch + 125)
+#define ActDelPstForSWATch (ActUnfSevTch + 126)
+#define ActEnbPstForCrsUsr (ActUnfSevTch + 127)
+#define ActEnbPstForCrsTch (ActUnfSevTch + 128)
+#define ActEnbPstForDegUsr (ActUnfSevTch + 129)
+#define ActEnbPstForDegTch (ActUnfSevTch + 130)
+#define ActEnbPstForCtrUsr (ActUnfSevTch + 131)
+#define ActEnbPstForCtrTch (ActUnfSevTch + 132)
+#define ActEnbPstForInsUsr (ActUnfSevTch + 133)
+#define ActEnbPstForInsTch (ActUnfSevTch + 134)
+#define ActEnbPstForGenUsr (ActUnfSevTch + 135)
+#define ActEnbPstForGenTch (ActUnfSevTch + 136)
+#define ActEnbPstForSWAUsr (ActUnfSevTch + 137)
+#define ActEnbPstForSWATch (ActUnfSevTch + 138)
+#define ActDisPstForCrsUsr (ActUnfSevTch + 139)
+#define ActDisPstForCrsTch (ActUnfSevTch + 140)
+#define ActDisPstForDegUsr (ActUnfSevTch + 141)
+#define ActDisPstForDegTch (ActUnfSevTch + 142)
+#define ActDisPstForCtrUsr (ActUnfSevTch + 143)
+#define ActDisPstForCtrTch (ActUnfSevTch + 144)
+#define ActDisPstForInsUsr (ActUnfSevTch + 145)
+#define ActDisPstForInsTch (ActUnfSevTch + 146)
+#define ActDisPstForGenUsr (ActUnfSevTch + 147)
+#define ActDisPstForGenTch (ActUnfSevTch + 148)
+#define ActDisPstForSWAUsr (ActUnfSevTch + 149)
+#define ActDisPstForSWATch (ActUnfSevTch + 150)
-#define ActCht (ActUnfSevTch + 154)
+#define ActCht (ActUnfSevTch + 151)
+
+#define ActReqMsgUsr (ActUnfSevTch + 152)
+#define ActSeeRcvMsg (ActUnfSevTch + 153)
+#define ActSeeSntMsg (ActUnfSevTch + 154)
#define ActRcvMsgUsr (ActUnfSevTch + 155)
#define ActReqDelAllSntMsg (ActUnfSevTch + 156)
diff --git a/swad_changelog.h b/swad_changelog.h
index b442347b..a639f2e6 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -555,8 +555,8 @@ 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 (2020-09-25)"
-#define CSS_FILE "swad19.253.css"
+#define Log_PLATFORM_VERSION "SWAD 20.1.1 (2020-09-25)"
+#define CSS_FILE "swad20.1.1.css"
#define JS_FILE "swad19.254.js"
/*
TODO: Juan Miguel Boyero Corral: Este verano ha habido varias personas que han solicitado incluir la funcionalidad del apartado de Actividades en SWADroid. Si lo ves viable podríamos estudiarlo.
@@ -573,6 +573,12 @@ 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.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/
+sudo cp icon/iconset/awesome/comment-alt.svg /var/www/html/swad/icon/iconset/awesome/
+sudo cp icon/iconset/nuvola/comment.svg /var/www/html/swad/icon/iconset/nuvola/
+
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/
diff --git a/swad_menu.c b/swad_menu.c
index a237abc7..ee9455de 100644
--- a/swad_menu.c
+++ b/swad_menu.c
@@ -153,10 +153,7 @@ static const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_
[ 2] = ActSeeFor,
[ 3] = ActSeeChtRms,
[ 4] = ActSeeMsg,
- [ 5] = ActReqMsgUsr,
- [ 6] = ActSeeRcvMsg,
- [ 7] = ActSeeSntMsg,
- [ 8] = ActReqMaiUsr,
+ [ 5] = ActReqMaiUsr,
},
[TabAna] = {
[ 0] = ActReqUseGbl,
diff --git a/swad_message.c b/swad_message.c
index 93861718..e3f30021 100644
--- a/swad_message.c
+++ b/swad_message.c
@@ -2630,16 +2630,6 @@ 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] =
{
[Msg_MESSAGES_RECEIVED] = ActReqDelAllRcvMsg,
@@ -2655,12 +2645,14 @@ static void Msg_PutIconsListMsgs (void *Messages)
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,
+ Lay_PutContextualLinkOnlyIcon (ActSeeRcvMsg,NULL,
Msg_PutHiddenParamsMsgsFilters,Messages,
- SeeRcvSntMsg[((struct Msg_Messages *) Messages)->TypeOfMessages].Icon,
- SeeRcvSntMsg[((struct Msg_Messages *) Messages)->TypeOfMessages].Title);
+ "inbox.svg",
+ Txt_MSGS_Received);
+ Lay_PutContextualLinkOnlyIcon (ActSeeSntMsg,NULL,
+ Msg_PutHiddenParamsMsgsFilters,Messages,
+ "share.svg",
+ Txt_MSGS_Sent);
/***** Put icon to remove messages *****/
Ico_PutContextualIconToRemove (ActionReqDelAllMsg[((struct Msg_Messages *) Messages)->TypeOfMessages],
diff --git a/swad_tab.c b/swad_tab.c
index 31b9139f..4af8c5c9 100644
--- a/swad_tab.c
+++ b/swad_tab.c
@@ -196,7 +196,7 @@ static const char *Tab_GetIcon (Tab_Tab_t NumTab)
[TabAss] = "check",
[TabFil] = "folder-open",
[TabUsr] = "users",
- [TabMsg] = "envelope",
+ [TabMsg] = "comment",
[TabAna] = "chart-bar",
[TabPrf] = "user",
};
diff --git a/swad_text.c b/swad_text.c
index d07ccede..d91ae985 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -21085,70 +21085,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Mensagens"
#endif
,
- // 5: ActReqMsgUsr
-#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
- ,
- // 6: ActSeeRcvMsg
-#if L==1 // ca
- "Rebuts"
-#elif L==2 // de
- "Empfangene"
-#elif L==3 // en
- "Received"
-#elif L==4 // es
- "Recibidos"
-#elif L==5 // fr
- "Reçus"
-#elif L==6 // gn
- "Recibidos" // Okoteve traducción
-#elif L==7 // it
- "Ricevuti"
-#elif L==8 // pl
- "Odebrane"
-#elif L==9 // pt
- "Recebidas"
-#endif
- ,
- // 7: ActSeeSntMsg
-#if L==1 // ca
- "Enviats"
-#elif L==2 // de
- "Gesendete"
-#elif L==3 // en
- "Sent"
-#elif L==4 // es
- "Enviados"
-#elif L==5 // fr
- "Envoyés"
-#elif L==6 // gn
- "Enviados" // Okoteve traducción
-#elif L==7 // it
- "Inviati"
-#elif L==8 // pl
- "Wysylane"
-#elif L==9 // pt
- "Enviadas"
-#endif
- ,
- // 8: ActReqMaiUsr
+ // 5: ActReqMaiUsr
#if L==1 // ca
"Correu"
#elif L==2 // de
@@ -21169,6 +21106,9 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Email"
#endif
,
+ NULL, // 6
+ NULL, // 7
+ NULL, // 8
NULL, // 9
NULL, // 10
NULL, // 11
@@ -23059,70 +22999,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Mensagens"
#endif
,
- // 5: ActReqMsgUsr
-#if L==1 // ca
- "Enviament d'un nou missatge a altres usuaris"
-#elif L==2 // de
- "Neue Nachricht an andere Benutzer senden"
-#elif L==3 // en
- "Sending a new message to other users"
-#elif L==4 // es
- "Envío de un nuevo mensaje a otros usuarios"
-#elif L==5 // fr
- "Envoi d'un nouveau message à d'autres utilisateurs"
-#elif L==6 // gn
- "Envío de un nuevo mensaje a otros usuarios"// Okoteve traducción
-#elif L==7 // it
- "Invio di un nuovo messaggio ad altri utenti"
-#elif L==8 // pl
- "Wysyłanie nowej wiadomości do innych użytkowników"
-#elif L==9 // pt
- "Envio de uma nova mensagem para outros usuários"
-#endif
- ,
- // 6: ActSeeRcvMsg
-#if L==1 // ca
- "Missatges rebuts d'altres usuaris"
-#elif L==2 // de
- "Nachrichten, die von anderen Benutzern empfangen wurden"
-#elif L==3 // en
- "Messages received from other users"
-#elif L==4 // es
- "Mensajes recibidos de otros usuarios"
-#elif L==5 // fr
- "Messages reçus d'autres utilisateurs"
-#elif L==6 // gn
- "Mensajes recibidos de otros usuarios" // Okoteve traducción
-#elif L==7 // it
- "Messaggi ricevuti da altri utenti"
-#elif L==8 // pl
- "Wiadomości otrzymane od innych użytkowników"
-#elif L==9 // pt
- "Mensagens recebidas de outros usuários"
-#endif
- ,
- // 7: ActSeeSntMsg
-#if L==1 // ca
- "Missatges enviats per mi a altres usuaris"
-#elif L==2 // de
- "Nachrichten, die ich an andere Benutzer gesendet habe"
-#elif L==3 // en
- "Messages sent by me to other users"
-#elif L==4 // es
- "Mensajes enviados por mí a otros usuarios"
-#elif L==5 // fr
- "Messages envoyés par moi à d'autres utilisateurs"
-#elif L==6 // gn
- "Mensajes enviados por mí a otros usuarios"// Okoteve traducción
-#elif L==7 // it
- "Messaggi inviati da me ad altri utenti"
-#elif L==8 // pl
- "Wiadomości wysyłane przeze mnie do innych użytkowników"
-#elif L==9 // pt
- "Mensagens enviadas por mim para outros usuários"
-#endif
- ,
- // 8: ActReqMaiUsr
+ // 5: ActReqMaiUsr
#if L==1 // ca
"Creació d'un missatge de correu"
" per enviar-lo a usuaris d'aquesta assignatura"
@@ -23149,6 +23026,9 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
"Email"
#endif
,
+ NULL, // 6
+ NULL, // 7
+ NULL, // 8
NULL, // 9
NULL, // 10
NULL, // 11
@@ -45738,7 +45618,7 @@ const char *Txt_TABS_TXT[Tab_NUM_TABS] =
#elif L==3 // en
"Messages"
#elif L==4 // es
- "Mensajes"
+ "Comunicación"
#elif L==5 // fr
"Messages"
#elif L==6 // gn
diff --git a/swad_text_action.c b/swad_text_action.c
index 44f4ae90..08e5ce2d 100644
--- a/swad_text_action.c
+++ b/swad_text_action.c
@@ -25386,69 +25386,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"" // Precisa de tradução
-#endif
- ,
- [ActReqMsgUsr] =
-#if L==1 // ca
- "" // Necessita traducció
-#elif L==2 // de
- "" // Need Übersetzung
-#elif L==3 // en
- "Write message to other users"
-#elif L==4 // es
- "Redactar mensaje a otros usuarios"
-#elif L==5 // fr
- "" // Besoin de traduction
-#elif L==6 // gn
- "Redactar mensaje a 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
- ,
- [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] =
-#if L==1 // ca
- "" // Necessita traducció
-#elif L==2 // de
- "" // Need Übersetzung
-#elif L==3 // en
- "Show the messages sent to other users"
-#elif L==4 // es
- "Ver mensajes enviados a otros usuarios"
-#elif L==5 // fr
- "" // Besoin de traduction
-#elif L==6 // gn
- "Ver mensajes enviados a 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
,
[ActReqMaiUsr] =
@@ -28515,6 +28452,69 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
"" // Potrzebujesz tlumaczenie
#elif L==9 // pt
"" // Precisa de tradução
+#endif
+ ,
+ [ActReqMsgUsr] =
+#if L==1 // ca
+ "" // Necessita traducció
+#elif L==2 // de
+ "" // Need Übersetzung
+#elif L==3 // en
+ "Write message to other users"
+#elif L==4 // es
+ "Redactar mensaje a otros usuarios"
+#elif L==5 // fr
+ "" // Besoin de traduction
+#elif L==6 // gn
+ "Redactar mensaje a 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
+ ,
+ [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] =
+#if L==1 // ca
+ "" // Necessita traducció
+#elif L==2 // de
+ "" // Need Übersetzung
+#elif L==3 // en
+ "Show the messages sent to other users"
+#elif L==4 // es
+ "Ver mensajes enviados a otros usuarios"
+#elif L==5 // fr
+ "" // Besoin de traduction
+#elif L==6 // gn
+ "Ver mensajes enviados a 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
,
[ActRcvMsgUsr] =