mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-13 04:04:35 +02:00
Version 15.30
This commit is contained in:
parent
efe35f9603
commit
ae2efa17b5
118
js/swad.js
118
js/swad.js
|
@ -659,18 +659,18 @@ function disableDetailedClicks () {
|
|||
/******************************** Draw a month *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
function DrawCurrentMonth (id,TimeUTC,CGI,FormEventParams) {
|
||||
function DrawCurrentMonth (id,TimeUTC,CGI,CurrentPlcCod,FormGoToCalendarParams,FormEventParams) {
|
||||
var d = new Date;
|
||||
|
||||
d.setTime(TimeUTC * 1000);
|
||||
DrawMonth (id,d.getFullYear(),d.getMonth() + 1,d.getDate(),false,false,CGI,FormEventParams);
|
||||
DrawMonth (id,d.getFullYear(),d.getMonth() + 1,d.getDate(),false,false,CGI,CurrentPlcCod,FormGoToCalendarParams,FormEventParams);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************** Draw a month *******************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
function DrawMonth (id,Year,Month,Today,DrawingCalendar,PrintView,CGI,FormEventParams)
|
||||
function DrawMonth (id,Year,Month,Today,DrawingCalendar,PrintView,CGI,CurrentPlcCod,FormGoToCalendarParams,FormEventParams)
|
||||
{
|
||||
var NumDaysMonth = [
|
||||
0,
|
||||
|
@ -687,24 +687,25 @@ function DrawMonth (id,Year,Month,Today,DrawingCalendar,PrintView,CGI,FormEventP
|
|||
30, // 11: November
|
||||
31, // 12: December
|
||||
];
|
||||
// var StrExamOfX;
|
||||
var Hld_HOLIDAY = 0;
|
||||
var Hld_NON_SCHOOL_PERIOD = 1;
|
||||
var Week;
|
||||
var DayOfWeek; /* 0, 1, 2, 3, 4, 5, 6 */
|
||||
var Day;
|
||||
var NumDaysInMonth;
|
||||
var Yea = Year;
|
||||
var Mon = Month;
|
||||
// var YYYYMMDD;
|
||||
// var NumHld;
|
||||
var YYYYMMDD;
|
||||
var NumHld;
|
||||
var ClassForDay; // Class of day depending on type of day
|
||||
// var TextForDay; // Text associated to a day, for example the name of the holiday
|
||||
var TextForDay; // Text associated to a day, for example the name of the holiday
|
||||
var NumExamAnnouncement; // Number of exam announcement
|
||||
// var ResultOfCmpStartDate;
|
||||
// var ContinueSearching;
|
||||
var ResultOfCmpStartDate;
|
||||
var ContinueSearching;
|
||||
var ThisDayHasEvent;
|
||||
var IsToday;
|
||||
var FormEventIdNum = 0;
|
||||
var FormEventId;
|
||||
var FormIdNum = 0;
|
||||
var FormId;
|
||||
|
||||
/***** Compute number of day of month for the first box *****/
|
||||
/* The initial day of month can be -5, -4, -3, -2, -1, 0, or 1
|
||||
|
@ -736,9 +737,26 @@ function DrawMonth (id,Year,Month,Today,DrawingCalendar,PrintView,CGI,FormEventP
|
|||
HTMLContent = '<div class="MONTH_CONTAINER">';
|
||||
|
||||
/***** Month name *****/
|
||||
HTMLContent += '<div class="MONTH">' +
|
||||
MONTHS_CAPS[Month-1] + ' ' + Year +
|
||||
'</div>';
|
||||
if (DrawingCalendar)
|
||||
HTMLContent += '<div class="MONTH">';
|
||||
else
|
||||
{
|
||||
FormId = 'show_calendar';
|
||||
HTMLContent += '<form method="post" action="' +
|
||||
CGI +
|
||||
'" id="' +
|
||||
FormId +
|
||||
'">' +
|
||||
FormGoToCalendarParams +
|
||||
'<div class="MONTH">' +
|
||||
'<a href="" class="MONTH"' +
|
||||
' onclick="document.getElementById(\'' + FormId + '\').submit();return false;">';
|
||||
}
|
||||
HTMLContent += MONTHS_CAPS[Month-1] + ' ' + Year;
|
||||
if (DrawingCalendar)
|
||||
HTMLContent += '</div>';
|
||||
else
|
||||
HTMLContent += '</a></div></form>';
|
||||
|
||||
/***** Month head: first letter for each day of week *****/
|
||||
HTMLContent += '<table class="MONTH_TABLE_DAYS">'
|
||||
|
@ -767,8 +785,43 @@ function DrawMonth (id,Year,Month,Today,DrawingCalendar,PrintView,CGI,FormEventP
|
|||
DayOfWeek++)
|
||||
{
|
||||
/***** Set class for day being drawn *****/
|
||||
ClassForDay = (Mon == Month) ? 'DAY_WRK' :
|
||||
'DAY_WRK_LIGHT';
|
||||
ClassForDay = ((Mon == Month) ? 'DAY_WRK' :
|
||||
'DAY_WRK_LIGHT');
|
||||
TextForDay = '';
|
||||
|
||||
/* Check if day is a holiday or a school day */
|
||||
YYYYMMDD = Yea*10000 + Mon*100 + Day;
|
||||
for (NumHld = 0, ContinueSearching = true;
|
||||
NumHld < Hlds.length && ContinueSearching;
|
||||
NumHld++)
|
||||
if (Hlds[NumHld].PlcCod <= 0 ||
|
||||
Hlds[NumHld].PlcCod == CurrentPlcCod)
|
||||
{
|
||||
if (Hlds[NumHld].StartDate > YYYYMMDD) // List is ordered by start date. If start date is greater than date being drawn, don't continue searching
|
||||
ContinueSearching = false;
|
||||
else // start date <= date being drawn
|
||||
switch (Hlds[NumHld].HldTyp)
|
||||
{
|
||||
case Hld_HOLIDAY:
|
||||
if (Hlds[NumHld].StartDate == YYYYMMDD) // If start date == date being drawn
|
||||
{
|
||||
ClassForDay = ((Mon == Month) ? 'DAY_HLD' :
|
||||
'DAY_HLD_LIGHT');
|
||||
TextForDay = Hlds[NumHld].Name;
|
||||
ContinueSearching = false;
|
||||
}
|
||||
break;
|
||||
case Hld_NON_SCHOOL_PERIOD:
|
||||
if (Hlds[NumHld].EndDate >= YYYYMMDD) // If start date <= date being drawn <= end date
|
||||
{
|
||||
ClassForDay = ((Mon == Month) ? 'DAY_NO_WORK' :
|
||||
'DAY_NO_WORK_LIGHT');
|
||||
TextForDay = Hlds[NumHld].Name;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Day being drawn is sunday? */
|
||||
if (DayOfWeek == 6) // All the sundays are holidays
|
||||
ClassForDay = (Mon == Month) ? 'DAY_HLD' :
|
||||
|
@ -790,17 +843,11 @@ function DrawMonth (id,Year,Month,Today,DrawingCalendar,PrintView,CGI,FormEventP
|
|||
Day == LstExamAnnouncements[NumExamAnnouncement].Day)
|
||||
{
|
||||
ThisDayHasEvent = true;
|
||||
/*
|
||||
if (!PrintView)
|
||||
{
|
||||
sprintf (StrExamOfX,Txt_Exam_of_X,Gbl.CurrentCrs.Crs.FullName);
|
||||
sprintf (Gbl.Title,"%s: %02u/%02u/%04u",
|
||||
StrExamOfX,
|
||||
Gbl.LstExamAnnouncements.Lst[NumExamAnnouncement].Day,
|
||||
Gbl.LstExamAnnouncements.Lst[NumExamAnnouncement].Month,
|
||||
Gbl.LstExamAnnouncements.Lst[NumExamAnnouncement].Yea);
|
||||
}
|
||||
*/
|
||||
TextForDay = STR_EXAM + ': ' +
|
||||
LstExamAnnouncements[NumExamAnnouncement].Year + '-' +
|
||||
LstExamAnnouncements[NumExamAnnouncement].Month + '-' +
|
||||
LstExamAnnouncements[NumExamAnnouncement].Day;
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -815,25 +862,26 @@ function DrawMonth (id,Year,Month,Today,DrawingCalendar,PrintView,CGI,FormEventP
|
|||
/* If day has an exam announcement */
|
||||
if (!PrintView && ThisDayHasEvent)
|
||||
{
|
||||
FormEventIdNum++;
|
||||
FormEventId = 'cal_event_' + FormEventIdNum;
|
||||
FormIdNum++;
|
||||
FormId = 'cal_event_' + FormIdNum;
|
||||
HTMLContent += '<form method="post" action="' +
|
||||
CGI +
|
||||
'" id="' +
|
||||
FormEventId +
|
||||
FormId +
|
||||
'">';
|
||||
HTMLContent += FormEventParams;
|
||||
HTMLContent += '<div class="' + ClassForDay + '">';
|
||||
HTMLContent += '<div class="' + ClassForDay + '"';
|
||||
if (TextForDay.length)
|
||||
HTMLContent += ' title="' + TextForDay + '"';
|
||||
HTMLContent += '>';
|
||||
HTMLContent += '<a href="" class="' + ClassForDay + '"' +
|
||||
' onclick="document.getElementById(\'' + FormEventId + '\').submit();return false;">';
|
||||
' onclick="document.getElementById(\'' + FormId + '\').submit();return false;">';
|
||||
}
|
||||
else
|
||||
{
|
||||
HTMLContent += '<div class="' + ClassForDay + '"';
|
||||
/*
|
||||
if (TextForDay)
|
||||
fprintf (Gbl.F.Out," title=\"%s\"",TextForDay);
|
||||
*/
|
||||
if (TextForDay.length)
|
||||
HTMLContent += ' title="' + TextForDay + '"';
|
||||
HTMLContent += '>';
|
||||
}
|
||||
|
||||
|
|
|
@ -55,9 +55,11 @@ void Cal_DrawCurrentMonth (void)
|
|||
{
|
||||
extern const char *Txt_MONTHS_CAPS[12];
|
||||
extern const char *Txt_DAYS_CAPS[7];
|
||||
extern const char *Txt_Exam_of_X;
|
||||
extern const char *Txt_STR_LANG_ID[Txt_NUM_LANGUAGES];
|
||||
unsigned Month;
|
||||
unsigned DayOfWeek; /* 0, 1, 2, 3, 4, 5, 6 */
|
||||
unsigned NumHld;
|
||||
unsigned NumExamAnnouncement; // Number of exam announcement
|
||||
char Params[256+256+Ses_LENGTH_SESSION_ID+256];
|
||||
|
||||
|
@ -72,7 +74,7 @@ void Cal_DrawCurrentMonth (void)
|
|||
Exa_CreateListOfExamAnnouncements ();
|
||||
|
||||
/***** Draw the month *****/
|
||||
Cal_DrawMonth (Gbl.Now.Date.Year,Gbl.Now.Date.Month,false,false);
|
||||
// Cal_DrawMonth (Gbl.Now.Date.Year,Gbl.Now.Date.Month,false,false);
|
||||
|
||||
/***** Draw the month in JavaScript *****/
|
||||
/* JavaScript will write HTML here */
|
||||
|
@ -103,21 +105,39 @@ void Cal_DrawCurrentMonth (void)
|
|||
}
|
||||
fprintf (Gbl.F.Out,"];\n");
|
||||
|
||||
fprintf (Gbl.F.Out," var STR_EXAM = '");
|
||||
fprintf (Gbl.F.Out,Txt_Exam_of_X,Gbl.CurrentCrs.Crs.FullName);
|
||||
fprintf (Gbl.F.Out,"';");
|
||||
|
||||
fprintf (Gbl.F.Out," var Hlds = [];\n");
|
||||
for (NumHld = 0;
|
||||
NumHld < Gbl.Hlds.Num;
|
||||
NumHld++)
|
||||
fprintf (Gbl.F.Out," Hlds.push({ PlcCod: %ld, HldTyp: %u, StartDate: %s, EndDate: %s, Name: '%s' });\n",
|
||||
Gbl.Hlds.Lst[NumHld].PlcCod,
|
||||
(unsigned) Gbl.Hlds.Lst[NumHld].HldTyp,
|
||||
Gbl.Hlds.Lst[NumHld].StartDate.YYYYMMDD,
|
||||
Gbl.Hlds.Lst[NumHld].EndDate.YYYYMMDD,
|
||||
Gbl.Hlds.Lst[NumHld].Name);
|
||||
|
||||
fprintf (Gbl.F.Out," var LstExamAnnouncements = [];\n");
|
||||
for (NumExamAnnouncement = 0;
|
||||
NumExamAnnouncement < Gbl.LstExamAnnouncements.NumExamAnnounc;
|
||||
NumExamAnnouncement++)
|
||||
fprintf (Gbl.F.Out," LstExamAnnouncements.push({ Year: '%u', Month: '%u', Day: '%u' });\n",
|
||||
fprintf (Gbl.F.Out," LstExamAnnouncements.push({ Year: %u, Month: %u, Day: %u });\n",
|
||||
Gbl.LstExamAnnouncements.Lst[NumExamAnnouncement].Year,
|
||||
Gbl.LstExamAnnouncements.Lst[NumExamAnnouncement].Month,
|
||||
Gbl.LstExamAnnouncements.Lst[NumExamAnnouncement].Day);
|
||||
|
||||
Act_SetParamsForm (Params,ActSeeExaAnn,true);
|
||||
fprintf (Gbl.F.Out," DrawCurrentMonth ('CurrentMonth',%ld,'%s/%s','%s');\n"
|
||||
"</script>\n",
|
||||
fprintf (Gbl.F.Out," DrawCurrentMonth ('CurrentMonth',%ld,'%s/%s',%ld,",
|
||||
(long) Gbl.StartExecutionTimeUTC,
|
||||
Cfg_HTTPS_URL_SWAD_CGI,Txt_STR_LANG_ID[Gbl.Prefs.Language],
|
||||
Params);
|
||||
Gbl.CurrentCtr.Ctr.PlcCod);
|
||||
Act_SetParamsForm (Params,ActSeeCal,true);
|
||||
fprintf (Gbl.F.Out,"'%s',",Params);
|
||||
Act_SetParamsForm (Params,ActSeeExaAnn,true);
|
||||
fprintf (Gbl.F.Out,"'%s');\n"
|
||||
"</script>\n",Params);
|
||||
|
||||
/***** Free list of dates of exam announcements *****/
|
||||
Exa_FreeListExamAnnouncements ();
|
||||
|
|
|
@ -108,11 +108,12 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.29.4 (2015/10/29)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.30 (2015/10/30)"
|
||||
|
||||
// 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.30: Oct 30, 2015 Current month is drown in browser using JavaScript. (186795 lines)
|
||||
Version 15.29.4: Oct 29, 2015 Writing JavaScript function to draw a month in browser. Not finished. (186729 lines)
|
||||
Version 15.29.3: Oct 29, 2015 Writing JavaScript function to draw a month in browser. Not finished. (186703 lines)
|
||||
Version 15.29.2: Oct 29, 2015 Writing JavaScript function to draw a month in browser. Not finished. (186694 lines)
|
||||
|
|
Loading…
Reference in New Issue
Block a user