From 39ecd357982e619de7910ec0bf0153780ef5dc9c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ca=C3=B1as=20Vargas?= Date: Sun, 22 Nov 2015 00:40:23 +0100 Subject: [PATCH] Version 15.43.1 --- swad_action.c | 3 ++ swad_action.h | 125 ++++++++++++++++++++++++----------------------- swad_calendar.c | 46 ++++++++++++++--- swad_changelog.h | 6 ++- 4 files changed, 109 insertions(+), 71 deletions(-) diff --git a/swad_action.c b/swad_action.c index 76aa77f29..b7697d452 100644 --- a/swad_action.c +++ b/swad_action.c @@ -772,6 +772,7 @@ Assessment: 629. ActSeeOneTstExaOth Show one test exam of other user 630. ActPrnCal Show print view of the academic calendar of the course +------> 630. ActChgCal1stDay Change first day of week and show academic calendar of the course 631. ActEdiExaAnn Edit an exam announcement 632. ActRcvExaAnn Receive an exam announcement @@ -2200,6 +2201,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] = /* ActSeeOneTstExaOth*/{1082,-1,TabAss,ActReqTst ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Tst_ShowOneTestExam ,NULL}, /* ActPrnCal */{ 71,-1,TabAss,ActSeeCal ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_NEW_WINDOW ,NULL ,Cal_DrawCalendar ,NULL}, + /* ActChgCal1stDay */{1485,-1,TabAss,ActSeeCal ,0x1FF,0x1FF,0x1FF,Act_CONTENT_NORM,Act_MAIN_WINDOW,Cal_ChangeFirstDayOfWeek ,Cal_DrawCalendar ,NULL}, /* ActEdiExaAnn */{ 91,-1,TabAss,ActSeeExaAnn ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Exa_PutFrmEditAExamAnnouncement,NULL}, /* ActRcvExaAnn */{ 110,-1,TabAss,ActSeeExaAnn ,0x110,0x100,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Exa_ReceiveExamAnnouncement ,NULL}, @@ -4281,6 +4283,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq ActNewMaiStd, // #1482 ActNewMaiTch, // #1483 ActChg1stDay, // #1484 + ActChgCal1stDay, // #1485 }; /*****************************************************************************/ diff --git a/swad_action.h b/swad_action.h index 68271533e..4cc84e7dc 100644 --- a/swad_action.h +++ b/swad_action.h @@ -70,9 +70,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 (7+52+15+90+73+68+204+182+154+171+27+80) +#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+183+154+171+27+80) -#define Act_MAX_ACTION_COD 1484 +#define Act_MAX_ACTION_COD 1485 #define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20 @@ -794,73 +794,74 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica #define ActSeeOneTstExaOth (ActRcvRchTxtCrsLnk+121) #define ActPrnCal (ActRcvRchTxtCrsLnk+122) +#define ActChgCal1stDay (ActRcvRchTxtCrsLnk+123) -#define ActEdiExaAnn (ActRcvRchTxtCrsLnk+123) -#define ActRcvExaAnn (ActRcvRchTxtCrsLnk+124) -#define ActPrnExaAnn (ActRcvRchTxtCrsLnk+125) -#define ActRemExaAnn (ActRcvRchTxtCrsLnk+126) +#define ActEdiExaAnn (ActRcvRchTxtCrsLnk+124) +#define ActRcvExaAnn (ActRcvRchTxtCrsLnk+125) +#define ActPrnExaAnn (ActRcvRchTxtCrsLnk+126) +#define ActRemExaAnn (ActRcvRchTxtCrsLnk+127) -#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+127) +#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+128) -#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+128) -#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+129) -#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+130) -#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+131) -#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+132) +#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+129) +#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+130) +#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+131) +#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+132) +#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+133) -#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+133) -#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+134) -#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+135) -#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+136) -#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+137) +#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+134) +#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+135) +#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+136) +#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+137) +#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+138) -#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+138) +#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+139) -#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+139) -#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+140) -#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+141) -#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+142) -#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+143) -#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+144) -#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+145) -#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+146) -#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+147) -#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+148) -#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+149) -#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+150) -#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+151) -#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+152) -#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+153) -#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+154) -#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+155) -#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+156) -#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+157) -#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+158) -#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+159) -#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+160) +#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+140) +#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+141) +#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+142) +#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+143) +#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+144) +#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+145) +#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+146) +#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+147) +#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+148) +#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+149) +#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+150) +#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+151) +#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+152) +#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+153) +#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+154) +#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+155) +#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+156) +#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+157) +#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+158) +#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+159) +#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+160) +#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+161) -#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+161) -#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+162) -#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+163) -#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+164) -#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+165) -#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+166) -#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+167) -#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+168) -#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+169) -#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+170) -#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+171) -#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+172) -#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+173) -#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+174) -#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+175) -#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+176) -#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+177) -#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+178) -#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+179) -#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+180) -#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+181) -#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+182) +#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+162) +#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+163) +#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+164) +#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+165) +#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+166) +#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+167) +#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+168) +#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+169) +#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+170) +#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+171) +#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+172) +#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+173) +#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+174) +#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+175) +#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+176) +#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+177) +#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+178) +#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+179) +#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+180) +#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+181) +#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+182) +#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+183) /*****************************************************************************/ /******************************* Users tab ***********************************/ diff --git a/swad_calendar.c b/swad_calendar.c index 7b44132be..8f86b32a7 100644 --- a/swad_calendar.c +++ b/swad_calendar.c @@ -59,6 +59,9 @@ const bool Cal_DayIsValidAsFirstDayOfWeek[7] = /***************************** Private prototypes ****************************/ /*****************************************************************************/ +static void Cal_ShowFormInCalendarToSelectFirstDayOfWeek (void); +static void Cal_ShowFormToSelectFirstDayOfWeek (Act_Action_t Action,const char *ClassIcon); + static unsigned Cal_GetParamFirstDayOfWeek (void); /*****************************************************************************/ @@ -68,11 +71,33 @@ static unsigned Cal_GetParamFirstDayOfWeek (void); void Cal_PutIconsToSelectFirstDayOfWeek (void) { extern const char *Txt_Calendar; + + Lay_StartRoundFrameTable (NULL,2,Txt_Calendar); + Cal_ShowFormToSelectFirstDayOfWeek (ActChg1stDay,"ICON32x32"); + Lay_EndRoundFrameTable (); + } + +/*****************************************************************************/ +/************** Show form to select the first day of the week ****************/ +/*****************************************************************************/ + +static void Cal_ShowFormInCalendarToSelectFirstDayOfWeek (void) + { + fprintf (Gbl.F.Out,""); + Cal_ShowFormToSelectFirstDayOfWeek (ActChgCal1stDay,"ICON28x28"); + fprintf (Gbl.F.Out,"
"); + } + +/*****************************************************************************/ +/******** Show form in calendar to select the first day of the week **********/ +/*****************************************************************************/ + +static void Cal_ShowFormToSelectFirstDayOfWeek (Act_Action_t Action,const char *ClassIcon) + { extern const char *Txt_First_day_of_the_week; extern const char *Txt_DAYS_SMALL[7]; unsigned FirstDayOfWeek; - Lay_StartRoundFrameTable (NULL,2,Txt_Calendar); fprintf (Gbl.F.Out,""); for (FirstDayOfWeek = 0; // Monday FirstDayOfWeek <= 6; // Sunday @@ -82,20 +107,20 @@ void Cal_PutIconsToSelectFirstDayOfWeek (void) fprintf (Gbl.F.Out,"", FirstDayOfWeek == Gbl.Prefs.FirstDayOfWeek ? "LAYOUT_ON" : "LAYOUT_OFF"); - Act_FormStart (ActChg1stDay); + Act_FormStart (Action); Par_PutHiddenParamUnsigned ("FirstDayOfWeek",FirstDayOfWeek); fprintf (Gbl.F.Out,"", Gbl.Prefs.IconsURL, FirstDayOfWeek, Txt_DAYS_SMALL[FirstDayOfWeek], - Txt_First_day_of_the_week,Txt_DAYS_SMALL[FirstDayOfWeek]); + Txt_First_day_of_the_week,Txt_DAYS_SMALL[FirstDayOfWeek], + ClassIcon); Act_FormEnd (); fprintf (Gbl.F.Out,""); } fprintf (Gbl.F.Out,""); - Lay_EndRoundFrameTable (); } /*****************************************************************************/ @@ -235,10 +260,15 @@ void Cal_DrawCalendar (void) Gbl.CurrentCrs.Crs.CrsCod); /***** Draw several months *****/ - /* JavaScript will write HTML here */ fprintf (Gbl.F.Out,"" - "" - "
" + ""); + + /* Show form to change first day of week */ + if (!PrintView) + Cal_ShowFormInCalendarToSelectFirstDayOfWeek (); + + /* JavaScript will write HTML here */ + fprintf (Gbl.F.Out,"
" "
"); /* Write script to draw the month */ diff --git a/swad_changelog.h b/swad_changelog.h index 77fc5ee2c..ca9581146 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -111,11 +111,15 @@ /****************************** Public constants *****************************/ /*****************************************************************************/ -#define Log_PLATFORM_VERSION "SWAD 15.43 (2015/11/21)" +#define Log_PLATFORM_VERSION "SWAD 15.43.1 (2015/11/22)" // 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 15.43.1: Nov 22, 2015 New figure (statistic) about first day of week. (187722 lines) + 1 change necessary in database: +INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1485','es','N','Cambiar primer día semana en calendario'); + Version 15.43: Nov 21, 2015 New figure (statistic) about first day of week. (187693 lines) Version 15.42.4: Nov 21, 2015 Fixed bug when getting first day of week from IP preferences. (187535 lines) Version 15.42.3: Nov 21, 2015 Stats of hits distributed by week depend on user's preference about first day of the week. (187528 lines)