mirror of https://github.com/acanas/swad-core.git
Version18.74
This commit is contained in:
parent
da510f608d
commit
98782055b1
4
Makefile
4
Makefile
|
@ -50,10 +50,10 @@ OBJS = swad_account.o swad_action.o swad_agenda.o swad_alert.o \
|
||||||
swad_profile.o swad_project.o \
|
swad_profile.o swad_project.o \
|
||||||
swad_QR.o \
|
swad_QR.o \
|
||||||
swad_record.o swad_report.o swad_role.o swad_RSS.o \
|
swad_record.o swad_report.o swad_role.o swad_RSS.o \
|
||||||
swad_scope.o swad_search.o swad_session.o swad_setup.o swad_social.o \
|
swad_scope.o swad_search.o swad_session.o swad_setup.o \
|
||||||
swad_statistic.o swad_string.o swad_survey.o swad_syllabus.o \
|
swad_statistic.o swad_string.o swad_survey.o swad_syllabus.o \
|
||||||
swad_tab.o swad_table.o swad_test.o swad_test_import.o swad_theme.o \
|
swad_tab.o swad_table.o swad_test.o swad_test_import.o swad_theme.o \
|
||||||
swad_timetable.o \
|
swad_timeline.o swad_timetable.o \
|
||||||
swad_user.o \
|
swad_user.o \
|
||||||
swad_web_service.o \
|
swad_web_service.o \
|
||||||
swad_xml.o \
|
swad_xml.o \
|
||||||
|
|
|
@ -8729,7 +8729,7 @@ INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1511','es','N','Carg
|
||||||
</dd>
|
</dd>
|
||||||
<dt>Version 15.110.17:Jan 13, 2016</dt>
|
<dt>Version 15.110.17:Jan 13, 2016</dt>
|
||||||
<dd>
|
<dd>
|
||||||
Reviewed code related to Soc_MAX_RECENT_PUBS_TO_GET. (192568 lines)
|
Reviewed code related to TL_MAX_RECENT_PUBS_TO_GET. (192568 lines)
|
||||||
</dd>
|
</dd>
|
||||||
<dt>Version 15.110.16:Jan 13, 2016</dt>
|
<dt>Version 15.110.16:Jan 13, 2016</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
@ -9428,7 +9428,7 @@ INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1490','es','N','Ver
|
||||||
<dt>Version 15.76: Dec 28, 2015</dt>
|
<dt>Version 15.76: Dec 28, 2015</dt>
|
||||||
<dd>
|
<dd>
|
||||||
New option for social network activity (timeline).<br />
|
New option for social network activity (timeline).<br />
|
||||||
New module swad_social. (187807 lines)
|
New module swad_timeline. (187807 lines)
|
||||||
</dd>
|
</dd>
|
||||||
<dt>Version 15.75: Dec 28, 2015</dt>
|
<dt>Version 15.75: Dec 28, 2015</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
|
@ -690,7 +690,7 @@ function readOldTimelineData () {
|
||||||
timeline.appendChild(oldTimeline.firstChild);
|
timeline.appendChild(oldTimeline.firstChild);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (countOldTimeline < RefreshParamMaxOldPubsToGetAndShow) // Set to Soc_MAX_OLD_PUBS_TO_GET_AND_SHOW
|
if (countOldTimeline < RefreshParamMaxOldPubsToGetAndShow) // Set to TL_MAX_OLD_PUBS_TO_GET_AND_SHOW
|
||||||
// No more old publishings
|
// No more old publishings
|
||||||
document.getElementById("view_old_posts_container").style.display = 'none';
|
document.getElementById("view_old_posts_container").style.display = 'none';
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_profile.h"
|
#include "swad_profile.h"
|
||||||
#include "swad_report.h"
|
#include "swad_report.h"
|
||||||
#include "swad_social.h"
|
#include "swad_timeline.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
|
@ -1084,7 +1084,7 @@ void Acc_CompletelyEliminateAccount (struct UsrData *UsrDat,
|
||||||
UsrDat->UsrCod);
|
UsrDat->UsrCod);
|
||||||
|
|
||||||
/***** Remove social content associated to the user *****/
|
/***** Remove social content associated to the user *****/
|
||||||
Soc_RemoveUsrSocialContent (UsrDat->UsrCod);
|
TL_RemoveUsrContent (UsrDat->UsrCod);
|
||||||
|
|
||||||
/***** Remove user's figures *****/
|
/***** Remove user's figures *****/
|
||||||
Prf_RemoveUsrFigures (UsrDat->UsrCod);
|
Prf_RemoveUsrFigures (UsrDat->UsrCod);
|
||||||
|
|
|
@ -72,9 +72,9 @@
|
||||||
#include "swad_role.h"
|
#include "swad_role.h"
|
||||||
#include "swad_search.h"
|
#include "swad_search.h"
|
||||||
#include "swad_setup.h"
|
#include "swad_setup.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_tab.h"
|
#include "swad_tab.h"
|
||||||
#include "swad_test_import.h"
|
#include "swad_test_import.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
#include "swad_zip.h"
|
#include "swad_zip.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1596,15 +1596,15 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActMnu */{ 2,-1,TabUnk,ActMnu ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,NULL ,NULL},
|
/* ActMnu */{ 2,-1,TabUnk,ActMnu ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,NULL ,NULL},
|
||||||
/* ActRefCon */{ 845,-1,TabUnk,ActRefCon ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lay_RefreshNotifsAndConnected ,NULL},
|
/* ActRefCon */{ 845,-1,TabUnk,ActRefCon ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lay_RefreshNotifsAndConnected ,NULL},
|
||||||
/* ActRefLstClk */{ 994,-1,TabUnk,ActRefLstClk ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lay_RefreshLastClicks ,NULL},
|
/* ActRefLstClk */{ 994,-1,TabUnk,ActRefLstClk ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Lay_RefreshLastClicks ,NULL},
|
||||||
/* ActRefNewSocPubGbl*/{1509,-1,TabUnk,ActRefNewSocPubGbl ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_RefreshNewTimelineGbl ,NULL},
|
/* ActRefNewSocPubGbl*/{1509,-1,TabUnk,ActRefNewSocPubGbl ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RefreshNewTimelineGbl ,NULL},
|
||||||
/* ActRefOldSocPubGbl*/{1510,-1,TabUnk,ActRefOldSocPubGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_RefreshOldTimelineGbl ,NULL},
|
/* ActRefOldSocPubGbl*/{1510,-1,TabUnk,ActRefOldSocPubGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RefreshOldTimelineGbl ,NULL},
|
||||||
/* ActRefOldSocPubUsr*/{1511,-1,TabUnk,ActRefOldSocPubUsr ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_RefreshOldTimelineUsr ,NULL},
|
/* ActRefOldSocPubUsr*/{1511,-1,TabUnk,ActRefOldSocPubUsr ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RefreshOldTimelineUsr ,NULL},
|
||||||
/* ActWebSvc */{ 892,-1,TabUnk,ActWebSvc ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Plg_WebService ,NULL},
|
/* ActWebSvc */{ 892,-1,TabUnk,ActWebSvc ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Plg_WebService ,NULL},
|
||||||
|
|
||||||
// TabSta ******************************************************************
|
// TabSta ******************************************************************
|
||||||
/* ActFrmLogIn */{1521, 0,TabSta,ActFrmLogIn , 0,0x001,0x001,0x001,0x001,0x001,0x001,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Usr_WriteLandingPage ,"power-off" },
|
/* ActFrmLogIn */{1521, 0,TabSta,ActFrmLogIn , 0,0x001,0x001,0x001,0x001,0x001,0x001,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Usr_WriteLandingPage ,"power-off" },
|
||||||
/* ActReqSch */{ 627, 1,TabSta,ActReqSch ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Sch_ReqSysSearch ,"search" },
|
/* ActReqSch */{ 627, 1,TabSta,ActReqSch ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Sch_ReqSysSearch ,"search" },
|
||||||
/* ActSeeSocTmlGbl */{1490, 2,TabSta,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_ShowTimelineGbl2 ,"comment-dots" },
|
/* ActSeeSocTmlGbl */{1490, 2,TabSta,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_ShowTimelineGbl2 ,"comment-dots" },
|
||||||
/* ActSeeSocPrf */{1520, 3,TabSta,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_SeeSocialProfiles ,"user-check" },
|
/* ActSeeSocPrf */{1520, 3,TabSta,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_SeeSocialProfiles ,"user-check" },
|
||||||
/* ActSeeCal */{1622, 4,TabSta,ActSeeCal ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cal_ShowCalendar ,"calendar" },
|
/* ActSeeCal */{1622, 4,TabSta,ActSeeCal ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Cal_ShowCalendar ,"calendar" },
|
||||||
/* ActSeeNtf */{ 990, 5,TabSta,ActSeeNtf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ntf_ShowMyNotifications ,"bell" },
|
/* ActSeeNtf */{ 990, 5,TabSta,ActSeeNtf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Ntf_ShowMyNotifications ,"bell" },
|
||||||
|
@ -1619,33 +1619,33 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
|
|
||||||
/* ActSch */{ 628,-1,TabUnk,ActReqSch ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Sch_GetParamsSearch ,Sch_SysSearch ,NULL},
|
/* ActSch */{ 628,-1,TabUnk,ActReqSch ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,Sch_GetParamsSearch ,Sch_SysSearch ,NULL},
|
||||||
|
|
||||||
/* ActRcvSocPstGbl */{1492,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_ReceiveSocialPostGbl ,NULL},
|
/* ActRcvSocPstGbl */{1492,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_ReceivePostGbl ,NULL},
|
||||||
/* ActRcvSocComGbl */{1503,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_ReceiveCommentGbl ,NULL},
|
/* ActRcvSocComGbl */{1503,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_ReceiveCommentGbl ,NULL},
|
||||||
/* ActShaSocNotGbl */{1495,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_ShareSocialNoteGbl ,NULL},
|
/* ActShaSocNotGbl */{1495,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShareNoteGbl ,NULL},
|
||||||
/* ActUnsSocNotGbl */{1496,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_UnshareSocialNoteGbl ,NULL},
|
/* ActUnsSocNotGbl */{1496,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnshareNoteGbl ,NULL},
|
||||||
/* ActFavSocNotGbl */{1512,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_FavSocialNoteGbl ,NULL},
|
/* ActFavSocNotGbl */{1512,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavNoteGbl ,NULL},
|
||||||
/* ActUnfSocNotGbl */{1513,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_UnfavSocialNoteGbl ,NULL},
|
/* ActUnfSocNotGbl */{1513,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfavNoteGbl ,NULL},
|
||||||
/* ActFavSocComGbl */{1516,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_FavSocialCommentGbl ,NULL},
|
/* ActFavSocComGbl */{1516,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavCommentGbl ,NULL},
|
||||||
/* ActUnfSocComGbl */{1517,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_UnfavSocialCommentGbl ,NULL},
|
/* ActUnfSocComGbl */{1517,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfavCommentGbl ,NULL},
|
||||||
/* ActReqRemSocPubGbl*/{1494,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_RequestRemSocialNoteGbl ,NULL},
|
/* ActReqRemSocPubGbl*/{1494,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_RequestRemNoteGbl ,NULL},
|
||||||
/* ActRemSocPubGbl */{1493,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_RemoveSocialNoteGbl ,NULL},
|
/* ActRemSocPubGbl */{1493,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_RemoveNoteGbl ,NULL},
|
||||||
/* ActReqRemSocComGbl*/{1505,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_RequestRemSocialComGbl ,NULL},
|
/* ActReqRemSocComGbl*/{1505,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_RequestRemComGbl ,NULL},
|
||||||
/* ActRemSocComGbl */{1507,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,Soc_ShowTimelineGbl1 ,Soc_RemoveSocialComGbl ,NULL},
|
/* ActRemSocComGbl */{1507,-1,TabUnk,ActSeeSocTmlGbl ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,TL_ShowTimelineGbl1 ,TL_RemoveComGbl ,NULL},
|
||||||
|
|
||||||
/* ActReqOthPubPrf */{1401,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_RequestUserProfile ,NULL},
|
/* ActReqOthPubPrf */{1401,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_RequestUserProfile ,NULL},
|
||||||
|
|
||||||
/* ActRcvSocPstUsr */{1498,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,Soc_ReceiveSocialPostUsr ,NULL},
|
/* ActRcvSocPstUsr */{1498,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,TL_ReceivePostUsr ,NULL},
|
||||||
/* ActRcvSocComUsr */{1504,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,Soc_ReceiveCommentUsr ,NULL},
|
/* ActRcvSocComUsr */{1504,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_DATA,Act_BRW_1ST_TAB,NULL ,TL_ReceiveCommentUsr ,NULL},
|
||||||
/* ActShaSocNotUsr */{1499,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_ShareSocialNoteUsr ,NULL},
|
/* ActShaSocNotUsr */{1499,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_ShareNoteUsr ,NULL},
|
||||||
/* ActUnsSocNotUsr */{1500,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_UnshareSocialNoteUsr ,NULL},
|
/* ActUnsSocNotUsr */{1500,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnshareNoteUsr ,NULL},
|
||||||
/* ActFavSocNotUsr */{1514,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_FavSocialNoteUsr ,NULL},
|
/* ActFavSocNotUsr */{1514,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavNoteUsr ,NULL},
|
||||||
/* ActUnfSocNotUsr */{1515,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_UnfavSocialNoteUsr ,NULL},
|
/* ActUnfSocNotUsr */{1515,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfavNoteUsr ,NULL},
|
||||||
/* ActFavSocComUsr */{1518,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_FavSocialCommentUsr ,NULL},
|
/* ActFavSocComUsr */{1518,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_FavCommentUsr ,NULL},
|
||||||
/* ActUnfSocComUsr */{1519,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_UnfavSocialCommentUsr ,NULL},
|
/* ActUnfSocComUsr */{1519,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_UnfavCommentUsr ,NULL},
|
||||||
/* ActReqRemSocPubUsr*/{1501,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_RequestRemSocialNoteUsr ,NULL},
|
/* ActReqRemSocPubUsr*/{1501,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RequestRemNoteUsr ,NULL},
|
||||||
/* ActRemSocPubUsr */{1502,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_RemoveSocialNoteUsr ,NULL},
|
/* ActRemSocPubUsr */{1502,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RemoveNoteUsr ,NULL},
|
||||||
/* ActReqRemSocComGbl*/{1506,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_RequestRemSocialComUsr ,NULL},
|
/* ActReqRemSocComGbl*/{1506,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RequestRemComUsr ,NULL},
|
||||||
/* ActRemSocComGbl */{1508,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Soc_RemoveSocialComUsr ,NULL},
|
/* ActRemSocComGbl */{1508,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,0x3C6,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,TL_RemoveComUsr ,NULL},
|
||||||
|
|
||||||
/* ActSeeOthPubPrf */{1402,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_GetUsrDatAndShowUserProfile,NULL},
|
/* ActSeeOthPubPrf */{1402,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_GetUsrDatAndShowUserProfile,NULL},
|
||||||
/* ActCalFig */{1405,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_CalculateFigures ,NULL},
|
/* ActCalFig */{1405,-1,TabUnk,ActSeeSocPrf ,0x3F8,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,0x3C7,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Prf_CalculateFigures ,NULL},
|
||||||
|
|
|
@ -429,7 +429,7 @@ Lo de mutear anuncios, en principio prefiero hacer una opci
|
||||||
// TODO: Change in usability of Announcements of exams, suggested by Javier Fernández Baldomero.
|
// TODO: Change in usability of Announcements of exams, suggested by Javier Fernández Baldomero.
|
||||||
// TODO: Al pulsar sobre una convocatoria de examen / aviso --> ir a la sección de esa convocatoria/aviso en lugar de mostrarlo repetido y destacado arriba
|
// TODO: Al pulsar sobre una convocatoria de examen / aviso --> ir a la sección de esa convocatoria/aviso en lugar de mostrarlo repetido y destacado arriba
|
||||||
|
|
||||||
// TODO: Intentar aumentar la velocidad de carga del timeline (comprobar ralentización al mostrar la titulación de cada usuario)
|
// TODO: Fix important bug: Cuando se baja varias veces el timeline pulsando en "Ver más", se para aleatoriamente tras varias actualizaciones hacia abajo, no siempre llega hasta la primera publicación
|
||||||
|
|
||||||
// TODO: Los usuarios que no tienes permiso para ver su perfil público, se debería mostrar algo, una mínima ficha sin tinmeline o algo así
|
// TODO: Los usuarios que no tienes permiso para ver su perfil público, se debería mostrar algo, una mínima ficha sin tinmeline o algo así
|
||||||
|
|
||||||
|
@ -452,11 +452,12 @@ En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 18.73.7 (2019-03-12)"
|
#define Log_PLATFORM_VERSION "SWAD 18.74 (2019-03-12)"
|
||||||
#define CSS_FILE "swad18.68.3.css"
|
#define CSS_FILE "swad18.68.3.css"
|
||||||
#define JS_FILE "swad18.64.js"
|
#define JS_FILE "swad18.64.js"
|
||||||
/*
|
/*
|
||||||
Version 18.73.7: Mar 12, 2019 Code refactoring irelated to list of users and options. (239614 lines)
|
Version 18.74: Mar 12, 2019 Module swad_social is renamed swad_timeline. (239633 lines)
|
||||||
|
Version 18.73.7: Mar 12, 2019 Code refactoring related to list of users and options. (239614 lines)
|
||||||
Version 18.73.6: Mar 12, 2019 Create new email message from list of users. This option will be active when email action allows selecting individual users. (239580 lines)
|
Version 18.73.6: Mar 12, 2019 Create new email message from list of users. This option will be active when email action allows selecting individual users. (239580 lines)
|
||||||
Copy the following icon to icon public directory:
|
Copy the following icon to icon public directory:
|
||||||
sudo cp icon/marker.svg /var/www/html/swad/icon/
|
sudo cp icon/marker.svg /var/www/html/swad/icon/
|
||||||
|
@ -4570,7 +4571,7 @@ INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1511','es','N','Carg
|
||||||
Version 15.111: Jan 14, 2016 Fixed bug in user's timeline.
|
Version 15.111: Jan 14, 2016 Fixed bug in user's timeline.
|
||||||
Code refactoring related with social timeline. (192622 lines)
|
Code refactoring related with social timeline. (192622 lines)
|
||||||
Version 15.110.18:Jan 13, 2016 Optimization in query to get initial recent timeline. (192564 lines)
|
Version 15.110.18:Jan 13, 2016 Optimization in query to get initial recent timeline. (192564 lines)
|
||||||
Version 15.110.17:Jan 13, 2016 Reviewed code related to Soc_MAX_RECENT_PUBS_TO_GET. (192568 lines)
|
Version 15.110.17:Jan 13, 2016 Reviewed code related to TL_MAX_RECENT_PUBS_TO_GET. (192568 lines)
|
||||||
Version 15.110.16:Jan 13, 2016 Form to go to public profile of author of comment in timeline. (192563 lines)
|
Version 15.110.16:Jan 13, 2016 Form to go to public profile of author of comment in timeline. (192563 lines)
|
||||||
Version 15.110.15:Jan 13, 2016 Form to go to public profile of author of note in timeline.
|
Version 15.110.15:Jan 13, 2016 Form to go to public profile of author of note in timeline.
|
||||||
Extensions '.exe' and '.com' not allowed (Google reported malware). (192543 lines)
|
Extensions '.exe' and '.com' not allowed (Google reported malware). (192543 lines)
|
||||||
|
|
|
@ -455,7 +455,7 @@
|
||||||
|
|
||||||
#define Cfg_TIME_TO_REFRESH_LAST_CLICKS ((time_t)( 1UL * 1000UL)) // Refresh period of last clicks in miliseconds
|
#define Cfg_TIME_TO_REFRESH_LAST_CLICKS ((time_t)( 1UL * 1000UL)) // Refresh period of last clicks in miliseconds
|
||||||
|
|
||||||
#define Cfg_TIME_TO_REFRESH_SOCIAL_TIMELINE ((time_t)( 10UL * 1000UL)) // Refresh period of social timeline in miliseconds
|
#define Cfg_TIME_TO_REFRESH_TIMELINE ((time_t)( 10UL * 1000UL)) // Refresh period of social timeline in miliseconds
|
||||||
|
|
||||||
#define Cfg_TIME_TO_CHANGE_BANNER ((time_t)( 2UL * 60UL)) // After these seconds, change banner
|
#define Cfg_TIME_TO_CHANGE_BANNER ((time_t)( 2UL * 60UL)) // After these seconds, change banner
|
||||||
#define Cfg_NUMBER_OF_BANNERS 1 // Number of banners to show simultaneously
|
#define Cfg_NUMBER_OF_BANNERS 1 // Number of banners to show simultaneously
|
||||||
|
|
|
@ -47,8 +47,8 @@
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_QR.h"
|
#include "swad_QR.h"
|
||||||
#include "swad_RSS.h"
|
#include "swad_RSS.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_string.h"
|
#include "swad_string.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** External global variables from others modules ****************/
|
/************** External global variables from others modules ****************/
|
||||||
|
@ -292,7 +292,7 @@ void Exa_ReceiveExamAnnouncement2 (void)
|
||||||
extern const char *Txt_Created_new_announcement_of_exam;
|
extern const char *Txt_Created_new_announcement_of_exam;
|
||||||
extern const char *Txt_The_announcement_of_exam_has_been_successfully_updated;
|
extern const char *Txt_The_announcement_of_exam_has_been_successfully_updated;
|
||||||
unsigned NumUsrsToBeNotifiedByEMail;
|
unsigned NumUsrsToBeNotifiedByEMail;
|
||||||
struct SocialPublication SocPub;
|
struct TL_Publication SocPub;
|
||||||
|
|
||||||
/***** Show message *****/
|
/***** Show message *****/
|
||||||
Ale_ShowAlert (Ale_SUCCESS,
|
Ale_ShowAlert (Ale_SUCCESS,
|
||||||
|
@ -304,7 +304,7 @@ void Exa_ReceiveExamAnnouncement2 (void)
|
||||||
Exa_UpdateNumUsrsNotifiedByEMailAboutExamAnnouncement (Gbl.ExamAnns.ExaDat.ExaCod,NumUsrsToBeNotifiedByEMail);
|
Exa_UpdateNumUsrsNotifiedByEMailAboutExamAnnouncement (Gbl.ExamAnns.ExaDat.ExaCod,NumUsrsToBeNotifiedByEMail);
|
||||||
|
|
||||||
/***** Create a new social note about the new exam announcement *****/
|
/***** Create a new social note about the new exam announcement *****/
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_EXAM_ANNOUNCEMENT,Gbl.ExamAnns.ExaDat.ExaCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_EXAM_ANNOUNCEMENT,Gbl.ExamAnns.ExaDat.ExaCod,&SocPub);
|
||||||
|
|
||||||
/***** Update RSS of current course *****/
|
/***** Update RSS of current course *****/
|
||||||
RSS_UpdateRSSFileForACrs (&Gbl.CurrentCrs.Crs);
|
RSS_UpdateRSSFileForACrs (&Gbl.CurrentCrs.Crs);
|
||||||
|
@ -403,7 +403,7 @@ void Exa_RemoveExamAnnouncement1 (void)
|
||||||
Ntf_MarkNotifAsRemoved (Ntf_EVENT_EXAM_ANNOUNCEMENT,ExaCod);
|
Ntf_MarkNotifAsRemoved (Ntf_EVENT_EXAM_ANNOUNCEMENT,ExaCod);
|
||||||
|
|
||||||
/***** Mark possible social note as unavailable *****/
|
/***** Mark possible social note as unavailable *****/
|
||||||
Soc_MarkSocialNoteAsUnavailableUsingNoteTypeAndCod (Soc_NOTE_EXAM_ANNOUNCEMENT,ExaCod);
|
TL_MarkNoteAsUnavailableUsingNoteTypeAndCod (TL_NOTE_EXAM_ANNOUNCEMENT,ExaCod);
|
||||||
|
|
||||||
/***** Update RSS of current course *****/
|
/***** Update RSS of current course *****/
|
||||||
RSS_UpdateRSSFileForACrs (&Gbl.CurrentCrs.Crs);
|
RSS_UpdateRSSFileForACrs (&Gbl.CurrentCrs.Crs);
|
||||||
|
|
|
@ -3343,18 +3343,18 @@ static void Fig_GetAndShowSocialActivityStats (void)
|
||||||
extern const char *Txt_No_of_users;
|
extern const char *Txt_No_of_users;
|
||||||
extern const char *Txt_PERCENT_of_users;
|
extern const char *Txt_PERCENT_of_users;
|
||||||
extern const char *Txt_No_of_posts_BR_per_user;
|
extern const char *Txt_No_of_posts_BR_per_user;
|
||||||
extern const char *Txt_SOCIAL_NOTE[Soc_NUM_NOTE_TYPES];
|
extern const char *Txt_TIMELINE_NOTE[TL_NUM_NOTE_TYPES];
|
||||||
extern const char *Txt_Total;
|
extern const char *Txt_Total;
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
Soc_NoteType_t NoteType;
|
TL_NoteType_t NoteType;
|
||||||
unsigned long NumSocialNotes;
|
unsigned long NumSocialNotes;
|
||||||
unsigned long NumRows;
|
unsigned long NumRows;
|
||||||
unsigned NumUsrs;
|
unsigned NumUsrs;
|
||||||
unsigned NumUsrsTotal;
|
unsigned NumUsrsTotal;
|
||||||
|
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
Box_StartBoxTable (NULL,Txt_FIGURE_TYPES[Fig_SOCIAL_ACTIVITY],NULL,
|
Box_StartBoxTable (NULL,Txt_FIGURE_TYPES[Fig_TIMELINE],NULL,
|
||||||
Hlp_ANALYTICS_Figures_timeline,Box_NOT_CLOSABLE,2);
|
Hlp_ANALYTICS_Figures_timeline,Box_NOT_CLOSABLE,2);
|
||||||
|
|
||||||
/***** Heading row *****/
|
/***** Heading row *****/
|
||||||
|
@ -3389,8 +3389,8 @@ static void Fig_GetAndShowSocialActivityStats (void)
|
||||||
1 << Rol_TCH);
|
1 << Rol_TCH);
|
||||||
|
|
||||||
/***** Get total number of following/followers from database *****/
|
/***** Get total number of following/followers from database *****/
|
||||||
for (NoteType = (Soc_NoteType_t) 0;
|
for (NoteType = (TL_NoteType_t) 0;
|
||||||
NoteType < Soc_NUM_NOTE_TYPES;
|
NoteType < TL_NUM_NOTE_TYPES;
|
||||||
NoteType++)
|
NoteType++)
|
||||||
{
|
{
|
||||||
switch (Gbl.Scope.Current)
|
switch (Gbl.Scope.Current)
|
||||||
|
@ -3512,7 +3512,7 @@ static void Fig_GetAndShowSocialActivityStats (void)
|
||||||
"%.2f"
|
"%.2f"
|
||||||
"</td>"
|
"</td>"
|
||||||
"</tr>",
|
"</tr>",
|
||||||
Txt_SOCIAL_NOTE[NoteType],
|
Txt_TIMELINE_NOTE[NoteType],
|
||||||
NumSocialNotes,
|
NumSocialNotes,
|
||||||
NumUsrs,
|
NumUsrs,
|
||||||
NumUsrsTotal ? (float) NumUsrs * 100.0 / (float) NumUsrsTotal :
|
NumUsrsTotal ? (float) NumUsrs * 100.0 / (float) NumUsrsTotal :
|
||||||
|
|
|
@ -46,7 +46,7 @@ typedef enum
|
||||||
Fig_TESTS, // Number of test questions
|
Fig_TESTS, // Number of test questions
|
||||||
Fig_GAMES, // Number of games
|
Fig_GAMES, // Number of games
|
||||||
Fig_SURVEYS, // Number of surveys
|
Fig_SURVEYS, // Number of surveys
|
||||||
Fig_SOCIAL_ACTIVITY, // Number of social notes
|
Fig_TIMELINE, // Number of timeline notes
|
||||||
Fig_FOLLOW, // Number of following and followers
|
Fig_FOLLOW, // Number of following and followers
|
||||||
Fig_FORUMS, // Number of forums, threads and posts
|
Fig_FORUMS, // Number of forums, threads and posts
|
||||||
Fig_NOTIFY_EVENTS, // Number of users per notify event
|
Fig_NOTIFY_EVENTS, // Number of users per notify event
|
||||||
|
|
|
@ -53,9 +53,9 @@
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_photo.h"
|
#include "swad_photo.h"
|
||||||
#include "swad_profile.h"
|
#include "swad_profile.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_string.h"
|
#include "swad_string.h"
|
||||||
#include "swad_table.h"
|
#include "swad_table.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
#include "swad_zip.h"
|
#include "swad_zip.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -10405,7 +10405,7 @@ void Brw_ChgFileMetadata (void)
|
||||||
bool PublicFileBeforeEdition;
|
bool PublicFileBeforeEdition;
|
||||||
bool PublicFileAfterEdition;
|
bool PublicFileAfterEdition;
|
||||||
Brw_License_t License;
|
Brw_License_t License;
|
||||||
struct SocialPublication SocPub;
|
struct TL_Publication SocPub;
|
||||||
|
|
||||||
/***** Get parameters related to file browser *****/
|
/***** Get parameters related to file browser *****/
|
||||||
Brw_GetParAndInitFileBrowser ();
|
Brw_GetParAndInitFileBrowser ();
|
||||||
|
@ -10476,28 +10476,28 @@ void Brw_ChgFileMetadata (void)
|
||||||
switch (Gbl.FileBrowser.Type)
|
switch (Gbl.FileBrowser.Type)
|
||||||
{
|
{
|
||||||
case Brw_ADMI_DOC_INS:
|
case Brw_ADMI_DOC_INS:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_INS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_INS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_SHR_INS:
|
case Brw_ADMI_SHR_INS:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_INS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_INS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_DOC_CTR:
|
case Brw_ADMI_DOC_CTR:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_CTR_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_CTR_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_SHR_CTR:
|
case Brw_ADMI_SHR_CTR:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_CTR_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_CTR_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_DOC_DEG:
|
case Brw_ADMI_DOC_DEG:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_DEG_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_DEG_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_SHR_DEG:
|
case Brw_ADMI_SHR_DEG:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_DEG_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_DEG_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_DOC_CRS:
|
case Brw_ADMI_DOC_CRS:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_CRS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_CRS_DOC_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
case Brw_ADMI_SHR_CRS:
|
case Brw_ADMI_SHR_CRS:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_CRS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_CRS_SHA_PUB_FILE,FileMetadata.FilCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -11394,7 +11394,7 @@ static void Brw_RemoveOneFileOrFolderFromDB (const char Path[PATH_MAX + 1])
|
||||||
Set possible social note as unavailable.
|
Set possible social note as unavailable.
|
||||||
Important: do this before removing from files *****/
|
Important: do this before removing from files *****/
|
||||||
Ntf_MarkNotifOneFileAsRemoved (Path);
|
Ntf_MarkNotifOneFileAsRemoved (Path);
|
||||||
Soc_MarkSocialNoteOneFileAsUnavailable (Path);
|
TL_MarkNoteOneFileAsUnavailable (Path);
|
||||||
|
|
||||||
/***** Remove from database the entries that store the marks properties *****/
|
/***** Remove from database the entries that store the marks properties *****/
|
||||||
if (FileBrowser == Brw_ADMI_MRK_CRS ||
|
if (FileBrowser == Brw_ADMI_MRK_CRS ||
|
||||||
|
@ -11438,7 +11438,7 @@ static void Brw_RemoveChildrenOfFolderFromDB (const char Path[PATH_MAX + 1])
|
||||||
Set possible social notes as unavailable.
|
Set possible social notes as unavailable.
|
||||||
Important: do this before removing from files *****/
|
Important: do this before removing from files *****/
|
||||||
Ntf_MarkNotifChildrenOfFolderAsRemoved (Path);
|
Ntf_MarkNotifChildrenOfFolderAsRemoved (Path);
|
||||||
Soc_MarkSocialNotesChildrenOfFolderAsUnavailable (Path);
|
TL_MarkNotesChildrenOfFolderAsUnavailable (Path);
|
||||||
|
|
||||||
/***** Remove from database the entries that store the marks properties *****/
|
/***** Remove from database the entries that store the marks properties *****/
|
||||||
if (FileBrowser == Brw_ADMI_MRK_CRS ||
|
if (FileBrowser == Brw_ADMI_MRK_CRS ||
|
||||||
|
|
|
@ -122,7 +122,7 @@ void Fol_PutLinkWhoToFollow (void)
|
||||||
|
|
||||||
void Fol_SuggestUsrsToFollowMainZone (void)
|
void Fol_SuggestUsrsToFollowMainZone (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_SOCIAL_Profiles_who_to_follow;
|
extern const char *Hlp_START_Profiles_who_to_follow;
|
||||||
extern const char *Txt_Who_to_follow;
|
extern const char *Txt_Who_to_follow;
|
||||||
extern const char *Txt_No_user_to_whom_you_can_follow_Try_again_later;
|
extern const char *Txt_No_user_to_whom_you_can_follow_Try_again_later;
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
|
@ -144,7 +144,7 @@ void Fol_SuggestUsrsToFollowMainZone (void)
|
||||||
{
|
{
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
Box_StartBoxTable ("560px",Txt_Who_to_follow,Fol_PutIconsWhoToFollow,
|
Box_StartBoxTable ("560px",Txt_Who_to_follow,Fol_PutIconsWhoToFollow,
|
||||||
Hlp_SOCIAL_Profiles_who_to_follow,Box_NOT_CLOSABLE,2);
|
Hlp_START_Profiles_who_to_follow,Box_NOT_CLOSABLE,2);
|
||||||
|
|
||||||
/***** Initialize structure with user's data *****/
|
/***** Initialize structure with user's data *****/
|
||||||
Usr_UsrDataConstructor (&UsrDat);
|
Usr_UsrDataConstructor (&UsrDat);
|
||||||
|
|
28
swad_forum.c
28
swad_forum.c
|
@ -46,8 +46,8 @@
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_profile.h"
|
#include "swad_profile.h"
|
||||||
#include "swad_role.h"
|
#include "swad_role.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_table.h"
|
#include "swad_table.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** External global variables from others modules ****************/
|
/************** External global variables from others modules ****************/
|
||||||
|
@ -942,7 +942,7 @@ void For_RemoveUsrFromReadThrs (long UsrCod)
|
||||||
|
|
||||||
static void For_ShowPostsOfAThread (Ale_AlertType_t AlertType,const char *Message)
|
static void For_ShowPostsOfAThread (Ale_AlertType_t AlertType,const char *Message)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_SOCIAL_Forums_posts;
|
extern const char *Hlp_MESSAGES_Forums_posts;
|
||||||
extern const char *Txt_Thread;
|
extern const char *Txt_Thread;
|
||||||
struct ForumThread Thr;
|
struct ForumThread Thr;
|
||||||
char LastSubject[Cns_MAX_BYTES_SUBJECT + 1];
|
char LastSubject[Cns_MAX_BYTES_SUBJECT + 1];
|
||||||
|
@ -982,7 +982,7 @@ static void For_ShowPostsOfAThread (Ale_AlertType_t AlertType,const char *Messag
|
||||||
"%s: %s",
|
"%s: %s",
|
||||||
Txt_Thread,Thr.Subject);
|
Txt_Thread,Thr.Subject);
|
||||||
Box_StartBox (NULL,FrameTitle,For_PutIconNewPost,
|
Box_StartBox (NULL,FrameTitle,For_PutIconNewPost,
|
||||||
Hlp_SOCIAL_Forums_posts,Box_NOT_CLOSABLE);
|
Hlp_MESSAGES_Forums_posts,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** Get posts of a thread from database *****/
|
/***** Get posts of a thread from database *****/
|
||||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get posts of a thread",
|
NumRows = DB_QuerySELECT (&mysql_res,"can not get posts of a thread",
|
||||||
|
@ -1557,7 +1557,7 @@ static void For_PutHiddenParamPstCod (long PstCod)
|
||||||
|
|
||||||
static void For_ShowForumList (void)
|
static void For_ShowForumList (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_SOCIAL_Forums;
|
extern const char *Hlp_MESSAGES_Forums;
|
||||||
extern const char *Txt_Forums;
|
extern const char *Txt_Forums;
|
||||||
bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS];
|
bool IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS];
|
||||||
MYSQL_RES *mysql_resCtr;
|
MYSQL_RES *mysql_resCtr;
|
||||||
|
@ -1588,7 +1588,7 @@ static void For_ShowForumList (void)
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
Box_StartBox (NULL,Txt_Forums,For_PutIconsForums,
|
Box_StartBox (NULL,Txt_Forums,For_PutIconsForums,
|
||||||
Hlp_SOCIAL_Forums,Box_NOT_CLOSABLE);
|
Hlp_MESSAGES_Forums,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** Put a form to select which forums *****/
|
/***** Put a form to select which forums *****/
|
||||||
For_PutFormWhichForums ();
|
For_PutFormWhichForums ();
|
||||||
|
@ -2468,7 +2468,7 @@ void For_ShowForumTheads (void)
|
||||||
static void For_ShowForumThreadsHighlightingOneThread (long ThrCodHighlighted,
|
static void For_ShowForumThreadsHighlightingOneThread (long ThrCodHighlighted,
|
||||||
Ale_AlertType_t AlertType,const char *Message)
|
Ale_AlertType_t AlertType,const char *Message)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_SOCIAL_Forums_threads;
|
extern const char *Hlp_MESSAGES_Forums_threads;
|
||||||
extern const char *Txt_Forum;
|
extern const char *Txt_Forum;
|
||||||
extern const char *Txt_MSG_Subject;
|
extern const char *Txt_MSG_Subject;
|
||||||
extern const char *Txt_FORUM_THREAD_HELP_ORDER[2];
|
extern const char *Txt_FORUM_THREAD_HELP_ORDER[2];
|
||||||
|
@ -2557,7 +2557,7 @@ static void For_ShowForumThreadsHighlightingOneThread (long ThrCodHighlighted,
|
||||||
"%s: %s",
|
"%s: %s",
|
||||||
Txt_Forum,ForumName);
|
Txt_Forum,ForumName);
|
||||||
Box_StartBox (NULL,FrameTitle,For_PutIconNewThread,
|
Box_StartBox (NULL,FrameTitle,For_PutIconNewThread,
|
||||||
Hlp_SOCIAL_Forums_threads,Box_NOT_CLOSABLE);
|
Hlp_MESSAGES_Forums_threads,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** List the threads *****/
|
/***** List the threads *****/
|
||||||
if (NumThrs)
|
if (NumThrs)
|
||||||
|
@ -3936,8 +3936,8 @@ static void For_RestrictAccess (void)
|
||||||
|
|
||||||
static void For_WriteFormForumPst (bool IsReply,const char *Subject)
|
static void For_WriteFormForumPst (bool IsReply,const char *Subject)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_SOCIAL_Forums_new_post;
|
extern const char *Hlp_MESSAGES_Forums_new_post;
|
||||||
extern const char *Hlp_SOCIAL_Forums_new_thread;
|
extern const char *Hlp_MESSAGES_Forums_new_thread;
|
||||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||||
extern const char *Txt_New_post;
|
extern const char *Txt_New_post;
|
||||||
extern const char *Txt_New_thread;
|
extern const char *Txt_New_thread;
|
||||||
|
@ -3948,10 +3948,10 @@ static void For_WriteFormForumPst (bool IsReply,const char *Subject)
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
if (IsReply)
|
if (IsReply)
|
||||||
Box_StartBox (NULL,Txt_New_post,NULL,
|
Box_StartBox (NULL,Txt_New_post,NULL,
|
||||||
Hlp_SOCIAL_Forums_new_post,Box_NOT_CLOSABLE);
|
Hlp_MESSAGES_Forums_new_post,Box_NOT_CLOSABLE);
|
||||||
else
|
else
|
||||||
Box_StartBox (NULL,Txt_New_thread,NULL,
|
Box_StartBox (NULL,Txt_New_thread,NULL,
|
||||||
Hlp_SOCIAL_Forums_new_thread,Box_NOT_CLOSABLE);
|
Hlp_MESSAGES_Forums_new_thread,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** Start form *****/
|
/***** Start form *****/
|
||||||
if (IsReply) // Form to write a reply to a post of an existing thread
|
if (IsReply) // Form to write a reply to a post of an existing thread
|
||||||
|
@ -4030,7 +4030,7 @@ void For_ReceiveForumPost (void)
|
||||||
bool IsReply = false;
|
bool IsReply = false;
|
||||||
long PstCod = 0;
|
long PstCod = 0;
|
||||||
unsigned NumUsrsToBeNotifiedByEMail;
|
unsigned NumUsrsToBeNotifiedByEMail;
|
||||||
struct SocialPublication SocPub;
|
struct TL_Publication SocPub;
|
||||||
char Content[Cns_MAX_BYTES_LONG_TEXT + 1];
|
char Content[Cns_MAX_BYTES_LONG_TEXT + 1];
|
||||||
struct Media Media;
|
struct Media Media;
|
||||||
|
|
||||||
|
@ -4115,7 +4115,7 @@ void For_ReceiveForumPost (void)
|
||||||
{
|
{
|
||||||
case For_FORUM_GLOBAL_USRS:
|
case For_FORUM_GLOBAL_USRS:
|
||||||
case For_FORUM__SWAD__USRS:
|
case For_FORUM__SWAD__USRS:
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_FORUM_POST,PstCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_FORUM_POST,PstCod,&SocPub);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -4200,7 +4200,7 @@ void For_RemovePost (void)
|
||||||
{
|
{
|
||||||
case For_FORUM_GLOBAL_USRS:
|
case For_FORUM_GLOBAL_USRS:
|
||||||
case For_FORUM__SWAD__USRS:
|
case For_FORUM__SWAD__USRS:
|
||||||
Soc_MarkSocialNoteAsUnavailableUsingNoteTypeAndCod (Soc_NOTE_FORUM_POST,Gbl.Forum.ForumSelected.PstCod);
|
TL_MarkNoteAsUnavailableUsingNoteTypeAndCod (TL_NOTE_FORUM_POST,Gbl.Forum.ForumSelected.PstCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -434,7 +434,7 @@ void Gbl_InitializeGlobals (void)
|
||||||
Gbl.Games.ListQuestions = NULL;
|
Gbl.Games.ListQuestions = NULL;
|
||||||
|
|
||||||
/* Public activity */
|
/* Public activity */
|
||||||
Gbl.Social.WhichUsrs = Soc_DEFAULT_WHICH_USRS;
|
Gbl.Timeline.WhichUsrs = TL_DEFAULT_WHICH_USRS;
|
||||||
|
|
||||||
/* Forums */
|
/* Forums */
|
||||||
Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET;
|
Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET;
|
||||||
|
|
|
@ -73,10 +73,10 @@
|
||||||
#include "swad_record.h"
|
#include "swad_record.h"
|
||||||
#include "swad_search.h"
|
#include "swad_search.h"
|
||||||
#include "swad_session.h"
|
#include "swad_session.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_survey.h"
|
#include "swad_survey.h"
|
||||||
#include "swad_syllabus.h"
|
#include "swad_syllabus.h"
|
||||||
#include "swad_test.h"
|
#include "swad_test.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
#include "swad_timetable.h"
|
#include "swad_timetable.h"
|
||||||
#include "swad_web_service.h"
|
#include "swad_web_service.h"
|
||||||
|
|
||||||
|
@ -613,10 +613,10 @@ struct Globals
|
||||||
} AttEvents;
|
} AttEvents;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
Soc_WhichUsrs_t WhichUsrs;
|
TL_WhichUsrs_t WhichUsrs;
|
||||||
long NotCod; // Used as parameter about social note to be edited, removed...
|
long NotCod; // Used as parameter about social note to be edited, removed...
|
||||||
long PubCod; // Used as parameter about social publishing to be edited, removed...
|
long PubCod; // Used as parameter about social publishing to be edited, removed...
|
||||||
} Social;
|
} Timeline;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
For_ForumSet_t ForumSet;
|
For_ForumSet_t ForumSet;
|
||||||
|
|
|
@ -2024,7 +2024,7 @@ const char *Hlp_USERS_Connected_last_clicks =
|
||||||
|
|
||||||
/***** SOCIAL tab *****/
|
/***** SOCIAL tab *****/
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Timeline =
|
const char *Hlp_START_Timeline =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Timeline.es";
|
"SOCIAL.Timeline.es";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2045,7 +2045,7 @@ const char *Hlp_SOCIAL_Timeline =
|
||||||
"SOCIAL.Timeline.en";
|
"SOCIAL.Timeline.en";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Profiles_view_public_profile =
|
const char *Hlp_START_Profiles_view_public_profile =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Profiles.es#ver-perfil-p%C3%BAblico";
|
"SOCIAL.Profiles.es#ver-perfil-p%C3%BAblico";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2066,7 +2066,7 @@ const char *Hlp_SOCIAL_Profiles_view_public_profile =
|
||||||
"SOCIAL.Profiles.en#view-public-profile";
|
"SOCIAL.Profiles.en#view-public-profile";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Profiles_who_to_follow =
|
const char *Hlp_START_Profiles_who_to_follow =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Profiles.es#a-qui%C3%A9n-seguir";
|
"SOCIAL.Profiles.es#a-qui%C3%A9n-seguir";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2087,7 +2087,7 @@ const char *Hlp_SOCIAL_Profiles_who_to_follow =
|
||||||
"SOCIAL.Profiles.en#who-to-follow";
|
"SOCIAL.Profiles.en#who-to-follow";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Forums =
|
const char *Hlp_MESSAGES_Forums =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Forums.es";
|
"SOCIAL.Forums.es";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2108,7 +2108,7 @@ const char *Hlp_SOCIAL_Forums =
|
||||||
"SOCIAL.Forums.en";
|
"SOCIAL.Forums.en";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Forums_threads =
|
const char *Hlp_MESSAGES_Forums_threads =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Forums.es#discusiones";
|
"SOCIAL.Forums.es#discusiones";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2129,7 +2129,7 @@ const char *Hlp_SOCIAL_Forums_threads =
|
||||||
"SOCIAL.Forums.en#threads";
|
"SOCIAL.Forums.en#threads";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Forums_new_thread =
|
const char *Hlp_MESSAGES_Forums_new_thread =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Forums.es#nueva-discusi%C3%B3n";
|
"SOCIAL.Forums.es#nueva-discusi%C3%B3n";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2150,7 +2150,7 @@ const char *Hlp_SOCIAL_Forums_new_thread =
|
||||||
"SOCIAL.Forums.en#new-thread";
|
"SOCIAL.Forums.en#new-thread";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Forums_posts =
|
const char *Hlp_MESSAGES_Forums_posts =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Forums.es#comentarios";
|
"SOCIAL.Forums.es#comentarios";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2171,7 +2171,7 @@ const char *Hlp_SOCIAL_Forums_posts =
|
||||||
"SOCIAL.Forums.en#posts";
|
"SOCIAL.Forums.en#posts";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_SOCIAL_Forums_new_post =
|
const char *Hlp_MESSAGES_Forums_new_post =
|
||||||
#if L==1
|
#if L==1
|
||||||
"SOCIAL.Forums.es#nuevo-comentario";
|
"SOCIAL.Forums.es#nuevo-comentario";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2194,7 +2194,7 @@ const char *Hlp_SOCIAL_Forums_new_post =
|
||||||
|
|
||||||
/***** MESSAGES tab *****/
|
/***** MESSAGES tab *****/
|
||||||
|
|
||||||
const char *Hlp_MESSAGES_Notifications =
|
const char *Hlp_START_Notifications =
|
||||||
#if L==1
|
#if L==1
|
||||||
"MESSAGES.Notifications.es";
|
"MESSAGES.Notifications.es";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2215,7 +2215,7 @@ const char *Hlp_MESSAGES_Notifications =
|
||||||
"MESSAGES.Notifications.en";
|
"MESSAGES.Notifications.en";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_MESSAGES_Domains =
|
const char *Hlp_START_Domains =
|
||||||
#if L==1
|
#if L==1
|
||||||
"MESSAGES.Domains.es";
|
"MESSAGES.Domains.es";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
@ -2236,7 +2236,7 @@ const char *Hlp_MESSAGES_Domains =
|
||||||
"MESSAGES.Domains.en";
|
"MESSAGES.Domains.en";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Hlp_MESSAGES_Domains_edit =
|
const char *Hlp_START_Domains_edit =
|
||||||
#if L==1
|
#if L==1
|
||||||
"MESSAGES.Domains.es#editar";
|
"MESSAGES.Domains.es#editar";
|
||||||
#elif L==2
|
#elif L==2
|
||||||
|
|
|
@ -50,9 +50,9 @@
|
||||||
#include "swad_notification.h"
|
#include "swad_notification.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_preference.h"
|
#include "swad_preference.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_tab.h"
|
#include "swad_tab.h"
|
||||||
#include "swad_theme.h"
|
#include "swad_theme.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
#include "swad_web_service.h"
|
#include "swad_web_service.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -685,7 +685,7 @@ static void Lay_WriteScriptInit (void)
|
||||||
case ActRemSocComGbl:
|
case ActRemSocComGbl:
|
||||||
// Refresh timeline via AJAX
|
// Refresh timeline via AJAX
|
||||||
fprintf (Gbl.F.Out," setTimeout(\"refreshNewTimeline()\",%lu);\n",
|
fprintf (Gbl.F.Out," setTimeout(\"refreshNewTimeline()\",%lu);\n",
|
||||||
Cfg_TIME_TO_REFRESH_SOCIAL_TIMELINE);
|
Cfg_TIME_TO_REFRESH_TIMELINE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -738,8 +738,8 @@ static void Lay_WriteScriptParamsAJAX (void)
|
||||||
"var RefreshParamWhichUsrs = \"WhichUsrs=%u\";\n",
|
"var RefreshParamWhichUsrs = \"WhichUsrs=%u\";\n",
|
||||||
Act_GetActCod (ActRefNewSocPubGbl),
|
Act_GetActCod (ActRefNewSocPubGbl),
|
||||||
Act_GetActCod (ActRefOldSocPubGbl),
|
Act_GetActCod (ActRefOldSocPubGbl),
|
||||||
Soc_MAX_OLD_PUBS_TO_GET_AND_SHOW,
|
TL_MAX_OLD_PUBS_TO_GET_AND_SHOW,
|
||||||
(unsigned) Gbl.Social.WhichUsrs);
|
(unsigned) Gbl.Timeline.WhichUsrs);
|
||||||
break;
|
break;
|
||||||
case ActSeeOthPubPrf:
|
case ActSeeOthPubPrf:
|
||||||
case ActRcvSocPstUsr:
|
case ActRcvSocPstUsr:
|
||||||
|
@ -759,7 +759,7 @@ static void Lay_WriteScriptParamsAJAX (void)
|
||||||
"var RefreshParamMaxOldPubsToGetAndShow = \"%u\";\n"
|
"var RefreshParamMaxOldPubsToGetAndShow = \"%u\";\n"
|
||||||
"var RefreshParamUsr = \"OtherUsrCod=%s\";\n",
|
"var RefreshParamUsr = \"OtherUsrCod=%s\";\n",
|
||||||
Act_GetActCod (ActRefOldSocPubUsr),
|
Act_GetActCod (ActRefOldSocPubUsr),
|
||||||
Soc_MAX_OLD_PUBS_TO_GET_AND_SHOW,
|
TL_MAX_OLD_PUBS_TO_GET_AND_SHOW,
|
||||||
Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
12
swad_mail.c
12
swad_mail.c
|
@ -101,7 +101,7 @@ static void Mai_InsertMailKey (const char Email[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]
|
||||||
|
|
||||||
void Mai_SeeMailDomains (void)
|
void Mai_SeeMailDomains (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_MESSAGES_Domains;
|
extern const char *Hlp_START_Domains;
|
||||||
extern const char *Txt_Email_domains_allowed_for_notifications;
|
extern const char *Txt_Email_domains_allowed_for_notifications;
|
||||||
extern const char *Txt_EMAIL_DOMAIN_HELP_ORDER[3];
|
extern const char *Txt_EMAIL_DOMAIN_HELP_ORDER[3];
|
||||||
extern const char *Txt_EMAIL_DOMAIN_ORDER[3];
|
extern const char *Txt_EMAIL_DOMAIN_ORDER[3];
|
||||||
|
@ -118,7 +118,7 @@ void Mai_SeeMailDomains (void)
|
||||||
Box_StartBoxTable (NULL,Txt_Email_domains_allowed_for_notifications,
|
Box_StartBoxTable (NULL,Txt_Email_domains_allowed_for_notifications,
|
||||||
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM ? Mai_PutIconToEditMailDomains :
|
Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM ? Mai_PutIconToEditMailDomains :
|
||||||
NULL,
|
NULL,
|
||||||
Hlp_MESSAGES_Domains,Box_NOT_CLOSABLE,2);
|
Hlp_START_Domains,Box_NOT_CLOSABLE,2);
|
||||||
|
|
||||||
/***** Write heading *****/
|
/***** Write heading *****/
|
||||||
fprintf (Gbl.F.Out,"<tr>");
|
fprintf (Gbl.F.Out,"<tr>");
|
||||||
|
@ -444,14 +444,14 @@ void Mai_FreeListMailDomains (void)
|
||||||
|
|
||||||
static void Mai_ListMailDomainsForEdition (void)
|
static void Mai_ListMailDomainsForEdition (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_MESSAGES_Domains_edit;
|
extern const char *Hlp_START_Domains_edit;
|
||||||
extern const char *Txt_Email_domains_allowed_for_notifications;
|
extern const char *Txt_Email_domains_allowed_for_notifications;
|
||||||
unsigned NumMai;
|
unsigned NumMai;
|
||||||
struct Mail *Mai;
|
struct Mail *Mai;
|
||||||
|
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
Box_StartBoxTable (NULL,Txt_Email_domains_allowed_for_notifications,NULL,
|
Box_StartBoxTable (NULL,Txt_Email_domains_allowed_for_notifications,NULL,
|
||||||
Hlp_MESSAGES_Domains_edit,Box_NOT_CLOSABLE,2);
|
Hlp_START_Domains_edit,Box_NOT_CLOSABLE,2);
|
||||||
|
|
||||||
/***** Write heading *****/
|
/***** Write heading *****/
|
||||||
Mai_PutHeadMailDomains ();
|
Mai_PutHeadMailDomains ();
|
||||||
|
@ -696,7 +696,7 @@ static void Mai_UpdateMailDomainNameDB (long MaiCod,const char *FieldName,const
|
||||||
|
|
||||||
static void Mai_PutFormToCreateMailDomain (void)
|
static void Mai_PutFormToCreateMailDomain (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_MESSAGES_Domains_edit;
|
extern const char *Hlp_START_Domains_edit;
|
||||||
extern const char *Txt_New_email_domain;
|
extern const char *Txt_New_email_domain;
|
||||||
extern const char *Txt_EMAIL_DOMAIN_ORDER[3];
|
extern const char *Txt_EMAIL_DOMAIN_ORDER[3];
|
||||||
extern const char *Txt_Create_email_domain;
|
extern const char *Txt_Create_email_domain;
|
||||||
|
@ -709,7 +709,7 @@ static void Mai_PutFormToCreateMailDomain (void)
|
||||||
|
|
||||||
/***** Start box and table *****/
|
/***** Start box and table *****/
|
||||||
Box_StartBoxTable (NULL,Txt_New_email_domain,NULL,
|
Box_StartBoxTable (NULL,Txt_New_email_domain,NULL,
|
||||||
Hlp_MESSAGES_Domains_edit,Box_NOT_CLOSABLE,2);
|
Hlp_START_Domains_edit,Box_NOT_CLOSABLE,2);
|
||||||
|
|
||||||
/***** Write heading *****/
|
/***** Write heading *****/
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
#include "swad_notification.h"
|
#include "swad_notification.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_RSS.h"
|
#include "swad_RSS.h"
|
||||||
#include "swad_social.h"
|
#include "swad_timeline.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** External global variables from others modules ****************/
|
/************** External global variables from others modules ****************/
|
||||||
|
@ -130,7 +130,7 @@ void Not_ReceiveNotice (void)
|
||||||
extern const char *Txt_Notice_created;
|
extern const char *Txt_Notice_created;
|
||||||
long NotCod;
|
long NotCod;
|
||||||
unsigned NumUsrsToBeNotifiedByEMail;
|
unsigned NumUsrsToBeNotifiedByEMail;
|
||||||
struct SocialPublication SocPub;
|
struct TL_Publication SocPub;
|
||||||
char Content[Cns_MAX_BYTES_TEXT + 1];
|
char Content[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
|
||||||
/***** Get the text of the notice *****/
|
/***** Get the text of the notice *****/
|
||||||
|
@ -151,7 +151,7 @@ void Not_ReceiveNotice (void)
|
||||||
Not_UpdateNumUsrsNotifiedByEMailAboutNotice (NotCod,NumUsrsToBeNotifiedByEMail);
|
Not_UpdateNumUsrsNotifiedByEMailAboutNotice (NotCod,NumUsrsToBeNotifiedByEMail);
|
||||||
|
|
||||||
/***** Create a new social note about the new notice *****/
|
/***** Create a new social note about the new notice *****/
|
||||||
Soc_StoreAndPublishSocialNote (Soc_NOTE_NOTICE,NotCod,&SocPub);
|
TL_StoreAndPublishNote (TL_NOTE_NOTICE,NotCod,&SocPub);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -316,7 +316,7 @@ void Not_RemoveNotice (void)
|
||||||
Ntf_MarkNotifAsRemoved (Ntf_EVENT_NOTICE,NotCod);
|
Ntf_MarkNotifAsRemoved (Ntf_EVENT_NOTICE,NotCod);
|
||||||
|
|
||||||
/***** Mark possible social note as unavailable *****/
|
/***** Mark possible social note as unavailable *****/
|
||||||
Soc_MarkSocialNoteAsUnavailableUsingNoteTypeAndCod (Soc_NOTE_NOTICE,NotCod);
|
TL_MarkNoteAsUnavailableUsingNoteTypeAndCod (TL_NOTE_NOTICE,NotCod);
|
||||||
|
|
||||||
/***** Update RSS of current course *****/
|
/***** Update RSS of current course *****/
|
||||||
RSS_UpdateRSSFileForACrs (&Gbl.CurrentCrs.Crs);
|
RSS_UpdateRSSFileForACrs (&Gbl.CurrentCrs.Crs);
|
||||||
|
|
|
@ -45,8 +45,8 @@
|
||||||
#include "swad_notice.h"
|
#include "swad_notice.h"
|
||||||
#include "swad_notification.h"
|
#include "swad_notification.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_table.h"
|
#include "swad_table.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************** External global variables from others modules ****************/
|
/************** External global variables from others modules ****************/
|
||||||
|
@ -299,7 +299,7 @@ static unsigned Ntf_GetNumberOfMyNewUnseenNtfs (void);
|
||||||
|
|
||||||
void Ntf_ShowMyNotifications (void)
|
void Ntf_ShowMyNotifications (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_MESSAGES_Notifications;
|
extern const char *Hlp_START_Notifications;
|
||||||
extern const char *Txt_Settings;
|
extern const char *Txt_Settings;
|
||||||
extern const char *Txt_Domains;
|
extern const char *Txt_Domains;
|
||||||
extern const char *Txt_Mark_all_NOTIFICATIONS_as_read;
|
extern const char *Txt_Mark_all_NOTIFICATIONS_as_read;
|
||||||
|
@ -384,7 +384,7 @@ void Ntf_ShowMyNotifications (void)
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
Box_StartBox (NULL,Txt_Notifications,Ntf_PutIconsNotif,
|
Box_StartBox (NULL,Txt_Notifications,Ntf_PutIconsNotif,
|
||||||
Hlp_MESSAGES_Notifications,Box_NOT_CLOSABLE);
|
Hlp_START_Notifications,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** List my notifications *****/
|
/***** List my notifications *****/
|
||||||
if (NumNotifications) // Notifications found
|
if (NumNotifications) // Notifications found
|
||||||
|
@ -744,7 +744,7 @@ static bool Ntf_StartFormGoToAction (Ntf_NotifyEvent_t NotifyEvent,
|
||||||
case Ntf_EVENT_TIMELINE_MENTION:
|
case Ntf_EVENT_TIMELINE_MENTION:
|
||||||
// Cod is the code of the social publishing
|
// Cod is the code of the social publishing
|
||||||
Frm_StartForm (ActSeeSocTmlGbl);
|
Frm_StartForm (ActSeeSocTmlGbl);
|
||||||
Soc_PutHiddenParamPubCod (Cod);
|
TL_PutHiddenParamPubCod (Cod);
|
||||||
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
|
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
|
||||||
Ntf_PutHiddenParamNotifyEvent (NotifyEvent);
|
Ntf_PutHiddenParamNotifyEvent (NotifyEvent);
|
||||||
break;
|
break;
|
||||||
|
@ -896,7 +896,7 @@ void Ntf_GetNotifSummaryAndContent (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
case Ntf_EVENT_TIMELINE_SHARE:
|
case Ntf_EVENT_TIMELINE_SHARE:
|
||||||
case Ntf_EVENT_TIMELINE_MENTION:
|
case Ntf_EVENT_TIMELINE_MENTION:
|
||||||
// Cod is the code of the social publishing
|
// Cod is the code of the social publishing
|
||||||
Soc_GetNotifSocialPublication (SummaryStr,ContentStr,Cod,GetContent);
|
TL_GetNotifPublication (SummaryStr,ContentStr,Cod,GetContent);
|
||||||
break;
|
break;
|
||||||
case Ntf_EVENT_FOLLOWER:
|
case Ntf_EVENT_FOLLOWER:
|
||||||
Fol_GetNotifFollower (SummaryStr,ContentStr);
|
Fol_GetNotifFollower (SummaryStr,ContentStr);
|
||||||
|
|
|
@ -44,8 +44,8 @@
|
||||||
#include "swad_profile.h"
|
#include "swad_profile.h"
|
||||||
#include "swad_role.h"
|
#include "swad_role.h"
|
||||||
#include "swad_role_type.h"
|
#include "swad_role_type.h"
|
||||||
#include "swad_social.h"
|
|
||||||
#include "swad_theme.h"
|
#include "swad_theme.h"
|
||||||
|
#include "swad_timeline.h"
|
||||||
#include "swad_user.h"
|
#include "swad_user.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -178,7 +178,7 @@ void Prf_PutLinkRequestAnotherUserProfile (void)
|
||||||
|
|
||||||
void Prf_RequestUserProfile (void)
|
void Prf_RequestUserProfile (void)
|
||||||
{
|
{
|
||||||
extern const char *Hlp_SOCIAL_Profiles_view_public_profile;
|
extern const char *Hlp_START_Profiles_view_public_profile;
|
||||||
extern const char *Txt_Another_user_s_profile;
|
extern const char *Txt_Another_user_s_profile;
|
||||||
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
extern const char *The_ClassFormInBox[The_NUM_THEMES];
|
||||||
extern const char *Txt_Nickname;
|
extern const char *Txt_Nickname;
|
||||||
|
@ -198,7 +198,7 @@ void Prf_RequestUserProfile (void)
|
||||||
|
|
||||||
/***** Start box *****/
|
/***** Start box *****/
|
||||||
Box_StartBox (NULL,Txt_Another_user_s_profile,NULL,
|
Box_StartBox (NULL,Txt_Another_user_s_profile,NULL,
|
||||||
Hlp_SOCIAL_Profiles_view_public_profile,Box_NOT_CLOSABLE);
|
Hlp_START_Profiles_view_public_profile,Box_NOT_CLOSABLE);
|
||||||
|
|
||||||
/***** Form to request user's @nickname *****/
|
/***** Form to request user's @nickname *****/
|
||||||
/* By default, the nickname is filled with my nickname
|
/* By default, the nickname is filled with my nickname
|
||||||
|
@ -244,8 +244,8 @@ void Prf_GetUsrDatAndShowUserProfile (void)
|
||||||
if (Gbl.Usrs.Me.Logged) // Timeline visible only by logged users
|
if (Gbl.Usrs.Me.Logged) // Timeline visible only by logged users
|
||||||
{
|
{
|
||||||
/* Show timeline */
|
/* Show timeline */
|
||||||
Lay_StartSection (Soc_TIMELINE_SECTION_ID);
|
Lay_StartSection (TL_TIMELINE_SECTION_ID);
|
||||||
Soc_ShowTimelineUsr ();
|
TL_ShowTimelineUsr ();
|
||||||
Lay_EndSection ();
|
Lay_EndSection ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -645,8 +645,8 @@ static void Prf_ShowNumSocialPublications (const struct UsrData *UsrDat,
|
||||||
const struct UsrFigures *UsrFigures)
|
const struct UsrFigures *UsrFigures)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Timeline;
|
extern const char *Txt_Timeline;
|
||||||
extern const char *Txt_SOCIAL_post;
|
extern const char *Txt_TIMELINE_post;
|
||||||
extern const char *Txt_SOCIAL_posts;
|
extern const char *Txt_TIMELINE_posts;
|
||||||
extern const char *Txt_day;
|
extern const char *Txt_day;
|
||||||
|
|
||||||
/***** Number of social publications *****/
|
/***** Number of social publications *****/
|
||||||
|
@ -656,8 +656,8 @@ static void Prf_ShowNumSocialPublications (const struct UsrData *UsrDat,
|
||||||
{
|
{
|
||||||
fprintf (Gbl.F.Out,"%ld %s ",
|
fprintf (Gbl.F.Out,"%ld %s ",
|
||||||
UsrFigures->NumSocPub,
|
UsrFigures->NumSocPub,
|
||||||
(UsrFigures->NumSocPub == 1) ? Txt_SOCIAL_post :
|
(UsrFigures->NumSocPub == 1) ? Txt_TIMELINE_post :
|
||||||
Txt_SOCIAL_posts);
|
Txt_TIMELINE_posts);
|
||||||
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumSocPub"),
|
Prf_ShowRanking (Prf_GetRankingFigure (UsrDat->UsrCod,"NumSocPub"),
|
||||||
Prf_GetNumUsrsWithFigure ("NumSocPub"));
|
Prf_GetNumUsrsWithFigure ("NumSocPub"));
|
||||||
if (UsrFigures->NumDays > 0)
|
if (UsrFigures->NumDays > 0)
|
||||||
|
@ -1105,7 +1105,7 @@ static void Prf_GetNumSocialPubsAndStoreAsUsrFigure (long UsrCod)
|
||||||
Prf_ResetUsrFigures (&UsrFigures);
|
Prf_ResetUsrFigures (&UsrFigures);
|
||||||
|
|
||||||
/***** Get number of forum posts from database *****/
|
/***** Get number of forum posts from database *****/
|
||||||
UsrFigures.NumSocPub = Soc_GetNumPubsUsr (UsrCod);
|
UsrFigures.NumSocPub = TL_GetNumPubsUsr (UsrCod);
|
||||||
|
|
||||||
/***** Update number of forum posts in user's figures *****/
|
/***** Update number of forum posts in user's figures *****/
|
||||||
if (Prf_CheckIfUsrFiguresExists (UsrCod))
|
if (Prf_CheckIfUsrFiguresExists (UsrCod))
|
||||||
|
|
|
@ -2128,7 +2128,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
|
||||||
{
|
{
|
||||||
extern const char *Hlp_USERS_SignUp;
|
extern const char *Hlp_USERS_SignUp;
|
||||||
extern const char *Hlp_PROFILE_Record;
|
extern const char *Hlp_PROFILE_Record;
|
||||||
extern const char *Hlp_SOCIAL_Profiles_view_public_profile;
|
extern const char *Hlp_START_Profiles_view_public_profile;
|
||||||
extern const char *Hlp_USERS_Guests;
|
extern const char *Hlp_USERS_Guests;
|
||||||
extern const char *Hlp_USERS_Students_shared_record_card;
|
extern const char *Hlp_USERS_Students_shared_record_card;
|
||||||
extern const char *Hlp_USERS_Teachers_shared_record_card;
|
extern const char *Hlp_USERS_Teachers_shared_record_card;
|
||||||
|
@ -2149,7 +2149,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView,
|
||||||
|
|
||||||
NULL, // Rec_SHA_RECORD_LIST
|
NULL, // Rec_SHA_RECORD_LIST
|
||||||
NULL, // Rec_SHA_RECORD_PRINT
|
NULL, // Rec_SHA_RECORD_PRINT
|
||||||
Hlp_SOCIAL_Profiles_view_public_profile, // Rec_SHA_RECORD_PUBLIC
|
Hlp_START_Profiles_view_public_profile, // Rec_SHA_RECORD_PUBLIC
|
||||||
};
|
};
|
||||||
const char *Rec_RecordListHelp[Rol_NUM_ROLES] =
|
const char *Rec_RecordListHelp[Rol_NUM_ROLES] =
|
||||||
{
|
{
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
#include "swad_database.h"
|
#include "swad_database.h"
|
||||||
#include "swad_global.h"
|
#include "swad_global.h"
|
||||||
#include "swad_parameter.h"
|
#include "swad_parameter.h"
|
||||||
#include "swad_social.h"
|
#include "swad_timeline.h"
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/**************************** Internal constants *****************************/
|
/**************************** Internal constants *****************************/
|
||||||
|
@ -223,7 +223,7 @@ static void Ses_RemoveSessionFromDB (void)
|
||||||
|
|
||||||
/***** Clear old unused social timelines in database *****/
|
/***** Clear old unused social timelines in database *****/
|
||||||
// This is necessary to prevent the table growing and growing
|
// This is necessary to prevent the table growing and growing
|
||||||
Soc_ClearOldTimelinesDB ();
|
TL_ClearOldTimelinesDB ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
192
swad_social.h
192
swad_social.h
|
@ -1,192 +0,0 @@
|
||||||
// swad_social.c: social networking (timeline)
|
|
||||||
|
|
||||||
#ifndef _SWAD_SOC
|
|
||||||
#define _SWAD_SOC
|
|
||||||
/*
|
|
||||||
SWAD (Shared Workspace At a Distance in Spanish),
|
|
||||||
is a web platform developed at the University of Granada (Spain),
|
|
||||||
and used to support university teaching.
|
|
||||||
|
|
||||||
This file is part of SWAD core.
|
|
||||||
Copyright (C) 1999-2019 Antonio Cañas Vargas
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU Affero General Public License as
|
|
||||||
published by the Free Software Foundation, either version 3 of the
|
|
||||||
License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU Affero General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Affero General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
/*****************************************************************************/
|
|
||||||
/********************************** Headers **********************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/****************************** Public constants *****************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
#define Soc_TIMELINE_SECTION_ID "timeline"
|
|
||||||
|
|
||||||
// Number of recent publishings got and shown the first time, before refreshing
|
|
||||||
#define Soc_MAX_NEW_PUBS_TO_GET_AND_SHOW 10000 // Unlimited
|
|
||||||
#define Soc_MAX_REC_PUBS_TO_GET_AND_SHOW 20 // Recent publishings to show (first time)
|
|
||||||
#define Soc_MAX_OLD_PUBS_TO_GET_AND_SHOW 20 // Old publishings are retrieved in packs of this size
|
|
||||||
// This constant is also used in JavaScript function readOldTimelineData
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/******************************** Public types *******************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
#define Soc_NUM_WHICH_USRS 3
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
Soc_USRS_UNKNOWN = 0,
|
|
||||||
Soc_USRS_FOLLOWED = 1,
|
|
||||||
Soc_USRS_ALL = 2,
|
|
||||||
} Soc_WhichUsrs_t; // Which users I want to see: only users I follow or all users
|
|
||||||
#define Soc_DEFAULT_WHICH_USRS Soc_USRS_FOLLOWED
|
|
||||||
|
|
||||||
#define Soc_NUM_PUB_TYPES 4
|
|
||||||
// If the numbers assigned to each event type change,
|
|
||||||
// it is necessary to change old numbers to new ones in database table social_notes
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
Soc_PUB_UNKNOWN = 0,
|
|
||||||
Soc_PUB_ORIGINAL_NOTE = 1,
|
|
||||||
Soc_PUB_SHARED_NOTE = 2,
|
|
||||||
Soc_PUB_COMMENT_TO_NOTE = 3,
|
|
||||||
} Soc_PubType_t;
|
|
||||||
|
|
||||||
#define Soc_NUM_NOTE_TYPES 13
|
|
||||||
// If the numbers assigned to each event type change,
|
|
||||||
// it is necessary to change old numbers to new ones in database table social_notes
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
Soc_NOTE_UNKNOWN = 0,
|
|
||||||
|
|
||||||
/* Institution tab */
|
|
||||||
Soc_NOTE_INS_DOC_PUB_FILE = 1,
|
|
||||||
Soc_NOTE_INS_SHA_PUB_FILE = 2,
|
|
||||||
|
|
||||||
/* Centre tab */
|
|
||||||
Soc_NOTE_CTR_DOC_PUB_FILE = 3,
|
|
||||||
Soc_NOTE_CTR_SHA_PUB_FILE = 4,
|
|
||||||
|
|
||||||
/* Degree tab */
|
|
||||||
Soc_NOTE_DEG_DOC_PUB_FILE = 5,
|
|
||||||
Soc_NOTE_DEG_SHA_PUB_FILE = 6,
|
|
||||||
|
|
||||||
/* Course tab */
|
|
||||||
Soc_NOTE_CRS_DOC_PUB_FILE = 7,
|
|
||||||
Soc_NOTE_CRS_SHA_PUB_FILE = 8,
|
|
||||||
|
|
||||||
/* Assessment tab */
|
|
||||||
Soc_NOTE_EXAM_ANNOUNCEMENT = 9,
|
|
||||||
|
|
||||||
/* Users tab */
|
|
||||||
|
|
||||||
/* Social tab */
|
|
||||||
Soc_NOTE_SOCIAL_POST = 10,
|
|
||||||
Soc_NOTE_FORUM_POST = 11,
|
|
||||||
|
|
||||||
/* Messages tab */
|
|
||||||
Soc_NOTE_NOTICE = 12,
|
|
||||||
|
|
||||||
/* Statistics tab */
|
|
||||||
|
|
||||||
/* Profile tab */
|
|
||||||
|
|
||||||
} Soc_NoteType_t;
|
|
||||||
|
|
||||||
#define Soc_NUM_TOP_MESSAGES (1 + 6)
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
Soc_TOP_MESSAGE_NONE = 0,
|
|
||||||
Soc_TOP_MESSAGE_COMMENTED = 1,
|
|
||||||
Soc_TOP_MESSAGE_FAVED = 2,
|
|
||||||
Soc_TOP_MESSAGE_UNFAVED = 3,
|
|
||||||
Soc_TOP_MESSAGE_SHARED = 4,
|
|
||||||
Soc_TOP_MESSAGE_UNSHARED = 5,
|
|
||||||
Soc_TOP_MESSAGE_MENTIONED = 6,
|
|
||||||
} Soc_TopMessage_t;
|
|
||||||
|
|
||||||
struct SocialPublication
|
|
||||||
{
|
|
||||||
long PubCod;
|
|
||||||
long NotCod;
|
|
||||||
long PublisherCod; // Sharer or writer of a comment
|
|
||||||
Soc_PubType_t PubType;
|
|
||||||
time_t DateTimeUTC;
|
|
||||||
Soc_TopMessage_t TopMessage; // Used to show feedback on the action made
|
|
||||||
};
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/****************************** Public prototypes ****************************/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
void Soc_ShowTimelineGbl1 (void);
|
|
||||||
void Soc_ShowTimelineGbl2 (void);
|
|
||||||
void Soc_ShowTimelineUsr (void);
|
|
||||||
|
|
||||||
void Soc_RefreshNewTimelineGbl (void);
|
|
||||||
|
|
||||||
void Soc_RefreshOldTimelineGbl (void);
|
|
||||||
void Soc_RefreshOldTimelineUsr (void);
|
|
||||||
|
|
||||||
void Soc_MarkMyNotifAsSeen (void);
|
|
||||||
|
|
||||||
void Soc_StoreAndPublishSocialNote (Soc_NoteType_t NoteType,long Cod,struct SocialPublication *SocPub);
|
|
||||||
void Soc_MarkSocialNoteAsUnavailableUsingNotCod (long NotCod);
|
|
||||||
void Soc_MarkSocialNoteAsUnavailableUsingNoteTypeAndCod (Soc_NoteType_t NoteType,long Cod);
|
|
||||||
void Soc_MarkSocialNoteOneFileAsUnavailable (const char *Path);
|
|
||||||
void Soc_MarkSocialNotesChildrenOfFolderAsUnavailable (const char *Path);
|
|
||||||
|
|
||||||
void Soc_ReceiveSocialPostGbl (void);
|
|
||||||
void Soc_ReceiveSocialPostUsr (void);
|
|
||||||
|
|
||||||
void Soc_PutHiddenParamPubCod (long PubCod);
|
|
||||||
|
|
||||||
void Soc_ReceiveCommentGbl (void);
|
|
||||||
void Soc_ReceiveCommentUsr (void);
|
|
||||||
|
|
||||||
void Soc_ShareSocialNoteGbl (void);
|
|
||||||
void Soc_ShareSocialNoteUsr (void);
|
|
||||||
void Soc_FavSocialNoteGbl (void);
|
|
||||||
void Soc_FavSocialNoteUsr (void);
|
|
||||||
void Soc_FavSocialCommentGbl (void);
|
|
||||||
void Soc_FavSocialCommentUsr (void);
|
|
||||||
|
|
||||||
void Soc_UnshareSocialNoteGbl (void);
|
|
||||||
void Soc_UnshareSocialNoteUsr (void);
|
|
||||||
void Soc_UnfavSocialNoteGbl (void);
|
|
||||||
void Soc_UnfavSocialNoteUsr (void);
|
|
||||||
void Soc_UnfavSocialCommentGbl (void);
|
|
||||||
void Soc_UnfavSocialCommentUsr (void);
|
|
||||||
|
|
||||||
void Soc_RequestRemSocialNoteGbl (void);
|
|
||||||
void Soc_RequestRemSocialNoteUsr (void);
|
|
||||||
void Soc_RemoveSocialNoteGbl (void);
|
|
||||||
void Soc_RemoveSocialNoteUsr (void);
|
|
||||||
|
|
||||||
void Soc_RequestRemSocialComGbl (void);
|
|
||||||
void Soc_RequestRemSocialComUsr (void);
|
|
||||||
void Soc_RemoveSocialComGbl (void);
|
|
||||||
void Soc_RemoveSocialComUsr (void);
|
|
||||||
|
|
||||||
void Soc_RemoveUsrSocialContent (long UsrCod);
|
|
||||||
|
|
||||||
void Soc_ClearOldTimelinesDB (void);
|
|
||||||
|
|
||||||
void Soc_GetNotifSocialPublication (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
|
||||||
char **ContentStr,
|
|
||||||
long PubCod,bool GetContent);
|
|
||||||
|
|
||||||
unsigned long Soc_GetNumPubsUsr (long UsrCod);
|
|
||||||
|
|
||||||
#endif
|
|
1141
swad_text.c
1141
swad_text.c
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,192 @@
|
||||||
|
// swad_timeline.c: social timeline
|
||||||
|
|
||||||
|
#ifndef _SWAD_TL
|
||||||
|
#define _SWAD_TL
|
||||||
|
/*
|
||||||
|
SWAD (Shared Workspace At a Distance in Spanish),
|
||||||
|
is a web platform developed at the University of Granada (Spain),
|
||||||
|
and used to support university teaching.
|
||||||
|
|
||||||
|
This file is part of SWAD core.
|
||||||
|
Copyright (C) 1999-2019 Antonio Cañas Vargas
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU Affero General Public License as
|
||||||
|
published by the Free Software Foundation, either version 3 of the
|
||||||
|
License, or (at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU Affero General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Affero General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********************************** Headers **********************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****************************** Public constants *****************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define TL_TIMELINE_SECTION_ID "timeline"
|
||||||
|
|
||||||
|
// Number of recent publishings got and shown the first time, before refreshing
|
||||||
|
#define TL_MAX_NEW_PUBS_TO_GET_AND_SHOW 10000 // Unlimited
|
||||||
|
#define TL_MAX_REC_PUBS_TO_GET_AND_SHOW 10 // Recent publishings to show (first time)
|
||||||
|
#define TL_MAX_OLD_PUBS_TO_GET_AND_SHOW 10 // Old publishings are retrieved in packs of this size
|
||||||
|
// This constant is also used in JavaScript function readOldTimelineData
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/******************************** Public types *******************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define TL_NUM_WHICH_USRS 3
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
TL_USRS_UNKNOWN = 0,
|
||||||
|
TL_USRS_FOLLOWED = 1,
|
||||||
|
TL_USRS_ALL = 2,
|
||||||
|
} TL_WhichUsrs_t; // Which users I want to see: only users I follow or all users
|
||||||
|
#define TL_DEFAULT_WHICH_USRS TL_USRS_FOLLOWED
|
||||||
|
|
||||||
|
#define TL_NUM_PUB_TYPES 4
|
||||||
|
// If the numbers assigned to each event type change,
|
||||||
|
// it is necessary to change old numbers to new ones in database table social_notes
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
TL_PUB_UNKNOWN = 0,
|
||||||
|
TL_PUB_ORIGINAL_NOTE = 1,
|
||||||
|
TL_PUB_SHARED_NOTE = 2,
|
||||||
|
TL_PUB_COMMENT_TO_NOTE = 3,
|
||||||
|
} TL_PubType_t;
|
||||||
|
|
||||||
|
#define TL_NUM_NOTE_TYPES 13
|
||||||
|
// If the numbers assigned to each event type change,
|
||||||
|
// it is necessary to change old numbers to new ones in database table social_notes
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
TL_NOTE_UNKNOWN = 0,
|
||||||
|
|
||||||
|
/* Institution tab */
|
||||||
|
TL_NOTE_INS_DOC_PUB_FILE = 1,
|
||||||
|
TL_NOTE_INS_SHA_PUB_FILE = 2,
|
||||||
|
|
||||||
|
/* Centre tab */
|
||||||
|
TL_NOTE_CTR_DOC_PUB_FILE = 3,
|
||||||
|
TL_NOTE_CTR_SHA_PUB_FILE = 4,
|
||||||
|
|
||||||
|
/* Degree tab */
|
||||||
|
TL_NOTE_DEG_DOC_PUB_FILE = 5,
|
||||||
|
TL_NOTE_DEG_SHA_PUB_FILE = 6,
|
||||||
|
|
||||||
|
/* Course tab */
|
||||||
|
TL_NOTE_CRS_DOC_PUB_FILE = 7,
|
||||||
|
TL_NOTE_CRS_SHA_PUB_FILE = 8,
|
||||||
|
|
||||||
|
/* Assessment tab */
|
||||||
|
TL_NOTE_EXAM_ANNOUNCEMENT = 9,
|
||||||
|
|
||||||
|
/* Users tab */
|
||||||
|
|
||||||
|
/* Start tab */ // TODO: Move to the top
|
||||||
|
TL_NOTE_POST = 10,
|
||||||
|
TL_NOTE_FORUM_POST = 11,
|
||||||
|
|
||||||
|
/* Messages tab */
|
||||||
|
TL_NOTE_NOTICE = 12,
|
||||||
|
|
||||||
|
/* Statistics tab */
|
||||||
|
|
||||||
|
/* Profile tab */
|
||||||
|
|
||||||
|
} TL_NoteType_t;
|
||||||
|
|
||||||
|
#define TL_NUM_TOP_MESSAGES (1 + 6)
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
TL_TOP_MESSAGE_NONE = 0,
|
||||||
|
TL_TOP_MESSAGE_COMMENTED = 1,
|
||||||
|
TL_TOP_MESSAGE_FAVED = 2,
|
||||||
|
TL_TOP_MESSAGE_UNFAVED = 3,
|
||||||
|
TL_TOP_MESSAGE_SHARED = 4,
|
||||||
|
TL_TOP_MESSAGE_UNSHARED = 5,
|
||||||
|
TL_TOP_MESSAGE_MENTIONED = 6,
|
||||||
|
} TL_TopMessage_t;
|
||||||
|
|
||||||
|
struct TL_Publication
|
||||||
|
{
|
||||||
|
long PubCod;
|
||||||
|
long NotCod;
|
||||||
|
long PublisherCod; // Sharer or writer of a comment
|
||||||
|
TL_PubType_t PubType;
|
||||||
|
time_t DateTimeUTC;
|
||||||
|
TL_TopMessage_t TopMessage; // Used to show feedback on the action made
|
||||||
|
};
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/****************************** Public prototypes ****************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void TL_ShowTimelineGbl1 (void);
|
||||||
|
void TL_ShowTimelineGbl2 (void);
|
||||||
|
void TL_ShowTimelineUsr (void);
|
||||||
|
|
||||||
|
void TL_RefreshNewTimelineGbl (void);
|
||||||
|
|
||||||
|
void TL_RefreshOldTimelineGbl (void);
|
||||||
|
void TL_RefreshOldTimelineUsr (void);
|
||||||
|
|
||||||
|
void TL_MarkMyNotifAsSeen (void);
|
||||||
|
|
||||||
|
void TL_StoreAndPublishNote (TL_NoteType_t NoteType,long Cod,struct TL_Publication *SocPub);
|
||||||
|
void TL_MarkNoteAsUnavailableUsingNotCod (long NotCod);
|
||||||
|
void TL_MarkNoteAsUnavailableUsingNoteTypeAndCod (TL_NoteType_t NoteType,long Cod);
|
||||||
|
void TL_MarkNoteOneFileAsUnavailable (const char *Path);
|
||||||
|
void TL_MarkNotesChildrenOfFolderAsUnavailable (const char *Path);
|
||||||
|
|
||||||
|
void TL_ReceivePostGbl (void);
|
||||||
|
void TL_ReceivePostUsr (void);
|
||||||
|
|
||||||
|
void TL_PutHiddenParamPubCod (long PubCod);
|
||||||
|
|
||||||
|
void TL_ReceiveCommentGbl (void);
|
||||||
|
void TL_ReceiveCommentUsr (void);
|
||||||
|
|
||||||
|
void TL_ShareNoteGbl (void);
|
||||||
|
void TL_ShareNoteUsr (void);
|
||||||
|
void TL_FavNoteGbl (void);
|
||||||
|
void TL_FavNoteUsr (void);
|
||||||
|
void TL_FavCommentGbl (void);
|
||||||
|
void TL_FavCommentUsr (void);
|
||||||
|
|
||||||
|
void TL_UnshareNoteGbl (void);
|
||||||
|
void TL_UnshareNoteUsr (void);
|
||||||
|
void TL_UnfavNoteGbl (void);
|
||||||
|
void TL_UnfavNoteUsr (void);
|
||||||
|
void TL_UnfavCommentGbl (void);
|
||||||
|
void TL_UnfavCommentUsr (void);
|
||||||
|
|
||||||
|
void TL_RequestRemNoteGbl (void);
|
||||||
|
void TL_RequestRemNoteUsr (void);
|
||||||
|
void TL_RemoveNoteGbl (void);
|
||||||
|
void TL_RemoveNoteUsr (void);
|
||||||
|
|
||||||
|
void TL_RequestRemComGbl (void);
|
||||||
|
void TL_RequestRemComUsr (void);
|
||||||
|
void TL_RemoveComGbl (void);
|
||||||
|
void TL_RemoveComUsr (void);
|
||||||
|
|
||||||
|
void TL_RemoveUsrContent (long UsrCod);
|
||||||
|
|
||||||
|
void TL_ClearOldTimelinesDB (void);
|
||||||
|
|
||||||
|
void TL_GetNotifPublication (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1],
|
||||||
|
char **ContentStr,
|
||||||
|
long PubCod,bool GetContent);
|
||||||
|
|
||||||
|
unsigned long TL_GetNumPubsUsr (long UsrCod);
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue