mirror of
https://github.com/portainer/portainer.git
synced 2025-07-19 13:29:41 +02:00
* refactor(module): provide basic endpoint id url * fix(stacks): fix route to include endpointId * fix(stacks): fix stacks urls * fix(sidebar): fix urls to docker routes * refactor(app): set endpoint id on change view * refactor(dashboard): revert to old version * refactor(sidebar): revert file * feat(app): wip load endpoint on route change * feat(home): show error * feat(app): load endpoint route * feat(sidebar): show endpoint per provider * refactor(app): revert * refactor(app): clean endpoint startup * feat(edge): check for edge k8s * refactor(endpoints): move all modules under endpoint route * refactor(stacks): move stacks route to docker * refactor(templates): move templates route to docker * refactor(app): check endpoint when entering docker module * fix(app): load endpoint when entering endpoints modules * feat(azure): check endpoint * feat(kubernetes): check endpoint * feat(home): show loading state when loading edge * style(app): revert small changes * refactor(sidebar): remove refernce to endpointId * fix(stacks): fix stacks route * style(docker): sort routes * feat(app): change route to home if endpoint failed * fix(services): guard against empty snapshots * feat(app): show error when failed to load endpoint * feat(app): reload home route when failing * refactor(router): replace resolvers with onEnter
268 lines
6.5 KiB
JavaScript
268 lines
6.5 KiB
JavaScript
angular.module('portainer.kubernetes', ['portainer.app']).config([
|
|
'$stateRegistryProvider',
|
|
function ($stateRegistryProvider) {
|
|
'use strict';
|
|
|
|
const kubernetes = {
|
|
name: 'kubernetes',
|
|
url: '/kubernetes',
|
|
parent: 'endpoint',
|
|
abstract: true,
|
|
/* @ngInject */
|
|
async onEnter($state, endpoint, EndpointProvider, KubernetesHealthService, Notifications, StateManager) {
|
|
try {
|
|
if (endpoint.Type === 7) {
|
|
try {
|
|
await KubernetesHealthService.ping();
|
|
endpoint.Status = 1;
|
|
} catch (e) {
|
|
endpoint.Status = 2;
|
|
}
|
|
}
|
|
|
|
EndpointProvider.setEndpointID(endpoint.Id);
|
|
await StateManager.updateEndpointState(endpoint, []);
|
|
} catch (e) {
|
|
Notifications.error('Failed loading endpoint', e);
|
|
$state.go('portainer.home', {}, { reload: true });
|
|
}
|
|
},
|
|
};
|
|
|
|
const applications = {
|
|
name: 'kubernetes.applications',
|
|
url: '/applications',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesApplicationsView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const applicationCreation = {
|
|
name: 'kubernetes.applications.new',
|
|
url: '/new',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesCreateApplicationView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const application = {
|
|
name: 'kubernetes.applications.application',
|
|
url: '/:namespace/:name',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesApplicationView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const applicationEdit = {
|
|
name: 'kubernetes.applications.application.edit',
|
|
url: '/edit',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesCreateApplicationView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const applicationConsole = {
|
|
name: 'kubernetes.applications.application.console',
|
|
url: '/:pod/console',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesApplicationConsoleView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const applicationLogs = {
|
|
name: 'kubernetes.applications.application.logs',
|
|
url: '/:pod/logs',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesApplicationLogsView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const stacks = {
|
|
name: 'kubernetes.stacks',
|
|
url: '/stacks',
|
|
abstract: true,
|
|
};
|
|
|
|
const stack = {
|
|
name: 'kubernetes.stacks.stack',
|
|
url: '/:namespace/:name',
|
|
abstract: true,
|
|
};
|
|
|
|
const stackLogs = {
|
|
name: 'kubernetes.stacks.stack.logs',
|
|
url: '/logs',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesStackLogsView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const configurations = {
|
|
name: 'kubernetes.configurations',
|
|
url: '/configurations',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesConfigurationsView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const configurationCreation = {
|
|
name: 'kubernetes.configurations.new',
|
|
url: '/new',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesCreateConfigurationView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const configuration = {
|
|
name: 'kubernetes.configurations.configuration',
|
|
url: '/:namespace/:name',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesConfigurationView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const cluster = {
|
|
name: 'kubernetes.cluster',
|
|
url: '/cluster',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesClusterView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const node = {
|
|
name: 'kubernetes.cluster.node',
|
|
url: '/:name',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesNodeView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const dashboard = {
|
|
name: 'kubernetes.dashboard',
|
|
url: '/dashboard',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesDashboardView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const deploy = {
|
|
name: 'kubernetes.deploy',
|
|
url: '/deploy',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesDeployView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const resourcePools = {
|
|
name: 'kubernetes.resourcePools',
|
|
url: '/pools',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesResourcePoolsView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const resourcePoolCreation = {
|
|
name: 'kubernetes.resourcePools.new',
|
|
url: '/new',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesCreateResourcePoolView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const resourcePool = {
|
|
name: 'kubernetes.resourcePools.resourcePool',
|
|
url: '/:id',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesResourcePoolView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const resourcePoolAccess = {
|
|
name: 'kubernetes.resourcePools.resourcePool.access',
|
|
url: '/access',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesResourcePoolAccessView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const volumes = {
|
|
name: 'kubernetes.volumes',
|
|
url: '/volumes',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesVolumesView',
|
|
},
|
|
},
|
|
};
|
|
|
|
const volume = {
|
|
name: 'kubernetes.volumes.volume',
|
|
url: '/:namespace/:name',
|
|
views: {
|
|
'content@': {
|
|
component: 'kubernetesVolumeView',
|
|
},
|
|
},
|
|
};
|
|
|
|
$stateRegistryProvider.register(kubernetes);
|
|
$stateRegistryProvider.register(applications);
|
|
$stateRegistryProvider.register(applicationCreation);
|
|
$stateRegistryProvider.register(application);
|
|
$stateRegistryProvider.register(applicationEdit);
|
|
$stateRegistryProvider.register(applicationConsole);
|
|
$stateRegistryProvider.register(applicationLogs);
|
|
$stateRegistryProvider.register(stacks);
|
|
$stateRegistryProvider.register(stack);
|
|
$stateRegistryProvider.register(stackLogs);
|
|
$stateRegistryProvider.register(configurations);
|
|
$stateRegistryProvider.register(configurationCreation);
|
|
$stateRegistryProvider.register(configuration);
|
|
$stateRegistryProvider.register(cluster);
|
|
$stateRegistryProvider.register(dashboard);
|
|
$stateRegistryProvider.register(deploy);
|
|
$stateRegistryProvider.register(node);
|
|
$stateRegistryProvider.register(resourcePools);
|
|
$stateRegistryProvider.register(resourcePoolCreation);
|
|
$stateRegistryProvider.register(resourcePool);
|
|
$stateRegistryProvider.register(resourcePoolAccess);
|
|
$stateRegistryProvider.register(volumes);
|
|
$stateRegistryProvider.register(volume);
|
|
},
|
|
]);
|