sogo/UI/WebServerResources/js/Scheduler.services.js

3 lines
53 KiB
JavaScript
Raw Normal View History

2016-02-11 19:54:42 +01:00
!function(){"use strict";function a(b){if(this.init(b),this.name&&!this.id){var c=a.$$resource.create("createFolder",this.name);this.$unwrap(c)}}a.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Component","Acl",function(b,c,d,e,f,g,h,i){return angular.extend(a,{$q:b,$timeout:c,$log:d,$$resource:new f(e.activeUser("folderURL")+"Calendar",e.activeUser()),$Preferences:g,$Component:h,$$Acl:i,activeUser:e.activeUser(),$view:null}),a}];try{angular.module("SOGo.SchedulerUI")}catch(b){angular.module("SOGo.SchedulerUI",["SOGo.Common"])}angular.module("SOGo.SchedulerUI").value("CalendarSettings",{EventDragDayLength:96,EventDragHorizontalOffset:3}).factory("Calendar",a.$factory),a.$defaultCalendar=function(){var b,c=a.$Preferences.defaults.SOGoDefaultCalendar;return"first"==c&&(b=_.find(a.$findAll(null,!0),function(a){return a.active}))?b.id:"personal"},a.$add=function(a){var b,c,d;b=a.isWebCalendar?this.$webcalendars:a.isSubscription?this.$subscriptions:this.$calendars,c=_.find(b,function(b){return"personal"!=b.id&&1===b.name.localeCompare(a.name)}),d=c?_.indexOf(_.pluck(b,"id"),c.id):1,b.splice(d,0,a)},a.$findAll=function(b,c){var d=this;return b?(this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],angular.forEach(b,function(b,c){var e=new a(b);e.isWebCalendar?d.$webcalendars.push(e):e.isSubscription?d.$subscriptions.push(e):d.$calendars.push(e)})):angular.isUndefined(this.$calendars)&&(this.$calendars=[],this.$subscriptions=[],this.$webcalendars=[],a.$$resource.fetch("calendarslist").then(function(b){a.$findAll(b.calendars,c)})),c?_.union(this.$calendars,_.filter(this.$subscriptions,function(a){return a.acls.objectCreator})):_.union(this.$calendars,this.$subscriptions,this.$webcalendars)},a.$get=function(b){var c;return c=_.find(a.$calendars,function(a){return a.id==b}),c||(c=_.find(a.$subscriptions,function(a){return a.id==b})),c||(c=_.find(a.$webcalendars,function(a){return a.id==b})),c},a.$getIndex=function(b){var c;return c=_.indexOf(_.pluck(a.$calendars,"id"),b),0>c&&(c=_.indexOf(_.pluck(a.$subscriptions,"id"),b)),0>c&&(c=_.indexOf(_.pluck(a.$webcalendars,"id"),b)),c},a.$subscribe=function(b,c){var d=this;return a.$$resource.userResource(b).fetch(c,"subscribe").then(function(b){var c=new a(b);return _.find(d.$subscriptions,function(a){return a.id==b.id})||a.$add(c),c})},a.$addWebCalendar=function(b){var c=this,d=a.$q.defer();return _.find(c.$webcalendars,function(a){return a.urls.webCalendarURL==b})?d.reject():a.$$resource.post(null,"addWebCalendar",{url:b}).then(function(c){angular.extend(c,{isWebCalendar:!0,isEditable:!0,isRemote:!1,owner:a.activeUser.login,urls:{webCalendarURL:b}});var e=new a(c);a.$add(e),a.$$resource.fetch(e.id,"reload").then(function(b){a.$log.debug(JSON.stringify(b,void 0,2))}),d.resolve()},function(){d.reject()}),d.promise},a.$deleteComponents=function(b){var c={},d=[];return _.forEach(b,function(a){angular.isDefined(c[a.pid])||(c[a.pid]=[]),c[a.pid].push(a.id)}),_.forEach(c,function(b,c){d.push(a.$$resource.post(c,"batchDelete",{uids:b}))}),a.$q.all(d)},a.prototype.init=function(b){this.color=this.color||"#AAAAAA",angular.extend(this,b),this.id&&(this.$acl=new a.$$Acl("Calendar/"+this.id)),this.isOwned=a.activeUser.isSuperUser||this.owner==a.activeUser.login,this.isSubscription=!this.isRemote&&this.owner!=a.activeUser.login,angular.isUndefined(this.$shadowData)&&(this.$shadowData=this.$omit())},a.prototype.$id=function(){return this.id?a.$q.when(this.id):this.$futureCalendarData.then(function(a){return a.id})},a.prototype.getClassName=function(a){return angular.isUndefined(a)&&(a="fg"),a+"-folder"+this.id},a.prototype.$rename=function(){var b,c,d=this;return this.name==this.$shadowData.name?a.$q.when():(c=this.isWebCalendar?a.$webcalendars:this.isSubscription?a.$subscriptions:a.$calendars,b=_.indexOf(_.pluck(c,"id"),this.id),b>-1?this.$save().then(function(){c.splice(b,1),a.$add(d)}):a.$q.reject())},a.prototype.$delete=function(){var b,c,d=this;return this.isSubscription?(c=a.$$resource.fetch(this.id,"unsubscribe"),b=a.$subscriptions):(c=a.$$resource.remove(thi
var d=c||r.component;d.$reply().then(function(){a.$emit("calendars:list"),b.hide(),e.getAlarms()})}function m(){q=c.$get(r.component.pid).$getComponent(r.component.id),q.$futureComponentData.then(function(){q.reply=r.component.reply,q.delegatedTo=r.component.delegatedTo,q.$hasAlarm=r.component.$hasAlarm,q.alarm=r.component.alarm,k(q)})}function n(){r.component.remove(!0).then(function(){a.$emit("calendars:list"),b.hide()})}function o(){r.component.remove().then(function(){a.$emit("calendars:list"),b.hide()})}function p(a){c.$$resource.post(r.component.pid+"/"+r.component.id,"raw").then(function(c){function d(a,b){a.close=function(){b.hide()}}b.hide(),b.show({parent:angular.element(document.body),targetEvent:a,clickOutsideToClose:!0,escapeToClose:!0,template:['<md-dialog flex="80" flex-xs="100" aria-label="'+l("View Raw Source")+'">',' <md-dialog-content class="md-dialog-content">'," <pre>",c," </pre>"," </md-dialog-content>"," <md-dialog-actions>",' <md-button ng-click="close()">'+l("Close")+"</md-button>"," </md-dialog-actions>","</md-dialog>"].join(""),controller:d}),d.$inject=["scope","$mdDialog"]})}var q,r=this;r.component=f,r.close=g,r.cardFilter=h,r.edit=i,r.editAllOccurrences=j,r.reply=k,r.replyAllOccurrences=m,r.deleteOccurrence=n,r.deleteAllOccurrences=o,r.toggleRawSource=p,angular.isUndefined(r.component.$futureComponentData)&&(q=c.$get(r.component.pid).$getComponent(r.component.id,r.component.occurrenceId),q.$futureComponentData.then(function(){r.component=q,r.organizer=[r.component.organizer]}))}function b(a,b,c,d,e,f,g,h,i,j,k,l){function m(){var a=H.component.addAttachUrl("");focus("attachUrl_"+a)}function n(){H.showRecurrenceEditor=!H.showRecurrenceEditor,H.component.$hasCustomRepeat=H.showRecurrenceEditor}function o(){H.showAttendeesEditor=!H.showAttendeesEditor}function p(a){return i.$filterAll(a),i.$cards}function q(a){angular.isString(a)?a.isValidEmail()&&(H.component.addAttendee(new j({emails:[{value:a}]})),H.searchText=""):H.component.addAttendee(a)}function r(b){b.$valid&&H.component.$save().then(function(b){a.$emit("calendars:list"),e.hide(),k.getAlarms()},function(a,b){c.debug("failed")})}function s(){H.component.$reset(),H.component.isNew&&(H.component=null),e.cancel()}function t(){var a=[];return H.component.start&&H.component.end&&(a=H.component.start.daysUpTo(H.component.end)),_.map(a,function(a){return{stringWithSeparator:a.stringWithSeparator(),getDayString:a.getDayString()}})}function u(){for(var a=[],b=0;23>=b;b++)a.push(b.toString());return a}function v(){H.component.$addStartDate(),E=new Date(H.component.start.getTime())}function w(){H.component.$addDueDate(),G=new Date(H.component.due.getTime())}function x(){H.component.start.addMinutes(60*E.getHours()+E.getMinutes()),y()}function y(){var a;a=E.valueOf()-H.component.start.valueOf(),0!==a&&(E=new Date(H.component.start.getTime()),"appointment"===H.component.type&&(H.component.end=new Date(H.component.start.getTime()),H.component.end.addMinutes(H.component.delta),F=new Date(H.component.end.getTime())),D())}function z(){H.component.end.addMinutes(60*F.getHours()+F.getMinutes()),A()}function A(){var a=F.valueOf()-H.component.end.valueOf();0!==a&&(a=H.component.start.minutesTo(H.component.end),0>a?H.component.end=new Date(F.getTime()):(H.component.delta=a,F=new Date(H.component.end.getTime())),D())}function B(){H.component.due.addMinutes(60*G.getHours()+G.getMinutes()),C()}function C(){G=new Date(H.component.due.getTime())}function D(){H.attendeesEditor.days=t(),H.component.updateFreeBusy()}var E,F,G,H=this;H.service=g,H.component=l,H.categories={},H.showRecurrenceEditor=H.component.$hasCustomRepeat,H.toggleRecurrenceEditor=n,H.showAttendeesEditor=angular.isDefined(H.component.attendees),H.toggleAttendeesEditor=o,H.cardFilter=p,H.addAttendee=q,H.addAttachUrl=m,H.cancel=s,H.save=r,H.attendeesEditor={days:t(),hours:u()},H.addStartDate=v,H.addDueDate=w,H.updateStartTime=x,H.adjustStartTime=y,H.updateEndTime=z,H.adjustEndTime=A,H.updateDueTime=B,H.adjustDueTime=C,H.component.start&&(E=new Date(H.component.start.getTime())),H.compon
//# sourceMappingURL=Scheduler.services.js.map