From 672819f3af2618d8000d22c87aa5a2ef12cd4e9d Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Wed, 24 Jan 2018 21:58:58 +0100 Subject: [PATCH 1/8] refactor(api): remove CLI deprecation related code (#1602) --- api/cli/cli.go | 22 +++------------------- api/portainer.go | 11 +++++------ 2 files changed, 8 insertions(+), 25 deletions(-) diff --git a/api/cli/cli.go b/api/cli/cli.go index 5df0ce974..db0d80603 100644 --- a/api/cli/cli.go +++ b/api/cli/cli.go @@ -1,7 +1,6 @@ package cli import ( - "log" "time" "github.com/portainer/portainer" @@ -48,10 +47,9 @@ func (*Service) ParseFlags(version string) (*portainer.CLIFlags, error) { SyncInterval: kingpin.Flag("sync-interval", "Duration between each synchronization via the external endpoints source").Default(defaultSyncInterval).String(), AdminPassword: kingpin.Flag("admin-password", "Hashed admin password").String(), AdminPasswordFile: kingpin.Flag("admin-password-file", "Path to the file containing the password for the admin user").String(), - // Deprecated flags - Labels: pairs(kingpin.Flag("hide-label", "Hide containers with a specific label in the UI").Short('l')), - Logo: kingpin.Flag("logo", "URL for the logo displayed in the UI").String(), - Templates: kingpin.Flag("templates", "URL to the templates (apps) definitions").Short('t').String(), + Labels: pairs(kingpin.Flag("hide-label", "Hide containers with a specific label in the UI").Short('l')), + Logo: kingpin.Flag("logo", "URL for the logo displayed in the UI").String(), + Templates: kingpin.Flag("templates", "URL to the templates (apps) definitions").Short('t').String(), } kingpin.Parse() @@ -97,8 +95,6 @@ func (*Service) ValidateFlags(flags *portainer.CLIFlags) error { return errAdminPassExcludeAdminPassFile } - displayDeprecationWarnings(*flags.Templates, *flags.Logo, *flags.Labels) - return nil } @@ -142,15 +138,3 @@ func validateSyncInterval(syncInterval string) error { } return nil } - -func displayDeprecationWarnings(templates, logo string, labels []portainer.Pair) { - if templates != "" { - log.Println("Warning: the --templates / -t flag is deprecated and will be removed in future versions.") - } - if logo != "" { - log.Println("Warning: the --logo flag is deprecated and will be removed in future versions.") - } - if labels != nil { - log.Println("Warning: the --hide-label / -l flag is deprecated and will be removed in future versions.") - } -} diff --git a/api/portainer.go b/api/portainer.go index cdfd3f2ff..e898d2909 100644 --- a/api/portainer.go +++ b/api/portainer.go @@ -12,12 +12,17 @@ type ( // CLIFlags represents the available flags on the CLI. CLIFlags struct { Addr *string + AdminPassword *string + AdminPasswordFile *string Assets *string Data *string Endpoint *string ExternalEndpoints *string + Labels *[]Pair + Logo *string NoAuth *bool NoAnalytics *bool + Templates *string TLSVerify *bool TLSCacert *string TLSCert *string @@ -26,12 +31,6 @@ type ( SSLCert *string SSLKey *string SyncInterval *string - AdminPassword *string - AdminPasswordFile *string - // Deprecated fields - Labels *[]Pair - Logo *string - Templates *string } // Status represents the application status. From f31f29fa2f1daf541f27ec9bea20283a829fa81d Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Thu, 25 Jan 2018 08:13:56 +0100 Subject: [PATCH 2/8] feat(volumes): check if volumes are used in service definitions (#1601) --- app/components/volumes/volumesController.js | 14 +++++++++++--- app/helpers/volumeHelper.js | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/app/components/volumes/volumesController.js b/app/components/volumes/volumesController.js index 1610800a7..4361a8199 100644 --- a/app/components/volumes/volumesController.js +++ b/app/components/volumes/volumesController.js @@ -1,6 +1,6 @@ angular.module('volumes', []) -.controller('VolumesController', ['$q', '$scope', '$state', 'VolumeService', 'Notifications', -function ($q, $scope, $state, VolumeService, Notifications) { +.controller('VolumesController', ['$q', '$scope', '$state', 'VolumeService', 'ServiceService', 'VolumeHelper', 'Notifications', +function ($q, $scope, $state, VolumeService, ServiceService, VolumeHelper, Notifications) { $scope.removeAction = function (selectedItems) { var actionCount = selectedItems.length; @@ -24,16 +24,24 @@ function ($q, $scope, $state, VolumeService, Notifications) { }; function initView() { + var endpointProvider = $scope.applicationState.endpoint.mode.provider; + var endpointRole = $scope.applicationState.endpoint.mode.role; + $q.all({ attached: VolumeService.volumes({ filters: { 'dangling': ['false'] } }), - dangling: VolumeService.volumes({ filters: { 'dangling': ['true'] } }) + dangling: VolumeService.volumes({ filters: { 'dangling': ['true'] } }), + services: endpointProvider === 'DOCKER_SWARM_MODE' && endpointRole === 'MANAGER' ? ServiceService.services() : [] }) .then(function success(data) { + var services = data.services; $scope.volumes = data.attached.map(function(volume) { volume.dangling = false; return volume; }).concat(data.dangling.map(function(volume) { volume.dangling = true; + if (VolumeHelper.isVolumeUsedByAService(volume, services)) { + volume.dangling = false; + } return volume; })); }).catch(function error(err) { diff --git a/app/helpers/volumeHelper.js b/app/helpers/volumeHelper.js index b462fad85..45ca512d4 100644 --- a/app/helpers/volumeHelper.js +++ b/app/helpers/volumeHelper.js @@ -11,5 +11,20 @@ angular.module('portainer.helpers') return options; }; + helper.isVolumeUsedByAService = function(volume, services) { + for (var i = 0; i < services.length; i++) { + var service = services[i]; + var mounts = service.Mounts; + for (var j = 0; j < mounts.length; j++) { + var mount = mounts[j]; + if (mount.Source === volume.Id) { + return true; + } + } + } + + return false; + }; + return helper; }]); From e6422a6d75987c915619e36c1b03a55c2bf606d7 Mon Sep 17 00:00:00 2001 From: Ben Yanke Date: Wed, 31 Jan 2018 13:28:36 -0600 Subject: [PATCH 3/8] style(container-details): fix a typo in container status --- app/components/container/container.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/container/container.html b/app/components/container/container.html index 08843a9f7..15b94b8b7 100644 --- a/app/components/container/container.html +++ b/app/components/container/container.html @@ -66,7 +66,7 @@ - {{ container.State|getstatetext }} since {{ activityTime }} with exit code {{ container.State.ExitCode }} + {{ container.State|getstatetext }} for {{ activityTime }} with exit code {{ container.State.ExitCode }} From 27dceadba11ab20ad332d1c9597d94626caa545f Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Thu, 1 Feb 2018 13:27:52 +0100 Subject: [PATCH 4/8] refactor(app): introduce new project structure for the frontend (#1623) --- app/__module.js | 64 +- app/app.js | 2 +- app/components/networks/networks.html | 144 ---- app/components/sidebar/sidebar.html | 102 --- app/config.js | 7 +- .../accessManagement/por-access-management.js | 8 - .../imageRegistry/por-image-registry.js | 9 - app/directives/ui/__module.js | 1 - app/docker/__module.js | 484 +++++++++++ .../configs-datatable/configsDatatable.html | 4 +- .../configs-datatable/configsDatatable.js | 4 +- .../containerNetworksDatatable.html | 2 +- .../containerNetworksDatatable.js | 4 +- .../containerProcessesDatatable.html | 0 .../containerProcessesDatatable.js | 4 +- .../containersDatatable.html | 16 +- .../containersDatatable.js | 4 +- .../containersDatatableController.js | 2 +- .../events-datatable/eventsDatatable.html | 0 .../events-datatable/eventsDatatable.js | 4 +- .../images-datatable/imagesDatatable.html | 2 +- .../images-datatable/imagesDatatable.js | 4 +- .../imagesDatatableController.js | 2 +- .../networks-datatable/networksDatatable.html | 4 +- .../networks-datatable/networksDatatable.js | 4 +- .../nodeTasksDatatable.html | 2 +- .../nodeTasksDatatable.js | 4 +- .../nodes-datatable/nodesDatatable.html | 2 +- .../nodes-datatable/nodesDatatable.js | 4 +- .../nodes-ss-datatable/nodesSSDatatable.html | 0 .../nodes-ss-datatable/nodesSSDatatable.js | 4 +- .../secrets-datatable/secretsDatatable.html | 4 +- .../secrets-datatable/secretsDatatable.js | 4 +- .../services-datatable/servicesDatatable.html | 4 +- .../services-datatable/servicesDatatable.js | 4 +- .../tasks-datatable/tasksDatatable.html | 2 +- .../tasks-datatable/tasksDatatable.js | 4 +- .../volumes-datatable/volumesDatatable.html | 4 +- .../volumes-datatable/volumesDatatable.js | 4 +- .../volumesDatatableController.js | 2 +- .../docker-sidebar-content.js | 12 + .../dockerSidebarContent.html | 42 + .../imageRegistry/por-image-registry.js | 9 + .../imageRegistry/porImageRegistry.html | 0 .../porImageRegistryController.js | 2 +- app/{ => docker}/filters/filters.js | 120 +-- app/{ => docker}/helpers/configHelper.js | 2 +- app/{ => docker}/helpers/containerHelper.js | 2 +- app/{ => docker}/helpers/imageHelper.js | 2 +- app/{ => docker}/helpers/infoHelper.js | 2 +- app/{ => docker}/helpers/labelHelper.js | 2 +- app/{ => docker}/helpers/nodeHelper.js | 2 +- app/{ => docker}/helpers/secretHelper.js | 2 +- app/{ => docker}/helpers/serviceHelper.js | 47 +- app/{ => docker}/helpers/volumeHelper.js | 2 +- .../docker => docker/models}/config.js | 0 .../docker => docker/models}/container.js | 0 .../models}/containerDetails.js | 0 .../models}/containerStats.js | 0 app/{models/docker => docker/models}/event.js | 0 app/{models/docker => docker/models}/image.js | 0 .../docker => docker/models}/imageDetails.js | 0 .../docker => docker/models}/imageLayer.js | 0 .../docker => docker/models}/network.js | 0 app/{models/docker => docker/models}/node.js | 0 .../docker => docker/models}/plugin.js | 0 .../docker => docker/models}/secret.js | 0 .../docker => docker/models}/service.js | 0 app/{models/api => docker/models}/stack.js | 0 .../api => docker/models}/stackTemplate.js | 0 app/{models/docker => docker/models}/swarm.js | 0 app/{models/docker => docker/models}/task.js | 0 app/{models/api => docker/models}/template.js | 0 .../models}/templateLinuxServer.js | 0 .../docker => docker/models}/volume.js | 0 app/{rest/docker => docker/rest}/config.js | 2 +- app/{rest/docker => docker/rest}/container.js | 2 +- .../docker => docker/rest}/containerCommit.js | 2 +- .../docker => docker/rest}/containerLogs.js | 2 +- app/{rest/docker => docker/rest}/exec.js | 2 +- app/{rest/docker => docker/rest}/image.js | 2 +- app/{rest/docker => docker/rest}/network.js | 2 +- app/{rest/docker => docker/rest}/node.js | 2 +- app/{rest/docker => docker/rest}/plugin.js | 2 +- .../rest}/response/handlers.js | 0 app/{rest/docker => docker/rest}/secret.js | 2 +- app/{rest/docker => docker/rest}/service.js | 2 +- .../docker => docker/rest}/serviceLogs.js | 2 +- app/{rest/docker => docker/rest}/swarm.js | 2 +- app/{rest/docker => docker/rest}/system.js | 2 +- app/{rest/docker => docker/rest}/task.js | 2 +- app/{rest/docker => docker/rest}/volume.js | 2 +- .../services}/configService.js | 2 +- .../services}/containerService.js | 2 +- .../docker => docker/services}/execService.js | 2 +- .../services}/imageService.js | 2 +- .../services}/networkService.js | 2 +- .../docker => docker/services}/nodeService.js | 2 +- .../services}/pluginService.js | 2 +- .../services}/secretService.js | 2 +- .../services}/serviceService.js | 2 +- .../api => docker/services}/stackService.js | 2 +- .../services}/swarmService.js | 2 +- .../services}/systemService.js | 2 +- .../docker => docker/services}/taskService.js | 2 +- .../services}/volumeService.js | 2 +- .../views}/configs/configs.html | 2 +- .../views}/configs/configsController.js | 4 +- .../configs/create}/createConfigController.js | 4 +- .../views/configs/create}/createconfig.html | 2 +- .../views/configs/edit}/config.html | 4 +- .../views/configs/edit}/configController.js | 4 +- .../console}/containerConsoleController.js | 2 +- .../containers/console/containerconsole.html} | 2 +- .../views}/containers/containers.html | 2 +- .../views}/containers/containersController.js | 2 +- .../create}/createContainerController.js | 6 +- .../containers/create}/createcontainer.html | 4 +- .../views/containers/edit}/container.html | 14 +- .../containers/edit}/containerController.js | 12 +- .../inspect}/containerInspectController.js | 2 +- .../containers/inspect/containerinspect.html} | 2 +- .../logs}/containerLogsController.js | 2 +- .../views/containers/logs}/containerlogs.html | 2 +- .../stats}/containerStatsController.js | 2 +- .../containers/stats/containerstats.html} | 2 +- .../views}/dashboard/dashboard.html | 14 +- .../views}/dashboard/dashboardController.js | 2 +- .../views}/engine/engine.html | 2 +- .../views}/engine/engineController.js | 2 +- .../views}/events/events.html | 2 +- .../views}/events/eventsController.js | 2 +- .../views/images/edit}/image.html | 4 +- .../views/images/edit}/imageController.js | 12 +- .../views}/images/images.html | 2 +- .../views}/images/imagesController.js | 2 +- .../create}/createNetworkController.js | 4 +- .../views/networks/create}/createnetwork.html | 2 +- .../views/networks/edit}/network.html | 4 +- .../views/networks/edit}/networkController.js | 6 +- app/docker/views/networks/networks.html | 20 + .../views}/networks/networksController.js | 2 +- .../views/nodes/edit}/node.html | 4 +- .../views/nodes/edit}/nodeController.js | 6 +- .../secrets/create}/createSecretController.js | 4 +- .../views/secrets/create}/createsecret.html | 2 +- .../views/secrets/edit}/secret.html | 4 +- .../views/secrets/edit}/secretController.js | 4 +- .../views}/secrets/secrets.html | 2 +- .../views}/secrets/secretsController.js | 2 +- .../create}/createServiceController.js | 40 +- .../views/services/create}/createservice.html | 10 +- .../services/create}/includes/config.html | 0 .../create}/includes/resources-placement.html | 0 .../services/create}/includes/secret.html | 0 .../create}/includes/update-restart.html | 0 .../services/edit}/includes/configs.html | 2 +- .../services/edit}/includes/constraints.html | 0 .../edit}/includes/container-specs.html | 0 .../edit}/includes/containerlabels.html | 0 .../edit}/includes/environmentvariables.html | 0 .../views/services/edit}/includes/hosts.html | 0 .../services/edit}/includes/logging.html | 0 .../views/services/edit}/includes/mounts.html | 0 .../services/edit}/includes/networks.html | 2 +- .../edit}/includes/placementPreferences.html | 0 .../views/services/edit}/includes/ports.html | 0 .../services/edit}/includes/resources.html | 0 .../services/edit}/includes/restart.html | 0 .../services/edit}/includes/secrets.html | 2 +- .../edit}/includes/servicelabels.html | 0 .../views/services/edit}/includes/tasks.html | 0 .../services/edit}/includes/updateconfig.html | 0 .../views/services/edit}/service.html | 42 +- .../views/services/edit}/serviceController.js | 4 +- .../services/logs}/serviceLogsController.js | 2 +- .../views/services/logs}/servicelogs.html | 2 +- .../views}/services/services.html | 2 +- .../views}/services/servicesController.js | 2 +- .../stacks/create}/createStackController.js | 4 +- .../views/stacks/create}/createstack.html | 2 +- .../views/stacks/edit}/stack.html | 4 +- .../views/stacks/edit}/stackController.js | 2 +- .../views}/stacks/stacks.html | 2 +- .../views}/stacks/stacksController.js | 2 +- .../views}/swarm/swarm.html | 4 +- .../views}/swarm/swarmController.js | 2 +- .../visualizer}/swarmVisualizerController.js | 2 +- .../swarm/visualizer/swarmvisualizer.html} | 4 +- .../views/tasks/edit}/task.html | 2 +- .../views/tasks/edit}/taskController.js | 2 +- .../views}/templates/templates.html | 4 +- .../views}/templates/templatesController.js | 6 +- .../volumes/create}/createVolumeController.js | 4 +- .../views/volumes/create}/createvolume.html | 2 +- .../views/volumes/edit}/volume.html | 4 +- .../views/volumes/edit}/volumeController.js | 4 +- .../views}/volumes/volumes.html | 2 +- .../views}/volumes/volumesController.js | 2 +- app/extensions/storidge/__module.js | 63 +- .../storidgeProfilesDatatable.html | 2 +- .../views/cluster/clusterController.js | 2 +- .../create/createProfileController.js | 2 +- ...{createProfile.html => createprofile.html} | 0 .../edit/{editProfile.html => profile.html} | 0 ...fileController.js => profileController.js} | 2 +- .../storidge/views/profiles/profiles.html | 4 +- app/filters/__module.js | 1 - app/helpers/__module.js | 1 - app/portainer/__module.js | 266 ++++++ .../por-access-control-form.js | 4 +- .../porAccessControlForm.html | 4 +- .../porAccessControlFormController.js | 2 +- .../porAccessControlFormModel.js | 0 .../por-access-control-panel.js | 4 +- .../porAccessControlPanel.html | 8 +- .../porAccessControlPanelController.js | 2 +- .../accessManagement/por-access-management.js | 8 + .../accessManagement/porAccessManagement.html | 0 .../porAccessManagementController.js | 2 +- .../components}/autofocus.js | 2 +- .../components}/buttonSpinner.js | 3 +- .../components}/datatables/datatable.css | 0 .../endpointsDatatable.html | 4 +- .../endpoints-datatable/endpointsDatatable.js | 4 +- .../datatables}/genericDatatableController.js | 2 +- .../registriesDatatable.html | 6 +- .../registriesDatatable.js | 4 +- .../stackServicesDatatable.html | 2 +- .../stackServicesDatatable.js | 4 +- .../stacks-datatable/stacksDatatable.html | 4 +- .../stacks-datatable/stacksDatatable.js | 4 +- .../stacksDatatableController.js | 2 +- .../teams-datatable/teamsDatatable.html | 2 +- .../teams-datatable/teamsDatatable.js | 4 +- .../users-datatable/usersDatatable.html | 2 +- .../users-datatable/usersDatatable.js | 4 +- .../endpointSecurity/por-endpoint-security.js | 4 +- .../endpointSecurity/porEndpointSecurity.html | 0 .../porEndpointSecurityController.js | 2 +- .../porEndpointSecurityModel.js | 0 .../components}/header-content.js | 5 +- .../components}/header-title.js | 5 +- .../components}/header.js | 3 +- .../components}/loading.js | 3 +- .../components}/onEnterKey.js | 2 +- .../components}/slider/slider.html | 0 .../components}/slider/slider.js | 4 +- .../components}/slider/sliderController.js | 2 +- .../components}/template-widget.js | 3 +- .../components}/tooltip.js | 3 +- .../components}/widget-body.js | 3 +- .../components}/widget-custom-header.js | 3 +- .../components}/widget-footer.js | 3 +- .../components}/widget-header.js | 3 +- .../components}/widget-taskbar.js | 3 +- .../components}/widget.js | 3 +- app/portainer/filters/filters.js | 119 +++ app/{ => portainer}/helpers/formHelper.js | 2 +- app/{ => portainer}/helpers/registryHelper.js | 4 +- .../helpers/resourceControlHelper.js | 2 +- app/{ => portainer}/helpers/stackHelper.js | 2 +- app/{ => portainer}/helpers/templateHelper.js | 2 +- app/{ => portainer}/helpers/userHelper.js | 2 +- .../api => portainer/models}/access.js | 0 .../api => portainer/models}/dockerhub.js | 0 .../api => portainer/models}/registry.js | 0 .../models}/resourceControl.js | 0 .../models}/settings/ldapSettings.js | 0 .../models}/settings/settings.js | 0 .../api => portainer/models}/status.js | 0 app/{models/api => portainer/models}/team.js | 0 .../models}/teamMembership.js | 0 app/{models/api => portainer/models}/user.js | 0 app/{rest/api => portainer/rest}/auth.js | 2 +- app/{rest/api => portainer/rest}/dockerhub.js | 2 +- app/{rest/api => portainer/rest}/endpoint.js | 2 +- app/{rest/api => portainer/rest}/registry.js | 2 +- .../api => portainer/rest}/resourceControl.js | 2 +- app/{rest/api => portainer/rest}/settings.js | 2 +- app/{rest/api => portainer/rest}/stack.js | 2 +- app/{rest/api => portainer/rest}/status.js | 2 +- app/{rest/api => portainer/rest}/team.js | 2 +- .../api => portainer/rest}/teamMembership.js | 2 +- app/{rest/api => portainer/rest}/template.js | 2 +- app/{rest/api => portainer/rest}/user.js | 2 +- .../services/api/accessService.js | 2 +- .../services/api/dockerhubService.js | 2 +- .../services/api/endpointService.js | 2 +- .../services/api/registryService.js | 2 +- .../services/api/resourceControlService.js | 2 +- .../services/api/settingsService.js | 2 +- .../services/api/statusService.js | 2 +- .../services/api/teamMembershipService.js | 2 +- .../services/api/teamService.js | 2 +- .../services/api/userService.js | 2 +- .../services/authentication.js | 2 +- app/{ => portainer}/services/chartService.js | 2 +- app/{ => portainer}/services/codeMirror.js | 2 +- .../services}/datatableService.js | 2 +- .../services/endpointProvider.js | 2 +- .../services/extensionManager.js | 2 +- app/{ => portainer}/services/fileUpload.js | 2 +- app/{ => portainer}/services/formValidator.js | 2 +- .../services/httpRequestHelper.js | 2 +- app/{ => portainer}/services/localStorage.js | 2 +- app/{ => portainer}/services/modalService.js | 2 +- app/{ => portainer}/services/notifications.js | 2 +- app/{ => portainer}/services/pagination.js | 2 +- app/{ => portainer}/services/stateManager.js | 2 +- .../services/templateService.js | 2 +- .../views}/about/about.html | 0 .../views/account/account.html} | 0 .../views/account/accountController.js} | 4 +- .../views}/auth/auth.html | 0 .../views}/auth/authController.js | 12 +- .../endpoints/access}/endpointAccess.html | 2 +- .../access}/endpointAccessController.js | 2 +- .../views/endpoints/edit}/endpoint.html | 4 +- .../endpoints/edit}/endpointController.js | 6 +- .../views}/endpoints/endpoints.html | 2 +- .../views}/endpoints/endpointsController.js | 2 +- .../views/init/admin}/initAdmin.html | 0 .../views/init/admin}/initAdminController.js | 6 +- .../views/init/endpoint}/initEndpoint.html | 0 .../init/endpoint}/initEndpointController.js | 8 +- .../views}/main/mainController.js | 2 +- .../registries/access}/registryAccess.html | 2 +- .../access}/registryAccessController.js | 2 +- .../create}/createRegistryController.js | 4 +- .../registries/create}/createregistry.html | 2 +- .../views/registries/edit}/registry.html | 4 +- .../registries/edit}/registryController.js | 4 +- .../views}/registries/registries.html | 2 +- .../views}/registries/registriesController.js | 2 +- .../settingsAuthentication.html | 2 +- .../settingsAuthenticationController.js | 10 +- .../views}/settings/settings.html | 0 .../views}/settings/settingsController.js | 19 +- app/portainer/views/sidebar/sidebar.html | 69 ++ .../views}/sidebar/sidebarController.js | 14 +- .../views/teams/edit}/team.html | 2 +- .../views/teams/edit}/teamController.js | 4 +- .../views}/teams/teams.html | 2 +- .../views}/teams/teamsController.js | 2 +- .../views/users/edit}/user.html | 2 +- .../views/users/edit}/userController.js | 4 +- .../views}/users/users.html | 6 +- .../views}/users/usersController.js | 2 +- app/rest/__module.js | 1 - app/routes.js | 771 ------------------ app/services/__module.js | 1 - gruntfile.js | 2 +- index.html | 4 +- 354 files changed, 1518 insertions(+), 1755 deletions(-) delete mode 100644 app/components/networks/networks.html delete mode 100644 app/components/sidebar/sidebar.html delete mode 100644 app/directives/accessManagement/por-access-management.js delete mode 100644 app/directives/imageRegistry/por-image-registry.js delete mode 100644 app/directives/ui/__module.js create mode 100644 app/docker/__module.js rename app/{directives/ui => docker/components}/datatables/configs-datatable/configsDatatable.html (97%) rename app/{directives/ui => docker/components}/datatables/configs-datatable/configsDatatable.js (61%) rename app/{directives/ui => docker/components}/datatables/container-networks-datatable/containerNetworksDatatable.html (97%) rename app/{directives/ui => docker/components}/datatables/container-networks-datatable/containerNetworksDatatable.js (62%) rename app/{directives/ui => docker/components}/datatables/container-processes-datatable/containerProcessesDatatable.html (100%) rename app/{directives/ui => docker/components}/datatables/container-processes-datatable/containerProcessesDatatable.js (53%) rename app/{directives/ui => docker/components}/datatables/containers-datatable/containersDatatable.html (93%) rename app/{directives/ui => docker/components}/datatables/containers-datatable/containersDatatable.js (73%) rename app/{directives/ui => docker/components}/datatables/containers-datatable/containersDatatableController.js (99%) rename app/{directives/ui => docker/components}/datatables/events-datatable/eventsDatatable.html (100%) rename app/{directives/ui => docker/components}/datatables/events-datatable/eventsDatatable.js (56%) rename app/{directives/ui => docker/components}/datatables/images-datatable/imagesDatatable.html (98%) rename app/{directives/ui => docker/components}/datatables/images-datatable/imagesDatatable.js (62%) rename app/{directives/ui => docker/components}/datatables/images-datatable/imagesDatatableController.js (98%) rename app/{directives/ui => docker/components}/datatables/networks-datatable/networksDatatable.html (98%) rename app/{directives/ui => docker/components}/datatables/networks-datatable/networksDatatable.js (61%) rename app/{directives/ui => docker/components}/datatables/node-tasks-datatable/nodeTasksDatatable.html (97%) rename app/{directives/ui => docker/components}/datatables/node-tasks-datatable/nodeTasksDatatable.js (55%) rename app/{directives/ui => docker/components}/datatables/nodes-datatable/nodesDatatable.html (98%) rename app/{directives/ui => docker/components}/datatables/nodes-datatable/nodesDatatable.js (63%) rename app/{directives/ui => docker/components}/datatables/nodes-ss-datatable/nodesSSDatatable.html (100%) rename app/{directives/ui => docker/components}/datatables/nodes-ss-datatable/nodesSSDatatable.js (56%) rename app/{directives/ui => docker/components}/datatables/secrets-datatable/secretsDatatable.html (97%) rename app/{directives/ui => docker/components}/datatables/secrets-datatable/secretsDatatable.js (61%) rename app/{directives/ui => docker/components}/datatables/services-datatable/servicesDatatable.html (98%) rename app/{directives/ui => docker/components}/datatables/services-datatable/servicesDatatable.js (69%) rename app/{directives/ui => docker/components}/datatables/tasks-datatable/tasksDatatable.html (97%) rename app/{directives/ui => docker/components}/datatables/tasks-datatable/tasksDatatable.js (61%) rename app/{directives/ui => docker/components}/datatables/volumes-datatable/volumesDatatable.html (98%) rename app/{directives/ui => docker/components}/datatables/volumes-datatable/volumesDatatable.js (61%) rename app/{directives/ui => docker/components}/datatables/volumes-datatable/volumesDatatableController.js (98%) create mode 100644 app/docker/components/dockerSidebarContent/docker-sidebar-content.js create mode 100644 app/docker/components/dockerSidebarContent/dockerSidebarContent.html create mode 100644 app/docker/components/imageRegistry/por-image-registry.js rename app/{directives => docker/components}/imageRegistry/porImageRegistry.html (100%) rename app/{directives => docker/components}/imageRegistry/porImageRegistryController.js (97%) rename app/{ => docker}/filters/filters.js (69%) rename app/{ => docker}/helpers/configHelper.js (95%) rename app/{ => docker}/helpers/containerHelper.js (97%) rename app/{ => docker}/helpers/imageHelper.js (97%) rename app/{ => docker}/helpers/infoHelper.js (96%) rename app/{ => docker}/helpers/labelHelper.js (94%) rename app/{ => docker}/helpers/nodeHelper.js (94%) rename app/{ => docker}/helpers/secretHelper.js (95%) rename app/{ => docker}/helpers/serviceHelper.js (90%) rename app/{ => docker}/helpers/volumeHelper.js (95%) rename app/{models/docker => docker/models}/config.js (100%) rename app/{models/docker => docker/models}/container.js (100%) rename app/{models/docker => docker/models}/containerDetails.js (100%) rename app/{models/docker => docker/models}/containerStats.js (100%) rename app/{models/docker => docker/models}/event.js (100%) rename app/{models/docker => docker/models}/image.js (100%) rename app/{models/docker => docker/models}/imageDetails.js (100%) rename app/{models/docker => docker/models}/imageLayer.js (100%) rename app/{models/docker => docker/models}/network.js (100%) rename app/{models/docker => docker/models}/node.js (100%) rename app/{models/docker => docker/models}/plugin.js (100%) rename app/{models/docker => docker/models}/secret.js (100%) rename app/{models/docker => docker/models}/service.js (100%) rename app/{models/api => docker/models}/stack.js (100%) rename app/{models/api => docker/models}/stackTemplate.js (100%) rename app/{models/docker => docker/models}/swarm.js (100%) rename app/{models/docker => docker/models}/task.js (100%) rename app/{models/api => docker/models}/template.js (100%) rename app/{models/api => docker/models}/templateLinuxServer.js (100%) rename app/{models/docker => docker/models}/volume.js (100%) rename app/{rest/docker => docker/rest}/config.js (94%) rename app/{rest/docker => docker/rest}/container.js (98%) rename app/{rest/docker => docker/rest}/containerCommit.js (92%) rename app/{rest/docker => docker/rest}/containerLogs.js (95%) rename app/{rest/docker => docker/rest}/exec.js (93%) rename app/{rest/docker => docker/rest}/image.js (97%) rename app/{rest/docker => docker/rest}/network.js (95%) rename app/{rest/docker => docker/rest}/node.js (94%) rename app/{rest/docker => docker/rest}/plugin.js (91%) rename app/{rest/docker => docker/rest}/response/handlers.js (100%) rename app/{rest/docker => docker/rest}/secret.js (94%) rename app/{rest/docker => docker/rest}/service.js (95%) rename app/{rest/docker => docker/rest}/serviceLogs.js (95%) rename app/{rest/docker => docker/rest}/swarm.js (90%) rename app/{rest/docker => docker/rest}/system.js (95%) rename app/{rest/docker => docker/rest}/task.js (92%) rename app/{rest/docker => docker/rest}/volume.js (94%) rename app/{services/docker => docker/services}/configService.js (97%) rename app/{services/docker => docker/services}/containerService.js (99%) rename app/{services/docker => docker/services}/execService.js (95%) rename app/{services/docker => docker/services}/imageService.js (99%) rename app/{services/docker => docker/services}/networkService.js (98%) rename app/{services/docker => docker/services}/nodeService.js (93%) rename app/{services/docker => docker/services}/pluginService.js (98%) rename app/{services/docker => docker/services}/secretService.js (97%) rename app/{services/docker => docker/services}/serviceService.js (97%) rename app/{services/api => docker/services}/stackService.js (99%) rename app/{services/docker => docker/services}/swarmService.js (93%) rename app/{services/docker => docker/services}/systemService.js (97%) rename app/{services/docker => docker/services}/taskService.js (96%) rename app/{services/docker => docker/services}/volumeService.js (98%) rename app/{components => docker/views}/configs/configs.html (84%) rename app/{components => docker/views}/configs/configsController.js (96%) rename app/{components/createConfig => docker/views/configs/create}/createConfigController.js (96%) rename app/{components/createConfig => docker/views/configs/create}/createconfig.html (98%) rename app/{components/config => docker/views/configs/edit}/config.html (90%) rename app/{components/config => docker/views/configs/edit}/configController.js (93%) rename app/{components/containerConsole => docker/views/containers/console}/containerConsoleController.js (98%) rename app/{components/containerConsole/containerConsole.html => docker/views/containers/console/containerconsole.html} (95%) rename app/{components => docker/views}/containers/containers.html (90%) rename app/{components => docker/views}/containers/containersController.js (99%) rename app/{components/createContainer => docker/views/containers/create}/createContainerController.js (98%) rename app/{components/createContainer => docker/views/containers/create}/createcontainer.html (99%) rename app/{components/container => docker/views/containers/edit}/container.html (91%) rename app/{components/container => docker/views/containers/edit}/containerController.js (95%) rename app/{components/containerInspect => docker/views/containers/inspect}/containerInspectController.js (90%) rename app/{components/containerInspect/containerInspect.html => docker/views/containers/inspect/containerinspect.html} (84%) rename app/{components/containerLogs => docker/views/containers/logs}/containerLogsController.js (98%) rename app/{components/containerLogs => docker/views/containers/logs}/containerlogs.html (91%) rename app/{components/containerStats => docker/views/containers/stats}/containerStatsController.js (99%) rename app/{components/containerStats/containerStats.html => docker/views/containers/stats/containerstats.html} (95%) rename app/{components => docker/views}/dashboard/dashboard.html (94%) rename app/{components => docker/views}/dashboard/dashboardController.js (98%) rename app/{components => docker/views}/engine/engine.html (97%) rename app/{components => docker/views}/engine/engineController.js (94%) rename app/{components => docker/views}/events/events.html (82%) rename app/{components => docker/views}/events/eventsController.js (93%) rename app/{components/image => docker/views/images/edit}/image.html (97%) rename app/{components/image => docker/views/images/edit}/imageController.js (91%) rename app/{components => docker/views}/images/images.html (94%) rename app/{components => docker/views}/images/imagesController.js (98%) rename app/{components/createNetwork => docker/views/networks/create}/createNetworkController.js (97%) rename app/{components/createNetwork => docker/views/networks/create}/createnetwork.html (99%) rename app/{components/network => docker/views/networks/edit}/network.html (93%) rename app/{components/network => docker/views/networks/edit}/networkController.js (95%) create mode 100644 app/docker/views/networks/networks.html rename app/{components => docker/views}/networks/networksController.js (97%) rename app/{components/node => docker/views/nodes/edit}/node.html (97%) rename app/{components/node => docker/views/nodes/edit}/nodeController.js (92%) rename app/{components/createSecret => docker/views/secrets/create}/createSecretController.js (96%) rename app/{components/createSecret => docker/views/secrets/create}/createsecret.html (98%) rename app/{components/secret => docker/views/secrets/edit}/secret.html (88%) rename app/{components/secret => docker/views/secrets/edit}/secretController.js (91%) rename app/{components => docker/views}/secrets/secrets.html (84%) rename app/{components => docker/views}/secrets/secretsController.js (96%) rename app/{components/createService => docker/views/services/create}/createServiceController.js (95%) rename app/{components/createService => docker/views/services/create}/createservice.html (98%) rename app/{components/createService => docker/views/services/create}/includes/config.html (100%) rename app/{components/createService => docker/views/services/create}/includes/resources-placement.html (100%) rename app/{components/createService => docker/views/services/create}/includes/secret.html (100%) rename app/{components/createService => docker/views/services/create}/includes/update-restart.html (100%) rename app/{components/service => docker/views/services/edit}/includes/configs.html (96%) rename app/{components/service => docker/views/services/edit}/includes/constraints.html (100%) rename app/{components/service => docker/views/services/edit}/includes/container-specs.html (100%) rename app/{components/service => docker/views/services/edit}/includes/containerlabels.html (100%) rename app/{components/service => docker/views/services/edit}/includes/environmentvariables.html (100%) rename app/{components/service => docker/views/services/edit}/includes/hosts.html (100%) rename app/{components/service => docker/views/services/edit}/includes/logging.html (100%) rename app/{components/service => docker/views/services/edit}/includes/mounts.html (100%) rename app/{components/service => docker/views/services/edit}/includes/networks.html (88%) rename app/{components/service => docker/views/services/edit}/includes/placementPreferences.html (100%) rename app/{components/service => docker/views/services/edit}/includes/ports.html (100%) rename app/{components/service => docker/views/services/edit}/includes/resources.html (100%) rename app/{components/service => docker/views/services/edit}/includes/restart.html (100%) rename app/{components/service => docker/views/services/edit}/includes/secrets.html (97%) rename app/{components/service => docker/views/services/edit}/includes/servicelabels.html (100%) rename app/{components/service => docker/views/services/edit}/includes/tasks.html (100%) rename app/{components/service => docker/views/services/edit}/includes/updateconfig.html (100%) rename app/{components/service => docker/views/services/edit}/service.html (82%) rename app/{components/service => docker/views/services/edit}/serviceController.js (99%) rename app/{components/serviceLogs => docker/views/services/logs}/serviceLogsController.js (98%) rename app/{components/serviceLogs => docker/views/services/logs}/servicelogs.html (92%) rename app/{components => docker/views}/services/services.html (87%) rename app/{components => docker/views}/services/servicesController.js (99%) rename app/{components/createStack => docker/views/stacks/create}/createStackController.js (98%) rename app/{components/createStack => docker/views/stacks/create}/createstack.html (99%) rename app/{components/stack => docker/views/stacks/edit}/stack.html (95%) rename app/{components/stack => docker/views/stacks/edit}/stackController.js (98%) rename app/{components => docker/views}/stacks/stacks.html (94%) rename app/{components => docker/views}/stacks/stacksController.js (98%) rename app/{components => docker/views}/swarm/swarm.html (93%) rename app/{components => docker/views}/swarm/swarmController.js (98%) rename app/{components/swarmVisualizer => docker/views/swarm/visualizer}/swarmVisualizerController.js (98%) rename app/{components/swarmVisualizer/swarmVisualizer.html => docker/views/swarm/visualizer/swarmvisualizer.html} (95%) rename app/{components/task => docker/views/tasks/edit}/task.html (91%) rename app/{components/task => docker/views/tasks/edit}/taskController.js (94%) rename app/{components => docker/views}/templates/templates.html (99%) rename app/{components => docker/views}/templates/templatesController.js (98%) rename app/{components/createVolume => docker/views/volumes/create}/createVolumeController.js (97%) rename app/{components/createVolume => docker/views/volumes/create}/createvolume.html (98%) rename app/{components/volume => docker/views/volumes/edit}/volume.html (92%) rename app/{components/volume => docker/views/volumes/edit}/volumeController.js (95%) rename app/{components => docker/views}/volumes/volumes.html (84%) rename app/{components => docker/views}/volumes/volumesController.js (98%) rename app/extensions/storidge/views/profiles/create/{createProfile.html => createprofile.html} (100%) rename app/extensions/storidge/views/profiles/edit/{editProfile.html => profile.html} (100%) rename app/extensions/storidge/views/profiles/edit/{editProfileController.js => profileController.js} (94%) delete mode 100644 app/filters/__module.js delete mode 100644 app/helpers/__module.js create mode 100644 app/portainer/__module.js rename app/{directives => portainer/components}/accessControlForm/por-access-control-form.js (69%) rename app/{directives => portainer/components}/accessControlForm/porAccessControlForm.html (98%) rename app/{directives => portainer/components}/accessControlForm/porAccessControlFormController.js (98%) rename app/{directives => portainer/components}/accessControlForm/porAccessControlFormModel.js (100%) rename app/{directives => portainer/components}/accessControlPanel/por-access-control-panel.js (76%) rename app/{directives => portainer/components}/accessControlPanel/porAccessControlPanel.html (96%) rename app/{directives => portainer/components}/accessControlPanel/porAccessControlPanelController.js (99%) create mode 100644 app/portainer/components/accessManagement/por-access-management.js rename app/{directives => portainer/components}/accessManagement/porAccessManagement.html (100%) rename app/{directives => portainer/components}/accessManagement/porAccessManagementController.js (99%) rename app/{directives => portainer/components}/autofocus.js (88%) rename app/{directives => portainer/components}/buttonSpinner.js (91%) rename app/{directives/ui => portainer/components}/datatables/datatable.css (100%) rename app/{directives/ui => portainer/components}/datatables/endpoints-datatable/endpointsDatatable.html (95%) rename app/{directives/ui => portainer/components}/datatables/endpoints-datatable/endpointsDatatable.js (63%) rename app/{directives/ui/datatables/common => portainer/components/datatables}/genericDatatableController.js (98%) rename app/{directives/ui => portainer/components}/datatables/registries-datatable/registriesDatatable.html (95%) rename app/{directives/ui => portainer/components}/datatables/registries-datatable/registriesDatatable.js (60%) rename app/{directives/ui => portainer/components}/datatables/stack-services-datatable/stackServicesDatatable.html (98%) rename app/{directives/ui => portainer/components}/datatables/stack-services-datatable/stackServicesDatatable.js (57%) rename app/{directives/ui => portainer/components}/datatables/stacks-datatable/stacksDatatable.html (97%) rename app/{directives/ui => portainer/components}/datatables/stacks-datatable/stacksDatatable.js (65%) rename app/{directives/ui => portainer/components}/datatables/stacks-datatable/stacksDatatableController.js (98%) rename app/{directives/ui => portainer/components}/datatables/teams-datatable/teamsDatatable.html (97%) rename app/{directives/ui => portainer/components}/datatables/teams-datatable/teamsDatatable.js (59%) rename app/{directives/ui => portainer/components}/datatables/users-datatable/usersDatatable.html (98%) rename app/{directives/ui => portainer/components}/datatables/users-datatable/usersDatatable.js (62%) rename app/{directives => portainer/components}/endpointSecurity/por-endpoint-security.js (66%) rename app/{directives => portainer/components}/endpointSecurity/porEndpointSecurity.html (100%) rename app/{directives => portainer/components}/endpointSecurity/porEndpointSecurityController.js (96%) rename app/{directives => portainer/components}/endpointSecurity/porEndpointSecurityModel.js (100%) rename app/{directives => portainer/components}/header-content.js (57%) rename app/{directives => portainer/components}/header-title.js (75%) rename app/{directives => portainer/components}/header.js (91%) rename app/{directives => portainer/components}/loading.js (87%) rename app/{directives => portainer/components}/onEnterKey.js (92%) rename app/{directives/ui => portainer/components}/slider/slider.html (100%) rename app/{directives/ui => portainer/components}/slider/slider.js (57%) rename app/{directives/ui => portainer/components}/slider/sliderController.js (93%) rename app/{directives => portainer/components}/template-widget.js (89%) rename app/{directives => portainer/components}/tooltip.js (93%) rename app/{directives => portainer/components}/widget-body.js (92%) rename app/{directives => portainer/components}/widget-custom-header.js (94%) rename app/{directives => portainer/components}/widget-footer.js (88%) rename app/{directives => portainer/components}/widget-header.js (93%) rename app/{directives => portainer/components}/widget-taskbar.js (91%) rename app/{directives => portainer/components}/widget.js (87%) create mode 100644 app/portainer/filters/filters.js rename app/{ => portainer}/helpers/formHelper.js (90%) rename app/{ => portainer}/helpers/registryHelper.js (89%) rename app/{ => portainer}/helpers/resourceControlHelper.js (97%) rename app/{ => portainer}/helpers/stackHelper.js (93%) rename app/{ => portainer}/helpers/templateHelper.js (99%) rename app/{ => portainer}/helpers/userHelper.js (88%) rename app/{models/api => portainer/models}/access.js (100%) rename app/{models/api => portainer/models}/dockerhub.js (100%) rename app/{models/api => portainer/models}/registry.js (100%) rename app/{models/api => portainer/models}/resourceControl.js (100%) rename app/{models/api => portainer/models}/settings/ldapSettings.js (100%) rename app/{models/api => portainer/models}/settings/settings.js (100%) rename app/{models/api => portainer/models}/status.js (100%) rename app/{models/api => portainer/models}/team.js (100%) rename app/{models/api => portainer/models}/teamMembership.js (100%) rename app/{models/api => portainer/models}/user.js (100%) rename app/{rest/api => portainer/rest}/auth.js (87%) rename app/{rest/api => portainer/rest}/dockerhub.js (88%) rename app/{rest/api => portainer/rest}/endpoint.js (94%) rename app/{rest/api => portainer/rest}/registry.js (94%) rename app/{rest/api => portainer/rest}/resourceControl.js (93%) rename app/{rest/api => portainer/rest}/settings.js (93%) rename app/{rest/api => portainer/rest}/stack.js (95%) rename app/{rest/api => portainer/rest}/status.js (86%) rename app/{rest/api => portainer/rest}/team.js (94%) rename app/{rest/api => portainer/rest}/teamMembership.js (93%) rename app/{rest/api => portainer/rest}/template.js (87%) rename app/{rest/api => portainer/rest}/user.js (96%) rename app/{ => portainer}/services/api/accessService.js (97%) rename app/{ => portainer}/services/api/dockerhubService.js (94%) rename app/{ => portainer}/services/api/endpointService.js (98%) rename app/{ => portainer}/services/api/registryService.js (98%) rename app/{ => portainer}/services/api/resourceControlService.js (99%) rename app/{ => portainer}/services/api/settingsService.js (96%) rename app/{ => portainer}/services/api/statusService.js (93%) rename app/{ => portainer}/services/api/teamMembershipService.js (96%) rename app/{ => portainer}/services/api/teamService.js (98%) rename app/{ => portainer}/services/api/userService.js (99%) rename app/{ => portainer}/services/authentication.js (97%) rename app/{ => portainer}/services/chartService.js (99%) rename app/{ => portainer}/services/codeMirror.js (94%) rename app/{directives/ui/datatables => portainer/services}/datatableService.js (96%) rename app/{ => portainer}/services/endpointProvider.js (96%) rename app/{ => portainer}/services/extensionManager.js (95%) rename app/{ => portainer}/services/fileUpload.js (97%) rename app/{ => portainer}/services/formValidator.js (95%) rename app/{ => portainer}/services/httpRequestHelper.js (90%) rename app/{ => portainer}/services/localStorage.js (98%) rename app/{ => portainer}/services/modalService.js (99%) rename app/{ => portainer}/services/notifications.js (96%) rename app/{ => portainer}/services/pagination.js (94%) rename app/{ => portainer}/services/stateManager.js (99%) rename app/{ => portainer}/services/templateService.js (98%) rename app/{components => portainer/views}/about/about.html (100%) rename app/{components/userSettings/userSettings.html => portainer/views/account/account.html} (100%) rename app/{components/userSettings/userSettingsController.js => portainer/views/account/accountController.js} (87%) rename app/{components => portainer/views}/auth/auth.html (100%) rename app/{components => portainer/views}/auth/authController.js (93%) rename app/{components/endpointAccess => portainer/views/endpoints/access}/endpointAccess.html (88%) rename app/{components/endpointAccess => portainer/views/endpoints/access}/endpointAccessController.js (94%) rename app/{components/endpoint => portainer/views/endpoints/edit}/endpoint.html (94%) rename app/{components/endpoint => portainer/views/endpoints/edit}/endpointController.js (95%) rename app/{components => portainer/views}/endpoints/endpoints.html (97%) rename app/{components => portainer/views}/endpoints/endpointsController.js (98%) rename app/{components/initAdmin => portainer/views/init/admin}/initAdmin.html (100%) rename app/{components/initAdmin => portainer/views/init/admin}/initAdminController.js (92%) rename app/{components/initEndpoint => portainer/views/init/endpoint}/initEndpoint.html (100%) rename app/{components/initEndpoint => portainer/views/init/endpoint}/initEndpointController.js (94%) rename app/{components => portainer/views}/main/mainController.js (96%) rename app/{components/registryAccess => portainer/views/registries/access}/registryAccess.html (88%) rename app/{components/registryAccess => portainer/views/registries/access}/registryAccessController.js (94%) rename app/{components/createRegistry => portainer/views/registries/create}/createRegistryController.js (95%) rename app/{components/createRegistry => portainer/views/registries/create}/createregistry.html (98%) rename app/{components/registry => portainer/views/registries/edit}/registry.html (95%) rename app/{components/registry => portainer/views/registries/edit}/registryController.js (93%) rename app/{components => portainer/views}/registries/registries.html (96%) rename app/{components => portainer/views}/registries/registriesController.js (98%) rename app/{components/settingsAuthentication => portainer/views/settings/authentication}/settingsAuthentication.html (99%) rename app/{components/settingsAuthentication => portainer/views/settings/authentication}/settingsAuthenticationController.js (94%) rename app/{components => portainer/views}/settings/settings.html (100%) rename app/{components => portainer/views}/settings/settingsController.js (89%) create mode 100644 app/portainer/views/sidebar/sidebar.html rename app/{components => portainer/views}/sidebar/sidebarController.js (87%) rename app/{components/team => portainer/views/teams/edit}/team.html (98%) rename app/{components/team => portainer/views/teams/edit}/teamController.js (98%) rename app/{components => portainer/views}/teams/teams.html (96%) rename app/{components => portainer/views}/teams/teamsController.js (98%) rename app/{components/user => portainer/views/users/edit}/user.html (96%) rename app/{components/user => portainer/views/users/edit}/userController.js (97%) rename app/{components => portainer/views}/users/users.html (96%) rename app/{components => portainer/views}/users/usersController.js (99%) delete mode 100644 app/rest/__module.js delete mode 100644 app/routes.js delete mode 100644 app/services/__module.js diff --git a/app/__module.js b/app/__module.js index 649d4cea1..15371bdf6 100644 --- a/app/__module.js +++ b/app/__module.js @@ -6,71 +6,15 @@ angular.module('portainer', [ 'ngSanitize', 'ngFileUpload', 'ngMessages', + 'ngResource', 'angularUtils.directives.dirPagination', 'LocalStorageModule', 'angular-jwt', 'angular-google-analytics', - 'ui', + 'angular-json-tree', 'angular-loading-bar', 'portainer.templates', - 'portainer.filters', - 'portainer.rest', - 'portainer.helpers', - 'portainer.services', - 'auth', - 'dashboard', - 'config', - 'configs', - 'container', - 'containerConsole', - 'containerLogs', - 'containerStats', - 'containerInspect', - 'serviceLogs', - 'containers', - 'createConfig', - 'createContainer', - 'createNetwork', - 'createRegistry', - 'createSecret', - 'createService', - 'createVolume', - 'createStack', - 'engine', - 'endpoint', - 'endpointAccess', - 'endpoints', - 'events', + 'portainer.app', + 'portainer.docker', 'extension.storidge', - 'image', - 'images', - 'initAdmin', - 'initEndpoint', - 'main', - 'network', - 'networks', - 'node', - 'registries', - 'registry', - 'registryAccess', - 'secrets', - 'secret', - 'service', - 'services', - 'settings', - 'settingsAuthentication', - 'sidebar', - 'stack', - 'stacks', - 'swarm', - 'swarmVisualizer', - 'task', - 'team', - 'teams', - 'templates', - 'user', - 'users', - 'userSettings', - 'volume', - 'volumes', 'rzModule']); diff --git a/app/app.js b/app/app.js index 37d24cb1e..7ae0688b9 100644 --- a/app/app.js +++ b/app/app.js @@ -35,7 +35,7 @@ function initAuthentication(authManager, Authentication, $rootScope, $state) { authManager.redirectWhenUnauthenticated(); Authentication.init(); $rootScope.$on('tokenHasExpired', function() { - $state.go('auth', {error: 'Your session has expired'}); + $state.go('portainer.auth', {error: 'Your session has expired'}); }); } diff --git a/app/components/networks/networks.html b/app/components/networks/networks.html deleted file mode 100644 index 932c080e6..000000000 --- a/app/components/networks/networks.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - - - - Networks - - -
-
- -
-
- - diff --git a/app/components/sidebar/sidebar.html b/app/components/sidebar/sidebar.html deleted file mode 100644 index 51ba33df1..000000000 --- a/app/components/sidebar/sidebar.html +++ /dev/null @@ -1,102 +0,0 @@ - - - diff --git a/app/config.js b/app/config.js index 6e35e4642..328647f38 100644 --- a/app/config.js +++ b/app/config.js @@ -1,6 +1,6 @@ angular.module('portainer') - .config(['$stateProvider', '$urlRouterProvider', '$httpProvider', 'localStorageServiceProvider', 'jwtOptionsProvider', 'AnalyticsProvider', '$uibTooltipProvider', '$compileProvider', 'cfpLoadingBarProvider', - function ($stateProvider, $urlRouterProvider, $httpProvider, localStorageServiceProvider, jwtOptionsProvider, AnalyticsProvider, $uibTooltipProvider, $compileProvider, cfpLoadingBarProvider) { + .config(['$urlRouterProvider', '$httpProvider', 'localStorageServiceProvider', 'jwtOptionsProvider', 'AnalyticsProvider', '$uibTooltipProvider', '$compileProvider', 'cfpLoadingBarProvider', + function ($urlRouterProvider, $httpProvider, localStorageServiceProvider, jwtOptionsProvider, AnalyticsProvider, $uibTooltipProvider, $compileProvider, cfpLoadingBarProvider) { 'use strict'; var environment = '@@ENVIRONMENT'; @@ -16,7 +16,7 @@ angular.module('portainer') return LocalStorage.getJWT(); }], unauthenticatedRedirector: ['$state', function($state) { - $state.go('auth', {error: 'Your session has expired'}); + $state.go('portainer.auth', {error: 'Your session has expired'}); }] }); $httpProvider.interceptors.push('jwtInterceptor'); @@ -37,5 +37,4 @@ angular.module('portainer') cfpLoadingBarProvider.parentSelector = '#loadingbar-placeholder'; $urlRouterProvider.otherwise('/auth'); - configureRoutes($stateProvider); }]); diff --git a/app/directives/accessManagement/por-access-management.js b/app/directives/accessManagement/por-access-management.js deleted file mode 100644 index cbe8515c8..000000000 --- a/app/directives/accessManagement/por-access-management.js +++ /dev/null @@ -1,8 +0,0 @@ -angular.module('portainer').component('porAccessManagement', { - templateUrl: 'app/directives/accessManagement/porAccessManagement.html', - controller: 'porAccessManagementController', - bindings: { - accessControlledEntity: '<', - updateAccess: '&' - } -}); diff --git a/app/directives/imageRegistry/por-image-registry.js b/app/directives/imageRegistry/por-image-registry.js deleted file mode 100644 index ccc65cdc9..000000000 --- a/app/directives/imageRegistry/por-image-registry.js +++ /dev/null @@ -1,9 +0,0 @@ -angular.module('portainer').component('porImageRegistry', { - templateUrl: 'app/directives/imageRegistry/porImageRegistry.html', - controller: 'porImageRegistryController', - bindings: { - 'image': '=', - 'registry': '=', - 'autoComplete': '<' - } -}); diff --git a/app/directives/ui/__module.js b/app/directives/ui/__module.js deleted file mode 100644 index 0a18652c8..000000000 --- a/app/directives/ui/__module.js +++ /dev/null @@ -1 +0,0 @@ -angular.module('ui', []); diff --git a/app/docker/__module.js b/app/docker/__module.js new file mode 100644 index 000000000..1e15df46e --- /dev/null +++ b/app/docker/__module.js @@ -0,0 +1,484 @@ +angular.module('portainer.docker', ['portainer.app']) +.config(['$stateRegistryProvider', function ($stateRegistryProvider) { + 'use strict'; + + var docker = { + name: 'docker', + parent: 'root', + abstract: true + }; + + var configs = { + name: 'docker.configs', + url: '/configs', + views: { + 'content@': { + templateUrl: 'app/docker/views/configs/configs.html', + controller: 'ConfigsController' + } + } + }; + + var config = { + name: 'docker.configs.config', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/configs/edit/config.html', + controller: 'ConfigController' + } + } + }; + + var configCreation = { + name: 'docker.configs.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/docker/views/configs/create/createconfig.html', + controller: 'CreateConfigController' + } + } + }; + + var containers = { + name: 'docker.containers', + url: '/containers', + views: { + 'content@': { + templateUrl: 'app/docker/views/containers/containers.html', + controller: 'ContainersController' + } + }, + params: { + selectedContainers: [] + } + }; + + var container = { + name: 'docker.containers.container', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/containers/edit/container.html', + controller: 'ContainerController' + } + } + }; + + var containerConsole = { + name: 'docker.containers.container.console', + url: '/console', + views: { + 'content@': { + templateUrl: 'app/docker/views/containers/console/containerconsole.html', + controller: 'ContainerConsoleController' + } + } + }; + + var containerCreation = { + name: 'docker.containers.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/docker/views/containers/create/createcontainer.html', + controller: 'CreateContainerController' + } + }, + params: { + from: '' + } + }; + + var containerInspect = { + name: 'docker.containers.container.inspect', + url: '/inspect', + views: { + 'content@': { + templateUrl: 'app/docker/views/containers/inspect/containerinspect.html', + controller: 'ContainerInspectController' + } + } + }; + + var containerLogs = { + name: 'docker.containers.container.logs', + url: '/logs', + views: { + 'content@': { + templateUrl: 'app/docker/views/containers/logs/containerlogs.html', + controller: 'ContainerLogsController' + } + } + }; + + var containerStats = { + name: 'docker.containers.container.stats', + url: '/stats', + views: { + 'content@': { + templateUrl: 'app/docker/views/containers/stats/containerstats.html', + controller: 'ContainerStatsController' + } + } + }; + + var dashboard = { + name: 'docker.dashboard', + url: '/dashboard', + views: { + 'content@': { + templateUrl: 'app/docker/views/dashboard/dashboard.html', + controller: 'DashboardController' + } + } + }; + + var engine = { + name: 'docker.engine', + url: '/engine', + views: { + 'content@': { + templateUrl: 'app/docker/views/engine/engine.html', + controller: 'EngineController' + } + } + }; + + var events = { + name: 'docker.events', + url: '/events', + views: { + 'content@': { + templateUrl: 'app/docker/views/events/events.html', + controller: 'EventsController' + } + } + }; + + var images = { + name: 'docker.images', + url: '/images', + views: { + 'content@': { + templateUrl: 'app/docker/views/images/images.html', + controller: 'ImagesController' + } + } + }; + + var image = { + name: 'docker.images.image', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/images/edit/image.html', + controller: 'ImageController' + } + } + }; + + var networks = { + name: 'docker.networks', + url: '/networks', + views: { + 'content@': { + templateUrl: 'app/docker/views/networks/networks.html', + controller: 'NetworksController' + } + } + }; + + var network = { + name: 'docker.networks.network', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/networks/edit/network.html', + controller: 'NetworkController' + } + } + }; + + var networkCreation = { + name: 'docker.networks.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/docker/views/networks/create/createnetwork.html', + controller: 'CreateNetworkController' + } + } + }; + + var nodes = { + name: 'docker.nodes', + url: '/nodes', + abstract: true + }; + + var node = { + name: 'docker.nodes.node', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/nodes/edit/node.html', + controller: 'NodeController' + } + } + }; + + var secrets = { + name: 'docker.secrets', + url: '/secrets', + views: { + 'content@': { + templateUrl: 'app/docker/views/secrets/secrets.html', + controller: 'SecretsController' + } + } + }; + + var secret = { + name: 'docker.secrets.secret', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/secrets/edit/secret.html', + controller: 'SecretController' + } + } + }; + + var secretCreation = { + name: 'docker.secrets.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/docker/views/secrets/create/createsecret.html', + controller: 'CreateSecretController' + } + } + }; + + var services = { + name: 'docker.services', + url: '/services', + views: { + 'content@': { + templateUrl: 'app/docker/views/services/services.html', + controller: 'ServicesController' + } + } + }; + + var service = { + name: 'docker.services.service', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/services/edit/service.html', + controller: 'ServiceController' + } + } + }; + + var serviceCreation = { + name: 'docker.services.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/docker/views/services/create/createservice.html', + controller: 'CreateServiceController' + } + } + }; + + var serviceLogs = { + name: 'docker.services.service.logs', + url: '/logs', + views: { + 'content@': { + templateUrl: 'app/docker/views/services/logs/servicelogs.html', + controller: 'ServiceLogsController' + } + } + }; + + var stacks = { + name: 'docker.stacks', + url: '/stacks', + views: { + 'content@': { + templateUrl: 'app/docker/views/stacks/stacks.html', + controller: 'StacksController' + } + } + }; + + var stack = { + name: 'docker.stacks.stack', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/stacks/edit/stack.html', + controller: 'StackController' + } + } + }; + + var stackCreation = { + name: 'docker.stacks.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/docker/views/stacks/create/createstack.html', + controller: 'CreateStackController' + } + } + }; + + var swarm = { + name: 'docker.swarm', + url: '/swarm', + views: { + 'content@': { + templateUrl: 'app/docker/views/swarm/swarm.html', + controller: 'SwarmController' + } + } + }; + + var swarmVisualizer = { + name: 'docker.swarm.visualizer', + url: '/visualizer', + views: { + 'content@': { + templateUrl: 'app/docker/views/swarm/visualizer/swarmvisualizer.html', + controller: 'SwarmVisualizerController' + } + } + }; + + var tasks = { + name: 'docker.tasks', + url: '/tasks', + abstract: true + }; + + var task = { + name: 'docker.tasks.task', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/tasks/edit/task.html', + controller: 'TaskController' + } + } + }; + + var templates = { + name: 'docker.templates', + url: '/templates', + views: { + 'content@': { + templateUrl: 'app/docker/views/templates/templates.html', + controller: 'TemplatesController' + } + }, + params: { + key: 'containers', + hide_descriptions: false + } + }; + + var templatesLinuxServer = { + name: 'docker.templates.linuxserver', + url: '/linuxserver', + views: { + 'content@': { + templateUrl: 'app/docker/views/templates/templates.html', + controller: 'TemplatesController' + } + }, + params: { + key: 'linuxserver.io', + hide_descriptions: true + } + }; + + var volumes = { + name: 'docker.volumes', + url: '/volumes', + views: { + 'content@': { + templateUrl: 'app/docker/views/volumes/volumes.html', + controller: 'VolumesController' + } + } + }; + + var volume = { + name: 'docker.volumes.volume', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/docker/views/volumes/edit/volume.html', + controller: 'VolumeController' + } + } + }; + + var volumeCreation = { + name: 'docker.volumes.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/docker/views/volumes/create/createvolume.html', + controller: 'CreateVolumeController' + } + } + }; + + $stateRegistryProvider.register(configs); + $stateRegistryProvider.register(config); + $stateRegistryProvider.register(configCreation); + $stateRegistryProvider.register(containers); + $stateRegistryProvider.register(container); + $stateRegistryProvider.register(containerConsole); + $stateRegistryProvider.register(containerCreation); + $stateRegistryProvider.register(containerInspect); + $stateRegistryProvider.register(containerLogs); + $stateRegistryProvider.register(containerStats); + $stateRegistryProvider.register(docker); + $stateRegistryProvider.register(dashboard); + $stateRegistryProvider.register(engine); + $stateRegistryProvider.register(events); + $stateRegistryProvider.register(images); + $stateRegistryProvider.register(image); + $stateRegistryProvider.register(networks); + $stateRegistryProvider.register(network); + $stateRegistryProvider.register(networkCreation); + $stateRegistryProvider.register(nodes); + $stateRegistryProvider.register(node); + $stateRegistryProvider.register(secrets); + $stateRegistryProvider.register(secret); + $stateRegistryProvider.register(secretCreation); + $stateRegistryProvider.register(services); + $stateRegistryProvider.register(service); + $stateRegistryProvider.register(serviceCreation); + $stateRegistryProvider.register(serviceLogs); + $stateRegistryProvider.register(stacks); + $stateRegistryProvider.register(stack); + $stateRegistryProvider.register(stackCreation); + $stateRegistryProvider.register(swarm); + $stateRegistryProvider.register(swarmVisualizer); + $stateRegistryProvider.register(tasks); + $stateRegistryProvider.register(task); + $stateRegistryProvider.register(templates); + $stateRegistryProvider.register(templatesLinuxServer); + $stateRegistryProvider.register(volumes); + $stateRegistryProvider.register(volume); + $stateRegistryProvider.register(volumeCreation); +}]); diff --git a/app/directives/ui/datatables/configs-datatable/configsDatatable.html b/app/docker/components/datatables/configs-datatable/configsDatatable.html similarity index 97% rename from app/directives/ui/datatables/configs-datatable/configsDatatable.html rename to app/docker/components/datatables/configs-datatable/configsDatatable.html index 81963f013..a2eea665c 100644 --- a/app/directives/ui/datatables/configs-datatable/configsDatatable.html +++ b/app/docker/components/datatables/configs-datatable/configsDatatable.html @@ -16,7 +16,7 @@ ng-disabled="$ctrl.state.selectedItemCount === 0" ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"> Remove - @@ -62,7 +62,7 @@ - {{ item.Name }} + {{ item.Name }} {{ item.CreatedAt | getisodate }} diff --git a/app/directives/ui/datatables/configs-datatable/configsDatatable.js b/app/docker/components/datatables/configs-datatable/configsDatatable.js similarity index 61% rename from app/directives/ui/datatables/configs-datatable/configsDatatable.js rename to app/docker/components/datatables/configs-datatable/configsDatatable.js index d7a81678f..66f774419 100644 --- a/app/directives/ui/datatables/configs-datatable/configsDatatable.js +++ b/app/docker/components/datatables/configs-datatable/configsDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('configsDatatable', { - templateUrl: 'app/directives/ui/datatables/configs-datatable/configsDatatable.html', +angular.module('portainer.docker').component('configsDatatable', { + templateUrl: 'app/docker/components/datatables/configs-datatable/configsDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/container-networks-datatable/containerNetworksDatatable.html b/app/docker/components/datatables/container-networks-datatable/containerNetworksDatatable.html similarity index 97% rename from app/directives/ui/datatables/container-networks-datatable/containerNetworksDatatable.html rename to app/docker/components/datatables/container-networks-datatable/containerNetworksDatatable.html index f4f089789..8d85d383d 100644 --- a/app/directives/ui/datatables/container-networks-datatable/containerNetworksDatatable.html +++ b/app/docker/components/datatables/container-networks-datatable/containerNetworksDatatable.html @@ -38,7 +38,7 @@ - {{ key }} + {{ key }} {{ value.IPAddress || '-' }} {{ value.Gateway || '-' }} {{ value.MacAddress || '-' }} diff --git a/app/directives/ui/datatables/container-networks-datatable/containerNetworksDatatable.js b/app/docker/components/datatables/container-networks-datatable/containerNetworksDatatable.js similarity index 62% rename from app/directives/ui/datatables/container-networks-datatable/containerNetworksDatatable.js rename to app/docker/components/datatables/container-networks-datatable/containerNetworksDatatable.js index a4e63b4ed..9447a0e1a 100644 --- a/app/directives/ui/datatables/container-networks-datatable/containerNetworksDatatable.js +++ b/app/docker/components/datatables/container-networks-datatable/containerNetworksDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('containerNetworksDatatable', { - templateUrl: 'app/directives/ui/datatables/container-networks-datatable/containerNetworksDatatable.html', +angular.module('portainer.docker').component('containerNetworksDatatable', { + templateUrl: 'app/docker/components/datatables/container-networks-datatable/containerNetworksDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/container-processes-datatable/containerProcessesDatatable.html b/app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.html similarity index 100% rename from app/directives/ui/datatables/container-processes-datatable/containerProcessesDatatable.html rename to app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.html diff --git a/app/directives/ui/datatables/container-processes-datatable/containerProcessesDatatable.js b/app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.js similarity index 53% rename from app/directives/ui/datatables/container-processes-datatable/containerProcessesDatatable.js rename to app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.js index c8fe7f2c2..51afee8be 100644 --- a/app/directives/ui/datatables/container-processes-datatable/containerProcessesDatatable.js +++ b/app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('containerProcessesDatatable', { - templateUrl: 'app/directives/ui/datatables/container-processes-datatable/containerProcessesDatatable.html', +angular.module('portainer.docker').component('containerProcessesDatatable', { + templateUrl: 'app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/containers-datatable/containersDatatable.html b/app/docker/components/datatables/containers-datatable/containersDatatable.html similarity index 93% rename from app/directives/ui/datatables/containers-datatable/containersDatatable.html rename to app/docker/components/datatables/containers-datatable/containersDatatable.html index 354a0b2b5..6db810549 100644 --- a/app/directives/ui/datatables/containers-datatable/containersDatatable.html +++ b/app/docker/components/datatables/containers-datatable/containersDatatable.html @@ -82,7 +82,7 @@ Remove - @@ -186,8 +186,8 @@ - {{ item | containername | truncate: $ctrl.settings.containerNameTruncateSize }} - {{ item | swarmcontainername | truncate: $ctrl.settings.containerNameTruncateSize }} + {{ item | containername | truncate: $ctrl.settings.containerNameTruncateSize }} + {{ item | swarmcontainername | truncate: $ctrl.settings.containerNameTruncateSize }} {{ item.Status }} @@ -195,14 +195,14 @@
- - - - + + + +
{{ item.StackName ? item.StackName : '-' }} - {{ item.Image | trimshasum }} + {{ item.Image | trimshasum }} {{ item.IP ? item.IP : '-' }} {{ item.hostIP }} diff --git a/app/directives/ui/datatables/containers-datatable/containersDatatable.js b/app/docker/components/datatables/containers-datatable/containersDatatable.js similarity index 73% rename from app/directives/ui/datatables/containers-datatable/containersDatatable.js rename to app/docker/components/datatables/containers-datatable/containersDatatable.js index fa9d0cc46..2be1f84ff 100644 --- a/app/directives/ui/datatables/containers-datatable/containersDatatable.js +++ b/app/docker/components/datatables/containers-datatable/containersDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('containersDatatable', { - templateUrl: 'app/directives/ui/datatables/containers-datatable/containersDatatable.html', +angular.module('portainer.docker').component('containersDatatable', { + templateUrl: 'app/docker/components/datatables/containers-datatable/containersDatatable.html', controller: 'ContainersDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/containers-datatable/containersDatatableController.js b/app/docker/components/datatables/containers-datatable/containersDatatableController.js similarity index 99% rename from app/directives/ui/datatables/containers-datatable/containersDatatableController.js rename to app/docker/components/datatables/containers-datatable/containersDatatableController.js index 997b5e727..d0c4bc27e 100644 --- a/app/directives/ui/datatables/containers-datatable/containersDatatableController.js +++ b/app/docker/components/datatables/containers-datatable/containersDatatableController.js @@ -1,4 +1,4 @@ -angular.module('ui') +angular.module('portainer.docker') .controller('ContainersDatatableController', ['PaginationService', 'DatatableService', function (PaginationService, DatatableService) { diff --git a/app/directives/ui/datatables/events-datatable/eventsDatatable.html b/app/docker/components/datatables/events-datatable/eventsDatatable.html similarity index 100% rename from app/directives/ui/datatables/events-datatable/eventsDatatable.html rename to app/docker/components/datatables/events-datatable/eventsDatatable.html diff --git a/app/directives/ui/datatables/events-datatable/eventsDatatable.js b/app/docker/components/datatables/events-datatable/eventsDatatable.js similarity index 56% rename from app/directives/ui/datatables/events-datatable/eventsDatatable.js rename to app/docker/components/datatables/events-datatable/eventsDatatable.js index 0540d94c6..9db4141fe 100644 --- a/app/directives/ui/datatables/events-datatable/eventsDatatable.js +++ b/app/docker/components/datatables/events-datatable/eventsDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('eventsDatatable', { - templateUrl: 'app/directives/ui/datatables/events-datatable/eventsDatatable.html', +angular.module('portainer.docker').component('eventsDatatable', { + templateUrl: 'app/docker/components/datatables/events-datatable/eventsDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/images-datatable/imagesDatatable.html b/app/docker/components/datatables/images-datatable/imagesDatatable.html similarity index 98% rename from app/directives/ui/datatables/images-datatable/imagesDatatable.html rename to app/docker/components/datatables/images-datatable/imagesDatatable.html index e3bb4b1b0..6bbfa37a7 100644 --- a/app/directives/ui/datatables/images-datatable/imagesDatatable.html +++ b/app/docker/components/datatables/images-datatable/imagesDatatable.html @@ -99,7 +99,7 @@ - {{ item.Id | truncate:20 }} + {{ item.Id | truncate:20 }} Unused diff --git a/app/directives/ui/datatables/images-datatable/imagesDatatable.js b/app/docker/components/datatables/images-datatable/imagesDatatable.js similarity index 62% rename from app/directives/ui/datatables/images-datatable/imagesDatatable.js rename to app/docker/components/datatables/images-datatable/imagesDatatable.js index fc438bd1e..6a7349d3d 100644 --- a/app/directives/ui/datatables/images-datatable/imagesDatatable.js +++ b/app/docker/components/datatables/images-datatable/imagesDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('imagesDatatable', { - templateUrl: 'app/directives/ui/datatables/images-datatable/imagesDatatable.html', +angular.module('portainer.docker').component('imagesDatatable', { + templateUrl: 'app/docker/components/datatables/images-datatable/imagesDatatable.html', controller: 'ImagesDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/images-datatable/imagesDatatableController.js b/app/docker/components/datatables/images-datatable/imagesDatatableController.js similarity index 98% rename from app/directives/ui/datatables/images-datatable/imagesDatatableController.js rename to app/docker/components/datatables/images-datatable/imagesDatatableController.js index f269203fa..34ae18324 100644 --- a/app/directives/ui/datatables/images-datatable/imagesDatatableController.js +++ b/app/docker/components/datatables/images-datatable/imagesDatatableController.js @@ -1,4 +1,4 @@ -angular.module('ui') +angular.module('portainer.docker') .controller('ImagesDatatableController', ['PaginationService', 'DatatableService', function (PaginationService, DatatableService) { diff --git a/app/directives/ui/datatables/networks-datatable/networksDatatable.html b/app/docker/components/datatables/networks-datatable/networksDatatable.html similarity index 98% rename from app/directives/ui/datatables/networks-datatable/networksDatatable.html rename to app/docker/components/datatables/networks-datatable/networksDatatable.html index db929fabe..191e541a8 100644 --- a/app/directives/ui/datatables/networks-datatable/networksDatatable.html +++ b/app/docker/components/datatables/networks-datatable/networksDatatable.html @@ -16,7 +16,7 @@ ng-disabled="$ctrl.state.selectedItemCount === 0" ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"> Remove - @@ -97,7 +97,7 @@ - {{ item.Name | truncate:40 }} + {{ item.Name | truncate:40 }} {{ item.StackName ? item.StackName : '-' }} {{ item.Scope }} diff --git a/app/directives/ui/datatables/networks-datatable/networksDatatable.js b/app/docker/components/datatables/networks-datatable/networksDatatable.js similarity index 61% rename from app/directives/ui/datatables/networks-datatable/networksDatatable.js rename to app/docker/components/datatables/networks-datatable/networksDatatable.js index 2ccb7a41b..3d86651bc 100644 --- a/app/directives/ui/datatables/networks-datatable/networksDatatable.js +++ b/app/docker/components/datatables/networks-datatable/networksDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('networksDatatable', { - templateUrl: 'app/directives/ui/datatables/networks-datatable/networksDatatable.html', +angular.module('portainer.docker').component('networksDatatable', { + templateUrl: 'app/docker/components/datatables/networks-datatable/networksDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/node-tasks-datatable/nodeTasksDatatable.html b/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html similarity index 97% rename from app/directives/ui/datatables/node-tasks-datatable/nodeTasksDatatable.html rename to app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html index 33776f06c..1b52b713d 100644 --- a/app/directives/ui/datatables/node-tasks-datatable/nodeTasksDatatable.html +++ b/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html @@ -58,7 +58,7 @@ - {{ item.Id }} + {{ item.Id }} {{ item.Status.State }} {{ item.Slot ? item.Slot : '-' }} {{ item.Spec.ContainerSpec.Image | hideshasum }} diff --git a/app/directives/ui/datatables/node-tasks-datatable/nodeTasksDatatable.js b/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.js similarity index 55% rename from app/directives/ui/datatables/node-tasks-datatable/nodeTasksDatatable.js rename to app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.js index 215636d0a..9a022baa5 100644 --- a/app/directives/ui/datatables/node-tasks-datatable/nodeTasksDatatable.js +++ b/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('nodeTasksDatatable', { - templateUrl: 'app/directives/ui/datatables/node-tasks-datatable/nodeTasksDatatable.html', +angular.module('portainer.docker').component('nodeTasksDatatable', { + templateUrl: 'app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/nodes-datatable/nodesDatatable.html b/app/docker/components/datatables/nodes-datatable/nodesDatatable.html similarity index 98% rename from app/directives/ui/datatables/nodes-datatable/nodesDatatable.html rename to app/docker/components/datatables/nodes-datatable/nodesDatatable.html index dc6843c8b..b93672bfc 100644 --- a/app/directives/ui/datatables/nodes-datatable/nodesDatatable.html +++ b/app/docker/components/datatables/nodes-datatable/nodesDatatable.html @@ -73,7 +73,7 @@ - {{ item.Hostname }} + {{ item.Hostname }} {{ item.Hostname }} {{ item.Role }} diff --git a/app/directives/ui/datatables/nodes-datatable/nodesDatatable.js b/app/docker/components/datatables/nodes-datatable/nodesDatatable.js similarity index 63% rename from app/directives/ui/datatables/nodes-datatable/nodesDatatable.js rename to app/docker/components/datatables/nodes-datatable/nodesDatatable.js index 10b79323d..dbf8d2d87 100644 --- a/app/directives/ui/datatables/nodes-datatable/nodesDatatable.js +++ b/app/docker/components/datatables/nodes-datatable/nodesDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('nodesDatatable', { - templateUrl: 'app/directives/ui/datatables/nodes-datatable/nodesDatatable.html', +angular.module('portainer.docker').component('nodesDatatable', { + templateUrl: 'app/docker/components/datatables/nodes-datatable/nodesDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/nodes-ss-datatable/nodesSSDatatable.html b/app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.html similarity index 100% rename from app/directives/ui/datatables/nodes-ss-datatable/nodesSSDatatable.html rename to app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.html diff --git a/app/directives/ui/datatables/nodes-ss-datatable/nodesSSDatatable.js b/app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.js similarity index 56% rename from app/directives/ui/datatables/nodes-ss-datatable/nodesSSDatatable.js rename to app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.js index 7da469ef5..2b61854ff 100644 --- a/app/directives/ui/datatables/nodes-ss-datatable/nodesSSDatatable.js +++ b/app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('nodesSsDatatable', { - templateUrl: 'app/directives/ui/datatables/nodes-ss-datatable/nodesSSDatatable.html', +angular.module('portainer.docker').component('nodesSsDatatable', { + templateUrl: 'app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/secrets-datatable/secretsDatatable.html b/app/docker/components/datatables/secrets-datatable/secretsDatatable.html similarity index 97% rename from app/directives/ui/datatables/secrets-datatable/secretsDatatable.html rename to app/docker/components/datatables/secrets-datatable/secretsDatatable.html index cebdbf242..038ce92c0 100644 --- a/app/directives/ui/datatables/secrets-datatable/secretsDatatable.html +++ b/app/docker/components/datatables/secrets-datatable/secretsDatatable.html @@ -16,7 +16,7 @@ ng-disabled="$ctrl.state.selectedItemCount === 0" ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"> Remove - @@ -62,7 +62,7 @@ - {{ item.Name }} + {{ item.Name }} {{ item.CreatedAt | getisodate }} diff --git a/app/directives/ui/datatables/secrets-datatable/secretsDatatable.js b/app/docker/components/datatables/secrets-datatable/secretsDatatable.js similarity index 61% rename from app/directives/ui/datatables/secrets-datatable/secretsDatatable.js rename to app/docker/components/datatables/secrets-datatable/secretsDatatable.js index 1411b675e..7c55738a9 100644 --- a/app/directives/ui/datatables/secrets-datatable/secretsDatatable.js +++ b/app/docker/components/datatables/secrets-datatable/secretsDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('secretsDatatable', { - templateUrl: 'app/directives/ui/datatables/secrets-datatable/secretsDatatable.html', +angular.module('portainer.docker').component('secretsDatatable', { + templateUrl: 'app/docker/components/datatables/secrets-datatable/secretsDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/services-datatable/servicesDatatable.html b/app/docker/components/datatables/services-datatable/servicesDatatable.html similarity index 98% rename from app/directives/ui/datatables/services-datatable/servicesDatatable.html rename to app/docker/components/datatables/services-datatable/servicesDatatable.html index cf94c0f6a..89eeb1216 100644 --- a/app/directives/ui/datatables/services-datatable/servicesDatatable.html +++ b/app/docker/components/datatables/services-datatable/servicesDatatable.html @@ -22,7 +22,7 @@ Remove - @@ -96,7 +96,7 @@ - {{ item.Name }} + {{ item.Name }} {{ item.StackName ? item.StackName : '-' }} {{ item.Image | hideshasum }} diff --git a/app/directives/ui/datatables/services-datatable/servicesDatatable.js b/app/docker/components/datatables/services-datatable/servicesDatatable.js similarity index 69% rename from app/directives/ui/datatables/services-datatable/servicesDatatable.js rename to app/docker/components/datatables/services-datatable/servicesDatatable.js index 9d33fea66..93c127267 100644 --- a/app/directives/ui/datatables/services-datatable/servicesDatatable.js +++ b/app/docker/components/datatables/services-datatable/servicesDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('servicesDatatable', { - templateUrl: 'app/directives/ui/datatables/services-datatable/servicesDatatable.html', +angular.module('portainer.docker').component('servicesDatatable', { + templateUrl: 'app/docker/components/datatables/services-datatable/servicesDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/tasks-datatable/tasksDatatable.html b/app/docker/components/datatables/tasks-datatable/tasksDatatable.html similarity index 97% rename from app/directives/ui/datatables/tasks-datatable/tasksDatatable.html rename to app/docker/components/datatables/tasks-datatable/tasksDatatable.html index 8cce266ac..f20a935f8 100644 --- a/app/directives/ui/datatables/tasks-datatable/tasksDatatable.html +++ b/app/docker/components/datatables/tasks-datatable/tasksDatatable.html @@ -58,7 +58,7 @@ - {{ item.Id }} + {{ item.Id }} {{ item.Status.State }} {{ item.Slot ? item.Slot : '-' }} {{ item.NodeId | tasknodename: $ctrl.nodes }} diff --git a/app/directives/ui/datatables/tasks-datatable/tasksDatatable.js b/app/docker/components/datatables/tasks-datatable/tasksDatatable.js similarity index 61% rename from app/directives/ui/datatables/tasks-datatable/tasksDatatable.js rename to app/docker/components/datatables/tasks-datatable/tasksDatatable.js index d283bd1dd..c8bae7d68 100644 --- a/app/directives/ui/datatables/tasks-datatable/tasksDatatable.js +++ b/app/docker/components/datatables/tasks-datatable/tasksDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('tasksDatatable', { - templateUrl: 'app/directives/ui/datatables/tasks-datatable/tasksDatatable.html', +angular.module('portainer.docker').component('tasksDatatable', { + templateUrl: 'app/docker/components/datatables/tasks-datatable/tasksDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/volumes-datatable/volumesDatatable.html b/app/docker/components/datatables/volumes-datatable/volumesDatatable.html similarity index 98% rename from app/directives/ui/datatables/volumes-datatable/volumesDatatable.html rename to app/docker/components/datatables/volumes-datatable/volumesDatatable.html index 4a69017a0..4d981fa9c 100644 --- a/app/directives/ui/datatables/volumes-datatable/volumesDatatable.html +++ b/app/docker/components/datatables/volumes-datatable/volumesDatatable.html @@ -16,7 +16,7 @@ ng-disabled="$ctrl.state.selectedItemCount === 0" ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"> Remove - @@ -100,7 +100,7 @@ - {{ item.Id | truncate:25 }} + {{ item.Id | truncate:25 }} Unused {{ item.StackName ? item.StackName : '-' }} diff --git a/app/directives/ui/datatables/volumes-datatable/volumesDatatable.js b/app/docker/components/datatables/volumes-datatable/volumesDatatable.js similarity index 61% rename from app/directives/ui/datatables/volumes-datatable/volumesDatatable.js rename to app/docker/components/datatables/volumes-datatable/volumesDatatable.js index 3cdc80d8c..daa6f5b47 100644 --- a/app/directives/ui/datatables/volumes-datatable/volumesDatatable.js +++ b/app/docker/components/datatables/volumes-datatable/volumesDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('volumesDatatable', { - templateUrl: 'app/directives/ui/datatables/volumes-datatable/volumesDatatable.html', +angular.module('portainer.docker').component('volumesDatatable', { + templateUrl: 'app/docker/components/datatables/volumes-datatable/volumesDatatable.html', controller: 'VolumesDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/volumes-datatable/volumesDatatableController.js b/app/docker/components/datatables/volumes-datatable/volumesDatatableController.js similarity index 98% rename from app/directives/ui/datatables/volumes-datatable/volumesDatatableController.js rename to app/docker/components/datatables/volumes-datatable/volumesDatatableController.js index 0b9d0f12f..ca199faf3 100644 --- a/app/directives/ui/datatables/volumes-datatable/volumesDatatableController.js +++ b/app/docker/components/datatables/volumes-datatable/volumesDatatableController.js @@ -1,4 +1,4 @@ -angular.module('ui') +angular.module('portainer.docker') .controller('VolumesDatatableController', ['PaginationService', 'DatatableService', function (PaginationService, DatatableService) { diff --git a/app/docker/components/dockerSidebarContent/docker-sidebar-content.js b/app/docker/components/dockerSidebarContent/docker-sidebar-content.js new file mode 100644 index 000000000..6530a4bfc --- /dev/null +++ b/app/docker/components/dockerSidebarContent/docker-sidebar-content.js @@ -0,0 +1,12 @@ +angular.module('portainer.docker').component('dockerSidebarContent', { + templateUrl: 'app/docker/components/dockerSidebarContent/dockerSidebarContent.html', + bindings: { + 'endpointApiVersion': '<', + 'swarmManagement': '<', + 'standaloneManagement': '<', + 'adminAccess': '<', + 'externalContributions': '<', + 'sidebarToggledOn': '<', + 'currentState': '<' + } +}); diff --git a/app/docker/components/dockerSidebarContent/dockerSidebarContent.html b/app/docker/components/dockerSidebarContent/dockerSidebarContent.html new file mode 100644 index 000000000..85454e018 --- /dev/null +++ b/app/docker/components/dockerSidebarContent/dockerSidebarContent.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + diff --git a/app/docker/components/imageRegistry/por-image-registry.js b/app/docker/components/imageRegistry/por-image-registry.js new file mode 100644 index 000000000..211499e5b --- /dev/null +++ b/app/docker/components/imageRegistry/por-image-registry.js @@ -0,0 +1,9 @@ +angular.module('portainer.docker').component('porImageRegistry', { + templateUrl: 'app/docker/components/imageRegistry/porImageRegistry.html', + controller: 'porImageRegistryController', + bindings: { + 'image': '=', + 'registry': '=', + 'autoComplete': '<' + } +}); diff --git a/app/directives/imageRegistry/porImageRegistry.html b/app/docker/components/imageRegistry/porImageRegistry.html similarity index 100% rename from app/directives/imageRegistry/porImageRegistry.html rename to app/docker/components/imageRegistry/porImageRegistry.html diff --git a/app/directives/imageRegistry/porImageRegistryController.js b/app/docker/components/imageRegistry/porImageRegistryController.js similarity index 97% rename from app/directives/imageRegistry/porImageRegistryController.js rename to app/docker/components/imageRegistry/porImageRegistryController.js index b037bcb41..968196938 100644 --- a/app/directives/imageRegistry/porImageRegistryController.js +++ b/app/docker/components/imageRegistry/porImageRegistryController.js @@ -1,4 +1,4 @@ -angular.module('portainer') +angular.module('portainer.docker') .controller('porImageRegistryController', ['$q', 'RegistryService', 'DockerHubService', 'ImageService', 'Notifications', function ($q, RegistryService, DockerHubService, ImageService, Notifications) { var ctrl = this; diff --git a/app/filters/filters.js b/app/docker/filters/filters.js similarity index 69% rename from app/filters/filters.js rename to app/docker/filters/filters.js index a30a71f87..17c3efb68 100644 --- a/app/filters/filters.js +++ b/app/docker/filters/filters.js @@ -4,39 +4,7 @@ function includeString(text, values) { }); } -angular.module('portainer.filters') -.filter('truncate', function () { - 'use strict'; - return function (text, length, end) { - if (isNaN(length)) { - length = 10; - } - - if (end === undefined) { - end = '...'; - } - - if (text.length <= length || text.length - end.length <= length) { - return text; - } else { - return String(text).substring(0, length - end.length) + end; - } - }; -}) -.filter('truncatelr', function () { - 'use strict'; - return function (text, max, left, right) { - max = isNaN(max) ? 50 : max; - left = isNaN(left) ? 25 : left; - right = isNaN(right) ? 25 : right; - - if (text.length <= max) { - return text; - } else { - return text.substring(0, left) + '[...]' + text.substring(text.length - right, text.length); - } - }; -}) +angular.module('portainer.docker') .filter('visualizerTask', function () { 'use strict'; return function (text) { @@ -124,12 +92,6 @@ angular.module('portainer.filters') return ''; }; }) -.filter('capitalize', function () { - 'use strict'; - return function (text) { - return _.capitalize(text); - }; -}) .filter('getstatetext', function () { 'use strict'; return function (state) { @@ -154,12 +116,6 @@ angular.module('portainer.filters') return 'Stopped'; }; }) -.filter('stripprotocol', function() { - 'use strict'; - return function (url) { - return url.replace(/.*?:\/\//g, ''); - }; -}) .filter('getstatelabel', function () { 'use strict'; return function (state) { @@ -175,20 +131,6 @@ angular.module('portainer.filters') return 'label-default'; }; }) -.filter('humansize', function () { - 'use strict'; - return function (bytes, round, base) { - if (!round) { - round = 1; - } - if (!base) { - base = 10; - } - if (bytes || bytes === 0) { - return filesize(bytes, {base: base, round: round}); - } - }; -}) .filter('containername', function () { 'use strict'; return function (container) { @@ -227,18 +169,6 @@ angular.module('portainer.filters') return []; }; }) -.filter('getisodatefromtimestamp', function () { - 'use strict'; - return function (timestamp) { - return moment.unix(timestamp).format('YYYY-MM-DD HH:mm:ss'); - }; -}) -.filter('getisodate', function () { - 'use strict'; - return function (date) { - return moment(date).format('YYYY-MM-DD HH:mm:ss'); - }; -}) .filter('command', function () { 'use strict'; return function (command) { @@ -247,39 +177,6 @@ angular.module('portainer.filters') } }; }) -.filter('key', function () { - 'use strict'; - return function (pair, separator) { - return pair.slice(0, pair.indexOf(separator)); - }; -}) -.filter('value', function () { - 'use strict'; - return function (pair, separator) { - return pair.slice(pair.indexOf(separator) + 1); - }; -}) -.filter('emptyobject', function () { - 'use strict'; - return function (obj) { - return _.isEmpty(obj); - }; -}) -.filter('ipaddress', function () { - 'use strict'; - return function (ip) { - return ip.slice(0, ip.indexOf('/')); - }; -}) -.filter('arraytostr', function () { - 'use strict'; - return function (arr, separator) { - if (arr) { - return _.join(arr, separator); - } - return ''; - }; -}) .filter('hideshasum', function () { 'use strict'; return function (imageName) { @@ -289,21 +186,6 @@ angular.module('portainer.filters') return ''; }; }) -.filter('ownershipicon', function () { - 'use strict'; - return function (ownership) { - switch (ownership) { - case 'private': - return 'fa fa-eye-slash'; - case 'administrators': - return 'fa fa-eye-slash'; - case 'restricted': - return 'fa fa-users'; - default: - return 'fa fa-eye'; - } - }; -}) .filter('availablenodecount', function () { 'use strict'; return function (nodes) { diff --git a/app/helpers/configHelper.js b/app/docker/helpers/configHelper.js similarity index 95% rename from app/helpers/configHelper.js rename to app/docker/helpers/configHelper.js index f47eacc7e..104377414 100644 --- a/app/helpers/configHelper.js +++ b/app/docker/helpers/configHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('ConfigHelper', [function ConfigHelperFactory() { 'use strict'; return { diff --git a/app/helpers/containerHelper.js b/app/docker/helpers/containerHelper.js similarity index 97% rename from app/helpers/containerHelper.js rename to app/docker/helpers/containerHelper.js index 544bc1ac8..c30af02c6 100644 --- a/app/helpers/containerHelper.js +++ b/app/docker/helpers/containerHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('ContainerHelper', [function ContainerHelperFactory() { 'use strict'; var helper = {}; diff --git a/app/helpers/imageHelper.js b/app/docker/helpers/imageHelper.js similarity index 97% rename from app/helpers/imageHelper.js rename to app/docker/helpers/imageHelper.js index 324f28519..0ea9292bc 100644 --- a/app/helpers/imageHelper.js +++ b/app/docker/helpers/imageHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('ImageHelper', [function ImageHelperFactory() { 'use strict'; diff --git a/app/helpers/infoHelper.js b/app/docker/helpers/infoHelper.js similarity index 96% rename from app/helpers/infoHelper.js rename to app/docker/helpers/infoHelper.js index c78e86bbc..092439eb3 100644 --- a/app/helpers/infoHelper.js +++ b/app/docker/helpers/infoHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('InfoHelper', [function InfoHelperFactory() { 'use strict'; return { diff --git a/app/helpers/labelHelper.js b/app/docker/helpers/labelHelper.js similarity index 94% rename from app/helpers/labelHelper.js rename to app/docker/helpers/labelHelper.js index 8963d0d1f..06b26af80 100644 --- a/app/helpers/labelHelper.js +++ b/app/docker/helpers/labelHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('LabelHelper', [function LabelHelperFactory() { 'use strict'; return { diff --git a/app/helpers/nodeHelper.js b/app/docker/helpers/nodeHelper.js similarity index 94% rename from app/helpers/nodeHelper.js rename to app/docker/helpers/nodeHelper.js index b40903cc8..3e79915fe 100644 --- a/app/helpers/nodeHelper.js +++ b/app/docker/helpers/nodeHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('NodeHelper', [function NodeHelperFactory() { 'use strict'; return { diff --git a/app/helpers/secretHelper.js b/app/docker/helpers/secretHelper.js similarity index 95% rename from app/helpers/secretHelper.js rename to app/docker/helpers/secretHelper.js index afd3b1a56..a96241474 100644 --- a/app/helpers/secretHelper.js +++ b/app/docker/helpers/secretHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('SecretHelper', [function SecretHelperFactory() { 'use strict'; return { diff --git a/app/helpers/serviceHelper.js b/app/docker/helpers/serviceHelper.js similarity index 90% rename from app/helpers/serviceHelper.js rename to app/docker/helpers/serviceHelper.js index 38adafe0d..551706d37 100644 --- a/app/helpers/serviceHelper.js +++ b/app/docker/helpers/serviceHelper.js @@ -1,4 +1,5 @@ -angular.module('portainer.helpers').factory('ServiceHelper', [function ServiceHelperFactory() { +angular.module('portainer.docker') +.factory('ServiceHelper', [function ServiceHelperFactory() { 'use strict'; var helper = {}; @@ -141,17 +142,17 @@ angular.module('portainer.helpers').factory('ServiceHelper', [function ServiceHe } }; - helper.translateHumanDurationToNanos = function(humanDuration) { + helper.translateHumanDurationToNanos = function(humanDuration) { var nanos; var regex = /^([0-9]+)(h|m|s|ms|us|ns)$/i; var matches = humanDuration.match(regex); if (matches !== null && matches.length === 3) { var duration = parseInt(matches[1], 10); - var unit = matches[2]; + var unit = matches[2]; // Moment.js cannot use micro or nanoseconds switch (unit) { - case 'ns': + case 'ns': nanos = duration; break; case 'us': @@ -159,7 +160,7 @@ angular.module('portainer.helpers').factory('ServiceHelper', [function ServiceHe break; default: nanos = moment.duration(duration, unit).asMilliseconds() * 1000000; - } + } } return nanos; }; @@ -171,8 +172,8 @@ angular.module('portainer.helpers').factory('ServiceHelper', [function ServiceHe // e.g 3540000000000 nanoseconds = 59m // e.g 3600000000000 nanoseconds = 1h - helper.translateNanosToHumanDuration = function(nanos) { - var humanDuration = '0s'; + helper.translateNanosToHumanDuration = function(nanos) { + var humanDuration = '0s'; var conversionFromNano = {}; conversionFromNano['ns'] = 1; conversionFromNano['us'] = conversionFromNano['ns'] * 1000; @@ -180,18 +181,18 @@ angular.module('portainer.helpers').factory('ServiceHelper', [function ServiceHe conversionFromNano['s'] = conversionFromNano['ms'] * 1000; conversionFromNano['m'] = conversionFromNano['s'] * 60; conversionFromNano['h'] = conversionFromNano['m'] * 60; - - Object.keys(conversionFromNano).forEach(function(unit) { + + Object.keys(conversionFromNano).forEach(function(unit) { if ( nanos % conversionFromNano[unit] === 0 && (nanos / conversionFromNano[unit]) > 0) { humanDuration = (nanos / conversionFromNano[unit]) + unit; } - }); + }); return humanDuration; }; helper.translateLogDriverOptsToKeyValue = function(logOptions) { var options = []; - if (logOptions) { + if (logOptions) { Object.keys(logOptions).forEach(function(key) { options.push({ key: key, @@ -200,46 +201,46 @@ angular.module('portainer.helpers').factory('ServiceHelper', [function ServiceHe originalValue: logOptions[key], added: true }); - }); + }); } return options; }; helper.translateKeyValueToLogDriverOpts = function(keyValueLogDriverOpts) { var options = {}; - if (keyValueLogDriverOpts) { + if (keyValueLogDriverOpts) { keyValueLogDriverOpts.forEach(function(option) { if (option.key && option.key !== '' && option.value && option.value !== '') { options[option.key] = option.value; } }); } - return options; - }; + return options; + }; helper.translateHostsEntriesToHostnameIP = function(entries) { var ipHostEntries = []; - if (entries) { + if (entries) { entries.forEach(function(entry) { if (entry.indexOf(' ') && entry.split(' ').length === 2) { var keyValue = entry.split(' '); ipHostEntries.push({ hostname: keyValue[1], ip: keyValue[0]}); } - }); + }); } - return ipHostEntries; + return ipHostEntries; }; helper.translateHostnameIPToHostsEntries = function(entries) { var ipHostEntries = []; - if (entries) { + if (entries) { entries.forEach(function(entry) { - if (entry.ip && entry.hostname) { + if (entry.ip && entry.hostname) { ipHostEntries.push(entry.ip + ' ' + entry.hostname); } - }); - } - return ipHostEntries; + }); + } + return ipHostEntries; }; return helper; diff --git a/app/helpers/volumeHelper.js b/app/docker/helpers/volumeHelper.js similarity index 95% rename from app/helpers/volumeHelper.js rename to app/docker/helpers/volumeHelper.js index 45ca512d4..20cc66c2d 100644 --- a/app/helpers/volumeHelper.js +++ b/app/docker/helpers/volumeHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.docker') .factory('VolumeHelper', [function VolumeHelperFactory() { 'use strict'; var helper = {}; diff --git a/app/models/docker/config.js b/app/docker/models/config.js similarity index 100% rename from app/models/docker/config.js rename to app/docker/models/config.js diff --git a/app/models/docker/container.js b/app/docker/models/container.js similarity index 100% rename from app/models/docker/container.js rename to app/docker/models/container.js diff --git a/app/models/docker/containerDetails.js b/app/docker/models/containerDetails.js similarity index 100% rename from app/models/docker/containerDetails.js rename to app/docker/models/containerDetails.js diff --git a/app/models/docker/containerStats.js b/app/docker/models/containerStats.js similarity index 100% rename from app/models/docker/containerStats.js rename to app/docker/models/containerStats.js diff --git a/app/models/docker/event.js b/app/docker/models/event.js similarity index 100% rename from app/models/docker/event.js rename to app/docker/models/event.js diff --git a/app/models/docker/image.js b/app/docker/models/image.js similarity index 100% rename from app/models/docker/image.js rename to app/docker/models/image.js diff --git a/app/models/docker/imageDetails.js b/app/docker/models/imageDetails.js similarity index 100% rename from app/models/docker/imageDetails.js rename to app/docker/models/imageDetails.js diff --git a/app/models/docker/imageLayer.js b/app/docker/models/imageLayer.js similarity index 100% rename from app/models/docker/imageLayer.js rename to app/docker/models/imageLayer.js diff --git a/app/models/docker/network.js b/app/docker/models/network.js similarity index 100% rename from app/models/docker/network.js rename to app/docker/models/network.js diff --git a/app/models/docker/node.js b/app/docker/models/node.js similarity index 100% rename from app/models/docker/node.js rename to app/docker/models/node.js diff --git a/app/models/docker/plugin.js b/app/docker/models/plugin.js similarity index 100% rename from app/models/docker/plugin.js rename to app/docker/models/plugin.js diff --git a/app/models/docker/secret.js b/app/docker/models/secret.js similarity index 100% rename from app/models/docker/secret.js rename to app/docker/models/secret.js diff --git a/app/models/docker/service.js b/app/docker/models/service.js similarity index 100% rename from app/models/docker/service.js rename to app/docker/models/service.js diff --git a/app/models/api/stack.js b/app/docker/models/stack.js similarity index 100% rename from app/models/api/stack.js rename to app/docker/models/stack.js diff --git a/app/models/api/stackTemplate.js b/app/docker/models/stackTemplate.js similarity index 100% rename from app/models/api/stackTemplate.js rename to app/docker/models/stackTemplate.js diff --git a/app/models/docker/swarm.js b/app/docker/models/swarm.js similarity index 100% rename from app/models/docker/swarm.js rename to app/docker/models/swarm.js diff --git a/app/models/docker/task.js b/app/docker/models/task.js similarity index 100% rename from app/models/docker/task.js rename to app/docker/models/task.js diff --git a/app/models/api/template.js b/app/docker/models/template.js similarity index 100% rename from app/models/api/template.js rename to app/docker/models/template.js diff --git a/app/models/api/templateLinuxServer.js b/app/docker/models/templateLinuxServer.js similarity index 100% rename from app/models/api/templateLinuxServer.js rename to app/docker/models/templateLinuxServer.js diff --git a/app/models/docker/volume.js b/app/docker/models/volume.js similarity index 100% rename from app/models/docker/volume.js rename to app/docker/models/volume.js diff --git a/app/rest/docker/config.js b/app/docker/rest/config.js similarity index 94% rename from app/rest/docker/config.js rename to app/docker/rest/config.js index 6504375c4..2b21ee2d0 100644 --- a/app/rest/docker/config.js +++ b/app/docker/rest/config.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Config', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function ConfigFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/configs/:id/:action', { diff --git a/app/rest/docker/container.js b/app/docker/rest/container.js similarity index 98% rename from app/rest/docker/container.js rename to app/docker/rest/container.js index a3a37604b..cfa0a0587 100644 --- a/app/rest/docker/container.js +++ b/app/docker/rest/container.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Container', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function ContainerFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/containers/:id/:action', { diff --git a/app/rest/docker/containerCommit.js b/app/docker/rest/containerCommit.js similarity index 92% rename from app/rest/docker/containerCommit.js rename to app/docker/rest/containerCommit.js index 54b9d47eb..6b3233d9d 100644 --- a/app/rest/docker/containerCommit.js +++ b/app/docker/rest/containerCommit.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('ContainerCommit', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function ContainerCommitFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/commit', { diff --git a/app/rest/docker/containerLogs.js b/app/docker/rest/containerLogs.js similarity index 95% rename from app/rest/docker/containerLogs.js rename to app/docker/rest/containerLogs.js index a08181686..f4520f3b0 100644 --- a/app/rest/docker/containerLogs.js +++ b/app/docker/rest/containerLogs.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('ContainerLogs', ['$http', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function ContainerLogsFactory($http, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return { diff --git a/app/rest/docker/exec.js b/app/docker/rest/exec.js similarity index 93% rename from app/rest/docker/exec.js rename to app/docker/rest/exec.js index d852a3296..bbd7642d9 100644 --- a/app/rest/docker/exec.js +++ b/app/docker/rest/exec.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Exec', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function ExecFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/exec/:id/:action', { diff --git a/app/rest/docker/image.js b/app/docker/rest/image.js similarity index 97% rename from app/rest/docker/image.js rename to app/docker/rest/image.js index fa08c6dad..6430c5637 100644 --- a/app/rest/docker/image.js +++ b/app/docker/rest/image.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Image', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', 'HttpRequestHelper', function ImageFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider, HttpRequestHelper) { 'use strict'; diff --git a/app/rest/docker/network.js b/app/docker/rest/network.js similarity index 95% rename from app/rest/docker/network.js rename to app/docker/rest/network.js index dd1a1e045..2bfc4cd4c 100644 --- a/app/rest/docker/network.js +++ b/app/docker/rest/network.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Network', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function NetworkFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/networks/:id/:action', { diff --git a/app/rest/docker/node.js b/app/docker/rest/node.js similarity index 94% rename from app/rest/docker/node.js rename to app/docker/rest/node.js index 22f7b3543..821e40328 100644 --- a/app/rest/docker/node.js +++ b/app/docker/rest/node.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Node', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function NodeFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/nodes/:id/:action', { diff --git a/app/rest/docker/plugin.js b/app/docker/rest/plugin.js similarity index 91% rename from app/rest/docker/plugin.js rename to app/docker/rest/plugin.js index a0a342d2d..c73817fd4 100644 --- a/app/rest/docker/plugin.js +++ b/app/docker/rest/plugin.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Plugin', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function PluginFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/plugins/:id/:action', { diff --git a/app/rest/docker/response/handlers.js b/app/docker/rest/response/handlers.js similarity index 100% rename from app/rest/docker/response/handlers.js rename to app/docker/rest/response/handlers.js diff --git a/app/rest/docker/secret.js b/app/docker/rest/secret.js similarity index 94% rename from app/rest/docker/secret.js rename to app/docker/rest/secret.js index 4edb6ca4d..1f5f8ab95 100644 --- a/app/rest/docker/secret.js +++ b/app/docker/rest/secret.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Secret', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function SecretFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/secrets/:id/:action', { diff --git a/app/rest/docker/service.js b/app/docker/rest/service.js similarity index 95% rename from app/rest/docker/service.js rename to app/docker/rest/service.js index 877d8fa30..66e19468c 100644 --- a/app/rest/docker/service.js +++ b/app/docker/rest/service.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Service', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', 'HttpRequestHelper' ,function ServiceFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider, HttpRequestHelper) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/services/:id/:action', { diff --git a/app/rest/docker/serviceLogs.js b/app/docker/rest/serviceLogs.js similarity index 95% rename from app/rest/docker/serviceLogs.js rename to app/docker/rest/serviceLogs.js index 87e03e6b9..fbd25ec66 100644 --- a/app/rest/docker/serviceLogs.js +++ b/app/docker/rest/serviceLogs.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('ServiceLogs', ['$http', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function ServiceLogsFactory($http, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return { diff --git a/app/rest/docker/swarm.js b/app/docker/rest/swarm.js similarity index 90% rename from app/rest/docker/swarm.js rename to app/docker/rest/swarm.js index d365ea5d1..b8f83fd93 100644 --- a/app/rest/docker/swarm.js +++ b/app/docker/rest/swarm.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Swarm', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function SwarmFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/swarm', { diff --git a/app/rest/docker/system.js b/app/docker/rest/system.js similarity index 95% rename from app/rest/docker/system.js rename to app/docker/rest/system.js index 9e9a484d9..e9f8c18b2 100644 --- a/app/rest/docker/system.js +++ b/app/docker/rest/system.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('System', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function SystemFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/:action/:subAction', { diff --git a/app/rest/docker/task.js b/app/docker/rest/task.js similarity index 92% rename from app/rest/docker/task.js rename to app/docker/rest/task.js index 2806b0852..73032ae12 100644 --- a/app/rest/docker/task.js +++ b/app/docker/rest/task.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Task', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function TaskFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/tasks/:id', { diff --git a/app/rest/docker/volume.js b/app/docker/rest/volume.js similarity index 94% rename from app/rest/docker/volume.js rename to app/docker/rest/volume.js index 32214303c..935379396 100644 --- a/app/rest/docker/volume.js +++ b/app/docker/rest/volume.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.docker') .factory('Volume', ['$resource', 'API_ENDPOINT_ENDPOINTS', 'EndpointProvider', function VolumeFactory($resource, API_ENDPOINT_ENDPOINTS, EndpointProvider) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/docker/volumes/:id/:action', diff --git a/app/services/docker/configService.js b/app/docker/services/configService.js similarity index 97% rename from app/services/docker/configService.js rename to app/docker/services/configService.js index 530c689e7..9063004a9 100644 --- a/app/services/docker/configService.js +++ b/app/docker/services/configService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('ConfigService', ['$q', 'Config', function ConfigServiceFactory($q, Config) { 'use strict'; var service = {}; diff --git a/app/services/docker/containerService.js b/app/docker/services/containerService.js similarity index 99% rename from app/services/docker/containerService.js rename to app/docker/services/containerService.js index 99955b350..204dbe545 100644 --- a/app/services/docker/containerService.js +++ b/app/docker/services/containerService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('ContainerService', ['$q', 'Container', 'ResourceControlService', function ContainerServiceFactory($q, Container, ResourceControlService) { 'use strict'; var service = {}; diff --git a/app/services/docker/execService.js b/app/docker/services/execService.js similarity index 95% rename from app/services/docker/execService.js rename to app/docker/services/execService.js index 5f88846ec..0499aced0 100644 --- a/app/services/docker/execService.js +++ b/app/docker/services/execService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('ExecService', ['$q', '$timeout', 'Exec', function ExecServiceFactory($q, $timeout, Exec) { 'use strict'; var service = {}; diff --git a/app/services/docker/imageService.js b/app/docker/services/imageService.js similarity index 99% rename from app/services/docker/imageService.js rename to app/docker/services/imageService.js index 4ca499fa9..973014ca7 100644 --- a/app/services/docker/imageService.js +++ b/app/docker/services/imageService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('ImageService', ['$q', 'Image', 'ImageHelper', 'RegistryService', 'HttpRequestHelper', 'ContainerService', function ImageServiceFactory($q, Image, ImageHelper, RegistryService, HttpRequestHelper, ContainerService) { 'use strict'; var service = {}; diff --git a/app/services/docker/networkService.js b/app/docker/services/networkService.js similarity index 98% rename from app/services/docker/networkService.js rename to app/docker/services/networkService.js index d8b551d01..a58969f6e 100644 --- a/app/services/docker/networkService.js +++ b/app/docker/services/networkService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('NetworkService', ['$q', 'Network', function NetworkServiceFactory($q, Network) { 'use strict'; var service = {}; diff --git a/app/services/docker/nodeService.js b/app/docker/services/nodeService.js similarity index 93% rename from app/services/docker/nodeService.js rename to app/docker/services/nodeService.js index 6ccafb318..706f26647 100644 --- a/app/services/docker/nodeService.js +++ b/app/docker/services/nodeService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('NodeService', ['$q', 'Node', function NodeServiceFactory($q, Node) { 'use strict'; var service = {}; diff --git a/app/services/docker/pluginService.js b/app/docker/services/pluginService.js similarity index 98% rename from app/services/docker/pluginService.js rename to app/docker/services/pluginService.js index 85a054738..ad73dee1c 100644 --- a/app/services/docker/pluginService.js +++ b/app/docker/services/pluginService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('PluginService', ['$q', 'Plugin', 'SystemService', function PluginServiceFactory($q, Plugin, SystemService) { 'use strict'; var service = {}; diff --git a/app/services/docker/secretService.js b/app/docker/services/secretService.js similarity index 97% rename from app/services/docker/secretService.js rename to app/docker/services/secretService.js index 16dda7603..460f6ef5c 100644 --- a/app/services/docker/secretService.js +++ b/app/docker/services/secretService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('SecretService', ['$q', 'Secret', function SecretServiceFactory($q, Secret) { 'use strict'; var service = {}; diff --git a/app/services/docker/serviceService.js b/app/docker/services/serviceService.js similarity index 97% rename from app/services/docker/serviceService.js rename to app/docker/services/serviceService.js index 69fc89842..7f136b6ab 100644 --- a/app/services/docker/serviceService.js +++ b/app/docker/services/serviceService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('ServiceService', ['$q', 'Service', 'ServiceHelper', 'TaskService', 'ResourceControlService', function ServiceServiceFactory($q, Service, ServiceHelper, TaskService, ResourceControlService) { 'use strict'; var service = {}; diff --git a/app/services/api/stackService.js b/app/docker/services/stackService.js similarity index 99% rename from app/services/api/stackService.js rename to app/docker/services/stackService.js index 64b99ec01..1d3e65411 100644 --- a/app/services/api/stackService.js +++ b/app/docker/services/stackService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('StackService', ['$q', 'Stack', 'ResourceControlService', 'FileUploadService', 'StackHelper', 'ServiceService', 'SwarmService', function StackServiceFactory($q, Stack, ResourceControlService, FileUploadService, StackHelper, ServiceService, SwarmService) { 'use strict'; diff --git a/app/services/docker/swarmService.js b/app/docker/services/swarmService.js similarity index 93% rename from app/services/docker/swarmService.js rename to app/docker/services/swarmService.js index 8a2dc3ff5..5f1955a22 100644 --- a/app/services/docker/swarmService.js +++ b/app/docker/services/swarmService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('SwarmService', ['$q', 'Swarm', function SwarmServiceFactory($q, Swarm) { 'use strict'; var service = {}; diff --git a/app/services/docker/systemService.js b/app/docker/services/systemService.js similarity index 97% rename from app/services/docker/systemService.js rename to app/docker/services/systemService.js index fcaed9e73..9b2731b91 100644 --- a/app/services/docker/systemService.js +++ b/app/docker/services/systemService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('SystemService', ['$q', 'System', function SystemServiceFactory($q, System) { 'use strict'; var service = {}; diff --git a/app/services/docker/taskService.js b/app/docker/services/taskService.js similarity index 96% rename from app/services/docker/taskService.js rename to app/docker/services/taskService.js index 13babf0aa..3280c5c15 100644 --- a/app/services/docker/taskService.js +++ b/app/docker/services/taskService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('TaskService', ['$q', 'Task', function TaskServiceFactory($q, Task) { 'use strict'; var service = {}; diff --git a/app/services/docker/volumeService.js b/app/docker/services/volumeService.js similarity index 98% rename from app/services/docker/volumeService.js rename to app/docker/services/volumeService.js index 8ae9425c6..d52b60528 100644 --- a/app/services/docker/volumeService.js +++ b/app/docker/services/volumeService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.docker') .factory('VolumeService', ['$q', 'Volume', 'VolumeHelper', 'ResourceControlService', 'UserService', 'TeamService', function VolumeServiceFactory($q, Volume, VolumeHelper, ResourceControlService, UserService, TeamService) { 'use strict'; var service = {}; diff --git a/app/components/configs/configs.html b/app/docker/views/configs/configs.html similarity index 84% rename from app/components/configs/configs.html rename to app/docker/views/configs/configs.html index ab2c0cea4..7bb8f7c24 100644 --- a/app/components/configs/configs.html +++ b/app/docker/views/configs/configs.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/configs/configsController.js b/app/docker/views/configs/configsController.js similarity index 96% rename from app/components/configs/configsController.js rename to app/docker/views/configs/configsController.js index 908a59002..9d073542b 100644 --- a/app/components/configs/configsController.js +++ b/app/docker/views/configs/configsController.js @@ -1,7 +1,7 @@ -angular.module('configs', []) +angular.module('portainer.docker') .controller('ConfigsController', ['$scope', '$state', 'ConfigService', 'Notifications', function ($scope, $state, ConfigService, Notifications) { - + $scope.removeAction = function (selectedItems) { var actionCount = selectedItems.length; angular.forEach(selectedItems, function (config) { diff --git a/app/components/createConfig/createConfigController.js b/app/docker/views/configs/create/createConfigController.js similarity index 96% rename from app/components/createConfig/createConfigController.js rename to app/docker/views/configs/create/createConfigController.js index 071b38bdd..19a698b0b 100644 --- a/app/components/createConfig/createConfigController.js +++ b/app/docker/views/configs/create/createConfigController.js @@ -1,4 +1,4 @@ -angular.module('createConfig', []) +angular.module('portainer.docker') .controller('CreateConfigController', ['$scope', '$state', '$document', 'Notifications', 'ConfigService', 'Authentication', 'FormValidator', 'ResourceControlService', 'CodeMirrorService', function ($scope, $state, $document, Notifications, ConfigService, Authentication, FormValidator, ResourceControlService, CodeMirrorService) { @@ -76,7 +76,7 @@ function ($scope, $state, $document, Notifications, ConfigService, Authenticatio }) .then(function success() { Notifications.success('Config successfully created'); - $state.go('configs', {}, {reload: true}); + $state.go('docker.configs', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to create config'); diff --git a/app/components/createConfig/createconfig.html b/app/docker/views/configs/create/createconfig.html similarity index 98% rename from app/components/createConfig/createconfig.html rename to app/docker/views/configs/create/createconfig.html index 4256bf487..0f7972ad0 100644 --- a/app/components/createConfig/createconfig.html +++ b/app/docker/views/configs/create/createconfig.html @@ -1,7 +1,7 @@ - Configs > Add config + Configs > Add config diff --git a/app/components/config/config.html b/app/docker/views/configs/edit/config.html similarity index 90% rename from app/components/config/config.html rename to app/docker/views/configs/edit/config.html index a334dec47..2b84b6d54 100644 --- a/app/components/config/config.html +++ b/app/docker/views/configs/edit/config.html @@ -1,11 +1,11 @@ - + - Configs > {{ config.Name }} + Configs > {{ config.Name }} diff --git a/app/components/config/configController.js b/app/docker/views/configs/edit/configController.js similarity index 93% rename from app/components/config/configController.js rename to app/docker/views/configs/edit/configController.js index 67bc39e3f..72c1ea86b 100644 --- a/app/components/config/configController.js +++ b/app/docker/views/configs/edit/configController.js @@ -1,4 +1,4 @@ -angular.module('config', []) +angular.module('portainer.docker') .controller('ConfigController', ['$scope', '$transition$', '$state', '$document', 'ConfigService', 'Notifications', 'CodeMirrorService', function ($scope, $transition$, $state, $document, ConfigService, Notifications, CodeMirrorService) { @@ -6,7 +6,7 @@ function ($scope, $transition$, $state, $document, ConfigService, Notifications, ConfigService.remove(configId) .then(function success(data) { Notifications.success('Config successfully removed'); - $state.go('configs', {}); + $state.go('docker.configs', {}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove config'); diff --git a/app/components/containerConsole/containerConsoleController.js b/app/docker/views/containers/console/containerConsoleController.js similarity index 98% rename from app/components/containerConsole/containerConsoleController.js rename to app/docker/views/containers/console/containerConsoleController.js index d6de4884f..03d42f11b 100644 --- a/app/components/containerConsole/containerConsoleController.js +++ b/app/docker/views/containers/console/containerConsoleController.js @@ -1,4 +1,4 @@ -angular.module('containerConsole', []) +angular.module('portainer.docker') .controller('ContainerConsoleController', ['$scope', '$transition$', 'Container', 'Image', 'EndpointProvider', 'Notifications', 'ContainerHelper', 'ContainerService', 'ExecService', function ($scope, $transition$, Container, Image, EndpointProvider, Notifications, ContainerHelper, ContainerService, ExecService) { $scope.state = { diff --git a/app/components/containerConsole/containerConsole.html b/app/docker/views/containers/console/containerconsole.html similarity index 95% rename from app/components/containerConsole/containerConsole.html rename to app/docker/views/containers/console/containerconsole.html index bb662f38f..58afefa36 100644 --- a/app/components/containerConsole/containerConsole.html +++ b/app/docker/views/containers/console/containerconsole.html @@ -1,7 +1,7 @@ - Containers > {{ container.Name|trimcontainername }} > Console + Containers > {{ container.Name|trimcontainername }} > Console diff --git a/app/components/containers/containers.html b/app/docker/views/containers/containers.html similarity index 90% rename from app/components/containers/containers.html rename to app/docker/views/containers/containers.html index da72b72de..513ed8766 100644 --- a/app/components/containers/containers.html +++ b/app/docker/views/containers/containers.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/containers/containersController.js b/app/docker/views/containers/containersController.js similarity index 99% rename from app/components/containers/containersController.js rename to app/docker/views/containers/containersController.js index 988aaa991..ae302b9ef 100644 --- a/app/components/containers/containersController.js +++ b/app/docker/views/containers/containersController.js @@ -1,4 +1,4 @@ -angular.module('containers', []) +angular.module('portainer.docker') .controller('ContainersController', ['$q', '$scope', '$state', '$filter', '$transition$', 'ContainerService', 'SystemService', 'Notifications', 'ModalService', 'EndpointProvider', function ($q, $scope, $state, $filter, $transition$, ContainerService, SystemService, Notifications, ModalService, EndpointProvider) { $scope.state = { diff --git a/app/components/createContainer/createContainerController.js b/app/docker/views/containers/create/createContainerController.js similarity index 98% rename from app/components/createContainer/createContainerController.js rename to app/docker/views/containers/create/createContainerController.js index cab587bd4..b7ad04651 100644 --- a/app/components/createContainer/createContainerController.js +++ b/app/docker/views/containers/create/createContainerController.js @@ -1,6 +1,4 @@ -// @@OLD_SERVICE_CONTROLLER: this service should be rewritten to use services. -// See app/components/templates/templatesController.js as a reference. -angular.module('createContainer', []) +angular.module('portainer.docker') .controller('CreateContainerController', ['$q', '$scope', '$state', '$timeout', '$transition$', '$filter', 'Container', 'ContainerHelper', 'Image', 'ImageHelper', 'Volume', 'NetworkService', 'ResourceControlService', 'Authentication', 'Notifications', 'ContainerService', 'ImageService', 'FormValidator', 'ModalService', 'RegistryService', 'SystemService', 'SettingsService', function ($q, $scope, $state, $timeout, $transition$, $filter, Container, ContainerHelper, Image, ImageHelper, Volume, NetworkService, ResourceControlService, Authentication, Notifications, ContainerService, ImageService, FormValidator, ModalService, RegistryService, SystemService, SettingsService) { @@ -611,7 +609,7 @@ function ($q, $scope, $state, $timeout, $transition$, $filter, Container, Contai }) .then(function success() { Notifications.success('Container successfully created'); - $state.go('containers', {}, {reload: true}); + $state.go('docker.containers', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to create container'); diff --git a/app/components/createContainer/createcontainer.html b/app/docker/views/containers/create/createcontainer.html similarity index 99% rename from app/components/createContainer/createcontainer.html rename to app/docker/views/containers/create/createcontainer.html index 7a692a25e..043de72cd 100644 --- a/app/components/createContainer/createcontainer.html +++ b/app/docker/views/containers/create/createcontainer.html @@ -1,7 +1,7 @@ - Containers > Add container + Containers > Add container @@ -289,7 +289,7 @@
- You don't have any shared network. Head over the networks view to create one. + You don't have any shared network. Head over the networks view to create one.
diff --git a/app/components/container/container.html b/app/docker/views/containers/edit/container.html similarity index 91% rename from app/components/container/container.html rename to app/docker/views/containers/edit/container.html index 15b94b8b7..58fa5f819 100644 --- a/app/components/container/container.html +++ b/app/docker/views/containers/edit/container.html @@ -2,7 +2,7 @@ - Containers > {{ container.Name|trimcontainername }} + Containers > {{ container.Name|trimcontainername }} @@ -84,10 +84,10 @@ @@ -184,7 +184,7 @@ Image - {{ container.Image }} + {{ container.Image }} Port configuration @@ -259,7 +259,7 @@ {{ vol.Source }} - {{ vol.Name }} + {{ vol.Name }} {{ vol.Destination }} diff --git a/app/components/container/containerController.js b/app/docker/views/containers/edit/containerController.js similarity index 95% rename from app/components/container/containerController.js rename to app/docker/views/containers/edit/containerController.js index 3df165542..d89f3dfa4 100644 --- a/app/components/container/containerController.js +++ b/app/docker/views/containers/edit/containerController.js @@ -1,4 +1,4 @@ -angular.module('container', []) +angular.module('portainer.docker') .controller('ContainerController', ['$q', '$scope', '$state','$transition$', '$filter', 'Container', 'ContainerCommit', 'ContainerHelper', 'ContainerService', 'ImageHelper', 'Network', 'NetworkService', 'Notifications', 'ModalService', 'ResourceControlService', 'RegistryService', 'ImageService', function ($q, $scope, $state, $transition$, $filter, Container, ContainerCommit, ContainerHelper, ContainerService, ImageHelper, Network, NetworkService, Notifications, ModalService, ResourceControlService, RegistryService, ImageService) { $scope.activityTime = 0; @@ -131,7 +131,7 @@ function ($q, $scope, $state, $transition$, $filter, Container, ContainerCommit, ContainerService.remove($scope.container, cleanAssociatedVolumes) .then(function success() { Notifications.success('Container successfully removed'); - $state.go('containers', {}, {reload: true}); + $state.go('docker.containers', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove container'); @@ -171,7 +171,7 @@ function ($q, $scope, $state, $transition$, $filter, Container, ContainerCommit, Notifications.error('Error', d, 'Unable to disconnect container from network'); } else { Notifications.success('Container left network', $transition$.params().id); - $state.go('container', {id: $transition$.params().id}, {reload: true}); + $state.go('docker.containers.container', {id: $transition$.params().id}, {reload: true}); } $scope.state.leaveNetworkInProgress = false; }, function (e) { @@ -181,7 +181,7 @@ function ($q, $scope, $state, $transition$, $filter, Container, ContainerCommit, }; $scope.duplicate = function() { - $state.go('actions.create.container', {from: $transition$.params().id}, {reload: true}); + $state.go('docker.containers.new', {from: $transition$.params().id}, {reload: true}); }; $scope.confirmRemove = function () { @@ -234,7 +234,7 @@ function ($q, $scope, $state, $transition$, $filter, Container, ContainerCommit, }) .then(function success(data) { Notifications.success('Container successfully re-created'); - $state.go('containers', {}, {reload: true}); + $state.go('docker.containers', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to re-create container'); @@ -260,7 +260,7 @@ function ($q, $scope, $state, $transition$, $filter, Container, ContainerCommit, Notifications.error('Error', d, 'Unable to connect container to network'); } else { Notifications.success('Container joined network', $transition$.params().id); - $state.go('container', {id: $transition$.params().id}, {reload: true}); + $state.go('docker.containers.container', {id: $transition$.params().id}, {reload: true}); } $scope.state.joinNetworkInProgress = false; }, function (e) { diff --git a/app/components/containerInspect/containerInspectController.js b/app/docker/views/containers/inspect/containerInspectController.js similarity index 90% rename from app/components/containerInspect/containerInspectController.js rename to app/docker/views/containers/inspect/containerInspectController.js index 66024767d..27d7b21f2 100644 --- a/app/components/containerInspect/containerInspectController.js +++ b/app/docker/views/containers/inspect/containerInspectController.js @@ -1,4 +1,4 @@ -angular.module('containerInspect', ['angular-json-tree']) +angular.module('portainer.docker') .controller('ContainerInspectController', ['$scope', '$transition$', 'Notifications', 'ContainerService', function ($scope, $transition$, Notifications, ContainerService) { diff --git a/app/components/containerInspect/containerInspect.html b/app/docker/views/containers/inspect/containerinspect.html similarity index 84% rename from app/components/containerInspect/containerInspect.html rename to app/docker/views/containers/inspect/containerinspect.html index c0bd20ebb..28d46271d 100644 --- a/app/components/containerInspect/containerInspect.html +++ b/app/docker/views/containers/inspect/containerinspect.html @@ -2,7 +2,7 @@ - Containers > {{ containerInfo.Name|trimcontainername }} > Inspect + Containers > {{ containerInfo.Name|trimcontainername }} > Inspect diff --git a/app/components/containerLogs/containerLogsController.js b/app/docker/views/containers/logs/containerLogsController.js similarity index 98% rename from app/components/containerLogs/containerLogsController.js rename to app/docker/views/containers/logs/containerLogsController.js index 6e48bc47e..dc7169164 100644 --- a/app/components/containerLogs/containerLogsController.js +++ b/app/docker/views/containers/logs/containerLogsController.js @@ -1,4 +1,4 @@ -angular.module('containerLogs', []) +angular.module('portainer.docker') .controller('ContainerLogsController', ['$scope', '$transition$', '$anchorScroll', 'ContainerLogs', 'Container', 'Notifications', function ($scope, $transition$, $anchorScroll, ContainerLogs, Container, Notifications) { $scope.state = {}; diff --git a/app/components/containerLogs/containerlogs.html b/app/docker/views/containers/logs/containerlogs.html similarity index 91% rename from app/components/containerLogs/containerlogs.html rename to app/docker/views/containers/logs/containerlogs.html index 6eb56250b..86ce31b13 100644 --- a/app/components/containerLogs/containerlogs.html +++ b/app/docker/views/containers/logs/containerlogs.html @@ -1,7 +1,7 @@ - Containers > {{ container.Name|trimcontainername }} > Logs + Containers > {{ container.Name|trimcontainername }} > Logs diff --git a/app/components/containerStats/containerStatsController.js b/app/docker/views/containers/stats/containerStatsController.js similarity index 99% rename from app/components/containerStats/containerStatsController.js rename to app/docker/views/containers/stats/containerStatsController.js index 9faf4751b..554db948f 100644 --- a/app/components/containerStats/containerStatsController.js +++ b/app/docker/views/containers/stats/containerStatsController.js @@ -1,4 +1,4 @@ -angular.module('containerStats', []) +angular.module('portainer.docker') .controller('ContainerStatsController', ['$q', '$scope', '$transition$', '$document', '$interval', 'ContainerService', 'ChartService', 'Notifications', function ($q, $scope, $transition$, $document, $interval, ContainerService, ChartService, Notifications) { diff --git a/app/components/containerStats/containerStats.html b/app/docker/views/containers/stats/containerstats.html similarity index 95% rename from app/components/containerStats/containerStats.html rename to app/docker/views/containers/stats/containerstats.html index f6702d680..1d936e179 100644 --- a/app/components/containerStats/containerStats.html +++ b/app/docker/views/containers/stats/containerstats.html @@ -1,7 +1,7 @@ - Containers > {{ container.Name|trimcontainername }} > Stats + Containers > {{ container.Name|trimcontainername }} > Stats diff --git a/app/components/dashboard/dashboard.html b/app/docker/views/dashboard/dashboard.html similarity index 94% rename from app/components/dashboard/dashboard.html rename to app/docker/views/dashboard/dashboard.html index b961e1266..4961a4e59 100644 --- a/app/components/dashboard/dashboard.html +++ b/app/docker/views/dashboard/dashboard.html @@ -78,7 +78,7 @@ @@ -91,7 +91,7 @@
- +
- +
- +
- +
- +
- +
diff --git a/app/components/dashboard/dashboardController.js b/app/docker/views/dashboard/dashboardController.js similarity index 98% rename from app/components/dashboard/dashboardController.js rename to app/docker/views/dashboard/dashboardController.js index 7a367c14d..41fabe454 100644 --- a/app/components/dashboard/dashboardController.js +++ b/app/docker/views/dashboard/dashboardController.js @@ -1,4 +1,4 @@ -angular.module('dashboard', []) +angular.module('portainer.docker') .controller('DashboardController', ['$scope', '$q', 'Container', 'ContainerHelper', 'Image', 'Network', 'Volume', 'SystemService', 'ServiceService', 'StackService', 'Notifications', function ($scope, $q, Container, ContainerHelper, Image, Network, Volume, SystemService, ServiceService, StackService, Notifications) { diff --git a/app/components/engine/engine.html b/app/docker/views/engine/engine.html similarity index 97% rename from app/components/engine/engine.html rename to app/docker/views/engine/engine.html index 50da2664a..3b576a2e2 100644 --- a/app/components/engine/engine.html +++ b/app/docker/views/engine/engine.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/engine/engineController.js b/app/docker/views/engine/engineController.js similarity index 94% rename from app/components/engine/engineController.js rename to app/docker/views/engine/engineController.js index dd3c10181..f106273a5 100644 --- a/app/components/engine/engineController.js +++ b/app/docker/views/engine/engineController.js @@ -1,4 +1,4 @@ -angular.module('engine', []) +angular.module('portainer.docker') .controller('EngineController', ['$q', '$scope', 'SystemService', 'Notifications', function ($q, $scope, SystemService, Notifications) { diff --git a/app/components/events/events.html b/app/docker/views/events/events.html similarity index 82% rename from app/components/events/events.html rename to app/docker/views/events/events.html index 415a89500..5a69138c3 100644 --- a/app/components/events/events.html +++ b/app/docker/views/events/events.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/events/eventsController.js b/app/docker/views/events/eventsController.js similarity index 93% rename from app/components/events/eventsController.js rename to app/docker/views/events/eventsController.js index 997624c08..5a35bb10a 100644 --- a/app/components/events/eventsController.js +++ b/app/docker/views/events/eventsController.js @@ -1,4 +1,4 @@ -angular.module('events', []) +angular.module('portainer.docker') .controller('EventsController', ['$scope', 'Notifications', 'SystemService', function ($scope, Notifications, SystemService) { diff --git a/app/components/image/image.html b/app/docker/views/images/edit/image.html similarity index 97% rename from app/components/image/image.html rename to app/docker/views/images/edit/image.html index be6d2b9fc..0ea7d6b03 100644 --- a/app/components/image/image.html +++ b/app/docker/views/images/edit/image.html @@ -1,7 +1,7 @@ - Images > {{ image.Id }} + Images > {{ image.Id }} @@ -101,7 +101,7 @@ Parent - {{ image.Parent }} + {{ image.Parent }} Size diff --git a/app/components/image/imageController.js b/app/docker/views/images/edit/imageController.js similarity index 91% rename from app/components/image/imageController.js rename to app/docker/views/images/edit/imageController.js index a90b7bb08..b2470a4de 100644 --- a/app/components/image/imageController.js +++ b/app/docker/views/images/edit/imageController.js @@ -1,4 +1,4 @@ -angular.module('image', []) +angular.module('portainer.docker') .controller('ImageController', ['$q', '$scope', '$transition$', '$state', '$timeout', 'ImageService', 'RegistryService', 'Notifications', function ($q, $scope, $transition$, $state, $timeout, ImageService, RegistryService, Notifications) { $scope.formValues = { @@ -27,7 +27,7 @@ function ($q, $scope, $transition$, $state, $timeout, ImageService, RegistryServ ImageService.tagImage($transition$.params().id, image, registry.URL) .then(function success(data) { Notifications.success('Image successfully tagged'); - $state.go('image', {id: $transition$.params().id}, {reload: true}); + $state.go('docker.images.image', {id: $transition$.params().id}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to tag image'); @@ -75,10 +75,10 @@ function ($q, $scope, $transition$, $state, $timeout, ImageService, RegistryServ .then(function success() { if ($scope.image.RepoTags.length === 1) { Notifications.success('Image successfully deleted', repository); - $state.go('images', {}, {reload: true}); + $state.go('docker.images', {}, {reload: true}); } else { Notifications.success('Tag successfully deleted', repository); - $state.go('image', {id: $transition$.params().id}, {reload: true}); + $state.go('docker.images.image', {id: $transition$.params().id}, {reload: true}); } }) .catch(function error(err) { @@ -90,7 +90,7 @@ function ($q, $scope, $transition$, $state, $timeout, ImageService, RegistryServ ImageService.deleteImage(id, false) .then(function success() { Notifications.success('Image successfully deleted', id); - $state.go('images', {}, {reload: true}); + $state.go('docker.images', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove image'); @@ -109,7 +109,7 @@ function ($q, $scope, $transition$, $state, $timeout, ImageService, RegistryServ }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to retrieve image details'); - $state.go('images'); + $state.go('docker.images'); }); } diff --git a/app/components/images/images.html b/app/docker/views/images/images.html similarity index 94% rename from app/components/images/images.html rename to app/docker/views/images/images.html index 942bdbe4a..fe294aaad 100644 --- a/app/components/images/images.html +++ b/app/docker/views/images/images.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/images/imagesController.js b/app/docker/views/images/imagesController.js similarity index 98% rename from app/components/images/imagesController.js rename to app/docker/views/images/imagesController.js index 2ae3b4324..42f1efc41 100644 --- a/app/components/images/imagesController.js +++ b/app/docker/views/images/imagesController.js @@ -1,4 +1,4 @@ -angular.module('images', []) +angular.module('portainer.docker') .controller('ImagesController', ['$scope', '$state', 'ImageService', 'Notifications', 'ModalService', function ($scope, $state, ImageService, Notifications, ModalService) { $scope.state = { diff --git a/app/components/createNetwork/createNetworkController.js b/app/docker/views/networks/create/createNetworkController.js similarity index 97% rename from app/components/createNetwork/createNetworkController.js rename to app/docker/views/networks/create/createNetworkController.js index eedb272ca..0f5f1f2b7 100644 --- a/app/components/createNetwork/createNetworkController.js +++ b/app/docker/views/networks/create/createNetworkController.js @@ -1,4 +1,4 @@ -angular.module('createNetwork', []) +angular.module('portainer.docker') .controller('CreateNetworkController', ['$q', '$scope', '$state', 'PluginService', 'Notifications', 'NetworkService', 'LabelHelper', 'Authentication', 'ResourceControlService', 'FormValidator', function ($q, $scope, $state, PluginService, Notifications, NetworkService, LabelHelper, Authentication, ResourceControlService, FormValidator) { @@ -108,7 +108,7 @@ function ($q, $scope, $state, PluginService, Notifications, NetworkService, Labe }) .then(function success() { Notifications.success('Network successfully created'); - $state.go('networks', {}, {reload: true}); + $state.go('docker.networks', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'An error occured during network creation'); diff --git a/app/components/createNetwork/createnetwork.html b/app/docker/views/networks/create/createnetwork.html similarity index 99% rename from app/components/createNetwork/createnetwork.html rename to app/docker/views/networks/create/createnetwork.html index 20beaf626..780298269 100644 --- a/app/components/createNetwork/createnetwork.html +++ b/app/docker/views/networks/create/createnetwork.html @@ -1,7 +1,7 @@ - Networks > Add network + Networks > Add network diff --git a/app/components/network/network.html b/app/docker/views/networks/edit/network.html similarity index 93% rename from app/components/network/network.html rename to app/docker/views/networks/edit/network.html index 54fb4af3d..161f3e4df 100644 --- a/app/components/network/network.html +++ b/app/docker/views/networks/edit/network.html @@ -1,7 +1,7 @@ - Networks > {{ network.Name }} + Networks > {{ network.Name }} @@ -89,7 +89,7 @@ - {{ container.Name }} + {{ container.Name }} {{ container.IPv4Address || '-' }} {{ container.IPv6Address || '-' }} {{ container.MacAddress || '-' }} diff --git a/app/components/network/networkController.js b/app/docker/views/networks/edit/networkController.js similarity index 95% rename from app/components/network/networkController.js rename to app/docker/views/networks/edit/networkController.js index dfb2b6530..b4b889bcd 100644 --- a/app/components/network/networkController.js +++ b/app/docker/views/networks/edit/networkController.js @@ -1,4 +1,4 @@ -angular.module('network', []) +angular.module('portainer.docker') .controller('NetworkController', ['$scope', '$state', '$transition$', '$filter', 'Network', 'NetworkService', 'Container', 'ContainerHelper', 'Notifications', function ($scope, $state, $transition$, $filter, Network, NetworkService, Container, ContainerHelper, Notifications) { @@ -8,7 +8,7 @@ function ($scope, $state, $transition$, $filter, Network, NetworkService, Contai Notifications.error('Error', d, 'Unable to remove network'); } else { Notifications.success('Network removed', $transition$.params().id); - $state.go('networks', {}); + $state.go('docker.networks', {}); } }, function (e) { Notifications.error('Failure', e, 'Unable to remove network'); @@ -21,7 +21,7 @@ function ($scope, $state, $transition$, $filter, Network, NetworkService, Contai Notifications.error('Error', d, 'Unable to disconnect container from network'); } else { Notifications.success('Container left network', $transition$.params().id); - $state.go('network', {id: network.Id}, {reload: true}); + $state.go('docker.networks.network', {id: network.Id}, {reload: true}); } }, function (e) { Notifications.error('Failure', e, 'Unable to disconnect container from network'); diff --git a/app/docker/views/networks/networks.html b/app/docker/views/networks/networks.html new file mode 100644 index 000000000..5873cd3f8 --- /dev/null +++ b/app/docker/views/networks/networks.html @@ -0,0 +1,20 @@ + + + + + + + Networks + + +
+
+ +
+
diff --git a/app/components/networks/networksController.js b/app/docker/views/networks/networksController.js similarity index 97% rename from app/components/networks/networksController.js rename to app/docker/views/networks/networksController.js index 2d7ef9bd1..c5ff237b5 100644 --- a/app/components/networks/networksController.js +++ b/app/docker/views/networks/networksController.js @@ -1,4 +1,4 @@ -angular.module('networks', []) +angular.module('portainer.docker') .controller('NetworksController', ['$scope', '$state', 'NetworkService', 'Notifications', function ($scope, $state, NetworkService, Notifications) { diff --git a/app/components/node/node.html b/app/docker/views/nodes/edit/node.html similarity index 97% rename from app/components/node/node.html rename to app/docker/views/nodes/edit/node.html index 909013aab..adc935912 100644 --- a/app/components/node/node.html +++ b/app/docker/views/nodes/edit/node.html @@ -1,11 +1,11 @@ - + - Swarm nodes > {{ node.Hostname }} + Swarm nodes > {{ node.Hostname }} diff --git a/app/components/node/nodeController.js b/app/docker/views/nodes/edit/nodeController.js similarity index 92% rename from app/components/node/nodeController.js rename to app/docker/views/nodes/edit/nodeController.js index cc43cb764..bdb59984e 100644 --- a/app/components/node/nodeController.js +++ b/app/docker/views/nodes/edit/nodeController.js @@ -1,6 +1,4 @@ -// @@OLD_SERVICE_CONTROLLER: this service should be rewritten to use services. -// See app/components/templates/templatesController.js as a reference. -angular.module('node', []) +angular.module('portainer.docker') .controller('NodeController', ['$scope', '$state', '$transition$', 'LabelHelper', 'Node', 'NodeHelper', 'Task', 'Notifications', function ($scope, $state, $transition$, LabelHelper, Node, NodeHelper, Task, Notifications) { @@ -56,7 +54,7 @@ function ($scope, $state, $transition$, LabelHelper, Node, NodeHelper, Task, Not Node.update({ id: node.Id, version: node.Version }, config, function (data) { Notifications.success('Node successfully updated', 'Node updated'); - $state.go('node', {id: node.Id}, {reload: true}); + $state.go('docker.nodes.node', {id: node.Id}, {reload: true}); }, function (e) { Notifications.error('Failure', e, 'Failed to update node'); }); diff --git a/app/components/createSecret/createSecretController.js b/app/docker/views/secrets/create/createSecretController.js similarity index 96% rename from app/components/createSecret/createSecretController.js rename to app/docker/views/secrets/create/createSecretController.js index 18c9d3903..9b644d83a 100644 --- a/app/components/createSecret/createSecretController.js +++ b/app/docker/views/secrets/create/createSecretController.js @@ -1,4 +1,4 @@ -angular.module('createSecret', []) +angular.module('portainer.docker') .controller('CreateSecretController', ['$scope', '$state', 'Notifications', 'SecretService', 'LabelHelper', 'Authentication', 'ResourceControlService', 'FormValidator', function ($scope, $state, Notifications, SecretService, LabelHelper, Authentication, ResourceControlService, FormValidator) { @@ -75,7 +75,7 @@ function ($scope, $state, Notifications, SecretService, LabelHelper, Authenticat }) .then(function success() { Notifications.success('Secret successfully created'); - $state.go('secrets', {}, {reload: true}); + $state.go('docker.secrets', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to create secret'); diff --git a/app/components/createSecret/createsecret.html b/app/docker/views/secrets/create/createsecret.html similarity index 98% rename from app/components/createSecret/createsecret.html rename to app/docker/views/secrets/create/createsecret.html index 060259958..189ca2a80 100644 --- a/app/components/createSecret/createsecret.html +++ b/app/docker/views/secrets/create/createsecret.html @@ -1,7 +1,7 @@ - Secrets > Add secret + Secrets > Add secret diff --git a/app/components/secret/secret.html b/app/docker/views/secrets/edit/secret.html similarity index 88% rename from app/components/secret/secret.html rename to app/docker/views/secrets/edit/secret.html index 59092df01..260dbc910 100644 --- a/app/components/secret/secret.html +++ b/app/docker/views/secrets/edit/secret.html @@ -1,11 +1,11 @@ - + - Secrets > {{ secret.Name }} + Secrets > {{ secret.Name }} diff --git a/app/components/secret/secretController.js b/app/docker/views/secrets/edit/secretController.js similarity index 91% rename from app/components/secret/secretController.js rename to app/docker/views/secrets/edit/secretController.js index f6ff1fa17..3be0614f9 100644 --- a/app/components/secret/secretController.js +++ b/app/docker/views/secrets/edit/secretController.js @@ -1,4 +1,4 @@ -angular.module('secret', []) +angular.module('portainer.docker') .controller('SecretController', ['$scope', '$transition$', '$state', 'SecretService', 'Notifications', function ($scope, $transition$, $state, SecretService, Notifications) { @@ -6,7 +6,7 @@ function ($scope, $transition$, $state, SecretService, Notifications) { SecretService.remove(secretId) .then(function success(data) { Notifications.success('Secret successfully removed'); - $state.go('secrets', {}); + $state.go('docker.secrets', {}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove secret'); diff --git a/app/components/secrets/secrets.html b/app/docker/views/secrets/secrets.html similarity index 84% rename from app/components/secrets/secrets.html rename to app/docker/views/secrets/secrets.html index 6ac1313b8..77d07101d 100644 --- a/app/components/secrets/secrets.html +++ b/app/docker/views/secrets/secrets.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/secrets/secretsController.js b/app/docker/views/secrets/secretsController.js similarity index 96% rename from app/components/secrets/secretsController.js rename to app/docker/views/secrets/secretsController.js index 6bc5ca81d..e69111375 100644 --- a/app/components/secrets/secretsController.js +++ b/app/docker/views/secrets/secretsController.js @@ -1,4 +1,4 @@ -angular.module('secrets', []) +angular.module('portainer.docker') .controller('SecretsController', ['$scope', '$state', 'SecretService', 'Notifications', function ($scope, $state, SecretService, Notifications) { diff --git a/app/components/createService/createServiceController.js b/app/docker/views/services/create/createServiceController.js similarity index 95% rename from app/components/createService/createServiceController.js rename to app/docker/views/services/create/createServiceController.js index 6a74afc70..230418e7b 100644 --- a/app/components/createService/createServiceController.js +++ b/app/docker/views/services/create/createServiceController.js @@ -1,6 +1,4 @@ -// @@OLD_SERVICE_CONTROLLER: this service should be rewritten to use services. -// See app/components/templates/templatesController.js as a reference. -angular.module('createService', []) +angular.module('portainer.docker') .controller('CreateServiceController', ['$q', '$scope', '$state', '$timeout', 'Service', 'ServiceHelper', 'ConfigService', 'ConfigHelper', 'SecretHelper', 'SecretService', 'VolumeService', 'NetworkService', 'ImageHelper', 'LabelHelper', 'Authentication', 'ResourceControlService', 'Notifications', 'FormValidator', 'PluginService', 'RegistryService', 'HttpRequestHelper', 'NodeService', 'SettingsService', function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, ConfigHelper, SecretHelper, SecretService, VolumeService, NetworkService, ImageHelper, LabelHelper, Authentication, ResourceControlService, Notifications, FormValidator, PluginService, RegistryService, HttpRequestHelper, NodeService, SettingsService) { @@ -42,7 +40,7 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C RestartMaxAttempts: 0, RestartWindow: '0s', LogDriverName: '', - LogDriverOpts: [] + LogDriverOpts: [] }; $scope.state = { @@ -144,13 +142,13 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C $scope.formValues.ContainerLabels.splice(index, 1); }; - $scope.addLogDriverOpt = function(value) { + $scope.addLogDriverOpt = function(value) { $scope.formValues.LogDriverOpts.push({ name: '', value: ''}); }; - + $scope.removeLogDriverOpt = function(index) { $scope.formValues.LogDriverOpts.splice(index, 1); - }; + }; function prepareImageConfig(config, input) { var imageConfig = ImageHelper.createImageConfigForContainer(input.Image, input.Registry.URL); @@ -265,18 +263,18 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C function prepareHostsEntries(config, input) { var hostsEntries = []; - if (input.HostsEntries) { + if (input.HostsEntries) { input.HostsEntries.forEach(function (host_ip) { - if (host_ip.value && host_ip.value.indexOf(':') && host_ip.value.split(':').length === 2) { + if (host_ip.value && host_ip.value.indexOf(':') && host_ip.value.split(':').length === 2) { var keyVal = host_ip.value.split(':'); // Hosts file format, IP_address canonical_hostname - hostsEntries.push(keyVal[1] + ' ' + keyVal[0]); - } + hostsEntries.push(keyVal[1] + ' ' + keyVal[0]); + } }); if (hostsEntries.length > 0) { config.TaskTemplate.ContainerSpec.Hosts = hostsEntries; - } - } + } + } } function prepareUpdateConfig(config, input) { @@ -294,7 +292,7 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C Delay: ServiceHelper.translateHumanDurationToNanos(input.RestartDelay) || 5000000000, MaxAttempts: input.RestartMaxAttempts || 0, Window: ServiceHelper.translateHumanDurationToNanos(input.RestartWindow) || 0 - }; + }; } function preparePlacementConfig(config, input) { @@ -366,10 +364,10 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C } function prepareLogDriverConfig(config, input) { - var logOpts = {}; + var logOpts = {}; if (input.LogDriverName) { - config.TaskTemplate.LogDriver = { Name: input.LogDriverName }; - if (input.LogDriverName !== 'none') { + config.TaskTemplate.LogDriver = { Name: input.LogDriverName }; + if (input.LogDriverName !== 'none') { input.LogDriverOpts.forEach(function (opt) { if (opt.name) { logOpts[opt.name] = opt.value; @@ -377,7 +375,7 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C }); if (Object.keys(logOpts).length !== 0 && logOpts.constructor === Object) { config.TaskTemplate.LogDriver.Options = logOpts; - } + } } } } @@ -432,7 +430,7 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C }) .then(function success() { Notifications.success('Service successfully created'); - $state.go('services', {}, {reload: true}); + $state.go('docker.services', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to create service'); @@ -509,9 +507,9 @@ function ($q, $scope, $state, $timeout, Service, ServiceHelper, ConfigService, C $scope.availableVolumes = data.volumes; $scope.availableNetworks = data.networks; $scope.availableSecrets = data.secrets; - $scope.availableConfigs = data.configs; + $scope.availableConfigs = data.configs; $scope.availableLoggingDrivers = data.availableLoggingDrivers; - initSlidersMaxValuesBasedOnNodeData(data.nodes); + initSlidersMaxValuesBasedOnNodeData(data.nodes); $scope.allowBindMounts = data.settings.AllowBindMountsForRegularUsers; var userDetails = Authentication.getUserDetails(); $scope.isAdmin = userDetails.role === 1; diff --git a/app/components/createService/createservice.html b/app/docker/views/services/create/createservice.html similarity index 98% rename from app/components/createService/createservice.html rename to app/docker/views/services/create/createservice.html index 36870fabc..ae4b7910c 100644 --- a/app/components/createService/createservice.html +++ b/app/docker/views/services/create/createservice.html @@ -1,7 +1,7 @@ - Services > Add service + Services > Add service @@ -451,16 +451,16 @@
-
+
-
+
-
+
-
+
diff --git a/app/components/createService/includes/config.html b/app/docker/views/services/create/includes/config.html similarity index 100% rename from app/components/createService/includes/config.html rename to app/docker/views/services/create/includes/config.html diff --git a/app/components/createService/includes/resources-placement.html b/app/docker/views/services/create/includes/resources-placement.html similarity index 100% rename from app/components/createService/includes/resources-placement.html rename to app/docker/views/services/create/includes/resources-placement.html diff --git a/app/components/createService/includes/secret.html b/app/docker/views/services/create/includes/secret.html similarity index 100% rename from app/components/createService/includes/secret.html rename to app/docker/views/services/create/includes/secret.html diff --git a/app/components/createService/includes/update-restart.html b/app/docker/views/services/create/includes/update-restart.html similarity index 100% rename from app/components/createService/includes/update-restart.html rename to app/docker/views/services/create/includes/update-restart.html diff --git a/app/components/service/includes/configs.html b/app/docker/views/services/edit/includes/configs.html similarity index 96% rename from app/components/service/includes/configs.html rename to app/docker/views/services/edit/includes/configs.html index e1eba62cd..0a8c7cc0e 100644 --- a/app/components/service/includes/configs.html +++ b/app/docker/views/services/edit/includes/configs.html @@ -25,7 +25,7 @@ - {{ config.Name }} + {{ config.Name }} diff --git a/app/components/service/includes/constraints.html b/app/docker/views/services/edit/includes/constraints.html similarity index 100% rename from app/components/service/includes/constraints.html rename to app/docker/views/services/edit/includes/constraints.html diff --git a/app/components/service/includes/container-specs.html b/app/docker/views/services/edit/includes/container-specs.html similarity index 100% rename from app/components/service/includes/container-specs.html rename to app/docker/views/services/edit/includes/container-specs.html diff --git a/app/components/service/includes/containerlabels.html b/app/docker/views/services/edit/includes/containerlabels.html similarity index 100% rename from app/components/service/includes/containerlabels.html rename to app/docker/views/services/edit/includes/containerlabels.html diff --git a/app/components/service/includes/environmentvariables.html b/app/docker/views/services/edit/includes/environmentvariables.html similarity index 100% rename from app/components/service/includes/environmentvariables.html rename to app/docker/views/services/edit/includes/environmentvariables.html diff --git a/app/components/service/includes/hosts.html b/app/docker/views/services/edit/includes/hosts.html similarity index 100% rename from app/components/service/includes/hosts.html rename to app/docker/views/services/edit/includes/hosts.html diff --git a/app/components/service/includes/logging.html b/app/docker/views/services/edit/includes/logging.html similarity index 100% rename from app/components/service/includes/logging.html rename to app/docker/views/services/edit/includes/logging.html diff --git a/app/components/service/includes/mounts.html b/app/docker/views/services/edit/includes/mounts.html similarity index 100% rename from app/components/service/includes/mounts.html rename to app/docker/views/services/edit/includes/mounts.html diff --git a/app/components/service/includes/networks.html b/app/docker/views/services/edit/includes/networks.html similarity index 88% rename from app/components/service/includes/networks.html rename to app/docker/views/services/edit/includes/networks.html index 309d4b40c..d4d1daf62 100644 --- a/app/components/service/includes/networks.html +++ b/app/docker/views/services/edit/includes/networks.html @@ -15,7 +15,7 @@ - {{ network.NetworkID }} + {{ network.NetworkID }} {{ network.Addr }} diff --git a/app/components/service/includes/placementPreferences.html b/app/docker/views/services/edit/includes/placementPreferences.html similarity index 100% rename from app/components/service/includes/placementPreferences.html rename to app/docker/views/services/edit/includes/placementPreferences.html diff --git a/app/components/service/includes/ports.html b/app/docker/views/services/edit/includes/ports.html similarity index 100% rename from app/components/service/includes/ports.html rename to app/docker/views/services/edit/includes/ports.html diff --git a/app/components/service/includes/resources.html b/app/docker/views/services/edit/includes/resources.html similarity index 100% rename from app/components/service/includes/resources.html rename to app/docker/views/services/edit/includes/resources.html diff --git a/app/components/service/includes/restart.html b/app/docker/views/services/edit/includes/restart.html similarity index 100% rename from app/components/service/includes/restart.html rename to app/docker/views/services/edit/includes/restart.html diff --git a/app/components/service/includes/secrets.html b/app/docker/views/services/edit/includes/secrets.html similarity index 97% rename from app/components/service/includes/secrets.html rename to app/docker/views/services/edit/includes/secrets.html index 2383345b4..57b21aa3c 100644 --- a/app/components/service/includes/secrets.html +++ b/app/docker/views/services/edit/includes/secrets.html @@ -33,7 +33,7 @@ - {{ secret.Name }} + {{ secret.Name }} {{ secret.FileName }} {{ secret.Uid }} {{ secret.Gid }} diff --git a/app/components/service/includes/servicelabels.html b/app/docker/views/services/edit/includes/servicelabels.html similarity index 100% rename from app/components/service/includes/servicelabels.html rename to app/docker/views/services/edit/includes/servicelabels.html diff --git a/app/components/service/includes/tasks.html b/app/docker/views/services/edit/includes/tasks.html similarity index 100% rename from app/components/service/includes/tasks.html rename to app/docker/views/services/edit/includes/tasks.html diff --git a/app/components/service/includes/updateconfig.html b/app/docker/views/services/edit/includes/updateconfig.html similarity index 100% rename from app/components/service/includes/updateconfig.html rename to app/docker/views/services/edit/includes/updateconfig.html diff --git a/app/components/service/service.html b/app/docker/views/services/edit/service.html similarity index 82% rename from app/components/service/service.html rename to app/docker/views/services/edit/service.html index 841fb4b44..059da3dca 100644 --- a/app/components/service/service.html +++ b/app/docker/views/services/edit/service.html @@ -1,11 +1,11 @@ - + - Services > {{ service.Name }} + Services > {{ service.Name }} @@ -13,7 +13,7 @@
@@ -73,7 +73,7 @@ - Service logs + Service logs
@@ -156,9 +156,9 @@

Networks & ports

-
-
-
+
+
+
@@ -166,15 +166,15 @@

Service specification

-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/app/components/service/serviceController.js b/app/docker/views/services/edit/serviceController.js similarity index 99% rename from app/components/service/serviceController.js rename to app/docker/views/services/edit/serviceController.js index f77910791..f60c8f80c 100644 --- a/app/components/service/serviceController.js +++ b/app/docker/views/services/edit/serviceController.js @@ -1,4 +1,4 @@ -angular.module('service', []) +angular.module('portainer.docker') .controller('ServiceController', ['$q', '$scope', '$transition$', '$state', '$location', '$timeout', '$anchorScroll', 'ServiceService', 'ConfigService', 'ConfigHelper', 'SecretService', 'ImageService', 'SecretHelper', 'Service', 'ServiceHelper', 'LabelHelper', 'TaskService', 'NodeService', 'Notifications', 'ModalService', 'PluginService', function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll, ServiceService, ConfigService, ConfigHelper, SecretService, ImageService, SecretHelper, Service, ServiceHelper, LabelHelper, TaskService, NodeService, Notifications, ModalService, PluginService) { @@ -338,7 +338,7 @@ function ($q, $scope, $transition$, $state, $location, $timeout, $anchorScroll, ServiceService.remove($scope.service) .then(function success(data) { Notifications.success('Service successfully deleted'); - $state.go('services', {}); + $state.go('docker.services', {}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove service'); diff --git a/app/components/serviceLogs/serviceLogsController.js b/app/docker/views/services/logs/serviceLogsController.js similarity index 98% rename from app/components/serviceLogs/serviceLogsController.js rename to app/docker/views/services/logs/serviceLogsController.js index 9faa370ab..78c5da028 100644 --- a/app/components/serviceLogs/serviceLogsController.js +++ b/app/docker/views/services/logs/serviceLogsController.js @@ -1,4 +1,4 @@ -angular.module('serviceLogs', []) +angular.module('portainer.docker') .controller('ServiceLogsController', ['$scope', '$transition$', '$anchorScroll', 'ServiceLogs', 'Service', function ($scope, $transition$, $anchorScroll, ServiceLogs, Service) { $scope.state = {}; diff --git a/app/components/serviceLogs/servicelogs.html b/app/docker/views/services/logs/servicelogs.html similarity index 92% rename from app/components/serviceLogs/servicelogs.html rename to app/docker/views/services/logs/servicelogs.html index 86970d1a1..a248dc0be 100644 --- a/app/components/serviceLogs/servicelogs.html +++ b/app/docker/views/services/logs/servicelogs.html @@ -1,7 +1,7 @@ - Services > {{ service.Spec.Name }} > Logs + Services > {{ service.Spec.Name }} > Logs diff --git a/app/components/services/services.html b/app/docker/views/services/services.html similarity index 87% rename from app/components/services/services.html rename to app/docker/views/services/services.html index 48eebed2e..67b7c0548 100644 --- a/app/components/services/services.html +++ b/app/docker/views/services/services.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/services/servicesController.js b/app/docker/views/services/servicesController.js similarity index 99% rename from app/components/services/servicesController.js rename to app/docker/views/services/servicesController.js index 8937fa392..43cd0f2b1 100644 --- a/app/components/services/servicesController.js +++ b/app/docker/views/services/servicesController.js @@ -1,4 +1,4 @@ -angular.module('services', []) +angular.module('portainer.docker') .controller('ServicesController', ['$q', '$scope', '$state', 'Service', 'ServiceService', 'ServiceHelper', 'Notifications', 'Task', 'Node', 'NodeHelper', 'ModalService', function ($q, $scope, $state, Service, ServiceService, ServiceHelper, Notifications, Task, Node, NodeHelper, ModalService) { diff --git a/app/components/createStack/createStackController.js b/app/docker/views/stacks/create/createStackController.js similarity index 98% rename from app/components/createStack/createStackController.js rename to app/docker/views/stacks/create/createStackController.js index ba2ccf5ba..f569dc9e3 100644 --- a/app/components/createStack/createStackController.js +++ b/app/docker/views/stacks/create/createStackController.js @@ -1,4 +1,4 @@ -angular.module('createStack', []) +angular.module('portainer.docker') .controller('CreateStackController', ['$scope', '$state', '$document', 'StackService', 'CodeMirrorService', 'Authentication', 'Notifications', 'FormValidator', 'ResourceControlService', 'FormHelper', function ($scope, $state, $document, StackService, CodeMirrorService, Authentication, Notifications, FormValidator, ResourceControlService, FormHelper) { @@ -86,7 +86,7 @@ function ($scope, $state, $document, StackService, CodeMirrorService, Authentica return ResourceControlService.applyResourceControl('stack', name, userId, accessControlData, []); }) .then(function success() { - $state.go('stacks'); + $state.go('docker.stacks'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to apply resource control on the stack'); diff --git a/app/components/createStack/createstack.html b/app/docker/views/stacks/create/createstack.html similarity index 99% rename from app/components/createStack/createstack.html rename to app/docker/views/stacks/create/createstack.html index adc57f796..af80be3e2 100644 --- a/app/components/createStack/createstack.html +++ b/app/docker/views/stacks/create/createstack.html @@ -1,7 +1,7 @@ - Stacks > Add stack + Stacks > Add stack diff --git a/app/components/stack/stack.html b/app/docker/views/stacks/edit/stack.html similarity index 95% rename from app/components/stack/stack.html rename to app/docker/views/stacks/edit/stack.html index 37f3785ec..512709802 100644 --- a/app/components/stack/stack.html +++ b/app/docker/views/stacks/edit/stack.html @@ -1,11 +1,11 @@ - + - Stacks > {{ stack.Name }} + Stacks > {{ stack.Name }} diff --git a/app/components/stack/stackController.js b/app/docker/views/stacks/edit/stackController.js similarity index 98% rename from app/components/stack/stackController.js rename to app/docker/views/stacks/edit/stackController.js index 91137d33e..a3e8a0915 100644 --- a/app/components/stack/stackController.js +++ b/app/docker/views/stacks/edit/stackController.js @@ -1,4 +1,4 @@ -angular.module('stack', []) +angular.module('portainer.docker') .controller('StackController', ['$q', '$scope', '$state', '$transition$', '$document', 'StackService', 'NodeService', 'ServiceService', 'TaskService', 'ServiceHelper', 'CodeMirrorService', 'Notifications', 'FormHelper', 'EndpointProvider', function ($q, $scope, $state, $transition$, $document, StackService, NodeService, ServiceService, TaskService, ServiceHelper, CodeMirrorService, Notifications, FormHelper, EndpointProvider) { diff --git a/app/components/stacks/stacks.html b/app/docker/views/stacks/stacks.html similarity index 94% rename from app/components/stacks/stacks.html rename to app/docker/views/stacks/stacks.html index ee72ffddf..fc52fa44e 100644 --- a/app/components/stacks/stacks.html +++ b/app/docker/views/stacks/stacks.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/stacks/stacksController.js b/app/docker/views/stacks/stacksController.js similarity index 98% rename from app/components/stacks/stacksController.js rename to app/docker/views/stacks/stacksController.js index 40a54b074..e51495dbf 100644 --- a/app/components/stacks/stacksController.js +++ b/app/docker/views/stacks/stacksController.js @@ -1,4 +1,4 @@ -angular.module('stacks', []) +angular.module('portainer.docker') .controller('StacksController', ['$scope', '$state', 'Notifications', 'StackService', 'ModalService', function ($scope, $state, Notifications, StackService, ModalService) { $scope.state = { diff --git a/app/components/swarm/swarm.html b/app/docker/views/swarm/swarm.html similarity index 93% rename from app/components/swarm/swarm.html rename to app/docker/views/swarm/swarm.html index 3a5029fc7..e64f2337d 100644 --- a/app/components/swarm/swarm.html +++ b/app/docker/views/swarm/swarm.html @@ -1,6 +1,6 @@ - + @@ -60,7 +60,7 @@ diff --git a/app/components/swarm/swarmController.js b/app/docker/views/swarm/swarmController.js similarity index 98% rename from app/components/swarm/swarmController.js rename to app/docker/views/swarm/swarmController.js index be346ba2a..7a27f0ca6 100644 --- a/app/components/swarm/swarmController.js +++ b/app/docker/views/swarm/swarmController.js @@ -1,4 +1,4 @@ -angular.module('swarm', []) +angular.module('portainer.docker') .controller('SwarmController', ['$q', '$scope', 'SystemService', 'NodeService', 'Notifications', 'StateManager', 'Authentication', function ($q, $scope, SystemService, NodeService, Notifications, StateManager, Authentication) { $scope.info = {}; diff --git a/app/components/swarmVisualizer/swarmVisualizerController.js b/app/docker/views/swarm/visualizer/swarmVisualizerController.js similarity index 98% rename from app/components/swarmVisualizer/swarmVisualizerController.js rename to app/docker/views/swarm/visualizer/swarmVisualizerController.js index f4b4f7706..8dedbbe19 100644 --- a/app/components/swarmVisualizer/swarmVisualizerController.js +++ b/app/docker/views/swarm/visualizer/swarmVisualizerController.js @@ -1,4 +1,4 @@ -angular.module('swarmVisualizer', []) +angular.module('portainer.docker') .controller('SwarmVisualizerController', ['$q', '$scope', '$document', '$interval', 'NodeService', 'ServiceService', 'TaskService', 'Notifications', function ($q, $scope, $document, $interval, NodeService, ServiceService, TaskService, Notifications) { diff --git a/app/components/swarmVisualizer/swarmVisualizer.html b/app/docker/views/swarm/visualizer/swarmvisualizer.html similarity index 95% rename from app/components/swarmVisualizer/swarmVisualizer.html rename to app/docker/views/swarm/visualizer/swarmvisualizer.html index d8d16a72c..5a827dac8 100644 --- a/app/components/swarmVisualizer/swarmVisualizer.html +++ b/app/docker/views/swarm/visualizer/swarmvisualizer.html @@ -1,11 +1,11 @@ - + - Swarm > Cluster visualizer + Swarm > Cluster visualizer diff --git a/app/components/task/task.html b/app/docker/views/tasks/edit/task.html similarity index 91% rename from app/components/task/task.html rename to app/docker/views/tasks/edit/task.html index 200e0f1c3..75d117a38 100644 --- a/app/components/task/task.html +++ b/app/docker/views/tasks/edit/task.html @@ -1,7 +1,7 @@ - Services > {{ service.Name }} > {{ task.Id }} + Services > {{ service.Name }} > {{ task.Id }} diff --git a/app/components/task/taskController.js b/app/docker/views/tasks/edit/taskController.js similarity index 94% rename from app/components/task/taskController.js rename to app/docker/views/tasks/edit/taskController.js index 9b4400e31..adc3d032c 100644 --- a/app/components/task/taskController.js +++ b/app/docker/views/tasks/edit/taskController.js @@ -1,4 +1,4 @@ -angular.module('task', []) +angular.module('portainer.docker') .controller('TaskController', ['$scope', '$transition$', 'TaskService', 'Service', 'Notifications', function ($scope, $transition$, TaskService, Service, Notifications) { diff --git a/app/components/templates/templates.html b/app/docker/views/templates/templates.html similarity index 99% rename from app/components/templates/templates.html rename to app/docker/views/templates/templates.html index 6084d8a3d..808e7d70f 100644 --- a/app/components/templates/templates.html +++ b/app/docker/views/templates/templates.html @@ -1,6 +1,6 @@ - + @@ -330,7 +330,7 @@ Deployment in progress... - When using Swarm, we recommend deploying containers in a shared network. Looks like you don't have any shared network, head over the networks view to create one. + When using Swarm, we recommend deploying containers in a shared network. Looks like you don't have any shared network, head over the networks view to create one. {{ state.formValidationError }}
diff --git a/app/components/templates/templatesController.js b/app/docker/views/templates/templatesController.js similarity index 98% rename from app/components/templates/templatesController.js rename to app/docker/views/templates/templatesController.js index 2901a743f..c6128d456 100644 --- a/app/components/templates/templatesController.js +++ b/app/docker/views/templates/templatesController.js @@ -1,4 +1,4 @@ -angular.module('templates', []) +angular.module('portainer.docker') .controller('TemplatesController', ['$scope', '$q', '$state', '$transition$', '$anchorScroll', '$filter', 'ContainerService', 'ContainerHelper', 'ImageService', 'NetworkService', 'TemplateService', 'TemplateHelper', 'VolumeService', 'Notifications', 'PaginationService', 'ResourceControlService', 'Authentication', 'FormValidator', 'SettingsService', 'StackService', function ($scope, $q, $state, $transition$, $anchorScroll, $filter, ContainerService, ContainerHelper, ImageService, NetworkService, TemplateService, TemplateHelper, VolumeService, Notifications, PaginationService, ResourceControlService, Authentication, FormValidator, SettingsService, StackService) { $scope.state = { @@ -88,7 +88,7 @@ function ($scope, $q, $state, $transition$, $anchorScroll, $filter, ContainerSer }) .then(function success() { Notifications.success('Container successfully created'); - $state.go('containers', {}, {reload: true}); + $state.go('docker.containers', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, err.msg); @@ -119,7 +119,7 @@ function ($scope, $q, $state, $transition$, $anchorScroll, $filter, ContainerSer return ResourceControlService.applyResourceControl('stack', stackName, userId, accessControlData, []); }) .then(function success() { - $state.go('stacks', {}, {reload: true}); + $state.go('docker.stacks', {}, {reload: true}); }) .finally(function final() { $scope.state.actionInProgress = false; diff --git a/app/components/createVolume/createVolumeController.js b/app/docker/views/volumes/create/createVolumeController.js similarity index 97% rename from app/components/createVolume/createVolumeController.js rename to app/docker/views/volumes/create/createVolumeController.js index f1e542fe4..1b5b47ceb 100644 --- a/app/components/createVolume/createVolumeController.js +++ b/app/docker/views/volumes/create/createVolumeController.js @@ -1,4 +1,4 @@ -angular.module('createVolume', []) +angular.module('portainer.docker') .controller('CreateVolumeController', ['$q', '$scope', '$state', 'VolumeService', 'PluginService', 'ResourceControlService', 'Authentication', 'Notifications', 'FormValidator', 'ExtensionManager', function ($q, $scope, $state, VolumeService, PluginService, ResourceControlService, Authentication, Notifications, FormValidator, ExtensionManager) { @@ -64,7 +64,7 @@ function ($q, $scope, $state, VolumeService, PluginService, ResourceControlServi }) .then(function success(data) { Notifications.success('Volume successfully created'); - $state.go('volumes', {}, {reload: true}); + $state.go('docker.volumes', {}, {reload: true}); }) .catch(function error(err) { Notifications.error('Failure', err, 'An error occured during volume creation'); diff --git a/app/components/createVolume/createvolume.html b/app/docker/views/volumes/create/createvolume.html similarity index 98% rename from app/components/createVolume/createvolume.html rename to app/docker/views/volumes/create/createvolume.html index e2ad9c580..25c222e1c 100644 --- a/app/components/createVolume/createvolume.html +++ b/app/docker/views/volumes/create/createvolume.html @@ -1,7 +1,7 @@ - Volumes > Add volume + Volumes > Add volume diff --git a/app/components/volume/volume.html b/app/docker/views/volumes/edit/volume.html similarity index 92% rename from app/components/volume/volume.html rename to app/docker/views/volumes/edit/volume.html index a16803988..a06f2890a 100644 --- a/app/components/volume/volume.html +++ b/app/docker/views/volumes/edit/volume.html @@ -1,7 +1,7 @@ - Volumes > {{ volume.Id }} + Volumes > {{ volume.Id }} @@ -84,7 +84,7 @@ - {{ container | containername }} + {{ container | containername }} {{ container.volumeData.Destination }} {{ !container.volumeData.RW }} diff --git a/app/components/volume/volumeController.js b/app/docker/views/volumes/edit/volumeController.js similarity index 95% rename from app/components/volume/volumeController.js rename to app/docker/views/volumes/edit/volumeController.js index 2d1bb7b82..61581ecb6 100644 --- a/app/components/volume/volumeController.js +++ b/app/docker/views/volumes/edit/volumeController.js @@ -1,4 +1,4 @@ -angular.module('volume', []) +angular.module('portainer.docker') .controller('VolumeController', ['$scope', '$state', '$transition$', 'VolumeService', 'ContainerService', 'Notifications', function ($scope, $state, $transition$, VolumeService, ContainerService, Notifications) { @@ -6,7 +6,7 @@ function ($scope, $state, $transition$, VolumeService, ContainerService, Notific VolumeService.remove($scope.volume) .then(function success(data) { Notifications.success('Volume successfully removed', $transition$.params().id); - $state.go('volumes', {}); + $state.go('docker.volumes', {}); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove volume'); diff --git a/app/components/volumes/volumes.html b/app/docker/views/volumes/volumes.html similarity index 84% rename from app/components/volumes/volumes.html rename to app/docker/views/volumes/volumes.html index de8e50880..234797714 100644 --- a/app/components/volumes/volumes.html +++ b/app/docker/views/volumes/volumes.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/volumes/volumesController.js b/app/docker/views/volumes/volumesController.js similarity index 98% rename from app/components/volumes/volumesController.js rename to app/docker/views/volumes/volumesController.js index 4361a8199..30882a35d 100644 --- a/app/components/volumes/volumesController.js +++ b/app/docker/views/volumes/volumesController.js @@ -1,4 +1,4 @@ -angular.module('volumes', []) +angular.module('portainer.docker') .controller('VolumesController', ['$q', '$scope', '$state', 'VolumeService', 'ServiceService', 'VolumeHelper', 'Notifications', function ($q, $scope, $state, VolumeService, ServiceService, VolumeHelper, Notifications) { diff --git a/app/extensions/storidge/__module.js b/app/extensions/storidge/__module.js index db7ae432c..34a1b007e 100644 --- a/app/extensions/storidge/__module.js +++ b/app/extensions/storidge/__module.js @@ -4,16 +4,9 @@ angular.module('extension.storidge', []) var storidge = { name: 'storidge', + parent: 'root', abstract: true, - url: '/storidge', - views: { - 'content@': { - template: '
' - }, - 'sidebar@': { - template: '
' - } - } + url: '/storidge' }; var profiles = { @@ -23,43 +16,31 @@ angular.module('extension.storidge', []) 'content@': { templateUrl: 'app/extensions/storidge/views/profiles/profiles.html', controller: 'StoridgeProfilesController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' + } + } + }; + + var profile = { + name: 'storidge.profiles.profile', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/extensions/storidge/views/profiles/edit/profile.html', + controller: 'StoridgeProfileController' } } }; var profileCreation = { - name: 'storidge.profiles.create', - url: '/create', + name: 'storidge.profiles.new', + url: '/new', params: { profileName: '' }, views: { 'content@': { - templateUrl: 'app/extensions/storidge/views/profiles/create/createProfile.html', - controller: 'CreateProfileController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }; - - var profileEdition = { - name: 'storidge.profiles.edit', - url: '/edit/:id', - views: { - 'content@': { - templateUrl: 'app/extensions/storidge/views/profiles/edit/editProfile.html', - controller: 'EditProfileController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' + templateUrl: 'app/extensions/storidge/views/profiles/create/createprofile.html', + controller: 'StoridgeCreateProfileController' } } }; @@ -71,10 +52,6 @@ angular.module('extension.storidge', []) 'content@': { templateUrl: 'app/extensions/storidge/views/cluster/cluster.html', controller: 'StoridgeClusterController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' } } }; @@ -86,18 +63,14 @@ angular.module('extension.storidge', []) 'content@': { templateUrl: 'app/extensions/storidge/views/monitor/monitor.html', controller: 'StoridgeMonitorController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' } } }; $stateRegistryProvider.register(storidge); $stateRegistryProvider.register(profiles); + $stateRegistryProvider.register(profile); $stateRegistryProvider.register(profileCreation); - $stateRegistryProvider.register(profileEdition); $stateRegistryProvider.register(cluster); $stateRegistryProvider.register(monitor); }]); diff --git a/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html b/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html index 353d20344..607659bdc 100644 --- a/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html +++ b/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html @@ -45,7 +45,7 @@ - {{ item.Name }} + {{ item.Name }} diff --git a/app/extensions/storidge/views/cluster/clusterController.js b/app/extensions/storidge/views/cluster/clusterController.js index b1d7fbbfa..5715f3625 100644 --- a/app/extensions/storidge/views/cluster/clusterController.js +++ b/app/extensions/storidge/views/cluster/clusterController.js @@ -46,7 +46,7 @@ function ($q, $scope, $state, Notifications, StoridgeClusterService, StoridgeNod StoridgeClusterService.shutdown() .then(function success(data) { Notifications.success('Cluster successfully shutdown'); - $state.go('dashboard'); + $state.go('docker.dashboard'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to shutdown cluster'); diff --git a/app/extensions/storidge/views/profiles/create/createProfileController.js b/app/extensions/storidge/views/profiles/create/createProfileController.js index 506635697..73666ce1a 100644 --- a/app/extensions/storidge/views/profiles/create/createProfileController.js +++ b/app/extensions/storidge/views/profiles/create/createProfileController.js @@ -1,5 +1,5 @@ angular.module('extension.storidge') -.controller('CreateProfileController', ['$scope', '$state', '$transition$', 'Notifications', 'StoridgeProfileService', 'StoridgeManager', +.controller('StoridgeCreateProfileController', ['$scope', '$state', '$transition$', 'Notifications', 'StoridgeProfileService', 'StoridgeManager', function ($scope, $state, $transition$, Notifications, StoridgeProfileService, StoridgeManager) { $scope.state = { diff --git a/app/extensions/storidge/views/profiles/create/createProfile.html b/app/extensions/storidge/views/profiles/create/createprofile.html similarity index 100% rename from app/extensions/storidge/views/profiles/create/createProfile.html rename to app/extensions/storidge/views/profiles/create/createprofile.html diff --git a/app/extensions/storidge/views/profiles/edit/editProfile.html b/app/extensions/storidge/views/profiles/edit/profile.html similarity index 100% rename from app/extensions/storidge/views/profiles/edit/editProfile.html rename to app/extensions/storidge/views/profiles/edit/profile.html diff --git a/app/extensions/storidge/views/profiles/edit/editProfileController.js b/app/extensions/storidge/views/profiles/edit/profileController.js similarity index 94% rename from app/extensions/storidge/views/profiles/edit/editProfileController.js rename to app/extensions/storidge/views/profiles/edit/profileController.js index d36d26738..d3b0ac396 100644 --- a/app/extensions/storidge/views/profiles/edit/editProfileController.js +++ b/app/extensions/storidge/views/profiles/edit/profileController.js @@ -1,5 +1,5 @@ angular.module('extension.storidge') -.controller('EditProfileController', ['$scope', '$state', '$transition$', 'Notifications', 'StoridgeProfileService', 'StoridgeManager', 'ModalService', +.controller('StoridgeProfileController', ['$scope', '$state', '$transition$', 'Notifications', 'StoridgeProfileService', 'StoridgeManager', 'ModalService', function ($scope, $state, $transition$, Notifications, StoridgeProfileService, StoridgeManager, ModalService) { $scope.state = { diff --git a/app/extensions/storidge/views/profiles/profiles.html b/app/extensions/storidge/views/profiles/profiles.html index 3eafa095e..5e5b054a8 100644 --- a/app/extensions/storidge/views/profiles/profiles.html +++ b/app/extensions/storidge/views/profiles/profiles.html @@ -37,7 +37,7 @@ Create the profile Creating profile... - +
@@ -102,7 +102,7 @@ - {{ profile.Name }} + {{ profile.Name }} diff --git a/app/filters/__module.js b/app/filters/__module.js deleted file mode 100644 index 98133a2a0..000000000 --- a/app/filters/__module.js +++ /dev/null @@ -1 +0,0 @@ -angular.module('portainer.filters', []); diff --git a/app/helpers/__module.js b/app/helpers/__module.js deleted file mode 100644 index 1621ac914..000000000 --- a/app/helpers/__module.js +++ /dev/null @@ -1 +0,0 @@ -angular.module('portainer.helpers', []); diff --git a/app/portainer/__module.js b/app/portainer/__module.js new file mode 100644 index 000000000..64f61b20e --- /dev/null +++ b/app/portainer/__module.js @@ -0,0 +1,266 @@ +angular.module('portainer.app', []) +.config(['$stateRegistryProvider', function ($stateRegistryProvider) { + 'use strict'; + + var root = { + name: 'root', + abstract: true, + resolve: { + requiresLogin: ['StateManager', function (StateManager) { + var applicationState = StateManager.getState(); + return applicationState.application.authentication; + }] + }, + views: { + 'sidebar@': { + templateUrl: 'app/portainer/views/sidebar/sidebar.html', + controller: 'SidebarController' + } + } + }; + + var portainer = { + name: 'portainer', + parent: 'root', + abstract: true + }; + + var about = { + name: 'portainer.about', + url: '/about', + views: { + 'content@': { + templateUrl: 'app/portainer/views/about/about.html' + } + } + }; + + var account = { + name: 'portainer.account', + url: '/account', + views: { + 'content@': { + templateUrl: 'app/portainer/views/account/account.html', + controller: 'AccountController' + } + } + }; + + var authentication = { + name: 'portainer.auth', + url: '/auth', + params: { + logout: false, + error: '' + }, + views: { + 'content@': { + templateUrl: 'app/portainer/views/auth/auth.html', + controller: 'AuthenticationController' + }, + 'sidebar@': {} + }, + data: { + requiresLogin: false + } + }; + + var init = { + name: 'portainer.init', + abstract: true, + url: '/init', + data: { + requiresLogin: false + }, + views: { + 'sidebar@': {} + } + }; + + var initEndpoint = { + name: 'portainer.init.endpoint', + url: '/endpoint', + views: { + 'content@': { + templateUrl: 'app/portainer/views/init/endpoint/initEndpoint.html', + controller: 'InitEndpointController' + } + } + }; + + var initAdmin = { + name: 'portainer.init.admin', + url: '/admin', + views: { + 'content@': { + templateUrl: 'app/portainer/views/init/admin/initAdmin.html', + controller: 'InitAdminController' + } + } + }; + + var endpoints = { + name: 'portainer.endpoints', + url: '/endpoints', + views: { + 'content@': { + templateUrl: 'app/portainer/views/endpoints/endpoints.html', + controller: 'EndpointsController' + } + } + }; + + var endpoint = { + name: 'portainer.endpoints.endpoint', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/portainer/views/endpoints/edit/endpoint.html', + controller: 'EndpointController' + } + } + }; + + var endpointAccess = { + name: 'portainer.endpoints.endpoint.access', + url: '/access', + views: { + 'content@': { + templateUrl: 'app/portainer/views/endpoints/access/endpointAccess.html', + controller: 'EndpointAccessController' + } + } + }; + + var registries = { + name: 'portainer.registries', + url: '/registries', + views: { + 'content@': { + templateUrl: 'app/portainer/views/registries/registries.html', + controller: 'RegistriesController' + } + } + }; + + var registry = { + name: 'portainer.registries.registry', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/portainer/views/registries/edit/registry.html', + controller: 'RegistryController' + } + } + }; + + var registryCreation = { + name: 'portainer.registries.new', + url: '/new', + views: { + 'content@': { + templateUrl: 'app/portainer/views/registries/create/createregistry.html', + controller: 'CreateRegistryController' + } + } + }; + + var registryAccess = { + name: 'portainer.registries.registry.access', + url: '/access', + views: { + 'content@': { + templateUrl: 'app/portainer/views/registries/access/registryAccess.html', + controller: 'RegistryAccessController' + } + } + }; + + var settings = { + name: 'portainer.settings', + url: '/settings', + views: { + 'content@': { + templateUrl: 'app/portainer/views/settings/settings.html', + controller: 'SettingsController' + } + } + }; + + var settingsAuthentication = { + name: 'portainer.settings.authentication', + url: '/auth', + views: { + 'content@': { + templateUrl: 'app/portainer/views/settings/authentication/settingsAuthentication.html', + controller: 'SettingsAuthenticationController' + } + } + }; + + var users = { + name: 'portainer.users', + url: '/users', + views: { + 'content@': { + templateUrl: 'app/portainer/views/users/users.html', + controller: 'UsersController' + } + } + }; + + var user = { + name: 'portainer.users.user', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/portainer/views/users/edit/user.html', + controller: 'UserController' + } + } + }; + + var teams = { + name: 'portainer.teams', + url: '/teams', + views: { + 'content@': { + templateUrl: 'app/portainer/views/teams/teams.html', + controller: 'TeamsController' + } + } + }; + + var team = { + name: 'portainer.teams.team', + url: '/:id', + views: { + 'content@': { + templateUrl: 'app/portainer/views/teams/edit/team.html', + controller: 'TeamController' + } + } + }; + + $stateRegistryProvider.register(root); + $stateRegistryProvider.register(portainer); + $stateRegistryProvider.register(about); + $stateRegistryProvider.register(account); + $stateRegistryProvider.register(authentication); + $stateRegistryProvider.register(init); + $stateRegistryProvider.register(initEndpoint); + $stateRegistryProvider.register(initAdmin); + $stateRegistryProvider.register(endpoints); + $stateRegistryProvider.register(endpoint); + $stateRegistryProvider.register(endpointAccess); + $stateRegistryProvider.register(registries); + $stateRegistryProvider.register(registry); + $stateRegistryProvider.register(registryAccess); + $stateRegistryProvider.register(registryCreation); + $stateRegistryProvider.register(settings); + $stateRegistryProvider.register(settingsAuthentication); + $stateRegistryProvider.register(users); + $stateRegistryProvider.register(user); + $stateRegistryProvider.register(teams); + $stateRegistryProvider.register(team); +}]); diff --git a/app/directives/accessControlForm/por-access-control-form.js b/app/portainer/components/accessControlForm/por-access-control-form.js similarity index 69% rename from app/directives/accessControlForm/por-access-control-form.js rename to app/portainer/components/accessControlForm/por-access-control-form.js index 4f71b3acf..b0931fe12 100644 --- a/app/directives/accessControlForm/por-access-control-form.js +++ b/app/portainer/components/accessControlForm/por-access-control-form.js @@ -1,5 +1,5 @@ -angular.module('portainer').component('porAccessControlForm', { - templateUrl: 'app/directives/accessControlForm/porAccessControlForm.html', +angular.module('portainer.app').component('porAccessControlForm', { + templateUrl: 'app/portainer/components/accessControlForm/porAccessControlForm.html', controller: 'porAccessControlFormController', bindings: { // This object will be populated with the form data. diff --git a/app/directives/accessControlForm/porAccessControlForm.html b/app/portainer/components/accessControlForm/porAccessControlForm.html similarity index 98% rename from app/directives/accessControlForm/porAccessControlForm.html rename to app/portainer/components/accessControlForm/porAccessControlForm.html index a8978408f..9b62663fc 100644 --- a/app/directives/accessControlForm/porAccessControlForm.html +++ b/app/portainer/components/accessControlForm/porAccessControlForm.html @@ -79,7 +79,7 @@ - You have not yet created any team. Head over the teams view to manage user teams. + You have not yet created any team. Head over the teams view to manage user teams. - You have not yet created any user. Head over the users view to manage users. + You have not yet created any user. Head over the users view to manage users. - Access control on this resource is inherited from the following service: {{ $ctrl.resourceControl.ResourceId | truncate }} + Access control on this resource is inherited from the following service: {{ $ctrl.resourceControl.ResourceId | truncate }} - Access control on this resource is inherited from the following container: {{ $ctrl.resourceControl.ResourceId | truncate }} + Access control on this resource is inherited from the following container: {{ $ctrl.resourceControl.ResourceId | truncate }} @@ -131,7 +131,7 @@ Teams - You have not yet created any team. Head over the teams view to manage user teams. + You have not yet created any team. Head over the teams view to manage user teams. Users - You have not yet created any user. Head over the users view to manage users. + You have not yet created any user. Head over the users view to manage users. - {{ item.Name }} + {{ item.Name }} {{ item.Name }} {{ item.URL | stripprotocol }} - + Manage access diff --git a/app/directives/ui/datatables/endpoints-datatable/endpointsDatatable.js b/app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.js similarity index 63% rename from app/directives/ui/datatables/endpoints-datatable/endpointsDatatable.js rename to app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.js index 540d6f93c..22c280cee 100644 --- a/app/directives/ui/datatables/endpoints-datatable/endpointsDatatable.js +++ b/app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('endpointsDatatable', { - templateUrl: 'app/directives/ui/datatables/endpoints-datatable/endpointsDatatable.html', +angular.module('portainer.app').component('endpointsDatatable', { + templateUrl: 'app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/common/genericDatatableController.js b/app/portainer/components/datatables/genericDatatableController.js similarity index 98% rename from app/directives/ui/datatables/common/genericDatatableController.js rename to app/portainer/components/datatables/genericDatatableController.js index 8a47d7808..676a43880 100644 --- a/app/directives/ui/datatables/common/genericDatatableController.js +++ b/app/portainer/components/datatables/genericDatatableController.js @@ -1,4 +1,4 @@ -angular.module('ui') +angular.module('portainer.app') .controller('GenericDatatableController', ['PaginationService', 'DatatableService', function (PaginationService, DatatableService) { diff --git a/app/directives/ui/datatables/registries-datatable/registriesDatatable.html b/app/portainer/components/datatables/registries-datatable/registriesDatatable.html similarity index 95% rename from app/directives/ui/datatables/registries-datatable/registriesDatatable.html rename to app/portainer/components/datatables/registries-datatable/registriesDatatable.html index 6d595c6ef..99d3cbf6c 100644 --- a/app/directives/ui/datatables/registries-datatable/registriesDatatable.html +++ b/app/portainer/components/datatables/registries-datatable/registriesDatatable.html @@ -16,7 +16,7 @@ ng-disabled="$ctrl.state.selectedItemCount === 0" ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"> Remove - @@ -56,14 +56,14 @@ - {{ item.Name }} + {{ item.Name }} authentication-enabled {{ item.URL }} - + Manage access diff --git a/app/directives/ui/datatables/registries-datatable/registriesDatatable.js b/app/portainer/components/datatables/registries-datatable/registriesDatatable.js similarity index 60% rename from app/directives/ui/datatables/registries-datatable/registriesDatatable.js rename to app/portainer/components/datatables/registries-datatable/registriesDatatable.js index 2cd7603e2..de6c2c49e 100644 --- a/app/directives/ui/datatables/registries-datatable/registriesDatatable.js +++ b/app/portainer/components/datatables/registries-datatable/registriesDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('registriesDatatable', { - templateUrl: 'app/directives/ui/datatables/registries-datatable/registriesDatatable.html', +angular.module('portainer.app').component('registriesDatatable', { + templateUrl: 'app/portainer/components/datatables/registries-datatable/registriesDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/stack-services-datatable/stackServicesDatatable.html b/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html similarity index 98% rename from app/directives/ui/datatables/stack-services-datatable/stackServicesDatatable.html rename to app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html index 81c36ed50..e58b0f4ec 100644 --- a/app/directives/ui/datatables/stack-services-datatable/stackServicesDatatable.html +++ b/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html @@ -58,7 +58,7 @@ - {{ item.Name }} + {{ item.Name }} {{ item.Image | hideshasum }} {{ item.Mode }} diff --git a/app/directives/ui/datatables/stack-services-datatable/stackServicesDatatable.js b/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.js similarity index 57% rename from app/directives/ui/datatables/stack-services-datatable/stackServicesDatatable.js rename to app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.js index 219df8530..8de25b951 100644 --- a/app/directives/ui/datatables/stack-services-datatable/stackServicesDatatable.js +++ b/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('stackServicesDatatable', { - templateUrl: 'app/directives/ui/datatables/stack-services-datatable/stackServicesDatatable.html', +angular.module('portainer.app').component('stackServicesDatatable', { + templateUrl: 'app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/stacks-datatable/stacksDatatable.html b/app/portainer/components/datatables/stacks-datatable/stacksDatatable.html similarity index 97% rename from app/directives/ui/datatables/stacks-datatable/stacksDatatable.html rename to app/portainer/components/datatables/stacks-datatable/stacksDatatable.html index bcf668a04..1f4771650 100644 --- a/app/directives/ui/datatables/stacks-datatable/stacksDatatable.html +++ b/app/portainer/components/datatables/stacks-datatable/stacksDatatable.html @@ -16,7 +16,7 @@ ng-disabled="$ctrl.state.selectedItemCount === 0" ng-click="$ctrl.removeAction($ctrl.state.selectedItems)"> Remove - @@ -55,7 +55,7 @@ - {{ item.Name }} + {{ item.Name }} {{ item.Name }} diff --git a/app/directives/ui/datatables/stacks-datatable/stacksDatatable.js b/app/portainer/components/datatables/stacks-datatable/stacksDatatable.js similarity index 65% rename from app/directives/ui/datatables/stacks-datatable/stacksDatatable.js rename to app/portainer/components/datatables/stacks-datatable/stacksDatatable.js index fa983f5ed..202dd785c 100644 --- a/app/directives/ui/datatables/stacks-datatable/stacksDatatable.js +++ b/app/portainer/components/datatables/stacks-datatable/stacksDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('stacksDatatable', { - templateUrl: 'app/directives/ui/datatables/stacks-datatable/stacksDatatable.html', +angular.module('portainer.app').component('stacksDatatable', { + templateUrl: 'app/portainer/components/datatables/stacks-datatable/stacksDatatable.html', controller: 'StacksDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/stacks-datatable/stacksDatatableController.js b/app/portainer/components/datatables/stacks-datatable/stacksDatatableController.js similarity index 98% rename from app/directives/ui/datatables/stacks-datatable/stacksDatatableController.js rename to app/portainer/components/datatables/stacks-datatable/stacksDatatableController.js index 777c1c16c..e80470bc4 100644 --- a/app/directives/ui/datatables/stacks-datatable/stacksDatatableController.js +++ b/app/portainer/components/datatables/stacks-datatable/stacksDatatableController.js @@ -1,4 +1,4 @@ -angular.module('ui') +angular.module('portainer.app') .controller('StacksDatatableController', ['PaginationService', 'DatatableService', function (PaginationService, DatatableService) { diff --git a/app/directives/ui/datatables/teams-datatable/teamsDatatable.html b/app/portainer/components/datatables/teams-datatable/teamsDatatable.html similarity index 97% rename from app/directives/ui/datatables/teams-datatable/teamsDatatable.html rename to app/portainer/components/datatables/teams-datatable/teamsDatatable.html index 4c43964bb..63b9c63d8 100644 --- a/app/directives/ui/datatables/teams-datatable/teamsDatatable.html +++ b/app/portainer/components/datatables/teams-datatable/teamsDatatable.html @@ -45,7 +45,7 @@ - {{ item.Name }} + {{ item.Name }} diff --git a/app/directives/ui/datatables/teams-datatable/teamsDatatable.js b/app/portainer/components/datatables/teams-datatable/teamsDatatable.js similarity index 59% rename from app/directives/ui/datatables/teams-datatable/teamsDatatable.js rename to app/portainer/components/datatables/teams-datatable/teamsDatatable.js index 7993ccde9..d031ed459 100644 --- a/app/directives/ui/datatables/teams-datatable/teamsDatatable.js +++ b/app/portainer/components/datatables/teams-datatable/teamsDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('teamsDatatable', { - templateUrl: 'app/directives/ui/datatables/teams-datatable/teamsDatatable.html', +angular.module('portainer.app').component('teamsDatatable', { + templateUrl: 'app/portainer/components/datatables/teams-datatable/teamsDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/ui/datatables/users-datatable/usersDatatable.html b/app/portainer/components/datatables/users-datatable/usersDatatable.html similarity index 98% rename from app/directives/ui/datatables/users-datatable/usersDatatable.html rename to app/portainer/components/datatables/users-datatable/usersDatatable.html index 9e5d5c40f..3df05728a 100644 --- a/app/directives/ui/datatables/users-datatable/usersDatatable.html +++ b/app/portainer/components/datatables/users-datatable/usersDatatable.html @@ -59,7 +59,7 @@ - {{ item.Username }} + {{ item.Username }} diff --git a/app/directives/ui/datatables/users-datatable/usersDatatable.js b/app/portainer/components/datatables/users-datatable/usersDatatable.js similarity index 62% rename from app/directives/ui/datatables/users-datatable/usersDatatable.js rename to app/portainer/components/datatables/users-datatable/usersDatatable.js index 565cf3da5..ac4650859 100644 --- a/app/directives/ui/datatables/users-datatable/usersDatatable.js +++ b/app/portainer/components/datatables/users-datatable/usersDatatable.js @@ -1,5 +1,5 @@ -angular.module('ui').component('usersDatatable', { - templateUrl: 'app/directives/ui/datatables/users-datatable/usersDatatable.html', +angular.module('portainer.app').component('usersDatatable', { + templateUrl: 'app/portainer/components/datatables/users-datatable/usersDatatable.html', controller: 'GenericDatatableController', bindings: { title: '@', diff --git a/app/directives/endpointSecurity/por-endpoint-security.js b/app/portainer/components/endpointSecurity/por-endpoint-security.js similarity index 66% rename from app/directives/endpointSecurity/por-endpoint-security.js rename to app/portainer/components/endpointSecurity/por-endpoint-security.js index 51567dc18..068494635 100644 --- a/app/directives/endpointSecurity/por-endpoint-security.js +++ b/app/portainer/components/endpointSecurity/por-endpoint-security.js @@ -1,5 +1,5 @@ -angular.module('portainer').component('porEndpointSecurity', { - templateUrl: 'app/directives/endpointSecurity/porEndpointSecurity.html', +angular.module('portainer.app').component('porEndpointSecurity', { + templateUrl: 'app/portainer/components/endpointSecurity/porEndpointSecurity.html', controller: 'porEndpointSecurityController', bindings: { // This object will be populated with the form data. diff --git a/app/directives/endpointSecurity/porEndpointSecurity.html b/app/portainer/components/endpointSecurity/porEndpointSecurity.html similarity index 100% rename from app/directives/endpointSecurity/porEndpointSecurity.html rename to app/portainer/components/endpointSecurity/porEndpointSecurity.html diff --git a/app/directives/endpointSecurity/porEndpointSecurityController.js b/app/portainer/components/endpointSecurity/porEndpointSecurityController.js similarity index 96% rename from app/directives/endpointSecurity/porEndpointSecurityController.js rename to app/portainer/components/endpointSecurity/porEndpointSecurityController.js index 059903047..4a9bb6754 100644 --- a/app/directives/endpointSecurity/porEndpointSecurityController.js +++ b/app/portainer/components/endpointSecurity/porEndpointSecurityController.js @@ -1,4 +1,4 @@ -angular.module('portainer') +angular.module('portainer.app') .controller('porEndpointSecurityController', [function () { var ctrl = this; diff --git a/app/directives/endpointSecurity/porEndpointSecurityModel.js b/app/portainer/components/endpointSecurity/porEndpointSecurityModel.js similarity index 100% rename from app/directives/endpointSecurity/porEndpointSecurityModel.js rename to app/portainer/components/endpointSecurity/porEndpointSecurityModel.js diff --git a/app/directives/header-content.js b/app/portainer/components/header-content.js similarity index 57% rename from app/directives/header-content.js rename to app/portainer/components/header-content.js index ecb52136d..cb9de8f6e 100644 --- a/app/directives/header-content.js +++ b/app/portainer/components/header-content.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdHeaderContent', ['Authentication', function rdHeaderContent(Authentication) { var directive = { requires: '^rdHeader', @@ -7,7 +6,7 @@ angular link: function (scope, iElement, iAttrs) { scope.username = Authentication.getUserDetails().username; }, - template: '', + template: '', restrict: 'E' }; return directive; diff --git a/app/directives/header-title.js b/app/portainer/components/header-title.js similarity index 75% rename from app/directives/header-title.js rename to app/portainer/components/header-title.js index 167c09ef1..3b4f88665 100644 --- a/app/directives/header-title.js +++ b/app/portainer/components/header-title.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdHeaderTitle', ['Authentication', 'StateManager', function rdHeaderTitle(Authentication, StateManager) { var directive = { requires: '^rdHeader', @@ -11,7 +10,7 @@ angular scope.displayDonationHeader = StateManager.getState().application.displayDonationHeader; }, transclude: true, - template: '
{{title}} {{username}} Help support portainer
', + template: '
{{title}} {{username}} Help support portainer
', restrict: 'E' }; return directive; diff --git a/app/directives/header.js b/app/portainer/components/header.js similarity index 91% rename from app/directives/header.js rename to app/portainer/components/header.js index a2facd4e6..f73ada0fd 100644 --- a/app/directives/header.js +++ b/app/portainer/components/header.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdHeader', function rdHeader() { var directive = { scope: { diff --git a/app/directives/loading.js b/app/portainer/components/loading.js similarity index 87% rename from app/directives/loading.js rename to app/portainer/components/loading.js index f2d9a371a..bf97ddb53 100644 --- a/app/directives/loading.js +++ b/app/portainer/components/loading.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdLoading', function rdLoading() { var directive = { restrict: 'AE', diff --git a/app/directives/onEnterKey.js b/app/portainer/components/onEnterKey.js similarity index 92% rename from app/directives/onEnterKey.js rename to app/portainer/components/onEnterKey.js index 1d13e8d22..3d367d33f 100644 --- a/app/directives/onEnterKey.js +++ b/app/portainer/components/onEnterKey.js @@ -1,4 +1,4 @@ -angular.module('portainer') +angular.module('portainer.app') .directive('onEnterKey', [function porOnEnterKey() { var directive = { restrict: 'A', diff --git a/app/directives/ui/slider/slider.html b/app/portainer/components/slider/slider.html similarity index 100% rename from app/directives/ui/slider/slider.html rename to app/portainer/components/slider/slider.html diff --git a/app/directives/ui/slider/slider.js b/app/portainer/components/slider/slider.js similarity index 57% rename from app/directives/ui/slider/slider.js rename to app/portainer/components/slider/slider.js index 03d8fe337..ff8747a63 100644 --- a/app/directives/ui/slider/slider.js +++ b/app/portainer/components/slider/slider.js @@ -1,5 +1,5 @@ -angular.module('ui').component('slider', { - templateUrl: 'app/directives/ui/slider/slider.html', +angular.module('portainer.app').component('slider', { + templateUrl: 'app/portainer/components/slider/slider.html', controller: 'SliderController', bindings: { model: '=', diff --git a/app/directives/ui/slider/sliderController.js b/app/portainer/components/slider/sliderController.js similarity index 93% rename from app/directives/ui/slider/sliderController.js rename to app/portainer/components/slider/sliderController.js index 6445007a8..21175579d 100644 --- a/app/directives/ui/slider/sliderController.js +++ b/app/portainer/components/slider/sliderController.js @@ -1,4 +1,4 @@ -angular.module('ui') +angular.module('portainer.app') .controller('SliderController', function () { var ctrl = this; diff --git a/app/directives/template-widget.js b/app/portainer/components/template-widget.js similarity index 89% rename from app/directives/template-widget.js rename to app/portainer/components/template-widget.js index 51f902cbf..e31685cf7 100644 --- a/app/directives/template-widget.js +++ b/app/portainer/components/template-widget.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdTemplateWidget', function rdWidget() { var directive = { scope: { diff --git a/app/directives/tooltip.js b/app/portainer/components/tooltip.js similarity index 93% rename from app/directives/tooltip.js rename to app/portainer/components/tooltip.js index b4a696090..0d4a67bc4 100644 --- a/app/directives/tooltip.js +++ b/app/portainer/components/tooltip.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('portainerTooltip', [function portainerTooltip() { var directive = { scope: { diff --git a/app/directives/widget-body.js b/app/portainer/components/widget-body.js similarity index 92% rename from app/directives/widget-body.js rename to app/portainer/components/widget-body.js index ad8de2e15..83cdc9db0 100644 --- a/app/directives/widget-body.js +++ b/app/portainer/components/widget-body.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdWidgetBody', function rdWidgetBody() { var directive = { requires: '^rdWidget', diff --git a/app/directives/widget-custom-header.js b/app/portainer/components/widget-custom-header.js similarity index 94% rename from app/directives/widget-custom-header.js rename to app/portainer/components/widget-custom-header.js index 54150f1f0..ab4aa8827 100644 --- a/app/directives/widget-custom-header.js +++ b/app/portainer/components/widget-custom-header.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdWidgetCustomHeader', function rdWidgetCustomHeader() { var directive = { requires: '^rdWidget', diff --git a/app/directives/widget-footer.js b/app/portainer/components/widget-footer.js similarity index 88% rename from app/directives/widget-footer.js rename to app/portainer/components/widget-footer.js index 9cb1dda96..7ebab1eba 100644 --- a/app/directives/widget-footer.js +++ b/app/portainer/components/widget-footer.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdWidgetFooter', function rdWidgetFooter() { var directive = { requires: '^rdWidget', diff --git a/app/directives/widget-header.js b/app/portainer/components/widget-header.js similarity index 93% rename from app/directives/widget-header.js rename to app/portainer/components/widget-header.js index 9e047aaa1..0755341dc 100644 --- a/app/directives/widget-header.js +++ b/app/portainer/components/widget-header.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdWidgetHeader', function rdWidgetTitle() { var directive = { requires: '^rdWidget', diff --git a/app/directives/widget-taskbar.js b/app/portainer/components/widget-taskbar.js similarity index 91% rename from app/directives/widget-taskbar.js rename to app/portainer/components/widget-taskbar.js index 4b39bcc37..e59509798 100644 --- a/app/directives/widget-taskbar.js +++ b/app/portainer/components/widget-taskbar.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdWidgetTaskbar', function rdWidgetTaskbar() { var directive = { requires: '^rdWidget', diff --git a/app/directives/widget.js b/app/portainer/components/widget.js similarity index 87% rename from app/directives/widget.js rename to app/portainer/components/widget.js index 6426fe147..456085078 100644 --- a/app/directives/widget.js +++ b/app/portainer/components/widget.js @@ -1,5 +1,4 @@ -angular -.module('portainer') +angular.module('portainer.app') .directive('rdWidget', function rdWidget() { var directive = { scope: { diff --git a/app/portainer/filters/filters.js b/app/portainer/filters/filters.js new file mode 100644 index 000000000..a72ab82cc --- /dev/null +++ b/app/portainer/filters/filters.js @@ -0,0 +1,119 @@ +angular.module('portainer.app') +.filter('truncate', function () { + 'use strict'; + return function (text, length, end) { + if (isNaN(length)) { + length = 10; + } + + if (end === undefined) { + end = '...'; + } + + if (text.length <= length || text.length - end.length <= length) { + return text; + } else { + return String(text).substring(0, length - end.length) + end; + } + }; +}) +.filter('truncatelr', function () { + 'use strict'; + return function (text, max, left, right) { + max = isNaN(max) ? 50 : max; + left = isNaN(left) ? 25 : left; + right = isNaN(right) ? 25 : right; + + if (text.length <= max) { + return text; + } else { + return text.substring(0, left) + '[...]' + text.substring(text.length - right, text.length); + } + }; +}) +.filter('capitalize', function () { + 'use strict'; + return function (text) { + return _.capitalize(text); + }; +}) +.filter('stripprotocol', function() { + 'use strict'; + return function (url) { + return url.replace(/.*?:\/\//g, ''); + }; +}) +.filter('humansize', function () { + 'use strict'; + return function (bytes, round, base) { + if (!round) { + round = 1; + } + if (!base) { + base = 10; + } + if (bytes || bytes === 0) { + return filesize(bytes, {base: base, round: round}); + } + }; +}) +.filter('getisodatefromtimestamp', function () { + 'use strict'; + return function (timestamp) { + return moment.unix(timestamp).format('YYYY-MM-DD HH:mm:ss'); + }; +}) +.filter('getisodate', function () { + 'use strict'; + return function (date) { + return moment(date).format('YYYY-MM-DD HH:mm:ss'); + }; +}) +.filter('key', function () { + 'use strict'; + return function (pair, separator) { + return pair.slice(0, pair.indexOf(separator)); + }; +}) +.filter('value', function () { + 'use strict'; + return function (pair, separator) { + return pair.slice(pair.indexOf(separator) + 1); + }; +}) +.filter('emptyobject', function () { + 'use strict'; + return function (obj) { + return _.isEmpty(obj); + }; +}) +.filter('ipaddress', function () { + 'use strict'; + return function (ip) { + return ip.slice(0, ip.indexOf('/')); + }; +}) +.filter('arraytostr', function () { + 'use strict'; + return function (arr, separator) { + if (arr) { + return _.join(arr, separator); + } + return ''; + }; +}) +.filter('ownershipicon', function () { + 'use strict'; + return function (ownership) { + switch (ownership) { + case 'private': + return 'fa fa-eye-slash'; + case 'administrators': + return 'fa fa-eye-slash'; + case 'restricted': + return 'fa fa-users'; + default: + return 'fa fa-eye'; + } + }; +}); diff --git a/app/helpers/formHelper.js b/app/portainer/helpers/formHelper.js similarity index 90% rename from app/helpers/formHelper.js rename to app/portainer/helpers/formHelper.js index 7cb3456f1..db733b12f 100644 --- a/app/helpers/formHelper.js +++ b/app/portainer/helpers/formHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.app') .factory('FormHelper', [function FormHelperFactory() { 'use strict'; var helper = {}; diff --git a/app/helpers/registryHelper.js b/app/portainer/helpers/registryHelper.js similarity index 89% rename from app/helpers/registryHelper.js rename to app/portainer/helpers/registryHelper.js index 90a582b2a..bef569f6d 100644 --- a/app/helpers/registryHelper.js +++ b/app/portainer/helpers/registryHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.app') .factory('RegistryHelper', [function RegistryHelperFactory() { 'use strict'; @@ -13,6 +13,6 @@ angular.module('portainer.helpers') return null; }; - + return helper; }]); diff --git a/app/helpers/resourceControlHelper.js b/app/portainer/helpers/resourceControlHelper.js similarity index 97% rename from app/helpers/resourceControlHelper.js rename to app/portainer/helpers/resourceControlHelper.js index 49901b2aa..be668f5d6 100644 --- a/app/helpers/resourceControlHelper.js +++ b/app/portainer/helpers/resourceControlHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.app') .factory('ResourceControlHelper', [function ResourceControlHelperFactory() { 'use strict'; var helper = {}; diff --git a/app/helpers/stackHelper.js b/app/portainer/helpers/stackHelper.js similarity index 93% rename from app/helpers/stackHelper.js rename to app/portainer/helpers/stackHelper.js index 8701d9d4f..439efeb22 100644 --- a/app/helpers/stackHelper.js +++ b/app/portainer/helpers/stackHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.app') .factory('StackHelper', [function StackHelperFactory() { 'use strict'; var helper = {}; diff --git a/app/helpers/templateHelper.js b/app/portainer/helpers/templateHelper.js similarity index 99% rename from app/helpers/templateHelper.js rename to app/portainer/helpers/templateHelper.js index 288bed577..2922b91fe 100644 --- a/app/helpers/templateHelper.js +++ b/app/portainer/helpers/templateHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.app') .factory('TemplateHelper', ['$filter', function TemplateHelperFactory($filter) { 'use strict'; var helper = {}; diff --git a/app/helpers/userHelper.js b/app/portainer/helpers/userHelper.js similarity index 88% rename from app/helpers/userHelper.js rename to app/portainer/helpers/userHelper.js index 5962b1bb5..77b439bfb 100644 --- a/app/helpers/userHelper.js +++ b/app/portainer/helpers/userHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.helpers') +angular.module('portainer.app') .factory('UserHelper', [function UserHelperFactory() { 'use strict'; var helper = {}; diff --git a/app/models/api/access.js b/app/portainer/models/access.js similarity index 100% rename from app/models/api/access.js rename to app/portainer/models/access.js diff --git a/app/models/api/dockerhub.js b/app/portainer/models/dockerhub.js similarity index 100% rename from app/models/api/dockerhub.js rename to app/portainer/models/dockerhub.js diff --git a/app/models/api/registry.js b/app/portainer/models/registry.js similarity index 100% rename from app/models/api/registry.js rename to app/portainer/models/registry.js diff --git a/app/models/api/resourceControl.js b/app/portainer/models/resourceControl.js similarity index 100% rename from app/models/api/resourceControl.js rename to app/portainer/models/resourceControl.js diff --git a/app/models/api/settings/ldapSettings.js b/app/portainer/models/settings/ldapSettings.js similarity index 100% rename from app/models/api/settings/ldapSettings.js rename to app/portainer/models/settings/ldapSettings.js diff --git a/app/models/api/settings/settings.js b/app/portainer/models/settings/settings.js similarity index 100% rename from app/models/api/settings/settings.js rename to app/portainer/models/settings/settings.js diff --git a/app/models/api/status.js b/app/portainer/models/status.js similarity index 100% rename from app/models/api/status.js rename to app/portainer/models/status.js diff --git a/app/models/api/team.js b/app/portainer/models/team.js similarity index 100% rename from app/models/api/team.js rename to app/portainer/models/team.js diff --git a/app/models/api/teamMembership.js b/app/portainer/models/teamMembership.js similarity index 100% rename from app/models/api/teamMembership.js rename to app/portainer/models/teamMembership.js diff --git a/app/models/api/user.js b/app/portainer/models/user.js similarity index 100% rename from app/models/api/user.js rename to app/portainer/models/user.js diff --git a/app/rest/api/auth.js b/app/portainer/rest/auth.js similarity index 87% rename from app/rest/api/auth.js rename to app/portainer/rest/auth.js index 179225cd2..0503b830e 100644 --- a/app/rest/api/auth.js +++ b/app/portainer/rest/auth.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Auth', ['$resource', 'API_ENDPOINT_AUTH', function AuthFactory($resource, API_ENDPOINT_AUTH) { 'use strict'; return $resource(API_ENDPOINT_AUTH, {}, { diff --git a/app/rest/api/dockerhub.js b/app/portainer/rest/dockerhub.js similarity index 88% rename from app/rest/api/dockerhub.js rename to app/portainer/rest/dockerhub.js index 5572be7f7..319eb2053 100644 --- a/app/rest/api/dockerhub.js +++ b/app/portainer/rest/dockerhub.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('DockerHub', ['$resource', 'API_ENDPOINT_DOCKERHUB', function DockerHubFactory($resource, API_ENDPOINT_DOCKERHUB) { 'use strict'; return $resource(API_ENDPOINT_DOCKERHUB, {}, { diff --git a/app/rest/api/endpoint.js b/app/portainer/rest/endpoint.js similarity index 94% rename from app/rest/api/endpoint.js rename to app/portainer/rest/endpoint.js index f4a0e76ce..34c3ac855 100644 --- a/app/rest/api/endpoint.js +++ b/app/portainer/rest/endpoint.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Endpoints', ['$resource', 'API_ENDPOINT_ENDPOINTS', function EndpointsFactory($resource, API_ENDPOINT_ENDPOINTS) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:id/:action', {}, { diff --git a/app/rest/api/registry.js b/app/portainer/rest/registry.js similarity index 94% rename from app/rest/api/registry.js rename to app/portainer/rest/registry.js index cbeec9f7c..56c46a3d0 100644 --- a/app/rest/api/registry.js +++ b/app/portainer/rest/registry.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Registries', ['$resource', 'API_ENDPOINT_REGISTRIES', function RegistriesFactory($resource, API_ENDPOINT_REGISTRIES) { 'use strict'; return $resource(API_ENDPOINT_REGISTRIES + '/:id/:action', {}, { diff --git a/app/rest/api/resourceControl.js b/app/portainer/rest/resourceControl.js similarity index 93% rename from app/rest/api/resourceControl.js rename to app/portainer/rest/resourceControl.js index 22a5af6b4..e883f57ee 100644 --- a/app/rest/api/resourceControl.js +++ b/app/portainer/rest/resourceControl.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('ResourceControl', ['$resource', 'API_ENDPOINT_RESOURCE_CONTROLS', function ResourceControlFactory($resource, API_ENDPOINT_RESOURCE_CONTROLS) { 'use strict'; return $resource(API_ENDPOINT_RESOURCE_CONTROLS + '/:id', {}, { diff --git a/app/rest/api/settings.js b/app/portainer/rest/settings.js similarity index 93% rename from app/rest/api/settings.js rename to app/portainer/rest/settings.js index 184504f54..da4d92ba8 100644 --- a/app/rest/api/settings.js +++ b/app/portainer/rest/settings.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Settings', ['$resource', 'API_ENDPOINT_SETTINGS', function SettingsFactory($resource, API_ENDPOINT_SETTINGS) { 'use strict'; return $resource(API_ENDPOINT_SETTINGS + '/:subResource/:action', {}, { diff --git a/app/rest/api/stack.js b/app/portainer/rest/stack.js similarity index 95% rename from app/rest/api/stack.js rename to app/portainer/rest/stack.js index 9899b0043..1ebda7274 100644 --- a/app/rest/api/stack.js +++ b/app/portainer/rest/stack.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Stack', ['$resource', 'EndpointProvider', 'API_ENDPOINT_ENDPOINTS', function StackFactory($resource, EndpointProvider, API_ENDPOINT_ENDPOINTS) { 'use strict'; return $resource(API_ENDPOINT_ENDPOINTS + '/:endpointId/stacks/:id/:action', { diff --git a/app/rest/api/status.js b/app/portainer/rest/status.js similarity index 86% rename from app/rest/api/status.js rename to app/portainer/rest/status.js index 285c67ef5..888a948bf 100644 --- a/app/rest/api/status.js +++ b/app/portainer/rest/status.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Status', ['$resource', 'API_ENDPOINT_STATUS', function StatusFactory($resource, API_ENDPOINT_STATUS) { 'use strict'; return $resource(API_ENDPOINT_STATUS, {}, { diff --git a/app/rest/api/team.js b/app/portainer/rest/team.js similarity index 94% rename from app/rest/api/team.js rename to app/portainer/rest/team.js index 85537f70f..18c3bfc64 100644 --- a/app/rest/api/team.js +++ b/app/portainer/rest/team.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Teams', ['$resource', 'API_ENDPOINT_TEAMS', function TeamsFactory($resource, API_ENDPOINT_TEAMS) { 'use strict'; return $resource(API_ENDPOINT_TEAMS + '/:id/:entity/:entityId', {}, { diff --git a/app/rest/api/teamMembership.js b/app/portainer/rest/teamMembership.js similarity index 93% rename from app/rest/api/teamMembership.js rename to app/portainer/rest/teamMembership.js index f7293d591..7514de8c8 100644 --- a/app/rest/api/teamMembership.js +++ b/app/portainer/rest/teamMembership.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('TeamMemberships', ['$resource', 'API_ENDPOINT_TEAM_MEMBERSHIPS', function TeamMembershipsFactory($resource, API_ENDPOINT_TEAM_MEMBERSHIPS) { 'use strict'; return $resource(API_ENDPOINT_TEAM_MEMBERSHIPS + '/:id/:action', {}, { diff --git a/app/rest/api/template.js b/app/portainer/rest/template.js similarity index 87% rename from app/rest/api/template.js rename to app/portainer/rest/template.js index b01a95575..22a8542de 100644 --- a/app/rest/api/template.js +++ b/app/portainer/rest/template.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Template', ['$resource', 'API_ENDPOINT_TEMPLATES', function TemplateFactory($resource, API_ENDPOINT_TEMPLATES) { return $resource(API_ENDPOINT_TEMPLATES, {}, { get: {method: 'GET', isArray: true} diff --git a/app/rest/api/user.js b/app/portainer/rest/user.js similarity index 96% rename from app/rest/api/user.js rename to app/portainer/rest/user.js index 6337d2949..c6cb0b47e 100644 --- a/app/rest/api/user.js +++ b/app/portainer/rest/user.js @@ -1,4 +1,4 @@ -angular.module('portainer.rest') +angular.module('portainer.app') .factory('Users', ['$resource', 'API_ENDPOINT_USERS', function UsersFactory($resource, API_ENDPOINT_USERS) { 'use strict'; return $resource(API_ENDPOINT_USERS + '/:id/:entity/:entityId', {}, { diff --git a/app/services/api/accessService.js b/app/portainer/services/api/accessService.js similarity index 97% rename from app/services/api/accessService.js rename to app/portainer/services/api/accessService.js index 2182a8b21..65382a4ba 100644 --- a/app/services/api/accessService.js +++ b/app/portainer/services/api/accessService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('AccessService', ['$q', 'UserService', 'TeamService', function AccessServiceFactory($q, UserService, TeamService) { 'use strict'; var service = {}; diff --git a/app/services/api/dockerhubService.js b/app/portainer/services/api/dockerhubService.js similarity index 94% rename from app/services/api/dockerhubService.js rename to app/portainer/services/api/dockerhubService.js index 10f213d68..aeb291082 100644 --- a/app/services/api/dockerhubService.js +++ b/app/portainer/services/api/dockerhubService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('DockerHubService', ['$q', 'DockerHub', function DockerHubServiceFactory($q, DockerHub) { 'use strict'; var service = {}; diff --git a/app/services/api/endpointService.js b/app/portainer/services/api/endpointService.js similarity index 98% rename from app/services/api/endpointService.js rename to app/portainer/services/api/endpointService.js index 742b2fc3c..2a1976e4f 100644 --- a/app/services/api/endpointService.js +++ b/app/portainer/services/api/endpointService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('EndpointService', ['$q', 'Endpoints', 'FileUploadService', function EndpointServiceFactory($q, Endpoints, FileUploadService) { 'use strict'; var service = {}; diff --git a/app/services/api/registryService.js b/app/portainer/services/api/registryService.js similarity index 98% rename from app/services/api/registryService.js rename to app/portainer/services/api/registryService.js index a71d02403..b6193f89b 100644 --- a/app/services/api/registryService.js +++ b/app/portainer/services/api/registryService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('RegistryService', ['$q', 'Registries', 'DockerHubService', 'RegistryHelper', 'ImageHelper', function RegistryServiceFactory($q, Registries, DockerHubService, RegistryHelper, ImageHelper) { 'use strict'; var service = {}; diff --git a/app/services/api/resourceControlService.js b/app/portainer/services/api/resourceControlService.js similarity index 99% rename from app/services/api/resourceControlService.js rename to app/portainer/services/api/resourceControlService.js index 6f7ae11a0..1ee0b148c 100644 --- a/app/services/api/resourceControlService.js +++ b/app/portainer/services/api/resourceControlService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('ResourceControlService', ['$q', 'ResourceControl', 'UserService', 'TeamService', 'ResourceControlHelper', function ResourceControlServiceFactory($q, ResourceControl, UserService, TeamService, ResourceControlHelper) { 'use strict'; var service = {}; diff --git a/app/services/api/settingsService.js b/app/portainer/services/api/settingsService.js similarity index 96% rename from app/services/api/settingsService.js rename to app/portainer/services/api/settingsService.js index 4455abb97..a725ce09c 100644 --- a/app/services/api/settingsService.js +++ b/app/portainer/services/api/settingsService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('SettingsService', ['$q', 'Settings', function SettingsServiceFactory($q, Settings) { 'use strict'; var service = {}; diff --git a/app/services/api/statusService.js b/app/portainer/services/api/statusService.js similarity index 93% rename from app/services/api/statusService.js rename to app/portainer/services/api/statusService.js index 0989514ab..bede72339 100644 --- a/app/services/api/statusService.js +++ b/app/portainer/services/api/statusService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('StatusService', ['$q', 'Status', function StatusServiceFactory($q, Status) { 'use strict'; var service = {}; diff --git a/app/services/api/teamMembershipService.js b/app/portainer/services/api/teamMembershipService.js similarity index 96% rename from app/services/api/teamMembershipService.js rename to app/portainer/services/api/teamMembershipService.js index 4b2c43ebd..add4d6fca 100644 --- a/app/services/api/teamMembershipService.js +++ b/app/portainer/services/api/teamMembershipService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('TeamMembershipService', ['$q', 'TeamMemberships', function TeamMembershipFactory($q, TeamMemberships) { 'use strict'; var service = {}; diff --git a/app/services/api/teamService.js b/app/portainer/services/api/teamService.js similarity index 98% rename from app/services/api/teamService.js rename to app/portainer/services/api/teamService.js index 3b21f2bf6..d13ff8ffd 100644 --- a/app/services/api/teamService.js +++ b/app/portainer/services/api/teamService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('TeamService', ['$q', 'Teams', 'TeamMembershipService', function TeamServiceFactory($q, Teams, TeamMembershipService) { 'use strict'; var service = {}; diff --git a/app/services/api/userService.js b/app/portainer/services/api/userService.js similarity index 99% rename from app/services/api/userService.js rename to app/portainer/services/api/userService.js index 50680d7df..1c3d0c2ff 100644 --- a/app/services/api/userService.js +++ b/app/portainer/services/api/userService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('UserService', ['$q', 'Users', 'UserHelper', 'TeamService', 'TeamMembershipService', function UserServiceFactory($q, Users, UserHelper, TeamService, TeamMembershipService) { 'use strict'; var service = {}; diff --git a/app/services/authentication.js b/app/portainer/services/authentication.js similarity index 97% rename from app/services/authentication.js rename to app/portainer/services/authentication.js index 9fee8e7de..e0fb48cc1 100644 --- a/app/services/authentication.js +++ b/app/portainer/services/authentication.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('Authentication', ['$q', 'Auth', 'jwtHelper', 'LocalStorage', 'StateManager', 'EndpointProvider', function AuthenticationFactory($q, Auth, jwtHelper, LocalStorage, StateManager, EndpointProvider) { 'use strict'; diff --git a/app/services/chartService.js b/app/portainer/services/chartService.js similarity index 99% rename from app/services/chartService.js rename to app/portainer/services/chartService.js index 6510f2f5d..7fb1e21a1 100644 --- a/app/services/chartService.js +++ b/app/portainer/services/chartService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('ChartService', [function ChartService() { 'use strict'; diff --git a/app/services/codeMirror.js b/app/portainer/services/codeMirror.js similarity index 94% rename from app/services/codeMirror.js rename to app/portainer/services/codeMirror.js index e4cf3b821..0148500a1 100644 --- a/app/services/codeMirror.js +++ b/app/portainer/services/codeMirror.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('CodeMirrorService', function CodeMirrorService() { 'use strict'; diff --git a/app/directives/ui/datatables/datatableService.js b/app/portainer/services/datatableService.js similarity index 96% rename from app/directives/ui/datatables/datatableService.js rename to app/portainer/services/datatableService.js index ff4e9448d..67f723349 100644 --- a/app/directives/ui/datatables/datatableService.js +++ b/app/portainer/services/datatableService.js @@ -1,4 +1,4 @@ -angular.module('ui') +angular.module('portainer.app') .factory('DatatableService', ['LocalStorage', function DatatableServiceFactory(LocalStorage) { 'use strict'; diff --git a/app/services/endpointProvider.js b/app/portainer/services/endpointProvider.js similarity index 96% rename from app/services/endpointProvider.js rename to app/portainer/services/endpointProvider.js index cc1afc4da..21d635d64 100644 --- a/app/services/endpointProvider.js +++ b/app/portainer/services/endpointProvider.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('EndpointProvider', ['LocalStorage', function EndpointProviderFactory(LocalStorage) { 'use strict'; var service = {}; diff --git a/app/services/extensionManager.js b/app/portainer/services/extensionManager.js similarity index 95% rename from app/services/extensionManager.js rename to app/portainer/services/extensionManager.js index 9e8b77ae4..4fdbf8cc0 100644 --- a/app/services/extensionManager.js +++ b/app/portainer/services/extensionManager.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('ExtensionManager', ['$q', 'PluginService', 'StoridgeManager', function ExtensionManagerFactory($q, PluginService, StoridgeManager) { 'use strict'; var service = {}; diff --git a/app/services/fileUpload.js b/app/portainer/services/fileUpload.js similarity index 97% rename from app/services/fileUpload.js rename to app/portainer/services/fileUpload.js index 4efc3b5cd..5ac738884 100644 --- a/app/services/fileUpload.js +++ b/app/portainer/services/fileUpload.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('FileUploadService', ['$q', 'Upload', 'EndpointProvider', function FileUploadFactory($q, Upload, EndpointProvider) { 'use strict'; diff --git a/app/services/formValidator.js b/app/portainer/services/formValidator.js similarity index 95% rename from app/services/formValidator.js rename to app/portainer/services/formValidator.js index cfd513d08..6692bb914 100644 --- a/app/services/formValidator.js +++ b/app/portainer/services/formValidator.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('FormValidator', [function FormValidatorFactory() { 'use strict'; diff --git a/app/services/httpRequestHelper.js b/app/portainer/services/httpRequestHelper.js similarity index 90% rename from app/services/httpRequestHelper.js rename to app/portainer/services/httpRequestHelper.js index f6582b5a0..857d47d7f 100644 --- a/app/services/httpRequestHelper.js +++ b/app/portainer/services/httpRequestHelper.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('HttpRequestHelper', [function HttpRequestHelper() { 'use strict'; diff --git a/app/services/localStorage.js b/app/portainer/services/localStorage.js similarity index 98% rename from app/services/localStorage.js rename to app/portainer/services/localStorage.js index 144ea551e..24b7be1cf 100644 --- a/app/services/localStorage.js +++ b/app/portainer/services/localStorage.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('LocalStorage', ['localStorageService', function LocalStorageFactory(localStorageService) { 'use strict'; return { diff --git a/app/services/modalService.js b/app/portainer/services/modalService.js similarity index 99% rename from app/services/modalService.js rename to app/portainer/services/modalService.js index 4c81bdcc6..0edd374f2 100644 --- a/app/services/modalService.js +++ b/app/portainer/services/modalService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('ModalService', [function ModalServiceFactory() { 'use strict'; var service = {}; diff --git a/app/services/notifications.js b/app/portainer/services/notifications.js similarity index 96% rename from app/services/notifications.js rename to app/portainer/services/notifications.js index d124f2deb..6ebff6ba1 100644 --- a/app/services/notifications.js +++ b/app/portainer/services/notifications.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('Notifications', ['$sanitize', function NotificationsFactory($sanitize) { 'use strict'; var service = {}; diff --git a/app/services/pagination.js b/app/portainer/services/pagination.js similarity index 94% rename from app/services/pagination.js rename to app/portainer/services/pagination.js index e6866a0f0..34bc9f5a9 100644 --- a/app/services/pagination.js +++ b/app/portainer/services/pagination.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('PaginationService', ['LocalStorage', 'PAGINATION_MAX_ITEMS', function PaginationServiceFactory(LocalStorage, PAGINATION_MAX_ITEMS) { 'use strict'; diff --git a/app/services/stateManager.js b/app/portainer/services/stateManager.js similarity index 99% rename from app/services/stateManager.js rename to app/portainer/services/stateManager.js index c2f358375..ca9b8aebe 100644 --- a/app/services/stateManager.js +++ b/app/portainer/services/stateManager.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('StateManager', ['$q', 'SystemService', 'InfoHelper', 'LocalStorage', 'SettingsService', 'StatusService', 'ExtensionManager', 'APPLICATION_CACHE_VALIDITY', function StateManagerFactory($q, SystemService, InfoHelper, LocalStorage, SettingsService, StatusService, ExtensionManager, APPLICATION_CACHE_VALIDITY) { 'use strict'; diff --git a/app/services/templateService.js b/app/portainer/services/templateService.js similarity index 98% rename from app/services/templateService.js rename to app/portainer/services/templateService.js index ca08f756c..d6518a6fa 100644 --- a/app/services/templateService.js +++ b/app/portainer/services/templateService.js @@ -1,4 +1,4 @@ -angular.module('portainer.services') +angular.module('portainer.app') .factory('TemplateService', ['$q', 'Template', 'TemplateHelper', 'ImageHelper', 'ContainerHelper', function TemplateServiceFactory($q, Template, TemplateHelper, ImageHelper, ContainerHelper) { 'use strict'; var service = {}; diff --git a/app/components/about/about.html b/app/portainer/views/about/about.html similarity index 100% rename from app/components/about/about.html rename to app/portainer/views/about/about.html diff --git a/app/components/userSettings/userSettings.html b/app/portainer/views/account/account.html similarity index 100% rename from app/components/userSettings/userSettings.html rename to app/portainer/views/account/account.html diff --git a/app/components/userSettings/userSettingsController.js b/app/portainer/views/account/accountController.js similarity index 87% rename from app/components/userSettings/userSettingsController.js rename to app/portainer/views/account/accountController.js index 50501eb4c..b842b7317 100644 --- a/app/components/userSettings/userSettingsController.js +++ b/app/portainer/views/account/accountController.js @@ -1,5 +1,5 @@ -angular.module('userSettings', []) -.controller('UserSettingsController', ['$scope', '$state', '$sanitize', 'Authentication', 'UserService', 'Notifications', 'SettingsService', +angular.module('portainer.app') +.controller('AccountController', ['$scope', '$state', '$sanitize', 'Authentication', 'UserService', 'Notifications', 'SettingsService', function ($scope, $state, $sanitize, Authentication, UserService, Notifications, SettingsService) { $scope.formValues = { currentPassword: '', diff --git a/app/components/auth/auth.html b/app/portainer/views/auth/auth.html similarity index 100% rename from app/components/auth/auth.html rename to app/portainer/views/auth/auth.html diff --git a/app/components/auth/authController.js b/app/portainer/views/auth/authController.js similarity index 93% rename from app/components/auth/authController.js rename to app/portainer/views/auth/authController.js index 81a7fc05d..e1b1164a2 100644 --- a/app/components/auth/authController.js +++ b/app/portainer/views/auth/authController.js @@ -1,4 +1,4 @@ -angular.module('auth', []) +angular.module('portainer.app') .controller('AuthenticationController', ['$scope', '$state', '$transition$', '$window', '$timeout', '$sanitize', 'Authentication', 'Users', 'UserService', 'EndpointService', 'StateManager', 'EndpointProvider', 'Notifications', 'SettingsService', function ($scope, $state, $transition$, $window, $timeout, $sanitize, Authentication, Users, UserService, EndpointService, StateManager, EndpointProvider, Notifications, SettingsService) { @@ -20,7 +20,7 @@ function ($scope, $state, $transition$, $window, $timeout, $sanitize, Authentica } StateManager.updateEndpointState(true) .then(function success(data) { - $state.go('dashboard'); + $state.go('docker.dashboard'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to connect to the Docker endpoint'); @@ -34,7 +34,7 @@ function ($scope, $state, $transition$, $window, $timeout, $sanitize, Authentica if (endpoints.length > 0) { setActiveEndpointAndRedirectToDashboard(endpoints[0]); } else { - $state.go('init.endpoint'); + $state.go('portainer.init.endpoint'); } }) .catch(function error(err) { @@ -46,7 +46,7 @@ function ($scope, $state, $transition$, $window, $timeout, $sanitize, Authentica UserService.administratorExists() .then(function success(exists) { if (!exists) { - $state.go('init.admin'); + $state.go('portainer.init.admin'); } }) .catch(function error(err) { @@ -76,7 +76,7 @@ function ($scope, $state, $transition$, $window, $timeout, $sanitize, Authentica if (endpoints.length > 0) { setActiveEndpointAndRedirectToDashboard(endpoints[0]); } else if (endpoints.length === 0 && userDetails.role === 1) { - $state.go('init.endpoint'); + $state.go('portainer.init.endpoint'); } else if (endpoints.length === 0 && userDetails.role === 2) { Authentication.logout(); $scope.state.AuthenticationError = 'User not allowed. Please contact your administrator.'; @@ -95,7 +95,7 @@ function ($scope, $state, $transition$, $window, $timeout, $sanitize, Authentica } if (Authentication.isAuthenticated()) { - $state.go('dashboard'); + $state.go('docker.dashboard'); } var authenticationEnabled = $scope.applicationState.application.authentication; diff --git a/app/components/endpointAccess/endpointAccess.html b/app/portainer/views/endpoints/access/endpointAccess.html similarity index 88% rename from app/components/endpointAccess/endpointAccess.html rename to app/portainer/views/endpoints/access/endpointAccess.html index fcf65c3c4..32d111856 100644 --- a/app/components/endpointAccess/endpointAccess.html +++ b/app/portainer/views/endpoints/access/endpointAccess.html @@ -1,7 +1,7 @@ - Endpoints > {{ endpoint.Name }} > Access management + Endpoints > {{ endpoint.Name }} > Access management diff --git a/app/components/endpointAccess/endpointAccessController.js b/app/portainer/views/endpoints/access/endpointAccessController.js similarity index 94% rename from app/components/endpointAccess/endpointAccessController.js rename to app/portainer/views/endpoints/access/endpointAccessController.js index f4d96710b..b2de91a22 100644 --- a/app/components/endpointAccess/endpointAccessController.js +++ b/app/portainer/views/endpoints/access/endpointAccessController.js @@ -1,4 +1,4 @@ -angular.module('endpointAccess', []) +angular.module('portainer.app') .controller('EndpointAccessController', ['$scope', '$transition$', 'EndpointService', 'Notifications', function ($scope, $transition$, EndpointService, Notifications) { diff --git a/app/components/endpoint/endpoint.html b/app/portainer/views/endpoints/edit/endpoint.html similarity index 94% rename from app/components/endpoint/endpoint.html rename to app/portainer/views/endpoints/edit/endpoint.html index 76f1188bd..0a4eba682 100644 --- a/app/components/endpoint/endpoint.html +++ b/app/portainer/views/endpoints/edit/endpoint.html @@ -1,7 +1,7 @@ - Endpoints > {{ endpoint.Name }} + Endpoints > {{ endpoint.Name }} @@ -57,7 +57,7 @@ Update endpoint Updating endpoint... - Cancel + Cancel diff --git a/app/components/endpoint/endpointController.js b/app/portainer/views/endpoints/edit/endpointController.js similarity index 95% rename from app/components/endpoint/endpointController.js rename to app/portainer/views/endpoints/edit/endpointController.js index 63316489b..cc9a89004 100644 --- a/app/components/endpoint/endpointController.js +++ b/app/portainer/views/endpoints/edit/endpointController.js @@ -1,9 +1,9 @@ -angular.module('endpoint', []) +angular.module('portainer.app') .controller('EndpointController', ['$scope', '$state', '$transition$', '$filter', 'EndpointService', 'Notifications', function ($scope, $state, $transition$, $filter, EndpointService, Notifications) { if (!$scope.applicationState.application.endpointManagement) { - $state.go('endpoints'); + $state.go('portainer.endpoints'); } $scope.state = { @@ -40,7 +40,7 @@ function ($scope, $state, $transition$, $filter, EndpointService, Notifications) EndpointService.updateEndpoint(endpoint.Id, endpointParams) .then(function success(data) { Notifications.success('Endpoint updated', $scope.endpoint.Name); - $state.go('endpoints'); + $state.go('portainer.endpoints'); }, function error(err) { Notifications.error('Failure', err, 'Unable to update endpoint'); $scope.state.actionInProgress = false; diff --git a/app/components/endpoints/endpoints.html b/app/portainer/views/endpoints/endpoints.html similarity index 97% rename from app/components/endpoints/endpoints.html rename to app/portainer/views/endpoints/endpoints.html index 743befc91..b27569673 100644 --- a/app/components/endpoints/endpoints.html +++ b/app/portainer/views/endpoints/endpoints.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/endpoints/endpointsController.js b/app/portainer/views/endpoints/endpointsController.js similarity index 98% rename from app/components/endpoints/endpointsController.js rename to app/portainer/views/endpoints/endpointsController.js index 01c205663..76910cd4b 100644 --- a/app/components/endpoints/endpointsController.js +++ b/app/portainer/views/endpoints/endpointsController.js @@ -1,4 +1,4 @@ -angular.module('endpoints', []) +angular.module('portainer.app') .controller('EndpointsController', ['$scope', '$state', '$filter', 'EndpointService', 'Notifications', function ($scope, $state, $filter, EndpointService, Notifications) { $scope.state = { diff --git a/app/components/initAdmin/initAdmin.html b/app/portainer/views/init/admin/initAdmin.html similarity index 100% rename from app/components/initAdmin/initAdmin.html rename to app/portainer/views/init/admin/initAdmin.html diff --git a/app/components/initAdmin/initAdminController.js b/app/portainer/views/init/admin/initAdminController.js similarity index 92% rename from app/components/initAdmin/initAdminController.js rename to app/portainer/views/init/admin/initAdminController.js index 0b0bcfee7..c7a915f18 100644 --- a/app/components/initAdmin/initAdminController.js +++ b/app/portainer/views/init/admin/initAdminController.js @@ -1,4 +1,4 @@ -angular.module('initAdmin', []) +angular.module('portainer.app') .controller('InitAdminController', ['$scope', '$state', '$sanitize', 'Notifications', 'Authentication', 'StateManager', 'UserService', 'EndpointService', 'EndpointProvider', function ($scope, $state, $sanitize, Notifications, Authentication, StateManager, UserService, EndpointService, EndpointProvider) { @@ -28,13 +28,13 @@ function ($scope, $state, $sanitize, Notifications, Authentication, StateManager }) .then(function success(data) { if (data.length === 0) { - $state.go('init.endpoint'); + $state.go('portainer.init.endpoint'); } else { var endpointID = data[0].Id; EndpointProvider.setEndpointID(endpointID); StateManager.updateEndpointState(false) .then(function success() { - $state.go('dashboard'); + $state.go('docker.dashboard'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to connect to Docker environment'); diff --git a/app/components/initEndpoint/initEndpoint.html b/app/portainer/views/init/endpoint/initEndpoint.html similarity index 100% rename from app/components/initEndpoint/initEndpoint.html rename to app/portainer/views/init/endpoint/initEndpoint.html diff --git a/app/components/initEndpoint/initEndpointController.js b/app/portainer/views/init/endpoint/initEndpointController.js similarity index 94% rename from app/components/initEndpoint/initEndpointController.js rename to app/portainer/views/init/endpoint/initEndpointController.js index cbca5c66b..e26236e69 100644 --- a/app/components/initEndpoint/initEndpointController.js +++ b/app/portainer/views/init/endpoint/initEndpointController.js @@ -1,9 +1,9 @@ -angular.module('initEndpoint', []) +angular.module('portainer.app') .controller('InitEndpointController', ['$scope', '$state', 'EndpointService', 'StateManager', 'EndpointProvider', 'Notifications', function ($scope, $state, EndpointService, StateManager, EndpointProvider, Notifications) { if (!_.isEmpty($scope.applicationState.endpoint)) { - $state.go('dashboard'); + $state.go('docker.dashboard'); } $scope.logo = StateManager.getState().application.logo; @@ -38,7 +38,7 @@ function ($scope, $state, EndpointService, StateManager, EndpointProvider, Notif return StateManager.updateEndpointState(false); }) .then(function success(data) { - $state.go('dashboard'); + $state.go('docker.dashboard'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to connect to the Docker environment'); @@ -69,7 +69,7 @@ function ($scope, $state, EndpointService, StateManager, EndpointProvider, Notif return StateManager.updateEndpointState(false); }) .then(function success(data) { - $state.go('dashboard'); + $state.go('docker.dashboard'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to connect to the Docker environment'); diff --git a/app/components/main/mainController.js b/app/portainer/views/main/mainController.js similarity index 96% rename from app/components/main/mainController.js rename to app/portainer/views/main/mainController.js index 3bfd98171..3af2a6d95 100644 --- a/app/components/main/mainController.js +++ b/app/portainer/views/main/mainController.js @@ -1,4 +1,4 @@ -angular.module('main', []) +angular.module('portainer.app') .controller('MainController', ['$scope', '$cookieStore', 'StateManager', function ($scope, $cookieStore, StateManager) { diff --git a/app/components/registryAccess/registryAccess.html b/app/portainer/views/registries/access/registryAccess.html similarity index 88% rename from app/components/registryAccess/registryAccess.html rename to app/portainer/views/registries/access/registryAccess.html index 7fc8ac972..18758a7ab 100644 --- a/app/components/registryAccess/registryAccess.html +++ b/app/portainer/views/registries/access/registryAccess.html @@ -1,7 +1,7 @@ - Registries > {{ registry.Name }} > Access management + Registries > {{ registry.Name }} > Access management diff --git a/app/components/registryAccess/registryAccessController.js b/app/portainer/views/registries/access/registryAccessController.js similarity index 94% rename from app/components/registryAccess/registryAccessController.js rename to app/portainer/views/registries/access/registryAccessController.js index 25bd9f483..81e3d45a6 100644 --- a/app/components/registryAccess/registryAccessController.js +++ b/app/portainer/views/registries/access/registryAccessController.js @@ -1,4 +1,4 @@ -angular.module('registryAccess', []) +angular.module('portainer.app') .controller('RegistryAccessController', ['$scope', '$transition$', 'RegistryService', 'Notifications', function ($scope, $transition$, RegistryService, Notifications) { diff --git a/app/components/createRegistry/createRegistryController.js b/app/portainer/views/registries/create/createRegistryController.js similarity index 95% rename from app/components/createRegistry/createRegistryController.js rename to app/portainer/views/registries/create/createRegistryController.js index 370c62e72..2dd0f021a 100644 --- a/app/components/createRegistry/createRegistryController.js +++ b/app/portainer/views/registries/create/createRegistryController.js @@ -1,4 +1,4 @@ -angular.module('createRegistry', []) +angular.module('portainer.app') .controller('CreateRegistryController', ['$scope', '$state', 'RegistryService', 'Notifications', function ($scope, $state, RegistryService, Notifications) { @@ -38,7 +38,7 @@ function ($scope, $state, RegistryService, Notifications) { RegistryService.createRegistry(registryName, registryURL, authentication, username, password) .then(function success(data) { Notifications.success('Registry successfully created'); - $state.go('registries'); + $state.go('portainer.registries'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to create registry'); diff --git a/app/components/createRegistry/createregistry.html b/app/portainer/views/registries/create/createregistry.html similarity index 98% rename from app/components/createRegistry/createregistry.html rename to app/portainer/views/registries/create/createregistry.html index 2593bd91d..632a09d12 100644 --- a/app/components/createRegistry/createregistry.html +++ b/app/portainer/views/registries/create/createregistry.html @@ -1,7 +1,7 @@ - Registries > Add registry + Registries > Add registry diff --git a/app/components/registry/registry.html b/app/portainer/views/registries/edit/registry.html similarity index 95% rename from app/components/registry/registry.html rename to app/portainer/views/registries/edit/registry.html index 1cb8002d8..24f519ac9 100644 --- a/app/components/registry/registry.html +++ b/app/portainer/views/registries/edit/registry.html @@ -1,7 +1,7 @@ - Registries > {{ registry.Name }} + Registries > {{ registry.Name }} @@ -68,7 +68,7 @@ Update registry Updating registry... - Cancel + Cancel diff --git a/app/components/registry/registryController.js b/app/portainer/views/registries/edit/registryController.js similarity index 93% rename from app/components/registry/registryController.js rename to app/portainer/views/registries/edit/registryController.js index 03b672320..dffb77b70 100644 --- a/app/components/registry/registryController.js +++ b/app/portainer/views/registries/edit/registryController.js @@ -1,4 +1,4 @@ -angular.module('registry', []) +angular.module('portainer.app') .controller('RegistryController', ['$scope', '$state', '$transition$', '$filter', 'RegistryService', 'Notifications', function ($scope, $state, $transition$, $filter, RegistryService, Notifications) { @@ -12,7 +12,7 @@ function ($scope, $state, $transition$, $filter, RegistryService, Notifications) RegistryService.updateRegistry(registry) .then(function success(data) { Notifications.success('Registry successfully updated'); - $state.go('registries'); + $state.go('portainer.registries'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to update registry'); diff --git a/app/components/registries/registries.html b/app/portainer/views/registries/registries.html similarity index 96% rename from app/components/registries/registries.html rename to app/portainer/views/registries/registries.html index 946f84d4a..7d5096897 100644 --- a/app/components/registries/registries.html +++ b/app/portainer/views/registries/registries.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/registries/registriesController.js b/app/portainer/views/registries/registriesController.js similarity index 98% rename from app/components/registries/registriesController.js rename to app/portainer/views/registries/registriesController.js index b5b65f5c1..e6e32c790 100644 --- a/app/components/registries/registriesController.js +++ b/app/portainer/views/registries/registriesController.js @@ -1,4 +1,4 @@ -angular.module('registries', []) +angular.module('portainer.app') .controller('RegistriesController', ['$q', '$scope', '$state', 'RegistryService', 'DockerHubService', 'ModalService', 'Notifications', 'PaginationService', function ($q, $scope, $state, RegistryService, DockerHubService, ModalService, Notifications, PaginationService) { diff --git a/app/components/settingsAuthentication/settingsAuthentication.html b/app/portainer/views/settings/authentication/settingsAuthentication.html similarity index 99% rename from app/components/settingsAuthentication/settingsAuthentication.html rename to app/portainer/views/settings/authentication/settingsAuthentication.html index b1a4917cf..2d655dea3 100644 --- a/app/components/settingsAuthentication/settingsAuthentication.html +++ b/app/portainer/views/settings/authentication/settingsAuthentication.html @@ -1,7 +1,7 @@ - Settings > Authentication + Settings > Authentication diff --git a/app/components/settingsAuthentication/settingsAuthenticationController.js b/app/portainer/views/settings/authentication/settingsAuthenticationController.js similarity index 94% rename from app/components/settingsAuthentication/settingsAuthenticationController.js rename to app/portainer/views/settings/authentication/settingsAuthenticationController.js index bf282f155..f47d01a8f 100644 --- a/app/components/settingsAuthentication/settingsAuthenticationController.js +++ b/app/portainer/views/settings/authentication/settingsAuthenticationController.js @@ -1,4 +1,4 @@ -angular.module('settingsAuthentication', []) +angular.module('portainer.app') .controller('SettingsAuthenticationController', ['$q', '$scope', 'Notifications', 'SettingsService', 'FileUploadService', function ($q, $scope, Notifications, SettingsService, FileUploadService) { @@ -22,8 +22,8 @@ function ($q, $scope, Notifications, SettingsService, FileUploadService) { $scope.LDAPSettings.SearchSettings.splice(index, 1); }; - $scope.LDAPConnectivityCheck = function() { - var settings = $scope.settings; + $scope.LDAPConnectivityCheck = function() { + var settings = $scope.settings; var TLSCAFile = $scope.formValues.TLSCACert !== settings.LDAPSettings.TLSConfig.TLSCACert ? $scope.formValues.TLSCACert : null; var uploadRequired = ($scope.LDAPSettings.TLSConfig.TLS || $scope.LDAPSettings.StartTLS) && !$scope.LDAPSettings.TLSConfig.TLSSkipVerify; @@ -78,8 +78,8 @@ function ($q, $scope, Notifications, SettingsService, FileUploadService) { // Add default port if :port is not defined in URL function addLDAPDefaultPort(settings, tlsEnabled) { - if (settings.LDAPSettings.URL.indexOf(':') === -1) { - settings.LDAPSettings.URL += tlsEnabled ? ':636' : ':389'; + if (settings.LDAPSettings.URL.indexOf(':') === -1) { + settings.LDAPSettings.URL += tlsEnabled ? ':636' : ':389'; } } diff --git a/app/components/settings/settings.html b/app/portainer/views/settings/settings.html similarity index 100% rename from app/components/settings/settings.html rename to app/portainer/views/settings/settings.html diff --git a/app/components/settings/settingsController.js b/app/portainer/views/settings/settingsController.js similarity index 89% rename from app/components/settings/settingsController.js rename to app/portainer/views/settings/settingsController.js index a9ee117fa..bc0623bc9 100644 --- a/app/components/settings/settingsController.js +++ b/app/portainer/views/settings/settingsController.js @@ -1,4 +1,4 @@ -angular.module('settings', []) +angular.module('portainer.app') .controller('SettingsController', ['$scope', '$state', 'Notifications', 'SettingsService', 'StateManager', 'DEFAULT_TEMPLATES_URL', function ($scope, $state, Notifications, SettingsService, StateManager, DEFAULT_TEMPLATES_URL) { @@ -21,7 +21,7 @@ function ($scope, $state, Notifications, SettingsService, StateManager, DEFAULT_ var settings = $scope.settings; settings.BlackListedLabels.splice(index, 1); - updateSettings(settings, false); + updateSettings(settings); }; $scope.addFilteredContainerLabel = function() { @@ -32,7 +32,7 @@ function ($scope, $state, Notifications, SettingsService, StateManager, DEFAULT_ }; settings.BlackListedLabels.push(label); - updateSettings(settings, true); + updateSettings(settings); }; $scope.saveApplicationSettings = function() { @@ -52,24 +52,17 @@ function ($scope, $state, Notifications, SettingsService, StateManager, DEFAULT_ settings.AllowPrivilegedModeForRegularUsers = !$scope.formValues.restrictPrivilegedMode; $scope.state.actionInProgress = true; - updateSettings(settings, false); + updateSettings(settings); }; - function resetFormValues() { - $scope.formValues.labelName = ''; - $scope.formValues.labelValue = ''; - } - - function updateSettings(settings, resetForm) { + function updateSettings(settings) { SettingsService.update(settings) .then(function success(data) { Notifications.success('Settings updated'); StateManager.updateLogo(settings.LogoURL); StateManager.updateDonationHeader(settings.DisplayDonationHeader); StateManager.updateExternalContributions(settings.DisplayExternalContributors); - if (resetForm) { - resetFormValues(); - } + $state.reload(); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to update settings'); diff --git a/app/portainer/views/sidebar/sidebar.html b/app/portainer/views/sidebar/sidebar.html new file mode 100644 index 000000000..f1e3dfa6a --- /dev/null +++ b/app/portainer/views/sidebar/sidebar.html @@ -0,0 +1,69 @@ + + + diff --git a/app/components/sidebar/sidebarController.js b/app/portainer/views/sidebar/sidebarController.js similarity index 87% rename from app/components/sidebar/sidebarController.js rename to app/portainer/views/sidebar/sidebarController.js index 5b7089450..fa60cf2e2 100644 --- a/app/components/sidebar/sidebarController.js +++ b/app/portainer/views/sidebar/sidebarController.js @@ -1,12 +1,7 @@ -angular.module('sidebar', []) +angular.module('portainer.app') .controller('SidebarController', ['$q', '$scope', '$state', 'Settings', 'EndpointService', 'StateManager', 'EndpointProvider', 'Notifications', 'Authentication', 'UserService', 'ExtensionManager', function ($q, $scope, $state, Settings, EndpointService, StateManager, EndpointProvider, Notifications, Authentication, UserService, ExtensionManager) { - $scope.uiVersion = StateManager.getState().application.version; - $scope.displayExternalContributors = StateManager.getState().application.displayExternalContributors; - $scope.logo = StateManager.getState().application.logo; - $scope.endpoints = []; - $scope.switchEndpoint = function(endpoint) { var activeEndpointID = EndpointProvider.endpointID(); var activeEndpointPublicURL = EndpointProvider.endpointPublicURL(); @@ -16,7 +11,7 @@ function ($q, $scope, $state, Settings, EndpointService, StateManager, EndpointP StateManager.updateEndpointState(true) .then(function success() { ExtensionManager.reset(); - $state.go('dashboard'); + $state.go('docker.dashboard'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to connect to the Docker endpoint'); @@ -48,6 +43,11 @@ function ($q, $scope, $state, Settings, EndpointService, StateManager, EndpointP } function initView() { + $scope.uiVersion = StateManager.getState().application.version; + $scope.displayExternalContributors = StateManager.getState().application.displayExternalContributors; + $scope.logo = StateManager.getState().application.logo; + $scope.endpoints = []; + EndpointService.endpoints() .then(function success(data) { var endpoints = data; diff --git a/app/components/team/team.html b/app/portainer/views/teams/edit/team.html similarity index 98% rename from app/components/team/team.html rename to app/portainer/views/teams/edit/team.html index f933f8786..a2942b38e 100644 --- a/app/components/team/team.html +++ b/app/portainer/views/teams/edit/team.html @@ -1,7 +1,7 @@ - Teams > {{ team.Name }} + Teams > {{ team.Name }} diff --git a/app/components/team/teamController.js b/app/portainer/views/teams/edit/teamController.js similarity index 98% rename from app/components/team/teamController.js rename to app/portainer/views/teams/edit/teamController.js index faf152e2e..15079b834 100644 --- a/app/components/team/teamController.js +++ b/app/portainer/views/teams/edit/teamController.js @@ -1,4 +1,4 @@ -angular.module('team', []) +angular.module('portainer.app') .controller('TeamController', ['$q', '$scope', '$state', '$transition$', 'TeamService', 'UserService', 'TeamMembershipService', 'ModalService', 'Notifications', 'PaginationService', 'Authentication', function ($q, $scope, $state, $transition$, TeamService, UserService, TeamMembershipService, ModalService, Notifications, PaginationService, Authentication) { @@ -135,7 +135,7 @@ function ($q, $scope, $state, $transition$, TeamService, UserService, TeamMember TeamService.deleteTeam($scope.team.Id) .then(function success(data) { Notifications.success('Team successfully deleted', $scope.team.Name); - $state.go('teams'); + $state.go('portainer.teams'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove team'); diff --git a/app/components/teams/teams.html b/app/portainer/views/teams/teams.html similarity index 96% rename from app/components/teams/teams.html rename to app/portainer/views/teams/teams.html index f672f9be2..6da96c691 100644 --- a/app/components/teams/teams.html +++ b/app/portainer/views/teams/teams.html @@ -1,6 +1,6 @@ - + diff --git a/app/components/teams/teamsController.js b/app/portainer/views/teams/teamsController.js similarity index 98% rename from app/components/teams/teamsController.js rename to app/portainer/views/teams/teamsController.js index 986a09e3d..b90e68447 100644 --- a/app/components/teams/teamsController.js +++ b/app/portainer/views/teams/teamsController.js @@ -1,4 +1,4 @@ -angular.module('teams', []) +angular.module('portainer.app') .controller('TeamsController', ['$q', '$scope', '$state', 'TeamService', 'UserService', 'ModalService', 'Notifications', 'Authentication', function ($q, $scope, $state, TeamService, UserService, ModalService, Notifications, Authentication) { $scope.state = { diff --git a/app/components/user/user.html b/app/portainer/views/users/edit/user.html similarity index 96% rename from app/components/user/user.html rename to app/portainer/views/users/edit/user.html index 95bb95561..e8a417461 100644 --- a/app/components/user/user.html +++ b/app/portainer/views/users/edit/user.html @@ -1,7 +1,7 @@ - Users > {{ user.Username }} + Users > {{ user.Username }} diff --git a/app/components/user/userController.js b/app/portainer/views/users/edit/userController.js similarity index 97% rename from app/components/user/userController.js rename to app/portainer/views/users/edit/userController.js index 9a2d7385a..01c41109e 100644 --- a/app/components/user/userController.js +++ b/app/portainer/views/users/edit/userController.js @@ -1,4 +1,4 @@ -angular.module('user', []) +angular.module('portainer.app') .controller('UserController', ['$q', '$scope', '$state', '$transition$', 'UserService', 'ModalService', 'Notifications', 'SettingsService', function ($q, $scope, $state, $transition$, UserService, ModalService, Notifications, SettingsService) { @@ -50,7 +50,7 @@ function ($q, $scope, $state, $transition$, UserService, ModalService, Notificat UserService.deleteUser($scope.user.Id) .then(function success(data) { Notifications.success('User successfully deleted', $scope.user.Username); - $state.go('users'); + $state.go('portainer.users'); }) .catch(function error(err) { Notifications.error('Failure', err, 'Unable to remove user'); diff --git a/app/components/users/users.html b/app/portainer/views/users/users.html similarity index 96% rename from app/components/users/users.html rename to app/portainer/views/users/users.html index ad69ff9b7..b1801f1db 100644 --- a/app/components/users/users.html +++ b/app/portainer/views/users/users.html @@ -1,6 +1,6 @@ - + @@ -71,7 +71,7 @@ Add to team(s) - You have not yet created any team. Head over the teams view to manage user teams. + You have not yet created any team. Head over the teams view to manage user teams.
- Note: non-administrator users with no team do not have access to any endpoint by default. Head over the endpoints view to manage their accesses. + Note: non-administrator users with no team do not have access to any endpoint by default. Head over the endpoints view to manage their accesses.
diff --git a/app/components/users/usersController.js b/app/portainer/views/users/usersController.js similarity index 99% rename from app/components/users/usersController.js rename to app/portainer/views/users/usersController.js index c96d34eff..a01ac14c8 100644 --- a/app/components/users/usersController.js +++ b/app/portainer/views/users/usersController.js @@ -1,4 +1,4 @@ -angular.module('users', []) +angular.module('portainer.app') .controller('UsersController', ['$q', '$scope', '$state', '$sanitize', 'UserService', 'TeamService', 'TeamMembershipService', 'ModalService', 'Notifications', 'Authentication', 'SettingsService', function ($q, $scope, $state, $sanitize, UserService, TeamService, TeamMembershipService, ModalService, Notifications, Authentication, SettingsService) { $scope.state = { diff --git a/app/rest/__module.js b/app/rest/__module.js deleted file mode 100644 index 2c8129eb6..000000000 --- a/app/rest/__module.js +++ /dev/null @@ -1 +0,0 @@ -angular.module('portainer.rest', ['ngResource']); diff --git a/app/routes.js b/app/routes.js deleted file mode 100644 index 210bb0db3..000000000 --- a/app/routes.js +++ /dev/null @@ -1,771 +0,0 @@ -function configureRoutes($stateProvider) { - $stateProvider - .state('root', { - abstract: true, - resolve: { - requiresLogin: ['StateManager', function (StateManager) { - var applicationState = StateManager.getState(); - return applicationState.application.authentication; - }] - } - }) - .state('auth', { - parent: 'root', - url: '/auth', - params: { - logout: false, - error: '' - }, - views: { - 'content@': { - templateUrl: 'app/components/auth/auth.html', - controller: 'AuthenticationController' - } - }, - data: { - requiresLogin: false - } - }) - .state('configs', { - url: '^/configs/', - views: { - 'content@': { - templateUrl: 'app/components/configs/configs.html', - controller: 'ConfigsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('config', { - url: '^/config/:id/', - views: { - 'content@': { - templateUrl: 'app/components/config/config.html', - controller: 'ConfigController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('containers', { - parent: 'root', - url: '/containers/', - params: { - selectedContainers: [] - }, - views: { - 'content@': { - templateUrl: 'app/components/containers/containers.html', - controller: 'ContainersController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('container', { - url: '^/containers/:id', - views: { - 'content@': { - templateUrl: 'app/components/container/container.html', - controller: 'ContainerController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('stats', { - url: '^/containers/:id/stats', - views: { - 'content@': { - templateUrl: 'app/components/containerStats/containerStats.html', - controller: 'ContainerStatsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('containerlogs', { - url: '^/containers/:id/logs', - views: { - 'content@': { - templateUrl: 'app/components/containerLogs/containerlogs.html', - controller: 'ContainerLogsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('servicelogs', { - url: '^/services/:id/logs', - views: { - 'content@': { - templateUrl: 'app/components/serviceLogs/servicelogs.html', - controller: 'ServiceLogsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('console', { - url: '^/containers/:id/console', - views: { - 'content@': { - templateUrl: 'app/components/containerConsole/containerConsole.html', - controller: 'ContainerConsoleController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('inspect', { - url: '^/containers/:id/inspect', - views: { - 'content@': { - templateUrl: 'app/components/containerInspect/containerInspect.html', - controller: 'ContainerInspectController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('dashboard', { - parent: 'root', - url: '/dashboard', - views: { - 'content@': { - templateUrl: 'app/components/dashboard/dashboard.html', - controller: 'DashboardController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('actions', { - abstract: true, - url: '/actions', - views: { - 'content@': { - template: '
' - }, - 'sidebar@': { - template: '
' - } - } - }) - .state('actions.create', { - abstract: true, - url: '/create', - views: { - 'content@': { - template: '
' - }, - 'sidebar@': { - template: '
' - } - } - }) - .state('actions.create.config', { - url: '/config', - views: { - 'content@': { - templateUrl: 'app/components/createConfig/createconfig.html', - controller: 'CreateConfigController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('actions.create.container', { - url: '/container/:from', - views: { - 'content@': { - templateUrl: 'app/components/createContainer/createcontainer.html', - controller: 'CreateContainerController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - }, - params: { - from: '' - } - }) - .state('actions.create.network', { - url: '/network', - views: { - 'content@': { - templateUrl: 'app/components/createNetwork/createnetwork.html', - controller: 'CreateNetworkController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('actions.create.registry', { - url: '/registry', - views: { - 'content@': { - templateUrl: 'app/components/createRegistry/createregistry.html', - controller: 'CreateRegistryController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('actions.create.secret', { - url: '/secret', - views: { - 'content@': { - templateUrl: 'app/components/createSecret/createsecret.html', - controller: 'CreateSecretController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('actions.create.service', { - url: '/service', - views: { - 'content@': { - templateUrl: 'app/components/createService/createservice.html', - controller: 'CreateServiceController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('actions.create.volume', { - url: '/volume', - views: { - 'content@': { - templateUrl: 'app/components/createVolume/createvolume.html', - controller: 'CreateVolumeController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('init', { - abstract: true, - url: '/init', - views: { - 'content@': { - template: '
' - } - } - }) - .state('init.endpoint', { - url: '/endpoint', - views: { - 'content@': { - templateUrl: 'app/components/initEndpoint/initEndpoint.html', - controller: 'InitEndpointController' - } - } - }) - .state('init.admin', { - url: '/admin', - views: { - 'content@': { - templateUrl: 'app/components/initAdmin/initAdmin.html', - controller: 'InitAdminController' - } - } - }) - .state('engine', { - url: '/engine/', - views: { - 'content@': { - templateUrl: 'app/components/engine/engine.html', - controller: 'EngineController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('endpoints', { - url: '/endpoints/', - views: { - 'content@': { - templateUrl: 'app/components/endpoints/endpoints.html', - controller: 'EndpointsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('endpoint', { - url: '^/endpoints/:id', - views: { - 'content@': { - templateUrl: 'app/components/endpoint/endpoint.html', - controller: 'EndpointController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('endpoint.access', { - url: '^/endpoints/:id/access', - views: { - 'content@': { - templateUrl: 'app/components/endpointAccess/endpointAccess.html', - controller: 'EndpointAccessController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('events', { - url: '/events/', - views: { - 'content@': { - templateUrl: 'app/components/events/events.html', - controller: 'EventsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('images', { - url: '/images/', - views: { - 'content@': { - templateUrl: 'app/components/images/images.html', - controller: 'ImagesController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('image', { - url: '^/images/:id/', - views: { - 'content@': { - templateUrl: 'app/components/image/image.html', - controller: 'ImageController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('networks', { - url: '/networks/', - views: { - 'content@': { - templateUrl: 'app/components/networks/networks.html', - controller: 'NetworksController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('network', { - url: '^/networks/:id/', - views: { - 'content@': { - templateUrl: 'app/components/network/network.html', - controller: 'NetworkController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('node', { - url: '^/nodes/:id/', - views: { - 'content@': { - templateUrl: 'app/components/node/node.html', - controller: 'NodeController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('registries', { - url: '/registries/', - views: { - 'content@': { - templateUrl: 'app/components/registries/registries.html', - controller: 'RegistriesController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('registry', { - url: '^/registries/:id', - views: { - 'content@': { - templateUrl: 'app/components/registry/registry.html', - controller: 'RegistryController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('registry.access', { - url: '^/registries/:id/access', - views: { - 'content@': { - templateUrl: 'app/components/registryAccess/registryAccess.html', - controller: 'RegistryAccessController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('secrets', { - url: '^/secrets/', - views: { - 'content@': { - templateUrl: 'app/components/secrets/secrets.html', - controller: 'SecretsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('secret', { - url: '^/secret/:id/', - views: { - 'content@': { - templateUrl: 'app/components/secret/secret.html', - controller: 'SecretController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('services', { - url: '/services/', - views: { - 'content@': { - templateUrl: 'app/components/services/services.html', - controller: 'ServicesController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('service', { - url: '^/service/:id/', - views: { - 'content@': { - templateUrl: 'app/components/service/service.html', - controller: 'ServiceController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('settings', { - url: '/settings/', - views: { - 'content@': { - templateUrl: 'app/components/settings/settings.html', - controller: 'SettingsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('settings_about', { - url: '^/settings/about', - views: { - 'content@': { - templateUrl: 'app/components/about/about.html' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('settings_authentication', { - url: '^/settings/authentication', - views: { - 'content@': { - templateUrl: 'app/components/settingsAuthentication/settingsAuthentication.html', - controller: 'SettingsAuthenticationController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('task', { - url: '^/task/:id', - views: { - 'content@': { - templateUrl: 'app/components/task/task.html', - controller: 'TaskController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('templates', { - url: '/templates/', - params: { - key: 'containers', - hide_descriptions: false - }, - views: { - 'content@': { - templateUrl: 'app/components/templates/templates.html', - controller: 'TemplatesController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('templates_linuxserver', { - url: '^/templates/linuxserver.io', - params: { - key: 'linuxserver.io', - hide_descriptions: true - }, - views: { - 'content@': { - templateUrl: 'app/components/templates/templates.html', - controller: 'TemplatesController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('volumes', { - url: '/volumes/', - views: { - 'content@': { - templateUrl: 'app/components/volumes/volumes.html', - controller: 'VolumesController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('volume', { - url: '^/volumes/:id', - views: { - 'content@': { - templateUrl: 'app/components/volume/volume.html', - controller: 'VolumeController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('users', { - url: '/users/', - views: { - 'content@': { - templateUrl: 'app/components/users/users.html', - controller: 'UsersController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('user', { - url: '^/users/:id', - views: { - 'content@': { - templateUrl: 'app/components/user/user.html', - controller: 'UserController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('userSettings', { - url: '/userSettings/', - views: { - 'content@': { - templateUrl: 'app/components/userSettings/userSettings.html', - controller: 'UserSettingsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('teams', { - url: '/teams/', - views: { - 'content@': { - templateUrl: 'app/components/teams/teams.html', - controller: 'TeamsController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('team', { - url: '^/teams/:id', - views: { - 'content@': { - templateUrl: 'app/components/team/team.html', - controller: 'TeamController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('swarm', { - url: '/swarm', - views: { - 'content@': { - templateUrl: 'app/components/swarm/swarm.html', - controller: 'SwarmController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('swarm.visualizer', { - url: '/visualizer', - views: { - 'content@': { - templateUrl: 'app/components/swarmVisualizer/swarmVisualizer.html', - controller: 'SwarmVisualizerController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('actions.create.stack', { - url: '/stack', - views: { - 'content@': { - templateUrl: 'app/components/createStack/createstack.html', - controller: 'CreateStackController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('stacks', { - url: '/stacks/', - views: { - 'content@': { - templateUrl: 'app/components/stacks/stacks.html', - controller: 'StacksController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }) - .state('stack', { - url: '^/stacks/:id/', - views: { - 'content@': { - templateUrl: 'app/components/stack/stack.html', - controller: 'StackController' - }, - 'sidebar@': { - templateUrl: 'app/components/sidebar/sidebar.html', - controller: 'SidebarController' - } - } - }); -} diff --git a/app/services/__module.js b/app/services/__module.js deleted file mode 100644 index dc0c26e72..000000000 --- a/app/services/__module.js +++ /dev/null @@ -1 +0,0 @@ -angular.module('portainer.services', []); diff --git a/gruntfile.js b/gruntfile.js index 6974ef870..c957b3eb7 100644 --- a/gruntfile.js +++ b/gruntfile.js @@ -116,7 +116,7 @@ gruntfile_cfg.src = { js: ['app/**/__module.js', 'app/**/*.js', '!app/**/*.spec.js'], jsTpl: ['<%= distdir %>/templates/**/*.js'], html: ['index.html'], - tpl: ['app/components/**/*.html', 'app/directives/**/*.html', 'app/extensions/**/*.html'], + tpl: ['app/**/*.html'], css: ['assets/css/app.css', 'app/**/*.css'] }; diff --git a/index.html b/index.html index 1949e5459..cb5540b9a 100644 --- a/index.html +++ b/index.html @@ -36,8 +36,8 @@
From 7365e69c59741f28c3b449c8d146cde0f378448f Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Tue, 6 Feb 2018 14:23:08 +0100 Subject: [PATCH 5/8] fix(config-creation): fix an issue setting config editor as read-only (#1634) --- app/portainer/services/codeMirror.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/portainer/services/codeMirror.js b/app/portainer/services/codeMirror.js index 0148500a1..38bb10259 100644 --- a/app/portainer/services/codeMirror.js +++ b/app/portainer/services/codeMirror.js @@ -15,10 +15,10 @@ angular.module('portainer.app') var service = {}; service.applyCodeMirrorOnElement = function(element, yamlLint, readOnly) { - var options = codeMirrorGenericOptions; + var options = angular.copy(codeMirrorGenericOptions); if (yamlLint) { - options = codeMirrorYAMLOptions; + _.assign(options, codeMirrorYAMLOptions); } if (readOnly) { From 1c67db0c70f96623c4281b6a693395f4357c38b6 Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Tue, 6 Feb 2018 16:58:05 +0100 Subject: [PATCH 6/8] feat(ux): enable auto-focus on search field (#1636) --- .../datatables/configs-datatable/configsDatatable.html | 2 +- .../containerProcessesDatatable.html | 2 +- .../datatables/containers-datatable/containersDatatable.html | 2 +- .../components/datatables/events-datatable/eventsDatatable.html | 2 +- .../components/datatables/images-datatable/imagesDatatable.html | 2 +- .../datatables/networks-datatable/networksDatatable.html | 2 +- .../datatables/node-tasks-datatable/nodeTasksDatatable.html | 2 +- .../components/datatables/nodes-datatable/nodesDatatable.html | 2 +- .../datatables/nodes-ss-datatable/nodesSSDatatable.html | 2 +- .../datatables/secrets-datatable/secretsDatatable.html | 2 +- .../datatables/services-datatable/servicesDatatable.html | 2 +- .../components/datatables/tasks-datatable/tasksDatatable.html | 2 +- .../datatables/volumes-datatable/volumesDatatable.html | 2 +- .../storidgeClusterEventsDatatable.html | 2 +- .../components/nodes-datatable/storidgeNodesDatatable.html | 2 +- .../profiles-datatable/storidgeProfilesDatatable.html | 2 +- .../datatables/endpoints-datatable/endpointsDatatable.html | 2 +- .../datatables/registries-datatable/registriesDatatable.html | 2 +- .../stack-services-datatable/stackServicesDatatable.html | 2 +- .../components/datatables/stacks-datatable/stacksDatatable.html | 2 +- .../components/datatables/teams-datatable/teamsDatatable.html | 2 +- .../components/datatables/users-datatable/usersDatatable.html | 2 +- 22 files changed, 22 insertions(+), 22 deletions(-) diff --git a/app/docker/components/datatables/configs-datatable/configsDatatable.html b/app/docker/components/datatables/configs-datatable/configsDatatable.html index a2eea665c..96a2dcc76 100644 --- a/app/docker/components/datatables/configs-datatable/configsDatatable.html +++ b/app/docker/components/datatables/configs-datatable/configsDatatable.html @@ -22,7 +22,7 @@
diff --git a/app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.html b/app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.html index f3a773706..004f9721f 100644 --- a/app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.html +++ b/app/docker/components/datatables/container-processes-datatable/containerProcessesDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/docker/components/datatables/containers-datatable/containersDatatable.html b/app/docker/components/datatables/containers-datatable/containersDatatable.html index 6db810549..3662455d8 100644 --- a/app/docker/components/datatables/containers-datatable/containersDatatable.html +++ b/app/docker/components/datatables/containers-datatable/containersDatatable.html @@ -88,7 +88,7 @@
diff --git a/app/docker/components/datatables/events-datatable/eventsDatatable.html b/app/docker/components/datatables/events-datatable/eventsDatatable.html index 4c8d45520..9822408ec 100644 --- a/app/docker/components/datatables/events-datatable/eventsDatatable.html +++ b/app/docker/components/datatables/events-datatable/eventsDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/docker/components/datatables/images-datatable/imagesDatatable.html b/app/docker/components/datatables/images-datatable/imagesDatatable.html index 6bbfa37a7..a22ffc57c 100644 --- a/app/docker/components/datatables/images-datatable/imagesDatatable.html +++ b/app/docker/components/datatables/images-datatable/imagesDatatable.html @@ -28,7 +28,7 @@
diff --git a/app/docker/components/datatables/networks-datatable/networksDatatable.html b/app/docker/components/datatables/networks-datatable/networksDatatable.html index 191e541a8..a9b9e7cf1 100644 --- a/app/docker/components/datatables/networks-datatable/networksDatatable.html +++ b/app/docker/components/datatables/networks-datatable/networksDatatable.html @@ -22,7 +22,7 @@
diff --git a/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html b/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html index 1b52b713d..e4ceeb705 100644 --- a/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html +++ b/app/docker/components/datatables/node-tasks-datatable/nodeTasksDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/docker/components/datatables/nodes-datatable/nodesDatatable.html b/app/docker/components/datatables/nodes-datatable/nodesDatatable.html index b93672bfc..d3c570592 100644 --- a/app/docker/components/datatables/nodes-datatable/nodesDatatable.html +++ b/app/docker/components/datatables/nodes-datatable/nodesDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.html b/app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.html index c3518aa5e..5ffef3d62 100644 --- a/app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.html +++ b/app/docker/components/datatables/nodes-ss-datatable/nodesSSDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/docker/components/datatables/secrets-datatable/secretsDatatable.html b/app/docker/components/datatables/secrets-datatable/secretsDatatable.html index 038ce92c0..77007cb04 100644 --- a/app/docker/components/datatables/secrets-datatable/secretsDatatable.html +++ b/app/docker/components/datatables/secrets-datatable/secretsDatatable.html @@ -22,7 +22,7 @@
diff --git a/app/docker/components/datatables/services-datatable/servicesDatatable.html b/app/docker/components/datatables/services-datatable/servicesDatatable.html index 89eeb1216..3b39ba144 100644 --- a/app/docker/components/datatables/services-datatable/servicesDatatable.html +++ b/app/docker/components/datatables/services-datatable/servicesDatatable.html @@ -28,7 +28,7 @@
diff --git a/app/docker/components/datatables/tasks-datatable/tasksDatatable.html b/app/docker/components/datatables/tasks-datatable/tasksDatatable.html index f20a935f8..654ee3a22 100644 --- a/app/docker/components/datatables/tasks-datatable/tasksDatatable.html +++ b/app/docker/components/datatables/tasks-datatable/tasksDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/docker/components/datatables/volumes-datatable/volumesDatatable.html b/app/docker/components/datatables/volumes-datatable/volumesDatatable.html index 4d981fa9c..afb4cc51f 100644 --- a/app/docker/components/datatables/volumes-datatable/volumesDatatable.html +++ b/app/docker/components/datatables/volumes-datatable/volumesDatatable.html @@ -22,7 +22,7 @@
diff --git a/app/extensions/storidge/components/cluster-events-datatable/storidgeClusterEventsDatatable.html b/app/extensions/storidge/components/cluster-events-datatable/storidgeClusterEventsDatatable.html index 0bf7bfa50..61800cb82 100644 --- a/app/extensions/storidge/components/cluster-events-datatable/storidgeClusterEventsDatatable.html +++ b/app/extensions/storidge/components/cluster-events-datatable/storidgeClusterEventsDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/extensions/storidge/components/nodes-datatable/storidgeNodesDatatable.html b/app/extensions/storidge/components/nodes-datatable/storidgeNodesDatatable.html index 63a697d85..7478e83d5 100644 --- a/app/extensions/storidge/components/nodes-datatable/storidgeNodesDatatable.html +++ b/app/extensions/storidge/components/nodes-datatable/storidgeNodesDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html b/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html index 607659bdc..e2ab91dd0 100644 --- a/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html +++ b/app/extensions/storidge/components/profiles-datatable/storidgeProfilesDatatable.html @@ -19,7 +19,7 @@
diff --git a/app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.html b/app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.html index ebc8a40e2..cee17d2eb 100644 --- a/app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.html +++ b/app/portainer/components/datatables/endpoints-datatable/endpointsDatatable.html @@ -19,7 +19,7 @@
diff --git a/app/portainer/components/datatables/registries-datatable/registriesDatatable.html b/app/portainer/components/datatables/registries-datatable/registriesDatatable.html index 99d3cbf6c..55dc943ba 100644 --- a/app/portainer/components/datatables/registries-datatable/registriesDatatable.html +++ b/app/portainer/components/datatables/registries-datatable/registriesDatatable.html @@ -22,7 +22,7 @@
diff --git a/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html b/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html index e58b0f4ec..5d795bec5 100644 --- a/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html +++ b/app/portainer/components/datatables/stack-services-datatable/stackServicesDatatable.html @@ -13,7 +13,7 @@
diff --git a/app/portainer/components/datatables/stacks-datatable/stacksDatatable.html b/app/portainer/components/datatables/stacks-datatable/stacksDatatable.html index 1f4771650..288726678 100644 --- a/app/portainer/components/datatables/stacks-datatable/stacksDatatable.html +++ b/app/portainer/components/datatables/stacks-datatable/stacksDatatable.html @@ -22,7 +22,7 @@
diff --git a/app/portainer/components/datatables/teams-datatable/teamsDatatable.html b/app/portainer/components/datatables/teams-datatable/teamsDatatable.html index 63b9c63d8..cd09fc852 100644 --- a/app/portainer/components/datatables/teams-datatable/teamsDatatable.html +++ b/app/portainer/components/datatables/teams-datatable/teamsDatatable.html @@ -19,7 +19,7 @@
diff --git a/app/portainer/components/datatables/users-datatable/usersDatatable.html b/app/portainer/components/datatables/users-datatable/usersDatatable.html index 3df05728a..0d6c0e1ea 100644 --- a/app/portainer/components/datatables/users-datatable/usersDatatable.html +++ b/app/portainer/components/datatables/users-datatable/usersDatatable.html @@ -19,7 +19,7 @@
From 1de0619fd5532e29dbbbb1ad68dcfa302376dd87 Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Wed, 7 Feb 2018 08:37:01 +0100 Subject: [PATCH 7/8] fix(api): ignore Docker login errors during stack deployment (#1635) --- api/exec/stack_manager.go | 14 +++----------- api/http/handler/stack.go | 8 ++------ api/portainer.go | 2 +- 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/api/exec/stack_manager.go b/api/exec/stack_manager.go index 8ba6b357e..9b709ea28 100644 --- a/api/exec/stack_manager.go +++ b/api/exec/stack_manager.go @@ -23,27 +23,19 @@ func NewStackManager(binaryPath string) *StackManager { } // Login executes the docker login command against a list of registries (including DockerHub). -func (manager *StackManager) Login(dockerhub *portainer.DockerHub, registries []portainer.Registry, endpoint *portainer.Endpoint) error { +func (manager *StackManager) Login(dockerhub *portainer.DockerHub, registries []portainer.Registry, endpoint *portainer.Endpoint) { command, args := prepareDockerCommandAndArgs(manager.binaryPath, endpoint) for _, registry := range registries { if registry.Authentication { registryArgs := append(args, "login", "--username", registry.Username, "--password", registry.Password, registry.URL) - err := runCommandAndCaptureStdErr(command, registryArgs, nil) - if err != nil { - return err - } + runCommandAndCaptureStdErr(command, registryArgs, nil) } } if dockerhub.Authentication { dockerhubArgs := append(args, "login", "--username", dockerhub.Username, "--password", dockerhub.Password) - err := runCommandAndCaptureStdErr(command, dockerhubArgs, nil) - if err != nil { - return err - } + runCommandAndCaptureStdErr(command, dockerhubArgs, nil) } - - return nil } // Logout executes the docker logout command. diff --git a/api/http/handler/stack.go b/api/http/handler/stack.go index 3ad0ce7ae..86b597e40 100644 --- a/api/http/handler/stack.go +++ b/api/http/handler/stack.go @@ -772,13 +772,9 @@ func (handler *StackHandler) handleDeleteStack(w http.ResponseWriter, r *http.Re func (handler *StackHandler) deployStack(config *stackDeploymentConfig) error { handler.stackCreationMutex.Lock() - err := handler.StackManager.Login(config.dockerhub, config.registries, config.endpoint) - if err != nil { - handler.stackCreationMutex.Unlock() - return err - } + handler.StackManager.Login(config.dockerhub, config.registries, config.endpoint) - err = handler.StackManager.Deploy(config.stack, config.prune, config.endpoint) + err := handler.StackManager.Deploy(config.stack, config.prune, config.endpoint) if err != nil { handler.stackCreationMutex.Unlock() return err diff --git a/api/portainer.go b/api/portainer.go index e898d2909..9304b199a 100644 --- a/api/portainer.go +++ b/api/portainer.go @@ -380,7 +380,7 @@ type ( // StackManager represents a service to manage stacks. StackManager interface { - Login(dockerhub *DockerHub, registries []Registry, endpoint *Endpoint) error + Login(dockerhub *DockerHub, registries []Registry, endpoint *Endpoint) Logout(endpoint *Endpoint) error Deploy(stack *Stack, prune bool, endpoint *Endpoint) error Remove(stack *Stack, endpoint *Endpoint) error From 27dcfd043bf0ddd31748ab63b03f5cffeb30d241 Mon Sep 17 00:00:00 2001 From: Anthony Lapenna Date: Thu, 8 Feb 2018 09:27:13 +0100 Subject: [PATCH 8/8] chore(version): bump version number --- api/portainer.go | 2 +- api/swagger.yaml | 4 ++-- distribution/portainer.spec | 2 +- package.json | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api/portainer.go b/api/portainer.go index 9304b199a..6cfa73bb9 100644 --- a/api/portainer.go +++ b/api/portainer.go @@ -389,7 +389,7 @@ type ( const ( // APIVersion is the version number of the Portainer API. - APIVersion = "1.16.1" + APIVersion = "1.16.2" // DBVersion is the version number of the Portainer database. DBVersion = 7 // DefaultTemplatesURL represents the default URL for the templates definitions. diff --git a/api/swagger.yaml b/api/swagger.yaml index 66806bdca..ab7cf1c7d 100644 --- a/api/swagger.yaml +++ b/api/swagger.yaml @@ -56,7 +56,7 @@ info: **NOTE**: You can find more information on how to query the Docker API in the [Docker official documentation](https://docs.docker.com/engine/api/v1.30/) as well as in [this Portainer example](https://gist.github.com/deviantony/77026d402366b4b43fa5918d41bc42f8). - version: "1.16.1" + version: "1.16.2" title: "Portainer API" contact: email: "info@portainer.io" @@ -2143,7 +2143,7 @@ definitions: description: "Is analytics enabled" Version: type: "string" - example: "1.16.1" + example: "1.16.2" description: "Portainer API version" PublicSettingsInspectResponse: type: "object" diff --git a/distribution/portainer.spec b/distribution/portainer.spec index f2b1b9751..7869f0c3e 100644 --- a/distribution/portainer.spec +++ b/distribution/portainer.spec @@ -1,5 +1,5 @@ Name: portainer -Version: 1.16.1 +Version: 1.16.2 Release: 0 License: Zlib Summary: A lightweight docker management UI diff --git a/package.json b/package.json index f3880333c..748030c98 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Portainer.io", "name": "portainer", "homepage": "http://portainer.io", - "version": "1.16.1", + "version": "1.16.2", "repository": { "type": "git", "url": "git@github.com:portainer/portainer.git"