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) "" "" "" "" "",