Version 15.43.1

This commit is contained in:
Antonio Cañas Vargas 2015-11-22 00:40:23 +01:00
parent 7045feb554
commit 39ecd35798
4 changed files with 109 additions and 71 deletions

View File

@ -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
};
/*****************************************************************************/

View File

@ -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 ***********************************/

View File

@ -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,"<table class=\"CELLS_PAD_2\" style=\"margin:0 auto;\">");
Cal_ShowFormToSelectFirstDayOfWeek (ActChgCal1stDay,"ICON28x28");
fprintf (Gbl.F.Out,"</table>");
}
/*****************************************************************************/
/******** 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,"<tr>");
for (FirstDayOfWeek = 0; // Monday
FirstDayOfWeek <= 6; // Sunday
@ -82,20 +107,20 @@ void Cal_PutIconsToSelectFirstDayOfWeek (void)
fprintf (Gbl.F.Out,"<td class=\"%s\">",
FirstDayOfWeek == Gbl.Prefs.FirstDayOfWeek ? "LAYOUT_ON" :
"LAYOUT_OFF");
Act_FormStart (ActChg1stDay);
Act_FormStart (Action);
Par_PutHiddenParamUnsigned ("FirstDayOfWeek",FirstDayOfWeek);
fprintf (Gbl.F.Out,"<input type=\"image\" src=\"%s/first-day-of-week-%u-64x64.png\""
" alt=\"%s\" title=\"%s: %s\" class=\"ICON32x32B\""
" alt=\"%s\" title=\"%s: %s\" class=\"%s\""
" style=\"margin:0 auto;\" />",
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,"</td>");
}
fprintf (Gbl.F.Out,"</tr>");
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,"<tr>"
"<td class=\"CENTER_TOP\">"
"<div id=\"calendar\">"
"<td class=\"CENTER_TOP\">");
/* Show form to change first day of week */
if (!PrintView)
Cal_ShowFormInCalendarToSelectFirstDayOfWeek ();
/* JavaScript will write HTML here */
fprintf (Gbl.F.Out,"<div id=\"calendar\">"
"</div>");
/* Write script to draw the month */

View File

@ -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&iacute;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)