| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you 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. |
| */ |
| import angular from "angular"; |
| import ngAnimate from 'angular-animate'; |
| import ngResource from "angular-resource"; |
| import ngCookies from "angular-cookies"; |
| import uiRouter from "angular-ui-router"; |
| import "angular-ui-router/release/stateEvents"; |
| import ngClipboard from "ngclipboard"; |
| |
| import brCore from 'brooklyn-ui-utils/br-core/br-core'; |
| |
| import brDragndrop from "brooklyn-ui-utils/dragndrop/dragndrop.directive.js" |
| import brServerStatus from 'brooklyn-ui-utils/server-status/server-status'; |
| import brAutoFocus from 'brooklyn-ui-utils/autofocus/autofocus'; |
| import brIconGenerator from 'brooklyn-ui-utils/icon-generator/icon-generator'; |
| import brInterstitialSpinner from 'brooklyn-ui-utils/interstitial-spinner/interstitial-spinner'; |
| import brooklynModuleLinks from 'brooklyn-ui-utils/module-links/module-links'; |
| import brooklynUserManagement from 'brooklyn-ui-utils/user-management/user-management'; |
| import brYamlEditor from 'brooklyn-ui-utils/yaml-editor/yaml-editor'; |
| import brUtils from 'brooklyn-ui-utils/utils/general'; |
| |
| import brSpecEditor from './components/spec-editor/spec-editor.directive'; |
| import brooklynCatalogSaver from './components/catalog-saver/catalog-saver.directive'; |
| import paletteApiProvider from "./components/providers/palette-api.provider"; |
| import paletteServiceProvider from "./components/providers/palette-service.provider"; |
| import blueprintLoaderApiProvider from "./components/providers/blueprint-loader-api.provider"; |
| |
| import brooklynApi from "brooklyn-ui-utils/brooklyn.api/brooklyn.api"; |
| import designer from './components/designer/designer.directive'; |
| import catalogSelector from './components/catalog-selector/catalog-selector.directive'; |
| import customActionDirective from "./components/custom-action/custom-action.directive"; |
| import customConfigSuggestionDropdown from "./components/custom-config-widget/suggestion-dropdown"; |
| import breadcrumbs from "./components/breacrumbs/breadcrumbs.directive"; |
| import objectCache from './components/factories/object-cache.factory'; |
| import entityFilters from "./components/filters/entity.filter"; |
| import locationFilter from "./components/filters/locations.filter"; |
| import blueprintService from "./components/providers/blueprint-service.provider"; |
| import recentlyUsedService from "./components/providers/recently-used-service.provider"; |
| import dslService from "./components/providers/dsl-service.provider"; |
| import paletteDragAndDropService from "./components/providers/palette-dragndrop.provider"; |
| import actionService from "./components/providers/action-service.provider"; |
| import tabService from "./components/providers/tab-service.provider"; |
| import composerOverrides from "./components/providers/composer-overrides.provider"; |
| import {mainState} from "./views/main/main.controller"; |
| import {yamlAutodetectState, yamlCampState, yamlState} from "./views/main/yaml/yaml.state"; |
| import {graphicalState} from "./views/main/graphical/graphical.state"; |
| import {graphicalEditState} from "./views/main/graphical/edit/edit.controller"; |
| import {graphicalEditAddState} from "./views/main/graphical/edit/add/add"; |
| import {graphicalEditEntityState} from "./views/main/graphical/edit/entity/edit.entity.controller"; |
| import {graphicalEditPolicyState} from "./views/main/graphical/edit/policy/edit.policy.controller"; |
| import {graphicalEditEnricherState} from "./views/main/graphical/edit/enricher/edit.enricher.controller"; |
| import {graphicalEditSpecState} from "./views/main/graphical/edit/spec/edit.spec.controller"; |
| import {graphicalEditDslState, dslParamLabelFilter} from "./views/main/graphical/edit/dsl/edit.dsl.controller"; |
| import bottomSheet from "brooklyn-ui-utils/bottom-sheet/bottom-sheet"; |
| import stackViewer from 'angular-java-stack-viewer'; |
| import {EntityFamily} from "./components/util/model/entity.model"; |
| import scriptTagDecorator from 'brooklyn-ui-utils/script-tag-non-overwrite/script-tag-non-overwrite'; |
| |
| import brandAngularJs from 'brand-angular-js'; |
| |
| const IS_PRODUCTION = process.env.NODE_ENV === 'production' || false; |
| |
| angular.module('brooklynBlueprintComposer', [ngAnimate, ngResource, ngCookies, ngClipboard, uiRouter, 'ui.router.state.events', brCore, |
| brServerStatus, brAutoFocus, brIconGenerator, brInterstitialSpinner, brooklynModuleLinks, brooklynUserManagement, |
| brYamlEditor, brUtils, brSpecEditor, brooklynCatalogSaver, brooklynApi, bottomSheet, stackViewer, brDragndrop, |
| customActionDirective, customConfigSuggestionDropdown, paletteApiProvider, paletteServiceProvider, blueprintLoaderApiProvider, |
| breadcrumbs, catalogSelector, designer, objectCache, entityFilters, locationFilter, actionService, tabService, composerOverrides, blueprintService, |
| dslService, paletteDragAndDropService, recentlyUsedService, scriptTagDecorator, brandAngularJs]) |
| .filter('dslParamLabel', ['$filter', dslParamLabelFilter]) |
| .config(['$urlRouterProvider', '$stateProvider', '$logProvider', '$compileProvider', applicationConfig]) |
| .config(['actionServiceProvider', actionConfig]) |
| .config(['tabServiceProvider', 'composerOverridesProvider', tabConfig]) |
| .config(['paletteServiceProvider', paletteConfig]) |
| .run(['$rootScope', '$state', 'brSnackbar', errorHandler]) |
| .run(['$http', httpConfig]); |
| |
| function applicationConfig($urlRouterProvider, $stateProvider, $logProvider, $compileProvider) { |
| $logProvider.debugEnabled(!IS_PRODUCTION); |
| $compileProvider.debugInfoEnabled(!IS_PRODUCTION); |
| $urlRouterProvider |
| .otherwise(graphicalState.url); |
| $stateProvider |
| .state(mainState) |
| .state(yamlAutodetectState) |
| .state(yamlCampState) |
| .state(graphicalState) |
| .state(graphicalEditAddState) |
| .state(graphicalEditState) |
| .state(graphicalEditEntityState) |
| .state(graphicalEditPolicyState) |
| .state(graphicalEditEnricherState) |
| .state(graphicalEditSpecState) |
| .state(graphicalEditDslState); |
| } |
| |
| function actionConfig(actionServiceProvider) { |
| actionServiceProvider.addAction("deploy", {html: '<button class="btn btn-outline btn-success" ng-click="vm.deployApplication()" ng-disabled="vm.deploying">Deploy</button>'}); |
| actionServiceProvider.addAction("add", {html: '<catalog-saver config="vm.saveToCatalogConfig"></catalog-saver>'}); |
| } |
| |
| function tabConfig(tabServiceProvider, composerOverridesProvider) { |
| tabServiceProvider.addTab('graphical', { |
| title: 'Graphical Designer', |
| icon: 'fa-object-group', |
| stateKey: 'main.graphical' |
| }); |
| tabServiceProvider.addTab('yaml', { |
| title: 'YAML Editor', |
| icon: 'fa-pencil', |
| stateKey: 'main.yaml_camp', |
| }); |
| |
| (composerOverridesProvider.$get().tabServiceProviderCustomization || (()=>{}))(tabServiceProvider); |
| } |
| |
| function paletteConfig(paletteServiceProvider) { |
| paletteServiceProvider.addSection('entities', { |
| title: 'Entities', |
| type: EntityFamily.ENTITY, |
| icon: 'fa-square-o' |
| }); |
| paletteServiceProvider.addSection('policies', { |
| title: 'Policies', |
| type: EntityFamily.POLICY, |
| icon: 'fa-heartbeat' |
| }); |
| paletteServiceProvider.addSection('enrichers', { |
| title: 'Enrichers', |
| type: EntityFamily.ENRICHER, |
| icon: 'fa-puzzle-piece' |
| }); |
| paletteServiceProvider.addSection('locations', { |
| title: 'Locations', |
| type: EntityFamily.LOCATION, |
| icon: 'fa-map-pin' |
| }); |
| } |
| |
| function errorHandler($rootScope, $state, brSnackbar) { |
| $rootScope.$on('$stateChangeError', (event, toState, toParams, fromState, fromParams, error) => { |
| brSnackbar.create(error.detail); |
| if (toState && toState.name && toState.name.startsWith(yamlAutodetectState.name)) { |
| $state.go(toState); |
| } else { |
| $state.go(graphicalState); |
| } |
| }); |
| } |
| |
| function httpConfig($http) { |
| $http.defaults.headers.common['X-Csrf-Token-Required-For-Requests'] = 'write'; |
| } |