Version 16.96

This commit is contained in:
Antonio Cañas Vargas 2016-12-11 21:02:22 +01:00
parent fee40c4ef6
commit 7954f4bd80
9 changed files with 125 additions and 72 deletions

View File

@ -837,6 +837,7 @@ Assessment:
686. ActEdiExaAnn Edit an exam announcement
687. ActRcvExaAnn Receive an exam announcement
688. ActPrnExaAnn Show an exam announcement ready to be printed
NEW. ActReqRemExaAnn Request the removal of an exam announcement
689. ActRemExaAnn Remove an exam announcement
690. ActChgToSeeMrk Change to see marks in course/group
@ -2127,7 +2128,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActEdiOneAsg */{ 814,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RequestCreatOrEditAsg ,NULL},
/* ActNewAsg */{ 803,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RecFormAssignment ,NULL},
/* ActChgAsg */{ 815,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RecFormAssignment ,NULL},
/* ActReqRemAsg */{ 813,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_AskRemAssignment ,NULL},
/* ActReqRemAsg */{ 813,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_ReqRemAssignment ,NULL},
/* ActRemAsg */{ 806,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_RemoveAssignment ,NULL},
/* ActHidAsg */{ 964,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_HideAssignment ,NULL},
/* ActShoAsg */{ 965,-1,TabUnk,ActSeeAsg ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Asg_ShowAssignment ,NULL},
@ -2244,6 +2245,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActEdiExaAnn */{ 91,-1,TabUnk,ActSeeAllExaAnn ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Exa_PutFrmEditAExamAnnouncement,NULL},
/* ActRcvExaAnn */{ 110,-1,TabUnk,ActSeeAllExaAnn ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Exa_ReceiveExamAnnouncement ,NULL},
/* ActPrnExaAnn */{ 179,-1,TabUnk,ActSeeAllExaAnn ,0x1FF,0x1FF,0x000,Act_CONT_NORM,Act_BLNK_WINDOW,NULL ,Exa_PrintExamAnnouncement ,NULL},
/* ActReqRemExaAnn */{1619,-1,TabUnk,ActSeeAllExaAnn ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Exa_ReqRemoveExamAnnouncement ,NULL},
/* ActRemExaAnn */{ 187,-1,TabUnk,ActSeeAllExaAnn ,0x110,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Exa_RemoveExamAnnouncement ,NULL},
/* ActChgToSeeMrk */{1198,-1,TabUnk,ActSeeAdmMrk ,0x118,0x100,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Brw_ShowFileBrowserOrWorks ,NULL},
@ -3982,7 +3984,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActSeeLstStdAtt, // #1074
ActPrnLstStdAtt, // #1075
ActRecAttMe, // #1076
ActLogInLan, // #1077
ActLogInLan, // #1077
ActSeeDocCrs, // #1078
ActSeeMrkCrs, // #1079
ActReqSeeUsrTstRes, // #1080
@ -4155,7 +4157,6 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActSeeAdmDocDeg, // #1247
ActSeeAdmDocCtr, // #1248
ActSeeAdmDocIns, // #1249
ActChgToSeeDocDeg, // #1250
ActSeeDocDeg, // #1251
ActExpSeeDocDeg, // #1252
@ -4185,7 +4186,6 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActReqDatAdmDocDeg, // #1276
ActChgDatAdmDocDeg, // #1277
ActDowAdmDocDeg, // #1278
ActChgToSeeDocCtr, // #1279
ActSeeDocCtr, // #1280
ActExpSeeDocCtr, // #1281
@ -4215,7 +4215,6 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActReqDatAdmDocCtr, // #1305
ActChgDatAdmDocCtr, // #1306
ActDowAdmDocCtr, // #1307
ActChgToSeeDocIns, // #1308
ActSeeDocIns, // #1309
ActExpSeeDocIns, // #1310
@ -4527,6 +4526,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActLogInUsrAgdLan, // #1616
ActSeeMyPubAgd, // #1617
ActPrnAgdQR, // #1618
ActReqRemExaAnn, // #1619
};
/*****************************************************************************/

View File

@ -55,9 +55,9 @@ typedef enum
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+14+93+73+70+249+186+159+172+36+31+97)
#define Act_NUM_ACTIONS (1+9+51+14+93+73+70+249+187+159+172+36+31+97)
#define Act_MAX_ACTION_COD 1618
#define Act_MAX_ACTION_COD 1619
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 11
@ -847,69 +847,70 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActEdiExaAnn (ActRcvRchTxtCrsLnk+127)
#define ActRcvExaAnn (ActRcvRchTxtCrsLnk+128)
#define ActPrnExaAnn (ActRcvRchTxtCrsLnk+129)
#define ActRemExaAnn (ActRcvRchTxtCrsLnk+130)
#define ActReqRemExaAnn (ActRcvRchTxtCrsLnk+130)
#define ActRemExaAnn (ActRcvRchTxtCrsLnk+131)
#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+131)
#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+132)
#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+132)
#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+133)
#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+134)
#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+135)
#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+136)
#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+133)
#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+134)
#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+135)
#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+136)
#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+137)
#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+137)
#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+138)
#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+139)
#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+140)
#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+141)
#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+138)
#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+139)
#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+140)
#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+141)
#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+142)
#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+142)
#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+143)
#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+143)
#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+144)
#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+145)
#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+146)
#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+147)
#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+148)
#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+149)
#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+150)
#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+151)
#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+152)
#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+153)
#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+154)
#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+155)
#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+156)
#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+157)
#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+158)
#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+159)
#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+160)
#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+161)
#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+162)
#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+163)
#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+164)
#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+144)
#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+145)
#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+146)
#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+147)
#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+148)
#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+149)
#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+150)
#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+151)
#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+152)
#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+153)
#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+154)
#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+155)
#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+156)
#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+157)
#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+158)
#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+159)
#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+160)
#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+161)
#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+162)
#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+163)
#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+164)
#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+165)
#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+165)
#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+166)
#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+167)
#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+168)
#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+169)
#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+170)
#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+171)
#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+172)
#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+173)
#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+174)
#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+175)
#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+176)
#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+177)
#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+178)
#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+179)
#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+180)
#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+181)
#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+182)
#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+183)
#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+184)
#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+185)
#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+186)
#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+166)
#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+167)
#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+168)
#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+169)
#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+170)
#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+171)
#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+172)
#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+173)
#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+174)
#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+175)
#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+176)
#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+177)
#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+178)
#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+179)
#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+180)
#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+181)
#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+182)
#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+183)
#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+184)
#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+185)
#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+186)
#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+187)
/*****************************************************************************/
/******************************* Users tab ***********************************/

View File

@ -894,10 +894,10 @@ long Asg_GetParamAsgCod (void)
}
/*****************************************************************************/
/************ Ask for confirmation of removing of an assignment **************/
/************* Ask for confirmation of removing an assignment ****************/
/*****************************************************************************/
void Asg_AskRemAssignment (void)
void Asg_ReqRemAssignment (void)
{
extern const char *Txt_Do_you_really_want_to_remove_the_assignment_X;
extern const char *Txt_Remove_assignment;

View File

@ -91,7 +91,7 @@ void Asg_FreeListAssignments (void);
void Asg_GetNotifAssignment (char *SummaryStr,char **ContentStr,long AsgCod,unsigned MaxChars,bool GetContent);
long Asg_GetParamAsgCod (void);
void Asg_AskRemAssignment (void);
void Asg_ReqRemAssignment (void);
void Asg_RemoveAssignment (void);
void Asg_HideAssignment (void);
void Asg_ShowAssignment (void);

View File

@ -185,16 +185,16 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.95.2 (2016-12-11)"
#define Log_PLATFORM_VERSION "SWAD 16.96 (2016-12-11)"
#define CSS_FILE "swad16.94.1.css"
#define JS_FILE "swad16.90.2.js"
// 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
/*
Version 16.96: Dec 11, 2016 Now removing an announcement of exam requires confirmation. (? lines)
Version 16.96: Dec 11, 2016 Now removing an announcement of exam requires confirmation. (210563 lines)
1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1619','es','N','');
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1619','es','N','Solicitar eliminación de convocatoria');
Version 16.95.2: Dec 11, 2016 Code refactoring related with notices. (210514 lines)
Version 16.95.1: Dec 11, 2016 Code refactoring related with global announcements. (210534 lines)

View File

@ -365,6 +365,36 @@ void Exa_PrintExamAnnouncement (void)
/************************ Remove an exam announcement ************************/
/*****************************************************************************/
void Exa_ReqRemoveExamAnnouncement (void)
{
extern const char *Txt_Do_you_really_want_to_remove_the_following_announcement_of_exam;
extern const char *Txt_Remove;
long ExaCod;
/***** Get the code of the exam announcement *****/
if ((ExaCod = Exa_GetParamExaCod ()) <= 0)
Lay_ShowErrorAndExit ("Code of exam announcement is missing.");
/***** Message *****/
Lay_ShowAlert (Lay_WARNING,Txt_Do_you_really_want_to_remove_the_following_announcement_of_exam);
/***** View announcement *****/
Exa_AllocMemExamAnnouncement ();
Exa_GetDataExamAnnouncementFromDB (ExaCod);
Exa_ShowExamAnnouncement (ExaCod,Exa_NORMAL_VIEW);
Exa_FreeMemExamAnnouncement ();
/***** Button of confirmation of removing *****/
Act_FormStart (ActRemExaAnn);
Exa_PutHiddenParamExaCod (ExaCod);
Lay_PutRemoveButton (Txt_Remove);
Act_FormEnd ();
}
/*****************************************************************************/
/************************ Remove an exam announcement ************************/
/*****************************************************************************/
void Exa_RemoveExamAnnouncement (void)
{
extern const char *Txt_Announcement_of_exam_removed;
@ -1371,7 +1401,7 @@ static void Exa_PutIconsExamAnnouncement (void)
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
{
/***** Link to remove this exam announcement *****/
Lay_PutContextualLink (ActRemExaAnn,Exa_PutParamExaCodToEdit,
Lay_PutContextualLink (ActReqRemExaAnn,Exa_PutParamExaCodToEdit,
"remove-on64x64.png",
Txt_Remove,NULL,
NULL);

View File

@ -54,6 +54,7 @@ typedef enum
void Exa_PutFrmEditAExamAnnouncement (void);
void Exa_ReceiveExamAnnouncement (void);
void Exa_PrintExamAnnouncement (void);
void Exa_ReqRemoveExamAnnouncement (void);
void Exa_RemoveExamAnnouncement (void);
void Exa_FreeMemExamAnnouncement (void);
void Exa_FreeListExamAnnouncements (void);

View File

@ -255,7 +255,7 @@ void TsI_CreateXML (unsigned long NumRows,MYSQL_RES *mysql_res)
fclose (Gbl.Test.XML.FileXML);
/***** Return to start of query result *****/
mysql_data_seek (mysql_res, 0);
mysql_data_seek (mysql_res,0);
/***** Write the link to XML file *****/
fprintf (Gbl.F.Out,"<a href=\"%s/%s/%s/test.xml\" class=\"%s\" target=\"_blank\">",

View File

@ -8845,6 +8845,27 @@ const char *Txt_Do_you_really_want_to_remove_the_folder_X = // Warning: it is ve
" o diret&oacute;rio <strong>%s</strong> e todo o seu conte&uacute;do?";
#endif
const char *Txt_Do_you_really_want_to_remove_the_following_announcement_of_exam =
#if L==1
"De veres voleu eliminar la seg&uuml;ent convocat&ograve;ria d'examen?";
#elif L==2
"Wollen Sie wirklich, um die folgende Aufruf f&uuml;r Pr&uuml;fung?";
#elif L==3
"Do you really want to remove the following announcement of exam?";
#elif L==4
"&iquest;Realmente desea eliminar la siguiente convocatoria de examen?";
#elif L==5
"Voulez-vous vraiment supprimer la convocation &agrave; un examen suivante?";
#elif L==6
"&iquest;Realmente desea eliminar la siguiente convocatoria de examen?"; // Okoteve traducción
#elif L==7
"Vuoi realmente rimuovere il seguente appello d'esame?";
#elif L==8
"Czy na pewno chcesz usun&aogon;&cacute; nast&eogon;puj&aogon;c&aogon; zapowied&zacute; egzaminu?";
#elif L==9
"Voc&ecirc; realmente deseja remover a seguinte chamada para exame?";
#endif
const char *Txt_Do_you_really_want_to_remove_the_following_notice =
#if L==1
"De veres voleu eliminar el seg&uuml;ent av&iacute;s?";