diff --git a/swad_changelog.h b/swad_changelog.h
index 779a2baec..10c0b5a30 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -458,10 +458,11 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
-#define Log_PLATFORM_VERSION "SWAD 18.130 (2019-07-04)"
+#define Log_PLATFORM_VERSION "SWAD 18.130.1 (2019-07-04)"
#define CSS_FILE "swad18.123.css"
#define JS_FILE "swad18.123.js"
/*
+ Version 18.130.1: Jul 04, 2019 Changes in listing of games. (243505 lines)
Version 18.130: Jul 04, 2019 Changes in listing of games. (243436 lines)
1 change necessary in database:
ALTER TABLE games DROP COLUMN StartTime,DROP COLUMN EndTime;
diff --git a/swad_game.c b/swad_game.c
index d56d033e6..4452eafd4 100644
--- a/swad_game.c
+++ b/swad_game.c
@@ -113,19 +113,19 @@ static void Gam_PutIconsListGames (void);
static void Gam_PutIconToCreateNewGame (void);
static void Gam_PutButtonToCreateNewGame (void);
static void Gam_PutParamsToCreateNewGame (void);
-static void Gam_ParamsWhichGroupsToShow (void);
static void Gam_ShowOneGame (long GamCod,
bool ShowOnlyThisGame,
bool ListGameQuestions,
bool PutFormNewMatch,
bool PutButtonToPlay);
static void Gam_WriteAuthor (struct Game *Game);
-static void Gam_GetParamGameOrder (void);
static void Gam_PutFormsToRemEditOneGame (const struct Game *Game,
const char *Anchor);
static void Gam_PutParams (void);
static void Gam_PutParamCurrentMchCod (void);
+static void Gam_PutHiddenParamOrder (void);
+static void Gam_GetParamOrder (void);
static void Gam_GetGameTxtFromDB (long GamCod,char Txt[Cns_MAX_BYTES_TEXT + 1]);
@@ -205,7 +205,7 @@ static unsigned Gam_GetNumUsrsWhoHaveAnsweredGame (long GamCod);
void Gam_SeeAllGames (void)
{
/***** Get parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
@@ -221,9 +221,8 @@ static void Gam_ListAllGames (void)
{
extern const char *Hlp_ASSESSMENT_Games;
extern const char *Txt_Games;
- extern const char *Txt_START_END_TIME_HELP[Dat_NUM_START_END_TIME];
- extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
- extern const char *Txt_Game;
+ extern const char *Txt_GAMES_ORDER_HELP[Gam_NUM_ORDERS];
+ extern const char *Txt_GAMES_ORDER[Gam_NUM_ORDERS];
extern const char *Txt_No_games;
Gam_Order_t Order;
struct Pagination Pagination;
@@ -252,35 +251,26 @@ static void Gam_ListAllGames (void)
Box_StartBox ("100%",Txt_Games,Gam_PutIconsListGames,
Hlp_ASSESSMENT_Games,Box_NOT_CLOSABLE);
- /***** Select whether show only my groups or all groups *****/
- if (Gbl.Crs.Grps.NumGrps)
- {
- Set_StartSettingsHead ();
- Grp_ShowFormToSelWhichGrps (ActSeeAllGam,Gam_ParamsWhichGroupsToShow);
- Set_EndSettingsHead ();
- }
-
if (Gbl.Games.Num)
{
/***** Table head *****/
Tbl_StartTableWideMargin (2);
fprintf (Gbl.F.Out,"
"
" | "); // Column for contextual icons
- for (Order = Gam_ORDER_BY_START_DATE;
- Order <= Gam_ORDER_BY_END_DATE;
+ for (Order = (Gam_Order_t) 0;
+ Order <= (Gam_Order_t) (Gam_NUM_ORDERS - 1);
Order++)
{
fprintf (Gbl.F.Out,"");
/* Form to change order */
Frm_StartForm (ActSeeAllGam);
- Grp_PutParamWhichGrps ();
Pag_PutHiddenParamPagNum (Pag_GAMES,Gbl.Games.CurrentPage);
Par_PutHiddenParamUnsigned ("Order",(unsigned) Order);
- Frm_LinkFormSubmit (Txt_START_END_TIME_HELP[Order],"TIT_TBL",NULL);
+ Frm_LinkFormSubmit (Txt_GAMES_ORDER_HELP[Order],"TIT_TBL",NULL);
if (Order == Gbl.Games.SelectedOrder)
fprintf (Gbl.F.Out,"");
- fprintf (Gbl.F.Out,"%s",Txt_START_END_TIME[Order]);
+ fprintf (Gbl.F.Out,"%s",Txt_GAMES_ORDER[Order]);
if (Order == Gbl.Games.SelectedOrder)
fprintf (Gbl.F.Out,"");
fprintf (Gbl.F.Out,"");
@@ -288,11 +278,7 @@ static void Gam_ListAllGames (void)
fprintf (Gbl.F.Out," | ");
}
- fprintf (Gbl.F.Out,""
- "%s"
- " | "
- "
",
- Txt_Game);
+ fprintf (Gbl.F.Out,"");
/***** Write all the games *****/
for (NumGame = Pagination.FirstItemVisible;
@@ -393,17 +379,6 @@ static void Gam_PutButtonToCreateNewGame (void)
/*****************************************************************************/
static void Gam_PutParamsToCreateNewGame (void)
- {
- Gam_PutHiddenParamGameOrder ();
- Grp_PutParamWhichGrps ();
- Pag_PutHiddenParamPagNum (Pag_GAMES,Gbl.Games.CurrentPage);
- }
-
-/*****************************************************************************/
-/**************** Put params to select which groups to show ******************/
-/*****************************************************************************/
-
-static void Gam_ParamsWhichGroupsToShow (void)
{
Gam_PutHiddenParamGameOrder ();
Pag_PutHiddenParamPagNum (Pag_GAMES,Gbl.Games.CurrentPage);
@@ -418,7 +393,7 @@ void Gam_SeeOneGame (void)
struct Game Game;
/***** Get parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
@@ -657,19 +632,6 @@ static void Gam_WriteAuthor (struct Game *Game)
Usr_WriteAuthor1Line (Game->UsrCod,!Game->Status.Visible);
}
-/*****************************************************************************/
-/********** Get parameter with the type or order in list of games ************/
-/*****************************************************************************/
-
-static void Gam_GetParamGameOrder (void)
- {
- Gbl.Games.SelectedOrder = (Gam_Order_t)
- Par_GetParToUnsignedLong ("Order",
- 0,
- Gam_NUM_ORDERS - 1,
- (unsigned long) Gam_ORDER_DEFAULT);
- }
-
/*****************************************************************************/
/****** Put a hidden parameter with the type of order in list of games *******/
/*****************************************************************************/
@@ -716,8 +678,7 @@ static void Gam_PutParams (void)
if (Gam_CurrentGamCod > 0)
Gam_PutParamGameCod (Gam_CurrentGamCod);
- Att_PutHiddenParamAttOrder ();
- Grp_PutParamWhichGrps ();
+ Gam_PutHiddenParamOrder ();
Pag_PutHiddenParamPagNum (Pag_GAMES,Gbl.Games.CurrentPage);
}
@@ -727,6 +688,28 @@ static void Gam_PutParamCurrentMchCod (void)
Gam_PutParamMatchCod (Gam_CurrentMchCod);
}
+/*****************************************************************************/
+/****** Put a hidden parameter with the type of order in list of games *******/
+/*****************************************************************************/
+
+static void Gam_PutHiddenParamOrder (void)
+ {
+ Par_PutHiddenParamUnsigned ("Order",(unsigned) Gbl.Games.SelectedOrder);
+ }
+
+/*****************************************************************************/
+/********** Get parameter with the type or order in list of games ************/
+/*****************************************************************************/
+
+static void Gam_GetParamOrder (void)
+ {
+ Gbl.Games.SelectedOrder = (Gam_Order_t)
+ Par_GetParToUnsignedLong ("Order",
+ 0,
+ Gam_NUM_ORDERS - 1,
+ (unsigned long) Gam_ORDER_DEFAULT);
+ }
+
/*****************************************************************************/
/*********************** Get list of all the games *************************/
/*****************************************************************************/
@@ -737,6 +720,7 @@ void Gam_GetListGames (void)
{
"StartTime DESC,EndTime DESC,games.Title DESC", // Gam_ORDER_BY_START_DATE
"EndTime DESC,StartTime DESC,games.Title DESC", // Gam_ORDER_BY_END_DATE
+ "games.Title DESC", // Gam_ORDER_BY_TITLE
};
MYSQL_RES *mysql_res;
MYSQL_ROW row;
@@ -1020,7 +1004,7 @@ void Gam_AskRemGame (void)
struct Game Game;
/***** Get parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
@@ -1108,7 +1092,7 @@ void Gam_AskResetGame (void)
struct Game Game;
/***** Get parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
@@ -1260,7 +1244,7 @@ void Gam_RequestCreatOrEditGame (void)
char Txt[Cns_MAX_BYTES_TEXT + 1];
/***** Get parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
@@ -1764,7 +1748,7 @@ void Gam_RequestNewQuestion (void)
Lay_ShowErrorAndExit ("Code of game is missing.");
/***** Get other parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
@@ -3179,7 +3163,7 @@ void Gam_RequestNewMatch (void)
long GamCod;
/***** Get parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
@@ -3205,7 +3189,7 @@ void Gam_PlayMatchStd (void)
bool IBelongToGroups;
/***** Get parameters *****/
- Gam_GetParamGameOrder ();
+ Gam_GetParamOrder ();
Grp_GetParamWhichGrps ();
Gbl.Games.CurrentPage = Pag_GetParamPagNum (Pag_GAMES);
diff --git a/swad_game.h b/swad_game.h
index 72e004d59..d6614a761 100644
--- a/swad_game.h
+++ b/swad_game.h
@@ -61,11 +61,12 @@ struct Game
} Status;
};
-#define Gam_NUM_ORDERS 2
+#define Gam_NUM_ORDERS 3
typedef enum
{
Gam_ORDER_BY_START_DATE = 0,
Gam_ORDER_BY_END_DATE = 1,
+ Gam_ORDER_BY_TITLE = 2,
} Gam_Order_t;
#define Gam_ORDER_DEFAULT Gam_ORDER_BY_START_DATE
diff --git a/swad_text.c b/swad_text.c
index bddae45e1..e658bd70a 100644
--- a/swad_text.c
+++ b/swad_text.c
@@ -13593,49 +13593,7 @@ const char *Txt_Game_X_reset = // Warning: it is very important to include %s in
#elif L==9 // pt
"Jogo %s fixado em zero.";
#endif
-/*
-const char *Txt_GAME_You_belong_to_the_scope_of_the_game =
-#if L==1 // ca
- "Pertany a l'àmbit del joc";
-#elif L==2 // de
- "Sie gehören zum Umfang des Spiels";
-#elif L==3 // en
- "You belong to the scope of the game";
-#elif L==4 // es
- "Pertenece al ámbito del juego";
-#elif L==5 // fr
- "Vous appartenez à la portée du jeu";
-#elif L==6 // gn
- "Pertenece al ámbito del juego"; // Okoteve traducción
-#elif L==7 // it
- "Voi appartenete al campo del gioco";
-#elif L==8 // pl
- "Należysz do zakresu gry";
-#elif L==9 // pt
- "Você pertence ao âmbito do jogo";
-#endif
-const char *Txt_GAME_You_dont_belong_to_the_scope_of_the_game =
-#if L==1 // ca
- "No pertany a l'àmbit del joc";
-#elif L==2 // de
- "Sie gehören nicht zum Umfang des Spiels";
-#elif L==3 // en
- "You don't belong to the scope the game";
-#elif L==4 // es
- "No pertenece al ámbito del juego";
-#elif L==5 // fr
- "Vous n'appartenez pas à la portée du jeu";
-#elif L==6 // gn
- "No pertenece al ámbito del juego"; // Okoteve traducción
-#elif L==7 // it
- "Voi non appartieni al campo del gioco";
-#elif L==8 // pl
- "Nie należą do zakresu gry";
-#elif L==9 // pt
- "Você não pertence ao âmbito do jogo";
-#endif
-*/
const char *Txt_Games =
#if L==1 // ca
"Jocs";
@@ -13657,6 +13615,132 @@ const char *Txt_Games =
"Jogos";
#endif
+const char *Txt_GAMES_ORDER[Gam_NUM_ORDERS] =
+ { // Gam_ORDER_BY_START_DATE
+#if L==1 // ca
+ "Inici"
+#elif L==2 // de
+ "Start"
+#elif L==3 // en
+ "Start"
+#elif L==4 // es
+ "Inicio"
+#elif L==5 // fr
+ "Début"
+#elif L==6 // gn
+ "Ñepyrũ"
+#elif L==7 // it
+ "Inizio"
+#elif L==8 // pl
+ "Początek"
+#elif L==9 // pt
+ "Início"
+#endif
+ , // Gam_ORDER_BY_END_DATE
+#if L==1 // ca
+ "Final"
+#elif L==2 // de
+ "Ende"
+#elif L==3 // en
+ "End"
+#elif L==4 // es
+ "Final"
+#elif L==5 // fr
+ "Fin"
+#elif L==6 // gn
+ "Paha"
+#elif L==7 // it
+ "Fine"
+#elif L==8 // pl
+ "Koniec"
+#elif L==9 // pt
+ "Fim"
+#endif
+ , // Gam_ORDER_BY_TITLE
+#if L==1 // ca
+ "Joc"
+#elif L==2 // de
+ "Spiel"
+#elif L==3 // en
+ "Game"
+#elif L==4 // es
+ "Juego"
+#elif L==5 // fr
+ "Jeu"
+#elif L==6 // gn
+ "Juego" // Okoteve traducción
+#elif L==7 // it
+ "Gioco"
+#elif L==8 // pl
+ "Gra"
+#elif L==9 // pt
+ "Jogo"
+#endif
+ };
+
+const char *Txt_GAMES_ORDER_HELP[Gam_NUM_ORDERS] =
+ { // Gam_ORDER_BY_START_DATE
+#if L==1 // ca
+ "Ordenar per data de començament"
+#elif L==2 // de
+ "Sortieren nach Startdatum"
+#elif L==3 // en
+ "Sort by start date"
+#elif L==4 // es
+ "Ordenar por fecha de comienzo"
+#elif L==5 // fr
+ "Trier par date de début"
+#elif L==6 // gn
+ "Ordenar por fecha de comienzo" // Okoteve traducción
+#elif L==7 // it
+ "Ordina per data di inizio"
+#elif L==8 // pl
+ "Sortuj wedlug daty rozpoczecia"
+#elif L==9 // pt
+ "Classificar por data de início"
+#endif
+ ,
+#if L==1 // ca
+ "Ordenar per data de finalització"
+#elif L==2 // de
+ "Sortieren nach Enddatum"
+#elif L==3 // en
+ "Sort by end date"
+#elif L==4 // es
+ "Ordenar por fecha de finalización"
+#elif L==5 // fr
+ "Trier par date de fin"
+#elif L==6 // gn
+ "Ordenar por fecha de finalización" // Okoteve traducción
+#elif L==7 // it
+ "Ordina per data di fine"
+#elif L==8 // pl
+ "Sortuj wedlug daty zakonczenia"
+#elif L==9 // pt
+ "Classificar por data de término"
+#endif
+ , // Gam_ORDER_BY_TITLE
+#if L==1 // ca
+ "Ordenar per títol del joc"
+#elif L==2 // de
+ "Sortieren nach Spieltitel"
+#elif L==3 // en
+ "Sort by game title"
+#elif L==4 // es
+ "Ordenar por título del juego"
+#elif L==5 // fr
+ "Trier par titre de jeu"
+#elif L==6 // gn
+ "Ordenar por título del juego" // Okoteve traducción
+#elif L==7 // it
+ "Ordina per titolo del gioco"
+#elif L==8 // pl
+ "Sortuj według tytułu gry"
+#elif L==9 // pt
+ "Classificar por título do jogo"
+#endif
+ };
+
const char *Txt_General =
#if L==1 // ca
"General";
@@ -29933,7 +30017,7 @@ const char *Txt_PROJECT_ORDER_HELP[Prj_NUM_ORDERS] =
#elif L==4 // es
"Ordenar por título"
#elif L==5 // fr
- "Trier par date de début"
+ "Trier par titre"
#elif L==6 // gn
"Ordenar por título" // Okoteve traducción
#elif L==7 // it