diff --git a/js/swad16.90.2.js b/js/swad16.98.js
similarity index 96%
rename from js/swad16.90.2.js
rename to js/swad16.98.js
index 560f03dc8..0cc0df4cf 100644
--- a/js/swad16.90.2.js
+++ b/js/swad16.98.js
@@ -72,19 +72,21 @@ function writeLocalDateFromUTC (id,TimeUTC,StrToday) {
// TimeUTC is the date-time to write in UTC UNIX time format
// separator is HTML code to write between date and time
-function writeLocalDateHMSFromUTC (id,TimeUTC,separator,StrToday) {
+function writeLocalDateHMSFromUTC (id,TimeUTC,Separator,StrToday,OmitDateOnSameDay,OmitSeconds) {
// HMS: Hour, Minutes, Seconds
var today = new Date();
var todayYea = today.getFullYear();
var todayMon = today.getMonth()+1;
var todayDay = today.getDate();
var d = new Date();
+ var WriteDate;
var Yea;
var Mon;
var Day;
var Hou;
var Min;
var Sec;
+ var StrDate;
var StrMon;
var StrDay;
var StrHou;
@@ -95,64 +97,50 @@ function writeLocalDateHMSFromUTC (id,TimeUTC,separator,StrToday) {
Yea = d.getFullYear();
Mon = d.getMonth() + 1;
Day = d.getDate();
+
+ if (OmitDateOnSameDay)
+ WriteDate = (Yea != writeLocalDateHMSFromUTC.lastd.getFullYear() ||
+ Mon != writeLocalDateHMSFromUTC.lastd.getMonth() + 1 ||
+ Day != writeLocalDateHMSFromUTC.lastd.getDate())
+ else
+ WriteDate = true;
+
+ writeLocalDateHMSFromUTC.lastd = d; // Remember current date for the next call
+
+ /* Set date */
+ if (WriteDate) {
+ StrMon = ((Mon < 10) ? '-0' : '-') + Mon;
+ StrDay = ((Day < 10) ? '-0' : '-') + Day;
+
+ if (Yea == todayYea &&
+ Mon == todayMon &&
+ Day == todayDay && // Today
+ StrToday.length)
+ StrDate = StrToday;
+ else
+ StrDate = Yea.toString() + StrMon + StrDay;
+ }
+ else
+ StrDate = '';
+
+ /* Set time */
Hou = d.getHours();
Min = d.getMinutes();
- Sec = d.getSeconds();
- StrMon = ((Mon < 10) ? '-0' : '-') + Mon;
- StrDay = ((Day < 10) ? '-0' : '-') + Day;
- StrHou = ((Hou < 10) ? '0' : '') + Hou;
+ StrHou = ((Hou < 10) ? '0' : '') + Hou;
StrMin = ((Min < 10) ? ':0' : ':') + Min;
- if (Sec)
- StrSec = ((Sec < 10) ? ':0' : ':') + Sec;
- else
+ if (OmitSeconds)
StrSec = '';
- if (Yea == todayYea && Mon == todayMon && Day == todayDay && // Today
- StrToday.length)
- document.getElementById(id).innerHTML = StrToday +
- separator +
- StrHou + StrMin + StrSec;
- else
- document.getElementById(id).innerHTML = Yea + StrMon + StrDay +
- separator +
- StrHou + StrMin + StrSec;
-}
+ else {
+ Sec = d.getSeconds();
+ if (Sec)
+ StrSec = ((Sec < 10) ? ':0' : ':') + Sec;
+ else
+ StrSec = '';
+ }
-function writeLocalDateHMFromUTC (id,TimeUTC,separator,StrToday) {
- // HM: Hour, Minutes
- var today = new Date();
- var todayYea = today.getFullYear();
- var todayMon = today.getMonth()+1;
- var todayDay = today.getDate();
- var d = new Date();
- var Yea;
- var Mon;
- var Day;
- var Hou;
- var Min;
- var StrMon;
- var StrDay;
- var StrHou;
- var StrMin;
-
- d.setTime(TimeUTC * 1000);
- Yea = d.getFullYear();
- Mon = d.getMonth() + 1;
- Day = d.getDate();
- Hou = d.getHours();
- Min = d.getMinutes();
- StrMon = ((Mon < 10) ? '0' : '') + Mon;
- StrDay = ((Day < 10) ? '0' : '') + Day;
- StrHou = ((Hou < 10) ? '0' : '') + Hou;
- StrMin = ((Min < 10) ? '0' : '') + Min;
- if (Yea == todayYea && Mon == todayMon && Day == todayDay && // Today
- StrToday.length)
- document.getElementById(id).innerHTML = StrToday +
- separator +
- StrHou + ':' + StrMin;
- else
- document.getElementById(id).innerHTML = Yea + '-' + StrMon + '-' + StrDay +
- separator +
- StrHou + ':' + StrMin;
+ /* Write date and time */
+ document.getElementById(id).innerHTML = StrDate + Separator +
+ StrHou + StrMin + StrSec;
}
// Set local date-time form fields from UTC time
diff --git a/swad_agenda.c b/swad_agenda.c
index 994b227d3..47f1305b7 100644
--- a/swad_agenda.c
+++ b/swad_agenda.c
@@ -606,7 +606,7 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
fprintf (Gbl.F.Out,"
"
""
""
" | ",
UniqueId,
@@ -619,14 +619,16 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
UniqueId++;
fprintf (Gbl.F.Out,""
""
" | ",
UniqueId,
AgdEvent.Hidden ? Dat_TimeStatusClassHidden[AgdEvent.TimeStatus] :
Dat_TimeStatusClassVisible[AgdEvent.TimeStatus],
Gbl.RowEvenOdd,
- UniqueId,AgdEvent.TimeUTC[Agd_END_TIME],Txt_Today);
+ UniqueId,AgdEvent.TimeUTC[Agd_END_TIME],
+
+ Txt_Today);
/* Event */
fprintf (Gbl.F.Out,""
@@ -637,7 +639,7 @@ static void Agd_ShowOneEvent (Agd_AgendaType_t AgendaType,long AgdCod)
"ASG_TITLE",
AgdEvent.Event);
- /* Event */
+ /* Location */
fprintf (Gbl.F.Out," | "
" %s "
" | "
diff --git a/swad_assignment.c b/swad_assignment.c
index ef4a66729..8bf27220e 100644
--- a/swad_assignment.c
+++ b/swad_assignment.c
@@ -316,7 +316,7 @@ static void Asg_ShowOneAssignment (long AsgCod)
fprintf (Gbl.F.Out,"
"
""
""
" | ",
UniqueId,
@@ -331,7 +331,7 @@ static void Asg_ShowOneAssignment (long AsgCod)
UniqueId++;
fprintf (Gbl.F.Out,""
""
" | ",
UniqueId,
diff --git a/swad_attendance.c b/swad_attendance.c
index 4436f88f2..b415468aa 100644
--- a/swad_attendance.c
+++ b/swad_attendance.c
@@ -372,7 +372,7 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"\">"
""
"",
UniqueId,Att->TimeUTC[Att_START_TIME],Txt_Today);
@@ -388,7 +388,7 @@ static void Att_ShowOneAttEvent (struct AttendanceEvent *Att,bool ShowOnlyThisAt
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"\">"
""
"",
UniqueId,Att->TimeUTC[Att_END_TIME],Txt_Today);
@@ -3107,7 +3107,7 @@ static void Att_ListEventsToSelect (Att_TypeOfView_t TypeOfView)
""
" %s"
""
" | "
""
@@ -3515,7 +3515,7 @@ static void Att_ListAttEventsForAStd (unsigned NumStd,struct UsrData *UsrDat)
" alt=\"%s\" title=\"%s\" class=\"ICO20x20\" />"
" %s"
""
" | "
"
",
diff --git a/swad_changelog.h b/swad_changelog.h
index 7439e65bf..1ebb259c2 100644
--- a/swad_changelog.h
+++ b/swad_changelog.h
@@ -185,13 +185,15 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
-#define Log_PLATFORM_VERSION "SWAD 16.97.1 (2016-12-12)"
+#define Log_PLATFORM_VERSION "SWAD 16.98 (2016-12-12)"
#define CSS_FILE "swad16.97.css"
-#define JS_FILE "swad16.90.2.js"
+#define JS_FILE "swad16.98.js"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*?.h sql/swad*.sql | tail -1
/*
+ Version 16.98: Dec 12, 2016 Changes in help about homework.
+ Changes in script to write local date and time. (210739 lines)
Version 16.97.1: Dec 12, 2016 Changes in translation about announcements of exams. (210748 lines)
Version 16.97: Dec 12, 2016 Exam announcements can be hidden. (210739 lines)
2 changes necessary in database:
diff --git a/swad_file_browser.c b/swad_file_browser.c
index 49dc48a8d..75515b69e 100644
--- a/swad_file_browser.c
+++ b/swad_file_browser.c
@@ -3042,6 +3042,7 @@ static bool Brw_CheckIfQuotaExceded (void)
void Brw_AskEditWorksCrs (void)
{
+ extern const char *Hlp_ASSESSMENT_Homework_for_teachers;
extern const char *Txt_Users;
extern const char *Txt_View_homework;
unsigned NumTotalUsrs;
@@ -3064,7 +3065,8 @@ void Brw_AskEditWorksCrs (void)
Gbl.Usrs.LstUsrs[Rol_STUDENT].NumUsrs;
/***** Draw class photos to select users *****/
- Lay_StartRoundFrame (NULL,Txt_Users,NULL,NULL);
+ Lay_StartRoundFrame (NULL,Txt_Users,
+ NULL,Hlp_ASSESSMENT_Homework_for_teachers);
/***** Show form to select the groups *****/
Grp_ShowFormToSelectSeveralGroups (ActReqAsgWrkCrs);
@@ -3130,7 +3132,7 @@ static void Brw_ShowFileBrowserNormal (void)
static void Brw_ShowFileBrowsersAsgWrkCrs (void)
{
- extern const char *Hlp_ASSESSMENT_Works;
+ extern const char *Hlp_ASSESSMENT_Homework_for_teachers;
extern const char *Txt_Assignments_and_other_works;
extern const char *Txt_You_must_select_one_ore_more_users;
const char *Ptr;
@@ -3147,7 +3149,7 @@ static void Brw_ShowFileBrowsersAsgWrkCrs (void)
/***** Header of the table with the list of users *****/
Lay_StartRoundFrameTable ("100%",Txt_Assignments_and_other_works,
- Brw_PutIconShowFigure,Hlp_ASSESSMENT_Works,0);
+ Brw_PutIconShowFigure,Hlp_ASSESSMENT_Homework_for_teachers,0);
/***** List the assignments and works of the selected users *****/
Ptr = Gbl.Usrs.Select.All;
@@ -3455,7 +3457,8 @@ static void Brw_ShowFileBrowser (void)
extern const char *Hlp_COURSE_Documents;
extern const char *Hlp_COURSE_Private;
extern const char *Hlp_COURSE_Shared;
- extern const char *Hlp_ASSESSMENT_Works;
+ extern const char *Hlp_ASSESSMENT_Homework_for_students;
+ extern const char *Hlp_ASSESSMENT_Homework_for_teachers;
extern const char *Hlp_ASSESSMENT_Marks;
extern const char *Hlp_PROFILE_Briefcase;
@@ -3511,16 +3514,16 @@ static void Brw_ShowFileBrowser (void)
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_CRS] = Hlp_COURSE_Documents; // Brw_ADMI_DOCUM_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_SHARE_CRS] = Hlp_COURSE_Shared; // Brw_ADMI_SHARE_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_SHARE_GRP] = Hlp_COURSE_Shared; // Brw_ADMI_SHARE_GRP
- Brw_HelpOfFileBrowser[Brw_ADMI_WORKS_USR] = Hlp_ASSESSMENT_Works; // Brw_ADMI_WORKS_USR
- Brw_HelpOfFileBrowser[Brw_ADMI_WORKS_CRS] = NULL; // Brw_ADMI_WORKS_CRS
+ Brw_HelpOfFileBrowser[Brw_ADMI_WORKS_USR] = Hlp_ASSESSMENT_Homework_for_students; // Brw_ADMI_WORKS_USR
+ Brw_HelpOfFileBrowser[Brw_ADMI_WORKS_CRS] = Hlp_ASSESSMENT_Homework_for_teachers; // Brw_ADMI_WORKS_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_MARKS_CRS] = Hlp_ASSESSMENT_Marks; // Brw_ADMI_MARKS_CRS
Brw_HelpOfFileBrowser[Brw_ADMI_BRIEF_USR] = Hlp_PROFILE_Briefcase; // Brw_ADMI_BRIEF_USR
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_GRP] = Hlp_COURSE_Documents; // Brw_SHOW_DOCUM_GRP
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_GRP] = Hlp_COURSE_Documents; // Brw_ADMI_DOCUM_GRP
Brw_HelpOfFileBrowser[Brw_SHOW_MARKS_GRP] = Hlp_ASSESSMENT_Marks; // Brw_SHOW_MARKS_GRP
Brw_HelpOfFileBrowser[Brw_ADMI_MARKS_GRP] = Hlp_ASSESSMENT_Marks; // Brw_ADMI_MARKS_GRP
- Brw_HelpOfFileBrowser[Brw_ADMI_ASSIG_USR] = Hlp_ASSESSMENT_Works; // Brw_ADMI_ASSIG_USR
- Brw_HelpOfFileBrowser[Brw_ADMI_ASSIG_CRS] = NULL; // Brw_ADMI_ASSIG_CRS
+ Brw_HelpOfFileBrowser[Brw_ADMI_ASSIG_USR] = Hlp_ASSESSMENT_Homework_for_students; // Brw_ADMI_ASSIG_USR
+ Brw_HelpOfFileBrowser[Brw_ADMI_ASSIG_CRS] = Hlp_ASSESSMENT_Homework_for_teachers; // Brw_ADMI_ASSIG_CRS
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_DEG] = Hlp_DEGREE_Documents; // Brw_SHOW_DOCUM_DEG
Brw_HelpOfFileBrowser[Brw_ADMI_DOCUM_DEG] = Hlp_DEGREE_Documents; // Brw_ADMI_DOCUM_DEG
Brw_HelpOfFileBrowser[Brw_SHOW_DOCUM_CTR] = Hlp_CENTRE_Documents; // Brw_SHOW_DOCUM_CTR
@@ -6148,7 +6151,7 @@ static void Brw_WriteDatesAssignment (void)
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
"ASG_LST_DATE_RED");
fprintf (Gbl.F.Out,"",
UniqueId,
(long) Gbl.FileBrowser.Asg.TimeUTC[Asg_START_TIME],Txt_Today);
@@ -6168,7 +6171,7 @@ static void Brw_WriteDatesAssignment (void)
Gbl.FileBrowser.Asg.Open ? "ASG_LST_DATE_GREEN" :
"ASG_LST_DATE_RED");
fprintf (Gbl.F.Out,"",
UniqueId,
(long) Gbl.FileBrowser.Asg.TimeUTC[Asg_END_TIME],Txt_Today);
@@ -6211,7 +6214,7 @@ static void Brw_WriteFileSizeAndDate (struct FileMetadata *FileMetadata)
UniqueId++;
fprintf (Gbl.F.Out,""
"",
UniqueId,
UniqueId,(long) FileMetadata->Time,Txt_Today);
@@ -9375,7 +9378,7 @@ void Brw_ShowFileMetadata (void)
""
""
""
" | "
"",
diff --git a/swad_forum.c b/swad_forum.c
index dacc68a2c..d42c4cfb7 100644
--- a/swad_forum.c
+++ b/swad_forum.c
@@ -3481,7 +3481,7 @@ void For_ListForumThrs (long ThrCods[Pag_ITEMS_PER_PAGE],struct Pagination *Pagi
UniqueId++;
fprintf (Gbl.F.Out,""
""
" | ",
UniqueId,Style,BgColor,
diff --git a/swad_group.c b/swad_group.c
index 38b533525..5866246ed 100644
--- a/swad_group.c
+++ b/swad_group.c
@@ -1951,7 +1951,7 @@ static void Grp_WriteGrpHead (struct GroupType *GrpTyp)
fprintf (Gbl.F.Out,"
%s: "
""
"",
Txt_Opening_of_groups,
UniqueId,
diff --git a/swad_help.c b/swad_help.c
index 9a6581b19..195c5b9db 100644
--- a/swad_help.c
+++ b/swad_help.c
@@ -116,7 +116,8 @@ const char *Hlp_ASSESSMENT_Assignments = WIKI "ASSESSMENT.Assign
const char *Hlp_ASSESSMENT_Assignments_new_assignment = WIKI "ASSESSMENT.Assignments#new-assignment";
const char *Hlp_ASSESSMENT_Assignments_edit_assignment = WIKI "ASSESSMENT.Assignments#edit-assignment";
-const char *Hlp_ASSESSMENT_Works = WIKI "ASSESSMENT.Works";
+const char *Hlp_ASSESSMENT_Homework_for_students = WIKI "ASSESSMENT.Homework#for-students";
+const char *Hlp_ASSESSMENT_Homework_for_teachers = WIKI "ASSESSMENT.Homework#for-teachers";
const char *Hlp_ASSESSMENT_Tests = WIKI "ASSESSMENT.Tests";
const char *Hlp_ASSESSMENT_Tests_test_results = WIKI "ASSESSMENT.Tests#test-results";
diff --git a/swad_message.c b/swad_message.c
index e7153fd07..326c5a4ea 100644
--- a/swad_message.c
+++ b/swad_message.c
@@ -3510,7 +3510,7 @@ void Msg_WriteMsgDate (time_t TimeUTC,const char *ClassBackground)
/***** Write date and time *****/
fprintf (Gbl.F.Out,"",
UniqueId,(long) TimeUTC,Txt_Today);
diff --git a/swad_notice.c b/swad_notice.c
index 7161e0cda..d4142cf42 100644
--- a/swad_notice.c
+++ b/swad_notice.c
@@ -711,7 +711,7 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing,
Act_FormEnd ();
}
fprintf (Gbl.F.Out,""
"",
UniqueId,(long) TimeUTC,Txt_Today);
diff --git a/swad_social.c b/swad_social.c
index c2b2e938d..24df97200 100644
--- a/swad_social.c
+++ b/swad_social.c
@@ -1449,7 +1449,7 @@ static void Soc_WriteDateTime (time_t TimeUTC)
// This must be out of the div where the output is written
// because it will be evaluated in a loop in JavaScript
fprintf (Gbl.F.Out,"",
IdDateTime,(long) TimeUTC,Txt_Today);
}
diff --git a/swad_statistic.c b/swad_statistic.c
index 09a4c5e61..416962a3f 100644
--- a/swad_statistic.c
+++ b/swad_statistic.c
@@ -1695,7 +1695,7 @@ static void Sta_ShowDetailedAccessesList (unsigned long NumRows,MYSQL_RES *mysql
/* Write the date-time (row[3]) */
fprintf (Gbl.F.Out,""
""
" | ",
UniqueId,Gbl.RowEvenOdd,
diff --git a/swad_survey.c b/swad_survey.c
index d8f04f83f..d0b5bbf11 100644
--- a/swad_survey.c
+++ b/swad_survey.c
@@ -452,7 +452,7 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"\">"
""
"",
UniqueId,Svy.TimeUTC[Svy_START_TIME],Txt_Today);
@@ -468,7 +468,7 @@ static void Svy_ShowOneSurvey (long SvyCod,struct SurveyQuestion *SvyQst,
fprintf (Gbl.F.Out," COLOR%u",Gbl.RowEvenOdd);
fprintf (Gbl.F.Out,"\">"
""
"",
UniqueId,Svy.TimeUTC[Svy_END_TIME],Txt_Today);
diff --git a/swad_test.c b/swad_test.c
index 4211d1793..5a1996847 100644
--- a/swad_test.c
+++ b/swad_test.c
@@ -672,7 +672,7 @@ static bool Tst_CheckIfNextTstAllowed (void)
""
""
""
"",
(long) TimeNextTestUTC,Txt_Today);
@@ -2813,7 +2813,7 @@ static void Tst_ListOneOrMoreQuestionsToEdit (unsigned long NumRows,MYSQL_RES *m
fprintf (Gbl.F.Out,""
""
" | ",
UniqueId,Gbl.RowEvenOdd,
@@ -7252,7 +7252,7 @@ static void Tst_ShowTestResults (struct UsrData *UsrDat)
UniqueId++;
fprintf (Gbl.F.Out,""
""
" | ",
UniqueId,ClassDat,Gbl.RowEvenOdd,
@@ -7637,7 +7637,7 @@ void Tst_ShowOneTestResult (void)
""
""
""
" | "
"",