/* * (c) Copyright 2015 Hewlett-Packard Development Company, L.P. * * 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. */ (function () { 'use strict'; angular .module('horizon.dashboard.project.workflow.launch-instance') .factory( 'horizon.dashboard.project.workflow.launch-instance.modal.service', LaunchInstanceModalService ); LaunchInstanceModalService.$inject = [ '$uibModal', '$window', 'horizon.dashboard.project.workflow.launch-instance.modal-spec' ]; function LaunchInstanceModalService($uibModal, $window, modalSpec) { var service = { open: open }; return service; function open(launchContext) { var localSpec = { resolve: { launchContext: function () { return launchContext; } } }; angular.extend(localSpec, modalSpec); var launchInstanceModal = $uibModal.open(localSpec); var handleModalClose = function (redirectPropertyName) { return function () { if (launchContext && launchContext[redirectPropertyName]) { $window.location.href = launchContext[redirectPropertyName]; } }; }; return launchInstanceModal.result.then( handleModalClose('successUrl'), handleModalClose('dismissUrl') ); } } })();