Version 16.137

This commit is contained in:
Antonio Cañas Vargas 2017-02-17 01:59:58 +01:00
parent 3092652366
commit 65d14b53f5
16 changed files with 452 additions and 280 deletions

View File

@ -1131,7 +1131,7 @@ Social:
939. ActReqRemSocComGbl Request the removal of a comment in a social note (global) 939. ActReqRemSocComGbl Request the removal of a comment in a social note (global)
940. ActRemSocComGbl Remove of a comment in a social note (global) 940. ActRemSocComGbl Remove of a comment in a social note (global)
941. ActReqPubPrf Request @nickname to show a public user's profile 941. ActReqOthPubPrf Request @nickname to show a public user's profile
942. ActRcvSocPstUsr Receive a public social post to be displayed in the timeline (user) 942. ActRcvSocPstUsr Receive a public social post to be displayed in the timeline (user)
943. ActRcvSocComUsr Comment a social note in the timeline (user) 943. ActRcvSocComUsr Comment a social note in the timeline (user)
@ -2606,7 +2606,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActReqRemSocComGbl*/{1505,-1,TabUnk,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Soc_MarkMyNotifAsSeen ,Soc_RequestRemSocialComGbl ,NULL}, /* ActReqRemSocComGbl*/{1505,-1,TabUnk,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Soc_MarkMyNotifAsSeen ,Soc_RequestRemSocialComGbl ,NULL},
/* ActRemSocComGbl */{1507,-1,TabUnk,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Soc_MarkMyNotifAsSeen ,Soc_RemoveSocialComGbl ,NULL}, /* ActRemSocComGbl */{1507,-1,TabUnk,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Soc_MarkMyNotifAsSeen ,Soc_RemoveSocialComGbl ,NULL},
/* ActReqPubPrf */{1401,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_RequestUserProfile ,NULL}, /* ActReqOthPubPrf */{1401,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_RequestUserProfile ,NULL},
/* ActRcvSocPstUsr */{1498,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_DATA,Act_THIS_WINDOW,NULL ,Soc_ReceiveSocialPostUsr ,NULL}, /* ActRcvSocPstUsr */{1498,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_DATA,Act_THIS_WINDOW,NULL ,Soc_ReceiveSocialPostUsr ,NULL},
/* ActRcvSocComUsr */{1504,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_DATA,Act_THIS_WINDOW,NULL ,Soc_ReceiveCommentUsr ,NULL}, /* ActRcvSocComUsr */{1504,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_DATA,Act_THIS_WINDOW,NULL ,Soc_ReceiveCommentUsr ,NULL},
@ -2621,7 +2621,8 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActReqRemSocComGbl*/{1506,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Soc_RequestRemSocialComUsr ,NULL}, /* ActReqRemSocComGbl*/{1506,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Soc_RequestRemSocialComUsr ,NULL},
/* ActRemSocComGbl */{1508,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Soc_RemoveSocialComUsr ,NULL}, /* ActRemSocComGbl */{1508,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Soc_RemoveSocialComUsr ,NULL},
/* ActSeePubPrf */{1402,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_GetUsrDatAndShowUserProfile,NULL}, /* ActSeeMyPubPrf */{1637,-1,TabUnk,ActSeeSocPrf ,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_ShowMyProfile ,NULL},
/* ActSeeOthPubPrf */{1402,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_GetUsrDatAndShowUserProfile,NULL},
/* ActCal1stClkTim */{1405,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_CalculateFigures ,NULL}, /* ActCal1stClkTim */{1405,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_CalculateFigures ,NULL},
/* ActCalNumClk */{1406,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_CalculateFigures ,NULL}, /* ActCalNumClk */{1406,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_CalculateFigures ,NULL},
/* ActCalNumFilVie */{1409,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_CalculateFigures ,NULL}, /* ActCalNumFilVie */{1409,-1,TabUnk,ActSeeSocPrf ,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Prf_CalculateFigures ,NULL},
@ -4386,8 +4387,8 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActReqDatShaIns, // #1398 ActReqDatShaIns, // #1398
ActChgDatShaIns, // #1399 ActChgDatShaIns, // #1399
ActDowShaIns, // #1400 ActDowShaIns, // #1400
ActReqPubPrf, // #1401 ActReqOthPubPrf, // #1401
ActSeePubPrf, // #1402 ActSeeOthPubPrf, // #1402
ActEdiPri, // #1403 ActEdiPri, // #1403
ActChgPriPrf, // #1404 ActChgPriPrf, // #1404
ActCal1stClkTim, // #1405 ActCal1stClkTim, // #1405
@ -4622,6 +4623,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActSeeCalDeg, // #1634 ActSeeCalDeg, // #1634
ActPrnCalDeg, // #1635 ActPrnCalDeg, // #1635
ActChgCalDeg1stDay, // #1636 ActChgCalDeg1stDay, // #1636
ActSeeMyPubPrf, // #1637
}; };
/*****************************************************************************/ /*****************************************************************************/

View File

@ -55,9 +55,9 @@ 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_NUM_ACTIONS (1 + 9 + 54 + 17 + 47 + 27 + 24 + 115 + 54 + 416 + 159 + 172 + 36 + 31 + 97) #define Act_NUM_ACTIONS (1 + 9 + 54 + 17 + 47 + 27 + 24 + 115 + 54 + 416 + 159 + 173 + 36 + 31 + 97)
#define Act_MAX_ACTION_COD 1636 #define Act_MAX_ACTION_COD 1637
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 12 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 12
@ -1150,7 +1150,7 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActReqRemSocComGbl (ActLstClk + 15) #define ActReqRemSocComGbl (ActLstClk + 15)
#define ActRemSocComGbl (ActLstClk + 16) #define ActRemSocComGbl (ActLstClk + 16)
#define ActReqPubPrf (ActLstClk + 17) #define ActReqOthPubPrf (ActLstClk + 17)
#define ActRcvSocPstUsr (ActLstClk + 18) #define ActRcvSocPstUsr (ActLstClk + 18)
#define ActRcvSocComUsr (ActLstClk + 19) #define ActRcvSocComUsr (ActLstClk + 19)
@ -1165,152 +1165,153 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActReqRemSocComUsr (ActLstClk + 28) #define ActReqRemSocComUsr (ActLstClk + 28)
#define ActRemSocComUsr (ActLstClk + 29) #define ActRemSocComUsr (ActLstClk + 29)
#define ActSeePubPrf (ActLstClk + 30) #define ActSeeMyPubPrf (ActLstClk + 30)
#define ActCal1stClkTim (ActLstClk + 31) #define ActSeeOthPubPrf (ActLstClk + 31)
#define ActCalNumClk (ActLstClk + 32) #define ActCal1stClkTim (ActLstClk + 32)
#define ActCalNumFilVie (ActLstClk + 33) #define ActCalNumClk (ActLstClk + 33)
#define ActCalNumForPst (ActLstClk + 34) #define ActCalNumFilVie (ActLstClk + 34)
#define ActCalNumMsgSnt (ActLstClk + 35) #define ActCalNumForPst (ActLstClk + 35)
#define ActCalNumMsgSnt (ActLstClk + 36)
#define ActFolUsr (ActLstClk + 36) #define ActFolUsr (ActLstClk + 37)
#define ActUnfUsr (ActLstClk + 37) #define ActUnfUsr (ActLstClk + 38)
#define ActSeeFlg (ActLstClk + 38) #define ActSeeFlg (ActLstClk + 39)
#define ActSeeFlr (ActLstClk + 39) #define ActSeeFlr (ActLstClk + 40)
#define ActSeeForCrsUsr (ActLstClk + 40) #define ActSeeForCrsUsr (ActLstClk + 41)
#define ActSeeForCrsTch (ActLstClk + 41) #define ActSeeForCrsTch (ActLstClk + 42)
#define ActSeeForDegUsr (ActLstClk + 42) #define ActSeeForDegUsr (ActLstClk + 43)
#define ActSeeForDegTch (ActLstClk + 43) #define ActSeeForDegTch (ActLstClk + 44)
#define ActSeeForCtrUsr (ActLstClk + 44) #define ActSeeForCtrUsr (ActLstClk + 45)
#define ActSeeForCtrTch (ActLstClk + 45) #define ActSeeForCtrTch (ActLstClk + 46)
#define ActSeeForInsUsr (ActLstClk + 46) #define ActSeeForInsUsr (ActLstClk + 47)
#define ActSeeForInsTch (ActLstClk + 47) #define ActSeeForInsTch (ActLstClk + 48)
#define ActSeeForGenUsr (ActLstClk + 48) #define ActSeeForGenUsr (ActLstClk + 49)
#define ActSeeForGenTch (ActLstClk + 49) #define ActSeeForGenTch (ActLstClk + 50)
#define ActSeeForSWAUsr (ActLstClk + 50) #define ActSeeForSWAUsr (ActLstClk + 51)
#define ActSeeForSWATch (ActLstClk + 51) #define ActSeeForSWATch (ActLstClk + 52)
#define ActSeePstForCrsUsr (ActLstClk + 52) #define ActSeePstForCrsUsr (ActLstClk + 53)
#define ActSeePstForCrsTch (ActLstClk + 53) #define ActSeePstForCrsTch (ActLstClk + 54)
#define ActSeePstForDegUsr (ActLstClk + 54) #define ActSeePstForDegUsr (ActLstClk + 55)
#define ActSeePstForDegTch (ActLstClk + 55) #define ActSeePstForDegTch (ActLstClk + 56)
#define ActSeePstForCtrUsr (ActLstClk + 56) #define ActSeePstForCtrUsr (ActLstClk + 57)
#define ActSeePstForCtrTch (ActLstClk + 57) #define ActSeePstForCtrTch (ActLstClk + 58)
#define ActSeePstForInsUsr (ActLstClk + 58) #define ActSeePstForInsUsr (ActLstClk + 59)
#define ActSeePstForInsTch (ActLstClk + 59) #define ActSeePstForInsTch (ActLstClk + 60)
#define ActSeePstForGenUsr (ActLstClk + 60) #define ActSeePstForGenUsr (ActLstClk + 61)
#define ActSeePstForGenTch (ActLstClk + 61) #define ActSeePstForGenTch (ActLstClk + 62)
#define ActSeePstForSWAUsr (ActLstClk + 62) #define ActSeePstForSWAUsr (ActLstClk + 63)
#define ActSeePstForSWATch (ActLstClk + 63) #define ActSeePstForSWATch (ActLstClk + 64)
#define ActRcvThrForCrsUsr (ActLstClk + 64) #define ActRcvThrForCrsUsr (ActLstClk + 65)
#define ActRcvThrForCrsTch (ActLstClk + 65) #define ActRcvThrForCrsTch (ActLstClk + 66)
#define ActRcvThrForDegUsr (ActLstClk + 66) #define ActRcvThrForDegUsr (ActLstClk + 67)
#define ActRcvThrForDegTch (ActLstClk + 67) #define ActRcvThrForDegTch (ActLstClk + 68)
#define ActRcvThrForCtrUsr (ActLstClk + 68) #define ActRcvThrForCtrUsr (ActLstClk + 69)
#define ActRcvThrForCtrTch (ActLstClk + 69) #define ActRcvThrForCtrTch (ActLstClk + 70)
#define ActRcvThrForInsUsr (ActLstClk + 70) #define ActRcvThrForInsUsr (ActLstClk + 71)
#define ActRcvThrForInsTch (ActLstClk + 71) #define ActRcvThrForInsTch (ActLstClk + 72)
#define ActRcvThrForGenUsr (ActLstClk + 72) #define ActRcvThrForGenUsr (ActLstClk + 73)
#define ActRcvThrForGenTch (ActLstClk + 73) #define ActRcvThrForGenTch (ActLstClk + 74)
#define ActRcvThrForSWAUsr (ActLstClk + 74) #define ActRcvThrForSWAUsr (ActLstClk + 75)
#define ActRcvThrForSWATch (ActLstClk + 75) #define ActRcvThrForSWATch (ActLstClk + 76)
#define ActRcvRepForCrsUsr (ActLstClk + 76) #define ActRcvRepForCrsUsr (ActLstClk + 77)
#define ActRcvRepForCrsTch (ActLstClk + 77) #define ActRcvRepForCrsTch (ActLstClk + 78)
#define ActRcvRepForDegUsr (ActLstClk + 78) #define ActRcvRepForDegUsr (ActLstClk + 79)
#define ActRcvRepForDegTch (ActLstClk + 79) #define ActRcvRepForDegTch (ActLstClk + 80)
#define ActRcvRepForCtrUsr (ActLstClk + 80) #define ActRcvRepForCtrUsr (ActLstClk + 81)
#define ActRcvRepForCtrTch (ActLstClk + 81) #define ActRcvRepForCtrTch (ActLstClk + 82)
#define ActRcvRepForInsUsr (ActLstClk + 82) #define ActRcvRepForInsUsr (ActLstClk + 83)
#define ActRcvRepForInsTch (ActLstClk + 83) #define ActRcvRepForInsTch (ActLstClk + 84)
#define ActRcvRepForGenUsr (ActLstClk + 84) #define ActRcvRepForGenUsr (ActLstClk + 85)
#define ActRcvRepForGenTch (ActLstClk + 85) #define ActRcvRepForGenTch (ActLstClk + 86)
#define ActRcvRepForSWAUsr (ActLstClk + 86) #define ActRcvRepForSWAUsr (ActLstClk + 87)
#define ActRcvRepForSWATch (ActLstClk + 87) #define ActRcvRepForSWATch (ActLstClk + 88)
#define ActReqDelThrCrsUsr (ActLstClk + 88) #define ActReqDelThrCrsUsr (ActLstClk + 89)
#define ActReqDelThrCrsTch (ActLstClk + 89) #define ActReqDelThrCrsTch (ActLstClk + 90)
#define ActReqDelThrDegUsr (ActLstClk + 90) #define ActReqDelThrDegUsr (ActLstClk + 91)
#define ActReqDelThrDegTch (ActLstClk + 91) #define ActReqDelThrDegTch (ActLstClk + 92)
#define ActReqDelThrCtrUsr (ActLstClk + 92) #define ActReqDelThrCtrUsr (ActLstClk + 93)
#define ActReqDelThrCtrTch (ActLstClk + 93) #define ActReqDelThrCtrTch (ActLstClk + 94)
#define ActReqDelThrInsUsr (ActLstClk + 94) #define ActReqDelThrInsUsr (ActLstClk + 95)
#define ActReqDelThrInsTch (ActLstClk + 95) #define ActReqDelThrInsTch (ActLstClk + 96)
#define ActReqDelThrGenUsr (ActLstClk + 96) #define ActReqDelThrGenUsr (ActLstClk + 97)
#define ActReqDelThrGenTch (ActLstClk + 97) #define ActReqDelThrGenTch (ActLstClk + 98)
#define ActReqDelThrSWAUsr (ActLstClk + 98) #define ActReqDelThrSWAUsr (ActLstClk + 99)
#define ActReqDelThrSWATch (ActLstClk + 99) #define ActReqDelThrSWATch (ActLstClk + 100)
#define ActDelThrForCrsUsr (ActLstClk + 100) #define ActDelThrForCrsUsr (ActLstClk + 101)
#define ActDelThrForCrsTch (ActLstClk + 101) #define ActDelThrForCrsTch (ActLstClk + 102)
#define ActDelThrForDegUsr (ActLstClk + 102) #define ActDelThrForDegUsr (ActLstClk + 103)
#define ActDelThrForDegTch (ActLstClk + 103) #define ActDelThrForDegTch (ActLstClk + 104)
#define ActDelThrForCtrUsr (ActLstClk + 104) #define ActDelThrForCtrUsr (ActLstClk + 105)
#define ActDelThrForCtrTch (ActLstClk + 105) #define ActDelThrForCtrTch (ActLstClk + 106)
#define ActDelThrForInsUsr (ActLstClk + 106) #define ActDelThrForInsUsr (ActLstClk + 107)
#define ActDelThrForInsTch (ActLstClk + 107) #define ActDelThrForInsTch (ActLstClk + 108)
#define ActDelThrForGenUsr (ActLstClk + 108) #define ActDelThrForGenUsr (ActLstClk + 109)
#define ActDelThrForGenTch (ActLstClk + 109) #define ActDelThrForGenTch (ActLstClk + 110)
#define ActDelThrForSWAUsr (ActLstClk + 110) #define ActDelThrForSWAUsr (ActLstClk + 111)
#define ActDelThrForSWATch (ActLstClk + 111) #define ActDelThrForSWATch (ActLstClk + 112)
#define ActCutThrForCrsUsr (ActLstClk + 112) #define ActCutThrForCrsUsr (ActLstClk + 113)
#define ActCutThrForCrsTch (ActLstClk + 113) #define ActCutThrForCrsTch (ActLstClk + 114)
#define ActCutThrForDegUsr (ActLstClk + 114) #define ActCutThrForDegUsr (ActLstClk + 115)
#define ActCutThrForDegTch (ActLstClk + 115) #define ActCutThrForDegTch (ActLstClk + 116)
#define ActCutThrForCtrUsr (ActLstClk + 116) #define ActCutThrForCtrUsr (ActLstClk + 117)
#define ActCutThrForCtrTch (ActLstClk + 117) #define ActCutThrForCtrTch (ActLstClk + 118)
#define ActCutThrForInsUsr (ActLstClk + 118) #define ActCutThrForInsUsr (ActLstClk + 119)
#define ActCutThrForInsTch (ActLstClk + 119) #define ActCutThrForInsTch (ActLstClk + 120)
#define ActCutThrForGenUsr (ActLstClk + 120) #define ActCutThrForGenUsr (ActLstClk + 121)
#define ActCutThrForGenTch (ActLstClk + 121) #define ActCutThrForGenTch (ActLstClk + 122)
#define ActCutThrForSWAUsr (ActLstClk + 122) #define ActCutThrForSWAUsr (ActLstClk + 123)
#define ActCutThrForSWATch (ActLstClk + 123) #define ActCutThrForSWATch (ActLstClk + 124)
#define ActPasThrForCrsUsr (ActLstClk + 124) #define ActPasThrForCrsUsr (ActLstClk + 125)
#define ActPasThrForCrsTch (ActLstClk + 125) #define ActPasThrForCrsTch (ActLstClk + 126)
#define ActPasThrForDegUsr (ActLstClk + 126) #define ActPasThrForDegUsr (ActLstClk + 127)
#define ActPasThrForDegTch (ActLstClk + 127) #define ActPasThrForDegTch (ActLstClk + 128)
#define ActPasThrForCtrUsr (ActLstClk + 128) #define ActPasThrForCtrUsr (ActLstClk + 129)
#define ActPasThrForCtrTch (ActLstClk + 129) #define ActPasThrForCtrTch (ActLstClk + 130)
#define ActPasThrForInsUsr (ActLstClk + 130) #define ActPasThrForInsUsr (ActLstClk + 131)
#define ActPasThrForInsTch (ActLstClk + 131) #define ActPasThrForInsTch (ActLstClk + 132)
#define ActPasThrForGenUsr (ActLstClk + 132) #define ActPasThrForGenUsr (ActLstClk + 133)
#define ActPasThrForGenTch (ActLstClk + 133) #define ActPasThrForGenTch (ActLstClk + 134)
#define ActPasThrForSWAUsr (ActLstClk + 134) #define ActPasThrForSWAUsr (ActLstClk + 135)
#define ActPasThrForSWATch (ActLstClk + 135) #define ActPasThrForSWATch (ActLstClk + 136)
#define ActDelPstForCrsUsr (ActLstClk + 136) #define ActDelPstForCrsUsr (ActLstClk + 137)
#define ActDelPstForCrsTch (ActLstClk + 137) #define ActDelPstForCrsTch (ActLstClk + 138)
#define ActDelPstForDegUsr (ActLstClk + 138) #define ActDelPstForDegUsr (ActLstClk + 139)
#define ActDelPstForDegTch (ActLstClk + 139) #define ActDelPstForDegTch (ActLstClk + 140)
#define ActDelPstForCtrUsr (ActLstClk + 140) #define ActDelPstForCtrUsr (ActLstClk + 141)
#define ActDelPstForCtrTch (ActLstClk + 141) #define ActDelPstForCtrTch (ActLstClk + 142)
#define ActDelPstForInsUsr (ActLstClk + 142) #define ActDelPstForInsUsr (ActLstClk + 143)
#define ActDelPstForInsTch (ActLstClk + 143) #define ActDelPstForInsTch (ActLstClk + 144)
#define ActDelPstForGenUsr (ActLstClk + 144) #define ActDelPstForGenUsr (ActLstClk + 145)
#define ActDelPstForGenTch (ActLstClk + 145) #define ActDelPstForGenTch (ActLstClk + 146)
#define ActDelPstForSWAUsr (ActLstClk + 146) #define ActDelPstForSWAUsr (ActLstClk + 147)
#define ActDelPstForSWATch (ActLstClk + 147) #define ActDelPstForSWATch (ActLstClk + 148)
#define ActEnbPstForCrsUsr (ActLstClk + 148) #define ActEnbPstForCrsUsr (ActLstClk + 149)
#define ActEnbPstForCrsTch (ActLstClk + 149) #define ActEnbPstForCrsTch (ActLstClk + 150)
#define ActEnbPstForDegUsr (ActLstClk + 150) #define ActEnbPstForDegUsr (ActLstClk + 151)
#define ActEnbPstForDegTch (ActLstClk + 151) #define ActEnbPstForDegTch (ActLstClk + 152)
#define ActEnbPstForCtrUsr (ActLstClk + 152) #define ActEnbPstForCtrUsr (ActLstClk + 153)
#define ActEnbPstForCtrTch (ActLstClk + 153) #define ActEnbPstForCtrTch (ActLstClk + 154)
#define ActEnbPstForInsUsr (ActLstClk + 154) #define ActEnbPstForInsUsr (ActLstClk + 155)
#define ActEnbPstForInsTch (ActLstClk + 155) #define ActEnbPstForInsTch (ActLstClk + 156)
#define ActEnbPstForGenUsr (ActLstClk + 156) #define ActEnbPstForGenUsr (ActLstClk + 157)
#define ActEnbPstForGenTch (ActLstClk + 157) #define ActEnbPstForGenTch (ActLstClk + 158)
#define ActEnbPstForSWAUsr (ActLstClk + 158) #define ActEnbPstForSWAUsr (ActLstClk + 159)
#define ActEnbPstForSWATch (ActLstClk + 159) #define ActEnbPstForSWATch (ActLstClk + 160)
#define ActDisPstForCrsUsr (ActLstClk + 160) #define ActDisPstForCrsUsr (ActLstClk + 161)
#define ActDisPstForCrsTch (ActLstClk + 161) #define ActDisPstForCrsTch (ActLstClk + 162)
#define ActDisPstForDegUsr (ActLstClk + 162) #define ActDisPstForDegUsr (ActLstClk + 163)
#define ActDisPstForDegTch (ActLstClk + 163) #define ActDisPstForDegTch (ActLstClk + 164)
#define ActDisPstForCtrUsr (ActLstClk + 164) #define ActDisPstForCtrUsr (ActLstClk + 165)
#define ActDisPstForCtrTch (ActLstClk + 165) #define ActDisPstForCtrTch (ActLstClk + 166)
#define ActDisPstForInsUsr (ActLstClk + 166) #define ActDisPstForInsUsr (ActLstClk + 167)
#define ActDisPstForInsTch (ActLstClk + 167) #define ActDisPstForInsTch (ActLstClk + 168)
#define ActDisPstForGenUsr (ActLstClk + 168) #define ActDisPstForGenUsr (ActLstClk + 169)
#define ActDisPstForGenTch (ActLstClk + 169) #define ActDisPstForGenTch (ActLstClk + 170)
#define ActDisPstForSWAUsr (ActLstClk + 170) #define ActDisPstForSWAUsr (ActLstClk + 171)
#define ActDisPstForSWATch (ActLstClk + 171) #define ActDisPstForSWATch (ActLstClk + 172)
#define ActCht (ActLstClk + 172) #define ActCht (ActLstClk + 173)
/*****************************************************************************/ /*****************************************************************************/
/******************************* Messages tab ********************************/ /******************************* Messages tab ********************************/

View File

@ -518,17 +518,17 @@ static void Agd_PutIconToShowQR (void)
static void Agd_PutIconsOtherPublicAgenda (void) static void Agd_PutIconsOtherPublicAgenda (void)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_Another_user_s_profile;
extern const char *Txt_View_record_for_this_course; extern const char *Txt_View_record_for_this_course;
extern const char *Txt_View_record_and_office_hours; extern const char *Txt_View_record_and_office_hours;
/***** Button to view user's public profile *****/ /***** Button to view user's public profile *****/
if (Pri_ShowingIsAllowed (Gbl.Usrs.Other.UsrDat.ProfileVisibility, if (Pri_ShowingIsAllowed (Gbl.Usrs.Other.UsrDat.ProfileVisibility,
&Gbl.Usrs.Other.UsrDat)) &Gbl.Usrs.Other.UsrDat))
Lay_PutContextualLink (ActSeePubPrf, Lay_PutContextualLink (ActSeeOthPubPrf,
Usr_PutParamOtherUsrCodEncrypted, Usr_PutParamOtherUsrCodEncrypted,
"usr64x64.gif", "usr64x64.gif",
Txt_View_public_profile,NULL, Txt_Another_user_s_profile,NULL,
NULL); NULL);
/***** Button to view user's record card *****/ /***** Button to view user's record card *****/

View File

@ -195,18 +195,24 @@
// TODO: Bajo la foto de cada usuario el país // TODO: Bajo la foto de cada usuario el país
// TODO: Permitir elegir entre "Ver actividad de quienes sigo" o "Ver actividad de todos" // TODO: Permitir elegir entre "Ver actividad de quienes sigo" o "Ver actividad de todos"
// TODO: On right column show only users to follow who have photo (pass a parameter to function)
/*****************************************************************************/ /*****************************************************************************/
/****************************** Public constants *****************************/ /****************************** Public constants *****************************/
/*****************************************************************************/ /*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.136 (2017-02-16)" #define Log_PLATFORM_VERSION "SWAD 16.137 (2017-02-17)"
#define CSS_FILE "swad16.136.css" #define CSS_FILE "swad16.136.css"
#define JS_FILE "swad16.123.js" #define JS_FILE "swad16.123.js"
// Number of lines (includes comments but not blank lines) has been got with the following command: // Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1 // nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/* /*
Version 16.136: Feb 16, 2017 Sggested users to follow on right column. (212646 lines) Version 16.137: Feb 17, 2017 Link to view my public profile. (212808 lines)
1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1637','es','N','Ver mi perfil público');
Version 16.136: Feb 16, 2017 Suggested users to follow on right column. (212646 lines)
Version 16.135.7: Feb 16, 2017 Code refactoring in users to follow. (212512 lines) Version 16.135.7: Feb 16, 2017 Code refactoring in users to follow. (212512 lines)
Version 16.135.6: Feb 13, 2017 Changes in contextual help after changes in tabs. (212501 lines) Version 16.135.6: Feb 13, 2017 Changes in contextual help after changes in tabs. (212501 lines)
Version 16.135.5: Feb 11, 2017 Change in button to register teacher when no teachers found. Version 16.135.5: Feb 11, 2017 Change in button to register teacher when no teachers found.

View File

@ -1035,31 +1035,39 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
char PhotoURL[PATH_MAX + 1]; char PhotoURL[PATH_MAX + 1];
const char *Font = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_CRS" : const char *Font = (Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].ThisCrs ? "CON_CRS" :
"CON"); "CON");
struct UsrData UsrDat; long UsrCod;
struct UsrData OtherUsrDat;
struct UsrData *UsrDat;
bool ItsMe;
/***** Initialize structure with user's data *****/ /***** Get user's code from list *****/
Usr_UsrDataConstructor (&UsrDat); UsrCod = Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].UsrCod;
ItsMe = (Gbl.Usrs.Me.Logged &&
UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod); // It's me
/***** Get user's data *****/ if (ItsMe)
UsrDat.UsrCod = Gbl.Usrs.Connected.Lst[Gbl.Usrs.Connected.NumUsr].UsrCod; UsrDat = &Gbl.Usrs.Me.UsrDat;
Usr_GetAllUsrDataFromUsrCod (&UsrDat); else
{
/***** Initialize structure with user's data *****/
OtherUsrDat.UsrCod = UsrCod;
Usr_UsrDataConstructor (&OtherUsrDat);
/***** Get user's data *****/
Usr_GetAllUsrDataFromUsrCod (&OtherUsrDat);
UsrDat = &OtherUsrDat;
}
/***** Show photo *****/ /***** Show photo *****/
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"LEFT_MIDDLE COLOR%u\"" "<td class=\"LEFT_MIDDLE COLOR%u\""
" style=\"width:22px;\">", " style=\"width:22px;\">",
Gbl.RowEvenOdd); Gbl.RowEvenOdd);
Act_FormStartUnique (ActSeePubPrf); // Must be unique because ShowPhoto = Pho_ShowingUsrPhotoIsAllowed (UsrDat,PhotoURL);
// the list of connected users Pho_ShowUsrPhoto (UsrDat,ShowPhoto ? PhotoURL :
// is dynamically updated via AJAX NULL,
Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod); "PHOTO21x28",Pho_ZOOM,true);
Act_LinkFormSubmitUnique (UsrDat.FullName,NULL);
ShowPhoto = Pho_ShowingUsrPhotoIsAllowed (&UsrDat,PhotoURL);
Pho_ShowUsrPhoto (&UsrDat,ShowPhoto ? PhotoURL :
NULL,
"PHOTO21x28",Pho_ZOOM,false);
fprintf (Gbl.F.Out,"</a>");
Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
/***** Write full name and link *****/ /***** Write full name and link *****/
@ -1070,9 +1078,9 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
ActSeeRecOneTch); // Must be unique because ActSeeRecOneTch); // Must be unique because
// the list of connected users // the list of connected users
// is dynamically updated via AJAX // is dynamically updated via AJAX
Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod); Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitUnique (Txt_View_record_for_this_course,Font); Act_LinkFormSubmitUnique (Txt_View_record_for_this_course,Font);
Usr_RestrictLengthAndWriteName (&UsrDat,8); Usr_RestrictLengthAndWriteName (UsrDat,8);
fprintf (Gbl.F.Out,"</a>"); fprintf (Gbl.F.Out,"</a>");
Act_FormEnd (); Act_FormEnd ();
fprintf (Gbl.F.Out,"</td>"); fprintf (Gbl.F.Out,"</td>");
@ -1090,8 +1098,9 @@ static void Con_WriteRowConnectedUsrOnRightColumn (Rol_Role_t Role)
fprintf (Gbl.F.Out,"</td>" fprintf (Gbl.F.Out,"</td>"
"</tr>"); "</tr>");
/***** Free memory used for user's data *****/ if (!ItsMe)
Usr_UsrDataDestructor (&UsrDat); /***** Free memory used for user's data *****/
Usr_UsrDataDestructor (&OtherUsrDat);
Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd; Gbl.RowEvenOdd = 1 - Gbl.RowEvenOdd;
} }

View File

@ -93,12 +93,10 @@ void Fol_PutLinkWhoToFollow (void)
{ {
extern const char *Txt_Who_to_follow; extern const char *Txt_Who_to_follow;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (ActSeeSocPrf,NULL, Lay_PutContextualLink (ActSeeSocPrf,NULL,
"follow64x64.png", "follow64x64.png",
Txt_Who_to_follow,Txt_Who_to_follow, Txt_Who_to_follow,Txt_Who_to_follow,
NULL); NULL);
fprintf (Gbl.F.Out,"</div>");
} }
/*****************************************************************************/ /*****************************************************************************/
@ -118,8 +116,11 @@ void Fol_SuggestUsrsToFollowMainZone (void)
unsigned NumUsr; unsigned NumUsr;
struct UsrData UsrDat; struct UsrData UsrDat;
/***** Put link to request user's profile *****/ /***** Put links to request my public profile and another user's profile *****/
Prf_PutLinkRequestUserProfile (); fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Prf_PutLinkMyPublicProfile ();
Prf_PutLinkRequestAnotherUserProfile ();
fprintf (Gbl.F.Out,"</div>");
/***** Get users *****/ /***** Get users *****/
if ((NumUsrs = Fol_GetUsrsWhoToFollow (Fol_MAX_USRS_TO_FOLLOW_MAIN_ZONE, if ((NumUsrs = Fol_GetUsrsWhoToFollow (Fol_MAX_USRS_TO_FOLLOW_MAIN_ZONE,
@ -762,7 +763,7 @@ static void Fol_ListFollowersUsr (struct UsrData *UsrDat)
static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat) static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_Another_user_s_profile;
bool ShowPhoto; bool ShowPhoto;
char PhotoURL[PATH_MAX + 1]; char PhotoURL[PATH_MAX + 1];
bool Visible = Pri_ShowingIsAllowed (UsrDat->ProfileVisibility,UsrDat); bool Visible = Pri_ShowingIsAllowed (UsrDat->ProfileVisibility,UsrDat);
@ -783,9 +784,9 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
if (Visible) if (Visible)
{ {
/* Put form to go to public profile */ /* Put form to go to public profile */
Act_FormStart (ActSeePubPrf); Act_FormStart (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmit (Txt_View_public_profile,"DAT",NULL); Act_LinkFormSubmit (Txt_Another_user_s_profile,"DAT",NULL);
Usr_RestrictLengthAndWriteName (UsrDat,10); Usr_RestrictLengthAndWriteName (UsrDat,10);
fprintf (Gbl.F.Out,"</a>"); fprintf (Gbl.F.Out,"</a>");
Act_FormEnd (); Act_FormEnd ();
@ -814,7 +815,7 @@ static void Fol_ShowFollowedOrFollower (struct UsrData *UsrDat)
static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat) static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_Another_user_s_profile;
bool ShowPhoto; bool ShowPhoto;
char PhotoURL[PATH_MAX + 1]; char PhotoURL[PATH_MAX + 1];
bool Visible = Pri_ShowingIsAllowed (UsrDat->ProfileVisibility,UsrDat); bool Visible = Pri_ShowingIsAllowed (UsrDat->ProfileVisibility,UsrDat);
@ -840,9 +841,9 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct UsrData *UsrDat)
if (Visible) if (Visible)
{ {
/* Put form to go to public profile */ /* Put form to go to public profile */
Act_FormStart (ActSeePubPrf); Act_FormStart (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmit (Txt_View_public_profile,"CON_CRS",NULL); Act_LinkFormSubmit (Txt_Another_user_s_profile,"CON_CRS",NULL);
Usr_RestrictLengthAndWriteName (UsrDat,10); Usr_RestrictLengthAndWriteName (UsrDat,10);
fprintf (Gbl.F.Out,"</a>"); fprintf (Gbl.F.Out,"</a>");
Act_FormEnd (); Act_FormEnd ();

View File

@ -723,7 +723,7 @@ static void Lay_WriteScriptParamsAJAX (void)
"var RefreshParamUsr = \"\";\n", // No user specified "var RefreshParamUsr = \"\";\n", // No user specified
Act_Actions[ActRefNewSocPubGbl].ActCod, Act_Actions[ActRefNewSocPubGbl].ActCod,
Act_Actions[ActRefOldSocPubGbl].ActCod); Act_Actions[ActRefOldSocPubGbl].ActCod);
else if (Gbl.Action.Act == ActSeePubPrf || else if (Gbl.Action.Act == ActSeeOthPubPrf ||
Gbl.Action.Act == ActRcvSocPstUsr || Gbl.Action.Act == ActRcvSocPstUsr ||
Gbl.Action.Act == ActRcvSocComUsr || Gbl.Action.Act == ActRcvSocComUsr ||
Gbl.Action.Act == ActShaSocNotUsr || Gbl.Action.Act == ActShaSocNotUsr ||
@ -1017,7 +1017,7 @@ static void Lay_ShowRightColumn (void)
Con_ShowConnectedUsrsBelongingToCurrentCrs (); Con_ShowConnectedUsrsBelongingToCurrentCrs ();
fprintf (Gbl.F.Out,"</div>"); // Used for AJAX based refresh fprintf (Gbl.F.Out,"</div>"); // Used for AJAX based refresh
} }
else else if (Gbl.Usrs.Me.Logged) // I am logged
{ {
/***** Suggest one user to follow *****/ /***** Suggest one user to follow *****/
fprintf (Gbl.F.Out,"<div class=\"LEFT_RIGHT_CELL\">"); fprintf (Gbl.F.Out,"<div class=\"LEFT_RIGHT_CELL\">");

View File

@ -754,7 +754,7 @@ static bool Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent,
if (UsrDat->EncryptedUsrCod[0]) // User's code found ==> if (UsrDat->EncryptedUsrCod[0]) // User's code found ==>
// go to user's public profile // go to user's public profile
{ {
Act_FormStart (ActSeePubPrf); Act_FormStart (ActSeeOthPubPrf);
/* Put param to go to follower's profile */ /* Put param to go to follower's profile */
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
} }

View File

@ -692,7 +692,7 @@ void Par_GetMainParameters (void)
// and to refresh old publishings in user's timeline // and to refresh old publishings in user's timeline
// If user does not exist ==> UsrCod = -1 // If user does not exist ==> UsrCod = -1
Gbl.Usrs.Other.UsrDat.UsrCod = Nck_GetUsrCodFromNickname (Gbl.Usrs.Other.UsrDat.Nickname); Gbl.Usrs.Other.UsrDat.UsrCod = Nck_GetUsrCodFromNickname (Gbl.Usrs.Other.UsrDat.Nickname);
Gbl.Action.Act = ActSeePubPrf; // Set default action if no other is specified Gbl.Action.Act = ActSeeOthPubPrf; // Set default action if no other is specified
} }
} }
else if (Par_GetParToText ("agd",Nickname,Nck_MAX_BYTES_NICKNAME_FROM_FORM)) else if (Par_GetParToText ("agd",Nickname,Nck_MAX_BYTES_NICKNAME_FROM_FORM))

View File

@ -1121,20 +1121,34 @@ void Pho_ShowUsrPhoto (const struct UsrData *UsrDat,const char *PhotoURL,
Zoom == Pho_ZOOM && // Make zoom Zoom == Pho_ZOOM && // Make zoom
Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window Act_Actions[Gbl.Action.Act].BrowserWindow == Act_THIS_WINDOW; // Only in main window
char IdCaption[Act_MAX_LENGTH_ID]; char IdCaption[Act_MAX_LENGTH_ID];
bool ItsMe = (Gbl.Usrs.Me.Logged &&
UsrDat->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod);
/***** Start form to go to public profile *****/ /***** Start form to go to public profile *****/
if (PutLinkToPublicProfile) if (PutLinkToPublicProfile)
{ {
if (FormUnique) if (FormUnique)
Act_FormStartUnique (ActSeePubPrf); {
else if (ItsMe)
Act_FormStart (ActSeePubPrf); Act_FormStartUnique (ActSeeMyPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); else
if (FormUnique) {
Act_LinkFormSubmitUnique (NULL,NULL); Act_FormStartUnique (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
}
Act_LinkFormSubmitUnique (NULL,NULL);
}
else else
{
if (ItsMe)
Act_FormStart (ActSeeMyPubPrf);
else
{
Act_FormStart (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
}
Act_LinkFormSubmit (NULL,NULL,NULL); Act_LinkFormSubmit (NULL,NULL,NULL);
}
} }
/***** Hidden div to pass user's name to Javascript *****/ /***** Hidden div to pass user's name to Javascript *****/

View File

@ -124,19 +124,31 @@ char *Prf_GetURLPublicProfile (char *URL,const char *NicknameWithoutArroba)
} }
/*****************************************************************************/ /*****************************************************************************/
/******************* Put link to request a user's profile ********************/ /******************** Put link to view my public profile *********************/
/*****************************************************************************/ /*****************************************************************************/
void Prf_PutLinkRequestUserProfile (void) void Prf_PutLinkMyPublicProfile (void)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_My_public_profile;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); Lay_PutContextualLink (ActSeeMyPubPrf,NULL,
Lay_PutContextualLink (ActReqPubPrf,NULL,
"usr64x64.gif", "usr64x64.gif",
Txt_View_public_profile,Txt_View_public_profile, Txt_My_public_profile,Txt_My_public_profile,
NULL);
}
/*****************************************************************************/
/***************** Put link to request another user's profile ****************/
/*****************************************************************************/
void Prf_PutLinkRequestAnotherUserProfile (void)
{
extern const char *Txt_Another_user_s_profile;
Lay_PutContextualLink (ActReqOthPubPrf,NULL,
"usr64x64.gif",
Txt_Another_user_s_profile,Txt_Another_user_s_profile,
NULL); NULL);
fprintf (Gbl.F.Out,"</div>");
} }
/*****************************************************************************/ /*****************************************************************************/
@ -145,9 +157,14 @@ void Prf_PutLinkRequestUserProfile (void)
void Prf_RequestUserProfile (void) void Prf_RequestUserProfile (void)
{ {
/***** Put link to show users to follow *****/
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
{
/***** Put link to show my public profile and users to follow *****/
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Prf_PutLinkMyPublicProfile ();
Fol_PutLinkWhoToFollow (); Fol_PutLinkWhoToFollow ();
fprintf (Gbl.F.Out,"</div>");
}
/* By default, the nickname is filled with my nickname /* By default, the nickname is filled with my nickname
If no user logged ==> the nickname is empty */ If no user logged ==> the nickname is empty */
@ -161,16 +178,16 @@ void Prf_RequestUserProfile (void)
static void Prf_RequestUserProfileWithDefaultNickname (const char *DefaultNickname) static void Prf_RequestUserProfileWithDefaultNickname (const char *DefaultNickname)
{ {
extern const char *Hlp_SOCIAL_Profiles_view_public_profile; extern const char *Hlp_SOCIAL_Profiles_view_public_profile;
extern const char *Txt_View_public_profile; extern const char *Txt_Another_user_s_profile;
extern const char *The_ClassForm[The_NUM_THEMES]; extern const char *The_ClassForm[The_NUM_THEMES];
extern const char *Txt_Nickname; extern const char *Txt_Nickname;
extern const char *Txt_Continue; extern const char *Txt_Continue;
/***** Start form *****/ /***** Start form *****/
Act_FormStart (ActSeePubPrf); Act_FormStart (ActSeeOthPubPrf);
/***** Start frame *****/ /***** Start frame *****/
Lay_StartRoundFrame (NULL,Txt_View_public_profile,NULL,Hlp_SOCIAL_Profiles_view_public_profile); Lay_StartRoundFrame (NULL,Txt_Another_user_s_profile,NULL,Hlp_SOCIAL_Profiles_view_public_profile);
/***** Form to request user's @nickname *****/ /***** Form to request user's @nickname *****/
fprintf (Gbl.F.Out,"<label class=\"%s\">" fprintf (Gbl.F.Out,"<label class=\"%s\">"
@ -190,6 +207,19 @@ static void Prf_RequestUserProfileWithDefaultNickname (const char *DefaultNickna
Act_FormEnd (); Act_FormEnd ();
} }
/*****************************************************************************/
/************************** Show my public profile ***************************/
/*****************************************************************************/
void Prf_ShowMyProfile (void)
{
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
if (!Prf_ShowUserProfile (&Gbl.Usrs.Me.UsrDat))
/* Show error message */
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
}
/*****************************************************************************/ /*****************************************************************************/
/******************** Get user and show a user's profile *********************/ /******************** Get user and show a user's profile *********************/
/*****************************************************************************/ /*****************************************************************************/
@ -254,18 +284,21 @@ bool Prf_ShowUserProfile (struct UsrData *UsrDat)
/***** Contextual links *****/ /***** Contextual links *****/
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
{ {
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
if (ItsMe) // It's me if (ItsMe) // It's me
{ {
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">"); Rec_PutLinkToChangeMyInsCtrDpt (); // Put link (form) to change my institution, centre, department...
Rec_PutLinkToChangeMyInsCtrDpt (); // Put link (form) to change my institution, centre, department... Net_PutLinkToChangeMySocialNetworks (); // Put link (form) to change my social networks
Net_PutLinkToChangeMySocialNetworks (); // Put link (form) to change my social networks
Pho_PutLinkToChangeMyPhoto (); // Put link (form) to change my photo Pho_PutLinkToChangeMyPhoto (); // Put link (form) to change my photo
Pri_PutLinkToChangeMyPrivacy (); // Put link (form) to change my privacy Pri_PutLinkToChangeMyPrivacy (); // Put link (form) to change my privacy
fprintf (Gbl.F.Out,"</div>");
} }
else else
/***** Put link to show users to follow *****/ {
/***** Put link to show my public profile and users to follow *****/
Prf_PutLinkMyPublicProfile ();
Fol_PutLinkWhoToFollow (); Fol_PutLinkWhoToFollow ();
}
fprintf (Gbl.F.Out,"</div>");
} }
/***** Check if I can see the public profile *****/ /***** Check if I can see the public profile *****/
@ -1487,10 +1520,12 @@ void Prf_GetAndShowRankingClicksPerDay (void)
void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank) void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_Another_user_s_profile;
bool ShowPhoto; bool ShowPhoto;
char PhotoURL[PATH_MAX + 1]; char PhotoURL[PATH_MAX + 1];
bool Visible = Pri_ShowingIsAllowed (UsrDat->ProfileVisibility,UsrDat); bool Visible = Pri_ShowingIsAllowed (UsrDat->ProfileVisibility,UsrDat);
bool ItsMe = (Gbl.Usrs.Me.Logged &&
UsrDat->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod);
fprintf (Gbl.F.Out,"<td class=\"RANK RIGHT_MIDDLE COLOR%u\"" fprintf (Gbl.F.Out,"<td class=\"RANK RIGHT_MIDDLE COLOR%u\""
" style=\"height:50px;\">" " style=\"height:50px;\">"
@ -1519,9 +1554,14 @@ void Prf_ShowUsrInRanking (struct UsrData *UsrDat,unsigned Rank)
/***** Put form to go to public profile *****/ /***** Put form to go to public profile *****/
if (Visible) if (Visible)
{ {
Act_FormStart (ActSeePubPrf); if (ItsMe)
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); Act_FormStart (ActSeeMyPubPrf);
Act_LinkFormSubmit (Txt_View_public_profile,"DAT_SMALL",NULL); else
{
Act_FormStart (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
}
Act_LinkFormSubmit (Txt_Another_user_s_profile,"DAT_SMALL",NULL);
Usr_RestrictLengthAndWriteName (UsrDat,8); Usr_RestrictLengthAndWriteName (UsrDat,8);
fprintf (Gbl.F.Out,"</a>"); fprintf (Gbl.F.Out,"</a>");
Act_FormEnd (); Act_FormEnd ();

View File

@ -52,8 +52,10 @@ struct UsrFigures
void Prf_SeeSocialProfiles (void); void Prf_SeeSocialProfiles (void);
char *Prf_GetURLPublicProfile (char *URL,const char *NicknameWithoutArroba); char *Prf_GetURLPublicProfile (char *URL,const char *NicknameWithoutArroba);
void Prf_PutLinkRequestUserProfile (void); void Prf_PutLinkMyPublicProfile (void);
void Prf_PutLinkRequestAnotherUserProfile (void);
void Prf_RequestUserProfile (void); void Prf_RequestUserProfile (void);
void Prf_ShowMyProfile (void);
void Prf_GetUsrDatAndShowUserProfile (void); void Prf_GetUsrDatAndShowUserProfile (void);
bool Prf_ShowUserProfile (struct UsrData *UsrDat); bool Prf_ShowUserProfile (struct UsrData *UsrDat);

View File

@ -2333,7 +2333,8 @@ static void Rec_PutIconsCommands (void)
{ {
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS]; extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
extern const char *Txt_Edit_my_personal_data; extern const char *Txt_Edit_my_personal_data;
extern const char *Txt_View_public_profile; extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
extern const char *Txt_View_record_for_this_course; extern const char *Txt_View_record_for_this_course;
extern const char *Txt_View_record_and_office_hours; extern const char *Txt_View_record_and_office_hours;
extern const char *Txt_Show_agenda; extern const char *Txt_Show_agenda;
@ -2355,24 +2356,29 @@ static void Rec_PutIconsCommands (void)
Gbl.Usrs.Me.Logged) // Only if I am logged Gbl.Usrs.Me.Logged) // Only if I am logged
{ {
ICanViewUsrProfile = Pri_ShowingIsAllowed (Gbl.Record.UsrDat->ProfileVisibility, ICanViewUsrProfile = Pri_ShowingIsAllowed (Gbl.Record.UsrDat->ProfileVisibility,
Gbl.Record.UsrDat); Gbl.Record.UsrDat);
/***** Start container *****/ /***** Start container *****/
fprintf (Gbl.F.Out,"<div class=\"FRAME_ICO\">"); fprintf (Gbl.F.Out,"<div class=\"FRAME_ICO\">");
/***** Button to edit my record card *****/
if (ItsMe) if (ItsMe)
{
/***** Buttons to edit my record card and to view my profile *****/
Lay_PutContextualLink (ActReqEdiRecCom,NULL, Lay_PutContextualLink (ActReqEdiRecCom,NULL,
"edit64x64.png", "edit64x64.png",
Txt_Edit_my_personal_data,NULL, Txt_Edit_my_personal_data,NULL,
NULL); NULL);
Lay_PutContextualLink (ActSeeMyPubPrf,NULL,
/***** Button to view user's public profile *****/ "usr64x64.gif",
if (ICanViewUsrProfile) Txt_My_public_profile,NULL,
Lay_PutContextualLink (ActSeePubPrf, NULL);
}
else if (ICanViewUsrProfile)
/***** Button to view another user's profile *****/
Lay_PutContextualLink (ActSeeOthPubPrf,
Rec_PutParamUsrCodEncrypted, Rec_PutParamUsrCodEncrypted,
"usr64x64.gif", "usr64x64.gif",
Txt_View_public_profile,NULL, Txt_Another_user_s_profile,NULL,
NULL); NULL);
/***** Button to view user's record card *****/ /***** Button to view user's record card *****/
@ -2616,8 +2622,10 @@ static void Rec_ShowFullName (struct UsrData *UsrDat)
static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks) static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
char NicknameWithArroba[Nck_MAX_BYTES_NICKNAME_FROM_FORM + 1]; char NicknameWithArroba[Nck_MAX_BYTES_NICKNAME_FROM_FORM + 1];
bool ItsMe;
fprintf (Gbl.F.Out,"<tr>" fprintf (Gbl.F.Out,"<tr>"
"<td class=\"REC_C2_MID REC_NAME LEFT_BOTTOM\">" "<td class=\"REC_C2_MID REC_NAME LEFT_BOTTOM\">"
@ -2627,9 +2635,19 @@ static void Rec_ShowNickname (struct UsrData *UsrDat,bool PutFormLinks)
if (PutFormLinks) if (PutFormLinks)
{ {
/* Put form to go to public profile */ /* Put form to go to public profile */
Act_FormStart (ActSeePubPrf); ItsMe = (Gbl.Usrs.Me.Logged &&
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); UsrDat->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod);
Act_LinkFormSubmit (Txt_View_public_profile,"REC_NICK",NULL); if (ItsMe)
{
Act_FormStart (ActSeeMyPubPrf);
Act_LinkFormSubmit (Txt_My_public_profile,"REC_NICK",NULL);
}
else
{
Act_FormStart (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmit (Txt_Another_user_s_profile,"REC_NICK",NULL);
}
} }
fprintf (Gbl.F.Out,"@%s",UsrDat->Nickname); fprintf (Gbl.F.Out,"@%s",UsrDat->Nickname);
if (PutFormLinks) if (PutFormLinks)

View File

@ -1368,25 +1368,44 @@ static void Soc_WriteSocialNote (const struct SocialNote *SocNot,
static void Soc_WriteTopMessage (Soc_TopMessage_t TopMessage,long UsrCod) static void Soc_WriteTopMessage (Soc_TopMessage_t TopMessage,long UsrCod)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
extern const char *Txt_SOCIAL_NOTE_TOP_MESSAGES[Soc_NUM_TOP_MESSAGES]; extern const char *Txt_SOCIAL_NOTE_TOP_MESSAGES[Soc_NUM_TOP_MESSAGES];
struct UsrData UsrDat; struct UsrData UsrDat;
bool ItsMe = (Gbl.Usrs.Me.Logged &&
UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod);
bool UsrOK;
if (TopMessage != Soc_TOP_MESSAGE_NONE) if (TopMessage != Soc_TOP_MESSAGE_NONE)
{ {
/***** Initialize structure with user's data *****/ if (ItsMe)
Usr_UsrDataConstructor (&UsrDat); UsrOK = true;
else
{
/***** Initialize structure with user's data *****/
Usr_UsrDataConstructor (&UsrDat);
/***** Get user's data *****/ /***** Get user's data *****/
UsrDat.UsrCod = UsrCod; UsrDat.UsrCod = UsrCod;
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat)) // Really we only need EncryptedUsrCod and FullName UsrOK = Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat); // Really we only need EncryptedUsrCod and FullName
}
if (UsrOK)
{ {
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_TOP_CONTAINER SOCIAL_TOP_PUBLISHER\">"); fprintf (Gbl.F.Out,"<div class=\"SOCIAL_TOP_CONTAINER SOCIAL_TOP_PUBLISHER\">");
/***** Show user's name inside form to go to user's public profile *****/ /***** Show user's name inside form to go to user's public profile *****/
Act_FormStartUnique (ActSeePubPrf); if (ItsMe)
Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod); {
Act_LinkFormSubmitUnique (Txt_View_public_profile,"SOCIAL_TOP_PUBLISHER"); Act_FormStartUnique (ActSeeMyPubPrf);
Act_LinkFormSubmitUnique (Txt_My_public_profile,"SOCIAL_TOP_PUBLISHER");
}
else
{
Act_FormStartUnique (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod);
Act_LinkFormSubmitUnique (Txt_Another_user_s_profile,"SOCIAL_TOP_PUBLISHER");
}
Str_LimitLengthHTMLStr (UsrDat.FullName,40); Str_LimitLengthHTMLStr (UsrDat.FullName,40);
fprintf (Gbl.F.Out,"%s</a>",UsrDat.FullName); fprintf (Gbl.F.Out,"%s</a>",UsrDat.FullName);
Act_FormEnd (); Act_FormEnd ();
@ -1396,8 +1415,9 @@ static void Soc_WriteTopMessage (Soc_TopMessage_t TopMessage,long UsrCod)
Txt_SOCIAL_NOTE_TOP_MESSAGES[TopMessage]); Txt_SOCIAL_NOTE_TOP_MESSAGES[TopMessage]);
} }
/***** Free memory used for user's data *****/ if (!ItsMe)
Usr_UsrDataDestructor (&UsrDat); /***** Free memory used for user's data *****/
Usr_UsrDataDestructor (&UsrDat);
} }
} }
@ -1408,22 +1428,41 @@ static void Soc_WriteTopMessage (Soc_TopMessage_t TopMessage,long UsrCod)
static void Soc_WriteAuthorNote (struct UsrData *UsrDat) static void Soc_WriteAuthorNote (struct UsrData *UsrDat)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
bool ItsMe = (Gbl.Usrs.Me.Logged &&
UsrDat->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod);
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_RIGHT_AUTHOR\">"); fprintf (Gbl.F.Out,"<div class=\"SOCIAL_RIGHT_AUTHOR\">");
/***** Show user's name inside form to go to user's public profile *****/ /***** Show user's name inside form to go to user's public profile *****/
Act_FormStartUnique (ActSeePubPrf); if (ItsMe)
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); {
Act_LinkFormSubmitUnique (Txt_View_public_profile,"DAT_N_BOLD"); Act_FormStartUnique (ActSeeMyPubPrf);
Act_LinkFormSubmitUnique (Txt_My_public_profile,"DAT_N_BOLD");
}
else
{
Act_FormStartUnique (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitUnique (Txt_Another_user_s_profile,"DAT_N_BOLD");
}
Str_LimitLengthHTMLStr (UsrDat->FullName,16); Str_LimitLengthHTMLStr (UsrDat->FullName,16);
fprintf (Gbl.F.Out,"%s</a>",UsrDat->FullName); fprintf (Gbl.F.Out,"%s</a>",UsrDat->FullName);
Act_FormEnd (); Act_FormEnd ();
/***** Show user's nickname inside form to go to user's public profile *****/ /***** Show user's nickname inside form to go to user's public profile *****/
Act_FormStartUnique (ActSeePubPrf); if (ItsMe)
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); {
Act_LinkFormSubmitUnique (Txt_View_public_profile,"DAT_LIGHT"); Act_FormStartUnique (ActSeeMyPubPrf);
Act_LinkFormSubmitUnique (Txt_My_public_profile,"DAT_N_BOLD");
}
else
{
Act_FormStartUnique (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitUnique (Txt_Another_user_s_profile,"DAT_LIGHT");
}
fprintf (Gbl.F.Out," @%s</a>",UsrDat->Nickname); fprintf (Gbl.F.Out," @%s</a>",UsrDat->Nickname);
Act_FormEnd (); Act_FormEnd ();
@ -2453,22 +2492,41 @@ static void Soc_WriteSocialComment (struct SocialComment *SocCom,
static void Soc_WriteAuthorComment (struct UsrData *UsrDat) static void Soc_WriteAuthorComment (struct UsrData *UsrDat)
{ {
extern const char *Txt_View_public_profile; extern const char *Txt_My_public_profile;
extern const char *Txt_Another_user_s_profile;
bool ItsMe = (Gbl.Usrs.Me.Logged &&
UsrDat->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod);
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_COMMENT_RIGHT_AUTHOR\">"); fprintf (Gbl.F.Out,"<div class=\"SOCIAL_COMMENT_RIGHT_AUTHOR\">");
/***** Show user's name inside form to go to user's public profile *****/ /***** Show user's name inside form to go to user's public profile *****/
Act_FormStartUnique (ActSeePubPrf); if (ItsMe)
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); {
Act_LinkFormSubmitUnique (Txt_View_public_profile,"DAT_BOLD"); Act_FormStartUnique (ActSeeMyPubPrf);
Act_LinkFormSubmitUnique (Txt_My_public_profile,"DAT_N_BOLD");
}
else
{
Act_FormStartUnique (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitUnique (Txt_Another_user_s_profile,"DAT_BOLD");
}
Str_LimitLengthHTMLStr (UsrDat->FullName,12); Str_LimitLengthHTMLStr (UsrDat->FullName,12);
fprintf (Gbl.F.Out,"%s</a>",UsrDat->FullName); fprintf (Gbl.F.Out,"%s</a>",UsrDat->FullName);
Act_FormEnd (); Act_FormEnd ();
/***** Show user's nickname inside form to go to user's public profile *****/ /***** Show user's nickname inside form to go to user's public profile *****/
Act_FormStartUnique (ActSeePubPrf); if (ItsMe)
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); {
Act_LinkFormSubmitUnique (Txt_View_public_profile,"DAT_LIGHT"); Act_FormStartUnique (ActSeeMyPubPrf);
Act_LinkFormSubmitUnique (Txt_My_public_profile,"DAT_LIGHT");
}
else
{
Act_FormStartUnique (ActSeeOthPubPrf);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Act_LinkFormSubmitUnique (Txt_Another_user_s_profile,"DAT_LIGHT");
}
fprintf (Gbl.F.Out," @%s</a>",UsrDat->Nickname); fprintf (Gbl.F.Out," @%s</a>",UsrDat->Nickname);
Act_FormEnd (); Act_FormEnd ();

View File

@ -306,7 +306,7 @@ void Str_InsertLinks (char *Txt,unsigned long MaxLength,size_t MaxCharsURLOnScre
sprintf (Gbl.Form.Id,"form_%d",Gbl.Form.Num); sprintf (Gbl.Form.Id,"form_%d",Gbl.Form.Num);
/* Store first part of anchor */ /* Store first part of anchor */
Act_SetParamsForm (ParamsStr,ActSeePubPrf,true); Act_SetParamsForm (ParamsStr,ActSeeOthPubPrf,true);
sprintf (Anchor1Nick,"<form method=\"post\" action=\"%s/%s\" id=\"%s\">" sprintf (Anchor1Nick,"<form method=\"post\" action=\"%s/%s\" id=\"%s\">"
"%s" "%s"
"<input type=\"hidden\" name=\"usr\" value=\"", "<input type=\"hidden\" name=\"usr\" value=\"",

View File

@ -2604,6 +2604,27 @@ const char *Txt_Another_ID =
"Outro n&ordm; de identif."; "Outro n&ordm; de identif.";
#endif #endif
const char *Txt_Another_user_s_profile =
#if L==1
"Perfil d'un altre usuari";
#elif L==2
"Profil eines anderen Benutzers";
#elif L==3
"Another user's profile";
#elif L==4
"Perfil de otro usuario";
#elif L==5
"Profil d'un autre utilisateur";
#elif L==6
"Perfil de otro usuario"; // Okoteve traducción
#elif L==7
"Altro profilo di utente";
#elif L==8
"Profil innego u&zdot;ytkownika";
#elif L==9
"Perfil de outro usu&aacute;rio";
#endif
const char *Txt_Add_this_ID = const char *Txt_Add_this_ID =
#if L==1 #if L==1
"Afegir aquest ID"; "Afegir aquest ID";
@ -23649,6 +23670,27 @@ const char *Txt_My_groups =
"Meus grupos"; "Meus grupos";
#endif #endif
const char *Txt_My_public_profile =
#if L==1
"El meu perfil p&uacute;blic";
#elif L==2
"Mein &ouml;ffentliches Profil";
#elif L==3
"My public profile";
#elif L==4
"Mi perfil p&uacute;blico";
#elif L==5
"Mon profil public";
#elif L==6
"Mi perfil p&uacute;blico"; // Okoteve traducción
#elif L==7
"Il mio profilo pubblico";
#elif L==8
"M&oacute;j profil publiczny";
#elif L==9
"Meu perfil p&uacute;blico";
#endif
const char *Txt_My_views = const char *Txt_My_views =
#if L==1 #if L==1
"Els meus accessos"; "Els meus accessos";
@ -50553,27 +50595,6 @@ const char *Txt_View_in_a_new_window =
"Ver em uma nova janela"; "Ver em uma nova janela";
#endif #endif
const char *Txt_View_public_profile =
#if L==1
"Veure perfil p&uacute;blic";
#elif L==2
"&Ouml;ffentliches Profile anzeigen";
#elif L==3
"View public profile";
#elif L==4
"Ver perfil p&uacute;blico";
#elif L==5
"Voir profil public";
#elif L==6
"Ver perfil p&uacute;blico"; // Okoteve traducción
#elif L==7
"Mostra profilo pubblico";
#elif L==8
"Zobacz profil publiczny";
#elif L==9
"Ver perfil p&uacute;blico";
#endif
const char *Txt_View_record_and_office_hours = const char *Txt_View_record_and_office_hours =
#if L==1 #if L==1
"Veure fitxa i horari de tutories"; "Veure fitxa i horari de tutories";