mirror of
https://github.com/inverse-inc/sogo.git
synced 2026-02-19 00:16:23 +00:00
fix(calendar): Fix calendar green dot stucks in original day when browser is opened for days and day changed
This commit is contained in:
@@ -1,2 +1,2 @@
|
||||
!function(){"use strict";function e(e,a,n){e.state("calendars",{url:"/calendar",views:{calendars:{templateUrl:"UIxCalMainView",controller:"CalendarsController",controllerAs:"app"}},resolve:{stateCalendars:r}}).state("calendars.view",{url:"/{view:(?:day|week|month|multicolumnday)}/{day:[0-9]{8}}",views:{calendarView:{templateUrl:function(e){return e.view+"view?day="+e.day},controller:"CalendarController",controllerAs:"calendar"}},resolve:{stateEventsBlocks:t}}),a.rules.when("/calendar/day",function(){return"/calendar/day/"+(new Date).getDayString()}),a.rules.when("/calendar/multicolumnday",function(){return"/calendar/multicolumnday/"+(new Date).getDayString()}),a.rules.when("/calendar/week",function(){return"/calendar/week/"+(new Date).getDayString()}),a.rules.when("/calendar/month",function(){return"/calendar/month/"+(new Date).getDayString()}),a.rules.otherwise("/calendar/week")}function r(e){return e.$calendars||e.$findAll(window.calendarsData)}function t(e,a,n){return a.$eventsBlocksForView(e.view,e.day.asDate()).then(function(e){return _.forEach(e,function(e){e.id&&(e.calendar=new n({id:e.id,name:e.calendarName}))}),e})}function a(e,a,n,r,t,l){if(e.DebugEnabled||t.defaultErrorHandler(function(){}),n.onError({to:"calendars.**"},function(e){"calendars"==e.to().name||e.ignored()||(a.error("transition error to "+e.to().name+": "+e.error().detail),t.go({state:"calendars"}))}),0===r.url().length){var e="/calendar/",n=/(.+)view/.exec(l.settings.Calendar.View),o=(e+=n?n[1]:"week",new Date);if(l.defaults.SOGoCalendarWeekdays)for(var i=["SU","MO","TU","WE","TH","FR","SA"],d=i[o.getDay()];l.defaults.SOGoCalendarWeekdays.indexOf(d)<0;)o.addDays(1),d=i[o.getDay()];e+="/"+o.getDayString(),r.replace().url(e)}}angular.module("SOGo.SchedulerUI",["ngCookies","ui.router","angularFileUpload","sgCkeditor","SOGo.Common","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.MailerUI","as.sortable"]).config(e).run(a),e.$inject=["$stateProvider","$urlServiceProvider","$mdThemingProvider"],r.$inject=["Calendar"],t.$inject=["$stateParams","Component","Calendar"],a.$inject=["$window","$log","$transitions","$location","$state","Preferences"]}();
|
||||
!function(){"use strict";function e(e,a,n){e.state("calendars",{url:"/calendar",views:{calendars:{templateUrl:"UIxCalMainView",controller:"CalendarsController",controllerAs:"app"}},resolve:{stateCalendars:r}}).state("calendars.view",{url:"/{view:(?:day|week|month|multicolumnday)}/{day:[0-9]{8}}",views:{calendarView:{templateUrl:function(e){return e.view+"view?day="+e.day+"¤tday="+String((new Date).getFullYear())+String((new Date).getMonth()+1).padStart(2,"0")+String((new Date).getDate()).padStart(2,"0")},controller:"CalendarController",controllerAs:"calendar"}},resolve:{stateEventsBlocks:t}}),a.rules.when("/calendar/day",function(){return"/calendar/day/"+(new Date).getDayString()}),a.rules.when("/calendar/multicolumnday",function(){return"/calendar/multicolumnday/"+(new Date).getDayString()}),a.rules.when("/calendar/week",function(){return"/calendar/week/"+(new Date).getDayString()}),a.rules.when("/calendar/month",function(){return"/calendar/month/"+(new Date).getDayString()}),a.rules.otherwise("/calendar/week")}function r(e){return e.$calendars||e.$findAll(window.calendarsData)}function t(e,a,n){return a.$eventsBlocksForView(e.view,e.day.asDate()).then(function(e){return _.forEach(e,function(e){e.id&&(e.calendar=new n({id:e.id,name:e.calendarName}))}),e})}function a(e,a,n,r,t,l){if(e.DebugEnabled||t.defaultErrorHandler(function(){}),n.onError({to:"calendars.**"},function(e){"calendars"==e.to().name||e.ignored()||(a.error("transition error to "+e.to().name+": "+e.error().detail),t.go({state:"calendars"}))}),0===r.url().length){var e="/calendar/",n=/(.+)view/.exec(l.settings.Calendar.View),o=(e+=n?n[1]:"week",new Date);if(l.defaults.SOGoCalendarWeekdays)for(var i=["SU","MO","TU","WE","TH","FR","SA"],d=i[o.getDay()];l.defaults.SOGoCalendarWeekdays.indexOf(d)<0;)o.addDays(1),d=i[o.getDay()];e+="/"+o.getDayString(),r.replace().url(e)}}angular.module("SOGo.SchedulerUI",["ngCookies","ui.router","angularFileUpload","sgCkeditor","SOGo.Common","SOGo.PreferencesUI","SOGo.ContactsUI","SOGo.MailerUI","as.sortable"]).config(e).run(a),e.$inject=["$stateProvider","$urlServiceProvider","$mdThemingProvider"],r.$inject=["Calendar"],t.$inject=["$stateParams","Component","Calendar"],a.$inject=["$window","$log","$transitions","$location","$state","Preferences"]}();
|
||||
//# sourceMappingURL=Scheduler.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"Scheduler.js","sources":["Scheduler/Scheduler.app.js"],"names":["configure","$stateProvider","$urlServiceProvider","$mdThemingProvider","state","url","views","calendars","templateUrl","controller","controllerAs","resolve","stateCalendars","calendarView","$stateParams","view","day","stateEventsBlocks","rules","when","Date","getDayString","otherwise","Calendar","$calendars","$findAll","window","calendarsData","Component","$eventsBlocksForView","asDate","then","_","forEach","id","calendar","name","calendarName","runBlock","$window","$log","$transitions","$location","$state","Preferences","DebugEnabled","defaultErrorHandler","onError","to","transition","ignored","error","detail","go","length","exec","settings","View","now","defaults","SOGoCalendarWeekdays","weekDays","weekDay","getDay","indexOf","addDays","replace","angular","module","config","run","$inject"],"mappings":"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"}
|
||||
{"version":3,"file":"Scheduler.js","sources":["Scheduler/Scheduler.app.js"],"names":["configure","$stateProvider","$urlServiceProvider","$mdThemingProvider","state","url","views","calendars","templateUrl","controller","controllerAs","resolve","stateCalendars","calendarView","$stateParams","view","day","String","Date","getFullYear","getMonth","padStart","getDate","stateEventsBlocks","rules","when","getDayString","otherwise","Calendar","$calendars","$findAll","window","calendarsData","Component","$eventsBlocksForView","asDate","then","_","forEach","id","calendar","name","calendarName","runBlock","$window","$log","$transitions","$location","$state","Preferences","DebugEnabled","defaultErrorHandler","onError","to","transition","ignored","error","detail","go","length","exec","settings","View","now","defaults","SOGoCalendarWeekdays","weekDays","weekDay","getDay","indexOf","addDays","replace","angular","module","config","run","$inject"],"mappings":"AAGA,CAAA,WACE,aAUA,SAASA,EAAUC,EAAgBC,EAAqBC,GACtDF,EACGG,MAAM,YAAa,CAClBC,IAAK,YACLC,MAAO,CACLC,UAAW,CACTC,YAAa,iBACbC,WAAY,sBACZC,aAAc,KAChB,CACF,EACAC,QAAS,CACPC,eAAgBA,CAClB,CACF,CAAC,EACAR,MAAM,iBAAkB,CACvBC,IAAK,2DAGLC,MAAO,CACLO,aAAc,CACZL,YAAa,SAAUM,GAKrB,OAAOA,EAAaC,KAAO,YAAcD,EAAaE,IAAM,eAAiBC,QAAO,IAAKC,MAAQC,YAAY,CAAC,EAAIF,QAAQ,IAAKC,MAAQE,SAAS,EAAI,CAAE,EAAEC,SAAS,EAAG,GAAG,EAAIJ,QAAQ,IAAKC,MAAQI,QAAS,CAAC,EAAED,SAAS,EAAG,GAAG,CAC7N,EACAZ,WAAY,qBACZC,aAAc,UAChB,CACF,EACAC,QAAS,CACPY,kBAAmBA,CACrB,CACF,CAAC,EAEHrB,EAAoBsB,MAAMC,KAAK,gBAAiB,WAG9C,MAAO,kBADG,IAAIP,MACgBQ,aAAa,CAC7C,CAAC,EACDxB,EAAoBsB,MAAMC,KAAK,2BAA4B,WAGzD,MAAO,6BADG,IAAIP,MAC2BQ,aAAa,CACxD,CAAC,EACDxB,EAAoBsB,MAAMC,KAAK,iBAAkB,WAG/C,MAAO,mBADG,IAAIP,MACiBQ,aAAa,CAC9C,CAAC,EACDxB,EAAoBsB,MAAMC,KAAK,kBAAmB,WAGhD,MAAO,oBADG,IAAIP,MACkBQ,aAAa,CAC/C,CAAC,EAIDxB,EAAoBsB,MAAMG,UAAU,gBAAgB,CACtD,CAMA,SAASf,EAAegB,GACtB,OAAOA,EAASC,YAAcD,EAASE,SAASC,OAAOC,aAAa,CACtE,CAMA,SAAST,EAAkBT,EAAcmB,EAAWL,GAElD,OAAOK,EAAUC,qBAAqBpB,EAAaC,KAAMD,EAAaE,IAAImB,OAAO,CAAC,EAC/EC,KAAK,SAAU9B,GAQd,OAPA+B,EAAEC,QAAQhC,EAAO,SAAUS,GACrBA,EAAKwB,KAGPxB,EAAKyB,SAAW,IAAIZ,EAAS,CAAEW,GAAIxB,EAAKwB,GAAIE,KAAM1B,EAAK2B,YAAa,CAAC,EAEzE,CAAC,EACMpC,CACT,CAAC,CACL,CAMA,SAASqC,EAASC,EAASC,EAAMC,EAAcC,EAAWC,EAAQC,GAYhE,GAXKL,EAAQM,cACXF,EAAOG,oBAAoB,YAE1B,EACHL,EAAaM,QAAQ,CAAEC,GAAI,cAAe,EAAG,SAAUC,GACzB,aAAxBA,EAAWD,GAAG,EAAEZ,MACjBa,EAAWC,QAAQ,IACpBV,EAAKW,MAAM,uBAAyBF,EAAWD,GAAG,EAAEZ,KAAO,KAAOa,EAAWE,MAAM,EAAEC,MAAM,EAC3FT,EAAOU,GAAG,CAAEtD,MAAO,WAAY,CAAC,EAEpC,CAAC,EAC8B,IAA3B2C,EAAU1C,IAAI,EAAEsD,OAAc,CAEhC,IAAItD,EAAM,aACRU,EAAO,WAAW6C,KAAKX,EAAYY,SAASjC,SAASkC,IAAI,EAMvDC,GAJF1D,GADEU,EACKA,EAAK,GAEL,OAEC,IAAIG,MACd,GAAI+B,EAAYe,SAASC,qBAGvB,IAFA,IAAIC,EAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAChDC,EAAUD,EAASH,EAAIK,OAAO,GAC3BnB,EAAYe,SAASC,qBAAqBI,QAAQF,CAAO,EAAI,GAClEJ,EAAIO,QAAQ,CAAC,EACbH,EAAUD,EAASH,EAAIK,OAAO,GAGlC/D,GAAO,IAAM0D,EAAIrC,aAAa,EAC9BqB,EAAUwB,QAAQ,EAAElE,IAAIA,CAAG,CAC7B,CACF,CAvIAmE,QAAQC,OAAO,mBAAoB,CAAC,YAAa,YAAa,oBAAqB,aAAc,cAAe,qBAAsB,kBAAmB,gBAAiB,cAAc,EACrLC,OAAO1E,CAAS,EAChB2E,IAAIhC,CAAQ,EAKf3C,EAAU4E,QAAU,CAAC,iBAAkB,sBAAuB,sBAmE9DhE,EAAegE,QAAU,CAAC,YAQ1BrD,EAAkBqD,QAAU,CAAC,eAAgB,YAAa,YAmB1DjC,EAASiC,QAAU,CAAC,UAAW,OAAQ,eAAgB,YAAa,SAAU,cAoC/E,EAAE"}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -175,7 +175,13 @@
|
||||
var date = newDate? newDate.getDayString() : angular.element($event.currentTarget).attr('date');
|
||||
if (newDate)
|
||||
_formatDate(newDate);
|
||||
|
||||
if (isToday) {
|
||||
var d = new Date();
|
||||
date = String(d.getFullYear()) + String((d.getMonth() + 1)).padStart(2, '0') + String((d.getDate())).padStart(2, '0');
|
||||
}
|
||||
$state.go('calendars.view', { day: date });
|
||||
|
||||
// Refresh calendar data if click on today
|
||||
if (isToday) {
|
||||
$rootScope.$emit('calendars:list');
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* -*- Mode: javascript; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* JavaScript for SOGo.SchedulerUI module */
|
||||
|
||||
(function() {
|
||||
(function () {
|
||||
'use strict';
|
||||
|
||||
angular.module('SOGo.SchedulerUI', ['ngCookies', 'ui.router', 'angularFileUpload', 'sgCkeditor', 'SOGo.Common', 'SOGo.PreferencesUI', 'SOGo.ContactsUI', 'SOGo.MailerUI', 'as.sortable'])
|
||||
@@ -33,12 +33,12 @@
|
||||
//deepStateRedirect: true,
|
||||
views: {
|
||||
calendarView: {
|
||||
templateUrl: function($stateParams) {
|
||||
templateUrl: function ($stateParams) {
|
||||
// UI/Templates/SchedulerUI/UIxCalDayView.wox or
|
||||
// UI/Templates/SchedulerUI/UIxCalWeekView.wox or
|
||||
// UI/Templates/SchedulerUI/UIxCalMonthView.wox or
|
||||
// UI/Templates/SchedulerUI/UIxCalMulticolumnDayView.wox
|
||||
return $stateParams.view + 'view?day=' + $stateParams.day;
|
||||
return $stateParams.view + 'view?day=' + $stateParams.day + '¤tday=' + String((new Date()).getFullYear()) + String(((new Date()).getMonth() + 1)).padStart(2, '0') + String(((new Date()).getDate())).padStart(2, '0');
|
||||
},
|
||||
controller: 'CalendarController',
|
||||
controllerAs: 'calendar'
|
||||
@@ -49,22 +49,22 @@
|
||||
}
|
||||
});
|
||||
|
||||
$urlServiceProvider.rules.when('/calendar/day', function() {
|
||||
$urlServiceProvider.rules.when('/calendar/day', function () {
|
||||
// If no date is specified, show today
|
||||
var now = new Date();
|
||||
return '/calendar/day/' + now.getDayString();
|
||||
});
|
||||
$urlServiceProvider.rules.when('/calendar/multicolumnday', function() {
|
||||
$urlServiceProvider.rules.when('/calendar/multicolumnday', function () {
|
||||
// If no date is specified, show today
|
||||
var now = new Date();
|
||||
return '/calendar/multicolumnday/' + now.getDayString();
|
||||
});
|
||||
$urlServiceProvider.rules.when('/calendar/week', function() {
|
||||
$urlServiceProvider.rules.when('/calendar/week', function () {
|
||||
// If no date is specified, show today's week
|
||||
var now = new Date();
|
||||
return '/calendar/week/' + now.getDayString();
|
||||
});
|
||||
$urlServiceProvider.rules.when('/calendar/month', function() {
|
||||
$urlServiceProvider.rules.when('/calendar/month', function () {
|
||||
// If no date is specified, show today's month
|
||||
var now = new Date();
|
||||
return '/calendar/month/' + now.getDayString();
|
||||
@@ -90,8 +90,8 @@
|
||||
function stateEventsBlocks($stateParams, Component, Calendar) {
|
||||
// See CalendarController.js
|
||||
return Component.$eventsBlocksForView($stateParams.view, $stateParams.day.asDate())
|
||||
.then(function(views) {
|
||||
_.forEach(views, function(view) {
|
||||
.then(function (views) {
|
||||
_.forEach(views, function (view) {
|
||||
if (view.id) {
|
||||
// Note: this can't be done in Component service since it would make Component dependent on
|
||||
// the Calendar service and create a circular dependency
|
||||
@@ -108,12 +108,12 @@
|
||||
runBlock.$inject = ['$window', '$log', '$transitions', '$location', '$state', 'Preferences'];
|
||||
function runBlock($window, $log, $transitions, $location, $state, Preferences) {
|
||||
if (!$window.DebugEnabled)
|
||||
$state.defaultErrorHandler(function() {
|
||||
$state.defaultErrorHandler(function () {
|
||||
// Don't report any state error
|
||||
});
|
||||
$transitions.onError({ to: 'calendars.**' }, function(transition) {
|
||||
$transitions.onError({ to: 'calendars.**' }, function (transition) {
|
||||
if (transition.to().name != 'calendars' &&
|
||||
!transition.ignored()) {
|
||||
!transition.ignored()) {
|
||||
$log.error('transition error to ' + transition.to().name + ': ' + transition.error().detail);
|
||||
$state.go({ state: 'calendars' });
|
||||
}
|
||||
@@ -121,7 +121,7 @@
|
||||
if ($location.url().length === 0) {
|
||||
// Restore user's last view
|
||||
var url = '/calendar/',
|
||||
view = /(.+)view/.exec(Preferences.settings.Calendar.View);
|
||||
view = /(.+)view/.exec(Preferences.settings.Calendar.View);
|
||||
if (view)
|
||||
url += view[1];
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user