mirror of https://github.com/acanas/swad-core.git
Version19.65
This commit is contained in:
parent
458529afcd
commit
a123470d0a
|
@ -663,7 +663,7 @@ function refreshNewTL () {
|
||||||
if (objXMLHttpReqNewTL) {
|
if (objXMLHttpReqNewTL) {
|
||||||
var RefreshParams = RefreshParamNxtActNewPub + '&' +
|
var RefreshParams = RefreshParamNxtActNewPub + '&' +
|
||||||
RefreshParamIdSes + '&' +
|
RefreshParamIdSes + '&' +
|
||||||
RefreshParamWhichUsrs;
|
RefreshParamWho;
|
||||||
|
|
||||||
objXMLHttpReqNewTL.onreadystatechange = readNewTimelineData; // onreadystatechange must be lowercase
|
objXMLHttpReqNewTL.onreadystatechange = readNewTimelineData; // onreadystatechange must be lowercase
|
||||||
objXMLHttpReqNewTL.open('POST',ActionAJAX,true);
|
objXMLHttpReqNewTL.open('POST',ActionAJAX,true);
|
||||||
|
@ -753,9 +753,9 @@ function refreshOldTimeline () {
|
||||||
if (RefreshParamUsr.length)
|
if (RefreshParamUsr.length)
|
||||||
RefreshParams += '&' + RefreshParamUsr;
|
RefreshParams += '&' + RefreshParamUsr;
|
||||||
}
|
}
|
||||||
if (typeof RefreshParamWhichUsrs !== 'undefined') {
|
if (typeof RefreshParamWho !== 'undefined') {
|
||||||
if (RefreshParamWhichUsrs.length)
|
if (RefreshParamWho.length)
|
||||||
RefreshParams += '&' + RefreshParamWhichUsrs;
|
RefreshParams += '&' + RefreshParamWho;
|
||||||
}
|
}
|
||||||
|
|
||||||
objXMLHttpReqOldTL.onreadystatechange = readOldTimelineData; // onreadystatechange must be lowercase
|
objXMLHttpReqOldTL.onreadystatechange = readOldTimelineData; // onreadystatechange must be lowercase
|
|
@ -487,15 +487,22 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
||||||
En OpenSWAD:
|
En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 19.64 (2019-11-11)"
|
#define Log_PLATFORM_VERSION "SWAD 19.65 (2019-11-12)"
|
||||||
#define CSS_FILE "swad19.47.css"
|
#define CSS_FILE "swad19.47.css"
|
||||||
#define JS_FILE "swad19.39.js"
|
#define JS_FILE "swad19.65.js"
|
||||||
/*
|
/*
|
||||||
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
|
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
|
||||||
// TODO: Impedir la creación y edición de proyectos si no son editables.
|
// TODO: Impedir la creación y edición de proyectos si no son editables.
|
||||||
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
|
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
|
||||||
// TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area
|
// TODO: Code refactoring in HTML h1, title, meta, video, p, iframe, input hidden, area
|
||||||
|
|
||||||
|
Version 19.65: Nov 12, 2019 Changes in selection of users in timeline. (246451 lines)
|
||||||
|
4 changes necessary in database:
|
||||||
|
UPDATE usr_last SET TimelineUsrs=13 WHERE TimelineUsrs=1;
|
||||||
|
UPDATE usr_last SET TimelineUsrs=14 WHERE TimelineUsrs=2;
|
||||||
|
UPDATE usr_last SET TimelineUsrs=3 WHERE TimelineUsrs=13;
|
||||||
|
UPDATE usr_last SET TimelineUsrs=4 WHERE TimelineUsrs=14;
|
||||||
|
|
||||||
Version 19.64: Nov 11, 2019 Changes in selection of me / all users. (246459 lines)
|
Version 19.64: Nov 11, 2019 Changes in selection of me / all users. (246459 lines)
|
||||||
Version 19.63.2: Nov 11, 2019 Fixed bug showing dates. (246386 lines)
|
Version 19.63.2: Nov 11, 2019 Fixed bug showing dates. (246386 lines)
|
||||||
Version 19.63.1: Nov 11, 2019 Fixed bug in lists, reported by Javier Fernández Baldomero. (246381 lines)
|
Version 19.63.1: Nov 11, 2019 Fixed bug in lists, reported by Javier Fernández Baldomero. (246381 lines)
|
||||||
|
|
|
@ -304,7 +304,7 @@ void Gbl_InitializeGlobals (void)
|
||||||
|
|
||||||
/* Projects */
|
/* Projects */
|
||||||
Gbl.Prjs.Config.Editable = Prj_EDITABLE_DEFAULT;
|
Gbl.Prjs.Config.Editable = Prj_EDITABLE_DEFAULT;
|
||||||
Gbl.Prjs.Filter.My_All = Prj_FILTER_WHOSE_PROJECTS_DEFAULT;
|
Gbl.Prjs.Filter.Who = Prj_FILTER_WHO_DEFAULT;
|
||||||
Gbl.Prjs.Filter.Assign = Prj_FILTER_ASSIGNED_DEFAULT |
|
Gbl.Prjs.Filter.Assign = Prj_FILTER_ASSIGNED_DEFAULT |
|
||||||
Prj_FILTER_NONASSIG_DEFAULT;
|
Prj_FILTER_NONASSIG_DEFAULT;
|
||||||
Gbl.Prjs.Filter.Hidden = Prj_FILTER_HIDDEN_DEFAULT |
|
Gbl.Prjs.Filter.Hidden = Prj_FILTER_HIDDEN_DEFAULT |
|
||||||
|
@ -370,7 +370,7 @@ void Gbl_InitializeGlobals (void)
|
||||||
Gbl.Games.ListQuestions = NULL;
|
Gbl.Games.ListQuestions = NULL;
|
||||||
|
|
||||||
/* Public activity */
|
/* Public activity */
|
||||||
Gbl.Timeline.WhichUsrs = TL_DEFAULT_WHICH_USRS;
|
Gbl.Timeline.Who = TL_DEFAULT_WHO;
|
||||||
|
|
||||||
/* Forums */
|
/* Forums */
|
||||||
Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET;
|
Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET;
|
||||||
|
|
|
@ -579,7 +579,7 @@ struct Globals
|
||||||
} AttEvents;
|
} AttEvents;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
TL_WhichUsrs_t WhichUsrs;
|
Usr_Who_t Who;
|
||||||
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...
|
||||||
} Timeline;
|
} Timeline;
|
||||||
|
|
|
@ -783,10 +783,10 @@ static void Lay_WriteScriptParamsAJAX (void)
|
||||||
// Refresh parameters
|
// Refresh parameters
|
||||||
HTM_TxtF ("var RefreshParamNxtActNewPub = \"act=%ld\";\n"
|
HTM_TxtF ("var RefreshParamNxtActNewPub = \"act=%ld\";\n"
|
||||||
"var RefreshParamNxtActOldPub = \"act=%ld\";\n"
|
"var RefreshParamNxtActOldPub = \"act=%ld\";\n"
|
||||||
"var RefreshParamWhichUsrs = \"WhichUsrs=%u\";\n",
|
"var RefreshParamWho = \"Who=%u\";\n",
|
||||||
Act_GetActCod (ActRefNewSocPubGbl),
|
Act_GetActCod (ActRefNewSocPubGbl),
|
||||||
Act_GetActCod (ActRefOldSocPubGbl),
|
Act_GetActCod (ActRefOldSocPubGbl),
|
||||||
(unsigned) Gbl.Timeline.WhichUsrs);
|
(unsigned) Gbl.Timeline.Who);
|
||||||
break;
|
break;
|
||||||
/* Parameters related with user timeline refreshing */
|
/* Parameters related with user timeline refreshing */
|
||||||
case ActSeeOthPubPrf:
|
case ActSeeOthPubPrf:
|
||||||
|
|
128
swad_project.c
128
swad_project.c
|
@ -58,7 +58,6 @@ extern struct Globals Gbl;
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
/***** Parameters used to filter listing of projects *****/
|
/***** Parameters used to filter listing of projects *****/
|
||||||
#define Prj_PARAM_WHO_NAME "Who"
|
|
||||||
#define Prj_PARAM_PRE_NON_NAME "PreNon"
|
#define Prj_PARAM_PRE_NON_NAME "PreNon"
|
||||||
#define Prj_PARAM_HID_VIS_NAME "HidVis"
|
#define Prj_PARAM_HID_VIS_NAME "HidVis"
|
||||||
#define Prj_PARAM_FAULTIN_NAME "Faulti"
|
#define Prj_PARAM_FAULTIN_NAME "Faulti"
|
||||||
|
@ -134,17 +133,16 @@ static void Prj_ShowFormToFilterByWarning (void);
|
||||||
static void Prj_ShowFormToFilterByDpt (void);
|
static void Prj_ShowFormToFilterByDpt (void);
|
||||||
|
|
||||||
static void Prj_PutCurrentParams (void);
|
static void Prj_PutCurrentParams (void);
|
||||||
static void Prj_PutHiddenParamWho (Usr_Who_t Who);
|
|
||||||
static void Prj_PutHiddenParamAssign (unsigned Assign);
|
static void Prj_PutHiddenParamAssign (unsigned Assign);
|
||||||
static void Prj_PutHiddenParamHidden (unsigned Hidden);
|
static void Prj_PutHiddenParamHidden (unsigned Hidden);
|
||||||
static void Prj_PutHiddenParamFaulti (unsigned Faulti);
|
static void Prj_PutHiddenParamFaulti (unsigned Faulti);
|
||||||
static void Prj_PutHiddenParamDptCod (long DptCod);
|
static void Prj_PutHiddenParamDptCod (long DptCod);
|
||||||
static void Prj_GetHiddenParamMy_All (void);
|
|
||||||
static void Prj_GetHiddenParamPreNon (void);
|
static void Prj_GetHiddenParamPreNon (void);
|
||||||
static void Prj_GetHiddenParamHidVis (void);
|
static void Prj_GetHiddenParamHidVis (void);
|
||||||
static void Prj_GetHiddenParamFaulti (void);
|
static void Prj_GetHiddenParamFaulti (void);
|
||||||
static void Prj_GetHiddenParamDptCod (void);
|
static void Prj_GetHiddenParamDptCod (void);
|
||||||
static void Prj_GetParams (void);
|
static void Prj_GetParams (void);
|
||||||
|
static void Prj_GetParamWho (void);
|
||||||
|
|
||||||
static void Prj_ShowProjectsHead (Prj_ProjectView_t ProjectView);
|
static void Prj_ShowProjectsHead (Prj_ProjectView_t ProjectView);
|
||||||
static void Prj_ShowTableAllProjectsHead (void);
|
static void Prj_ShowTableAllProjectsHead (void);
|
||||||
|
@ -407,74 +405,38 @@ static void Prj_ShowProjectsInCurrentPage (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*** Show form to choice whether to show only my projects or all projects ****/
|
/*** Show form to choice whether to show only my projects or all projects ****/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*
|
|
||||||
static void Prj_ShowFormToFilterByMy_All (void)
|
|
||||||
{
|
|
||||||
extern const char *Txt_PROJECT_MY_ALL_PROJECTS[Prj_NUM_WHOSE_PROJECTS];
|
|
||||||
struct Prj_Filter Filter;
|
|
||||||
Prj_WhoseProjects_t My_All;
|
|
||||||
static const char *WhoseProjectsIcon[Prj_NUM_WHOSE_PROJECTS] =
|
|
||||||
{
|
|
||||||
"mysitemap.png", // Prj_MY__PROJECTS
|
|
||||||
"sitemap.svg", // Prj_ALL_PROJECTS
|
|
||||||
};
|
|
||||||
|
|
||||||
Set_StartOneSettingSelector ();
|
|
||||||
for (My_All = (Prj_WhoseProjects_t) 0;
|
|
||||||
My_All <= (Prj_WhoseProjects_t) (Prj_NUM_WHOSE_PROJECTS - 1);
|
|
||||||
My_All++)
|
|
||||||
{
|
|
||||||
HTM_DIV_Begin ("class=\"%s\"",
|
|
||||||
(Gbl.Prjs.Filter.My_All == My_All) ? "PREF_ON" :
|
|
||||||
"PREF_OFF");
|
|
||||||
Frm_StartForm (ActSeePrj);
|
|
||||||
Filter.My_All = My_All;
|
|
||||||
Filter.Assign = Gbl.Prjs.Filter.Assign;
|
|
||||||
Filter.Hidden = Gbl.Prjs.Filter.Hidden;
|
|
||||||
Filter.Faulti = Gbl.Prjs.Filter.Faulti;
|
|
||||||
Filter.DptCod = Gbl.Prjs.Filter.DptCod;
|
|
||||||
Prj_PutParams (&Filter,
|
|
||||||
Gbl.Prjs.SelectedOrder,
|
|
||||||
Gbl.Prjs.CurrentPage,
|
|
||||||
-1L);
|
|
||||||
Ico_PutSettingIconLink (WhoseProjectsIcon[My_All],
|
|
||||||
Txt_PROJECT_MY_ALL_PROJECTS[My_All]);
|
|
||||||
Frm_EndForm ();
|
|
||||||
HTM_DIV_End ();
|
|
||||||
}
|
|
||||||
Set_EndOneSettingSelector ();
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
static void Prj_ShowFormToFilterByMy_All (void)
|
static void Prj_ShowFormToFilterByMy_All (void)
|
||||||
{
|
{
|
||||||
struct Prj_Filter Filter;
|
struct Prj_Filter Filter;
|
||||||
Usr_Who_t Who;
|
Usr_Who_t Who;
|
||||||
|
unsigned Mask = 1 << Usr_WHO_ME |
|
||||||
|
1 << Usr_WHO_SELECTED |
|
||||||
|
1 << Usr_WHO_ALL;
|
||||||
|
|
||||||
Set_StartOneSettingSelector ();
|
Set_StartOneSettingSelector ();
|
||||||
for (Who = (Usr_Who_t) 0;
|
for (Who = (Usr_Who_t) 1;
|
||||||
Who <= (Usr_Who_t) (Usr_NUM_WHO - 1);
|
Who <= (Usr_Who_t) (Usr_NUM_WHO - 1);
|
||||||
Who++)
|
Who++)
|
||||||
{
|
if (Mask & (1 << Who))
|
||||||
HTM_DIV_Begin ("class=\"%s\"",
|
{
|
||||||
(Gbl.Prjs.Filter.Who == Who) ? "PREF_ON" :
|
HTM_DIV_Begin ("class=\"%s\"",
|
||||||
"PREF_OFF");
|
(Gbl.Prjs.Filter.Who == Who) ? "PREF_ON" :
|
||||||
Frm_StartForm (ActSeePrj);
|
"PREF_OFF");
|
||||||
Filter.Who = Who;
|
Frm_StartForm (ActSeePrj);
|
||||||
Filter.Assign = Gbl.Prjs.Filter.Assign;
|
Filter.Who = Who;
|
||||||
Filter.Hidden = Gbl.Prjs.Filter.Hidden;
|
Filter.Assign = Gbl.Prjs.Filter.Assign;
|
||||||
Filter.Faulti = Gbl.Prjs.Filter.Faulti;
|
Filter.Hidden = Gbl.Prjs.Filter.Hidden;
|
||||||
Filter.DptCod = Gbl.Prjs.Filter.DptCod;
|
Filter.Faulti = Gbl.Prjs.Filter.Faulti;
|
||||||
Prj_PutParams (&Filter,
|
Filter.DptCod = Gbl.Prjs.Filter.DptCod;
|
||||||
Gbl.Prjs.SelectedOrder,
|
Prj_PutParams (&Filter,
|
||||||
Gbl.Prjs.CurrentPage,
|
Gbl.Prjs.SelectedOrder,
|
||||||
-1L);
|
Gbl.Prjs.CurrentPage,
|
||||||
|
-1L);
|
||||||
Usr_PutWhoIcon (Who);
|
Usr_PutWhoIcon (Who);
|
||||||
|
Frm_EndForm ();
|
||||||
Frm_EndForm ();
|
HTM_DIV_End ();
|
||||||
HTM_DIV_End ();
|
}
|
||||||
}
|
|
||||||
Set_EndOneSettingSelector ();
|
Set_EndOneSettingSelector ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -653,8 +615,8 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
||||||
long PrjCod)
|
long PrjCod)
|
||||||
{
|
{
|
||||||
/***** Put filter parameters (which projects to show) *****/
|
/***** Put filter parameters (which projects to show) *****/
|
||||||
if (Filter->Who != Prj_FILTER_WHOSE_PROJECTS_DEFAULT)
|
if (Filter->Who != Prj_FILTER_WHO_DEFAULT)
|
||||||
Prj_PutHiddenParamWho (Filter->Who);
|
Usr_PutHiddenParamWho (Filter->Who);
|
||||||
|
|
||||||
if (Filter->Assign != ((unsigned) Prj_FILTER_ASSIGNED_DEFAULT |
|
if (Filter->Assign != ((unsigned) Prj_FILTER_ASSIGNED_DEFAULT |
|
||||||
(unsigned) Prj_FILTER_NONASSIG_DEFAULT))
|
(unsigned) Prj_FILTER_NONASSIG_DEFAULT))
|
||||||
|
@ -692,11 +654,6 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
||||||
/*********************** Put hidden params for projects **********************/
|
/*********************** Put hidden params for projects **********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Prj_PutHiddenParamWho (Usr_Who_t Who)
|
|
||||||
{
|
|
||||||
Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_WHO_NAME,(unsigned) Who);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Prj_PutHiddenParamAssign (unsigned Assign)
|
static void Prj_PutHiddenParamAssign (unsigned Assign)
|
||||||
{
|
{
|
||||||
Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_PRE_NON_NAME,Assign);
|
Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_PRE_NON_NAME,Assign);
|
||||||
|
@ -721,14 +678,6 @@ static void Prj_PutHiddenParamDptCod (long DptCod)
|
||||||
/*********************** Get hidden params for projects **********************/
|
/*********************** Get hidden params for projects **********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Prj_GetHiddenParamMy_All (void)
|
|
||||||
{
|
|
||||||
Gbl.Prjs.Filter.Who = (Usr_Who_t) Par_GetParToUnsignedLong (Prj_PARAM_WHO_NAME,
|
|
||||||
0,
|
|
||||||
Usr_NUM_WHO - 1,
|
|
||||||
Prj_FILTER_WHOSE_PROJECTS_DEFAULT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void Prj_GetHiddenParamPreNon (void)
|
static void Prj_GetHiddenParamPreNon (void)
|
||||||
{
|
{
|
||||||
Gbl.Prjs.Filter.Assign = (unsigned) Par_GetParToUnsignedLong (Prj_PARAM_PRE_NON_NAME,
|
Gbl.Prjs.Filter.Assign = (unsigned) Par_GetParToUnsignedLong (Prj_PARAM_PRE_NON_NAME,
|
||||||
|
@ -784,7 +733,7 @@ static void Prj_GetHiddenParamDptCod (void)
|
||||||
static void Prj_GetParams (void)
|
static void Prj_GetParams (void)
|
||||||
{
|
{
|
||||||
/***** Get filter (which projects to show) *****/
|
/***** Get filter (which projects to show) *****/
|
||||||
Prj_GetHiddenParamMy_All ();
|
Prj_GetParamWho ();
|
||||||
Prj_GetHiddenParamPreNon ();
|
Prj_GetHiddenParamPreNon ();
|
||||||
Prj_GetHiddenParamHidVis ();
|
Prj_GetHiddenParamHidVis ();
|
||||||
Prj_GetHiddenParamFaulti ();
|
Prj_GetHiddenParamFaulti ();
|
||||||
|
@ -795,6 +744,24 @@ static void Prj_GetParams (void)
|
||||||
Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS);
|
Gbl.Prjs.CurrentPage = Pag_GetParamPagNum (Pag_PROJECTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/************* Get parameter with whose users' projects to view **************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Prj_GetParamWho (void)
|
||||||
|
{
|
||||||
|
/***** Get which users I want to see *****/
|
||||||
|
Gbl.Prjs.Filter.Who = Usr_GetHiddenParamWho ();
|
||||||
|
|
||||||
|
/***** If parameter Who is not present, get it from database *****/
|
||||||
|
// if (Gbl.Prjs.Filter.Who == Usr_WHO_UNKNOWN)
|
||||||
|
// Gbl.Prjs.Filter.Who = Prj_GetWhoFromDB ();
|
||||||
|
|
||||||
|
/***** If parameter Who is unknown, set it to default *****/
|
||||||
|
if (Gbl.Prjs.Filter.Who == Usr_WHO_UNKNOWN)
|
||||||
|
Gbl.Prjs.Filter.Who = Prj_FILTER_WHO_DEFAULT;
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************* Write header with fields of a project *******************/
|
/******************* Write header with fields of a project *******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -2745,7 +2712,7 @@ void Prj_GetListProjects (void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Usr_WHO_SOME:
|
case Usr_WHO_SELECTED:
|
||||||
case Usr_WHO_ALL:
|
case Usr_WHO_ALL:
|
||||||
switch (Gbl.Prjs.SelectedOrder)
|
switch (Gbl.Prjs.SelectedOrder)
|
||||||
{
|
{
|
||||||
|
@ -2776,6 +2743,9 @@ void Prj_GetListProjects (void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
Lay_ShowErrorAndExit ("Wrong parameter which users.");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Free allocated memory for subqueries */
|
/* Free allocated memory for subqueries */
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
#define Prj_EDITABLE_DEFAULT true
|
#define Prj_EDITABLE_DEFAULT true
|
||||||
|
|
||||||
/***** Filters to list projects *****/
|
/***** Filters to list projects *****/
|
||||||
/* My projects / selected users' projects / all projects */
|
/* Whose projects */
|
||||||
#define Prj_FILTER_WHOSE_PROJECTS_DEFAULT Usr_WHO_ME
|
#define Prj_FILTER_WHO_DEFAULT Usr_WHO_ME
|
||||||
|
|
||||||
/* Assigned projects / non-assigned projects */
|
/* Assigned projects / non-assigned projects */
|
||||||
#define Prj_NUM_ASSIGNED_NONASSIG 2
|
#define Prj_NUM_ASSIGNED_NONASSIG 2
|
||||||
|
@ -89,8 +89,7 @@ typedef enum
|
||||||
/* Struct with all filters */
|
/* Struct with all filters */
|
||||||
struct Prj_Filter
|
struct Prj_Filter
|
||||||
{
|
{
|
||||||
// Prj_WhoseProjects_t My_All; // Show my / all projects
|
Usr_Who_t Who; // Show my / selected users' / all projects
|
||||||
Usr_Who_t Who; // Show my / some / all projects
|
|
||||||
unsigned Assign; // Show assigned / non assigned projects
|
unsigned Assign; // Show assigned / non assigned projects
|
||||||
unsigned Hidden; // Show hidden / visible projects
|
unsigned Hidden; // Show hidden / visible projects
|
||||||
unsigned Faulti; // Show faulty / faultless projects
|
unsigned Faulti; // Show faulty / faultless projects
|
||||||
|
|
185
swad_text.c
185
swad_text.c
|
@ -30944,52 +30944,7 @@ const char *Txt_PROJECT_FAULTY_FAULTLESS_PROJECTS[Prj_NUM_FAULTINESS] =
|
||||||
"Projetos sem falhas"
|
"Projetos sem falhas"
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
/*
|
|
||||||
const char *Txt_PROJECT_MY_ALL_PROJECTS[Prj_NUM_WHOSE_PROJECTS] =
|
|
||||||
{
|
|
||||||
// Prj_MY__PROJECTS
|
|
||||||
#if L==1 // ca
|
|
||||||
"Només els meus projectes"
|
|
||||||
#elif L==2 // de
|
|
||||||
"Nur meine Projekte"
|
|
||||||
#elif L==3 // en
|
|
||||||
"Only my projects"
|
|
||||||
#elif L==4 // es
|
|
||||||
"Solo mis proyectos"
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Uniquement mes projets"
|
|
||||||
#elif L==6 // gn
|
|
||||||
"Solo mis proyectos" // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"Solo i miei progetti"
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Tylko moje projekty"
|
|
||||||
#elif L==9 // pt
|
|
||||||
"Apenas os meus projetos"
|
|
||||||
#endif
|
|
||||||
,
|
|
||||||
// Prj_ALL_PROJECTS
|
|
||||||
#if L==1 // ca
|
|
||||||
"Tots els projectes"
|
|
||||||
#elif L==2 // de
|
|
||||||
"Alle Projekte"
|
|
||||||
#elif L==3 // en
|
|
||||||
"All projects"
|
|
||||||
#elif L==4 // es
|
|
||||||
"Todos los proyectos"
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Tous les projets"
|
|
||||||
#elif L==6 // gn
|
|
||||||
"Todos los proyectos" // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"Tutti i progetti"
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Wszystkie projekty"
|
|
||||||
#elif L==9 // pt
|
|
||||||
"Todos os projetos"
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
*/
|
|
||||||
const char *Txt_PROJECT_ASSIGNED_NONASSIGNED_PLURAL[Prj_NUM_ASSIGNED_NONASSIG] =
|
const char *Txt_PROJECT_ASSIGNED_NONASSIGNED_PLURAL[Prj_NUM_ASSIGNED_NONASSIG] =
|
||||||
{
|
{
|
||||||
// Prj_ASSIGNED
|
// Prj_ASSIGNED
|
||||||
|
@ -49784,54 +49739,6 @@ const char *Txt_TIMELINE_posts =
|
||||||
"publicações";
|
"publicações";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const char *Txt_TIMELINE_WHICH_USERS[TL_NUM_WHICH_USRS] =
|
|
||||||
{
|
|
||||||
// TL_USRS_UNKNOWN
|
|
||||||
NULL
|
|
||||||
,
|
|
||||||
// TL_USRS_FOLLOWED
|
|
||||||
#if L==1 // ca
|
|
||||||
"Usuaris que segueixo"
|
|
||||||
#elif L==2 // de
|
|
||||||
"Benutzer Ich folge"
|
|
||||||
#elif L==3 // en
|
|
||||||
"Users I'm following"
|
|
||||||
#elif L==4 // es
|
|
||||||
"Usuarios que sigo"
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Utilisateurs qui je suis"
|
|
||||||
#elif L==6 // gn
|
|
||||||
"Usuarios que sigo" // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"Utenti che sto seguenti"
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Użytkownicy, którzy mam następujące"
|
|
||||||
#elif L==9 // pt
|
|
||||||
"Usuários que estou seguindo"
|
|
||||||
#endif
|
|
||||||
,
|
|
||||||
// TL_USRS_ALL
|
|
||||||
#if L==1 // ca
|
|
||||||
"Tots els usuaris"
|
|
||||||
#elif L==2 // de
|
|
||||||
"Alle Benutzer"
|
|
||||||
#elif L==3 // en
|
|
||||||
"All users"
|
|
||||||
#elif L==4 // es
|
|
||||||
"Todos los usuarios"
|
|
||||||
#elif L==5 // fr
|
|
||||||
"Tous les utilisateurs"
|
|
||||||
#elif L==6 // gn
|
|
||||||
"Todos los usuarios" // Okoteve traducción
|
|
||||||
#elif L==7 // it
|
|
||||||
"Tutti gli utenti"
|
|
||||||
#elif L==8 // pl
|
|
||||||
"Wszyscy użytkownicy"
|
|
||||||
#elif L==9 // pt
|
|
||||||
"Todos os usuários"
|
|
||||||
#endif
|
|
||||||
};
|
|
||||||
|
|
||||||
const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES] =
|
const char *Txt_TIMETABLE_TYPES[TT_NUM_TIMETABLE_TYPES] =
|
||||||
{
|
{
|
||||||
// TT_COURSE_TIMETABLE
|
// TT_COURSE_TIMETABLE
|
||||||
|
@ -53271,6 +53178,96 @@ const char *Txt_Where_s_USER =
|
||||||
"Onde está %s?";
|
"Onde está %s?";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
|
{
|
||||||
|
// Usr_WHO_UNKNOWN
|
||||||
|
NULL
|
||||||
|
,
|
||||||
|
// Usr_WHO_ME
|
||||||
|
#if L==1 // ca
|
||||||
|
"Jo"
|
||||||
|
#elif L==2 // de
|
||||||
|
"Mich"
|
||||||
|
#elif L==3 // en
|
||||||
|
"Me"
|
||||||
|
#elif L==4 // es
|
||||||
|
"Yo"
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Moi"
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Che"
|
||||||
|
#elif L==7 // it
|
||||||
|
"Me"
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Mnie"
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Eu"
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
// Usr_WHO_SOME
|
||||||
|
#if L==1 // ca
|
||||||
|
"Usuaris seleccionats"
|
||||||
|
#elif L==2 // de
|
||||||
|
"Ausgewählte Benutzer"
|
||||||
|
#elif L==3 // en
|
||||||
|
"Selected users"
|
||||||
|
#elif L==4 // es
|
||||||
|
"Usuarios seleccionados"
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Utilisateurs sélectionnés"
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Usuarios seleccionados" // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Utenti selezionati"
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Wybrani użytkownicy"
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Usuários selecionados"
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
// Usr_WHO_FOLLOWED
|
||||||
|
#if L==1 // ca
|
||||||
|
"Usuaris que segueixo"
|
||||||
|
#elif L==2 // de
|
||||||
|
"Benutzer Ich folge"
|
||||||
|
#elif L==3 // en
|
||||||
|
"Users I'm following"
|
||||||
|
#elif L==4 // es
|
||||||
|
"Usuarios que sigo"
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Utilisateurs qui je suis"
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Usuarios que sigo" // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Utenti che sto seguenti"
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Użytkownicy, którzy mam następujące"
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Usuários que estou seguindo"
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
// Usr_WHO_ALL
|
||||||
|
#if L==1 // ca
|
||||||
|
"Tots els usuaris"
|
||||||
|
#elif L==2 // de
|
||||||
|
"Alle Benutzer"
|
||||||
|
#elif L==3 // en
|
||||||
|
"All users"
|
||||||
|
#elif L==4 // es
|
||||||
|
"Todos los usuarios"
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Tous les utilisateurs"
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Todos los usuarios" // Okoteve traducción
|
||||||
|
#elif L==7 // it
|
||||||
|
"Tutti gli utenti"
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Wszyscy użytkownicy"
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Todos os usuários"
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
const char *Txt_Who_to_follow =
|
const char *Txt_Who_to_follow =
|
||||||
#if L==1 // ca
|
#if L==1 // ca
|
||||||
"A qui seguir";
|
"A qui seguir";
|
||||||
|
|
162
swad_timeline.c
162
swad_timeline.c
|
@ -166,10 +166,9 @@ static void TL_FormFavSha (Act_Action_t ActionGbl,Act_Action_t ActionUsr,
|
||||||
const char *ParamCod,
|
const char *ParamCod,
|
||||||
const char *Icon,const char *Title);
|
const char *Icon,const char *Title);
|
||||||
|
|
||||||
static void TL_PutFormWhichUsrs (void);
|
static void TL_PutFormWho (void);
|
||||||
static void TL_PutParamWhichUsrs (void);
|
static void TL_GetParamWho (void);
|
||||||
static void TL_GetParamsWhichUsrs (void);
|
static Usr_Who_t TL_GetWhoFromDB (void);
|
||||||
static TL_WhichUsrs_t TL_GetWhichUsrsFromDB (void);
|
|
||||||
static void TL_SaveWhichUsersInDB (void);
|
static void TL_SaveWhichUsersInDB (void);
|
||||||
|
|
||||||
static void TL_ShowWarningYouDontFollowAnyUser (void);
|
static void TL_ShowWarningYouDontFollowAnyUser (void);
|
||||||
|
@ -318,7 +317,7 @@ void TL_ShowTimelineGbl1 (void)
|
||||||
TL_MarkMyNotifAsSeen ();
|
TL_MarkMyNotifAsSeen ();
|
||||||
|
|
||||||
/***** Get which users *****/
|
/***** Get which users *****/
|
||||||
TL_GetParamsWhichUsrs ();
|
TL_GetParamWho ();
|
||||||
|
|
||||||
/***** Save which users in database *****/
|
/***** Save which users in database *****/
|
||||||
if (Gbl.Action.Act == ActSeeSocTmlGbl) // Only in action to see global timeline
|
if (Gbl.Action.Act == ActSeeSocTmlGbl) // Only in action to see global timeline
|
||||||
|
@ -458,7 +457,7 @@ void TL_RefreshNewTimelineGbl (void)
|
||||||
if (Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
if (Gbl.Session.IsOpen) // If session has been closed, do not write anything
|
||||||
{
|
{
|
||||||
/***** Get which users *****/
|
/***** Get which users *****/
|
||||||
TL_GetParamsWhichUsrs ();
|
TL_GetParamWho ();
|
||||||
|
|
||||||
/***** Build query to get timeline *****/
|
/***** Build query to get timeline *****/
|
||||||
TL_BuildQueryToGetTimeline (&Query,
|
TL_BuildQueryToGetTimeline (&Query,
|
||||||
|
@ -480,7 +479,7 @@ void TL_RefreshNewTimelineGbl (void)
|
||||||
void TL_RefreshOldTimelineGbl (void)
|
void TL_RefreshOldTimelineGbl (void)
|
||||||
{
|
{
|
||||||
/***** Get which users *****/
|
/***** Get which users *****/
|
||||||
TL_GetParamsWhichUsrs ();
|
TL_GetParamWho ();
|
||||||
|
|
||||||
/***** Show old publications *****/
|
/***** Show old publications *****/
|
||||||
TL_GetAndShowOldTimeline (TL_TIMELINE_GBL);
|
TL_GetAndShowOldTimeline (TL_TIMELINE_GBL);
|
||||||
|
@ -591,9 +590,13 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
||||||
Gbl.Usrs.Other.UsrDat.UsrCod);
|
Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||||
break;
|
break;
|
||||||
case TL_TIMELINE_GBL: // Show the global timeline
|
case TL_TIMELINE_GBL: // Show the global timeline
|
||||||
switch (Gbl.Timeline.WhichUsrs)
|
switch (Gbl.Timeline.Who)
|
||||||
{
|
{
|
||||||
case TL_USRS_FOLLOWED: // Show the timeline of the users I follow
|
case Usr_WHO_ME: // Show my timeline
|
||||||
|
sprintf (SubQueryPublishers,"PublisherCod=%ld AND ",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
|
break;
|
||||||
|
case Usr_WHO_FOLLOWED: // Show the timeline of the users I follow
|
||||||
DB_Query ("can not create temporary table",
|
DB_Query ("can not create temporary table",
|
||||||
"CREATE TEMPORARY TABLE publishers "
|
"CREATE TEMPORARY TABLE publishers "
|
||||||
"(UsrCod INT NOT NULL,UNIQUE INDEX(UsrCod)) ENGINE=MEMORY"
|
"(UsrCod INT NOT NULL,UNIQUE INDEX(UsrCod)) ENGINE=MEMORY"
|
||||||
|
@ -606,7 +609,7 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
||||||
|
|
||||||
sprintf (SubQueryPublishers,"social_pubs.PublisherCod=publishers.UsrCod AND ");
|
sprintf (SubQueryPublishers,"social_pubs.PublisherCod=publishers.UsrCod AND ");
|
||||||
break;
|
break;
|
||||||
case TL_USRS_ALL: // Show the timeline of all users
|
case Usr_WHO_ALL: // Show the timeline of all users
|
||||||
SubQueryPublishers[0] = '\0';
|
SubQueryPublishers[0] = '\0';
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -724,14 +727,15 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
||||||
RangePubsToGet.Bottom);
|
RangePubsToGet.Bottom);
|
||||||
break;
|
break;
|
||||||
case TL_TIMELINE_GBL: // Show the global timeline
|
case TL_TIMELINE_GBL: // Show the global timeline
|
||||||
switch (Gbl.Timeline.WhichUsrs)
|
switch (Gbl.Timeline.Who)
|
||||||
{
|
{
|
||||||
case TL_USRS_FOLLOWED: // Show the timeline of the users I follow
|
case Usr_WHO_ME: // Show my timeline
|
||||||
sprintf (SubQueryRangeBottom,"social_pubs.PubCod>%ld AND ",
|
case Usr_WHO_ALL: // Show the timeline of all users
|
||||||
|
sprintf (SubQueryRangeBottom,"PubCod>%ld AND ",
|
||||||
RangePubsToGet.Bottom);
|
RangePubsToGet.Bottom);
|
||||||
break;
|
break;
|
||||||
case TL_USRS_ALL: // Show the timeline of all users
|
case Usr_WHO_FOLLOWED:// Show the timeline of the users I follow
|
||||||
sprintf (SubQueryRangeBottom,"PubCod>%ld AND ",
|
sprintf (SubQueryRangeBottom,"social_pubs.PubCod>%ld AND ",
|
||||||
RangePubsToGet.Bottom);
|
RangePubsToGet.Bottom);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -751,14 +755,15 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
||||||
RangePubsToGet.Top);
|
RangePubsToGet.Top);
|
||||||
break;
|
break;
|
||||||
case TL_TIMELINE_GBL: // Show the global timeline
|
case TL_TIMELINE_GBL: // Show the global timeline
|
||||||
switch (Gbl.Timeline.WhichUsrs)
|
switch (Gbl.Timeline.Who)
|
||||||
{
|
{
|
||||||
case TL_USRS_FOLLOWED: // Show the timeline of the users I follow
|
case Usr_WHO_ME: // Show my timeline
|
||||||
sprintf (SubQueryRangeTop,"social_pubs.PubCod<%ld AND ",
|
case Usr_WHO_ALL: // Show the timeline of all users
|
||||||
|
sprintf (SubQueryRangeTop,"PubCod<%ld AND ",
|
||||||
RangePubsToGet.Top);
|
RangePubsToGet.Top);
|
||||||
break;
|
break;
|
||||||
case TL_USRS_ALL: // Show the timeline of all users
|
case Usr_WHO_FOLLOWED:// Show the timeline of the users I follow
|
||||||
sprintf (SubQueryRangeTop,"PubCod<%ld AND ",
|
sprintf (SubQueryRangeTop,"social_pubs.PubCod<%ld AND ",
|
||||||
RangePubsToGet.Top);
|
RangePubsToGet.Top);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -786,9 +791,20 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
||||||
SubQueryAlreadyExists);
|
SubQueryAlreadyExists);
|
||||||
break;
|
break;
|
||||||
case TL_TIMELINE_GBL: // Show the global timeline
|
case TL_TIMELINE_GBL: // Show the global timeline
|
||||||
switch (Gbl.Timeline.WhichUsrs)
|
switch (Gbl.Timeline.Who)
|
||||||
{
|
{
|
||||||
case TL_USRS_FOLLOWED: // Show the timeline of the users I follow
|
case Usr_WHO_ME: // Show my timeline
|
||||||
|
NumPubs =
|
||||||
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publication",
|
||||||
|
"SELECT PubCod,NotCod"
|
||||||
|
" FROM social_pubs"
|
||||||
|
" WHERE %s%s%s%s"
|
||||||
|
" ORDER BY PubCod DESC LIMIT 1",
|
||||||
|
SubQueryRangeBottom,SubQueryRangeTop,
|
||||||
|
SubQueryPublishers,
|
||||||
|
SubQueryAlreadyExists);
|
||||||
|
break;
|
||||||
|
case Usr_WHO_FOLLOWED: // Show the timeline of the users I follow
|
||||||
NumPubs =
|
NumPubs =
|
||||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publication",
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publication",
|
||||||
"SELECT PubCod,NotCod"
|
"SELECT PubCod,NotCod"
|
||||||
|
@ -799,7 +815,7 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
||||||
SubQueryPublishers,
|
SubQueryPublishers,
|
||||||
SubQueryAlreadyExists);
|
SubQueryAlreadyExists);
|
||||||
break;
|
break;
|
||||||
case TL_USRS_ALL: // Show the timeline of all users
|
case Usr_WHO_ALL: // Show the timeline of all users
|
||||||
NumPubs =
|
NumPubs =
|
||||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publication",
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publication",
|
||||||
"SELECT PubCod,NotCod"
|
"SELECT PubCod,NotCod"
|
||||||
|
@ -1001,7 +1017,7 @@ static void TL_ShowTimeline (char *Query,
|
||||||
|
|
||||||
/***** Put form to select users whom public activity is displayed *****/
|
/***** Put form to select users whom public activity is displayed *****/
|
||||||
if (GlobalTimeline)
|
if (GlobalTimeline)
|
||||||
TL_PutFormWhichUsrs ();
|
TL_PutFormWho ();
|
||||||
|
|
||||||
/***** Form to write a new post *****/
|
/***** Form to write a new post *****/
|
||||||
if (GlobalTimeline || ItsMe)
|
if (GlobalTimeline || ItsMe)
|
||||||
|
@ -1090,7 +1106,7 @@ static void TL_FormStart (Act_Action_t ActionGbl,Act_Action_t ActionUsr)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Frm_StartForm (ActionGbl);
|
Frm_StartForm (ActionGbl);
|
||||||
TL_PutParamWhichUsrs ();
|
Usr_PutHiddenParamWho (Gbl.Timeline.Who);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1155,82 +1171,66 @@ static void TL_FormFavSha (Act_Action_t ActionGbl,Act_Action_t ActionUsr,
|
||||||
/******** Show form to select users whom public activity is displayed ********/
|
/******** Show form to select users whom public activity is displayed ********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void TL_PutFormWhichUsrs (void)
|
static void TL_PutFormWho (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_TIMELINE_WHICH_USERS[TL_NUM_WHICH_USRS];
|
Usr_Who_t Who;
|
||||||
TL_WhichUsrs_t WhichUsrs;
|
unsigned Mask = 1 << Usr_WHO_ME |
|
||||||
static const char *Icon[TL_NUM_WHICH_USRS] =
|
1 << Usr_WHO_FOLLOWED |
|
||||||
{
|
1 << Usr_WHO_ALL;
|
||||||
NULL, // TL_USRS_UNKNOWN
|
|
||||||
"user-check.svg", // TL_USRS_FOLLOWED
|
|
||||||
"users.svg", // TL_USRS_ALL
|
|
||||||
};
|
|
||||||
|
|
||||||
/***** Setting selector for which users *****/
|
/***** Setting selector for which users *****/
|
||||||
Set_StartSettingsHead ();
|
Set_StartSettingsHead ();
|
||||||
Set_StartOneSettingSelector ();
|
Set_StartOneSettingSelector ();
|
||||||
for (WhichUsrs = (TL_WhichUsrs_t) 1;
|
for (Who = (Usr_Who_t) 0;
|
||||||
WhichUsrs < TL_NUM_WHICH_USRS;
|
Who <= (Usr_Who_t) (Usr_NUM_WHO - 1);
|
||||||
WhichUsrs++)
|
Who++)
|
||||||
{
|
if (Mask & (1 << Who))
|
||||||
HTM_DIV_Begin ("class=\"%s\"",
|
{
|
||||||
WhichUsrs == Gbl.Timeline.WhichUsrs ? "PREF_ON" :
|
HTM_DIV_Begin ("class=\"%s\"",
|
||||||
"PREF_OFF");
|
Who == Gbl.Timeline.Who ? "PREF_ON" :
|
||||||
Frm_StartForm (ActSeeSocTmlGbl);
|
"PREF_OFF");
|
||||||
Par_PutHiddenParamUnsigned (NULL,"WhichUsrs",WhichUsrs);
|
Frm_StartForm (ActSeeSocTmlGbl);
|
||||||
Ico_PutSettingIconLink (Icon[WhichUsrs],Txt_TIMELINE_WHICH_USERS[WhichUsrs]);
|
Par_PutHiddenParamUnsigned (NULL,"Who",(unsigned) Who);
|
||||||
Frm_EndForm ();
|
Usr_PutWhoIcon (Who);
|
||||||
HTM_DIV_End ();
|
Frm_EndForm ();
|
||||||
}
|
HTM_DIV_End ();
|
||||||
|
}
|
||||||
Set_EndOneSettingSelector ();
|
Set_EndOneSettingSelector ();
|
||||||
Set_EndSettingsHead ();
|
Set_EndSettingsHead ();
|
||||||
|
|
||||||
/***** Show warning if I do not follow anyone *****/
|
/***** Show warning if I do not follow anyone *****/
|
||||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_FOLLOWED)
|
if (Gbl.Timeline.Who == Usr_WHO_FOLLOWED)
|
||||||
TL_ShowWarningYouDontFollowAnyUser ();
|
TL_ShowWarningYouDontFollowAnyUser ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
|
||||||
/***** Put hidden parameter with which users to view in global timeline ******/
|
|
||||||
/*****************************************************************************/
|
|
||||||
|
|
||||||
static void TL_PutParamWhichUsrs (void)
|
|
||||||
{
|
|
||||||
Par_PutHiddenParamUnsigned (NULL,"WhichUsrs",Gbl.Timeline.WhichUsrs);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/********* Get parameter with which users to view in global timeline *********/
|
/********* Get parameter with which users to view in global timeline *********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void TL_GetParamsWhichUsrs (void)
|
static void TL_GetParamWho (void)
|
||||||
{
|
{
|
||||||
/***** Get which users I want to see *****/
|
/***** Get which users I want to see *****/
|
||||||
Gbl.Timeline.WhichUsrs = (TL_WhichUsrs_t)
|
Gbl.Timeline.Who = Usr_GetHiddenParamWho ();
|
||||||
Par_GetParToUnsignedLong ("WhichUsrs",
|
|
||||||
1,
|
|
||||||
TL_NUM_WHICH_USRS - 1,
|
|
||||||
(unsigned long) TL_USRS_UNKNOWN);
|
|
||||||
|
|
||||||
/***** If parameter WhichUsrs is not present, get it from database *****/
|
/***** If parameter Who is not present, get it from database *****/
|
||||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_UNKNOWN)
|
if (Gbl.Timeline.Who == Usr_WHO_UNKNOWN)
|
||||||
Gbl.Timeline.WhichUsrs = TL_GetWhichUsrsFromDB ();
|
Gbl.Timeline.Who = TL_GetWhoFromDB ();
|
||||||
|
|
||||||
/***** If parameter WhichUsrs is unknown, set it to default *****/
|
/***** If parameter Who is unknown, set it to default *****/
|
||||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_UNKNOWN)
|
if (Gbl.Timeline.Who == Usr_WHO_UNKNOWN)
|
||||||
Gbl.Timeline.WhichUsrs = TL_DEFAULT_WHICH_USRS;
|
Gbl.Timeline.Who = TL_DEFAULT_WHO;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/********** Get user's last data from database giving a user's code **********/
|
/********** Get user's last data from database giving a user's code **********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static TL_WhichUsrs_t TL_GetWhichUsrsFromDB (void)
|
static Usr_Who_t TL_GetWhoFromDB (void)
|
||||||
{
|
{
|
||||||
MYSQL_RES *mysql_res;
|
MYSQL_RES *mysql_res;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned UnsignedNum;
|
unsigned UnsignedNum;
|
||||||
TL_WhichUsrs_t WhichUsrs = TL_USRS_UNKNOWN;
|
Usr_Who_t Who = Usr_WHO_UNKNOWN;
|
||||||
|
|
||||||
/***** Get which users from database *****/
|
/***** Get which users from database *****/
|
||||||
if (DB_QuerySELECT (&mysql_res,"can not get timeline users from user's last data",
|
if (DB_QuerySELECT (&mysql_res,"can not get timeline users from user's last data",
|
||||||
|
@ -1240,16 +1240,16 @@ static TL_WhichUsrs_t TL_GetWhichUsrsFromDB (void)
|
||||||
{
|
{
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
|
|
||||||
/* Get which users */
|
/* Get who */
|
||||||
if (sscanf (row[0],"%u",&UnsignedNum) == 1)
|
if (sscanf (row[0],"%u",&UnsignedNum) == 1)
|
||||||
if (UnsignedNum < TL_NUM_WHICH_USRS)
|
if (UnsignedNum < Usr_NUM_WHO)
|
||||||
WhichUsrs = (TL_WhichUsrs_t) UnsignedNum;
|
Who = (Usr_Who_t) UnsignedNum;
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Free structure that stores the query result *****/
|
/***** Free structure that stores the query result *****/
|
||||||
DB_FreeMySQLResult (&mysql_res);
|
DB_FreeMySQLResult (&mysql_res);
|
||||||
|
|
||||||
return WhichUsrs;
|
return Who;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -1260,15 +1260,15 @@ static void TL_SaveWhichUsersInDB (void)
|
||||||
{
|
{
|
||||||
if (Gbl.Usrs.Me.Logged)
|
if (Gbl.Usrs.Me.Logged)
|
||||||
{
|
{
|
||||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_UNKNOWN)
|
if (Gbl.Timeline.Who == Usr_WHO_UNKNOWN)
|
||||||
Gbl.Timeline.WhichUsrs = TL_DEFAULT_WHICH_USRS;
|
Gbl.Timeline.Who = TL_DEFAULT_WHO;
|
||||||
|
|
||||||
/***** Update which users in database *****/
|
/***** Update which users in database *****/
|
||||||
// WhichUsrs is stored in usr_last for next time I log in
|
// Who is stored in usr_last for next time I log in
|
||||||
DB_QueryUPDATE ("can not update timeline users in user's last data",
|
DB_QueryUPDATE ("can not update timeline users in user's last data",
|
||||||
"UPDATE usr_last SET TimelineUsrs=%u"
|
"UPDATE usr_last SET TimelineUsrs=%u"
|
||||||
" WHERE UsrCod=%ld",
|
" WHERE UsrCod=%ld",
|
||||||
(unsigned) Gbl.Timeline.WhichUsrs,
|
(unsigned) Gbl.Timeline.Who,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3834,7 +3834,7 @@ static void TL_PutParamsRemoveNote (void)
|
||||||
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
||||||
Usr_PutParamOtherUsrCodEncrypted ();
|
Usr_PutParamOtherUsrCodEncrypted ();
|
||||||
else
|
else
|
||||||
TL_PutParamWhichUsrs ();
|
Usr_PutHiddenParamWho (Gbl.Timeline.Who);
|
||||||
TL_PutHiddenParamNotCod (Gbl.Timeline.NotCod);
|
TL_PutHiddenParamNotCod (Gbl.Timeline.NotCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4147,7 +4147,7 @@ static void TL_PutParamsRemoveCommment (void)
|
||||||
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
||||||
Usr_PutParamOtherUsrCodEncrypted ();
|
Usr_PutParamOtherUsrCodEncrypted ();
|
||||||
else
|
else
|
||||||
TL_PutParamWhichUsrs ();
|
Usr_PutHiddenParamWho (Gbl.Timeline.Who);
|
||||||
TL_PutHiddenParamPubCod (Gbl.Timeline.PubCod);
|
TL_PutHiddenParamPubCod (Gbl.Timeline.PubCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -42,14 +42,7 @@
|
||||||
/******************************** Public types *******************************/
|
/******************************** Public types *******************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define TL_NUM_WHICH_USRS 3
|
#define TL_DEFAULT_WHO Usr_WHO_FOLLOWED
|
||||||
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
|
#define TL_NUM_PUB_TYPES 4
|
||||||
// If the numbers assigned to each event type change,
|
// If the numbers assigned to each event type change,
|
||||||
|
|
34
swad_user.c
34
swad_user.c
|
@ -9731,25 +9731,51 @@ void Usr_ShowTableCellWithUsrData (struct UsrData *UsrDat,unsigned NumRows)
|
||||||
|
|
||||||
void Usr_PutWhoIcon (Usr_Who_t Who)
|
void Usr_PutWhoIcon (Usr_Who_t Who)
|
||||||
{
|
{
|
||||||
|
extern const char *Txt_WHO[Usr_NUM_WHO];
|
||||||
|
|
||||||
switch (Who)
|
switch (Who)
|
||||||
{
|
{
|
||||||
|
case Usr_WHO_UNKNOWN:
|
||||||
|
break;
|
||||||
case Usr_WHO_ME:
|
case Usr_WHO_ME:
|
||||||
HTM_INPUT_IMAGE (Gbl.Usrs.Me.PhotoURL[0] ? Gbl.Usrs.Me.PhotoURL :
|
HTM_INPUT_IMAGE (Gbl.Usrs.Me.PhotoURL[0] ? Gbl.Usrs.Me.PhotoURL :
|
||||||
Cfg_URL_ICON_PUBLIC,
|
Cfg_URL_ICON_PUBLIC,
|
||||||
Gbl.Usrs.Me.PhotoURL[0] ? NULL :
|
Gbl.Usrs.Me.PhotoURL[0] ? NULL :
|
||||||
"usr_bl.jpg",
|
"usr_bl.jpg",
|
||||||
"Yo", // TODO: Need translation!!!!
|
Txt_WHO[Who],
|
||||||
"ICO_HIGHLIGHT PHOTO15x20");
|
"ICO_HIGHLIGHT PHOTO15x20");
|
||||||
break;
|
break;
|
||||||
case Usr_WHO_SOME:
|
case Usr_WHO_SELECTED:
|
||||||
|
case Usr_WHO_FOLLOWED:
|
||||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
||||||
"Usuarios seleccionados", // TODO: Need translation!!!!
|
Txt_WHO[Who],
|
||||||
"ICO_HIGHLIGHT ICOx20");
|
"ICO_HIGHLIGHT ICOx20");
|
||||||
break;
|
break;
|
||||||
case Usr_WHO_ALL:
|
case Usr_WHO_ALL:
|
||||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"users.svg",
|
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"users.svg",
|
||||||
"Todos", // TODO: Need translation!!!!
|
Txt_WHO[Who],
|
||||||
"ICO_HIGHLIGHT ICOx20");
|
"ICO_HIGHLIGHT ICOx20");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*************** Put hidden param for which users are involved ***************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Usr_PutHiddenParamWho (Usr_Who_t Who)
|
||||||
|
{
|
||||||
|
Par_PutHiddenParamUnsigned (NULL,"Who",(unsigned) Who);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/*************** Get hidden param for which users are involved ***************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
Usr_Who_t Usr_GetHiddenParamWho (void)
|
||||||
|
{
|
||||||
|
return (Usr_Who_t) Par_GetParToUnsignedLong ("Who",
|
||||||
|
1,
|
||||||
|
Usr_NUM_WHO - 1,
|
||||||
|
Usr_WHO_UNKNOWN);
|
||||||
|
}
|
||||||
|
|
|
@ -142,11 +142,13 @@ typedef enum
|
||||||
Usr_OTHER,
|
Usr_OTHER,
|
||||||
} Usr_MeOrOther_t;
|
} Usr_MeOrOther_t;
|
||||||
|
|
||||||
#define Usr_NUM_WHO 3
|
#define Usr_NUM_WHO 5
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
|
Usr_WHO_UNKNOWN,
|
||||||
Usr_WHO_ME,
|
Usr_WHO_ME,
|
||||||
Usr_WHO_SOME,
|
Usr_WHO_SELECTED,
|
||||||
|
Usr_WHO_FOLLOWED,
|
||||||
Usr_WHO_ALL,
|
Usr_WHO_ALL,
|
||||||
} Usr_Who_t;
|
} Usr_Who_t;
|
||||||
#define Usr_WHO_DEFAULT Usr_WHO_ALL
|
#define Usr_WHO_DEFAULT Usr_WHO_ALL
|
||||||
|
@ -497,5 +499,7 @@ void Usr_WriteAuthor1Line (long UsrCod,bool Hidden);
|
||||||
void Usr_ShowTableCellWithUsrData (struct UsrData *UsrDat,unsigned NumRows);
|
void Usr_ShowTableCellWithUsrData (struct UsrData *UsrDat,unsigned NumRows);
|
||||||
|
|
||||||
void Usr_PutWhoIcon (Usr_Who_t Who);
|
void Usr_PutWhoIcon (Usr_Who_t Who);
|
||||||
|
void Usr_PutHiddenParamWho (Usr_Who_t Who);
|
||||||
|
Usr_Who_t Usr_GetHiddenParamWho (void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue