mirror of https://github.com/acanas/swad-core.git
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;
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
struct AgendaEvent AgdEvent;
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
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++)
|
||||
{
|
||||
HTM_TD_Begin ("id=\"agd_date_%u_%u\" class=\"%s LB COLOR%u\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
if (asprintf (&Id,"agd_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"",
|
||||
Id,
|
||||
AgdEvent.Hidden ? Dat_TimeStatusClassHidden[AgdEvent.TimeStatus] :
|
||||
Dat_TimeStatusClassVisible[AgdEvent.TimeStatus],
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'agd_date_%u_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x6",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
AgdEvent.TimeUTC[StartEndTime],
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x6",
|
||||
Id,AgdEvent.TimeUTC[StartEndTime],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
}
|
||||
|
||||
/* Event */
|
||||
|
|
|
@ -25,8 +25,10 @@
|
|||
/********************************* Headers ***********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define _GNU_SOURCE // For asprintf
|
||||
#include <linux/limits.h> // For PATH_MAX
|
||||
#include <linux/stddef.h> // For NULL
|
||||
#include <stdio.h> // For asprintf
|
||||
#include <stdlib.h> // For calloc
|
||||
#include <string.h> // For string functions
|
||||
|
||||
|
@ -340,6 +342,7 @@ static void Asg_ShowOneAssignment (long AsgCod,bool PrintView)
|
|||
extern const char *Txt_Today;
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
struct Assignment Asg;
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
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++)
|
||||
{
|
||||
if (asprintf (&Id,"asg_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
if (PrintView)
|
||||
HTM_TD_Begin ("id=\"asg_date_%u_%u\" class=\"%s LB\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"",
|
||||
Id,
|
||||
Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Asg.Open ? "DATE_GREEN" :
|
||||
"DATE_RED"));
|
||||
else
|
||||
HTM_TD_Begin ("id=\"asg_date_%u_%u\" class=\"%s LB COLOR%u\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"",
|
||||
Id,
|
||||
Asg.Hidden ? (Asg.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Asg.Open ? "DATE_GREEN" :
|
||||
"DATE_RED"),
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'asg_date_%u_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
(unsigned) StartEndTime,UniqueId,Asg.TimeUTC[StartEndTime],
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Asg.TimeUTC[StartEndTime],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
}
|
||||
|
||||
/* Assignment title */
|
||||
|
|
|
@ -25,9 +25,11 @@
|
|||
/********************************** Headers **********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define _GNU_SOURCE // For asprintf
|
||||
#include <linux/limits.h> // For PATH_MAX
|
||||
#include <linux/stddef.h> // For NULL
|
||||
#include <mysql/mysql.h> // To access MySQL databases
|
||||
#include <stdio.h> // For asprintf
|
||||
#include <stdlib.h> // For calloc
|
||||
#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;
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
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++)
|
||||
{
|
||||
if (asprintf (&Id,"att_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
if (ShowOnlyThisAttEventComplete)
|
||||
HTM_TD_Begin ("id=\"att_date_%u_%u\" class=\"%s LB\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB\"",
|
||||
Id,
|
||||
Att->Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Att->Open ? "DATE_GREEN" :
|
||||
"DATE_RED"));
|
||||
else
|
||||
HTM_TD_Begin ("id=\"att_date_%u_%u\" class=\"%s LB COLOR%u\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LB COLOR%u\"",
|
||||
Id,
|
||||
Att->Hidden ? (Att->Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT") :
|
||||
(Att->Open ? "DATE_GREEN" :
|
||||
"DATE_RED"),
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'att_date_%u_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
(unsigned) StartEndTime,UniqueId,Att->TimeUTC[StartEndTime],
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Att->TimeUTC[StartEndTime],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
}
|
||||
|
||||
/* Attendance event title */
|
||||
|
@ -3072,6 +3077,7 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView)
|
|||
extern const char *Txt_Today;
|
||||
extern const char *Txt_Update_attendance;
|
||||
unsigned UniqueId;
|
||||
char *Id;
|
||||
unsigned NumAttEvent;
|
||||
bool NormalView = (TypeOfView == Att_NORMAL_VIEW_ONLY_ME ||
|
||||
TypeOfView == Att_NORMAL_VIEW_STUDENTS);
|
||||
|
@ -3131,16 +3137,18 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView)
|
|||
NumAttEvent,NumAttEvent + 1);
|
||||
HTM_TD_End ();
|
||||
|
||||
if (asprintf (&Id,"att_date_start_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
fprintf (Gbl.F.Out,"<label for=\"Att%u\">"
|
||||
"<span id=\"att_date_start_%u\"></span>"
|
||||
"<span id=\"%s\"></span>"
|
||||
"</label>",
|
||||
NumAttEvent,UniqueId);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'att_date_start_%u',%ld,"
|
||||
"%u,', ','%s',true,true,0x7",
|
||||
UniqueId,Gbl.AttEvents.Lst[NumAttEvent].TimeUTC[Att_START_TIME],
|
||||
NumAttEvent,Id);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||
Id,Gbl.AttEvents.Lst[NumAttEvent].TimeUTC[Att_START_TIME],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
HTM_TD_Begin ("class=\"DAT LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
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;
|
||||
unsigned NumAttEvent;
|
||||
unsigned UniqueId;
|
||||
char *Id;
|
||||
bool Present;
|
||||
bool ShowCommentStd;
|
||||
bool ShowCommentTch;
|
||||
|
@ -3574,17 +3583,19 @@ static void Att_ListAttEventsForAStd (unsigned NumUsr,struct UsrData *UsrDat)
|
|||
Att_PutCheckOrCross (Present);
|
||||
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);
|
||||
fprintf (Gbl.F.Out,"<span id=\"att_date_start_%u_%u\"></span>"
|
||||
fprintf (Gbl.F.Out,"<span id=\"%s\"></span>"
|
||||
"<br />%s",
|
||||
NumUsr,UniqueId,
|
||||
Id,
|
||||
Gbl.AttEvents.Lst[NumAttEvent].Title);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'att_date_start_%u_%u',%ld,"
|
||||
"%u,', ','%s',true,true,0x7",
|
||||
NumUsr,UniqueId,
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||
Id,
|
||||
Gbl.AttEvents.Lst[NumAttEvent].TimeUTC[Att_START_TIME],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
HTM_TR_End ();
|
||||
|
||||
|
|
|
@ -487,7 +487,7 @@ enscript -2 --landscape --color --file-align=2 --highlight --line-numbers -o - *
|
|||
En OpenSWAD:
|
||||
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 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: 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.49: Nov 01, 2019 Code refactoring in HTML scripts. (246052 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)
|
||||
{
|
||||
Dat_WriteLocalDateHMSFromUTC ("'date_format_%u',%ld,"
|
||||
"%u,'',null,true,false,0x0",
|
||||
(unsigned) Format,(long) Gbl.StartExecutionTimeUTC,
|
||||
char *Id;
|
||||
|
||||
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);
|
||||
free ((void *) Id);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -6388,6 +6388,7 @@ static void Brw_WriteDatesAssignment (void)
|
|||
extern const char *Txt_Today;
|
||||
extern const char *Txt_unknown_assignment;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
|
||||
HTM_TD_Begin ("colspan=\"2\" class=\"%s RM COLOR%u\"",
|
||||
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
|
||||
|
@ -6398,20 +6399,28 @@ static void Brw_WriteDatesAssignment (void)
|
|||
{
|
||||
UniqueId++;
|
||||
|
||||
/***** Write start and end dates *****/
|
||||
fprintf (Gbl.F.Out,"<span id=\"asg_start_date_%u\">",UniqueId);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'asg_start_date_%u',%ld,"
|
||||
"%u,', ','%s',true,false,0x7",
|
||||
UniqueId,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_START_TIME],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
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],
|
||||
/***** Write start date *****/
|
||||
if (asprintf (&Id,"asg_start_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
fprintf (Gbl.F.Out,"<span id=\"%s\">",Id);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x7",
|
||||
Id,(long) Gbl.FileBrowser.Asg.TimeUTC[Dat_START_TIME],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
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
|
||||
fprintf (Gbl.F.Out," (%s)",Txt_unknown_assignment);
|
||||
|
@ -6426,6 +6435,7 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
|
|||
{
|
||||
extern const char *Txt_Today;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1];
|
||||
|
||||
/***** Write the file size *****/
|
||||
|
@ -6446,11 +6456,13 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
|
|||
Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_LINK)
|
||||
{
|
||||
UniqueId++;
|
||||
fprintf (Gbl.F.Out,"<span id=\"filedate%u\"></span>",UniqueId);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'filedate%u',%ld,"
|
||||
"%u,', ','%s',true,false,0x6",
|
||||
UniqueId,(long) FileMetadata->Time,
|
||||
if (asprintf (&Id,"filedate%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
fprintf (Gbl.F.Out,"<span id=\"%s\"></span>",Id);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x6",
|
||||
Id,(long) FileMetadata->Time,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
free ((void *) Id);
|
||||
}
|
||||
HTM_TD_End ();
|
||||
}
|
||||
|
@ -9566,8 +9578,7 @@ void Brw_ShowFileMetadata (void)
|
|||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("id=\"filedate\" class=\"DAT LM\"");
|
||||
Dat_WriteLocalDateHMSFromUTC ("'filedate',%ld,"
|
||||
"%u,', ','%s',true,true,0x7",
|
||||
Dat_WriteLocalDateHMSFromUTC ("'filedate',%ld,%u,', ','%s',true,true,0x7",
|
||||
(long) FileMetadata.Time,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
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 NumThrInScreen; // From 0 to Pag_ITEMS_PER_PAGE-1
|
||||
unsigned UniqueId;
|
||||
char *Id;
|
||||
struct ForumThread Thr;
|
||||
struct UsrData UsrDat;
|
||||
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) */
|
||||
TimeUTC = Thr.WriteTime[Order];
|
||||
UniqueId++;
|
||||
HTM_TD_Begin ("id=\"thr_date_%u\" class=\"%s LT %s\"",
|
||||
UniqueId,Style,BgColor);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'thr_date_%u',%ld,"
|
||||
"%u,'<br />','%s',true,false,0x6",
|
||||
UniqueId,(long) TimeUTC,
|
||||
if (asprintf (&Id,"thr_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT %s\"",Id,Style,BgColor);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x6",
|
||||
Id,(long) TimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
}
|
||||
else
|
||||
for (Column = 1;
|
||||
|
|
24
swad_game.c
24
swad_game.c
|
@ -376,6 +376,7 @@ void Gam_ShowOneGame (long GamCod,
|
|||
extern const char *Txt_Matches;
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
struct Game Game;
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
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++)
|
||||
{
|
||||
if (asprintf (&Id,"gam_date_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
if (ShowOnlyThisGame)
|
||||
HTM_TD_Begin ("id=\"gam_date_%u_%u\" class=\"%s LT\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
Game.Hidden ? "DATE_GREEN_LIGHT":
|
||||
"DATE_GREEN");
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||
Id,Game.Hidden ? "DATE_GREEN_LIGHT":
|
||||
"DATE_GREEN");
|
||||
else
|
||||
HTM_TD_Begin ("id=\"gam_date_%u_%u\" class=\"%s LT COLOR%u\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
Game.Hidden ? "DATE_GREEN_LIGHT":
|
||||
"DATE_GREEN",
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,Game.Hidden ? "DATE_GREEN_LIGHT":
|
||||
"DATE_GREEN",
|
||||
Gbl.RowEvenOdd);
|
||||
if (Game.TimeUTC[Dat_START_TIME])
|
||||
Dat_WriteLocalDateHMSFromUTC ("'gam_date_%u_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
Game.TimeUTC[StartEndTime],
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Game.TimeUTC[StartEndTime],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
}
|
||||
|
||||
/***** 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_Vacants;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
Rol_Role_t Role;
|
||||
|
||||
/***** Name of group type *****/
|
||||
|
@ -2337,14 +2338,16 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
|
|||
if (GrpTyp->MustBeOpened)
|
||||
{
|
||||
UniqueId++;
|
||||
if (asprintf (&Id,"open_time_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
fprintf (Gbl.F.Out,"<br />%s: "
|
||||
"<span id=\"open_time_%u\"></span>",
|
||||
"<span id=\"%s\"></span>",
|
||||
Txt_Opening_of_groups,
|
||||
UniqueId);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'open_time_%u',%ld,"
|
||||
"%u,', ','%s',true,true,0x7",
|
||||
UniqueId,(long) GrpTyp->OpenTimeUTC,
|
||||
Id);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||
Id,(long) GrpTyp->OpenTimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
free ((void *) Id);
|
||||
}
|
||||
HTM_TD_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;
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
char *Id;
|
||||
|
||||
for (StartEndTime = (Dat_StartEndTime_t) 0;
|
||||
StartEndTime <= (Dat_StartEndTime_t) (Dat_NUM_START_END_TIME - 1);
|
||||
StartEndTime++)
|
||||
{
|
||||
HTM_TD_Begin ("id=\"mch_time_%u_%u\" class=\"%s LT COLOR%u\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
if (asprintf (&Id,"mch_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,
|
||||
Match->Status.QstInd >= Mch_AFTER_LAST_QUESTION ? "DATE_RED" :
|
||||
"DATE_GREEN",
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'mch_time_%u_%u',"
|
||||
"%ld,%u,'<br />','%s',true,true,0x7",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
Match->TimeUTC[StartEndTime],
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Match->TimeUTC[StartEndTime],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -363,6 +363,7 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther)
|
|||
unsigned NumResults;
|
||||
unsigned NumResult;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
struct Match Match;
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
unsigned NumQstsInThisResult;
|
||||
|
@ -431,15 +432,15 @@ static void McR_ShowMchResults (Usr_MeOrOther_t MeOrOther)
|
|||
{
|
||||
TimeUTC[StartEndTime] = Dat_GetUNIXTimeFromStr (row[1 + StartEndTime]);
|
||||
UniqueId++;
|
||||
HTM_TD_Begin ("id =\"mch_time_%u_%u\" class=\"DAT LT COLOR%u\"",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'mch_time_%u_%u',"
|
||||
"%ld,%u,'<br />','%s',true,false,0x7",
|
||||
(unsigned) StartEndTime,UniqueId,
|
||||
(long) TimeUTC[StartEndTime],
|
||||
if (asprintf (&Id,"mch_time_%u_%u",(unsigned) StartEndTime,UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id =\"%s\" class=\"DAT LT COLOR%u\"",
|
||||
Id,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x7",
|
||||
Id,(long) TimeUTC[StartEndTime],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
}
|
||||
|
||||
/* Write match title */
|
||||
|
@ -633,6 +634,7 @@ void McR_ShowOneMchResult (void)
|
|||
struct UsrData *UsrDat;
|
||||
time_t TimeUTC[Dat_NUM_START_END_TIME]; // Match result UTC date-time
|
||||
Dat_StartEndTime_t StartEndTime;
|
||||
char *Id;
|
||||
unsigned NumQsts;
|
||||
unsigned NumQstsNotBlank;
|
||||
double TotalScore;
|
||||
|
@ -787,13 +789,14 @@ void McR_ShowOneMchResult (void)
|
|||
fprintf (Gbl.F.Out,"%s:",Txt_START_END_TIME[StartEndTime]);
|
||||
HTM_TD_End ();
|
||||
|
||||
HTM_TD_Begin ("id=\"match_%u\" class=\"DAT LT\"",(unsigned) StartEndTime);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'match_%u',%ld,"
|
||||
"%u,', ','%s',true,true,0x7",
|
||||
(unsigned) StartEndTime,
|
||||
TimeUTC[StartEndTime],
|
||||
if (asprintf (&Id,"match_%u",(unsigned) StartEndTime) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"DAT LT\"",Id);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,true,0x7",
|
||||
Id,TimeUTC[StartEndTime],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
HTM_TR_End ();
|
||||
}
|
||||
|
|
|
@ -3612,21 +3612,25 @@ void Msg_WriteMsgDate (time_t TimeUTC,const char *ClassBackground)
|
|||
{
|
||||
extern const char *Txt_Today;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
|
||||
UniqueId++;
|
||||
if (asprintf (&Id,"msg_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
|
||||
/***** Start cell *****/
|
||||
HTM_TD_Begin ("id=\"msg_date_%u\" class=\"%s RT\" style=\"width:106px;\"",
|
||||
UniqueId,ClassBackground);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s RT\" style=\"width:106px;\"",
|
||||
Id,ClassBackground);
|
||||
|
||||
/***** Write date and time *****/
|
||||
Dat_WriteLocalDateHMSFromUTC ("'msg_date_%u',%ld,"
|
||||
"%u,', ','%s',true,false,0x6",
|
||||
UniqueId,(long) TimeUTC,
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x6",
|
||||
Id,(long) TimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
|
||||
/***** End cell *****/
|
||||
HTM_TD_End ();
|
||||
|
||||
free ((void *) Id);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -640,6 +640,7 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
|
|||
"NOTICE_AUTHOR_OBSOLETE", // Not_OBSOLETE_NOTICE
|
||||
};
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
struct UsrData UsrDat;
|
||||
char *Anchor = NULL;
|
||||
|
||||
|
@ -691,17 +692,18 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
|
|||
Not_PutHiddenParamNotCod (NotCod);
|
||||
Frm_LinkFormSubmit (Txt_See_full_notice,DateClass[Status],NULL);
|
||||
}
|
||||
fprintf (Gbl.F.Out,"<span id=\"not_date_%u\"></span>",
|
||||
UniqueId);
|
||||
if (asprintf (&Id,"not_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
fprintf (Gbl.F.Out,"<span id=\"%s\"></span>",Id);
|
||||
if (TypeNoticesListing == Not_LIST_BRIEF_NOTICES)
|
||||
{
|
||||
Frm_LinkFormEnd ();
|
||||
Frm_EndForm ();
|
||||
}
|
||||
Dat_WriteLocalDateHMSFromUTC ("'not_date_%u',%ld,"
|
||||
"%u,'<br />','%s',true,false,0x6",
|
||||
UniqueId,(long) TimeUTC,
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x6",
|
||||
Id,(long) TimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
free ((void *) Id);
|
||||
HTM_DIV_End ();
|
||||
|
||||
/***** Write the content of the notice *****/
|
||||
|
|
|
@ -501,8 +501,7 @@ static void Prf_ShowTimeSinceFirstClick (const struct UsrData *UsrDat,
|
|||
}
|
||||
fprintf (Gbl.F.Out,")");
|
||||
}
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,"
|
||||
"%u,', ','%s',true,false,0x6",
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x6",
|
||||
IdFirstClickTime,(long) UsrFigures->FirstClickTimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
}
|
||||
|
|
|
@ -1046,6 +1046,7 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
|||
struct Prj_Faults Faults;
|
||||
bool PrjIsFaulty;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
|
||||
/***** Set CSS classes *****/
|
||||
ClassLabel = (Prj->Hidden == Prj_HIDDEN) ? "ASG_LABEL_LIGHT" :
|
||||
|
@ -1105,41 +1106,45 @@ static void Prj_ShowOneProject (unsigned NumIndex,struct Project *Prj,
|
|||
|
||||
/* Creation date/time */
|
||||
UniqueId++;
|
||||
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
switch (ProjectView)
|
||||
{
|
||||
case Prj_LIST_PROJECTS:
|
||||
HTM_TD_Begin ("id=\"prj_creat_%u\" class=\"%s LT COLOR%u\"",
|
||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,ClassDate,Gbl.RowEvenOdd);
|
||||
break;
|
||||
default:
|
||||
HTM_TD_Begin ("id=\"prj_creat_%u\" class=\"%s LT\"",
|
||||
UniqueId,ClassDate);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||
Id,ClassDate);
|
||||
break;
|
||||
}
|
||||
Dat_WriteLocalDateHMSFromUTC ("'prj_creat_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
UniqueId,Prj->CreatTime,
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Prj->CreatTime,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* Modification date/time */
|
||||
UniqueId++;
|
||||
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
switch (ProjectView)
|
||||
{
|
||||
case Prj_LIST_PROJECTS:
|
||||
HTM_TD_Begin ("id=\"prj_modif_%u\" class=\"%s LT COLOR%u\"",
|
||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,ClassDate,Gbl.RowEvenOdd);
|
||||
break;
|
||||
default:
|
||||
HTM_TD_Begin ("id=\"prj_modif_%u\" class=\"%s LT\"",
|
||||
UniqueId,ClassDate);
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||
Id,ClassDate);
|
||||
break;
|
||||
}
|
||||
Dat_WriteLocalDateHMSFromUTC ("'prj_modif_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
UniqueId,Prj->ModifTime,
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Prj->ModifTime,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* Project title */
|
||||
switch (ProjectView)
|
||||
|
@ -1474,6 +1479,7 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
|||
const char *ClassDate;
|
||||
const char *ClassData;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
|
||||
/***** Get data of this project *****/
|
||||
Prj_GetDataOfProjectByCod (Prj);
|
||||
|
@ -1489,23 +1495,27 @@ static void Prj_ShowTableAllProjectsOneRow (struct Project *Prj)
|
|||
|
||||
/***** Start date/time *****/
|
||||
UniqueId++;
|
||||
HTM_TD_Begin ("id=\"prj_creat_%u\" class=\"LT %s COLOR%u\"",
|
||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'prj_creat_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
UniqueId,Prj->CreatTime,
|
||||
if (asprintf (&Id,"prj_creat_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"",
|
||||
Id,ClassDate,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Prj->CreatTime,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/***** End date/time *****/
|
||||
UniqueId++;
|
||||
HTM_TD_Begin ("id=\"prj_modif_%u\" class=\"LT %s COLOR%u\"",
|
||||
UniqueId,ClassDate,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'prj_modif_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
UniqueId,Prj->ModifTime,
|
||||
if (asprintf (&Id,"prj_modif_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"LT %s COLOR%u\"",
|
||||
Id,ClassDate,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Prj->ModifTime,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/***** Project title *****/
|
||||
HTM_TD_Begin ("class=\"LT %s COLOR%u\"",
|
||||
|
|
|
@ -1547,6 +1547,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
|
|||
long LogCod;
|
||||
Rol_Role_t RoleFromLog;
|
||||
unsigned UniqueId;
|
||||
char *Id;
|
||||
long ActCod;
|
||||
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 ();
|
||||
|
||||
/* Write the date-time (row[3]) */
|
||||
HTM_TD_Begin ("id=\"log_date_%u\" class=\"LOG RT COLOR%u\"",
|
||||
UniqueId,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'log_date_%u',%ld,"
|
||||
"%u,', ','%s',true,false,0x7",
|
||||
UniqueId,(long) Dat_GetUNIXTimeFromStr (row[3]),
|
||||
if (asprintf (&Id,"log_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"LOG RT COLOR%u\"",Id,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x7",
|
||||
Id,(long) Dat_GetUNIXTimeFromStr (row[3]),
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* Write the action */
|
||||
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;
|
||||
char *Anchor = NULL;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
struct Survey Svy;
|
||||
char Txt[Cns_MAX_BYTES_TEXT + 1];
|
||||
|
||||
|
@ -470,48 +471,52 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
|
|||
|
||||
/* Start date/time */
|
||||
UniqueId++;
|
||||
if (asprintf (&Id,"svy_date_start_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
if (ShowOnlyThisSvyComplete)
|
||||
HTM_TD_Begin ("id=\"svy_date_start_%u\" class=\"%s LT\"",
|
||||
UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||
Id,
|
||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||
"DATE_RED") :
|
||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT"));
|
||||
else
|
||||
HTM_TD_Begin ("id=\"svy_date_start_%u\" class=\"%s LT COLOR%u\"",
|
||||
UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,
|
||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||
"DATE_RED") :
|
||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT"),
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'svy_date_start_%u',%ld,"
|
||||
"%u,'<br />','%s',true,true,0x7",
|
||||
UniqueId,Svy.TimeUTC[Svy_START_TIME],
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,true,0x7",
|
||||
Id,Svy.TimeUTC[Svy_START_TIME],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* End date/time */
|
||||
if (asprintf (&Id,"svy_date_end_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
if (ShowOnlyThisSvyComplete)
|
||||
HTM_TD_Begin ("id=\"svy_date_end_%u\" class=\"%s LT\"",
|
||||
UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT\"",
|
||||
Id,
|
||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||
"DATE_RED") :
|
||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT"));
|
||||
else
|
||||
HTM_TD_Begin ("id=\"svy_date_end_%u\" class=\"%s LT COLOR%u\"",
|
||||
UniqueId,
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s LT COLOR%u\"",
|
||||
Id,
|
||||
Svy.Status.Visible ? (Svy.Status.Open ? "DATE_GREEN" :
|
||||
"DATE_RED") :
|
||||
(Svy.Status.Open ? "DATE_GREEN_LIGHT" :
|
||||
"DATE_RED_LIGHT"),
|
||||
Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'svy_date_end_%u',%ld,"
|
||||
"%u,'<br />','%s',false,true,0x7",
|
||||
UniqueId,Svy.TimeUTC[Svy_END_TIME],
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',false,true,0x7",
|
||||
Id,Svy.TimeUTC[Svy_END_TIME],
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* Survey title */
|
||||
if (ShowOnlyThisSvyComplete)
|
||||
|
|
42
swad_test.c
42
swad_test.c
|
@ -25,12 +25,13 @@
|
|||
/*********************************** Headers *********************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define _GNU_SOURCE // For asprintf
|
||||
#include <limits.h> // For UINT_MAX
|
||||
#include <linux/limits.h> // For PATH_MAX
|
||||
#include <linux/stddef.h> // For NULL
|
||||
#include <mysql/mysql.h> // To access MySQL databases
|
||||
#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 <string.h> // For string functions
|
||||
#include <sys/stat.h> // For mkdir
|
||||
|
@ -2806,6 +2807,7 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
|
|||
unsigned long NumRow;
|
||||
MYSQL_ROW row;
|
||||
unsigned UniqueId;
|
||||
char *Id;
|
||||
time_t TimeUTC;
|
||||
unsigned long NumHitsThisQst;
|
||||
unsigned long NumHitsNotBlankThisQst;
|
||||
|
@ -2929,13 +2931,15 @@ static void Tst_ListOneOrMoreQuestionsForEdition (unsigned long NumRows,
|
|||
|
||||
/* Write the date (row[1] has the UTC date-time) */
|
||||
TimeUTC = Dat_GetUNIXTimeFromStr (row[1]);
|
||||
HTM_TD_Begin ("id=\"tst_date_%u\" class=\"DAT_SMALL CT COLOR%u\"",
|
||||
UniqueId,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'tst_date_%u',%ld,"
|
||||
"%u,'<br />','%s',true,false,0x7",
|
||||
UniqueId,(long) TimeUTC,
|
||||
if (asprintf (&Id,"tst_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\"",
|
||||
Id,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x7",
|
||||
Id,(long) TimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* Write the question tags */
|
||||
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
|
@ -3063,6 +3067,7 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
|
|||
unsigned long NumRow;
|
||||
MYSQL_ROW row;
|
||||
unsigned UniqueId;
|
||||
char *Id;
|
||||
time_t TimeUTC;
|
||||
|
||||
/***** Begin box *****/
|
||||
|
@ -3138,13 +3143,15 @@ static void Tst_ListOneOrMoreQuestionsForSelection (unsigned long NumRows,
|
|||
|
||||
/* Write the date (row[1] has the UTC date-time) */
|
||||
TimeUTC = Dat_GetUNIXTimeFromStr (row[1]);
|
||||
HTM_TD_Begin ("id=\"tst_date_%u\" class=\"DAT_SMALL CT COLOR%u\">",
|
||||
UniqueId,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'tst_date_%u',%ld,"
|
||||
"%u,'<br />','%s',true,false,0x7",
|
||||
UniqueId,(long) TimeUTC,
|
||||
if (asprintf (&Id,"tst_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"DAT_SMALL CT COLOR%u\">",
|
||||
Id,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,'<br />','%s',true,false,0x7",
|
||||
Id,(long) TimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* Write the question tags */
|
||||
HTM_TD_Begin ("class=\"LT COLOR%u\"",Gbl.RowEvenOdd);
|
||||
|
@ -7685,6 +7692,7 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
|
|||
unsigned NumExams;
|
||||
unsigned NumTest;
|
||||
static unsigned UniqueId = 0;
|
||||
char *Id;
|
||||
long TstCod;
|
||||
unsigned NumQstsInThisTest;
|
||||
unsigned NumQstsNotBlankInThisTest;
|
||||
|
@ -7772,13 +7780,15 @@ static void Tst_ShowTstResults (struct UsrData *UsrDat)
|
|||
/* Write date and time (row[2] holds UTC date-time) */
|
||||
TimeUTC = Dat_GetUNIXTimeFromStr (row[2]);
|
||||
UniqueId++;
|
||||
HTM_TD_Begin ("id=\"tst_date_%u\" class=\"%s RT COLOR%u\"",
|
||||
UniqueId,ClassDat,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'tst_date_%u',%ld,"
|
||||
"%u,', ','%s',true,false,0x7",
|
||||
UniqueId,(long) TimeUTC,
|
||||
if (asprintf (&Id,"tst_date_%u",UniqueId) < 0)
|
||||
Lay_NotEnoughMemoryExit ();
|
||||
HTM_TD_Begin ("id=\"%s\" class=\"%s RT COLOR%u\"",
|
||||
Id,ClassDat,Gbl.RowEvenOdd);
|
||||
Dat_WriteLocalDateHMSFromUTC ("'%s',%ld,%u,', ','%s',true,false,0x7",
|
||||
Id,(long) TimeUTC,
|
||||
(unsigned) Gbl.Prefs.DateFormat,Txt_Today);
|
||||
HTM_TD_End ();
|
||||
free ((void *) Id);
|
||||
|
||||
/* Get number of questions (row[3]) */
|
||||
if (sscanf (row[3],"%u",&NumQstsInThisTest) != 1)
|
||||
|
|
Loading…
Reference in New Issue