mirror of https://github.com/acanas/swad-core.git
Version19.229
This commit is contained in:
parent
68a174d4d5
commit
2acc20731a
111
js/swad19.223.js
111
js/swad19.223.js
|
@ -547,117 +547,6 @@ function readConnUsrsData () {
|
|||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******* Automatic refresh of current exam event question using AJAX *********/
|
||||
/*****************************************************************************/
|
||||
|
||||
// This function must be called from time to time
|
||||
var objXMLHttpReqExaEvtStd = false;
|
||||
function refreshExamEventStd () {
|
||||
objXMLHttpReqExaEvtStd = AJAXCreateObject();
|
||||
if (objXMLHttpReqExaEvtStd) {
|
||||
var RefreshParams = RefreshParamNxtActExaEvt + '&' +
|
||||
RefreshParamExaEvtCod + '&' +
|
||||
RefreshParamIdSes;
|
||||
|
||||
objXMLHttpReqExaEvtStd.onreadystatechange = readExamEventStdData; // onreadystatechange must be lowercase
|
||||
objXMLHttpReqExaEvtStd.open('POST',ActionAJAX,true);
|
||||
objXMLHttpReqExaEvtStd.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
|
||||
objXMLHttpReqExaEvtStd.send(RefreshParams);
|
||||
}
|
||||
}
|
||||
|
||||
function readExamEventStdData () {
|
||||
if (objXMLHttpReqExaEvtStd.readyState == 4) { // Check if data have been received
|
||||
if (objXMLHttpReqExaEvtStd.status == 200) {
|
||||
var htmlExamEvent = objXMLHttpReqExaEvtStd.responseText; // Get HTML code
|
||||
|
||||
var div = document.getElementById('exam_event'); // Access to refreshable DIV
|
||||
if (div)
|
||||
div.innerHTML = htmlExamEvent; // Update DIV content
|
||||
// Global delay variable is set initially in swad-core
|
||||
setTimeout('refreshExamEventStd()',delayExamEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/** Automatic refresh of left part of current exam event question using AJAX **/
|
||||
/*****************************************************************************/
|
||||
|
||||
//This function must be called from time to time
|
||||
var objXMLHttpReqExaEvtTch = false;
|
||||
function refreshExamEventTch () {
|
||||
objXMLHttpReqExaEvtTch = AJAXCreateObject();
|
||||
if (objXMLHttpReqExaEvtTch) {
|
||||
var RefreshParams = RefreshParamNxtActExaEvt + '&' +
|
||||
RefreshParamExaEvtCod + '&' +
|
||||
RefreshParamIdSes;
|
||||
|
||||
objXMLHttpReqExaEvtTch.onreadystatechange = readExamEventTchData; // onreadystatechange must be lowercase
|
||||
objXMLHttpReqExaEvtTch.open('POST',ActionAJAX,true);
|
||||
objXMLHttpReqExaEvtTch.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
|
||||
objXMLHttpReqExaEvtTch.send(RefreshParams);
|
||||
}
|
||||
}
|
||||
|
||||
function readExamEventTchData () {
|
||||
if (objXMLHttpReqExaEvtTch.readyState == 4) { // Check if data have been received
|
||||
if (objXMLHttpReqExaEvtTch.status == 200) {
|
||||
var endOfId = objXMLHttpReqExaEvtTch.responseText.indexOf('|',0 ); // Get separator position
|
||||
var endOfEv = objXMLHttpReqExaEvtTch.responseText.indexOf('|',endOfId + 1); // Get separator position
|
||||
|
||||
var id = objXMLHttpReqExaEvtTch.responseText.substring(0 ,endOfId); // Get id
|
||||
var ev = objXMLHttpReqExaEvtTch.responseText.substring(endOfId + 1,endOfEv); // Get ev ('0' / '1')
|
||||
var html = objXMLHttpReqExaEvtTch.responseText.substring(endOfEv + 1); // Get HTML code
|
||||
|
||||
var div = document.getElementById(id); // Access to refreshable DIV
|
||||
if (div) {
|
||||
div.innerHTML = html; // Update DIV content
|
||||
|
||||
if (parseInt(ev)) { // 0 / 1
|
||||
// Scripts in div got via AJAX are not executed ==> execute them
|
||||
evalScriptsInElem (div);
|
||||
|
||||
// Process mathematics; see http://docs.mathjax.org/en/latest/advanced/typeset.html
|
||||
// MathJax.Hub.Queue(["Typeset",MathJax.Hub,div]); // old versions
|
||||
MathJax.typeset();
|
||||
}
|
||||
}
|
||||
|
||||
// Global delay variable is set initially in swad-core
|
||||
setTimeout('refreshExamEventTch()',delayExamEvent);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**************** Update exam event control area using AJAX ******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
// This function is called when user submit a form inside two parent divs
|
||||
function updateExamEventTch (id,Params) {
|
||||
var objXMLHttp = false;
|
||||
|
||||
objXMLHttp = AJAXCreateObject ();
|
||||
if (objXMLHttp) {
|
||||
/* Send request to server */
|
||||
objXMLHttp.onreadystatechange = function() { // onreadystatechange must be lowercase
|
||||
if (objXMLHttp.readyState == 4) { // Check if data have been received
|
||||
if (objXMLHttp.status == 200)
|
||||
if (id) {
|
||||
var div = document.getElementById(id); // Access to DIV
|
||||
if (div)
|
||||
div.innerHTML = objXMLHttp.responseText; // Update DIV content
|
||||
}
|
||||
}
|
||||
};
|
||||
objXMLHttp.open('POST',ActionAJAX,true);
|
||||
objXMLHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
objXMLHttp.send(Params);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************** Update exam print main area using AJAX ********************/
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -477,13 +477,6 @@ CREATE TABLE IF NOT EXISTS exa_events (
|
|||
StartTime DATETIME NOT NULL,
|
||||
EndTime DATETIME NOT NULL,
|
||||
Title VARCHAR(2047) NOT NULL,
|
||||
QstInd INT NOT NULL DEFAULT 0,
|
||||
QstCod INT NOT NULL DEFAULT -1,
|
||||
Showing ENUM('start','stem','answers','results','end') NOT NULL DEFAULT 'start',
|
||||
Countdown INT NOT NULL DEFAULT -1,
|
||||
NumCols INT NOT NULL DEFAULT 1,
|
||||
ShowQstResults ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||
ShowUsrResults ENUM('N','Y') NOT NULL DEFAULT 'N',
|
||||
UNIQUE INDEX(EvtCod),
|
||||
INDEX(ExaCod));
|
||||
--
|
||||
|
|
|
@ -688,21 +688,6 @@ const struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
[ActHidExaEvt ] = {1900,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_HideEvent ,NULL},
|
||||
[ActShoExaEvt ] = {1901,-1,TabUnk,ActSeeAllExa ,0x238,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaEvt_UnhideEvent ,NULL},
|
||||
|
||||
[ActResExaEvt ] = {1854,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_ResumeEvent ,NULL},
|
||||
[ActBckExaEvt ] = {1855,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_BackEvent ,NULL},
|
||||
[ActPlyPauExaEvt ] = {1856,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_PlayPauseEvent ,NULL},
|
||||
[ActFwdExaEvt ] = {1857,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_ForwardEvent ,NULL},
|
||||
[ActChgNumColExaEvt ] = {1858,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_ChangeNumColsEvt ,NULL},
|
||||
[ActChgVisResExaEvtQst] = {1859,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_ToggleVisibilResultsEvtQst,NULL},
|
||||
[ActExaEvtCntDwn ] = {1860,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_RFRESH,ExaEvt_GetEventBeingPlayed ,ExaEvt_StartCountdown ,NULL},
|
||||
[ActRefExaEvtTch ] = {1861,-1,TabUnk,ActSeeAllExa ,0x230,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_RFRESH,ExaEvt_GetEventBeingPlayed ,ExaEvt_RefreshEventTch ,NULL},
|
||||
|
||||
[ActJoiExaEvt ] = {1862,-1,TabUnk,ActSeeAllExa ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_NEW_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_JoinEventAsStd ,NULL},
|
||||
[ActSeeExaEvtAnsQstStd] = {1863,-1,TabUnk,ActSeeAllExa ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_JoinEventAsStd ,NULL},
|
||||
[ActRemExaEvtAnsQstStd] = {1864,-1,TabUnk,ActSeeAllExa ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_RemoveMyQuestionAnswer ,NULL},
|
||||
[ActAnsExaEvtQstStd ] = {1865,-1,TabUnk,ActSeeAllExa ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_2ND_TAB,ExaEvt_GetEventBeingPlayed ,ExaEvt_ReceiveQuestionAnswer ,NULL},
|
||||
[ActRefExaEvtStd ] = {1866,-1,TabUnk,ActSeeAllExa ,0x008, 0, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_AJAX_RFRESH,ExaEvt_GetEventBeingPlayed ,ExaEvt_RefreshEventStd ,NULL},
|
||||
|
||||
[ActSeeMyExaEvtResCrs] = {1867,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowMyExaResultsInCrs ,NULL},
|
||||
[ActSeeMyExaEvtResExa] = {1868,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowMyExaResultsInExa ,NULL},
|
||||
[ActSeeMyExaEvtResEvt] = {1869,-1,TabUnk,ActSeeAllExa ,0x208,0x200, 0, 0, 0, 0, 0,Act_CONT_NORM,Act_BRW_1ST_TAB,NULL ,ExaRes_ShowMyExaResultsInEvt ,NULL},
|
||||
|
@ -3675,19 +3660,19 @@ Act_Action_t Act_FromActCodToAction[1 + Act_MAX_ACTION_COD] = // Do not reuse un
|
|||
ActRemExaEvt, // #1851
|
||||
ActReqNewExaEvt, // #1852
|
||||
ActNewExaEvt, // #1853
|
||||
ActResExaEvt, // #1854
|
||||
ActBckExaEvt, // #1855
|
||||
ActPlyPauExaEvt, // #1856
|
||||
ActFwdExaEvt, // #1857
|
||||
ActChgNumColExaEvt, // #1858
|
||||
ActChgVisResExaEvtQst, // #1859
|
||||
ActExaEvtCntDwn, // #1860
|
||||
ActRefExaEvtTch, // #1861
|
||||
ActJoiExaEvt, // #1862
|
||||
ActSeeExaEvtAnsQstStd, // #1863
|
||||
ActRemExaEvtAnsQstStd, // #1864
|
||||
ActAnsExaEvtQstStd, // #1865
|
||||
ActRefExaEvtStd, // #1866
|
||||
-1, // #1854 (obsolete action)
|
||||
-1, // #1855 (obsolete action)
|
||||
-1, // #1856 (obsolete action)
|
||||
-1, // #1857 (obsolete action)
|
||||
-1, // #1858 (obsolete action)
|
||||
-1, // #1859 (obsolete action)
|
||||
-1, // #1860 (obsolete action)
|
||||
-1, // #1861 (obsolete action)
|
||||
-1, // #1862 (obsolete action)
|
||||
-1, // #1863 (obsolete action)
|
||||
-1, // #1864 (obsolete action)
|
||||
-1, // #1865 (obsolete action)
|
||||
-1, // #1866 (obsolete action)
|
||||
ActSeeMyExaEvtResCrs, // #1867
|
||||
ActSeeMyExaEvtResExa, // #1868
|
||||
ActSeeMyExaEvtResEvt, // #1869
|
||||
|
|
218
swad_action.h
218
swad_action.h
|
@ -654,135 +654,121 @@ typedef signed int Act_Action_t; // Must be a signed type, because -1 is used to
|
|||
#define ActHidExaEvt (ActChgCrsTT1stDay + 130)
|
||||
#define ActShoExaEvt (ActChgCrsTT1stDay + 131)
|
||||
|
||||
#define ActResExaEvt (ActChgCrsTT1stDay + 132)
|
||||
#define ActBckExaEvt (ActChgCrsTT1stDay + 133)
|
||||
#define ActPlyPauExaEvt (ActChgCrsTT1stDay + 134)
|
||||
#define ActFwdExaEvt (ActChgCrsTT1stDay + 135)
|
||||
#define ActChgNumColExaEvt (ActChgCrsTT1stDay + 136)
|
||||
#define ActChgVisResExaEvtQst (ActChgCrsTT1stDay + 137)
|
||||
#define ActExaEvtCntDwn (ActChgCrsTT1stDay + 138)
|
||||
#define ActRefExaEvtTch (ActChgCrsTT1stDay + 139)
|
||||
#define ActJoiExaEvt (ActChgCrsTT1stDay + 140)
|
||||
#define ActSeeExaEvtAnsQstStd (ActChgCrsTT1stDay + 141)
|
||||
#define ActRemExaEvtAnsQstStd (ActChgCrsTT1stDay + 142)
|
||||
#define ActAnsExaEvtQstStd (ActChgCrsTT1stDay + 143)
|
||||
#define ActRefExaEvtStd (ActChgCrsTT1stDay + 144)
|
||||
#define ActSeeMyExaEvtResCrs (ActChgCrsTT1stDay + 132)
|
||||
#define ActSeeMyExaEvtResExa (ActChgCrsTT1stDay + 133)
|
||||
#define ActSeeMyExaEvtResEvt (ActChgCrsTT1stDay + 134)
|
||||
#define ActSeeOneExaEvtResMe (ActChgCrsTT1stDay + 135)
|
||||
|
||||
#define ActSeeMyExaEvtResCrs (ActChgCrsTT1stDay + 145)
|
||||
#define ActSeeMyExaEvtResExa (ActChgCrsTT1stDay + 146)
|
||||
#define ActSeeMyExaEvtResEvt (ActChgCrsTT1stDay + 147)
|
||||
#define ActSeeOneExaEvtResMe (ActChgCrsTT1stDay + 148)
|
||||
#define ActReqSeeAllExaEvtRes (ActChgCrsTT1stDay + 136)
|
||||
#define ActSeeAllExaEvtResCrs (ActChgCrsTT1stDay + 137)
|
||||
#define ActSeeAllExaEvtResExa (ActChgCrsTT1stDay + 138)
|
||||
#define ActSeeAllExaEvtResEvt (ActChgCrsTT1stDay + 139)
|
||||
#define ActSeeOneExaEvtResOth (ActChgCrsTT1stDay + 140)
|
||||
|
||||
#define ActReqSeeAllExaEvtRes (ActChgCrsTT1stDay + 149)
|
||||
#define ActSeeAllExaEvtResCrs (ActChgCrsTT1stDay + 150)
|
||||
#define ActSeeAllExaEvtResExa (ActChgCrsTT1stDay + 151)
|
||||
#define ActSeeAllExaEvtResEvt (ActChgCrsTT1stDay + 152)
|
||||
#define ActSeeOneExaEvtResOth (ActChgCrsTT1stDay + 153)
|
||||
#define ActChgVisResExaEvtUsr (ActChgCrsTT1stDay + 141)
|
||||
|
||||
#define ActChgVisResExaEvtUsr (ActChgCrsTT1stDay + 154)
|
||||
#define ActFrmNewExa (ActChgCrsTT1stDay + 142)
|
||||
#define ActEdiOneExa (ActChgCrsTT1stDay + 143)
|
||||
#define ActNewExa (ActChgCrsTT1stDay + 144)
|
||||
#define ActChgExa (ActChgCrsTT1stDay + 145)
|
||||
#define ActReqRemExa (ActChgCrsTT1stDay + 146)
|
||||
#define ActRemExa (ActChgCrsTT1stDay + 147)
|
||||
#define ActHidExa (ActChgCrsTT1stDay + 148)
|
||||
#define ActShoExa (ActChgCrsTT1stDay + 149)
|
||||
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 150)
|
||||
#define ActNewExaSet (ActChgCrsTT1stDay + 151)
|
||||
#define ActReqRemExaSet (ActChgCrsTT1stDay + 152)
|
||||
#define ActRemExaSet (ActChgCrsTT1stDay + 153)
|
||||
#define ActUp_ExaSet (ActChgCrsTT1stDay + 154)
|
||||
#define ActDwnExaSet (ActChgCrsTT1stDay + 155)
|
||||
#define ActChgTitExaSet (ActChgCrsTT1stDay + 156)
|
||||
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 157)
|
||||
|
||||
#define ActFrmNewExa (ActChgCrsTT1stDay + 155)
|
||||
#define ActEdiOneExa (ActChgCrsTT1stDay + 156)
|
||||
#define ActNewExa (ActChgCrsTT1stDay + 157)
|
||||
#define ActChgExa (ActChgCrsTT1stDay + 158)
|
||||
#define ActReqRemExa (ActChgCrsTT1stDay + 159)
|
||||
#define ActRemExa (ActChgCrsTT1stDay + 160)
|
||||
#define ActHidExa (ActChgCrsTT1stDay + 161)
|
||||
#define ActShoExa (ActChgCrsTT1stDay + 162)
|
||||
#define ActFrmNewExaSet (ActChgCrsTT1stDay + 163)
|
||||
#define ActNewExaSet (ActChgCrsTT1stDay + 164)
|
||||
#define ActReqRemExaSet (ActChgCrsTT1stDay + 165)
|
||||
#define ActRemExaSet (ActChgCrsTT1stDay + 166)
|
||||
#define ActUp_ExaSet (ActChgCrsTT1stDay + 167)
|
||||
#define ActDwnExaSet (ActChgCrsTT1stDay + 168)
|
||||
#define ActChgTitExaSet (ActChgCrsTT1stDay + 169)
|
||||
#define ActChgNumQstExaSet (ActChgCrsTT1stDay + 170)
|
||||
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 158)
|
||||
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 159)
|
||||
#define ActAddQstToExa (ActChgCrsTT1stDay + 160)
|
||||
#define ActReqRemSetQst (ActChgCrsTT1stDay + 161)
|
||||
#define ActRemExaQst (ActChgCrsTT1stDay + 162)
|
||||
|
||||
#define ActReqAddQstExaSet (ActChgCrsTT1stDay + 171)
|
||||
#define ActLstTstQstForSet (ActChgCrsTT1stDay + 172)
|
||||
#define ActAddQstToExa (ActChgCrsTT1stDay + 173)
|
||||
#define ActReqRemSetQst (ActChgCrsTT1stDay + 174)
|
||||
#define ActRemExaQst (ActChgCrsTT1stDay + 175)
|
||||
#define ActSeeExaPrn (ActChgCrsTT1stDay + 163)
|
||||
#define ActAnsExaPrn (ActChgCrsTT1stDay + 164)
|
||||
#define ActEndExaPrn (ActChgCrsTT1stDay + 165)
|
||||
|
||||
#define ActSeeExaPrn (ActChgCrsTT1stDay + 176)
|
||||
#define ActAnsExaPrn (ActChgCrsTT1stDay + 177)
|
||||
#define ActEndExaPrn (ActChgCrsTT1stDay + 178)
|
||||
#define ActSeeGam (ActChgCrsTT1stDay + 166)
|
||||
#define ActReqRemMch (ActChgCrsTT1stDay + 167)
|
||||
#define ActRemMch (ActChgCrsTT1stDay + 168)
|
||||
#define ActReqNewMch (ActChgCrsTT1stDay + 169)
|
||||
#define ActNewMch (ActChgCrsTT1stDay + 170)
|
||||
#define ActResMch (ActChgCrsTT1stDay + 171)
|
||||
#define ActBckMch (ActChgCrsTT1stDay + 172)
|
||||
#define ActPlyPauMch (ActChgCrsTT1stDay + 173)
|
||||
#define ActFwdMch (ActChgCrsTT1stDay + 174)
|
||||
#define ActChgNumColMch (ActChgCrsTT1stDay + 175)
|
||||
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 176)
|
||||
#define ActMchCntDwn (ActChgCrsTT1stDay + 177)
|
||||
#define ActRefMchTch (ActChgCrsTT1stDay + 178)
|
||||
|
||||
#define ActSeeGam (ActChgCrsTT1stDay + 179)
|
||||
#define ActReqRemMch (ActChgCrsTT1stDay + 180)
|
||||
#define ActRemMch (ActChgCrsTT1stDay + 181)
|
||||
#define ActReqNewMch (ActChgCrsTT1stDay + 182)
|
||||
#define ActNewMch (ActChgCrsTT1stDay + 183)
|
||||
#define ActResMch (ActChgCrsTT1stDay + 184)
|
||||
#define ActBckMch (ActChgCrsTT1stDay + 185)
|
||||
#define ActPlyPauMch (ActChgCrsTT1stDay + 186)
|
||||
#define ActFwdMch (ActChgCrsTT1stDay + 187)
|
||||
#define ActChgNumColMch (ActChgCrsTT1stDay + 188)
|
||||
#define ActChgVisResMchQst (ActChgCrsTT1stDay + 189)
|
||||
#define ActMchCntDwn (ActChgCrsTT1stDay + 190)
|
||||
#define ActRefMchTch (ActChgCrsTT1stDay + 191)
|
||||
#define ActJoiMch (ActChgCrsTT1stDay + 179)
|
||||
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 180)
|
||||
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 181)
|
||||
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 182)
|
||||
#define ActRefMchStd (ActChgCrsTT1stDay + 183)
|
||||
|
||||
#define ActJoiMch (ActChgCrsTT1stDay + 192)
|
||||
#define ActSeeMchAnsQstStd (ActChgCrsTT1stDay + 193)
|
||||
#define ActRemMchAnsQstStd (ActChgCrsTT1stDay + 194)
|
||||
#define ActAnsMchQstStd (ActChgCrsTT1stDay + 195)
|
||||
#define ActRefMchStd (ActChgCrsTT1stDay + 196)
|
||||
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 184)
|
||||
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 185)
|
||||
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 186)
|
||||
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 187)
|
||||
|
||||
#define ActSeeMyMchResCrs (ActChgCrsTT1stDay + 197)
|
||||
#define ActSeeMyMchResGam (ActChgCrsTT1stDay + 198)
|
||||
#define ActSeeMyMchResMch (ActChgCrsTT1stDay + 199)
|
||||
#define ActSeeOneMchResMe (ActChgCrsTT1stDay + 200)
|
||||
#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 188)
|
||||
#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 189)
|
||||
#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 190)
|
||||
#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 191)
|
||||
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 192)
|
||||
|
||||
#define ActReqSeeAllMchRes (ActChgCrsTT1stDay + 201)
|
||||
#define ActSeeAllMchResCrs (ActChgCrsTT1stDay + 202)
|
||||
#define ActSeeAllMchResGam (ActChgCrsTT1stDay + 203)
|
||||
#define ActSeeAllMchResMch (ActChgCrsTT1stDay + 204)
|
||||
#define ActSeeOneMchResOth (ActChgCrsTT1stDay + 205)
|
||||
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 193)
|
||||
|
||||
#define ActChgVisResMchUsr (ActChgCrsTT1stDay + 206)
|
||||
#define ActFrmNewGam (ActChgCrsTT1stDay + 194)
|
||||
#define ActEdiOneGam (ActChgCrsTT1stDay + 195)
|
||||
#define ActNewGam (ActChgCrsTT1stDay + 196)
|
||||
#define ActChgGam (ActChgCrsTT1stDay + 197)
|
||||
#define ActReqRemGam (ActChgCrsTT1stDay + 198)
|
||||
#define ActRemGam (ActChgCrsTT1stDay + 199)
|
||||
#define ActHidGam (ActChgCrsTT1stDay + 200)
|
||||
#define ActShoGam (ActChgCrsTT1stDay + 201)
|
||||
#define ActAddOneGamQst (ActChgCrsTT1stDay + 202)
|
||||
#define ActGamLstTstQst (ActChgCrsTT1stDay + 203)
|
||||
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 204)
|
||||
#define ActReqRemGamQst (ActChgCrsTT1stDay + 205)
|
||||
#define ActRemGamQst (ActChgCrsTT1stDay + 206)
|
||||
#define ActUp_GamQst (ActChgCrsTT1stDay + 207)
|
||||
#define ActDwnGamQst (ActChgCrsTT1stDay + 208)
|
||||
|
||||
#define ActFrmNewGam (ActChgCrsTT1stDay + 207)
|
||||
#define ActEdiOneGam (ActChgCrsTT1stDay + 208)
|
||||
#define ActNewGam (ActChgCrsTT1stDay + 209)
|
||||
#define ActChgGam (ActChgCrsTT1stDay + 210)
|
||||
#define ActReqRemGam (ActChgCrsTT1stDay + 211)
|
||||
#define ActRemGam (ActChgCrsTT1stDay + 212)
|
||||
#define ActHidGam (ActChgCrsTT1stDay + 213)
|
||||
#define ActShoGam (ActChgCrsTT1stDay + 214)
|
||||
#define ActAddOneGamQst (ActChgCrsTT1stDay + 215)
|
||||
#define ActGamLstTstQst (ActChgCrsTT1stDay + 216)
|
||||
#define ActAddTstQstToGam (ActChgCrsTT1stDay + 217)
|
||||
#define ActReqRemGamQst (ActChgCrsTT1stDay + 218)
|
||||
#define ActRemGamQst (ActChgCrsTT1stDay + 219)
|
||||
#define ActUp_GamQst (ActChgCrsTT1stDay + 220)
|
||||
#define ActDwnGamQst (ActChgCrsTT1stDay + 221)
|
||||
#define ActSeeSvy (ActChgCrsTT1stDay + 209)
|
||||
#define ActAnsSvy (ActChgCrsTT1stDay + 210)
|
||||
#define ActFrmNewSvy (ActChgCrsTT1stDay + 211)
|
||||
#define ActEdiOneSvy (ActChgCrsTT1stDay + 212)
|
||||
#define ActNewSvy (ActChgCrsTT1stDay + 213)
|
||||
#define ActChgSvy (ActChgCrsTT1stDay + 214)
|
||||
#define ActReqRemSvy (ActChgCrsTT1stDay + 215)
|
||||
#define ActRemSvy (ActChgCrsTT1stDay + 216)
|
||||
#define ActReqRstSvy (ActChgCrsTT1stDay + 217)
|
||||
#define ActRstSvy (ActChgCrsTT1stDay + 218)
|
||||
#define ActHidSvy (ActChgCrsTT1stDay + 219)
|
||||
#define ActShoSvy (ActChgCrsTT1stDay + 220)
|
||||
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 221)
|
||||
#define ActRcvSvyQst (ActChgCrsTT1stDay + 222)
|
||||
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 223)
|
||||
#define ActRemSvyQst (ActChgCrsTT1stDay + 224)
|
||||
|
||||
#define ActSeeSvy (ActChgCrsTT1stDay + 222)
|
||||
#define ActAnsSvy (ActChgCrsTT1stDay + 223)
|
||||
#define ActFrmNewSvy (ActChgCrsTT1stDay + 224)
|
||||
#define ActEdiOneSvy (ActChgCrsTT1stDay + 225)
|
||||
#define ActNewSvy (ActChgCrsTT1stDay + 226)
|
||||
#define ActChgSvy (ActChgCrsTT1stDay + 227)
|
||||
#define ActReqRemSvy (ActChgCrsTT1stDay + 228)
|
||||
#define ActRemSvy (ActChgCrsTT1stDay + 229)
|
||||
#define ActReqRstSvy (ActChgCrsTT1stDay + 230)
|
||||
#define ActRstSvy (ActChgCrsTT1stDay + 231)
|
||||
#define ActHidSvy (ActChgCrsTT1stDay + 232)
|
||||
#define ActShoSvy (ActChgCrsTT1stDay + 233)
|
||||
#define ActEdiOneSvyQst (ActChgCrsTT1stDay + 234)
|
||||
#define ActRcvSvyQst (ActChgCrsTT1stDay + 235)
|
||||
#define ActReqRemSvyQst (ActChgCrsTT1stDay + 236)
|
||||
#define ActRemSvyQst (ActChgCrsTT1stDay + 237)
|
||||
|
||||
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 238)
|
||||
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 239)
|
||||
#define ActEdiExaAnn (ActChgCrsTT1stDay + 240)
|
||||
#define ActRcvExaAnn (ActChgCrsTT1stDay + 241)
|
||||
#define ActPrnExaAnn (ActChgCrsTT1stDay + 242)
|
||||
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 243)
|
||||
#define ActRemExaAnn (ActChgCrsTT1stDay + 244)
|
||||
#define ActHidExaAnn (ActChgCrsTT1stDay + 245)
|
||||
#define ActShoExaAnn (ActChgCrsTT1stDay + 246)
|
||||
#define ActSeeOneExaAnn (ActChgCrsTT1stDay + 225)
|
||||
#define ActSeeDatExaAnn (ActChgCrsTT1stDay + 226)
|
||||
#define ActEdiExaAnn (ActChgCrsTT1stDay + 227)
|
||||
#define ActRcvExaAnn (ActChgCrsTT1stDay + 228)
|
||||
#define ActPrnExaAnn (ActChgCrsTT1stDay + 229)
|
||||
#define ActReqRemExaAnn (ActChgCrsTT1stDay + 230)
|
||||
#define ActRemExaAnn (ActChgCrsTT1stDay + 231)
|
||||
#define ActHidExaAnn (ActChgCrsTT1stDay + 232)
|
||||
#define ActShoExaAnn (ActChgCrsTT1stDay + 233)
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************** Files tab **********************************/
|
||||
|
|
|
@ -548,10 +548,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.228.2 (2020-05-13)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 19.229 (2020-05-13)"
|
||||
#define CSS_FILE "swad19.217.css"
|
||||
#define JS_FILE "swad19.223.js"
|
||||
/*
|
||||
Version 19.229: May 13, 2020 Removed unused code in exam events. (301163 lines)
|
||||
1 change necessary in database:
|
||||
ALTER TABLE exa_events DROP COLUMN QstInd,DROP COLUMN QstCod,DROP COLUMN Showing,DROP COLUMN Countdown,DROP COLUMN NumCols,DROP COLUMN ShowQstResults;
|
||||
|
||||
Version 19.228.2: May 13, 2020 Code refactoring in exam prints. (303829 lines)
|
||||
Version 19.228.1: May 13, 2020 Code refactoring in exam prints. (303828 lines)
|
||||
Version 19.228: May 13, 2020 Code refactoring and bug fixing in exam prints. (303837 lines)
|
||||
|
|
|
@ -1040,25 +1040,19 @@ mysql> DESCRIBE exa_groups;
|
|||
/***** Table exa_events *****/
|
||||
/*
|
||||
mysql> DESCRIBE exa_events;
|
||||
+----------------+------------------------------------------------+------+-----+---------+----------------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------------+------------------------------------------------+------+-----+---------+----------------+
|
||||
| EvtCod | int(11) | NO | PRI | NULL | auto_increment |
|
||||
| ExaCod | int(11) | NO | MUL | NULL | |
|
||||
| Hidden | enum('N','Y') | NO | | N | |
|
||||
| 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 | |
|
||||
| Showing | enum('start','stem','answers','results','end') | NO | | start | |
|
||||
| Countdown | int(11) | NO | | -1 | |
|
||||
| NumCols | int(11) | NO | | 1 | |
|
||||
| ShowQstResults | enum('N','Y') | NO | | N | |
|
||||
| ShowUsrResults | enum('N','Y') | NO | | N | |
|
||||
+----------------+------------------------------------------------+------+-----+---------+----------------+
|
||||
14 rows in set (0.00 sec)
|
||||
+----------------+---------------+------+-----+---------+----------------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------------+---------------+------+-----+---------+----------------+
|
||||
| EvtCod | int(11) | NO | PRI | NULL | auto_increment |
|
||||
| ExaCod | int(11) | NO | MUL | NULL | |
|
||||
| Hidden | enum('N','Y') | NO | | N | |
|
||||
| UsrCod | int(11) | NO | | NULL | |
|
||||
| StartTime | datetime | NO | | NULL | |
|
||||
| EndTime | datetime | NO | | NULL | |
|
||||
| Title | varchar(2047) | NO | | NULL | |
|
||||
| ShowUsrResults | enum('N','Y') | NO | | N | |
|
||||
+----------------+---------------+------+-----+---------+----------------+
|
||||
8 rows in set (0.00 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS exa_events ("
|
||||
"EvtCod INT NOT NULL AUTO_INCREMENT,"
|
||||
|
@ -1068,12 +1062,6 @@ mysql> DESCRIBE exa_events;
|
|||
"StartTime DATETIME NOT NULL,"
|
||||
"EndTime DATETIME NOT NULL,"
|
||||
"Title VARCHAR(2047) NOT NULL," // ExaEvt_MAX_BYTES_TITLE
|
||||
"QstInd INT NOT NULL DEFAULT 0,"
|
||||
"QstCod INT NOT NULL DEFAULT -1,"
|
||||
"Showing ENUM('start','stem','answers','results','end') NOT NULL DEFAULT 'start',"
|
||||
"Countdown INT NOT NULL DEFAULT -1,"
|
||||
"NumCols INT NOT NULL DEFAULT 1,"
|
||||
"ShowQstResults ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
||||
"ShowUsrResults ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
||||
"UNIQUE INDEX(EvtCod),"
|
||||
"INDEX(ExaCod))");
|
||||
|
|
2677
swad_exam_event.c
2677
swad_exam_event.c
File diff suppressed because it is too large
Load Diff
|
@ -48,8 +48,6 @@ struct ExaEvt_UsrAnswer
|
|||
/***************************** Public prototypes *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
long ExaEvt_GetEvtCodBeingPlayed (void);
|
||||
|
||||
void ExaEvt_ResetEvent (struct ExaEvt_Event *Event);
|
||||
|
||||
void ExaEvt_ListEvents (struct Exa_Exams *Exams,
|
||||
|
@ -79,44 +77,16 @@ long ExaEvt_GetParamEvtCod (void);
|
|||
void ExaEvt_PutButtonNewEvent (struct Exa_Exams *Exams,long ExaCod);
|
||||
void ExaEvt_RequestCreatOrEditEvent (void);
|
||||
void ExaEvt_ReceiveFormEvent (void);
|
||||
void ExaEvt_ResumeEvent (void);
|
||||
void ExaEvt_GetIndexes (long EvtCod,unsigned QstInd,
|
||||
unsigned Indexes[Tst_MAX_OPTIONS_PER_QUESTION]);
|
||||
|
||||
void ExaEvt_RemoveGroup (long GrpCod);
|
||||
void ExaEvt_RemoveGroupsOfType (long GrpTypCod);
|
||||
|
||||
void ExaEvt_PlayPauseEvent (void);
|
||||
void ExaEvt_ChangeNumColsEvt (void);
|
||||
void ExaEvt_ToggleVisibilResultsEvtQst (void);
|
||||
void ExaEvt_BackEvent (void);
|
||||
void ExaEvt_ForwardEvent (void);
|
||||
|
||||
unsigned ExaEvt_GetNumEventsInExam (long ExaCod);
|
||||
unsigned ExaEvt_GetNumOpenEventsInExam (long ExaCod);
|
||||
|
||||
bool ExaEvt_CheckIfICanPlayThisEventBasedOnGrps (const struct ExaEvt_Event *Event);
|
||||
|
||||
void ExaEvt_WriteChoiceAnsViewEvent (const struct ExaEvt_Event *Event,
|
||||
const struct Tst_Question *Question,
|
||||
const char *Class,bool ShowResult);
|
||||
|
||||
bool ExaEvt_RegisterMeAsParticipantInEvent (struct ExaEvt_Event *Event);
|
||||
|
||||
void ExaEvt_GetEventBeingPlayed (void);
|
||||
void ExaEvt_JoinEventAsStd (void);
|
||||
void ExaEvt_RemoveMyQuestionAnswer (void);
|
||||
|
||||
void ExaEvt_StartCountdown (void);
|
||||
void ExaEvt_RefreshEventTch (void);
|
||||
void ExaEvt_RefreshEventStd (void);
|
||||
|
||||
void ExaEvt_GetQstAnsFromDB (long EvtCod,long UsrCod,unsigned QstInd,
|
||||
struct ExaEvt_UsrAnswer *UsrAnswer);
|
||||
void ExaEvt_ReceiveQuestionAnswer (void);
|
||||
|
||||
unsigned ExaEvt_GetNumUsrsWhoAnsweredQst (long EvtCod,unsigned QstInd);
|
||||
unsigned ExaEvt_GetNumUsrsWhoHaveChosenAns (long EvtCod,unsigned QstInd,unsigned AnsInd);
|
||||
void ExaEvt_DrawBarNumUsrs (unsigned NumRespondersAns,unsigned NumRespondersQst,bool Correct);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1444,7 +1444,7 @@ static bool ExaRes_CheckIfICanSeeEventResult (struct ExaEvt_Event *Event,long Us
|
|||
{
|
||||
case Rol_STD:
|
||||
ItsMe = Usr_ItsMe (UsrCod);
|
||||
if (ItsMe && Event->Status.ShowUsrResults)
|
||||
if (ItsMe && Event->ShowUsrResults)
|
||||
return ExaEvt_CheckIfICanPlayThisEventBasedOnGrps (Event);
|
||||
return false;
|
||||
case Rol_NET:
|
||||
|
|
|
@ -127,17 +127,6 @@ struct ExaSet_Set
|
|||
char Title[ExaSet_MAX_BYTES_TITLE + 1]; // Title of the set
|
||||
};
|
||||
|
||||
#define ExaEvt_NUM_SHOWING 5
|
||||
typedef enum
|
||||
{
|
||||
ExaEvt_START, // Start: don't show anything
|
||||
ExaEvt_STEM, // Showing only the question stem
|
||||
ExaEvt_ANSWERS, // Showing the question stem and the answers
|
||||
ExaEvt_RESULTS, // Showing the results
|
||||
ExaEvt_END, // End: don't show anything
|
||||
} ExaEvt_Showing_t;
|
||||
#define ExaEvt_SHOWING_DEFAULT ExaEvt_START
|
||||
|
||||
struct ExaEvt_Event
|
||||
{
|
||||
long EvtCod;
|
||||
|
@ -147,21 +136,7 @@ struct ExaEvt_Event
|
|||
char Title[ExaEvt_MAX_BYTES_TITLE + 1];
|
||||
bool Hidden;
|
||||
bool Open; // If now is between start and end dates
|
||||
struct
|
||||
{
|
||||
unsigned QstInd; // 0 means that the exam has not started. First question has index 1.
|
||||
long QstCod;
|
||||
time_t QstStartTimeUTC;
|
||||
ExaEvt_Showing_t Showing; // What is shown on teacher's screen
|
||||
long Countdown; // > 0 ==> countdown in progress
|
||||
// = 0 ==> countdown over ==> go to next step
|
||||
// < 0 ==> no countdown at this time
|
||||
unsigned NumCols; // Number of columns for answers on teacher's screen
|
||||
bool ShowQstResults; // Show global results of current question while playing
|
||||
bool ShowUsrResults; // Show exam with results of all questions for the student
|
||||
bool Happening; // Is being played now?
|
||||
unsigned NumParticipants;
|
||||
} Status; // Status related to event playing
|
||||
bool ShowUsrResults; // Show exam with results of all questions for the student
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -282,16 +282,6 @@ void Lay_WriteStartOfPage (void)
|
|||
HTM_Txt ("<body onload=\"init();\"");
|
||||
switch (Gbl.Action.Act)
|
||||
{
|
||||
case ActNewExaEvt:
|
||||
case ActResExaEvt:
|
||||
case ActBckExaEvt:
|
||||
case ActPlyPauExaEvt:
|
||||
case ActFwdExaEvt:
|
||||
case ActChgNumColExaEvt:
|
||||
case ActChgVisResExaEvtQst:
|
||||
case ActExaEvtCntDwn:
|
||||
HTM_Txt (" class=\"EXA_BG\"");
|
||||
break;
|
||||
case ActNewMch:
|
||||
case ActResMch:
|
||||
case ActBckMch:
|
||||
|
@ -764,8 +754,6 @@ static void Lay_WriteScriptInit (void)
|
|||
bool RefreshConnected;
|
||||
bool RefreshLastClicks = false;
|
||||
bool RefreshNewTimeline = false;
|
||||
bool RefreshExamEventStd = false;
|
||||
bool RefreshExamEventTch = false;
|
||||
bool RefreshMatchStd = false;
|
||||
bool RefreshMatchTch = false;
|
||||
|
||||
|
@ -790,24 +778,6 @@ static void Lay_WriteScriptInit (void)
|
|||
RefreshNewTimeline = true;
|
||||
break;
|
||||
|
||||
/* Exam event */
|
||||
case ActJoiExaEvt:
|
||||
case ActSeeExaEvtAnsQstStd:
|
||||
case ActRemExaEvtAnsQstStd:
|
||||
case ActAnsExaEvtQstStd:
|
||||
RefreshExamEventStd = true;
|
||||
break;
|
||||
case ActNewExaEvt:
|
||||
case ActResExaEvt:
|
||||
case ActBckExaEvt:
|
||||
case ActPlyPauExaEvt:
|
||||
case ActFwdExaEvt:
|
||||
case ActChgNumColExaEvt:
|
||||
case ActChgVisResExaEvtQst:
|
||||
case ActExaEvtCntDwn:
|
||||
RefreshExamEventTch = true;
|
||||
break;
|
||||
|
||||
/* Match */
|
||||
case ActJoiMch:
|
||||
case ActSeeMchAnsQstStd:
|
||||
|
@ -836,10 +806,6 @@ static void Lay_WriteScriptInit (void)
|
|||
|
||||
if (RefreshNewTimeline) // Refresh new timeline via AJAX
|
||||
HTM_TxtF ("\tvar delayNewTL = %lu;\n",Cfg_TIME_TO_REFRESH_TIMELINE);
|
||||
else if (RefreshExamEventStd) // Refresh exam event via AJAX
|
||||
HTM_TxtF ("\tvar delayExamEvent = %lu;\n",Cfg_TIME_TO_REFRESH_MATCH_STD);
|
||||
else if (RefreshExamEventTch) // Refresh exam event via AJAX
|
||||
HTM_TxtF ("\tvar delayExamEvent = %lu;\n",Cfg_TIME_TO_REFRESH_MATCH_TCH);
|
||||
else if (RefreshMatchStd) // Refresh match via AJAX
|
||||
HTM_TxtF ("\tvar delayMatch = %lu;\n",Cfg_TIME_TO_REFRESH_MATCH_STD);
|
||||
else if (RefreshMatchTch) // Refresh match via AJAX
|
||||
|
@ -862,10 +828,6 @@ static void Lay_WriteScriptInit (void)
|
|||
Cfg_TIME_TO_REFRESH_LAST_CLICKS);
|
||||
else if (RefreshNewTimeline) // Refresh timeline via AJAX
|
||||
HTM_Txt ("\tsetTimeout(\"refreshNewTL()\",delayNewTL);\n");
|
||||
else if (RefreshExamEventStd) // Refresh exam event for a student via AJAX
|
||||
HTM_Txt ("\tsetTimeout(\"refreshExamEventStd()\",delayExamEvent);\n");
|
||||
else if (RefreshExamEventTch) // Refresh exam event for a teacher via AJAX
|
||||
HTM_Txt ("\tsetTimeout(\"refreshExamEventTch()\",delayExamEvent);\n");
|
||||
else if (RefreshMatchStd) // Refresh match for a student via AJAX
|
||||
HTM_Txt ("\tsetTimeout(\"refreshMatchStd()\",delayMatch);\n");
|
||||
else if (RefreshMatchTch) // Refresh match for a teacher via AJAX
|
||||
|
@ -947,34 +909,6 @@ static void Lay_WriteScriptParamsAJAX (void)
|
|||
Act_GetActCod (ActRefOldSocPubUsr),
|
||||
Gbl.Usrs.Other.UsrDat.EncryptedUsrCod);
|
||||
break;
|
||||
/* Parameters related with exam event refreshing (for students) */
|
||||
case ActJoiExaEvt:
|
||||
case ActSeeExaEvtAnsQstStd:
|
||||
case ActRemExaEvtAnsQstStd:
|
||||
case ActAnsExaEvtQstStd:
|
||||
// Refresh parameters
|
||||
HTM_TxtF ("var RefreshParamNxtActExaEvt = \"act=%ld\";\n"
|
||||
"var RefreshParamExaEvtCod = \"EvtCod=%ld\";\n",
|
||||
Act_GetActCod (ActRefExaEvtStd),
|
||||
ExaEvt_GetEvtCodBeingPlayed ());
|
||||
break;
|
||||
/* Parameters related with exam event refreshing (for teachers) */
|
||||
case ActNewExaEvt:
|
||||
case ActResExaEvt:
|
||||
case ActBckExaEvt:
|
||||
case ActPlyPauExaEvt:
|
||||
case ActFwdExaEvt:
|
||||
case ActChgNumColExaEvt:
|
||||
case ActChgVisResExaEvtQst:
|
||||
case ActExaEvtCntDwn:
|
||||
// Handle keys in keyboard/presenter
|
||||
HTM_Txt ("document.addEventListener(\"keydown\",handleMatchKeys);\n");
|
||||
// Refresh parameters
|
||||
HTM_TxtF ("var RefreshParamNxtActExaEvt = \"act=%ld\";\n"
|
||||
"var RefreshParamExaEvtCod = \"EvtCod=%ld\";\n",
|
||||
Act_GetActCod (ActRefExaEvtTch),
|
||||
ExaEvt_GetEvtCodBeingPlayed ());
|
||||
break;
|
||||
/* Parameters related with match refreshing (for students) */
|
||||
case ActJoiMch:
|
||||
case ActSeeMchAnsQstStd:
|
||||
|
|
|
@ -10245,279 +10245,6 @@ const char *Txt_Actions[Act_NUM_ACTIONS] =
|
|||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActResExaEvt] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActBckExaEvt] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActPlyPauExaEvt] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActFwdExaEvt] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActChgNumColExaEvt] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActChgVisResExaEvtQst] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActExaEvtCntDwn] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActRefExaEvtTch] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActJoiExaEvt] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActSeeExaEvtAnsQstStd] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActRemExaEvtAnsQstStd] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActAnsExaEvtQstStd] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActRefExaEvtStd] =
|
||||
#if L==1 // ca
|
||||
"" // Necessita traducció
|
||||
#elif L==2 // de
|
||||
"" // Need Übersetzung
|
||||
#elif L==3 // en
|
||||
""
|
||||
#elif L==4 // es
|
||||
""
|
||||
#elif L==5 // fr
|
||||
"" // Besoin de traduction
|
||||
#elif L==6 // gn
|
||||
"" // Okoteve traducción
|
||||
#elif L==7 // it
|
||||
"" // Bisogno di traduzione
|
||||
#elif L==8 // pl
|
||||
"" // Potrzebujesz tlumaczenie
|
||||
#elif L==9 // pt
|
||||
"" // Precisa de tradução
|
||||
#endif
|
||||
,
|
||||
[ActSeeMyExaEvtResCrs] =
|
||||
|
|
Loading…
Reference in New Issue