mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-17 22:15:43 +02:00
Version 15.43.1
This commit is contained in:
parent
7045feb554
commit
39ecd35798
|
@ -772,6 +772,7 @@ Assessment:
|
||||||
629. ActSeeOneTstExaOth Show one test exam of other user
|
629. ActSeeOneTstExaOth Show one test exam of other user
|
||||||
|
|
||||||
630. ActPrnCal Show print view of the academic calendar of the course
|
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
|
631. ActEdiExaAnn Edit an exam announcement
|
||||||
632. ActRcvExaAnn Receive 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},
|
/* 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},
|
/* 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},
|
/* 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},
|
/* 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
|
ActNewMaiStd, // #1482
|
||||||
ActNewMaiTch, // #1483
|
ActNewMaiTch, // #1483
|
||||||
ActChg1stDay, // #1484
|
ActChg1stDay, // #1484
|
||||||
|
ActChgCal1stDay, // #1485
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
125
swad_action.h
125
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
|
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
|
#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 ActSeeOneTstExaOth (ActRcvRchTxtCrsLnk+121)
|
||||||
|
|
||||||
#define ActPrnCal (ActRcvRchTxtCrsLnk+122)
|
#define ActPrnCal (ActRcvRchTxtCrsLnk+122)
|
||||||
|
#define ActChgCal1stDay (ActRcvRchTxtCrsLnk+123)
|
||||||
|
|
||||||
#define ActEdiExaAnn (ActRcvRchTxtCrsLnk+123)
|
#define ActEdiExaAnn (ActRcvRchTxtCrsLnk+124)
|
||||||
#define ActRcvExaAnn (ActRcvRchTxtCrsLnk+124)
|
#define ActRcvExaAnn (ActRcvRchTxtCrsLnk+125)
|
||||||
#define ActPrnExaAnn (ActRcvRchTxtCrsLnk+125)
|
#define ActPrnExaAnn (ActRcvRchTxtCrsLnk+126)
|
||||||
#define ActRemExaAnn (ActRcvRchTxtCrsLnk+126)
|
#define ActRemExaAnn (ActRcvRchTxtCrsLnk+127)
|
||||||
|
|
||||||
#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+127)
|
#define ActChgToSeeMrk (ActRcvRchTxtCrsLnk+128)
|
||||||
|
|
||||||
#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+128)
|
#define ActSeeMrkCrs (ActRcvRchTxtCrsLnk+129)
|
||||||
#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+129)
|
#define ActExpSeeMrkCrs (ActRcvRchTxtCrsLnk+130)
|
||||||
#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+130)
|
#define ActConSeeMrkCrs (ActRcvRchTxtCrsLnk+131)
|
||||||
#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+131)
|
#define ActReqDatSeeMrkCrs (ActRcvRchTxtCrsLnk+132)
|
||||||
#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+132)
|
#define ActSeeMyMrkCrs (ActRcvRchTxtCrsLnk+133)
|
||||||
|
|
||||||
#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+133)
|
#define ActSeeMrkGrp (ActRcvRchTxtCrsLnk+134)
|
||||||
#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+134)
|
#define ActExpSeeMrkGrp (ActRcvRchTxtCrsLnk+135)
|
||||||
#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+135)
|
#define ActConSeeMrkGrp (ActRcvRchTxtCrsLnk+136)
|
||||||
#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+136)
|
#define ActReqDatSeeMrkGrp (ActRcvRchTxtCrsLnk+137)
|
||||||
#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+137)
|
#define ActSeeMyMrkGrp (ActRcvRchTxtCrsLnk+138)
|
||||||
|
|
||||||
#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+138)
|
#define ActChgToAdmMrk (ActRcvRchTxtCrsLnk+139)
|
||||||
|
|
||||||
#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+139)
|
#define ActAdmMrkCrs (ActRcvRchTxtCrsLnk+140)
|
||||||
#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+140)
|
#define ActReqRemFilMrkCrs (ActRcvRchTxtCrsLnk+141)
|
||||||
#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+141)
|
#define ActRemFilMrkCrs (ActRcvRchTxtCrsLnk+142)
|
||||||
#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+142)
|
#define ActRemFolMrkCrs (ActRcvRchTxtCrsLnk+143)
|
||||||
#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+143)
|
#define ActCopMrkCrs (ActRcvRchTxtCrsLnk+144)
|
||||||
#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+144)
|
#define ActPasMrkCrs (ActRcvRchTxtCrsLnk+145)
|
||||||
#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+145)
|
#define ActRemTreMrkCrs (ActRcvRchTxtCrsLnk+146)
|
||||||
#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+146)
|
#define ActFrmCreMrkCrs (ActRcvRchTxtCrsLnk+147)
|
||||||
#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+147)
|
#define ActCreFolMrkCrs (ActRcvRchTxtCrsLnk+148)
|
||||||
#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+148)
|
#define ActRenFolMrkCrs (ActRcvRchTxtCrsLnk+149)
|
||||||
#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+149)
|
#define ActRcvFilMrkCrsDZ (ActRcvRchTxtCrsLnk+150)
|
||||||
#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+150)
|
#define ActRcvFilMrkCrsCla (ActRcvRchTxtCrsLnk+151)
|
||||||
#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+151)
|
#define ActExpAdmMrkCrs (ActRcvRchTxtCrsLnk+152)
|
||||||
#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+152)
|
#define ActConAdmMrkCrs (ActRcvRchTxtCrsLnk+153)
|
||||||
#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+153)
|
#define ActZIPAdmMrkCrs (ActRcvRchTxtCrsLnk+154)
|
||||||
#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+154)
|
#define ActShoMrkCrs (ActRcvRchTxtCrsLnk+155)
|
||||||
#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+155)
|
#define ActHidMrkCrs (ActRcvRchTxtCrsLnk+156)
|
||||||
#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+156)
|
#define ActReqDatAdmMrkCrs (ActRcvRchTxtCrsLnk+157)
|
||||||
#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+157)
|
#define ActChgDatAdmMrkCrs (ActRcvRchTxtCrsLnk+158)
|
||||||
#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+158)
|
#define ActDowAdmMrkCrs (ActRcvRchTxtCrsLnk+159)
|
||||||
#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+159)
|
#define ActChgNumRowHeaCrs (ActRcvRchTxtCrsLnk+160)
|
||||||
#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+160)
|
#define ActChgNumRowFooCrs (ActRcvRchTxtCrsLnk+161)
|
||||||
|
|
||||||
#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+161)
|
#define ActAdmMrkGrp (ActRcvRchTxtCrsLnk+162)
|
||||||
#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+162)
|
#define ActReqRemFilMrkGrp (ActRcvRchTxtCrsLnk+163)
|
||||||
#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+163)
|
#define ActRemFilMrkGrp (ActRcvRchTxtCrsLnk+164)
|
||||||
#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+164)
|
#define ActRemFolMrkGrp (ActRcvRchTxtCrsLnk+165)
|
||||||
#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+165)
|
#define ActCopMrkGrp (ActRcvRchTxtCrsLnk+166)
|
||||||
#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+166)
|
#define ActPasMrkGrp (ActRcvRchTxtCrsLnk+167)
|
||||||
#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+167)
|
#define ActRemTreMrkGrp (ActRcvRchTxtCrsLnk+168)
|
||||||
#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+168)
|
#define ActFrmCreMrkGrp (ActRcvRchTxtCrsLnk+169)
|
||||||
#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+169)
|
#define ActCreFolMrkGrp (ActRcvRchTxtCrsLnk+170)
|
||||||
#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+170)
|
#define ActRenFolMrkGrp (ActRcvRchTxtCrsLnk+171)
|
||||||
#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+171)
|
#define ActRcvFilMrkGrpDZ (ActRcvRchTxtCrsLnk+172)
|
||||||
#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+172)
|
#define ActRcvFilMrkGrpCla (ActRcvRchTxtCrsLnk+173)
|
||||||
#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+173)
|
#define ActExpAdmMrkGrp (ActRcvRchTxtCrsLnk+174)
|
||||||
#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+174)
|
#define ActConAdmMrkGrp (ActRcvRchTxtCrsLnk+175)
|
||||||
#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+175)
|
#define ActZIPAdmMrkGrp (ActRcvRchTxtCrsLnk+176)
|
||||||
#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+176)
|
#define ActShoMrkGrp (ActRcvRchTxtCrsLnk+177)
|
||||||
#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+177)
|
#define ActHidMrkGrp (ActRcvRchTxtCrsLnk+178)
|
||||||
#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+178)
|
#define ActReqDatAdmMrkGrp (ActRcvRchTxtCrsLnk+179)
|
||||||
#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+179)
|
#define ActChgDatAdmMrkGrp (ActRcvRchTxtCrsLnk+180)
|
||||||
#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+180)
|
#define ActDowAdmMrkGrp (ActRcvRchTxtCrsLnk+181)
|
||||||
#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+181)
|
#define ActChgNumRowHeaGrp (ActRcvRchTxtCrsLnk+182)
|
||||||
#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+182)
|
#define ActChgNumRowFooGrp (ActRcvRchTxtCrsLnk+183)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* Users tab ***********************************/
|
/******************************* Users tab ***********************************/
|
||||||
|
|
|
@ -59,6 +59,9 @@ const bool Cal_DayIsValidAsFirstDayOfWeek[7] =
|
||||||
/***************************** Private prototypes ****************************/
|
/***************************** Private prototypes ****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
static void Cal_ShowFormInCalendarToSelectFirstDayOfWeek (void);
|
||||||
|
static void Cal_ShowFormToSelectFirstDayOfWeek (Act_Action_t Action,const char *ClassIcon);
|
||||||
|
|
||||||
static unsigned Cal_GetParamFirstDayOfWeek (void);
|
static unsigned Cal_GetParamFirstDayOfWeek (void);
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -68,11 +71,33 @@ static unsigned Cal_GetParamFirstDayOfWeek (void);
|
||||||
void Cal_PutIconsToSelectFirstDayOfWeek (void)
|
void Cal_PutIconsToSelectFirstDayOfWeek (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Calendar;
|
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_First_day_of_the_week;
|
||||||
extern const char *Txt_DAYS_SMALL[7];
|
extern const char *Txt_DAYS_SMALL[7];
|
||||||
unsigned FirstDayOfWeek;
|
unsigned FirstDayOfWeek;
|
||||||
|
|
||||||
Lay_StartRoundFrameTable (NULL,2,Txt_Calendar);
|
|
||||||
fprintf (Gbl.F.Out,"<tr>");
|
fprintf (Gbl.F.Out,"<tr>");
|
||||||
for (FirstDayOfWeek = 0; // Monday
|
for (FirstDayOfWeek = 0; // Monday
|
||||||
FirstDayOfWeek <= 6; // Sunday
|
FirstDayOfWeek <= 6; // Sunday
|
||||||
|
@ -82,20 +107,20 @@ void Cal_PutIconsToSelectFirstDayOfWeek (void)
|
||||||
fprintf (Gbl.F.Out,"<td class=\"%s\">",
|
fprintf (Gbl.F.Out,"<td class=\"%s\">",
|
||||||
FirstDayOfWeek == Gbl.Prefs.FirstDayOfWeek ? "LAYOUT_ON" :
|
FirstDayOfWeek == Gbl.Prefs.FirstDayOfWeek ? "LAYOUT_ON" :
|
||||||
"LAYOUT_OFF");
|
"LAYOUT_OFF");
|
||||||
Act_FormStart (ActChg1stDay);
|
Act_FormStart (Action);
|
||||||
Par_PutHiddenParamUnsigned ("FirstDayOfWeek",FirstDayOfWeek);
|
Par_PutHiddenParamUnsigned ("FirstDayOfWeek",FirstDayOfWeek);
|
||||||
fprintf (Gbl.F.Out,"<input type=\"image\" src=\"%s/first-day-of-week-%u-64x64.png\""
|
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;\" />",
|
" style=\"margin:0 auto;\" />",
|
||||||
Gbl.Prefs.IconsURL,
|
Gbl.Prefs.IconsURL,
|
||||||
FirstDayOfWeek,
|
FirstDayOfWeek,
|
||||||
Txt_DAYS_SMALL[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 ();
|
Act_FormEnd ();
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,"</tr>");
|
fprintf (Gbl.F.Out,"</tr>");
|
||||||
Lay_EndRoundFrameTable ();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -235,10 +260,15 @@ void Cal_DrawCalendar (void)
|
||||||
Gbl.CurrentCrs.Crs.CrsCod);
|
Gbl.CurrentCrs.Crs.CrsCod);
|
||||||
|
|
||||||
/***** Draw several months *****/
|
/***** Draw several months *****/
|
||||||
/* JavaScript will write HTML here */
|
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
"<td class=\"CENTER_TOP\">"
|
"<td class=\"CENTER_TOP\">");
|
||||||
"<div id=\"calendar\">"
|
|
||||||
|
/* 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>");
|
"</div>");
|
||||||
|
|
||||||
/* Write script to draw the month */
|
/* Write script to draw the month */
|
||||||
|
|
|
@ -111,11 +111,15 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** 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:
|
// 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.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.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.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)
|
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)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user