mirror of https://github.com/acanas/swad-core.git
Compare commits
2 Commits
85f0f2a1e9
...
a58aa9cd19
Author | SHA1 | Date |
---|---|---|
acanas | a58aa9cd19 | |
acanas | 98a7747d18 |
|
@ -72,11 +72,16 @@ function submitForm(FormId) {
|
||||||
// Dat_FORMAT_YYYY_MM_DD = 0
|
// Dat_FORMAT_YYYY_MM_DD = 0
|
||||||
// Dat_FORMAT_DD_MONTH_YYYY = 1
|
// Dat_FORMAT_DD_MONTH_YYYY = 1
|
||||||
// Dat_FORMAT_MONTH_DD_YYYY = 2
|
// Dat_FORMAT_MONTH_DD_YYYY = 2
|
||||||
// separator is HTML code to write between date and time
|
// Separator is HTML code to write between date and time
|
||||||
// StrToday is a string in current language ('today', 'hoy'...)
|
// Write: a bit set ==> true
|
||||||
// WriteDateOnSameDay = false ==> don't write date if it's the same day than the last call
|
|
||||||
// WriteWeekDay = true ==> write day of the week ('monday', 'tuesday'...)
|
const Dat_WRITE_TODAY = (1 << 5);
|
||||||
// WriteHMS = 3 least significant bits for hour, minute and second
|
const Dat_WRITE_DATE_ON_SAME_DAY = (1 << 4);
|
||||||
|
const Dat_WRITE_WEEK_DAY = (1 << 3);
|
||||||
|
const Dat_WRITE_HOUR = (1 << 2);
|
||||||
|
const Dat_WRITE_MINUTE = (1 << 1);
|
||||||
|
const Dat_WRITE_SECOND = (1 << 0);
|
||||||
|
|
||||||
const txtToday = [
|
const txtToday = [
|
||||||
"", // Unknown
|
"", // Unknown
|
||||||
"Avui", // CA
|
"Avui", // CA
|
||||||
|
@ -91,9 +96,7 @@ const txtToday = [
|
||||||
"Bugün", // TR
|
"Bugün", // TR
|
||||||
];
|
];
|
||||||
|
|
||||||
function writeLocalDateHMSFromUTC (id,TimeUTC,DateFormat,Separator,Language,
|
function writeLocalDateHMSFromUTC (id,TimeUTC,DateFormat,Separator,Language,WhatToWrite) {
|
||||||
WriteToday,WriteDateOnSameDay,WriteWeekDay,WriteHMS) {
|
|
||||||
// HMS: Hour, Minutes, Seconds
|
|
||||||
var today = new Date();
|
var today = new Date();
|
||||||
var todayYea = today.getFullYear ();
|
var todayYea = today.getFullYear ();
|
||||||
var todayMon = today.getMonth () + 1;
|
var todayMon = today.getMonth () + 1;
|
||||||
|
@ -115,7 +118,7 @@ function writeLocalDateHMSFromUTC (id,TimeUTC,DateFormat,Separator,Language,
|
||||||
Mon = d.getMonth () + 1;
|
Mon = d.getMonth () + 1;
|
||||||
Day = d.getDate ();
|
Day = d.getDate ();
|
||||||
|
|
||||||
if (WriteDateOnSameDay)
|
if ((WhatToWrite & Dat_WRITE_DATE_ON_SAME_DAY) != 0)
|
||||||
WriteDate = true;
|
WriteDate = true;
|
||||||
// Check to see if the last date has been initialized
|
// Check to see if the last date has been initialized
|
||||||
else if (typeof writeLocalDateHMSFromUTC.lastd == 'undefined')
|
else if (typeof writeLocalDateHMSFromUTC.lastd == 'undefined')
|
||||||
|
@ -132,11 +135,11 @@ function writeLocalDateHMSFromUTC (id,TimeUTC,DateFormat,Separator,Language,
|
||||||
/* Set date */
|
/* Set date */
|
||||||
StrDat = '';
|
StrDat = '';
|
||||||
if (WriteDate) {
|
if (WriteDate) {
|
||||||
WriteToday = WriteToday && (Yea == todayYea &&
|
if ((WhatToWrite & Dat_WRITE_TODAY) != 0 &&
|
||||||
Mon == todayMon &&
|
Yea == todayYea &&
|
||||||
Day == todayDay); // Date is today
|
Mon == todayMon &&
|
||||||
if (WriteToday)
|
Day == todayDay) // Date is today
|
||||||
StrDat = txtToday[Language];
|
StrDat = txtToday[Language];
|
||||||
else
|
else
|
||||||
switch (DateFormat) {
|
switch (DateFormat) {
|
||||||
case 0: // Dat_FORMAT_YYYY_MM_DD
|
case 0: // Dat_FORMAT_YYYY_MM_DD
|
||||||
|
@ -158,7 +161,7 @@ function writeLocalDateHMSFromUTC (id,TimeUTC,DateFormat,Separator,Language,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (WriteWeekDay) {
|
if ((WhatToWrite & Dat_WRITE_WEEK_DAY) != 0) {
|
||||||
DayOfWeek = d.getDay();
|
DayOfWeek = d.getDay();
|
||||||
DayOfWeek = (DayOfWeek == 0) ? 6 : DayOfWeek - 1;
|
DayOfWeek = (DayOfWeek == 0) ? 6 : DayOfWeek - 1;
|
||||||
StrDat += Separator + DAYS[DayOfWeek];
|
StrDat += Separator + DAYS[DayOfWeek];
|
||||||
|
@ -170,15 +173,15 @@ function writeLocalDateHMSFromUTC (id,TimeUTC,DateFormat,Separator,Language,
|
||||||
StrHou = '';
|
StrHou = '';
|
||||||
StrMin = '';
|
StrMin = '';
|
||||||
StrSec = '';
|
StrSec = '';
|
||||||
if (WriteHMS & (1<<2)) {
|
if ((WhatToWrite & Dat_WRITE_HOUR) != 0) {
|
||||||
// Bit 2 on => Write hour
|
// Bit 2 on => Write hour
|
||||||
Hou = d.getHours();
|
Hou = d.getHours();
|
||||||
StrHou = ((Hou < 10) ? '0' : '') + Hou;
|
StrHou = ((Hou < 10) ? '0' : '') + Hou;
|
||||||
if (WriteHMS & (1<<1)) {
|
if ((WhatToWrite & Dat_WRITE_MINUTE) != 0) {
|
||||||
// Bits 2,1 on => Write minutes
|
// Bits 2,1 on => Write minutes
|
||||||
Min = d.getMinutes ();
|
Min = d.getMinutes ();
|
||||||
StrMin = ((Min < 10) ? ':0' : ':') + Min;
|
StrMin = ((Min < 10) ? ':0' : ':') + Min;
|
||||||
if (WriteHMS & 1) {
|
if ((WhatToWrite & Dat_WRITE_SECOND) != 0) {
|
||||||
// Bits 2,1,0 on => Write seconds
|
// Bits 2,1,0 on => Write seconds
|
||||||
Sec = d.getSeconds ();
|
Sec = d.getSeconds ();
|
||||||
StrSec = ((Sec < 10) ? ':0' : ':') + Sec;
|
StrSec = ((Sec < 10) ? ':0' : ':') + Sec;
|
|
@ -1333,7 +1333,7 @@ void HTM_INPUT_IMAGE (const char *URL,const char *Icon,const char *Title,
|
||||||
}
|
}
|
||||||
|
|
||||||
void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder,
|
void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder,
|
||||||
const char *AutoComplete,bool Required,
|
const char *AutoComplete,HTM_Required_t Required,
|
||||||
const char *fmt,...)
|
const char *fmt,...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
@ -1348,7 +1348,7 @@ void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder,
|
||||||
if (AutoComplete)
|
if (AutoComplete)
|
||||||
if (AutoComplete[0])
|
if (AutoComplete[0])
|
||||||
HTM_TxtF (" autocomplete=\"%s\"",AutoComplete);
|
HTM_TxtF (" autocomplete=\"%s\"",AutoComplete);
|
||||||
if (Required)
|
if (Required == HTM_REQUIRED)
|
||||||
HTM_Txt (" required=\"required\"");
|
HTM_Txt (" required=\"required\"");
|
||||||
|
|
||||||
if (fmt)
|
if (fmt)
|
||||||
|
|
|
@ -52,6 +52,13 @@ typedef enum
|
||||||
HTM_SUBMIT_ON_CLICK,
|
HTM_SUBMIT_ON_CLICK,
|
||||||
} HTM_SubmitOnClick_t;
|
} HTM_SubmitOnClick_t;
|
||||||
|
|
||||||
|
#define HTM_NUM_REQUIRED 2
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
HTM_NOT_REQUIRED,
|
||||||
|
HTM_REQUIRED,
|
||||||
|
} HTM_Required_t;
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
HTM_OPTION_UNSELECTED,
|
HTM_OPTION_UNSELECTED,
|
||||||
|
@ -175,7 +182,7 @@ void HTM_INPUT_BUTTON (const char *Name,const char *Value,const char *Attr);
|
||||||
void HTM_INPUT_IMAGE (const char *URL,const char *Icon,const char *Title,
|
void HTM_INPUT_IMAGE (const char *URL,const char *Icon,const char *Title,
|
||||||
const char *fmt,...);
|
const char *fmt,...);
|
||||||
void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder,
|
void HTM_INPUT_PASSWORD (const char *Name,const char *PlaceHolder,
|
||||||
const char *AutoComplete,bool Required,
|
const char *AutoComplete,HTM_Required_t Required,
|
||||||
const char *fmt,...);
|
const char *fmt,...);
|
||||||
void HTM_INPUT_LONG (const char *Name,long Min,long Max,long Value,
|
void HTM_INPUT_LONG (const char *Name,long Min,long Max,long Value,
|
||||||
HTM_SubmitOnChange_t SubmitOnChange,bool Disabled,
|
HTM_SubmitOnChange_t SubmitOnChange,bool Disabled,
|
||||||
|
|
|
@ -810,7 +810,11 @@ static void Agd_ShowOneEvent (struct Agd_Agenda *Agenda,
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,AgdEvent.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,AgdEvent.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -526,7 +526,12 @@ static void Asg_ShowAssignmentRow (struct Asg_Assignments *Assignments,
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Assignments->Asg.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Assignments->Asg.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
@ -1675,7 +1680,11 @@ void Asg_WriteDatesAssignment (const struct Asg_Assignment *Asg)
|
||||||
HTM_SPAN_Begin ("id=\"%s\"",Id);
|
HTM_SPAN_Begin ("id=\"%s\"",Id);
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Asg->TimeUTC[Dat_STR_TIME],
|
Dat_WriteLocalDateHMSFromUTC (Id,Asg->TimeUTC[Dat_STR_TIME],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_SPAN_End ();
|
HTM_SPAN_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
@ -1688,7 +1697,11 @@ void Asg_WriteDatesAssignment (const struct Asg_Assignment *Asg)
|
||||||
HTM_SPAN_Begin ("id=\"%s\"",Id);
|
HTM_SPAN_Begin ("id=\"%s\"",Id);
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Asg->TimeUTC[Dat_END_TIME],
|
Dat_WriteLocalDateHMSFromUTC (Id,Asg->TimeUTC[Dat_END_TIME],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,false,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_SPAN_End ();
|
HTM_SPAN_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -475,7 +475,12 @@ static void Att_ShowOneEventRow (struct Att_Events *Events,
|
||||||
The_GetSuffix (),The_GetColorRows ());
|
The_GetSuffix (),The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Events->Event.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Events->Event.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
@ -2684,7 +2689,12 @@ static void Att_ListEventsToSelect (struct Att_Events *Events,
|
||||||
HTM_LABEL_End ();
|
HTM_LABEL_End ();
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Events->Event.TimeUTC[Dat_STR_TIME],
|
Dat_WriteLocalDateHMSFromUTC (Id,Events->Event.TimeUTC[Dat_STR_TIME],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
free (Id);
|
free (Id);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
@ -3151,7 +3161,12 @@ static void Att_ListAttEventsForAStd (struct Att_Events *Events,
|
||||||
HTM_Txt (Events->Event.Title);
|
HTM_Txt (Events->Event.Title);
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Events->Event.TimeUTC[Dat_STR_TIME],
|
Dat_WriteLocalDateHMSFromUTC (Id,Events->Event.TimeUTC[Dat_STR_TIME],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
free (Id);
|
free (Id);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
|
|
@ -4868,7 +4868,10 @@ static void Brw_WriteFileSizeAndDate (struct Brw_FileMetadata *FileMetadata,
|
||||||
HTM_SPAN_End ();
|
HTM_SPAN_End ();
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,FileMetadata->Time,
|
Dat_WriteLocalDateHMSFromUTC (Id,FileMetadata->Time,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -7506,7 +7509,12 @@ void Brw_ShowFileMetadata (void)
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
Dat_WriteLocalDateHMSFromUTC ("filedate",FileMetadata.Time,
|
Dat_WriteLocalDateHMSFromUTC ("filedate",FileMetadata.Time,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
|
|
|
@ -633,10 +633,12 @@ Me sale este error, no s
|
||||||
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
"can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod')
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 23.78 (2024-04-23)"
|
#define Log_PLATFORM_VERSION "SWAD 23.79 (2024-04-24)"
|
||||||
#define CSS_FILE "swad23.67.2.css"
|
#define CSS_FILE "swad23.67.2.css"
|
||||||
#define JS_FILE "swad23.53.6.js"
|
#define JS_FILE "swad23.79.js"
|
||||||
/*
|
/*
|
||||||
|
Version 23.79.1: Apr 24, 2024 Code refactoring in HTML related to required field in form. (335751 lines)
|
||||||
|
Version 23.79: Apr 24, 2024 Code refactoring writing dates. (335741 lines)
|
||||||
Version 23.78: Apr 23, 2024 Code refactoring in list of actions. (335577 lines)
|
Version 23.78: Apr 23, 2024 Code refactoring in list of actions. (335577 lines)
|
||||||
Version 23.77: Apr 19, 2024 Code refactoring in list of actions. (335567 lines)
|
Version 23.77: Apr 19, 2024 Code refactoring in list of actions. (335567 lines)
|
||||||
Version 23.76.1: Apr 19, 2024 Code refactoring related to don't belong/belong. (335570 lines)
|
Version 23.76.1: Apr 19, 2024 Code refactoring related to don't belong/belong. (335570 lines)
|
||||||
|
|
|
@ -112,7 +112,10 @@ void Con_ShowConnectedUsrs (void)
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("connected_current_time",Dat_GetStartExecutionTimeUTC (),
|
Dat_WriteLocalDateHMSFromUTC ("connected_current_time",Dat_GetStartExecutionTimeUTC (),
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
false,false,true,0x7);
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
|
|
||||||
/***** Number of connected users in the whole platform *****/
|
/***** Number of connected users in the whole platform *****/
|
||||||
HTM_FIELDSET_Begin ("class=\"CON CON_%s\"",The_GetSuffix ());
|
HTM_FIELDSET_Begin ("class=\"CON CON_%s\"",The_GetSuffix ());
|
||||||
|
|
16
swad_date.c
16
swad_date.c
|
@ -360,7 +360,7 @@ void Dat_PutScriptDateFormat (Dat_Format_t Format)
|
||||||
Err_NotEnoughMemoryExit ();
|
Err_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetStartExecutionTimeUTC (),
|
Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetStartExecutionTimeUTC (),
|
||||||
Format,Dat_SEPARATOR_NONE,
|
Format,Dat_SEPARATOR_NONE,
|
||||||
false,true,false,0x0);
|
Dat_WRITE_DATE_ON_SAME_DAY);
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1786,8 +1786,7 @@ void Dat_WriteHoursMinutesSeconds (struct Dat_Time *Time)
|
||||||
|
|
||||||
void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC,
|
void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC,
|
||||||
Dat_Format_t DateFormat,Dat_Separator_t Separator,
|
Dat_Format_t DateFormat,Dat_Separator_t Separator,
|
||||||
bool WriteToday,bool WriteDateOnSameDay,
|
Dat_WhatToWrite_t Write)
|
||||||
bool WriteWeekDay,unsigned WriteHMS)
|
|
||||||
{
|
{
|
||||||
static const char *SeparatorStr[Dat_NUM_SEPARATORS] =
|
static const char *SeparatorStr[Dat_NUM_SEPARATORS] =
|
||||||
{
|
{
|
||||||
|
@ -1797,16 +1796,9 @@ void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC,
|
||||||
};
|
};
|
||||||
|
|
||||||
HTM_SCRIPT_Begin (NULL,NULL);
|
HTM_SCRIPT_Begin (NULL,NULL);
|
||||||
HTM_TxtF ("writeLocalDateHMSFromUTC('%s',%ld,%u,'%s',%u,%s,%s,%s,0x%x);",
|
HTM_TxtF ("writeLocalDateHMSFromUTC('%s',%ld,%u,'%s',%u,%u);",
|
||||||
Id,(long) TimeUTC,(unsigned) DateFormat,SeparatorStr[Separator],
|
Id,(long) TimeUTC,(unsigned) DateFormat,SeparatorStr[Separator],
|
||||||
(unsigned) Gbl.Prefs.Language,
|
(unsigned) Gbl.Prefs.Language,(unsigned) Write);
|
||||||
WriteToday ? "true" :
|
|
||||||
"false",
|
|
||||||
WriteDateOnSameDay ? "true" :
|
|
||||||
"false",
|
|
||||||
WriteWeekDay ? "true" :
|
|
||||||
"false",
|
|
||||||
WriteHMS);
|
|
||||||
HTM_SCRIPT_End ();
|
HTM_SCRIPT_End ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
11
swad_date.h
11
swad_date.h
|
@ -123,6 +123,14 @@ typedef enum
|
||||||
Dat_SEPARATOR_BREAK, // Line break
|
Dat_SEPARATOR_BREAK, // Line break
|
||||||
} Dat_Separator_t;
|
} Dat_Separator_t;
|
||||||
|
|
||||||
|
typedef unsigned Dat_WhatToWrite_t;
|
||||||
|
#define Dat_WRITE_TODAY ((Dat_WhatToWrite_t) (1 << 5))
|
||||||
|
#define Dat_WRITE_DATE_ON_SAME_DAY ((Dat_WhatToWrite_t) (1 << 4))
|
||||||
|
#define Dat_WRITE_WEEK_DAY ((Dat_WhatToWrite_t) (1 << 3))
|
||||||
|
#define Dat_WRITE_HOUR ((Dat_WhatToWrite_t) (1 << 2))
|
||||||
|
#define Dat_WRITE_MINUTE ((Dat_WhatToWrite_t) (1 << 1))
|
||||||
|
#define Dat_WRITE_SECOND ((Dat_WhatToWrite_t) (1 << 0))
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/***************************** Public prototypes *****************************/
|
/***************************** Public prototypes *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -226,8 +234,7 @@ void Dat_WriteHoursMinutesSeconds (struct Dat_Time *Time);
|
||||||
|
|
||||||
void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC,
|
void Dat_WriteLocalDateHMSFromUTC (const char *Id,time_t TimeUTC,
|
||||||
Dat_Format_t DateFormat,Dat_Separator_t Separator,
|
Dat_Format_t DateFormat,Dat_Separator_t Separator,
|
||||||
bool WriteToday,bool WriteDateOnSameDay,
|
Dat_WhatToWrite_t Write);
|
||||||
bool WriteWeekDay,unsigned WriteHMS);
|
|
||||||
|
|
||||||
//-------------------------------- Figures ------------------------------------
|
//-------------------------------- Figures ------------------------------------
|
||||||
void Dat_GetAndShowNumUsrsPerDateFormat (void);
|
void Dat_GetAndShowNumUsrsPerDateFormat (void);
|
||||||
|
|
|
@ -503,7 +503,11 @@ static void Exa_ShowOneExam (struct Exa_Exams *Exams,bool ShowOnlyThisExam)
|
||||||
if (Exams->Exam.TimeUTC[Dat_STR_TIME])
|
if (Exams->Exam.TimeUTC[Dat_STR_TIME])
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Exams->Exam.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Exams->Exam.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -334,7 +334,12 @@ void ExaLog_ShowExamLog (const struct ExaPrn_Print *Print)
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,ClickTimeUTC,
|
Dat_WriteLocalDateHMSFromUTC (Id,ClickTimeUTC,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
free (Id);
|
free (Id);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
|
|
@ -818,7 +818,11 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams,
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
@ -1617,7 +1621,12 @@ static void ExaRes_ShowExamResultTime (struct ExaPrn_Print *Print)
|
||||||
Id,The_GetSuffix ());
|
Id,The_GetSuffix ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Print->TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Print->TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
|
|
@ -475,7 +475,11 @@ static void ExaSes_ListOneOrMoreSessionsTimes (const struct ExaSes_Session *Sess
|
||||||
The_GetSuffix (),The_GetColorRows ());
|
The_GetSuffix (),The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Session->TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Session->TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2374,7 +2374,10 @@ static void For_ListForumThrs (struct For_Forums *Forums,
|
||||||
Id,Class,The_GetSuffix (),BgColor);
|
Id,Class,The_GetSuffix (),BgColor);
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,TimeUTC,
|
Dat_WriteLocalDateHMSFromUTC (Id,TimeUTC,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -563,7 +563,12 @@ static void Gam_ShowGameMainData (struct Gam_Games *Games,
|
||||||
if (Games->Game.TimeUTC[Dat_STR_TIME])
|
if (Games->Game.TimeUTC[Dat_STR_TIME])
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Games->Game.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Games->Game.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -2308,7 +2308,12 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
|
||||||
HTM_SPAN_End ();
|
HTM_SPAN_End ();
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,GrpTyp->OpenTimeUTC,
|
Dat_WriteLocalDateHMSFromUTC (Id,GrpTyp->OpenTimeUTC,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
|
@ -617,7 +617,12 @@ static void Mch_ListOneOrMoreMatchesTimes (const struct Gam_Games *Games,
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Match->TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Match->TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -764,7 +764,11 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games,
|
||||||
Id,The_GetSuffix (),The_GetColorRows ());
|
Id,The_GetSuffix (),The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
@ -1178,7 +1182,12 @@ void MchRes_ShowOneMchResult (void)
|
||||||
Id,The_GetSuffix ());
|
Id,The_GetSuffix ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
|
|
@ -2675,7 +2675,10 @@ void Msg_WriteMsgDate (time_t TimeUTC,const char *ClassTxt,const char *ClassBg)
|
||||||
/***** Write date and time *****/
|
/***** Write date and time *****/
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,TimeUTC,
|
Dat_WriteLocalDateHMSFromUTC (Id,TimeUTC,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
|
|
||||||
/***** End cell *****/
|
/***** End cell *****/
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
|
@ -588,7 +588,10 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Notice->CreatTime,
|
Dat_WriteLocalDateHMSFromUTC (Id,Notice->CreatTime,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
free (Id);
|
free (Id);
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
|
|
||||||
|
|
|
@ -620,7 +620,7 @@ void Pwd_ShowFormChgMyPwd (void)
|
||||||
/* Data */
|
/* Data */
|
||||||
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
||||||
HTM_INPUT_PASSWORD ("UsrPwd",NULL,"off",
|
HTM_INPUT_PASSWORD ("UsrPwd",NULL,"off",
|
||||||
true, // Required
|
HTM_REQUIRED,
|
||||||
"id=\"UsrPwd\""
|
"id=\"UsrPwd\""
|
||||||
" class=\"Frm_C2_INPUT INPUT_%s\"",
|
" class=\"Frm_C2_INPUT INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
|
@ -670,7 +670,7 @@ void Pwd_PutFormToGetNewPasswordOnce (void)
|
||||||
/* Data */
|
/* Data */
|
||||||
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
||||||
HTM_INPUT_PASSWORD ("Paswd",Txt_HELP_password,NULL,
|
HTM_INPUT_PASSWORD ("Paswd",Txt_HELP_password,NULL,
|
||||||
true, // Required
|
HTM_REQUIRED,
|
||||||
"id=\"Paswd\" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
|
"id=\"Paswd\" class=\"REC_C2_BOT_INPUT INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
|
|
||||||
|
@ -698,7 +698,7 @@ void Pwd_PutFormToGetNewPasswordTwice (void)
|
||||||
/* Data */
|
/* Data */
|
||||||
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
||||||
HTM_INPUT_PASSWORD ("Paswd1",Txt_HELP_password,NULL,
|
HTM_INPUT_PASSWORD ("Paswd1",Txt_HELP_password,NULL,
|
||||||
true, // Required
|
HTM_REQUIRED,
|
||||||
"id=\"Paswd1\" class=\"Frm_C2_INPUT INPUT_%s\"",
|
"id=\"Paswd1\" class=\"Frm_C2_INPUT INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -714,7 +714,7 @@ void Pwd_PutFormToGetNewPasswordTwice (void)
|
||||||
/* Data */
|
/* Data */
|
||||||
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
HTM_TD_Begin ("class=\"Frm_C2 LM\"");
|
||||||
HTM_INPUT_PASSWORD ("Paswd2",Txt_HELP_password,NULL,
|
HTM_INPUT_PASSWORD ("Paswd2",Txt_HELP_password,NULL,
|
||||||
true, // Required
|
HTM_REQUIRED,
|
||||||
"id=\"Paswd2\" class=\"Frm_C2_INPUT INPUT_%s\"",
|
"id=\"Paswd2\" class=\"Frm_C2_INPUT INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
@ -799,7 +799,7 @@ void Pwd_AskForConfirmationOnDangerousAction (void)
|
||||||
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
|
HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ());
|
||||||
HTM_TxtColonNBSP (Txt_For_security_enter_your_password);
|
HTM_TxtColonNBSP (Txt_For_security_enter_your_password);
|
||||||
HTM_INPUT_PASSWORD ("OthUsrPwd",NULL,"off",
|
HTM_INPUT_PASSWORD ("OthUsrPwd",NULL,"off",
|
||||||
true, // Required
|
HTM_REQUIRED,
|
||||||
"class=\"INPUT_%s\"",
|
"class=\"INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_LABEL_End ();
|
HTM_LABEL_End ();
|
||||||
|
|
|
@ -500,7 +500,10 @@ static void Prf_ShowTimeSinceFirstClick (const struct Usr_Data *UsrDat,
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC (IdFirstClickTime,UsrFigures->FirstClickTimeUTC,
|
Dat_WriteLocalDateHMSFromUTC (IdFirstClickTime,UsrFigures->FirstClickTimeUTC,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
}
|
}
|
||||||
else // First click time is unknown or user never logged
|
else // First click time is unknown or user never logged
|
||||||
/***** Button to fetch and store user's figures *****/
|
/***** Button to fetch and store user's figures *****/
|
||||||
|
|
|
@ -563,7 +563,10 @@ static void Prg_WriteRowItem (Prg_ListingType_t ListingType,
|
||||||
HidVis_PrgClass[HiddenOrVisible]);
|
HidVis_PrgClass[HiddenOrVisible]);
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Item->TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Item->TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,7 +300,7 @@ static void Prj_ReqCreatOrEditPrj (struct Prj_Projects *Projects);
|
||||||
static void Prj_PutFormProject (struct Prj_Projects *Projects,bool ItsANewProject);
|
static void Prj_PutFormProject (struct Prj_Projects *Projects,bool ItsANewProject);
|
||||||
static void Prj_EditOneProjectTxtArea (const char *Id,
|
static void Prj_EditOneProjectTxtArea (const char *Id,
|
||||||
const char *Label,char *TxtField,
|
const char *Label,char *TxtField,
|
||||||
unsigned NumRows,bool Required);
|
unsigned NumRows,HTM_Required_t Required);
|
||||||
|
|
||||||
static void Prj_CreateProject (struct Prj_Project *Prj);
|
static void Prj_CreateProject (struct Prj_Project *Prj);
|
||||||
static void Prj_UpdateProject (struct Prj_Project *Prj);
|
static void Prj_UpdateProject (struct Prj_Project *Prj);
|
||||||
|
@ -1580,7 +1580,12 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.CreatTime,
|
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.CreatTime,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
@ -1604,7 +1609,12 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects,
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.ModifTime,
|
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.ModifTime,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
@ -1776,7 +1786,10 @@ static void Prj_ShowReviewStatus (struct Prj_Projects *Projects,
|
||||||
HTM_DIV_Begin ("id=\"%s\" class=\"PRJ_DATE\"",Id);
|
HTM_DIV_Begin ("id=\"%s\" class=\"PRJ_DATE\"",Id);
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.Review.Time,
|
Dat_WriteLocalDateHMSFromUTC (Id,Projects->Prj.Review.Time,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
@ -2552,7 +2565,11 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
|
||||||
Id,HidVis_DateBlueClass[Prj->Hidden],The_GetColorRows ());
|
Id,HidVis_DateBlueClass[Prj->Hidden],The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Prj->CreatTime,
|
Dat_WriteLocalDateHMSFromUTC (Id,Prj->CreatTime,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
@ -2564,7 +2581,11 @@ static void Prj_ShowTableAllProjectsOneRow (struct Prj_Project *Prj)
|
||||||
Id,HidVis_DateBlueClass[Prj->Hidden],The_GetColorRows ());
|
Id,HidVis_DateBlueClass[Prj->Hidden],The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Prj->ModifTime,
|
Dat_WriteLocalDateHMSFromUTC (Id,Prj->ModifTime,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
@ -3880,17 +3901,17 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects,
|
||||||
/* Description of the project */
|
/* Description of the project */
|
||||||
Prj_EditOneProjectTxtArea ("Description",Txt_Description,
|
Prj_EditOneProjectTxtArea ("Description",Txt_Description,
|
||||||
Projects->Prj.Description,12,
|
Projects->Prj.Description,12,
|
||||||
true); // Required
|
HTM_REQUIRED);
|
||||||
|
|
||||||
/* Required knowledge to carry out the project */
|
/* Required knowledge to carry out the project */
|
||||||
Prj_EditOneProjectTxtArea ("Knowledge",Txt_Required_knowledge,
|
Prj_EditOneProjectTxtArea ("Knowledge",Txt_Required_knowledge,
|
||||||
Projects->Prj.Knowledge,4,
|
Projects->Prj.Knowledge,4,
|
||||||
false); // Not required
|
HTM_NOT_REQUIRED);
|
||||||
|
|
||||||
/* Required materials to carry out the project */
|
/* Required materials to carry out the project */
|
||||||
Prj_EditOneProjectTxtArea ("Materials",Txt_Required_materials,
|
Prj_EditOneProjectTxtArea ("Materials",Txt_Required_materials,
|
||||||
Projects->Prj.Materials,4,
|
Projects->Prj.Materials,4,
|
||||||
false); // Not required
|
HTM_NOT_REQUIRED);
|
||||||
|
|
||||||
/* URL for additional info */
|
/* URL for additional info */
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
@ -3931,8 +3952,14 @@ static void Prj_PutFormProject (struct Prj_Projects *Projects,
|
||||||
|
|
||||||
static void Prj_EditOneProjectTxtArea (const char *Id,
|
static void Prj_EditOneProjectTxtArea (const char *Id,
|
||||||
const char *Label,char *TxtField,
|
const char *Label,char *TxtField,
|
||||||
unsigned NumRows,bool Required)
|
unsigned NumRows,HTM_Required_t Required)
|
||||||
{
|
{
|
||||||
|
static const char *RequiredTxt[HTM_NUM_REQUIRED] =
|
||||||
|
{
|
||||||
|
[HTM_NOT_REQUIRED] = "",
|
||||||
|
[HTM_REQUIRED ] = " required=\"required\"",
|
||||||
|
};
|
||||||
|
|
||||||
/***** Description *****/
|
/***** Description *****/
|
||||||
HTM_TR_Begin (NULL);
|
HTM_TR_Begin (NULL);
|
||||||
|
|
||||||
|
@ -3944,9 +3971,7 @@ static void Prj_EditOneProjectTxtArea (const char *Id,
|
||||||
HTM_TEXTAREA_Begin ("id=\"%s\" name=\"%s\" rows=\"%u\""
|
HTM_TEXTAREA_Begin ("id=\"%s\" name=\"%s\" rows=\"%u\""
|
||||||
" class=\"Frm_C2_INPUT INPUT_%s\"%s",
|
" class=\"Frm_C2_INPUT INPUT_%s\"%s",
|
||||||
Id,Id,NumRows,
|
Id,Id,NumRows,
|
||||||
The_GetSuffix (),
|
The_GetSuffix (),RequiredTxt[Required]);
|
||||||
Required ? " required=\"required\"" :
|
|
||||||
"");
|
|
||||||
HTM_Txt (TxtField);
|
HTM_Txt (TxtField);
|
||||||
HTM_TEXTAREA_End ();
|
HTM_TEXTAREA_End ();
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
|
@ -958,7 +958,11 @@ void Qst_WriteQuestionListing (struct Qst_Questions *Questions,unsigned QstInd)
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Questions->Question.EditTime,
|
Dat_WriteLocalDateHMSFromUTC (Id,Questions->Question.EditTime,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
@ -1265,7 +1269,11 @@ void Qst_WriteQuestionRowForSelection (unsigned QstInd,
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Question->EditTime,
|
Dat_WriteLocalDateHMSFromUTC (Id,Question->EditTime,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
|
|
@ -1288,7 +1288,11 @@ static void Sta_ShowDetailedAccessesList (const struct Sta_Stats *Stats,
|
||||||
Id,The_GetSuffix (),The_GetColorRows ());
|
Id,The_GetSuffix (),The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetUNIXTimeFromStr (row[3]),
|
Dat_WriteLocalDateHMSFromUTC (Id,Dat_GetUNIXTimeFromStr (row[3]),
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
|
|
@ -458,7 +458,12 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
|
||||||
The_GetSuffix (),The_GetColorRows ());
|
The_GetSuffix (),The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Surveys->Svy.TimeUTC[Dat_STR_TIME],
|
Dat_WriteLocalDateHMSFromUTC (Id,Surveys->Svy.TimeUTC[Dat_STR_TIME],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
@ -478,7 +483,11 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys,
|
||||||
The_GetColorRows ());
|
The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Surveys->Svy.TimeUTC[Dat_END_TIME],
|
Dat_WriteLocalDateHMSFromUTC (Id,Surveys->Svy.TimeUTC[Dat_END_TIME],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,false,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
|
|
||||||
|
|
10
swad_test.c
10
swad_test.c
|
@ -435,12 +435,18 @@ static bool Tst_CheckIfNextTstAllowed (void)
|
||||||
"<span id=\"date_next_test\"></span>."
|
"<span id=\"date_next_test\"></span>."
|
||||||
"<script type=\"text/javascript\">"
|
"<script type=\"text/javascript\">"
|
||||||
"writeLocalDateHMSFromUTC('date_next_test',%ld,"
|
"writeLocalDateHMSFromUTC('date_next_test',%ld,"
|
||||||
"%u,', ',%u,true,true,true,0x7);"
|
"%u,', ',%u,%u);"
|
||||||
"</script>",
|
"</script>",
|
||||||
Txt_You_can_not_take_a_new_test_until,
|
Txt_You_can_not_take_a_new_test_until,
|
||||||
(long) TimeNextTestUTC,
|
(long) TimeNextTestUTC,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,
|
(unsigned) Gbl.Prefs.DateFormat,
|
||||||
(unsigned) Gbl.Prefs.Language);
|
(unsigned) Gbl.Prefs.Language,
|
||||||
|
(unsigned) (Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -1937,7 +1937,11 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat)
|
||||||
Id,ClassDat,The_GetSuffix (),The_GetColorRows ());
|
Id,ClassDat,The_GetSuffix (),The_GetColorRows ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_BREAK,
|
||||||
true,true,false,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
free (Id);
|
free (Id);
|
||||||
}
|
}
|
||||||
|
@ -2338,7 +2342,12 @@ void TstPrn_ShowOnePrint (void)
|
||||||
Id,The_GetSuffix ());
|
Id,The_GetSuffix ());
|
||||||
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
Dat_WriteLocalDateHMSFromUTC (Id,Print.TimeUTC[StartEndTime],
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,true,0x7);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_WEEK_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE |
|
||||||
|
Dat_WRITE_SECOND);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
|
|
|
@ -542,7 +542,10 @@ void Tml_WriteDateTime (time_t TimeUTC)
|
||||||
// because it will be evaluated in a loop in JavaScript
|
// because it will be evaluated in a loop in JavaScript
|
||||||
Dat_WriteLocalDateHMSFromUTC (IdDateTime,TimeUTC,
|
Dat_WriteLocalDateHMSFromUTC (IdDateTime,TimeUTC,
|
||||||
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
Gbl.Prefs.DateFormat,Dat_SEPARATOR_COMMA,
|
||||||
true,true,false,0x6);
|
Dat_WRITE_TODAY |
|
||||||
|
Dat_WRITE_DATE_ON_SAME_DAY |
|
||||||
|
Dat_WRITE_HOUR |
|
||||||
|
Dat_WRITE_MINUTE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -1180,7 +1180,7 @@ void Usr_WriteFormLogin (Act_Action_t NextAction,void (*FuncPars) (void))
|
||||||
Txt_Password,"CONTEXT_ICO16x16");
|
Txt_Password,"CONTEXT_ICO16x16");
|
||||||
HTM_LABEL_End ();
|
HTM_LABEL_End ();
|
||||||
HTM_INPUT_PASSWORD ("UsrPwd",Txt_password,NULL,
|
HTM_INPUT_PASSWORD ("UsrPwd",Txt_password,NULL,
|
||||||
false, // Not required
|
HTM_NOT_REQUIRED,
|
||||||
"id=\"UsrPwd\" class=\"INPUT_%s\"",
|
"id=\"UsrPwd\" class=\"INPUT_%s\"",
|
||||||
The_GetSuffix ());
|
The_GetSuffix ());
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
|
|
Loading…
Reference in New Issue