Version 15.89

This commit is contained in:
Antonio Cañas Vargas 2016-01-02 01:56:48 +01:00
parent 385b79c010
commit b106dea1df
8 changed files with 485 additions and 271 deletions

View File

@ -997,17 +997,25 @@ Users:
834. ActLstClk List last clicks in real time
Social:
835. ActSeeSocAct Show social activity (timeline)
835. ActSeeSocTmlGbl Show social timeline (global)
836. ActReqPubPrf Request @nickname to show a public user's profile
837. ActSeeFor Show the level superior of the forums
838. ActSeeChtRms Show the chat rooms
839. ActReqSocPst Write a public social post to be displayed in the timeline
840. ActRcvSocPst Receive a public social post to be displayed in the timeline
NEW!!!!!!!!. ActShaSocPub Share a social publishing
NEW!!!!!!!!. ActUnsSocPub Unshare a previously shared social publishing
841. ActReqRemSocPub Request the removal of a social publishing (only if it is a post)
842. ActRemSocPub Remove a social publishing (only if it is a post)
839. ActReqSocPstGbl Write a public social post to be displayed in the timeline (global)
840. ActRcvSocPstGbl Receive a public social post to be displayed in the timeline (global)
NEW!!!!!!!!. ActShaSocPubGbl Share a social publishing in the timeline (global)
NEW!!!!!!!!. ActUnsSocPubGbl Unshare a previously shared social publishing in the timeline (global)
841. ActReqRemSocPubGbl Request the removal of a social publishing in the timeline (global)
842. ActRemSocPubGbl Remove a social publishing in the timeline (global)
NEW!!!!!!!!. ActReqSocPstUsr Write a public social post to be displayed in the timeline (user)
NEW!!!!!!!!. ActRcvSocPstUsr Receive a public social post to be displayed in the timeline (user)
NEW!!!!!!!!. ActShaSocPubUsr Share a social publishing in the timeline (user)
NEW!!!!!!!!. ActUnsSocPubUsr Unshare a previously shared social publishing in the timeline (user)
NEW!!!!!!!!. ActReqRemSocPubUsr Request the removal of a social publishing in the timeline (user)
NEW!!!!!!!!. ActRemSocPubUsr Remove a social publishing in the timeline (user)
843. ActSeePubPrf Show a public user's profile
844. ActCal1stClkTim Calculate first click time from log and store into user's figures
845. ActCalNumClk Calculate number of clicks from log and store into user's figures
@ -2310,17 +2318,24 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActLstClk */{ 989,-1,TabUsr,ActLstCon ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Con_ShowLastClicks ,NULL},
// TabSoc ******************************************************************
/* ActSeeSocAct */{1490, 0,TabSoc,ActSeeSocAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ShowFollowingTimeline ,"soc64x64.png" },
/* ActSeeSocTmlGbl */{1490, 0,TabSoc,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ShowTimelineGbl ,"soc64x64.png" },
/* ActReqPubPrf */{1401, 1,TabSoc,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_RequestUserProfile ,"prf64x64.gif" },
/* ActSeeFor */{ 95, 2,TabSoc,ActSeeFor ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,For_ShowForumList ,"forum64x64.gif" },
/* ActSeeChtRms */{ 51, 3,TabSoc,ActSeeChtRms ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Cht_ShowChatRooms ,"chat64x64.gif" },
/* ActReqSocPst */{1491,-1,TabSoc,ActSeeSocAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_FormSocialPost ,NULL},
/* ActRcvSocPst */{1492,-1,TabSoc,ActSeeSocAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ReceiveSocialPost ,NULL},
/* ActShaSocPub */{1495,-1,TabSoc,ActSeeSocAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ShareSocialPublishing ,NULL},
/* ActUnsSocPub */{1496,-1,TabSoc,ActSeeSocAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_UnshareSocialPublishing ,NULL},
/* ActReqRemSocPub */{1494,-1,TabSoc,ActSeeSocAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_RequestRemovalSocialNote ,NULL},
/* ActRemSocPub */{1493,-1,TabSoc,ActSeeSocAct ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_RemoveSocialPublishing ,NULL},
/* ActReqSocPstGbl */{1491,-1,TabSoc,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_FormSocialPostGbl ,NULL},
/* ActRcvSocPstGbl */{1492,-1,TabSoc,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ReceiveSocialPostGbl ,NULL},
/* ActShaSocPubGbl */{1495,-1,TabSoc,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ShareSocialPubGbl ,NULL},
/* ActUnsSocPubGbl */{1496,-1,TabSoc,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_UnshareSocialPubGbl ,NULL},
/* ActReqRemSocPubGbl*/{1494,-1,TabSoc,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_RequestRemSocialPubGbl ,NULL},
/* ActRemSocPubGbl */{1493,-1,TabSoc,ActSeeSocTmlGbl ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_RemoveSocialPubGbl ,NULL},
/* ActReqSocPstUsr */{1497,-1,TabSoc,ActReqPubPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_FormSocialPostUsr ,NULL},
/* ActRcvSocPstUsr */{1498,-1,TabSoc,ActReqPubPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ReceiveSocialPostUsr ,NULL},
/* ActShaSocPubUsr */{1499,-1,TabSoc,ActReqPubPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_ShareSocialPubUsr ,NULL},
/* ActUnsSocPubUsr */{1500,-1,TabSoc,ActReqPubPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_UnshareSocialPubUsr ,NULL},
/* ActReqRemSocPubUsr*/{1501,-1,TabSoc,ActReqPubPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_RequestRemSocialPubUsr ,NULL},
/* ActRemSocPubUsr */{1502,-1,TabSoc,ActReqPubPrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Soc_RemoveSocialPubUsr ,NULL},
/* ActSeePubPrf */{1402,-1,TabSoc,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_GetUsrCodAndShowUserProfile,NULL},
/* ActCal1stClkTim */{1405,-1,TabSoc,ActReqPubPrf ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Prf_CalculateFirstClickTime ,NULL},
@ -4158,13 +4173,19 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActChgMyTT1stDay, // #1487
ActAskRemOldBrf, // #1488
ActRemOldBrf, // #1489
ActSeeSocAct, // #1490
ActReqSocPst, // #1491
ActRcvSocPst, // #1492
ActRemSocPub, // #1493
ActReqRemSocPub, // #1494
ActShaSocPub, // #1495
ActUnsSocPub, // #1496
ActSeeSocTmlGbl, // #1490
ActReqSocPstGbl, // #1491
ActRcvSocPstGbl, // #1492
ActRemSocPubGbl, // #1493
ActReqRemSocPubGbl, // #1494
ActShaSocPubGbl, // #1495
ActUnsSocPubGbl, // #1496
ActReqSocPstUsr, // #1497
ActRcvSocPstUsr, // #1498
ActShaSocPubUsr, // #1499
ActUnsSocPubUsr, // #1500
ActReqRemSocPubUsr, // #1501
ActRemSocPubUsr, // #1502
};
/*****************************************************************************/
@ -4440,6 +4461,8 @@ void Act_PutLinkToUpdateAction (Act_Action_t Action)
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Act_FormStart (Action);
if (Gbl.Usrs.Other.UsrDat.UsrCod >= 0) // This update action requieres specify user
Usr_PutParamOtherUsrCodEncrypted ();
Act_LinkFormSubmitAnimated (Txt_Update,The_ClassFormBold[Gbl.Prefs.Theme]);
Lay_PutCalculateIconWithText (Txt_Update,Txt_Update);
Act_FormEnd ();

View File

@ -71,9 +71,9 @@ typedef enum
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (7+52+15+90+72+67+205+183+143+153+36+27+82)
#define Act_NUM_ACTIONS (7+52+15+90+72+67+205+183+143+159+36+27+82)
#define Act_MAX_ACTION_COD 1496
#define Act_MAX_ACTION_COD 1502
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
@ -1036,164 +1036,171 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
/******************************** Social tab *********************************/
/*****************************************************************************/
// Actions in menu
#define ActSeeSocAct (ActLstClk+ 1)
#define ActSeeSocTmlGbl (ActLstClk+ 1)
#define ActReqPubPrf (ActLstClk+ 2)
#define ActSeeFor (ActLstClk+ 3)
#define ActSeeChtRms (ActLstClk+ 4)
// Secondary actions
#define ActReqSocPst (ActLstClk+ 5)
#define ActRcvSocPst (ActLstClk+ 6)
#define ActShaSocPub (ActLstClk+ 7)
#define ActUnsSocPub (ActLstClk+ 8)
#define ActReqRemSocPub (ActLstClk+ 9)
#define ActRemSocPub (ActLstClk+ 10)
#define ActReqSocPstGbl (ActLstClk+ 5)
#define ActRcvSocPstGbl (ActLstClk+ 6)
#define ActShaSocPubGbl (ActLstClk+ 7)
#define ActUnsSocPubGbl (ActLstClk+ 8)
#define ActReqRemSocPubGbl (ActLstClk+ 9)
#define ActRemSocPubGbl (ActLstClk+ 10)
#define ActSeePubPrf (ActLstClk+ 11)
#define ActCal1stClkTim (ActLstClk+ 12)
#define ActCalNumClk (ActLstClk+ 13)
#define ActCalNumFilVie (ActLstClk+ 14)
#define ActCalNumForPst (ActLstClk+ 15)
#define ActCalNumMsgSnt (ActLstClk+ 16)
#define ActReqSocPstUsr (ActLstClk+ 11)
#define ActRcvSocPstUsr (ActLstClk+ 12)
#define ActShaSocPubUsr (ActLstClk+ 13)
#define ActUnsSocPubUsr (ActLstClk+ 14)
#define ActReqRemSocPubUsr (ActLstClk+ 15)
#define ActRemSocPubUsr (ActLstClk+ 16)
#define ActFolUsr (ActLstClk+ 17)
#define ActUnfUsr (ActLstClk+ 18)
#define ActSeeFlg (ActLstClk+ 19)
#define ActSeeFlr (ActLstClk+ 20)
#define ActSeePubPrf (ActLstClk+ 17)
#define ActCal1stClkTim (ActLstClk+ 18)
#define ActCalNumClk (ActLstClk+ 19)
#define ActCalNumFilVie (ActLstClk+ 20)
#define ActCalNumForPst (ActLstClk+ 21)
#define ActCalNumMsgSnt (ActLstClk+ 22)
#define ActSeeForCrsUsr (ActLstClk+ 21)
#define ActSeeForCrsTch (ActLstClk+ 22)
#define ActSeeForDegUsr (ActLstClk+ 23)
#define ActSeeForDegTch (ActLstClk+ 24)
#define ActSeeForCtrUsr (ActLstClk+ 25)
#define ActSeeForCtrTch (ActLstClk+ 26)
#define ActSeeForInsUsr (ActLstClk+ 27)
#define ActSeeForInsTch (ActLstClk+ 28)
#define ActSeeForGenUsr (ActLstClk+ 29)
#define ActSeeForGenTch (ActLstClk+ 30)
#define ActSeeForSWAUsr (ActLstClk+ 31)
#define ActSeeForSWATch (ActLstClk+ 32)
#define ActSeePstForCrsUsr (ActLstClk+ 33)
#define ActSeePstForCrsTch (ActLstClk+ 34)
#define ActSeePstForDegUsr (ActLstClk+ 35)
#define ActSeePstForDegTch (ActLstClk+ 36)
#define ActSeePstForCtrUsr (ActLstClk+ 37)
#define ActSeePstForCtrTch (ActLstClk+ 38)
#define ActSeePstForInsUsr (ActLstClk+ 39)
#define ActSeePstForInsTch (ActLstClk+ 40)
#define ActSeePstForGenUsr (ActLstClk+ 41)
#define ActSeePstForGenTch (ActLstClk+ 42)
#define ActSeePstForSWAUsr (ActLstClk+ 43)
#define ActSeePstForSWATch (ActLstClk+ 44)
#define ActRcvThrForCrsUsr (ActLstClk+ 45)
#define ActRcvThrForCrsTch (ActLstClk+ 46)
#define ActRcvThrForDegUsr (ActLstClk+ 47)
#define ActRcvThrForDegTch (ActLstClk+ 48)
#define ActRcvThrForCtrUsr (ActLstClk+ 49)
#define ActRcvThrForCtrTch (ActLstClk+ 50)
#define ActRcvThrForInsUsr (ActLstClk+ 51)
#define ActRcvThrForInsTch (ActLstClk+ 52)
#define ActRcvThrForGenUsr (ActLstClk+ 53)
#define ActRcvThrForGenTch (ActLstClk+ 54)
#define ActRcvThrForSWAUsr (ActLstClk+ 55)
#define ActRcvThrForSWATch (ActLstClk+ 56)
#define ActRcvRepForCrsUsr (ActLstClk+ 57)
#define ActRcvRepForCrsTch (ActLstClk+ 58)
#define ActRcvRepForDegUsr (ActLstClk+ 59)
#define ActRcvRepForDegTch (ActLstClk+ 60)
#define ActRcvRepForCtrUsr (ActLstClk+ 61)
#define ActRcvRepForCtrTch (ActLstClk+ 62)
#define ActRcvRepForInsUsr (ActLstClk+ 63)
#define ActRcvRepForInsTch (ActLstClk+ 64)
#define ActRcvRepForGenUsr (ActLstClk+ 65)
#define ActRcvRepForGenTch (ActLstClk+ 66)
#define ActRcvRepForSWAUsr (ActLstClk+ 67)
#define ActRcvRepForSWATch (ActLstClk+ 68)
#define ActReqDelThrCrsUsr (ActLstClk+ 69)
#define ActReqDelThrCrsTch (ActLstClk+ 70)
#define ActReqDelThrDegUsr (ActLstClk+ 71)
#define ActReqDelThrDegTch (ActLstClk+ 72)
#define ActReqDelThrCtrUsr (ActLstClk+ 73)
#define ActReqDelThrCtrTch (ActLstClk+ 74)
#define ActReqDelThrInsUsr (ActLstClk+ 75)
#define ActReqDelThrInsTch (ActLstClk+ 76)
#define ActReqDelThrGenUsr (ActLstClk+ 77)
#define ActReqDelThrGenTch (ActLstClk+ 78)
#define ActReqDelThrSWAUsr (ActLstClk+ 79)
#define ActReqDelThrSWATch (ActLstClk+ 80)
#define ActDelThrForCrsUsr (ActLstClk+ 81)
#define ActDelThrForCrsTch (ActLstClk+ 82)
#define ActDelThrForDegUsr (ActLstClk+ 83)
#define ActDelThrForDegTch (ActLstClk+ 84)
#define ActDelThrForCtrUsr (ActLstClk+ 85)
#define ActDelThrForCtrTch (ActLstClk+ 86)
#define ActDelThrForInsUsr (ActLstClk+ 87)
#define ActDelThrForInsTch (ActLstClk+ 88)
#define ActDelThrForGenUsr (ActLstClk+ 89)
#define ActDelThrForGenTch (ActLstClk+ 90)
#define ActDelThrForSWAUsr (ActLstClk+ 91)
#define ActDelThrForSWATch (ActLstClk+ 92)
#define ActCutThrForCrsUsr (ActLstClk+ 93)
#define ActCutThrForCrsTch (ActLstClk+ 94)
#define ActCutThrForDegUsr (ActLstClk+ 95)
#define ActCutThrForDegTch (ActLstClk+ 96)
#define ActCutThrForCtrUsr (ActLstClk+ 97)
#define ActCutThrForCtrTch (ActLstClk+ 98)
#define ActCutThrForInsUsr (ActLstClk+ 99)
#define ActCutThrForInsTch (ActLstClk+100)
#define ActCutThrForGenUsr (ActLstClk+101)
#define ActCutThrForGenTch (ActLstClk+102)
#define ActCutThrForSWAUsr (ActLstClk+103)
#define ActCutThrForSWATch (ActLstClk+104)
#define ActPasThrForCrsUsr (ActLstClk+105)
#define ActPasThrForCrsTch (ActLstClk+106)
#define ActPasThrForDegUsr (ActLstClk+107)
#define ActPasThrForDegTch (ActLstClk+108)
#define ActPasThrForCtrUsr (ActLstClk+109)
#define ActPasThrForCtrTch (ActLstClk+110)
#define ActPasThrForInsUsr (ActLstClk+111)
#define ActPasThrForInsTch (ActLstClk+112)
#define ActPasThrForGenUsr (ActLstClk+113)
#define ActPasThrForGenTch (ActLstClk+114)
#define ActPasThrForSWAUsr (ActLstClk+115)
#define ActPasThrForSWATch (ActLstClk+116)
#define ActDelPstForCrsUsr (ActLstClk+117)
#define ActDelPstForCrsTch (ActLstClk+118)
#define ActDelPstForDegUsr (ActLstClk+119)
#define ActDelPstForDegTch (ActLstClk+120)
#define ActDelPstForCtrUsr (ActLstClk+121)
#define ActDelPstForCtrTch (ActLstClk+122)
#define ActDelPstForInsUsr (ActLstClk+123)
#define ActDelPstForInsTch (ActLstClk+124)
#define ActDelPstForGenUsr (ActLstClk+125)
#define ActDelPstForGenTch (ActLstClk+126)
#define ActDelPstForSWAUsr (ActLstClk+127)
#define ActDelPstForSWATch (ActLstClk+128)
#define ActEnbPstForCrsUsr (ActLstClk+129)
#define ActEnbPstForCrsTch (ActLstClk+130)
#define ActEnbPstForDegUsr (ActLstClk+131)
#define ActEnbPstForDegTch (ActLstClk+132)
#define ActEnbPstForCtrUsr (ActLstClk+133)
#define ActEnbPstForCtrTch (ActLstClk+134)
#define ActEnbPstForInsUsr (ActLstClk+135)
#define ActEnbPstForInsTch (ActLstClk+136)
#define ActEnbPstForGenUsr (ActLstClk+137)
#define ActEnbPstForGenTch (ActLstClk+138)
#define ActEnbPstForSWAUsr (ActLstClk+139)
#define ActEnbPstForSWATch (ActLstClk+140)
#define ActDisPstForCrsUsr (ActLstClk+141)
#define ActDisPstForCrsTch (ActLstClk+142)
#define ActDisPstForDegUsr (ActLstClk+143)
#define ActDisPstForDegTch (ActLstClk+144)
#define ActDisPstForCtrUsr (ActLstClk+145)
#define ActDisPstForCtrTch (ActLstClk+146)
#define ActDisPstForInsUsr (ActLstClk+147)
#define ActDisPstForInsTch (ActLstClk+148)
#define ActDisPstForGenUsr (ActLstClk+149)
#define ActDisPstForGenTch (ActLstClk+150)
#define ActDisPstForSWAUsr (ActLstClk+151)
#define ActDisPstForSWATch (ActLstClk+152)
#define ActFolUsr (ActLstClk+ 23)
#define ActUnfUsr (ActLstClk+ 24)
#define ActSeeFlg (ActLstClk+ 25)
#define ActSeeFlr (ActLstClk+ 26)
#define ActCht (ActLstClk+153)
#define ActSeeForCrsUsr (ActLstClk+ 27)
#define ActSeeForCrsTch (ActLstClk+ 28)
#define ActSeeForDegUsr (ActLstClk+ 29)
#define ActSeeForDegTch (ActLstClk+ 30)
#define ActSeeForCtrUsr (ActLstClk+ 31)
#define ActSeeForCtrTch (ActLstClk+ 32)
#define ActSeeForInsUsr (ActLstClk+ 33)
#define ActSeeForInsTch (ActLstClk+ 34)
#define ActSeeForGenUsr (ActLstClk+ 35)
#define ActSeeForGenTch (ActLstClk+ 36)
#define ActSeeForSWAUsr (ActLstClk+ 37)
#define ActSeeForSWATch (ActLstClk+ 38)
#define ActSeePstForCrsUsr (ActLstClk+ 39)
#define ActSeePstForCrsTch (ActLstClk+ 40)
#define ActSeePstForDegUsr (ActLstClk+ 41)
#define ActSeePstForDegTch (ActLstClk+ 42)
#define ActSeePstForCtrUsr (ActLstClk+ 43)
#define ActSeePstForCtrTch (ActLstClk+ 44)
#define ActSeePstForInsUsr (ActLstClk+ 45)
#define ActSeePstForInsTch (ActLstClk+ 46)
#define ActSeePstForGenUsr (ActLstClk+ 47)
#define ActSeePstForGenTch (ActLstClk+ 48)
#define ActSeePstForSWAUsr (ActLstClk+ 49)
#define ActSeePstForSWATch (ActLstClk+ 50)
#define ActRcvThrForCrsUsr (ActLstClk+ 51)
#define ActRcvThrForCrsTch (ActLstClk+ 52)
#define ActRcvThrForDegUsr (ActLstClk+ 53)
#define ActRcvThrForDegTch (ActLstClk+ 54)
#define ActRcvThrForCtrUsr (ActLstClk+ 55)
#define ActRcvThrForCtrTch (ActLstClk+ 56)
#define ActRcvThrForInsUsr (ActLstClk+ 57)
#define ActRcvThrForInsTch (ActLstClk+ 58)
#define ActRcvThrForGenUsr (ActLstClk+ 59)
#define ActRcvThrForGenTch (ActLstClk+ 60)
#define ActRcvThrForSWAUsr (ActLstClk+ 61)
#define ActRcvThrForSWATch (ActLstClk+ 62)
#define ActRcvRepForCrsUsr (ActLstClk+ 63)
#define ActRcvRepForCrsTch (ActLstClk+ 64)
#define ActRcvRepForDegUsr (ActLstClk+ 65)
#define ActRcvRepForDegTch (ActLstClk+ 66)
#define ActRcvRepForCtrUsr (ActLstClk+ 67)
#define ActRcvRepForCtrTch (ActLstClk+ 68)
#define ActRcvRepForInsUsr (ActLstClk+ 69)
#define ActRcvRepForInsTch (ActLstClk+ 70)
#define ActRcvRepForGenUsr (ActLstClk+ 71)
#define ActRcvRepForGenTch (ActLstClk+ 72)
#define ActRcvRepForSWAUsr (ActLstClk+ 73)
#define ActRcvRepForSWATch (ActLstClk+ 74)
#define ActReqDelThrCrsUsr (ActLstClk+ 75)
#define ActReqDelThrCrsTch (ActLstClk+ 76)
#define ActReqDelThrDegUsr (ActLstClk+ 77)
#define ActReqDelThrDegTch (ActLstClk+ 78)
#define ActReqDelThrCtrUsr (ActLstClk+ 79)
#define ActReqDelThrCtrTch (ActLstClk+ 80)
#define ActReqDelThrInsUsr (ActLstClk+ 81)
#define ActReqDelThrInsTch (ActLstClk+ 82)
#define ActReqDelThrGenUsr (ActLstClk+ 83)
#define ActReqDelThrGenTch (ActLstClk+ 84)
#define ActReqDelThrSWAUsr (ActLstClk+ 85)
#define ActReqDelThrSWATch (ActLstClk+ 86)
#define ActDelThrForCrsUsr (ActLstClk+ 87)
#define ActDelThrForCrsTch (ActLstClk+ 88)
#define ActDelThrForDegUsr (ActLstClk+ 89)
#define ActDelThrForDegTch (ActLstClk+ 90)
#define ActDelThrForCtrUsr (ActLstClk+ 91)
#define ActDelThrForCtrTch (ActLstClk+ 92)
#define ActDelThrForInsUsr (ActLstClk+ 93)
#define ActDelThrForInsTch (ActLstClk+ 94)
#define ActDelThrForGenUsr (ActLstClk+ 95)
#define ActDelThrForGenTch (ActLstClk+ 96)
#define ActDelThrForSWAUsr (ActLstClk+ 97)
#define ActDelThrForSWATch (ActLstClk+ 98)
#define ActCutThrForCrsUsr (ActLstClk+ 99)
#define ActCutThrForCrsTch (ActLstClk+100)
#define ActCutThrForDegUsr (ActLstClk+101)
#define ActCutThrForDegTch (ActLstClk+102)
#define ActCutThrForCtrUsr (ActLstClk+103)
#define ActCutThrForCtrTch (ActLstClk+104)
#define ActCutThrForInsUsr (ActLstClk+105)
#define ActCutThrForInsTch (ActLstClk+106)
#define ActCutThrForGenUsr (ActLstClk+107)
#define ActCutThrForGenTch (ActLstClk+108)
#define ActCutThrForSWAUsr (ActLstClk+109)
#define ActCutThrForSWATch (ActLstClk+110)
#define ActPasThrForCrsUsr (ActLstClk+111)
#define ActPasThrForCrsTch (ActLstClk+112)
#define ActPasThrForDegUsr (ActLstClk+113)
#define ActPasThrForDegTch (ActLstClk+114)
#define ActPasThrForCtrUsr (ActLstClk+115)
#define ActPasThrForCtrTch (ActLstClk+116)
#define ActPasThrForInsUsr (ActLstClk+117)
#define ActPasThrForInsTch (ActLstClk+118)
#define ActPasThrForGenUsr (ActLstClk+119)
#define ActPasThrForGenTch (ActLstClk+120)
#define ActPasThrForSWAUsr (ActLstClk+121)
#define ActPasThrForSWATch (ActLstClk+122)
#define ActDelPstForCrsUsr (ActLstClk+123)
#define ActDelPstForCrsTch (ActLstClk+124)
#define ActDelPstForDegUsr (ActLstClk+125)
#define ActDelPstForDegTch (ActLstClk+126)
#define ActDelPstForCtrUsr (ActLstClk+127)
#define ActDelPstForCtrTch (ActLstClk+128)
#define ActDelPstForInsUsr (ActLstClk+129)
#define ActDelPstForInsTch (ActLstClk+130)
#define ActDelPstForGenUsr (ActLstClk+131)
#define ActDelPstForGenTch (ActLstClk+132)
#define ActDelPstForSWAUsr (ActLstClk+133)
#define ActDelPstForSWATch (ActLstClk+134)
#define ActEnbPstForCrsUsr (ActLstClk+135)
#define ActEnbPstForCrsTch (ActLstClk+136)
#define ActEnbPstForDegUsr (ActLstClk+137)
#define ActEnbPstForDegTch (ActLstClk+138)
#define ActEnbPstForCtrUsr (ActLstClk+139)
#define ActEnbPstForCtrTch (ActLstClk+140)
#define ActEnbPstForInsUsr (ActLstClk+141)
#define ActEnbPstForInsTch (ActLstClk+142)
#define ActEnbPstForGenUsr (ActLstClk+143)
#define ActEnbPstForGenTch (ActLstClk+144)
#define ActEnbPstForSWAUsr (ActLstClk+145)
#define ActEnbPstForSWATch (ActLstClk+146)
#define ActDisPstForCrsUsr (ActLstClk+147)
#define ActDisPstForCrsTch (ActLstClk+148)
#define ActDisPstForDegUsr (ActLstClk+149)
#define ActDisPstForDegTch (ActLstClk+150)
#define ActDisPstForCtrUsr (ActLstClk+151)
#define ActDisPstForCtrTch (ActLstClk+152)
#define ActDisPstForInsUsr (ActLstClk+153)
#define ActDisPstForInsTch (ActLstClk+154)
#define ActDisPstForGenUsr (ActLstClk+155)
#define ActDisPstForGenTch (ActLstClk+156)
#define ActDisPstForSWAUsr (ActLstClk+157)
#define ActDisPstForSWATch (ActLstClk+158)
#define ActCht (ActLstClk+159)
/*****************************************************************************/
/******************************* Messages tab ********************************/

View File

@ -117,13 +117,28 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 15.88.3 (2016-01-01)"
#define Log_PLATFORM_VERSION "SWAD 15.89 (2016-01-02)"
#define CSS_FILE "swad15.88.1.css"
#define JS_FILE "swad15.77.7.js"
// 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
/*
Version 15.89: Jan 02, 2016 Social timeline can be updated from user profile. (190084 lines)
UPDATE actions SET Txt='Ver actividad social (global)' WHERE ActCod='1490' AND Language='es';
UPDATE actions SET Txt='Redactar comentario social (global)' WHERE ActCod='1491' AND Language='es';
UPDATE actions SET Txt='Crear comentario social (global)' WHERE ActCod='1492' AND Language='es';
UPDATE actions SET Txt='Eliminar comentario social (global)' WHERE ActCod='1493' AND Language='es';
UPDATE actions SET Txt='Solicitar elim. coment. social (global)' WHERE ActCod='1494' AND Language='es';
UPDATE actions SET Txt='Compartir comentario social (global)' WHERE ActCod='1495' AND Language='es';
UPDATE actions SET Txt='Dejar de compartir coment. social (global)' WHERE ActCod='1496' AND Language='es';
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1497','es','N','Redactar comentario social (usuario)');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1498','es','N','Crear comentario social (usuario)');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1502','es','N','Eliminar comentario social (usuario)');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1501','es','N','Solicitar elim. coment. social (usuario)');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1499','es','N','Compartir comentario social (usuario)');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1500','es','N','Dejar de compartir coment. social (usuario)');
Version 15.88.3: Jan 01, 2016 Changes in contextual options in social timeline. (189907 lines)
Version 15.88.2: Jan 01, 2016 Messages translated. (189902 lines)
Version 15.88.1: Jan 01, 2016 Changes in layout of social timeline. (189854 lines)

View File

@ -155,7 +155,7 @@ const Act_Action_t Mnu_MenuActions[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB
},
// TabSoc **********
{
ActSeeSocAct,
ActSeeSocTmlGbl,
ActReqPubPrf,
ActSeeFor,
ActSeeChtRms,

View File

@ -209,7 +209,7 @@ static void Prf_GetUsrDatAndShowUserProfile (void)
}
else
/***** Show social activity (timeline) of this user *****/
Soc_ShowUsrTimeline (Gbl.Usrs.Other.UsrDat.UsrCod);
Soc_ShowTimelineUsr ();
}
/*****************************************************************************/

View File

@ -38,6 +38,7 @@
#include "swad_layout.h"
#include "swad_notice.h"
#include "swad_parameter.h"
#include "swad_profile.h"
#include "swad_social.h"
/*****************************************************************************/
@ -77,7 +78,7 @@ static const Act_Action_t Soc_DefaultActions[Soc_NUM_SOCIAL_NOTES] =
/* Users tab */
/* Social tab */
ActSeeSocAct, // Soc_NOTE_SOCIAL_POST (action not used)
ActSeeSocTmlGbl, // Soc_NOTE_SOCIAL_POST (action not used)
ActSeeFor, // Soc_NOTE_FORUM_POST
/* Messages tab */
@ -137,14 +138,16 @@ static void Soc_WriteSocialNote (const struct SocialPublishing *SocPub,
struct UsrData *UsrDat,
bool PutIconRemove);
static void Soc_WriteNoteDate (time_t TimeUTC);
static void Soc_GetAndWriteSocialPost (long PstCod);
static void Soc_StartFormGoToAction (Soc_NoteType_t NoteType,
long CrsCod,long Cod);
static void Soc_GetNoteSummary (const struct SocialNote *SocNot,
char *SummaryStr,unsigned MaxChars);
static void Soc_PublishSocialNoteInTimeline (struct SocialPublishing *SocPub);
static void Soc_PutLinkToWriteANewPost (void);
static void Soc_GetAndWriteSocialPost (long PstCod);
static void Soc_PutLinkToWriteANewPost (Act_Action_t Action,void (*FuncParams) ());
static void Soc_FormSocialPost (void);
static void Soc_ReceiveSocialPost (void);
static void Soc_PutFormToShareSocialPublishing (long PubCod);
static void Soc_PutFormToUnshareSocialPublishing (long PubCod);
@ -152,6 +155,12 @@ static void Soc_PutFormToRemoveSocialPublishing (long PubCod);
static void Soc_PutHiddenParamPubCod (long NotCod);
static long Soc_GetParamPubCod (void);
static void Soc_ShareSocialPublishing (void);
static void Soc_UnshareSocialPublishing (void);
static void Soc_RequestRemovalSocialPublishing (void);
static void Soc_RemoveSocialPublishing (void);
static void Soc_DeleteASocialPublishingFromDB (const struct SocialPublishing *SocPub,
const struct SocialNote *SocNot);
@ -166,39 +175,39 @@ static Soc_NoteType_t Soc_GetSocialNoteFromDB (const char *Str);
/*********** Show social activity (timeline) of a selected user **************/
/*****************************************************************************/
void Soc_ShowUsrTimeline (long UsrCod)
void Soc_ShowTimelineUsr (void)
{
char Query[512];
/***** Link to write a new social post (public comment) *****/
if (UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod && // It's me
Gbl.CurrentAct != ActReqSocPst) // Not writing a new post
Soc_PutLinkToWriteANewPost ();
if (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod && // It's me
Gbl.CurrentAct != ActReqSocPstUsr) // Not writing a new post
Soc_PutLinkToWriteANewPost (ActReqSocPstUsr,Usr_PutParamOtherUsrCodEncrypted);
/***** Build query to show timeline with publishing of a unique user *****/
sprintf (Query,"SELECT PubCod,AuthorCod,PublisherCod,NotCod,UNIX_TIMESTAMP(TimePublish)"
" FROM social_timeline"
" WHERE PublisherCod='%ld'"
" ORDER BY PubCod DESC LIMIT %u",
UsrCod,
Gbl.Usrs.Other.UsrDat.UsrCod,
Soc_NUM_PUBS_IN_TIMELINE);
/***** Show timeline *****/
Soc_ShowTimeline (Query,ActSeeSocAct);
Soc_ShowTimeline (Query,ActSeePubPrf);
}
/*****************************************************************************/
/***** Show social activity (timeline) including all the users I follow ******/
/*****************************************************************************/
void Soc_ShowFollowingTimeline (void)
void Soc_ShowTimelineGbl (void)
{
extern const char *Txt_You_dont_follow_any_user;
char Query[512];
/***** Link to write a new social post (public comment) *****/
if (Gbl.CurrentAct != ActReqSocPst) // Not writing a new post
Soc_PutLinkToWriteANewPost ();
if (Gbl.CurrentAct != ActReqSocPstGbl) // Not writing a new post
Soc_PutLinkToWriteANewPost (ActReqSocPstGbl,NULL);
/***** If I follow someone... *****/
if (Fol_GetNumFollowing (Gbl.Usrs.Me.UsrDat.UsrCod))
@ -230,7 +239,7 @@ void Soc_ShowFollowingTimeline (void)
" ORDER BY PubCod DESC");
/***** Show timeline *****/
Soc_ShowTimeline (Query,ActSeeSocAct);
Soc_ShowTimeline (Query,ActSeeSocTmlGbl);
/***** Drop temporary table with publishing codes *****/
sprintf (Query,"DROP TEMPORARY TABLE IF EXISTS pub_cods");
@ -245,7 +254,6 @@ void Soc_ShowFollowingTimeline (void)
/*****************************************************************************/
/*********************** Show social activity (timeline) *********************/
/*****************************************************************************/
// If UpdateAction == ActUnk ==> no form to update is displayed
static void Soc_ShowTimeline (const char *Query,Act_Action_t UpdateAction)
{
@ -272,8 +280,7 @@ static void Soc_ShowTimeline (const char *Query,Act_Action_t UpdateAction)
Lay_StartRoundFrame ("560px",Txt_Public_activity);
/***** Form to update timeline *****/
if (UpdateAction != ActUnk)
Act_PutLinkToUpdateAction (UpdateAction);
Act_PutLinkToUpdateAction (UpdateAction);
/***** Start list *****/
fprintf (Gbl.F.Out,"<ul class=\"LIST_LEFT\">");
@ -521,6 +528,43 @@ static void Soc_WriteNoteDate (time_t TimeUTC)
fprintf (Gbl.F.Out,"</div>");
}
/*****************************************************************************/
/***************** Get from database and write public post *******************/
/*****************************************************************************/
static void Soc_GetAndWriteSocialPost (long PstCod)
{
char Query[128];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned long NumRows;
char Content[Cns_MAX_BYTES_LONG_TEXT+1];
/***** Get social post from database *****/
sprintf (Query,"SELECT Content FROM social_posts WHERE PstCod='%ld'",
PstCod);
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get the content of a social post");
/***** Result should have a unique row *****/
if (NumRows == 1)
{
/***** Get number of rows *****/
row = mysql_fetch_row (mysql_res);
/****** Get content (row[0]) *****/
strncpy (Content,row[0],Cns_MAX_BYTES_LONG_TEXT);
Content[Cns_MAX_BYTES_LONG_TEXT] = '\0';
}
else
Content[0] = '\0';
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** Write content *****/
Msg_WriteMsgContent (Content,Cns_MAX_BYTES_LONG_TEXT,true,false);
}
/*****************************************************************************/
/********* Put form to go to an action depending on the social note **********/
/*****************************************************************************/
@ -721,12 +765,12 @@ static void Soc_PublishSocialNoteInTimeline (struct SocialPublishing *SocPub)
/***************** Put contextual link to write a new post *******************/
/*****************************************************************************/
static void Soc_PutLinkToWriteANewPost (void)
static void Soc_PutLinkToWriteANewPost (Act_Action_t Action,void (*FuncParams) ())
{
extern const char *Txt_New_comment;
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
Lay_PutContextualLink (ActReqSocPst,NULL,"write64x64.gif",
Lay_PutContextualLink (Action,FuncParams,"write64x64.gif",
Txt_New_comment,Txt_New_comment);
fprintf (Gbl.F.Out,"</div>");
}
@ -735,7 +779,31 @@ static void Soc_PutLinkToWriteANewPost (void)
/****************** Form to write a new public comment ***********************/
/*****************************************************************************/
void Soc_FormSocialPost (void)
void Soc_FormSocialPostGbl (void)
{
/***** Form to write a new public comment *****/
Soc_FormSocialPost ();
/***** Write current timeline (global) *****/
Soc_ShowTimelineGbl ();
}
void Soc_FormSocialPostUsr (void)
{
/***** Get user whom profile is displayed *****/
Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ();
/***** Show user's profile *****/
Prf_ShowUserProfile ();
/***** Form to write a new public comment *****/
Soc_FormSocialPost ();
/***** Write current timeline (user) *****/
Soc_ShowTimelineUsr ();
}
static void Soc_FormSocialPost (void)
{
extern const char *Txt_New_comment;
extern const char *Txt_Send_comment;
@ -745,7 +813,13 @@ void Soc_FormSocialPost (void)
Lay_StartRoundFrame ("560px",Txt_New_comment);
/* Start form to write the post */
Act_FormStart (ActRcvSocPst);
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
{
Act_FormStart (ActRcvSocPstUsr);
Usr_PutParamOtherUsrCodEncrypted ();
}
else
Act_FormStart (ActRcvSocPstGbl);
/* Content of new post */
fprintf (Gbl.F.Out,"<textarea name=\"Content\" cols=\"50\" rows=\"5\">"
@ -760,16 +834,37 @@ void Soc_FormSocialPost (void)
/* End frame */
Lay_EndRoundFrame ();
/***** Write current timeline *****/
Soc_ShowFollowingTimeline ();
}
/*****************************************************************************/
/******************* Receive and store a new public post *********************/
/*****************************************************************************/
void Soc_ReceiveSocialPost (void)
void Soc_ReceiveSocialPostGbl (void)
{
/***** Receive and store social post *****/
Soc_ReceiveSocialPost ();
/***** Write updated timeline after publishing (global) *****/
Soc_ShowTimelineGbl ();
}
void Soc_ReceiveSocialPostUsr (void)
{
/***** Get user whom profile is displayed *****/
Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ();
/***** Show user's profile *****/
Prf_ShowUserProfile ();
/***** Receive and store social post *****/
Soc_ReceiveSocialPost ();
/***** Write updated timeline after publishing (user) *****/
Soc_ShowTimelineUsr ();
}
static void Soc_ReceiveSocialPost (void)
{
char Content[Cns_MAX_BYTES_LONG_TEXT+1];
char Query[128+Cns_MAX_BYTES_LONG_TEXT];
@ -787,46 +882,6 @@ void Soc_ReceiveSocialPost (void)
/* Insert post in social notes */
Soc_StoreAndPublishSocialNote (Soc_NOTE_SOCIAL_POST,PstCod);
/***** Write current timeline *****/
Soc_ShowFollowingTimeline ();
}
/*****************************************************************************/
/***************** Get from database and write public post *******************/
/*****************************************************************************/
static void Soc_GetAndWriteSocialPost (long PstCod)
{
char Query[128];
MYSQL_RES *mysql_res;
MYSQL_ROW row;
unsigned long NumRows;
char Content[Cns_MAX_BYTES_LONG_TEXT+1];
/***** Get social post from database *****/
sprintf (Query,"SELECT Content FROM social_posts WHERE PstCod='%ld'",
PstCod);
NumRows = DB_QuerySELECT (Query,&mysql_res,"can not get the content of a social post");
/***** Result should have a unique row *****/
if (NumRows == 1)
{
/***** Get number of rows *****/
row = mysql_fetch_row (mysql_res);
/****** Get content (row[0]) *****/
strncpy (Content,row[0],Cns_MAX_BYTES_LONG_TEXT);
Content[Cns_MAX_BYTES_LONG_TEXT] = '\0';
}
else
Content[0] = '\0';
/***** Free structure that stores the query result *****/
DB_FreeMySQLResult (&mysql_res);
/***** Write content *****/
Msg_WriteMsgContent (Content,Cns_MAX_BYTES_LONG_TEXT,true,false);
}
/*****************************************************************************/
@ -838,7 +893,13 @@ static void Soc_PutFormToShareSocialPublishing (long PubCod)
extern const char *Txt_Share;
/***** Form to share social publishing *****/
Act_FormStart (ActShaSocPub);
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
{
Act_FormStart (ActShaSocPubUsr);
Usr_PutParamOtherUsrCodEncrypted ();
}
else
Act_FormStart (ActShaSocPubGbl);
Soc_PutHiddenParamPubCod (PubCod);
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_ICON ICON_HIGHLIGHT\">"
"<input type=\"image\""
@ -861,7 +922,13 @@ static void Soc_PutFormToUnshareSocialPublishing (long PubCod)
extern const char *Txt_Shared;
/***** Form to share social publishing *****/
Act_FormStart (ActUnsSocPub);
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
{
Act_FormStart (ActUnsSocPubUsr);
Usr_PutParamOtherUsrCodEncrypted ();
}
else
Act_FormStart (ActUnsSocPubGbl);
Soc_PutHiddenParamPubCod (PubCod);
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_ICON ICON_HIGHLIGHT\">"
"<input type=\"image\""
@ -884,7 +951,13 @@ static void Soc_PutFormToRemoveSocialPublishing (long PubCod)
extern const char *Txt_Remove;
/***** Form to remove social publishing *****/
Act_FormStart (ActReqRemSocPub);
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
{
Act_FormStart (ActReqRemSocPubUsr);
Usr_PutParamOtherUsrCodEncrypted ();
}
else
Act_FormStart (ActReqRemSocPubGbl);
Soc_PutHiddenParamPubCod (PubCod);
fprintf (Gbl.F.Out,"<div class=\"SOCIAL_ICON ICON_HIGHLIGHT\">"
"<input type=\"image\""
@ -928,7 +1001,31 @@ static long Soc_GetParamPubCod (void)
/************************* Share a social publishing *************************/
/*****************************************************************************/
void Soc_ShareSocialPublishing (void)
void Soc_ShareSocialPubGbl (void)
{
/***** Share social publishing *****/
Soc_ShareSocialPublishing ();
/***** Write updated timeline after sharing (global) *****/
Soc_ShowTimelineGbl ();
}
void Soc_ShareSocialPubUsr (void)
{
/***** Get user whom profile is displayed *****/
Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ();
/***** Show user's profile *****/
Prf_ShowUserProfile ();
/***** Share social publishing *****/
Soc_ShareSocialPublishing ();
/***** Write updated timeline after sharing (user) *****/
Soc_ShowTimelineUsr ();
}
static void Soc_ShareSocialPublishing (void)
{
extern const char *Txt_Shared;
struct SocialPublishing SocPub;
@ -957,16 +1054,37 @@ void Soc_ShareSocialPublishing (void)
Lay_ShowAlert (Lay_SUCCESS,Txt_Shared);
}
}
/***** Write timeline after removing *****/
Soc_ShowFollowingTimeline ();
}
/*****************************************************************************/
/************** Unshare a previously shared social publishing ****************/
/*****************************************************************************/
void Soc_UnshareSocialPublishing (void)
void Soc_UnshareSocialPubGbl (void)
{
/***** Unshare a previously shared social publishing *****/
Soc_UnshareSocialPublishing ();
/***** Write updated timeline after unsharing (global) *****/
Soc_ShowTimelineGbl ();
}
void Soc_UnshareSocialPubUsr (void)
{
/***** Get user whom profile is displayed *****/
Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ();
/***** Show user's profile *****/
Prf_ShowUserProfile ();
/***** Unshare a previously shared social publishing *****/
Soc_UnshareSocialPublishing ();
/***** Write updated timeline after unsharing (user) *****/
Soc_ShowTimelineUsr ();
}
static void Soc_UnshareSocialPublishing (void)
{
extern const char *Txt_Unshared;
struct SocialPublishing SocPub;
@ -999,16 +1117,37 @@ void Soc_UnshareSocialPublishing (void)
Lay_ShowAlert (Lay_SUCCESS,Txt_Unshared);
}
}
/***** Write timeline after unsharing *****/
Soc_ShowFollowingTimeline ();
}
/*****************************************************************************/
/******************* Request the removal of a social note ********************/
/**************** Request the removal of a social publishing *****************/
/*****************************************************************************/
void Soc_RequestRemovalSocialNote (void)
void Soc_RequestRemSocialPubGbl (void)
{
/***** Request the removal of social publishing *****/
Soc_RequestRemovalSocialPublishing ();
/***** Write timeline again (global) *****/
Soc_ShowTimelineGbl ();
}
void Soc_RequestRemSocialPubUsr (void)
{
/***** Get user whom profile is displayed *****/
Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ();
/***** Show user's profile *****/
Prf_ShowUserProfile ();
/***** Request the removal of social publishing *****/
Soc_RequestRemovalSocialPublishing ();
/***** Write timeline again (user) *****/
Soc_ShowTimelineUsr ();
}
static void Soc_RequestRemovalSocialPublishing (void)
{
extern const char *Txt_Do_you_really_want_to_remove_the_following_comment;
extern const char *Txt_Remove;
@ -1037,7 +1176,13 @@ void Soc_RequestRemovalSocialNote (void)
/***** Form to ask for confirmation to remove this social post *****/
/* Start form */
Act_FormStart (ActRemSocPub);
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
{
Act_FormStart (ActRemSocPubUsr);
Usr_PutParamOtherUsrCodEncrypted ();
}
else
Act_FormStart (ActRemSocPubGbl);
Soc_PutHiddenParamPubCod (SocPub.PubCod);
Lay_ShowAlert (Lay_WARNING,Txt_Do_you_really_want_to_remove_the_following_comment);
@ -1055,16 +1200,37 @@ void Soc_RequestRemovalSocialNote (void)
/***** Free memory used for user's data *****/
Usr_UsrDataDestructor (&UsrDat);
}
/***** Write timeline again *****/
Soc_ShowFollowingTimeline ();
}
/*****************************************************************************/
/************************ Remove a social publishing *************************/
/*****************************************************************************/
void Soc_RemoveSocialPublishing (void)
void Soc_RemoveSocialPubGbl (void)
{
/***** Remove a social publishing *****/
Soc_RemoveSocialPublishing ();
/***** Write updated timeline after removing (global) *****/
Soc_ShowTimelineGbl ();
}
void Soc_RemoveSocialPubUsr (void)
{
/***** Get user whom profile is displayed *****/
Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ();
/***** Show user's profile *****/
Prf_ShowUserProfile ();
/***** Remove a social publishing *****/
Soc_RemoveSocialPublishing ();
/***** Write updated timeline after removing (user) *****/
Soc_ShowTimelineUsr ();
}
static void Soc_RemoveSocialPublishing (void)
{
extern const char *Txt_Comment_removed;
struct SocialPublishing SocPub;
@ -1092,9 +1258,6 @@ void Soc_RemoveSocialPublishing (void)
/***** Message of success *****/
Lay_ShowAlert (Lay_SUCCESS,Txt_Comment_removed);
}
/***** Write timeline after removing *****/
Soc_ShowFollowingTimeline ();
}
/*****************************************************************************/

View File

@ -81,18 +81,24 @@ typedef enum
/****************************** Public prototypes ****************************/
/*****************************************************************************/
void Soc_ShowUsrTimeline (long UsrCod);
void Soc_ShowFollowingTimeline (void);
void Soc_ShowTimelineUsr (void);
void Soc_ShowTimelineGbl (void);
void Soc_StoreAndPublishSocialNote (Soc_NoteType_t NoteType,long Cod);
void Soc_FormSocialPost (void);
void Soc_ReceiveSocialPost (void);
void Soc_FormSocialPostGbl (void);
void Soc_FormSocialPostUsr (void);
void Soc_ReceiveSocialPostGbl (void);
void Soc_ReceiveSocialPostUsr (void);
void Soc_ShareSocialPublishing (void);
void Soc_UnshareSocialPublishing (void);
void Soc_ShareSocialPubGbl (void);
void Soc_ShareSocialPubUsr (void);
void Soc_UnshareSocialPubGbl (void);
void Soc_UnshareSocialPubUsr (void);
void Soc_RequestRemovalSocialNote (void);
void Soc_RemoveSocialPublishing (void);
void Soc_RequestRemSocialPubGbl (void);
void Soc_RequestRemSocialPubUsr (void);
void Soc_RemoveSocialPubGbl (void);
void Soc_RemoveSocialPubUsr (void);
#endif

View File

@ -17922,7 +17922,7 @@ const char *Txt_MENU_TITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
},
{
// TabSoc *****************************************************
// ActSeeSocAct
// ActSeeSocTmlGbl
#if L==1
"Activitat"
#elif L==2
@ -19878,7 +19878,7 @@ const char *Txt_MENU_SUBTITLE[Tab_NUM_TABS][Act_MAX_OPTIONS_IN_MENU_PER_TAB] =
},
{
// TabSoc *****************************************************
// ActSeeSocAct
// ActSeeSocTmlGbl
#if L==1
"Activitat social (l&iacute;nia de temps)"
#elif L==2