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) {
|
||||
var RefreshParams = RefreshParamNxtActNewPub + '&' +
|
||||
RefreshParamIdSes + '&' +
|
||||
RefreshParamWhichUsrs;
|
||||
RefreshParamWho;
|
||||
|
||||
objXMLHttpReqNewTL.onreadystatechange = readNewTimelineData; // onreadystatechange must be lowercase
|
||||
objXMLHttpReqNewTL.open('POST',ActionAJAX,true);
|
||||
|
@ -753,9 +753,9 @@ function refreshOldTimeline () {
|
|||
if (RefreshParamUsr.length)
|
||||
RefreshParams += '&' + RefreshParamUsr;
|
||||
}
|
||||
if (typeof RefreshParamWhichUsrs !== 'undefined') {
|
||||
if (RefreshParamWhichUsrs.length)
|
||||
RefreshParams += '&' + RefreshParamWhichUsrs;
|
||||
if (typeof RefreshParamWho !== 'undefined') {
|
||||
if (RefreshParamWho.length)
|
||||
RefreshParams += '&' + RefreshParamWho;
|
||||
}
|
||||
|
||||
objXMLHttpReqOldTL.onreadystatechange = readOldTimelineData; // onreadystatechange must be lowercase
|
|
@ -487,15 +487,22 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
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 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: 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: 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.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)
|
||||
|
|
|
@ -304,7 +304,7 @@ void Gbl_InitializeGlobals (void)
|
|||
|
||||
/* Projects */
|
||||
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 |
|
||||
Prj_FILTER_NONASSIG_DEFAULT;
|
||||
Gbl.Prjs.Filter.Hidden = Prj_FILTER_HIDDEN_DEFAULT |
|
||||
|
@ -370,7 +370,7 @@ void Gbl_InitializeGlobals (void)
|
|||
Gbl.Games.ListQuestions = NULL;
|
||||
|
||||
/* Public activity */
|
||||
Gbl.Timeline.WhichUsrs = TL_DEFAULT_WHICH_USRS;
|
||||
Gbl.Timeline.Who = TL_DEFAULT_WHO;
|
||||
|
||||
/* Forums */
|
||||
Gbl.Forum.ForumSet = For_DEFAULT_FORUM_SET;
|
||||
|
|
|
@ -579,7 +579,7 @@ struct Globals
|
|||
} AttEvents;
|
||||
struct
|
||||
{
|
||||
TL_WhichUsrs_t WhichUsrs;
|
||||
Usr_Who_t Who;
|
||||
long NotCod; // Used as parameter about social note to be edited, removed...
|
||||
long PubCod; // Used as parameter about social publishing to be edited, removed...
|
||||
} Timeline;
|
||||
|
|
|
@ -783,10 +783,10 @@ static void Lay_WriteScriptParamsAJAX (void)
|
|||
// Refresh parameters
|
||||
HTM_TxtF ("var RefreshParamNxtActNewPub = \"act=%ld\";\n"
|
||||
"var RefreshParamNxtActOldPub = \"act=%ld\";\n"
|
||||
"var RefreshParamWhichUsrs = \"WhichUsrs=%u\";\n",
|
||||
"var RefreshParamWho = \"Who=%u\";\n",
|
||||
Act_GetActCod (ActRefNewSocPubGbl),
|
||||
Act_GetActCod (ActRefOldSocPubGbl),
|
||||
(unsigned) Gbl.Timeline.WhichUsrs);
|
||||
(unsigned) Gbl.Timeline.Who);
|
||||
break;
|
||||
/* Parameters related with user timeline refreshing */
|
||||
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 *****/
|
||||
#define Prj_PARAM_WHO_NAME "Who"
|
||||
#define Prj_PARAM_PRE_NON_NAME "PreNon"
|
||||
#define Prj_PARAM_HID_VIS_NAME "HidVis"
|
||||
#define Prj_PARAM_FAULTIN_NAME "Faulti"
|
||||
|
@ -134,17 +133,16 @@ static void Prj_ShowFormToFilterByWarning (void);
|
|||
static void Prj_ShowFormToFilterByDpt (void);
|
||||
|
||||
static void Prj_PutCurrentParams (void);
|
||||
static void Prj_PutHiddenParamWho (Usr_Who_t Who);
|
||||
static void Prj_PutHiddenParamAssign (unsigned Assign);
|
||||
static void Prj_PutHiddenParamHidden (unsigned Hidden);
|
||||
static void Prj_PutHiddenParamFaulti (unsigned Faulti);
|
||||
static void Prj_PutHiddenParamDptCod (long DptCod);
|
||||
static void Prj_GetHiddenParamMy_All (void);
|
||||
static void Prj_GetHiddenParamPreNon (void);
|
||||
static void Prj_GetHiddenParamHidVis (void);
|
||||
static void Prj_GetHiddenParamFaulti (void);
|
||||
static void Prj_GetHiddenParamDptCod (void);
|
||||
static void Prj_GetParams (void);
|
||||
static void Prj_GetParamWho (void);
|
||||
|
||||
static void Prj_ShowProjectsHead (Prj_ProjectView_t ProjectView);
|
||||
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 ****/
|
||||
/*****************************************************************************/
|
||||
/*
|
||||
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)
|
||||
{
|
||||
struct Prj_Filter Filter;
|
||||
Usr_Who_t Who;
|
||||
unsigned Mask = 1 << Usr_WHO_ME |
|
||||
1 << Usr_WHO_SELECTED |
|
||||
1 << Usr_WHO_ALL;
|
||||
|
||||
Set_StartOneSettingSelector ();
|
||||
for (Who = (Usr_Who_t) 0;
|
||||
for (Who = (Usr_Who_t) 1;
|
||||
Who <= (Usr_Who_t) (Usr_NUM_WHO - 1);
|
||||
Who++)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Prjs.Filter.Who == Who) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeePrj);
|
||||
Filter.Who = Who;
|
||||
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);
|
||||
|
||||
Usr_PutWhoIcon (Who);
|
||||
|
||||
Frm_EndForm ();
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
if (Mask & (1 << Who))
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
(Gbl.Prjs.Filter.Who == Who) ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeePrj);
|
||||
Filter.Who = Who;
|
||||
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);
|
||||
Usr_PutWhoIcon (Who);
|
||||
Frm_EndForm ();
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
Set_EndOneSettingSelector ();
|
||||
}
|
||||
|
||||
|
@ -653,8 +615,8 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
|||
long PrjCod)
|
||||
{
|
||||
/***** Put filter parameters (which projects to show) *****/
|
||||
if (Filter->Who != Prj_FILTER_WHOSE_PROJECTS_DEFAULT)
|
||||
Prj_PutHiddenParamWho (Filter->Who);
|
||||
if (Filter->Who != Prj_FILTER_WHO_DEFAULT)
|
||||
Usr_PutHiddenParamWho (Filter->Who);
|
||||
|
||||
if (Filter->Assign != ((unsigned) Prj_FILTER_ASSIGNED_DEFAULT |
|
||||
(unsigned) Prj_FILTER_NONASSIG_DEFAULT))
|
||||
|
@ -692,11 +654,6 @@ void Prj_PutParams (struct Prj_Filter *Filter,
|
|||
/*********************** 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)
|
||||
{
|
||||
Par_PutHiddenParamUnsigned (NULL,Prj_PARAM_PRE_NON_NAME,Assign);
|
||||
|
@ -721,14 +678,6 @@ static void Prj_PutHiddenParamDptCod (long DptCod)
|
|||
/*********************** 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)
|
||||
{
|
||||
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)
|
||||
{
|
||||
/***** Get filter (which projects to show) *****/
|
||||
Prj_GetHiddenParamMy_All ();
|
||||
Prj_GetParamWho ();
|
||||
Prj_GetHiddenParamPreNon ();
|
||||
Prj_GetHiddenParamHidVis ();
|
||||
Prj_GetHiddenParamFaulti ();
|
||||
|
@ -795,6 +744,24 @@ static void Prj_GetParams (void)
|
|||
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 *******************/
|
||||
/*****************************************************************************/
|
||||
|
@ -2745,7 +2712,7 @@ void Prj_GetListProjects (void)
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case Usr_WHO_SOME:
|
||||
case Usr_WHO_SELECTED:
|
||||
case Usr_WHO_ALL:
|
||||
switch (Gbl.Prjs.SelectedOrder)
|
||||
{
|
||||
|
@ -2776,6 +2743,9 @@ void Prj_GetListProjects (void)
|
|||
break;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
Lay_ShowErrorAndExit ("Wrong parameter which users.");
|
||||
break;
|
||||
}
|
||||
|
||||
/* Free allocated memory for subqueries */
|
||||
|
|
|
@ -40,8 +40,8 @@
|
|||
#define Prj_EDITABLE_DEFAULT true
|
||||
|
||||
/***** Filters to list projects *****/
|
||||
/* My projects / selected users' projects / all projects */
|
||||
#define Prj_FILTER_WHOSE_PROJECTS_DEFAULT Usr_WHO_ME
|
||||
/* Whose projects */
|
||||
#define Prj_FILTER_WHO_DEFAULT Usr_WHO_ME
|
||||
|
||||
/* Assigned projects / non-assigned projects */
|
||||
#define Prj_NUM_ASSIGNED_NONASSIG 2
|
||||
|
@ -89,8 +89,7 @@ typedef enum
|
|||
/* Struct with all filters */
|
||||
struct Prj_Filter
|
||||
{
|
||||
// Prj_WhoseProjects_t My_All; // Show my / all projects
|
||||
Usr_Who_t Who; // Show my / some / all projects
|
||||
Usr_Who_t Who; // Show my / selected users' / all projects
|
||||
unsigned Assign; // Show assigned / non assigned projects
|
||||
unsigned Hidden; // Show hidden / visible 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"
|
||||
#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] =
|
||||
{
|
||||
// Prj_ASSIGNED
|
||||
|
@ -49784,54 +49739,6 @@ const char *Txt_TIMELINE_posts =
|
|||
"publicações";
|
||||
#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] =
|
||||
{
|
||||
// TT_COURSE_TIMETABLE
|
||||
|
@ -53271,6 +53178,96 @@ const char *Txt_Where_s_USER =
|
|||
"Onde está %s?";
|
||||
#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 =
|
||||
#if L==1 // ca
|
||||
"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 *Icon,const char *Title);
|
||||
|
||||
static void TL_PutFormWhichUsrs (void);
|
||||
static void TL_PutParamWhichUsrs (void);
|
||||
static void TL_GetParamsWhichUsrs (void);
|
||||
static TL_WhichUsrs_t TL_GetWhichUsrsFromDB (void);
|
||||
static void TL_PutFormWho (void);
|
||||
static void TL_GetParamWho (void);
|
||||
static Usr_Who_t TL_GetWhoFromDB (void);
|
||||
static void TL_SaveWhichUsersInDB (void);
|
||||
|
||||
static void TL_ShowWarningYouDontFollowAnyUser (void);
|
||||
|
@ -318,7 +317,7 @@ void TL_ShowTimelineGbl1 (void)
|
|||
TL_MarkMyNotifAsSeen ();
|
||||
|
||||
/***** Get which users *****/
|
||||
TL_GetParamsWhichUsrs ();
|
||||
TL_GetParamWho ();
|
||||
|
||||
/***** Save which users in database *****/
|
||||
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
|
||||
{
|
||||
/***** Get which users *****/
|
||||
TL_GetParamsWhichUsrs ();
|
||||
TL_GetParamWho ();
|
||||
|
||||
/***** Build query to get timeline *****/
|
||||
TL_BuildQueryToGetTimeline (&Query,
|
||||
|
@ -480,7 +479,7 @@ void TL_RefreshNewTimelineGbl (void)
|
|||
void TL_RefreshOldTimelineGbl (void)
|
||||
{
|
||||
/***** Get which users *****/
|
||||
TL_GetParamsWhichUsrs ();
|
||||
TL_GetParamWho ();
|
||||
|
||||
/***** Show old publications *****/
|
||||
TL_GetAndShowOldTimeline (TL_TIMELINE_GBL);
|
||||
|
@ -591,9 +590,13 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
|||
Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||
break;
|
||||
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",
|
||||
"CREATE TEMPORARY TABLE publishers "
|
||||
"(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 ");
|
||||
break;
|
||||
case TL_USRS_ALL: // Show the timeline of all users
|
||||
case Usr_WHO_ALL: // Show the timeline of all users
|
||||
SubQueryPublishers[0] = '\0';
|
||||
break;
|
||||
default:
|
||||
|
@ -724,14 +727,15 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
|||
RangePubsToGet.Bottom);
|
||||
break;
|
||||
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
|
||||
sprintf (SubQueryRangeBottom,"social_pubs.PubCod>%ld AND ",
|
||||
case Usr_WHO_ME: // Show my timeline
|
||||
case Usr_WHO_ALL: // Show the timeline of all users
|
||||
sprintf (SubQueryRangeBottom,"PubCod>%ld AND ",
|
||||
RangePubsToGet.Bottom);
|
||||
break;
|
||||
case TL_USRS_ALL: // Show the timeline of all users
|
||||
sprintf (SubQueryRangeBottom,"PubCod>%ld AND ",
|
||||
case Usr_WHO_FOLLOWED:// Show the timeline of the users I follow
|
||||
sprintf (SubQueryRangeBottom,"social_pubs.PubCod>%ld AND ",
|
||||
RangePubsToGet.Bottom);
|
||||
break;
|
||||
default:
|
||||
|
@ -751,14 +755,15 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
|||
RangePubsToGet.Top);
|
||||
break;
|
||||
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
|
||||
sprintf (SubQueryRangeTop,"social_pubs.PubCod<%ld AND ",
|
||||
case Usr_WHO_ME: // Show my timeline
|
||||
case Usr_WHO_ALL: // Show the timeline of all users
|
||||
sprintf (SubQueryRangeTop,"PubCod<%ld AND ",
|
||||
RangePubsToGet.Top);
|
||||
break;
|
||||
case TL_USRS_ALL: // Show the timeline of all users
|
||||
sprintf (SubQueryRangeTop,"PubCod<%ld AND ",
|
||||
case Usr_WHO_FOLLOWED:// Show the timeline of the users I follow
|
||||
sprintf (SubQueryRangeTop,"social_pubs.PubCod<%ld AND ",
|
||||
RangePubsToGet.Top);
|
||||
break;
|
||||
default:
|
||||
|
@ -786,9 +791,20 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
|||
SubQueryAlreadyExists);
|
||||
break;
|
||||
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 =
|
||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publication",
|
||||
"SELECT PubCod,NotCod"
|
||||
|
@ -799,7 +815,7 @@ static void TL_BuildQueryToGetTimeline (char **Query,
|
|||
SubQueryPublishers,
|
||||
SubQueryAlreadyExists);
|
||||
break;
|
||||
case TL_USRS_ALL: // Show the timeline of all users
|
||||
case Usr_WHO_ALL: // Show the timeline of all users
|
||||
NumPubs =
|
||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get publication",
|
||||
"SELECT PubCod,NotCod"
|
||||
|
@ -1001,7 +1017,7 @@ static void TL_ShowTimeline (char *Query,
|
|||
|
||||
/***** Put form to select users whom public activity is displayed *****/
|
||||
if (GlobalTimeline)
|
||||
TL_PutFormWhichUsrs ();
|
||||
TL_PutFormWho ();
|
||||
|
||||
/***** Form to write a new post *****/
|
||||
if (GlobalTimeline || ItsMe)
|
||||
|
@ -1090,7 +1106,7 @@ static void TL_FormStart (Act_Action_t ActionGbl,Act_Action_t ActionUsr)
|
|||
else
|
||||
{
|
||||
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 ********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void TL_PutFormWhichUsrs (void)
|
||||
static void TL_PutFormWho (void)
|
||||
{
|
||||
extern const char *Txt_TIMELINE_WHICH_USERS[TL_NUM_WHICH_USRS];
|
||||
TL_WhichUsrs_t WhichUsrs;
|
||||
static const char *Icon[TL_NUM_WHICH_USRS] =
|
||||
{
|
||||
NULL, // TL_USRS_UNKNOWN
|
||||
"user-check.svg", // TL_USRS_FOLLOWED
|
||||
"users.svg", // TL_USRS_ALL
|
||||
};
|
||||
Usr_Who_t Who;
|
||||
unsigned Mask = 1 << Usr_WHO_ME |
|
||||
1 << Usr_WHO_FOLLOWED |
|
||||
1 << Usr_WHO_ALL;
|
||||
|
||||
/***** Setting selector for which users *****/
|
||||
Set_StartSettingsHead ();
|
||||
Set_StartOneSettingSelector ();
|
||||
for (WhichUsrs = (TL_WhichUsrs_t) 1;
|
||||
WhichUsrs < TL_NUM_WHICH_USRS;
|
||||
WhichUsrs++)
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
WhichUsrs == Gbl.Timeline.WhichUsrs ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeeSocTmlGbl);
|
||||
Par_PutHiddenParamUnsigned (NULL,"WhichUsrs",WhichUsrs);
|
||||
Ico_PutSettingIconLink (Icon[WhichUsrs],Txt_TIMELINE_WHICH_USERS[WhichUsrs]);
|
||||
Frm_EndForm ();
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
for (Who = (Usr_Who_t) 0;
|
||||
Who <= (Usr_Who_t) (Usr_NUM_WHO - 1);
|
||||
Who++)
|
||||
if (Mask & (1 << Who))
|
||||
{
|
||||
HTM_DIV_Begin ("class=\"%s\"",
|
||||
Who == Gbl.Timeline.Who ? "PREF_ON" :
|
||||
"PREF_OFF");
|
||||
Frm_StartForm (ActSeeSocTmlGbl);
|
||||
Par_PutHiddenParamUnsigned (NULL,"Who",(unsigned) Who);
|
||||
Usr_PutWhoIcon (Who);
|
||||
Frm_EndForm ();
|
||||
HTM_DIV_End ();
|
||||
}
|
||||
Set_EndOneSettingSelector ();
|
||||
Set_EndSettingsHead ();
|
||||
|
||||
/***** Show warning if I do not follow anyone *****/
|
||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_FOLLOWED)
|
||||
if (Gbl.Timeline.Who == Usr_WHO_FOLLOWED)
|
||||
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 *********/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void TL_GetParamsWhichUsrs (void)
|
||||
static void TL_GetParamWho (void)
|
||||
{
|
||||
/***** Get which users I want to see *****/
|
||||
Gbl.Timeline.WhichUsrs = (TL_WhichUsrs_t)
|
||||
Par_GetParToUnsignedLong ("WhichUsrs",
|
||||
1,
|
||||
TL_NUM_WHICH_USRS - 1,
|
||||
(unsigned long) TL_USRS_UNKNOWN);
|
||||
Gbl.Timeline.Who = Usr_GetHiddenParamWho ();
|
||||
|
||||
/***** If parameter WhichUsrs is not present, get it from database *****/
|
||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_UNKNOWN)
|
||||
Gbl.Timeline.WhichUsrs = TL_GetWhichUsrsFromDB ();
|
||||
/***** If parameter Who is not present, get it from database *****/
|
||||
if (Gbl.Timeline.Who == Usr_WHO_UNKNOWN)
|
||||
Gbl.Timeline.Who = TL_GetWhoFromDB ();
|
||||
|
||||
/***** If parameter WhichUsrs is unknown, set it to default *****/
|
||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_UNKNOWN)
|
||||
Gbl.Timeline.WhichUsrs = TL_DEFAULT_WHICH_USRS;
|
||||
/***** If parameter Who is unknown, set it to default *****/
|
||||
if (Gbl.Timeline.Who == Usr_WHO_UNKNOWN)
|
||||
Gbl.Timeline.Who = TL_DEFAULT_WHO;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/********** 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_ROW row;
|
||||
unsigned UnsignedNum;
|
||||
TL_WhichUsrs_t WhichUsrs = TL_USRS_UNKNOWN;
|
||||
Usr_Who_t Who = Usr_WHO_UNKNOWN;
|
||||
|
||||
/***** Get which users from database *****/
|
||||
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);
|
||||
|
||||
/* Get which users */
|
||||
/* Get who */
|
||||
if (sscanf (row[0],"%u",&UnsignedNum) == 1)
|
||||
if (UnsignedNum < TL_NUM_WHICH_USRS)
|
||||
WhichUsrs = (TL_WhichUsrs_t) UnsignedNum;
|
||||
if (UnsignedNum < Usr_NUM_WHO)
|
||||
Who = (Usr_Who_t) UnsignedNum;
|
||||
}
|
||||
|
||||
/***** Free structure that stores the query result *****/
|
||||
DB_FreeMySQLResult (&mysql_res);
|
||||
|
||||
return WhichUsrs;
|
||||
return Who;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -1260,15 +1260,15 @@ static void TL_SaveWhichUsersInDB (void)
|
|||
{
|
||||
if (Gbl.Usrs.Me.Logged)
|
||||
{
|
||||
if (Gbl.Timeline.WhichUsrs == TL_USRS_UNKNOWN)
|
||||
Gbl.Timeline.WhichUsrs = TL_DEFAULT_WHICH_USRS;
|
||||
if (Gbl.Timeline.Who == Usr_WHO_UNKNOWN)
|
||||
Gbl.Timeline.Who = TL_DEFAULT_WHO;
|
||||
|
||||
/***** 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",
|
||||
"UPDATE usr_last SET TimelineUsrs=%u"
|
||||
" WHERE UsrCod=%ld",
|
||||
(unsigned) Gbl.Timeline.WhichUsrs,
|
||||
(unsigned) Gbl.Timeline.Who,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
}
|
||||
}
|
||||
|
@ -3834,7 +3834,7 @@ static void TL_PutParamsRemoveNote (void)
|
|||
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
||||
Usr_PutParamOtherUsrCodEncrypted ();
|
||||
else
|
||||
TL_PutParamWhichUsrs ();
|
||||
Usr_PutHiddenParamWho (Gbl.Timeline.Who);
|
||||
TL_PutHiddenParamNotCod (Gbl.Timeline.NotCod);
|
||||
}
|
||||
|
||||
|
@ -4147,7 +4147,7 @@ static void TL_PutParamsRemoveCommment (void)
|
|||
if (Gbl.Usrs.Other.UsrDat.UsrCod > 0)
|
||||
Usr_PutParamOtherUsrCodEncrypted ();
|
||||
else
|
||||
TL_PutParamWhichUsrs ();
|
||||
Usr_PutHiddenParamWho (Gbl.Timeline.Who);
|
||||
TL_PutHiddenParamPubCod (Gbl.Timeline.PubCod);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,14 +42,7 @@
|
|||
/******************************** 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_DEFAULT_WHO Usr_WHO_FOLLOWED
|
||||
|
||||
#define TL_NUM_PUB_TYPES 4
|
||||
// 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)
|
||||
{
|
||||
extern const char *Txt_WHO[Usr_NUM_WHO];
|
||||
|
||||
switch (Who)
|
||||
{
|
||||
case Usr_WHO_UNKNOWN:
|
||||
break;
|
||||
case Usr_WHO_ME:
|
||||
HTM_INPUT_IMAGE (Gbl.Usrs.Me.PhotoURL[0] ? Gbl.Usrs.Me.PhotoURL :
|
||||
Cfg_URL_ICON_PUBLIC,
|
||||
Gbl.Usrs.Me.PhotoURL[0] ? NULL :
|
||||
"usr_bl.jpg",
|
||||
"Yo", // TODO: Need translation!!!!
|
||||
Txt_WHO[Who],
|
||||
"ICO_HIGHLIGHT PHOTO15x20");
|
||||
break;
|
||||
case Usr_WHO_SOME:
|
||||
case Usr_WHO_SELECTED:
|
||||
case Usr_WHO_FOLLOWED:
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"user-check.svg",
|
||||
"Usuarios seleccionados", // TODO: Need translation!!!!
|
||||
Txt_WHO[Who],
|
||||
"ICO_HIGHLIGHT ICOx20");
|
||||
break;
|
||||
case Usr_WHO_ALL:
|
||||
HTM_INPUT_IMAGE (Cfg_URL_ICON_PUBLIC,"users.svg",
|
||||
"Todos", // TODO: Need translation!!!!
|
||||
Txt_WHO[Who],
|
||||
"ICO_HIGHLIGHT ICOx20");
|
||||
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_MeOrOther_t;
|
||||
|
||||
#define Usr_NUM_WHO 3
|
||||
#define Usr_NUM_WHO 5
|
||||
typedef enum
|
||||
{
|
||||
Usr_WHO_UNKNOWN,
|
||||
Usr_WHO_ME,
|
||||
Usr_WHO_SOME,
|
||||
Usr_WHO_SELECTED,
|
||||
Usr_WHO_FOLLOWED,
|
||||
Usr_WHO_ALL,
|
||||
} Usr_Who_t;
|
||||
#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_PutWhoIcon (Usr_Who_t Who);
|
||||
void Usr_PutHiddenParamWho (Usr_Who_t Who);
|
||||
Usr_Who_t Usr_GetHiddenParamWho (void);
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue