diff --git a/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox b/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox index fd1afd873..8a089baeb 100644 --- a/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxAppointmentViewTemplate.wox @@ -5,24 +5,50 @@ xmlns:const="http://www.skyrix.com/od/constant" xmlns:label="OGo:label"> - -
- event -
- - visibility_off - vpn_key - - {{::editor.component.summary}} - - star -
- - close - + +
+ event +
+ + visibility_off + vpn_key + + {{::editor.component.summary}} + + star
- - + + delete + + + delete + + + + + + + + + + + + + + + close + +
+
+ diff --git a/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox b/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox index 7826cb58d..3e69ea42a 100644 --- a/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox +++ b/UI/Templates/SchedulerUI/UIxTaskViewTemplate.wox @@ -17,8 +17,34 @@ star
+ + delete + + + delete + + + + + + + + + + + + + - close + close
diff --git a/UI/WebServerResources/js/Scheduler/Component.service.js b/UI/WebServerResources/js/Scheduler/Component.service.js index ce89c8233..87d694faa 100644 --- a/UI/WebServerResources/js/Scheduler/Component.service.js +++ b/UI/WebServerResources/js/Scheduler/Component.service.js @@ -872,6 +872,21 @@ }); }; + /** + * @function $delete + * @memberof Component.prototype + * @desc Delete the component from the server. + * @param {boolean} occurrenceOnly - delete this occurrence only + */ + Component.prototype.remove = function(occurrenceOnly) { + var _this = this, path = [this.pid, this.id]; + + if (occurrenceOnly && this.occurrenceId) + path.push(this.occurrenceId); + + return Component.$$resource.remove(path.join('/')); + }; + /** * @function $unwrap * @memberof Component.prototype diff --git a/UI/WebServerResources/js/Scheduler/ComponentController.js b/UI/WebServerResources/js/Scheduler/ComponentController.js index 7ab0db0e9..784bf073b 100644 --- a/UI/WebServerResources/js/Scheduler/ComponentController.js +++ b/UI/WebServerResources/js/Scheduler/ComponentController.js @@ -17,6 +17,8 @@ vm.editAllOccurrences = editAllOccurrences; vm.reply = reply; vm.replyAllOccurrences = replyAllOccurrences; + vm.deleteOccurrence = deleteOccurrence; + vm.deleteAllOccurrences = deleteAllOccurrences; // Load all attributes of component if (angular.isUndefined(vm.component.$futureComponentData)) { @@ -88,7 +90,21 @@ reply(component); }); } - } + + function deleteOccurrence() { + vm.component.remove(true).then(function() { + $rootScope.$broadcast('calendars:list'); + $mdDialog.hide(); + }); + } + + function deleteAllOccurrences() { + vm.component.remove().then(function() { + $rootScope.$broadcast('calendars:list'); + $mdDialog.hide(); + }); + } +} /** * @ngInject