Version19.40.3

This commit is contained in:
Antonio Cañas Vargas 2019-10-21 21:36:31 +02:00
parent 54edf78c75
commit 00d44a1b24
4 changed files with 136 additions and 101 deletions

View File

@ -2638,14 +2638,14 @@ a:hover img.CENTRE_PHOTO_SHOW
}
/********************************** Matches **********************************/
.MATCH_CONT
.MCH_CONT
{
box-sizing:border-box;
display:table;
margin:4%;
width:92%;
}
.MATCH_LEFT
.MCH_LEFT
{
box-sizing:border-box;
float:left;
@ -2654,14 +2654,14 @@ a:hover img.CENTRE_PHOTO_SHOW
overflow:hidden;
text-overflow:ellipsis;
}
.MATCH_RIGHT
.MCH_RIGHT
{
box-sizing:border-box;
display:table;
float:left;
width:75%;
}
.MATCH_TOP
.MCH_TOP
{
box-sizing:border-box;
width:100%;
@ -2672,14 +2672,14 @@ a:hover img.CENTRE_PHOTO_SHOW
text-align:center;
text-overflow:ellipsis;
}
.MATCH_BOTTOM
.MCH_BOTTOM
{
box-sizing:border-box;
width:100%;
padding:0 12px;
}
.MATCH_REFRESHABLE_TEACHER
.MCH_REFRESHABLE_TEACHER
{
box-sizing:border-box;
width:100%;
@ -2687,7 +2687,7 @@ a:hover img.CENTRE_PHOTO_SHOW
overflow:hidden;
text-overflow:ellipsis;
}
.MATCH_NUM_QST
.MCH_NUM_QST
{
color:#808080;
font-size:24pt;
@ -2695,7 +2695,7 @@ a:hover img.CENTRE_PHOTO_SHOW
text-align:center;
vertical-align:top;
}
.MATCH_TIME_QST
.MCH_TIME_QST
{
color:#808080;
font-size:16pt;
@ -2703,13 +2703,13 @@ a:hover img.CENTRE_PHOTO_SHOW
text-align:center;
vertical-align:top;
}
.MATCH_SHOW_RESULTS
.MCH_SHOW_RESULTS
{
text-align:center;
padding-bottom:16pt;
font-size:13pt;
}
.MATCH_NUM_ANSWERERS
.MCH_NUM_ANSWERERS
{
text-align:center;
padding:8pt 0;
@ -2717,28 +2717,28 @@ a:hover img.CENTRE_PHOTO_SHOW
font-size:16pt;
}
.MATCH_BUTTONS_CONTAINER
.MCH_BUTTONS_CONTAINER
{
display:table;
box-sizing:border-box;
width:100%;
padding:20px 0;
}
.MATCH_BUTTON_LEFT_CONTAINER
.MCH_BUTTON_LEFT_CONTAINER
{
display:table-cell;
box-sizing:border-box;
float:left;
width:35%;
}
.MATCH_BUTTON_CENTER_CONTAINER
.MCH_BUTTON_CENTER_CONTAINER
{
display:table-cell;
box-sizing:border-box;
float:left;
width:30%;
}
.MATCH_BUTTON_RIGHT_CONTAINER
.MCH_BUTTON_RIGHT_CONTAINER
{
display:table-cell;
box-sizing:border-box;
@ -2746,7 +2746,7 @@ a:hover img.CENTRE_PHOTO_SHOW
width:35%;
}
.MATCH_BUTTON_CONTAINER
.MCH_BUTTON_CONTAINER
{
box-sizing:border-box;
display:table;
@ -2755,12 +2755,12 @@ a:hover img.CENTRE_PHOTO_SHOW
font-size:32pt;
padding:2px;
}
.MATCH_BUTTON_CONTAINER a
.MCH_BUTTON_CONTAINER a
{
text-decoration:none;
color:#404040;
}
.MATCH_BUTTON_ON
.MCH_BUTTON_ON
{
display:table-cell;
width:100%;
@ -2768,11 +2768,11 @@ a:hover img.CENTRE_PHOTO_SHOW
vertical-align:middle;
opacity:0.7;
}
.MATCH_BUTTON_ON:hover
.MCH_BUTTON_ON:hover
{
opacity:1;
}
.MATCH_BUTTON_OFF
.MCH_BUTTON_OFF
{
display:table-cell;
width:100%;
@ -2781,63 +2781,81 @@ a:hover img.CENTRE_PHOTO_SHOW
opacity:0.1;
}
.MATCH_TCH_STEM
.MCH_TCH_STEM
{
color:#202020;
font-size:24pt;
padding-bottom:12pt;
}
.MATCH_TCH_ANS
.MCH_TCH_ANS
{
color:#202020;
font-size:24pt;
}
.MATCH_WAIT_CONTAINER
.MCH_WAIT_CONTAINER
{
box-sizing:border-box;
text-align:center;
}
.MATCH_WAIT_IMAGE
.MCH_WAIT_IMG
{
box-sizing:border-box;
width:25%;
}
.MATCH_SCORE_SCO
.MCH_SCO_SCO
{
width:5%;
text-align:right;
vertical-align:middle;
height:12px;
font-size:7pt;
height:10px;
font-size:6pt;
font-weight:bold;
}
.MATCH_SCORE_NUM
.MCH_SCO_NUM
{
width:95%;
text-align:left;
vertical-align:middle;
background:white;
height:12px;
font-size:7pt;
height:10px;
font-size:6pt;
font-weight:bold;
}
.MATCH_SCORE_BAR
.MCH_SCO_BAR
{
display:inline-block;
height:12px;
height:10px;
vertical-align:middle;
}
.MCH_SCO_TOP
{
color:grey;
border-style:solid solid none solid;
border-width:1px;
}
.MCH_SCO_MID
{
color:grey;
border-style:none solid none solid;
border-width:1px;
}
.MCH_SCO_BOT
{
color:grey;
border-style:none solid solid solid;
border-width:1px;
}
.MATCH_TCH_BUTTON_TD
.MCH_TCH_BUTTON_TD
{
box-sizing:border-box;
width:84px;
text-align:center;
vertical-align:top;
}
.MATCH_TCH_BUTTON
.MCH_TCH_BUTTON
{
box-sizing:border-box;
width:64px;
@ -2853,12 +2871,12 @@ a:hover img.CENTRE_PHOTO_SHOW
line-height:normal;
white-space:nowrap;
}
.MATCH_STD_CELL
.MCH_STD_CELL
{
text-align:center;
vertical-align:middle;
}
.MATCH_STD_BUTTON
.MCH_STD_BUTTON
{
box-sizing:border-box;
width:80%;
@ -2874,12 +2892,12 @@ a:hover img.CENTRE_PHOTO_SHOW
line-height:normal;
white-space:nowrap;
}
.MATCH_STD_ANSWER_SELECTED
.MCH_STD_ANSWER_SELECTED
{
box-shadow: 0px 0px 18px 12px rgba(0,128,0,1);
}
.MATCH_RESULT
.MCH_RESULT
{
padding:10px 0;
color:#606060;
@ -2887,21 +2905,21 @@ a:hover img.CENTRE_PHOTO_SHOW
text-align:left;
vertical-align:top;
}
.MATCH_RES_TR
.MCH_RES_TR
{
height:24px;
}
.MATCH_RES_CORRECT
.MCH_RES_CORRECT
{
width:1%;
background:green;
}
.MATCH_RES_WRONG
.MCH_RES_WRONG
{
width:1%;
background:red;
}
.MATCH_RES_VOID
.MCH_RES_VOID
{
width:1%;
background:white;

View File

@ -487,13 +487,14 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
En OpenSWAD:
ps2pdf source.ps destination.pdf
*/
#define Log_PLATFORM_VERSION "SWAD 19.40.2 (2019-10-21)"
#define CSS_FILE "swad19.40.2.css"
#define Log_PLATFORM_VERSION "SWAD 19.40.3 (2019-10-21)"
#define CSS_FILE "swad19.40.3.css"
#define JS_FILE "swad19.39.js"
/*
// TODO: Perico: poner un candado de bloqueo de creación/edición de proyectos (por ejemplo en asignaturas obsoletas)
// TODO: Hacer un nuevo rol en los TFG: tutor externo (profesor de áreas no vinculadas con el centro, profesionales de empresas, etc.)
Version 19.40.3: Oct 21, 2019 Changes in score table. (245810 lines)
Version 19.40.2: Oct 21, 2019 Fixed bug in score table. (245777 lines)
Version 19.40.1: Oct 21, 2019 Coloured bars in score table. (245774 lines)
Copy the following 10 icons to icon public directory:

View File

@ -164,7 +164,8 @@ static void Mch_ShowQuestionAndAnswersStd (struct Match *Match);
static void Mch_ShowMatchScore (struct Match *Match);
static void Mch_DrawEmptyRowScore (unsigned NumRow,double MinScore,double MaxScore);
static void Mch_DrawScoreRow (double Score,double MinScore,double MaxScore,
unsigned NumUsrs,unsigned MaxUsrs);
unsigned NumRow,unsigned NumUsrs,unsigned MaxUsrs);
static const char *Mch_GetClassBorder (unsigned NumRow);
static void Mch_PutParamNumOpt (unsigned NumOpt);
static unsigned Mch_GetParamNumOpt (void);
@ -1327,7 +1328,7 @@ void Mch_ResumeMatch (void)
Mch_UpdateMatchStatusInDB (&Match);
/***** Show current match status *****/
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MATCH_CONT\">");
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MCH_CONT\">");
Mch_ShowMatchStatusForTch (&Match);
fprintf (Gbl.F.Out,"</div>");
}
@ -1756,7 +1757,7 @@ void Mch_PlayPauseMatch (void)
Mch_UpdateMatchStatusInDB (&Match);
/***** Show current match status *****/
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MATCH_CONT\">");
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MCH_CONT\">");
Mch_ShowMatchStatusForTch (&Match);
fprintf (Gbl.F.Out,"</div>");
}
@ -1788,7 +1789,7 @@ void Mch_ToggleVisibilResultsMchQst (void)
Mch_UpdateMatchStatusInDB (&Match);
/***** Show current match status *****/
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MATCH_CONT\">");
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MCH_CONT\">");
Mch_ShowMatchStatusForTch (&Match);
fprintf (Gbl.F.Out,"</div>");
}
@ -1817,7 +1818,7 @@ void Mch_BackMatch (void)
Mch_UpdateMatchStatusInDB (&Match);
/***** Show current match status *****/
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MATCH_CONT\">");
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MCH_CONT\">");
Mch_ShowMatchStatusForTch (&Match);
fprintf (Gbl.F.Out,"</div>");
}
@ -1846,7 +1847,7 @@ void Mch_ForwardMatch (void)
Mch_UpdateMatchStatusInDB (&Match);
/***** Show current match status *****/
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MATCH_CONT\">");
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MCH_CONT\">");
Mch_ShowMatchStatusForTch (&Match);
fprintf (Gbl.F.Out,"</div>");
}
@ -2049,11 +2050,11 @@ bool Mch_CheckIfICanPlayThisMatchBasedOnGrps (long MchCod)
static void Mch_ShowLeftColumnTch (struct Match *Match)
{
/***** Start left container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_LEFT\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_LEFT\">");
/***** Refreshable part *****/
fprintf (Gbl.F.Out,"<div id=\"match_left\""
" class=\"MATCH_REFRESHABLE_TEACHER\">");
" class=\"MCH_REFRESHABLE_TEACHER\">");
Mch_ShowRefreshablePartTch (Match);
fprintf (Gbl.F.Out,"</div>");
@ -2074,7 +2075,7 @@ static void Mch_ShowRefreshablePartTch (struct Match *Match)
unsigned NumAnswerersQst;
/***** Top *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_TOP\">");
/* Write elapsed time in match */
Mch_GetElapsedTimeInMatch (Match,&Time);
@ -2086,7 +2087,7 @@ static void Mch_ShowRefreshablePartTch (struct Match *Match)
Mch_ShowNumQstInMatch (Match);
/***** Write elapsed time in question *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TIME_QST\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_TIME_QST\">");
if (Match->Status.QstInd > 0 &&
Match->Status.QstInd < Mch_AFTER_LAST_QUESTION)
{
@ -2100,7 +2101,7 @@ static void Mch_ShowRefreshablePartTch (struct Match *Match)
/***** Number of users who have answered this question *****/
NumAnswerersQst = Mch_GetNumUsrsWhoHaveAnswerQst (Match->MchCod,
Match->Status.QstInd);
fprintf (Gbl.F.Out,"<div class=\"MATCH_NUM_ANSWERERS\">"
fprintf (Gbl.F.Out,"<div class=\"MCH_NUM_ANSWERERS\">"
"%s<br />"
"<strong>",
Txt_MATCH_respond);
@ -2129,7 +2130,7 @@ static void Mch_ShowRefreshablePartTch (struct Match *Match)
static void Mch_ShowRightColumnTch (struct Match *Match)
{
/***** Start right container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_RIGHT\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_RIGHT\">");
/***** Top row: match title *****/
Mch_ShowMatchTitle (Match);
@ -2151,10 +2152,10 @@ static void Mch_ShowRightColumnTch (struct Match *Match)
static void Mch_ShowLeftColumnStd (struct Match *Match)
{
/***** Start left container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_LEFT\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_LEFT\">");
/***** Top *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP\"></div>");
fprintf (Gbl.F.Out,"<div class=\"MCH_TOP\"></div>");
/***** Write number of question *****/
Mch_ShowNumQstInMatch (Match);
@ -2172,7 +2173,7 @@ static void Mch_ShowRightColumnStd (struct Match *Match)
extern const char *Txt_Please_wait_;
/***** Start right container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_RIGHT\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_RIGHT\">");
/***** Top row *****/
Mch_ShowMatchTitle (Match);
@ -2182,7 +2183,7 @@ static void Mch_ShowRightColumnStd (struct Match *Match)
{
if (Match->Status.QstInd < Mch_AFTER_LAST_QUESTION) // Unfinished
{
fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_BOTTOM\">");
/***** Update players ******/
Mch_RegisterMeAsPlayerInMatch (Match->MchCod);
@ -2210,7 +2211,7 @@ static void Mch_ShowNumQstInMatch (struct Match *Match)
extern const char *Txt_MATCH_End;
unsigned NumQsts = Gam_GetNumQstsGame (Match->GamCod);
fprintf (Gbl.F.Out,"<div class=\"MATCH_NUM_QST\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_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
@ -2233,10 +2234,10 @@ static void Mch_PutMatchControlButtons (struct Match *Match)
extern const char *Txt_Resume;
/***** Start buttons container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BUTTONS_CONTAINER\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_BUTTONS_CONTAINER\">");
/***** Left button *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BUTTON_LEFT_CONTAINER\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_BUTTON_LEFT_CONTAINER\">");
if (Match->Status.QstInd == 0)
/* Put button to close browser tab */
Mch_PutBigButtonClose ();
@ -2247,7 +2248,7 @@ static void Mch_PutMatchControlButtons (struct Match *Match)
fprintf (Gbl.F.Out,"</div>");
/***** Center button *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BUTTON_CENTER_CONTAINER\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_BUTTON_CENTER_CONTAINER\">");
if (Match->Status.Playing) // Being played
/* Put button to pause match */
Mch_PutBigButton (ActPlyPauMch,"play_pause",Match->MchCod,
@ -2266,7 +2267,7 @@ static void Mch_PutMatchControlButtons (struct Match *Match)
fprintf (Gbl.F.Out,"</div>");
/***** Right button *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BUTTON_RIGHT_CONTAINER\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_BUTTON_RIGHT_CONTAINER\">");
if (Match->Status.QstInd >= Mch_AFTER_LAST_QUESTION) // Finished
/* Put button to close browser tab */
Mch_PutBigButtonClose ();
@ -2289,7 +2290,7 @@ static void Mch_PutCheckboxResult (struct Match *Match)
extern const char *Txt_View_results;
/***** Start container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_SHOW_RESULTS\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_SHOW_RESULTS\">");
/***** Begin form *****/
Frm_StartForm (ActChgVisResMchQst);
@ -2325,7 +2326,7 @@ static void Mch_PutCheckboxResult (struct Match *Match)
static void Mch_ShowMatchTitle (struct Match *Match)
{
/***** Match title *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_TOP\">%s</div>",Match->Title);
fprintf (Gbl.F.Out,"<div class=\"MCH_TOP\">%s</div>",Match->Title);
}
/*****************************************************************************/
@ -2361,10 +2362,10 @@ static void Mch_ShowQuestionAndAnswersTch (struct Match *Match)
if (Gbl.Test.AnswerType != Tst_ANS_UNIQUE_CHOICE)
Lay_ShowErrorAndExit ("Wrong answer type.");
fprintf (Gbl.F.Out,"<div class=\"MATCH_BOTTOM\">"); // Bottom
fprintf (Gbl.F.Out,"<div class=\"MCH_BOTTOM\">"); // Bottom
/* Write stem (row[1]) */
Tst_WriteQstStem (row[1],"MATCH_TCH_STEM");
Tst_WriteQstStem (row[1],"MCH_TCH_STEM");
/* Get media (row[2]) */
Gbl.Test.Media.MedCod = Str_ConvertStrCodToLongCod (row[2]);
@ -2391,7 +2392,7 @@ static void Mch_ShowQuestionAndAnswersTch (struct Match *Match)
Tst_WriteAnswersMatchResult (Match->MchCod,
Match->Status.QstInd,
Match->Status.QstCod,
"MATCH_TCH_ANS",
"MCH_TCH_ANS",
false); // Don't show result
else // Not being played
Mch_ShowWaitImage (Txt_MATCH_Paused);
@ -2401,7 +2402,7 @@ static void Mch_ShowQuestionAndAnswersTch (struct Match *Match)
Tst_WriteAnswersMatchResult (Match->MchCod,
Match->Status.QstInd,
Match->Status.QstCod,
"MATCH_TCH_ANS",
"MCH_TCH_ANS",
true); // Show result
break;
}
@ -2447,7 +2448,7 @@ static void Mch_ShowQuestionAndAnswersStd (struct Match *Match)
/***** Write letter for this option *****/
/* Begin table cell */
Tbl_TD_Begin ("class=\"MATCH_STD_CELL\"");
Tbl_TD_Begin ("class=\"MCH_STD_CELL\"");
/* Form with button.
Sumitting onmousedown instead of default onclick
@ -2462,8 +2463,8 @@ static void Mch_ShowQuestionAndAnswersStd (struct Match *Match)
"return false;\" class=\"",
Gbl.Form.Id);
if (UsrAnswer.NumOpt == (int) NumOpt) // Student's answer
fprintf (Gbl.F.Out,"MATCH_STD_ANSWER_SELECTED ");
fprintf (Gbl.F.Out,"MATCH_STD_BUTTON BT_%c\">"
fprintf (Gbl.F.Out,"MCH_STD_ANSWER_SELECTED ");
fprintf (Gbl.F.Out,"MCH_STD_BUTTON BT_%c\">"
"%c"
"</button>",
'A' + (char) NumOpt,
@ -2489,7 +2490,7 @@ static void Mch_ShowQuestionAndAnswersStd (struct Match *Match)
/***************************** Show match scores *****************************/
/*****************************************************************************/
#define Mch_NUM_ROWS_SCORE 41
#define Mch_NUM_ROWS_SCORE 50
static void Mch_ShowMatchScore (struct Match *Match)
{
@ -2579,7 +2580,7 @@ static void Mch_ShowMatchScore (struct Match *Match)
Mch_DrawEmptyRowScore (NumRow,MinScore,MaxScore);
/***** Draw row for this score *****/
Mch_DrawScoreRow (Score,MinScore,MaxScore,NumUsrs,MaxUsrs);
Mch_DrawScoreRow (Score,MinScore,MaxScore,NumRow,NumUsrs,MaxUsrs);
NumRow++;
}
@ -2602,7 +2603,7 @@ static void Mch_DrawEmptyRowScore (unsigned NumRow,double MinScore,double MaxSco
Tbl_TR_Begin (NULL);
/* Write score */
Tbl_TD_Begin ("class=\"MATCH_SCORE_SCO\"");
Tbl_TD_Begin ("class=\"MCH_SCO_SCO\"");
if (NumRow == 0)
{
Str_WriteFloatNumToFile (Gbl.F.Out,MaxScore);
@ -2616,15 +2617,17 @@ static void Mch_DrawEmptyRowScore (unsigned NumRow,double MinScore,double MaxSco
Tbl_TD_End ();
/* Empty column with bar and number of users */
Tbl_TD_Begin ("class=\"MATCH_SCORE_NUM\"");
Tbl_TD_Begin ("class=\"MCH_SCO_NUM%s\"",Mch_GetClassBorder (NumRow));
Tbl_TD_End ();
Tbl_TR_End ();
}
static void Mch_DrawScoreRow (double Score,double MinScore,double MaxScore,
unsigned NumUsrs,unsigned MaxUsrs)
unsigned NumRow,unsigned NumUsrs,unsigned MaxUsrs)
{
extern const char *Txt_ROLES_SINGUL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
extern const char *Txt_ROLES_PLURAL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
unsigned Color;
unsigned BarWidth;
@ -2670,18 +2673,20 @@ static void Mch_DrawScoreRow (double Score,double MinScore,double MaxScore,
Tbl_TR_Begin (NULL);
/* Write score */
Tbl_TD_Begin ("class=\"MATCH_SCORE_SCO\"");
Tbl_TD_Begin ("class=\"MCH_SCO_SCO\"");
Str_WriteFloatNumToFile (Gbl.F.Out,Score);
fprintf (Gbl.F.Out,"&nbsp;");
Tbl_TD_End ();
/* Draw bar and write number of users for this score */
Tbl_TD_Begin ("class=\"MATCH_SCORE_NUM\"");
Tbl_TD_Begin ("class=\"MCH_SCO_NUM%s\"",Mch_GetClassBorder (NumRow));
fprintf (Gbl.F.Out,"<img src=\"%s/score%u_1x1.png\"" // Background
" alt=\"\" class=\"MATCH_SCORE_BAR\""
" style=\"width:%u%%;\" />"
"&nbsp;%u",
Cfg_URL_ICON_PUBLIC,Color,BarWidth,NumUsrs);
" alt=\"\" title=\"%u %s\" class=\"MCH_SCO_BAR\""
" style=\"width:%u%%;\" />&nbsp;%u",
Cfg_URL_ICON_PUBLIC,Color,
NumUsrs,NumUsrs == 1 ? Txt_ROLES_SINGUL_abc[Rol_STD][Usr_SEX_UNKNOWN] :
Txt_ROLES_PLURAL_abc[Rol_STD][Usr_SEX_UNKNOWN],
BarWidth,NumUsrs);
Tbl_TD_End ();
Tbl_TR_End ();
@ -2691,6 +2696,17 @@ static void Mch_DrawScoreRow (double Score,double MinScore,double MaxScore,
/****** Write parameter with number of option (button) pressed by user *******/
/*****************************************************************************/
static const char *Mch_GetClassBorder (unsigned NumRow)
{
return NumRow == 0 ? " MCH_SCO_TOP" :
(NumRow == Mch_NUM_ROWS_SCORE - 1 ? " MCH_SCO_BOT" :
" MCH_SCO_MID");
}
/*****************************************************************************/
/****** Write parameter with number of option (button) pressed by user *******/
/*****************************************************************************/
static void Mch_PutParamNumOpt (unsigned NumOpt)
{
Par_PutHiddenParamUnsigned ("NumOpt",NumOpt);
@ -2723,8 +2739,8 @@ static void Mch_PutBigButton (Act_Action_t NextAction,const char *Id,
Mch_PutParamMchCod (MchCod);
/***** Put icon with link *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BUTTON_CONTAINER\">"
"<a href=\"\" class=\"MATCH_BUTTON_ON\" title=\"%s\" "
fprintf (Gbl.F.Out,"<div class=\"MCH_BUTTON_CONTAINER\">"
"<a href=\"\" class=\"MCH_BUTTON_ON\" title=\"%s\" "
" onclick=\"document.getElementById('%s').submit();"
" return false;\">"
"<i class=\"%s\"></i>"
@ -2741,8 +2757,8 @@ static void Mch_PutBigButton (Act_Action_t NextAction,const char *Id,
static void Mch_PutBigButtonOff (const char *Icon)
{
/***** Put inactive icon *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BUTTON_CONTAINER\">"
"<div class=\"MATCH_BUTTON_OFF\">"
fprintf (Gbl.F.Out,"<div class=\"MCH_BUTTON_CONTAINER\">"
"<div class=\"MCH_BUTTON_OFF\">"
"<i class=\"%s\"></i>"
"</div>"
"</div>",
@ -2754,8 +2770,8 @@ static void Mch_PutBigButtonClose (void)
extern const char *Txt_Close;
/***** Put icon with link *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_BUTTON_CONTAINER\">"
"<a href=\"\" class=\"MATCH_BUTTON_ON\" title=\"%s\" "
fprintf (Gbl.F.Out,"<div class=\"MCH_BUTTON_CONTAINER\">"
"<a href=\"\" class=\"MCH_BUTTON_ON\" title=\"%s\" "
" onclick=\"window.close();"
" return false;\"\">"
"<i class=\"%s\"></i>"
@ -2770,10 +2786,10 @@ static void Mch_PutBigButtonClose (void)
static void Mch_ShowWaitImage (const char *Txt)
{
fprintf (Gbl.F.Out,"<div class=\"MATCH_WAIT_CONTAINER\">"
fprintf (Gbl.F.Out,"<div class=\"MCH_WAIT_CONTAINER\">"
"<img src=\"%s/wait.gif\""
" alt=\"%s\" title=\"%s\""
" class=\"MATCH_WAIT_IMAGE\" />"
" class=\"MCH_WAIT_IMG\" />"
"</div>",
Cfg_URL_ICON_PUBLIC,
Txt,
@ -2874,7 +2890,7 @@ void Mch_JoinMatchAsStd (void)
Mch_GetDataOfMatchByCod (&Match);
/***** Show current match status *****/
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MATCH_CONT\">");
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MCH_CONT\">");
Mch_ShowMatchStatusForStd (&Match);
fprintf (Gbl.F.Out,"</div>");
}
@ -3079,7 +3095,7 @@ void Mch_ReceiveQuestionAnswer (void)
}
/***** Show current match status *****/
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MATCH_CONT\">");
fprintf (Gbl.F.Out,"<div id=\"match\" class=\"MCH_CONT\">");
Mch_ShowMatchStatusForStd (&Match);
fprintf (Gbl.F.Out,"</div>");
}
@ -3207,7 +3223,7 @@ static void Mch_DrawBarNumUsrs (unsigned NumAnswerersAns,unsigned NumAnswerersQs
Txt_of_PART_OF_A_TOTAL,NumAnswerersQst);
/***** Start container *****/
fprintf (Gbl.F.Out,"<div class=\"MATCH_RESULT\">");
fprintf (Gbl.F.Out,"<div class=\"MCH_RESULT\">");
/***** Draw bar with a with proportional to the number of clicks *****/
if (NumAnswerersAns && NumAnswerersQst)
@ -3216,15 +3232,15 @@ static void Mch_DrawBarNumUsrs (unsigned NumAnswerersAns,unsigned NumAnswerersQs
/***** Bar proportional to number of users *****/
Tbl_TABLE_BeginWide ();
Tbl_TR_Begin ("class=\"MATCH_RES_TR\"");
Tbl_TR_Begin ("class=\"MCH_RES_TR\"");
for (i = 0;
i < 100;
i++)
{
Tbl_TD_Begin ("class=\"%s\"",
(i < BarWidth) ? (Correct ? "MATCH_RES_CORRECT" :
"MATCH_RES_WRONG") :
"MATCH_RES_VOID");
(i < BarWidth) ? (Correct ? "MCH_RES_CORRECT" :
"MCH_RES_WRONG") :
"MCH_RES_VOID");
Tbl_TD_End ();
}
Tbl_TR_End ();

View File

@ -4199,8 +4199,8 @@ static void Tst_WriteChoiceAnsViewMatch (long MchCod,unsigned QstInd,long QstCod
Tbl_TR_Begin (NULL);
/***** Write letter for this option *****/
Tbl_TD_Begin ("class=\"MATCH_TCH_BUTTON_TD\"");
fprintf (Gbl.F.Out,"<div class=\"MATCH_TCH_BUTTON BT_%c\">"
Tbl_TD_Begin ("class=\"MCH_TCH_BUTTON_TD\"");
fprintf (Gbl.F.Out,"<div class=\"MCH_TCH_BUTTON BT_%c\">"
"%c"
"</div>",
'A' + (char) NumOpt,