mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-14 12:44:09 +02:00
Version18.126.2
This commit is contained in:
parent
03d23f968f
commit
03a88663d5
|
@ -453,10 +453,11 @@ En OpenSWAD:
|
|||
ps2pdf source.ps destination.pdf
|
||||
*/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.126.1 (2019-05-29)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 18.126.2 (2019-05-29)"
|
||||
#define CSS_FILE "swad18.123.css"
|
||||
#define JS_FILE "swad18.123.js"
|
||||
/*
|
||||
Version 18.126.2: May 30, 2019 New column in list of matches for match status. (? lines)
|
||||
Version 18.126.1: May 30, 2019 New option to resume an unfinished match. (243415 lines)
|
||||
11 changes necessary in database:
|
||||
UPDATE actions SET Txt='Preparar partida (como profesor)' WHERE ActCod='1670' AND Language='es';
|
||||
|
|
75
swad_game.c
75
swad_game.c
|
@ -146,6 +146,7 @@ static void Gam_RemAnswersOfAQuestion (long GamCod,unsigned QstInd);
|
|||
|
||||
static long Gam_GetQstCodFromQstInd (long GamCod,unsigned QstInd);
|
||||
static unsigned Gam_GetMaxQuestionIndexInGame (long GamCod);
|
||||
static unsigned Gam_GetFirstQuestionIndexInGame (long GamCod);
|
||||
static unsigned Gam_GetPrevQuestionIndexInGame (long GamCod,unsigned QstInd);
|
||||
static unsigned Gam_GetNextQuestionIndexInGame (long GamCod,unsigned QstInd);
|
||||
static void Gam_ListGameQuestions (struct Game *Game);
|
||||
|
@ -2047,11 +2048,21 @@ static unsigned Gam_GetMaxQuestionIndexInGame (long GamCod)
|
|||
return QstInd;
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************** Get first question index in a game *********************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static unsigned Gam_GetFirstQuestionIndexInGame (long GamCod)
|
||||
{
|
||||
return Gam_GetNextQuestionIndexInGame (GamCod,
|
||||
0); // First index > 0
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*********** Get previous question index to a given index in a game **********/
|
||||
/*****************************************************************************/
|
||||
// Question index can be 1, 2, 3...
|
||||
// Return 0 if no previous question
|
||||
// Input question index can be 1, 2, 3... n-1
|
||||
// Return question index will be 1, 2, 3... n if previous question exists, or 0 if no previous question
|
||||
|
||||
static unsigned Gam_GetPrevQuestionIndexInGame (long GamCod,unsigned QstInd)
|
||||
{
|
||||
|
@ -2083,8 +2094,8 @@ static unsigned Gam_GetPrevQuestionIndexInGame (long GamCod,unsigned QstInd)
|
|||
/*****************************************************************************/
|
||||
/************* Get next question index to a given index in a game ************/
|
||||
/*****************************************************************************/
|
||||
// Question index can be 1, 2, 3...
|
||||
// Return 0 if no next question
|
||||
// Input question index can be 0, 1, 2, 3... n-1
|
||||
// Return question index will be 1, 2, 3... n if next question exists, or 0 if no next question
|
||||
|
||||
static unsigned Gam_GetNextQuestionIndexInGame (long GamCod,unsigned QstInd)
|
||||
{
|
||||
|
@ -2996,8 +3007,10 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
|
|||
extern const char *Txt_ROLES_SINGUL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME];
|
||||
extern const char *Txt_Match;
|
||||
extern const char *Txt_Status;
|
||||
extern const char *Txt_Resume;
|
||||
extern const char *Txt_Today;
|
||||
extern const char *Txt_Finished_match;
|
||||
unsigned NumMatch;
|
||||
unsigned UniqueId;
|
||||
struct Match Match;
|
||||
|
@ -3021,12 +3034,16 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
|
|||
"<th class=\"LEFT_TOP\">"
|
||||
"%s"
|
||||
"</th>"
|
||||
"<th class=\"LEFT_TOP\">"
|
||||
"%s"
|
||||
"</th>"
|
||||
"</tr>",
|
||||
Txt_No_INDEX,
|
||||
Txt_ROLES_SINGUL_Abc[Rol_TCH][Usr_SEX_UNKNOWN],
|
||||
Txt_START_END_TIME[Gam_ORDER_BY_START_DATE],
|
||||
Txt_START_END_TIME[Gam_ORDER_BY_END_DATE],
|
||||
Txt_Match);
|
||||
Txt_Match,
|
||||
Txt_Status);
|
||||
|
||||
/***** Write rows *****/
|
||||
for (NumMatch = 0, UniqueId = 1;
|
||||
|
@ -3061,11 +3078,8 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
|
|||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/***** Number of match ******/
|
||||
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP COLOR%u\">"
|
||||
"<div class=\"BIG_INDEX\">%u</div>"
|
||||
"</td>",
|
||||
Gbl.RowEvenOdd,
|
||||
NumMatch + 1);
|
||||
fprintf (Gbl.F.Out,"<td class=\"BIG_INDEX RIGHT_TOP COLOR%u\">%u</td>",
|
||||
Gbl.RowEvenOdd,NumMatch + 1);
|
||||
|
||||
/***** Match player *****/
|
||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u\">",
|
||||
|
@ -3116,6 +3130,20 @@ static void Gam_ListOneOrMoreMatchesForEdition (unsigned NumMatches,
|
|||
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
/***** Match status ******/
|
||||
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP COLOR%u\">",Gbl.RowEvenOdd);
|
||||
if (Match.Status.Finished)
|
||||
Ico_PutIconOff ("flag-checkered.svg",Txt_Finished_match);
|
||||
else // Unfinished match
|
||||
{
|
||||
Gam_CurrentMchCod = Match.MchCod;
|
||||
Lay_PutContextualLinkOnlyIcon (ActResMch,NULL,
|
||||
Gam_PutParamCurrentMchCod,
|
||||
"play.svg",
|
||||
Txt_Resume);
|
||||
}
|
||||
fprintf (Gbl.F.Out,"</td>");
|
||||
|
||||
fprintf (Gbl.F.Out,"</tr>");
|
||||
}
|
||||
|
||||
|
@ -3439,6 +3467,7 @@ static void Gam_PutBigButtonToPlayMatchStd (long MchCod)
|
|||
void Gam_CreateAndStartNewMatch (void)
|
||||
{
|
||||
struct Match Match;
|
||||
unsigned QstInd;
|
||||
|
||||
/***** Get form parameters *****/
|
||||
/* Get game code */
|
||||
|
@ -3458,8 +3487,9 @@ void Gam_CreateAndStartNewMatch (void)
|
|||
Grp_FreeListCodSelectedGrps ();
|
||||
|
||||
/***** Show questions and possible answers *****/
|
||||
QstInd = Gam_GetFirstQuestionIndexInGame (Match.GamCod);
|
||||
Gam_PlayGameShowQuestionAndAnswers (Match.MchCod,
|
||||
0, // First question (index is 0)
|
||||
QstInd, // First question
|
||||
false); // Don't show answers
|
||||
}
|
||||
|
||||
|
@ -3496,7 +3526,9 @@ static long Gam_CreateMatch (struct Match *Match)
|
|||
|
||||
void Gam_ResumeUnfinishedMatch (void)
|
||||
{
|
||||
extern const char *Txt_Finished_match;
|
||||
struct Match Match;
|
||||
unsigned QstInd;
|
||||
|
||||
/***** Get parameters *****/
|
||||
/* Get match code */
|
||||
|
@ -3509,16 +3541,28 @@ void Gam_ResumeUnfinishedMatch (void)
|
|||
if (Match.Status.Finished)
|
||||
{
|
||||
/***** Show alert *****/
|
||||
Ale_ShowAlert (Ale_WARNING,"Partida finalizada."); // TODO: Need translation!!!!!
|
||||
Ale_ShowAlert (Ale_WARNING,Txt_Finished_match);
|
||||
|
||||
/***** Button to close browser tab *****/
|
||||
Btn_PutCloseButton ("Cerrar"); // TODO: Need translation!!!!!
|
||||
}
|
||||
else // Unfinished match
|
||||
{
|
||||
/***** In what question do we resume the match? *****/
|
||||
if (Match.Status.QstInd == 0)
|
||||
/* If current question index is 0 ==>
|
||||
start playing the first question */
|
||||
QstInd = Gam_GetFirstQuestionIndexInGame (Match.GamCod);
|
||||
else
|
||||
/* If current question index is >0 ==>
|
||||
show again current question, without answers */
|
||||
QstInd = Match.Status.QstInd;
|
||||
|
||||
/***** Show questions and possible answers *****/
|
||||
Gam_PlayGameShowQuestionAndAnswers (Match.MchCod,
|
||||
Match.Status.QstInd, // Resume last question index shown
|
||||
Match.Status.ShowAnswers); // Show answers?
|
||||
QstInd,
|
||||
false); // Don't show answers
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -3766,6 +3810,7 @@ static void Gam_PutBigButtonToFinishMatch (long MchCod)
|
|||
|
||||
void Gam_MatchTchEnd (void)
|
||||
{
|
||||
extern const char *Txt_Finished_match;
|
||||
long MchCod;
|
||||
|
||||
/***** Get match code *****/
|
||||
|
@ -3783,7 +3828,7 @@ void Gam_MatchTchEnd (void)
|
|||
MchCod,Gbl.Hierarchy.Crs.CrsCod);
|
||||
|
||||
/***** Show alert *****/
|
||||
Ale_ShowAlert (Ale_INFO,"Partida finalizada."); // TODO: Need translation!!!!!
|
||||
Ale_ShowAlert (Ale_INFO,Txt_Finished_match);
|
||||
|
||||
/***** Button to close browser tab *****/
|
||||
Btn_PutCloseButton ("Cerrar"); // TODO: Need translation!!!!!
|
||||
|
|
21
swad_text.c
21
swad_text.c
|
@ -12247,6 +12247,27 @@ const char *Txt_Finish =
|
|||
"Terminar";
|
||||
#endif
|
||||
|
||||
const char *Txt_Finished_match =
|
||||
#if L==1 // ca
|
||||
"Partida finalitzada";
|
||||
#elif L==2 // de
|
||||
"Spiel beendet";
|
||||
#elif L==3 // en
|
||||
"Finished match";
|
||||
#elif L==4 // es
|
||||
"Partida finalizada";
|
||||
#elif L==5 // fr
|
||||
"Match terminé";
|
||||
#elif L==6 // gn
|
||||
"Partida finalizada"; // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"Partita finita";
|
||||
#elif L==8 // pl
|
||||
"Zakończony mecz";
|
||||
#elif L==9 // pt
|
||||
"Jogo terminado";
|
||||
#endif
|
||||
|
||||
const char *Txt_First_day_of_the_week =
|
||||
#if L==1 // ca
|
||||
"Primer dia de la setmana";
|
||||
|
|
Loading…
Reference in New Issue
Block a user