Version19.2

This commit is contained in:
Antonio Cañas Vargas 2019-09-14 19:46:26 +02:00
parent 9d4d1da3ec
commit 2b1f20f48a
9 changed files with 168 additions and 103 deletions

View File

@ -2647,6 +2647,7 @@ a:hover img.CENTRE_PHOTO_SHOW
display:table;
box-sizing:border-box;
width:100%;
padding:20px 0;
}
.MATCH_BUTTON_LEFT_CONTAINER
{
@ -2675,7 +2676,7 @@ a:hover img.CENTRE_PHOTO_SHOW
box-sizing:border-box;
display:table;
width:100%;
height:128px;
height:64px;
font-size:36pt;
}
.MATCH_BUTTON_CONTAINER a
@ -2718,7 +2719,7 @@ a:hover img.CENTRE_PHOTO_SHOW
.MATCH_WAIT_IMAGE
{
box-sizing:border-box;
width:50%;
width:25%;
}
.MATCH_STD_QST

View File

@ -639,7 +639,8 @@ CREATE TABLE IF NOT EXISTS gam_matches (
QstInd INT NOT NULL DEFAULT 0,
QstCod INT NOT NULL DEFAULT -1,
QstStartTime DATETIME NOT NULL,
Showing ENUM('wording','answers','request','results') NOT NULL DEFAULT 'wording',
ShowResults ENUM('N','Y') NOT NULL DEFAULT 'N',
Showing ENUM('wording','answers','results') NOT NULL DEFAULT 'wording',
UNIQUE INDEX(MchCod),
INDEX(GamCod));
--

View File

@ -617,7 +617,7 @@ Assessment:
NEW. ActBckMchTch Go back when playing a match (by a teacher)
457. ActFwdMchTch Go forward when playing a match (by a teacher)
NEW. ActShoResMchTch Show results when playing a match (by a teacher)
NEW. ActChgDisResMchTch Change display of results when playing a match (by a teacher)
NEW. ActRefMchTch Refresh current question when playing a match (as teacher)
NEW. ActShoMchTch Show finished match results
@ -2162,7 +2162,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActPlyMchTch */{1789,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,Mch_GetMatchBeingPlayed ,Mch_ResumeMatchTch ,NULL},
/* ActBckMchTch */{1790,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,Mch_GetMatchBeingPlayed ,Mch_BackMatchTch ,NULL},
/* ActFwdMchTch */{1672,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,Mch_GetMatchBeingPlayed ,Mch_ForwardMatchTch ,NULL},
/* ActShoResMchTch */{1795,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,Mch_GetMatchBeingPlayed ,Mch_ShowResultsQstMatchTch ,NULL},
/* ActChgDisResMchTch*/{1794,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,Mch_GetMatchBeingPlayed ,Mch_ToggleDisplayResultsMatchTch,NULL},
/* ActRefMchTch */{1788,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_RFRESH,Mch_GetMatchBeingPlayed ,Mch_RefreshMatchTch ,NULL},
/* ActShoMchTch */{1786,-1,TabUnk,ActSeeAllGam ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,Mch_ShowFinishedMatchResults ,NULL},
@ -5014,8 +5014,7 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
ActPauMchTch, // #1791
-1, // #1792 (obsolete action)
-1, // #1793 (obsolete action)
-1, // #1794 (obsolete action)
ActShoResMchTch, // #1795
ActChgDisResMchTch, // #1794
};
/*****************************************************************************/

View File

@ -66,7 +66,7 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define Act_NUM_ACTIONS (1 + 4 + 64 + 38 + 12 + 42 + 36 + 19 + 110 + 173 + 437 + 176 + 169 + 16 + 68)
#define Act_MAX_ACTION_COD 1795
#define Act_MAX_ACTION_COD 1794
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 13
@ -616,7 +616,7 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
#define ActPlyMchTch (ActChgCrsTT1stDay + 123)
#define ActBckMchTch (ActChgCrsTT1stDay + 124)
#define ActFwdMchTch (ActChgCrsTT1stDay + 125)
#define ActShoResMchTch (ActChgCrsTT1stDay + 126)
#define ActChgDisResMchTch (ActChgCrsTT1stDay + 126)
#define ActRefMchTch (ActChgCrsTT1stDay + 127)
#define ActShoMchTch (ActChgCrsTT1stDay + 128)
#define ActPlyMchStd (ActChgCrsTT1stDay + 129)

View File

@ -460,10 +460,19 @@ En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.1 (2019-09-14)"
#define Log_PLATFORM_VERSION "SWAD 19.2 (2019-09-14)"
#define CSS_FILE "swad18.138.css"
#define JS_FILE "swad18.130.2.js"
/*
Version 19.2: Sep 14, 2019 Changes in match buttons. (244627 lines)
6 changes necessary in database:
ALTER TABLE gam_matches DROP COLUMN Showing;
ALTER TABLE gam_matches ADD COLUMN ShowResults ENUM('N','Y') NOT NULL DEFAULT 'N' AFTER QstStartTime;
ALTER TABLE gam_matches ADD COLUMN Showing ENUM('wording','answers','results') NOT NULL DEFAULT 'wording' AFTER ShowResults;
DELETE FROM actions WHERE ActCod='1794';
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1794','es','N','Cambiar presentación de resultados en partida (como profesor)');
UPDATE actions SET Obsolete='Y' WHERE ActCod=1795;
Version 19.1: Sep 14, 2019 Game module splitted into game and match modules. (244572 lines)
Version 19.0.1: Sep 13, 2019 Show results of questions in matches. (244583 lines)
Version 19.0: Sep 12, 2019 Changes in behaviour of matches. (244585 lines)

View File

@ -1369,21 +1369,22 @@ mysql> DESCRIBE gam_grp;
/***** Table gam_matches *****/
/*
mysql> DESCRIBE gam_matches;
+--------------+-----------------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-----------------------------------------------+------+-----+---------+----------------+
| MchCod | int(11) | NO | PRI | NULL | auto_increment |
| GamCod | int(11) | NO | MUL | NULL | |
| UsrCod | int(11) | NO | | NULL | |
| StartTime | datetime | NO | | NULL | |
| EndTime | datetime | NO | | NULL | |
| Title | varchar(2047) | NO | | NULL | |
| QstInd | int(11) | NO | | 0 | |
| QstCod | int(11) | NO | | -1 | |
| QstStartTime | datetime | NO | | NULL | |
| Showing | enum('wording','answers','request','results') | NO | | wording | |
+--------------+-----------------------------------------------+------+-----+---------+----------------+
10 rows in set (0.00 sec)
+--------------+-------------------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------------------------------+------+-----+---------+----------------+
| MchCod | int(11) | NO | PRI | NULL | auto_increment |
| GamCod | int(11) | NO | MUL | NULL | |
| UsrCod | int(11) | NO | | NULL | |
| StartTime | datetime | NO | | NULL | |
| EndTime | datetime | NO | | NULL | |
| Title | varchar(2047) | NO | | NULL | |
| QstInd | int(11) | NO | | 0 | |
| QstCod | int(11) | NO | | -1 | |
| QstStartTime | datetime | NO | | NULL | |
| ShowResults | enum('N','Y') | NO | | N | |
| Showing | enum('wording','answers','results') | NO | | wording | |
+--------------+-------------------------------------+------+-----+---------+----------------+
11 rows in set (0.01 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS gam_matches ("
"MchCod INT NOT NULL AUTO_INCREMENT,"
@ -1395,6 +1396,7 @@ mysql> DESCRIBE gam_matches;
"QstInd INT NOT NULL DEFAULT 0,"
"QstCod INT NOT NULL DEFAULT -1,"
"QstStartTime DATETIME NOT NULL,"
"ShowResults ENUM('N','Y') NOT NULL DEFAULT 'N',"
"Showing ENUM('wording','answers','request','results') NOT NULL DEFAULT 'wording',"
"UNIQUE INDEX(MchCod),"
"INDEX(GamCod)");

View File

@ -700,7 +700,7 @@ static void Lay_WriteScriptInit (void)
case ActPlyMchTch:
case ActBckMchTch:
case ActFwdMchTch:
case ActShoResMchTch:
case ActChgDisResMchTch:
case ActPlyMchStd:
case ActAnsMchQstStd:
RefreshGame = true;
@ -823,7 +823,7 @@ static void Lay_WriteScriptParamsAJAX (void)
case ActPlyMchTch:
case ActBckMchTch:
case ActFwdMchTch:
case ActShoResMchTch:
case ActChgDisResMchTch:
fprintf (Gbl.F.Out,"var RefreshParamNxtActGam = \"act=%ld\";\n"
"var RefreshParamMchCod = \"MchCod=%ld\";\n",
Act_GetActCod (ActRefMchTch),

View File

@ -68,12 +68,11 @@ extern struct Globals Gbl;
/******************************* Private types *******************************/
/*****************************************************************************/
#define Mch_NUM_SHOWING 4
#define Mch_NUM_SHOWING 3
typedef enum
{
Mch_WORDING, // Showing only the question wording
Mch_ANSWERS, // Showing the question wording and the answers
Mch_REQUEST, // Requesting confirmation to show the results
Mch_RESULTS, // Showing the results
} Mch_Showing_t;
#define Mch_SHOWING_DEFAULT Mch_WORDING
@ -90,6 +89,7 @@ struct Match
unsigned QstInd; // 0 means that the game has not started. First question has index 1.
long QstCod;
time_t QstStartTimeUTC;
bool ShowResults;
Mch_Showing_t Showing;
bool BeingPlayed;
unsigned NumPlayers;
@ -104,7 +104,6 @@ const char *Mch_ShowingStringsDB[Mch_NUM_SHOWING] =
{
"wording",
"answers",
"request",
"results",
};
@ -157,8 +156,9 @@ static void Mch_ShowMatchStatusForStd (struct Match *Match);
static bool Mch_CheckIfIPlayThisMatchBasedOnGrps (long MchCod);
static void Mch_ShowLeftColumnTch (struct Match *Match);
static void Mch_ShowLeftColumnStd (struct Match *Match);
static void Mch_PutMatchControlButtons (struct Match *Match);
static void Mch_ShowNumQstInMatch (struct Match *Match);
static void Mch_PutMatchControlButtons (struct Match *Match);
static void Mch_PutCheckboxResult (struct Match *Match);
static void Mch_ShowNumPlayers (struct Match *Match);
static void Mch_ShowMatchTitle (struct Match *Match);
static void Mch_ShowQuestionAndAnswersTch (struct Match *Match);
@ -222,16 +222,17 @@ void Mch_ListMatches (struct Game *Game,bool PutFormNewMatch)
/* Make query */
NumMatches = (unsigned) DB_QuerySELECT (&mysql_res,"can not get matches",
"SELECT MchCod," // row[0]
"GamCod," // row[1]
"UsrCod," // row[2]
"UNIX_TIMESTAMP(StartTime)," // row[3]
"UNIX_TIMESTAMP(EndTime)," // row[4]
"Title," // row[5]
"QstInd," // row[6]
"QstCod," // row[7]
"UNIX_TIMESTAMP(QstStartTime)," // row[8]
"Showing" // row[9]
"SELECT MchCod," // row[ 0]
"GamCod," // row[ 1]
"UsrCod," // row[ 2]
"UNIX_TIMESTAMP(StartTime)," // row[ 3]
"UNIX_TIMESTAMP(EndTime)," // row[ 4]
"Title," // row[ 5]
"QstInd," // row[ 6]
"QstCod," // row[ 7]
"UNIX_TIMESTAMP(QstStartTime)," // row[ 8]
"ShowResults," // row[ 9]
"Showing" // row[10]
" FROM gam_matches"
" WHERE GamCod=%ld%s"
" ORDER BY MchCod",
@ -283,16 +284,17 @@ static void Mch_GetDataOfMatchByCod (struct Match *Match)
/***** Get data of match from database *****/
NumRows = (unsigned) DB_QuerySELECT (&mysql_res,"can not get matches",
"SELECT MchCod," // row[0]
"GamCod," // row[1]
"UsrCod," // row[2]
"UNIX_TIMESTAMP(StartTime)," // row[3]
"UNIX_TIMESTAMP(EndTime)," // row[4]
"Title," // row[5]
"QstInd," // row[6]
"QstCod," // row[7]
"UNIX_TIMESTAMP(QstStartTime)," // row[8]
"Showing" // row[9]
"SELECT MchCod," // row[ 0]
"GamCod," // row[ 1]
"UsrCod," // row[ 2]
"UNIX_TIMESTAMP(StartTime)," // row[ 3]
"UNIX_TIMESTAMP(EndTime)," // row[ 4]
"Title," // row[ 5]
"QstInd," // row[ 6]
"QstCod," // row[ 7]
"UNIX_TIMESTAMP(QstStartTime)," // row[ 8]
"ShowResults," // row[ 9]
"Showing" // row[10]
" FROM gam_matches"
" WHERE MchCod=%ld"
" AND GamCod IN" // Extra check
@ -315,6 +317,7 @@ static void Mch_GetDataOfMatchByCod (struct Match *Match)
Match->Status.QstInd = 0;
Match->Status.QstCod = -1L;
Match->Status.QstStartTimeUTC = (time_t) 0;
Match->Status.ShowResults = true;
Match->Status.Showing = Mch_WORDING;
Match->Status.BeingPlayed = false;
}
@ -583,12 +586,12 @@ static void Mch_GetMatchDataFromRow (MYSQL_RES *mysql_res,
/***** Get match data *****/
row = mysql_fetch_row (mysql_res);
/*
row[0] MchCod
row[1] GamCod
row[2] UsrCod
row[3] UNIX_TIMESTAMP(StartTime)
row[4] UNIX_TIMESTAMP(EndTime)
row[5] Title
row[ 0] MchCod
row[ 1] GamCod
row[ 2] UsrCod
row[ 3] UNIX_TIMESTAMP(StartTime)
row[ 4] UNIX_TIMESTAMP(EndTime)
row[ 5] Title
*/
/***** Get match data *****/
/* Code of the match (row[0]) */
@ -617,10 +620,11 @@ static void Mch_GetMatchDataFromRow (MYSQL_RES *mysql_res,
/***** Get current match status *****/
/*
row[6] QstInd
row[7] QstCod
row[8] UNIX_TIMESTAMP(QstStartTime)
row[9] Showing
row[ 6] QstInd
row[ 7] QstCod
row[ 8] UNIX_TIMESTAMP(QstStartTime)
row[ 9] ShowResults
row[10] Showing
*/
/* Current question index (row[6]) */
Match->Status.QstInd = Gam_GetQstIndFromStr (row[6]);
@ -631,8 +635,11 @@ static void Mch_GetMatchDataFromRow (MYSQL_RES *mysql_res,
/* Get question start date (row[8] holds the start UTC time) */
Match->Status.QstStartTimeUTC = Dat_GetUNIXTimeFromStr (row[8]);
/* Get what to show (stem, answers, results) (row(9)) */
Match->Status.Showing = Mch_GetShowingFromStr (row[9]);
/* Get whether to show results or not (row(9)) */
Match->Status.ShowResults = (row[9][0] == 'Y');
/* Get what to show (stem, answers, results) (row(10)) */
Match->Status.Showing = Mch_GetShowingFromStr (row[10]);
/***** Get whether the match is being played or not *****/
if (Match->Status.QstInd >= Mch_AFTER_LAST_QUESTION) // Finished
@ -1058,11 +1065,13 @@ static void Mch_UpdateMatchStatusInDB (struct Match *Match)
"gam_matches.QstInd=%u,"
"gam_matches.QstCod=%ld,"
"gam_matches.QstStartTime=NOW(),"
"gam_matches.ShowResults='%c',"
"gam_matches.Showing='%s'"
" WHERE gam_matches.MchCod=%ld"
" AND gam_matches.GamCod=games.GamCod"
" AND games.CrsCod=%ld", // Extra check
Match->Status.QstInd,Match->Status.QstCod,
Match->Status.ShowResults ? 'Y' : 'N',
Mch_ShowingStringsDB[Match->Status.Showing],
Match->MchCod,Gbl.Hierarchy.Crs.CrsCod);
@ -1231,10 +1240,10 @@ void Mch_ResumeMatchTch (void)
}
/*****************************************************************************/
/******** Show results of current question in a match (by a teacher) *********/
/********* Toggle the display of results in a match (by a teacher) ***********/
/*****************************************************************************/
void Mch_ShowResultsQstMatchTch (void)
void Mch_ToggleDisplayResultsMatchTch (void)
{
struct Match Match;
@ -1247,7 +1256,10 @@ void Mch_ShowResultsQstMatchTch (void)
Mch_GetDataOfMatchByCod (&Match);
/***** Update status *****/
Match.Status.Showing = Mch_RESULTS; // Show results
Match.Status.ShowResults = !Match.Status.ShowResults; // Toggle display
if (!Match.Status.ShowResults &&
Match.Status.Showing == Mch_RESULTS)
Match.Status.Showing = Mch_ANSWERS; // Hide results
/***** Update match status in database *****/
Mch_UpdateMatchStatusInDB (&Match);
@ -1324,7 +1336,8 @@ static void Mch_SetMatchStatusToPrev (struct Match *Match)
switch (Match->Status.Showing)
{
case Mch_WORDING:
Match->Status.Showing = Mch_REQUEST;
Match->Status.Showing = Match->Status.ShowResults ? Mch_RESULTS :
Mch_ANSWERS;
/***** Get index of the previous question *****/
Match->Status.QstInd = Gam_GetPrevQuestionIndexInGame (Match->GamCod,
@ -1341,11 +1354,8 @@ static void Mch_SetMatchStatusToPrev (struct Match *Match)
case Mch_ANSWERS:
Match->Status.Showing = Mch_WORDING;
break;
case Mch_REQUEST:
Match->Status.Showing = Mch_ANSWERS;
break;
case Mch_RESULTS:
Match->Status.Showing = Mch_REQUEST;
Match->Status.Showing = Mch_ANSWERS;
break;
}
}
@ -1363,25 +1373,29 @@ static void Mch_SetMatchStatusToNext (struct Match *Match)
Match->Status.Showing = Mch_ANSWERS;
break;
case Mch_ANSWERS:
Match->Status.Showing = Mch_REQUEST;
Match->Status.Showing = Match->Status.ShowResults ? Mch_RESULTS :
Mch_WORDING;
break;
case Mch_REQUEST:
case Mch_RESULTS:
Match->Status.Showing = Mch_WORDING;
/***** Get index of the next question *****/
Match->Status.QstInd = Gam_GetNextQuestionIndexInGame (Match->GamCod,
Match->Status.QstInd);
if (Match->Status.QstInd < Mch_AFTER_LAST_QUESTION) // Unfinished
Match->Status.QstCod = Gam_GetQstCodFromQstInd (Match->GamCod,
Match->Status.QstInd);
else // Finished
{
Match->Status.QstCod = -1L; // No more questions
Match->Status.BeingPlayed = false;
}
break;
}
/***** Go to next question? *****/
if (Match->Status.Showing == Mch_WORDING)
{
/***** Get index of the next question *****/
Match->Status.QstInd = Gam_GetNextQuestionIndexInGame (Match->GamCod,
Match->Status.QstInd);
if (Match->Status.QstInd < Mch_AFTER_LAST_QUESTION) // Unfinished
Match->Status.QstCod = Gam_GetQstCodFromQstInd (Match->GamCod,
Match->Status.QstInd);
else // Finished
{
Match->Status.QstCod = -1L; // No more questions
Match->Status.BeingPlayed = false;
}
}
}
/*****************************************************************************/
@ -1516,6 +1530,9 @@ static void Mch_ShowLeftColumnTch (struct Match *Match)
/***** Buttons *****/
Mch_PutMatchControlButtons (Match);
/***** Write button to request viewing results *****/
Mch_PutCheckboxResult (Match);
/***** Number of players *****/
Mch_ShowNumPlayers (Match);
@ -1554,6 +1571,26 @@ static void Mch_ShowLeftColumnStd (struct Match *Match)
fprintf (Gbl.F.Out,"</div>");
}
/*****************************************************************************/
/********************* Show number of question in game ***********************/
/*****************************************************************************/
static void Mch_ShowNumQstInMatch (struct Match *Match)
{
extern const char *Txt_MATCH_Start;
extern const char *Txt_MATCH_End;
unsigned NumQsts = Gam_GetNumQstsGame (Match->GamCod);
fprintf (Gbl.F.Out,"<div class=\"MATCH_NUM_QST\">");
if (Match->Status.QstInd == 0) // Not started
fprintf (Gbl.F.Out,"%s",Txt_MATCH_Start);
else if (Match->Status.QstInd >= Mch_AFTER_LAST_QUESTION) // Finished
fprintf (Gbl.F.Out,"%s",Txt_MATCH_End);
else
fprintf (Gbl.F.Out,"%u/%u",Match->Status.QstInd,NumQsts);
fprintf (Gbl.F.Out,"</div>");
}
/*****************************************************************************/
/********************** Put buttons to control a match ***********************/
/*****************************************************************************/
@ -1617,22 +1654,43 @@ static void Mch_PutMatchControlButtons (struct Match *Match)
}
/*****************************************************************************/
/********************* Show number of question in game ***********************/
/***************** Put checkbox to select if show results ********************/
/*****************************************************************************/
static void Mch_ShowNumQstInMatch (struct Match *Match)
static void Mch_PutCheckboxResult (struct Match *Match)
{
extern const char *Txt_MATCH_Start;
extern const char *Txt_MATCH_End;
unsigned NumQsts = Gam_GetNumQstsGame (Match->GamCod);
extern const char *Txt_View_results;
fprintf (Gbl.F.Out,"<div class=\"MATCH_NUM_QST\">");
if (Match->Status.QstInd == 0) // Not started
fprintf (Gbl.F.Out,"%s",Txt_MATCH_Start);
else if (Match->Status.QstInd >= Mch_AFTER_LAST_QUESTION) // Finished
fprintf (Gbl.F.Out,"%s",Txt_MATCH_End);
else
fprintf (Gbl.F.Out,"%u/%u",Match->Status.QstInd,NumQsts);
/***** Start container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_SHOW_RESULTS\">");
/***** Start form *****/
Frm_StartForm (ActChgDisResMchTch);
Mch_PutParamMatchCod (Match->MchCod); // Current match being played
/***** Put icon with link *****/
/* Submitting onmousedown instead of default onclick
is necessary in order to be fast
and not lose clicks due to refresh */
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_OPT\">"
"<a href=\"\" class=\"ICO_HIGHLIGHT\""
" title=\"%s\" "
" onmousedown=\"document.getElementById('%s').submit();"
" return false;\">"
"<i class=\"%s\"></i>"
"&nbsp;%s"
"</a>"
"</div>",
Txt_View_results,
Gbl.Form.Id,
Match->Status.ShowResults ? "fas fa-toggle-on" :
"fas fa-toggle-off",
Txt_View_results);
/***** End form *****/
Frm_EndForm ();
/***** End container *****/
fprintf (Gbl.F.Out,"</div>");
}
@ -1723,11 +1781,6 @@ static void Mch_ShowQuestionAndAnswersTch (struct Match *Match)
else // Not being played
Mch_ShowWaitImage (Txt_MATCH_Paused);
break;
case Mch_REQUEST:
/* Write button to request viewing results */
Mch_PutBigButton (ActShoResMchTch,Match->MchCod,
Mch_ICON_RESULTS,Txt_View_results);
break;
case Mch_RESULTS:
/* Write answers with results */
Tst_WriteAnswersMatchResult (Match->MchCod,

View File

@ -50,7 +50,7 @@ void Mch_CreateNewMatchTch (void);
void Mch_RequestStartResumeMatchTch (void);
void Mch_PauseMatchTch (void);
void Mch_ResumeMatchTch (void);
void Mch_ShowResultsQstMatchTch (void);
void Mch_ToggleDisplayResultsMatchTch (void);
void Mch_BackMatchTch (void);
void Mch_ForwardMatchTch (void);