mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-05 16:25:29 +02:00
Version 16.137
This commit is contained in:
parent
3092652366
commit
65d14b53f5
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
293
swad_action.h
293
swad_action.h
|
@ -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 ********************************/
|
||||||
|
|
|
@ -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 *****/
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 ();
|
||||||
|
|
|
@ -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\">");
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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))
|
||||||
|
|
28
swad_photo.c
28
swad_photo.c
|
@ -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 *****/
|
||||||
|
|
|
@ -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 ();
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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)
|
||||||
|
|
108
swad_social.c
108
swad_social.c
|
@ -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 ();
|
||||||
|
|
||||||
|
|
|
@ -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=\"",
|
||||||
|
|
63
swad_text.c
63
swad_text.c
|
@ -2604,6 +2604,27 @@ const char *Txt_Another_ID =
|
||||||
"Outro nº de identif.";
|
"Outro nº 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żytkownika";
|
||||||
|
#elif L==9
|
||||||
|
"Perfil de outro usuá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úblic";
|
||||||
|
#elif L==2
|
||||||
|
"Mein öffentliches Profil";
|
||||||
|
#elif L==3
|
||||||
|
"My public profile";
|
||||||
|
#elif L==4
|
||||||
|
"Mi perfil público";
|
||||||
|
#elif L==5
|
||||||
|
"Mon profil public";
|
||||||
|
#elif L==6
|
||||||
|
"Mi perfil público"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Il mio profilo pubblico";
|
||||||
|
#elif L==8
|
||||||
|
"Mój profil publiczny";
|
||||||
|
#elif L==9
|
||||||
|
"Meu perfil pú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úblic";
|
|
||||||
#elif L==2
|
|
||||||
"Öffentliches Profile anzeigen";
|
|
||||||
#elif L==3
|
|
||||||
"View public profile";
|
|
||||||
#elif L==4
|
|
||||||
"Ver perfil público";
|
|
||||||
#elif L==5
|
|
||||||
"Voir profil public";
|
|
||||||
#elif L==6
|
|
||||||
"Ver perfil público"; // Okoteve traducción
|
|
||||||
#elif L==7
|
|
||||||
"Mostra profilo pubblico";
|
|
||||||
#elif L==8
|
|
||||||
"Zobacz profil publiczny";
|
|
||||||
#elif L==9
|
|
||||||
"Ver perfil pú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";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user