mirror of
https://github.com/acanas/swad-core.git
synced 2024-09-19 00:01:11 +02:00
Version 23.87.5: Jul 23, 2024 Fixed bug in list of projects.
This commit is contained in:
parent
798b522943
commit
94865b2942
|
@ -633,10 +633,11 @@ Me sale este error, no s
|
||||||
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 23.87.4 (2024-07-17)"
|
#define Log_PLATFORM_VERSION "SWAD 23.87.5 (2024-07-23)"
|
||||||
#define CSS_FILE "swad23.67.2.css"
|
#define CSS_FILE "swad23.67.2.css"
|
||||||
#define JS_FILE "swad23.79.js"
|
#define JS_FILE "swad23.79.js"
|
||||||
/*
|
/*
|
||||||
|
Version 23.87.5: Jul 23, 2024 Fixed bug in list of projects. (335272 lines)
|
||||||
Version 23.87.4: Jul 17, 2024 Changes in some icons. (335196 lines)
|
Version 23.87.4: Jul 17, 2024 Changes in some icons. (335196 lines)
|
||||||
Copy the following icons to icon public directory:
|
Copy the following icons to icon public directory:
|
||||||
sudo cp icon/chalkboard-user.svg /var/www/html/swad/icon/
|
sudo cp icon/chalkboard-user.svg /var/www/html/swad/icon/
|
||||||
|
|
|
@ -1450,8 +1450,9 @@ static void For_PutFormWhichForums (const struct For_Forums *Forums)
|
||||||
HTM_LI_Begin (NULL);
|
HTM_LI_Begin (NULL);
|
||||||
HTM_LABEL_Begin (NULL);
|
HTM_LABEL_Begin (NULL);
|
||||||
HTM_INPUT_RADIO ("ForumSet",
|
HTM_INPUT_RADIO ("ForumSet",
|
||||||
((ForumSet == Forums->ForumSet) ? HTM_NO_ATTR :
|
((ForumSet == Forums->ForumSet) ? HTM_CHECKED :
|
||||||
HTM_CHECKED) | HTM_SUBMIT_ON_CLICK,
|
HTM_NO_ATTR) |
|
||||||
|
HTM_SUBMIT_ON_CLICK,
|
||||||
"value=\"%u\"",(unsigned) ForumSet);
|
"value=\"%u\"",(unsigned) ForumSet);
|
||||||
HTM_Txt (Txt_FORUM_WHICH_FORUM[ForumSet]);
|
HTM_Txt (Txt_FORUM_WHICH_FORUM[ForumSet]);
|
||||||
HTM_LABEL_End ();
|
HTM_LABEL_End ();
|
||||||
|
|
|
@ -90,7 +90,7 @@ static const Prj_RoleInProject_t Prj_RolesToShow[Prj_NUM_ROLES_TO_SHOW] =
|
||||||
};
|
};
|
||||||
static const char *RoleIcon[Prj_NUM_ROLES_IN_PROJECT] =
|
static const char *RoleIcon[Prj_NUM_ROLES_IN_PROJECT] =
|
||||||
{
|
{
|
||||||
[Prj_ROLE_UNK] = "user-slash.svg",
|
[Prj_ROLE_UNK] = NULL,
|
||||||
[Prj_ROLE_STD] = "person.svg",
|
[Prj_ROLE_STD] = "person.svg",
|
||||||
[Prj_ROLE_TUT] = "people-pulling.svg",
|
[Prj_ROLE_TUT] = "people-pulling.svg",
|
||||||
[Prj_ROLE_EVL] = "people-line.svg", // "people-group.svg"
|
[Prj_ROLE_EVL] = "people-line.svg", // "people-group.svg"
|
||||||
|
@ -455,6 +455,7 @@ void Prj_ShowProjects (struct Prj_Projects *Projects)
|
||||||
{
|
{
|
||||||
switch (Projects->Filter.Who)
|
switch (Projects->Filter.Who)
|
||||||
{
|
{
|
||||||
|
case Usr_WHO_NONE:
|
||||||
case Usr_WHO_ME:
|
case Usr_WHO_ME:
|
||||||
case Usr_WHO_ALL:
|
case Usr_WHO_ALL:
|
||||||
/* Show my projects / all projects */
|
/* Show my projects / all projects */
|
||||||
|
@ -682,7 +683,8 @@ static void Prj_ShowFormToFilterByUsrs (const struct Prj_Projects *Projects)
|
||||||
{
|
{
|
||||||
struct Prj_Filter Filter;
|
struct Prj_Filter Filter;
|
||||||
Usr_Who_t Who;
|
Usr_Who_t Who;
|
||||||
unsigned Mask = 1 << Usr_WHO_ME |
|
unsigned Mask = 1 << Usr_WHO_NONE |
|
||||||
|
1 << Usr_WHO_ME |
|
||||||
1 << Usr_WHO_SELECTED |
|
1 << Usr_WHO_SELECTED |
|
||||||
1 << Usr_WHO_ALL;
|
1 << Usr_WHO_ALL;
|
||||||
|
|
||||||
|
@ -723,7 +725,7 @@ static void Prj_ShowFormToFilterByRoleInPrj (const struct Prj_Projects *Projects
|
||||||
struct Prj_Filter Filter;
|
struct Prj_Filter Filter;
|
||||||
Prj_RoleInProject_t RoleInPrj;
|
Prj_RoleInProject_t RoleInPrj;
|
||||||
|
|
||||||
for (RoleInPrj = (Prj_RoleInProject_t) 0;
|
for (RoleInPrj = (Prj_RoleInProject_t) 1;
|
||||||
RoleInPrj <= (Prj_RoleInProject_t) (Prj_NUM_ROLES_IN_PROJECT - 1);
|
RoleInPrj <= (Prj_RoleInProject_t) (Prj_NUM_ROLES_IN_PROJECT - 1);
|
||||||
RoleInPrj++)
|
RoleInPrj++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -242,21 +242,13 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
|
||||||
static const char *RolPrjSubQuery[16] = // EVL TUT STD UNK
|
static const char *RolPrjSubQuery[16] = // EVL TUT STD UNK
|
||||||
{ // 3 2 1 0
|
{ // 3 2 1 0
|
||||||
[0b0000] = "", // · · · ·
|
[0b0000] = "", // · · · ·
|
||||||
[0b0001] = " AND (" "prj_users.RoleInProject IS NULL)", // · · · 1
|
|
||||||
[0b0010] = " AND (prj_users.RoleInProject IN " "(1)" ")", // · · 1 ·
|
[0b0010] = " AND (prj_users.RoleInProject IN " "(1)" ")", // · · 1 ·
|
||||||
[0b0011] = " AND (prj_users.RoleInProject IN " "(1)" " OR prj_users.RoleInProject IS NULL)", // · · 1 1
|
|
||||||
[0b0100] = " AND (prj_users.RoleInProject IN " "(2)" ")", // · 1 · ·
|
[0b0100] = " AND (prj_users.RoleInProject IN " "(2)" ")", // · 1 · ·
|
||||||
[0b0101] = " AND (prj_users.RoleInProject IN " "(2)" " OR prj_users.RoleInProject IS NULL)", // · 1 · 1
|
|
||||||
[0b0110] = " AND (prj_users.RoleInProject IN " "(1,2)" ")", // · 1 1 ·
|
[0b0110] = " AND (prj_users.RoleInProject IN " "(1,2)" ")", // · 1 1 ·
|
||||||
[0b0111] = " AND (prj_users.RoleInProject IN " "(1,2)" " OR prj_users.RoleInProject IS NULL)", // · 1 1 1
|
|
||||||
[0b1000] = " AND (prj_users.RoleInProject IN " "(3)" ")", // 1 · · ·
|
[0b1000] = " AND (prj_users.RoleInProject IN " "(3)" ")", // 1 · · ·
|
||||||
[0b1001] = " AND (prj_users.RoleInProject IN " "(3)" " OR prj_users.RoleInProject IS NULL)", // 1 · · 1
|
|
||||||
[0b1010] = " AND (prj_users.RoleInProject IN " "(1,""3)" ")", // 1 · 1 ·
|
[0b1010] = " AND (prj_users.RoleInProject IN " "(1,""3)" ")", // 1 · 1 ·
|
||||||
[0b1011] = " AND (prj_users.RoleInProject IN " "(1,""3)" " OR prj_users.RoleInProject IS NULL)", // 1 · 1 1
|
|
||||||
[0b1100] = " AND (prj_users.RoleInProject IN " "(2,3)" ")", // 1 1 · ·
|
[0b1100] = " AND (prj_users.RoleInProject IN " "(2,3)" ")", // 1 1 · ·
|
||||||
[0b1101] = " AND (prj_users.RoleInProject IN " "(2,3)" " OR prj_users.RoleInProject IS NULL)", // 1 1 · 1
|
|
||||||
[0b1110] = " AND (prj_users.RoleInProject IN " "(1,2,3)" ")", // 1 1 1 ·
|
[0b1110] = " AND (prj_users.RoleInProject IN " "(1,2,3)" ")", // 1 1 1 ·
|
||||||
[0b1111] = "", // 1 1 1 1
|
|
||||||
};
|
};
|
||||||
char *AssignSubQuery;
|
char *AssignSubQuery;
|
||||||
char *HidVisSubQuery;
|
char *HidVisSubQuery;
|
||||||
|
@ -389,8 +381,62 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
|
||||||
/* Query */
|
/* Query */
|
||||||
switch (Projects->Filter.Who)
|
switch (Projects->Filter.Who)
|
||||||
{
|
{
|
||||||
case Usr_WHO_ME:
|
case Usr_WHO_NONE:
|
||||||
/* Get list of projects */
|
/* Get list of projects without users */
|
||||||
|
switch (Projects->SelectedOrder)
|
||||||
|
{
|
||||||
|
case Prj_ORDER_START_TIME:
|
||||||
|
case Prj_ORDER_END_TIME:
|
||||||
|
case Prj_ORDER_TITLE:
|
||||||
|
NumPrjsFromDB = (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get projects",
|
||||||
|
"SELECT prj_projects.PrjCod"
|
||||||
|
" FROM prj_projects"
|
||||||
|
" WHERE prj_projects.CrsCod=%ld"
|
||||||
|
"%s"
|
||||||
|
"%s"
|
||||||
|
"%s"
|
||||||
|
"%s"
|
||||||
|
" AND prj_projects.PrjCod NOT IN (SELECT PrjCod FROM prj_users)"
|
||||||
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
|
" ORDER BY %s",
|
||||||
|
Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
||||||
|
AssignSubQuery,
|
||||||
|
HidVisSubQuery,
|
||||||
|
ReviewSubQuery,
|
||||||
|
DptCodSubQuery,
|
||||||
|
OrderBySubQuery[Projects->SelectedOrder]);
|
||||||
|
break;
|
||||||
|
case Prj_ORDER_DEPARTMENT:
|
||||||
|
NumPrjsFromDB = (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get projects",
|
||||||
|
"SELECT prj_projects.PrjCod"
|
||||||
|
" FROM prj_projects LEFT JOIN dpt_departments"
|
||||||
|
" ON prj_projects.DptCod=dpt_departments.DptCod"
|
||||||
|
" LEFT JOIN prj_users"
|
||||||
|
" ON prj_projects.PrjCod=prj_users.PrjCod"
|
||||||
|
" WHERE prj_projects.CrsCod=%ld"
|
||||||
|
"%s"
|
||||||
|
"%s"
|
||||||
|
"%s"
|
||||||
|
"%s"
|
||||||
|
" AND prj_projects.PrjCod=prj_users.PrjCod"
|
||||||
|
" AND prj_users.UsrCod=%ld"
|
||||||
|
"%s"
|
||||||
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
|
" ORDER BY %s",
|
||||||
|
Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
||||||
|
AssignSubQuery,
|
||||||
|
HidVisSubQuery,
|
||||||
|
ReviewSubQuery,
|
||||||
|
DptCodSubQuery,
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
RolPrjSubQuery[Projects->Filter.RolPrj],
|
||||||
|
OrderBySubQuery[Projects->SelectedOrder]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case Usr_WHO_ME: /* Get list of my projects */
|
||||||
switch (Projects->SelectedOrder)
|
switch (Projects->SelectedOrder)
|
||||||
{
|
{
|
||||||
case Prj_ORDER_START_TIME:
|
case Prj_ORDER_START_TIME:
|
||||||
|
@ -449,10 +495,9 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Usr_WHO_SELECTED:
|
case Usr_WHO_SELECTED: /* Get list of projects associated to selected users */
|
||||||
if (UsrsSubQuery)
|
if (UsrsSubQuery)
|
||||||
{
|
{
|
||||||
/* Get list of projects */
|
|
||||||
switch (Projects->SelectedOrder)
|
switch (Projects->SelectedOrder)
|
||||||
{
|
{
|
||||||
case Prj_ORDER_START_TIME:
|
case Prj_ORDER_START_TIME:
|
||||||
|
@ -512,8 +557,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Usr_WHO_ALL:
|
case Usr_WHO_ALL: /* Get list of projects associated to any user */
|
||||||
/* Get list of projects */
|
|
||||||
switch (Projects->SelectedOrder)
|
switch (Projects->SelectedOrder)
|
||||||
{
|
{
|
||||||
case Prj_ORDER_START_TIME:
|
case Prj_ORDER_START_TIME:
|
||||||
|
@ -530,6 +574,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
|
||||||
"%s"
|
"%s"
|
||||||
"%s"
|
"%s"
|
||||||
"%s"
|
"%s"
|
||||||
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
||||||
AssignSubQuery,
|
AssignSubQuery,
|
||||||
|
@ -553,6 +598,7 @@ unsigned Prj_DB_GetListProjects (MYSQL_RES **mysql_res,
|
||||||
"%s"
|
"%s"
|
||||||
"%s"
|
"%s"
|
||||||
"%s"
|
"%s"
|
||||||
|
" GROUP BY prj_projects.PrjCod" // To not repeat projects (DISTINCT can not be used)
|
||||||
" ORDER BY %s",
|
" ORDER BY %s",
|
||||||
Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
Gbl.Hierarchy.Node[Hie_CRS].HieCod,
|
||||||
AssignSubQuery,
|
AssignSubQuery,
|
||||||
|
|
39
swad_text.c
39
swad_text.c
|
@ -14206,7 +14206,7 @@ const char *Txt_FORUM_WHICH_FORUM[For_NUM_FORUM_SETS] =
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Fóruns deste site"
|
"Fóruns deste site"
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Forums of this location" // Çeviri lazim!
|
"Bu konumdaki forumlar"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[For_ALL_MY_FORUMS] =
|
[For_ALL_MY_FORUMS] =
|
||||||
|
@ -14229,7 +14229,7 @@ const char *Txt_FORUM_WHICH_FORUM[For_NUM_FORUM_SETS] =
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Todos os meus fóruns"
|
"Todos os meus fóruns"
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"All my forums" // Çeviri lazim!
|
"Tüm forumlarım"
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -57281,6 +57281,29 @@ const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
"Eu"
|
"Eu"
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Me" // Çeviri lazim!
|
"Me" // Çeviri lazim!
|
||||||
|
#endif
|
||||||
|
,
|
||||||
|
[Usr_WHO_NONE] =
|
||||||
|
#if L==1 // ca
|
||||||
|
"Cap usuari"
|
||||||
|
#elif L==2 // de
|
||||||
|
"Kein Benutzer"
|
||||||
|
#elif L==3 // en
|
||||||
|
"No user"
|
||||||
|
#elif L==4 // es
|
||||||
|
"Ningún usuario"
|
||||||
|
#elif L==5 // fr
|
||||||
|
"Aucun utilisateur"
|
||||||
|
#elif L==6 // gn
|
||||||
|
"Ndaipóri puruhára"
|
||||||
|
#elif L==7 // it
|
||||||
|
"Nessun utente"
|
||||||
|
#elif L==8 // pl
|
||||||
|
"Brak użytkownika"
|
||||||
|
#elif L==9 // pt
|
||||||
|
"Nenhum utilizador"
|
||||||
|
#elif L==10 // tr
|
||||||
|
"Kullanıcı yok"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[Usr_WHO_SELECTED] =
|
[Usr_WHO_SELECTED] =
|
||||||
|
@ -57295,7 +57318,7 @@ const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Utilisateurs sélectionnés"
|
"Utilisateurs sélectionnés"
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Usuarios seleccionados" // Okoteve traducción
|
"Umi puruhára ojeporavóva"
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Utenti selezionati"
|
"Utenti selezionati"
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
|
@ -57303,7 +57326,7 @@ const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Usuários selecionados"
|
"Usuários selecionados"
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Selected users" // Çeviri lazim!
|
"Seçilen kullanıcılar"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[Usr_WHO_FOLLOWED] =
|
[Usr_WHO_FOLLOWED] =
|
||||||
|
@ -57318,7 +57341,7 @@ const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Utilisateurs qui je suis"
|
"Utilisateurs qui je suis"
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Usuarios que sigo" // Okoteve traducción
|
"Usuario-kuéra che asegíva"
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Utenti che sto seguenti"
|
"Utenti che sto seguenti"
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
|
@ -57326,7 +57349,7 @@ const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Usuários que estou seguindo"
|
"Usuários que estou seguindo"
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"Users I'm following" // Çeviri lazim!
|
"Takip ettiğim kullanıcılar"
|
||||||
#endif
|
#endif
|
||||||
,
|
,
|
||||||
[Usr_WHO_ALL] =
|
[Usr_WHO_ALL] =
|
||||||
|
@ -57341,7 +57364,7 @@ const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
#elif L==5 // fr
|
#elif L==5 // fr
|
||||||
"Tous les utilisateurs"
|
"Tous les utilisateurs"
|
||||||
#elif L==6 // gn
|
#elif L==6 // gn
|
||||||
"Todos los usuarios" // Okoteve traducción
|
"Mayma puruhára"
|
||||||
#elif L==7 // it
|
#elif L==7 // it
|
||||||
"Tutti gli utenti"
|
"Tutti gli utenti"
|
||||||
#elif L==8 // pl
|
#elif L==8 // pl
|
||||||
|
@ -57349,7 +57372,7 @@ const char *Txt_WHO[Usr_NUM_WHO] =
|
||||||
#elif L==9 // pt
|
#elif L==9 // pt
|
||||||
"Todos os usuários"
|
"Todos os usuários"
|
||||||
#elif L==10 // tr
|
#elif L==10 // tr
|
||||||
"All users" // Çeviri lazim!
|
"Tüm kullanıcılar"
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -6469,6 +6469,7 @@ void Usr_PutWhoIcon (Usr_Who_t Who)
|
||||||
static const char *Icon[Usr_NUM_WHO] =
|
static const char *Icon[Usr_NUM_WHO] =
|
||||||
{
|
{
|
||||||
[Usr_WHO_UNKNOWN ] = NULL,
|
[Usr_WHO_UNKNOWN ] = NULL,
|
||||||
|
[Usr_WHO_NONE ] = "user-slash.svg",
|
||||||
[Usr_WHO_ME ] = NULL,
|
[Usr_WHO_ME ] = NULL,
|
||||||
[Usr_WHO_SELECTED] = "search.svg",
|
[Usr_WHO_SELECTED] = "search.svg",
|
||||||
[Usr_WHO_FOLLOWED] = "user-check.svg",
|
[Usr_WHO_FOLLOWED] = "user-check.svg",
|
||||||
|
@ -6487,6 +6488,7 @@ void Usr_PutWhoIcon (Usr_Who_t Who)
|
||||||
Txt_WHO[Who],
|
Txt_WHO[Who],
|
||||||
"class=\"ICO_HIGHLIGHT PHOTOR15x20\"");
|
"class=\"ICO_HIGHLIGHT PHOTOR15x20\"");
|
||||||
break;
|
break;
|
||||||
|
case Usr_WHO_NONE:
|
||||||
case Usr_WHO_SELECTED:
|
case Usr_WHO_SELECTED:
|
||||||
case Usr_WHO_FOLLOWED:
|
case Usr_WHO_FOLLOWED:
|
||||||
case Usr_WHO_ALL:
|
case Usr_WHO_ALL:
|
||||||
|
|
|
@ -131,10 +131,11 @@ typedef enum
|
||||||
Usr_OTHER,
|
Usr_OTHER,
|
||||||
} Usr_MeOrOther_t;
|
} Usr_MeOrOther_t;
|
||||||
|
|
||||||
#define Usr_NUM_WHO 5
|
#define Usr_NUM_WHO 6
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
Usr_WHO_UNKNOWN,
|
Usr_WHO_UNKNOWN,
|
||||||
|
Usr_WHO_NONE,
|
||||||
Usr_WHO_ME,
|
Usr_WHO_ME,
|
||||||
Usr_WHO_SELECTED,
|
Usr_WHO_SELECTED,
|
||||||
Usr_WHO_FOLLOWED,
|
Usr_WHO_FOLLOWED,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user