mirror of
https://github.com/acanas/swad-core.git
synced 2024-09-20 00:02:42 +02:00
Version 15.179
This commit is contained in:
parent
b7fb17f33d
commit
2d2dd7bb9e
|
@ -755,7 +755,8 @@ Assessment:
|
||||||
617. ActLstTstQst List for edition several self-assessment test questions
|
617. ActLstTstQst List for edition several self-assessment test questions
|
||||||
618. ActRcvTstQst Receive a question of self-assessment
|
618. ActRcvTstQst Receive a question of self-assessment
|
||||||
619. ActShfTstQst Change shuffle of of a question of self-assessment
|
619. ActShfTstQst Change shuffle of of a question of self-assessment
|
||||||
620. ActRemTstQst Remove a question of self-assessment
|
NEW 620. ActReqRemTstQst Request removing a self-assesment test question
|
||||||
|
620. ActRemTstQst Remove a self-assesment test question
|
||||||
621. ActCfgTst Request renaming of tags of questions of self-assesment
|
621. ActCfgTst Request renaming of tags of questions of self-assesment
|
||||||
622. ActEnableTag Enable a tag
|
622. ActEnableTag Enable a tag
|
||||||
623. ActDisableTag Disable a tag
|
623. ActDisableTag Disable a tag
|
||||||
|
@ -1336,7 +1337,7 @@ NEW 1071. ActFrmLogIn Show landing page (forms to log in and to create a new
|
||||||
1148. ActReqDatBrf Ask for metadata of a file in the briefcase
|
1148. ActReqDatBrf Ask for metadata of a file in the briefcase
|
||||||
1149. ActChgDatBrf Change metadata of a file in the briefcase
|
1149. ActChgDatBrf Change metadata of a file in the briefcase
|
||||||
1150. ActDowBrf Download a file in the briefcase
|
1150. ActDowBrf Download a file in the briefcase
|
||||||
1151. ActAskRemOldBrf Ask for removing old files in the briefcase
|
1151. ActReqRemOldBrf Ask for removing old files in the briefcase
|
||||||
1152. ActRemOldBrf Remove old files in the briefcase
|
1152. ActRemOldBrf Remove old files in the briefcase
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -2066,6 +2067,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActImpTstQst */{1008,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,TsI_ImportQstsFromXML ,NULL},
|
/* ActImpTstQst */{1008,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,TsI_ImportQstsFromXML ,NULL},
|
||||||
/* ActLstTstQst */{ 132,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_ListQuestionsToEdit ,NULL},
|
/* ActLstTstQst */{ 132,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_ListQuestionsToEdit ,NULL},
|
||||||
/* ActRcvTstQst */{ 126,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Tst_ReceiveQst ,NULL},
|
/* ActRcvTstQst */{ 126,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Tst_ReceiveQst ,NULL},
|
||||||
|
/* ActReqRemTstQst */{1523,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_RequestRemoveQst ,NULL},
|
||||||
/* ActRemTstQst */{ 133,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_RemoveQst ,NULL},
|
/* ActRemTstQst */{ 133,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_RemoveQst ,NULL},
|
||||||
/* ActShfTstQst */{ 455,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_ChangeShuffleQst ,NULL},
|
/* ActShfTstQst */{ 455,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_ChangeShuffleQst ,NULL},
|
||||||
|
|
||||||
|
@ -2706,7 +2708,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActReqDatBrf */{1047,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL},
|
/* ActReqDatBrf */{1047,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ShowFileMetadata ,NULL},
|
||||||
/* ActChgDatBrf */{1048,-1,TabPrf,ActAdmBrf ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL},
|
/* ActChgDatBrf */{1048,-1,TabPrf,ActAdmBrf ,0x1FC,0x1FC,0x1FC,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_ChgFileMetadata ,NULL},
|
||||||
/* ActDowBrf */{1123,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
|
/* ActDowBrf */{1123,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_DOWNLD_FILE,Brw_DownloadFile ,NULL ,NULL},
|
||||||
/* ActAskRemOldBrf */{1488,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemoveOldFiles ,NULL},
|
/* ActReqRemOldBrf */{1488,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_AskRemoveOldFiles ,NULL},
|
||||||
/* ActRemOldBrf */{1489,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemoveOldFiles ,NULL},
|
/* ActRemOldBrf */{1489,-1,TabPrf,ActAdmBrf ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Brw_RemoveOldFiles ,NULL},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -4203,7 +4205,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
ActChgCal1stDay, // #1485
|
ActChgCal1stDay, // #1485
|
||||||
ActChgCrsTT1stDay, // #1486
|
ActChgCrsTT1stDay, // #1486
|
||||||
ActChgMyTT1stDay, // #1487
|
ActChgMyTT1stDay, // #1487
|
||||||
ActAskRemOldBrf, // #1488
|
ActReqRemOldBrf, // #1488
|
||||||
ActRemOldBrf, // #1489
|
ActRemOldBrf, // #1489
|
||||||
ActSeeSocTmlGbl, // #1490
|
ActSeeSocTmlGbl, // #1490
|
||||||
-1, // #1491 (obsolete action)
|
-1, // #1491 (obsolete action)
|
||||||
|
@ -4238,6 +4240,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
ActSeeSocPrf, // #1520
|
ActSeeSocPrf, // #1520
|
||||||
ActFrmLogIn, // #1521
|
ActFrmLogIn, // #1521
|
||||||
ActUpdSignUpReq, // #1522
|
ActUpdSignUpReq, // #1522
|
||||||
|
ActReqRemTstQst, // #1523
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
157
swad_action.h
157
swad_action.h
|
@ -71,9 +71,9 @@ typedef enum
|
||||||
|
|
||||||
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||||
|
|
||||||
#define Act_NUM_ACTIONS (1+9+51+15+90+70+67+205+183+144+172+36+27+83)
|
#define Act_NUM_ACTIONS (1+9+51+15+90+70+67+205+184+144+172+36+27+83)
|
||||||
|
|
||||||
#define Act_MAX_ACTION_COD 1522
|
#define Act_MAX_ACTION_COD 1523
|
||||||
|
|
||||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
||||||
|
|
||||||
|
@ -782,90 +782,91 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
|
||||||
#define ActImpTstQst (ActRcvRchTxtCrsLnk+106)
|
#define ActImpTstQst (ActRcvRchTxtCrsLnk+106)
|
||||||
#define ActLstTstQst (ActRcvRchTxtCrsLnk+107)
|
#define ActLstTstQst (ActRcvRchTxtCrsLnk+107)
|
||||||
#define ActRcvTstQst (ActRcvRchTxtCrsLnk+108)
|
#define ActRcvTstQst (ActRcvRchTxtCrsLnk+108)
|
||||||
#define ActRemTstQst (ActRcvRchTxtCrsLnk+109)
|
#define ActReqRemTstQst (ActRcvRchTxtCrsLnk+109)
|
||||||
#define ActShfTstQst (ActRcvRchTxtCrsLnk+110)
|
#define ActRemTstQst (ActRcvRchTxtCrsLnk+110)
|
||||||
#define ActCfgTst (ActRcvRchTxtCrsLnk+111)
|
#define ActShfTstQst (ActRcvRchTxtCrsLnk+111)
|
||||||
#define ActEnableTag (ActRcvRchTxtCrsLnk+112)
|
#define ActCfgTst (ActRcvRchTxtCrsLnk+112)
|
||||||
#define ActDisableTag (ActRcvRchTxtCrsLnk+113)
|
#define ActEnableTag (ActRcvRchTxtCrsLnk+113)
|
||||||
#define ActRenTag (ActRcvRchTxtCrsLnk+114)
|
#define ActDisableTag (ActRcvRchTxtCrsLnk+114)
|
||||||
#define ActRcvCfgTst (ActRcvRchTxtCrsLnk+115)
|
#define ActRenTag (ActRcvRchTxtCrsLnk+115)
|
||||||
|
#define ActRcvCfgTst (ActRcvRchTxtCrsLnk+116)
|
||||||
|
|
||||||
#define ActReqSeeMyTstExa (ActRcvRchTxtCrsLnk+116)
|
#define ActReqSeeMyTstExa (ActRcvRchTxtCrsLnk+117)
|
||||||
#define ActSeeMyTstExa (ActRcvRchTxtCrsLnk+117)
|
#define ActSeeMyTstExa (ActRcvRchTxtCrsLnk+118)
|
||||||
#define ActSeeOneTstExaMe (ActRcvRchTxtCrsLnk+118)
|
#define ActSeeOneTstExaMe (ActRcvRchTxtCrsLnk+119)
|
||||||
#define ActReqSeeUsrTstExa (ActRcvRchTxtCrsLnk+119)
|
#define ActReqSeeUsrTstExa (ActRcvRchTxtCrsLnk+120)
|
||||||
#define ActSeeUsrTstExa (ActRcvRchTxtCrsLnk+120)
|
#define ActSeeUsrTstExa (ActRcvRchTxtCrsLnk+121)
|
||||||
#define ActSeeOneTstExaOth (ActRcvRchTxtCrsLnk+121)
|
#define ActSeeOneTstExaOth (ActRcvRchTxtCrsLnk+122)
|
||||||
|
|
||||||
#define ActPrnCal (ActRcvRchTxtCrsLnk+122)
|
#define ActPrnCal (ActRcvRchTxtCrsLnk+123)
|
||||||
#define ActChgCal1stDay (ActRcvRchTxtCrsLnk+123)
|
#define ActChgCal1stDay (ActRcvRchTxtCrsLnk+124)
|
||||||
|
|
||||||
#define ActEdiExaAnn (ActRcvRchTxtCrsLnk+124)
|
#define ActEdiExaAnn (ActRcvRchTxtCrsLnk+125)
|
||||||
#define ActRcvExaAnn (ActRcvRchTxtCrsLnk+125)
|
#define ActRcvExaAnn (ActRcvRchTxtCrsLnk+126)
|
||||||
#define ActPrnExaAnn (ActRcvRchTxtCrsLnk+126)
|
#define ActPrnExaAnn (ActRcvRchTxtCrsLnk+127)
|
||||||
#define ActRemExaAnn (ActRcvRchTxtCrsLnk+127)
|
#define ActRemExaAnn (ActRcvRchTxtCrsLnk+128)
|
||||||
|
|
||||||
#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+128)
|
#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+129)
|
||||||
|
|
||||||
#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+129)
|
#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+130)
|
||||||
#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+130)
|
#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+131)
|
||||||
#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+131)
|
#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+132)
|
||||||
#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+132)
|
#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+133)
|
||||||
#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+133)
|
#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+134)
|
||||||
|
|
||||||
#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+134)
|
#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+135)
|
||||||
#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+135)
|
#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+136)
|
||||||
#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+136)
|
#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+137)
|
||||||
#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+137)
|
#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+138)
|
||||||
#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+138)
|
#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+139)
|
||||||
|
|
||||||
#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+139)
|
#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+140)
|
||||||
|
|
||||||
#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+140)
|
#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+141)
|
||||||
#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+141)
|
#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+142)
|
||||||
#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+142)
|
#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+143)
|
||||||
#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+143)
|
#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+144)
|
||||||
#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+144)
|
#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+145)
|
||||||
#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+145)
|
#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+146)
|
||||||
#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+146)
|
#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+147)
|
||||||
#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+147)
|
#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+148)
|
||||||
#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+148)
|
#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+149)
|
||||||
#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+149)
|
#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+150)
|
||||||
#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+150)
|
#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+151)
|
||||||
#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+151)
|
#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+152)
|
||||||
#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+152)
|
#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+153)
|
||||||
#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+153)
|
#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+154)
|
||||||
#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+154)
|
#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+155)
|
||||||
#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+155)
|
#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+156)
|
||||||
#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+156)
|
#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+157)
|
||||||
#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+157)
|
#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+158)
|
||||||
#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+158)
|
#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+159)
|
||||||
#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+159)
|
#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+160)
|
||||||
#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+160)
|
#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+161)
|
||||||
#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+161)
|
#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+162)
|
||||||
|
|
||||||
#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+162)
|
#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+163)
|
||||||
#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+163)
|
#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+164)
|
||||||
#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+164)
|
#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+165)
|
||||||
#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+165)
|
#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+166)
|
||||||
#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+166)
|
#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+167)
|
||||||
#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+167)
|
#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+168)
|
||||||
#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+168)
|
#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+169)
|
||||||
#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+169)
|
#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+170)
|
||||||
#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+170)
|
#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+171)
|
||||||
#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+171)
|
#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+172)
|
||||||
#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+172)
|
#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+173)
|
||||||
#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+173)
|
#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+174)
|
||||||
#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+174)
|
#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+175)
|
||||||
#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+175)
|
#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+176)
|
||||||
#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+176)
|
#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+177)
|
||||||
#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+177)
|
#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+178)
|
||||||
#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+178)
|
#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+179)
|
||||||
#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+179)
|
#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+180)
|
||||||
#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+180)
|
#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+181)
|
||||||
#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+181)
|
#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+182)
|
||||||
#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+182)
|
#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+183)
|
||||||
#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+183)
|
#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+184)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* Users tab ***********************************/
|
/******************************* Users tab ***********************************/
|
||||||
|
@ -1392,7 +1393,7 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
|
||||||
#define ActChgDatBrf (ActSeeAllStaCrs+80)
|
#define ActChgDatBrf (ActSeeAllStaCrs+80)
|
||||||
#define ActDowBrf (ActSeeAllStaCrs+81)
|
#define ActDowBrf (ActSeeAllStaCrs+81)
|
||||||
|
|
||||||
#define ActAskRemOldBrf (ActSeeAllStaCrs+82)
|
#define ActReqRemOldBrf (ActSeeAllStaCrs+82)
|
||||||
#define ActRemOldBrf (ActSeeAllStaCrs+83)
|
#define ActRemOldBrf (ActSeeAllStaCrs+83)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -126,22 +126,27 @@
|
||||||
// TODO: Do not show e-mails of administrators and teachers in lists openly
|
// TODO: Do not show e-mails of administrators and teachers in lists openly
|
||||||
// TODO: Fix bug in marks reported by Francisco Ocaña
|
// TODO: Fix bug in marks reported by Francisco Ocaña
|
||||||
// TODO: In Statistics > Degrees, show only degrees with students
|
// TODO: In Statistics > Degrees, show only degrees with students
|
||||||
// TODO: Change layout of confirm / reject incription. Use green and red buttons
|
// TODO: Change layout of confirm / reject registration. Use green and red buttons
|
||||||
|
|
||||||
// TODO: Ask for confirmation when removing a test question
|
// TODO: When editing an existing question, put upper left contextual link to remove the question
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.178.2 (2016-04-05)"
|
#define Log_PLATFORM_VERSION "SWAD 15.179 (2016-04-05)"
|
||||||
#define CSS_FILE "swad15.178.1.css"
|
#define CSS_FILE "swad15.178.2.css"
|
||||||
#define JS_FILE "swad15.178.2.js"
|
#define JS_FILE "swad15.178.2.js"
|
||||||
|
|
||||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
||||||
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
|
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
|
||||||
/*
|
/*
|
||||||
Version 15.178.2: Apr 04, 2016 Changes in JavaScript related to images in test questions. (198265 lines)
|
Version 15.179: Apr 05, 2016 Fixed bug when getting a parameter.
|
||||||
|
Ask for confirmation when removing a test question. (198355 lines)
|
||||||
|
1 change necessary in database:
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1523','es','N','Preguntar si eliminar pregunta test');
|
||||||
|
|
||||||
|
Version 15.178.2: Apr 05, 2016 Changes in JavaScript related to images in test questions. (198265 lines)
|
||||||
Version 15.178.1: Apr 04, 2016 Changes in CSS related to images in test questions. (198240 lines)
|
Version 15.178.1: Apr 04, 2016 Changes in CSS related to images in test questions. (198240 lines)
|
||||||
Version 15.178: Apr 04, 2016 Code refactoring related to images in test questions. (198244 lines)
|
Version 15.178: Apr 04, 2016 Code refactoring related to images in test questions. (198244 lines)
|
||||||
5 changes necessary in database:
|
5 changes necessary in database:
|
||||||
|
|
|
@ -2074,7 +2074,7 @@ void Brw_GetParAndInitFileBrowser (void)
|
||||||
case ActReqDatBrf:
|
case ActReqDatBrf:
|
||||||
case ActChgDatBrf:
|
case ActChgDatBrf:
|
||||||
case ActDowBrf:
|
case ActDowBrf:
|
||||||
case ActAskRemOldBrf: // Ask for removing old files in briefcase
|
case ActReqRemOldBrf: // Ask for removing old files in briefcase
|
||||||
case ActRemOldBrf: // Remove old files in briefcase
|
case ActRemOldBrf: // Remove old files in briefcase
|
||||||
Gbl.FileBrowser.Type = Brw_ADMI_BRIEF_USR;
|
Gbl.FileBrowser.Type = Brw_ADMI_BRIEF_USR;
|
||||||
break;
|
break;
|
||||||
|
@ -2346,7 +2346,6 @@ static void Brw_GetParamsPathInTreeAndFileName (void)
|
||||||
{
|
{
|
||||||
if (strstr (Gbl.FileBrowser.FilFolLnkName,"..")) // ".." is not allowed in the path
|
if (strstr (Gbl.FileBrowser.FilFolLnkName,"..")) // ".." is not allowed in the path
|
||||||
Lay_ShowErrorAndExit ("Wrong path.");
|
Lay_ShowErrorAndExit ("Wrong path.");
|
||||||
|
|
||||||
Gbl.FileBrowser.FileType = FileType;
|
Gbl.FileBrowser.FileType = FileType;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -3542,7 +3541,7 @@ static void Brw_WriteTopBeforeShowingFileBrowser (void)
|
||||||
|
|
||||||
/***** Write contextual links *****/
|
/***** Write contextual links *****/
|
||||||
if (Gbl.FileBrowser.Type == Brw_ADMI_BRIEF_USR &&
|
if (Gbl.FileBrowser.Type == Brw_ADMI_BRIEF_USR &&
|
||||||
Gbl.Action.Act != ActAskRemOldBrf)
|
Gbl.Action.Act != ActReqRemOldBrf)
|
||||||
{
|
{
|
||||||
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
Brw_PutFormToAskRemOldFiles ();
|
Brw_PutFormToAskRemOldFiles ();
|
||||||
|
@ -11462,7 +11461,7 @@ static void Brw_PutFormToAskRemOldFiles (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Remove_old_files;
|
extern const char *Txt_Remove_old_files;
|
||||||
|
|
||||||
Lay_PutContextualLink (ActAskRemOldBrf,Brw_PutParamsContextualLink,
|
Lay_PutContextualLink (ActReqRemOldBrf,Brw_PutParamsContextualLink,
|
||||||
"remove-on64x64.png",
|
"remove-on64x64.png",
|
||||||
Txt_Remove_old_files,Txt_Remove_old_files);
|
Txt_Remove_old_files,Txt_Remove_old_files);
|
||||||
}
|
}
|
||||||
|
|
|
@ -502,8 +502,8 @@ unsigned Par_GetParameter (tParamType ParamType,const char *ParamName,
|
||||||
/***** For multiple parameters, loop for any ocurrence of the parameter
|
/***** For multiple parameters, loop for any ocurrence of the parameter
|
||||||
For unique parameter, find only the first ocurrence *****/
|
For unique parameter, find only the first ocurrence *****/
|
||||||
for (Param = Gbl.Params.List, NumTimes = 0;
|
for (Param = Gbl.Params.List, NumTimes = 0;
|
||||||
Param != NULL && (FindMoreThanOneOcurrence || NumTimes < 1);
|
Param != NULL && (FindMoreThanOneOcurrence || NumTimes == 0);
|
||||||
NumTimes++)
|
)
|
||||||
/***** Find next ocurrence of parameter in list of parameters *****/
|
/***** Find next ocurrence of parameter in list of parameters *****/
|
||||||
for (ParamFound = false;
|
for (ParamFound = false;
|
||||||
Param != NULL && !ParamFound;
|
Param != NULL && !ParamFound;
|
||||||
|
@ -531,7 +531,8 @@ unsigned Par_GetParameter (tParamType ParamType,const char *ParamName,
|
||||||
|
|
||||||
if (ParamFound)
|
if (ParamFound)
|
||||||
{
|
{
|
||||||
if (NumTimes == 0) // The first ocurrence of this parameter
|
NumTimes++;
|
||||||
|
if (NumTimes == 1) // NumTimes == 1 ==> the first ocurrence of this parameter
|
||||||
{
|
{
|
||||||
/***** Get the first ocurrence of this parameter in list *****/
|
/***** Get the first ocurrence of this parameter in list *****/
|
||||||
if (ParamPtr)
|
if (ParamPtr)
|
||||||
|
@ -541,7 +542,7 @@ unsigned Par_GetParameter (tParamType ParamType,const char *ParamName,
|
||||||
if (Param->FileName.Start != 0) // It's a file
|
if (Param->FileName.Start != 0) // It's a file
|
||||||
FindMoreThanOneOcurrence = false;
|
FindMoreThanOneOcurrence = false;
|
||||||
}
|
}
|
||||||
else // Not the first ocurrence of this parameter
|
else // NumTimes > 1 ==> not the first ocurrence of this parameter
|
||||||
{
|
{
|
||||||
/***** Add separator when param multiple *****/
|
/***** Add separator when param multiple *****/
|
||||||
/* Check if there is space to copy separator */
|
/* Check if there is space to copy separator */
|
||||||
|
|
78
swad_test.c
78
swad_test.c
|
@ -208,7 +208,7 @@ static void Tst_WriteScoreStart (unsigned ColSpan);
|
||||||
static void Tst_WriteScoreEnd (void);
|
static void Tst_WriteScoreEnd (void);
|
||||||
static void Tst_WriteParamQstCod (unsigned NumQst,long QstCod);
|
static void Tst_WriteParamQstCod (unsigned NumQst,long QstCod);
|
||||||
static void Tst_GetAndWriteTagsQst (long QstCod);
|
static void Tst_GetAndWriteTagsQst (long QstCod);
|
||||||
static int Tst_GetParamsTst (void);
|
static bool Tst_GetParamsTst (void);
|
||||||
static unsigned Tst_GetAndCheckParamNumTst (void);
|
static unsigned Tst_GetAndCheckParamNumTst (void);
|
||||||
static void Tst_GetParamNumQst (void);
|
static void Tst_GetParamNumQst (void);
|
||||||
static bool Tst_GetCreateXMLFromForm (void);
|
static bool Tst_GetCreateXMLFromForm (void);
|
||||||
|
@ -2606,7 +2606,6 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m
|
||||||
Act_FormStart (ActLstTstQst);
|
Act_FormStart (ActLstTstQst);
|
||||||
Sta_WriteParamsDatesSeeAccesses ();
|
Sta_WriteParamsDatesSeeAccesses ();
|
||||||
Tst_WriteParamEditQst ();
|
Tst_WriteParamEditQst ();
|
||||||
Par_PutHiddenParamChar ("OnlyThisQst",'N');
|
|
||||||
Par_PutHiddenParamUnsigned ("Order",(unsigned) Order);
|
Par_PutHiddenParamUnsigned ("Order",(unsigned) Order);
|
||||||
Act_LinkFormSubmit (Txt_TST_STR_ORDER_FULL[Order],"TIT_TBL");
|
Act_LinkFormSubmit (Txt_TST_STR_ORDER_FULL[Order],"TIT_TBL");
|
||||||
if (Order == Gbl.Test.SelectedOrderType)
|
if (Order == Gbl.Test.SelectedOrderType)
|
||||||
|
@ -2652,13 +2651,12 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m
|
||||||
/* Write icon to remove the question */
|
/* Write icon to remove the question */
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
"<td class=\"BT%u\">",Gbl.RowEvenOdd);
|
"<td class=\"BT%u\">",Gbl.RowEvenOdd);
|
||||||
Act_FormStart (ActRemTstQst);
|
Act_FormStart (ActReqRemTstQst);
|
||||||
Sta_WriteParamsDatesSeeAccesses ();
|
Sta_WriteParamsDatesSeeAccesses ();
|
||||||
Tst_WriteParamEditQst ();
|
Tst_WriteParamEditQst ();
|
||||||
Par_PutHiddenParamLong ("QstCod",QstCod);
|
Par_PutHiddenParamLong ("QstCod",QstCod);
|
||||||
Par_PutHiddenParamChar ("OnlyThisQst",
|
if (NumRows == 1)
|
||||||
NumRows == 1 ? 'Y' :
|
Par_PutHiddenParamChar ("OnlyThisQst",'Y'); // If there are only one row, don't list again after removing
|
||||||
'N'); // If there are only one row, don't list again after removing
|
|
||||||
Lay_PutIconRemove ();
|
Lay_PutIconRemove ();
|
||||||
Act_FormEnd ();
|
Act_FormEnd ();
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
@ -2723,9 +2721,8 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m
|
||||||
Par_PutHiddenParamLong ("QstCod",QstCod);
|
Par_PutHiddenParamLong ("QstCod",QstCod);
|
||||||
Sta_WriteParamsDatesSeeAccesses ();
|
Sta_WriteParamsDatesSeeAccesses ();
|
||||||
Tst_WriteParamEditQst ();
|
Tst_WriteParamEditQst ();
|
||||||
Par_PutHiddenParamChar ("OnlyThisQst",
|
if (NumRows == 1)
|
||||||
NumRows == 1 ? 'Y' :
|
Par_PutHiddenParamChar ("OnlyThisQst",'Y'); // If editing only one question, don't edit others
|
||||||
'N'); // If editing only one question, don't edit others
|
|
||||||
Par_PutHiddenParamUnsigned ("Order",(unsigned) Gbl.Test.SelectedOrderType);
|
Par_PutHiddenParamUnsigned ("Order",(unsigned) Gbl.Test.SelectedOrderType);
|
||||||
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"Shuffle\" value=\"Y\"");
|
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"Shuffle\" value=\"Y\"");
|
||||||
if (Str_ConvertToUpperLetter (row[3][0]) == 'Y')
|
if (Str_ConvertToUpperLetter (row[3][0]) == 'Y')
|
||||||
|
@ -4040,9 +4037,9 @@ static void Tst_GetAndWriteTagsQst (long QstCod)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/************ Get parameters for the selection of test questions *************/
|
/************ Get parameters for the selection of test questions *************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
// Return 1 (OK) if all parameters are found, or 0 (error) if any necessary parameter is not found
|
// Return true (OK) if all parameters are found, or false (error) if any necessary parameter is not found
|
||||||
|
|
||||||
static int Tst_GetParamsTst (void)
|
static bool Tst_GetParamsTst (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_You_must_select_one_ore_more_tags;
|
extern const char *Txt_You_must_select_one_ore_more_tags;
|
||||||
extern const char *Txt_You_must_select_one_ore_more_types_of_answer;
|
extern const char *Txt_You_must_select_one_ore_more_types_of_answer;
|
||||||
|
@ -4114,8 +4111,7 @@ static int Tst_GetParamsTst (void)
|
||||||
Gbl.Test.XML.CreateXML = Tst_GetCreateXMLFromForm ();
|
Gbl.Test.XML.CreateXML = Tst_GetCreateXMLFromForm ();
|
||||||
}
|
}
|
||||||
|
|
||||||
return Error ? 0 :
|
return !Error;
|
||||||
1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -5469,7 +5465,58 @@ static void Tst_EnableOrDisableTag (long TagCod,bool TagHidden)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* Remove a question ***************************/
|
/******************** Request the removal of a question **********************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Tst_RequestRemoveQst (void)
|
||||||
|
{
|
||||||
|
extern const char *Txt_Do_you_really_want_to_remove_the_question_X;
|
||||||
|
extern const char *Txt_Remove_question;
|
||||||
|
char YN[1+1];
|
||||||
|
bool EditingOnlyThisQst;
|
||||||
|
|
||||||
|
/***** Get the question code *****/
|
||||||
|
if (!Tst_GetQstCod ())
|
||||||
|
Lay_ShowErrorAndExit ("Wrong code of question.");
|
||||||
|
|
||||||
|
/***** Get a parameter that indicates whether it's necessary
|
||||||
|
to continue listing the rest of questions ******/
|
||||||
|
Par_GetParToText ("OnlyThisQst",YN,1);
|
||||||
|
EditingOnlyThisQst = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||||
|
|
||||||
|
/***** Start form *****/
|
||||||
|
Act_FormStart (ActRemTstQst);
|
||||||
|
Par_PutHiddenParamLong ("QstCod",Gbl.Test.QstCod);
|
||||||
|
if (EditingOnlyThisQst)
|
||||||
|
Par_PutHiddenParamChar ("OnlyThisQst",'Y');
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (Tst_GetParamsTst ()) // Get other parameters from the form
|
||||||
|
{
|
||||||
|
Sta_WriteParamsDatesSeeAccesses ();
|
||||||
|
Tst_WriteParamEditQst ();
|
||||||
|
}
|
||||||
|
Tst_FreeTagsList ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/***** Ask for confirmation of removing *****/
|
||||||
|
sprintf (Gbl.Message,Txt_Do_you_really_want_to_remove_the_question_X,
|
||||||
|
Gbl.Test.QstCod);
|
||||||
|
Lay_ShowAlert (Lay_WARNING,Gbl.Message);
|
||||||
|
Lay_PutRemoveButton (Txt_Remove_question);
|
||||||
|
|
||||||
|
/***** End form *****/
|
||||||
|
Act_FormEnd ();
|
||||||
|
|
||||||
|
/***** Continue editing questions *****/
|
||||||
|
if (EditingOnlyThisQst)
|
||||||
|
Tst_ListOneQstToEdit ();
|
||||||
|
else
|
||||||
|
Tst_ListQuestionsToEdit ();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/***************************** Remove a question *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Tst_RemoveQst (void)
|
void Tst_RemoveQst (void)
|
||||||
|
@ -5483,7 +5530,8 @@ void Tst_RemoveQst (void)
|
||||||
if (!Tst_GetQstCod ())
|
if (!Tst_GetQstCod ())
|
||||||
Lay_ShowErrorAndExit ("Wrong code of question.");
|
Lay_ShowErrorAndExit ("Wrong code of question.");
|
||||||
|
|
||||||
/***** Get a parameter that indicates whether it's necessary to continue listing the rest of questions ******/
|
/***** Get a parameter that indicates whether it's necessary
|
||||||
|
to continue listing the rest of questions ******/
|
||||||
Par_GetParToText ("OnlyThisQst",YN,1);
|
Par_GetParToText ("OnlyThisQst",YN,1);
|
||||||
EditingOnlyThisQst = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
EditingOnlyThisQst = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||||
|
|
||||||
|
|
|
@ -147,6 +147,7 @@ void Tst_ReceiveQst (void);
|
||||||
bool Tst_CheckIfQstFormatIsCorrectAndCountNumOptions (void);
|
bool Tst_CheckIfQstFormatIsCorrectAndCountNumOptions (void);
|
||||||
long Tst_GetIntAnsFromStr (char *Str);
|
long Tst_GetIntAnsFromStr (char *Str);
|
||||||
double Tst_GetFloatAnsFromStr (char *Str);
|
double Tst_GetFloatAnsFromStr (char *Str);
|
||||||
|
void Tst_RequestRemoveQst (void);
|
||||||
void Tst_RemoveQst (void);
|
void Tst_RemoveQst (void);
|
||||||
void Tst_ChangeShuffleQst (void);
|
void Tst_ChangeShuffleQst (void);
|
||||||
void Tst_InsertOrUpdateQstTagsAnsIntoDB (void);
|
void Tst_InsertOrUpdateQstTagsAnsIntoDB (void);
|
||||||
|
|
46
swad_text.c
46
swad_text.c
|
@ -9003,6 +9003,27 @@ const char *Txt_Do_you_really_want_to_remove_the_group_X_Y_students_ = // Warnin
|
||||||
"Doing so will remove %u students from that group."; // Necessita de tradução
|
"Doing so will remove %u students from that group."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Do_you_really_want_to_remove_the_question_X = // Warning: it is very important to include %ld in the following sentences
|
||||||
|
#if L==1
|
||||||
|
"¿Realmente desea eliminar la pregunta <strong>%ld</strong>?"; // Necessita traduccio
|
||||||
|
#elif L==2
|
||||||
|
"Wollen Sie die Frage <strong>%ld</strong> wirklich entfernen?";
|
||||||
|
#elif L==3
|
||||||
|
"Do you really want to remove the question <strong>%ld</strong>?";
|
||||||
|
#elif L==4
|
||||||
|
"¿Realmente desea eliminar la pregunta <strong>%ld</strong>?";
|
||||||
|
#elif L==5
|
||||||
|
"Voulez-vous vraiment supprimer la question <strong>%ld</strong>?";
|
||||||
|
#elif L==6
|
||||||
|
"¿Realmente desea eliminar la pregunta <strong>%ld</strong>?"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Vuoi realmente rimuovere la domanda <strong>%ld</strong>?";
|
||||||
|
#elif L==8
|
||||||
|
"Czy na pewno chcesz usunac pytanie <strong>%ld</strong>?";
|
||||||
|
#elif L==9
|
||||||
|
"Você realmente deseja remover a questão <strong>%ld</strong>?";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Do_you_really_want_to_remove_the_survey_X = // Warning: it is very important to include %s in the following sentences
|
const char *Txt_Do_you_really_want_to_remove_the_survey_X = // Warning: it is very important to include %s in the following sentences
|
||||||
#if L==1
|
#if L==1
|
||||||
"¿Realmente desea eliminar la encuesta <strong>%s</strong>?"; // Necessita traduccio
|
"¿Realmente desea eliminar la encuesta <strong>%s</strong>?"; // Necessita traduccio
|
||||||
|
@ -30131,6 +30152,27 @@ const char *Txt_Remove_photo =
|
||||||
"Remover foto";
|
"Remover foto";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Remove_question =
|
||||||
|
#if L==1
|
||||||
|
"Eliminar pregunta";
|
||||||
|
#elif L==2
|
||||||
|
"Entfernen Frage";
|
||||||
|
#elif L==3
|
||||||
|
"Remove question";
|
||||||
|
#elif L==4
|
||||||
|
"Eliminar pregunta";
|
||||||
|
#elif L==5
|
||||||
|
"Supprimer question";
|
||||||
|
#elif L==6
|
||||||
|
"Eliminar pregunta"; // Okoteve traducción
|
||||||
|
#elif L==7
|
||||||
|
"Rimuovere domanda";
|
||||||
|
#elif L==8
|
||||||
|
"Usuń pytanie";
|
||||||
|
#elif L==9
|
||||||
|
"Remover questão";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Remove_record_field =
|
const char *Txt_Remove_record_field =
|
||||||
#if L==1
|
#if L==1
|
||||||
"Eliminar campo de ficha"; // Necessita traduccio
|
"Eliminar campo de ficha"; // Necessita traduccio
|
||||||
|
@ -47397,7 +47439,7 @@ const char *Txt_TST_STR_ORDER_FULL[Tst_NUM_TYPES_ORDER_QST] =
|
||||||
const char *Txt_TST_STR_ORDER_SHORT[Tst_NUM_TYPES_ORDER_QST] =
|
const char *Txt_TST_STR_ORDER_SHORT[Tst_NUM_TYPES_ORDER_QST] =
|
||||||
{
|
{
|
||||||
#if L==1 // Tst_ORDER_STEM
|
#if L==1 // Tst_ORDER_STEM
|
||||||
"Pregunta" // Necessita traduccio
|
"Pregunta"
|
||||||
#elif L==2
|
#elif L==2
|
||||||
"Frage"
|
"Frage"
|
||||||
#elif L==3
|
#elif L==3
|
||||||
|
@ -47411,7 +47453,7 @@ const char *Txt_TST_STR_ORDER_SHORT[Tst_NUM_TYPES_ORDER_QST] =
|
||||||
#elif L==7
|
#elif L==7
|
||||||
"Domanda"
|
"Domanda"
|
||||||
#elif L==8
|
#elif L==8
|
||||||
"Question" // Potrzebujesz tlumaczenie
|
"Pytanie"
|
||||||
#elif L==9
|
#elif L==9
|
||||||
"Questão"
|
"Questão"
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue
Block a user