ui/app/router.js

245 lines
6.9 KiB
JavaScript

import Ember from 'ember';
import config from './config/environment';
var Router = Ember.Router.extend({
location: config.locationType
});
Router.map(function() {
this.route('ie');
this.route('index');
this.route('failWhale', { path: '/fail' });
this.route('login');
this.route('logout');
this.route('authenticated', { path: '/'}, function() {
// Settings
this.resource('settings', function() {
this.route('apikeys', {path: '/api'});
this.route('projects', { path: '/environments' });
this.route('project-detail', { path: '/environments/:project_id' });
this.route('registries', { path: '/registries' });
this.route('registry-new', { path: '/registries/add' });
this.route('registry-detail', { path: '/registries/:registry_id' });
});
// Admin
this.resource('admin-tab', {path: '/admin'}, function() {
this.route('auth', {path: '/access'}, function() {
this.route('github');
this.route('ldap');
this.route('localauth', {path: 'local'});
});
this.route('host');
this.route('accounts', {path: '/accounts'}, function() {
this.route('index', {path: '/'});
this.route('new', {path: '/add'});
});
this.route('processes', {path: '/processes'}, function() {
this.route('index', {path: '/'});
this.route('process', {path: '/:process_id'});
});
});
// Infrastructure
this.resource('infrastructure-tab', {path: '/infra'}, function() {
this.resource('hosts', { path: '/hosts'}, function() {
this.route('index', {path: '/'});
this.route('new', {path: '/add'}, function() {
this.route('amazonec2');
this.route('digitalocean');
this.route('exoscale');
this.route('openstack');
this.route('packet');
this.route('rackspace');
this.route('ubiquity');
this.route('other');
this.route('custom');
});
this.resource('host', { path: '/:host_id' }, function() {
this.route('containers');
this.route('storage', {path: '/storage'});
this.route('labels');
});
});
this.resource('containers', function() {
this.route('new', {path: '/add'});
this.route('index', {path: '/'});
this.resource('container', { path: '/:container_id' }, function() {
this.route('edit');
this.route('ports');
this.route('volumes');
this.route('labels');
});
});
this.resource('certificates', function() {
this.route('new', {path: '/add'});
this.route('index', {path: '/'});
this.route('detail', {path: '/:certificate_id'});
});
this.resource('storagepools', function() {
this.route('index', {path: '/'});
this.route('detail', {path: '/:storagepool_id'});
});
this.resource('storagepools.new-volume', {path: '/add-volume'});
});
// Applications
this.resource('applications-tab', {path: '/apps'}, function() {
this.resource('splash', {path: '/welcome'});
this.resource('service.new', {path: '/add-service'});
this.resource('service.new-balancer', {path: '/add-balancer'});
this.resource('service.new-alias', {path: '/add-alias'});
this.resource('service.new-external', {path: '/add-external'});
this.resource('environments', {path: '/'}, function() {
this.route('index', {path: '/'});
this.route('new', {path: '/add'});
this.resource('environment', {path: '/:environment_id'}, function() {
this.route('index', {path: '/'});
this.route('code', {path: '/code'});
this.route('graph', {path: '/graph'});
this.route('chart', {path: '/chart'});
this.resource('service', {path: '/services/:service_id'}, function() {
this.route('containers');
this.route('labels');
this.route('ports');
this.route('edit');
this.route('links');
});
});
});
this.route('catalog', {path: '/catalog'}, function() {
this.route('index', {path: '/'});
this.route('launch', {path: '/:template'});
});
});
// End: Authenticated
});
// Modals
this.modal('delete-confirmation', {
dismissWithOutsideClick: false,
dialogClass: 'small',
withParams: { 'confirmDeleteResources': 'resources' },
actions: { confirm: 'confirmDelete' }
});
this.modal('modal-about', {
dismissWithOutsideClick: false,
withParams: 'showAbout',
dialogClass: 'about',
});
this.modal('modal-shell', {
dismissWithOutsideClick: false,
withParams: 'showShell',
otherParams: 'originalModel',
dialogClass: 'modal-shell',
});
this.modal('modal-container-logs', {
dismissWithOutsideClick: false,
withParams: 'showContainerLogs',
otherParams: 'originalModel',
dialogClass: 'modal-logs',
});
this.modal('edit-container', {
dismissWithOutsideClick: false,
withParams: 'editContainer',
otherParams: 'originalModel',
});
this.modal('edit-host', {
dismissWithOutsideClick: false,
withParams: 'editHost',
otherParams: 'originalModel',
});
this.modal('edit-apikey', {
dismissWithOutsideClick: false,
withParams: 'editApikey',
otherParams: {'originalModel': 'originalModel', 'editApikeyIsNew': 'justCreated'}
});
this.modal('edit-project', {
dismissWithOutsideClick: false,
dialogClass: 'full-height',
withParams: 'editProject',
otherParams: 'originalModel',
});
this.modal('edit-registry', {
dismissWithOutsideClick: false,
withParams: 'editRegistry',
otherParams: 'originalModel',
});
this.modal('edit-environment', {
dismissWithOutsideClick: false,
withParams: 'editEnvironment',
otherParams: 'originalModel',
});
this.modal('edit-service', {
dismissWithOutsideClick: false,
withParams: 'editService',
otherParams: 'originalModel',
});
this.modal('edit-aliasservice', {
dismissWithOutsideClick: false,
withParams: 'editAliasService',
otherParams: 'originalModel',
});
this.modal('edit-externalservice', {
dismissWithOutsideClick: false,
withParams: 'editExternalService',
otherParams: 'originalModel',
});
this.modal('edit-loadbalancerservice', {
dismissWithOutsideClick: false,
withParams: 'editLoadBalancerService',
otherParams: 'originalModel',
});
this.modal('edit-account', {
dismissWithOutsideClick: false,
withParams: 'editAccount',
otherParams: 'originalModel',
});
this.modal('modal-catalog-launch', {
dismissWithOutsideClick: true,
withParams: 'launchCatalog',
otherParams: {originalModel: 'originalModel', environmentResource: 'environmentResource'}
});
this.modal('modal-process-error', {
dismissWithOutsideClick: true,
withParams: 'openProcessesError',
otherParams: 'exception'
});
// End: Modals
});
export default Router;