mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-09 02:05:24 +02:00
Version 15.16.2
This commit is contained in:
parent
cd46d90d04
commit
b0be0d092a
30
js/swad.js
30
js/swad.js
|
@ -52,7 +52,7 @@ function writeLocalDateTimeFromUTC(id,secsSince1970UTC) {
|
||||||
document.getElementById(id).innerHTML = d.toLocaleDateString() + " " + d.getHours() + ":" + StrMinutes;
|
document.getElementById(id).innerHTML = d.toLocaleDateString() + " " + d.getHours() + ":" + StrMinutes;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write a date-time in client local 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 Day;
|
||||||
|
@ -62,18 +62,34 @@ function setLocalDateTimeFormFromUTC(id,secsSince1970UTC) {
|
||||||
var Minute;
|
var Minute;
|
||||||
|
|
||||||
d.setTime(secsSince1970UTC * 1000);
|
d.setTime(secsSince1970UTC * 1000);
|
||||||
Day = d.getDate();
|
Year = d.getFullYear();
|
||||||
Month = d.getMonth() + 1;
|
Month = d.getMonth() + 1;
|
||||||
Year = d.getFullYear();
|
Day = d.getDate();
|
||||||
Hour = d.getHours();
|
Hour = d.getHours();
|
||||||
Minute = d.getMinutes();
|
Minute = d.getMinutes();
|
||||||
document.getElementById(id+'_day_' +Day ).selected = true;
|
|
||||||
document.getElementById(id+'_month_' +Month ).selected = true;
|
|
||||||
document.getElementById(id+'_year_' +Year ).selected = true;
|
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+'_hour_' +Hour ).selected = true;
|
||||||
document.getElementById(id+'_minute_'+Minute).selected = true;
|
document.getElementById(id+'_minute_'+Minute).selected = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Set UTC time from local date-time form fields
|
||||||
|
function setUTCFromLocalDateTimeForm(id) {
|
||||||
|
var d = new Date;
|
||||||
|
|
||||||
|
// Important: set year first in order to work properly with leap years
|
||||||
|
d.setFullYear(document.getElementById(id+'Year' ).value);
|
||||||
|
d.setMonth (document.getElementById(id+'Month' ).value - 1);
|
||||||
|
d.setDate (document.getElementById(id+'Day' ).value);
|
||||||
|
d.setHours (document.getElementById(id+'Hour' ).value);
|
||||||
|
d.setMinutes (document.getElementById(id+'Minute').value);
|
||||||
|
d.setSeconds(0);
|
||||||
|
d.setMilliseconds(0);
|
||||||
|
|
||||||
|
document.getElementById(id+'TimeUTC').value = d.getTime() / 1000;
|
||||||
|
}
|
||||||
|
|
||||||
// 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;
|
||||||
|
|
|
@ -252,7 +252,7 @@ static void Asg_ShowOneAssignment (long AsgCod)
|
||||||
(Asg.Open ? "DATE_GREEN" :
|
(Asg.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED"),
|
"DATE_RED"),
|
||||||
Gbl.RowEvenOdd,
|
Gbl.RowEvenOdd,
|
||||||
UniqueId,Asg.DateTimes[Asg_START_TIME]);
|
UniqueId,Asg.TimeUTC[Asg_START_TIME]);
|
||||||
|
|
||||||
/* End date/time */
|
/* End date/time */
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
|
@ -267,7 +267,7 @@ static void Asg_ShowOneAssignment (long AsgCod)
|
||||||
(Asg.Open ? "DATE_GREEN" :
|
(Asg.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED"),
|
"DATE_RED"),
|
||||||
Gbl.RowEvenOdd,
|
Gbl.RowEvenOdd,
|
||||||
UniqueId,Asg.DateTimes[Asg_END_TIME]);
|
UniqueId,Asg.TimeUTC[Asg_END_TIME]);
|
||||||
|
|
||||||
/* Assignment title */
|
/* Assignment title */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_TOP COLOR%u\">"
|
||||||
|
@ -684,8 +684,8 @@ static void Asg_GetDataOfAssignment (struct Assignment *Asg,const char *Query)
|
||||||
unsigned long NumRows;
|
unsigned long NumRows;
|
||||||
|
|
||||||
/***** Clear data *****/
|
/***** Clear data *****/
|
||||||
Asg->DateTimes[Asg_START_TIME] =
|
Asg->TimeUTC[Asg_START_TIME] =
|
||||||
Asg->DateTimes[Asg_END_TIME ] = (time_t) 0;
|
Asg->TimeUTC[Asg_END_TIME ] = (time_t) 0;
|
||||||
Asg->Title[0] = '\0';
|
Asg->Title[0] = '\0';
|
||||||
|
|
||||||
/***** Get data of assignment from database *****/
|
/***** Get data of assignment from database *****/
|
||||||
|
@ -710,14 +710,14 @@ static void Asg_GetDataOfAssignment (struct Assignment *Asg,const char *Query)
|
||||||
if (!(Dat_GetDateTimeFromYYYYMMDDHHMMSS (&(Asg->DateTimes[Asg_START_TIME]),row[3])))
|
if (!(Dat_GetDateTimeFromYYYYMMDDHHMMSS (&(Asg->DateTimes[Asg_START_TIME]),row[3])))
|
||||||
Lay_ShowErrorAndExit ("Error when reading start date of assignment.");
|
Lay_ShowErrorAndExit ("Error when reading start date of assignment.");
|
||||||
*/
|
*/
|
||||||
Asg->DateTimes[Asg_START_TIME] = Dat_GetUNIXTimeFromStr (row[3]);
|
Asg->TimeUTC[Asg_START_TIME] = Dat_GetUNIXTimeFromStr (row[3]);
|
||||||
|
|
||||||
/* Get end date (row[4] holds the end date in YYYYMMDDHHMMSS format) */
|
/* Get end date (row[4] holds the end date in YYYYMMDDHHMMSS format) */
|
||||||
/*
|
/*
|
||||||
if (!(Dat_GetDateTimeFromYYYYMMDDHHMMSS (&(Asg->DateTimes[Asg_END_TIME]),row[4])))
|
if (!(Dat_GetDateTimeFromYYYYMMDDHHMMSS (&(Asg->DateTimes[Asg_END_TIME]),row[4])))
|
||||||
Lay_ShowErrorAndExit ("Error when reading end date of assignment.");
|
Lay_ShowErrorAndExit ("Error when reading end date of assignment.");
|
||||||
*/
|
*/
|
||||||
Asg->DateTimes[Asg_END_TIME] = Dat_GetUNIXTimeFromStr (row[4]);
|
Asg->TimeUTC[Asg_END_TIME] = Dat_GetUNIXTimeFromStr (row[4]);
|
||||||
|
|
||||||
/* Get whether the assignment is open or closed (row(5)) */
|
/* Get whether the assignment is open or closed (row(5)) */
|
||||||
Asg->Open = (row[5][0] == '1');
|
Asg->Open = (row[5][0] == '1');
|
||||||
|
@ -1047,12 +1047,7 @@ void Asg_RequestCreatOrEditAsg (void)
|
||||||
struct Assignment Asg;
|
struct Assignment Asg;
|
||||||
bool ItsANewAssignment;
|
bool ItsANewAssignment;
|
||||||
Asg_StartOrEndTime_t StartOrEndTime;
|
Asg_StartOrEndTime_t StartOrEndTime;
|
||||||
const char *Id[Asg_NUM_DATES] = {"StartDateTime","EndDateTime"};
|
const char *Id[Asg_NUM_DATES] = {"Start","End"};
|
||||||
const char *NameSelectYear [Asg_NUM_DATES] = {"StartYear" ,"EndYear" };
|
|
||||||
const char *NameSelectMonth [Asg_NUM_DATES] = {"StartMonth" ,"EndMonth" };
|
|
||||||
const char *NameSelectDay [Asg_NUM_DATES] = {"StartDay" ,"EndDay" };
|
|
||||||
const char *NameSelectHour [Asg_NUM_DATES] = {"StartHour" ,"EndHour" };
|
|
||||||
const char *NameSelectMinute[Asg_NUM_DATES] = {"StartMinute","EndMinute"};
|
|
||||||
const char *Dates[Asg_NUM_DATES] = {Txt_Start_date,Txt_End_date};
|
const char *Dates[Asg_NUM_DATES] = {Txt_Start_date,Txt_End_date};
|
||||||
char Txt[Cns_MAX_BYTES_TEXT+1];
|
char Txt[Cns_MAX_BYTES_TEXT+1];
|
||||||
|
|
||||||
|
@ -1077,7 +1072,7 @@ void Asg_RequestCreatOrEditAsg (void)
|
||||||
Asg.DateTimes[Asg_START_TIME].Time.Minute = Gbl.Now.Time.Minute;
|
Asg.DateTimes[Asg_START_TIME].Time.Minute = Gbl.Now.Time.Minute;
|
||||||
Asg.DateTimes[Asg_START_TIME].Time.Second = Gbl.Now.Time.Second;
|
Asg.DateTimes[Asg_START_TIME].Time.Second = Gbl.Now.Time.Second;
|
||||||
*/
|
*/
|
||||||
Asg.DateTimes[Asg_START_TIME] = Gbl.TimeStartExecution;
|
Asg.TimeUTC[Asg_START_TIME] = Gbl.TimeStartExecution;
|
||||||
/*
|
/*
|
||||||
Asg.DateTimes[Asg_END_TIME ].Date.Day = Gbl.Now.Date.Day;
|
Asg.DateTimes[Asg_END_TIME ].Date.Day = Gbl.Now.Date.Day;
|
||||||
Asg.DateTimes[Asg_END_TIME ].Date.Month = Gbl.Now.Date.Month;
|
Asg.DateTimes[Asg_END_TIME ].Date.Month = Gbl.Now.Date.Month;
|
||||||
|
@ -1085,7 +1080,7 @@ void Asg_RequestCreatOrEditAsg (void)
|
||||||
Asg.DateTimes[Asg_END_TIME ].Time.Hour = 23;
|
Asg.DateTimes[Asg_END_TIME ].Time.Hour = 23;
|
||||||
Asg.DateTimes[Asg_END_TIME ].Time.Minute = 59;
|
Asg.DateTimes[Asg_END_TIME ].Time.Minute = 59;
|
||||||
*/
|
*/
|
||||||
Asg.DateTimes[Asg_END_TIME ] = Gbl.TimeStartExecution + (2 * 60 * 60); // +2 hours
|
Asg.TimeUTC[Asg_END_TIME ] = Gbl.TimeStartExecution + (2 * 60 * 60); // +2 hours
|
||||||
Asg.Open = true;
|
Asg.Open = true;
|
||||||
Asg.Title[0] = '\0';
|
Asg.Title[0] = '\0';
|
||||||
Asg.SendWork = false;
|
Asg.SendWork = false;
|
||||||
|
@ -1156,13 +1151,8 @@ void Asg_RequestCreatOrEditAsg (void)
|
||||||
false,false);
|
false,false);
|
||||||
*/
|
*/
|
||||||
Dat_WriteFormClientLocalDateTime (Id[StartOrEndTime],
|
Dat_WriteFormClientLocalDateTime (Id[StartOrEndTime],
|
||||||
Asg.DateTimes[StartOrEndTime],
|
Asg.TimeUTC[StartOrEndTime],
|
||||||
Gbl.Now.Date.Year-1,Gbl.Now.Date.Year+1,
|
Gbl.Now.Date.Year-1,Gbl.Now.Date.Year+1,
|
||||||
NameSelectDay [StartOrEndTime],
|
|
||||||
NameSelectMonth [StartOrEndTime],
|
|
||||||
NameSelectYear [StartOrEndTime],
|
|
||||||
NameSelectHour [StartOrEndTime],
|
|
||||||
NameSelectMinute[StartOrEndTime],
|
|
||||||
false,false);
|
false,false);
|
||||||
|
|
||||||
/* Time */
|
/* Time */
|
||||||
|
@ -1314,7 +1304,7 @@ void Asg_RecFormAssignment (void)
|
||||||
&(NewAsg.DateTimes[Asg_START_TIME].Time.Minute));
|
&(NewAsg.DateTimes[Asg_START_TIME].Time.Minute));
|
||||||
NewAsg.DateTimes[Asg_START_TIME].Time.Second = 0;
|
NewAsg.DateTimes[Asg_START_TIME].Time.Second = 0;
|
||||||
*/
|
*/
|
||||||
NewAsg.DateTimes[Asg_START_TIME] = Dat_GetDateTimeFromForm ("StartDateTime");
|
NewAsg.TimeUTC[Asg_START_TIME] = Dat_GetTimeUTCFromForm ("StartTimeUTC");
|
||||||
|
|
||||||
/***** Get end date *****/
|
/***** Get end date *****/
|
||||||
/*
|
/*
|
||||||
|
@ -1327,7 +1317,7 @@ void Asg_RecFormAssignment (void)
|
||||||
&(NewAsg.DateTimes[Asg_END_TIME].Time.Minute));
|
&(NewAsg.DateTimes[Asg_END_TIME].Time.Minute));
|
||||||
NewAsg.DateTimes[Asg_END_TIME].Time.Second = 59;
|
NewAsg.DateTimes[Asg_END_TIME].Time.Second = 59;
|
||||||
*/
|
*/
|
||||||
NewAsg.DateTimes[Asg_END_TIME] = Dat_GetDateTimeFromForm ("EndDateTime");
|
NewAsg.TimeUTC[Asg_END_TIME] = Dat_GetTimeUTCFromForm ("EndTimeUTC");
|
||||||
|
|
||||||
/***** Get assignment title *****/
|
/***** Get assignment title *****/
|
||||||
Par_GetParToText ("Title",NewAsg.Title,Asg_MAX_LENGTH_ASSIGNMENT_TITLE);
|
Par_GetParToText ("Title",NewAsg.Title,Asg_MAX_LENGTH_ASSIGNMENT_TITLE);
|
||||||
|
@ -1363,10 +1353,10 @@ void Asg_RecFormAssignment (void)
|
||||||
NewAsg.DateTimes[Asg_END_TIME].Time.Minute = 59;
|
NewAsg.DateTimes[Asg_END_TIME].Time.Minute = 59;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
if (NewAsg.DateTimes[Asg_START_TIME] == 0)
|
if (NewAsg.TimeUTC[Asg_START_TIME] == 0)
|
||||||
NewAsg.DateTimes[Asg_START_TIME] = Gbl.TimeStartExecution;
|
NewAsg.TimeUTC[Asg_START_TIME] = Gbl.TimeStartExecution;
|
||||||
if (NewAsg.DateTimes[Asg_END_TIME] == 0)
|
if (NewAsg.TimeUTC[Asg_END_TIME] == 0)
|
||||||
NewAsg.DateTimes[Asg_END_TIME] = NewAsg.DateTimes[Asg_START_TIME] + 2*60*60; // +2 hours
|
NewAsg.TimeUTC[Asg_END_TIME] = NewAsg.TimeUTC[Asg_START_TIME] + 2*60*60; // +2 hours
|
||||||
|
|
||||||
/***** Check if title is correct *****/
|
/***** Check if title is correct *****/
|
||||||
if (NewAsg.Title[0]) // If there's an assignment title
|
if (NewAsg.Title[0]) // If there's an assignment title
|
||||||
|
@ -1503,8 +1493,8 @@ static void Asg_CreateAssignment (struct Assignment *Asg,const char *Txt)
|
||||||
"'%s','%s','%s')",
|
"'%s','%s','%s')",
|
||||||
Gbl.CurrentCrs.Crs.CrsCod,
|
Gbl.CurrentCrs.Crs.CrsCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Asg->DateTimes[Asg_START_TIME],
|
Asg->TimeUTC[Asg_START_TIME],
|
||||||
Asg->DateTimes[Asg_END_TIME ],
|
Asg->TimeUTC[Asg_END_TIME ],
|
||||||
Asg->Title,
|
Asg->Title,
|
||||||
Asg->Folder,
|
Asg->Folder,
|
||||||
Txt);
|
Txt);
|
||||||
|
@ -1557,8 +1547,8 @@ static void Asg_UpdateAssignment (struct Assignment *Asg,const char *Txt)
|
||||||
"EndTime=FROM_UNIXTIME('%ld'),"
|
"EndTime=FROM_UNIXTIME('%ld'),"
|
||||||
"Title='%s',Folder='%s',Txt='%s'"
|
"Title='%s',Folder='%s',Txt='%s'"
|
||||||
" WHERE AsgCod='%ld' AND CrsCod='%ld'",
|
" WHERE AsgCod='%ld' AND CrsCod='%ld'",
|
||||||
Asg->DateTimes[Asg_START_TIME],
|
Asg->TimeUTC[Asg_START_TIME],
|
||||||
Asg->DateTimes[Asg_END_TIME ],
|
Asg->TimeUTC[Asg_END_TIME ],
|
||||||
Asg->Title,
|
Asg->Title,
|
||||||
Asg->Folder,
|
Asg->Folder,
|
||||||
Txt,
|
Txt,
|
||||||
|
|
|
@ -58,7 +58,7 @@ struct Assignment
|
||||||
bool Hidden;
|
bool Hidden;
|
||||||
long UsrCod;
|
long UsrCod;
|
||||||
// struct DateTime DateTimes[Asg_NUM_DATES];
|
// struct DateTime DateTimes[Asg_NUM_DATES];
|
||||||
time_t DateTimes[Asg_NUM_DATES];
|
time_t TimeUTC[Asg_NUM_DATES];
|
||||||
bool Open;
|
bool Open;
|
||||||
char Title[Asg_MAX_LENGTH_ASSIGNMENT_TITLE+1];
|
char Title[Asg_MAX_LENGTH_ASSIGNMENT_TITLE+1];
|
||||||
Asg_SendWork_t SendWork;
|
Asg_SendWork_t SendWork;
|
||||||
|
|
|
@ -107,11 +107,12 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.16.1 (2015/10/22)"
|
#define Log_PLATFORM_VERSION "SWAD 15.16.2 (2015/10/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.16.2: Oct 22, 2015 Assignment date-times are displayed in client local date-time. Not finished. (186479 lines)
|
||||||
Version 15.16.1: Oct 22, 2015 Assignment date-times are displayed in client local date-time. Not finished. (186468 lines)
|
Version 15.16.1: Oct 22, 2015 Assignment date-times are displayed in client local date-time. Not finished. (186468 lines)
|
||||||
Version 15.16: Oct 22, 2015 Assignment date-times are displayed in client local date-time. Not finished. (186436 lines)
|
Version 15.16: Oct 22, 2015 Assignment date-times are displayed in client local date-time. Not finished. (186436 lines)
|
||||||
Version 15.15.3: Oct 21, 2015 File date-time is displayed in client local date-time. (186264 lines)
|
Version 15.15.3: Oct 21, 2015 File date-time is displayed in client local date-time. (186264 lines)
|
||||||
|
|
78
swad_date.c
78
swad_date.c
|
@ -272,13 +272,8 @@ void Dat_WriteFormIniEndDates (void)
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Dat_WriteFormClientLocalDateTime (const char *Id,
|
void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
time_t DateTime,
|
time_t TimeUTC,
|
||||||
unsigned FirstYear,unsigned LastYear,
|
unsigned FirstYear,unsigned LastYear,
|
||||||
const char *NameSelectDay,
|
|
||||||
const char *NameSelectMonth,
|
|
||||||
const char *NameSelectYear,
|
|
||||||
const char *NameSelectHour,
|
|
||||||
const char *NameSelectMinute,
|
|
||||||
bool SubmitFormOnChange,bool Disabled)
|
bool SubmitFormOnChange,bool Disabled)
|
||||||
{
|
{
|
||||||
extern const char *Txt_MONTHS_SMALL[12];
|
extern const char *Txt_MONTHS_SMALL[12];
|
||||||
|
@ -292,11 +287,14 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
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);
|
||||||
|
fprintf (Gbl.F.Out," onchange=\"javascript:setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out," onchange=\"javascript:document.getElementById('%s').submit();\"",
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
Gbl.FormId);
|
Gbl.FormId);
|
||||||
|
fprintf (Gbl.F.Out,"\"");
|
||||||
if (Disabled)
|
if (Disabled)
|
||||||
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
fprintf (Gbl.F.Out," disabled=\"disabled\"");
|
||||||
fprintf (Gbl.F.Out,"><option value=\"0\">-</option>");
|
fprintf (Gbl.F.Out,"><option value=\"0\">-</option>");
|
||||||
|
@ -310,11 +308,13 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
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=\"javascript:adjustDateForm(this.form.%sDay,this.form.%sMonth,this.form.%sYear);",
|
||||||
NameSelectMonth,NameSelectMonth,NameSelectDay,NameSelectMonth,NameSelectYear);
|
Id,Id,Id,Id,Id);
|
||||||
|
fprintf (Gbl.F.Out,"setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out,";javascript: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)
|
||||||
|
@ -330,10 +330,13 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
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=\"javascript:adjustDateForm(this.form.%sDay,this.form.%sMonth,this.form.%sYear);",
|
||||||
|
Id,Id,Id,Id,Id);
|
||||||
|
fprintf (Gbl.F.Out,"setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out,";javascript: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)
|
||||||
|
@ -349,11 +352,14 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
|
|
||||||
/***** Hour *****/
|
/***** Hour *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<select name=\"%s\"",
|
"<select id=\"%sHour\" name=\"%sHour\"",
|
||||||
NameSelectHour);
|
Id,Id);
|
||||||
|
fprintf (Gbl.F.Out," onchange=\"javascript:setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out," onchange=\"javascript:document.getElementById('%s').submit();\"",
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
Gbl.FormId);
|
Gbl.FormId);
|
||||||
|
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,">");
|
||||||
|
@ -367,11 +373,16 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
fprintf (Gbl.F.Out,"</select>"
|
fprintf (Gbl.F.Out,"</select>"
|
||||||
"</td>"
|
"</td>"
|
||||||
"<td class=\"LEFT_MIDDLE\">"
|
"<td class=\"LEFT_MIDDLE\">"
|
||||||
"<select name=\"%s\"",
|
"<select id=\"%sMinute\" name=\"%sMinute\"",
|
||||||
NameSelectMinute);
|
Id,Id);
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out," onchange=\"javascript:setUTCFromLocalDateTimeForm('%s');",
|
||||||
|
Id);
|
||||||
if (SubmitFormOnChange)
|
if (SubmitFormOnChange)
|
||||||
fprintf (Gbl.F.Out," onchange=\"javascript:document.getElementById('%s').submit();\"",
|
fprintf (Gbl.F.Out,"document.getElementById('%s').submit();",
|
||||||
Gbl.FormId);
|
Gbl.FormId);
|
||||||
|
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,">");
|
||||||
|
@ -385,22 +396,25 @@ void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
"</tr>"
|
"</tr>"
|
||||||
"</table>");
|
"</table>");
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"<input type=\"hidden\" id=\"%sTimeUTC\" name=\"%sTimeUTC\" value=\"%ld\" />",
|
||||||
|
Id,Id,(long) TimeUTC);
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"<script type=\"text/javascript\">"
|
fprintf (Gbl.F.Out,"<script type=\"text/javascript\">"
|
||||||
"setLocalDateTimeFormFromUTC('%s',%ld);"
|
"setLocalDateTimeFormFromUTC('%s',%ld);"
|
||||||
"</script>",
|
"</script>",
|
||||||
Id,(long) DateTime);
|
Id,(long) TimeUTC);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************** Get an hour-minute time from a form ***********************/
|
/***************** Get an hour-minute time from a form ***********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
time_t Dat_GetDateTimeFromForm (const char *NameParam)
|
time_t Dat_GetTimeUTCFromForm (const char *ParamName)
|
||||||
{
|
{
|
||||||
char LongStr[1+10+1];
|
char LongStr[1+10+1];
|
||||||
|
|
||||||
/**** Get time ****/
|
/**** Get time ****/
|
||||||
Par_GetParToText (NameParam,LongStr,1+10);
|
Par_GetParToText (ParamName,LongStr,1+10);
|
||||||
return Dat_GetUNIXTimeFromStr (LongStr);
|
return Dat_GetUNIXTimeFromStr (LongStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -572,23 +586,23 @@ void Dat_WriteFormHourMinute (const char *NameSelectHour,const char *NameSelectM
|
||||||
/*************************** Get a date from a form **************************/
|
/*************************** Get a date from a form **************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Dat_GetDateFromForm (const char *NameParamDay,const char *NameParamMonth,const char *NameParamYear,
|
void Dat_GetDateFromForm (const char *ParamNameDay,const char *ParamNameMonth,const char *ParamNameYear,
|
||||||
unsigned *Day,unsigned *Month,unsigned *Year)
|
unsigned *Day,unsigned *Month,unsigned *Year)
|
||||||
{
|
{
|
||||||
char UnsignedStr[10+1];
|
char UnsignedStr[10+1];
|
||||||
|
|
||||||
/**** Get day ****/
|
/**** Get day ****/
|
||||||
Par_GetParToText (NameParamDay,UnsignedStr,10);
|
Par_GetParToText (ParamNameDay,UnsignedStr,10);
|
||||||
if (sscanf (UnsignedStr,"%u",Day) != 1)
|
if (sscanf (UnsignedStr,"%u",Day) != 1)
|
||||||
*Day = 0;
|
*Day = 0;
|
||||||
|
|
||||||
/**** Get month ****/
|
/**** Get month ****/
|
||||||
Par_GetParToText (NameParamMonth,UnsignedStr,10);
|
Par_GetParToText (ParamNameMonth,UnsignedStr,10);
|
||||||
if (sscanf (UnsignedStr,"%u",Month) != 1)
|
if (sscanf (UnsignedStr,"%u",Month) != 1)
|
||||||
*Month = 0;
|
*Month = 0;
|
||||||
|
|
||||||
/**** Get year ****/
|
/**** Get year ****/
|
||||||
Par_GetParToText (NameParamYear,UnsignedStr,10);
|
Par_GetParToText (ParamNameYear,UnsignedStr,10);
|
||||||
if (sscanf (UnsignedStr,"%u",Year) != 1)
|
if (sscanf (UnsignedStr,"%u",Year) != 1)
|
||||||
*Year = 0;
|
*Year = 0;
|
||||||
}
|
}
|
||||||
|
@ -597,18 +611,18 @@ void Dat_GetDateFromForm (const char *NameParamDay,const char *NameParamMonth,co
|
||||||
/***************** Get an hour-minute time from a form ***********************/
|
/***************** Get an hour-minute time from a form ***********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Dat_GetHourMinuteFromForm (const char *NameParamHour,const char *NameParamMinute,
|
void Dat_GetHourMinuteFromForm (const char *ParamNameHour,const char *ParamNameMinute,
|
||||||
unsigned *Hour,unsigned *Minute)
|
unsigned *Hour,unsigned *Minute)
|
||||||
{
|
{
|
||||||
char UnsignedStr[10+1];
|
char UnsignedStr[10+1];
|
||||||
|
|
||||||
/**** Get hour ****/
|
/**** Get hour ****/
|
||||||
Par_GetParToText (NameParamHour,UnsignedStr,10);
|
Par_GetParToText (ParamNameHour,UnsignedStr,10);
|
||||||
if (sscanf (UnsignedStr,"%u",Hour) != 1)
|
if (sscanf (UnsignedStr,"%u",Hour) != 1)
|
||||||
*Hour = 0;
|
*Hour = 0;
|
||||||
|
|
||||||
/**** Get minute ****/
|
/**** Get minute ****/
|
||||||
Par_GetParToText (NameParamMinute,UnsignedStr,10);
|
Par_GetParToText (ParamNameMinute,UnsignedStr,10);
|
||||||
if (sscanf (UnsignedStr,"%u",Minute) != 1)
|
if (sscanf (UnsignedStr,"%u",Minute) != 1)
|
||||||
*Minute = 0;
|
*Minute = 0;
|
||||||
}
|
}
|
||||||
|
|
13
swad_date.h
13
swad_date.h
|
@ -80,15 +80,10 @@ void Dat_ConvDateToDateStr (struct Date *Date,char *DateStr);
|
||||||
void Dat_WriteFormIniEndDates (void);
|
void Dat_WriteFormIniEndDates (void);
|
||||||
|
|
||||||
void Dat_WriteFormClientLocalDateTime (const char *Id,
|
void Dat_WriteFormClientLocalDateTime (const char *Id,
|
||||||
time_t DateTime,
|
time_t TimeUTC,
|
||||||
unsigned FirstYear,unsigned LastYear,
|
unsigned FirstYear,unsigned LastYear,
|
||||||
const char *NameSelectDay,
|
|
||||||
const char *NameSelectMonth,
|
|
||||||
const char *NameSelectYear,
|
|
||||||
const char *NameSelectHour,
|
|
||||||
const char *NameSelectMinute,
|
|
||||||
bool SubmitFormOnChange,bool Disabled);
|
bool SubmitFormOnChange,bool Disabled);
|
||||||
time_t Dat_GetDateTimeFromForm (const char *NameParam);
|
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 *NameSelectDay,
|
||||||
|
@ -99,9 +94,9 @@ void Dat_WriteFormDate (unsigned FirstYear,unsigned LastYear,
|
||||||
void Dat_WriteFormHourMinute (const char *NameSelectHour,const char *NameSelectMinute,
|
void Dat_WriteFormHourMinute (const char *NameSelectHour,const char *NameSelectMinute,
|
||||||
struct Time *TimeSelected,
|
struct Time *TimeSelected,
|
||||||
bool SubmitFormOnChange,bool Disabled);
|
bool SubmitFormOnChange,bool Disabled);
|
||||||
void Dat_GetDateFromForm (const char *NameParamDay,const char *NameParamMonth,const char *NameParamYear,
|
void Dat_GetDateFromForm (const char *ParamNameDay,const char *ParamNameMonth,const char *ParamNameYear,
|
||||||
unsigned *Day,unsigned *Month,unsigned *Year);
|
unsigned *Day,unsigned *Month,unsigned *Year);
|
||||||
void Dat_GetHourMinuteFromForm (const char *NameParamHour,const char *NameParamMinute,
|
void Dat_GetHourMinuteFromForm (const char *ParamNameHour,const char *ParamNameMinute,
|
||||||
unsigned *Hour,unsigned *Minute);
|
unsigned *Hour,unsigned *Minute);
|
||||||
|
|
||||||
void Dat_GetIniEndDatesFromForm (void);
|
void Dat_GetIniEndDatesFromForm (void);
|
||||||
|
|
|
@ -5786,7 +5786,7 @@ static void Brw_WriteDatesAssignment (void)
|
||||||
"writeLocalDateTimeFromUTC('asg_start_date%u',%ld);"
|
"writeLocalDateTimeFromUTC('asg_start_date%u',%ld);"
|
||||||
"</script>",
|
"</script>",
|
||||||
UniqueId,
|
UniqueId,
|
||||||
(long) Gbl.FileBrowser.Asg.DateTimes[Asg_START_TIME]);
|
(long) Gbl.FileBrowser.Asg.TimeUTC[Asg_START_TIME]);
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
|
||||||
/***** Arrow *****/
|
/***** Arrow *****/
|
||||||
|
@ -5808,7 +5808,7 @@ static void Brw_WriteDatesAssignment (void)
|
||||||
"writeLocalDateTimeFromUTC('asg_end_date%u',%ld);"
|
"writeLocalDateTimeFromUTC('asg_end_date%u',%ld);"
|
||||||
"</script>",
|
"</script>",
|
||||||
UniqueId,
|
UniqueId,
|
||||||
(long) Gbl.FileBrowser.Asg.DateTimes[Asg_END_TIME]);
|
(long) Gbl.FileBrowser.Asg.TimeUTC[Asg_END_TIME]);
|
||||||
fprintf (Gbl.F.Out,"</td>"
|
fprintf (Gbl.F.Out,"</td>"
|
||||||
"</tr>"
|
"</tr>"
|
||||||
"</table>");
|
"</table>");
|
||||||
|
|
Loading…
Reference in New Issue
Block a user