You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							177 lines
						
					
					
						
							7.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							177 lines
						
					
					
						
							7.4 KiB
						
					
					
				| /* Copyright 2005-2015 Alfresco Software, Ltd. | |
|  * | |
|  * Licensed under the Apache License, Version 2.0 (the "License"); | |
|  * you may not use this file except in compliance with the License. | |
|  * You may obtain a copy of the License at | |
|  * | |
|  *      http://www.apache.org/licenses/LICENSE-2.0 | |
|  * | |
|  * Unless required by applicable law or agreed to in writing, software | |
|  * distributed under the License is distributed on an "AS IS" BASIS, | |
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
|  * See the License for the specific language governing permissions and | |
|  * limitations under the License. | |
|  */ | |
| 
 | |
| var extScope; | |
| 
 | |
| angular.module('flowableModeler') | |
|     .controller('DecisionServiceDetailsCtrl', ['$rootScope', '$scope', '$translate', '$http', '$location', '$routeParams', '$modal', '$timeout', '$popover', 'ResourceService', | |
|         function ($rootScope, $scope, $translate, $http, $location, $routeParams, $modal, $timeout, $popover, ResourceService) { | |
| 
 | |
|             // Main page (needed for visual indicator of current page) | |
|             $rootScope.setMainPageById('decisions'); | |
| 
 | |
|             // Initialize model | |
|             $scope.model = { | |
|                 // Store the main model id, this points to the current version of a model, | |
|                 // even when we're showing history | |
|                 latestModelId: $routeParams.modelId | |
|             }; | |
| 
 | |
|             $scope.loadDecisionService = function () { | |
|                 var url; | |
|                 if ($routeParams.modelHistoryId) { | |
|                     url = FLOWABLE.APP_URL.getModelUrl($routeParams.modelId) + '/history/' + $routeParams.modelHistoryId; | |
|                 } else { | |
|                     url = FLOWABLE.APP_URL.getModelUrl($routeParams.modelId); | |
|                 } | |
| 
 | |
|                 $http({method: 'GET', url: url}).success(function (data, status, headers, config) { | |
|                     $scope.model.decisionService = data; | |
| 
 | |
|                     $scope.loadVersions(); | |
| 
 | |
|                     $scope.model.decisionDownloadUrl = FLOWABLE.APP_URL.getDmnModelDownloadUrl($routeParams.modelId, $routeParams.modelHistoryId); | |
| 
 | |
|                     $rootScope.$on('$routeChangeStart', function (event, next, current) { | |
|                         jQuery('.qtip').qtip('destroy', true); | |
|                     }); | |
| 
 | |
|                     $timeout(function () { | |
|                         jQuery("#dmnModel").attr('data-model-id', $routeParams.modelId); | |
|                         jQuery("#dmnModel").attr('data-model-type', 'design'); | |
| 
 | |
|                         // in case we want to show a historic model, include additional attribute on the div | |
|                         if (!$scope.model.decisionService.latestVersion) { | |
|                             jQuery("#dmnModel").attr('data-history-id', $routeParams.modelHistoryId); | |
|                         } | |
| 
 | |
|                         var viewerUrl = "display-dmn/displaymodel.html?version=" + Date.now(); | |
| 
 | |
|                         // If Flowable has been deployed inside an AMD environment Raphael will fail to register | |
|                         // itself globally until displaymodel.js (which depends ona global Raphale variable) is running, | |
|                         // therefore remove AMD's define method until we have loaded in Raphael and displaymodel.js | |
|                         // and assume/hope its not used during. | |
|                         var amdDefine = window.define; | |
|                         window.define = undefined; | |
|                         ResourceService.loadFromHtml(viewerUrl, function () { | |
|                             // Restore AMD's define method again | |
|                             window.define = amdDefine; | |
|                         }); | |
|                     }); | |
| 
 | |
|                 }).error(function (data, status, headers, config) { | |
|                     $scope.returnToList(); | |
|                 }); | |
|             }; | |
| 
 | |
|             $scope.useAsNewVersion = function () { | |
|                 _internalCreateModal({ | |
|                     template: 'views/popup/model-use-as-new-version.html', | |
|                     scope: $scope | |
|                 }, $modal, $scope); | |
|             }; | |
| 
 | |
|             $scope.loadVersions = function () { | |
| 
 | |
|                 var params = { | |
|                     includeLatestVersion: !$scope.model.decisionService.latestVersion | |
|                 }; | |
| 
 | |
|                 $http({ | |
|                     method: 'GET', | |
|                     url: FLOWABLE.APP_URL.getModelHistoriesUrl($scope.model.latestModelId), | |
|                     params: params | |
|                 }).success(function (data, status, headers, config) { | |
|                     if ($scope.model.decisionService.latestVersion) { | |
|                         if (!data.data) { | |
|                             data.data = []; | |
|                         } | |
|                         data.data.unshift($scope.model.decisionService); | |
|                     } | |
| 
 | |
|                     $scope.model.versions = data; | |
|                 }); | |
|             }; | |
| 
 | |
|             $scope.showVersion = function (version) { | |
|                 if (version) { | |
|                     if (version.latestVersion) { | |
|                         $location.path("/decision-services/" + $scope.model.latestModelId); | |
|                     } else { | |
|                         // Show latest version, no history-suffix needed in URL | |
|                         $location.path("/decision-services/" + $scope.model.latestModelId + "/history/" + version.id); | |
|                     } | |
|                 } | |
|             }; | |
| 
 | |
|             $scope.returnToList = function () { | |
|                 $location.path("/decision-services/"); | |
|             }; | |
| 
 | |
|             $scope.editDecisionService = function () { | |
|                 _internalCreateModal({ | |
|                     template: 'views/popup/model-edit.html', | |
|                     scope: $scope | |
|                 }, $modal, $scope); | |
|             }; | |
| 
 | |
|             $scope.duplicateDecisionService = function () { | |
|                 var modalInstance = _internalCreateModal({ | |
|                     template: 'views/popup/decision-service-duplicate.html?version=' + Date.now() | |
|                 }, $modal, $scope); | |
| 
 | |
|                 modalInstance.$scope.originalModel = $scope.model; | |
|             }; | |
| 
 | |
|             $scope.deleteDecisionService = function () { | |
|                 _internalCreateModal({ | |
|                     template: 'views/popup/model-delete.html', | |
|                     scope: $scope | |
|                 }, $modal, $scope); | |
|             }; | |
| 
 | |
|             $scope.openEditor = function () { | |
|                 if ($scope.model.decisionService) { | |
|                     $location.path("/decision-service-editor/" + $scope.model.decisionService.id); | |
|                 } | |
|             }; | |
| 
 | |
|             $scope.toggleHistory = function ($event) { | |
|                 if (!$scope.historyState) { | |
|                     var state = {}; | |
|                     $scope.historyState = state; | |
| 
 | |
|                     // Create popover | |
|                     state.popover = $popover(angular.element($event.target), { | |
|                         template: 'views/popover/history.html', | |
|                         placement: 'bottom-right', | |
|                         show: true, | |
|                         scope: $scope, | |
|                         container: 'body' | |
|                     }); | |
| 
 | |
|                     var destroy = function () { | |
|                         state.popover.destroy(); | |
|                         delete $scope.historyState; | |
|                     } | |
| 
 | |
|                     // When popup is hidden or scope is destroyed, hide popup | |
|                     state.popover.$scope.$on('tooltip.hide', destroy); | |
|                     $scope.$on('$destroy', destroy); | |
|                 } | |
|             }; | |
| 
 | |
|             $scope.loadDecisionService(); | |
|         }]);
 | |
| 
 |