blob: 4d048ab5c2f109655a20f346e4147e85244bf329 [file] [log] [blame]
/*
* 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 _ from 'lodash';
import './style.scss';
import './vendor';
import '../public/stylesheets/style.scss';
import '../app/primitives';
import './app.config';
import './modules/form/form.module';
import './modules/agent/agent.module';
import './modules/nodes/nodes.module';
import './modules/demo/Demo.module';
import './modules/states/logout.state';
import './modules/states/admin.state';
import './modules/states/errors.state';
import './modules/states/settings.state';
// ignite:modules
import './core';
import './modules/user/user.module';
import './modules/branding/branding.module';
import './modules/navbar/navbar.module';
import './modules/getting-started/GettingStarted.provider';
import './modules/dialog/dialog.module';
import './modules/ace.module';
import './modules/loading/loading.module';
import servicesModule from './services';
// endignite
// Data
import i18n from './data/i18n';
// Directives.
import igniteAutoFocus from './directives/auto-focus.directive';
import igniteCopyToClipboard from './directives/copy-to-clipboard.directive';
import igniteHideOnStateChange from './directives/hide-on-state-change/hide-on-state-change.directive';
import igniteMatch from './directives/match.directive';
import igniteOnClickFocus from './directives/on-click-focus.directive';
import igniteOnEnter from './directives/on-enter.directive';
import igniteOnEnterFocusMove from './directives/on-enter-focus-move.directive';
import igniteOnEscape from './directives/on-escape.directive';
import igniteOnFocusOut from './directives/on-focus-out.directive';
import igniteRetainSelection from './directives/retain-selection.directive';
import btnIgniteLink from './directives/btn-ignite-link';
// Services.
import ChartColors from './services/ChartColors.service';
import {default as IgniteConfirm, Confirm} from './services/Confirm.service';
import ConfirmBatch from './services/ConfirmBatch.service';
import CopyToClipboard from './services/CopyToClipboard.service';
import Countries from './services/Countries.service';
import ErrorPopover from './services/ErrorPopover.service';
import Focus from './services/Focus.service';
import FormUtils from './services/FormUtils.service';
import InetAddress from './services/InetAddress.service';
import JavaTypes from './services/JavaTypes.service';
import SqlTypes from './services/SqlTypes.service';
import LegacyTable from './services/LegacyTable.service';
import LegacyUtils from './services/LegacyUtils.service';
import Messages from './services/Messages.service';
import ErrorParser from './services/ErrorParser.service';
import ModelNormalizer from './services/ModelNormalizer.service';
import {CSV} from './services/CSV';
import {$exceptionHandler} from './services/exceptionHandler';
import {Store} from './services/store';
import AngularStrapTooltip from './services/AngularStrapTooltip.decorator';
import AngularStrapSelect from './services/AngularStrapSelect.decorator';
// Filters.
import byName from './filters/byName.filter';
import bytes from './filters/bytes.filter';
import defaultName from './filters/default-name.filter';
import domainsValidation from './filters/domainsValidation.filter';
import duration from './filters/duration.filter';
import hasPojo from './filters/hasPojo.filter';
import uiGridSubcategories from './filters/uiGridSubcategories.filter';
import id8 from './filters/id8.filter';
// Components
import igniteListOfRegisteredUsers from './components/list-of-registered-users';
import dialogAdminCreateUser from './components/dialog-admin-create-user';
import IgniteActivitiesUserDialog from './components/activities-user-dialog';
import './components/input-dialog';
import webConsoleHeader from './components/web-console-header';
import webConsoleFooter from './components/web-console-footer';
import igniteIcon from './components/ignite-icon';
import versionPicker from './components/version-picker';
import userNotifications from './components/user-notifications';
import pageAdmin from './components/page-admin';
import pageQueries from './components/page-queries';
import gridColumnSelector from './components/grid-column-selector';
import gridItemSelected from './components/grid-item-selected';
import gridNoData from './components/grid-no-data';
import gridExport from './components/grid-export';
import gridShowingRows from './components/grid-showing-rows';
import bsSelectMenu from './components/bs-select-menu';
import protectFromBsSelectRender from './components/protect-from-bs-select-render';
import uiGrid from './components/ui-grid';
import uiGridHovering from './components/ui-grid-hovering';
import uiGridFilters from './components/ui-grid-filters';
import uiGridColumnResizer from './components/ui-grid-column-resizer';
import listEditable from './components/list-editable';
import breadcrumbs from './components/breadcrumbs';
import panelCollapsible from './components/panel-collapsible';
import clusterSelector from './components/cluster-selector';
import connectedClusters from './components/connected-clusters-badge';
import connectedClustersDialog from './components/connected-clusters-dialog';
import pageLanding from './components/page-landing';
import passwordVisibility from './components/password-visibility';
import progressLine from './components/progress-line';
import formField from './components/form-field';
import igniteChart from './components/ignite-chart';
import igniteChartSelector from './components/ignite-chart-series-selector';
import statusOutput from './components/status-output';
import timedRedirection from './components/timed-redirection';
import pageProfile from './components/page-profile';
import pagePasswordChanged from './components/page-password-changed';
import pagePasswordReset from './components/page-password-reset';
import pageSignup from './components/page-signup';
import pageSignin from './components/page-signin';
import pageForgotPassword from './components/page-forgot-password';
import formSignup from './components/form-signup';
import sidebar from './components/web-console-sidebar';
import permanentNotifications from './components/permanent-notifications';
import signupConfirmation from './components/page-signup-confirmation';
import noDataCmp from './components/no-data';
import globalProgressBar from './components/global-progress-line';
import igniteServices from './services';
import baseTemplate from 'views/base.pug';
import * as icons from '../public/images/icons';
export default angular
.module('ignite-console', [
// Optional AngularJS modules.
'ngAnimate',
'ngSanitize',
'ngMessages',
// Third party libs.
'asyncFilter',
'dndLists',
'gridster',
'mgcrea.ngStrap',
'nvd3',
'pascalprecht.translate',
'smart-table',
'treeControl',
'ui.grid',
'ui.grid.autoResize',
'ui.grid.exporter',
'ui.grid.resizeColumns',
'ui.grid.saveState',
'ui.grid.selection',
'ui.router',
// Base modules.
'ignite-console.core',
'ignite-console.ace',
'ignite-console.Form',
'ignite-console.input-dialog',
'ignite-console.user',
'ignite-console.branding',
'ignite-console.agent',
'ignite-console.nodes',
'ignite-console.demo',
// States.
'ignite-console.states.logout',
'ignite-console.states.admin',
'ignite-console.states.errors',
'ignite-console.states.settings',
// Common modules.
'ignite-console.dialog',
'ignite-console.navbar',
'ignite-console.getting-started',
'ignite-console.loading',
// Ignite configuration module.
'ignite-console.config',
// Components
webConsoleHeader.name,
webConsoleFooter.name,
igniteIcon.name,
igniteServices.name,
versionPicker.name,
userNotifications.name,
pageAdmin.name,
pageQueries.name,
gridColumnSelector.name,
gridItemSelected.name,
gridNoData.name,
gridExport.name,
gridShowingRows.name,
bsSelectMenu.name,
uiGrid.name,
uiGridHovering.name,
uiGridFilters.name,
uiGridColumnResizer.name,
protectFromBsSelectRender.name,
AngularStrapTooltip.name,
AngularStrapSelect.name,
listEditable.name,
panelCollapsible.name,
clusterSelector.name,
servicesModule.name,
connectedClusters.name,
connectedClustersDialog.name,
igniteListOfRegisteredUsers.name,
dialogAdminCreateUser.name,
pageProfile.name,
pageLanding.name,
pagePasswordChanged.name,
pagePasswordReset.name,
pageSignup.name,
pageSignin.name,
pageForgotPassword.name,
breadcrumbs.name,
passwordVisibility.name,
igniteChart.name,
igniteChartSelector.name,
statusOutput.name,
progressLine.name,
formField.name,
formSignup.name,
timedRedirection.name,
sidebar.name,
permanentNotifications.name,
timedRedirection.name,
signupConfirmation.name,
noDataCmp.name,
globalProgressBar.name
])
.service('$exceptionHandler', $exceptionHandler)
// Directives.
.directive('igniteAutoFocus', igniteAutoFocus)
.directive('igniteCopyToClipboard', igniteCopyToClipboard)
.directive('hideOnStateChange', igniteHideOnStateChange)
.directive('igniteMatch', igniteMatch)
.directive('igniteOnClickFocus', igniteOnClickFocus)
.directive('igniteOnEnter', igniteOnEnter)
.directive('igniteOnEnterFocusMove', igniteOnEnterFocusMove)
.directive('igniteOnEscape', igniteOnEscape)
.directive('igniteRetainSelection', igniteRetainSelection)
.directive('igniteOnFocusOut', igniteOnFocusOut)
.directive('btnIgniteLinkDashedSuccess', btnIgniteLink)
.directive('btnIgniteLinkDashedSecondary', btnIgniteLink)
// Services.
.service('IgniteErrorPopover', ErrorPopover)
.service('JavaTypes', JavaTypes)
.service('SqlTypes', SqlTypes)
.service('IgniteChartColors', ChartColors)
.service('IgniteConfirm', IgniteConfirm)
.service('Confirm', Confirm)
.service('IgniteConfirmBatch', ConfirmBatch)
.service('IgniteCopyToClipboard', CopyToClipboard)
.service('IgniteCountries', Countries)
.service('IgniteFocus', Focus)
.service('IgniteInetAddress', InetAddress)
.service('IgniteMessages', Messages)
.service('IgniteErrorParser', ErrorParser)
.service('IgniteModelNormalizer', ModelNormalizer)
.service('IgniteLegacyTable', LegacyTable)
.service('IgniteFormUtils', FormUtils)
.service('IgniteLegacyUtils', LegacyUtils)
.service('IgniteActivitiesUserDialog', IgniteActivitiesUserDialog)
.service('CSV', CSV)
.service('Store', Store)
// Filters.
.filter('byName', byName)
.filter('bytes', bytes)
.filter('defaultName', defaultName)
.filter('domainsValidation', domainsValidation)
.filter('duration', duration)
.filter('hasPojo', hasPojo)
.filter('uiGridSubcategories', uiGridSubcategories)
.filter('id8', id8)
.config(['$translateProvider', '$stateProvider', '$locationProvider', '$urlRouterProvider',
/**
* @param {angular.translate.ITranslateProvider} $translateProvider
* @param {import('@uirouter/angularjs').StateProvider} $stateProvider
* @param {ng.ILocationProvider} $locationProvider
* @param {import('@uirouter/angularjs').UrlRouterProvider} $urlRouterProvider
*/
($translateProvider, $stateProvider, $locationProvider, $urlRouterProvider) => {
$translateProvider.translations('en', i18n);
$translateProvider.preferredLanguage('en');
// Set up the states.
$stateProvider
.state('base', {
url: '',
abstract: true,
template: baseTemplate
});
$urlRouterProvider.otherwise('/404');
$locationProvider.html5Mode(true);
}])
.run(['$rootScope', '$state', 'gettingStarted',
/**
* @param {ng.IRootScopeService} $root
* @param {import('@uirouter/angularjs').StateService} $state
* @param {ReturnType<typeof import('./modules/getting-started/GettingStarted.provider').service>} gettingStarted
*/
($root, $state, gettingStarted) => {
$root._ = _;
$root.$state = $state;
$root.gettingStarted = gettingStarted;
}
])
.run(['$rootScope', 'AgentManager',
/**
* @param {ng.IRootScopeService} $root
* @param {import('./modules/agent/AgentManager.service').default} agentMgr
*/
($root, agentMgr) => {
let lastUser;
$root.$on('user', (e, user) => {
if (lastUser)
return;
lastUser = user;
agentMgr.connect();
});
}
])
.run(['$transitions',
/**
* @param {import('@uirouter/angularjs').TransitionService} $transitions
*/
($transitions) => {
$transitions.onSuccess({ }, (trans) => {
try {
const {name, unsaved} = trans.$to();
const params = trans.params();
if (unsaved)
localStorage.removeItem('lastStateChangeSuccess');
else
localStorage.setItem('lastStateChangeSuccess', JSON.stringify({name, params}));
}
catch (ignored) {
// No-op.
}
});
}
])
.run(['$rootScope', '$http', '$state', 'IgniteMessages', 'User', 'IgniteNotebookData',
/**
* @param {ng.IRootScopeService} $root
* @param {ng.IHttpService} $http
* @param {ReturnType<typeof import('./services/Messages.service').default>} Messages
*/
($root, $http, $state, Messages, User, Notebook) => { // eslint-disable-line no-shadow
$root.revertIdentity = () => {
$http.get('/api/v1/admin/revert/identity')
.then(() => User.load())
.then(() => $state.go('base.settings.admin'))
.then(() => Notebook.load())
.catch(Messages.showError);
};
}
])
.run(['IgniteIcon',
/**
* @param {import('./components/ignite-icon/service').default} IgniteIcon
*/
(IgniteIcon) => IgniteIcon.registerIcons(icons)
]);