diff --git a/js/swad.js b/js/swad.js
index 0cdfcd7a..2930e8b1 100644
--- a/js/swad.js
+++ b/js/swad.js
@@ -48,30 +48,33 @@ function writeLocalDateTimeFromUTC(id,secsSince1970UTC) {
d.setTime(secsSince1970UTC * 1000);
Minutes = d.getMinutes();
+ Seconds = d.getSeconds();
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() + " " +
+ d.getHours() + ":" + StrMinutes + ":" + StrSeconds;
}
// Set local date-time form fields from UTC time
function setLocalDateTimeFormFromUTC(id,secsSince1970UTC) {
var d = new Date;
- var Day;
- var Month;
+ var YearForm = document.getElementById(id+'Year');
var Year;
- var Hour;
- var Minute;
d.setTime(secsSince1970UTC * 1000);
- Year = d.getFullYear();
- Month = d.getMonth() + 1;
- Day = d.getDate();
- Hour = d.getHours();
- Minute = d.getMinutes();
- document.getElementById(id+'_year_' +Year ).selected = true;
- document.getElementById(id+'_month_' +Month ).selected = true;
- document.getElementById(id+'_day_' +Day ).selected = true;
- document.getElementById(id+'_hour_' +Hour ).selected = true;
- document.getElementById(id+'_minute_'+Minute).selected = true;
+
+ Year = d.getFullYear()
+ for (var i=0; i 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
function writeLocalClock() {
var d = new Date;
@@ -329,32 +373,6 @@ function uncheckChildren(MainCheckbox, GroupCheckboxes) {
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
function changeTxtTag(NumTag){
var Sel = document.getElementById('SelDesc'+NumTag);
diff --git a/swad_assignment.c b/swad_assignment.c
index e7def5ad..34836955 100644
--- a/swad_assignment.c
+++ b/swad_assignment.c
@@ -1323,6 +1323,7 @@ void Asg_RecFormAssignment (void)
Grp_FreeListCodSelectedGrps ();
}
else
+ // TODO: The form should be filled with partial data, now is always empty
Asg_RequestCreatOrEditAsg ();
/***** Notify by e-mail about the new assignment *****/
diff --git a/swad_attendance.c b/swad_attendance.c
index 74d6eb25..2477cc4d 100644
--- a/swad_attendance.c
+++ b/swad_attendance.c
@@ -1022,9 +1022,7 @@ void Att_RequestCreatOrEditAttEvent (void)
struct AttendanceEvent Att;
bool ItsANewAttEvent;
Att_StartOrEndTime_t StartOrEndTime;
- const char *NameSelectYear [Att_NUM_DATES] = {"StartYear" ,"EndYear" };
- const char *NameSelectMonth [Att_NUM_DATES] = {"StartMonth" ,"EndMonth" };
- const char *NameSelectDay [Att_NUM_DATES] = {"StartDay" ,"EndDay" };
+ const char *Id[Att_NUM_DATES] = {"Start","End"};
const char *NameSelectHour [Att_NUM_DATES] = {"StartHour" ,"EndHour" };
const char *NameSelectMinute[Att_NUM_DATES] = {"StartMinute","EndMinute"};
const char *Dates[Att_NUM_DATES] = {Txt_Start_date,Txt_End_date};
@@ -1112,9 +1110,7 @@ void Att_RequestCreatOrEditAttEvent (void)
/* Date */
Dat_WriteFormDate (Gbl.Now.Date.Year-1,Gbl.Now.Date.Year+1,
- NameSelectDay [StartOrEndTime],
- NameSelectMonth[StartOrEndTime],
- NameSelectYear [StartOrEndTime],
+ Id[StartOrEndTime],
&(Att.DateTimes[StartOrEndTime].Date),
false,false);
diff --git a/swad_changelog.h b/swad_changelog.h
index abe045f1..52b5b6d0 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -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: 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: 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 *****************************/
/*****************************************************************************/
-#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:
// 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.
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)
diff --git a/swad_date.c b/swad_date.c
index 2d465f22..6e982c22 100644
--- a/swad_date.c
+++ b/swad_date.c
@@ -229,7 +229,7 @@ void Dat_WriteFormIniEndDates (void)
"
");
/***** 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 *****/
fprintf (Gbl.F.Out,"",
- 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
*/
void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
- const char *NameSelectDay,
- const char *NameSelectMonth,
- const char *NameSelectYear,
+ const char *Id,
struct Date *DateSelected,
bool SubmitFormOnChange,bool Disabled)
{
@@ -448,8 +471,8 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
fprintf (Gbl.F.Out,"