mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-08 01:35:32 +02:00
Version19.50.1
This commit is contained in:
parent
1ff26d4984
commit
af3f796fa5
|
@ -716,6 +716,7 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
struct AgendaEvent AgdEvent;
|
struct AgendaEvent AgdEvent;
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
@ -747,17 +748,18 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
|
||||||
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
||||||
StartEndTime++)
|
StartEndTime++)
|
||||||
{
|
{
|
||||||
HTM_TD_Begin ("id=\"agd_date_%u_%u\" class=\"%s LB COLOR%u\"",
|
if (asprintf (&Id,"agd_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"",
|
||||||
|
Id,
|
||||||
AgdEvent.Hidden ? Dat_TimeStatusClassHidden[AgdEvent.TimeStatus] :
|
AgdEvent.Hidden ? Dat_TimeStatusClassHidden[AgdEvent.TimeStatus] :
|
||||||
Dat_TimeStatusClassVisible[AgdEvent.TimeStatus],
|
Dat_TimeStatusClassVisible[AgdEvent.TimeStatus],
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'agd_date_%u_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x6",
|
||||||
"%u,'<br />','%s',true,true,0x6",
|
Id,AgdEvent.TimeUTC[StartEndTime],
|
||||||
(unsigned) StartEndTime,UniqueId,
|
|
||||||
AgdEvent.TimeUTC[StartEndTime],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Event */
|
/* Event */
|
||||||
|
|
|
@ -25,8 +25,10 @@
|
||||||
/********************************* Headers ***********************************/
|
/********************************* Headers ***********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define _GNU_SOURCE // For asprintf
|
||||||
#include <linux/limits.h> // For PATH_MAX
|
#include <linux/limits.h> // For PATH_MAX
|
||||||
#include <linux/stddef.h> // For NULL
|
#include <linux/stddef.h> // For NULL
|
||||||
|
#include <stdio.h> // For asprintf
|
||||||
#include <stdlib.h> // For calloc
|
#include <stdlib.h> // For calloc
|
||||||
#include <string.h> // For string functions
|
#include <string.h> // For string functions
|
||||||
|
|
||||||
|
@ -340,6 +342,7 @@ static void Asg_ShowOneAssignment (long AsgCod,bool PrintView)
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
struct Assignment Asg;
|
struct Assignment Asg;
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
@ -371,26 +374,28 @@ static void Asg_ShowOneAssignment (long AsgCod,bool PrintView)
|
||||||
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
||||||
StartEndTime++)
|
StartEndTime++)
|
||||||
{
|
{
|
||||||
|
if (asprintf (&Id,"asg_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
if (PrintView)
|
if (PrintView)
|
||||||
HTM_TD_Begin ("id=\"asg_date_%u_%u\" class=\"%s LB\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"",
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Id,
|
||||||
Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" :
|
Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT") :
|
"DATE_RED_LIGHT") :
|
||||||
(Asg.Open ? "DATE_GREEN" :
|
(Asg.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED"));
|
"DATE_RED"));
|
||||||
else
|
else
|
||||||
HTM_TD_Begin ("id=\"asg_date_%u_%u\" class=\"%s LB COLOR%u\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"",
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Id,
|
||||||
Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" :
|
Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT") :
|
"DATE_RED_LIGHT") :
|
||||||
(Asg.Open ? "DATE_GREEN" :
|
(Asg.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED"),
|
"DATE_RED"),
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'asg_date_%u_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,Asg.TimeUTC[StartEndTime],
|
||||||
(unsigned) StartEndTime,UniqueId,Asg.TimeUTC[StartEndTime],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Assignment title */
|
/* Assignment title */
|
||||||
|
|
|
@ -25,9 +25,11 @@
|
||||||
/********************************** Headers **********************************/
|
/********************************** Headers **********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define _GNU_SOURCE // For asprintf
|
||||||
#include <linux/limits.h> // For PATH_MAX
|
#include <linux/limits.h> // For PATH_MAX
|
||||||
#include <linux/stddef.h> // For NULL
|
#include <linux/stddef.h> // For NULL
|
||||||
#include <mysql/mysql.h> // To access MySQL databases
|
#include <mysql/mysql.h> // To access MySQL databases
|
||||||
|
#include <stdio.h> // For asprintf
|
||||||
#include <stdlib.h> // For calloc
|
#include <stdlib.h> // For calloc
|
||||||
#include <string.h> // For string functions
|
#include <string.h> // For string functions
|
||||||
|
|
||||||
|
@ -373,6 +375,7 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt
|
||||||
extern const char *Txt_View_event;
|
extern const char *Txt_View_event;
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
char Description[Cns_MAX_BYTES_TEXT + 1];
|
char Description[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
|
||||||
|
@ -408,26 +411,28 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt
|
||||||
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
||||||
StartEndTime++)
|
StartEndTime++)
|
||||||
{
|
{
|
||||||
|
if (asprintf (&Id,"att_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
if (ShowOnlyThisAttEventComplete)
|
if (ShowOnlyThisAttEventComplete)
|
||||||
HTM_TD_Begin ("id=\"att_date_%u_%u\" class=\"%s LB\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"",
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Id,
|
||||||
Att->Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" :
|
Att->Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT") :
|
"DATE_RED_LIGHT") :
|
||||||
(Att->Open ? "DATE_GREEN" :
|
(Att->Open ? "DATE_GREEN" :
|
||||||
"DATE_RED"));
|
"DATE_RED"));
|
||||||
else
|
else
|
||||||
HTM_TD_Begin ("id=\"att_date_%u_%u\" class=\"%s LB COLOR%u\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"",
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Id,
|
||||||
Att->Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" :
|
Att->Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT") :
|
"DATE_RED_LIGHT") :
|
||||||
(Att->Open ? "DATE_GREEN" :
|
(Att->Open ? "DATE_GREEN" :
|
||||||
"DATE_RED"),
|
"DATE_RED"),
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'att_date_%u_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,Att->TimeUTC[StartEndTime],
|
||||||
(unsigned) StartEndTime,UniqueId,Att->TimeUTC[StartEndTime],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Attendance event title */
|
/* Attendance event title */
|
||||||
|
@ -3072,6 +3077,7 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView)
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
extern const char *Txt_Update_attendance;
|
extern const char *Txt_Update_attendance;
|
||||||
unsigned UniqueId;
|
unsigned UniqueId;
|
||||||
|
char *Id;
|
||||||
unsigned NumAttEvent;
|
unsigned NumAttEvent;
|
||||||
bool NormalView = (TypeOfView == Att_NORMAL_VIEW_ONLY_ME ||
|
bool NormalView = (TypeOfView == Att_NORMAL_VIEW_ONLY_ME ||
|
||||||
TypeOfView == Att_NORMAL_VIEW_STUDENTS);
|
TypeOfView == Att_NORMAL_VIEW_STUDENTS);
|
||||||
|
@ -3131,16 +3137,18 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView)
|
||||||
NumAttEvent,NumAttEvent + 1);
|
NumAttEvent,NumAttEvent + 1);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
if (asprintf (&Id,"att_date_start_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||||
fprintf (Gbl.F.Out,"<label for=\"Att%u\">"
|
fprintf (Gbl.F.Out,"<label for=\"Att%u\">"
|
||||||
"<span id=\"att_date_start_%u\"></span>"
|
"<span id=\"%s\"></span>"
|
||||||
"</label>",
|
"</label>",
|
||||||
NumAttEvent,UniqueId);
|
NumAttEvent,Id);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'att_date_start_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||||
"%u,', ','%s',true,true,0x7",
|
Id,Gbl.AttEvents.Lst[NumAttEvent].TimeUTC[Att_START_TIME],
|
||||||
UniqueId,Gbl.AttEvents.Lst[NumAttEvent].TimeUTC[Att_START_TIME],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||||
fprintf (Gbl.F.Out,"%s",Gbl.AttEvents.Lst[NumAttEvent].Title);
|
fprintf (Gbl.F.Out,"%s",Gbl.AttEvents.Lst[NumAttEvent].Title);
|
||||||
|
@ -3490,6 +3498,7 @@ static void Att_ListAttEventsForAStd (unsigned NumUsr,struct UsrData *UsrDat)
|
||||||
bool ShowPhoto;
|
bool ShowPhoto;
|
||||||
unsigned NumAttEvent;
|
unsigned NumAttEvent;
|
||||||
unsigned UniqueId;
|
unsigned UniqueId;
|
||||||
|
char *Id;
|
||||||
bool Present;
|
bool Present;
|
||||||
bool ShowCommentStd;
|
bool ShowCommentStd;
|
||||||
bool ShowCommentTch;
|
bool ShowCommentTch;
|
||||||
|
@ -3574,17 +3583,19 @@ static void Att_ListAttEventsForAStd (unsigned NumUsr,struct UsrData *UsrDat)
|
||||||
Att_PutCheckOrCross (Present);
|
Att_PutCheckOrCross (Present);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
if (asprintf (&Id,"att_date_start_%u_%u",NumUsr,UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||||
fprintf (Gbl.F.Out,"<span id=\"att_date_start_%u_%u\"></span>"
|
fprintf (Gbl.F.Out,"<span id=\"%s\"></span>"
|
||||||
"<br />%s",
|
"<br />%s",
|
||||||
NumUsr,UniqueId,
|
Id,
|
||||||
Gbl.AttEvents.Lst[NumAttEvent].Title);
|
Gbl.AttEvents.Lst[NumAttEvent].Title);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'att_date_start_%u_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||||
"%u,', ','%s',true,true,0x7",
|
Id,
|
||||||
NumUsr,UniqueId,
|
|
||||||
Gbl.AttEvents.Lst[NumAttEvent].TimeUTC[Att_START_TIME],
|
Gbl.AttEvents.Lst[NumAttEvent].TimeUTC[Att_START_TIME],
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
|
|
||||||
|
|
|
@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
||||||
En OpenSWAD:
|
En OpenSWAD:
|
||||||
ps2pdf source.ps destination.pdf
|
ps2pdf source.ps destination.pdf
|
||||||
*/
|
*/
|
||||||
#define Log_PLATFORM_VERSION "SWAD 19.50 (2019-11-01)"
|
#define Log_PLATFORM_VERSION "SWAD 19.50.1 (2019-11-01)"
|
||||||
#define CSS_FILE "swad19.47.css"
|
#define CSS_FILE "swad19.47.css"
|
||||||
#define JS_FILE "swad19.39.js"
|
#define JS_FILE "swad19.39.js"
|
||||||
/*
|
/*
|
||||||
|
@ -495,6 +495,7 @@ ps2pdf source.ps destination.pdf
|
||||||
// TODO: Impedir la creación y edición de proyectos si no son editables.
|
// TODO: Impedir la creación y edición de proyectos si no son editables.
|
||||||
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
|
// TODO: Importante: filtrar proyectos por usuarios (igual que en trabajos o en asistencia)
|
||||||
|
|
||||||
|
Version 19.50.1: Nov 01, 2019 Code refactoring related with writing of local date-time. (246088 lines)
|
||||||
Version 19.50: Nov 01, 2019 Code refactoring related with writing of local date-time. (246016 lines)
|
Version 19.50: Nov 01, 2019 Code refactoring related with writing of local date-time. (246016 lines)
|
||||||
Version 19.49: Nov 01, 2019 Code refactoring in HTML scripts. (246052 lines)
|
Version 19.49: Nov 01, 2019 Code refactoring in HTML scripts. (246052 lines)
|
||||||
Version 19.48: Oct 31, 2019 Code refactoring in HTML textareas. (246038 lines)
|
Version 19.48: Oct 31, 2019 Code refactoring in HTML textareas. (246038 lines)
|
||||||
|
|
10
swad_date.c
10
swad_date.c
|
@ -166,10 +166,14 @@ void Dat_PutSpanDateFormat (Dat_Format_t Format)
|
||||||
|
|
||||||
void Dat_PutScriptDateFormat (Dat_Format_t Format)
|
void Dat_PutScriptDateFormat (Dat_Format_t Format)
|
||||||
{
|
{
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'date_format_%u',%ld,"
|
char *Id;
|
||||||
"%u,'',null,true,false,0x0",
|
|
||||||
(unsigned) Format,(long) Gbl.StartExecutionTimeUTC,
|
if (asprintf (&Id,"date_format_%u",(unsigned) Format) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'',null,true,false,0x0",
|
||||||
|
Id,(long) Gbl.StartExecutionTimeUTC,
|
||||||
(unsigned) Format);
|
(unsigned) Format);
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -6388,6 +6388,7 @@ static void Brw_WriteDatesAssignment (void)
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
extern const char *Txt_unknown_assignment;
|
extern const char *Txt_unknown_assignment;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
|
|
||||||
HTM_TD_Begin ("colspan=\"2\" class=\"%s RM COLOR%u\"",
|
HTM_TD_Begin ("colspan=\"2\" class=\"%s RM COLOR%u\"",
|
||||||
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
|
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
|
||||||
|
@ -6398,20 +6399,28 @@ static void Brw_WriteDatesAssignment (void)
|
||||||
{
|
{
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
|
|
||||||
/***** Write start and end dates *****/
|
/***** Write start date *****/
|
||||||
fprintf (Gbl.F.Out,"<span id=\"asg_start_date_%u\">",UniqueId);
|
if (asprintf (&Id,"asg_start_date_%u",UniqueId) < 0)
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'asg_start_date_%u',%ld,"
|
Lay_NotEnoughMemoryExit ();
|
||||||
"%u,', ','%s',true,false,0x7",
|
fprintf (Gbl.F.Out,"<span id=\"%s\">",Id);
|
||||||
UniqueId,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_START_TIME],
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x7",
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
Id,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_START_TIME],
|
||||||
fprintf (Gbl.F.Out,"</span>"
|
|
||||||
"→"
|
|
||||||
"<span id=\"asg_end_date_%u\">",UniqueId);
|
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'asg_end_date_%u',%ld,"
|
|
||||||
"%u,', ','%s',false,false,0x7",
|
|
||||||
UniqueId,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_END_TIME],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
fprintf (Gbl.F.Out,"</span>");
|
fprintf (Gbl.F.Out,"</span>");
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
|
/***** Arrow *****/
|
||||||
|
fprintf (Gbl.F.Out,"→");
|
||||||
|
|
||||||
|
/***** Write end date *****/
|
||||||
|
if (asprintf (&Id,"asg_end_date_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
fprintf (Gbl.F.Out,"<span id=\"%s\">",Id);
|
||||||
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',false,false,0x7",
|
||||||
|
Id,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_END_TIME],
|
||||||
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
|
fprintf (Gbl.F.Out,"</span>");
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fprintf (Gbl.F.Out," (%s)",Txt_unknown_assignment);
|
fprintf (Gbl.F.Out," (%s)",Txt_unknown_assignment);
|
||||||
|
@ -6426,6 +6435,7 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1];
|
char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1];
|
||||||
|
|
||||||
/***** Write the file size *****/
|
/***** Write the file size *****/
|
||||||
|
@ -6446,11 +6456,13 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
|
||||||
Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_LINK)
|
Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_LINK)
|
||||||
{
|
{
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
fprintf (Gbl.F.Out,"<span id=\"filedate%u\"></span>",UniqueId);
|
if (asprintf (&Id,"filedate%u",UniqueId) < 0)
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'filedate%u',%ld,"
|
Lay_NotEnoughMemoryExit ();
|
||||||
"%u,', ','%s',true,false,0x6",
|
fprintf (Gbl.F.Out,"<span id=\"%s\"></span>",Id);
|
||||||
UniqueId,(long) FileMetadata->Time,
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x6",
|
||||||
|
Id,(long) FileMetadata->Time,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
}
|
}
|
||||||
|
@ -9566,8 +9578,7 @@ void Brw_ShowFileMetadata (void)
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
HTM_TD_Begin ("id=\"filedate\" class=\"DAT LM\"");
|
HTM_TD_Begin ("id=\"filedate\" class=\"DAT LM\"");
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'filedate',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'filedate',%ld,%u,', ','%s',true,true,0x7",
|
||||||
"%u,', ','%s',true,true,0x7",
|
|
||||||
(long) FileMetadata.Time,
|
(long) FileMetadata.Time,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
12
swad_forum.c
12
swad_forum.c
|
@ -3335,6 +3335,7 @@ static void For_ListForumThrs (long ThrCods[Pag_ITEMS_PER_PAGE],
|
||||||
unsigned NumThr;
|
unsigned NumThr;
|
||||||
unsigned NumThrInScreen; // From 0 to Pag_ITEMS_PER_PAGE-1
|
unsigned NumThrInScreen; // From 0 to Pag_ITEMS_PER_PAGE-1
|
||||||
unsigned UniqueId;
|
unsigned UniqueId;
|
||||||
|
char *Id;
|
||||||
struct ForumThread Thr;
|
struct ForumThread Thr;
|
||||||
struct UsrData UsrDat;
|
struct UsrData UsrDat;
|
||||||
For_Order_t Order;
|
For_Order_t Order;
|
||||||
|
@ -3457,13 +3458,14 @@ static void For_ListForumThrs (long ThrCods[Pag_ITEMS_PER_PAGE],
|
||||||
/* Write the date of first or last message (it's in YYYYMMDDHHMMSS format) */
|
/* Write the date of first or last message (it's in YYYYMMDDHHMMSS format) */
|
||||||
TimeUTC = Thr.WriteTime[Order];
|
TimeUTC = Thr.WriteTime[Order];
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
HTM_TD_Begin ("id=\"thr_date_%u\" class=\"%s LT %s\"",
|
if (asprintf (&Id,"thr_date_%u",UniqueId) < 0)
|
||||||
UniqueId,Style,BgColor);
|
Lay_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'thr_date_%u',%ld,"
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",Id,Style,BgColor);
|
||||||
"%u,'<br />','%s',true,false,0x6",
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x6",
|
||||||
UniqueId,(long) TimeUTC,
|
Id,(long) TimeUTC,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
for (Column = 1;
|
for (Column = 1;
|
||||||
|
|
20
swad_game.c
20
swad_game.c
|
@ -376,6 +376,7 @@ void Gam_ShowOneGame (long GamCod,
|
||||||
extern const char *Txt_Matches;
|
extern const char *Txt_Matches;
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
struct Game Game;
|
struct Game Game;
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
@ -419,24 +420,23 @@ void Gam_ShowOneGame (long GamCod,
|
||||||
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
||||||
StartEndTime++)
|
StartEndTime++)
|
||||||
{
|
{
|
||||||
|
if (asprintf (&Id,"gam_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
if (ShowOnlyThisGame)
|
if (ShowOnlyThisGame)
|
||||||
HTM_TD_Begin ("id=\"gam_date_%u_%u\" class=\"%s LT\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Id,Game.Hidden ? "DATE_GREEN_LIGHT":
|
||||||
Game.Hidden ? "DATE_GREEN_LIGHT":
|
|
||||||
"DATE_GREEN");
|
"DATE_GREEN");
|
||||||
else
|
else
|
||||||
HTM_TD_Begin ("id=\"gam_date_%u_%u\" class=\"%s LT COLOR%u\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Id,Game.Hidden ? "DATE_GREEN_LIGHT":
|
||||||
Game.Hidden ? "DATE_GREEN_LIGHT":
|
|
||||||
"DATE_GREEN",
|
"DATE_GREEN",
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
if (Game.TimeUTC[Dat_START_TIME])
|
if (Game.TimeUTC[Dat_START_TIME])
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'gam_date_%u_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,Game.TimeUTC[StartEndTime],
|
||||||
(unsigned) StartEndTime,UniqueId,
|
|
||||||
Game.TimeUTC[StartEndTime],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/***** Game title and main data *****/
|
/***** Game title and main data *****/
|
||||||
|
|
13
swad_group.c
13
swad_group.c
|
@ -2328,6 +2328,7 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
|
||||||
extern const char *Txt_ROLES_PLURAL_BRIEF_Abc[Rol_NUM_ROLES];
|
extern const char *Txt_ROLES_PLURAL_BRIEF_Abc[Rol_NUM_ROLES];
|
||||||
extern const char *Txt_Vacants;
|
extern const char *Txt_Vacants;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
Rol_Role_t Role;
|
Rol_Role_t Role;
|
||||||
|
|
||||||
/***** Name of group type *****/
|
/***** Name of group type *****/
|
||||||
|
@ -2337,14 +2338,16 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
|
||||||
if (GrpTyp->MustBeOpened)
|
if (GrpTyp->MustBeOpened)
|
||||||
{
|
{
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
|
if (asprintf (&Id,"open_time_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
fprintf (Gbl.F.Out,"<br />%s: "
|
fprintf (Gbl.F.Out,"<br />%s: "
|
||||||
"<span id=\"open_time_%u\"></span>",
|
"<span id=\"%s\"></span>",
|
||||||
Txt_Opening_of_groups,
|
Txt_Opening_of_groups,
|
||||||
UniqueId);
|
Id);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'open_time_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||||
"%u,', ','%s',true,true,0x7",
|
Id,(long) GrpTyp->OpenTimeUTC,
|
||||||
UniqueId,(long) GrpTyp->OpenTimeUTC,
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
|
|
14
swad_match.c
14
swad_match.c
|
@ -544,22 +544,24 @@ static void Mch_ListOneOrMoreMatchesTimes (const struct Match *Match,unsigned Un
|
||||||
{
|
{
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
|
char *Id;
|
||||||
|
|
||||||
for (StartEndTime = (Dat_StartEndTime_t) 0;
|
for (StartEndTime = (Dat_StartEndTime_t) 0;
|
||||||
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
||||||
StartEndTime++)
|
StartEndTime++)
|
||||||
{
|
{
|
||||||
HTM_TD_Begin ("id=\"mch_time_%u_%u\" class=\"%s LT COLOR%u\"",
|
if (asprintf (&Id,"mch_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||||
|
Id,
|
||||||
Match->Status.QstInd >= Mch_AFTER_LAST_QUESTION ? "DATE_RED" :
|
Match->Status.QstInd >= Mch_AFTER_LAST_QUESTION ? "DATE_RED" :
|
||||||
"DATE_GREEN",
|
"DATE_GREEN",
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'mch_time_%u_%u',"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
"%ld,%u,'<br />','%s',true,true,0x7",
|
Id,Match->TimeUTC[StartEndTime],
|
||||||
(unsigned) StartEndTime,UniqueId,
|
|
||||||
Match->TimeUTC[StartEndTime],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -363,6 +363,7 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther)
|
||||||
unsigned NumResults;
|
unsigned NumResults;
|
||||||
unsigned NumResult;
|
unsigned NumResult;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
struct Match Match;
|
struct Match Match;
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
unsigned NumQstsInThisResult;
|
unsigned NumQstsInThisResult;
|
||||||
|
@ -431,15 +432,15 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther)
|
||||||
{
|
{
|
||||||
TimeUTC[StartEndTime] = Dat_GetUNIXTimeFromStr (row[1 + StartEndTime]);
|
TimeUTC[StartEndTime] = Dat_GetUNIXTimeFromStr (row[1 + StartEndTime]);
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
HTM_TD_Begin ("id =\"mch_time_%u_%u\" class=\"DAT LT COLOR%u\"",
|
if (asprintf (&Id,"mch_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Lay_NotEnoughMemoryExit ();
|
||||||
Gbl.RowEvenOdd);
|
HTM_TD_Begin ("id =\"%s\" class=\"DAT LT COLOR%u\"",
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'mch_time_%u_%u',"
|
Id,Gbl.RowEvenOdd);
|
||||||
"%ld,%u,'<br />','%s',true,false,0x7",
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x7",
|
||||||
(unsigned) StartEndTime,UniqueId,
|
Id,(long) TimeUTC[StartEndTime],
|
||||||
(long) TimeUTC[StartEndTime],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Write match title */
|
/* Write match title */
|
||||||
|
@ -633,6 +634,7 @@ void McR_ShowOneMchResult (void)
|
||||||
struct UsrData *UsrDat;
|
struct UsrData *UsrDat;
|
||||||
time_t TimeUTC[Dat_NUM_START_END_TIME]; // Match result UTC date-time
|
time_t TimeUTC[Dat_NUM_START_END_TIME]; // Match result UTC date-time
|
||||||
Dat_StartEndTime_t StartEndTime;
|
Dat_StartEndTime_t StartEndTime;
|
||||||
|
char *Id;
|
||||||
unsigned NumQsts;
|
unsigned NumQsts;
|
||||||
unsigned NumQstsNotBlank;
|
unsigned NumQstsNotBlank;
|
||||||
double TotalScore;
|
double TotalScore;
|
||||||
|
@ -787,13 +789,14 @@ void McR_ShowOneMchResult (void)
|
||||||
fprintf (Gbl.F.Out,"%s:",Txt_START_END_TIME[StartEndTime]);
|
fprintf (Gbl.F.Out,"%s:",Txt_START_END_TIME[StartEndTime]);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
HTM_TD_Begin ("id=\"match_%u\" class=\"DAT LT\"",(unsigned) StartEndTime);
|
if (asprintf (&Id,"match_%u",(unsigned) StartEndTime) < 0)
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'match_%u',%ld,"
|
Lay_NotEnoughMemoryExit ();
|
||||||
"%u,', ','%s',true,true,0x7",
|
HTM_TD_Begin ("id=\"%s\" class=\"DAT LT\"",Id);
|
||||||
(unsigned) StartEndTime,
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||||
TimeUTC[StartEndTime],
|
Id,TimeUTC[StartEndTime],
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
HTM_TR_End ();
|
HTM_TR_End ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -3612,21 +3612,25 @@ void Msg_WriteMsgDate (time_t TimeUTC,const char *ClassBackground)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Today;
|
extern const char *Txt_Today;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
|
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
|
if (asprintf (&Id,"msg_date_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
|
||||||
/***** Start cell *****/
|
/***** Start cell *****/
|
||||||
HTM_TD_Begin ("id=\"msg_date_%u\" class=\"%s RT\" style=\"width:106px;\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s RT\" style=\"width:106px;\"",
|
||||||
UniqueId,ClassBackground);
|
Id,ClassBackground);
|
||||||
|
|
||||||
/***** Write date and time *****/
|
/***** Write date and time *****/
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'msg_date_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x6",
|
||||||
"%u,', ','%s',true,false,0x6",
|
Id,(long) TimeUTC,
|
||||||
UniqueId,(long) TimeUTC,
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
|
|
||||||
/***** End cell *****/
|
/***** End cell *****/
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
|
free ((void *) Id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -640,6 +640,7 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
|
||||||
"NOTICE_AUTHOR_OBSOLETE", // Not_OBSOLETE_NOTICE
|
"NOTICE_AUTHOR_OBSOLETE", // Not_OBSOLETE_NOTICE
|
||||||
};
|
};
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
struct UsrData UsrDat;
|
struct UsrData UsrDat;
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
|
|
||||||
|
@ -691,17 +692,18 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
|
||||||
Not_PutHiddenParamNotCod (NotCod);
|
Not_PutHiddenParamNotCod (NotCod);
|
||||||
Frm_LinkFormSubmit (Txt_See_full_notice,DateClass[Status],NULL);
|
Frm_LinkFormSubmit (Txt_See_full_notice,DateClass[Status],NULL);
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,"<span id=\"not_date_%u\"></span>",
|
if (asprintf (&Id,"not_date_%u",UniqueId) < 0)
|
||||||
UniqueId);
|
Lay_NotEnoughMemoryExit ();
|
||||||
|
fprintf (Gbl.F.Out,"<span id=\"%s\"></span>",Id);
|
||||||
if (TypeNoticesListing == Not_LIST_BRIEF_NOTICES)
|
if (TypeNoticesListing == Not_LIST_BRIEF_NOTICES)
|
||||||
{
|
{
|
||||||
Frm_LinkFormEnd ();
|
Frm_LinkFormEnd ();
|
||||||
Frm_EndForm ();
|
Frm_EndForm ();
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'not_date_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x6",
|
||||||
"%u,'<br />','%s',true,false,0x6",
|
Id,(long) TimeUTC,
|
||||||
UniqueId,(long) TimeUTC,
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
|
free ((void *) Id);
|
||||||
HTM_DIV_End ();
|
HTM_DIV_End ();
|
||||||
|
|
||||||
/***** Write the content of the notice *****/
|
/***** Write the content of the notice *****/
|
||||||
|
|
|
@ -501,8 +501,7 @@ static void Prf_ShowTimeSinceFirstClick (const struct UsrData *UsrDat,
|
||||||
}
|
}
|
||||||
fprintf (Gbl.F.Out,")");
|
fprintf (Gbl.F.Out,")");
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x6",
|
||||||
"%u,', ','%s',true,false,0x6",
|
|
||||||
IdFirstClickTime,(long) UsrFigures->FirstClickTimeUTC,
|
IdFirstClickTime,(long) UsrFigures->FirstClickTimeUTC,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1046,6 +1046,7 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
||||||
struct Prj_Faults Faults;
|
struct Prj_Faults Faults;
|
||||||
bool PrjIsFaulty;
|
bool PrjIsFaulty;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
|
|
||||||
/***** Set CSS classes *****/
|
/***** Set CSS classes *****/
|
||||||
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
|
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
|
||||||
|
@ -1105,41 +1106,45 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
||||||
|
|
||||||
/* Creation date/time */
|
/* Creation date/time */
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
|
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
switch (ProjectView)
|
switch (ProjectView)
|
||||||
{
|
{
|
||||||
case Prj_LIST_PROJECTS:
|
case Prj_LIST_PROJECTS:
|
||||||
HTM_TD_Begin ("id=\"prj_creat_%u\" class=\"%s LT COLOR%u\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
Id,ClassDate,Gbl.RowEvenOdd);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
HTM_TD_Begin ("id=\"prj_creat_%u\" class=\"%s LT\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||||
UniqueId,ClassDate);
|
Id,ClassDate);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'prj_creat_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,Prj->CreatTime,
|
||||||
UniqueId,Prj->CreatTime,
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* Modification date/time */
|
/* Modification date/time */
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
|
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
switch (ProjectView)
|
switch (ProjectView)
|
||||||
{
|
{
|
||||||
case Prj_LIST_PROJECTS:
|
case Prj_LIST_PROJECTS:
|
||||||
HTM_TD_Begin ("id=\"prj_modif_%u\" class=\"%s LT COLOR%u\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
Id,ClassDate,Gbl.RowEvenOdd);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
HTM_TD_Begin ("id=\"prj_modif_%u\" class=\"%s LT\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||||
UniqueId,ClassDate);
|
Id,ClassDate);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'prj_modif_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,Prj->ModifTime,
|
||||||
UniqueId,Prj->ModifTime,
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* Project title */
|
/* Project title */
|
||||||
switch (ProjectView)
|
switch (ProjectView)
|
||||||
|
@ -1474,6 +1479,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
||||||
const char *ClassDate;
|
const char *ClassDate;
|
||||||
const char *ClassData;
|
const char *ClassData;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
|
|
||||||
/***** Get data of this project *****/
|
/***** Get data of this project *****/
|
||||||
Prj_GetDataOfProjectByCod (Prj);
|
Prj_GetDataOfProjectByCod (Prj);
|
||||||
|
@ -1489,23 +1495,27 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
||||||
|
|
||||||
/***** Start date/time *****/
|
/***** Start date/time *****/
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
HTM_TD_Begin ("id=\"prj_creat_%u\" class=\"LT %s COLOR%u\"",
|
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
|
||||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
Lay_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'prj_creat_%u',%ld,"
|
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,ClassDate,Gbl.RowEvenOdd);
|
||||||
UniqueId,Prj->CreatTime,
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
|
Id,Prj->CreatTime,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/***** End date/time *****/
|
/***** End date/time *****/
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
HTM_TD_Begin ("id=\"prj_modif_%u\" class=\"LT %s COLOR%u\"",
|
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
|
||||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
Lay_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'prj_modif_%u',%ld,"
|
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,ClassDate,Gbl.RowEvenOdd);
|
||||||
UniqueId,Prj->ModifTime,
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
|
Id,Prj->ModifTime,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/***** Project title *****/
|
/***** Project title *****/
|
||||||
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",
|
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",
|
||||||
|
|
|
@ -1547,6 +1547,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
|
||||||
long LogCod;
|
long LogCod;
|
||||||
Rol_Role_t RoleFromLog;
|
Rol_Role_t RoleFromLog;
|
||||||
unsigned UniqueId;
|
unsigned UniqueId;
|
||||||
|
char *Id;
|
||||||
long ActCod;
|
long ActCod;
|
||||||
char ActTxt[Act_MAX_BYTES_ACTION_TXT + 1];
|
char ActTxt[Act_MAX_BYTES_ACTION_TXT + 1];
|
||||||
|
|
||||||
|
@ -1715,13 +1716,14 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
|
||||||
/* Write the date-time (row[3]) */
|
/* Write the date-time (row[3]) */
|
||||||
HTM_TD_Begin ("id=\"log_date_%u\" class=\"LOG RT COLOR%u\"",
|
if (asprintf (&Id,"log_date_%u",UniqueId) < 0)
|
||||||
UniqueId,Gbl.RowEvenOdd);
|
Lay_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'log_date_%u',%ld,"
|
HTM_TD_Begin ("id=\"%s\" class=\"LOG RT COLOR%u\"",Id,Gbl.RowEvenOdd);
|
||||||
"%u,', ','%s',true,false,0x7",
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x7",
|
||||||
UniqueId,(long) Dat_GetUNIXTimeFromStr (row[3]),
|
Id,(long) Dat_GetUNIXTimeFromStr (row[3]),
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* Write the action */
|
/* Write the action */
|
||||||
if (sscanf (row[4],"%ld",&ActCod) != 1)
|
if (sscanf (row[4],"%ld",&ActCod) != 1)
|
||||||
|
|
|
@ -437,6 +437,7 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
|
||||||
extern const char *Txt_View_survey_results;
|
extern const char *Txt_View_survey_results;
|
||||||
char *Anchor = NULL;
|
char *Anchor = NULL;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
struct Survey Svy;
|
struct Survey Svy;
|
||||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||||
|
|
||||||
|
@ -470,48 +471,52 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
|
||||||
|
|
||||||
/* Start date/time */
|
/* Start date/time */
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
|
if (asprintf (&Id,"svy_date_start_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
if (ShowOnlyThisSvyComplete)
|
if (ShowOnlyThisSvyComplete)
|
||||||
HTM_TD_Begin ("id=\"svy_date_start_%u\" class=\"%s LT\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||||
UniqueId,
|
Id,
|
||||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED") :
|
"DATE_RED") :
|
||||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT"));
|
"DATE_RED_LIGHT"));
|
||||||
else
|
else
|
||||||
HTM_TD_Begin ("id=\"svy_date_start_%u\" class=\"%s LT COLOR%u\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||||
UniqueId,
|
Id,
|
||||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED") :
|
"DATE_RED") :
|
||||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT"),
|
"DATE_RED_LIGHT"),
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'svy_date_start_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||||
"%u,'<br />','%s',true,true,0x7",
|
Id,Svy.TimeUTC[Svy_START_TIME],
|
||||||
UniqueId,Svy.TimeUTC[Svy_START_TIME],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* End date/time */
|
/* End date/time */
|
||||||
|
if (asprintf (&Id,"svy_date_end_%u",UniqueId) < 0)
|
||||||
|
Lay_NotEnoughMemoryExit ();
|
||||||
if (ShowOnlyThisSvyComplete)
|
if (ShowOnlyThisSvyComplete)
|
||||||
HTM_TD_Begin ("id=\"svy_date_end_%u\" class=\"%s LT\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||||
UniqueId,
|
Id,
|
||||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED") :
|
"DATE_RED") :
|
||||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT"));
|
"DATE_RED_LIGHT"));
|
||||||
else
|
else
|
||||||
HTM_TD_Begin ("id=\"svy_date_end_%u\" class=\"%s LT COLOR%u\"",
|
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||||
UniqueId,
|
Id,
|
||||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||||
"DATE_RED") :
|
"DATE_RED") :
|
||||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||||
"DATE_RED_LIGHT"),
|
"DATE_RED_LIGHT"),
|
||||||
Gbl.RowEvenOdd);
|
Gbl.RowEvenOdd);
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'svy_date_end_%u',%ld,"
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',false,true,0x7",
|
||||||
"%u,'<br />','%s',false,true,0x7",
|
Id,Svy.TimeUTC[Svy_END_TIME],
|
||||||
UniqueId,Svy.TimeUTC[Svy_END_TIME],
|
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* Survey title */
|
/* Survey title */
|
||||||
if (ShowOnlyThisSvyComplete)
|
if (ShowOnlyThisSvyComplete)
|
||||||
|
|
42
swad_test.c
42
swad_test.c
|
@ -25,12 +25,13 @@
|
||||||
/*********************************** Headers *********************************/
|
/*********************************** Headers *********************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
#define _GNU_SOURCE // For asprintf
|
||||||
#include <limits.h> // For UINT_MAX
|
#include <limits.h> // For UINT_MAX
|
||||||
#include <linux/limits.h> // For PATH_MAX
|
#include <linux/limits.h> // For PATH_MAX
|
||||||
#include <linux/stddef.h> // For NULL
|
#include <linux/stddef.h> // For NULL
|
||||||
#include <mysql/mysql.h> // To access MySQL databases
|
#include <mysql/mysql.h> // To access MySQL databases
|
||||||
#include <stdbool.h> // For boolean type
|
#include <stdbool.h> // For boolean type
|
||||||
#include <stdio.h> // For fprintf, etc.
|
#include <stdio.h> // For fprintf, asprintf, etc.
|
||||||
#include <stdlib.h> // For exit, system, malloc, free, etc
|
#include <stdlib.h> // For exit, system, malloc, free, etc
|
||||||
#include <string.h> // For string functions
|
#include <string.h> // For string functions
|
||||||
#include <sys/stat.h> // For mkdir
|
#include <sys/stat.h> // For mkdir
|
||||||
|
@ -2806,6 +2807,7 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
|
||||||
unsigned long NumRow;
|
unsigned long NumRow;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned UniqueId;
|
unsigned UniqueId;
|
||||||
|
char *Id;
|
||||||
time_t TimeUTC;
|
time_t TimeUTC;
|
||||||
unsigned long NumHitsThisQst;
|
unsigned long NumHitsThisQst;
|
||||||
unsigned long NumHitsNotBlankThisQst;
|
unsigned long NumHitsNotBlankThisQst;
|
||||||
|
@ -2929,13 +2931,15 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
|
||||||
|
|
||||||
/* Write the date (row[1] has the UTC date-time) */
|
/* Write the date (row[1] has the UTC date-time) */
|
||||||
TimeUTC = Dat_GetUNIXTimeFromStr (row[1]);
|
TimeUTC = Dat_GetUNIXTimeFromStr (row[1]);
|
||||||
HTM_TD_Begin ("id=\"tst_date_%u\" class=\"DAT_SMALL CT COLOR%u\"",
|
if (asprintf (&Id,"tst_date_%u",UniqueId) < 0)
|
||||||
UniqueId,Gbl.RowEvenOdd);
|
Lay_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'tst_date_%u',%ld,"
|
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\"",
|
||||||
"%u,'<br />','%s',true,false,0x7",
|
Id,Gbl.RowEvenOdd);
|
||||||
UniqueId,(long) TimeUTC,
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x7",
|
||||||
|
Id,(long) TimeUTC,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* Write the question tags */
|
/* Write the question tags */
|
||||||
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
|
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||||
|
@ -3063,6 +3067,7 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
|
||||||
unsigned long NumRow;
|
unsigned long NumRow;
|
||||||
MYSQL_ROW row;
|
MYSQL_ROW row;
|
||||||
unsigned UniqueId;
|
unsigned UniqueId;
|
||||||
|
char *Id;
|
||||||
time_t TimeUTC;
|
time_t TimeUTC;
|
||||||
|
|
||||||
/***** Begin box *****/
|
/***** Begin box *****/
|
||||||
|
@ -3138,13 +3143,15 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
|
||||||
|
|
||||||
/* Write the date (row[1] has the UTC date-time) */
|
/* Write the date (row[1] has the UTC date-time) */
|
||||||
TimeUTC = Dat_GetUNIXTimeFromStr (row[1]);
|
TimeUTC = Dat_GetUNIXTimeFromStr (row[1]);
|
||||||
HTM_TD_Begin ("id=\"tst_date_%u\" class=\"DAT_SMALL CT COLOR%u\">",
|
if (asprintf (&Id,"tst_date_%u",UniqueId) < 0)
|
||||||
UniqueId,Gbl.RowEvenOdd);
|
Lay_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'tst_date_%u',%ld,"
|
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\">",
|
||||||
"%u,'<br />','%s',true,false,0x7",
|
Id,Gbl.RowEvenOdd);
|
||||||
UniqueId,(long) TimeUTC,
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x7",
|
||||||
|
Id,(long) TimeUTC,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* Write the question tags */
|
/* Write the question tags */
|
||||||
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
|
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||||
|
@ -7685,6 +7692,7 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
|
||||||
unsigned NumExams;
|
unsigned NumExams;
|
||||||
unsigned NumTest;
|
unsigned NumTest;
|
||||||
static unsigned UniqueId = 0;
|
static unsigned UniqueId = 0;
|
||||||
|
char *Id;
|
||||||
long TstCod;
|
long TstCod;
|
||||||
unsigned NumQstsInThisTest;
|
unsigned NumQstsInThisTest;
|
||||||
unsigned NumQstsNotBlankInThisTest;
|
unsigned NumQstsNotBlankInThisTest;
|
||||||
|
@ -7772,13 +7780,15 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
|
||||||
/* Write date and time (row[2] holds UTC date-time) */
|
/* Write date and time (row[2] holds UTC date-time) */
|
||||||
TimeUTC = Dat_GetUNIXTimeFromStr (row[2]);
|
TimeUTC = Dat_GetUNIXTimeFromStr (row[2]);
|
||||||
UniqueId++;
|
UniqueId++;
|
||||||
HTM_TD_Begin ("id=\"tst_date_%u\" class=\"%s RT COLOR%u\"",
|
if (asprintf (&Id,"tst_date_%u",UniqueId) < 0)
|
||||||
UniqueId,ClassDat,Gbl.RowEvenOdd);
|
Lay_NotEnoughMemoryExit ();
|
||||||
Dat_WriteLocalDateHMSFromUTC ("'tst_date_%u',%ld,"
|
HTM_TD_Begin ("id=\"%s\" class=\"%s RT COLOR%u\"",
|
||||||
"%u,', ','%s',true,false,0x7",
|
Id,ClassDat,Gbl.RowEvenOdd);
|
||||||
UniqueId,(long) TimeUTC,
|
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x7",
|
||||||
|
Id,(long) TimeUTC,
|
||||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||||
HTM_TD_End ();
|
HTM_TD_End ();
|
||||||
|
free ((void *) Id);
|
||||||
|
|
||||||
/* Get number of questions (row[3]) */
|
/* Get number of questions (row[3]) */
|
||||||
if (sscanf (row[3],"%u",&NumQstsInThisTest) != 1)
|
if (sscanf (row[3],"%u",&NumQstsInThisTest) != 1)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user