mirror of https://github.com/acanas/swad-core.git
Version 15.17.1
This commit is contained in:
parent
6e767f3340
commit
eb151fb02c
104
js/swad.js
104
js/swad.js
|
@ -48,30 +48,33 @@ function writeLocalDateTimeFromUTC(id,secsSince1970UTC) {
|
||||||
|
|
||||||
d.setTime(secsSince1970UTC * 1000);
|
d.setTime(secsSince1970UTC * 1000);
|
||||||
Minutes = d.getMinutes();
|
Minutes = d.getMinutes();
|
||||||
|
Seconds = d.getSeconds();
|
||||||
StrMinutes = ((Minutes < 10) ? "0" : "") + Minutes;
|
StrMinutes = ((Minutes < 10) ? "0" : "") + Minutes;
|
||||||
document.getElementById(id).innerHTML = d.toLocaleDateString() + " " + d.getHours() + ":" + StrMinutes;
|
StrSeconds = ((Seconds < 10) ? "0" : "") + Seconds;
|
||||||
|
document.getElementById(id).innerHTML = d.toLocaleDateString() + "<br />" +
|
||||||
|
d.getHours() + ":" + StrMinutes + ":" + StrSeconds;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set local date-time form fields from UTC time
|
// Set local date-time form fields from UTC time
|
||||||
function setLocalDateTimeFormFromUTC(id,secsSince1970UTC) {
|
function setLocalDateTimeFormFromUTC(id,secsSince1970UTC) {
|
||||||
var d = new Date;
|
var d = new Date;
|
||||||
var Day;
|
var YearForm = document.getElementById(id+'Year');
|
||||||
var Month;
|
|
||||||
var Year;
|
var Year;
|
||||||
var Hour;
|
|
||||||
var Minute;
|
|
||||||
|
|
||||||
d.setTime(secsSince1970UTC * 1000);
|
d.setTime(secsSince1970UTC * 1000);
|
||||||
Year = d.getFullYear();
|
|
||||||
Month = d.getMonth() + 1;
|
Year = d.getFullYear()
|
||||||
Day = d.getDate();
|
for (var i=0; i<YearForm.options.length ; i++)
|
||||||
Hour = d.getHours();
|
if (YearForm.options[i].value == Year)
|
||||||
Minute = d.getMinutes();
|
{
|
||||||
document.getElementById(id+'_year_' +Year ).selected = true;
|
YearForm.options[i].selected = true;
|
||||||
document.getElementById(id+'_month_' +Month ).selected = true;
|
break;
|
||||||
document.getElementById(id+'_day_' +Day ).selected = true;
|
}
|
||||||
document.getElementById(id+'_hour_' +Hour ).selected = true;
|
document.getElementById(id+'Month' ).options[d.getMonth()+1].selected = true;
|
||||||
document.getElementById(id+'_minute_'+Minute).selected = true;
|
document.getElementById(id+'Day' ).options[d.getDate() ].selected = true;
|
||||||
|
document.getElementById(id+'Hour' ).options[d.getHours() ].selected = true;
|
||||||
|
document.getElementById(id+'Minute').options[d.getMinutes()].selected = true;
|
||||||
|
document.getElementById(id+'Second').options[d.getSeconds()].selected = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set UTC time from local date-time form fields
|
// Set UTC time from local date-time form fields
|
||||||
|
@ -80,16 +83,57 @@ function setUTCFromLocalDateTimeForm(id) {
|
||||||
|
|
||||||
// Important: set year first in order to work properly with leap years
|
// Important: set year first in order to work properly with leap years
|
||||||
d.setFullYear(document.getElementById(id+'Year' ).value);
|
d.setFullYear(document.getElementById(id+'Year' ).value);
|
||||||
d.setMonth (document.getElementById(id+'Month' ).value - 1);
|
d.setMonth (document.getElementById(id+'Month' ).value-1);
|
||||||
d.setDate (document.getElementById(id+'Day' ).value);
|
d.setDate (document.getElementById(id+'Day' ).value);
|
||||||
d.setHours (document.getElementById(id+'Hour' ).value);
|
d.setHours (document.getElementById(id+'Hour' ).value);
|
||||||
d.setMinutes (document.getElementById(id+'Minute').value);
|
d.setMinutes (document.getElementById(id+'Minute').value);
|
||||||
d.setSeconds(0);
|
d.setSeconds (document.getElementById(id+'Second').value);
|
||||||
d.setMilliseconds(0);
|
d.setMilliseconds(0);
|
||||||
|
|
||||||
document.getElementById(id+'TimeUTC').value = d.getTime() / 1000;
|
document.getElementById(id+'TimeUTC').value = d.getTime() / 1000;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Adjust a date form correcting days in the month
|
||||||
|
function adjustDateForm (id) {
|
||||||
|
var Days = 31;
|
||||||
|
var YearForm = document.getElementById(id+'Year' );
|
||||||
|
var MonthForm = document.getElementById(id+'Month');
|
||||||
|
var DayForm = document.getElementById(id+'Day' );
|
||||||
|
var Year = YearForm.options[YearForm.selectedIndex].value;
|
||||||
|
|
||||||
|
if (MonthForm.options[2].selected) // Adjust days of february
|
||||||
|
Days = ((((Year % 4) == 0) && ((Year % 100) != 0)) || ((Year % 400) == 0)) ? 29 : 28;
|
||||||
|
else if (MonthForm.options[ 4].selected ||
|
||||||
|
MonthForm.options[ 6].selected ||
|
||||||
|
MonthForm.options[ 9].selected ||
|
||||||
|
MonthForm.options[11].selected)
|
||||||
|
Days = 30;
|
||||||
|
|
||||||
|
if (DayForm.selectedIndex > Days)
|
||||||
|
DayForm.options[Days].selected = true;
|
||||||
|
|
||||||
|
for (var i=DayForm.options.length; i<=Days ; i++) // Create new days
|
||||||
|
{
|
||||||
|
var x = String (i);
|
||||||
|
DayForm.options[i] = new Option(x,x);
|
||||||
|
}
|
||||||
|
for (var i=DayForm.options.length-1; i>Days; i--) // Remove days
|
||||||
|
DayForm.options[i] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set a the date in a date form to a specified date
|
||||||
|
function setDateTo (elem,Day,Month,Year) {
|
||||||
|
document.getElementById('StartYear' ).options[Year ].selected = true;
|
||||||
|
document.getElementById('StartMonth').options[Month].selected = true;
|
||||||
|
adjustDateForm (elem.form.StartDay,elem.form.StartMonth,elem.form.StartYear)
|
||||||
|
document.getElementById('StartDay' ).options[Day ].selected = true;
|
||||||
|
|
||||||
|
document.getElementById('EndYear' ).options[Year ].selected = true;
|
||||||
|
document.getElementById('EndMonth').options[Month].selected = true;
|
||||||
|
adjustDateForm (elem.form.EndDay,elem.form.EndMonth,elem.form.EndYear)
|
||||||
|
document.getElementById('EndDay' ).options[Day ].selected = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Write clock in client local time updated every minute
|
// Write clock in client local time updated every minute
|
||||||
function writeLocalClock() {
|
function writeLocalClock() {
|
||||||
var d = new Date;
|
var d = new Date;
|
||||||
|
@ -329,32 +373,6 @@ function uncheckChildren(MainCheckbox, GroupCheckboxes) {
|
||||||
if (Formul.elements[i].name == GroupCheckboxes) Formul.elements[i].checked = false;
|
if (Formul.elements[i].name == GroupCheckboxes) Formul.elements[i].checked = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Adjust a date form correcting days in the month
|
|
||||||
function adjustDateForm (DayForm,MonthForm,YearForm) {
|
|
||||||
var Days = 31;
|
|
||||||
var Year = YearForm.options[YearForm.selectedIndex].value;
|
|
||||||
if (MonthForm.options[2].selected) // Adjust days of february
|
|
||||||
{ if ((((Year % 4) == 0) && ((Year % 100) != 0)) || ((Year % 400) == 0)) Days = 29; else Days = 28; }
|
|
||||||
else if (MonthForm.options[4].selected || MonthForm.options[6].selected || MonthForm.options[9].selected || MonthForm.options[11].selected) Days = 30;
|
|
||||||
if (DayForm.selectedIndex > Days) DayForm.options[Days].selected = true;
|
|
||||||
for (var i=DayForm.options.length; i<=Days ; i++) // Create new days at start
|
|
||||||
{ var x = String (i); DayForm.options[i] = new Option(x,x); }
|
|
||||||
for (var i=DayForm.options.length-1; i>Days; i--) // Remove days at the end
|
|
||||||
DayForm.options[i] = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set a the date in a date form to a specified date
|
|
||||||
function setDateTo (elem,Day,Month,Year) {
|
|
||||||
document.getElementById('StartYear').options[Year].selected = true;
|
|
||||||
document.getElementById('StartMonth').options[Month].selected = true;
|
|
||||||
adjustDateForm (elem.form.StartDay,elem.form.StartMonth,elem.form.StartYear)
|
|
||||||
document.getElementById('StartDay').options[Day].selected = true;
|
|
||||||
document.getElementById('EndYear').options[Year].selected = true;
|
|
||||||
document.getElementById('EndMonth').options[Month].selected = true;
|
|
||||||
adjustDateForm (elem.form.EndDay,elem.form.EndMonth,elem.form.EndYear)
|
|
||||||
document.getElementById('EndDay').options[Day].selected = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Change text of a test descriptor
|
// Change text of a test descriptor
|
||||||
function changeTxtTag(NumTag){
|
function changeTxtTag(NumTag){
|
||||||
var Sel = document.getElementById('SelDesc'+NumTag);
|
var Sel = document.getElementById('SelDesc'+NumTag);
|
||||||
|
|
|
@ -1323,6 +1323,7 @@ void Asg_RecFormAssignment (void)
|
||||||
Grp_FreeListCodSelectedGrps ();
|
Grp_FreeListCodSelectedGrps ();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
// TODO: The form should be filled with partial data, now is always empty
|
||||||
Asg_RequestCreatOrEditAsg ();
|
Asg_RequestCreatOrEditAsg ();
|
||||||
|
|
||||||
/***** Notify by e-mail about the new assignment *****/
|
/***** Notify by e-mail about the new assignment *****/
|
||||||
|
|
|
@ -1022,9 +1022,7 @@ void Att_RequestCreatOrEditAttEvent (void)
|
||||||
struct AttendanceEvent Att;
|
struct AttendanceEvent Att;
|
||||||
bool ItsANewAttEvent;
|
bool ItsANewAttEvent;
|
||||||
Att_StartOrEndTime_t StartOrEndTime;
|
Att_StartOrEndTime_t StartOrEndTime;
|
||||||
const char *NameSelectYear [Att_NUM_DATES] = {"StartYear" ,"EndYear" };
|
const char *Id[Att_NUM_DATES] = {"Start","End"};
|
||||||
const char *NameSelectMonth [Att_NUM_DATES] = {"StartMonth" ,"EndMonth" };
|
|
||||||
const char *NameSelectDay [Att_NUM_DATES] = {"StartDay" ,"EndDay" };
|
|
||||||
const char *NameSelectHour [Att_NUM_DATES] = {"StartHour" ,"EndHour" };
|
const char *NameSelectHour [Att_NUM_DATES] = {"StartHour" ,"EndHour" };
|
||||||
const char *NameSelectMinute[Att_NUM_DATES] = {"StartMinute","EndMinute"};
|
const char *NameSelectMinute[Att_NUM_DATES] = {"StartMinute","EndMinute"};
|
||||||
const char *Dates[Att_NUM_DATES] = {Txt_Start_date,Txt_End_date};
|
const char *Dates[Att_NUM_DATES] = {Txt_Start_date,Txt_End_date};
|
||||||
|
@ -1112,9 +1110,7 @@ void Att_RequestCreatOrEditAttEvent (void)
|
||||||
|
|
||||||
/* Date */
|
/* Date */
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year-1,Gbl.Now.Date.Year+1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year-1,Gbl.Now.Date.Year+1,
|
||||||
NameSelectDay [StartOrEndTime],
|
Id[StartOrEndTime],
|
||||||
NameSelectMonth[StartOrEndTime],
|
|
||||||
NameSelectYear [StartOrEndTime],
|
|
||||||
&(Att.DateTimes[StartOrEndTime].Date),
|
&(Att.DateTimes[StartOrEndTime].Date),
|
||||||
false,false);
|
false,false);
|
||||||
|
|
||||||
|
|
|
@ -102,16 +102,18 @@
|
||||||
// TODO: A teacher should may confirm a student ID? In what conditions? (Necessary in order to a student can view his/her marks)
|
// TODO: A teacher should may confirm a student ID? In what conditions? (Necessary in order to a student can view his/her marks)
|
||||||
// TODO: Put headers Content-type and Content-disposition when redirecting with Location:
|
// TODO: Put headers Content-type and Content-disposition when redirecting with Location:
|
||||||
// TODO: System admin should be able to remove/edit user's mail (when he/she detects a recipient does not exists, for example)
|
// TODO: System admin should be able to remove/edit user's mail (when he/she detects a recipient does not exists, for example)
|
||||||
|
// TODO: When a new assignment is incorrect, the second time the form is shown, it should be filled with partial data, now is always empty
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.17 (2015/10/22)"
|
#define Log_PLATFORM_VERSION "SWAD 15.17.1 (2015/10/23)"
|
||||||
|
|
||||||
// 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.17.1: Oct 23, 2015 Code refactoring related to dates and JavaScript. (186407 lines)
|
||||||
Version 15.17: Oct 22, 2015 Code refactoring related to dates and JavaScript.
|
Version 15.17: Oct 22, 2015 Code refactoring related to dates and JavaScript.
|
||||||
Fixed bug in internal editor of syllabus. (186379 lines)
|
Fixed bug in internal editor of syllabus. (186379 lines)
|
||||||
Version 15.16.2: Oct 22, 2015 Assignment date-times are displayed in client local date-time. Not finished. (186479 lines)
|
Version 15.16.2: Oct 22, 2015 Assignment date-times are displayed in client local date-time. Not finished. (186479 lines)
|
||||||
|
|
170
swad_date.c
170
swad_date.c
|
@ -229,7 +229,7 @@ void Dat_WriteFormIniEndDates (void)
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
"<td class=\"LEFT_MIDDLE\">",
|
||||||
The_ClassForm[Gbl.Prefs.Theme],
|
The_ClassForm[Gbl.Prefs.Theme],
|
||||||
Txt_Start_date);
|
Txt_Start_date);
|
||||||
Dat_WriteFormDate (Cfg_LOG_START_YEAR,Gbl.Now.Date.Year,"StartDay","StartMonth","StartYear",
|
Dat_WriteFormDate (Cfg_LOG_START_YEAR,Gbl.Now.Date.Year,"Start",
|
||||||
&(Gbl.DateRange.DateIni),
|
&(Gbl.DateRange.DateIni),
|
||||||
false,false);
|
false,false);
|
||||||
|
|
||||||
|
@ -259,7 +259,7 @@ void Dat_WriteFormIniEndDates (void)
|
||||||
"<td class=\"LEFT_MIDDLE\">",
|
"<td class=\"LEFT_MIDDLE\">",
|
||||||
The_ClassForm[Gbl.Prefs.Theme],
|
The_ClassForm[Gbl.Prefs.Theme],
|
||||||
Txt_End_date);
|
Txt_End_date);
|
||||||
Dat_WriteFormDate (Cfg_LOG_START_YEAR,Gbl.Now.Date.Year,"EndDay","EndMonth","EndYear",
|
Dat_WriteFormDate (Cfg_LOG_START_YEAR,Gbl.Now.Date.Year,"End",
|
||||||
&(Gbl.DateRange.DateEnd),
|
&(Gbl.DateRange.DateEnd),
|
||||||
false,false);
|
false,false);
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
|
@ -282,11 +282,58 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
unsigned Year;
|
unsigned Year;
|
||||||
unsigned Hour;
|
unsigned Hour;
|
||||||
unsigned Minute;
|
unsigned Minute;
|
||||||
|
unsigned Second;
|
||||||
|
|
||||||
|
/***** Start table *****/
|
||||||
|
fprintf (Gbl.F.Out,"<table>"
|
||||||
|
"<tr>");
|
||||||
|
|
||||||
|
/***** Year *****/
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
"<select id=\"%sYear\" name=\"%sYear\""
|
||||||
|
" onchange=\""
|
||||||
|
"adjustDateForm('%s');"
|
||||||
|
"setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id,Id,Id,Id);
|
||||||
|
if (SubmitFormOnChange)
|
||||||
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
|
Gbl.FormId);
|
||||||
|
fprintf (Gbl.F.Out,"\"");
|
||||||
|
if (Disabled)
|
||||||
|
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
||||||
|
fprintf (Gbl.F.Out,"><option value=\"0\">-</option>");
|
||||||
|
for (Year = FirstYear;
|
||||||
|
Year <= LastYear;
|
||||||
|
Year++)
|
||||||
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
|
||||||
|
Year,Year);
|
||||||
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
|
"</td>");
|
||||||
|
|
||||||
|
/***** Month *****/
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
|
"<select id=\"%sMonth\" name=\"%sMonth\""
|
||||||
|
" onchange=\""
|
||||||
|
"adjustDateForm('%s');"
|
||||||
|
"setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id,Id,Id,Id);
|
||||||
|
if (SubmitFormOnChange)
|
||||||
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
|
Gbl.FormId);
|
||||||
|
fprintf (Gbl.F.Out,"\"");
|
||||||
|
if (Disabled)
|
||||||
|
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
||||||
|
fprintf (Gbl.F.Out,"><option value=\"0\">-</option>");
|
||||||
|
for (Month = 1;
|
||||||
|
Month <= 12;
|
||||||
|
Month++)
|
||||||
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%s</option>",
|
||||||
|
Month,Txt_MONTHS_SMALL[Month-1]);
|
||||||
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
|
"</td>");
|
||||||
|
|
||||||
/***** Day *****/
|
/***** Day *****/
|
||||||
fprintf (Gbl.F.Out,"<table>"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
"<tr>"
|
|
||||||
"<td class=\"CENTER_MIDDLE\">"
|
|
||||||
"<select id=\"%sDay\" name=\"%sDay\""
|
"<select id=\"%sDay\" name=\"%sDay\""
|
||||||
" onchange=\"setUTCFromLocalDateTimeForm('%s');",
|
" onchange=\"setUTCFromLocalDateTimeForm('%s');",
|
||||||
Id,Id,Id);
|
Id,Id,Id);
|
||||||
|
@ -301,57 +348,13 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
for (Day = 1;
|
for (Day = 1;
|
||||||
Day <= 31;
|
Day <= 31;
|
||||||
Day++)
|
Day++)
|
||||||
fprintf (Gbl.F.Out,"<option id=\"%s_day_%u\" value=\"%u\">%u</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%u</option>",
|
||||||
Id,Day,Day,Day);
|
Day,Day);
|
||||||
|
|
||||||
/***** Month *****/
|
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"CENTER_MIDDLE\">"
|
|
||||||
"<select id=\"%sMonth\" name=\"%sMonth\""
|
|
||||||
" onchange=\""
|
|
||||||
"adjustDateForm(this.form.%sDay,this.form.%sMonth,this.form.%sYear);"
|
|
||||||
"setUTCFromLocalDateTimeForm('%s');",
|
|
||||||
Id,Id,Id,Id,Id,Id);
|
|
||||||
if (SubmitFormOnChange)
|
|
||||||
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
|
||||||
Gbl.FormId);
|
|
||||||
fprintf (Gbl.F.Out,"\"");
|
|
||||||
if (Disabled)
|
|
||||||
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
|
||||||
fprintf (Gbl.F.Out,"><option value=\"0\">-</option>");
|
|
||||||
for (Month = 1;
|
|
||||||
Month <= 12;
|
|
||||||
Month++)
|
|
||||||
fprintf (Gbl.F.Out,"<option id=\"%s_month_%u\" value=\"%u\">%s</option>",
|
|
||||||
Id,Month,Month,Txt_MONTHS_SMALL[Month-1]);
|
|
||||||
|
|
||||||
/***** Year *****/
|
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
|
||||||
"</td>"
|
|
||||||
"<td class=\"CENTER_MIDDLE\">"
|
|
||||||
"<select id=\"%sYear\" name=\"%sYear\""
|
|
||||||
" onchange=\""
|
|
||||||
"adjustDateForm(this.form.%sDay,this.form.%sMonth,this.form.%sYear);"
|
|
||||||
"setUTCFromLocalDateTimeForm('%s');",
|
|
||||||
Id,Id,Id,Id,Id,Id);
|
|
||||||
if (SubmitFormOnChange)
|
|
||||||
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
|
||||||
Gbl.FormId);
|
|
||||||
fprintf (Gbl.F.Out,"\"");
|
|
||||||
if (Disabled)
|
|
||||||
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
|
||||||
fprintf (Gbl.F.Out,"><option value=\"0\">-</option>");
|
|
||||||
for (Year = FirstYear;
|
|
||||||
Year <= LastYear;
|
|
||||||
Year++)
|
|
||||||
fprintf (Gbl.F.Out,"<option id=\"%s_year_%u\" value=\"%u\">%u</option>",
|
|
||||||
Id,Year,Year,Year);
|
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
"</td>");
|
"</td>");
|
||||||
|
|
||||||
/***** Hour *****/
|
/***** Hour *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_MIDDLE\">, "
|
||||||
"<select id=\"%sHour\" name=\"%sHour\""
|
"<select id=\"%sHour\" name=\"%sHour\""
|
||||||
" onchange=\"setUTCFromLocalDateTimeForm('%s');",
|
" onchange=\"setUTCFromLocalDateTimeForm('%s');",
|
||||||
Id,Id,Id);
|
Id,Id,Id);
|
||||||
|
@ -365,13 +368,13 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
for (Hour = 0;
|
for (Hour = 0;
|
||||||
Hour <= 23;
|
Hour <= 23;
|
||||||
Hour++)
|
Hour++)
|
||||||
fprintf (Gbl.F.Out,"<option id=\"%s_hour_%u\" value=\"%u\">%02u h</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u h</option>",
|
||||||
Id,Hour,Hour,Hour);
|
Hour,Hour);
|
||||||
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
|
"</td>");
|
||||||
|
|
||||||
/***** Minute *****/
|
/***** Minute *****/
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"</td>"
|
|
||||||
"<td class=\"LEFT_MIDDLE\">"
|
|
||||||
"<select id=\"%sMinute\" name=\"%sMinute\""
|
"<select id=\"%sMinute\" name=\"%sMinute\""
|
||||||
" onchange=\"setUTCFromLocalDateTimeForm('%s');",
|
" onchange=\"setUTCFromLocalDateTimeForm('%s');",
|
||||||
Id,Id,Id);
|
Id,Id,Id);
|
||||||
|
@ -379,18 +382,39 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
Gbl.FormId);
|
Gbl.FormId);
|
||||||
fprintf (Gbl.F.Out,"\"");
|
fprintf (Gbl.F.Out,"\"");
|
||||||
|
|
||||||
if (Disabled)
|
if (Disabled)
|
||||||
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
||||||
fprintf (Gbl.F.Out,">");
|
fprintf (Gbl.F.Out,">");
|
||||||
for (Minute = 0;
|
for (Minute = 0;
|
||||||
Minute <= 59;
|
Minute <= 59;
|
||||||
Minute++)
|
Minute++)
|
||||||
fprintf (Gbl.F.Out,"<option id=\"%s_minute_%u\" value=\"%u\">%02u '</option>",
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u '</option>",
|
||||||
Id,Minute,Minute,Minute);
|
Minute,Minute);
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
"</td>"
|
"</td>");
|
||||||
"</tr>"
|
|
||||||
|
/***** Second *****/
|
||||||
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
|
"<select id=\"%sSecond\" name=\"%sSecond\""
|
||||||
|
" onchange=\"setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id,Id,Id);
|
||||||
|
if (SubmitFormOnChange)
|
||||||
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
|
Gbl.FormId);
|
||||||
|
fprintf (Gbl.F.Out,"\"");
|
||||||
|
if (Disabled)
|
||||||
|
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
||||||
|
fprintf (Gbl.F.Out,">");
|
||||||
|
for (Second = 0;
|
||||||
|
Second <= 59;
|
||||||
|
Second++)
|
||||||
|
fprintf (Gbl.F.Out,"<option value=\"%u\">%02u "</option>",
|
||||||
|
Second,Second);
|
||||||
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
|
"</td>");
|
||||||
|
|
||||||
|
/***** End table *****/
|
||||||
|
fprintf (Gbl.F.Out,"</tr>"
|
||||||
"</table>");
|
"</table>");
|
||||||
|
|
||||||
/***** Hidden field with UTC time (seconds since 1970) used to send time *****/
|
/***** Hidden field with UTC time (seconds since 1970) used to send time *****/
|
||||||
|
@ -400,8 +424,9 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
/***** Script to set selectors to local date and time from UTC time *****/
|
/***** Script to set selectors to local date and time from UTC time *****/
|
||||||
fprintf (Gbl.F.Out,"<script type=\"text/javascript\">"
|
fprintf (Gbl.F.Out,"<script type=\"text/javascript\">"
|
||||||
"setLocalDateTimeFormFromUTC('%s',%ld);"
|
"setLocalDateTimeFormFromUTC('%s',%ld);"
|
||||||
|
"adjustDateForm('%s');"
|
||||||
"</script>",
|
"</script>",
|
||||||
Id,(long) TimeUTC);
|
Id,(long) TimeUTC,Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -432,9 +457,7 @@ http://javascript.internet.com/forms/category-selection.html
|
||||||
See also http://www.ashleyit.com/rs/jsrs/select/php/select.php
|
See also http://www.ashleyit.com/rs/jsrs/select/php/select.php
|
||||||
*/
|
*/
|
||||||
void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
const char *NameSelectDay,
|
const char *Id,
|
||||||
const char *NameSelectMonth,
|
|
||||||
const char *NameSelectYear,
|
|
||||||
struct Date *DateSelected,
|
struct Date *DateSelected,
|
||||||
bool SubmitFormOnChange,bool Disabled)
|
bool SubmitFormOnChange,bool Disabled)
|
||||||
{
|
{
|
||||||
|
@ -448,8 +471,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
fprintf (Gbl.F.Out,"<table>"
|
fprintf (Gbl.F.Out,"<table>"
|
||||||
"<tr>"
|
"<tr>"
|
||||||
"<td class=\"CENTER_MIDDLE\">"
|
"<td class=\"CENTER_MIDDLE\">"
|
||||||
"<select id=\"%s\" name=\"%s\"",
|
"<select id=\"%sDay\" name=\"%sDay\"",
|
||||||
NameSelectDay,NameSelectDay);
|
Id,Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\"",
|
fprintf (Gbl.F.Out," onchange=\"document.getElementById('%s').submit();\"",
|
||||||
Gbl.FormId);
|
Gbl.FormId);
|
||||||
|
@ -473,9 +496,9 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
"</td>"
|
"</td>"
|
||||||
"<td class=\"CENTER_MIDDLE\">"
|
"<td class=\"CENTER_MIDDLE\">"
|
||||||
"<select id=\"%s\" name=\"%s\""
|
"<select id=\"%sMonth\" name=\"%sMonth\""
|
||||||
" onchange=\"adjustDateForm(this.form.%s,this.form.%s,this.form.%s);",
|
" onchange=\"adjustDateForm('%s');",
|
||||||
NameSelectMonth,NameSelectMonth,NameSelectDay,NameSelectMonth,NameSelectYear);
|
Id,Id,Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
Gbl.FormId);
|
Gbl.FormId);
|
||||||
|
@ -497,8 +520,9 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
"</td>"
|
"</td>"
|
||||||
"<td class=\"CENTER_MIDDLE\">"
|
"<td class=\"CENTER_MIDDLE\">"
|
||||||
"<select id=\"%s\" name=\"%s\" onchange=\"adjustDateForm(this.form.%s,this.form.%s,this.form.%s);",
|
"<select id=\"%sYear\" name=\"%sYear\""
|
||||||
NameSelectYear,NameSelectYear,NameSelectDay,NameSelectMonth,NameSelectYear);
|
" onchange=\"adjustDateForm('%s');",
|
||||||
|
Id,Id,Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
Gbl.FormId);
|
Gbl.FormId);
|
||||||
|
|
|
@ -86,9 +86,7 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
time_t Dat_GetTimeUTCFromForm (const char *ParamName);
|
time_t Dat_GetTimeUTCFromForm (const char *ParamName);
|
||||||
|
|
||||||
void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
const char *NameSelectDay,
|
const char *Id,
|
||||||
const char *NameSelectMonth,
|
|
||||||
const char *NameSelectYear,
|
|
||||||
struct Date *DateSelected,
|
struct Date *DateSelected,
|
||||||
bool SubmitFormOnChange,bool Disabled);
|
bool SubmitFormOnChange,bool Disabled);
|
||||||
void Dat_WriteFormHourMinute (const char *NameSelectHour,const char *NameSelectMinute,
|
void Dat_WriteFormHourMinute (const char *NameSelectHour,const char *NameSelectMinute,
|
||||||
|
|
|
@ -929,8 +929,7 @@ static void Exa_ShowExamAnnouncement (long ExaCod,Exa_tTypeViewExamAnnouncement_
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">");
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP\">");
|
||||||
Dat_WriteFormDate (Gbl.ExamAnnouncement.ExamDate.Year < Gbl.Now.Date.Year ? Gbl.ExamAnnouncement.ExamDate.Year :
|
Dat_WriteFormDate (Gbl.ExamAnnouncement.ExamDate.Year < Gbl.Now.Date.Year ? Gbl.ExamAnnouncement.ExamDate.Year :
|
||||||
Gbl.Now.Date.Year,
|
Gbl.Now.Date.Year,
|
||||||
Gbl.Now.Date.Year+1,
|
Gbl.Now.Date.Year + 1,"Exam",
|
||||||
"ExamDay","ExamMonth","ExamYear",
|
|
||||||
&(Gbl.ExamAnnouncement.ExamDate),
|
&(Gbl.ExamAnnouncement.ExamDate),
|
||||||
false,false);
|
false,false);
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
|
|
@ -1218,8 +1218,7 @@ static void Grp_ListGroupTypesForEdition (void)
|
||||||
Txt_The_groups_will_not_automatically_open,
|
Txt_The_groups_will_not_automatically_open,
|
||||||
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? Txt_The_groups_will_automatically_open :
|
Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].MustBeOpened ? Txt_The_groups_will_automatically_open :
|
||||||
Txt_The_groups_will_not_automatically_open);
|
Txt_The_groups_will_not_automatically_open);
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year,Gbl.Now.Date.Year + 1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year,Gbl.Now.Date.Year + 1,"Open",
|
||||||
"OpenDay","OpenMonth","OpenYear",
|
|
||||||
&(Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].OpenTime.Date),
|
&(Gbl.CurrentCrs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].OpenTime.Date),
|
||||||
true,false);
|
true,false);
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
|
@ -2110,8 +2109,7 @@ static void Grp_PutFormToCreateGroupType (void)
|
||||||
Txt_The_groups_will_not_automatically_open,
|
Txt_The_groups_will_not_automatically_open,
|
||||||
Gbl.CurrentCrs.Grps.GrpTyp.MustBeOpened ? Txt_The_groups_will_automatically_open :
|
Gbl.CurrentCrs.Grps.GrpTyp.MustBeOpened ? Txt_The_groups_will_automatically_open :
|
||||||
Txt_The_groups_will_not_automatically_open);
|
Txt_The_groups_will_not_automatically_open);
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year,Gbl.Now.Date.Year + 1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year,Gbl.Now.Date.Year + 1,"Open",
|
||||||
"OpenDay","OpenMonth","OpenYear",
|
|
||||||
&(Gbl.CurrentCrs.Grps.GrpTyp.OpenTime.Date),
|
&(Gbl.CurrentCrs.Grps.GrpTyp.OpenTime.Date),
|
||||||
false,false);
|
false,false);
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
|
|
|
@ -546,9 +546,9 @@ static void Hld_ListHolidaysForEdition (void)
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||||
Act_FormStart (ActChgHldStrDat);
|
Act_FormStart (ActChgHldStrDat);
|
||||||
Hld_PutParamHldCod (Hld->HldCod);
|
Hld_PutParamHldCod (Hld->HldCod);
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year-1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year - 1,
|
||||||
Gbl.Now.Date.Year+1,
|
Gbl.Now.Date.Year + 1,
|
||||||
"StartDay","StartMonth","StartYear",
|
"Start",
|
||||||
&(Gbl.Hlds.Lst[NumHld].StartDate),
|
&(Gbl.Hlds.Lst[NumHld].StartDate),
|
||||||
true,false);
|
true,false);
|
||||||
Act_FormEnd ();
|
Act_FormEnd ();
|
||||||
|
@ -558,9 +558,9 @@ static void Hld_ListHolidaysForEdition (void)
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||||
Act_FormStart (ActChgHldEndDat);
|
Act_FormStart (ActChgHldEndDat);
|
||||||
Hld_PutParamHldCod (Hld->HldCod);
|
Hld_PutParamHldCod (Hld->HldCod);
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year-1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year - 1,
|
||||||
Gbl.Now.Date.Year+1,
|
Gbl.Now.Date.Year + 1,
|
||||||
"EndDay","EndMonth","EndYear",
|
"End",
|
||||||
&(Gbl.Hlds.Lst[NumHld].EndDate),
|
&(Gbl.Hlds.Lst[NumHld].EndDate),
|
||||||
true,(Hld->HldTyp == Hld_HOLIDAY));
|
true,(Hld->HldTyp == Hld_HOLIDAY));
|
||||||
Act_FormEnd ();
|
Act_FormEnd ();
|
||||||
|
@ -971,18 +971,18 @@ static void Hld_PutFormToCreateHoliday (void)
|
||||||
|
|
||||||
/***** Holiday date / Non school period start date *****/
|
/***** Holiday date / Non school period start date *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year-1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year - 1,
|
||||||
Gbl.Now.Date.Year+1,
|
Gbl.Now.Date.Year + 1,
|
||||||
"StartDay","StartMonth","StartYear",
|
"Start",
|
||||||
&(Hld->StartDate),
|
&(Hld->StartDate),
|
||||||
false,false);
|
false,false);
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
|
||||||
/***** Non school period end date *****/
|
/***** Non school period end date *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year-1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year - 1,
|
||||||
Gbl.Now.Date.Year+1,
|
Gbl.Now.Date.Year + 1,
|
||||||
"EndDay","EndMonth","EndYear",
|
"End",
|
||||||
&(Hld->EndDate),
|
&(Hld->EndDate),
|
||||||
false,false);
|
false,false);
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
|
|
@ -2865,7 +2865,7 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
|
||||||
if (DataForm)
|
if (DataForm)
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year - 99,
|
Dat_WriteFormDate (Gbl.Now.Date.Year - 99,
|
||||||
Gbl.Now.Date.Year - 16,
|
Gbl.Now.Date.Year - 16,
|
||||||
"DiaNac","MesNac","AnoNac",
|
"Birth",
|
||||||
&(UsrDat->Birthday),
|
&(UsrDat->Birthday),
|
||||||
false,false);
|
false,false);
|
||||||
else if (UsrDat->StrBirthday[0])
|
else if (UsrDat->StrBirthday[0])
|
||||||
|
@ -3285,7 +3285,10 @@ void Rec_GetUsrExtraDataFromRecordForm (struct UsrData *UsrDat)
|
||||||
Par_GetParToText ("OriginPlace",UsrDat->OriginPlace,Cns_MAX_BYTES_STRING);
|
Par_GetParToText ("OriginPlace",UsrDat->OriginPlace,Cns_MAX_BYTES_STRING);
|
||||||
Str_ConvertToTitleType (UsrDat->OriginPlace);
|
Str_ConvertToTitleType (UsrDat->OriginPlace);
|
||||||
|
|
||||||
Dat_GetDateFromForm ("DiaNac","MesNac","AnoNac",&(UsrDat->Birthday.Day),&(UsrDat->Birthday.Month),&(UsrDat->Birthday.Year));
|
Dat_GetDateFromForm ("BirthDay","BirthMonth","BirthYear",
|
||||||
|
&(UsrDat->Birthday.Day ),
|
||||||
|
&(UsrDat->Birthday.Month),
|
||||||
|
&(UsrDat->Birthday.Year ));
|
||||||
Dat_ConvDateToDateStr (&(UsrDat->Birthday),UsrDat->StrBirthday);
|
Dat_ConvDateToDateStr (&(UsrDat->Birthday),UsrDat->StrBirthday);
|
||||||
|
|
||||||
Par_GetParToText ("LocalAddress",UsrDat->LocalAddress,Cns_MAX_BYTES_STRING);
|
Par_GetParToText ("LocalAddress",UsrDat->LocalAddress,Cns_MAX_BYTES_STRING);
|
||||||
|
|
|
@ -1497,9 +1497,7 @@ void Svy_RequestCreatOrEditSvy (void)
|
||||||
struct SurveyQuestion SvyQst;
|
struct SurveyQuestion SvyQst;
|
||||||
bool ItsANewSurvey;
|
bool ItsANewSurvey;
|
||||||
Svy_StartOrEndTime_t StartOrEndTime;
|
Svy_StartOrEndTime_t StartOrEndTime;
|
||||||
const char *NameSelectYear [Svy_NUM_DATES] = {"StartYear" ,"EndYear" };
|
const char *Id[Svy_NUM_DATES] = {"Start","End"};
|
||||||
const char *NameSelectMonth [Svy_NUM_DATES] = {"StartMonth" ,"EndMonth" };
|
|
||||||
const char *NameSelectDay [Svy_NUM_DATES] = {"StartDay" ,"EndDay" };
|
|
||||||
const char *NameSelectHour [Svy_NUM_DATES] = {"StartHour" ,"EndHour" };
|
const char *NameSelectHour [Svy_NUM_DATES] = {"StartHour" ,"EndHour" };
|
||||||
const char *NameSelectMinute[Svy_NUM_DATES] = {"StartMinute","EndMinute"};
|
const char *NameSelectMinute[Svy_NUM_DATES] = {"StartMinute","EndMinute"};
|
||||||
const char *Dates[Svy_NUM_DATES] = {Txt_Start_date,Txt_End_date};
|
const char *Dates[Svy_NUM_DATES] = {Txt_Start_date,Txt_End_date};
|
||||||
|
@ -1619,9 +1617,7 @@ void Svy_RequestCreatOrEditSvy (void)
|
||||||
Dates[StartOrEndTime]);
|
Dates[StartOrEndTime]);
|
||||||
Dat_WriteFormDate (Gbl.Now.Date.Year-1,
|
Dat_WriteFormDate (Gbl.Now.Date.Year-1,
|
||||||
Gbl.Now.Date.Year+1,
|
Gbl.Now.Date.Year+1,
|
||||||
NameSelectDay [StartOrEndTime],
|
Id[StartOrEndTime],
|
||||||
NameSelectMonth[StartOrEndTime],
|
|
||||||
NameSelectYear [StartOrEndTime],
|
|
||||||
&(Svy.DateTimes[StartOrEndTime].Date),
|
&(Svy.DateTimes[StartOrEndTime].Date),
|
||||||
false,false);
|
false,false);
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
|
|
Loading…
Reference in New Issue