From 8b10cb04fffafb78ac140bb859c0ab5294f776a3 Mon Sep 17 00:00:00 2001 From: Westly Wright Date: Tue, 7 Nov 2017 10:14:13 -0700 Subject: [PATCH] new modules and imports --- app/admin-tab/accounts/controller.js | 4 +- app/admin-tab/accounts/route.js | 4 +- app/admin-tab/audit-logs/controller.js | 9 +- app/admin-tab/audit-logs/route.js | 7 +- app/admin-tab/catalog/route.js | 10 ++- app/admin-tab/controller.js | 4 +- app/admin-tab/ha/controller.js | 7 +- app/admin-tab/ha/route.js | 11 +-- app/admin-tab/index/route.js | 4 +- app/admin-tab/process/controller.js | 4 +- app/admin-tab/process/route.js | 7 +- app/admin-tab/processes/index/controller.js | 9 +- app/admin-tab/processes/index/route.js | 7 +- app/admin-tab/processes/list/controller.js | 7 +- app/admin-tab/processes/list/route.js | 7 +- app/admin-tab/processes/pools/controller.js | 4 +- app/admin-tab/processes/pools/route.js | 7 +- app/admin-tab/route.js | 4 +- app/admin-tab/settings/advanced/controller.js | 7 +- app/admin-tab/settings/advanced/route.js | 10 ++- .../auth/activedirectory/controller.js | 12 +-- .../settings/auth/activedirectory/route.js | 4 +- .../settings/auth/azuread/controller.js | 14 +-- app/admin-tab/settings/auth/azuread/route.js | 4 +- app/admin-tab/settings/auth/controller.js | 7 +- .../settings/auth/github/controller.js | 26 +++--- app/admin-tab/settings/auth/github/route.js | 4 +- app/admin-tab/settings/auth/index/route.js | 7 +- .../settings/auth/localauth/controller.js | 17 ++-- .../settings/auth/localauth/route.js | 4 +- app/admin-tab/settings/auth/route.js | 4 +- .../settings/auth/shibboleth/controller.js | 22 +++-- .../settings/auth/shibboleth/route.js | 4 +- app/admin-tab/settings/controller.js | 10 ++- app/admin-tab/settings/index/route.js | 4 +- app/admin-tab/settings/machine/controller.js | 16 ++-- app/admin-tab/settings/machine/route.js | 10 ++- app/admin-tab/settings/registration/route.js | 10 ++- app/admin-tab/settings/route.js | 10 ++- app/application/controller.js | 16 ++-- app/application/route.js | 33 +++---- app/apps-tab/index/controller.js | 16 ++-- app/apps-tab/index/route.js | 16 ++-- .../clusters/cluster/controller.js | 4 +- .../clusters/cluster/edit/controller.js | 6 +- .../clusters/cluster/edit/route.js | 12 +-- .../clusters/cluster/host-new/controller.js | 9 +- .../clusters/cluster/host-new/route.js | 15 ++-- .../host-templates/index/controller.js | 10 ++- .../cluster/host-templates/index/route.js | 7 +- .../host-templates/launch/controller.js | 4 +- .../cluster/host-templates/launch/route.js | 6 +- .../clusters/cluster/hosts/controller.js | 13 +-- .../clusters/cluster/hosts/route.js | 7 +- .../clusters/cluster/import/controller.js | 23 ++--- .../clusters/cluster/import/route.js | 13 +-- .../clusters/cluster/index/route.js | 4 +- .../clusters/cluster/k8s/controller.js | 19 ++-- .../clusters/cluster/k8s/route.js | 15 ++-- app/authenticated/clusters/cluster/route.js | 4 +- .../clusters/index/controller.js | 17 ++-- app/authenticated/clusters/index/route.js | 7 +- .../clusters/new-project/controller.js | 4 +- .../clusters/new-project/route.js | 15 ++-- app/authenticated/clusters/new/controller.js | 6 +- app/authenticated/clusters/new/route.js | 15 ++-- .../clusters/project/controller.js | 4 +- app/authenticated/clusters/project/route.js | 13 +-- app/authenticated/clusters/route.js | 7 +- app/authenticated/controller.js | 19 ++-- app/authenticated/dummy-dev/controller.js | 4 +- app/authenticated/dummy-dev/route.js | 4 +- app/authenticated/index/route.js | 7 +- app/authenticated/prefs/controller.js | 7 +- app/authenticated/prefs/route.js | 16 ++-- .../project/apikeys/account/controller.js | 26 +++--- .../project/apikeys/account/route.js | 7 +- .../project/apikeys/environment/controller.js | 6 +- .../project/apikeys/environment/route.js | 7 +- .../project/apikeys/index/route.js | 4 +- app/authenticated/project/controller.js | 12 +-- app/authenticated/project/help/controller.js | 15 ++-- app/authenticated/project/help/route.js | 18 ++-- .../project/hooks/edit-receiver/controller.js | 4 +- .../project/hooks/edit-receiver/route.js | 10 ++- .../project/hooks/index/controller.js | 9 +- .../project/hooks/new-receiver/controller.js | 4 +- .../project/hooks/new-receiver/route.js | 15 ++-- app/authenticated/project/hooks/route.js | 10 ++- app/authenticated/project/index/route.js | 4 +- app/authenticated/project/route.js | 15 ++-- app/authenticated/route.js | 49 ++++++----- app/balancers/index/controller.js | 28 +++--- app/balancers/index/route.js | 10 ++- app/balancers/run/controller.js | 4 +- app/balancers/run/route.js | 10 ++- app/catalog-tab/controller.js | 4 +- app/catalog-tab/index/controller.js | 13 +-- app/catalog-tab/index/route.js | 4 +- app/catalog-tab/launch/controller.js | 4 +- app/catalog-tab/launch/route.js | 15 ++-- app/catalog-tab/route.js | 14 +-- app/certificates/controller.js | 4 +- app/certificates/detail/controller.js | 4 +- app/certificates/detail/route.js | 7 +- app/certificates/index/controller.js | 4 +- app/certificates/new/controller.js | 4 +- app/certificates/new/route.js | 4 +- app/certificates/route.js | 4 +- app/components/page-header/component.js | 2 +- app/console/controller.js | 4 +- app/console/route.js | 12 +-- app/container-log/controller.js | 9 +- app/container-log/route.js | 4 +- app/container/controller.js | 7 +- app/container/route.js | 7 +- app/containers/index/controller.js | 32 ++++--- app/containers/index/route.js | 10 ++- app/containers/run/controller.js | 11 +-- app/containers/run/route.js | 24 ++--- app/dns/index/controller.js | 24 ++--- app/dns/index/route.js | 10 ++- app/dns/new/controller.js | 4 +- app/dns/new/route.js | 7 +- app/fail-whale/route.js | 7 +- app/host/controller.js | 7 +- app/host/route.js | 16 ++-- app/hosts/controller.js | 4 +- app/hosts/index/controller.js | 22 +++-- app/hosts/index/route.js | 7 +- app/hosts/route.js | 10 ++- app/ie/controller.js | 12 +-- app/infrastructure-tab/controller.js | 4 +- app/infrastructure-tab/index/route.js | 4 +- app/initializers/extend-ember-input.js | 12 +-- app/initializers/extend-ember-link.js | 4 +- app/initializers/extend-ember-route.js | 7 +- app/instance-initializers/intl.js | 4 +- app/ll/service.js | 4 +- app/loading/controller.js | 4 +- app/loading/route.js | 4 +- app/logout/route.js | 7 +- app/models/account.js | 4 +- app/models/apikey.js | 4 +- app/models/catalogtemplate.js | 4 +- app/models/certificate.js | 4 +- app/models/cluster.js | 14 +-- app/models/container.js | 19 ++-- app/models/host.js | 17 ++-- app/models/identity.js | 11 +-- app/models/instance.js | 4 +- app/models/kubernetesservice.js | 3 +- app/models/kubernetesstack.js | 4 +- app/models/launchconfig.js | 4 +- app/models/loadbalancerservice.js | 6 +- app/models/machinedriver.js | 17 ++-- app/models/mountentry.js | 14 +-- app/models/portrule.js | 7 +- app/models/processinstance.js | 6 +- app/models/project.js | 23 ++--- app/models/publicendpoint.js | 8 +- app/models/receiver.js | 8 +- app/models/registry.js | 10 ++- app/models/scalinggroup.js | 4 +- app/models/secondarylaunchconfig.js | 4 +- app/models/secret.js | 4 +- app/models/service.js | 38 ++++---- app/models/servicelog.js | 12 +-- app/models/setting.js | 4 +- app/models/stack.js | 27 +++--- app/models/template.js | 18 ++-- app/models/templateversion.js | 4 +- app/models/typedocumentation.js | 2 +- app/models/volume.js | 7 +- app/new-stack/controller.js | 6 +- app/new-stack/route.js | 4 +- app/not-found/route.js | 7 +- app/registries/index/controller.js | 4 +- app/registries/index/route.js | 4 +- app/registries/new/controller.js | 9 +- app/registries/new/route.js | 7 +- app/router.js | 6 +- app/routes/index.js | 4 +- app/secrets/index/controller.js | 12 +-- app/secrets/new/controller.js | 4 +- app/secrets/new/route.js | 4 +- app/secrets/route.js | 4 +- app/service/controller.js | 19 ++-- app/service/route.js | 10 ++- app/signup/controller.js | 10 ++- app/signup/route.js | 4 +- app/stack/chart/controller.js | 4 +- app/stack/chart/route.js | 4 +- app/stack/code/controller.js | 4 +- app/stack/code/route.js | 7 +- app/stack/index/controller.js | 28 +++--- app/stack/index/route.js | 4 +- app/stack/route.js | 7 +- app/verify-reset-password/controller.js | 4 +- app/verify-reset-password/route.js | 7 +- app/verify/controller.js | 7 +- app/verify/route.js | 7 +- app/volume/controller.js | 20 +++-- app/volume/route.js | 7 +- app/volumes/index/controller.js | 24 ++--- app/volumes/index/route.js | 10 ++- app/volumes/new/controller.js | 4 +- app/volumes/new/route.js | 10 ++- .../addon/controllers/accounts/index.js | 10 ++- .../addon/controllers/accounts/new/new.js | 15 ++-- lib/global-admin/addon/initializers/app.js | 4 +- .../addon/routes/accounts/new/new.js | 7 +- lib/global-admin/addon/routes/application.js | 37 ++++---- .../addon/components/caas-login/component.js | 14 +-- .../components/login-github/component.js | 10 ++- .../components/login-shibboleth/component.js | 10 ++- .../components/login-user-pass/component.js | 10 ++- lib/login/addon/controllers/login.js | 41 +++++---- lib/login/addon/routes/login.js | 9 +- lib/shared/addon/access/service.js | 33 +++---- lib/shared/addon/all-containers/service.js | 10 +-- lib/shared/addon/all-services/service.js | 13 +-- .../addon/bulk-action-handler/service.js | 6 +- lib/shared/addon/catalog/service.js | 24 ++--- .../accordion-list-item/component.js | 7 +- .../components/accordion-list/component.js | 2 +- .../addon/components/add-host/component.js | 3 +- .../components/catalog-index/component.js | 5 +- .../cloud-host-add-or-edit/component.js | 5 +- .../components/cluster-welcome/component.js | 7 +- .../components/columns-section/component.js | 5 +- .../addon/components/common-mark/component.js | 4 +- .../components/confirm-delete/component.js | 18 ++-- .../components/container-dot/component.js | 19 ++-- .../components/container-dots/component.js | 26 +++--- .../components/container-logs/component.js | 22 +++-- .../components/container-row/component.js | 11 ++- .../components/container-shell/component.js | 5 +- .../components/container-subpod/component.js | 6 +- .../components/container-table/component.js | 9 +- .../container/form-command/component.js | 25 ++++-- .../form-container-links/component.js | 20 +++-- .../container/form-image/component.js | 12 ++- .../container/form-networking/component.js | 29 +++--- .../container/form-ports/component.js | 18 ++-- .../container/form-scale/component.js | 16 ++-- .../container/form-scheduling/component.js | 21 +++-- .../container/form-secrets/component.js | 18 ++-- .../container/form-security/component.js | 15 ++-- .../container/form-service-links/component.js | 17 ++-- .../container/form-upgrade/component.js | 6 +- .../container/form-volume-row/component.js | 9 +- .../container/form-volumes/component.js | 28 ++++-- .../container/new-edit/component.js | 30 ++++--- .../scheduling-rule-row/component.js | 11 ++- .../components/containers-header/component.js | 9 +- .../addon/components/copy-inline/component.js | 9 +- .../components/copy-to-clipboard/component.js | 12 ++- .../device-permissions/component.js | 15 ++-- .../addon/components/empty-table/component.js | 12 ++- .../addon/components/env-catalog/component.js | 22 +++-- .../components/environment-name/component.js | 6 +- .../components/field-required/component.js | 6 +- .../form-balancer-config/component.js | 20 +++-- .../form-balancer-listeners/component.js | 19 ++-- .../form-balancer-rules/component.js | 6 +- .../addon/components/form-count/component.js | 11 ++- .../components/form-engine-opts/component.js | 11 ++- .../components/form-env-var/component.js | 6 +- .../components/form-healthcheck/component.js | 24 +++-- .../components/form-key-value/component.js | 25 +++--- .../components/form-metadata/component.js | 20 +++-- .../form-name-description/component.js | 15 ++-- .../form-ssl-termination/component.js | 27 ++++-- .../addon/components/form-stack/component.js | 24 +++-- .../components/form-stickiness/component.js | 22 +++-- .../components/form-user-labels/component.js | 18 ++-- .../components/form-value-array/component.js | 16 ++-- .../addon/components/graph-area/component.js | 9 +- .../addon/components/host-pod/component.js | 24 ++--- .../addon/components/host-row/component.js | 16 ++-- .../components/identity-avatar/component.js | 11 ++- .../components/identity-block/component.js | 13 +-- .../components/info-multi-stats/component.js | 6 +- .../components/input-answers/component.js | 17 ++-- .../components/input-certificate/component.js | 6 +- .../components/input-command/component.js | 11 ++- .../addon/components/input-files/component.js | 9 +- .../components/input-identity/component.js | 11 ++- .../components/input-integer/component.js | 9 +- .../components/input-number/component.js | 9 +- .../components/input-or-display/component.js | 10 ++- .../addon/components/input-paste/component.js | 6 +- .../components/input-slider/component.js | 9 +- .../components/input-suggest/component.js | 6 +- .../components/input-text-file/component.js | 9 +- .../addon/components/json-editor/component.js | 6 +- .../components/labels-section/component.js | 12 ++- .../components/language-dropdown/component.js | 3 +- .../components/limit-parameters/component.js | 9 +- .../components/link-to-as-attrs/component.js | 4 +- .../machine/driver-aliyunecs/component.js | 9 +- .../machine/driver-amazonec2/component.js | 53 ++++++----- .../machine/driver-azure/component.js | 34 ++++--- .../machine/driver-custom/component.js | 21 +++-- .../machine/driver-digitalocean/component.js | 15 ++-- .../machine/driver-exoscale/component.js | 31 ++++--- .../machine/driver-other/component.js | 14 +-- .../machine/driver-packet/component.js | 21 +++-- .../machine/driver-rackspace/component.js | 9 +- .../machine/driver-vmwarevsphere/component.js | 9 +- .../addon/components/modal-about/component.js | 9 +- .../components/modal-add-payment/component.js | 17 ++-- .../modal-auditlog-info/component.js | 11 ++- .../modal-catalog-host/component.js | 14 +-- .../modal-confirm-deactivate/component.js | 17 ++-- .../modal-confirm-remove-payment/component.js | 11 ++- .../modal-container-logs/component.js | 9 +- .../modal-container-stop/component.js | 12 ++- .../modal-container-to-service/component.js | 15 ++-- .../modal-edit-account/component.js | 34 ++++--- .../components/modal-edit-apikey/component.js | 14 +-- .../components/modal-edit-backup/component.js | 11 ++- .../modal-edit-certificate/component.js | 12 ++- .../components/modal-edit-dns/component.js | 9 +- .../components/modal-edit-driver/component.js | 17 ++-- .../modal-edit-env-catalogs/component.js | 11 ++- .../components/modal-edit-host/component.js | 13 ++- .../modal-edit-registry/component.js | 12 ++- .../components/modal-edit-secret/component.js | 9 +- .../modal-edit-setting/component.js | 14 +-- .../components/modal-edit-stack/component.js | 11 ++- .../components/modal-feedback/component.js | 18 ++-- .../modal-host-evacuate/component.js | 12 ++- .../components/modal-kubeconfig/component.js | 13 +-- .../components/modal-kubectl/component.js | 14 +-- .../components/modal-new-volume/component.js | 11 ++- .../modal-process-error/component.js | 9 +- .../modal-rollback-service/component.js | 9 +- .../addon/components/modal-root/component.js | 17 ++-- .../addon/components/modal-shell/component.js | 9 +- .../components/modal-shortcuts/component.js | 19 ++-- .../components/modal-telemetry/component.js | 9 +- .../components/modal-wechat/component.js | 9 +- .../multi-container-stats/component.js | 16 ++-- .../addon/components/new-catalog/component.js | 32 ++++--- .../components/new-edit-balancer/component.js | 24 +++-- .../components/new-edit-cluster/component.js | 17 ++-- .../components/new-edit-dns/component.js | 18 ++-- .../components/new-edit-secret/component.js | 9 +- .../components/new-password/component.js | 9 +- .../addon/components/new-select/component.js | 20 +++-- .../addon/components/new-volume/component.js | 16 ++-- .../addon/components/page-footer/component.js | 23 ++--- .../page-header-environment/component.js | 5 +- .../addon/components/page-header/component.js | 19 ++-- .../addon/components/pretty-json/component.js | 6 +- .../process-executions/component.js | 9 +- .../components/process-link/component.js | 12 ++- .../progress-bar-multi/component.js | 19 ++-- .../components/progress-bar/component.js | 6 +- .../components/project-table/component.js | 9 +- .../project-template-list/component.js | 9 +- .../components/public-endpoints/component.js | 4 +- .../components/radio-button/component.js | 6 +- .../addon/components/save-cancel/component.js | 9 +- .../schema/input-boolean/component.js | 6 +- .../schema/input-certificate/component.js | 9 +- .../schema/input-container/component.js | 12 ++- .../components/schema/input-date/component.js | 6 +- .../components/schema/input-enum/component.js | 6 +- .../schema/input-float/component.js | 6 +- .../components/schema/input-host/component.js | 9 +- .../components/schema/input-int/component.js | 6 +- .../schema/input-masked/component.js | 6 +- .../schema/input-multiline/component.js | 6 +- .../schema/input-password/component.js | 6 +- .../input-relative-service/component.js | 19 ++-- .../schema/input-secret/component.js | 9 +- .../schema/input-service/component.js | 12 ++- .../schema/input-string/component.js | 6 +- .../addon/components/service-log/component.js | 18 ++-- .../addon/components/service-row/component.js | 3 +- .../settings/billing-info/component.js | 9 +- .../settings/catalog-url/component.js | 19 ++-- .../settings/danger-zone/component.js | 16 ++-- .../settings/host-registration/component.js | 11 ++- .../settings/settings-header/component.js | 6 +- .../settings/table-rows/component.js | 12 ++- .../settings/telemetry-opt/component.js | 9 +- .../settings/theme-toggle/component.js | 14 +-- .../settings/user-info/component.js | 11 ++- .../addon/components/site-access/component.js | 11 ++- .../components/sortable-table/component.js | 11 +-- .../components/sortable-thead/component.js | 5 +- .../addon/components/spark-line/component.js | 14 +-- .../addon/components/stack-app/component.js | 9 +- .../components/stack-header/component.js | 12 ++- .../addon/components/star-rating/component.js | 9 +- .../addon/components/svg-edge/component.js | 9 +- .../components/svg-gradients/component.js | 6 +- .../svg-service-container/component.js | 18 ++-- .../components/svg-service-graph/component.js | 11 ++- .../components/textarea-autogrow/component.js | 2 - .../tooltip-action-menu/component.js | 14 +-- .../components/tooltip-basic/component.js | 12 ++- .../components/tooltip-element/component.js | 24 +++-- .../components/tooltip-warning/component.js | 9 +- .../addon/components/top-errors/component.js | 9 +- .../addon/components/upgrade-btn/component.js | 9 +- .../components/upgrade-dropdown/component.js | 14 +-- .../components/view-edit-project/component.js | 21 +++-- .../addon/components/volume-row/component.js | 2 +- .../webhook/new-receiver/component.js | 9 +- .../webhook/scale-host-config/component.js | 9 +- .../webhook/scale-service-config/component.js | 6 +- .../service-upgrade-config/component.js | 6 +- lib/shared/addon/cookies/service.js | 4 +- lib/shared/addon/endpoint/service.js | 10 +-- lib/shared/addon/github/service.js | 15 ++-- lib/shared/addon/growl/service.js | 4 +- lib/shared/addon/helpers/array-includes.js | 2 +- lib/shared/addon/helpers/date-from-now.js | 4 +- lib/shared/addon/helpers/date-recent.js | 4 +- lib/shared/addon/helpers/date-str.js | 4 +- lib/shared/addon/helpers/default-str.js | 4 +- lib/shared/addon/helpers/format-ip.js | 7 +- lib/shared/addon/helpers/format-mib.js | 4 +- lib/shared/addon/helpers/format-si.js | 4 +- lib/shared/addon/helpers/get-card-class.js | 4 +- lib/shared/addon/helpers/is-last.js | 7 +- lib/shared/addon/helpers/join-array.js | 4 +- lib/shared/addon/helpers/linkify.js | 7 +- lib/shared/addon/helpers/lower-case.js | 4 +- lib/shared/addon/helpers/maybe-t.js | 7 +- lib/shared/addon/helpers/nl-to-br.js | 6 +- lib/shared/addon/helpers/parse-host-icon.js | 4 +- lib/shared/addon/helpers/run-time.js | 4 +- lib/shared/addon/helpers/str-replace.js | 4 +- lib/shared/addon/helpers/to-json.js | 4 +- lib/shared/addon/helpers/uc-first.js | 4 +- lib/shared/addon/helpers/upper-case.js | 4 +- lib/shared/addon/host/service.js | 36 +++++--- lib/shared/addon/k8s/service.js | 18 ++-- .../addon/mixins/cattle-polled-resource.js | 4 +- .../mixins/cattle-transitioning-resource.js | 45 +++++----- lib/shared/addon/mixins/console.js | 10 ++- lib/shared/addon/mixins/container-choices.js | 13 +-- .../addon/mixins/container-spark-stats.js | 14 +-- lib/shared/addon/mixins/endpoint-ports.js | 10 ++- lib/shared/addon/mixins/filter-state.js | 7 +- lib/shared/addon/mixins/grouped-instances.js | 4 +- lib/shared/addon/mixins/host-driver.js | 38 ++++---- lib/shared/addon/mixins/hover-dropdowns.js | 50 ++++++----- lib/shared/addon/mixins/intl-placeholder.js | 7 +- lib/shared/addon/mixins/manage-labels.js | 26 +++--- lib/shared/addon/mixins/modal-base.js | 10 ++- lib/shared/addon/mixins/new-or-edit.js | 12 +-- lib/shared/addon/mixins/polled-model.js | 14 +-- lib/shared/addon/mixins/promise-to-cb.js | 4 +- lib/shared/addon/mixins/safe-style.js | 4 +- lib/shared/addon/mixins/sortable-base.js | 13 +-- lib/shared/addon/mixins/stack-memory.js | 7 +- lib/shared/addon/mixins/state-counts.js | 9 +- .../addon/mixins/sticky-table-header.js | 40 +++++---- lib/shared/addon/mixins/store-tweaks.js | 7 +- lib/shared/addon/mixins/stripped-name.js | 7 +- lib/shared/addon/mixins/subscribe.js | 24 ++--- lib/shared/addon/mixins/throttled-resize.js | 20 +++-- lib/shared/addon/mixins/tooltip.js | 27 +++--- lib/shared/addon/mixins/upgrade-component.js | 15 ++-- lib/shared/addon/modal/service.js | 10 ++- lib/shared/addon/prefs/service.js | 18 ++-- lib/shared/addon/projects/service.js | 30 ++++--- lib/shared/addon/resource-actions/service.js | 12 +-- lib/shared/addon/session/service.js | 4 +- lib/shared/addon/settings/service.js | 38 ++++---- lib/shared/addon/shibboleth-auth/service.js | 16 ++-- lib/shared/addon/store-reset/service.js | 12 +-- lib/shared/addon/tab-session/service.js | 4 +- lib/shared/addon/tooltip/service.js | 9 +- lib/shared/addon/user-language/service.js | 26 +++--- lib/shared/addon/user-theme/service.js | 18 ++-- lib/shared/addon/utils/add-view-action.js | 7 +- lib/shared/addon/utils/additional-routes.js | 1 - lib/shared/addon/utils/debounce.js | 4 +- lib/shared/addon/utils/graph-area.js | 8 +- lib/shared/addon/utils/multi-stats.js | 3 +- lib/shared/addon/utils/navigation-tree.js | 4 +- lib/shared/addon/utils/parse-version.js | 1 - .../accordion-list-item/component.js | 2 +- .../components/container-logs/component.js | 3 +- .../components/container-shell/component.js | 3 +- .../components/container-table/component.js | 2 +- .../app/components/input-command/component.js | 3 +- .../app/components/new-catalog/component.js | 3 +- lib/shared/app/utils/parse-uri.js | 39 +------- lib/shared/app/utils/parse-version.js | 88 +------------------ lib/shared/app/utils/parse-volume.js | 66 +------------- lib/shared/app/utils/xterm-fit-addon.js | 2 +- lib/shared/package.json | 8 +- .../initializers/extend-ember-input-test.js | 6 +- tests/unit/initializers/touch-test.js | 6 +- tests/unit/utils/parse-port-test.js | 4 +- tests/unit/utils/parse-target-test.js | 4 +- 505 files changed, 3327 insertions(+), 2448 deletions(-) diff --git a/app/admin-tab/accounts/controller.js b/app/admin-tab/accounts/controller.js index 38e5364f8..539345441 100644 --- a/app/admin-tab/accounts/controller.js +++ b/app/admin-tab/accounts/controller.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend(); +export default Controller.extend(); diff --git a/app/admin-tab/accounts/route.js b/app/admin-tab/accounts/route.js index dd457cb3b..b9e2cdfe5 100644 --- a/app/admin-tab/accounts/route.js +++ b/app/admin-tab/accounts/route.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend(); +export default Route.extend(); diff --git a/app/admin-tab/audit-logs/controller.js b/app/admin-tab/audit-logs/controller.js index 38a5eebb6..2d31dcc38 100644 --- a/app/admin-tab/audit-logs/controller.js +++ b/app/admin-tab/audit-logs/controller.js @@ -1,11 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - application : Ember.inject.controller(), +export default Controller.extend({ + application : controller(), queryParams : ['sortBy', 'descending', 'eventType', 'resourceType', 'resourceId', 'clientIp', 'authType'], resourceTypeAndId : null, - modalService: Ember.inject.service('modal'), + modalService: service('modal'), headers: [ { diff --git a/app/admin-tab/audit-logs/route.js b/app/admin-tab/audit-logs/route.js index 86b463121..6ce6fedc8 100644 --- a/app/admin-tab/audit-logs/route.js +++ b/app/admin-tab/audit-logs/route.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; import PolledModel from 'ui/mixins/polled-model'; import { urlOptions } from 'ember-api-store/utils/url-options'; -export default Ember.Route.extend(PolledModel, { +export default Route.extend(PolledModel, { pollInterval: 10000, queryParams: { @@ -50,7 +51,7 @@ export default Ember.Route.extend(PolledModel, { return us.rawRequest({url}).then((res) => { let records = us._typeify(res.body, {updateStore: false}); - return Ember.Object.create({ + return EmberObject.create({ auditLog: records, resourceTypes: resourceTypes }); diff --git a/app/admin-tab/catalog/route.js b/app/admin-tab/catalog/route.js index 6e5614cb4..a8f716eec 100644 --- a/app/admin-tab/catalog/route.js +++ b/app/admin-tab/catalog/route.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - settings: Ember.inject.service(), +export default Route.extend({ + settings: service(), beforeModel() { return this.get('settings').load([ @@ -14,7 +16,7 @@ export default Ember.Route.extend({ let settings = this.get('settings'); return this.get('userStore').find('setting').then(() => { - return Ember.Object.create({ + return EmberObject.create({ catalog: settings.get(C.SETTING.CATALOG_URL), }); }); diff --git a/app/admin-tab/controller.js b/app/admin-tab/controller.js index 38e5364f8..539345441 100644 --- a/app/admin-tab/controller.js +++ b/app/admin-tab/controller.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend(); +export default Controller.extend(); diff --git a/app/admin-tab/ha/controller.js b/app/admin-tab/ha/controller.js index e50601259..cfe0b95fe 100644 --- a/app/admin-tab/ha/controller.js +++ b/app/admin-tab/ha/controller.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - settings: Ember.inject.service(), +export default Controller.extend({ + settings: service(), sortBy: 'address', headers: [ diff --git a/app/admin-tab/ha/route.js b/app/admin-tab/ha/route.js index 03ffbbdaa..18006c6be 100644 --- a/app/admin-tab/ha/route.js +++ b/app/admin-tab/ha/route.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { cancel, later } from '@ember/runloop'; +import Route from '@ember/routing/route'; const INTERVAL = 2000; -export default Ember.Route.extend({ +export default Route.extend({ model() { return this.get('userStore').find('hamembership'); }, @@ -12,14 +13,14 @@ export default Ember.Route.extend({ }, deactivate() { - Ember.run.cancel(this.get('timer')); + cancel(this.get('timer')); this.set('timer', null); // This prevents scheduleTimer from rescheduling if deactivate happened at just the wrong time. }, timer: null, scheduleTimer: function() { - Ember.run.cancel(this.get('timer')); - this.set('timer', Ember.run.later(() => { + cancel(this.get('timer')); + this.set('timer', later(() => { this.get('userStore').find('hamembership', null, {forceReload: true}).then((response) => { this.controller.set('model', response); if ( this.get('timer') ) { diff --git a/app/admin-tab/index/route.js b/app/admin-tab/index/route.js index 9e3a3273c..bba02f142 100644 --- a/app/admin-tab/index/route.js +++ b/app/admin-tab/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ redirect: function() { this.transitionTo('admin-tab.accounts'); } diff --git a/app/admin-tab/process/controller.js b/app/admin-tab/process/controller.js index 55ff9aa58..d630f3134 100644 --- a/app/admin-tab/process/controller.js +++ b/app/admin-tab/process/controller.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ }); diff --git a/app/admin-tab/process/route.js b/app/admin-tab/process/route.js index 529f8ec8a..26dd75db4 100644 --- a/app/admin-tab/process/route.js +++ b/app/admin-tab/process/route.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ params: null, model: function(params /*, transition*/ ) { this.set('params', params); @@ -8,7 +9,7 @@ export default Ember.Route.extend({ return processInstance.followLink('processExecutions').then((processExecutions) => { var sorted = processExecutions.get('content').reverse(); processExecutions.set('content', sorted); - return Ember.Object.create({ + return EmberObject.create({ processInstance: processInstance, processExecutions: processExecutions }); diff --git a/app/admin-tab/processes/index/controller.js b/app/admin-tab/processes/index/controller.js index 6f1b25f9c..440b28d5e 100644 --- a/app/admin-tab/processes/index/controller.js +++ b/app/admin-tab/processes/index/controller.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import EmberObject, { computed } from '@ember/object'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ sortBy: 'name', headers: [ { @@ -26,7 +27,7 @@ export default Ember.Controller.extend({ }, ], - total: Ember.computed('model.summary.[]', function() { + total: computed('model.summary.[]', function() { let running = 0; let ready = 0; let delay = 0; @@ -37,7 +38,7 @@ export default Ember.Controller.extend({ delay += summary.get('delay')||0; }); - return Ember.Object.create({ + return EmberObject.create({ processName: 'Total', running: running, ready: ready, diff --git a/app/admin-tab/processes/index/route.js b/app/admin-tab/processes/index/route.js index 5a7c1afd3..b7c5e49b6 100644 --- a/app/admin-tab/processes/index/route.js +++ b/app/admin-tab/processes/index/route.js @@ -1,10 +1,11 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; import PolledModel from 'ui/mixins/polled-model'; -export default Ember.Route.extend(PolledModel,{ +export default Route.extend(PolledModel,{ model() { let us = this.get('userStore'); - return Ember.RSVP.hash({ + return hash({ summary: us.find('processsummary', null, {forceReload: true}), }); }, diff --git a/app/admin-tab/processes/list/controller.js b/app/admin-tab/processes/list/controller.js index 030255714..7bfcd7da6 100644 --- a/app/admin-tab/processes/list/controller.js +++ b/app/admin-tab/processes/list/controller.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - prefs: Ember.inject.service(), +export default Controller.extend({ + prefs: service(), queryParams: ['which','sortBy','descending'], which: 'running', diff --git a/app/admin-tab/processes/list/route.js b/app/admin-tab/processes/list/route.js index 44ade2c50..bba73e51b 100644 --- a/app/admin-tab/processes/list/route.js +++ b/app/admin-tab/processes/list/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; import PolledModel from 'ui/mixins/polled-model'; -export default Ember.Route.extend(PolledModel, { +export default Route.extend(PolledModel, { queryParams: { which: { refreshModel: true @@ -35,7 +36,7 @@ export default Ember.Route.extend(PolledModel, { filter: filters, forceReload: true }).then((response) => { - return Ember.Object.create({ + return EmberObject.create({ processInstances: response, }); }); diff --git a/app/admin-tab/processes/pools/controller.js b/app/admin-tab/processes/pools/controller.js index 1fe945113..6d14bb706 100644 --- a/app/admin-tab/processes/pools/controller.js +++ b/app/admin-tab/processes/pools/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ sortBy: 'name', headers: [ { diff --git a/app/admin-tab/processes/pools/route.js b/app/admin-tab/processes/pools/route.js index fb750ce06..714e4837f 100644 --- a/app/admin-tab/processes/pools/route.js +++ b/app/admin-tab/processes/pools/route.js @@ -1,10 +1,11 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; import PolledModel from 'ui/mixins/polled-model'; -export default Ember.Route.extend(PolledModel, { +export default Route.extend(PolledModel, { model() { let us = this.get('userStore'); - return Ember.RSVP.hash({ + return hash({ pools: us.find('processpool', null, {forceReload: true}), }); }, diff --git a/app/admin-tab/route.js b/app/admin-tab/route.js index 0d27404fd..09a7f467c 100644 --- a/app/admin-tab/route.js +++ b/app/admin-tab/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ activate() { this._super(); this.controllerFor('authenticated').setPageScope('admin'); diff --git a/app/admin-tab/settings/advanced/controller.js b/app/admin-tab/settings/advanced/controller.js index 25c0d0100..db26be523 100644 --- a/app/admin-tab/settings/advanced/controller.js +++ b/app/admin-tab/settings/advanced/controller.js @@ -1,5 +1,6 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - settings: Ember.inject.service(), +export default Controller.extend({ + settings: service(), }); diff --git a/app/admin-tab/settings/advanced/route.js b/app/admin-tab/settings/advanced/route.js index bfcaa03a0..81a85d4b4 100644 --- a/app/admin-tab/settings/advanced/route.js +++ b/app/admin-tab/settings/advanced/route.js @@ -1,9 +1,11 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - settings: Ember.inject.service(), +export default Route.extend({ + settings: service(), beforeModel() { return this.get('settings').load([ @@ -15,7 +17,7 @@ export default Ember.Route.extend({ let settings = this.get('settings'); return this.get('userStore').find('setting').then(() => { - return Ember.Object.create({ + return EmberObject.create({ telemetry: settings.get(C.SETTING.TELEMETRY), }); }); diff --git a/app/admin-tab/settings/auth/activedirectory/controller.js b/app/admin-tab/settings/auth/activedirectory/controller.js index d1a818f97..3cc883875 100644 --- a/app/admin-tab/settings/auth/activedirectory/controller.js +++ b/app/admin-tab/settings/auth/activedirectory/controller.js @@ -1,13 +1,15 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import Errors from 'ui/utils/errors'; import C from 'ui/utils/constants'; var PLAIN_PORT = 389; var TLS_PORT = 636; -export default Ember.Controller.extend({ - access: Ember.inject.service(), - settings: Ember.inject.service(), +export default Controller.extend({ + access: service(), + settings: service(), confirmDisable: false, errors: null, @@ -116,7 +118,7 @@ export default Ember.Controller.extend({ promptDisable: function() { this.set('confirmDisable', true); - Ember.run.later(this, function() { + later(this, function() { this.set('confirmDisable', false); }, 10000); }, diff --git a/app/admin-tab/settings/auth/activedirectory/route.js b/app/admin-tab/settings/auth/activedirectory/route.js index 93ef88505..1387ad294 100644 --- a/app/admin-tab/settings/auth/activedirectory/route.js +++ b/app/admin-tab/settings/auth/activedirectory/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ resourceType: 'ldapconfig', model: function() { diff --git a/app/admin-tab/settings/auth/azuread/controller.js b/app/admin-tab/settings/auth/azuread/controller.js index 1c19c7367..475589482 100644 --- a/app/admin-tab/settings/auth/azuread/controller.js +++ b/app/admin-tab/settings/auth/azuread/controller.js @@ -1,9 +1,11 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - access : Ember.inject.service(), - settings : Ember.inject.service(), - intl : Ember.inject.service(), +export default Controller.extend({ + access : service(), + settings : service(), + intl : service(), confirmDisable : false, errors : null, @@ -76,7 +78,7 @@ export default Ember.Controller.extend({ promptDisable: function() { this.set('confirmDisable', true); - Ember.run.later(this, function() { + later(this, function() { this.set('confirmDisable', false); }, 10000); }, diff --git a/app/admin-tab/settings/auth/azuread/route.js b/app/admin-tab/settings/auth/azuread/route.js index afa252195..7842ef639 100644 --- a/app/admin-tab/settings/auth/azuread/route.js +++ b/app/admin-tab/settings/auth/azuread/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('userStore').find('azureadconfig', null, {forceReload: true}).then((collection) => { let obj = collection.get('firstObject'); diff --git a/app/admin-tab/settings/auth/controller.js b/app/admin-tab/settings/auth/controller.js index 91e97963c..26d118c6d 100644 --- a/app/admin-tab/settings/auth/controller.js +++ b/app/admin-tab/settings/auth/controller.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - access: Ember.inject.service(), +export default Controller.extend({ + access: service(), lastRoute: 'global-admin.settings.auth.github', drivers: function() { diff --git a/app/admin-tab/settings/auth/github/controller.js b/app/admin-tab/settings/auth/github/controller.js index 33df5c549..114ec6d16 100644 --- a/app/admin-tab/settings/auth/github/controller.js +++ b/app/admin-tab/settings/auth/github/controller.js @@ -1,13 +1,17 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { once, later } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import C from 'ui/utils/constants'; import { denormalizeName } from 'ui/services/settings'; -export default Ember.Controller.extend({ - github : Ember.inject.service(), - endpoint : Ember.inject.service(), - access : Ember.inject.service(), - settings : Ember.inject.service(), - githubConfig : Ember.computed.alias('model.githubConfig'), +export default Controller.extend({ + github : service(), + endpoint : service(), + access : service(), + settings : service(), + githubConfig : alias('model.githubConfig'), confirmDisable : false, errors : null, @@ -18,7 +22,7 @@ export default Ember.Controller.extend({ haveToken : false, organizations : null, - scheme : Ember.computed.alias('githubConfig.scheme'), + scheme : alias('githubConfig.scheme'), isEnterprise: false, secure : true, @@ -80,7 +84,7 @@ export default Ember.Controller.extend({ }, enterpriseDidChange: function() { - Ember.run.once(this,'updateEnterprise'); + once(this,'updateEnterprise'); }.observes('isEnterprise','githubConfig.hostname','secure'), protocolChoices: [ @@ -93,7 +97,7 @@ export default Ember.Controller.extend({ this.send('clearError'); this.set('saving', true); - let githubConfig = Ember.Object.create(this.get('githubConfig')); + let githubConfig = EmberObject.create(this.get('githubConfig')); githubConfig.setProperties({ 'clientId' : (githubConfig.get('clientId')||'').trim(), 'clientSecret' : (githubConfig.get('clientSecret')||'').trim(), @@ -219,7 +223,7 @@ export default Ember.Controller.extend({ promptDisable: function() { this.set('confirmDisable', true); - Ember.run.later(this, function() { + later(this, function() { this.set('confirmDisable', false); }, 10000); }, diff --git a/app/admin-tab/settings/auth/github/route.js b/app/admin-tab/settings/auth/github/route.js index b0ddbe40c..fdd246a62 100644 --- a/app/admin-tab/settings/auth/github/route.js +++ b/app/admin-tab/settings/auth/github/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('authStore').find('config', null, {forceReload: true}).then(function(collection) { return collection; diff --git a/app/admin-tab/settings/auth/index/route.js b/app/admin-tab/settings/auth/index/route.js index 8c8f7ba71..ad0d968f8 100644 --- a/app/admin-tab/settings/auth/index/route.js +++ b/app/admin-tab/settings/auth/index/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - access: Ember.inject.service(), +export default Route.extend({ + access: service(), model: function() { var route = (this.get('access.provider')||'').toLowerCase().replace(/config$/i,''); diff --git a/app/admin-tab/settings/auth/localauth/controller.js b/app/admin-tab/settings/auth/localauth/controller.js index 220d7c937..8f0fc69a2 100644 --- a/app/admin-tab/settings/auth/localauth/controller.js +++ b/app/admin-tab/settings/auth/localauth/controller.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - access : Ember.inject.service(), - settings : Ember.inject.service(), - intl : Ember.inject.service(), +export default Controller.extend({ + access : service(), + settings : service(), + intl : service(), confirmDisable : false, errors : null, @@ -21,7 +24,7 @@ export default Ember.Controller.extend({ return !ok; }.property('adminPublicValue','adminSecretValue','adminSecretValue2'), - validateDescription: Ember.computed(function() { + validateDescription: computed(function() { return this.get('settings').get(C.SETTING.AUTH_LOCAL_VALIDATE_DESC) || null; }), @@ -102,7 +105,7 @@ export default Ember.Controller.extend({ promptDisable: function() { this.set('confirmDisable', true); - Ember.run.later(this, function() { + later(this, function() { this.set('confirmDisable', false); }, 10000); }, diff --git a/app/admin-tab/settings/auth/localauth/route.js b/app/admin-tab/settings/auth/localauth/route.js index 7c1ee5407..a38f85f6b 100644 --- a/app/admin-tab/settings/auth/localauth/route.js +++ b/app/admin-tab/settings/auth/localauth/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('userStore').find('localauthconfig', null, {forceReload: true}).then((collection) => { return collection.get('firstObject'); diff --git a/app/admin-tab/settings/auth/route.js b/app/admin-tab/settings/auth/route.js index eb5851b42..f95190de8 100644 --- a/app/admin-tab/settings/auth/route.js +++ b/app/admin-tab/settings/auth/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ beforeModel: function() { return this.get('authStore').rawRequest({url: '/v1-auth/schemas', dataType: 'json'}).then((resp) => { return this.get('authStore')._bulkAdd('schema', resp.body.data); diff --git a/app/admin-tab/settings/auth/shibboleth/controller.js b/app/admin-tab/settings/auth/shibboleth/controller.js index 3a4238803..5f2dbe1b4 100644 --- a/app/admin-tab/settings/auth/shibboleth/controller.js +++ b/app/admin-tab/settings/auth/shibboleth/controller.js @@ -1,14 +1,18 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { later } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import Util from 'ui/utils/util'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - access : Ember.inject.service(), - settings : Ember.inject.service(), - session : Ember.inject.service(), - shibbolethAuth : Ember.inject.service(), +export default Controller.extend({ + access : service(), + settings : service(), + session : service(), + shibbolethAuth : service(), providerName : 'authPage.shibboleth.providerName.shibboleth', - config : Ember.computed.alias('model.shibbolethConfig'), + config : alias('model.shibbolethConfig'), errors : null, confirmDisable : false, redirectUrl : null, @@ -45,7 +49,7 @@ export default Ember.Controller.extend({ }, promptDisable: function() { this.set('confirmDisable', true); - Ember.run.later(this, function() { + later(this, function() { this.set('confirmDisable', false); }, 10000); }, @@ -104,7 +108,7 @@ export default Ember.Controller.extend({ }, validate: function() { - let model = Ember.Object.create(this.get('config')); + let model = EmberObject.create(this.get('config')); let errors = []; if ((model.get('displayNameField')||'').trim().length === 0 ) { diff --git a/app/admin-tab/settings/auth/shibboleth/route.js b/app/admin-tab/settings/auth/shibboleth/route.js index 56a0b9fa8..ac1741a26 100644 --- a/app/admin-tab/settings/auth/shibboleth/route.js +++ b/app/admin-tab/settings/auth/shibboleth/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('authStore').find('config', null, {forceReload: true}).then(function(collection) { return collection; diff --git a/app/admin-tab/settings/controller.js b/app/admin-tab/settings/controller.js index 216fbe016..f5b3fcadb 100644 --- a/app/admin-tab/settings/controller.js +++ b/app/admin-tab/settings/controller.js @@ -1,7 +1,9 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - settings : Ember.inject.service(), - projectId : Ember.computed.alias(`tab-session.${C.TABSESSION.PROJECT}`), +export default Controller.extend({ + settings : service(), + projectId : alias(`tab-session.${C.TABSESSION.PROJECT}`), }); diff --git a/app/admin-tab/settings/index/route.js b/app/admin-tab/settings/index/route.js index fffbf32cf..e48095e1c 100644 --- a/app/admin-tab/settings/index/route.js +++ b/app/admin-tab/settings/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ redirect() { this.transitionTo('global-admin.settings.auth'); }, diff --git a/app/admin-tab/settings/machine/controller.js b/app/admin-tab/settings/machine/controller.js index 3ef4692a5..5dd7045cd 100644 --- a/app/admin-tab/settings/machine/controller.js +++ b/app/admin-tab/settings/machine/controller.js @@ -1,12 +1,14 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; import C from 'ui/utils/constants'; import { parseExternalId } from 'ui/utils/parse-externalid'; -export default Ember.Controller.extend({ - application : Ember.inject.controller(), - growl : Ember.inject.service(), - settings : Ember.inject.service(), - modalService: Ember.inject.service('modal'), +export default Controller.extend({ + application : controller(), + growl : service(), + settings : service(), + modalService: service('modal'), actions: { activate(driver) { @@ -70,7 +72,7 @@ export default Ember.Controller.extend({ }; }, - arranged: Ember.computed('model.drivers.@each.{state,id,version,externalId}', 'model.catalogDrivers.@each.{id,catalogId,name}', function() { + arranged: computed('model.drivers.@each.{state,id,version,externalId}', 'model.catalogDrivers.@each.{id,catalogId,name}', function() { // possibly add some search here let cDrivers = this.get('model.catalogDrivers.catalog'); let drivers = this.get('model.drivers.content'); diff --git a/app/admin-tab/settings/machine/route.js b/app/admin-tab/settings/machine/route.js index bb07173e0..a3c374ba2 100644 --- a/app/admin-tab/settings/machine/route.js +++ b/app/admin-tab/settings/machine/route.js @@ -1,10 +1,12 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - catalog: Ember.inject.service(), +export default Route.extend({ + catalog: service(), model() { - return Ember.RSVP.hash({ + return hash({ drivers: this.get('userStore').findAll('machinedriver', null, {forceReload: true}), catalogDrivers: this.get('catalog').fetchTemplates({templateBase: 'machine', category: 'all', allowFailure: true}), }).then((hash) => { diff --git a/app/admin-tab/settings/registration/route.js b/app/admin-tab/settings/registration/route.js index a6ab1ed69..37b05778d 100644 --- a/app/admin-tab/settings/registration/route.js +++ b/app/admin-tab/settings/registration/route.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - settings: Ember.inject.service(), +export default Route.extend({ + settings: service(), beforeModel() { return this.get('settings').load([ @@ -14,7 +16,7 @@ export default Ember.Route.extend({ let settings = this.get('settings'); return this.get('userStore').find('setting').then(() => { - return Ember.Object.create({ + return EmberObject.create({ host: settings.get(C.SETTING.API_HOST), }); }); diff --git a/app/admin-tab/settings/route.js b/app/admin-tab/settings/route.js index e588cf903..7fa045533 100644 --- a/app/admin-tab/settings/route.js +++ b/app/admin-tab/settings/route.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - settings: Ember.inject.service(), +export default Route.extend({ + settings: service(), beforeModel() { return this.get('settings').load([ @@ -16,7 +18,7 @@ export default Ember.Route.extend({ let settings = this.get('settings'); return this.get('userStore').find('setting').then(() => { - return Ember.Object.create({ + return EmberObject.create({ host: settings.get(C.SETTING.API_HOST), catalog: settings.get(C.SETTING.CATALOG_URL), telemetry: settings.get(C.SETTING.TELEMETRY), diff --git a/app/application/controller.js b/app/application/controller.js index ed933bddf..f33062117 100644 --- a/app/application/controller.js +++ b/app/application/controller.js @@ -1,16 +1,18 @@ -import Ember from "ember"; +import { oneWay } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - settings: Ember.inject.service(), +export default Controller.extend({ + settings: service(), // GitHub auth params queryParams : ['error_description','state','code','isTest', 'isPopup','redirectTo'], - resourceActions : Ember.inject.service('resource-actions'), - tooltipService : Ember.inject.service('tooltip'), + resourceActions : service('resource-actions'), + tooltipService : service('tooltip'), - tooltip : Ember.computed.oneWay('tooltipService.tooltipOpts.type'), - tooltipTemplate : Ember.computed.oneWay('tooltipService.tooltipOpts.template'), + tooltip : oneWay('tooltipService.tooltipOpts.type'), + tooltipTemplate : oneWay('tooltipService.tooltipOpts.template'), error : null, error_description : null, diff --git a/app/application/route.js b/app/application/route.js index cf5204495..f751e18ab 100644 --- a/app/application/route.js +++ b/app/application/route.js @@ -1,14 +1,17 @@ -import Ember from 'ember'; +import RSVP, { reject } from 'rsvp'; +import { cancel, next, scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - access : Ember.inject.service(), - cookies : Ember.inject.service(), - github : Ember.inject.service(), - language : Ember.inject.service('user-language'), - modal : Ember.inject.service(), - prefs : Ember.inject.service(), - settings : Ember.inject.service(), +export default Route.extend({ + access : service(), + cookies : service(), + github : service(), + language : service('user-language'), + modal : service(), + prefs : service(), + settings : service(), previousParams : null, previousRoute : null, @@ -21,7 +24,7 @@ export default Ember.Route.extend({ loading(transition) { this.incrementProperty('loadingId'); let id = this.get('loadingId'); - Ember.run.cancel(this.get('hideTimer')); + cancel(this.get('hideTimer')); //console.log('Loading', id); if ( !this.get('loadingShown') ) { @@ -46,11 +49,11 @@ export default Ember.Route.extend({ if ( this.get('loadingId') === id ) { if ( transition.isAborted ) { //console.log('Loading aborted', id, this.get('loadingId')); - this.set('hideTimer', Ember.run.next(hide)); + this.set('hideTimer', next(hide)); } else { //console.log('Loading finished', id, this.get('loadingId')); //needed to set this to run after render as there was wierdness wiht new register page - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { hide(); }); } @@ -188,7 +191,7 @@ export default Ember.Route.extend({ transition.abort(); - return Ember.RSVP.reject('isTest'); + return reject('isTest'); } else if ( params.code ) { @@ -216,7 +219,7 @@ export default Ember.Route.extend({ this.controllerFor('application').set('error', obj); - return Ember.RSVP.reject(obj); + return reject(obj); } } @@ -226,7 +229,7 @@ export default Ember.Route.extend({ setTimeout(function() { window.close(); },250); - return new Ember.RSVP.promise(); + return new RSVP.promise(); } catch(e) { window.close(); } diff --git a/app/apps-tab/index/controller.js b/app/apps-tab/index/controller.js index b4e75cb1d..cd53c7b4b 100644 --- a/app/apps-tab/index/controller.js +++ b/app/apps-tab/index/controller.js @@ -1,14 +1,16 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; import C from 'ui/utils/constants'; import { tagsToArray } from 'ui/models/stack'; -export default Ember.Controller.extend({ - projectController: Ember.inject.controller('authenticated.project'), - projects: Ember.inject.service(), - prefs: Ember.inject.service(), - intl: Ember.inject.service(), +export default Controller.extend({ + projectController: controller('authenticated.project'), + projects: service(), + prefs: service(), + intl: service(), - tags: Ember.computed.alias('projectController.tags'), + tags: alias('projectController.tags'), sortBy: 'name', expandedStacks: null, diff --git a/app/apps-tab/index/route.js b/app/apps-tab/index/route.js index 529d599aa..7a844a32c 100644 --- a/app/apps-tab/index/route.js +++ b/app/apps-tab/index/route.js @@ -1,9 +1,13 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import EmberObject from '@ember/object'; +import { allSettled } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; import { parseExternalId } from 'ui/utils/parse-externalid'; -export default Ember.Route.extend({ - catalog: Ember.inject.service(), +export default Route.extend({ + catalog: service(), model() { return this.get('store').findAll('stack').then((stacks) => { @@ -16,15 +20,15 @@ export default Ember.Route.extend({ deps.push(catalog.fetchTemplate(extInfo.templateId, false)); }); - return Ember.RSVP.allSettled(deps).then(() => { - return Ember.Object.create({ + return allSettled(deps).then(() => { + return EmberObject.create({ stacks: stacks, }); }); }); }, - setDefaultRoute: Ember.on('activate', function() { + setDefaultRoute: on('activate', function() { this.set(`session.${C.SESSION.CONTAINER_ROUTE}`,'containers'); }), }); diff --git a/app/authenticated/clusters/cluster/controller.js b/app/authenticated/clusters/cluster/controller.js index 671b7fc82..571040e15 100644 --- a/app/authenticated/clusters/cluster/controller.js +++ b/app/authenticated/clusters/cluster/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ // might be an ember bug but if we dont have an empty controller here the transtion from the cluster managemnt page // via launchOnCluster and useKubernetes fails because of a missing lookup. }); diff --git a/app/authenticated/clusters/cluster/edit/controller.js b/app/authenticated/clusters/cluster/edit/controller.js index 4a63e6959..78eae8fa3 100644 --- a/app/authenticated/clusters/cluster/edit/controller.js +++ b/app/authenticated/clusters/cluster/edit/controller.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - application: Ember.inject.controller(), +export default Controller.extend({ + application: controller(), actions: { cancel(prev) { this.send('goToPrevious',prev); diff --git a/app/authenticated/clusters/cluster/edit/route.js b/app/authenticated/clusters/cluster/edit/route.js index 32ead863c..8e45c36e3 100644 --- a/app/authenticated/clusters/cluster/edit/route.js +++ b/app/authenticated/clusters/cluster/edit/route.js @@ -1,10 +1,12 @@ -import Ember from 'ember'; +import { allSettled } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; import { parseExternalId } from 'ui/utils/parse-externalid'; -export default Ember.Route.extend({ - settings: Ember.inject.service(), - catalog: Ember.inject.service(), +export default Route.extend({ + settings: service(), + catalog: service(), model() { let store = this.get('store'); @@ -22,7 +24,7 @@ export default Ember.Route.extend({ })); } - return Ember.RSVP.allSettled(deps).then(() => { + return allSettled(deps).then(() => { return this.get('catalog').fetchTemplates({plusInfra: true}).then((resp) => { resp.cluster = cluster; return resp; diff --git a/app/authenticated/clusters/cluster/host-new/controller.js b/app/authenticated/clusters/cluster/host-new/controller.js index 20595c298..7ab5c1551 100644 --- a/app/authenticated/clusters/cluster/host-new/controller.js +++ b/app/authenticated/clusters/cluster/host-new/controller.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - clusterController: Ember.inject.controller('authenticated.clusters.cluster'), - cluster: Ember.computed.alias('clusterController.model'), +export default Controller.extend({ + clusterController: controller('authenticated.clusters.cluster'), + cluster: alias('clusterController.model'), queryParams : ['backTo', 'driver', 'hostId'], backTo : null, diff --git a/app/authenticated/clusters/cluster/host-new/route.js b/app/authenticated/clusters/cluster/host-new/route.js index ae751d7a0..7dae08cb3 100644 --- a/app/authenticated/clusters/cluster/host-new/route.js +++ b/app/authenticated/clusters/cluster/host-new/route.js @@ -1,11 +1,12 @@ -import Ember from 'ember'; -const { getOwner } = Ember; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; +import { getOwner } from '@ember/application'; -export default Ember.Route.extend({ - access : Ember.inject.service(), - projects : Ember.inject.service(), - settings : Ember.inject.service(), - host : Ember.inject.service(), +export default Route.extend({ + access : service(), + projects : service(), + settings : service(), + host : service(), backTo : null, defaultDriver: '', diff --git a/app/authenticated/clusters/cluster/host-templates/index/controller.js b/app/authenticated/clusters/cluster/host-templates/index/controller.js index a04018f39..03c6e4aab 100644 --- a/app/authenticated/clusters/cluster/host-templates/index/controller.js +++ b/app/authenticated/clusters/cluster/host-templates/index/controller.js @@ -1,7 +1,9 @@ -import Ember from 'ember'; +import { sort } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - projects: Ember.inject.service(), +export default Controller.extend({ + projects: service(), queryParams: ['backTo'], backTo: 'hosts', @@ -14,5 +16,5 @@ export default Ember.Controller.extend({ }, sorting: ['driver','name'], - arranged: Ember.computed.sort('model','sorting'), + arranged: sort('model','sorting'), }); diff --git a/app/authenticated/clusters/cluster/host-templates/index/route.js b/app/authenticated/clusters/cluster/host-templates/index/route.js index 55e0fc43f..d14de6fd0 100644 --- a/app/authenticated/clusters/cluster/host-templates/index/route.js +++ b/app/authenticated/clusters/cluster/host-templates/index/route.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - projects: Ember.inject.service(), +export default Route.extend({ + projects: service(), backTo: null, model(params/*,transition*/) { diff --git a/app/authenticated/clusters/cluster/host-templates/launch/controller.js b/app/authenticated/clusters/cluster/host-templates/launch/controller.js index 55ff9aa58..d630f3134 100644 --- a/app/authenticated/clusters/cluster/host-templates/launch/controller.js +++ b/app/authenticated/clusters/cluster/host-templates/launch/controller.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ }); diff --git a/app/authenticated/clusters/cluster/host-templates/launch/route.js b/app/authenticated/clusters/cluster/host-templates/launch/route.js index 27223f903..a6c41a009 100644 --- a/app/authenticated/clusters/cluster/host-templates/launch/route.js +++ b/app/authenticated/clusters/cluster/host-templates/launch/route.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; -const { get } = Ember; +import Route from '@ember/routing/route'; +import { get } from '@ember/object'; -export default Ember.Route.extend({ +export default Route.extend({ model(params, transistion) { return this.get('store').find('hosttemplate', params.template_id).then((template) => { return this.get('userStore').find('machinedriver', null, {forceReload: true}).then((drivers) => { diff --git a/app/authenticated/clusters/cluster/hosts/controller.js b/app/authenticated/clusters/cluster/hosts/controller.js index c8a5b193f..8f4421482 100644 --- a/app/authenticated/clusters/cluster/hosts/controller.js +++ b/app/authenticated/clusters/cluster/hosts/controller.js @@ -1,10 +1,11 @@ -import Ember from 'ember'; -import { headersCluster as hostHeaders } from 'ui/components/host-row/component'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; +import { headersCluster as hostHeaders } from 'shared/components/host-row/component'; -export default Ember.Controller.extend({ - prefs: Ember.inject.service(), - projects: Ember.inject.service(), - projectController: Ember.inject.controller('authenticated.project'), +export default Controller.extend({ + prefs: service(), + projects: service(), + projectController: controller('authenticated.project'), sortBy: 'name', queryParams: ['sortBy'], diff --git a/app/authenticated/clusters/cluster/hosts/route.js b/app/authenticated/clusters/cluster/hosts/route.js index 149745e3d..bacc8dc83 100644 --- a/app/authenticated/clusters/cluster/hosts/route.js +++ b/app/authenticated/clusters/cluster/hosts/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - projects: Ember.inject.service(), +export default Route.extend({ + projects: service(), model: function() { return this.get('userStore').find('host', null, {filter: {clusterId: this.get('projects.currentCluster.id')}}).then((hosts) => { diff --git a/app/authenticated/clusters/cluster/import/controller.js b/app/authenticated/clusters/cluster/import/controller.js index 8eb1fc8c8..1da7a03a7 100644 --- a/app/authenticated/clusters/cluster/import/controller.js +++ b/app/authenticated/clusters/cluster/import/controller.js @@ -1,13 +1,16 @@ -import Ember from 'ember'; +import { cancel, later } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - projects: Ember.inject.service(), - settings: Ember.inject.service(), - clusterController: Ember.inject.controller('authenticated.clusters.cluster'), - cluster: Ember.computed.alias('clusterController.model'), +export default Controller.extend({ + projects: service(), + settings: service(), + clusterController: controller('authenticated.clusters.cluster'), + cluster: alias('clusterController.model'), - loading: Ember.computed.alias('cluster.isTransitioning'), - registrationCommand: Ember.computed.alias('cluster.registrationToken.clusterCommand'), + loading: alias('cluster.isTransitioning'), + registrationCommand: alias('cluster.registrationToken.clusterCommand'), refreshTimer: null, init() { @@ -20,12 +23,12 @@ export default Ember.Controller.extend({ }, cancelRefresh() { - Ember.run.cancel(this.get('refreshTimer')); + cancel(this.get('refreshTimer')); }, scheduleRefresh() { this.cancelRefresh(); - this.set('refreshTimer', Ember.run.later(this, 'refreshCluster', 5000)); + this.set('refreshTimer', later(this, 'refreshCluster', 5000)); }, refreshCluster() { diff --git a/app/authenticated/clusters/cluster/import/route.js b/app/authenticated/clusters/cluster/import/route.js index 88cc9cb7a..0eff53abc 100644 --- a/app/authenticated/clusters/cluster/import/route.js +++ b/app/authenticated/clusters/cluster/import/route.js @@ -1,15 +1,18 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { next } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - settings: Ember.inject.service(), +export default Route.extend({ + settings: service(), actions: { toggleGrouping() { let choices = ['list','grouped']; let cur = this.get('controller.mode'); let neu = choices[((choices.indexOf(cur)+1) % choices.length)]; - Ember.run.next(() => { + next(() => { this.set('controller.mode', neu); }); }, @@ -18,7 +21,7 @@ export default Ember.Route.extend({ model() { let settings = this.get('settings'); return settings.load(C.SETTING.API_HOST).then(() => { - return Ember.Object.create({ + return EmberObject.create({ apiHostSet: !!settings.get(C.SETTING.API_HOST), }); }); diff --git a/app/authenticated/clusters/cluster/index/route.js b/app/authenticated/clusters/cluster/index/route.js index e45675840..2bbd3dd6a 100644 --- a/app/authenticated/clusters/cluster/index/route.js +++ b/app/authenticated/clusters/cluster/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ redirect() { this.transitionTo('authenticated.clusters.cluster.hosts'); }, diff --git a/app/authenticated/clusters/cluster/k8s/controller.js b/app/authenticated/clusters/cluster/k8s/controller.js index 1ca315ce2..1a798e12d 100644 --- a/app/authenticated/clusters/cluster/k8s/controller.js +++ b/app/authenticated/clusters/cluster/k8s/controller.js @@ -1,12 +1,15 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - modalService: Ember.inject.service('modal'), - projects: Ember.inject.service(), - k8s: Ember.inject.service(), +export default Controller.extend({ + modalService: service('modal'), + projects: service(), + k8s: service(), - projectController: Ember.inject.controller('authenticated.project'), - tags: Ember.computed.alias('projectController.tags'), + projectController: controller('authenticated.project'), + tags: alias('projectController.tags'), actions: { dashboard() { @@ -16,7 +19,7 @@ export default Ember.Controller.extend({ kubectl(e) { if (e.metaKey) { let proj = this.get('projects.current.id'); - Ember.run.later(() => { + later(() => { window.open(`//${window.location.host}/env/${proj}/infra/console?kubernetes=true&isPopup=true`, '_blank', "toolbars=0,width=900,height=700,left=200,top=200"); }); } else { diff --git a/app/authenticated/clusters/cluster/k8s/route.js b/app/authenticated/clusters/cluster/k8s/route.js index 28dedfcf2..34c93d529 100644 --- a/app/authenticated/clusters/cluster/k8s/route.js +++ b/app/authenticated/clusters/cluster/k8s/route.js @@ -1,14 +1,17 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - projects: Ember.inject.service(), - k8s: Ember.inject.service(), +export default Route.extend({ + projects: service(), + k8s: service(), model() { - return Ember.RSVP.hash({ + return hash({ stacks: this.get('store').find('stack'), }).then((hash) => { - return Ember.Object.create(hash); + return EmberObject.create(hash); }); }, }); diff --git a/app/authenticated/clusters/cluster/route.js b/app/authenticated/clusters/cluster/route.js index f79053599..cd9f644d9 100644 --- a/app/authenticated/clusters/cluster/route.js +++ b/app/authenticated/clusters/cluster/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ activate() { this._super(); this.controllerFor('authenticated').setPageScope('cluster'); diff --git a/app/authenticated/clusters/index/controller.js b/app/authenticated/clusters/index/controller.js index 0062ccde7..389171c9e 100644 --- a/app/authenticated/clusters/index/controller.js +++ b/app/authenticated/clusters/index/controller.js @@ -1,5 +1,6 @@ -import Ember from 'ember'; -const { getOwner } = Ember; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; +import { getOwner } from '@ember/application'; const headers = [ { @@ -49,15 +50,15 @@ const headers = [ }, ]; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['mode'], mode: 'grouped', - modalService: Ember.inject.service('modal'), - access: Ember.inject.service(), - projects: Ember.inject.service(), - settings: Ember.inject.service(), - application: Ember.inject.controller(), + modalService: service('modal'), + access: service(), + projects: service(), + settings: service(), + application: controller(), headers: headers, sortBy: 'name', diff --git a/app/authenticated/clusters/index/route.js b/app/authenticated/clusters/index/route.js index 8e3725ecd..8e4f9d745 100644 --- a/app/authenticated/clusters/index/route.js +++ b/app/authenticated/clusters/index/route.js @@ -1,12 +1,13 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ actions: { toggleGrouping() { let choices = ['list','grouped']; let cur = this.get('controller.mode'); let neu = choices[((choices.indexOf(cur)+1) % choices.length)]; - Ember.run.next(() => { + next(() => { this.set('controller.mode', neu); }); }, diff --git a/app/authenticated/clusters/new-project/controller.js b/app/authenticated/clusters/new-project/controller.js index 084798fd5..249753d89 100644 --- a/app/authenticated/clusters/new-project/controller.js +++ b/app/authenticated/clusters/new-project/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['clusterId'], actions: { diff --git a/app/authenticated/clusters/new-project/route.js b/app/authenticated/clusters/new-project/route.js index 3cbd5b187..fd7cb8e70 100644 --- a/app/authenticated/clusters/new-project/route.js +++ b/app/authenticated/clusters/new-project/route.js @@ -1,13 +1,16 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - access: Ember.inject.service(), - catalog: Ember.inject.service(), +export default Route.extend({ + access: service(), + catalog: service(), model: function() { var userStore = this.get('userStore'); - return Ember.RSVP.hash({ + return hash({ all: userStore.findAll('project'), catalogTemplates: this.get('catalog').fetchTemplates({templateBase: C.EXTERNAL_ID.KIND_INFRA, category: C.EXTERNAL_ID.KIND_ALL}), }).then((hash) => { @@ -30,7 +33,7 @@ export default Ember.Route.extend({ project.set('projectMembers',[]); } - return Ember.Object.create({ + return EmberObject.create({ originalProject: null, project: project, all: hash.all, diff --git a/app/authenticated/clusters/new/controller.js b/app/authenticated/clusters/new/controller.js index 4a63e6959..78eae8fa3 100644 --- a/app/authenticated/clusters/new/controller.js +++ b/app/authenticated/clusters/new/controller.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - application: Ember.inject.controller(), +export default Controller.extend({ + application: controller(), actions: { cancel(prev) { this.send('goToPrevious',prev); diff --git a/app/authenticated/clusters/new/route.js b/app/authenticated/clusters/new/route.js index 6d6186454..d5ed0ac35 100644 --- a/app/authenticated/clusters/new/route.js +++ b/app/authenticated/clusters/new/route.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - catalog: Ember.inject.service(), - settings: Ember.inject.service(), +export default Route.extend({ + catalog: service(), + settings: service(), model() { let store = this.get('userStore'); @@ -18,13 +21,13 @@ export default Ember.Route.extend({ let cluster = store.createRecord(def); return this.get('catalog').fetchTemplates({plusInfra: true}).then((templates) => { - return Ember.Object.create({ + return EmberObject.create({ cluster: cluster, allTemplates: templates }); }); }, - teardownForComponentState: Ember.on('deactivate', function(){ + teardownForComponentState: on('deactivate', function(){ this.controller.setProperties({ catalogItem: null, editCatalog: false, diff --git a/app/authenticated/clusters/project/controller.js b/app/authenticated/clusters/project/controller.js index 8a7e9ad65..3efafc2b7 100644 --- a/app/authenticated/clusters/project/controller.js +++ b/app/authenticated/clusters/project/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ model: null, actions: { diff --git a/app/authenticated/clusters/project/route.js b/app/authenticated/clusters/project/route.js index 41a64de40..8b969095b 100644 --- a/app/authenticated/clusters/project/route.js +++ b/app/authenticated/clusters/project/route.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { Promise as EmberPromise } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; import { xhrConcur } from 'ui/utils/platform'; import PromiseToCb from 'ui/mixins/promise-to-cb'; -export default Ember.Route.extend(PromiseToCb, { - catalog: Ember.inject.service(), +export default Route.extend(PromiseToCb, { + catalog: service(), model: function(params /* , transition*/) { var userStore = this.get('userStore'); @@ -18,7 +21,7 @@ export default Ember.Route.extend(PromiseToCb, { }, }; - let promise = new Ember.RSVP.Promise((resolve, reject) => { + let promise = new EmberPromise((resolve, reject) => { let tasks = { allProjects: this.toCb(() => { return userStore.findAll('project'); }), project: ['allProjects', this.toCb(() => { return userStore.find('project', params.project_id); })], @@ -66,7 +69,7 @@ export default Ember.Route.extend(PromiseToCb, { }); } - let out = Ember.Object.create({ + let out = EmberObject.create({ all: hash.allProjects, network: network, policyManager: hash.policyManagers.objectAt(0), diff --git a/app/authenticated/clusters/route.js b/app/authenticated/clusters/route.js index 7a2782cc5..b17c0cc1e 100644 --- a/app/authenticated/clusters/route.js +++ b/app/authenticated/clusters/route.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ activate() { this._super(); this.controllerFor('authenticated').setPageScope('clusters'); @@ -8,7 +9,7 @@ export default Ember.Route.extend({ model() { var userStore = this.get('userStore'); - return Ember.RSVP.hash({ + return hash({ projects: userStore.find('project', null, {url: 'projects', filter: {all: 'true'}, forceReload: true, removeMissing: true}), clusters: userStore.find('cluster', null, {url: 'clusters', forceReload: true, removeMissing: true}), }).then(() => { diff --git a/app/authenticated/controller.js b/app/authenticated/controller.js index ba1f2fcd4..efc9c49be 100644 --- a/app/authenticated/controller.js +++ b/app/authenticated/controller.js @@ -1,17 +1,20 @@ -import Ember from 'ember'; +import { schedule } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - application : Ember.inject.controller(), - settings : Ember.inject.service(), - prefs : Ember.inject.service(), - projects : Ember.inject.service(), +export default Controller.extend({ + application : controller(), + settings : service(), + prefs : service(), + projects : service(), error : null, - isPopup: Ember.computed.alias('application.isPopup'), + isPopup: alias('application.isPopup'), bootstrap: function() { - Ember.run.schedule('afterRender', this, () => { + schedule('afterRender', this, () => { this.get('application').setProperties({ error: null, error_description: null, diff --git a/app/authenticated/dummy-dev/controller.js b/app/authenticated/dummy-dev/controller.js index 55ff9aa58..d630f3134 100644 --- a/app/authenticated/dummy-dev/controller.js +++ b/app/authenticated/dummy-dev/controller.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ }); diff --git a/app/authenticated/dummy-dev/route.js b/app/authenticated/dummy-dev/route.js index c24ce3529..00dbd1a2f 100644 --- a/app/authenticated/dummy-dev/route.js +++ b/app/authenticated/dummy-dev/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return [ ]; }, diff --git a/app/authenticated/index/route.js b/app/authenticated/index/route.js index 995f7a2df..2c14cfb2c 100644 --- a/app/authenticated/index/route.js +++ b/app/authenticated/index/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - projects: Ember.inject.service(), +export default Route.extend({ + projects: service(), redirect() { var project = this.get('projects.current'); diff --git a/app/authenticated/prefs/controller.js b/app/authenticated/prefs/controller.js index 40ba05476..2fd38d5a5 100644 --- a/app/authenticated/prefs/controller.js +++ b/app/authenticated/prefs/controller.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { equal } from '@ember/object/computed'; +import Controller from '@ember/controller'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - isCaas : Ember.computed.equal('app.mode',C.MODE.CAAS), +export default Controller.extend({ + isCaas : equal('app.mode',C.MODE.CAAS), newPassword: null, actions: { diff --git a/app/authenticated/prefs/route.js b/app/authenticated/prefs/route.js index 7279d9c81..6a2eda039 100644 --- a/app/authenticated/prefs/route.js +++ b/app/authenticated/prefs/route.js @@ -1,22 +1,26 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { resolve } from 'rsvp'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import { loadScript } from 'ui/utils/load-script'; import C from 'ui/utils/constants'; import fetch from 'ember-api-store/utils/fetch'; -export default Ember.Route.extend({ - session: Ember.inject.service(), - accountId: Ember.computed.alias(`session.${C.SESSION.ACCOUNT_ID}`), +export default Route.extend({ + session: service(), + accountId: alias(`session.${C.SESSION.ACCOUNT_ID}`), beforeModel() { return loadScript('https://js.stripe.com/v2/').then(() => { Stripe.setPublishableKey(this.get('app.stripe.publishableKey')); - return Ember.RSVP.resolve(); + return resolve(); }); }, model(/*params, transition*/) { - var modelOut = Ember.Object.create({ + var modelOut = EmberObject.create({ account: null, stripeCards: null, }); diff --git a/app/authenticated/project/apikeys/account/controller.js b/app/authenticated/project/apikeys/account/controller.js index 2a2462151..445c371eb 100644 --- a/app/authenticated/project/apikeys/account/controller.js +++ b/app/authenticated/project/apikeys/account/controller.js @@ -1,18 +1,20 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - access: Ember.inject.service(), - 'tab-session': Ember.inject.service(), +export default Controller.extend({ + access: service(), + 'tab-session': service(), - application: Ember.inject.controller(), - cookies: Ember.inject.service(), - projects: Ember.inject.service(), - growl: Ember.inject.service(), - project: Ember.computed.alias('projects.current'), - endpointService: Ember.inject.service('endpoint'), - modalService: Ember.inject.service('modal'), - bulkActionHandler: Ember.inject.service(), + application: controller(), + cookies: service(), + projects: service(), + growl: service(), + project: alias('projects.current'), + endpointService: service('endpoint'), + modalService: service('modal'), + bulkActionHandler: service(), sortBy: 'name', headers: [ diff --git a/app/authenticated/project/apikeys/account/route.js b/app/authenticated/project/apikeys/account/route.js index 5bdf3edab..a952dd281 100644 --- a/app/authenticated/project/apikeys/account/route.js +++ b/app/authenticated/project/apikeys/account/route.js @@ -1,10 +1,11 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { var me = this.get(`session.${C.SESSION.ACCOUNT_ID}`); - return Ember.RSVP.hash({ + return hash({ account: this.get('userStore').findAll('apikey', null, {filter: {accountId: me}, url: 'apikeys', forceReload: true}), }); }, diff --git a/app/authenticated/project/apikeys/environment/controller.js b/app/authenticated/project/apikeys/environment/controller.js index c7c22406a..ae82d59f5 100644 --- a/app/authenticated/project/apikeys/environment/controller.js +++ b/app/authenticated/project/apikeys/environment/controller.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { computed, get } from '@ember/object'; import AccountController from '../account/controller'; export default AccountController.extend({ - arranged: Ember.computed('model.environment.@each.{accountId,name,createdTs}','sortBy','descending', function() { + arranged: computed('model.environment.@each.{accountId,name,createdTs}','sortBy','descending', function() { var project = this.get('project.id'); - let sort = (Ember.get(this.get('headers').findBy('name', this.get('sortBy')), 'sort')||[]); + let sort = (get(this.get('headers').findBy('name', this.get('sortBy')), 'sort')||[]); let out = this.get('model.environment').filter((row) => { return row.get('accountId') === project; diff --git a/app/authenticated/project/apikeys/environment/route.js b/app/authenticated/project/apikeys/environment/route.js index 605daf041..226eff32a 100644 --- a/app/authenticated/project/apikeys/environment/route.js +++ b/app/authenticated/project/apikeys/environment/route.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { - return Ember.RSVP.hash({ + return hash({ environment: this.get('store').findAll('apikey', null, {forceReload: true}), }); }, diff --git a/app/authenticated/project/apikeys/index/route.js b/app/authenticated/project/apikeys/index/route.js index 397a3aa71..61fa3fd98 100644 --- a/app/authenticated/project/apikeys/index/route.js +++ b/app/authenticated/project/apikeys/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ redirect: function() { this.transitionTo('authenticated.project.apikeys.account'); } diff --git a/app/authenticated/project/controller.js b/app/authenticated/project/controller.js index 36ab9bb6b..ab8fe6fe9 100644 --- a/app/authenticated/project/controller.js +++ b/app/authenticated/project/controller.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import C from 'ui/utils/constants'; import { tagsToArray } from 'ui/models/stack'; @@ -6,9 +8,9 @@ import { tagsToArray } from 'ui/models/stack'; //const SERVICE = 'service'; const STACK = 'stack'; -export default Ember.Controller.extend({ - prefs: Ember.inject.service(), - projects: Ember.inject.service(), +export default Controller.extend({ + prefs: service(), + projects: service(), tags: '', group: STACK, @@ -24,7 +26,7 @@ export default Ember.Controller.extend({ this.set('hosts', this.get('store').all('host')); this.set('expandedInstances',[]); - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { let key = `prefs.${C.PREFS.CONTAINER_VIEW}`; const group = this.get(key) || this.get('group'); this.transitionToRoute({queryParams: {group}}); diff --git a/app/authenticated/project/help/controller.js b/app/authenticated/project/help/controller.js index 4d77e8d6f..1bd30e5ae 100644 --- a/app/authenticated/project/help/controller.js +++ b/app/authenticated/project/help/controller.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend({ - settings: Ember.inject.service(), - projects: Ember.inject.service(), +export default Controller.extend({ + settings: service(), + projects: service(), modelError: false, modelResolved: false, @@ -11,9 +14,9 @@ export default Ember.Controller.extend({ forumsLink: C.EXT_REFERENCES.FORUM, companyLink: C.EXT_REFERENCES.COMPANY, githubLink: C.EXT_REFERENCES.GITHUB, - docsLink: Ember.computed.alias('settings.docsBase'), + docsLink: alias('settings.docsBase'), - latestAnnouncement: Ember.computed('model.announcements', function() { + latestAnnouncement: computed('model.announcements', function() { if (this.get('model.announcements.topics')) { let sorted = this.get('model.announcements.topics').sortBy('id'); var announcement = sorted[sorted.length-1]; diff --git a/app/authenticated/project/help/route.js b/app/authenticated/project/help/route.js index a7b31e148..5d32a278f 100644 --- a/app/authenticated/project/help/route.js +++ b/app/authenticated/project/help/route.js @@ -1,10 +1,12 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import $ from 'jquery'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ +export default Route.extend({ actions: { didTransition: function() { - Ember.$.getJSON(`${C.EXT_REFERENCES.FORUM}/categories.json`).then((response) => { + $.getJSON(`${C.EXT_REFERENCES.FORUM}/categories.json`).then((response) => { let modelOut = { resolved: true, }; @@ -15,26 +17,26 @@ export default Ember.Route.extend({ switch (item.name) { case 'Announcements': modelOut.announcements = item; - promises['announcements'] = Ember.$.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); + promises['announcements'] = $.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); break; case 'General': modelOut.general = item; - promises['general'] = Ember.$.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); + promises['general'] = $.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); break; case 'Rancher': modelOut.rancher = item; - promises['rancher'] = Ember.$.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); + promises['rancher'] = $.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); break; case 'RancherOS': modelOut.rancherOS = item; - promises['rancherOS'] = Ember.$.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); + promises['rancherOS'] = $.getJSON(`${C.EXT_REFERENCES.FORUM}/c/${item.id}/l/latest.json`); break; default: break; } }); - Ember.RSVP.hash(promises).then((hash) => { + hash(promises).then((hash) => { Object.keys(hash).forEach((key) => { let topics = hash[key].topic_list.topics.filterBy('pinned',false); topics.length = 5; diff --git a/app/authenticated/project/hooks/edit-receiver/controller.js b/app/authenticated/project/hooks/edit-receiver/controller.js index a5d5cb4e9..b616ecdc2 100644 --- a/app/authenticated/project/hooks/edit-receiver/controller.js +++ b/app/authenticated/project/hooks/edit-receiver/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ actions: { cancel() { this.send('goToPrevious'); diff --git a/app/authenticated/project/hooks/edit-receiver/route.js b/app/authenticated/project/hooks/edit-receiver/route.js index 2cc71cd40..2a6d37cc1 100644 --- a/app/authenticated/project/hooks/edit-receiver/route.js +++ b/app/authenticated/project/hooks/edit-receiver/route.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - webhookStore: Ember.inject.service(), +export default Route.extend({ + webhookStore: service(), model(params) { return this.get('webhookStore').find('receiver', params.receiver_id).then((receiver) => { - return Ember.Object.create({ + return EmberObject.create({ receiver: receiver, }); }); diff --git a/app/authenticated/project/hooks/index/controller.js b/app/authenticated/project/hooks/index/controller.js index 7154891be..42876be5a 100644 --- a/app/authenticated/project/hooks/index/controller.js +++ b/app/authenticated/project/hooks/index/controller.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - settings: Ember.inject.service(), - projects: Ember.inject.service(), +export default Controller.extend({ + settings: service(), + projects: service(), sortBy:'name', diff --git a/app/authenticated/project/hooks/new-receiver/controller.js b/app/authenticated/project/hooks/new-receiver/controller.js index d4e4737bc..29c71abcd 100644 --- a/app/authenticated/project/hooks/new-receiver/controller.js +++ b/app/authenticated/project/hooks/new-receiver/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['receiverId'], receiverId: null, diff --git a/app/authenticated/project/hooks/new-receiver/route.js b/app/authenticated/project/hooks/new-receiver/route.js index 60a890ef6..d332f2e6b 100644 --- a/app/authenticated/project/hooks/new-receiver/route.js +++ b/app/authenticated/project/hooks/new-receiver/route.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { resolve } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - webhookStore: Ember.inject.service(), - store: Ember.inject.service(), +export default Route.extend({ + webhookStore: service(), + store: service(), beforeModel() { return this.get('store').findAll('hostTemplate').then((templates) => { @@ -16,14 +19,14 @@ export default Ember.Route.extend({ if ( params.receiverId ) { promise = store.find('receiver', params.receiverId); } else { - promise = Ember.RSVP.resolve(store.createRecord({ + promise = resolve(store.createRecord({ type: 'receiver', driver: 'scaleService', })); } return promise.then((receiver) => { - return Ember.Object.create({ + return EmberObject.create({ receiver: receiver.cloneForNew(), }); }); diff --git a/app/authenticated/project/hooks/route.js b/app/authenticated/project/hooks/route.js index 5994219d8..b7c6d0d93 100644 --- a/app/authenticated/project/hooks/route.js +++ b/app/authenticated/project/hooks/route.js @@ -1,7 +1,9 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - webhookStore: Ember.inject.service(), +export default Route.extend({ + webhookStore: service(), model: function() { return this.get('webhookStore').findAll('schema', {url: 'schemas'}).then((schemas) => { @@ -11,7 +13,7 @@ export default Ember.Route.extend({ schemas.findBy('id','scalehost').resourceFields.hostSelector.required = true; schemas.findBy('id','serviceupgrade').resourceFields.serviceSelector.required = true; - return Ember.RSVP.hash({ + return hash({ receivers: this.get('webhookStore').findAll('receiver', {forceReload: true}), }); }); diff --git a/app/authenticated/project/index/route.js b/app/authenticated/project/index/route.js index fb1337f55..7e442d973 100644 --- a/app/authenticated/project/index/route.js +++ b/app/authenticated/project/index/route.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; const DEFAULT_ROUTE = 'containers'; const VALID_ROUTES = [DEFAULT_ROUTE,'scaling-groups','balancers', 'dns','volumes']; -export default Ember.Route.extend({ +export default Route.extend({ redirect() { let route = this.get(`session.${C.SESSION.CONTAINER_ROUTE}`); if ( !VALID_ROUTES.includes(route) ) { diff --git a/app/authenticated/project/route.js b/app/authenticated/project/route.js index ef1904b82..06b8b36c0 100644 --- a/app/authenticated/project/route.js +++ b/app/authenticated/project/route.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - access : Ember.inject.service(), - projects : Ember.inject.service(), +export default Route.extend({ + access : service(), + projects : service(), activate() { this._super(); @@ -25,7 +28,7 @@ export default Ember.Route.extend({ return; } - return Ember.Object.create({ + return EmberObject.create({ project: project, hosts: this.get('store').all('host'), }); @@ -47,7 +50,7 @@ export default Ember.Route.extend({ let choices = ['none','service','stack']; let cur = this.get('controller.group'); let neu = choices[((choices.indexOf(cur)+1) % choices.length)]; - Ember.run.next(() => { + next(() => { this.set('controller.group', neu); }); }, diff --git a/app/authenticated/route.js b/app/authenticated/route.js index 2cc22e52e..03b7be6f0 100644 --- a/app/authenticated/route.js +++ b/app/authenticated/route.js @@ -1,4 +1,13 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import EmberObject from '@ember/object'; +import { later, scheduleOnce, cancel } from '@ember/runloop'; +import { + reject, + Promise as EmberPromise, + resolve +} from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; import Subscribe from 'ui/mixins/subscribe'; import { xhrConcur } from 'ui/utils/platform'; @@ -7,15 +16,15 @@ import Errors from 'ui/utils/errors'; const CHECK_AUTH_TIMER = 60*10*1000; -export default Ember.Route.extend(Subscribe, PromiseToCb, { - prefs : Ember.inject.service(), - projects : Ember.inject.service(), - settings : Ember.inject.service(), - access : Ember.inject.service(), - userTheme : Ember.inject.service('user-theme'), - language : Ember.inject.service('user-language'), - storeReset: Ember.inject.service(), - modalService: Ember.inject.service('modal'), +export default Route.extend(Subscribe, PromiseToCb, { + prefs : service(), + projects : service(), + settings : service(), + access : service(), + userTheme : service('user-theme'), + language : service('user-language'), + storeReset: service(), + modalService: service('modal'), testTimer: null, @@ -27,13 +36,13 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { this.testAuthToken(); } else { transition.send('logout', transition, false); - return Ember.RSVP.reject('Not logged in'); + return reject('Not logged in'); } } }, testAuthToken: function() { - let timer = Ember.run.later(() => { + let timer = later(() => { this.get('access').testAuth().then((/* res */) => { this.testAuthToken(); }, (/* err */) => { @@ -52,7 +61,7 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { this.get('session').set(C.SESSION.BACK_TO, undefined); - let promise = new Ember.RSVP.Promise((resolve, reject) => { + let promise = new EmberPromise((resolve, reject) => { let tasks = { userSchemas: this.toCb('loadUserSchemas'), clusters: this.toCb('loadClusters'), @@ -85,9 +94,9 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { }, 'Load all the things'); return promise.then((hash) => { - return Ember.Object.create(hash); + return EmberObject.create(hash); }).catch((err) => { - return this.loadingError(err, transition, Ember.Object.create({ + return this.loadingError(err, transition, EmberObject.create({ projects: [], project: null, })); @@ -111,13 +120,13 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { let opt = this.get(`settings.${C.SETTING.TELEMETRY}`); if ( this.get('access.admin') && (!opt || opt === 'prompt') ) { - Ember.run.scheduleOnce('afterRender', this, function() { + scheduleOnce('afterRender', this, function() { this.get('modalService').toggleModal('modal-telemetry'); }); } else if ( form && !this.get(`prefs.${C.PREFS.FEEDBACK}`) ) { - Ember.run.scheduleOnce('afterRender', this, function() { + scheduleOnce('afterRender', this, function() { this.get('modalService').toggleModal('modal-feedback'); }); } @@ -127,7 +136,7 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { deactivate() { this._super(); this.disconnectSubscribe(); - Ember.run.cancel(this.get('testTimer')); + cancel(this.get('testTimer')); // Forget all the things this.get('storeReset').reset(); @@ -176,7 +185,7 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { this.get('userTheme').setupTheme(); if (this.get(`prefs.${C.PREFS.I_HATE_SPINNERS}`)) { - Ember.$('BODY').addClass('i-hate-spinners'); + $('BODY').addClass('i-hate-spinners'); } return res; @@ -219,7 +228,7 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { if ( this.get('store').getById('schema','secret') ) { return this.get('store').find('secret'); } else { - return Ember.RSVP.resolve(); + return resolve(); } }, diff --git a/app/balancers/index/controller.js b/app/balancers/index/controller.js index e33a2b9c5..878049ec2 100644 --- a/app/balancers/index/controller.js +++ b/app/balancers/index/controller.js @@ -1,18 +1,22 @@ -import Ember from 'ember'; -import { searchFields as containerSearchFields } from 'ui/components/container-dots/component'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; +import { + searchFields as containerSearchFields +} from 'shared/components/container-dots/component'; import { headers } from 'ui/containers/index/controller'; -export default Ember.Controller.extend({ - projectController: Ember.inject.controller('authenticated.project'), - projects: Ember.inject.service(), +export default Controller.extend({ + projectController: controller('authenticated.project'), + projects: service(), - tags: Ember.computed.alias('projectController.tags'), - simpleMode: Ember.computed.alias('projectController.simpleMode'), - group: Ember.computed.alias('projectController.group'), - groupTableBy: Ember.computed.alias('projectController.groupTableBy'), - showStack: Ember.computed.alias('projectController.showStack'), - expandedInstances: Ember.computed.alias('projectController.expandedInstances'), - preSorts: Ember.computed.alias('projectController.preSorts'), + tags: alias('projectController.tags'), + simpleMode: alias('projectController.simpleMode'), + group: alias('projectController.group'), + groupTableBy: alias('projectController.groupTableBy'), + showStack: alias('projectController.showStack'), + expandedInstances: alias('projectController.expandedInstances'), + preSorts: alias('projectController.preSorts'), queryParams: ['sortBy'], sortBy: 'name', diff --git a/app/balancers/index/route.js b/app/balancers/index/route.js index 656a9db1f..94d1af30b 100644 --- a/app/balancers/index/route.js +++ b/app/balancers/index/route.js @@ -1,15 +1,17 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ +export default Route.extend({ model() { var store = this.get('store'); - return Ember.RSVP.hash({ + return hash({ services: store.findAll('service'), }); }, - setDefaultRoute: Ember.on('activate', function() { + setDefaultRoute: on('activate', function() { this.set(`session.${C.SESSION.CONTAINER_ROUTE}`,'balancers'); }), }); diff --git a/app/balancers/run/controller.js b/app/balancers/run/controller.js index 43a6f6f05..8d1e82334 100644 --- a/app/balancers/run/controller.js +++ b/app/balancers/run/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['stackId','serviceId','tab','upgrade','upgradeImage'], stackId: null, serviceId: null, diff --git a/app/balancers/run/route.js b/app/balancers/run/route.js index c399678e8..719597dab 100644 --- a/app/balancers/run/route.js +++ b/app/balancers/run/route.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - settings: Ember.inject.service(), +export default Route.extend({ + settings: service(), model: function(params/*, transition*/) { var store = this.get('store'); @@ -17,7 +19,7 @@ export default Ember.Route.extend({ dependencies['existingService'] = store.find('service', params.serviceId); } - return Ember.RSVP.hash(dependencies).then((hash) => { + return hash(dependencies).then((hash) => { let service; hash.mode = 'service'; diff --git a/app/catalog-tab/controller.js b/app/catalog-tab/controller.js index 417af7688..0b7c1a05f 100644 --- a/app/catalog-tab/controller.js +++ b/app/catalog-tab/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['category', 'catalogId','templateBase', 'launchCluster'], category: 'all', templateBase: '', diff --git a/app/catalog-tab/index/controller.js b/app/catalog-tab/index/controller.js index c5fa2442a..63885706c 100644 --- a/app/catalog-tab/index/controller.js +++ b/app/catalog-tab/index/controller.js @@ -1,11 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller, { inject as controller } from '@ember/controller'; import { isAlternate } from 'ui/utils/platform'; -export default Ember.Controller.extend({ - application: Ember.inject.controller(), - catalogController: Ember.inject.controller('catalog-tab'), - category: Ember.computed.alias('catalogController.category'), - catalogId: Ember.computed.alias('catalogController.catalogId'), +export default Controller.extend({ + application: controller(), + catalogController: controller('catalog-tab'), + category: alias('catalogController.category'), + catalogId: alias('catalogController.catalogId'), parentRoute: 'catalog-tab', launchRoute: 'catalog-tab.launch', actions: { diff --git a/app/catalog-tab/index/route.js b/app/catalog-tab/index/route.js index 89db99eee..325a54eed 100644 --- a/app/catalog-tab/index/route.js +++ b/app/catalog-tab/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ resetController: function (controller, isExiting/*, transition*/) { if (isExiting) { diff --git a/app/catalog-tab/launch/controller.js b/app/catalog-tab/launch/controller.js index dc5e62304..b597b3667 100644 --- a/app/catalog-tab/launch/controller.js +++ b/app/catalog-tab/launch/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['stackId','upgrade'], stackId: null, upgrade: null, diff --git a/app/catalog-tab/launch/route.js b/app/catalog-tab/launch/route.js index 6280ea365..b8456a5c9 100644 --- a/app/catalog-tab/launch/route.js +++ b/app/catalog-tab/launch/route.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - modalService: Ember.inject.service('modal'), - catalog: Ember.inject.service(), +export default Route.extend({ + modalService: service('modal'), + catalog: service(), parentRoute: 'catalog-tab', @@ -29,7 +32,7 @@ export default Ember.Route.extend({ dependencies.stack = store.find('stack', params.stackId); } - return Ember.RSVP.hash(dependencies, 'Load dependencies').then((results) => { + return hash(dependencies, 'Load dependencies').then((results) => { if ( !results.stack ) { results.stack = store.createRecord({ @@ -66,7 +69,7 @@ export default Ember.Route.extend({ }); } - return Ember.Object.create({ + return EmberObject.create({ stack: results.stack, tpl: results.tpl, upgrade: results.upgrade, diff --git a/app/catalog-tab/route.js b/app/catalog-tab/route.js index 18ed246bb..d03e2ad0c 100644 --- a/app/catalog-tab/route.js +++ b/app/catalog-tab/route.js @@ -1,10 +1,12 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - access: Ember.inject.service(), - catalog: Ember.inject.service(), - projects: Ember.inject.service(), +export default Route.extend({ + access: service(), + catalog: service(), + projects: service(), queryParams: { category: { refreshModel: true }, @@ -29,7 +31,7 @@ export default Ember.Route.extend({ beforeModel: function() { this._super(...arguments); - return Ember.RSVP.hash({ + return hash({ stacks: this.get('store').find('stack'), catalogs: this.get('catalog').fetchCatalogs({ headers: { diff --git a/app/certificates/controller.js b/app/certificates/controller.js index 38e5364f8..539345441 100644 --- a/app/certificates/controller.js +++ b/app/certificates/controller.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend(); +export default Controller.extend(); diff --git a/app/certificates/detail/controller.js b/app/certificates/detail/controller.js index b9d8f4e83..eac5b9ce1 100644 --- a/app/certificates/detail/controller.js +++ b/app/certificates/detail/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ actions: { changeCertificate(cert) { this.transitionToRoute('certificates.detail', cert.get('id')); diff --git a/app/certificates/detail/route.js b/app/certificates/detail/route.js index eb6379c29..d2776ac25 100644 --- a/app/certificates/detail/route.js +++ b/app/certificates/detail/route.js @@ -1,9 +1,10 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params/*, transition*/) { return this.get('store').find('certificate', params.certificate_id).then((cert) => { - return Ember.Object.create({ + return EmberObject.create({ certificate: cert, allCertificates: this.modelFor('certificates'), }); diff --git a/app/certificates/index/controller.js b/app/certificates/index/controller.js index 787adebdc..3f483efb8 100644 --- a/app/certificates/index/controller.js +++ b/app/certificates/index/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ sortBy: 'name', headers: [ { diff --git a/app/certificates/new/controller.js b/app/certificates/new/controller.js index 5c44e52b6..502a0f1bc 100644 --- a/app/certificates/new/controller.js +++ b/app/certificates/new/controller.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; import NewOrEdit from 'ui/mixins/new-or-edit'; -export default Ember.Controller.extend(NewOrEdit,{ +export default Controller.extend(NewOrEdit,{ isEncrypted: function() { var key = this.get('model.key')||''; return key.match(/^Proc-Type: 4,ENCRYPTED$/m) || key.match(/^-----BEGIN ENCRYPTED PRIVATE KEY-----$/m); diff --git a/app/certificates/new/route.js b/app/certificates/new/route.js index 1f7c55bf0..251dabaa2 100644 --- a/app/certificates/new/route.js +++ b/app/certificates/new/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(/*params, transition*/) { return this.get('store').createRecord({ type: 'certificate' diff --git a/app/certificates/route.js b/app/certificates/route.js index c939fd108..3c4b6504c 100644 --- a/app/certificates/route.js +++ b/app/certificates/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('store').findAll('certificate'); }, diff --git a/app/components/page-header/component.js b/app/components/page-header/component.js index 97d3b1289..77a814a78 100644 --- a/app/components/page-header/component.js +++ b/app/components/page-header/component.js @@ -1,5 +1,5 @@ import PageHeader from 'shared/components/page-header/component'; -import {getProjectId, getClusterId, bulkAdd} from 'ui/utils/navigation-tree'; +import { getProjectId, getClusterId, bulkAdd } from 'ui/utils/navigation-tree'; import C from 'shared/utils/constants'; const rootNav = [ diff --git a/app/console/controller.js b/app/console/controller.js index ff17c72e9..e335df0ea 100644 --- a/app/console/controller.js +++ b/app/console/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; import Console from 'ui/mixins/console'; -export default Ember.Controller.extend(Console, { +export default Controller.extend(Console, { command: null, }); diff --git a/app/console/route.js b/app/console/route.js index 8ebd1a45c..3690a862a 100644 --- a/app/console/route.js +++ b/app/console/route.js @@ -1,9 +1,11 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ - projects: Ember.inject.service(), - k8s: Ember.inject.service(), +export default Route.extend({ + projects: service(), + k8s: service(), model: function(params) { let store = this.get('store'); if (params.kubernetes) { @@ -17,7 +19,7 @@ export default Ember.Route.extend({ setupController(controller, model) { this._super(controller, model); if (controller.get('kubernetes')) { - controller.set('command', Ember.computed('model.labels', function() { + controller.set('command', computed('model.labels', function() { var labels = this.get('model.labels')||{}; if ( labels[C.LABEL.K8S_TOKEN]+'' === 'true' ) { return [ diff --git a/app/container-log/controller.js b/app/container-log/controller.js index 71a8773b2..79607e339 100644 --- a/app/container-log/controller.js +++ b/app/container-log/controller.js @@ -1,11 +1,12 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import Controller from '@ember/controller'; import Console from 'ui/mixins/console'; -export default Ember.Controller.extend(Console, { +export default Controller.extend(Console, { bootstrap: function() { - let body = Ember.$('body'); - let application = Ember.$('#application'); + let body = $('body'); + let application = $('#application'); body.css('overflow', 'hidden'); diff --git a/app/container-log/route.js b/app/container-log/route.js index fdf96a9b7..a51ac3ab5 100644 --- a/app/container-log/route.js +++ b/app/container-log/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params) { let store = this.get('store'); return store.find('container', params.instanceId).then((response) => { diff --git a/app/container/controller.js b/app/container/controller.js index 6d60adf04..509856745 100644 --- a/app/container/controller.js +++ b/app/container/controller.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - projects: Ember.inject.service(), +export default Controller.extend({ + projects: service(), actions: { changeContainer(container) { diff --git a/app/container/route.js b/app/container/route.js index 827af780e..3ab13131b 100644 --- a/app/container/route.js +++ b/app/container/route.js @@ -1,11 +1,12 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params) { return this.get('store').find('container', params.container_id).then((container) => { - return Ember.RSVP.hash({ + return hash({ hosts: this.get('store').findAll('host'), }).then((hash) => { diff --git a/app/containers/index/controller.js b/app/containers/index/controller.js index 0503ad0b6..1617d9a5e 100644 --- a/app/containers/index/controller.js +++ b/app/containers/index/controller.js @@ -1,5 +1,9 @@ -import Ember from 'ember'; -import { searchFields as containerSearchFields } from 'ui/components/container-dots/component'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; +import { + searchFields as containerSearchFields +} from 'shared/components/container-dots/component'; export const headers = [ { @@ -37,10 +41,10 @@ export const headers = [ }, ]; -export default Ember.Controller.extend({ - projectController: Ember.inject.controller('authenticated.project'), - projects: Ember.inject.service(), - prefs: Ember.inject.service(), +export default Controller.extend({ + projectController: controller('authenticated.project'), + projects: service(), + prefs: service(), queryParams: ['sortBy'], sortBy: 'name', @@ -51,14 +55,14 @@ export default Ember.Controller.extend({ }, }, - tags: Ember.computed.alias('projectController.tags'), - simpleMode: Ember.computed.alias('projectController.simpleMode'), - group: Ember.computed.alias('projectController.group'), - groupTableBy: Ember.computed.alias('projectController.groupTableBy'), - showStack: Ember.computed.alias('projectController.showStack'), - emptyStacks: Ember.computed.alias('projectController.emptyStacks'), - expandedInstances: Ember.computed.alias('projectController.expandedInstances'), - preSorts: Ember.computed.alias('projectController.preSorts'), + tags: alias('projectController.tags'), + simpleMode: alias('projectController.simpleMode'), + group: alias('projectController.group'), + groupTableBy: alias('projectController.groupTableBy'), + showStack: alias('projectController.showStack'), + emptyStacks: alias('projectController.emptyStacks'), + expandedInstances: alias('projectController.expandedInstances'), + preSorts: alias('projectController.preSorts'), headers: headers, extraSearchFields: ['id:prefix','displayIp:ip'], diff --git a/app/containers/index/route.js b/app/containers/index/route.js index 41af4a846..3cb0e2a20 100644 --- a/app/containers/index/route.js +++ b/app/containers/index/route.js @@ -1,16 +1,18 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ +export default Route.extend({ model() { var store = this.get('store'); - return Ember.RSVP.hash({ + return hash({ services: store.findAll('service'), instances: store.findAll('instance'), }); }, - setDefaultRoute: Ember.on('activate', function() { + setDefaultRoute: on('activate', function() { this.set(`session.${C.SESSION.CONTAINER_ROUTE}`,'containers'); }), }); diff --git a/app/containers/run/controller.js b/app/containers/run/controller.js index ee8be7a4a..9a5c26d2d 100644 --- a/app/containers/run/controller.js +++ b/app/containers/run/controller.js @@ -1,9 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ - growl: Ember.inject.service(), - projects: Ember.inject.service(), - modalService: Ember.inject.service('modal'), +export default Controller.extend({ + growl: service(), + projects: service(), + modalService: service('modal'), queryParams: ['stackId','serviceId','containerId','addSidekick','launchConfigIndex','upgrade'], stackId: null, diff --git a/app/containers/run/route.js b/app/containers/run/route.js index 15a32360a..7a3897613 100644 --- a/app/containers/run/route.js +++ b/app/containers/run/route.js @@ -1,3 +1,7 @@ +import EmberObject from '@ember/object'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import Ember from 'ember'; import C from 'ui/utils/constants'; @@ -9,8 +13,8 @@ export const EMPTY_LC = JSON.stringify({ restartPolicy: {name: 'always'}, }); -export default Ember.Route.extend({ - prefs: Ember.inject.service(), +export default Route.extend({ + prefs: service(), queryParams: { launchConfigIndex: { @@ -58,7 +62,7 @@ export default Ember.Route.extend({ dependencies['container'] = store.find('container', params.containerId); } - return Ember.RSVP.hash(dependencies, 'Load dependencies').then((results) => { + return hash(dependencies, 'Load dependencies').then((results) => { if ( results.hasOwnProperty('service') ) { // Service Upgrade/Clone let service = results.service; @@ -69,7 +73,7 @@ export default Ember.Route.extend({ let clone = service.clone(); if ( params.addSidekick ) { - return Ember.Object.create({ + return EmberObject.create({ mode: 'sidekick', service: clone, launchConfig: emptyLc, @@ -79,7 +83,7 @@ export default Ember.Route.extend({ } else if ( lcIndex === null ) { // If there are sidekicks, you need to pick one & come back if ( service.secondaryLaunchConfigs && service.secondaryLaunchConfigs.length ) { - return Ember.Object.create({ + return EmberObject.create({ service: service, selectLaunchConfig: true, }); @@ -100,7 +104,7 @@ export default Ember.Route.extend({ if ( params.upgrade) { // Upgrade service - let out = Ember.Object.create({ + let out = EmberObject.create({ mode: 'service', service: clone, launchConfig: lc, @@ -118,7 +122,7 @@ export default Ember.Route.extend({ // Clone service let neu = store.createRecord(clone.serializeForNew()); - return Ember.Object.create({ + return EmberObject.create({ mode: 'service', service: neu, launchConfig: lc, @@ -138,7 +142,7 @@ export default Ember.Route.extend({ if ( params.upgrade) { emptyService.set('launchConfig', clone); - return Ember.Object.create({ + return EmberObject.create({ mode: 'container', service: emptyService, launchConfig: clone, @@ -148,7 +152,7 @@ export default Ember.Route.extend({ } else { let neu = store.createRecord(clone.serializeForNew()); emptyService.set('launchConfig', neu); - return Ember.Object.create({ + return EmberObject.create({ mode: 'container', service: emptyService, launchConfig: neu, @@ -167,7 +171,7 @@ export default Ember.Route.extend({ // New Container/Service emptyService.set('launchConfig', emptyLc); - return Ember.Object.create({ + return EmberObject.create({ mode: mode, service: emptyService, launchConfig: emptyLc, diff --git a/app/dns/index/controller.js b/app/dns/index/controller.js index 7c82d5f8b..981df3657 100644 --- a/app/dns/index/controller.js +++ b/app/dns/index/controller.js @@ -1,16 +1,18 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - projectController: Ember.inject.controller('authenticated.project'), - projects: Ember.inject.service(), +export default Controller.extend({ + projectController: controller('authenticated.project'), + projects: service(), - tags: Ember.computed.alias('projectController.tags'), - simpleMode: Ember.computed.alias('projectController.simpleMode'), - groupTableBy: Ember.computed.alias('projectController.groupTableBy'), - showStack: Ember.computed.alias('projectController.showStack'), - emptyStacks: Ember.computed.alias('projectController.emptyStacks'), - expandedInstances: Ember.computed.alias('projectController.expandedInstances'), - preSorts: Ember.computed.alias('projectController.preSorts'), + tags: alias('projectController.tags'), + simpleMode: alias('projectController.simpleMode'), + groupTableBy: alias('projectController.groupTableBy'), + showStack: alias('projectController.showStack'), + emptyStacks: alias('projectController.emptyStacks'), + expandedInstances: alias('projectController.expandedInstances'), + preSorts: alias('projectController.preSorts'), queryParams: ['sortBy'], sortBy: 'name', diff --git a/app/dns/index/route.js b/app/dns/index/route.js index d73900441..f4b74ff7e 100644 --- a/app/dns/index/route.js +++ b/app/dns/index/route.js @@ -1,15 +1,17 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ +export default Route.extend({ model() { var store = this.get('store'); - return Ember.RSVP.hash({ + return hash({ services: store.findAll('service'), }); }, - setDefaultRoute: Ember.on('activate', function() { + setDefaultRoute: on('activate', function() { this.set(`session.${C.SESSION.CONTAINER_ROUTE}`,'dns'); }), }); diff --git a/app/dns/new/controller.js b/app/dns/new/controller.js index 0299c1368..41ebbb238 100644 --- a/app/dns/new/controller.js +++ b/app/dns/new/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['stackId','serviceId'], stackId: null, serviceId: null, diff --git a/app/dns/new/route.js b/app/dns/new/route.js index 1c4a60c0c..23fb21a38 100644 --- a/app/dns/new/route.js +++ b/app/dns/new/route.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params/*, transition*/) { var store = this.get('store'); @@ -10,7 +11,7 @@ export default Ember.Route.extend({ deps['service'] = store.find('service', params.serviceId); } - return Ember.RSVP.hash(deps, 'Load dependencies').then(function(hash) { + return hash(deps, 'Load dependencies').then(function(hash) { let record; let stackId = params.stackId; diff --git a/app/fail-whale/route.js b/app/fail-whale/route.js index 7c950dcb4..1bee3a06e 100644 --- a/app/fail-whale/route.js +++ b/app/fail-whale/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - storeReset: Ember.inject.service(), +export default Route.extend({ + storeReset: service(), actions: { activate: function() { diff --git a/app/host/controller.js b/app/host/controller.js index 4091f6935..53c72c653 100644 --- a/app/host/controller.js +++ b/app/host/controller.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Controller from '@ember/controller'; import ContainerSparkStats from 'ui/mixins/container-spark-stats'; -export default Ember.Controller.extend(ContainerSparkStats, { - host: Ember.computed.alias('model.host'), +export default Controller.extend(ContainerSparkStats, { + host: alias('model.host'), queryParams: ['sortBy'], sortBy: 'name', diff --git a/app/host/route.js b/app/host/route.js index 20e962049..25e996cc6 100644 --- a/app/host/route.js +++ b/app/host/route.js @@ -1,12 +1,14 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { hash, all } from 'rsvp'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params) { var store = this.get('store'); - return store.findAll('host').then((all) => { + return store.findAll('host').then((hosts) => { - return Ember.RSVP.hash({ + return hash({ host: store.find('host', params.host_id), service: store.findAll('service'), instance: store.findAll('instance'), @@ -21,9 +23,9 @@ export default Ember.Route.extend({ }); }); - return Ember.RSVP.all(promises).then(() => { - return Ember.Object.create({ - all: all, + return all(promises).then(() => { + return EmberObject.create({ + all: hosts, host: hash.host, storagePools: out }); diff --git a/app/hosts/controller.js b/app/hosts/controller.js index 38e5364f8..539345441 100644 --- a/app/hosts/controller.js +++ b/app/hosts/controller.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend(); +export default Controller.extend(); diff --git a/app/hosts/index/controller.js b/app/hosts/index/controller.js index 8ef2c437a..41327048e 100644 --- a/app/hosts/index/controller.js +++ b/app/hosts/index/controller.js @@ -1,12 +1,16 @@ -import Ember from 'ember'; -import C from 'ui/utils/constants'; -import { headersWithoutHost as containerHeaders } from 'ui/components/container-table/component'; -import { headersProject as hostHeaders } from 'ui/components/host-row/component'; +import { scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; +import C from 'shared/utils/constants'; +import { + headersWithoutHost as containerHeaders +} from 'shared/components/container-table/component'; +import { headersProject as hostHeaders } from 'shared/components/host-row/component'; -export default Ember.Controller.extend({ - prefs: Ember.inject.service(), - projects: Ember.inject.service(), - projectController: Ember.inject.controller('authenticated.project'), +export default Controller.extend({ + prefs: service(), + projects: service(), + projectController: controller('authenticated.project'), mode: 'list', sortBy: 'name', @@ -20,7 +24,7 @@ export default Ember.Controller.extend({ this._super(...arguments); this.set('expandedHosts',[]); - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { let key = `prefs.${C.PREFS.HOST_VIEW}`; let mode = this.get(key) || this.get('mode'); this.transitionToRoute({queryParams: {mode}}); diff --git a/app/hosts/index/route.js b/app/hosts/index/route.js index 48c3f231e..60b7f2140 100644 --- a/app/hosts/index/route.js +++ b/app/hosts/index/route.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('store').findAll('host').then((hosts) => { return { @@ -14,7 +15,7 @@ export default Ember.Route.extend({ let choices = ['list','dot','grouped']; let cur = this.get('controller.mode'); let neu = choices[((choices.indexOf(cur)+1) % choices.length)]; - Ember.run.next(() => { + next(() => { this.set('controller.mode', neu); }); }, diff --git a/app/hosts/route.js b/app/hosts/route.js index f67cd992c..cd181a7f2 100644 --- a/app/hosts/route.js +++ b/app/hosts/route.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - prefs: Ember.inject.service(), +export default Route.extend({ + prefs: service(), model: function() { var store = this.get('store'); - return Ember.RSVP.hash({ + return hash({ hosts: store.findAll('host'), instances: store.findAll('instance'), }).then((hash) => { diff --git a/app/ie/controller.js b/app/ie/controller.js index 2ee908a8d..f8c3de0ec 100644 --- a/app/ie/controller.js +++ b/app/ie/controller.js @@ -1,10 +1,12 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import { schedule } from '@ember/runloop'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ bootstrap: function() { - Ember.run.schedule('afterRender', this, () => { - Ember.$('#loading-overlay').hide(); - Ember.$('#loading-underlay').hide(); + schedule('afterRender', this, () => { + $('#loading-overlay').hide(); + $('#loading-underlay').hide(); }); }.on('init') }); diff --git a/app/infrastructure-tab/controller.js b/app/infrastructure-tab/controller.js index 38e5364f8..539345441 100644 --- a/app/infrastructure-tab/controller.js +++ b/app/infrastructure-tab/controller.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend(); +export default Controller.extend(); diff --git a/app/infrastructure-tab/index/route.js b/app/infrastructure-tab/index/route.js index edeb2f088..5636e2191 100644 --- a/app/infrastructure-tab/index/route.js +++ b/app/infrastructure-tab/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ beforeModel: function() { this.transitionTo('hosts'); } diff --git a/app/initializers/extend-ember-input.js b/app/initializers/extend-ember-input.js index 7eaa34d55..d2dc5a250 100644 --- a/app/initializers/extend-ember-input.js +++ b/app/initializers/extend-ember-input.js @@ -1,14 +1,16 @@ -import Ember from 'ember'; +import Checkbox from '@ember/component/checkbox'; +import TextArea from '@ember/component/text-area'; +import TextField from '@ember/component/text-field'; import SafeStyle from 'ui/mixins/safe-style'; export function initialize(/*application */) { // Allow style to be bound on inputs - Ember.TextField.reopen(SafeStyle); - Ember.TextArea.reopen(SafeStyle); - Ember.Checkbox.reopen(SafeStyle); + TextField.reopen(SafeStyle); + TextArea.reopen(SafeStyle); + Checkbox.reopen(SafeStyle); // Disable iOS auto-capitalization - Ember.TextField.reopen({ + TextField.reopen({ attributeBindings: ['autocapitalize'], autocapitalize: 'none', }); diff --git a/app/initializers/extend-ember-link.js b/app/initializers/extend-ember-link.js index 1d38918f2..041851764 100644 --- a/app/initializers/extend-ember-link.js +++ b/app/initializers/extend-ember-link.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import LinkComponent from '@ember/routing/link-component'; export function initialize(/*application */) { - Ember.LinkComponent.reopen({ + LinkComponent.reopen({ attributeBindings: ['tooltip', 'data-placement'], // Set activeParent=true on a {{link-to}} to automatically propagate the active diff --git a/app/initializers/extend-ember-route.js b/app/initializers/extend-ember-route.js index d48faabf0..bfc46a8e6 100644 --- a/app/initializers/extend-ember-route.js +++ b/app/initializers/extend-ember-route.js @@ -1,9 +1,8 @@ -import Ember from "ember"; - -const { getOwner } = Ember; +import Route from '@ember/routing/route'; +import { getOwner } from '@ember/application'; export function initialize(/*application */) { - Ember.Route.reopen({ + Route.reopen({ // Remember the current route (into the application route's previousRoute/Params properties) beforeModel: function() { diff --git a/app/instance-initializers/intl.js b/app/instance-initializers/intl.js index 4c724e1dc..e26935457 100644 --- a/app/instance-initializers/intl.js +++ b/app/instance-initializers/intl.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; +import { makeArray } from '@ember/array'; import missingMessage from 'ui/utils/intl/missing-message'; -const { get, makeArray } = Ember; export function initialize(instance) { let intl = instance.lookup('service:intl'); diff --git a/app/ll/service.js b/app/ll/service.js index b9261c61d..2c0547143 100644 --- a/app/ll/service.js +++ b/app/ll/service.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Service from '@ember/service'; -export default Ember.Service.extend({ +export default Service.extend({ }); diff --git a/app/loading/controller.js b/app/loading/controller.js index 38e5364f8..539345441 100644 --- a/app/loading/controller.js +++ b/app/loading/controller.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend(); +export default Controller.extend(); diff --git a/app/loading/route.js b/app/loading/route.js index dd457cb3b..b9e2cdfe5 100644 --- a/app/loading/route.js +++ b/app/loading/route.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend(); +export default Route.extend(); diff --git a/app/logout/route.js b/app/logout/route.js index 8a0c94f43..c961c9e4b 100644 --- a/app/logout/route.js +++ b/app/logout/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - access: Ember.inject.service(), +export default Route.extend({ + access: service(), beforeModel: function(transition) { transition.send('logout'); diff --git a/app/models/account.js b/app/models/account.js index 0f001f904..ab3f2c1b1 100644 --- a/app/models/account.js +++ b/app/models/account.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import PolledResource from 'ui/mixins/cattle-polled-resource'; var Account = Resource.extend(PolledResource, { type: 'account', - modalService: Ember.inject.service('modal'), + modalService: service('modal'), reservedKeys: ['_allPasswords'], diff --git a/app/models/apikey.js b/app/models/apikey.js index 7ca411cb1..72596e318 100644 --- a/app/models/apikey.js +++ b/app/models/apikey.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import PolledResource from 'ui/mixins/cattle-polled-resource'; import C from 'ui/utils/constants'; @@ -8,7 +8,7 @@ var ApiKey = Resource.extend(PolledResource,{ type: 'apiKey', publicValue: null, secretValue: null, - modalService: Ember.inject.service('modal'), + modalService: service('modal'), actions: { deactivate: function() { diff --git a/app/models/catalogtemplate.js b/app/models/catalogtemplate.js index 30628a7e9..dc048466a 100644 --- a/app/models/catalogtemplate.js +++ b/app/models/catalogtemplate.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import { parseExternalId } from 'ui/utils/parse-externalid'; import C from 'ui/utils/constants'; export default Resource.extend({ - catalog: Ember.inject.service(), + catalog: service(), type: 'catalogTemplate', diff --git a/app/models/certificate.js b/app/models/certificate.js index 92f017971..b470202cb 100644 --- a/app/models/certificate.js +++ b/app/models/certificate.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; export default Resource.extend({ - modalService: Ember.inject.service('modal'), + modalService: service('modal'), actions: { edit: function() { this.get('modalService').toggleModal('modal-edit-certificate', this); diff --git a/app/models/cluster.js b/app/models/cluster.js index 614c1d898..73d69f5da 100644 --- a/app/models/cluster.js +++ b/app/models/cluster.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import PolledResource from 'ui/mixins/cattle-polled-resource'; var Cluster = Resource.extend(PolledResource, { - userStore: Ember.inject.service('user-store'), - projectsService: Ember.inject.service('projects'), - router: Ember.inject.service(), + userStore: service('user-store'), + projectsService: service('projects'), + router: service(), type: 'cluster', @@ -15,7 +17,7 @@ var Cluster = Resource.extend(PolledResource, { }, }, - isKubernetes: Ember.computed.equal('orchestration','kubernetes'), + isKubernetes: equal('orchestration','kubernetes'), delete: function(/*arguments*/) { const promise = this._super.apply(this, arguments); @@ -65,7 +67,7 @@ var Cluster = Resource.extend(PolledResource, { return out; }.property('projects.@each.{name,clusterOwner}'), - canEdit: Ember.computed('actionLinks.{activate,deactivate}','links.{update,remove}', function() { + canEdit: computed('actionLinks.{activate,deactivate}','links.{update,remove}', function() { return (this.get('links.update') && this.get('state') === 'inactive') ? true : false; }), diff --git a/app/models/container.js b/app/models/container.js index 3da84bf2b..255f1a039 100644 --- a/app/models/container.js +++ b/app/models/container.js @@ -1,3 +1,6 @@ +import { computed } from '@ember/object'; +import { later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; import Ember from 'ember'; import C from 'ui/utils/constants'; import Util from 'ui/utils/util'; @@ -7,9 +10,9 @@ import { formatSi } from 'shared/utils/util'; import EndpointPorts from 'ui/mixins/endpoint-ports'; var Container = Instance.extend(EndpointPorts, { - projects: Ember.inject.service(), - modalService: Ember.inject.service('modal'), - router: Ember.inject.service(), + projects: service(), + modalService: service('modal'), + router: service(), // Common to all instances requestedHostId: null, primaryIpAddress: null, @@ -63,7 +66,7 @@ var Container = Instance.extend(EndpointPorts, { popoutShell: function() { let proj = this.get('projects.current.id'); let id = this.get('id'); - Ember.run.later(() => { + later(() => { window.open(`//${window.location.host}/env/${proj}/infra/console?instanceId=${id}&isPopup=true`, '_blank', "toolbars=0,width=900,height=700,left=200,top=200"); }); }, @@ -71,7 +74,7 @@ var Container = Instance.extend(EndpointPorts, { popoutLogs: function() { let proj = this.get('projects.current.id'); let id = this.get('id'); - Ember.run.later(() => { + later(() => { window.open(`//${window.location.host}/env/${proj}/infra/container-log?instanceId=${id}&isPopup=true`, '_blank', "toolbars=0,width=700,height=715,left=200,top=200"); }); }, @@ -134,7 +137,7 @@ var Container = Instance.extend(EndpointPorts, { }.property('actionLinks.{restart,start,stop,restore,execute,logs,upgrade,converttoservice}','canDelete','isSystem','nativeContainer','service.links.update'), - memoryReservationBlurb: Ember.computed('memoryReservation', function() { + memoryReservationBlurb: computed('memoryReservation', function() { if ( this.get('memoryReservation') ) { return formatSi(this.get('memoryReservation'), 1024, 'iB', 'B'); } @@ -164,7 +167,7 @@ var Container = Instance.extend(EndpointPorts, { return ['running','migrating','restarting'].indexOf(this.get('state')) >= 0; }.property('state'), - displayState: Ember.computed('_displayState','exitCode', function() { + displayState: computed('_displayState','exitCode', function() { let out = this.get('_displayState'); let code = this.get('exitCode'); if ( this.get('state') === 'stopped' && this.get('exitCode') > 0) { @@ -174,7 +177,7 @@ var Container = Instance.extend(EndpointPorts, { return out; }), - displayEnvironmentVars: Ember.computed('environment', function() { + displayEnvironmentVars: computed('environment', function() { var envs = []; var environment = this.get('environment')||{}; Object.keys(environment).forEach((key) => { diff --git a/app/models/host.js b/app/models/host.js index 8f843df0e..d45c22d9e 100644 --- a/app/models/host.js +++ b/app/models/host.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import EmberObject, { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; import Util from 'ui/utils/util'; import Resource from 'ember-api-store/models/resource'; import { formatMib, formatSi } from 'shared/utils/util'; @@ -91,7 +92,7 @@ var Host = Resource.extend(StateCounts,{ return out; }.property('actionLinks.{activate,deactivate,evacuate}','links.{update,remove,config}','driver'), - displayIp: Ember.computed.alias('agentIpAddress'), + displayIp: alias('agentIpAddress'), displayName: function() { let name = this.get('name'); @@ -123,7 +124,7 @@ var Host = Resource.extend(StateCounts,{ return out; }.property('info.osInfo.operatingSystem','labels'), - osDetail: Ember.computed.alias('info.osInfo.operatingSystem'), + osDetail: alias('info.osInfo.operatingSystem'), dockerEngineVersion: function() { if ( this.get('info.osInfo') ) @@ -150,7 +151,7 @@ var Host = Resource.extend(StateCounts,{ } }.property('dockerEngineVersion',`settings.${C.SETTING.SUPPORTED_DOCKER}`,`settings.${C.SETTING.NEWEST_DOCKER}`), - dockerDetail: Ember.computed.alias('info.osInfo.operatingSystem'), + dockerDetail: alias('info.osInfo.operatingSystem'), kernelBlurb: function() { if ( this.get('info.osInfo') ) @@ -175,7 +176,7 @@ var Host = Resource.extend(StateCounts,{ } }.property('info.cpuInfo.{count,mhz}'), - cpuTooltip: Ember.computed.alias('info.cpuInfo.modelName'), + cpuTooltip: alias('info.cpuInfo.modelName'), memoryBlurb: function() { if ( this.get('info.memoryInfo') ) @@ -184,14 +185,14 @@ var Host = Resource.extend(StateCounts,{ } }.property('info.memoryInfo.memTotal'), - memoryLimitBlurb: Ember.computed('memory', function() { + memoryLimitBlurb: computed('memory', function() { if ( this.get('memory') ) { return formatSi(this.get('memory'), 1024, 'iB', 'B'); } }), - localStorageBlurb: Ember.computed('localStorageMb', function() { + localStorageBlurb: computed('localStorageMb', function() { if (this.get('localStorageMb')) { return formatSi(this.get('localStorageMb'), 1024, 'iB', 'B', 2 /*start at 1024^2==MB */); } @@ -229,7 +230,7 @@ var Host = Resource.extend(StateCounts,{ var out = []; var fses = this.get('info.diskInfo.fileSystems')||[]; Object.keys(fses).forEach((fs) => { - out.pushObject(Ember.Object.create({label: fs, value: formatMib(fses[fs].capacity)})); + out.pushObject(EmberObject.create({label: fs, value: formatMib(fses[fs].capacity)})); }); return out; diff --git a/app/models/identity.js b/app/models/identity.js index a46361398..158ed521e 100644 --- a/app/models/identity.js +++ b/app/models/identity.js @@ -1,13 +1,14 @@ -import Ember from 'ember'; +import { equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import C from 'ui/utils/constants'; var Identity = Resource.extend({ - intl: Ember.inject.service(), + intl: service(), - isUser: Ember.computed.equal('externalIdType', C.PROJECT.TYPE_USER), - isTeam: Ember.computed.equal('externalIdType', C.PROJECT.TYPE_TEAM), - isOrg: Ember.computed.equal('externalIdType', C.PROJECT.TYPE_ORG), + isUser: equal('externalIdType', C.PROJECT.TYPE_USER), + isTeam: equal('externalIdType', C.PROJECT.TYPE_TEAM), + isOrg: equal('externalIdType', C.PROJECT.TYPE_ORG), avatarSrc: function() { if ( this.get('isGithub') && this.get('profilePicture') ) diff --git a/app/models/instance.js b/app/models/instance.js index c7d888c2d..bb898344d 100644 --- a/app/models/instance.js +++ b/app/models/instance.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import Resource from 'ember-api-store/models/resource'; import C from 'ui/utils/constants'; import { formatSi } from 'shared/utils/util'; @@ -34,7 +34,7 @@ var Instance = Resource.extend({ return labels && !!labels[C.LABEL.SYSTEM_TYPE]; }.property('system','labels'), - memoryReservationBlurb: Ember.computed('memoryReservation', function() { + memoryReservationBlurb: computed('memoryReservation', function() { if ( this.get('memoryReservation') ) { return formatSi(this.get('memoryReservation'), 1024, 'iB', 'B'); } diff --git a/app/models/kubernetesservice.js b/app/models/kubernetesservice.js index 297167f91..e50f15d5c 100644 --- a/app/models/kubernetesservice.js +++ b/app/models/kubernetesservice.js @@ -1,3 +1,4 @@ +import { alias } from '@ember/object/computed'; import Service from 'ui/models/service'; import Ember from 'ember'; @@ -5,7 +6,7 @@ const esc = Ember.Handlebars.Utils.escapeExpression; var KubernetesService = Service.extend({ type: 'kubernetesService', - spec: Ember.computed.alias('template.spec'), + spec: alias('template.spec'), displayPorts: function() { var pub = ''; diff --git a/app/models/kubernetesstack.js b/app/models/kubernetesstack.js index a5a3dfba4..ae1f2169b 100644 --- a/app/models/kubernetesstack.js +++ b/app/models/kubernetesstack.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import Stack from 'ui/models/stack'; var KubernetesStack = Stack.extend({ type: 'kubernetesStack', - k8s: Ember.inject.service(), + k8s: service(), availableActions: function() { let l = this.get('links'); diff --git a/app/models/launchconfig.js b/app/models/launchconfig.js index bd9967a10..50bd77626 100644 --- a/app/models/launchconfig.js +++ b/app/models/launchconfig.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import Resource from 'ember-api-store/models/resource'; var LaunchConfig = Resource.extend({ - displayEnvironmentVars: Ember.computed('launchConfig.environment', function() { + displayEnvironmentVars: computed('launchConfig.environment', function() { var envs = []; var environment = this.get('launchConfig.environment')||{}; Object.keys(environment).forEach((key) => { diff --git a/app/models/loadbalancerservice.js b/app/models/loadbalancerservice.js index c3df4c2ea..235b819df 100644 --- a/app/models/loadbalancerservice.js +++ b/app/models/loadbalancerservice.js @@ -1,13 +1,13 @@ +import { inject as service } from '@ember/service'; import Service from 'ui/models/service'; -import Ember from 'ember'; import C from 'ui/utils/constants'; import { parsePortSpec } from 'ui/utils/parse-port'; var LoadBalancerService = Service.extend({ type: 'loadBalancerService', - intl: Ember.inject.service(), - settings: Ember.inject.service(), + intl: service(), + settings: service(), initPorts() { let rules = this.get('lbConfig.portRules')||[]; diff --git a/app/models/machinedriver.js b/app/models/machinedriver.js index ac1b89be3..fc8518854 100644 --- a/app/models/machinedriver.js +++ b/app/models/machinedriver.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import PolledResource from 'ui/mixins/cattle-polled-resource'; import C from 'ui/utils/constants'; @@ -26,9 +27,9 @@ function displayUrl(url) { var machineDriver = Resource.extend(PolledResource, { type: 'machineDriver', - modalService: Ember.inject.service('modal'), - catalog: Ember.inject.service(), - intl: Ember.inject.service(), + modalService: service('modal'), + catalog: service(), + intl: service(), actions: { activate: function() { @@ -44,7 +45,7 @@ var machineDriver = Resource.extend(PolledResource, { }, }, - catalogTemplateIcon: Ember.computed('externalId', function() { + catalogTemplateIcon: computed('externalId', function() { let parsedExtId = parseExternalId(this.get('externalId')) || null; if (!parsedExtId) { @@ -59,11 +60,11 @@ var machineDriver = Resource.extend(PolledResource, { }), - displayName: Ember.computed('displayIcon', 'intl.locale', function() { + displayName: computed('displayIcon', 'intl.locale', function() { return this.get('intl').t('machine.driver.'+this.get('displayIcon')); }), - displayIcon: Ember.computed('name', function() { + displayIcon: computed('name', function() { let name = this.get('name'); if ( this.get('hasBuiltinUi') ) { @@ -77,7 +78,7 @@ var machineDriver = Resource.extend(PolledResource, { return displayUrl(this.get('url')); }.property('url'), - displayChecksum: Ember.computed('checksum', function() { + displayChecksum: computed('checksum', function() { return this.get('checksum').substring(0, 8); }), diff --git a/app/models/mountentry.js b/app/models/mountentry.js index 73ceacfb9..177a2860f 100644 --- a/app/models/mountentry.js +++ b/app/models/mountentry.js @@ -1,16 +1,18 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import { denormalizeId } from 'ember-api-store/utils/denormalize'; export default Resource.extend({ - intl: Ember.inject.service(), - isReadWrite: Ember.computed.equal('permission','rw'), - isReadOnly: Ember.computed.equal('permission','ro'), + intl: service(), + isReadWrite: equal('permission','rw'), + isReadOnly: equal('permission','ro'), instance: denormalizeId('instanceId'), volume: denormalizeId('volumeId'), - displayVolumeName: Ember.computed('volumeName', function() { + displayVolumeName: computed('volumeName', function() { let name = this.get('volumeName'); if ( name.match(/^[0-9a-f]{64}$/) ) { return (name.substr(0,12)+'…').htmlSafe(); @@ -19,7 +21,7 @@ export default Resource.extend({ return name; }), - displayPermission: Ember.computed('permission', function() { + displayPermission: computed('permission', function() { let permission = this.get('permission'); let out = null; let intl = this.get('intl'); diff --git a/app/models/portrule.js b/app/models/portrule.js index 243c4ffb5..045e416d7 100644 --- a/app/models/portrule.js +++ b/app/models/portrule.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; import Resource from 'ember-api-store/models/resource'; import { denormalizeId } from 'ember-api-store/utils/denormalize'; @@ -44,7 +45,7 @@ let PortRule = Resource.extend({ return ['http','https'].includes(this.get('protocol')); }.property('protocol'), - canSticky: Ember.computed.alias('canPath'), + canSticky: alias('canPath'), ipProtocol: function() { if ( this.get('protocol') === 'udp' ) { @@ -55,7 +56,7 @@ let PortRule = Resource.extend({ }.property('protocol'), autoSetPort: function() { - Ember.run.later(this, setTlsPort, 500); + later(this, setTlsPort, 500); }.observes('protocol','sourcePort'), }); diff --git a/app/models/processinstance.js b/app/models/processinstance.js index f6cc2e32d..9d9bd1c0e 100644 --- a/app/models/processinstance.js +++ b/app/models/processinstance.js @@ -1,12 +1,12 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import Resource from 'ember-api-store/models/resource'; var ProcessInstance = Resource.extend({ - runTime: Ember.computed('startTime', 'endTime', function(){ + runTime: computed('startTime', 'endTime', function(){ return moment(this.get('endTime')).diff(this.get('startTime'), 'seconds'); }), - typeAndId: Ember.computed('resourceType','resourceId', function() { + typeAndId: computed('resourceType','resourceId', function() { return this.get('resourceType') + ':' + this.get('resourceId'); }), diff --git a/app/models/project.js b/app/models/project.js index 89fd44b10..f7a56e7d5 100644 --- a/app/models/project.js +++ b/app/models/project.js @@ -1,17 +1,18 @@ +import { notEmpty, equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import PolledResource from 'ui/mixins/cattle-polled-resource'; -import Ember from 'ember'; import Util from 'ui/utils/util'; import C from 'ui/utils/constants'; import { denormalizeId } from 'ember-api-store/utils/denormalize'; var Project = Resource.extend(PolledResource, { - access: Ember.inject.service(), - prefs: Ember.inject.service(), - projects: Ember.inject.service(), - settings: Ember.inject.service(), - modalService: Ember.inject.service('modal'), - router: Ember.inject.service(), + access: service(), + prefs: service(), + projects: service(), + settings: service(), + modalService: service('modal'), + router: service(), type: 'project', @@ -20,9 +21,9 @@ var Project = Resource.extend(PolledResource, { cluster: denormalizeId('clusterId'), - canAddHost: Ember.computed.notEmpty('cluster.registrationToken.hostCommand'), - canImport: Ember.computed.notEmpty('cluster.registrationToken.clusterCommand'), - isKubernetes: Ember.computed.equal('cluster.orchestration','kubernetes'), + canAddHost: notEmpty('cluster.registrationToken.hostCommand'), + canImport: notEmpty('cluster.registrationToken.clusterCommand'), + isKubernetes: equal('cluster.orchestration','kubernetes'), actions: { edit: function() { @@ -121,7 +122,7 @@ var Project = Resource.extend(PolledResource, { return Util.ucFirst(this.get('orchestration')); }.property('orchestration'), - isWindows: Ember.computed.equal('orchestration','windows'), + isWindows: equal('orchestration','windows'), // @TODO real data numStacks: function() { diff --git a/app/models/publicendpoint.js b/app/models/publicendpoint.js index ebd859519..80bab3509 100644 --- a/app/models/publicendpoint.js +++ b/app/models/publicendpoint.js @@ -1,19 +1,19 @@ -import Ember from 'ember'; +import { isArray } from '@ember/array'; import Resource from 'ember-api-store/models/resource'; import { denormalizeId } from 'ember-api-store/utils/denormalize'; const BIND_ANY = ['0.0.0.0','::']; function portMatch(ports, equals, endsWith) { - if ( !Ember.isArray(ports) ) { + if ( !isArray(ports) ) { ports = [ports]; } - if ( !Ember.isArray(equals) ) { + if ( !isArray(equals) ) { equals = [equals]; } - if ( !Ember.isArray(endsWith) ) { + if ( !isArray(endsWith) ) { endsWith = [endsWith]; } diff --git a/app/models/receiver.js b/app/models/receiver.js index 39a59eec0..b05a36bba 100644 --- a/app/models/receiver.js +++ b/app/models/receiver.js @@ -1,12 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import PolledResource from 'ui/mixins/cattle-polled-resource'; import { denormalizeId } from 'ember-api-store/utils/denormalize'; var Receiver = Resource.extend(PolledResource, { - regularStore: Ember.inject.service('store'), - intl: Ember.inject.service(), - router: Ember.inject.service(), + regularStore: service('store'), + intl: service(), + router: service(), service: denormalizeId('opt.serviceId','service','regularStore'), diff --git a/app/models/registry.js b/app/models/registry.js index fc3bca27d..e871a148f 100644 --- a/app/models/registry.js +++ b/app/models/registry.js @@ -1,10 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; var Registry = Resource.extend({ type: 'registry', serverAddress: null, - modalService: Ember.inject.service('modal'), + modalService: service('modal'), actions: { deactivate: function() { @@ -17,7 +19,7 @@ var Registry = Resource.extend({ edit: function() { this.get('store').find('registry').then((registries) => { - this.get('modalService').toggleModal('modal-edit-registry', Ember.Object.create({ + this.get('modalService').toggleModal('modal-edit-registry', EmberObject.create({ registries: registries, registry: this, credential: this.get('credential'), @@ -42,7 +44,7 @@ var Registry = Resource.extend({ ]; }.property('actionLinks.{activate,deactivate}','links.{update,remove}'), - displayName: Ember.computed.alias('displayAddress'), + displayName: alias('displayAddress'), displayAddress: function() { var address = this.get('serverAddress').toLowerCase(); if ( address === 'index.docker.io' ) diff --git a/app/models/scalinggroup.js b/app/models/scalinggroup.js index bf0be9019..b0c344a64 100644 --- a/app/models/scalinggroup.js +++ b/app/models/scalinggroup.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import Service from 'ui/models/service'; var ScalingGroup = Service.extend({ type: 'scalingGroup', - displayEnvironmentVars: Ember.computed('launchConfig.environment', function() { + displayEnvironmentVars: computed('launchConfig.environment', function() { var envs = []; var environment = this.get('launchConfig.environment')||{}; Object.keys(environment).forEach((key) => { diff --git a/app/models/secondarylaunchconfig.js b/app/models/secondarylaunchconfig.js index 4289f4272..d7306560f 100644 --- a/app/models/secondarylaunchconfig.js +++ b/app/models/secondarylaunchconfig.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; import LC from 'ui/models/launchconfig'; var secondaryLaunchConfigs = LC.extend({ - displayEnvironmentVars: Ember.computed('launchConfig.environment', function() { + displayEnvironmentVars: computed('launchConfig.environment', function() { var envs = []; var environment = this.get('launchConfig.environment')||{}; Object.keys(environment).forEach((key) => { diff --git a/app/models/secret.js b/app/models/secret.js index 2aa26a07d..16a31d210 100644 --- a/app/models/secret.js +++ b/app/models/secret.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; export default Resource.extend({ - modalService: Ember.inject.service('modal'), + modalService: service('modal'), actions: { edit: function() { this.get('modalService').toggleModal('modal-edit-secret', this); diff --git a/app/models/service.js b/app/models/service.js index 1ab3e6798..9b5a3730e 100644 --- a/app/models/service.js +++ b/app/models/service.js @@ -1,5 +1,7 @@ +import { later, cancel } from '@ember/runloop'; +import { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; import Resource from 'ember-api-store/models/resource'; -import Ember from 'ember'; import C from 'ui/utils/constants'; import Util from 'ui/utils/util'; import { denormalizeId, denormalizeIdArray } from 'ember-api-store/utils/denormalize'; @@ -18,7 +20,7 @@ var Service = Resource.extend(StateCounts, EndpointPorts, { router: service(), instances: denormalizeIdArray('instanceIds'), - instanceCount: Ember.computed.alias('instances.length'), + instanceCount: alias('instances.length'), stack: denormalizeId('stackId'), init() { @@ -26,7 +28,7 @@ var Service = Resource.extend(StateCounts, EndpointPorts, { this.defineStateCounts('instances', 'instanceStates', 'instanceCountSort'); }, - lcType: Ember.computed('type', function() { + lcType: computed('type', function() { return (this.get('type')||'').toLowerCase(); }), @@ -148,7 +150,7 @@ var Service = Resource.extend(StateCounts, EndpointPorts, { popoutShell() { let proj = this.get('projects.current.id'); let id = this.get('containerForShell.id'); - Ember.run.later(() => { + later(() => { window.open(`//${window.location.host}/env/${proj}/infra/console?instanceId=${id}&isPopup=true`, '_blank', "toolbars=0,width=900,height=700,left=200,top=200"); }); }, @@ -158,10 +160,10 @@ var Service = Resource.extend(StateCounts, EndpointPorts, { saveScale() { if ( this.get('scaleTimer') ) { - Ember.run.cancel(this.get('scaleTimer')); + cancel(this.get('scaleTimer')); } - var timer = Ember.run.later(this, function() { + var timer = later(this, function() { this.save().catch((err) => { this.get('growl').fromError('Error updating scale',err); }); @@ -207,7 +209,7 @@ var Service = Resource.extend(StateCounts, EndpointPorts, { 'lcType','isK8s','canHaveContainers','canHaveSidekicks','containerForShell' ), - image: Ember.computed.alias('launchConfig.image'), + image: alias('launchConfig.image'), sortName: function() { return Util.sortableNumericSuffix(this.get('displayName')); @@ -315,21 +317,21 @@ var Service = Resource.extend(StateCounts, EndpointPorts, { return ['service','scalinggroup'].includes(this.get('lcType')); }.property('lcType'), - hasPorts: Ember.computed.alias('isReal'), - hasImage: Ember.computed.alias('isReal'), - canUpgrade: Ember.computed.alias('isReal'), - canHaveLabels: Ember.computed.alias('isReal'), - canScale: Ember.computed.alias('isReal'), + hasPorts: alias('isReal'), + hasImage: alias('isReal'), + canUpgrade: alias('isReal'), + canHaveLabels: alias('isReal'), + canScale: alias('isReal'), realButNotLb: function() { return this.get('isReal') && !this.get('isBalancer'); }.property('isReal','isBalancer'), - canHaveLinks: Ember.computed.alias('realButNotLb'), - canChangeNetworking: Ember.computed.alias('realButNotLb'), - canChangeSecurity: Ember.computed.alias('realButNotLb'), - canHaveSecrets: Ember.computed.alias('realButNotLb'), - canHaveEnvironment: Ember.computed.alias('realButNotLb'), + canHaveLinks: alias('realButNotLb'), + canChangeNetworking: alias('realButNotLb'), + canChangeSecurity: alias('realButNotLb'), + canHaveSecrets: alias('realButNotLb'), + canHaveEnvironment: alias('realButNotLb'), canHaveHealthCheck: function() { return [ @@ -400,7 +402,7 @@ var Service = Resource.extend(StateCounts, EndpointPorts, { return activeIcon(this); }.property('lcType'), - memoryReservationBlurb: Ember.computed('launchConfig.memoryReservation', function() { + memoryReservationBlurb: computed('launchConfig.memoryReservation', function() { if ( this.get('launchConfig.memoryReservation') ) { return Util.formatSi(this.get('launchConfig.memoryReservation'), 1024, 'iB', 'B'); } diff --git a/app/models/servicelog.js b/app/models/servicelog.js index f9daa778c..b15c01295 100644 --- a/app/models/servicelog.js +++ b/app/models/servicelog.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import { equal } from '@ember/object/computed'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; var ServiceLog = Resource.extend({ - router: Ember.inject.service(), + router: service(), actions: { goToInstance() { @@ -30,7 +32,7 @@ var ServiceLog = Resource.extend({ return choices; }.property('instanceId'), - runTime: Ember.computed('created', 'endTime', function(){ + runTime: computed('created', 'endTime', function(){ if ( this.get('endTime') ) { let sec = moment(this.get('endTime')).diff(this.get('created'), 'seconds'); if (sec > 0) { @@ -41,9 +43,9 @@ var ServiceLog = Resource.extend({ } }), - isError: Ember.computed.equal('level','error'), + isError: equal('level','error'), - displayState: Ember.computed('level', function() { + displayState: computed('level', function() { return this.get('level').toUpperCase(); }), }); diff --git a/app/models/setting.js b/app/models/setting.js index c8ebc30e6..23806203b 100644 --- a/app/models/setting.js +++ b/app/models/setting.js @@ -1,5 +1,5 @@ +import { later } from '@ember/runloop'; import Resource from 'ember-api-store/models/resource'; -import Ember from 'ember'; export default Resource.extend({ isDefault: function() { @@ -17,7 +17,7 @@ export default Resource.extend({ delete() { return this._super().then((res) => { - Ember.run.later(this,'reload',500); + later(this,'reload',500); return res; }); }, diff --git a/app/models/stack.js b/app/models/stack.js index 131d9d61a..68a319c9c 100644 --- a/app/models/stack.js +++ b/app/models/stack.js @@ -1,4 +1,7 @@ -import Ember from 'ember'; +import { isEmpty } from '@ember/utils'; +import { computed } from '@ember/object'; +import { filterBy } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import { parseExternalId } from 'ui/utils/parse-externalid'; import C from 'ui/utils/constants'; @@ -46,15 +49,15 @@ export function tagChoices(all) { var Stack = Resource.extend(StateCounts, { type: 'stack', - k8s: Ember.inject.service(), - modalService: Ember.inject.service('modal'), - catalog: Ember.inject.service(), - projectsService: Ember.inject.service('projects'), - router: Ember.inject.service(), + k8s: service(), + modalService: service('modal'), + catalog: service(), + projectsService: service('projects'), + router: service(), services: denormalizeIdArray('serviceIds'), - realServices: Ember.computed.filterBy('services','isReal',true), + realServices: filterBy('services','isReal',true), init() { this._super(...arguments); @@ -62,7 +65,7 @@ var Stack = Resource.extend(StateCounts, { }, _allInstances: null, - instances: Ember.computed('_allInstances.@each.stackId', function() { + instances: computed('_allInstances.@each.stackId', function() { let all = this.get('_allInstances'); if ( !all ) { all = this.get('store').all('instance'); @@ -219,9 +222,9 @@ var Stack = Resource.extend(StateCounts, { return (this.get('name')||'').toLowerCase() === 'default'; }.property('name'), - isEmpty: Ember.computed('instances.length', 'services.length', function() { + isEmpty: computed('instances.length', 'services.length', function() { - if (Ember.isEmpty(this.get('instances')) && Ember.isEmpty(this.get('services'))) { + if (isEmpty(this.get('instances')) && isEmpty(this.get('services'))) { return true; } @@ -262,7 +265,7 @@ var Stack = Resource.extend(StateCounts, { } }.property('externalIdInfo.kind','group','system'), - normalizedTags: Ember.computed('group', { + normalizedTags: computed('group', { get() { return tagsToArray(this.get('group')); }, @@ -271,7 +274,7 @@ var Stack = Resource.extend(StateCounts, { return value; } }), - tags: Ember.computed('group', { + tags: computed('group', { get(){ return tagsToArray(this.get('group'), false); }, diff --git a/app/models/template.js b/app/models/template.js index c06773c9e..e25489098 100644 --- a/app/models/template.js +++ b/app/models/template.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import { htmlSafe } from '@ember/string'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import C from 'ui/utils/constants'; const Template = Resource.extend({ - projects: Ember.inject.service(), - settings: Ember.inject.service(), - intl: Ember.inject.service(), + projects: service(), + settings: service(), + intl: service(), headers: function() { return { @@ -13,7 +15,7 @@ const Template = Resource.extend({ }; }.property('project.current.id'), - cleanProjectUrl: Ember.computed('links.project', function() { + cleanProjectUrl: computed('links.project', function() { let projectUrl = this.get('links.project'); let pattern = new RegExp('^([a-z]+://|//)', 'i'); @@ -23,10 +25,10 @@ const Template = Resource.extend({ } } - return Ember.String.htmlSafe(projectUrl); + return htmlSafe(projectUrl); }), - defaultName: Ember.computed('id','templateBase', function() { + defaultName: computed('id','templateBase', function() { var name = this.get('id'); var base = this.get('templateBase'); @@ -50,7 +52,7 @@ const Template = Resource.extend({ return name; }), - machineHasIcon: Ember.computed('templateBase', function(){ + machineHasIcon: computed('templateBase', function(){ if (this.get('templateBase') === 'machine') { if (this.get('links.icon')) { return this.get('links.icon'); diff --git a/app/models/templateversion.js b/app/models/templateversion.js index 509eda8de..d9b8bdec8 100644 --- a/app/models/templateversion.js +++ b/app/models/templateversion.js @@ -1,9 +1,9 @@ +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import C from 'ui/utils/constants'; -import Ember from 'ember'; export default Resource.extend({ - projects: Ember.inject.service(), + projects: service(), headers: function() { return { diff --git a/app/models/typedocumentation.js b/app/models/typedocumentation.js index 595d06d42..bcbd1197e 100644 --- a/app/models/typedocumentation.js +++ b/app/models/typedocumentation.js @@ -1,4 +1,4 @@ -import {normalizeType} from 'ember-api-store/utils/normalize'; +import { normalizeType } from 'ember-api-store/utils/normalize'; import Resource from 'ember-api-store/models/resource'; var TypeDocumentation = Resource.extend(); diff --git a/app/models/volume.js b/app/models/volume.js index d03282799..e9418c066 100644 --- a/app/models/volume.js +++ b/app/models/volume.js @@ -1,14 +1,15 @@ -import Ember from 'ember'; +import { notEmpty } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; import Resource from 'ember-api-store/models/resource'; import { denormalizeId } from 'ember-api-store/utils/denormalize'; var Volume = Resource.extend({ type: 'volume', - intl: Ember.inject.service(), + intl: service(), stack: denormalizeId('stackId'), - isRoot: Ember.computed.notEmpty('instanceId'), + isRoot: notEmpty('instanceId'), scope: function() { return 'standalone'; diff --git a/app/new-stack/controller.js b/app/new-stack/controller.js index f491a9e72..08dbd9a5c 100644 --- a/app/new-stack/controller.js +++ b/app/new-stack/controller.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; import NewOrEdit from 'ui/mixins/new-or-edit'; -import {tagChoices, tagsToArray} from 'ui/models/stack'; +import { tagChoices, tagsToArray } from 'ui/models/stack'; -export default Ember.Controller.extend(NewOrEdit, { +export default Controller.extend(NewOrEdit, { error: null, editing: false, compose: null, diff --git a/app/new-stack/route.js b/app/new-stack/route.js index b2e8d3f37..e61224d22 100644 --- a/app/new-stack/route.js +++ b/app/new-stack/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model() { var stack = this.get('store').createRecord({ type: 'stack', diff --git a/app/not-found/route.js b/app/not-found/route.js index 5fe5c5484..574591698 100644 --- a/app/not-found/route.js +++ b/app/not-found/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - language : Ember.inject.service('user-language'), +export default Route.extend({ + language : service('user-language'), beforeModel: function() { return this.get('language').initLanguage(); diff --git a/app/registries/index/controller.js b/app/registries/index/controller.js index 74c6c9241..f5f0f655b 100644 --- a/app/registries/index/controller.js +++ b/app/registries/index/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ sortBy: 'address', headers: [ { diff --git a/app/registries/index/route.js b/app/registries/index/route.js index c9e0b7fa4..9f643e7a6 100644 --- a/app/registries/index/route.js +++ b/app/registries/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('store').findAll('registrycredential').then(() => { return this.get('store').findAll('registry'); diff --git a/app/registries/new/controller.js b/app/registries/new/controller.js index d7aa6b660..dd37edccf 100644 --- a/app/registries/new/controller.js +++ b/app/registries/new/controller.js @@ -1,12 +1,13 @@ -import Ember from 'ember'; +import { alias, equal } from '@ember/object/computed'; +import Controller from '@ember/controller'; import NewOrEdit from 'ui/mixins/new-or-edit'; -export default Ember.Controller.extend(NewOrEdit, { +export default Controller.extend(NewOrEdit, { editing: false, - primaryResource: Ember.computed.alias('model.registry'), + primaryResource: alias('model.registry'), activeDriver: null, - isCustom: Ember.computed.equal('activeDriver','custom'), + isCustom: equal('activeDriver','custom'), actions: { selectDriver: function(name) { diff --git a/app/registries/new/route.js b/app/registries/new/route.js index 3ebf77715..d80b53ded 100644 --- a/app/registries/new/route.js +++ b/app/registries/new/route.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(/*params, transition*/) { var store = this.get('store'); var registry = store.createRecord({ @@ -15,7 +16,7 @@ export default Ember.Route.extend({ }); return store.find('registry').then((registries) => { - return Ember.Object.create({ + return EmberObject.create({ allRegistries: registries, registry: registry, credential: credential diff --git a/app/router.js b/app/router.js index 180bff81f..ea0003854 100644 --- a/app/router.js +++ b/app/router.js @@ -1,11 +1,11 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; import EmberRouter from '@ember/routing/router'; import config from './config/environment'; -import {applyRoutes, clearRoutes} from 'ui/utils/additional-routes'; +import { applyRoutes, clearRoutes } from 'ui/utils/additional-routes'; //const Router = Ember.Router.extend({ const Router = EmberRouter.extend({ - modalService: Ember.inject.service('modal'), + modalService: service('modal'), location: config.locationType, willTransition(){ if (this.get('modalService.modalVisible')) { diff --git a/app/routes/index.js b/app/routes/index.js index b98162845..bd77d5758 100644 --- a/app/routes/index.js +++ b/app/routes/index.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ actions: { activate: function() { this.transitionTo('authenticated'); diff --git a/app/secrets/index/controller.js b/app/secrets/index/controller.js index 424c6254a..091aec293 100644 --- a/app/secrets/index/controller.js +++ b/app/secrets/index/controller.js @@ -1,9 +1,11 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ sortBy: 'name', - prefs: Ember.inject.service(), - projects: Ember.inject.service(), + prefs: service(), + projects: service(), queryParams: ['sortBy'], @@ -36,7 +38,7 @@ export default Ember.Controller.extend({ }, ], - sortableContent: Ember.computed.alias('filtered'), + sortableContent: alias('filtered'), filtered: function() { let all = this.get('model'); if ( !this.get('prefs.showSystemResources') ) { diff --git a/app/secrets/new/controller.js b/app/secrets/new/controller.js index 87c6f8d4a..866348fa9 100644 --- a/app/secrets/new/controller.js +++ b/app/secrets/new/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ actions: { cancel() { this.transitionToRoute('secrets'); diff --git a/app/secrets/new/route.js b/app/secrets/new/route.js index a421ce12e..53020a9a0 100644 --- a/app/secrets/new/route.js +++ b/app/secrets/new/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(/*params, transition*/) { return this.get('store').createRecord({ type: 'secret' diff --git a/app/secrets/route.js b/app/secrets/route.js index 35f129ba0..052f65b0f 100644 --- a/app/secrets/route.js +++ b/app/secrets/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.get('store').findAll('secret'); }, diff --git a/app/service/controller.js b/app/service/controller.js index 90bf646eb..871593f1a 100644 --- a/app/service/controller.js +++ b/app/service/controller.js @@ -1,12 +1,15 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { oneWay } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - application: Ember.inject.controller(), - projects: Ember.inject.service(), - allServices: Ember.inject.service(), +export default Controller.extend({ + application: controller(), + projects: service(), + allServices: service(), - service: Ember.computed.oneWay('model.service'), - rules: Ember.computed.oneWay('service.lbConfig.portRules'), + service: oneWay('model.service'), + rules: oneWay('service.lbConfig.portRules'), sortBy: 'priority', fixedLaunchConfig: null, @@ -101,7 +104,7 @@ export default Ember.Controller.extend({ } }, - serviceLinksNamed: Ember.computed('service.serviceLinks.[]', function() { + serviceLinksNamed: computed('service.serviceLinks.[]', function() { let as = this.get('allServices'); ( this.get('service.serviceLinks') || []).forEach((link) => { diff --git a/app/service/route.js b/app/service/route.js index d76df7da5..e53e00941 100644 --- a/app/service/route.js +++ b/app/service/route.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params) { - return Ember.RSVP.hash({ + return hash({ service: this.get('store').find('service', params.service_id), }).then((hash) => { - return Ember.Object.create(hash); + return EmberObject.create(hash); }); }, diff --git a/app/signup/controller.js b/app/signup/controller.js index 772584ecc..0b8d79875 100644 --- a/app/signup/controller.js +++ b/app/signup/controller.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import fetch from 'ember-api-store/utils/fetch'; -export default Ember.Controller.extend({ - settings: Ember.inject.service(), +export default Controller.extend({ + settings: service(), emailSent: false, saving: false, @@ -35,7 +37,7 @@ export default Ember.Controller.extend({ this.transitionToRoute('login'); } }, - validate: Ember.observer('model.name', 'model.email', function() { + validate: observer('model.name', 'model.email', function() { if (this.get('model.name') && this.get('model.email')) { if (this.get('errors')) { this.set('errors', []); diff --git a/app/signup/route.js b/app/signup/route.js index 3828fa25b..0318ae9fa 100644 --- a/app/signup/route.js +++ b/app/signup/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ activate: function() { $('BODY').addClass('container-farm'); }, diff --git a/app/stack/chart/controller.js b/app/stack/chart/controller.js index 728bd5c73..fd29d0134 100644 --- a/app/stack/chart/controller.js +++ b/app/stack/chart/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ selectedService: null, showAddtlInfo: false, diff --git a/app/stack/chart/route.js b/app/stack/chart/route.js index 560af79ea..262ba57ce 100644 --- a/app/stack/chart/route.js +++ b/app/stack/chart/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { return this.modelFor('stack').get('stack'); } diff --git a/app/stack/code/controller.js b/app/stack/code/controller.js index 38e5364f8..539345441 100644 --- a/app/stack/code/controller.js +++ b/app/stack/code/controller.js @@ -1,3 +1,3 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend(); +export default Controller.extend(); diff --git a/app/stack/code/route.js b/app/stack/code/route.js index 4262673a4..d0f3d3570 100644 --- a/app/stack/code/route.js +++ b/app/stack/code/route.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(/*params, transition*/) { var par = this.modelFor('stack'); var stack = par.get('stack'); @@ -15,7 +16,7 @@ export default Ember.Route.extend({ }); } - return Ember.Object.create({ + return EmberObject.create({ stack: stack, all: par.get('all'), templates: templates, diff --git a/app/stack/index/controller.js b/app/stack/index/controller.js index 495703581..fd9f924a1 100644 --- a/app/stack/index/controller.js +++ b/app/stack/index/controller.js @@ -1,9 +1,15 @@ -import Ember from 'ember'; -import { headersWithHost as containerHeaders } from 'ui/components/container-table/component'; -import { searchFields as containerSearchFields } from 'ui/components/container-dots/component'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; +import { + headersWithHost as containerHeaders +} from 'shared/components/container-table/component'; +import { + searchFields as containerSearchFields +} from 'shared/components/container-dots/component'; -export default Ember.Controller.extend({ - prefs: Ember.inject.service(), +export default Controller.extend({ + prefs: service(), containerHeaders: containerHeaders, showAddtlInfo: false, selectedService: null, @@ -150,34 +156,34 @@ export default Ember.Controller.extend({ extraSearchFields: ['id:prefix','displayIp:ip'], extraSearchSubFields: containerSearchFields, - rows: Ember.computed('instances.[]', 'services.[]', function() { + rows: computed('instances.[]', 'services.[]', function() { let out = []; let containers = this.get('instances'); let services = this.get('services'); return out.concat(containers, services); }), - containerStats: Ember.computed('instances.[]', 'services.[]', function() { + containerStats: computed('instances.[]', 'services.[]', function() { let containerLength = this.get('instances.length') || 0; let scalingGroupsLength = this.get('services.length') || 0; return containerLength += scalingGroupsLength; }), - services: Ember.computed('model.services.[]', function() { + services: computed('model.services.[]', function() { return this.get('model.services').filter((obj) => { return obj.get('isReal') && !obj.get('isBalancer'); }); }), - loadBalancers: Ember.computed('model.services.@each.isBalancer', function() { + loadBalancers: computed('model.services.@each.isBalancer', function() { return this.get('model.services').filterBy('isBalancer',true); }), - dnsServices: Ember.computed('model.services.[]', function() { + dnsServices: computed('model.services.[]', function() { return this.get('model.services').filterBy('isReal',false); }), - instances: Ember.computed('model.instances.[]','prefs.showSystemResources', function() { + instances: computed('model.instances.[]','prefs.showSystemResources', function() { let out = this.get('model.instances').filterBy('stackId', this.get('model.stack.id')); out = out.filterBy('serviceId', null); if ( !this.get('prefs.showSystemResources') ) { diff --git a/app/stack/index/route.js b/app/stack/index/route.js index b6741edee..6ef123845 100644 --- a/app/stack/index/route.js +++ b/app/stack/index/route.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ parentRoute: 'stack', resetController: function (controller, isExisting/*, transition*/) { diff --git a/app/stack/route.js b/app/stack/route.js index 8e94fdb7a..276072328 100644 --- a/app/stack/route.js +++ b/app/stack/route.js @@ -1,10 +1,11 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params) { var store = this.get('store'); return store.find('stack', params.stack_id).then((stack) => { - return Ember.Object.create({ + return EmberObject.create({ stack: stack, instances: store.all('instance'), services: stack.get('services') diff --git a/app/verify-reset-password/controller.js b/app/verify-reset-password/controller.js index eccc751ec..3459d172b 100644 --- a/app/verify-reset-password/controller.js +++ b/app/verify-reset-password/controller.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; import fetch from 'ember-api-store/utils/fetch'; -export default Ember.Controller.extend({ +export default Controller.extend({ passwordRest: false, loading: false, password: null, diff --git a/app/verify-reset-password/route.js b/app/verify-reset-password/route.js index cb4445553..664a48927 100644 --- a/app/verify-reset-password/route.js +++ b/app/verify-reset-password/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { reject } from 'rsvp'; +import Route from '@ember/routing/route'; import fetch from 'ember-api-store/utils/fetch'; -export default Ember.Route.extend({ +export default Route.extend({ activate: function() { $('BODY').addClass('container-farm'); }, @@ -24,7 +25,7 @@ export default Ember.Route.extend({ return resp.body; } }).catch((err) => { - return Ember.RSVP.reject(err.body); + return reject(err.body); }); } else { diff --git a/app/verify/controller.js b/app/verify/controller.js index ceaf6e048..46d3ccd58 100644 --- a/app/verify/controller.js +++ b/app/verify/controller.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import fetch from 'ember-api-store/utils/fetch'; -export default Ember.Controller.extend({ - access: Ember.inject.service(), +export default Controller.extend({ + access: service(), accountCreated: false, loading: false, canSend: false, diff --git a/app/verify/route.js b/app/verify/route.js index a2537bdd5..9f365ed44 100644 --- a/app/verify/route.js +++ b/app/verify/route.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { reject } from 'rsvp'; +import Route from '@ember/routing/route'; import fetch from 'ember-api-store/utils/fetch'; -export default Ember.Route.extend({ +export default Route.extend({ activate: function() { $('BODY').addClass('container-farm'); @@ -24,7 +25,7 @@ export default Ember.Route.extend({ if (resp.status >= 200 && resp.status < 300) { return resp.body; } else { - return Ember.RSVP.reject(); + return reject(); } }); diff --git a/app/volume/controller.js b/app/volume/controller.js index 9435cdbb2..fc1205bcd 100644 --- a/app/volume/controller.js +++ b/app/volume/controller.js @@ -1,21 +1,23 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import Controller from '@ember/controller'; import Util from 'ui/utils/util'; import { volumes as VolumeHeaders } from 'shared/headers'; const headers = VolumeHeaders; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['type'], - stack: Ember.computed.alias('model.stack'), - host: Ember.computed.alias('model.host'), - volume: Ember.computed.alias('model.volume'), + stack: alias('model.stack'), + host: alias('model.host'), + volume: alias('model.volume'), - sizeGB: Ember.computed('volume.sizeMb', function() { + sizeGB: computed('volume.sizeMb', function() { let sizeOut = Util.formatGB(this.get('volume.sizeMb')); return sizeOut; }), - driverOpts: Ember.computed('volume.driverOpts', function() { + driverOpts: computed('volume.driverOpts', function() { if (this.get('volume.driverOpts')) { let out = []; let opts = this.get('volume.driverOpts') @@ -27,11 +29,11 @@ export default Ember.Controller.extend({ } return []; }), - dCount: Ember.computed('', function() { + dCount: computed('', function() { return this.get('volume.driverOpts.length') || 0; }), - vCount: Ember.computed('', function() { + vCount: computed('', function() { return this.get('volume.mounts.length') || 0; }), diff --git a/app/volume/route.js b/app/volume/route.js index 18e1a0e95..0665aa128 100644 --- a/app/volume/route.js +++ b/app/volume/route.js @@ -1,6 +1,7 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ queryParams: { type: { refreshModel: true @@ -8,7 +9,7 @@ export default Ember.Route.extend({ }, model: function(params) { - let out = Ember.Object.create({ + let out = EmberObject.create({ volume: this.get('store').getById(params.type, params.volume_id) }); diff --git a/app/volumes/index/controller.js b/app/volumes/index/controller.js index 882da98e2..21b29e760 100644 --- a/app/volumes/index/controller.js +++ b/app/volumes/index/controller.js @@ -1,16 +1,18 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller, { inject as controller } from '@ember/controller'; -export default Ember.Controller.extend({ - projectController: Ember.inject.controller('authenticated.project'), - projects: Ember.inject.service(), +export default Controller.extend({ + projectController: controller('authenticated.project'), + projects: service(), - tags: Ember.computed.alias('projectController.tags'), - simpleMode: Ember.computed.alias('projectController.simpleMode'), - groupTableBy: Ember.computed.alias('projectController.groupTableBy'), - showStack: Ember.computed.alias('projectController.showStack'), - emptyStacks: Ember.computed.alias('projectController.emptyStacks'), - expandedInstances: Ember.computed.alias('projectController.expandedInstances'), - preSorts: Ember.computed.alias('projectController.preSorts'), + tags: alias('projectController.tags'), + simpleMode: alias('projectController.simpleMode'), + groupTableBy: alias('projectController.groupTableBy'), + showStack: alias('projectController.showStack'), + emptyStacks: alias('projectController.emptyStacks'), + expandedInstances: alias('projectController.expandedInstances'), + preSorts: alias('projectController.preSorts'), queryParams: ['sortBy'], sortBy: 'name', diff --git a/app/volumes/index/route.js b/app/volumes/index/route.js index 6a62cac84..4ff5436f6 100644 --- a/app/volumes/index/route.js +++ b/app/volumes/index/route.js @@ -1,16 +1,18 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; import C from 'ui/utils/constants'; -export default Ember.Route.extend({ +export default Route.extend({ model() { let store = this.get('store'); - return Ember.RSVP.hash({ + return hash({ volumes: store.findAll('volume'), volumeTemplates: store.findAll('volumetemplate'), }); }, - setDefaultRoute: Ember.on('activate', function() { + setDefaultRoute: on('activate', function() { this.set(`session.${C.SESSION.CONTAINER_ROUTE}`,'volumes'); }), }); diff --git a/app/volumes/new/controller.js b/app/volumes/new/controller.js index 6b8bb3712..9d306fe7b 100644 --- a/app/volumes/new/controller.js +++ b/app/volumes/new/controller.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams: ['volumeId','stackId','volumeTemplateId'], volumeId: null, volumeTemplateId: null, diff --git a/app/volumes/new/route.js b/app/volumes/new/route.js index bd90f99ad..22de0cc52 100644 --- a/app/volumes/new/route.js +++ b/app/volumes/new/route.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { hash } from 'rsvp'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function(params/*, transition*/) { var store = this.get('store'); @@ -17,7 +19,7 @@ export default Ember.Route.extend({ dependencies['volumeTemplate'] = store.find('volumeTemplate', params.volumeTemplateId); } - return Ember.RSVP.hash(dependencies, 'Load dependencies').then((results) => { + return hash(dependencies, 'Load dependencies').then((results) => { let out; let scope = 'global'; if ( results.hasOwnProperty('volume') ) { @@ -44,7 +46,7 @@ export default Ember.Route.extend({ stack = results.stacks.findBy('id', out.stackId); } - return Ember.Object.create({ + return EmberObject.create({ scope: scope, config: out, stack: stack, diff --git a/lib/global-admin/addon/controllers/accounts/index.js b/lib/global-admin/addon/controllers/accounts/index.js index 12bd6b37b..7c817fc66 100644 --- a/lib/global-admin/addon/controllers/accounts/index.js +++ b/lib/global-admin/addon/controllers/accounts/index.js @@ -1,12 +1,14 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; import FilterState from 'ui/mixins/filter-state'; const showKinds = ['user','admin']; -export default Ember.Controller.extend(FilterState, { - access: Ember.inject.service(), +export default Controller.extend(FilterState, { + access: service(), sortBy: 'name', - headers: Ember.computed('isLocal', function() { + headers: computed('isLocal', function() { let out = [ { translationKey: 'generic.state', diff --git a/lib/global-admin/addon/controllers/accounts/new/new.js b/lib/global-admin/addon/controllers/accounts/new/new.js index 3ed835aa8..67073d048 100644 --- a/lib/global-admin/addon/controllers/accounts/new/new.js +++ b/lib/global-admin/addon/controllers/accounts/new/new.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Controller from '@ember/controller'; import NewOrEdit from 'ui/mixins/new-or-edit'; import C from 'ui/utils/constants'; -export default Ember.Controller.extend(NewOrEdit, { - primaryResource: Ember.computed.alias('model.account'), - settings: Ember.inject.service(), - intl: Ember.inject.service(), +export default Controller.extend(NewOrEdit, { + primaryResource: alias('model.account'), + settings: service(), + intl: service(), actions: { cancel() { @@ -13,7 +16,7 @@ export default Ember.Controller.extend(NewOrEdit, { }, }, - validateDescription: Ember.computed(function() { + validateDescription: computed(function() { return this.get('settings').get(C.SETTING.AUTH_LOCAL_VALIDATE_DESC) || null; }), diff --git a/lib/global-admin/addon/initializers/app.js b/lib/global-admin/addon/initializers/app.js index 1f86c719c..281913411 100644 --- a/lib/global-admin/addon/initializers/app.js +++ b/lib/global-admin/addon/initializers/app.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; import config from '../config/environment'; export function initialize(application) { // Inject the contents of ENV.APP in config/environment.js into all the things as an 'app' property - let app = Ember.Object.extend(config.APP); + let app = EmberObject.extend(config.APP); application.register('config:app', app); application.inject('controller','app', 'config:app'); diff --git a/lib/global-admin/addon/routes/accounts/new/new.js b/lib/global-admin/addon/routes/accounts/new/new.js index c84aced0b..ba72288e8 100644 --- a/lib/global-admin/addon/routes/accounts/new/new.js +++ b/lib/global-admin/addon/routes/accounts/new/new.js @@ -1,13 +1,14 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ +export default Route.extend({ model: function() { var account = this.get('userStore').createRecord({type: 'account', kind: 'user'}); var credential = this.get('userStore').createRecord({type: 'password'}); return this.get('userStore').findAll('credential').then((credentials) => { return this.get('userStore').findAll('account').then((accounts) => { - return Ember.Object.create({ + return EmberObject.create({ account: account, accounts: accounts, credential: credential, diff --git a/lib/global-admin/addon/routes/application.js b/lib/global-admin/addon/routes/application.js index 3fa34600d..af680a662 100644 --- a/lib/global-admin/addon/routes/application.js +++ b/lib/global-admin/addon/routes/application.js @@ -1,24 +1,29 @@ +import $ from 'jquery'; +import EmberObject from '@ember/object'; +import { Promise as EmberPromise } from 'rsvp'; +import { cancel, next, scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; import C from 'shared/utils/constants'; -import Ember from 'ember'; import Errors from 'shared/utils/errors'; import PromiseToCb from 'ui/mixins/promise-to-cb'; import Subscribe from 'ui/mixins/subscribe'; import { xhrConcur } from 'shared/utils/platform'; -export default Ember.Route.extend(Subscribe, PromiseToCb, { - prefs: Ember.inject.service(), - projects: Ember.inject.service(), - settings: Ember.inject.service(), - access: Ember.inject.service(), - session: Ember.inject.service(), - userStore: Ember.inject.service('user-store'), - language: Ember.inject.service('user-language'), - userTheme : Ember.inject.service('user-theme'), +export default Route.extend(Subscribe, PromiseToCb, { + prefs: service(), + projects: service(), + settings: service(), + access: service(), + session: service(), + userStore: service('user-store'), + language: service('user-language'), + userTheme : service('user-theme'), actions: { loading(transition) { this.incrementProperty('loadingId'); let id = this.get('loadingId'); - Ember.run.cancel(this.get('hideTimer')); + cancel(this.get('hideTimer')); if ( !this.get('loadingShown') ) { this.set('loadingShown', true); @@ -42,11 +47,11 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { if ( this.get('loadingId') === id ) { if ( transition.isAborted ) { //console.log('Loading aborted', id, this.get('loadingId')); - this.set('hideTimer', Ember.run.next(hide)); + this.set('hideTimer', next(hide)); } else { //console.log('Loading finished', id, this.get('loadingId')); //needed to set this to run after render as there was wierdness wiht new register page - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { hide(); }); } @@ -81,7 +86,7 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { this.get('session').set(C.SESSION.BACK_TO, undefined); - let promise = new Ember.RSVP.Promise((resolve, reject) => { + let promise = new EmberPromise((resolve, reject) => { let tasks = { userSchemas: this.toCb('loadUserSchemas'), clusters: this.toCb('loadClusters'), @@ -106,7 +111,7 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { return promise.then((hash) => { return hash; }).catch((err) => { - return this.loadingError(err, transition, Ember.Object.create({ + return this.loadingError(err, transition, EmberObject.create({ projects: [], project: null, })); @@ -142,7 +147,7 @@ export default Ember.Route.extend(Subscribe, PromiseToCb, { this.get('userTheme').setupTheme(); if (this.get(`prefs.${C.PREFS.I_HATE_SPINNERS}`)) { - Ember.$('BODY').addClass('i-hate-spinners'); + $('BODY').addClass('i-hate-spinners'); } return res; diff --git a/lib/login/addon/components/caas-login/component.js b/lib/login/addon/components/caas-login/component.js index 6647728cd..0b47bfc45 100644 --- a/lib/login/addon/components/caas-login/component.js +++ b/lib/login/addon/components/caas-login/component.js @@ -1,11 +1,15 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import { on } from '@ember/object/evented'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import fetch from 'ember-api-store/utils/fetch'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + intl: service(), classNames: ['caas-login', 'text-left'], - showReset: Ember.computed.alias('promptReset'), + showReset: alias('promptReset'), userEmail: null, passwordResetSent: false, showSuccess: false, @@ -46,7 +50,7 @@ export default Ember.Component.extend({ } } }, - emailObsv: Ember.on('init', Ember.observer('userEmail', function() { + emailObsv: on('init', observer('userEmail', function() { if (this.get('userEmail')) { this.set('errMsg', null); this.set('saveDisabled', false); diff --git a/lib/login/addon/components/login-github/component.js b/lib/login/addon/components/login-github/component.js index aa0d6cb7f..8adff3b1e 100644 --- a/lib/login/addon/components/login-github/component.js +++ b/lib/login/addon/components/login-github/component.js @@ -1,12 +1,14 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; -export default Ember.Component.extend({ - github: Ember.inject.service(), +export default Component.extend({ + github: service(), actions: { authenticate() { this.sendAction('action'); - Ember.run.later(() => { + later(() => { this.get('github').authorizeRedirect(); }, 10); } diff --git a/lib/login/addon/components/login-shibboleth/component.js b/lib/login/addon/components/login-shibboleth/component.js index 21bb88b3c..e14bf983a 100644 --- a/lib/login/addon/components/login-shibboleth/component.js +++ b/lib/login/addon/components/login-shibboleth/component.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; -export default Ember.Component.extend({ +export default Component.extend({ redirectUrl: null, - shibbolethAuth: Ember.inject.service(), + shibbolethAuth: service(), outRoute: null, init: function() { this._super(...arguments); @@ -11,7 +13,7 @@ export default Ember.Component.extend({ actions: { authenticate() { this.sendAction('action'); - Ember.run.later(() => { + later(() => { this.authShibboleth(); }, 10); } diff --git a/lib/login/addon/components/login-user-pass/component.js b/lib/login/addon/components/login-user-pass/component.js index e259662e9..a533eb053 100644 --- a/lib/login/addon/components/login-user-pass/component.js +++ b/lib/login/addon/components/login-user-pass/component.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; -export default Ember.Component.extend({ - access: Ember.inject.service(), - isCaas: Ember.computed('app.mode', function() { +export default Component.extend({ + access: service(), + isCaas: computed('app.mode', function() { return this.get('app.mode') === 'caas' ? true : false; }), waiting: null, diff --git a/lib/login/addon/controllers/login.js b/lib/login/addon/controllers/login.js index 2680a249a..e89f239a6 100644 --- a/lib/login/addon/controllers/login.js +++ b/lib/login/addon/controllers/login.js @@ -1,28 +1,33 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import { later, schedule } from '@ember/runloop'; +import { computed } from '@ember/object'; +import { equal, alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Controller from '@ember/controller'; -export default Ember.Controller.extend({ +export default Controller.extend({ queryParams : ['timedOut','errorMsg', 'resetPassword', 'errorCode'], - access : Ember.inject.service(), - settings : Ember.inject.service(), - intl : Ember.inject.service(), + access : service(), + settings : service(), + intl : service(), - isGithub : Ember.computed.equal('access.provider', 'githubconfig'), - isActiveDirectory : Ember.computed.equal('access.provider', 'ldapconfig'), - isOpenLdap : Ember.computed.equal('access.provider', 'openldapconfig'), - isLocal : Ember.computed.equal('access.provider', 'localauthconfig'), - isAzureAd : Ember.computed.equal('access.provider', 'azureadconfig'), - isShibboleth : Ember.computed.equal('access.provider', 'shibbolethconfig'), - isCaas : Ember.computed('app.mode', function() { + isGithub : equal('access.provider', 'githubconfig'), + isActiveDirectory : equal('access.provider', 'ldapconfig'), + isOpenLdap : equal('access.provider', 'openldapconfig'), + isLocal : equal('access.provider', 'localauthconfig'), + isAzureAd : equal('access.provider', 'azureadconfig'), + isShibboleth : equal('access.provider', 'shibbolethconfig'), + isCaas : computed('app.mode', function() { return this.get('app.mode') === 'caas' ? true : false; }), - promptPasswordReset: Ember.computed.alias('resetPassword'), + promptPasswordReset: alias('resetPassword'), timedOut : false, waiting : false, errorMsg : null, errorCode : null, resetPassword : false, - isForbidden : Ember.computed.equal('errorCode', '403'), + isForbidden : equal('errorCode', '403'), actions: { started() { @@ -36,7 +41,7 @@ export default Ember.Controller.extend({ authenticate(code) { this.send('started'); - Ember.run.later(() => { + later(() => { this.get('access').login(code).then(() => { this.send('finishLogin'); }).catch((err) => { @@ -55,9 +60,9 @@ export default Ember.Controller.extend({ }, bootstrap: function() { - Ember.run.schedule('afterRender', this, () => { - var user = Ember.$('.login-user')[0]; - var pass = Ember.$('.login-pass')[0]; + schedule('afterRender', this, () => { + var user = $('.login-user')[0]; + var pass = $('.login-pass')[0]; if ( user ) { if ( user.value ) diff --git a/lib/login/addon/routes/login.js b/lib/login/addon/routes/login.js index cd8adca10..591ae4f30 100644 --- a/lib/login/addon/routes/login.js +++ b/lib/login/addon/routes/login.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Route from '@ember/routing/route'; -export default Ember.Route.extend({ - access: Ember.inject.service(), - language: Ember.inject.service('user-language'), +export default Route.extend({ + access: service(), + language: service('user-language'), activate: function() { $('BODY').addClass('container-farm'); }, diff --git a/lib/shared/addon/access/service.js b/lib/shared/addon/access/service.js index 8770dbb9f..44b8fae7c 100644 --- a/lib/shared/addon/access/service.js +++ b/lib/shared/addon/access/service.js @@ -1,13 +1,16 @@ -import Ember from 'ember'; +import { resolve, reject } from 'rsvp'; +import { observer } from '@ember/object'; +import { on } from '@ember/object/evented'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; -export default Ember.Service.extend({ - cookies: Ember.inject.service(), - session: Ember.inject.service(), - github: Ember.inject.service(), - shibbolethAuth: Ember.inject.service(), - store: Ember.inject.service(), - userStore: Ember.inject.service('user-store'), +export default Service.extend({ + cookies: service(), + session: service(), + github: service(), + shibbolethAuth: service(), + store: service(), + userStore: service('user-store'), token: null, loadedVersion: null, @@ -24,7 +27,7 @@ export default Ember.Service.extend({ // The identity from the session isn't an actual identity model... identity: null, - identityObsvr: Ember.on('init', Ember.observer(`session.${C.SESSION.IDENTITY}`, function() { + identityObsvr: on('init', observer(`session.${C.SESSION.IDENTITY}`, function() { var obj = this.get(`session.${C.SESSION.IDENTITY}`) || {}; obj.type = 'identity'; this.set('identity', this.get('userStore').createRecord(obj)); @@ -45,16 +48,16 @@ export default Ember.Service.extend({ } // Auth token still good - return Ember.RSVP.resolve('Auth Succeeded'); + return resolve('Auth Succeeded'); }, (/* err */) => { // Auth token expired - return Ember.RSVP.reject('Auth Failed'); + return reject('Auth Failed'); }); }, detect() { if ( this.get('enabled') !== null ) { - return Ember.RSVP.resolve(); + return resolve(); } return this.get('userStore').rawRequest({ @@ -79,13 +82,13 @@ export default Ember.Service.extend({ this.clearSessionKeys(); } - return Ember.RSVP.resolve(undefined,'API supports authentication'+(token.security ? '' : ', but is not enabled')); + return resolve(undefined,'API supports authentication'+(token.security ? '' : ', but is not enabled')); }) .catch((err) => { // Otherwise this API is too old to do auth. this.set('enabled', false); this.set('app.initError', err); - return Ember.RSVP.resolve(undefined,'Error determining API authentication'); + return resolve(undefined,'Error determining API authentication'); }); }, @@ -131,7 +134,7 @@ export default Ember.Service.extend({ } catch(e) { err = {type: 'error', message: 'Error logging in'}; } - return Ember.RSVP.reject(err); + return reject(err); }); }, diff --git a/lib/shared/addon/all-containers/service.js b/lib/shared/addon/all-containers/service.js index 71e8f2c36..dd65aa177 100644 --- a/lib/shared/addon/all-containers/service.js +++ b/lib/shared/addon/all-containers/service.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import Service, { inject as service } from '@ember/service'; -export default Ember.Service.extend({ - intl: Ember.inject.service(), - store: Ember.inject.service(), - prefs: Ember.inject.service(), +export default Service.extend({ + intl: service(), + store: service(), + prefs: service(), list: function() { let intl = this.get('intl'); diff --git a/lib/shared/addon/all-services/service.js b/lib/shared/addon/all-services/service.js index a37a5464a..20c4d1b61 100644 --- a/lib/shared/addon/all-services/service.js +++ b/lib/shared/addon/all-services/service.js @@ -1,9 +1,10 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; +import Service, { inject as service } from '@ember/service'; -export default Ember.Service.extend({ - intl: Ember.inject.service(), - store: Ember.inject.service(), - prefs: Ember.inject.service(), +export default Service.extend({ + intl: service(), + store: service(), + prefs: service(), list: function() { let intl = this.get('intl'); @@ -62,7 +63,7 @@ export default Ember.Service.extend({ matching(serviceOrCombinedName, defaultStackObj) { if ( defaultStackObj && typeof defaultStackObj === 'object' ) { - defaultStackObj = Ember.get(defaultStackObj,'name'); + defaultStackObj = get(defaultStackObj,'name'); } let combined; diff --git a/lib/shared/addon/bulk-action-handler/service.js b/lib/shared/addon/bulk-action-handler/service.js index c469844f5..eb3d060e8 100644 --- a/lib/shared/addon/bulk-action-handler/service.js +++ b/lib/shared/addon/bulk-action-handler/service.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import Service, { inject as service } from '@ember/service'; -export default Ember.Service.extend({ - modalService: Ember.inject.service('modal'), +export default Service.extend({ + modalService: service('modal'), promptStop: function(nodes) { this.get('modalService').toggleModal('modal-container-stop', { model: nodes diff --git a/lib/shared/addon/catalog/service.js b/lib/shared/addon/catalog/service.js index 8b93e0476..b64395bc7 100644 --- a/lib/shared/addon/catalog/service.js +++ b/lib/shared/addon/catalog/service.js @@ -1,19 +1,21 @@ -import Ember from 'ember'; +import { resolve, reject } from 'rsvp'; +import EmberObject, { computed } from '@ember/object'; +import Service, { inject as service } from '@ember/service'; import { addQueryParams, uniqKeys } from 'shared/utils/util'; import C from 'shared/utils/constants'; const RANCHER_VERSION = 'rancherVersion'; -export default Ember.Service.extend({ - settings: Ember.inject.service(), - store: Ember.inject.service('store'), - userStore: Ember.inject.service('user-store'), - projects: Ember.inject.service(), +export default Service.extend({ + settings: service(), + store: service('store'), + userStore: service('user-store'), + projects: service(), templateCache: null, catalogs: null, - templateBase: Ember.computed('projects.current.orchestration', function() { + templateBase: computed('projects.current.orchestration', function() { return this.get('projects.current.orchestration') || ''; }), @@ -67,7 +69,7 @@ export default Ember.Service.extend({ } if ( cached ) { - return Ember.RSVP.resolve(cached); + return resolve(cached); } let url = this._addLimits(`${this.get('app.catalogEndpoint')}/${type}/${id}`); @@ -98,7 +100,7 @@ export default Ember.Service.extend({ // If the catalogIds dont match we need to go get the other catalog from the store since we do not cache all catalogs if ( cache && cache.catalogId === catalogId) { - return Ember.RSVP.resolve(this.filter(cache, params.category, templateBase, plusInfra)); + return resolve(this.filter(cache, params.category, templateBase, plusInfra)); } let url = this._addLimits(`${this.get('app.catalogEndpoint')}/templates`, qp); @@ -110,7 +112,7 @@ export default Ember.Service.extend({ if ( params.allowFailure ) { return this.filter([], params.category, templateBase, plusInfra); } else { - return Ember.RSVP.reject(err); + return reject(err); } }); }, @@ -156,7 +158,7 @@ export default Ember.Service.extend({ data = data.sortBy('name'); - return Ember.Object.create({ + return EmberObject.create({ categories: categories, catalog: data, templateBase: templateBase, diff --git a/lib/shared/addon/components/accordion-list-item/component.js b/lib/shared/addon/components/accordion-list-item/component.js index 8ff2a0e73..5eb49ffe1 100644 --- a/lib/shared/addon/components/accordion-list-item/component.js +++ b/lib/shared/addon/components/accordion-list-item/component.js @@ -1,5 +1,6 @@ +import { on } from '@ember/object/evented'; import Component from '@ember/component'; -import layout from './template.hbs' +import layout from './template' import { inject as service } from '@ember/service' import { observer } from '@ember/object' import { run } from '@ember/runloop'; @@ -78,7 +79,7 @@ export default Component.extend({ } }); }, - expdObserver: Ember.on('init', observer('expanded', function() { + expdObserver: on('init', observer('expanded', function() { if (this.get('expanded') && !this.get('intent')) { if (!this.get('everExpanded')) { this.set('everExpanded', true); @@ -89,7 +90,7 @@ export default Component.extend({ } })), - expandAllObserver: Ember.on('init', observer('expandAll', function() { + expandAllObserver: on('init', observer('expandAll', function() { var ea = this.get('expandAll'); if (ea) { this.set('expanded', true); diff --git a/lib/shared/addon/components/accordion-list/component.js b/lib/shared/addon/components/accordion-list/component.js index 6e2c8ed96..804132731 100644 --- a/lib/shared/addon/components/accordion-list/component.js +++ b/lib/shared/addon/components/accordion-list/component.js @@ -1,5 +1,5 @@ import Component from '@ember/component'; -import layout from './template.hbs' +import layout from './template' export default Component.extend({ layout, diff --git a/lib/shared/addon/components/add-host/component.js b/lib/shared/addon/components/add-host/component.js index d9e1b7067..9df12c493 100644 --- a/lib/shared/addon/components/add-host/component.js +++ b/lib/shared/addon/components/add-host/component.js @@ -1,3 +1,4 @@ +import { sort } from '@ember/object/computed'; import C from 'shared/utils/constants'; import Component from '@ember/component'; import layout from './template'; @@ -20,7 +21,7 @@ export default Component.extend({ goBack: null, sortBy: ['name'], - sortedDrivers: computed.sort('model.availableDrivers','sortBy'), + sortedDrivers: sort('model.availableDrivers','sortBy'), didReceiveAttrs() { if (this.get('driver')) { diff --git a/lib/shared/addon/components/catalog-index/component.js b/lib/shared/addon/components/catalog-index/component.js index b114559e4..e2c6380bf 100644 --- a/lib/shared/addon/components/catalog-index/component.js +++ b/lib/shared/addon/components/catalog-index/component.js @@ -1,3 +1,4 @@ +import { alias } from '@ember/object/computed'; import C from 'shared/utils/constants'; import Component from '@ember/component'; import layout from './template'; @@ -11,8 +12,8 @@ export default Component.extend({ catalog: service(), settings: service(), projects: service(), - projectId: computed.alias(`tab-session.${C.TABSESSION.PROJECT}`), - categories: computed.alias('model.categories'), + projectId: alias(`tab-session.${C.TABSESSION.PROJECT}`), + categories: alias('model.categories'), modalService: service('modal'), search: '', parentRoute: null, diff --git a/lib/shared/addon/components/cloud-host-add-or-edit/component.js b/lib/shared/addon/components/cloud-host-add-or-edit/component.js index 2dea69b07..7abceddf5 100644 --- a/lib/shared/addon/components/cloud-host-add-or-edit/component.js +++ b/lib/shared/addon/components/cloud-host-add-or-edit/component.js @@ -1,3 +1,4 @@ +import { alias } from '@ember/object/computed'; import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; import layout from './template'; @@ -8,9 +9,9 @@ export default Component.extend(Driver, { errors: null, host: null, clonedModel: null, - primaryResource: computed.alias('clonedModel'), + primaryResource: alias('clonedModel'), hostOptions: null, - labelResource: computed.alias('primaryResource'), + labelResource: alias('primaryResource'), didReceiveAttrs() { this._super(...arguments); diff --git a/lib/shared/addon/components/cluster-welcome/component.js b/lib/shared/addon/components/cluster-welcome/component.js index 6a52cedab..8a3e7560c 100644 --- a/lib/shared/addon/components/cluster-welcome/component.js +++ b/lib/shared/addon/components/cluster-welcome/component.js @@ -1,3 +1,4 @@ +import { alias, notEmpty } from '@ember/object/computed'; import Component from '@ember/component'; import layout from './template'; import { computed } from '@ember/object'; @@ -8,9 +9,9 @@ export default Component.extend({ projects: service(), settings: service(), - cluster: computed.alias('projects.currentCluster'), - canCreate: computed.notEmpty('cluster.registrationToken.hostCommand'), - canImport: computed.notEmpty('cluster.registrationToken.clusterCommand'), + cluster: alias('projects.currentCluster'), + canCreate: notEmpty('cluster.registrationToken.hostCommand'), + canImport: notEmpty('cluster.registrationToken.clusterCommand'), header: true, }); diff --git a/lib/shared/addon/components/columns-section/component.js b/lib/shared/addon/components/columns-section/component.js index 533a43913..1b488f239 100644 --- a/lib/shared/addon/components/columns-section/component.js +++ b/lib/shared/addon/components/columns-section/component.js @@ -1,13 +1,16 @@ +import { alias } from '@ember/object/computed'; import Component from '@ember/component'; import ThrottledResize from 'shared/mixins/throttled-resize'; import { computed } from '@ember/object'; import { run } from '@ember/runloop'; import { htmlSafe } from '@ember/string'; +import layout from './template'; const MIN_WIDTH = 260; // Minimum width of a column, including margin-right const COLUMN_MARGIN = 10; // this must match the rule in styles/pod.scss .pod-column export default Component.extend(ThrottledResize, { + layout, pods : null, // Override me with an array of content pods emptyMessage : null, @@ -18,7 +21,7 @@ export default Component.extend(ThrottledResize, { tagName : 'section', columnCount : 3, // Will be reset on didInsertElement and resize - podCount : computed.alias('pods.length'), + podCount : alias('pods.length'), lastIndex: computed('columnCount', function() { return this.get('columnCount')-1; diff --git a/lib/shared/addon/components/common-mark/component.js b/lib/shared/addon/components/common-mark/component.js index 5223d22de..039078321 100644 --- a/lib/shared/addon/components/common-mark/component.js +++ b/lib/shared/addon/components/common-mark/component.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Component from '@ember/component'; -export default Ember.Component.extend({ +export default Component.extend({ markdown: null, diff --git a/lib/shared/addon/components/confirm-delete/component.js b/lib/shared/addon/components/confirm-delete/component.js index 345365cdd..06b33ad25 100644 --- a/lib/shared/addon/components/confirm-delete/component.js +++ b/lib/shared/addon/components/confirm-delete/component.js @@ -1,13 +1,19 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import { alternateLabel } from 'ui/utils/platform'; import ModalBase from 'ui/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { + +export default Component.extend(ModalBase, { + layout, classNames: ['medium-modal'], - resources: Ember.computed.alias('modalService.modalOpts.resources'), + resources: alias('modalService.modalOpts.resources'), alternateLabel: alternateLabel, - settings: Ember.inject.service(), - intl: Ember.inject.service(), + settings: service(), + intl: service(), showProtip: function() { let show = this.get('modalService.modalOpts.showProtip'); @@ -33,7 +39,7 @@ export default Ember.Component.extend(ModalBase, { }, - isEnvironment: Ember.computed('resources', function() { + isEnvironment: computed('resources', function() { return !!this.get('resources').findBy('type','project'); }), diff --git a/lib/shared/addon/components/container-dot/component.js b/lib/shared/addon/components/container-dot/component.js index 0d9d72f69..2dbc2398e 100644 --- a/lib/shared/addon/components/container-dot/component.js +++ b/lib/shared/addon/components/container-dot/component.js @@ -1,15 +1,20 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import $ from 'jquery'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import { isMore } from 'ui/utils/platform'; +import layout from './template'; -export default Ember.Component.extend({ - resourceActions: Ember.inject.service('resource-actions'), - tooltipService: Ember.inject.service('tooltip'), +export default Component.extend({ + layout, + resourceActions: service('resource-actions'), + tooltipService: service('tooltip'), model: null, tagName: 'div', classNames: ['vertical-middle'], type: 'tooltip-action-menu', template: 'tooltip-container-dot', - router: Ember.inject.service(), + router: service(), click(event) { this.details(event); @@ -41,14 +46,14 @@ export default Ember.Component.extend({ this.get('resourceActions').set('open', true); this.get('tooltipService').set('openedViaContextClick', true); - Ember.$('.container-tooltip .more-actions').trigger('click'); + $('.container-tooltip .more-actions').trigger('click'); } else { this.get('resourceActions').show(this.get('model'), this.$(), null, {}); } }, - resourceActionsObserver: Ember.observer('resourceActions.open', function() { + resourceActionsObserver: observer('resourceActions.open', function() { if (this.get('tooltipService.openedViaContextClick')) { this.get('tooltipService').set('openedViaContextClick', false); } diff --git a/lib/shared/addon/components/container-dots/component.js b/lib/shared/addon/components/container-dots/component.js index 4072a57e2..a3755773d 100644 --- a/lib/shared/addon/components/container-dots/component.js +++ b/lib/shared/addon/components/container-dots/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import { computed, observer } from '@ember/object'; +import { sort, alias } from '@ember/object/computed'; +import Component from '@ember/component'; import pagedArray from 'ember-cli-pagination/computed/paged-array'; -import { matches } from 'ui/components/sortable-table/component'; +import { matches } from 'shared/components/sortable-table/component'; +import layout from './template'; export const searchFields = ['displayName','id:prefix','displayState','image','displayIp:ip']; -export default Ember.Component.extend({ +export default Component.extend({ + layout, containers: null, searchText: null, groupByDeploymentUnit: false, @@ -22,8 +26,8 @@ export default Ember.Component.extend({ // ----- // Flow: containers -> arranged -> filtered -> pagedContent -> grouped // ----- - arranged: Ember.computed.sort('containers','sort'), - filtered: Ember.computed('arranged.[]','searchText', function() { + arranged: sort('containers','sort'), + filtered: computed('arranged.[]','searchText', function() { let out = this.get('arranged').slice(); let searchFields = this.get('searchFields'); let searchText = (this.get('searchText')||'').trim().toLowerCase(); @@ -54,11 +58,11 @@ export default Ember.Component.extend({ }), pagedContent: pagedArray('filtered', { - page: Ember.computed.alias("parent.page"), - perPage: Ember.computed.alias("parent.perPage") + page: alias("parent.page"), + perPage: alias("parent.perPage") }), - grouped: Ember.computed('pagedContent.[].deploymentUnitUuid', function() { + grouped: computed('pagedContent.[].deploymentUnitUuid', function() { let map = {}; this.get('pagedContent').forEach((inst) => { let du = inst.get('deploymentUnitUuid'); @@ -74,17 +78,17 @@ export default Ember.Component.extend({ return Object.values(map); }), - indexFrom: Ember.computed('page','perPage', function() { + indexFrom: computed('page','perPage', function() { var current = this.get('page'); var perPage = this.get('perPage'); return Math.max(0, 1 + perPage*(current-1)); }), - indexTo: Ember.computed('indexFrom','perPage','filtered.length', function() { + indexTo: computed('indexFrom','perPage','filtered.length', function() { return Math.min(this.get('filtered.length'), this.get('indexFrom') + this.get('perPage') - 1); }), - pageCountChanged: Ember.observer('indexFrom', 'filtered.length', function() { + pageCountChanged: observer('indexFrom', 'filtered.length', function() { // Go to the last page if we end up past the last page let from = this.get('indexFrom'); let last = this.get('filtered.length'); diff --git a/lib/shared/addon/components/container-logs/component.js b/lib/shared/addon/components/container-logs/component.js index 321d7adf3..42c6adb21 100644 --- a/lib/shared/addon/components/container-logs/component.js +++ b/lib/shared/addon/components/container-logs/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { alias, equal } from '@ember/object/computed'; +import Component from '@ember/component'; import ThrottledResize from 'shared/mixins/throttled-resize'; import Util from 'ui/utils/util'; import { alternateLabel } from 'ui/utils/platform'; +import layout from './template'; import AnsiUp from 'npm:ansi_up'; var typeClass = { @@ -10,7 +13,8 @@ var typeClass = { 2: 'log-stderr', }; -export default Ember.Component.extend(ThrottledResize, { +export default Component.extend(ThrottledResize, { + layout, instance: null, alternateLabel: alternateLabel, showProtip: true, @@ -20,11 +24,11 @@ export default Ember.Component.extend(ThrottledResize, { logHeight: 300, - onlyCombinedLog: Ember.computed.alias('instance.tty'), + onlyCombinedLog: alias('instance.tty'), which: 'combined', - isCombined: Ember.computed.equal('which','combined'), - isStdOut: Ember.computed.equal('which','stdout'), - isStdErr: Ember.computed.equal('which','stderr'), + isCombined: equal('which','combined'), + isStdOut: equal('which','stdout'), + isStdErr: equal('which','stderr'), stdErrVisible: true, stdOutVisible: true, @@ -55,7 +59,7 @@ export default Ember.Component.extend(ThrottledResize, { this.set('which',which); this.set('stdErrVisible', (which === 'combined' || which === 'stderr') ); this.set('stdOutVisible', (which === 'combined' || which === 'stdout') ); - Ember.run.next(this, function() { + next(this, function() { this.send('scrollToBottom'); }); }, @@ -63,7 +67,7 @@ export default Ember.Component.extend(ThrottledResize, { didInsertElement: function() { this._super(); - Ember.run.next(this, 'exec'); + next(this, 'exec'); }, exec: function() { @@ -128,7 +132,7 @@ export default Ember.Component.extend(ThrottledResize, { if ( isFollow ) { - Ember.run.next(() => { + next(() => { this.send('scrollToBottom'); }); } diff --git a/lib/shared/addon/components/container-row/component.js b/lib/shared/addon/components/container-row/component.js index 02867710e..5b861583c 100644 --- a/lib/shared/addon/components/container-row/component.js +++ b/lib/shared/addon/components/container-row/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; -export default Ember.Component.extend({ - projects: Ember.inject.service(), - session: Ember.inject.service(), +export default Component.extend({ + layout, + projects: service(), + session: service(), model: null, showStats: false, diff --git a/lib/shared/addon/components/container-shell/component.js b/lib/shared/addon/components/container-shell/component.js index 8eab88f8c..a30a7464e 100644 --- a/lib/shared/addon/components/container-shell/component.js +++ b/lib/shared/addon/components/container-shell/component.js @@ -3,10 +3,13 @@ import { alternateLabel } from 'ui/utils/platform'; import ThrottledResize from 'shared/mixins/throttled-resize'; import Terminal from 'npm:xterm'; import { proposeGeometry } from 'ui/utils/xterm-fit-addon'; +import { next } from '@ember/runloop'; +import layout from './template'; const DEFAULT_COMMAND = ["/bin/sh","-c",'TERM=xterm-256color; export TERM; [ -x /bin/bash ] && ([ -x /usr/bin/script ] && /usr/bin/script -q -c "/bin/bash" /dev/null || exec /bin/bash) || exec /bin/sh']; export default Ember.Component.extend(ThrottledResize, { + layout, instance: null, command: null, cols: 80, @@ -47,7 +50,7 @@ export default Ember.Component.extend(ThrottledResize, { didInsertElement: function() { this._super(); - Ember.run.next(this, 'exec'); + next(this, 'exec'); }, exec: function() { diff --git a/lib/shared/addon/components/container-subpod/component.js b/lib/shared/addon/components/container-subpod/component.js index 981928931..334dd68e1 100644 --- a/lib/shared/addon/components/container-subpod/component.js +++ b/lib/shared/addon/components/container-subpod/component.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import StrippedName from 'shared/mixins/stripped-name'; +import layout from './template'; -export default Ember.Component.extend(StrippedName, { +export default Component.extend(StrippedName, { + layout, model: null, children: null, groupHasChildren: false, diff --git a/lib/shared/addon/components/container-table/component.js b/lib/shared/addon/components/container-table/component.js index dbb17e9e5..b584595ff 100644 --- a/lib/shared/addon/components/container-table/component.js +++ b/lib/shared/addon/components/container-table/component.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; export const headersAll = [ { @@ -25,8 +27,9 @@ export const headersWithHost = headersAll.filter((x) => x.name !== 'stats'); export const headersWithoutHost = headersWithHost.filter((x) => x.name !== 'hostName'); export const headersWithStats = headersAll.filter((x) => x.name !== 'hostName'); -export default Ember.Component.extend({ - prefs: Ember.inject.service(), +export default Component.extend({ + layout, + prefs: service(), stickyHeader: true, diff --git a/lib/shared/addon/components/container/form-command/component.js b/lib/shared/addon/components/container/form-command/component.js index 36f782364..419b7a45e 100644 --- a/lib/shared/addon/components/container/form-command/component.js +++ b/lib/shared/addon/components/container/form-command/component.js @@ -1,7 +1,15 @@ -import Ember from 'ember'; +import { isEmpty } from '@ember/utils'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; -import ManageLabels from 'ui/mixins/manage-labels'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import ManageLabels from 'shared/mixins/manage-labels'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; const STOP_TIMEOUT = 10; const STOP_SIGNALS = [ @@ -51,7 +59,8 @@ const LOG_DRIVERS = [ 'syslog', ]; -export default Ember.Component.extend(ManageLabels, { +export default Component.extend(ManageLabels, { + layout, // Inputs instance: null, errors: null, @@ -60,7 +69,7 @@ export default Ember.Component.extend(ManageLabels, { stopSignals: STOP_SIGNALS, customStopSet: false, - intl: Ember.inject.service(), + intl: service(), init() { this._super(...arguments); @@ -227,7 +236,7 @@ export default Ember.Component.extend(ManageLabels, { logDriverChoices: LOG_DRIVERS, - stopOrCustom: Ember.computed({ + stopOrCustom: computed({ get(/* key */) { return this.get('instance.stopSignal'); }, @@ -243,8 +252,8 @@ export default Ember.Component.extend(ManageLabels, { } }), - hasLogConfig: Ember.computed('instance.logConfig.config', function() { - return Ember.isEmpty(this.get('instance.logConfig.config')); + hasLogConfig: computed('instance.logConfig.config', function() { + return isEmpty(this.get('instance.logConfig.config')); }), }); diff --git a/lib/shared/addon/components/container/form-container-links/component.js b/lib/shared/addon/components/container/form-container-links/component.js index 8dff8c7c7..f640f3bcf 100644 --- a/lib/shared/addon/components/container/form-container-links/component.js +++ b/lib/shared/addon/components/container/form-container-links/component.js @@ -1,6 +1,13 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ContainerChoices from 'ui/mixins/container-choices'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; const headers = [ { @@ -13,15 +20,16 @@ const headers = [ }, ]; -export default Ember.Component.extend(ContainerChoices, { - router: Ember.inject.service(), - growl: Ember.inject.service(), +export default Component.extend(ContainerChoices, { + layout, + router: service(), + growl: service(), // Inputs editing: null, instance: null, - linksArray: Ember.computed.alias('instance.instanceLinks'), + linksArray: alias('instance.instanceLinks'), tagName: '', errors: null, diff --git a/lib/shared/addon/components/container/form-image/component.js b/lib/shared/addon/components/container/form-image/component.js index 7387b0ff5..e4747dd32 100644 --- a/lib/shared/addon/components/container/form-image/component.js +++ b/lib/shared/addon/components/container/form-image/component.js @@ -1,11 +1,15 @@ -import Ember from 'ember'; +import { scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; // Remember the last value and use that for new one var lastContainer = 'ubuntu:xenial'; var lastWindows = 'microsoft/nanoserver'; -export default Ember.Component.extend({ - projects: Ember.inject.service(), +export default Component.extend({ + layout, + projects: service(), // Inputs initialValue: null, @@ -41,7 +45,7 @@ export default Ember.Component.extend({ } } - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { this.send('setInput', initial); this.userInputDidChange(); }); diff --git a/lib/shared/addon/components/container/form-networking/component.js b/lib/shared/addon/components/container/form-networking/component.js index ee8d2ae80..35bc2e345 100644 --- a/lib/shared/addon/components/container/form-networking/component.js +++ b/lib/shared/addon/components/container/form-networking/component.js @@ -1,14 +1,23 @@ -import Ember from 'ember'; +import { equal } from '@ember/object/computed'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ContainerChoices from 'ui/mixins/container-choices'; import ManageLabels from 'ui/mixins/manage-labels'; import C from 'ui/utils/constants'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; const UTS_HOST = 'host'; -export default Ember.Component.extend(ManageLabels, ContainerChoices,{ - projects: Ember.inject.service(), - settings: Ember.inject.service(), +export default Component.extend(ManageLabels, ContainerChoices,{ + layout, + projects: service(), + settings: service(), //Inputs instance: null, @@ -51,7 +60,7 @@ export default Ember.Component.extend(ManageLabels, ContainerChoices,{ }, }, - disableRetainIp: Ember.computed('isUpgrade', 'service.retainIp', 'retainWasSetOnInit', function() { + disableRetainIp: computed('isUpgrade', 'service.retainIp', 'retainWasSetOnInit', function() { let isUpgrade = this.get('isUpgrade'); let wasSet = this.get('retainWasSetOnInit'); if ( isUpgrade && wasSet ) { @@ -69,10 +78,10 @@ export default Ember.Component.extend(ManageLabels, ContainerChoices,{ // Network // ---------------------------------- networkChoices: null, - isContainerNetwork: Ember.computed.equal('instance.networkMode','container'), - isManagedNetwork: Ember.computed.equal('instance.networkMode','managed'), - isHostNetwork: Ember.computed.equal('instance.networkMode','host'), - isBridgeNetwork: Ember.computed.equal('instance.networkMode','bridge'), + isContainerNetwork: equal('instance.networkMode','container'), + isManagedNetwork: equal('instance.networkMode','managed'), + isHostNetwork: equal('instance.networkMode','host'), + isBridgeNetwork: equal('instance.networkMode','bridge'), initNetwork: function() { let mode = this.get('instance.networkMode') || 'managed'; diff --git a/lib/shared/addon/components/container/form-ports/component.js b/lib/shared/addon/components/container/form-ports/component.js index a5d2a2e43..025597a32 100644 --- a/lib/shared/addon/components/container/form-ports/component.js +++ b/lib/shared/addon/components/container/form-ports/component.js @@ -1,13 +1,17 @@ -import Ember from 'ember'; +import { next, scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import { parsePortSpec } from 'ui/utils/parse-port'; +import layout from './template'; const protocolOptions = [ {label: 'TCP', value: 'tcp'}, {label: 'UDP', value: 'udp'} ]; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), // The initial ports to show, as an array of objects initialPorts : null, @@ -37,7 +41,7 @@ export default Ember.Component.extend({ if ( value.bindAddress ) { - Ember.run.next(() => { this.send('showIp'); }); + next(() => { this.send('showIp'); }); } out.push({ @@ -56,7 +60,7 @@ export default Ember.Component.extend({ if ( parsed.hostIp ) { - Ember.run.next(() => { this.send('showIp'); }); + next(() => { this.send('showIp'); }); } out.push({ @@ -74,7 +78,7 @@ export default Ember.Component.extend({ }); } - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { this.set('portsArray', out); this.portsArrayDidChange(); }); @@ -83,7 +87,7 @@ export default Ember.Component.extend({ actions: { addPort() { this.get('portsArray').pushObject({public: '', private: '', protocol: 'tcp'}); - Ember.run.next(() => { + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } diff --git a/lib/shared/addon/components/container/form-scale/component.js b/lib/shared/addon/components/container/form-scale/component.js index b47fb6029..211a2e795 100644 --- a/lib/shared/addon/components/container/form-scale/component.js +++ b/lib/shared/addon/components/container/form-scale/component.js @@ -1,8 +1,12 @@ -import Ember from 'ember'; +import { computed, observer } from '@ember/object'; +import { next } from '@ember/runloop'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import ManageLabels from 'ui/mixins/manage-labels'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, { +export default Component.extend(ManageLabels, { + layout, initialLabel: null, initialScale: null, isService: null, @@ -25,7 +29,7 @@ export default Ember.Component.extend(ManageLabels, { var glb = this.getLabel(C.LABEL.SCHED_GLOBAL) === 'true'; let mode = this.get('mode'); if ( mode === 'service' && glb ) { - Ember.run.next(() => { + next(() => { this.set('mode', 'global'); }); } @@ -45,16 +49,16 @@ export default Ember.Component.extend(ManageLabels, { }, }, - asInteger: Ember.computed('userInput', function() { + asInteger: computed('userInput', function() { return parseInt(this.get('userInput'),10) || 0; }), - scaleChanged: Ember.observer('asInteger', function() { + scaleChanged: observer('asInteger', function() { let cur = this.get('asInteger'); this.sendAction('setScale', cur); }), - modeChanged: Ember.observer('mode', function() { + modeChanged: observer('mode', function() { var mode = this.get('mode'); if ( !mode ) { return; diff --git a/lib/shared/addon/components/container/form-scheduling/component.js b/lib/shared/addon/components/container/form-scheduling/component.js index b11c772aa..b60332856 100644 --- a/lib/shared/addon/components/container/form-scheduling/component.js +++ b/lib/shared/addon/components/container/form-scheduling/component.js @@ -1,9 +1,18 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ManageLabels from 'ui/mixins/manage-labels'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, { - intl: Ember.inject.service(), +export default Component.extend(ManageLabels, { + layout, + intl: service(), // Inputs // Global scale scheduling @@ -57,7 +66,7 @@ export default Ember.Component.extend(ManageLabels, { isRequestedHost: false, requestedHostId: null, }); - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { this.sendAction('setRequestedHost', null); }); } @@ -99,7 +108,7 @@ export default Ember.Component.extend(ManageLabels, { this.sendAction('setRequestedHost', hostId); }.observes('requestedHostId'), - selectedChoice: Ember.computed('allHosts.@each.{id,name,state}', function() { + selectedChoice: computed('allHosts.@each.{id,name,state}', function() { return this.get('hostChoices').findBy('id', this.get('initialHostId')); }), diff --git a/lib/shared/addon/components/container/form-secrets/component.js b/lib/shared/addon/components/container/form-secrets/component.js index 28d10b73d..1feba88a2 100644 --- a/lib/shared/addon/components/container/form-secrets/component.js +++ b/lib/shared/addon/components/container/form-secrets/component.js @@ -1,18 +1,26 @@ -import Ember from 'ember'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { gte } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; const DEFAULT_UID = '0'; const DEFAULT_GID = '0'; const DEFAULT_MODE = '444'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), secrets: null, editing: false, showPermissions: false, allSecrets: null, - haveAny: Ember.computed.gte('allSecrets.length',1), + haveAny: gte('allSecrets.length',1), init: function() { this._super(...arguments); diff --git a/lib/shared/addon/components/container/form-security/component.js b/lib/shared/addon/components/container/form-security/component.js index 0f581683c..06475d563 100644 --- a/lib/shared/addon/components/container/form-security/component.js +++ b/lib/shared/addon/components/container/form-security/component.js @@ -1,9 +1,14 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import { next } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import ManageLabels from 'shared/mixins/manage-labels'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, { - projects: Ember.inject.service(), +export default Component.extend(ManageLabels, { + layout, + projects: service(), classNames: ['accordion-wrapper'], @@ -210,10 +215,10 @@ export default Ember.Component.extend(ManageLabels, { }, memoryDidChange: function() { - Ember.run.next(this,'updateMemory'); + next(this,'updateMemory'); }.observes('memoryMb','memoryMode','swapMb','swapMode','swappinessMode','swappiness'), - memoryReservationChanged: Ember.observer('memoryReservationMb', function() { + memoryReservationChanged: observer('memoryReservationMb', function() { var mem = this.get('memoryReservationMb'); if ( isNaN(mem) || mem <= 0) { diff --git a/lib/shared/addon/components/container/form-service-links/component.js b/lib/shared/addon/components/container/form-service-links/component.js index ec54954a4..1c703ad1c 100644 --- a/lib/shared/addon/components/container/form-service-links/component.js +++ b/lib/shared/addon/components/container/form-service-links/component.js @@ -1,9 +1,16 @@ -import Ember from 'ember'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), - settings: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), + settings: service(), // Inputs service : null, diff --git a/lib/shared/addon/components/container/form-upgrade/component.js b/lib/shared/addon/components/container/form-upgrade/component.js index 4102fe0b4..d6f277e94 100644 --- a/lib/shared/addon/components/container/form-upgrade/component.js +++ b/lib/shared/addon/components/container/form-upgrade/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, service: null, editing: null, isUpgrade: null, diff --git a/lib/shared/addon/components/container/form-volume-row/component.js b/lib/shared/addon/components/container/form-volume-row/component.js index e147e996b..e868ab5a7 100644 --- a/lib/shared/addon/components/container/form-volume-row/component.js +++ b/lib/shared/addon/components/container/form-volume-row/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - modalService: Ember.inject.service('modal'), +export default Component.extend({ + layout, + modalService: service('modal'), requestedHostId: null, diff --git a/lib/shared/addon/components/container/form-volumes/component.js b/lib/shared/addon/components/container/form-volumes/component.js index e76675e16..540a7940c 100644 --- a/lib/shared/addon/components/container/form-volumes/component.js +++ b/lib/shared/addon/components/container/form-volumes/component.js @@ -1,6 +1,17 @@ -import Ember from 'ember'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; -import { parseVolumeSpec, stringifyVolumeSpec } from 'ui/utils/parse-volume'; +import { once } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import { + parseVolumeSpec, + stringifyVolumeSpec +} from 'ui/utils/parse-volume'; +import layout from './template'; + export const NEW_VOLUME = 'newVolume'; export const VOLUME = 'volume'; @@ -10,10 +21,11 @@ export const FROM_LAUNCH_CONFIG = 'volumesFromLaunchConfig'; export const TMPFS = 'tmpfs'; export const CUSTOM = 'custom'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), - projects: Ember.inject.service(), - modalService: Ember.inject.service('modal'), +export default Component.extend({ + layout, + intl: service(), + projects: service(), + modalService: service('modal'), classNames: ['accordion-wrapper'], @@ -187,7 +199,7 @@ export default Ember.Component.extend({ }, shouldUpdate: function() { - Ember.run.once(this,'updateInstance'); + once(this,'updateInstance'); }.observes('volumesArray.@each.{volume,hostPath,mountPoint,launchConfig,str,opts}'), updateInstance() { diff --git a/lib/shared/addon/components/container/new-edit/component.js b/lib/shared/addon/components/container/new-edit/component.js index 40f96d976..1c26ad5cc 100644 --- a/lib/shared/addon/components/container/new-edit/component.js +++ b/lib/shared/addon/components/container/new-edit/component.js @@ -1,14 +1,20 @@ -import Ember from 'ember'; +import { equal } from '@ember/object/computed'; +import { next } from '@ember/runloop'; +import { resolve, reject, all } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import { debouncedObserver } from 'ui/utils/debounce'; import C from 'ui/utils/constants'; import { flattenLabelArrays } from 'shared/mixins/manage-labels'; import Util from 'ui/utils/util'; +import layout from './template'; -export default Ember.Component.extend(NewOrEdit, { - intl: Ember.inject.service(), - prefs: Ember.inject.service(), - settings: Ember.inject.service(), +export default Component.extend(NewOrEdit, { + layout, + intl: service(), + prefs: service(), + settings: service(), tagName: 'form', @@ -292,7 +298,7 @@ export default Ember.Component.extend(NewOrEdit, { doSave() { let pr = this.get('primaryResource'); - let stackPromise = Ember.RSVP.resolve(); + let stackPromise = resolve(); if ( !this.get('isUpgrade') ) { // Set the stack ID if ( this.get('stack.id') ) { @@ -303,7 +309,7 @@ export default Ember.Component.extend(NewOrEdit, { }); } else { // This shouldn't happen since willSave checked it... - return Ember.RSVP.reject('No Stack'); + return reject('No Stack'); } } @@ -312,10 +318,10 @@ export default Ember.Component.extend(NewOrEdit, { return stackPromise.then(() => { let volumes = this.get('volumesToCreate'); - let volumesPromise = Ember.RSVP.resolve(); + let volumesPromise = resolve(); if ( volumes && volumes.get('length') ) { - volumesPromise = Ember.RSVP.all(volumes.map((volume) => { + volumesPromise = all(volumes.map((volume) => { volume.set('stackId', this.get('stack.id')); return volume.save(); })); @@ -330,7 +336,7 @@ export default Ember.Component.extend(NewOrEdit, { return sup.apply(self,arguments); } }); - }) + }); }, doneSaving() { @@ -368,7 +374,7 @@ export default Ember.Component.extend(NewOrEdit, { k += 'container'; } - Ember.run.next(() => { + next(() => { this.set('header', this.get('intl').t(k, args)); }); }.observes('isUpgrade','isService','isSidekick','isGlobal','service.displayName','intl.locale').on('init'), @@ -377,5 +383,5 @@ export default Ember.Component.extend(NewOrEdit, { return !!this.get('store').getById('schema','secret'); }.property(), - isSidekick: Ember.computed.equal('mode','sidekick'), + isSidekick: equal('mode','sidekick'), }); diff --git a/lib/shared/addon/components/container/scheduling-rule-row/component.js b/lib/shared/addon/components/container/scheduling-rule-row/component.js index 13209d543..40af129e3 100644 --- a/lib/shared/addon/components/container/scheduling-rule-row/component.js +++ b/lib/shared/addon/components/container/scheduling-rule-row/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { setProperties, computed } from '@ember/object'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; function splitEquals(str) { var idx = str.indexOf('='); @@ -34,7 +36,8 @@ function normalizedLabels(objects) { return out; } -export default Ember.Component.extend({ +export default Component.extend({ + layout, rule: null, instance: null, @@ -160,7 +163,7 @@ export default Ember.Component.extend({ key += this.get('suffix'); - Ember.setProperties(this.get('rule'),{ + setProperties(this.get('rule'),{ key: key, value: value }); @@ -183,7 +186,7 @@ export default Ember.Component.extend({ } }.observes('isGlobal'), - getSuffixLabel: Ember.computed('suffix', function() { + getSuffixLabel: computed('suffix', function() { let label = this.get('schedulingRuleSuffixChoices').findBy('value', this.get('suffix')).label; label = label.split('.'); return label[label.length -1]; diff --git a/lib/shared/addon/components/containers-header/component.js b/lib/shared/addon/components/containers-header/component.js index a1dc12ce2..b7a59579e 100644 --- a/lib/shared/addon/components/containers-header/component.js +++ b/lib/shared/addon/components/containers-header/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import { tagChoices } from 'ui/models/stack'; import { uniqKeys } from 'shared/utils/util'; +import layout from './template'; -export default Ember.Component.extend({ - projects: Ember.inject.service(), +export default Component.extend({ + layout, + projects: service(), tags: null, simpleMode: false, diff --git a/lib/shared/addon/components/copy-inline/component.js b/lib/shared/addon/components/copy-inline/component.js index 2306371da..c7260909d 100644 --- a/lib/shared/addon/components/copy-inline/component.js +++ b/lib/shared/addon/components/copy-inline/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import Component from '@ember/component'; import { isSafari } from 'ui/utils/platform'; +import layout from './template'; const DELAY = 1000; const DEFAULT_TEXT = 'copyToClipboard.tooltip'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName : 'span', model : null, @@ -41,7 +44,7 @@ export default Ember.Component.extend({ model: {tooltipText: 'copyToClipboard.copied'} }); - Ember.run.later(() =>{ + later(() =>{ this.setProperties({ status: null, model: {tooltipText: orig} diff --git a/lib/shared/addon/components/copy-to-clipboard/component.js b/lib/shared/addon/components/copy-to-clipboard/component.js index 0ed839bb8..a8bf5c834 100644 --- a/lib/shared/addon/components/copy-to-clipboard/component.js +++ b/lib/shared/addon/components/copy-to-clipboard/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { later } from '@ember/runloop'; +import Component from '@ember/component'; import { isSafari } from 'ui/utils/platform'; +import layout from './template'; const DELAY = 1000; const DEFAULT_TEXT = 'copyToClipboard.tooltip'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName : 'span', model : null, @@ -41,7 +45,7 @@ export default Ember.Component.extend({ model: {tooltipText: 'copyToClipboard.copied'} }); - Ember.run.later(() =>{ + later(() =>{ this.setProperties({ status: null, model: {tooltipText: orig} @@ -50,7 +54,7 @@ export default Ember.Component.extend({ }, }, - buttonClasses: Ember.computed('status', function() { + buttonClasses: computed('status', function() { let status = this.get('status'); let out = 'btn bg-transparent'; diff --git a/lib/shared/addon/components/device-permissions/component.js b/lib/shared/addon/components/device-permissions/component.js index a0483be47..476bb8309 100644 --- a/lib/shared/addon/components/device-permissions/component.js +++ b/lib/shared/addon/components/device-permissions/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { get, computed } from '@ember/object'; +import layout from './template'; -const { computed, get/*, set*/ } = Ember; - -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), rSelected: false, wSelected: false, @@ -71,7 +74,7 @@ export default Ember.Component.extend({ }), rebuild: function() { - Ember.run.next(() => { + next(() => { if (get(this, 'editing')) { this.$('SELECT').multiselect('setOptions', { nonSelectedText: get(this, 'intl').t('devicePermissions.none'), diff --git a/lib/shared/addon/components/empty-table/component.js b/lib/shared/addon/components/empty-table/component.js index 31381a787..dc62247e8 100644 --- a/lib/shared/addon/components/empty-table/component.js +++ b/lib/shared/addon/components/empty-table/component.js @@ -1,11 +1,15 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - projects: Ember.inject.service(), +export default Component.extend({ + layout, + projects: service(), classNames: ['row border-dash'], showNew: true, ctx: 'projectId', - projectId: Ember.computed.alias('projects.current.id'), + projectId: alias('projects.current.id'), }); diff --git a/lib/shared/addon/components/env-catalog/component.js b/lib/shared/addon/components/env-catalog/component.js index 38378af20..35882666b 100644 --- a/lib/shared/addon/components/env-catalog/component.js +++ b/lib/shared/addon/components/env-catalog/component.js @@ -1,9 +1,15 @@ -import Ember from 'ember'; +import { allSettled } from 'rsvp'; +import { next } from '@ember/runloop'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import Util from 'ui/utils/util'; +import layout from './template'; -export default Ember.Component.extend({ - catalog: Ember.inject.service(), +export default Component.extend({ + layout, + catalog: service(), project: null, catalogs: null, ary: null, @@ -36,7 +42,7 @@ export default Ember.Component.extend({ actions: { add() { - let obj = Ember.Object.create({ + let obj = EmberObject.create({ name: '', branch: C.CATALOG.DEFAULT_BRANCH, url: '', @@ -46,7 +52,7 @@ export default Ember.Component.extend({ this.get('ary').pushObject(obj); - Ember.run.next(() => { + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } @@ -101,7 +107,7 @@ export default Ember.Component.extend({ } }); - Ember.RSVP.allSettled(changes).then((settled) => { + allSettled(changes).then((settled) => { let errors = settled.filterBy('state', 'rejected'); if (errors.length) { let errOut = []; @@ -111,11 +117,11 @@ export default Ember.Component.extend({ this.set('errors',errOut.uniq()); cb(false); } else { - return Ember.run.next(() => { + return next(() => { return this.get('catalog').refresh().finally(() => { cb(true); this.sendAction('cancel'); - Ember.run.next(() => { + next(() => { // @TODO ugh... window.l('route:catalog-tab').send('refresh'); }); diff --git a/lib/shared/addon/components/environment-name/component.js b/lib/shared/addon/components/environment-name/component.js index 767ab0734..6ff50cdf5 100644 --- a/lib/shared/addon/components/environment-name/component.js +++ b/lib/shared/addon/components/environment-name/component.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; let notFound= {}; -export default Ember.Component.extend({ +export default Component.extend({ + layout, environmentId: null, loading: true, env: null, diff --git a/lib/shared/addon/components/field-required/component.js b/lib/shared/addon/components/field-required/component.js index d560b82d6..3534fc4c5 100644 --- a/lib/shared/addon/components/field-required/component.js +++ b/lib/shared/addon/components/field-required/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: 'span', classNames: ['field-required'], }); diff --git a/lib/shared/addon/components/form-balancer-config/component.js b/lib/shared/addon/components/form-balancer-config/component.js index 9dd64e2f4..cf0734919 100644 --- a/lib/shared/addon/components/form-balancer-config/component.js +++ b/lib/shared/addon/components/form-balancer-config/component.js @@ -1,13 +1,21 @@ -import Ember from 'ember'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { empty } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), - settings: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), + settings: service(), classNames: ['accordion-wrapper'], - isEmpty: Ember.computed.empty('service.lbConfig.config'), + isEmpty: empty('service.lbConfig.config'), statusClass: null, status: function() { diff --git a/lib/shared/addon/components/form-balancer-listeners/component.js b/lib/shared/addon/components/form-balancer-listeners/component.js index eb964f150..c175147c3 100644 --- a/lib/shared/addon/components/form-balancer-listeners/component.js +++ b/lib/shared/addon/components/form-balancer-listeners/component.js @@ -1,8 +1,13 @@ -import Ember from 'ember'; +import { once } from '@ember/runloop'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import { parsePortSpec } from 'ui/utils/parse-port'; +import layout from './template'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), service: null, @@ -44,7 +49,7 @@ export default Ember.Component.extend({ (this.get('service.launchConfig.ports')||[]).forEach((str) => { let parsed = parsePortSpec(str,'http'); - let obj = Ember.Object.create({ + let obj = EmberObject.create({ access: 'public', protocol: null, sourcePort: parsed.hostPort, @@ -56,7 +61,7 @@ export default Ember.Component.extend({ (this.get('service.launchConfig.expose')||[]).forEach((str) => { let parsed = parsePortSpec(str,'http'); - let obj = Ember.Object.create({ + let obj = EmberObject.create({ access: 'internal', protocol: null, sourcePort: parsed.hostPort, @@ -86,7 +91,7 @@ export default Ember.Component.extend({ }.on('init'), shouldFlattenAndValidate: function() { - Ember.run.once(this,'flattenAndValidate'); + once(this,'flattenAndValidate'); }.observes('ports.@each.{sourcePort,protocol,access,sourceIp,rules}'), flattenAndValidate() { @@ -192,7 +197,7 @@ export default Ember.Component.extend({ actions: { addPort() { - let port = Ember.Object.create({ + let port = EmberObject.create({ access: 'public', protocol: 'http', port: null, diff --git a/lib/shared/addon/components/form-balancer-rules/component.js b/lib/shared/addon/components/form-balancer-rules/component.js index b84504e20..e7c69efee 100644 --- a/lib/shared/addon/components/form-balancer-rules/component.js +++ b/lib/shared/addon/components/form-balancer-rules/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, rules: null, singleTarget: true, protocol: null, diff --git a/lib/shared/addon/components/form-count/component.js b/lib/shared/addon/components/form-count/component.js index 3511d8b61..96d79ebda 100644 --- a/lib/shared/addon/components/form-count/component.js +++ b/lib/shared/addon/components/form-count/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { computed, observer } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; function newMax(val, curMax, absoluteMax) { return Math.min(absoluteMax, Math.max(curMax, Math.ceil(val/10)*10)); } -export default Ember.Component.extend({ +export default Component.extend({ + layout, initialScale: null, min: 1, max: 100, @@ -32,11 +35,11 @@ export default Ember.Component.extend({ }, }, - asInteger: Ember.computed('userInput', function() { + asInteger: computed('userInput', function() { return parseInt(this.get('userInput'),10) || 0; }), - scaleChanged: Ember.observer('asInteger', function() { + scaleChanged: observer('asInteger', function() { let cur = this.get('asInteger'); this.sendAction('setScale', cur); diff --git a/lib/shared/addon/components/form-engine-opts/component.js b/lib/shared/addon/components/form-engine-opts/component.js index 9009aa4f6..e8cf71523 100644 --- a/lib/shared/addon/components/form-engine-opts/component.js +++ b/lib/shared/addon/components/form-engine-opts/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, machine: null, - settings: Ember.inject.service(), - intl: Ember.inject.service(), + settings: service(), + intl: service(), showEngineUrl: null, didReceiveAttrs() { diff --git a/lib/shared/addon/components/form-env-var/component.js b/lib/shared/addon/components/form-env-var/component.js index 3d73cc72a..0e2ccec07 100644 --- a/lib/shared/addon/components/form-env-var/component.js +++ b/lib/shared/addon/components/form-env-var/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: '', model: null, expandAll: null, diff --git a/lib/shared/addon/components/form-healthcheck/component.js b/lib/shared/addon/components/form-healthcheck/component.js index a4e420b48..b7cf924c7 100644 --- a/lib/shared/addon/components/form-healthcheck/component.js +++ b/lib/shared/addon/components/form-healthcheck/component.js @@ -1,6 +1,13 @@ -import Ember from 'ember'; -import { parseRequestLine } from 'ui/utils/parse-healthcheck'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { parseRequestLine } from 'shared/utils/parse-healthcheck'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; const NONE = 'none'; const TCP = 'tcp'; @@ -10,10 +17,11 @@ const METHOD_CHOICES = ['OPTIONS','GET','HEAD','POST','PUT','DELETE','TRACE','CO const HTTP_1_0 = 'HTTP/1.0'; const HTTP_1_1 = 'HTTP/1.1'; -export default Ember.Component.extend({ - projects: Ember.inject.service(), - intl: Ember.inject.service(), - settings: Ember.inject.service(), +export default Component.extend({ + layout, + projects: service(), + intl: service(), + settings: service(), // Inputs healthCheck: null, @@ -32,7 +40,7 @@ export default Ember.Component.extend({ uriVersion: null, checkType: null, uriHost: null, - showUriHost: Ember.computed.equal('uriVersion', HTTP_1_1), + showUriHost: equal('uriVersion', HTTP_1_1), strategy: null, diff --git a/lib/shared/addon/components/form-key-value/component.js b/lib/shared/addon/components/form-key-value/component.js index 69f5a040d..1b8ce8327 100644 --- a/lib/shared/addon/components/form-key-value/component.js +++ b/lib/shared/addon/components/form-key-value/component.js @@ -1,4 +1,8 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import { next, debounce } from '@ember/runloop'; +import Component from '@ember/component'; +import EmberObject, { set, observer } from '@ember/object'; +import layout from './template'; function applyLinesIntoArray(lines, ary) { lines.forEach((line) => { @@ -29,11 +33,11 @@ function applyLinesIntoArray(lines, ary) { var existing = ary.filterBy('key',key)[0]; if ( existing ) { - Ember.set(existing,'value',val); + set(existing,'value',val); } else { - ary.pushObject(Ember.Object.create({key: key, value: val})); + ary.pushObject(EmberObject.create({key: key, value: val})); } }); } @@ -55,7 +59,8 @@ function removeEmptyEntries(ary, allowEmptyValue=false) { ary.removeObjects(toRemove); } -export default Ember.Component.extend({ +export default Component.extend({ + layout, // Inputs initialStr: null, initialMap: null, @@ -79,12 +84,12 @@ export default Ember.Component.extend({ if ( required && !ary.get('length') ) { Object.keys(required).forEach((k) => { - ary.pushObject(Ember.Object.create({key: k, value: required[k], editable: false})); + ary.pushObject(EmberObject.create({key: k, value: required[k], editable: false})); }); } - ary.pushObject(Ember.Object.create({key: '', value: ''})); - Ember.run.next(() => { + ary.pushObject(EmberObject.create({key: '', value: ''})); + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } @@ -122,7 +127,7 @@ export default Ember.Component.extend({ if ( map ) { Object.keys(map).forEach((key) => { - ary.push(Ember.Object.create({key: key, value: map[key]})); + ary.push(EmberObject.create({key: key, value: map[key]})); }); } else if ( this.get('initialStr') ) @@ -149,8 +154,8 @@ export default Ember.Component.extend({ } }, - aryObserver: Ember.on('init', Ember.observer('ary.@each.{key,value}', function() { - Ember.run.debounce(this,'fireChanged',100); + aryObserver: on('init', observer('ary.@each.{key,value}', function() { + debounce(this,'fireChanged',100); })), fireChanged() { diff --git a/lib/shared/addon/components/form-metadata/component.js b/lib/shared/addon/components/form-metadata/component.js index 44777747e..45896f894 100644 --- a/lib/shared/addon/components/form-metadata/component.js +++ b/lib/shared/addon/components/form-metadata/component.js @@ -1,8 +1,16 @@ -import Ember from 'ember'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { typeOf, isNone } from '@ember/utils'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), instance: null, detailKey: 'formMetadata.detail', @@ -22,7 +30,7 @@ export default Ember.Component.extend({ validate: function () { let intl = this.get('intl'); if ( this.get('valid') ) { - if ( ['object', 'null'].indexOf(Ember.typeOf(this.get('instance.metadata'))) === -1 ) { + if ( ['object', 'null'].indexOf(typeOf(this.get('instance.metadata'))) === -1 ) { this.set('errors', [intl.t('formMetadata.errors.topLevelValueInvalid')]); } else { this.set('errors', []); @@ -37,7 +45,7 @@ export default Ember.Component.extend({ let k; if (this.get('errors.length') ) { k = STATUS.ERROR; - } else if (!Ember.isNone(this.get('instance.metadata')) && Object.keys(this.get('instance.metadata')).length > 0) { + } else if (!isNone(this.get('instance.metadata')) && Object.keys(this.get('instance.metadata')).length > 0) { k = STATUS.CONFIGURED; } else { k = STATUS.NOTCONFIGURED; diff --git a/lib/shared/addon/components/form-name-description/component.js b/lib/shared/addon/components/form-name-description/component.js index 1819e7553..734849571 100644 --- a/lib/shared/addon/components/form-name-description/component.js +++ b/lib/shared/addon/components/form-name-description/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import { next, once } from '@ember/runloop'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, // Inputs // You can either set model or name+description model : null, @@ -49,7 +52,7 @@ export default Ember.Component.extend({ actions: { expandDescription() { this.set('descriptionExpanded', true); - Ember.run.next(() => { + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } @@ -74,7 +77,7 @@ export default Ember.Component.extend({ }.observes('model'), nameChanged: function() { - Ember.run.once(() => { + once(() => { let val = this.get('_name'); if ( this.get('model') ) { this.set('model.name', val); @@ -85,7 +88,7 @@ export default Ember.Component.extend({ }.observes('_name'), descriptionChanged: function() { - Ember.run.once(() => { + once(() => { let val = this.get('_description'); if ( this.get('model') ) { this.set('model.description', val); @@ -96,7 +99,7 @@ export default Ember.Component.extend({ }.observes('_description'), didInsertElement() { - Ember.run.next(() => { + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } diff --git a/lib/shared/addon/components/form-ssl-termination/component.js b/lib/shared/addon/components/form-ssl-termination/component.js index 3b00474d5..ee539d1d3 100644 --- a/lib/shared/addon/components/form-ssl-termination/component.js +++ b/lib/shared/addon/components/form-ssl-termination/component.js @@ -1,13 +1,22 @@ -import Ember from 'ember'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { get, set } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), service : null, allCertificates : null, - lbConfig: Ember.computed.alias('service.lbConfig'), + lbConfig: alias('service.lbConfig'), alternates : null, @@ -42,23 +51,23 @@ export default Ember.Component.extend({ alternateCertificates: function() { var def = this.get('lbConfig.defaultCertificateId'); return this.get('allCertificates').slice().filter((obj) => { - return Ember.get(obj, 'id') !== def; + return get(obj, 'id') !== def; }); }.property('allCertificates.@each.id','lbConfig.defaultCertificateId'), defaultDidChange: function() { var def = this.get('lbConfig.defaultCertificateId'); this.get('alternates').forEach((obj) => { - if ( Ember.get(obj, 'value') === def ) + if ( get(obj, 'value') === def ) { - Ember.set(obj,'value',null); + set(obj,'value',null); } }); }.observes('lbConfig.defaultCertificateId'), alternatesDidChange: function() { this.set('lbConfig.certificateIds', this.get('alternates').map((obj) => { - return Ember.get(obj, 'value'); + return get(obj, 'value'); }).filter((id) => { return !!id; }).uniq()); }.observes('alternates.@each.value'), diff --git a/lib/shared/addon/components/form-stack/component.js b/lib/shared/addon/components/form-stack/component.js index 0896588fc..0821b9099 100644 --- a/lib/shared/addon/components/form-stack/component.js +++ b/lib/shared/addon/components/form-stack/component.js @@ -1,10 +1,16 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import { next } from '@ember/runloop'; +import { equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; const REUSE = 'reuse'; const CREATE = 'create'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), // Outputs stack: null, @@ -16,7 +22,7 @@ export default Ember.Component.extend({ mode: REUSE, editable: true, required: true, - isReuse: Ember.computed.equal('mode', REUSE), + isReuse: equal('mode', REUSE), classNames: ['inline-form'], choices: null, @@ -40,20 +46,20 @@ export default Ember.Component.extend({ if ( stack && stack.get('id') ) { this.set('reuseStackId', stack.get('id')); } else { - Ember.run.next(() => { + next(() => { this.set('mode', CREATE); this.get('createStack.name', 'Default') }); } } - Ember.run.next(() => { + next(() => { this.updateStack(); }); } }, - updateStack: Ember.observer('reuseStackId','mode', function() { + updateStack: observer('reuseStackId','mode', function() { let stack; if ( this.get('mode') === REUSE ) { stack = this.get('choices').findBy('id', this.get('reuseStackId')); @@ -66,7 +72,7 @@ export default Ember.Component.extend({ this.set('stack', stack); }), - validate: Ember.observer('stack.{id,name}', function() { + validate: observer('stack.{id,name}', function() { let intl = this.get('intl'); let errors = []; @@ -91,7 +97,7 @@ export default Ember.Component.extend({ let mode = (this.get('mode') === REUSE ? CREATE : REUSE); this.set('mode', mode); if ( mode === CREATE ) { - Ember.run.next(() => { + next(() => { let elem = this.$('.new-name')[0]; if ( elem ) { elem.focus(); diff --git a/lib/shared/addon/components/form-stickiness/component.js b/lib/shared/addon/components/form-stickiness/component.js index d2ccc1460..65aeaee2e 100644 --- a/lib/shared/addon/components/form-stickiness/component.js +++ b/lib/shared/addon/components/form-stickiness/component.js @@ -1,20 +1,28 @@ -import Ember from 'ember'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { alias, equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; import C from 'ui/utils/constants'; import ManageLabels from 'shared/mixins/manage-labels'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, { +export default Component.extend(ManageLabels, { + layout, service : null, - intl: Ember.inject.service(), + intl: service(), classNames: ['accordion-wrapper'], - lbConfig: Ember.computed.alias('service.lbConfig'), + lbConfig: alias('service.lbConfig'), lbCookie : null, stickiness : 'none', - isNone : Ember.computed.equal('stickiness','none'), - isCookie : Ember.computed.equal('stickiness','cookie'), + isNone : equal('stickiness','none'), + isCookie : equal('stickiness','cookie'), modeChoices: [ {value: 'rewrite', label: 'Rewrite'}, diff --git a/lib/shared/addon/components/form-user-labels/component.js b/lib/shared/addon/components/form-user-labels/component.js index e95e144c3..5b21b012e 100644 --- a/lib/shared/addon/components/form-user-labels/component.js +++ b/lib/shared/addon/components/form-user-labels/component.js @@ -1,9 +1,17 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ManageLabels from 'shared/mixins/manage-labels'; -import { STATUS, STATUS_INTL_KEY, classForStatus } from 'ui/components/accordion-list-item/component'; +import { + STATUS, + STATUS_INTL_KEY, + classForStatus +} from 'shared/components/accordion-list-item/component'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, { - intl: Ember.inject.service(), +export default Component.extend(ManageLabels, { + layout, + intl: service(), classNames: ['accordion-wrapper'], @@ -19,7 +27,7 @@ export default Ember.Component.extend(ManageLabels, { actions: { addUserLabel() { this._super(); - Ember.run.next(() => { + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } diff --git a/lib/shared/addon/components/form-value-array/component.js b/lib/shared/addon/components/form-value-array/component.js index 7187c0018..13da3b7cd 100644 --- a/lib/shared/addon/components/form-value-array/component.js +++ b/lib/shared/addon/components/form-value-array/component.js @@ -1,6 +1,10 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import EmberObject from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, // Inputs initialValues : null, addActionLabel : 'formValueArray.addActionLabel', @@ -13,8 +17,8 @@ export default Ember.Component.extend({ actions: { add() { - this.get('ary').pushObject(Ember.Object.create({value: ''})); - Ember.run.next(() => { + this.get('ary').pushObject(EmberObject.create({value: ''})); + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } @@ -39,7 +43,7 @@ export default Ember.Component.extend({ return; } - ary.pushObject(Ember.Object.create({value: line})); + ary.pushObject(EmberObject.create({value: line})); }); // Clean up empty user entries @@ -60,7 +64,7 @@ export default Ember.Component.extend({ var ary = []; (this.get('initialValues')||[]).forEach((value) => { - ary.push(Ember.Object.create({value: value})); + ary.push(EmberObject.create({value: value})); }); this.set('ary', ary); diff --git a/lib/shared/addon/components/graph-area/component.js b/lib/shared/addon/components/graph-area/component.js index a54ec344e..da1bec32f 100644 --- a/lib/shared/addon/components/graph-area/component.js +++ b/lib/shared/addon/components/graph-area/component.js @@ -1,12 +1,15 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ThrottledResize from 'shared/mixins/throttled-resize'; import initGraph from 'ui/utils/graph-area'; +import layout from './template'; -export default Ember.Component.extend(ThrottledResize, { +export default Component.extend(ThrottledResize, { + layout, tagName: 'div', classNames: ['graph-area'], - intl: Ember.inject.service(), + intl: service(), model: null, fields: null, diff --git a/lib/shared/addon/components/host-pod/component.js b/lib/shared/addon/components/host-pod/component.js index 0dbc42d7d..ff4bfe4a4 100644 --- a/lib/shared/addon/components/host-pod/component.js +++ b/lib/shared/addon/components/host-pod/component.js @@ -1,16 +1,20 @@ -import Ember from 'ember'; +import { or, equal, alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ManageLabels from 'shared/mixins/manage-labels'; import GroupedInstances from 'shared/mixins/grouped-instances'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, GroupedInstances, { - settings: Ember.inject.service(), - prefs: Ember.inject.service(), +export default Component.extend(ManageLabels, GroupedInstances, { + layout, + settings: service(), + prefs: service(), model: null, mode: null, classNames: ['pod','host'], - showLabelRow: Ember.computed.or('model.displayUserLabelStrings.length','model.requireAnyLabelStrings.length'), + showLabelRow: or('model.displayUserLabelStrings.length','model.requireAnyLabelStrings.length'), init() { this._super(...arguments); @@ -43,11 +47,11 @@ export default Ember.Component.extend(ManageLabels, GroupedInstances, { return this.get('filteredInstances').sortBy('name','id'); }.property('filteredInstances.@each.{name,id}'), - isActive: Ember.computed.equal('model.state','active'), - isProvisioning: Ember.computed.equal('model.state','provisioning'), - isError: Ember.computed.equal('model.state','error'), - showAdd: Ember.computed.alias('isActive'), - showOnlyMessage: Ember.computed.or('isProvisioning','isError'), + isActive: equal('model.state','active'), + isProvisioning: equal('model.state','provisioning'), + isError: equal('model.state','error'), + showAdd: alias('isActive'), + showOnlyMessage: or('isProvisioning','isError'), stateBackground: function() { return this.get('model.stateColor').replace("text-"); diff --git a/lib/shared/addon/components/host-row/component.js b/lib/shared/addon/components/host-row/component.js index d54ee72d0..85506b593 100644 --- a/lib/shared/addon/components/host-row/component.js +++ b/lib/shared/addon/components/host-row/component.js @@ -1,7 +1,7 @@ +import { or, equal, not, alias } from '@ember/object/computed'; import Component from '@ember/component'; import layout from './template'; import { inject as service } from '@ember/service' -import { computed } from '@ember/object'; export const headersAll = [ { @@ -87,14 +87,14 @@ export default Component.extend({ subMatches: null, expanded: null, - showLabelRow: computed.or('model.displayUserLabelStrings.length','model.requireAnyLabelStrings.length'), + showLabelRow: or('model.displayUserLabelStrings.length','model.requireAnyLabelStrings.length'), - isCluster: computed.equal('view','cluster'), - showExpand: computed.not('isCluster'), - linkName: computed.not('isCluster'), - showInstanceStates: computed.not('isCluster'), - showCpu: computed.alias('isCluster'), - showDisk: computed.alias('isCluster'), + isCluster: equal('view','cluster'), + showExpand: not('isCluster'), + linkName: not('isCluster'), + showInstanceStates: not('isCluster'), + showCpu: alias('isCluster'), + showDisk: alias('isCluster'), actions: { toggle() { diff --git a/lib/shared/addon/components/identity-avatar/component.js b/lib/shared/addon/components/identity-avatar/component.js index 3ed6913cd..e62285847 100644 --- a/lib/shared/addon/components/identity-avatar/component.js +++ b/lib/shared/addon/components/identity-avatar/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, identity: null, link: true, size: 35, @@ -8,6 +11,6 @@ export default Ember.Component.extend({ classNames: ['gh-avatar'], attributeBindings: ['aria-label:identity.name'], - avatarSrc: Ember.computed.alias('identity.avatarSrc'), - url: Ember.computed.alias('identity.profileUrl'), + avatarSrc: alias('identity.avatarSrc'), + url: alias('identity.profileUrl'), }); diff --git a/lib/shared/addon/components/identity-block/component.js b/lib/shared/addon/components/identity-block/component.js index 9b03d3451..19a641743 100644 --- a/lib/shared/addon/components/identity-block/component.js +++ b/lib/shared/addon/components/identity-block/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; let notFound={}; -export default Ember.Component.extend({ +export default Component.extend({ + layout, // Identity or externalId+externalIdType identity : null, externalIdType : null, @@ -64,9 +67,9 @@ export default Ember.Component.extend({ classNames: ['gh-block'], attributeBindings: ['aria-label:identity.name'], - avatarSrc: Ember.computed.alias('identity.profilePicture'), - url: Ember.computed.alias('identity.profileUrl'), - login: Ember.computed.alias('identity.login'), + avatarSrc: alias('identity.profilePicture'), + url: alias('identity.profileUrl'), + login: alias('identity.login'), displayDescription: function() { var out; diff --git a/lib/shared/addon/components/info-multi-stats/component.js b/lib/shared/addon/components/info-multi-stats/component.js index b2d43fe97..8f43cb6cc 100644 --- a/lib/shared/addon/components/info-multi-stats/component.js +++ b/lib/shared/addon/components/info-multi-stats/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, model: null, mode: 'small', smallWidth: 60, diff --git a/lib/shared/addon/components/input-answers/component.js b/lib/shared/addon/components/input-answers/component.js index 85b59bed4..e7871ec65 100644 --- a/lib/shared/addon/components/input-answers/component.js +++ b/lib/shared/addon/components/input-answers/component.js @@ -1,11 +1,12 @@ -import Ember from 'ember'; -import YAML from 'npm:yamljs'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; +import { set, computed } from '@ember/object'; import { isSafari } from 'ui/utils/platform'; +import layout from './template'; -const {set} = Ember; - -export default Ember.Component.extend({ - questions: Ember.computed.alias('selectedTemplate.questions'), +export default Component.extend({ + layout, + questions: alias('selectedTemplate.questions'), pasteOrUpload: false, accept : '.yml, .yaml', _boundChange : null, @@ -28,7 +29,7 @@ export default Ember.Component.extend({ reader.readAsText(file); } }, - pastedAnswers: Ember.computed({ + pastedAnswers: computed({ get(/* key */) { var questions = this.get('questions'); var out = {}; @@ -59,7 +60,7 @@ export default Ember.Component.extend({ this.set('pasteOrUpload', false); } }, - actualAccept: Ember.computed('accept', function() { + actualAccept: computed('accept', function() { if ( isSafari ) { return ''; } else { diff --git a/lib/shared/addon/components/input-certificate/component.js b/lib/shared/addon/components/input-certificate/component.js index 3629389a4..0c1a7b29f 100644 --- a/lib/shared/addon/components/input-certificate/component.js +++ b/lib/shared/addon/components/input-certificate/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, model: null, tagName: 'div', diff --git a/lib/shared/addon/components/input-command/component.js b/lib/shared/addon/components/input-command/component.js index f7ab09c1f..13e2e1b61 100644 --- a/lib/shared/addon/components/input-command/component.js +++ b/lib/shared/addon/components/input-command/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; -import ShellQuote from 'npm:shell-quote'; +import { isArray } from '@ember/array'; +import TextField from '@ember/component/text-field'; +import ShellQuote from 'npm:shell-quote' +import layout from './template'; export const OPS = ['||','&&',';;','|&','&',';','(',')','|','<','>']; export function reop(xs) { @@ -34,14 +36,15 @@ export function unparse(xs) { } -export default Ember.TextField.extend({ +export default TextField.extend({ + layout, type: 'text', init() { this._super(...arguments); let initial = this.get('initialValue')||''; - if ( Ember.isArray(initial) ) + if ( isArray(initial) ) { this.set('value', unparse(reop(initial))); } diff --git a/lib/shared/addon/components/input-files/component.js b/lib/shared/addon/components/input-files/component.js index 7c35fd0ba..0614e7fb3 100644 --- a/lib/shared/addon/components/input-files/component.js +++ b/lib/shared/addon/components/input-files/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import Component from '@ember/component'; import { isSafari } from 'ui/utils/platform'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, initialFiles: null, accept: "text/*", addActionLabel: 'generic.emptyString', @@ -44,7 +47,7 @@ export default Ember.Component.extend({ this.set('ary', ary); }, - onFilesChanged: Ember.observer('ary.@each.{name,value}', function() { + onFilesChanged: observer('ary.@each.{name,value}', function() { let out = {}; this.get('ary').forEach((file) => { diff --git a/lib/shared/addon/components/input-identity/component.js b/lib/shared/addon/components/input-identity/component.js index 313eb393b..f99373a06 100644 --- a/lib/shared/addon/components/input-identity/component.js +++ b/lib/shared/addon/components/input-identity/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; -export default Ember.Component.extend({ - access: Ember.inject.service(), - intl: Ember.inject.service(), +export default Component.extend({ + layout, + access: service(), + intl: service(), allowTeams: true, checking: false, addInput: '', diff --git a/lib/shared/addon/components/input-integer/component.js b/lib/shared/addon/components/input-integer/component.js index ef596e7ae..c24112b28 100644 --- a/lib/shared/addon/components/input-integer/component.js +++ b/lib/shared/addon/components/input-integer/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import TextField from '@ember/component/text-field'; import { isMobile } from 'ui/utils/platform'; +import layout from './template'; function sanitize(val) { val = (val+'').trim().replace(/[^0-9-]/g,''); @@ -7,8 +9,9 @@ function sanitize(val) { return val; } -export default Ember.TextField.extend({ - type: Ember.computed(function() { +export default TextField.extend({ + layout, + type: computed(function() { return ( isMobile ? 'number' : 'text' ); }), diff --git a/lib/shared/addon/components/input-number/component.js b/lib/shared/addon/components/input-number/component.js index 74374434d..e7f6d5ead 100644 --- a/lib/shared/addon/components/input-number/component.js +++ b/lib/shared/addon/components/input-number/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import TextField from '@ember/component/text-field'; import { isMobile } from 'ui/utils/platform'; +import layout from './template'; function sanitize(val) { val = (val+'').trim().replace(/[^0-9.-]/g,''); @@ -19,8 +21,9 @@ function sanitize(val) { return val; } -export default Ember.TextField.extend({ - type: Ember.computed(function() { +export default TextField.extend({ + layout, + type: computed(function() { return ( isMobile ? 'number' : 'text' ); }), diff --git a/lib/shared/addon/components/input-or-display/component.js b/lib/shared/addon/components/input-or-display/component.js index 11a86c93b..20fc9bc83 100644 --- a/lib/shared/addon/components/input-or-display/component.js +++ b/lib/shared/addon/components/input-or-display/component.js @@ -1,14 +1,18 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; import SafeStyle from 'shared/mixins/safe-style'; +import layout from './template'; -export default Ember.Component.extend(SafeStyle, { + +export default Component.extend(SafeStyle, { + layout, tagName: 'span', value: null, editable: true, classesForInput: 'form-control', classesForDisplay: '', obfuscate: false, - obfuscatedValue: Ember.computed('value', function() { + obfuscatedValue: computed('value', function() { let val = this.get('value') || ''; let count = val.length; let obChar = '*'; diff --git a/lib/shared/addon/components/input-paste/component.js b/lib/shared/addon/components/input-paste/component.js index e1de5415f..e8d7a3e99 100644 --- a/lib/shared/addon/components/input-paste/component.js +++ b/lib/shared/addon/components/input-paste/component.js @@ -1,7 +1,9 @@ -import Ember from 'ember'; +import TextField from '@ember/component/text-field'; import IntlPlaceholder from 'shared/mixins/intl-placeholder'; +import layout from './template'; -export default Ember.TextField.extend(IntlPlaceholder, { +export default TextField.extend(IntlPlaceholder, { + layout, _onPaste: null, didInsertElement: function() { this._super(); diff --git a/lib/shared/addon/components/input-slider/component.js b/lib/shared/addon/components/input-slider/component.js index aa4d6d342..ee895e26d 100644 --- a/lib/shared/addon/components/input-slider/component.js +++ b/lib/shared/addon/components/input-slider/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { scheduleOnce } from '@ember/runloop'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; function clientX(event) { if ( typeof event.clientX !== 'undefined' ) @@ -24,7 +26,8 @@ function clientX(event) { return 0; } -export default Ember.Component.extend({ +export default Component.extend({ + layout, classNames : ['slider'], classNameBindings : ['disabled','active'], @@ -53,7 +56,7 @@ export default Ember.Component.extend({ didInsertElement: function() { this._super(); - Ember.run.scheduleOnce('afterRender', this, 'valueChanged'); + scheduleOnce('afterRender', this, 'valueChanged'); }, willDestroyElement: function() { diff --git a/lib/shared/addon/components/input-suggest/component.js b/lib/shared/addon/components/input-suggest/component.js index 0547e582d..2fa60262e 100644 --- a/lib/shared/addon/components/input-suggest/component.js +++ b/lib/shared/addon/components/input-suggest/component.js @@ -1,7 +1,9 @@ -import Ember from 'ember'; +import Component from '@ember/component'; import DropdownComponentMixin from 'ember-rl-dropdown/mixins/rl-dropdown-component'; +import layout from './template'; -export default Ember.Component.extend(DropdownComponentMixin, { +export default Component.extend(DropdownComponentMixin, { + layout, value: null, placheolder: null, diff --git a/lib/shared/addon/components/input-text-file/component.js b/lib/shared/addon/components/input-text-file/component.js index 4f7c7d41f..521a63563 100644 --- a/lib/shared/addon/components/input-text-file/component.js +++ b/lib/shared/addon/components/input-text-file/component.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import { isSafari } from 'ui/utils/platform'; +import layout from './template'; -export default Ember.Component.extend({ - settings: Ember.inject.service(), +export default Component.extend({ + layout, + settings: service(), label: null, namePlaceholder: '', diff --git a/lib/shared/addon/components/json-editor/component.js b/lib/shared/addon/components/json-editor/component.js index 3dcadf56a..2a55dec21 100644 --- a/lib/shared/addon/components/json-editor/component.js +++ b/lib/shared/addon/components/json-editor/component.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import Component from '@ember/component'; import sanitize from 'json-sanitizer'; import C from 'ui/utils/constants'; +import layout from './template'; const TAB_SIZE = 2; const TAB_STR = (new Array(TAB_SIZE+1)).join(' '); -export default Ember.Component.extend({ +export default Component.extend({ + layout, jsonString: null, tagName: 'div', diff --git a/lib/shared/addon/components/labels-section/component.js b/lib/shared/addon/components/labels-section/component.js index 357435a8c..1c3a58e1a 100644 --- a/lib/shared/addon/components/labels-section/component.js +++ b/lib/shared/addon/components/labels-section/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ManageLabels from 'shared/mixins/manage-labels'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, { +export default Component.extend(ManageLabels, { + layout, model : null, - labelSource : Ember.computed.alias('model.labels'), + labelSource : alias('model.labels'), sortBy : 'kind', showKind : true, descending : true, @@ -29,7 +33,7 @@ export default Ember.Component.extend(ManageLabels, { }, ], - labelsObserver: Ember.observer('model.labels', function () { + labelsObserver: observer('model.labels', function () { this.initLabels(this.get('labelSource')); }), diff --git a/lib/shared/addon/components/language-dropdown/component.js b/lib/shared/addon/components/language-dropdown/component.js index bc2712e3c..b1dc5889a 100644 --- a/lib/shared/addon/components/language-dropdown/component.js +++ b/lib/shared/addon/components/language-dropdown/component.js @@ -1,3 +1,4 @@ +import { alias } from '@ember/object/computed'; import Component from '@ember/component'; import layout from './template'; import C from 'shared/utils/constants'; @@ -19,7 +20,7 @@ export default Component.extend({ session: service(), settings: service(), - locales: computed.alias('language.locales'), + locales: alias('language.locales'), hideSingle: function() { return Object.keys(this.get('locales')).length <= 1; diff --git a/lib/shared/addon/components/limit-parameters/component.js b/lib/shared/addon/components/limit-parameters/component.js index dc53c11a2..53891d44f 100644 --- a/lib/shared/addon/components/limit-parameters/component.js +++ b/lib/shared/addon/components/limit-parameters/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, memoryLimit: null, init: function() { this._super(...arguments); @@ -11,7 +14,7 @@ export default Ember.Component.extend({ this.set('memoryLimit', ''); } }, - memoryReservationChanged: Ember.observer('memoryLimit', function() { + memoryReservationChanged: observer('memoryLimit', function() { var mem = this.get('memoryLimit'); if ( isNaN(mem) || mem <= 0) { diff --git a/lib/shared/addon/components/link-to-as-attrs/component.js b/lib/shared/addon/components/link-to-as-attrs/component.js index 2cce6c1ce..a7ca9b448 100644 --- a/lib/shared/addon/components/link-to-as-attrs/component.js +++ b/lib/shared/addon/components/link-to-as-attrs/component.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import LinkComponent from '@ember/routing/link-component'; import { computed } from '@ember/object'; // This is a link-to where models (path components) and query-params can be set as attribtues instead of positional params -export default Ember.LinkComponent.extend({ +export default LinkComponent.extend({ attributeBindings: ['role','aria-haspopup','aria-expanded'], 'current-when': function() { diff --git a/lib/shared/addon/components/machine/driver-aliyunecs/component.js b/lib/shared/addon/components/machine/driver-aliyunecs/component.js index 96eb64fbf..80255d8a8 100644 --- a/lib/shared/addon/components/machine/driver-aliyunecs/component.js +++ b/lib/shared/addon/components/machine/driver-aliyunecs/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; +import layout from './template'; let ioOptimized=[ { @@ -10,9 +12,10 @@ let ioOptimized=[ }, ]; -export default Ember.Component.extend(Driver, { +export default Component.extend(Driver, { + layout, driverName: 'aliyunecs', - aliyunecsConfig: Ember.computed.alias('model.publicValues.aliyunecsConfig'), + aliyunecsConfig: alias('model.publicValues.aliyunecsConfig'), ioOptimized: ioOptimized, diff --git a/lib/shared/addon/components/machine/driver-amazonec2/component.js b/lib/shared/addon/components/machine/driver-amazonec2/component.js index 083239e68..dab04ff84 100644 --- a/lib/shared/addon/components/machine/driver-amazonec2/component.js +++ b/lib/shared/addon/components/machine/driver-amazonec2/component.js @@ -1,5 +1,11 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import { scheduleOnce } from '@ember/runloop'; +import EmberObject, { computed } from '@ember/object'; +import { alias, equal, gte } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; +import layout from './template'; let RANCHER_TAG = 'rancher-ui'; let RANCHER_GROUP = 'rancher-machine'; @@ -178,11 +184,12 @@ function tagsFromResource(r) { return out; } -export default Ember.Component.extend(Driver, { - prefs : Ember.inject.service(), +export default Component.extend(Driver, { + layout, + prefs : service(), driverName : 'amazonec2', model : null, - amazonec2Config : Ember.computed.alias('model.publicValues.amazonec2Config'), + amazonec2Config : alias('model.publicValues.amazonec2Config'), clients : null, allSubnets : null, @@ -191,23 +198,23 @@ export default Ember.Component.extend(Driver, { defaultSecurityGroup : null, defaultSecurityGroupName : RANCHER_GROUP, whichSecurityGroup : 'default', - isCustomSecurityGroup : Ember.computed.equal('whichSecurityGroup','custom'), + isCustomSecurityGroup : equal('whichSecurityGroup','custom'), instanceTypes : INSTANCE_TYPES, regionChoices : REGIONS, step : 1, - isStep1 : Ember.computed.equal('step',1), - isStep2 : Ember.computed.equal('step',2), - isStep3 : Ember.computed.equal('step',3), - isStep4 : Ember.computed.equal('step',4), - isStep5 : Ember.computed.equal('step',5), - isStep6 : Ember.computed.equal('step',6), - isStep7 : Ember.computed.equal('step',7), - isGteStep3 : Ember.computed.gte('step',3), - isGteStep4 : Ember.computed.gte('step',4), - isGteStep5 : Ember.computed.gte('step',5), - isGteStep6 : Ember.computed.gte('step',6), - isGteStep7 : Ember.computed.gte('step',7), + isStep1 : equal('step',1), + isStep2 : equal('step',2), + isStep3 : equal('step',3), + isStep4 : equal('step',4), + isStep5 : equal('step',5), + isStep6 : equal('step',6), + isStep7 : equal('step',7), + isGteStep3 : gte('step',3), + isGteStep4 : gte('step',4), + isGteStep5 : gte('step',5), + isGteStep6 : gte('step',6), + isGteStep7 : gte('step',7), bootstrap: function() { let pref = this.get('prefs.amazonec2')||{}; @@ -250,7 +257,7 @@ export default Ember.Component.extend(Driver, { this._super(...arguments); this.set('editing', false); - this.set('clients', Ember.Object.create()); + this.set('clients', EmberObject.create()); this.set('allSubnets', []); let cur = this.get('amazonec2Config.securityGroup'); @@ -280,7 +287,7 @@ export default Ember.Component.extend(Driver, { }, stepDidChange: function() { - Ember.run.scheduleOnce('afterRender', this, function() { + scheduleOnce('afterRender', this, function() { document.body.scrollTop = document.body.scrollHeight; }); }.observes('context.step'), @@ -336,7 +343,7 @@ export default Ember.Component.extend(Driver, { return; } - subnets.pushObject(Ember.Object.create({ + subnets.pushObject(EmberObject.create({ subnetName: nameFromResource(subnet, 'SubnetId'), subnetId: subnet.SubnetId, subnetTags: tagsFromResource(subnet), @@ -416,7 +423,7 @@ export default Ember.Component.extend(Driver, { }, multiSecurityGroupSelect: function() { - let options = Array.prototype.slice.call(Ember.$('.existing-security-groups')[0], 0); + let options = Array.prototype.slice.call($('.existing-security-groups')[0], 0); let selectedOptions = []; options.filterBy('selected', true).forEach((cap) => { @@ -489,7 +496,7 @@ export default Ember.Component.extend(Driver, { }, }, - selectedZone: Ember.computed('amazonec2Config.{region,zone}', { + selectedZone: computed('amazonec2Config.{region,zone}', { get: function() { let config = this.get('amazonec2Config'); if ( config.get('region') && config.get('zone') ) { @@ -568,7 +575,7 @@ export default Ember.Component.extend(Driver, { return out.sortBy('sortKey'); }.property('selectedZone','allSubnets.@each.{subnetId,vpcId,zone}'), - selectedSubnet: Ember.computed('amazonec2Config.{subnetId,vpcId}', { + selectedSubnet: computed('amazonec2Config.{subnetId,vpcId}', { set: function(key, val) { let config = this.get('amazonec2Config'); if ( arguments.length > 1 ) { diff --git a/lib/shared/addon/components/machine/driver-azure/component.js b/lib/shared/addon/components/machine/driver-azure/component.js index a4853d9db..b6333245d 100644 --- a/lib/shared/addon/components/machine/driver-azure/component.js +++ b/lib/shared/addon/components/machine/driver-azure/component.js @@ -1,9 +1,19 @@ -import Ember from 'ember'; -import { regions, sizes, storageTypes, environments } from 'ui/utils/azure-choices'; +import { computed, observer } from '@ember/object'; +import { scheduleOnce } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; +import { + regions, + sizes, + storageTypes, + environments +} from 'ui/utils/azure-choices'; import Driver from 'shared/mixins/host-driver'; +import layout from './template'; -export default Ember.Component.extend(Driver, { - azureConfig : Ember.computed.alias('model.publicValues.azureConfig'), +export default Component.extend(Driver, { + layout, + azureConfig : alias('model.publicValues.azureConfig'), environments : environments.sortBy('value'), sizeChoices : sizes.sortBy('value'), driverName : 'azure', @@ -53,7 +63,7 @@ export default Ember.Component.extend(Driver, { init() { this._super(...arguments); - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { this.set('publicIpChoice', this.initPublicIpChoices(this.get('azureConfig.staticPublicIp'), this.get('azureConfig.noPublicIp'))); this.set('openPorts', this.initOpenPorts(this.get('azureConfig.openPort'))); }); @@ -73,17 +83,17 @@ export default Ember.Component.extend(Driver, { } }, - regionChoices: Ember.computed('azureConfig.environment', function() { + regionChoices: computed('azureConfig.environment', function() { let environment = this.get('azureConfig.environment'); return regions[environment]; }), - evironmentChoiceObserver: Ember.observer('azureConfig.environment', function() { + evironmentChoiceObserver: observer('azureConfig.environment', function() { let environment = this.get('azureConfig.environment'); this.set('azureConfig.location', regions[environment][0].name); }), - privateSet: Ember.computed('publicIpChoice', function() { + privateSet: computed('publicIpChoice', function() { let publicIpChoice = this.get('publicIpChoice'); if (publicIpChoice && this.get('publicIpChoices').findBy('value', publicIpChoice).name === 'None') { return true; @@ -91,7 +101,7 @@ export default Ember.Component.extend(Driver, { return false; }), - ipChoiceObserver: Ember.observer('publicIpChoice', function() { + ipChoiceObserver: observer('publicIpChoice', function() { let publicIpChoice = this.get('publicIpChoice'); if (this.get('publicIpChoices').findBy('value', publicIpChoice).name === 'None') { this.set('azureConfig.usePrivateIp', true); @@ -100,7 +110,7 @@ export default Ember.Component.extend(Driver, { } }), - setUsePrivateIp: Ember.computed('publicIpChoice', function() { + setUsePrivateIp: computed('publicIpChoice', function() { let publicIpChoice = this.get('publicIpChoice'); if (publicIpChoice && this.get('publicIpChoices').findBy('value', publicIpChoice).name === 'None') { return this.set('azureConfig.usePrivateIp', true); @@ -108,7 +118,7 @@ export default Ember.Component.extend(Driver, { return false; }), - publicIpObserver: Ember.observer('publicIpChoice', function() { + publicIpObserver: observer('publicIpChoice', function() { let elChoice = this.get('publicIpChoice'); let choice = this.get('publicIpChoices').findBy('value', elChoice); @@ -121,7 +131,7 @@ export default Ember.Component.extend(Driver, { }), - openPort: Ember.observer('openPorts', function() { + openPort: observer('openPorts', function() { let str = (this.get('openPorts')||'').trim(); let ary = []; if ( str.length ) { diff --git a/lib/shared/addon/components/machine/driver-custom/component.js b/lib/shared/addon/components/machine/driver-custom/component.js index 42cb936e5..d929f7f4d 100644 --- a/lib/shared/addon/components/machine/driver-custom/component.js +++ b/lib/shared/addon/components/machine/driver-custom/component.js @@ -1,16 +1,21 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ManageLabels from 'shared/mixins/manage-labels'; import Util from 'ui/utils/util'; +import layout from './template'; -export default Ember.Component.extend(ManageLabels, { - settings: Ember.inject.service(), - projects: Ember.inject.service(), +export default Component.extend(ManageLabels, { + layout, + settings: service(), + projects: service(), cattleAgentIp : null, model: null, cluster: null, - loading: Ember.computed.alias('cluster.isTransitioning'), - registrationCommandWindows: Ember.computed.alias('cluster.registrationToken.windowsCommand'), + loading: alias('cluster.isTransitioning'), + registrationCommandWindows: alias('cluster.registrationToken.windowsCommand'), _allHosts: null, hostsAtLoad: null, @@ -40,7 +45,7 @@ export default Ember.Component.extend(ManageLabels, { }); }, - registrationCommand: Ember.computed('registrationCommand','labels', 'cattleAgentIp', function() { + registrationCommand: computed('registrationCommand','labels', 'cattleAgentIp', function() { let cmd = this.get('cluster.registrationToken.hostCommand'); let cattleIp = this.get('cattleAgentIp'); let lookFor = 'docker run'; @@ -69,7 +74,7 @@ export default Ember.Component.extend(ManageLabels, { return cmd; }), - newHosts: Ember.computed('hostsAtLoad','_allHosts.length', function() { + newHosts: computed('hostsAtLoad','_allHosts.length', function() { let atLoad = this.get('hostsAtLoad') let now = this.get('_allHosts.length'); diff --git a/lib/shared/addon/components/machine/driver-digitalocean/component.js b/lib/shared/addon/components/machine/driver-digitalocean/component.js index b26efef7f..d3b9edb60 100644 --- a/lib/shared/addon/components/machine/driver-digitalocean/component.js +++ b/lib/shared/addon/components/machine/driver-digitalocean/component.js @@ -1,7 +1,11 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; import fetch from 'ember-api-store/utils/fetch'; import Util from 'ui/utils/util'; +import layout from './template'; const DIGITALOCEAN_API = 'api.digitalocean.com/v2'; const VALID_IMAGES = [ @@ -22,17 +26,18 @@ const VALID_IMAGES = [ // 'ubuntu-16-10-x64' ]; -export default Ember.Component.extend(Driver, { +export default Component.extend(Driver, { + layout, driverName: 'digitalocean', regionChoices: null, model: null, - digitaloceanConfig: Ember.computed.alias('model.publicValues.digitaloceanConfig'), + digitaloceanConfig: alias('model.publicValues.digitaloceanConfig'), step1: true, sizeChoices: null, imageChoices: null, gettingData: false, - filteredSizeChoices: Ember.computed('digitaloceanConfig.region', function(){ + filteredSizeChoices: computed('digitaloceanConfig.region', function(){ let region = this.get('regionChoices').findBy('slug', this.get('digitaloceanConfig.region')); let sizes = this.get('sizeChoices'); let out = sizes.filter((size) => { @@ -53,7 +58,7 @@ export default Ember.Component.extend(Driver, { this.set('gettingData', true); - Ember.RSVP.hash(promises).then((hash) => { + hash(promises).then((hash) => { let filteredRegions = hash.regions.regions.filter(function(region) { return region.available && (region.features.indexOf('metadata') >= 0); diff --git a/lib/shared/addon/components/machine/driver-exoscale/component.js b/lib/shared/addon/components/machine/driver-exoscale/component.js index 011ba396e..009b855c1 100644 --- a/lib/shared/addon/components/machine/driver-exoscale/component.js +++ b/lib/shared/addon/components/machine/driver-exoscale/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import { alias, equal, gte } from '@ember/object/computed'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; import { ajaxPromise } from 'ember-api-store/utils/ajax-promise'; +import layout from './template'; let RANCHER_TEMPLATE = 'Linux Ubuntu 14.04 LTS 64-bit'; let RANCHER_GROUP = 'rancher-machine'; @@ -37,10 +39,11 @@ let RANCHER_INGRESS_RULES = [ } ]; -export default Ember.Component.extend(Driver, { +export default Component.extend(Driver, { + layout, driverName : 'exoscale', model : null, - exoscaleConfig : Ember.computed.alias('model.publicValues.exoscaleConfig'), + exoscaleConfig : alias('model.publicValues.exoscaleConfig'), allDiskSizes : null, allInstanceProfiles : null, @@ -50,20 +53,20 @@ export default Ember.Component.extend(Driver, { defaultSecurityGroup : null, defaultSecurityGroupName : RANCHER_GROUP, whichSecurityGroup : 'default', - isCustomSecurityGroup : Ember.computed.equal('whichSecurityGroup','custom'), + isCustomSecurityGroup : equal('whichSecurityGroup','custom'), exoscaleApi : 'api.exoscale.ch/compute', step : 1, - isStep1 : Ember.computed.equal('step',1), - isStep2 : Ember.computed.equal('step',2), - isStep3 : Ember.computed.equal('step',3), - isStep4 : Ember.computed.equal('step',4), - isStep5 : Ember.computed.equal('step',5), - isStep6 : Ember.computed.equal('step',6), - isGteStep3 : Ember.computed.gte('step',3), - isGteStep4 : Ember.computed.gte('step',4), - isGteStep5 : Ember.computed.gte('step',5), - isGteStep6 : Ember.computed.gte('step',6), + isStep1 : equal('step',1), + isStep2 : equal('step',2), + isStep3 : equal('step',3), + isStep4 : equal('step',4), + isStep5 : equal('step',5), + isStep6 : equal('step',6), + isGteStep3 : gte('step',3), + isGteStep4 : gte('step',4), + isGteStep5 : gte('step',5), + isGteStep6 : gte('step',6), bootstrap: function() { let config = this.get('userStore').createRecord({ diff --git a/lib/shared/addon/components/machine/driver-other/component.js b/lib/shared/addon/components/machine/driver-other/component.js index e57c811ee..f9968080e 100644 --- a/lib/shared/addon/components/machine/driver-other/component.js +++ b/lib/shared/addon/components/machine/driver-other/component.js @@ -1,7 +1,11 @@ -import Ember from 'ember'; +import { on } from '@ember/object/evented'; +import { computed, observer } from '@ember/object'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; +import layout from './template'; -export default Ember.Component.extend(Driver, { +export default Component.extend(Driver, { + layout, // Set by Driver driverName : 'other', driver : null, @@ -41,7 +45,7 @@ export default Ember.Component.extend(Driver, { }); }, - fieldNames: Ember.computed('otherDriver', 'model', function() { + fieldNames: computed('otherDriver', 'model', function() { let driver = this.get('otherDriver'); if ( driver ) { @@ -60,7 +64,7 @@ export default Ember.Component.extend(Driver, { return out; }, - driverChanged: Ember.on('init', Ember.observer('otherDriver','model', function() { + driverChanged: on('init', observer('otherDriver','model', function() { if (this.get('otherDriver')) { let driver = this.get('otherDriver').split('C')[0]; let hostTemplate = this.get('model'); @@ -90,7 +94,7 @@ export default Ember.Component.extend(Driver, { } })), - otherChoices: Ember.computed('availableDrivers.@each.{hasUi,name}', function() { + otherChoices: computed('availableDrivers.@each.{hasUi,name}', function() { let out = []; this.get('availableDrivers').filterBy('hasUi',false).forEach((driver) => { out.push({label: driver.name, value: driver.name+'Config'}); diff --git a/lib/shared/addon/components/machine/driver-packet/component.js b/lib/shared/addon/components/machine/driver-packet/component.js index 1e01116bb..a45c16aba 100644 --- a/lib/shared/addon/components/machine/driver-packet/component.js +++ b/lib/shared/addon/components/machine/driver-packet/component.js @@ -1,6 +1,12 @@ -import Ember from 'ember'; +import { hash } from 'rsvp'; +import { on } from '@ember/object/evented'; +import { isEmpty } from '@ember/utils'; +import { computed, observer } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; import fetch from 'ember-api-store/utils/fetch'; +import layout from './template'; const WHITELIST = ['centos_7', 'coreos_stable', 'ubuntu_14_04', 'ubuntu_16_04', 'rancher']; const BLACKLIST = ['baremetal_2a']; //quick wheres james spader? @@ -11,9 +17,10 @@ const DEFAULTS = { billingCycle : 'hourly', } -export default Ember.Component.extend(Driver, { +export default Component.extend(Driver, { + layout, driverName: 'packet', - packetConfig: Ember.computed.alias('model.publicValues.packetConfig'), + packetConfig: alias('model.publicValues.packetConfig'), facilityChoices: null, planChoices: null, @@ -59,7 +66,7 @@ export default Ember.Component.extend(Driver, { }); }, - planChoiceDetails: Ember.computed('packetConfig.plan', function() { + planChoiceDetails: computed('packetConfig.plan', function() { let planSlug = this.get('packetConfig.plan'); let plan = this.get('allPlans').findBy('slug', planSlug); @@ -69,7 +76,7 @@ export default Ember.Component.extend(Driver, { parseOSs(osList) { let whitelist = this.get('osWhitelist'); return osList.filter((os) => { - if (whitelist.includes(os.slug) && !Ember.isEmpty(os.provisionable_on)) { + if (whitelist.includes(os.slug) && !isEmpty(os.provisionable_on)) { return os; } }); @@ -89,7 +96,7 @@ export default Ember.Component.extend(Driver, { return out; }, - facilityObserver: Ember.on('init', Ember.observer('packetConfig.facility', function() { + facilityObserver: on('init', observer('packetConfig.facility', function() { let facilities = this.get('facilityChoices'); let slug = this.get('packetConfig.facility'); @@ -119,7 +126,7 @@ export default Ember.Component.extend(Driver, { facilities: this.apiRequest('facilities'), }; - Ember.RSVP.hash(promises).then((hash) => { + hash(promises).then((hash) => { let osChoices = this.parseOSs(hash.opSys.operating_systems); let selectedPlans = this.parsePlans(osChoices.findBy('slug', 'ubuntu_14_04'), hash.plans.plans); diff --git a/lib/shared/addon/components/machine/driver-rackspace/component.js b/lib/shared/addon/components/machine/driver-rackspace/component.js index 8ebc3fb28..b1158d606 100644 --- a/lib/shared/addon/components/machine/driver-rackspace/component.js +++ b/lib/shared/addon/components/machine/driver-rackspace/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; import Flavors from 'ui/utils/rackspace-choices'; +import layout from './template'; let flavorChoices = []; @@ -37,9 +39,10 @@ flavorChoices.sort(function(a,b) { } }); -export default Ember.Component.extend(Driver, { +export default Component.extend(Driver, { + layout, driverName : 'rackspace', - rackspaceConfig : Ember.computed.alias('model.publicValues.rackspaceConfig'), + rackspaceConfig : alias('model.publicValues.rackspaceConfig'), flavorChoices : flavorChoices, regionChoices : [ {label: 'Dallas (DFW)', value: 'DFW'}, diff --git a/lib/shared/addon/components/machine/driver-vmwarevsphere/component.js b/lib/shared/addon/components/machine/driver-vmwarevsphere/component.js index 57c39e631..ba223fcba 100644 --- a/lib/shared/addon/components/machine/driver-vmwarevsphere/component.js +++ b/lib/shared/addon/components/machine/driver-vmwarevsphere/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import Driver from 'shared/mixins/host-driver'; +import layout from './template'; -export default Ember.Component.extend(Driver, { +export default Component.extend(Driver, { + layout, driverName : 'vmwarevsphere', model : null, - config : Ember.computed.alias('model.publicValues.vmwarevsphereConfig'), + config : alias('model.publicValues.vmwarevsphereConfig'), showEngineUrl : false, bootstrap: function() { diff --git a/lib/shared/addon/components/modal-about/component.js b/lib/shared/addon/components/modal-about/component.js index f8dfbe650..b9860e540 100644 --- a/lib/shared/addon/components/modal-about/component.js +++ b/lib/shared/addon/components/modal-about/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['generic', 'about', 'medium-modal'], - settings: Ember.inject.service(), + settings: service(), }); diff --git a/lib/shared/addon/components/modal-add-payment/component.js b/lib/shared/addon/components/modal-add-payment/component.js index eaaebd5fb..c0e490e32 100644 --- a/lib/shared/addon/components/modal-add-payment/component.js +++ b/lib/shared/addon/components/modal-add-payment/component.js @@ -1,6 +1,10 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; import fetch from 'ember-api-store/utils/fetch'; +import layout from './template'; const CURRENCIES = [ { @@ -17,10 +21,11 @@ const CURRENCIES = [ }, ]; -export default Ember.Component.extend(ModalBase, { - intl: Ember.inject.service(), - session: Ember.inject.service(), - account: Ember.computed.alias('modalOpts'), +export default Component.extend(ModalBase, { + layout, + intl: service(), + session: service(), + account: alias('modalOpts'), classNames: ['generic', 'medium-modal', 'add-new-payment'], creditCard: null, errors: null, @@ -151,7 +156,7 @@ export default Ember.Component.extend(ModalBase, { }); }, - canValidate: Ember.observer('creditCard.name', 'creditCard.number', 'creditCard.expiry', 'creditCard.cvc', function() { + canValidate: observer('creditCard.name', 'creditCard.number', 'creditCard.expiry', 'creditCard.cvc', function() { var cc = this.get('creditCard'); var out = true; if (cc.name && cc.number && cc.cvc && cc.expiry) { diff --git a/lib/shared/addon/components/modal-auditlog-info/component.js b/lib/shared/addon/components/modal-auditlog-info/component.js index adbd20bac..40f086b14 100644 --- a/lib/shared/addon/components/modal-auditlog-info/component.js +++ b/lib/shared/addon/components/modal-auditlog-info/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['large-modal'], - requestObject : Ember.computed.alias('modalService.modalOpts.requestObject'), - responseObject : Ember.computed.alias('modalService.modalOpts.responseObject'), + requestObject : alias('modalService.modalOpts.requestObject'), + responseObject : alias('modalService.modalOpts.responseObject'), requestJSON : null, responseJSON : null, diff --git a/lib/shared/addon/components/modal-catalog-host/component.js b/lib/shared/addon/components/modal-catalog-host/component.js index 83f5e96e8..0d93366f7 100644 --- a/lib/shared/addon/components/modal-catalog-host/component.js +++ b/lib/shared/addon/components/modal-catalog-host/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; import { task } from 'ember-concurrency'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { - modalService: Ember.inject.service('modal'), - hostService: Ember.inject.service('host'), +export default Component.extend(ModalBase, { + layout, + modalService: service('modal'), + hostService: service('host'), classNames: ['full-modal'], loading: true, model: null, @@ -20,7 +24,7 @@ export default Ember.Component.extend(ModalBase, { actions: { completed(hostConfig) { this.get('modalService.modalOpts.callee').send('completed', hostConfig); - Ember.run.next(() => { + next(() => { this.get('modalService').toggleModal(); }); }, diff --git a/lib/shared/addon/components/modal-confirm-deactivate/component.js b/lib/shared/addon/components/modal-confirm-deactivate/component.js index adb28ff0f..cdbf03c44 100644 --- a/lib/shared/addon/components/modal-confirm-deactivate/component.js +++ b/lib/shared/addon/components/modal-confirm-deactivate/component.js @@ -1,13 +1,18 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import { alternateLabel } from 'ui/utils/platform'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['medium-modal', 'modal-logs'], - originalModel : Ember.computed.alias('modalService.modalOpts.originalModel'), - action : Ember.computed.alias('modalService.modalOpts.action'), + originalModel : alias('modalService.modalOpts.originalModel'), + action : alias('modalService.modalOpts.action'), alternateLabel : alternateLabel, - intl : Ember.inject.service(), + intl : service(), actions: { @@ -25,7 +30,7 @@ export default Ember.Component.extend(ModalBase, { }, 500); }, - isService: Ember.computed('originalModel.type','intl.locale', function() { + isService: computed('originalModel.type','intl.locale', function() { let type = this.get('originalModel.type'); let out = {}; let intl = this.get('intl'); diff --git a/lib/shared/addon/components/modal-confirm-remove-payment/component.js b/lib/shared/addon/components/modal-confirm-remove-payment/component.js index fd630148d..67f72876c 100644 --- a/lib/shared/addon/components/modal-confirm-remove-payment/component.js +++ b/lib/shared/addon/components/modal-confirm-remove-payment/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; import fetch from 'ember-api-store/utils/fetch'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['generic', 'medium-modal', 'add-new-payment'], - card: Ember.computed.alias('modalService.modalOpts.card'), - account: Ember.computed.alias('modalService.modalOpts.account'), + card: alias('modalService.modalOpts.card'), + account: alias('modalService.modalOpts.account'), actions: { confirm() { this.set('loading', true); diff --git a/lib/shared/addon/components/modal-container-logs/component.js b/lib/shared/addon/components/modal-container-logs/component.js index d107afd77..889e154ab 100644 --- a/lib/shared/addon/components/modal-container-logs/component.js +++ b/lib/shared/addon/components/modal-container-logs/component.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['large-modal'], - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), }); diff --git a/lib/shared/addon/components/modal-container-stop/component.js b/lib/shared/addon/components/modal-container-stop/component.js index 0d3ad154d..b504e96c4 100644 --- a/lib/shared/addon/components/modal-container-stop/component.js +++ b/lib/shared/addon/components/modal-container-stop/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; import { alternateLabel } from 'ui/utils/platform'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['medium-modal'], - resources: Ember.computed.alias('modalService.modalOpts.model'), + resources: alias('modalService.modalOpts.model'), alternateLabel: alternateLabel, actions: { @@ -13,7 +17,7 @@ export default Ember.Component.extend(ModalBase, { resource.send('stop'); }); - Ember.run.next(() => { + next(() => { this.send('cancel'); }); } diff --git a/lib/shared/addon/components/modal-container-to-service/component.js b/lib/shared/addon/components/modal-container-to-service/component.js index 964b222b6..681b06109 100644 --- a/lib/shared/addon/components/modal-container-to-service/component.js +++ b/lib/shared/addon/components/modal-container-to-service/component.js @@ -1,10 +1,15 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['medium-modal'], - model: Ember.computed.alias('modalService.modalOpts'), - router: Ember.inject.service(), + model: alias('modalService.modalOpts'), + router: service(), name: null, error: null, @@ -14,7 +19,7 @@ export default Ember.Component.extend(ModalBase, { this.set('error', null); this.get('model').doAction('converttoservice', {}).then(() => { this.send('cancel'); - Ember.run.next(() => { + next(() => { this.get('router').transitionTo('containers.index'); }); }).catch((err) => { diff --git a/lib/shared/addon/components/modal-edit-account/component.js b/lib/shared/addon/components/modal-edit-account/component.js index 439715b3b..58dd0fdb1 100644 --- a/lib/shared/addon/components/modal-edit-account/component.js +++ b/lib/shared/addon/components/modal-edit-account/component.js @@ -1,25 +1,31 @@ -import Ember from 'ember'; +import { resolve } from 'rsvp'; +import EmberObject, { computed } from '@ember/object'; +import { alias, not, reads } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import C from 'ui/utils/constants'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, NewOrEdit, { +export default Component.extend(ModalBase, NewOrEdit, { + layout, classNames: ['large-modal'], - access: Ember.inject.service(), - primaryResource: Ember.computed.alias('model.account'), - settings: Ember.inject.service(), + access: service(), + primaryResource: alias('model.account'), + settings: service(), - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), account: null, credential: null, oldPassword: '', newPassword: '', newPassword2: '', - isAdmin: Ember.computed.alias('access.admin'), + isAdmin: alias('access.admin'), generated: false, - needOld: Ember.computed.not('isAdmin'), - showConfirm: Ember.computed.not('generated'), + needOld: not('isAdmin'), + showConfirm: not('generated'), actions: { error(err) { @@ -38,7 +44,7 @@ export default Ember.Component.extend(ModalBase, NewOrEdit, { }, }, - validateDescription: Ember.computed(function() { + validateDescription: computed(function() { return this.get('settings').get(C.SETTING.AUTH_LOCAL_VALIDATE_DESC) || null; }), @@ -46,7 +52,7 @@ export default Ember.Component.extend(ModalBase, NewOrEdit, { return this.get('access.provider') === 'localauthconfig'; }.property('access.provider'), - authEnabled: Ember.computed.reads('access.enabled'), + authEnabled: reads('access.enabled'), init() { this._super(...arguments); @@ -54,7 +60,7 @@ export default Ember.Component.extend(ModalBase, NewOrEdit, { var credential = this.get('originalModel.passwordCredential'); var credentialClone = (credential ? credential.clone() : null); - this.set('model', Ember.Object.create({ + this.set('model', EmberObject.create({ account: accountClone, credential: credentialClone, })); @@ -96,7 +102,7 @@ export default Ember.Component.extend(ModalBase, NewOrEdit, { } else { - return Ember.RSVP.resolve(); + return resolve(); } }, @@ -123,7 +129,7 @@ export default Ember.Component.extend(ModalBase, NewOrEdit, { this.set('session.'+C.SESSION.USER_TYPE, this.get('model.account.kind')); } - return Ember.RSVP.resolve(); + return resolve(); }, }); diff --git a/lib/shared/addon/components/modal-edit-apikey/component.js b/lib/shared/addon/components/modal-edit-apikey/component.js index a00eb23c5..a115d7d20 100644 --- a/lib/shared/addon/components/modal-edit-apikey/component.js +++ b/lib/shared/addon/components/modal-edit-apikey/component.js @@ -1,13 +1,17 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, NewOrEdit, { - endpointService: Ember.inject.service('endpoint'), - projects: Ember.inject.service(), +export default Component.extend(ModalBase, NewOrEdit, { + layout, + endpointService: service('endpoint'), + projects: service(), classNames: ['large-modal', 'alert'], - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), model: null, clone: null, justCreated: false, diff --git a/lib/shared/addon/components/modal-edit-backup/component.js b/lib/shared/addon/components/modal-edit-backup/component.js index ac7bd5307..274eeb19f 100644 --- a/lib/shared/addon/components/modal-edit-backup/component.js +++ b/lib/shared/addon/components/modal-edit-backup/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['large-modal'], - originalModel: Ember.computed.alias('modalService.modalOpts.originalModel'), - backupTargets : Ember.computed.alias('modalService.modalOpts.backupTargets'), + originalModel: alias('modalService.modalOpts.originalModel'), + backupTargets : alias('modalService.modalOpts.backupTargets'), editing : false, clone : null, errors : null, diff --git a/lib/shared/addon/components/modal-edit-certificate/component.js b/lib/shared/addon/components/modal-edit-certificate/component.js index b9df721d4..75c195133 100644 --- a/lib/shared/addon/components/modal-edit-certificate/component.js +++ b/lib/shared/addon/components/modal-edit-certificate/component.js @@ -1,13 +1,17 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, NewOrEdit, { +export default Component.extend(ModalBase, NewOrEdit, { + layout, classNames: ['large-modal'], - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), editing: true, model: null, - intl: Ember.inject.service(), + intl: service(), init() { this._super(...arguments); diff --git a/lib/shared/addon/components/modal-edit-dns/component.js b/lib/shared/addon/components/modal-edit-dns/component.js index a705bc248..95a1e6fd1 100644 --- a/lib/shared/addon/components/modal-edit-dns/component.js +++ b/lib/shared/addon/components/modal-edit-dns/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['large-modal'], - model : Ember.computed.alias('modalService.modalOpts'), + model : alias('modalService.modalOpts'), actions: { done() { diff --git a/lib/shared/addon/components/modal-edit-driver/component.js b/lib/shared/addon/components/modal-edit-driver/component.js index 66b93b577..d05a6de51 100644 --- a/lib/shared/addon/components/modal-edit-driver/component.js +++ b/lib/shared/addon/components/modal-edit-driver/component.js @@ -1,21 +1,26 @@ -import Ember from 'ember'; +import { scheduleOnce } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, NewOrEdit, { +export default Component.extend(ModalBase, NewOrEdit, { + layout, classNames: ['large-modal', 'alert'], - originalModel: Ember.computed.alias('modalService.modalOpts'), - settings: Ember.inject.service(), + originalModel: alias('modalService.modalOpts'), + settings: service(), clone : null, - primaryResource : Ember.computed.alias('originalModel'), + primaryResource : alias('originalModel'), errors : null, init() { this._super(...arguments); this.set('clone', this.get('originalModel').clone()); this.set('model', this.get('originalModel').clone()); - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { this.$('INPUT')[0].focus(); }); }, diff --git a/lib/shared/addon/components/modal-edit-env-catalogs/component.js b/lib/shared/addon/components/modal-edit-env-catalogs/component.js index c910d1edb..26ec331c4 100644 --- a/lib/shared/addon/components/modal-edit-env-catalogs/component.js +++ b/lib/shared/addon/components/modal-edit-env-catalogs/component.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['large-modal'], - project: Ember.computed.alias('modalService.modalOpts.project'), - catalogs: Ember.computed.alias('modalService.modalOpts.catalogs'), + project: alias('modalService.modalOpts.project'), + catalogs: alias('modalService.modalOpts.catalogs'), }); diff --git a/lib/shared/addon/components/modal-edit-host/component.js b/lib/shared/addon/components/modal-edit-host/component.js index 443a15289..764358a28 100644 --- a/lib/shared/addon/components/modal-edit-host/component.js +++ b/lib/shared/addon/components/modal-edit-host/component.js @@ -1,14 +1,19 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import { on } from '@ember/object/evented'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ManageLabels from 'shared/mixins/manage-labels'; import { flattenLabelArrays } from 'shared/mixins/manage-labels'; import NewOrEdit from 'shared/mixins/new-or-edit'; import C from 'ui/utils/constants'; import { debouncedObserver } from 'ui/utils/debounce'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, NewOrEdit, ManageLabels, { +export default Component.extend(ModalBase, NewOrEdit, ManageLabels, { + layout, classNames: ['large-modal'], - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), model: null, editing: true, @@ -39,7 +44,7 @@ export default Ember.Component.extend(ModalBase, NewOrEdit, ManageLabels, { this.set('requireAny', this.getLabel(C.LABEL.REQUIRE_ANY)); }, - customNameObserver: Ember.on('init', Ember.observer('customName', function() { + customNameObserver: on('init', observer('customName', function() { let cn = this.get('customName'); if (cn && cn.length > 0) { this.set('primaryResource.name', cn); diff --git a/lib/shared/addon/components/modal-edit-registry/component.js b/lib/shared/addon/components/modal-edit-registry/component.js index ba30a8c17..af3440392 100644 --- a/lib/shared/addon/components/modal-edit-registry/component.js +++ b/lib/shared/addon/components/modal-edit-registry/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, NewOrEdit, { +export default Component.extend(ModalBase, NewOrEdit, { + layout, classNames: ['large-modal'], - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), error: null, credentials: null, model: null, @@ -15,7 +19,7 @@ export default Ember.Component.extend(ModalBase, NewOrEdit, { this._super(...arguments); var orig = this.get('originalModel'); - this.set('model',Ember.Object.create({ + this.set('model',EmberObject.create({ allRegistries: orig.get('registries'), registry: orig.get('registry').clone(), credential: orig.get('credential').clone() diff --git a/lib/shared/addon/components/modal-edit-secret/component.js b/lib/shared/addon/components/modal-edit-secret/component.js index 7e91cfca8..e4722e9cc 100644 --- a/lib/shared/addon/components/modal-edit-secret/component.js +++ b/lib/shared/addon/components/modal-edit-secret/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['span-8', 'offset-2'], - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), editing: true, model: null, diff --git a/lib/shared/addon/components/modal-edit-setting/component.js b/lib/shared/addon/components/modal-edit-setting/component.js index e4452b37a..322fb2d1d 100644 --- a/lib/shared/addon/components/modal-edit-setting/component.js +++ b/lib/shared/addon/components/modal-edit-setting/component.js @@ -1,13 +1,17 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import { normalizeName } from 'ui/services/settings'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { - settings: Ember.inject.service(), - growl: Ember.inject.service(), +export default Component.extend(ModalBase, { + layout, + settings: service(), + growl: service(), classNames: ['span-8', 'offset-2'], - model: Ember.computed.alias('modalService.modalOpts'), + model: alias('modalService.modalOpts'), value: null, removing: false, diff --git a/lib/shared/addon/components/modal-edit-stack/component.js b/lib/shared/addon/components/modal-edit-stack/component.js index 3446d763f..a8b536d6d 100644 --- a/lib/shared/addon/components/modal-edit-stack/component.js +++ b/lib/shared/addon/components/modal-edit-stack/component.js @@ -1,12 +1,15 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; -import {tagChoices, tagsToArray} from 'ui/models/stack'; +import { tagChoices, tagsToArray } from 'ui/models/stack'; import ModalBase from 'shared/mixins/modal-base'; import { uniqKeys } from 'shared/utils/util'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, NewOrEdit, { +export default Component.extend(ModalBase, NewOrEdit, { + layout, classNames: ['large-modal'], - originalModel: Ember.computed.alias('modalService.modalOpts'), + originalModel: alias('modalService.modalOpts'), editing: true, model: null, diff --git a/lib/shared/addon/components/modal-feedback/component.js b/lib/shared/addon/components/modal-feedback/component.js index ece0a5ef1..4ec76a623 100644 --- a/lib/shared/addon/components/modal-feedback/component.js +++ b/lib/shared/addon/components/modal-feedback/component.js @@ -1,13 +1,17 @@ -import Ember from 'ember'; +import { scheduleOnce, later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import { loadScript } from 'ui/utils/load-script'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['span-8', 'offset-2', 'modal-telemetry'], - settings: Ember.inject.service(), - prefs: Ember.inject.service(), - access: Ember.inject.service(), + settings: service(), + prefs: service(), + access: service(), loading: true, @@ -17,7 +21,7 @@ export default Ember.Component.extend(ModalBase, { let opt = JSON.parse(this.get(`settings.${C.SETTING.FEEDBACK_FORM}`)||'{}'); - Ember.run.scheduleOnce('afterRender', this, function() { + scheduleOnce('afterRender', this, function() { loadScript('//js.hsforms.net/forms/v2.js').then(() => { window['hbspt'].forms.create({ css: '', @@ -33,7 +37,7 @@ export default Ember.Component.extend(ModalBase, { }, onFormSubmit: function() { self.styleForm(); - Ember.run.later(() => { + later(() => { self.send('sent'); }, 1000); }, diff --git a/lib/shared/addon/components/modal-host-evacuate/component.js b/lib/shared/addon/components/modal-host-evacuate/component.js index 3b92d18a3..98898f0f8 100644 --- a/lib/shared/addon/components/modal-host-evacuate/component.js +++ b/lib/shared/addon/components/modal-host-evacuate/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; import { alternateLabel } from 'ui/utils/platform'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['modal-container', 'medium-modal', 'alert'], - resources: Ember.computed.alias('modalService.modalOpts.model'), + resources: alias('modalService.modalOpts.model'), alternateLabel: alternateLabel, actions: { @@ -13,7 +17,7 @@ export default Ember.Component.extend(ModalBase, { resource.doAction('evacuate'); }); - Ember.run.next(() => { + next(() => { this.send('cancel'); }); } diff --git a/lib/shared/addon/components/modal-kubeconfig/component.js b/lib/shared/addon/components/modal-kubeconfig/component.js index 0339e4000..65f070074 100644 --- a/lib/shared/addon/components/modal-kubeconfig/component.js +++ b/lib/shared/addon/components/modal-kubeconfig/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; const CONFIG_TPL = `apiVersion: v1 kind: Config @@ -22,11 +24,12 @@ users: -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['modal-container', 'large-modal', 'alert'], - access: Ember.inject.service(), - growl: Ember.inject.service(), - projects: Ember.inject.service(), + access: service(), + growl: service(), + projects: service(), step: 1, kubeconfig: '', diff --git a/lib/shared/addon/components/modal-kubectl/component.js b/lib/shared/addon/components/modal-kubectl/component.js index ea31d9e82..67e7dd309 100644 --- a/lib/shared/addon/components/modal-kubectl/component.js +++ b/lib/shared/addon/components/modal-kubectl/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; import C from 'ui/utils/constants'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { - access: Ember.inject.service(), - projects: Ember.inject.service(), +export default Component.extend(ModalBase, { + layout, + access: service(), + projects: service(), classNames: ['modal-container', 'large-modal', 'fullscreen-modal', 'modal-shell', 'alert'], loading: true, @@ -21,7 +25,7 @@ export default Ember.Component.extend(ModalBase, { this.shortcuts.enable(); }, - command: Ember.computed('model.labels', function() { + command: computed('model.labels', function() { var labels = this.get('model.labels')||{}; if ( labels[C.LABEL.K8S_TOKEN]+'' === 'true' ) { return [ diff --git a/lib/shared/addon/components/modal-new-volume/component.js b/lib/shared/addon/components/modal-new-volume/component.js index feb7255f8..bb9b8d505 100644 --- a/lib/shared/addon/components/modal-new-volume/component.js +++ b/lib/shared/addon/components/modal-new-volume/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['large-modal'], - callback: Ember.computed.alias('modalService.modalOpts.callback'), - model: Ember.computed.alias('modalService.modalOpts.model'), + callback: alias('modalService.modalOpts.callback'), + model: alias('modalService.modalOpts.model'), editing: true, init() { diff --git a/lib/shared/addon/components/modal-process-error/component.js b/lib/shared/addon/components/modal-process-error/component.js index 40ecf5a3f..759a6099c 100644 --- a/lib/shared/addon/components/modal-process-error/component.js +++ b/lib/shared/addon/components/modal-process-error/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['large-modal'], - exception: Ember.computed.alias('modalService.modalOpts'), + exception: alias('modalService.modalOpts'), actions: { dismiss: function() { this.send('cancel'); diff --git a/lib/shared/addon/components/modal-rollback-service/component.js b/lib/shared/addon/components/modal-rollback-service/component.js index 15f17161b..1a6640fb2 100644 --- a/lib/shared/addon/components/modal-rollback-service/component.js +++ b/lib/shared/addon/components/modal-rollback-service/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; function sanitize(input) { let config = input.serialize().config; @@ -38,8 +40,9 @@ function sanitize(input) { return config; } -export default Ember.Component.extend(ModalBase, { - growl: Ember.inject.service(), +export default Component.extend(ModalBase, { + layout, + growl: service(), classNames: ['medium-modal'], diff --git a/lib/shared/addon/components/modal-root/component.js b/lib/shared/addon/components/modal-root/component.js index 2207c8a8c..17f677294 100644 --- a/lib/shared/addon/components/modal-root/component.js +++ b/lib/shared/addon/components/modal-root/component.js @@ -1,14 +1,19 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: 'div', classNames: ['modal-overlay'], classNameBindings: ['modalVisible:modal-open:modal-closed'], - modalService: Ember.inject.service('modal'), - modalType: Ember.computed.alias('modalService.modalType'), - modalVisible: Ember.computed.alias('modalService.modalVisible'), + modalService: service('modal'), + modalType: alias('modalService.modalType'), + modalVisible: alias('modalService.modalVisible'), click(e) { - if (this.get('modalService.closeWithOutsideClick') && Ember.$(e.target).hasClass('modal-open')) { + if (this.get('modalService.closeWithOutsideClick') && $(e.target).hasClass('modal-open')) { this.get('modalService').toggleModal(); } } diff --git a/lib/shared/addon/components/modal-shell/component.js b/lib/shared/addon/components/modal-shell/component.js index 1852e5ec0..4d885d1ef 100644 --- a/lib/shared/addon/components/modal-shell/component.js +++ b/lib/shared/addon/components/modal-shell/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['modal-container', 'large-modal', 'fullscreen-modal', 'modal-shell', 'alert'], - originalModel: Ember.computed.alias('modalService.modalOpts.model'), + originalModel: alias('modalService.modalOpts.model'), init() { this._super(...arguments); this.shortcuts.disable(); diff --git a/lib/shared/addon/components/modal-shortcuts/component.js b/lib/shared/addon/components/modal-shortcuts/component.js index 3bb759d6f..826908b62 100644 --- a/lib/shared/addon/components/modal-shortcuts/component.js +++ b/lib/shared/addon/components/modal-shortcuts/component.js @@ -1,16 +1,21 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; import C from 'ui/utils/constants'; +import layout from './template'; let DEFAULT_TIME = 400; -export default Ember.Component.extend(ModalBase, { - prefs : Ember.inject.service(), +export default Component.extend(ModalBase, { + layout, + prefs : service(), classNames: ['generic', 'medium-modal'], - settings: Ember.inject.service(), - access: Ember.inject.service(), + settings: service(), + access: service(), - isAdmin: Ember.computed.alias('access.admin'), + isAdmin: alias('access.admin'), containerCount: function() { let count = this.get('containers.length'); @@ -24,7 +29,7 @@ export default Ember.Component.extend(ModalBase, { time: DEFAULT_TIME, timer: null, - currentTheme: Ember.computed(`prefs.${C.PREFS.THEME}`, function() { + currentTheme: computed(`prefs.${C.PREFS.THEME}`, function() { return this.get(`prefs.${C.PREFS.THEME}`); }), diff --git a/lib/shared/addon/components/modal-telemetry/component.js b/lib/shared/addon/components/modal-telemetry/component.js index 2e5184c84..3ca3b7d37 100644 --- a/lib/shared/addon/components/modal-telemetry/component.js +++ b/lib/shared/addon/components/modal-telemetry/component.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['modal-container', 'span-6', 'offset-3', 'modal-telemetry', 'alert'], - settings: Ember.inject.service(), + settings: service(), optIn: null, init() { diff --git a/lib/shared/addon/components/modal-wechat/component.js b/lib/shared/addon/components/modal-wechat/component.js index 409bffd98..f3b8a01d7 100644 --- a/lib/shared/addon/components/modal-wechat/component.js +++ b/lib/shared/addon/components/modal-wechat/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import ModalBase from 'shared/mixins/modal-base'; +import layout from './template'; -export default Ember.Component.extend(ModalBase, { +export default Component.extend(ModalBase, { + layout, classNames: ['modal-container','about','span-6','offset-3', 'alert'], - settings: Ember.inject.service(), + settings: service(), }); diff --git a/lib/shared/addon/components/multi-container-stats/component.js b/lib/shared/addon/components/multi-container-stats/component.js index 342a77688..fc99dc8c4 100644 --- a/lib/shared/addon/components/multi-container-stats/component.js +++ b/lib/shared/addon/components/multi-container-stats/component.js @@ -1,17 +1,21 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import MultiStatsSocket from 'ui/utils/multi-stats'; +import layout from './template'; const FIELDS = ['cpuUser','cpuSystem','cpuTotal','networkTx','networkRx','networkTotal','memory','storageWrite','storageRead','storageTotal']; -export default Ember.Component.extend({ +export default Component.extend({ + layout, model: null, linkName: 'containerStats', maxPoints: 60, emitInterval: 1000, emitMaps: false, - available: Ember.computed.alias('statsSocket.available'), - active: Ember.computed.alias('statsSocket.active'), - loading: Ember.computed.alias('statsSocket.loading'), + available: alias('statsSocket.available'), + active: alias('statsSocket.active'), + loading: alias('statsSocket.loading'), tagName: '', statsSocket: null, @@ -52,7 +56,7 @@ export default Ember.Component.extend({ }.observes('active'), connect() { - Ember.run.next(() => { + next(() => { try { var stats = MultiStatsSocket.create({ resource: this.get('model'), diff --git a/lib/shared/addon/components/new-catalog/component.js b/lib/shared/addon/components/new-catalog/component.js index 4893f3e6b..44b52efb4 100644 --- a/lib/shared/addon/components/new-catalog/component.js +++ b/lib/shared/addon/components/new-catalog/component.js @@ -1,18 +1,24 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { scheduleOnce } from '@ember/runloop'; +import { alias, notEmpty } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import C from 'ui/utils/constants'; import Util from 'ui/utils/util'; import { compare as compareVersion } from 'ui/utils/parse-version'; import { task } from 'ember-concurrency'; import YAML from 'npm:yamljs'; +import layout from './template'; -export default Ember.Component.extend(NewOrEdit, { - catalog: Ember.inject.service(), - intl: Ember.inject.service(), - projects: Ember.inject.service(), - router: Ember.inject.service(), - settings: Ember.inject.service(), +export default Component.extend(NewOrEdit, { + layout, + catalog: service(), + intl: service(), + projects: service(), + router: service(), + settings: service(), allTemplates: null, templateResource: null, @@ -34,9 +40,9 @@ export default Ember.Component.extend(NewOrEdit, { classNames: ['launch-catalog'], - primaryResource: Ember.computed.alias('stackResource'), - templateBase: Ember.computed.alias('templateResource.templateBase'), - editing: Ember.computed.notEmpty('stackResource.id'), + primaryResource: alias('stackResource'), + templateBase: alias('templateResource.templateBase'), + editing: notEmpty('stackResource.id'), previewOpen: false, previewTab: null, @@ -72,7 +78,7 @@ export default Ember.Component.extend(NewOrEdit, { this._super(...arguments); this.set('selectedTemplateModel', null); - Ember.run.scheduleOnce('afterRender', () => { + scheduleOnce('afterRender', () => { if ( this.get('selectedTemplateUrl') ) { this.templateChanged(); } else { @@ -200,9 +206,9 @@ export default Ember.Component.extend(NewOrEdit, { return out; }.property('selectedTemplateModel.questions.@each.{variable,answer}'), - answersArray: Ember.computed.alias('selectedTemplateModel.questions'), + answersArray: alias('selectedTemplateModel.questions'), - answersString: Ember.computed('answersArray.@each.{variable,answer}', function() { + answersString: computed('answersArray.@each.{variable,answer}', function() { let neu = {}; this.get('answersArray').forEach((a) => { neu[a.variable] = a.answer || a.default; diff --git a/lib/shared/addon/components/new-edit-balancer/component.js b/lib/shared/addon/components/new-edit-balancer/component.js index a8e9d4604..dac0fd994 100644 --- a/lib/shared/addon/components/new-edit-balancer/component.js +++ b/lib/shared/addon/components/new-edit-balancer/component.js @@ -1,12 +1,18 @@ -import Ember from 'ember'; +import { once } from '@ember/runloop'; +import EmberObject from '@ember/object'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import C from 'ui/utils/constants'; import StackState from 'shared/mixins/stack-memory'; +import layout from './template'; -export default Ember.Component.extend(NewOrEdit, StackState, { - intl : Ember.inject.service(), - settings : Ember.inject.service(), - prefs: Ember.inject.service(), +export default Component.extend(NewOrEdit, StackState, { + layout, + intl : service(), + settings : service(), + prefs: service(), service : null, editing : null, @@ -24,8 +30,8 @@ export default Ember.Component.extend(NewOrEdit, StackState, { schedulingErrors : null, scaleErrors : null, - primaryResource : Ember.computed.alias('service'), - launchConfig : Ember.computed.alias('service.launchConfig'), + primaryResource : alias('service'), + launchConfig : alias('service.launchConfig'), init() { this._super(...arguments); @@ -115,7 +121,7 @@ export default Ember.Component.extend(NewOrEdit, StackState, { let to = this.get('service.launchConfig.image')||''; if ( this.get('upgradeImage')+'' === 'true' ) { - return Ember.Object.create({ + return EmberObject.create({ from: from, to: to, }); @@ -131,7 +137,7 @@ export default Ember.Component.extend(NewOrEdit, StackState, { labelsReady: false, labelsChanged: function() { - Ember.run.once(this,'mergeLabels'); + once(this,'mergeLabels'); }.observes( 'userLabels.@each.{key,value}', 'scaleLabels.@each.{key,value}', diff --git a/lib/shared/addon/components/new-edit-cluster/component.js b/lib/shared/addon/components/new-edit-cluster/component.js index 79d646a23..e96e9eaf5 100644 --- a/lib/shared/addon/components/new-edit-cluster/component.js +++ b/lib/shared/addon/components/new-edit-cluster/component.js @@ -1,19 +1,24 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import { parseExternalId } from 'ui/utils/parse-externalid'; import { task/* , timeout */ } from 'ember-concurrency'; import C from 'ui/utils/constants'; import NewOrEdit from 'shared/mixins/new-or-edit'; +import layout from './template'; -export default Ember.Component.extend(NewOrEdit, { +export default Component.extend(NewOrEdit, { + layout, editing: true, editCluster: false, - primaryResource: Ember.computed.alias('model.cluster'), + primaryResource: alias('model.cluster'), goToTemplate: null, cluster: null, showHeader: true, - projects: Ember.inject.service(), + projects: service(), // application: Ember.inject.controller(), - catalog: Ember.inject.service(), + catalog: service(), catalogItem: null, editCatalog: false, selectedTemplateUrl: null, @@ -179,7 +184,7 @@ export default Ember.Component.extend(NewOrEdit, { })); } - var neu = Ember.Object.create({ + var neu = EmberObject.create({ stack: stack, tpl: template, upgrade: false, diff --git a/lib/shared/addon/components/new-edit-dns/component.js b/lib/shared/addon/components/new-edit-dns/component.js index c7199748a..8272377e4 100644 --- a/lib/shared/addon/components/new-edit-dns/component.js +++ b/lib/shared/addon/components/new-edit-dns/component.js @@ -1,7 +1,12 @@ -import Ember from 'ember'; +import { reject } from 'rsvp'; +import { next } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; import Errors from 'ui/utils/errors'; import StackState from 'shared/mixins/stack-memory'; +import layout from './template'; const HOSTNAME = 'externalhostname'; const IP = 'externalip'; @@ -16,13 +21,14 @@ function modeToType(mode) { } } -export default Ember.Component.extend(NewOrEdit, StackState, { - intl: Ember.inject.service(), +export default Component.extend(NewOrEdit, StackState, { + layout, + intl: service(), record: null, editing: true, - primaryResource: Ember.computed.alias('record'), + primaryResource: alias('record'), mode: null, targetServicesAsMaps: null, @@ -41,7 +47,7 @@ export default Ember.Component.extend(NewOrEdit, StackState, { addTargetIp() { this.get('targetIpArray').pushObject({value: null}); - Ember.run.next(() => { + next(() => { this.$('.target-ip').last()[0].focus(); }); }, @@ -151,7 +157,7 @@ export default Ember.Component.extend(NewOrEdit, StackState, { return false; }); } else { - return Ember.RSVP.reject('No Stack'); + return reject('No Stack'); } } diff --git a/lib/shared/addon/components/new-edit-secret/component.js b/lib/shared/addon/components/new-edit-secret/component.js index fe08e1d23..cb7d937b2 100644 --- a/lib/shared/addon/components/new-edit-secret/component.js +++ b/lib/shared/addon/components/new-edit-secret/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { observer } from '@ember/object'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; +import layout from './template'; -export default Ember.Component.extend(NewOrEdit, { +export default Component.extend(NewOrEdit, { + layout, model: null, userValue: '', - userValueChanged: Ember.observer('userValue', function() { + userValueChanged: observer('userValue', function() { this.set('primaryResource.value', AWS.util.base64.encode(this.get('userValue'))); }), diff --git a/lib/shared/addon/components/new-password/component.js b/lib/shared/addon/components/new-password/component.js index 4c6806706..c8e6decde 100644 --- a/lib/shared/addon/components/new-password/component.js +++ b/lib/shared/addon/components/new-password/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, newPassword: null, confirmPassword: null, passwordOkay: false, passwordOut: null, - passwordsMatch: Ember.computed('newPassword', 'confirmPassword', function() { + passwordsMatch: computed('newPassword', 'confirmPassword', function() { if (this.get('confirmPassword')) { if ((this.get('newPassword') === this.get('confirmPassword'))) { this.set('passwordOut', this.get('newPassword')); diff --git a/lib/shared/addon/components/new-select/component.js b/lib/shared/addon/components/new-select/component.js index 368484e2d..0a2a3a3d4 100644 --- a/lib/shared/addon/components/new-select/component.js +++ b/lib/shared/addon/components/new-select/component.js @@ -1,6 +1,10 @@ -import Ember from 'ember'; +import { computed, get } from '@ember/object'; +import { reads } from '@ember/object/computed'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: 'select', // possible passed-in values with their defaults: content: null, @@ -21,7 +25,7 @@ export default Ember.Component.extend({ // shadow the passed-in `selection` to avoid // leaking changes to it via a 2-way binding - _selection: Ember.computed.reads('selection'), + _selection: reads('selection'), init() { this._super(...arguments); @@ -29,11 +33,11 @@ export default Ember.Component.extend({ this.set('content', []); } - this.set('ungroupedContent', Ember.computed('content.@each.'+this.get('optionGroupPath'), () => { + this.set('ungroupedContent', computed('content.@each.'+this.get('optionGroupPath'), () => { var groupPath = this.get('optionGroupPath'); var out = []; this.get('content').forEach((opt) => { - var key = Ember.get(opt, groupPath); + var key = get(opt, groupPath); if ( !key ) { out.push(opt); @@ -43,12 +47,12 @@ export default Ember.Component.extend({ return out; })); - this.set('groupedContent', Ember.computed('content.@each.'+this.get('optionGroupPath'), () => { + this.set('groupedContent', computed('content.@each.'+this.get('optionGroupPath'), () => { var groupPath = this.get('optionGroupPath'); var out = []; this.get('content').forEach((opt) => { - var key = Ember.get(opt, groupPath); + var key = get(opt, groupPath); if ( key ) { var group = out.filterBy('group', key)[0]; @@ -101,7 +105,7 @@ export default Ember.Component.extend({ if ( selection ) { - this.set('value', Ember.get(selection, this.get('optionValuePath'))); + this.set('value', get(selection, this.get('optionValuePath'))); } else { diff --git a/lib/shared/addon/components/new-volume/component.js b/lib/shared/addon/components/new-volume/component.js index 37bb22c82..ea052de30 100644 --- a/lib/shared/addon/components/new-volume/component.js +++ b/lib/shared/addon/components/new-volume/component.js @@ -1,5 +1,8 @@ -import Ember from 'ember'; +import { resolve, reject } from 'rsvp'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; +import layout from './template'; const SPECIAL = { '': 'editVolume.driver.local', @@ -13,8 +16,9 @@ const HIDE = [ 'rancher-secrets', ]; -export default Ember.Component.extend(NewOrEdit, { - intl: Ember.inject.service(), +export default Component.extend(NewOrEdit, { + layout, + intl: service(), model: null, scope: 'global', @@ -122,19 +126,19 @@ export default Ember.Component.extend(NewOrEdit, { let stackPromise; // Set the stack ID if ( scope === 'global' ) { - stackPromise = Ember.RSVP.resolve(); + stackPromise = resolve(); } else { pr.set('perContainer', (scope === 'container')); if ( this.get('stack.id') ) { pr.set('stackId', this.get('stack.id')); - stackPromise = Ember.RSVP.resolve(); + stackPromise = resolve(); } else if ( this.get('stack') && this.get('stack.name') ) { stackPromise = this.get('stack').save().then((newStack) => { pr.set('stackId', newStack.get('id')); }); } else { - stackPromise = Ember.RSVP.reject('Stack is required'); + stackPromise = reject('Stack is required'); } } diff --git a/lib/shared/addon/components/page-footer/component.js b/lib/shared/addon/components/page-footer/component.js index f350f7bee..985296e94 100644 --- a/lib/shared/addon/components/page-footer/component.js +++ b/lib/shared/addon/components/page-footer/component.js @@ -1,21 +1,26 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; -export default Ember.Component.extend({ - intl: Ember.inject.service(), +export default Component.extend({ + layout, + intl: service(), tagName: 'footer', className: 'clearfix', - settings: Ember.inject.service(), - prefs: Ember.inject.service(), + settings: service(), + prefs: service(), githubBase: C.EXT_REFERENCES.GITHUB, forumBase: C.EXT_REFERENCES.FORUM, slackBase: C.EXT_REFERENCES.SLACK, - projectId : Ember.computed.alias(`tab-session.${C.TABSESSION.PROJECT}`), + projectId : alias(`tab-session.${C.TABSESSION.PROJECT}`), - modalService: Ember.inject.service('modal'), + modalService: service('modal'), init() { this._super(...arguments); @@ -37,7 +42,7 @@ export default Ember.Component.extend({ }); }, - showWechat : Ember.computed('intl._locale', function() { + showWechat : computed('intl._locale', function() { let locale = this.get('intl._locale'); if (locale) { return locale[0] === 'zh-hans'; @@ -58,5 +63,3 @@ export default Ember.Component.extend({ }, } }); - - diff --git a/lib/shared/addon/components/page-header-environment/component.js b/lib/shared/addon/components/page-header-environment/component.js index 1c70223b6..3cc0b7447 100644 --- a/lib/shared/addon/components/page-header-environment/component.js +++ b/lib/shared/addon/components/page-header-environment/component.js @@ -1,3 +1,4 @@ +import { alias, reads } from '@ember/object/computed'; import Component from '@ember/component'; import layout from './template'; import { inject as service } from '@ember/service' @@ -7,7 +8,7 @@ export default Component.extend({ layout, access: service(), projects: service(), - project: computed.alias('projects.current'), + project: alias('projects.current'), isOwner: null, @@ -33,7 +34,7 @@ export default Component.extend({ return this.get('scope') === 'user'; }), - isAdmin: computed.reads('access.admin'), + isAdmin: reads('access.admin'), clusters: computed(function() { return this.get('userStore').all('cluster', null, {url: 'clusters', forceReload: true, removeMissing: true}); diff --git a/lib/shared/addon/components/page-header/component.js b/lib/shared/addon/components/page-header/component.js index 97531a769..1e125580d 100644 --- a/lib/shared/addon/components/page-header/component.js +++ b/lib/shared/addon/components/page-header/component.js @@ -1,9 +1,10 @@ +import { alias, equal } from '@ember/object/computed'; import Component from '@ember/component'; import { inject as service } from '@ember/service' import { computed } from '@ember/object'; import layout from './template'; import C from 'shared/utils/constants'; -import {get as getTree} from 'shared/utils/navigation-tree'; +import { get as getTree } from 'shared/utils/navigation-tree'; import HoverDropdown from 'shared/mixins/hover-dropdowns'; import { run } from '@ember/runloop'; @@ -31,14 +32,14 @@ export default Component.extend(HoverDropdown, { access : service(), prefs : service(), - clusterId : computed.alias('projects.currentCluster.id'), - cluster : computed.alias('projects.currentCluster'), - projectId : computed.alias('projects.current.id'), - project : computed.alias('projects.current'), - isAdmin : computed.alias('access.admin'), - isCaas : computed.equal('app.mode',C.MODE.CAAS), - isOss : computed.equal('app.mode',C.MODE.OSS), - accessEnabled : computed.alias('access.enabled'), + clusterId : alias('projects.currentCluster.id'), + cluster : alias('projects.currentCluster'), + projectId : alias('projects.current.id'), + project : alias('projects.current'), + isAdmin : alias('access.admin'), + isCaas : equal('app.mode',C.MODE.CAAS), + isOss : equal('app.mode',C.MODE.OSS), + accessEnabled : alias('access.enabled'), // Component options tagName : 'header', diff --git a/lib/shared/addon/components/pretty-json/component.js b/lib/shared/addon/components/pretty-json/component.js index 9dedc99a1..34f1a9b73 100644 --- a/lib/shared/addon/components/pretty-json/component.js +++ b/lib/shared/addon/components/pretty-json/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, value: null, json: function() { diff --git a/lib/shared/addon/components/process-executions/component.js b/lib/shared/addon/components/process-executions/component.js index e703d3245..8fa8c0b92 100644 --- a/lib/shared/addon/components/process-executions/component.js +++ b/lib/shared/addon/components/process-executions/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, expandAll: false, actions: { expandChildren: function() { - Ember.run.next(() => { + next(() => { this.toggleProperty('expandAll'); }); } diff --git a/lib/shared/addon/components/process-link/component.js b/lib/shared/addon/components/process-link/component.js index 67a8068b8..c8f28a47d 100644 --- a/lib/shared/addon/components/process-link/component.js +++ b/lib/shared/addon/components/process-link/component.js @@ -1,13 +1,17 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; + const IN_APP = ['container', 'instance', 'stack', 'host', 'service']; -export default Ember.Component.extend({ +export default Component.extend({ + layout, model: null, tagName: '', - endpoint: Ember.inject.service(), - growl: Ember.inject.service(), + endpoint: service(), + growl: service(), inApp: function() { return IN_APP.indexOf(this.get('model.resourceType')) >= 0; diff --git a/lib/shared/addon/components/progress-bar-multi/component.js b/lib/shared/addon/components/progress-bar-multi/component.js index 85b54ad9b..38ab3e864 100644 --- a/lib/shared/addon/components/progress-bar-multi/component.js +++ b/lib/shared/addon/components/progress-bar-multi/component.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { computed, get } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; function toPercent(value,min,max) { value = Math.max(min, Math.min(max, value)); @@ -7,7 +9,8 @@ function toPercent(value,min,max) { return per; } -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: 'div', classNames: ['progress-bar-multi'], @@ -28,7 +31,7 @@ export default Ember.Component.extend({ let valueKey = this.get('valueKey'); let valueDep = `values.@each.{${colorKey},${labelKey},${valueKey}}`; - this.set('pieces', Ember.computed('min','max',valueDep, () => { + this.set('pieces', computed('min','max',valueDep, () => { let min = this.get('min'); let max = this.get('max'); @@ -36,9 +39,9 @@ export default Ember.Component.extend({ var out = []; (this.get('values')||[]).forEach((obj) => { out.push({ - color: Ember.get(obj, colorKey), - label: Ember.get(obj, labelKey), - value: Ember.get(obj, valueKey), + color: get(obj, colorKey), + label: get(obj, labelKey), + value: get(obj, valueKey), }); }); @@ -70,13 +73,13 @@ export default Ember.Component.extend({ })); valueDep = `tooltipValues.@each.{${labelKey},${valueKey}}`; - this.set('tooltipContent', Ember.computed(valueDep, () => { + this.set('tooltipContent', computed(valueDep, () => { let labelKey = this.get('labelKey'); let valueKey = this.get('valueKey'); var out = []; (this.get('tooltipValues')||[]).forEach((obj) => { - out.push(Ember.get(obj, labelKey)+ ": " + Ember.get(obj, valueKey)); + out.push(get(obj, labelKey)+ ": " + get(obj, valueKey)); }); return out.join("\n"); diff --git a/lib/shared/addon/components/progress-bar/component.js b/lib/shared/addon/components/progress-bar/component.js index 5172dfb74..2c84ea4ed 100644 --- a/lib/shared/addon/components/progress-bar/component.js +++ b/lib/shared/addon/components/progress-bar/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: 'div', classNames: ['progress'], diff --git a/lib/shared/addon/components/project-table/component.js b/lib/shared/addon/components/project-table/component.js index 3b3243fd7..25fbf6986 100644 --- a/lib/shared/addon/components/project-table/component.js +++ b/lib/shared/addon/components/project-table/component.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; const headersWithCluster = [ { @@ -51,13 +53,14 @@ const headersWithCluster = [ const headersWithoutCluster = headersWithCluster.filter(x => x.name !== 'cluster'); -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: '', showCluster: false, bulkActions: true, search: true, - headers: Ember.computed('showCluster', function() { + headers: computed('showCluster', function() { if ( this.get('showCluster') ) { return headersWithCluster; } else { diff --git a/lib/shared/addon/components/project-template-list/component.js b/lib/shared/addon/components/project-template-list/component.js index aaed9b658..bad50c8fb 100644 --- a/lib/shared/addon/components/project-template-list/component.js +++ b/lib/shared/addon/components/project-template-list/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - settings: Ember.inject.service(), +export default Component.extend({ + layout, + settings: service(), sortBy: 'name', headers: [ { diff --git a/lib/shared/addon/components/public-endpoints/component.js b/lib/shared/addon/components/public-endpoints/component.js index 5ebfd2aa0..dabfc4424 100644 --- a/lib/shared/addon/components/public-endpoints/component.js +++ b/lib/shared/addon/components/public-endpoints/component.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Component from '@ember/component'; -export default Ember.Component.extend({ +export default Component.extend({ model: null, showTarget: false, diff --git a/lib/shared/addon/components/radio-button/component.js b/lib/shared/addon/components/radio-button/component.js index c3c45316d..3c1310e07 100644 --- a/lib/shared/addon/components/radio-button/component.js +++ b/lib/shared/addon/components/radio-button/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: 'input', type: 'radio', disabled: false, diff --git a/lib/shared/addon/components/save-cancel/component.js b/lib/shared/addon/components/save-cancel/component.js index ba41d4b13..f857eb58a 100644 --- a/lib/shared/addon/components/save-cancel/component.js +++ b/lib/shared/addon/components/save-cancel/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, editing: null, createLabel: 'saveCancel.create', savingLabel: 'saveCancel.saving', @@ -50,7 +53,7 @@ export default Ember.Component.extend({ savedChanged: function() { if ( this.get('saved') ) { - Ember.run.later(this, () => { + later(this, () => { if ( this.isDestroyed || this.isDestroying ) { return; } diff --git a/lib/shared/addon/components/schema/input-boolean/component.js b/lib/shared/addon/components/schema/input-boolean/component.js index 9fe9546f3..b28b4b4be 100644 --- a/lib/shared/addon/components/schema/input-boolean/component.js +++ b/lib/shared/addon/components/schema/input-boolean/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, didReceiveAttrs() { if ( this.get('value') === 'false' ) { this.set('value', false); diff --git a/lib/shared/addon/components/schema/input-certificate/component.js b/lib/shared/addon/components/schema/input-certificate/component.js index f4391bde0..fc9b66f13 100644 --- a/lib/shared/addon/components/schema/input-certificate/component.js +++ b/lib/shared/addon/components/schema/input-certificate/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, field : null, value : null, choices : null, - default : Ember.computed.alias('field.default'), + default : alias('field.default'), loading : true, init() { diff --git a/lib/shared/addon/components/schema/input-container/component.js b/lib/shared/addon/components/schema/input-container/component.js index 9cab8a3a3..f0aef96fc 100644 --- a/lib/shared/addon/components/schema/input-container/component.js +++ b/lib/shared/addon/components/schema/input-container/component.js @@ -1,7 +1,11 @@ -import Ember from 'ember'; +import { isArray } from '@ember/array'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - allContainers : Ember.inject.service(), +export default Component.extend({ + layout, + allContainers : service(), selected: null, // Selected service ID exclude: null, // ID or array of IDs to exclude from list @@ -27,7 +31,7 @@ export default Ember.Component.extend({ let exclude = this.get('exclude'); if ( exclude ) { - if ( !Ember.isArray(exclude) ) { + if ( !isArray(exclude) ) { exclude = [exclude]; } diff --git a/lib/shared/addon/components/schema/input-date/component.js b/lib/shared/addon/components/schema/input-date/component.js index 53424a6ce..7370f389d 100644 --- a/lib/shared/addon/components/schema/input-date/component.js +++ b/lib/shared/addon/components/schema/input-date/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import TextField from '@ember/component/text-field'; +import layout from './template'; -export default Ember.TextField.extend({ +export default TextField.extend({ + layout, classNames: ['form-control'], type: 'text' }); diff --git a/lib/shared/addon/components/schema/input-enum/component.js b/lib/shared/addon/components/schema/input-enum/component.js index 926b61300..50b86e6ba 100644 --- a/lib/shared/addon/components/schema/input-enum/component.js +++ b/lib/shared/addon/components/schema/input-enum/component.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, }); diff --git a/lib/shared/addon/components/schema/input-float/component.js b/lib/shared/addon/components/schema/input-float/component.js index 4c457d2e4..135006fa3 100644 --- a/lib/shared/addon/components/schema/input-float/component.js +++ b/lib/shared/addon/components/schema/input-float/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import TextField from '@ember/component/text-field'; +import layout from './template'; -export default Ember.TextField.extend({ +export default TextField.extend({ + layout, classNames: ['form-control'], type: 'number' }); diff --git a/lib/shared/addon/components/schema/input-host/component.js b/lib/shared/addon/components/schema/input-host/component.js index 4539edbcb..a6674c02d 100644 --- a/lib/shared/addon/components/schema/input-host/component.js +++ b/lib/shared/addon/components/schema/input-host/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - modalService: Ember.inject.service('modal'), +export default Component.extend({ + layout, + modalService: service('modal'), hostConfig: null, hostName: null, value: null, diff --git a/lib/shared/addon/components/schema/input-int/component.js b/lib/shared/addon/components/schema/input-int/component.js index 4c457d2e4..135006fa3 100644 --- a/lib/shared/addon/components/schema/input-int/component.js +++ b/lib/shared/addon/components/schema/input-int/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import TextField from '@ember/component/text-field'; +import layout from './template'; -export default Ember.TextField.extend({ +export default TextField.extend({ + layout, classNames: ['form-control'], type: 'number' }); diff --git a/lib/shared/addon/components/schema/input-masked/component.js b/lib/shared/addon/components/schema/input-masked/component.js index 6a71bf8f7..a2298bf35 100644 --- a/lib/shared/addon/components/schema/input-masked/component.js +++ b/lib/shared/addon/components/schema/input-masked/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import TextField from '@ember/component/text-field'; +import layout from './template'; -export default Ember.TextField.extend({ +export default TextField.extend({ + layout, classNames: ['form-control'], type: 'password' }); diff --git a/lib/shared/addon/components/schema/input-multiline/component.js b/lib/shared/addon/components/schema/input-multiline/component.js index c08d1a4f0..90eb4ad1b 100644 --- a/lib/shared/addon/components/schema/input-multiline/component.js +++ b/lib/shared/addon/components/schema/input-multiline/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import TextArea from '@ember/component/text-area'; +import layout from './template'; -export default Ember.TextArea.extend({ +export default TextArea.extend({ + layout, classNames: ['form-control', 'text-mono'], rows: 3, }); diff --git a/lib/shared/addon/components/schema/input-password/component.js b/lib/shared/addon/components/schema/input-password/component.js index 8d8ce4afa..55a04b04e 100644 --- a/lib/shared/addon/components/schema/input-password/component.js +++ b/lib/shared/addon/components/schema/input-password/component.js @@ -1,7 +1,9 @@ -import Ember from 'ember'; +import Component from '@ember/component'; import Util from 'ui/utils/util'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, classNames: ['input-group'], value: '', diff --git a/lib/shared/addon/components/schema/input-relative-service/component.js b/lib/shared/addon/components/schema/input-relative-service/component.js index 8dfa57e4c..335f565b9 100644 --- a/lib/shared/addon/components/schema/input-relative-service/component.js +++ b/lib/shared/addon/components/schema/input-relative-service/component.js @@ -1,10 +1,15 @@ -import Ember from 'ember'; +import { isArray } from '@ember/array'; +import { set } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; const CUSTOM = '__CUSTOM__'; -export default Ember.Component.extend({ - allServices : Ember.inject.service(), - intl: Ember.inject.service(), +export default Component.extend({ + layout, + allServices : service(), + intl: service(), stack: null, // The default stack value: null, // The [stack/]service string value @@ -47,16 +52,16 @@ export default Ember.Component.extend({ list.forEach((item) => { if ( item.obj.stackId === stackId ) { - Ember.set(item,'value',item.name); + set(item,'value',item.name); } else { - Ember.set(item,'value',item.combined); + set(item,'value',item.combined); } }); list.push({group: null, value: CUSTOM, name: this.get('intl').t('schema.inputService.custom')}); let exclude = this.get('exclude')||[]; - if ( !Ember.isArray(exclude) ) { + if ( !isArray(exclude) ) { exclude = [exclude]; } if ( exclude.get('length') ) { diff --git a/lib/shared/addon/components/schema/input-secret/component.js b/lib/shared/addon/components/schema/input-secret/component.js index 61bfc92c4..cf48624cd 100644 --- a/lib/shared/addon/components/schema/input-secret/component.js +++ b/lib/shared/addon/components/schema/input-secret/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import { isArray } from '@ember/array'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, selected: null, // Selected secret ID selectClass: 'form-control', exclude: null, // ID or array of IDs to exclude from list @@ -37,7 +40,7 @@ export default Ember.Component.extend({ let exclude = this.get('exclude'); if ( exclude ) { - if ( !Ember.isArray(exclude) ) { + if ( !isArray(exclude) ) { exclude = [exclude]; } diff --git a/lib/shared/addon/components/schema/input-service/component.js b/lib/shared/addon/components/schema/input-service/component.js index 4773feca3..c80650e4a 100644 --- a/lib/shared/addon/components/schema/input-service/component.js +++ b/lib/shared/addon/components/schema/input-service/component.js @@ -1,7 +1,11 @@ -import Ember from 'ember'; +import { isArray } from '@ember/array'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - allServices : Ember.inject.service(), +export default Component.extend({ + layout, + allServices : service(), selected: null, // Selected service ID selectClass: 'form-control', @@ -52,7 +56,7 @@ export default Ember.Component.extend({ let exclude = this.get('exclude'); if ( exclude ) { - if ( !Ember.isArray(exclude) ) { + if ( !isArray(exclude) ) { exclude = [exclude]; } diff --git a/lib/shared/addon/components/schema/input-string/component.js b/lib/shared/addon/components/schema/input-string/component.js index 53424a6ce..7370f389d 100644 --- a/lib/shared/addon/components/schema/input-string/component.js +++ b/lib/shared/addon/components/schema/input-string/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import TextField from '@ember/component/text-field'; +import layout from './template'; -export default Ember.TextField.extend({ +export default TextField.extend({ + layout, classNames: ['form-control'], type: 'text' }); diff --git a/lib/shared/addon/components/service-log/component.js b/lib/shared/addon/components/service-log/component.js index 459d4056f..fdb6f01ac 100644 --- a/lib/shared/addon/components/service-log/component.js +++ b/lib/shared/addon/components/service-log/component.js @@ -1,8 +1,12 @@ -import Ember from 'ember'; +import { cancel, later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - growl: Ember.inject.service(), - prefs: Ember.inject.service(), +export default Component.extend({ + layout, + growl: service(), + prefs: service(), model: null, @@ -17,7 +21,7 @@ export default Ember.Component.extend({ }, willDestroyElement() { - Ember.run.cancel(this.get('pollTimer')); + cancel(this.get('pollTimer')); }, logs: null, @@ -32,8 +36,8 @@ export default Ember.Component.extend({ }, scheduleTimer() { - Ember.run.cancel(this.get('pollTimer')); - this.set('pollTimer', Ember.run.later(() => { + cancel(this.get('pollTimer')); + this.set('pollTimer', later(() => { this.poll().then(() => { if ( this.isDestroyed || this.isDestroying ) { return; diff --git a/lib/shared/addon/components/service-row/component.js b/lib/shared/addon/components/service-row/component.js index 3bc37b45f..6a4579356 100644 --- a/lib/shared/addon/components/service-row/component.js +++ b/lib/shared/addon/components/service-row/component.js @@ -1,3 +1,4 @@ +import { or } from '@ember/object/computed'; import Component from '@ember/component'; import layout from './template'; import { inject as service } from '@ember/service' @@ -13,7 +14,7 @@ export default Component.extend({ subMatches: null, expanded: null, - showLabelRow: computed.or('model.displayUserLabelStrings.length'), + showLabelRow: or('model.displayUserLabelStrings.length'), showInstanceCount: true, showImage: true, diff --git a/lib/shared/addon/components/settings/billing-info/component.js b/lib/shared/addon/components/settings/billing-info/component.js index 662e637be..9e75b205d 100644 --- a/lib/shared/addon/components/settings/billing-info/component.js +++ b/lib/shared/addon/components/settings/billing-info/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - modalService: Ember.inject.service('modal'), +export default Component.extend({ + layout, + modalService: service('modal'), classNames: ['billing-info', 'box'], cards: null, account: null, diff --git a/lib/shared/addon/components/settings/catalog-url/component.js b/lib/shared/addon/components/settings/catalog-url/component.js index 1a06d24da..e83b79b35 100644 --- a/lib/shared/addon/components/settings/catalog-url/component.js +++ b/lib/shared/addon/components/settings/catalog-url/component.js @@ -1,10 +1,15 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import { parseCatalogSetting } from 'ui/utils/parse-catalog-setting'; +import layout from './template'; -export default Ember.Component.extend({ - settings: Ember.inject.service(), - catalog: Ember.inject.service(), +export default Component.extend({ + layout, + settings: service(), + catalog: service(), kindChoices: [ {translationKey: 'catalogSettings.more.kind.native', value: 'native'}, {translationKey: 'catalogSettings.more.kind.helm', value: 'helm'}, @@ -19,8 +24,8 @@ export default Ember.Component.extend({ actions: { add() { - this.get('ary').pushObject(Ember.Object.create({name: '', branch: C.CATALOG.DEFAULT_BRANCH, kind: 'native', url: ''})); - Ember.run.next(() => { + this.get('ary').pushObject(EmberObject.create({name: '', branch: C.CATALOG.DEFAULT_BRANCH, kind: 'native', url: ''})); + next(() => { if ( this.isDestroyed || this.isDestroying ) { return; } @@ -93,7 +98,7 @@ export default Ember.Component.extend({ var ary = []; Object.keys(map).forEach((name) => { - ary.push(Ember.Object.create({name: name, kind: map[name].kind||'native', branch: map[name].branch, url: map[name].url})); + ary.push(EmberObject.create({name: name, kind: map[name].kind||'native', branch: map[name].branch, url: map[name].url})); }); this.setProperties({ diff --git a/lib/shared/addon/components/settings/danger-zone/component.js b/lib/shared/addon/components/settings/danger-zone/component.js index b3b169a22..c5c471d16 100644 --- a/lib/shared/addon/components/settings/danger-zone/component.js +++ b/lib/shared/addon/components/settings/danger-zone/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import { normalizeName } from 'ui/services/settings'; import C from 'ui/utils/constants'; +import layout from './template'; const ALLOWED = { 'access.log': {}, @@ -44,9 +47,10 @@ const ALLOWED = { 'upgrade.manager': {kind: 'enum', options: ['all','mandatory','none']}, }; -export default Ember.Component.extend({ - settings: Ember.inject.service(), - modalService: Ember.inject.service('modal'), +export default Component.extend({ + layout, + settings: service(), + modalService: service('modal'), loading: false, show: false, @@ -67,7 +71,7 @@ export default Ember.Component.extend({ let obj = this.get('settings').findByName(key); let details = this.get('allowed')[key]; - this.get('modalService').toggleModal('modal-edit-setting', Ember.Object.create({ + this.get('modalService').toggleModal('modal-edit-setting', EmberObject.create({ key: key, descriptionKey: details.descriptionKey, kind: details.kind, @@ -103,7 +107,7 @@ export default Ember.Component.extend({ let obj = all[normalizeName(key)]; let details = allowed[key]; - let out = Ember.Object.create({ + let out = EmberObject.create({ key: key, obj: obj, }); diff --git a/lib/shared/addon/components/settings/host-registration/component.js b/lib/shared/addon/components/settings/host-registration/component.js index 41e943df9..ff594f68c 100644 --- a/lib/shared/addon/components/settings/host-registration/component.js +++ b/lib/shared/addon/components/settings/host-registration/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; function hostname(str) { return (str||'').trim().replace(/^[a-z0-9]+:\/+/i, '').replace(/\/.*$/g,''); @@ -20,9 +22,10 @@ function isBadTld(name) { } } -export default Ember.Component.extend({ - endpoint : Ember.inject.service(), - settings : Ember.inject.service(), +export default Component.extend({ + layout, + endpoint : service(), + settings : service(), customRadio : null, customValue : '', diff --git a/lib/shared/addon/components/settings/settings-header/component.js b/lib/shared/addon/components/settings/settings-header/component.js index e3ac4fb5c..24a0cb09d 100644 --- a/lib/shared/addon/components/settings/settings-header/component.js +++ b/lib/shared/addon/components/settings/settings-header/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: '', }); diff --git a/lib/shared/addon/components/settings/table-rows/component.js b/lib/shared/addon/components/settings/table-rows/component.js index b3cb7c92b..cdd4f9dc5 100644 --- a/lib/shared/addon/components/settings/table-rows/component.js +++ b/lib/shared/addon/components/settings/table-rows/component.js @@ -1,5 +1,8 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; const TABLE_COUNTS = [ { value: "10", }, @@ -11,9 +14,10 @@ const TABLE_COUNTS = [ { value: "1000", }, ]; -export default Ember.Component.extend({ - prefs: Ember.inject.service(), - perPage: Ember.computed.alias('prefs.tablePerPage'), +export default Component.extend({ + layout, + prefs: service(), + perPage: alias('prefs.tablePerPage'), tableCounts: TABLE_COUNTS, selectedCount: null, diff --git a/lib/shared/addon/components/settings/telemetry-opt/component.js b/lib/shared/addon/components/settings/telemetry-opt/component.js index ea9006f3a..2f6824dca 100644 --- a/lib/shared/addon/components/settings/telemetry-opt/component.js +++ b/lib/shared/addon/components/settings/telemetry-opt/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; const IN = 'in'; const OUT = 'out'; -export default Ember.Component.extend({ - settings: Ember.inject.service(), +export default Component.extend({ + layout, + settings: service(), initialValue: null, optIn: null, diff --git a/lib/shared/addon/components/settings/theme-toggle/component.js b/lib/shared/addon/components/settings/theme-toggle/component.js index c1de30442..81b14ea0c 100644 --- a/lib/shared/addon/components/settings/theme-toggle/component.js +++ b/lib/shared/addon/components/settings/theme-toggle/component.js @@ -1,12 +1,16 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; +import layout from './template'; -export default Ember.Component.extend({ - prefs : Ember.inject.service(), - userTheme : Ember.inject.service('user-theme'), +export default Component.extend({ + layout, + prefs : service(), + userTheme : service('user-theme'), - theme: Ember.computed(`prefs.${C.PREFS.THEME}`, function() { + theme: computed(`prefs.${C.PREFS.THEME}`, function() { return this.get(`prefs.${C.PREFS.THEME}`); }), diff --git a/lib/shared/addon/components/settings/user-info/component.js b/lib/shared/addon/components/settings/user-info/component.js index b6cd80af3..b066eb83e 100644 --- a/lib/shared/addon/components/settings/user-info/component.js +++ b/lib/shared/addon/components/settings/user-info/component.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - access: Ember.inject.service(), - modalService: Ember.inject.service('modal'), +export default Component.extend({ + layout, + access: service(), + modalService: service('modal'), account: null, actions: { diff --git a/lib/shared/addon/components/site-access/component.js b/lib/shared/addon/components/site-access/component.js index 2f4b16758..62d9867aa 100644 --- a/lib/shared/addon/components/site-access/component.js +++ b/lib/shared/addon/components/site-access/component.js @@ -1,11 +1,14 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import Errors from 'ui/utils/errors'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: 'section', classNames: ['well'], - settings: Ember.inject.service(), - access: Ember.inject.service(), + settings: service(), + access: service(), model: null, individuals: 'siteAccess.users', diff --git a/lib/shared/addon/components/sortable-table/component.js b/lib/shared/addon/components/sortable-table/component.js index 701ab732f..69b792d6a 100644 --- a/lib/shared/addon/components/sortable-table/component.js +++ b/lib/shared/addon/components/sortable-table/component.js @@ -1,10 +1,11 @@ +import { or, alias } from '@ember/object/computed'; import Component from '@ember/component'; import Sortable from 'shared/mixins/sortable-base'; import StickyHeader from 'shared/mixins/sticky-table-header'; import layout from './template'; import pagedArray from 'ember-cli-pagination/computed/paged-array'; import { computed } from '@ember/object'; -import { get,set } from '@ember/object'; +import { get, set } from '@ember/object'; import { inject as service } from '@ember/service' import { isArray } from '@ember/array'; import { observer } from '@ember/object' @@ -97,7 +98,7 @@ export default Component.extend(Sortable, StickyHeader, { page: 1, pagingLabel: 'pagination.generic', - showHeader: computed.or('bulkActions','search','paging'), + showHeader: or('bulkActions','search','paging'), didReceiveAttrs: function() { this._super(...arguments); @@ -204,10 +205,10 @@ export default Component.extend(Sortable, StickyHeader, { // Table content // Flow: body [-> sortableContent] -> arranged -> filtered -> pagedContent [-> groupedContent] // ----- - sortableContent: computed.alias('body'), + sortableContent: alias('body'), pagedContent: pagedArray('filtered', { - page: computed.alias("parent.page"), - perPage: computed.alias("parent.perPage") + page: alias("parent.page"), + perPage: alias("parent.perPage") }), // For data-title properties on s diff --git a/lib/shared/addon/components/sortable-thead/component.js b/lib/shared/addon/components/sortable-thead/component.js index e45f78169..6590908c2 100644 --- a/lib/shared/addon/components/sortable-thead/component.js +++ b/lib/shared/addon/components/sortable-thead/component.js @@ -1,3 +1,4 @@ +import { alias } from '@ember/object/computed'; import Component from '@ember/component'; import layout from './template'; import { computed } from '@ember/object'; @@ -13,8 +14,8 @@ export default Component.extend({ sortable: null, header: null, - current: computed.alias('sortable.sortBy'), - descending: computed.alias('sortable.descending'), + current: alias('sortable.sortBy'), + descending: alias('sortable.descending'), activeAscending: computed('header.name','current','descending', function() { return !this.get('descending') && this.get('current') === this.get('header.name'); diff --git a/lib/shared/addon/components/spark-line/component.js b/lib/shared/addon/components/spark-line/component.js index 7b5279b65..964089cea 100644 --- a/lib/shared/addon/components/spark-line/component.js +++ b/lib/shared/addon/components/spark-line/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; -import { GRADIENT_COLORS } from 'ui/components/svg-gradients/component'; +import { htmlSafe } from '@ember/string'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import { GRADIENT_COLORS } from 'shared/components/svg-gradients/component'; import { formatPercent, formatMib, formatKbps } from 'ui/utils/util'; +import layout from './template'; const FORMATTERS = { value: (value) => { @@ -14,12 +17,13 @@ const FORMATTERS = { kbps: formatKbps }; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName : 'svg', classNames : ['spark-line'], attributeBindings: ['cssSize:style'], - intl : Ember.inject.service(), + intl : service(), data : null, width : null, height : 20, @@ -56,7 +60,7 @@ export default Ember.Component.extend({ let margin = parseInt(this.get('margin',10)); let width = (parseInt(this.get('width'), 10) + 2*margin); let height = (parseInt(this.get('height'),10) + 2*margin); - return new Ember.String.htmlSafe(`width: ${width}px; height: ${height}px`); + return new htmlSafe(`width: ${width}px; height: ${height}px`); }.property('width', 'height'), lastValue: function() { diff --git a/lib/shared/addon/components/stack-app/component.js b/lib/shared/addon/components/stack-app/component.js index ce148efdf..b33796f13 100644 --- a/lib/shared/addon/components/stack-app/component.js +++ b/lib/shared/addon/components/stack-app/component.js @@ -1,7 +1,10 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - projects: Ember.inject.service(), +export default Component.extend({ + layout, + projects: service(), classNames: ['stack-app'], srcSet: false, diff --git a/lib/shared/addon/components/stack-header/component.js b/lib/shared/addon/components/stack-header/component.js index 086d84326..e5384446f 100644 --- a/lib/shared/addon/components/stack-header/component.js +++ b/lib/shared/addon/components/stack-header/component.js @@ -1,10 +1,14 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { alias } from '@ember/object/computed'; +import Component from '@ember/component'; import { inject as service } from "@ember/service"; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, settings: service(), projects: service(), - hasVm: Ember.computed.alias('projects.current.virtualMachine'), + hasVm: alias('projects.current.virtualMachine'), router: service(), actions: { @@ -19,7 +23,7 @@ export default Ember.Component.extend({ var out = []; var map = this.get('model.outputs')||{}; Object.keys(map).forEach((key) => { - out.push(Ember.Object.create({ + out.push(EmberObject.create({ key: key, value: map[key], })); diff --git a/lib/shared/addon/components/star-rating/component.js b/lib/shared/addon/components/star-rating/component.js index ba42a2648..6fdfd6abe 100644 --- a/lib/shared/addon/components/star-rating/component.js +++ b/lib/shared/addon/components/star-rating/component.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, rating: null, - parseRating: Ember.computed('rating', function() { + parseRating: computed('rating', function() { var safeCount = Math.round( parseInt(this.get('rating'), 10) ); var out = []; for (var i = 0 ; i < safeCount ; i++){ diff --git a/lib/shared/addon/components/svg-edge/component.js b/lib/shared/addon/components/svg-edge/component.js index 37c353f71..5aad8e917 100644 --- a/lib/shared/addon/components/svg-edge/component.js +++ b/lib/shared/addon/components/svg-edge/component.js @@ -1,12 +1,15 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, path: null, tagName: 'g', - draw: Ember.computed('path', function() { + draw: computed('path', function() { var out; var paths = this.get('path'); diff --git a/lib/shared/addon/components/svg-gradients/component.js b/lib/shared/addon/components/svg-gradients/component.js index a414797ce..ade82a0f7 100644 --- a/lib/shared/addon/components/svg-gradients/component.js +++ b/lib/shared/addon/components/svg-gradients/component.js @@ -1,4 +1,5 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; export const GRADIENT_COLORS = { 'cpu': ['#2ECC71', '#DBE8B1'], @@ -7,7 +8,8 @@ export const GRADIENT_COLORS = { 'storage': ['#3A6F81', '#ABCED3'], }; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: '', didInsertElement() { var svg = d3.select('body').append('svg:svg') diff --git a/lib/shared/addon/components/svg-service-container/component.js b/lib/shared/addon/components/svg-service-container/component.js index e3aa4a790..e43d30a85 100644 --- a/lib/shared/addon/components/svg-service-container/component.js +++ b/lib/shared/addon/components/svg-service-container/component.js @@ -1,7 +1,11 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ - resourceActions: Ember.inject.service('resource-actions'), +export default Component.extend({ + layout, + resourceActions: service('resource-actions'), node: null, @@ -14,14 +18,14 @@ export default Ember.Component.extend({ actions: { showDropDown: function() { - this.get('resourceActions').show(this.get('node.service'), Ember.$('#dropdown-toggler'), this.$()); + this.get('resourceActions').show(this.get('node.service'), $('#dropdown-toggler'), this.$()); }, }, click: function(e) { var target = e.target; - if ( Ember.$(target).closest('action-menu').length === 0 ) + if ( $(target).closest('action-menu').length === 0 ) { this.sendAction('action', this.get('node.service')); } @@ -30,11 +34,11 @@ export default Ember.Component.extend({ e.stopPropagation(); }, - transform: Ember.computed('node.{x,y}', function() { + transform: computed('node.{x,y}', function() { return `translate(${this.get('node.x')},${this.get('node.y')})`; }), - containerCount: Ember.computed('node.service.instances', function() { + containerCount: computed('node.service.instances', function() { if (this.get('node.service.instances')) { return this.get('node.service.instances').length; } else { diff --git a/lib/shared/addon/components/svg-service-graph/component.js b/lib/shared/addon/components/svg-service-graph/component.js index 53a3cf28e..120af8e28 100644 --- a/lib/shared/addon/components/svg-service-graph/component.js +++ b/lib/shared/addon/components/svg-service-graph/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, services: null, tagName: 'svg', @@ -17,7 +20,7 @@ export default Ember.Component.extend({ }, }, - nodes: Ember.computed('services.[]', function() { + nodes: computed('services.[]', function() { return this.get('services').map((service, index) => { return { x: 100 + 300*(index%3), @@ -31,7 +34,7 @@ export default Ember.Component.extend({ }); }), - paths: Ember.computed('services.[]', function() { + paths: computed('services.[]', function() { return this.get('services').map(() => { return { m: [100, 150], diff --git a/lib/shared/addon/components/textarea-autogrow/component.js b/lib/shared/addon/components/textarea-autogrow/component.js index 0a1ffaae0..2769de300 100644 --- a/lib/shared/addon/components/textarea-autogrow/component.js +++ b/lib/shared/addon/components/textarea-autogrow/component.js @@ -1,5 +1,4 @@ import TextArea from '@ember/component'; -import layout from './template'; import { inject as service } from '@ember/service' import { run } from '@ember/runloop' @@ -7,7 +6,6 @@ import { isGecko } from 'ui/utils/platform'; import IntlPlaceholder from 'shared/mixins/intl-placeholder'; export default TextArea.extend(IntlPlaceholder, { - layout, intl: service(), minHeight: 0, diff --git a/lib/shared/addon/components/tooltip-action-menu/component.js b/lib/shared/addon/components/tooltip-action-menu/component.js index 1771730f1..e857e576d 100644 --- a/lib/shared/addon/components/tooltip-action-menu/component.js +++ b/lib/shared/addon/components/tooltip-action-menu/component.js @@ -1,12 +1,16 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import Tooltip from 'shared/mixins/tooltip'; import StrippedName from 'shared/mixins/stripped-name'; +import layout from './template'; -export default Ember.Component.extend(Tooltip, StrippedName, { - resourceActions: Ember.inject.service('resource-actions'), +export default Component.extend(Tooltip, StrippedName, { + layout, + resourceActions: service('resource-actions'), needs: ['application'], - model: Ember.computed.alias('tooltipService.tooltipOpts.model'), - actionsOpen: Ember.computed.alias('resourceActions.open'), + model: alias('tooltipService.tooltipOpts.model'), + actionsOpen: alias('resourceActions.open'), inTooltip: false, layoutName: 'tooltip-action-menu', diff --git a/lib/shared/addon/components/tooltip-basic/component.js b/lib/shared/addon/components/tooltip-basic/component.js index 36d8e809a..b7ad50a64 100644 --- a/lib/shared/addon/components/tooltip-basic/component.js +++ b/lib/shared/addon/components/tooltip-basic/component.js @@ -1,12 +1,16 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { oneWay } from '@ember/object/computed'; +import Component from '@ember/component'; import Tooltip from 'shared/mixins/tooltip'; +import layout from './template'; -export default Ember.Component.extend(Tooltip, { +export default Component.extend(Tooltip, { + layout, needs : ['application'], - model : Ember.computed.oneWay('tooltipService.tooltipOpts.model'), + model : oneWay('tooltipService.tooltipOpts.model'), display : null, - selectPartial: Ember.computed('tooltipService.tooltipOpts.template', function() { + selectPartial: computed('tooltipService.tooltipOpts.template', function() { return this.get('tooltipService.tooltipOpts.template') || 'tooltip-basic'; }) diff --git a/lib/shared/addon/components/tooltip-element/component.js b/lib/shared/addon/components/tooltip-element/component.js index 2b3a6894c..f0a609acf 100644 --- a/lib/shared/addon/components/tooltip-element/component.js +++ b/lib/shared/addon/components/tooltip-element/component.js @@ -1,11 +1,17 @@ -import Ember from 'ember'; +import { later, cancel, next } from '@ember/runloop'; +import $ from 'jquery'; +import { observer } from '@ember/object'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; +import layout from './template'; const DELAY = 100; -export default Ember.Component.extend({ +export default Component.extend({ + layout, classNameBindings : ['inlineBlock:vertical-middle','clip:clip'], tagName: 'span', - tooltipService : Ember.inject.service('tooltip'), + tooltipService : service('tooltip'), inlineBlock : false, clip : false, model : null, @@ -16,14 +22,14 @@ export default Ember.Component.extend({ showTimer : null, - textChanged: Ember.observer('textChangedEvent', function() { + textChanged: observer('textChangedEvent', function() { this.show(this.get('textChangedEvent')); }), mouseEnter(evt) { if ( !this.get('tooltipService.requireClick') ) { - let tgt = Ember.$(evt.currentTarget); + let tgt = $(evt.currentTarget); if (this.get('tooltipService.tooltipOpts')) { this.set('tooltipService.tooltipOpts', null); @@ -33,7 +39,7 @@ export default Ember.Component.extend({ // Wait for a little bit of time so that the mouse can pass through // another tooltip-element on the way to the dropdown trigger of a // tooltip-action-menu without changing the tooltip. - this.set('showTimer', Ember.run.later(() => { + this.set('showTimer', later(() => { this.show(tgt); }, DELAY)); } @@ -71,7 +77,7 @@ export default Ember.Component.extend({ mouseLeave: function() { if (!this.get('tooltipService.openedViaContextClick')) { if ( this.get('showTimer') ) { - Ember.run.cancel(this.get('showTimer')); + cancel(this.get('showTimer')); } else { this.get('tooltipService').leave(); @@ -79,10 +85,10 @@ export default Ember.Component.extend({ } }, - modelObserver: Ember.observer('model', 'textChangedEvent', function() { + modelObserver: observer('model', 'textChangedEvent', function() { let opts = this.get('tooltipService.tooltipOpts'); if ((opts) && this.get('tooltipFor') === opts.tooltipFor ) { - Ember.run.next(() => { + next(() => { this.set('tooltipService.tooltipOpts.model', this.get('model')); }); } diff --git a/lib/shared/addon/components/tooltip-warning/component.js b/lib/shared/addon/components/tooltip-warning/component.js index 70b1a4370..a029718a8 100644 --- a/lib/shared/addon/components/tooltip-warning/component.js +++ b/lib/shared/addon/components/tooltip-warning/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import Tooltip from 'shared/mixins/tooltip'; import C from 'ui/utils/constants'; +import layout from './template'; -export default Ember.Component.extend(Tooltip, { - prefs: Ember.inject.service(), +export default Component.extend(Tooltip, { + layout, + prefs: service(), classNames: ['tooltip-warning-container'], actions: { hideAccessWarning: function() { diff --git a/lib/shared/addon/components/top-errors/component.js b/lib/shared/addon/components/top-errors/component.js index 664003958..cc3e6efef 100644 --- a/lib/shared/addon/components/top-errors/component.js +++ b/lib/shared/addon/components/top-errors/component.js @@ -1,6 +1,9 @@ -import Ember from 'ember'; +import { later } from '@ember/runloop'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, errors: null, classNames: ['banner','bg-error'], @@ -9,7 +12,7 @@ export default Ember.Component.extend({ errorsDidChange: function() { if ( this.get('errors.length') ) { - Ember.run.later(() => { + later(() => { this.$().scrollIntoView(); },100); } diff --git a/lib/shared/addon/components/upgrade-btn/component.js b/lib/shared/addon/components/upgrade-btn/component.js index ef80263f7..4fd1239cc 100644 --- a/lib/shared/addon/components/upgrade-btn/component.js +++ b/lib/shared/addon/components/upgrade-btn/component.js @@ -1,12 +1,15 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; import UpgradeComponent from 'shared/mixins/upgrade-component'; +import layout from './template'; -export default Ember.Component.extend(UpgradeComponent, { +export default Component.extend(UpgradeComponent, { + layout, tagName : 'button', classNames : ['btn'], classNameBindings : ['color','pad'], - pad: Ember.computed('color', function() { + pad: computed('color', function() { if ( this.get('color') === 'bg-transparent' ) { return 'p-0'; } diff --git a/lib/shared/addon/components/upgrade-dropdown/component.js b/lib/shared/addon/components/upgrade-dropdown/component.js index 4713bc576..250979f57 100644 --- a/lib/shared/addon/components/upgrade-dropdown/component.js +++ b/lib/shared/addon/components/upgrade-dropdown/component.js @@ -1,11 +1,15 @@ -import Ember from 'ember'; +import { once } from '@ember/runloop'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; import UpgradeComponent from 'shared/mixins/upgrade-component'; import { parseExternalId } from 'ui/utils/parse-externalid'; +import layout from './template'; const CURRENT = 'current', AVAILABLE = 'available'; -export default Ember.Component.extend(UpgradeComponent, { +export default Component.extend(UpgradeComponent, { + layout, // See mixin for other inputs currentId: null, @@ -23,7 +27,7 @@ export default Ember.Component.extend(UpgradeComponent, { }, // @TODO hacky hacky mchackerson... - currentVersion: Ember.computed('allVersions','currentId', function() { + currentVersion: computed('allVersions','currentId', function() { let parsed = parseExternalId(this.get('currentId')); let versions = this.get('allVersions'); @@ -37,10 +41,10 @@ export default Ember.Component.extend(UpgradeComponent, { }), currentVersionChanged: function() { - Ember.run.once(this, 'updateStatus'); + once(this, 'updateStatus'); }.observes('currentId'), - showDropdown: Ember.computed('upgradeStatus', function() { + showDropdown: computed('upgradeStatus', function() { return [AVAILABLE,CURRENT].indexOf(this.get('upgradeStatus')) >= 0; }), }); diff --git a/lib/shared/addon/components/view-edit-project/component.js b/lib/shared/addon/components/view-edit-project/component.js index 81aef1062..cb50ec554 100644 --- a/lib/shared/addon/components/view-edit-project/component.js +++ b/lib/shared/addon/components/view-edit-project/component.js @@ -1,12 +1,17 @@ -import Ember from 'ember'; +import { resolve } from 'rsvp'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Component from '@ember/component'; import C from 'ui/utils/constants'; import NewOrEdit from 'shared/mixins/new-or-edit'; +import layout from './template'; -export default Ember.Component.extend(NewOrEdit, { - projects: Ember.inject.service(), - access: Ember.inject.service(), - growl: Ember.inject.service(), - accessEnabled: Ember.computed.alias('access.enabled'), +export default Component.extend(NewOrEdit, { + layout, + projects: service(), + access: service(), + growl: service(), + accessEnabled: alias('access.enabled'), queryParams: ['editing'], project: null, @@ -15,7 +20,7 @@ export default Ember.Component.extend(NewOrEdit, { policyManager: null, editing: false, tab: 'access', - primaryResource: Ember.computed.alias('project'), + primaryResource: alias('project'), sortBy: 'name', headers: [ @@ -155,7 +160,7 @@ export default Ember.Component.extend(NewOrEdit, { }, doSave() { - let setMembers = Ember.RSVP.resolve(); + let setMembers = resolve(); if ( this.get('editing') ) { if ( this.get('access.enabled') ) diff --git a/lib/shared/addon/components/volume-row/component.js b/lib/shared/addon/components/volume-row/component.js index 1e25a90e1..db4933965 100644 --- a/lib/shared/addon/components/volume-row/component.js +++ b/lib/shared/addon/components/volume-row/component.js @@ -1,5 +1,5 @@ import Component from '@ember/component'; -import layout from './template.hbs' +import layout from './template' import { volumes as VolumeHeaders } from 'shared/headers'; import { inject as service } from '@ember/service' diff --git a/lib/shared/addon/components/webhook/new-receiver/component.js b/lib/shared/addon/components/webhook/new-receiver/component.js index a6bd738ec..e6579379f 100644 --- a/lib/shared/addon/components/webhook/new-receiver/component.js +++ b/lib/shared/addon/components/webhook/new-receiver/component.js @@ -1,9 +1,12 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; import NewOrEdit from 'shared/mixins/new-or-edit'; +import layout from './template'; const DRIVERS = ['scaleService','scaleHost','serviceUpgrade']; -export default Ember.Component.extend(NewOrEdit, { +export default Component.extend(NewOrEdit, { + layout, model: null, init() { @@ -71,7 +74,7 @@ export default Ember.Component.extend(NewOrEdit, { {label: 'hookPage.scaleHost.label', value: 'scaleHost'}, {label: 'hookPage.serviceUpgrade.label', value: 'serviceUpgrade'}, ], - kind: Ember.computed({ + kind: computed({ set(key, value) { let driver = value; this.swapConfig(driver); diff --git a/lib/shared/addon/components/webhook/scale-host-config/component.js b/lib/shared/addon/components/webhook/scale-host-config/component.js index 407eaed40..5ba45ac19 100644 --- a/lib/shared/addon/components/webhook/scale-host-config/component.js +++ b/lib/shared/addon/components/webhook/scale-host-config/component.js @@ -1,8 +1,11 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: '', - hostTemplateChoices: Ember.computed('hostTemplates', function() { + hostTemplateChoices: computed('hostTemplates', function() { return this.get('hostTemplates').map((tmpl) => { return {label: tmpl.get('name'), value: tmpl.get('id')}; }) diff --git a/lib/shared/addon/components/webhook/scale-service-config/component.js b/lib/shared/addon/components/webhook/scale-service-config/component.js index e3ac4fb5c..24a0cb09d 100644 --- a/lib/shared/addon/components/webhook/scale-service-config/component.js +++ b/lib/shared/addon/components/webhook/scale-service-config/component.js @@ -1,5 +1,7 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: '', }); diff --git a/lib/shared/addon/components/webhook/service-upgrade-config/component.js b/lib/shared/addon/components/webhook/service-upgrade-config/component.js index 4a52faaf2..6581f0233 100644 --- a/lib/shared/addon/components/webhook/service-upgrade-config/component.js +++ b/lib/shared/addon/components/webhook/service-upgrade-config/component.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import Component from '@ember/component'; +import layout from './template'; -export default Ember.Component.extend({ +export default Component.extend({ + layout, tagName: '', payloadFormatChoices: null, diff --git a/lib/shared/addon/cookies/service.js b/lib/shared/addon/cookies/service.js index 2e842d217..b63ae4044 100644 --- a/lib/shared/addon/cookies/service.js +++ b/lib/shared/addon/cookies/service.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Service from '@ember/service'; function parseValue(value) { if ( value.charAt(0) === '"' ) @@ -35,7 +35,7 @@ function getAll() { return ret; } -export default Ember.Service.extend({ +export default Service.extend({ unknownProperty: function(key) { let all = getAll(); return all[key] || null; diff --git a/lib/shared/addon/endpoint/service.js b/lib/shared/addon/endpoint/service.js index 0dce10454..54367fac2 100644 --- a/lib/shared/addon/endpoint/service.js +++ b/lib/shared/addon/endpoint/service.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; -export default Ember.Service.extend({ - cookies: Ember.inject.service(), - 'tab-session': Ember.inject.service('tab-session'), - settings: Ember.inject.service(), +export default Service.extend({ + cookies: service(), + 'tab-session': service('tab-session'), + settings: service(), absolute: function() { let setting = this.get(`settings.${C.SETTING.API_HOST}`); diff --git a/lib/shared/addon/github/service.js b/lib/shared/addon/github/service.js index d9eaafd14..b580238ef 100644 --- a/lib/shared/addon/github/service.js +++ b/lib/shared/addon/github/service.js @@ -1,12 +1,13 @@ -import Ember from 'ember'; +import { Promise as EmberPromise } from 'rsvp'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; import Util from 'shared/utils/util'; -export default Ember.Service.extend({ - access: Ember.inject.service(), - cookies : Ember.inject.service(), - session : Ember.inject.service(), - userStore: Ember.inject.service(), +export default Service.extend({ + access: service(), + cookies : service(), + session : service(), + userStore: service(), // Set by app/services/access hostname : null, @@ -20,7 +21,7 @@ export default Ember.Service.extend({ }, getToken: function() { - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { this.get('userStore').rawRequest({ url: 'token', }) diff --git a/lib/shared/addon/growl/service.js b/lib/shared/addon/growl/service.js index 91ce4743d..9dfc1abe6 100644 --- a/lib/shared/addon/growl/service.js +++ b/lib/shared/addon/growl/service.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import Service from '@ember/service'; // @@TODO@@ - 10-27-17 - move errors to addon import Errors from 'ui/utils/errors'; -export default Ember.Service.extend({ +export default Service.extend({ init: function() { $.jGrowl.defaults.pool = 6; $.jGrowl.defaults.closeTemplate = ''; diff --git a/lib/shared/addon/helpers/array-includes.js b/lib/shared/addon/helpers/array-includes.js index 22e6ede90..979755afe 100644 --- a/lib/shared/addon/helpers/array-includes.js +++ b/lib/shared/addon/helpers/array-includes.js @@ -1,5 +1,5 @@ import Helper from '@ember/component/helper'; -import {observer} from '@ember/object' +import { observer } from '@ember/object' import { A as EmberA } from '@ember/array'; export default Helper.extend({ diff --git a/lib/shared/addon/helpers/date-from-now.js b/lib/shared/addon/helpers/date-from-now.js index f8df079f4..330e51f11 100644 --- a/lib/shared/addon/helpers/date-from-now.js +++ b/lib/shared/addon/helpers/date-from-now.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function dateFromNow(params) { return moment(params[0]).fromNow(); } -export default Ember.Helper.helper(dateFromNow); +export default helper(dateFromNow); diff --git a/lib/shared/addon/helpers/date-recent.js b/lib/shared/addon/helpers/date-recent.js index 42cfca87a..d92eefc91 100644 --- a/lib/shared/addon/helpers/date-recent.js +++ b/lib/shared/addon/helpers/date-recent.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function dateCalendar(params) { let date = moment(params[0]); @@ -13,4 +13,4 @@ export function dateCalendar(params) { } } -export default Ember.Helper.helper(dateCalendar); +export default helper(dateCalendar); diff --git a/lib/shared/addon/helpers/date-str.js b/lib/shared/addon/helpers/date-str.js index 1dbfcb1ad..7bc55aba4 100644 --- a/lib/shared/addon/helpers/date-str.js +++ b/lib/shared/addon/helpers/date-str.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function dateStr(params, options) { var format = 'MMM DD, YYYY hh:mm:ss A'; @@ -10,4 +10,4 @@ export function dateStr(params, options) { return moment(params[0]).format(format); } -export default Ember.Helper.helper(dateStr); +export default helper(dateStr); diff --git a/lib/shared/addon/helpers/default-str.js b/lib/shared/addon/helpers/default-str.js index 6a358ce34..73078378b 100644 --- a/lib/shared/addon/helpers/default-str.js +++ b/lib/shared/addon/helpers/default-str.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function defaultStr(params, options) { var out = null; @@ -17,4 +17,4 @@ export function defaultStr(params, options) { return out; } -export default Ember.Helper.helper(defaultStr); +export default helper(defaultStr); diff --git a/lib/shared/addon/helpers/format-ip.js b/lib/shared/addon/helpers/format-ip.js index 68d5160bd..f96e5a45a 100644 --- a/lib/shared/addon/helpers/format-ip.js +++ b/lib/shared/addon/helpers/format-ip.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Helper from '@ember/component/helper'; -export default Ember.Helper.extend({ - intl: Ember.inject.service(), +export default Helper.extend({ + intl: service(), compute(params, options) { let noIp = options.noIp || 'formatIp.noIp'; diff --git a/lib/shared/addon/helpers/format-mib.js b/lib/shared/addon/helpers/format-mib.js index 1ca3f17a1..993761f3e 100644 --- a/lib/shared/addon/helpers/format-mib.js +++ b/lib/shared/addon/helpers/format-mib.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; import Util from 'ui/utils/util'; export function formatMib(params/*, options*/) { return Util.formatMib(params[0]); } -export default Ember.Helper.helper(formatMib); +export default helper(formatMib); diff --git a/lib/shared/addon/helpers/format-si.js b/lib/shared/addon/helpers/format-si.js index 8f7943e7e..1d71abf4e 100644 --- a/lib/shared/addon/helpers/format-si.js +++ b/lib/shared/addon/helpers/format-si.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; import Util from 'ui/utils/util'; export function formatSi(params, options) { return Util.formatSi(params[0], options.increment, options.suffix, options.firstSuffix, options.startingExponent); } -export default Ember.Helper.helper(formatSi); +export default helper(formatSi); diff --git a/lib/shared/addon/helpers/get-card-class.js b/lib/shared/addon/helpers/get-card-class.js index 10354ffea..563d66352 100644 --- a/lib/shared/addon/helpers/get-card-class.js +++ b/lib/shared/addon/helpers/get-card-class.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; // this list matchse the card types that stripe uses const CARDS = { @@ -14,4 +14,4 @@ export function getCardClass(key/*, hash*/) { return CARDS[key]; } -export default Ember.Helper.helper(getCardClass); +export default helper(getCardClass); diff --git a/lib/shared/addon/helpers/is-last.js b/lib/shared/addon/helpers/is-last.js index 4cf879af0..572939e5d 100644 --- a/lib/shared/addon/helpers/is-last.js +++ b/lib/shared/addon/helpers/is-last.js @@ -1,10 +1,11 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; +import { get } from '@ember/object'; export function isLast(params/*, hash*/) { let ary = params[0]; let idx = params[1]; - return (idx+1) >= Ember.get(ary,'length'); + return (idx+1) >= get(ary,'length'); } -export default Ember.Helper.helper(isLast); +export default helper(isLast); diff --git a/lib/shared/addon/helpers/join-array.js b/lib/shared/addon/helpers/join-array.js index 0caf52075..ef87cbfc0 100644 --- a/lib/shared/addon/helpers/join-array.js +++ b/lib/shared/addon/helpers/join-array.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Helper from '@ember/component/helper'; -export default Ember.Helper.extend({ +export default Helper.extend({ compute(params, options) { let separator = options.separator || ', '; return (params[0]||[]).join(separator); diff --git a/lib/shared/addon/helpers/linkify.js b/lib/shared/addon/helpers/linkify.js index 1d74d63dc..effc372da 100644 --- a/lib/shared/addon/helpers/linkify.js +++ b/lib/shared/addon/helpers/linkify.js @@ -1,5 +1,6 @@ +import { helper } from '@ember/component/helper'; +import { htmlSafe } from '@ember/string'; import Ember from 'ember'; -import urlRegex from 'npm:url-regex'; function convertToLink(match) { let url; @@ -17,7 +18,7 @@ function convertToLink(match) { export function linkify(params) { let content = Ember.Handlebars.Utils.escapeExpression(params[0] || ''); content = content.replace(urlRegex({ strict: false }), convertToLink); - return Ember.String.htmlSafe(content); + return htmlSafe(content); } -export default Ember.Helper.helper(linkify); +export default helper(linkify); diff --git a/lib/shared/addon/helpers/lower-case.js b/lib/shared/addon/helpers/lower-case.js index 6c2382ac0..57cc27a4b 100644 --- a/lib/shared/addon/helpers/lower-case.js +++ b/lib/shared/addon/helpers/lower-case.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function lowerCase(params) { return (params[0]||'').toLowerCase(); } -export default Ember.Helper.helper(lowerCase); +export default helper(lowerCase); diff --git a/lib/shared/addon/helpers/maybe-t.js b/lib/shared/addon/helpers/maybe-t.js index 0243d20b2..1e1446f2d 100644 --- a/lib/shared/addon/helpers/maybe-t.js +++ b/lib/shared/addon/helpers/maybe-t.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Helper from '@ember/component/helper'; -export default Ember.Helper.extend({ - intl: Ember.inject.service(), +export default Helper.extend({ + intl: service(), compute(params) { let key = params[0]; diff --git a/lib/shared/addon/helpers/nl-to-br.js b/lib/shared/addon/helpers/nl-to-br.js index 12f0d5c9f..2700d79e3 100644 --- a/lib/shared/addon/helpers/nl-to-br.js +++ b/lib/shared/addon/helpers/nl-to-br.js @@ -1,8 +1,10 @@ +import { helper } from '@ember/component/helper'; +import { htmlSafe } from '@ember/string'; import Ember from 'ember'; export function nlToBr(params) { var val = Ember.Handlebars.Utils.escapeExpression(params[0]||''); - return new Ember.String.htmlSafe(val.replace(/\n/g,'
\n')); + return new htmlSafe(val.replace(/\n/g,'
\n')); } -export default Ember.Helper.helper(nlToBr); +export default helper(nlToBr); diff --git a/lib/shared/addon/helpers/parse-host-icon.js b/lib/shared/addon/helpers/parse-host-icon.js index 79a558bb5..a2621edc3 100644 --- a/lib/shared/addon/helpers/parse-host-icon.js +++ b/lib/shared/addon/helpers/parse-host-icon.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; import { builtInUi } from 'ui/models/machinedriver'; export function parseHostIcon(params/*, hash*/) { @@ -11,4 +11,4 @@ export function parseHostIcon(params/*, hash*/) { } } -export default Ember.Helper.helper(parseHostIcon); +export default helper(parseHostIcon); diff --git a/lib/shared/addon/helpers/run-time.js b/lib/shared/addon/helpers/run-time.js index 47625b10e..93ed22479 100644 --- a/lib/shared/addon/helpers/run-time.js +++ b/lib/shared/addon/helpers/run-time.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function runTime(params) { var s = moment(params[0]); @@ -19,4 +19,4 @@ export function runTime(params) { } } -export default Ember.Helper.helper(runTime); +export default helper(runTime); diff --git a/lib/shared/addon/helpers/str-replace.js b/lib/shared/addon/helpers/str-replace.js index c0213b04d..e0d4977a1 100644 --- a/lib/shared/addon/helpers/str-replace.js +++ b/lib/shared/addon/helpers/str-replace.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function strReplace(params, options) { return (params[0]+'').replace(options.match, options.with); } -export default Ember.Helper.helper(strReplace); +export default helper(strReplace); diff --git a/lib/shared/addon/helpers/to-json.js b/lib/shared/addon/helpers/to-json.js index 537b6ea9e..036c36be4 100644 --- a/lib/shared/addon/helpers/to-json.js +++ b/lib/shared/addon/helpers/to-json.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Helper from '@ember/component/helper'; -export default Ember.Helper.extend({ +export default Helper.extend({ compute(params/*, options*/) { return JSON.stringify(params[0]); }, diff --git a/lib/shared/addon/helpers/uc-first.js b/lib/shared/addon/helpers/uc-first.js index 662f90cd8..6175425d0 100644 --- a/lib/shared/addon/helpers/uc-first.js +++ b/lib/shared/addon/helpers/uc-first.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; import Util from 'ui/utils/util'; export function ucFirst(params) { return Util.ucFirst(params[0]); } -export default Ember.Helper.helper(ucFirst); +export default helper(ucFirst); diff --git a/lib/shared/addon/helpers/upper-case.js b/lib/shared/addon/helpers/upper-case.js index c790ef29f..9bc0914eb 100644 --- a/lib/shared/addon/helpers/upper-case.js +++ b/lib/shared/addon/helpers/upper-case.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import { helper } from '@ember/component/helper'; export function upperCase(params) { return (params[0]||'').toUpperCase(); } -export default Ember.Helper.helper(upperCase); +export default helper(upperCase); diff --git a/lib/shared/addon/host/service.js b/lib/shared/addon/host/service.js index d12edbe43..8afb86a1d 100644 --- a/lib/shared/addon/host/service.js +++ b/lib/shared/addon/host/service.js @@ -1,4 +1,12 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { + resolve, + all, + reject, + hash, + Promise as EmberPromise +} from 'rsvp'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; import Util from 'ui/utils/util'; @@ -15,11 +23,11 @@ function proxifyUrl(url, proxyBase) { } } -export default Ember.Service.extend({ - userStore: Ember.inject.service('user-store'), - access : Ember.inject.service(), - projects : Ember.inject.service(), - settings : Ember.inject.service(), +export default Service.extend({ + userStore: service('user-store'), + access : service(), + projects : service(), + settings : service(), machineDrivers: null, defaultDriver: '', @@ -36,14 +44,14 @@ export default Ember.Service.extend({ promises.push(us.find('schema', schemaName).then(() => { drivers.push(driver); }).catch(() => { - return Ember.RSVP.resolve(); + return resolve(); })); }); - return Ember.RSVP.all(promises); + return all(promises); }).then(() => { this.set('machineDrivers', drivers); - return Ember.RSVP.resolve(drivers); + return resolve(drivers); }); }, @@ -60,7 +68,7 @@ export default Ember.Service.extend({ } return hostOut; }).catch(() => { - return Ember.RSVP.reject({type: 'error', message: 'Failed to retrieve cloned model'}) ; + return reject({type: 'error', message: 'Failed to retrieve cloned model'}); }); }, @@ -84,22 +92,22 @@ export default Ember.Service.extend({ return !!settings.get(C.SETTING.API_HOST); }); } else { - promises.apiHostSet = Ember.RSVP.resolve(true); + promises.apiHostSet = resolve(true); } - return Ember.RSVP.hash(promises).then((hash) => { + return hash(promises).then((hash) => { hash.availableDrivers = this.get('machineDrivers'); if ( this.get('projects.current.isWindows') ) { hash.availableDrivers = []; } - return Ember.Object.create(hash); + return EmberObject.create(hash); }); }, // Loads the custom UI CSS/JS for drivers that have a uiUrl, loadCustomUi() { - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { let completed = 0, expected = 0; let timer = null; diff --git a/lib/shared/addon/k8s/service.js b/lib/shared/addon/k8s/service.js index 65246332d..a3016151d 100644 --- a/lib/shared/addon/k8s/service.js +++ b/lib/shared/addon/k8s/service.js @@ -1,12 +1,14 @@ -import Ember from 'ember'; +import { reject } from 'rsvp'; +import { computed } from '@ember/object'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; -export default Ember.Service.extend({ - store: Ember.inject.service('store'), - userStore: Ember.inject.service('user-store'), - projects: Ember.inject.service(), +export default Service.extend({ + store: service('store'), + userStore: service('user-store'), + projects: service(), - kubernetesDashboard: Ember.computed('projects.current.id','projects.currentCluster.id', function() { + kubernetesDashboard: computed('projects.current.id','projects.currentCluster.id', function() { let url = this.get('app.kubernetesDashboard') .replace(this.get('app.projectToken'), this.get('projects.current.id')) .replace(this.get('app.clusterToken'), this.get('projects.currentCluster.id')); @@ -20,7 +22,7 @@ export default Ember.Service.extend({ let inst; if ( !systemProject ) { - return Ember.RSVP.reject('Unable to locate system environment'); + return reject('Unable to locate system environment'); } return this.get('userStore').rawRequest({ @@ -35,7 +37,7 @@ export default Ember.Service.extend({ if ( inst ) { return this.get('store').createRecord(inst); } else { - return Ember.RSVP.reject('Unable to find running kubectl container'); + return reject('Unable to find running kubectl container'); } }); }, diff --git a/lib/shared/addon/mixins/cattle-polled-resource.js b/lib/shared/addon/mixins/cattle-polled-resource.js index f25e88a03..f13248161 100644 --- a/lib/shared/addon/mixins/cattle-polled-resource.js +++ b/lib/shared/addon/mixins/cattle-polled-resource.js @@ -1,8 +1,8 @@ -import Ember from 'ember'; +import Mixin from '@ember/object/mixin'; import Util from 'ui/utils/util'; import C from 'ui/utils/constants'; -export default Ember.Mixin.create({ +export default Mixin.create({ reservedKeys: ['delayTimer','pollTimer'], replaceWith: function() { diff --git a/lib/shared/addon/mixins/cattle-transitioning-resource.js b/lib/shared/addon/mixins/cattle-transitioning-resource.js index 6c5dd5721..cd123a841 100644 --- a/lib/shared/addon/mixins/cattle-transitioning-resource.js +++ b/lib/shared/addon/mixins/cattle-transitioning-resource.js @@ -1,4 +1,9 @@ -import Ember from 'ember'; +import { reject, Promise as EmberPromise } from 'rsvp'; +import { isArray } from '@ember/array'; +import { computed, set, get } from '@ember/object'; +import { equal, alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; import Util from 'ui/utils/util'; import Resource from 'ember-api-store/models/resource'; import { normalizeType } from 'ember-api-store/utils/normalize'; @@ -50,13 +55,13 @@ const stateColorSortMap = { 'other': 5, }; -export default Ember.Mixin.create({ - endpointSvc: Ember.inject.service('endpoint'), // Some machine drivers have a property called 'endpoint' - cookies: Ember.inject.service(), - growl: Ember.inject.service(), - intl: Ember.inject.service(), +export default Mixin.create({ + endpointSvc: service('endpoint'), // Some machine drivers have a property called 'endpoint' + cookies: service(), + growl: service(), + intl: service(), - modalService: Ember.inject.service('modal'), + modalService: service('modal'), reservedKeys: ['waitInterval','waitTimeout'], state: null, @@ -116,17 +121,17 @@ export default Ember.Mixin.create({ return Util.sortableNumericSuffix(this.get('displayName').toLowerCase()); }.property('displayName'), - isTransitioning: Ember.computed.equal('transitioning','yes'), - isError: Ember.computed.equal('transitioning','error'), - isRemoved: Ember.computed('state', () => { return !C.REMOVEDISH_STATES.includes(this.state); }), - isPurged: Ember.computed.equal('state','purged'), - isActive: Ember.computed.equal('state','active'), + isTransitioning: equal('transitioning','yes'), + isError: equal('transitioning','error'), + isRemoved: computed('state', () => { return !C.REMOVEDISH_STATES.includes(this.state); }), + isPurged: equal('state','purged'), + isActive: equal('state','active'), relevantState: function() { return this.get('combinedState') || this.get('state'); }.property('combinedState','state'), - displayState: Ember.computed.alias('_displayState'), + displayState: alias('_displayState'), _displayState: function() { var state = this.get('relevantState')||''; return state.split(/-/).map((word) => { @@ -239,7 +244,7 @@ export default Ember.Mixin.create({ seenObjs = []; } this.eachKeys((val,key) => { - Ember.set(this, key, recurse(val,depth)); + set(this, key, recurse(val,depth)); }, false); return this; @@ -253,7 +258,7 @@ export default Ember.Mixin.create({ { return val.trim(); } - else if ( Ember.isArray(val) ) + else if ( isArray(val) ) { val.beginPropertyChanges(); val.forEach((v, idx) => { @@ -282,7 +287,7 @@ export default Ember.Mixin.create({ // Skip keys with dots in them, like container labels if ( key.indexOf('.') === -1 ) { - Ember.set(val, key, recurse(val[key], depth+1)); + set(val, key, recurse(val[key], depth+1)); } }); return val; @@ -385,9 +390,9 @@ export default Ember.Mixin.create({ } } - var len = (val ? Ember.get(val,'length') : 0); + var len = (val ? get(val,'length') : 0); - if ( field.required && (val === null || (typeof val === 'string' && len === 0) || (Ember.isArray(val) && len === 0) ) ) + if ( field.required && (val === null || (typeof val === 'string' && len === 0) || (isArray(val) && len === 0) ) ) { errors.push(intl.t('validation.required', {key: displayKey})); continue; @@ -494,7 +499,7 @@ export default Ember.Mixin.create({ { return promise.catch((err) => { this.get('growl').fromError(Util.ucFirst(name) + ' Error', err); - return Ember.RSVP.reject(err); + return reject(err); }); } @@ -507,7 +512,7 @@ export default Ember.Mixin.create({ waitInterval: 1000, waitTimeout: 30000, _waitForTestFn: function(testFn, msg) { - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { var timeout = setTimeout(() => { clearInterval(interval); clearTimeout(timeout); diff --git a/lib/shared/addon/mixins/console.js b/lib/shared/addon/mixins/console.js index f41bfd53c..b5203c0bb 100644 --- a/lib/shared/addon/mixins/console.js +++ b/lib/shared/addon/mixins/console.js @@ -1,14 +1,16 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import { inject as controller } from '@ember/controller'; +import Mixin from '@ember/object/mixin'; -export default Ember.Mixin.create({ - application : Ember.inject.controller(), +export default Mixin.create({ + application : controller(), queryParams : ['instanceId', 'kubernetes'], instanceId : null, model : null, bootstrap: function() { if (this.get('application.isPopup')) { - Ember.$('body').css('overflow', 'hidden'); + $('body').css('overflow', 'hidden'); } }.on('init'), diff --git a/lib/shared/addon/mixins/container-choices.js b/lib/shared/addon/mixins/container-choices.js index 584ae0b80..27c5ab3ac 100644 --- a/lib/shared/addon/mixins/container-choices.js +++ b/lib/shared/addon/mixins/container-choices.js @@ -1,10 +1,13 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; +import { equal } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; -export default Ember.Mixin.create({ - intl: Ember.inject.service(), +export default Mixin.create({ + intl: service(), // linksArray, allHosts, instance should be set - isManagedNetwork: Ember.computed.equal('instance.networkMode','managed'), + isManagedNetwork: equal('instance.networkMode','managed'), init() { this.set('allHosts', this.get('store').all('host')); @@ -17,7 +20,7 @@ export default Ember.Mixin.create({ var intl = this.get('intl'); var expectContainerIds = (this.get('linksArray')||[]).map(function(obj) { - return Ember.get(obj,'targetInstanceId'); + return get(obj,'targetInstanceId'); }); this.get('allHosts').map((host) => { diff --git a/lib/shared/addon/mixins/container-spark-stats.js b/lib/shared/addon/mixins/container-spark-stats.js index 10cba7374..9fba7f5ee 100644 --- a/lib/shared/addon/mixins/container-spark-stats.js +++ b/lib/shared/addon/mixins/container-spark-stats.js @@ -1,9 +1,11 @@ -import Ember from 'ember'; +import EmberObject from '@ember/object'; +import { alias } from '@ember/object/computed'; +import Mixin from '@ember/object/mixin'; const MAX_POINTS = 60; -export default Ember.Mixin.create({ - sparkInstances: Ember.computed.alias('model.instances'), +export default Mixin.create({ + sparkInstances: alias('model.instances'), cpuData: null, memoryData: null, @@ -70,7 +72,7 @@ export default Ember.Mixin.create({ // for 1.2+ instancesByExternalId: function() { - var out = Ember.Object.create(); + var out = EmberObject.create(); (this.get('sparkInstances')||[]).forEach((instance) => { let id = instance.get('externalId'); if ( id ) { @@ -82,7 +84,7 @@ export default Ember.Mixin.create({ // for 1.1 instancesById: function() { - var out = Ember.Object.create(); + var out = EmberObject.create(); (this.get('sparkInstances')||[]).forEach((instance) => { let id = instance.get('id'); if ( id ) { @@ -96,7 +98,7 @@ export default Ember.Mixin.create({ var data = this.get(key+'Data'); if ( !data ) { - data = Ember.Object.create(); + data = EmberObject.create(); this.set(key+'Max', 0); this.set(key+'Data', data); } diff --git a/lib/shared/addon/mixins/endpoint-ports.js b/lib/shared/addon/mixins/endpoint-ports.js index bf25e9e42..150dc930b 100644 --- a/lib/shared/addon/mixins/endpoint-ports.js +++ b/lib/shared/addon/mixins/endpoint-ports.js @@ -1,8 +1,10 @@ -import Ember from 'ember'; +import { mapBy } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; import Util from 'ui/utils/util'; -export default Ember.Mixin.create({ - intl: Ember.inject.service(), +export default Mixin.create({ + intl: service(), endpointsMap: function() { var out = {}; @@ -39,7 +41,7 @@ export default Ember.Mixin.create({ return out; }.property('endpointsMap'), - endpointPorts: Ember.computed.mapBy('endpointsByPort','publicPort'), + endpointPorts: mapBy('endpointsByPort','publicPort'), displayEndpoints: function() { let parts = []; diff --git a/lib/shared/addon/mixins/filter-state.js b/lib/shared/addon/mixins/filter-state.js index f3c2ffa85..f964fc700 100644 --- a/lib/shared/addon/mixins/filter-state.js +++ b/lib/shared/addon/mixins/filter-state.js @@ -1,9 +1,10 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; -export default Ember.Mixin.create({ +export default Mixin.create({ filterStates: null, - filterableContent: Ember.computed.alias('model'), + filterableContent: alias('model'), init() { this._super(); diff --git a/lib/shared/addon/mixins/grouped-instances.js b/lib/shared/addon/mixins/grouped-instances.js index ff0edb462..7a4eb951a 100644 --- a/lib/shared/addon/mixins/grouped-instances.js +++ b/lib/shared/addon/mixins/grouped-instances.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; function labelsMatching(ary,key,val) { @@ -8,7 +8,7 @@ function labelsMatching(ary,key,val) { } -export default Ember.Mixin.create({ +export default Mixin.create({ groupedInstances: function() { var groups = []; diff --git a/lib/shared/addon/mixins/host-driver.js b/lib/shared/addon/mixins/host-driver.js index 571c7d15a..d7d4816ad 100644 --- a/lib/shared/addon/mixins/host-driver.js +++ b/lib/shared/addon/mixins/host-driver.js @@ -1,14 +1,20 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { resolve, Promise as EmberPromise } from 'rsvp'; +import { computed } from '@ember/object'; +import { typeOf } from '@ember/utils'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; import Util from 'ui/utils/util'; import NewOrEdit from 'shared/mixins/new-or-edit'; import ManageLabels from 'shared/mixins/manage-labels'; import { addAction } from 'ui/utils/add-view-action'; -export default Ember.Mixin.create(NewOrEdit, ManageLabels, { - intl: Ember.inject.service(), - projects: Ember.inject.service(), - settings: Ember.inject.service(), - router: Ember.inject.service(), +export default Mixin.create(NewOrEdit, ManageLabels, { + intl: service(), + projects: service(), + settings: service(), + router: service(), createDelayMs: 0, showEngineUrl: true, @@ -21,18 +27,18 @@ export default Ember.Mixin.create(NewOrEdit, ManageLabels, { clonedModel: null, useHost: true, hostConfig: null, - labelResource: Ember.computed.alias('model.publicValues'), + labelResource: alias('model.publicValues'), actions: { addLabel: addAction('addLabel', '.key'), cancel() { - if (Ember.typeOf(this.attrs.goBack) === 'function') { + if (typeOf(this.attrs.goBack) === 'function') { this.attrs.goBack(); } }, goBack() { - if (Ember.typeOf(this.attrs.goBack) === 'function') { + if (typeOf(this.attrs.goBack) === 'function') { this.attrs.goBack(); } }, @@ -68,7 +74,7 @@ export default Ember.Mixin.create(NewOrEdit, ManageLabels, { let locationA = ['region']; let locationB = ['zone','availabilityZone','location','datacenter']; let size = ['instanceType','offering','flavor','size']; - this.set('displayLocation', Ember.computed( + this.set('displayLocation', computed( this.driver+'.{'+locationA.join(',')+'}', this.driver+'.{'+locationB.join(',')+'}', function() { @@ -95,7 +101,7 @@ export default Ember.Mixin.create(NewOrEdit, ManageLabels, { return out; })); - this.set('displaySize', Ember.computed(this.driver+'.{'+size.join(',')+'}', function() { + this.set('displaySize', computed(this.driver+'.{'+size.join(',')+'}', function() { let config = this.get(this.get('driver')); for ( let i = 0 ; i < size.length ; i++ ) { let key = size[i]; @@ -109,7 +115,7 @@ export default Ember.Mixin.create(NewOrEdit, ManageLabels, { })); }, - driverSaveAction: Ember.computed('inModal', function() { + driverSaveAction: computed('inModal', function() { if (this.get('inModal')) { return 'passConfigBack'; } else { @@ -211,7 +217,7 @@ export default Ember.Mixin.create(NewOrEdit, ManageLabels, { if ( this.get('primaryResource.type').toLowerCase() === 'hosttemplate' ) { return this._super(...arguments); } else { - return Ember.RSVP.resolve(this.get('primaryResource')); + return resolve(this.get('primaryResource')); } }, @@ -243,11 +249,11 @@ export default Ember.Mixin.create(NewOrEdit, ManageLabels, { tpl.set('hostname', parts.name); return tpl.save(); } else { - return Ember.RSVP.resolve(tpl); + return resolve(tpl); } } else { // Multiple hosts - var promise = new Ember.RSVP.Promise(function(resolve,reject) { + var promise = new EmberPromise(function(resolve,reject) { let hosts = []; for ( let i = parts.start ; i <= parts.end ; i++ ) { @@ -299,7 +305,7 @@ export default Ember.Mixin.create(NewOrEdit, ManageLabels, { didInsertElement() { this._super(); - Ember.run.next(() => { + next(() => { try { let input = this.$('INPUT')[0]; if ( input ) diff --git a/lib/shared/addon/mixins/hover-dropdowns.js b/lib/shared/addon/mixins/hover-dropdowns.js index e06ef3747..c2a5904c6 100644 --- a/lib/shared/addon/mixins/hover-dropdowns.js +++ b/lib/shared/addon/mixins/hover-dropdowns.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { later, cancel } from '@ember/runloop'; +import $ from 'jquery'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; import { positionDropdown } from 'ui/utils/position-dropdown'; @@ -9,23 +11,23 @@ const WINDOW_SM = 694; let timerObj = null; let dropdown = null; -export default Ember.Mixin.create({ +export default Mixin.create({ willRender(){ - if (Ember.$('BODY').hasClass('touch')) { - Ember.run.later(() => { + if ($('BODY').hasClass('touch')) { + later(() => { this.clearHeaderMenus(); }, DROPDOWNCLOSETIMER); } }, didInsertElement: function() { - let $body = Ember.$('BODY'); + let $body = $('BODY'); - if ($body.hasClass('touch') && Ember.$(window).width() <= WINDOW_SM) { + if ($body.hasClass('touch') && $(window).width() <= WINDOW_SM) { // below iphone 6plus vertical width no need for dropdown logic this.$().on('click', () => { if (dropdown) { - Ember.run.later(() => { + later(() => { this.clearHeaderMenus(); }, DROPDOWNCLOSETIMER); } @@ -39,7 +41,7 @@ export default Ember.Mixin.create({ this.$('ul[data-dropdown-id="enviroment"] > li > a').on('touchend', () => { if (dropdown) { - Ember.run.later(() => { + later(() => { this.clearHeaderMenus(); }, DROPDOWNCLOSETIMER); } @@ -52,7 +54,7 @@ export default Ember.Mixin.create({ $body.on('touchend', (e) => { let $el = $(e.target); if ($el.closest('.navbar').length < 1) { - Ember.run.later(() => { + later(() => { this.clearHeaderMenus(); }); } @@ -90,18 +92,18 @@ export default Ember.Mixin.create({ }, touchHandler(e) { - let anchor = Ember.$(e.currentTarget); + let anchor = $(e.currentTarget); - Ember.run.cancel(timerObj); + cancel(timerObj); timerObj = null; if (dropdown) { // dropdown open alread - if (dropdown.data('dropdown-id') !== Ember.$(e.currentTarget).find('ul').data('dropdown-id')) { // not the same dropdown + if (dropdown.data('dropdown-id') !== $(e.currentTarget).find('ul').data('dropdown-id')) { // not the same dropdown this.clearHeaderMenus(); - dropdown = Ember.$(e.currentTarget).siblings('ul'); + dropdown = $(e.currentTarget).siblings('ul'); if (dropdown) { this.showMenu(anchor, dropdown); @@ -109,7 +111,7 @@ export default Ember.Mixin.create({ } } else { // no dropdown open - dropdown = Ember.$(e.currentTarget).siblings('ul'); + dropdown = $(e.currentTarget).siblings('ul'); if (dropdown) { this.showMenu(anchor, dropdown); @@ -118,7 +120,7 @@ export default Ember.Mixin.create({ }, enterHandler(e) { - let anchor = Ember.$(e.currentTarget).find('.dropdown-toggle'); + let anchor = $(e.currentTarget).find('.dropdown-toggle'); let dataTarget = anchor.data('toggle') ? anchor.data('toggle') : null; let findTarget = dataTarget ? `ul[data-dropdown-id ="${dataTarget}"]` : 'ul'; let offset = null; @@ -133,17 +135,17 @@ export default Ember.Mixin.create({ } } - Ember.run.cancel(timerObj); + cancel(timerObj); timerObj = null; if (dropdown) { // dropdown open alread - if (dropdown.data('dropdown-id') !== Ember.$(e.currentTarget).find('ul').data('dropdown-id')) { // not the same dropdown + if (dropdown.data('dropdown-id') !== $(e.currentTarget).find('ul').data('dropdown-id')) { // not the same dropdown this.clearHeaderMenus(); - dropdown = Ember.$(e.currentTarget).find('ul'); + dropdown = $(e.currentTarget).find('ul'); if (dropdown) { this.showMenu(anchor, dropdown, offset); @@ -151,7 +153,7 @@ export default Ember.Mixin.create({ } } else { // no dropdown open - dropdown = Ember.$(e.currentTarget).find(findTarget); + dropdown = $(e.currentTarget).find(findTarget); if (dropdown) { this.showMenu(anchor, dropdown, offset); @@ -161,7 +163,7 @@ export default Ember.Mixin.create({ }, leaveHandler() { - timerObj = Ember.run.later(() => { + timerObj = later(() => { if (dropdown) { @@ -174,7 +176,7 @@ export default Ember.Mixin.create({ }, onClickHandler(e) { - let anchor = Ember.$(e.target).closest('A'); + let anchor = $(e.target).closest('A'); if ( anchor.hasClass('dropdown-toggle') && anchor[0].href.match(/#$/) ) { e.preventDefault(); e.stopPropagation(); @@ -183,7 +185,7 @@ export default Ember.Mixin.create({ timerObj = null; - let collapsedNav = Ember.$('#navbar'); + let collapsedNav = $('#navbar'); if (collapsedNav.hasClass('in')) { collapsedNav.collapse('toggle'); @@ -196,7 +198,7 @@ export default Ember.Mixin.create({ let items = this.get('items'); let currentIndex = 0; - let element = Ember.$(e.currentTarget); + let element = $(e.currentTarget); let dropdownMenu = element.siblings('ul').length ? element.siblings('ul') : element.parent().parent('ul'); // if we're not in the top link we're in the ul links if (dropdownMenu) { @@ -256,7 +258,7 @@ export default Ember.Mixin.create({ }, clearHeaderMenus: function() { - const navbar = Ember.$(PARENT); + const navbar = $(PARENT); dropdown = null; diff --git a/lib/shared/addon/mixins/intl-placeholder.js b/lib/shared/addon/mixins/intl-placeholder.js index 59a445f18..8a0d7e79c 100644 --- a/lib/shared/addon/mixins/intl-placeholder.js +++ b/lib/shared/addon/mixins/intl-placeholder.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; -export default Ember.Mixin.create({ - intl: Ember.inject.service(), +export default Mixin.create({ + intl: service(), attributeBindings: ['i18nPlaceholder:placeholder'], diff --git a/lib/shared/addon/mixins/manage-labels.js b/lib/shared/addon/mixins/manage-labels.js index 828b3846c..7daba9647 100644 --- a/lib/shared/addon/mixins/manage-labels.js +++ b/lib/shared/addon/mixins/manage-labels.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { isArray } from '@ember/array'; +import EmberObject, { set, setProperties } from '@ember/object'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; import { debouncedObserver } from 'ui/utils/debounce'; @@ -56,12 +58,12 @@ function isSoftUser(type,key) { return true; } -export default Ember.Mixin.create({ +export default Mixin.create({ labelArray: null, actions: { addUserLabel() { - this.get('labelArray').pushObject(Ember.Object.create({ + this.get('labelArray').pushObject(EmberObject.create({ type: USER, key: '', value: '', @@ -69,7 +71,7 @@ export default Ember.Mixin.create({ }, addSystemLabel() { - this.get('labelArray').pushObject(Ember.Object.create({ + this.get('labelArray').pushObject(EmberObject.create({ type: SYSTEM, key: '', value: '', @@ -77,7 +79,7 @@ export default Ember.Mixin.create({ }, addAffinityLabel() { - this.get('labelArray').pushObject(Ember.Object.create({ + this.get('labelArray').pushObject(EmberObject.create({ type: AFFINITY, key: C.LABEL.SCHED_HOST_LABEL, value: '', @@ -127,11 +129,11 @@ export default Ember.Mixin.create({ let existing = ary.filterBy('key',key)[0]; if ( existing ) { - Ember.set(existing,'value',val); + set(existing,'value',val); } else { - ary.pushObject(Ember.Object.create({key: key, value: val, type: USER})); + ary.pushObject(EmberObject.create({key: key, value: val, type: USER})); } }); @@ -223,7 +225,7 @@ export default Ember.Mixin.create({ let existing = this.getLabelObj(key); if ( existing ) { if ( existing.get('value') !== value ) { - Ember.setProperties(existing,{ + setProperties(existing,{ value: value, type: type, }); @@ -231,7 +233,7 @@ export default Ember.Mixin.create({ } else { - existing = this.get('labelArray').pushObject(Ember.Object.create({ + existing = this.get('labelArray').pushObject(EmberObject.create({ key: key, value: value, type: type, @@ -259,12 +261,12 @@ export default Ember.Mixin.create({ initLabels: function(obj, onlyOfType, onlyKeys, readonlyKeys) { let out = []; - if ( onlyKeys && !Ember.isArray(onlyKeys) ) + if ( onlyKeys && !isArray(onlyKeys) ) { onlyKeys = [onlyKeys]; } - if ( readonlyKeys && !Ember.isArray(readonlyKeys) ) + if ( readonlyKeys && !isArray(readonlyKeys) ) { readonlyKeys = [readonlyKeys]; } @@ -310,7 +312,7 @@ export default Ember.Mixin.create({ return; } - out.push(Ember.Object.create({ + out.push(EmberObject.create({ key: key, value: obj[key]||'', type: type, diff --git a/lib/shared/addon/mixins/modal-base.js b/lib/shared/addon/mixins/modal-base.js index 9981dcc02..acf0690c2 100644 --- a/lib/shared/addon/mixins/modal-base.js +++ b/lib/shared/addon/mixins/modal-base.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; -export default Ember.Mixin.create({ +export default Mixin.create({ classNames: ['modal-container', 'alert'], - modalService: Ember.inject.service('modal'), - modalOpts: Ember.computed.alias('modalService.modalOpts'), + modalService: service('modal'), + modalOpts: alias('modalService.modalOpts'), // Focus does not want to focus on modal el here, dont know why but // esc wont work if a modal doesnt have a focused element //init() { diff --git a/lib/shared/addon/mixins/new-or-edit.js b/lib/shared/addon/mixins/new-or-edit.js index a1c2b3e6c..a228a536b 100644 --- a/lib/shared/addon/mixins/new-or-edit.js +++ b/lib/shared/addon/mixins/new-or-edit.js @@ -1,13 +1,15 @@ -import Ember from 'ember'; +import { resolve } from 'rsvp'; +import { alias } from '@ember/object/computed'; +import Mixin from '@ember/object/mixin'; import Resource from 'ember-api-store/models/resource'; import Errors from 'ui/utils/errors'; -export default Ember.Mixin.create({ +export default Mixin.create({ originalModel: null, errors: null, editing: true, - primaryResource: Ember.computed.alias('model'), - originalPrimaryResource: Ember.computed.alias('originalModel'), + primaryResource: alias('model'), + originalPrimaryResource: alias('originalModel'), tagName: 'form', // This indirectly disables global navigation shortcut keys @@ -49,7 +51,7 @@ export default Ember.Mixin.create({ save: function(cb) { // Will save can return true/false or a promise - Ember.RSVP.resolve(this.willSave()).then((ok) => { + resolve(this.willSave()).then((ok) => { if ( !ok ) { // Validation or something else said not to save diff --git a/lib/shared/addon/mixins/polled-model.js b/lib/shared/addon/mixins/polled-model.js index 91cabac42..5134ca2e1 100644 --- a/lib/shared/addon/mixins/polled-model.js +++ b/lib/shared/addon/mixins/polled-model.js @@ -1,9 +1,11 @@ -import Ember from 'ember'; +import { cancel, later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; -export default Ember.Mixin.create({ +export default Mixin.create({ pollInterval: 2000, - growl: Ember.inject.service(), + growl: service(), pollTimer: null, @@ -17,8 +19,8 @@ export default Ember.Mixin.create({ }, scheduleTimer() { - Ember.run.cancel(this.get('pollTimer')); - this.set('pollTimer', Ember.run.later(() => { + cancel(this.get('pollTimer')); + this.set('pollTimer', later(() => { let controller = this.controller; let qp = {}; (controller.get('queryParams')||[]).forEach((param) => { @@ -37,7 +39,7 @@ export default Ember.Mixin.create({ }, cancelTimer() { - Ember.run.cancel(this.get('pollTimer')); + cancel(this.get('pollTimer')); // This prevents scheduleTimer from rescheduling if deactivate happened at just the wrong time. this.set('pollTimer', null); } diff --git a/lib/shared/addon/mixins/promise-to-cb.js b/lib/shared/addon/mixins/promise-to-cb.js index b458dfb10..a32f5d074 100644 --- a/lib/shared/addon/mixins/promise-to-cb.js +++ b/lib/shared/addon/mixins/promise-to-cb.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Mixin from '@ember/object/mixin'; -export default Ember.Mixin.create({ +export default Mixin.create({ toCb(name_or_fn, ...args) { return (results, cb) => { if ( typeof results === 'function' ) { diff --git a/lib/shared/addon/mixins/safe-style.js b/lib/shared/addon/mixins/safe-style.js index c2a9e434e..c53c8f50f 100644 --- a/lib/shared/addon/mixins/safe-style.js +++ b/lib/shared/addon/mixins/safe-style.js @@ -1,6 +1,6 @@ -import Ember from 'ember'; +import Mixin from '@ember/object/mixin'; -export default Ember.Mixin.create({ +export default Mixin.create({ safeStyle: null, _safeStyle: function() { if ( this.get('safeStyle') ) diff --git a/lib/shared/addon/mixins/sortable-base.js b/lib/shared/addon/mixins/sortable-base.js index 23ecf1195..d20312673 100644 --- a/lib/shared/addon/mixins/sortable-base.js +++ b/lib/shared/addon/mixins/sortable-base.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; -const { get } = Ember; +import { alias, sort } from '@ember/object/computed'; +import Mixin from '@ember/object/mixin'; +import { get, computed } from '@ember/object'; -export default Ember.Mixin.create({ - sortableContent: Ember.computed.alias('model'), +export default Mixin.create({ + sortableContent: alias('model'), headers: null, preSorts: null, sortBy: null, @@ -32,7 +33,7 @@ export default Ember.Mixin.create({ }, }, - currentSort: Ember.computed('sortBy','headers.@each.{sortBy}','descending', function() { + currentSort: computed('sortBy','headers.@each.{sortBy}','descending', function() { var headers = this.get('headers'); var desc = this.get('descending'); let sort = this.get('preSorts')||[]; @@ -70,5 +71,5 @@ export default Ember.Mixin.create({ return sort; }), - arranged: Ember.computed.sort('sortableContent','currentSort'), + arranged: sort('sortableContent','currentSort'), }); diff --git a/lib/shared/addon/mixins/stack-memory.js b/lib/shared/addon/mixins/stack-memory.js index aa4730f25..123fd02ef 100644 --- a/lib/shared/addon/mixins/stack-memory.js +++ b/lib/shared/addon/mixins/stack-memory.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; -export default Ember.Mixin.create({ - prefs: Ember.inject.service(), +export default Mixin.create({ + prefs: service(), stack: null, init() { this._super(...arguments); diff --git a/lib/shared/addon/mixins/state-counts.js b/lib/shared/addon/mixins/state-counts.js index 93d617b62..8f357ac7a 100644 --- a/lib/shared/addon/mixins/state-counts.js +++ b/lib/shared/addon/mixins/state-counts.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import Mixin from '@ember/object/mixin'; import Util from 'ui/utils/util'; -export default Ember.Mixin.create({ +export default Mixin.create({ // defineStateCounts('arrangedInstances', 'instanceStates', 'instanceCountSort'); defineStateCounts(inputKey, countsProperty, sortProperty) { @@ -10,7 +11,7 @@ export default Ember.Mixin.create({ var rkCln = this.get('reservedKeys').slice(0); rkCln.pushObjects([countsProperty, sortProperty]); this.set('reservedKeys', rkCln); - this.set(countsProperty, Ember.computed(`${inputKey}.@each.displayState`, () => { + this.set(countsProperty, computed(`${inputKey}.@each.displayState`, () => { let byName = []; let byColor = []; let good = 0; @@ -54,7 +55,7 @@ export default Ember.Mixin.create({ }; })); - this.set(sortProperty, Ember.computed(countsProperty, `${inputKey}.[]`, () => { + this.set(sortProperty, computed(countsProperty, `${inputKey}.[]`, () => { let colors = this.get(`${countsProperty}.byColor`); let success = (colors.findBy('bg-success')||{}).count + (colors.findBy('bg-muted')||{}).coun; let error = (colors.findBy('bg-error')||{}).count; diff --git a/lib/shared/addon/mixins/sticky-table-header.js b/lib/shared/addon/mixins/sticky-table-header.js index 2d4ff42d1..1a523a522 100644 --- a/lib/shared/addon/mixins/sticky-table-header.js +++ b/lib/shared/addon/mixins/sticky-table-header.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { throttle } from '@ember/runloop'; +import $ from 'jquery'; +import Mixin from '@ember/object/mixin'; import ThrottledResize from 'shared/mixins/throttled-resize'; const tableProps = { @@ -6,7 +8,7 @@ const tableProps = { fixedHeaderHeight: 40, }; -export default Ember.Mixin.create(ThrottledResize, { +export default Mixin.create(ThrottledResize, { stickyHeader: true, subRow: false, @@ -20,7 +22,7 @@ export default Ember.Mixin.create(ThrottledResize, { this.buildTableWidths(); if (this.get('showHeader')) { - Ember.$(this.element).find('> table > thead > .fixed-header-actions, > table > thead > .fixed-header').css('width', Ember.$(this.element).find('> table').outerWidth()); + $(this.element).find('> table > thead > .fixed-header-actions, > table > thead > .fixed-header').css('width', $(this.element).find('> table').outerWidth()); } if ( !this.get('stickyHeader') ) { @@ -28,12 +30,12 @@ export default Ember.Mixin.create(ThrottledResize, { } this.set('_boundScroll', this._scroll.bind(this)); - Ember.$(window).on('scroll', this.get('_boundScroll')); + $(window).on('scroll', this.get('_boundScroll')); }, _boundScroll: null, _scroll() { - Ember.run.throttle(() => { + throttle(() => { this.updateHeaders(); }, 30); }, @@ -46,7 +48,7 @@ export default Ember.Mixin.create(ThrottledResize, { return; } - Ember.$(window).off('scroll', this.get('_boundScroll')); + $(window).off('scroll', this.get('_boundScroll')); }, onResize() { @@ -55,20 +57,20 @@ export default Ember.Mixin.create(ThrottledResize, { }, buildTableWidths() { - if (Ember.$(this.element).is(':visible')) { - let ths = Ember.$(this.element).find('> table > thead > tr.fixed-header > th'); - let $fixHdr = Ember.$(this.element).find('> table > thead > .fixed-header-actions, > table > thead > .fixed-header'); + if ($(this.element).is(':visible')) { + let ths = $(this.element).find('> table > thead > tr.fixed-header > th'); + let $fixHdr = $(this.element).find('> table > thead > .fixed-header-actions, > table > thead > .fixed-header'); - Ember.$(this.element).find('> table > thead > tr.fixed-header-placeholder > th').each((idx, th) => { - Ember.$(ths[idx]).attr('width', Ember.$(th).outerWidth()); + $(this.element).find('> table > thead > tr.fixed-header-placeholder > th').each((idx, th) => { + $(ths[idx]).attr('width', $(th).outerWidth()); }); if (this.get('showHeader')) { $fixHdr.css({ - 'width': Ember.$(this.element).find('> table').width(), + 'width': $(this.element).find('> table').width(), }); if ($fixHdr.is(':visible')) { - Ember.$(this.element).find('.search-group').show(1, 'linear'); + $(this.element).find('.search-group').show(1, 'linear'); } } } @@ -79,8 +81,8 @@ export default Ember.Mixin.create(ThrottledResize, { return; } - Ember.$(this.element).find('> table > thead > tr.fixed-header > th').each((idx, td) => { - Ember.$(td).removeAttr('width'); + $(this.element).find('> table > thead > tr.fixed-header > th').each((idx, td) => { + $(td).removeAttr('width'); }); }, @@ -89,7 +91,7 @@ export default Ember.Mixin.create(ThrottledResize, { return; } - let elem = Ember.$(this.element); + let elem = $(this.element); let $table = elem.find('> table'); let $actionRow = $table.find('> thead > .fixed-header-actions'); let $fixedHeader = $table.find('> thead > tr.fixed-header'); @@ -120,7 +122,7 @@ export default Ember.Mixin.create(ThrottledResize, { return; } - let elem = Ember.$(this.element); + let elem = $(this.element); let $table = elem.find('> table'); let $actionRow = $table.find('> thead > .fixed-header-actions'); let $fixedHeader = $table.find('> thead > tr.fixed-header'); @@ -148,10 +150,10 @@ export default Ember.Mixin.create(ThrottledResize, { return; } - let elem = Ember.$(this.element); + let elem = $(this.element); let $table = elem.find('> table'); let $floatingHeader = $table.find('> thead > tr.fixed-header'); - let $scrollTop = Ember.$(window).scrollTop(); + let $scrollTop = $(window).scrollTop(); let containerBottom = $table.height() + $table.offset().top; let offset = elem.find('> table > thead > tr').offset().top - parseInt(elem.css('padding-top'),10); diff --git a/lib/shared/addon/mixins/store-tweaks.js b/lib/shared/addon/mixins/store-tweaks.js index 3dc8e50cc..e1b94359d 100644 --- a/lib/shared/addon/mixins/store-tweaks.js +++ b/lib/shared/addon/mixins/store-tweaks.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; -export default Ember.Mixin.create({ - cookies: Ember.inject.service(), +export default Mixin.create({ + cookies: service(), defaultPageSize: -1, removeAfterDelete: false, diff --git a/lib/shared/addon/mixins/stripped-name.js b/lib/shared/addon/mixins/stripped-name.js index b305038f8..a52396347 100644 --- a/lib/shared/addon/mixins/stripped-name.js +++ b/lib/shared/addon/mixins/stripped-name.js @@ -1,7 +1,8 @@ -import Ember from 'ember'; +import { and } from '@ember/object/computed'; +import Mixin from '@ember/object/mixin'; import C from 'ui/utils/constants'; -export default Ember.Mixin.create({ +export default Mixin.create({ stripStack: true, prefixLength: function() { var name = this.get('model.displayName'); @@ -13,7 +14,7 @@ export default Ember.Mixin.create({ return 0; }.property('name'), - showEllipsis: Ember.computed.and('stripStack','prefixLength'), + showEllipsis: and('stripStack','prefixLength'), displayName: function() { var name = this.get('model.displayName')||''; diff --git a/lib/shared/addon/mixins/subscribe.js b/lib/shared/addon/mixins/subscribe.js index 261576754..a30255d55 100644 --- a/lib/shared/addon/mixins/subscribe.js +++ b/lib/shared/addon/mixins/subscribe.js @@ -1,16 +1,18 @@ +import { schedule, cancel, later } from '@ember/runloop'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; +import { get } from '@ember/object'; import Ember from 'ember'; import Socket from 'ui/utils/socket'; import C from 'ui/utils/constants'; import Queue from 'ui/utils/queue'; -const { get } = Ember; - -export default Ember.Mixin.create({ - intl : Ember.inject.service(), - growl : Ember.inject.service(), - k8s : Ember.inject.service(), - projects : Ember.inject.service(), - 'tab-session' : Ember.inject.service(), +export default Mixin.create({ + intl : service(), + growl : service(), + k8s : service(), + projects : service(), + 'tab-session' : service(), subscribeSocket : null, reconnect: true, @@ -31,7 +33,7 @@ export default Ember.Mixin.create({ var socket = Socket.create(); socket.on('message', (event) => { - Ember.run.schedule('actions', this, function() { + schedule('actions', this, function() { // Fail-safe: make sure the message is for this project var currentProject = this.get(`tab-session.${C.TABSESSION.PROJECT}`); var metadata = socket.getMetadata(); @@ -172,7 +174,7 @@ export default Ember.Mixin.create({ this.set('warningShown', false); } - Ember.run.cancel(this.get('disconnectedTimer')); + cancel(this.get('disconnectedTimer')); let msg = 'Subscribe connected ' + this.forStr(); if (tries > 0) @@ -211,7 +213,7 @@ export default Ember.Mixin.create({ const intl = this.get('intl'); this.get('growl').error(intl.t('growl.webSocket.connecting.title'), intl.t('growl.webSocket.connecting.disconnectedWarning')); this.set('warningShown', true); - this.set('disconnectedTimer', Ember.run.later(this, function() { + this.set('disconnectedTimer', later(this, function() { if ( window.navigator.onLine ) { window.location.reload(); } else { diff --git a/lib/shared/addon/mixins/throttled-resize.js b/lib/shared/addon/mixins/throttled-resize.js index 7ddd20aeb..64f0c61b1 100644 --- a/lib/shared/addon/mixins/throttled-resize.js +++ b/lib/shared/addon/mixins/throttled-resize.js @@ -1,6 +1,8 @@ -import Ember from 'ember'; +import { next, throttle, cancel } from '@ember/runloop'; +import $ from 'jquery'; +import Mixin from '@ember/object/mixin'; -export default Ember.Mixin.create({ +export default Mixin.create({ boundResize: null, throttleTimer: null, resizeInterval: 200, @@ -8,13 +10,13 @@ export default Ember.Mixin.create({ init: function() { this._super(...arguments); this.set('boundResize', this.triggerResize.bind(this)); - Ember.$(window).on('resize', this.get('boundResize')); - Ember.$(window).on('focus', this.get('boundResize')); - Ember.run.next(this,'onResize'); + $(window).on('resize', this.get('boundResize')); + $(window).on('focus', this.get('boundResize')); + next(this,'onResize'); }, triggerResize: function() { - var timer = Ember.run.throttle(this, 'onResize', this.get('resizeInterval'), false); + var timer = throttle(this, 'onResize', this.get('resizeInterval'), false); this.set('throttleTimer', timer); }, @@ -23,8 +25,8 @@ export default Ember.Mixin.create({ }, willDestroyElement: function() { - Ember.run.cancel(this.get('throttleTimer')); - Ember.$(window).off('resize', this.get('boundResize')); - Ember.$(window).off('focus', this.get('boundResize')); + cancel(this.get('throttleTimer')); + $(window).off('resize', this.get('boundResize')); + $(window).off('focus', this.get('boundResize')); }, }); diff --git a/lib/shared/addon/mixins/tooltip.js b/lib/shared/addon/mixins/tooltip.js index 537fdd254..06aeec024 100644 --- a/lib/shared/addon/mixins/tooltip.js +++ b/lib/shared/addon/mixins/tooltip.js @@ -1,17 +1,22 @@ -import Ember from 'ember'; +import { scheduleOnce } from '@ember/runloop'; +import { observer } from '@ember/object'; +import { on } from '@ember/object/evented'; +import $ from 'jquery'; +import { inject as service } from '@ember/service'; +import Mixin from '@ember/object/mixin'; import ThrottledResize from 'shared/mixins/throttled-resize'; -export default Ember.Mixin.create(ThrottledResize, { +export default Mixin.create(ThrottledResize, { tooltipContent : null, originalNode : null, - router : Ember.inject.service(), + router : service(), currentRoute : null, - tooltipService : Ember.inject.service('tooltip'), + tooltipService : service('tooltip'), didInsertElement() { - let $el = Ember.$(this.get('element')); + let $el = $(this.get('element')); let markup = `
`; - Ember.$(markup).appendTo($el); + $(markup).appendTo($el); }, mouseEnter: function() { @@ -21,7 +26,7 @@ export default Ember.Mixin.create(ThrottledResize, { this.destroyTooltip(); }, - routeObserver: Ember.on('init', Ember.observer('router.currentRouteName', function() { + routeObserver: on('init', observer('router.currentRouteName', function() { // On init if (!this.get('currentRoute')) { this.set('currentRoute', this.get('router.currentRouteName')); @@ -33,8 +38,8 @@ export default Ember.Mixin.create(ThrottledResize, { } })), - tooltipConstructor: Ember.on('init', Ember.observer('tooltipService.tooltipOpts', function() { - Ember.run.scheduleOnce('afterRender', this, function() { + tooltipConstructor: on('init', observer('tooltipService.tooltipOpts', function() { + scheduleOnce('afterRender', this, function() { if (this.get('tooltipService.tooltipOpts')) { this.constructTooltip(); } @@ -43,9 +48,9 @@ export default Ember.Mixin.create(ThrottledResize, { constructTooltip: function() { let tts = this.get('tooltipService'); - let node = Ember.$(this.element); + let node = $(this.element); let eventPosition = tts.get('tooltipOpts.eventPosition'); - let position = this.positionTooltip(node, Ember.$().extend({}, eventPosition)); + let position = this.positionTooltip(node, $().extend({}, eventPosition)); let css = {visibility: 'visible'}; let classes = position.placement; diff --git a/lib/shared/addon/mixins/upgrade-component.js b/lib/shared/addon/mixins/upgrade-component.js index 40199e45b..ac240a9a3 100644 --- a/lib/shared/addon/mixins/upgrade-component.js +++ b/lib/shared/addon/mixins/upgrade-component.js @@ -1,4 +1,7 @@ -import Ember from 'ember'; +import { once } from '@ember/runloop'; +import { computed } from '@ember/object'; +import Mixin from '@ember/object/mixin'; +import { hash } from 'rsvp'; import C from 'ui/utils/constants'; import { inject as service } from "@ember/service"; @@ -35,7 +38,7 @@ function getUpgradeInfo(task, cb) { deps.fullInfo = obj.get('catalog').fetchTemplate(task.templateId, false); } - Ember.RSVP.hash(deps).then((hash) => { + hash(deps).then((hash) => { if ( obj.isDestroyed || obj.isDestroying ) { return; } @@ -108,7 +111,7 @@ function getUpgradeInfo(task, cb) { }); } -export default Ember.Mixin.create({ +export default Mixin.create({ model : null, upgradeOnly : true, @@ -125,7 +128,7 @@ export default Ember.Mixin.create({ this.updateStatus(); }, - color: Ember.computed('upgradeStatus', function() { + color: computed('upgradeStatus', function() { switch ( this.get('upgradeStatus') ) { case NONE: return 'hide'; @@ -144,7 +147,7 @@ export default Ember.Mixin.create({ } }), - currentVersion: Ember.computed('upgradeInfo','model.externalId', function() { + currentVersion: computed('upgradeInfo','model.externalId', function() { let text = this.get('intl').findTranslationByKey('upgradeBtn.version.current'); let version = this.get('upgradeInfo.version'); if (typeof version === 'string' || typeof version === 'number') { @@ -211,7 +214,7 @@ export default Ember.Mixin.create({ }, externalIdChanged: function() { - Ember.run.once(() => { + once(() => { this.updateStatus(); }); }.observes('model.{externalId,state}'), diff --git a/lib/shared/addon/modal/service.js b/lib/shared/addon/modal/service.js index a38d89a11..501605092 100644 --- a/lib/shared/addon/modal/service.js +++ b/lib/shared/addon/modal/service.js @@ -1,11 +1,13 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import { alias } from '@ember/object/computed'; +import Service from '@ember/service'; -export default Ember.Service.extend({ +export default Service.extend({ modalType: 'generic-modal', modalOpts: null, modalVisible: false, lastScroll: null, - closeWithOutsideClick: Ember.computed.alias('modalOpts.closeWithOutsideClick'), + closeWithOutsideClick: alias('modalOpts.closeWithOutsideClick'), toggleModal: function(type=null, opts=null) { if (opts) { this.set('modalOpts', opts); @@ -16,7 +18,7 @@ export default Ember.Service.extend({ if ( this.get('modalVisible') ) { this.set('modalVisible', false); this.set('modalOpts', null); - Ember.run.next(() => { + next(() => { window.scrollTo(0, this.get('lastScroll')); }); } else { diff --git a/lib/shared/addon/prefs/service.js b/lib/shared/addon/prefs/service.js index cb41a6be1..86d9c8dd8 100644 --- a/lib/shared/addon/prefs/service.js +++ b/lib/shared/addon/prefs/service.js @@ -1,9 +1,11 @@ -import Ember from 'ember'; +import { computed } from '@ember/object'; +import { run } from '@ember/runloop'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; -export default Ember.Service.extend({ - userStore: Ember.inject.service('user-store'), - settings: Ember.inject.service(), +export default Service.extend({ + userStore: service('user-store'), + settings: service(), unremoved: function() { return this.get('userStore').all('userpreference'); @@ -62,7 +64,7 @@ export default Ember.Service.extend({ if ( !obj.get('id') || obj.get('value') !== neu ) { obj.set('value', neu); obj.save().then(() => { - Ember.run(() => { + run(() => { this.notifyPropertyChange(key); }); }); @@ -82,7 +84,7 @@ export default Ember.Service.extend({ this.endPropertyChanges(); }, - tablePerPage: Ember.computed(C.PREFS.TABLE_COUNT, function() { + tablePerPage: computed(C.PREFS.TABLE_COUNT, function() { let out = parseInt(this.get(C.PREFS.TABLE_COUNT),10); if ( !out ) { out = C.TABLES.DEFAULT_COUNT; @@ -91,7 +93,7 @@ export default Ember.Service.extend({ return out; }), - showSystemControl: Ember.computed(C.PREFS.SHOW_SYSTEM,`settings.${C.SETTING.SHOW_SYSTEM}`, function() { + showSystemControl: computed(C.PREFS.SHOW_SYSTEM,`settings.${C.SETTING.SHOW_SYSTEM}`, function() { return false; /* let def = this.get(`settings.${C.SETTING.SHOW_SYSTEM}`); @@ -99,7 +101,7 @@ export default Ember.Service.extend({ */ }), - showSystemResources: Ember.computed(C.PREFS.SHOW_SYSTEM,`settings.${C.SETTING.SHOW_SYSTEM}`, { + showSystemResources: computed(C.PREFS.SHOW_SYSTEM,`settings.${C.SETTING.SHOW_SYSTEM}`, { get() { return true; /* diff --git a/lib/shared/addon/projects/service.js b/lib/shared/addon/projects/service.js index 3777fd49e..8449bf825 100644 --- a/lib/shared/addon/projects/service.js +++ b/lib/shared/addon/projects/service.js @@ -1,20 +1,26 @@ -import Ember from 'ember'; +import { + reject, + resolve, + Promise as EmberPromise +} from 'rsvp'; +import { alias } from '@ember/object/computed'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; let ACTIVEISH = ['active','upgrading']; -export default Ember.Service.extend({ - access: Ember.inject.service(), - 'tab-session': Ember.inject.service('tab-session'), - prefs: Ember.inject.service(), - k8sSvc: Ember.inject.service('k8s'), - userStore: Ember.inject.service('user-store'), - store: Ember.inject.service(), +export default Service.extend({ + access: service(), + 'tab-session': service('tab-session'), + prefs: service(), + k8sSvc: service('k8s'), + userStore: service('user-store'), + store: service(), current: null, all: null, - currentCluster: Ember.computed.alias('current.cluster'), + currentCluster: alias('current.cluster'), active: function() { return this.get('all').filter((project) => { @@ -116,7 +122,7 @@ export default Ember.Service.extend({ function fail() { // Then cry select(null); - return Ember.RSVP.reject(); + return reject(); } }, @@ -127,11 +133,11 @@ export default Ember.Service.extend({ } else { this.set('store.baseUrl', this.get('app.apiEndpoint')); } - return Ember.RSVP.resolve(project); + return resolve(project); }, _activeProjectFromId: function(projectId) { - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { if ( !projectId ) { reject(); diff --git a/lib/shared/addon/resource-actions/service.js b/lib/shared/addon/resource-actions/service.js index 588b487ff..794e56ad1 100644 --- a/lib/shared/addon/resource-actions/service.js +++ b/lib/shared/addon/resource-actions/service.js @@ -1,7 +1,9 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; +import { next } from '@ember/runloop'; +import Service from '@ember/service'; import { positionDropdown } from 'shared/utils/position-dropdown'; -export default Ember.Service.extend({ +export default Service.extend({ model : null, open : false, tooltipActions : null, @@ -44,7 +46,7 @@ export default Ember.Service.extend({ } }); - Ember.run.next(() => { + next(() => { if (this.get('tooltipActions')) { $menu.addClass('tooltip-actions'); @@ -61,7 +63,7 @@ export default Ember.Service.extend({ this.set('open',true); // Delay ensure it works in firefox - Ember.run.next(() => { + next(() => { positionDropdown($menu, trigger, true, offset); $('#resource-actions-first')[0].focus(); $menu.css('visibility','visible'); @@ -87,7 +89,7 @@ export default Ember.Service.extend({ activeActions: function() { let list = (this.get('model.availableActions')||[]).filter(function(act) { - return Ember.get(act,'enabled') !== false || Ember.get(act,'divider'); + return get(act,'enabled') !== false || get(act,'divider'); }); // Remove dividers at the beginning diff --git a/lib/shared/addon/session/service.js b/lib/shared/addon/session/service.js index d09bf0d1a..1aff0d6fd 100644 --- a/lib/shared/addon/session/service.js +++ b/lib/shared/addon/session/service.js @@ -1,9 +1,9 @@ -import Ember from 'ember'; +import Service from '@ember/service'; // @@TODO@@ - 10-27-17 - move to addon import BrowserStore from 'ui/utils/browser-storage'; import C from 'shared/utils/constants'; -export default Ember.Service.extend(BrowserStore, { +export default Service.extend(BrowserStore, { backing: window.localStorage, // Multiple browser windows to the same URL will send 'storage' events diff --git a/lib/shared/addon/settings/service.js b/lib/shared/addon/settings/service.js index e441e2190..b18ff1c0f 100644 --- a/lib/shared/addon/settings/service.js +++ b/lib/shared/addon/settings/service.js @@ -1,4 +1,8 @@ -import Ember from 'ember'; +import { alias } from '@ember/object/computed'; +import { Promise as EmberPromise } from 'rsvp'; +import { isArray } from '@ember/array'; +import Evented from '@ember/object/evented'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; import { minorVersion } from 'ui/utils/parse-version'; @@ -10,12 +14,12 @@ export function denormalizeName(str) { return str.replace(new RegExp('['+C.SETTING.DOT_CHAR+']','g'),'.').toLowerCase(); } -export default Ember.Service.extend(Ember.Evented, { - access: Ember.inject.service(), - cookies: Ember.inject.service(), - projects: Ember.inject.service(), - intl: Ember.inject.service(), - userStore: Ember.inject.service('user-store'), +export default Service.extend(Evented, { + access: service(), + cookies: service(), + projects: service(), + intl: service(), + userStore: service('user-store'), all: null, promiseCount: 0, @@ -96,13 +100,13 @@ export default Ember.Service.extend(Ember.Evented, { }, load(names) { - if ( !Ember.isArray(names) ) { + if ( !isArray(names) ) { names = [names]; } var userStore = this.get('userStore'); - var promise = new Ember.RSVP.Promise((resolve, reject) => { + var promise = new EmberPromise((resolve, reject) => { async.eachLimit(names, 3, function(name, cb) { userStore .find('setting', denormalizeName(name)) @@ -156,13 +160,13 @@ export default Ember.Service.extend(Ember.Evented, { return url; }.property('app.currentRouteName','access.{provider,admin}','cattleVersion','rancherVersion','uiVersion','projects.current.displayOrchestration'), - rancherImage: Ember.computed.alias(`asMap.${C.SETTING.IMAGE_RANCHER}.value`), - rancherVersion: Ember.computed.alias(`asMap.${C.SETTING.VERSION_RANCHER}.value`), - composeVersion: Ember.computed.alias(`asMap.${C.SETTING.VERSION_COMPOSE}.value`), - cattleVersion: Ember.computed.alias(`asMap.${C.SETTING.VERSION_CATTLE}.value`), - cliVersion: Ember.computed.alias(`asMap.${C.SETTING.VERSION_CLI}.value`), - dockerMachineVersion: Ember.computed.alias(`asMap.${C.SETTING.VERSION_MACHINE}.value`), - goMachineVersion: Ember.computed.alias(`asMap.${C.SETTING.VERSION_GMS}.value`), + rancherImage: alias(`asMap.${C.SETTING.IMAGE_RANCHER}.value`), + rancherVersion: alias(`asMap.${C.SETTING.VERSION_RANCHER}.value`), + composeVersion: alias(`asMap.${C.SETTING.VERSION_COMPOSE}.value`), + cattleVersion: alias(`asMap.${C.SETTING.VERSION_CATTLE}.value`), + cliVersion: alias(`asMap.${C.SETTING.VERSION_CLI}.value`), + dockerMachineVersion: alias(`asMap.${C.SETTING.VERSION_MACHINE}.value`), + goMachineVersion: alias(`asMap.${C.SETTING.VERSION_GMS}.value`), _plValue: function() { return this.get(`cookies.${C.COOKIE.PL}`) || ''; @@ -193,7 +197,7 @@ export default Ember.Service.extend(Ember.Evented, { } }.property('isRancher','_plValue'), - minDockerVersion: Ember.computed.alias(`asMap.${C.SETTING.MIN_DOCKER}.value`), + minDockerVersion: alias(`asMap.${C.SETTING.MIN_DOCKER}.value`), minorVersion: function() { let version = this.get('rancherVersion'); diff --git a/lib/shared/addon/shibboleth-auth/service.js b/lib/shared/addon/shibboleth-auth/service.js index e46a7ff77..d95ab7c4a 100644 --- a/lib/shared/addon/shibboleth-auth/service.js +++ b/lib/shared/addon/shibboleth-auth/service.js @@ -1,14 +1,16 @@ -import Ember from 'ember'; +import { Promise as EmberPromise } from 'rsvp'; +import { observer } from '@ember/object'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; import Util from 'shared/utils/util'; import { denormalizeName } from 'shared/settings/service'; -export default Ember.Service.extend({ - userStore: Ember.inject.service('user-store'), - session: Ember.inject.service(), - access: Ember.inject.service(), +export default Service.extend({ + userStore: service('user-store'), + session: service(), + access: service(), hasToken: null, - parseIdentity: Ember.observer('hasToken', function() { + parseIdentity: observer('hasToken', function() { let locToken = this.get('hasToken'); if (locToken) { let userIdent = locToken.userIdentity; @@ -16,7 +18,7 @@ export default Ember.Service.extend({ } }), getToken: function() { - return new Ember.RSVP.Promise((resolve, reject) => { + return new EmberPromise((resolve, reject) => { this.get('userStore').rawRequest({ url: 'token', }) diff --git a/lib/shared/addon/store-reset/service.js b/lib/shared/addon/store-reset/service.js index bd35ec13e..2c7caf8d4 100644 --- a/lib/shared/addon/store-reset/service.js +++ b/lib/shared/addon/store-reset/service.js @@ -1,10 +1,10 @@ -import Ember from 'ember'; +import Service, { inject as service } from '@ember/service'; -export default Ember.Service.extend({ - store: Ember.inject.service(), - userStore: Ember.inject.service('user-store'), - webhookStore: Ember.inject.service('webhook-store'), - catalog: Ember.inject.service(), +export default Service.extend({ + store: service(), + userStore: service('user-store'), + webhookStore: service('webhook-store'), + catalog: service(), reset: function() { // Forget all the things diff --git a/lib/shared/addon/tab-session/service.js b/lib/shared/addon/tab-session/service.js index 3b6331833..8bfcd565a 100644 --- a/lib/shared/addon/tab-session/service.js +++ b/lib/shared/addon/tab-session/service.js @@ -1,7 +1,7 @@ -import Ember from 'ember'; +import Service from '@ember/service'; // @@TODO@@ - 10-27-17 - move to addon import BrowserStore from 'ui/utils/browser-storage'; -export default Ember.Service.extend(BrowserStore, { +export default Service.extend(BrowserStore, { backing: window.sessionStorage, }); diff --git a/lib/shared/addon/tooltip/service.js b/lib/shared/addon/tooltip/service.js index df87507df..cafc5a2b1 100644 --- a/lib/shared/addon/tooltip/service.js +++ b/lib/shared/addon/tooltip/service.js @@ -1,21 +1,22 @@ -import Ember from 'ember'; +import { later, cancel } from '@ember/runloop'; +import Service from '@ember/service'; const DELAY = 250; -export default Ember.Service.extend({ +export default Service.extend({ mouseLeaveTimer: null, requireClick: false, tooltipOpts: null, openedViaContextClick: false, startTimer() { - this.set('mouseLeaveTimer', Ember.run.later(() => { + this.set('mouseLeaveTimer', later(() => { this.hide(); }, DELAY)); }, cancelTimer() { - Ember.run.cancel(this.get('mouseLeaveTimer')); + cancel(this.get('mouseLeaveTimer')); }, hide() { diff --git a/lib/shared/addon/user-language/service.js b/lib/shared/addon/user-language/service.js index a9cf6539f..b635cd4f5 100644 --- a/lib/shared/addon/user-language/service.js +++ b/lib/shared/addon/user-language/service.js @@ -1,4 +1,6 @@ -import Ember from 'ember'; +import { resolve } from 'rsvp'; +import { alias } from '@ember/object/computed'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; import { ajaxPromise } from 'ember-api-store/utils/ajax-promise'; // @@TODO@@ - 10-27-17 - move to addon @@ -6,14 +8,14 @@ import { loadScript } from 'ui/utils/load-script'; const RTL_LANGUAGES = ['fa-ir']; -export default Ember.Service.extend({ - prefs : Ember.inject.service(), - session : Ember.inject.service(), - intl : Ember.inject.service(), - locales : Ember.computed.alias('app.locales'), - growl : Ember.inject.service(), - cookies : Ember.inject.service(), - userTheme : Ember.inject.service('user-theme'), +export default Service.extend({ + prefs : service(), + session : service(), + intl : service(), + locales : alias('app.locales'), + growl : service(), + cookies : service(), + userTheme : service('user-theme'), loadedLocales : null, bootstrap: function() { @@ -79,7 +81,7 @@ export default Ember.Service.extend({ if ( savePref && session.get(C.SESSION.ACCOUNT_ID) ) { return this.set(`prefs.${C.PREFS.LANGUAGE}`, lang); } else { - return Ember.RSVP.resolve(); + return resolve(); } }, @@ -91,7 +93,7 @@ export default Ember.Service.extend({ this.get('intl').setLocale(language); this.setLanguage(language,false); this.get('userTheme').writeStyleNode(); - return Ember.RSVP.resolve(); + return resolve(); } else { return ajaxPromise({url: `${this.get('app.baseAssets')}translations/${language}.json?${application.version}`, method: 'GET', @@ -101,7 +103,7 @@ export default Ember.Service.extend({ if ( this.get('app.needIntlPolyfill') ) { promise = loadScript(`${this.get('app.baseAssets')}assets/intl/locales/${language.toLowerCase()}.js?${application.version}`); } else { - promise = Ember.RSVP.resolve(); + promise = resolve(); } return promise.then(() => { diff --git a/lib/shared/addon/user-theme/service.js b/lib/shared/addon/user-theme/service.js index e79f9b571..4897efe63 100644 --- a/lib/shared/addon/user-theme/service.js +++ b/lib/shared/addon/user-theme/service.js @@ -1,10 +1,12 @@ -import Ember from 'ember'; +import $ from 'jquery'; +import { cancel, later } from '@ember/runloop'; +import Service, { inject as service } from '@ember/service'; import C from 'shared/utils/constants'; -export default Ember.Service.extend({ - prefs : Ember.inject.service(), - session : Ember.inject.service(), - language : Ember.inject.service('user-language'), +export default Service.extend({ + prefs : service(), + session : service(), + language : service('user-language'), currentTheme : null, updateTimer : null, @@ -33,7 +35,7 @@ export default Ember.Service.extend({ } if (this.get('updateTimer')) { - Ember.run.cancel(this.get('updateTimer')); + cancel(this.get('updateTimer')); } if (newTheme === 'ui-auto') { @@ -66,7 +68,7 @@ export default Ember.Service.extend({ this.get('session').set(C.PREFS.THEME, newTheme); } - this.set('updateTimer', Ember.run.later(() => { + this.set('updateTimer', later(() => { return this.setAutoUpdate(); }, nextHalfHour)); @@ -100,7 +102,7 @@ export default Ember.Service.extend({ updateHref('#vendor',`${application.baseAssets}assets/vendor${direction}.css?${application.version}`); function updateHref(node, neu) { - let elem = Ember.$(node); + let elem = $(node); let cur = elem.attr('href'); if ( cur !== neu ) { elem.attr('href', neu); diff --git a/lib/shared/addon/utils/add-view-action.js b/lib/shared/addon/utils/add-view-action.js index 590b7cad2..1747be18f 100644 --- a/lib/shared/addon/utils/add-view-action.js +++ b/lib/shared/addon/utils/add-view-action.js @@ -1,8 +1,9 @@ -import Ember from 'ember'; +import { next } from '@ember/runloop'; +import Component from '@ember/component'; export function addAction(action, selector) { return function() { - if ( Ember.Component.detectInstance(this) ) + if ( Component.detectInstance(this) ) { this._super(); } @@ -11,7 +12,7 @@ export function addAction(action, selector) { this.get('controller').send(action); } - Ember.run.next(this, function() { + next(this, function() { var matches = this.$(selector); if ( matches ) { diff --git a/lib/shared/addon/utils/additional-routes.js b/lib/shared/addon/utils/additional-routes.js index f1a15d9ee..788465bb7 100644 --- a/lib/shared/addon/utils/additional-routes.js +++ b/lib/shared/addon/utils/additional-routes.js @@ -1,4 +1,3 @@ -import Ember from 'ember'; var list = {}; /* Usage: In your Addon: diff --git a/lib/shared/addon/utils/debounce.js b/lib/shared/addon/utils/debounce.js index 74c1e4059..3feeaeaf8 100644 --- a/lib/shared/addon/utils/debounce.js +++ b/lib/shared/addon/utils/debounce.js @@ -1,5 +1,5 @@ -import EmberObject,{observer} from '@ember/object'; -import {debounce, throttle} from '@ember/runloop'; +import EmberObject, { observer } from '@ember/object'; +import { debounce, throttle } from '@ember/runloop'; // debouncedObserver('observeKey1','...','observerKeyN', function() {} [, delay] [,leadingEdge]) export function debouncedObserver(...args) { diff --git a/lib/shared/addon/utils/graph-area.js b/lib/shared/addon/utils/graph-area.js index 4f3131e8e..bfb47f86c 100644 --- a/lib/shared/addon/utils/graph-area.js +++ b/lib/shared/addon/utils/graph-area.js @@ -1,5 +1,9 @@ -import { GRADIENT_COLORS } from 'ui/components/svg-gradients/component'; -import { formatPercent, formatMib, formatKbps } from 'shared/utils/util'; +import { GRADIENT_COLORS } from 'shared/components/svg-gradients/component'; +import { + formatPercent, + formatMib, + formatKbps +} from 'shared/utils/util'; import initTooltip from 'shared/utils/graph-tooltip'; const FORMATTERS = { value: value => value, percent: formatPercent, mib: formatMib, kbps: formatKbps }; diff --git a/lib/shared/addon/utils/multi-stats.js b/lib/shared/addon/utils/multi-stats.js index b039ada88..9e127ffa9 100644 --- a/lib/shared/addon/utils/multi-stats.js +++ b/lib/shared/addon/utils/multi-stats.js @@ -1,3 +1,4 @@ +import { and } from '@ember/object/computed'; import EmberObject, { computed } from '@ember/object'; import Evented from '@ember/object/evented'; import { run } from '@ember/runloop'; @@ -33,7 +34,7 @@ export default EmberObject.extend(Evented, { return C.ACTIVEISH_STATES.indexOf(this.get('resource.state')) >= 0 && this.get('resource.healthState') !== 'started-once'; }.property('resource.{state,healthState}'), - active: computed.and('available', 'connected'), + active: and('available', 'connected'), loading: function() { return this.get('available') && !this.get('connected'); diff --git a/lib/shared/addon/utils/navigation-tree.js b/lib/shared/addon/utils/navigation-tree.js index c0d0cb849..186162a57 100644 --- a/lib/shared/addon/utils/navigation-tree.js +++ b/lib/shared/addon/utils/navigation-tree.js @@ -1,5 +1,5 @@ -import {isArray} from '@ember/array'; -import {copy as EmberCopy} from '@ember/object/internals'; +import { isArray } from '@ember/array'; +import { copy as EmberCopy } from '@ember/object/internals'; import C from 'shared/utils/constants'; // Useful context/condition shortcuts diff --git a/lib/shared/addon/utils/parse-version.js b/lib/shared/addon/utils/parse-version.js index b475c4e6c..3164c9897 100644 --- a/lib/shared/addon/utils/parse-version.js +++ b/lib/shared/addon/utils/parse-version.js @@ -1,4 +1,3 @@ -import Semver from 'npm:semver'; import Util from 'shared/utils/util'; export function satisfies(version, range) { diff --git a/lib/shared/app/components/accordion-list-item/component.js b/lib/shared/app/components/accordion-list-item/component.js index 14abe6a88..48e75e1ab 100644 --- a/lib/shared/app/components/accordion-list-item/component.js +++ b/lib/shared/app/components/accordion-list-item/component.js @@ -1 +1 @@ -export { default } from 'shared/components/accordion-list-item/component'; \ No newline at end of file +export { default } from 'shared/components/accordion-list-item/component'; diff --git a/lib/shared/app/components/container-logs/component.js b/lib/shared/app/components/container-logs/component.js index 6f51096dd..8dcf47fd2 100644 --- a/lib/shared/app/components/container-logs/component.js +++ b/lib/shared/app/components/container-logs/component.js @@ -1 +1,2 @@ -export { default } from 'shared/components/container-logs/component'; \ No newline at end of file +import AnsiUp from 'npm:ansi_up'; +export { default } from 'shared/components/container-logs/component'; diff --git a/lib/shared/app/components/container-shell/component.js b/lib/shared/app/components/container-shell/component.js index f2b1907b7..c535e127e 100644 --- a/lib/shared/app/components/container-shell/component.js +++ b/lib/shared/app/components/container-shell/component.js @@ -1 +1,2 @@ -export { default } from 'shared/components/container-shell/component'; \ No newline at end of file +import Terminal from 'npm:xterm'; +export { default } from 'shared/components/container-shell/component'; diff --git a/lib/shared/app/components/container-table/component.js b/lib/shared/app/components/container-table/component.js index ac0d75526..65d02a31d 100644 --- a/lib/shared/app/components/container-table/component.js +++ b/lib/shared/app/components/container-table/component.js @@ -1 +1 @@ -export { default } from 'shared/components/container-table/component'; \ No newline at end of file +export { default } from 'shared/components/container-table/component'; diff --git a/lib/shared/app/components/input-command/component.js b/lib/shared/app/components/input-command/component.js index cfb48ba10..859181404 100644 --- a/lib/shared/app/components/input-command/component.js +++ b/lib/shared/app/components/input-command/component.js @@ -1 +1,2 @@ -export { default } from 'shared/components/input-command/component'; \ No newline at end of file +import ShellQuote from 'npm:shell-quote' +export { default } from 'shared/components/input-command/component'; diff --git a/lib/shared/app/components/new-catalog/component.js b/lib/shared/app/components/new-catalog/component.js index 307897e2c..68a6366f2 100644 --- a/lib/shared/app/components/new-catalog/component.js +++ b/lib/shared/app/components/new-catalog/component.js @@ -1 +1,2 @@ -export { default } from 'shared/components/new-catalog/component'; \ No newline at end of file +import YAML from 'npm:yamljs'; +export { default } from 'shared/components/new-catalog/component'; diff --git a/lib/shared/app/utils/parse-uri.js b/lib/shared/app/utils/parse-uri.js index cb5c7b484..dd28a3bc2 100644 --- a/lib/shared/app/utils/parse-uri.js +++ b/lib/shared/app/utils/parse-uri.js @@ -1,38 +1 @@ -// parseUri 1.2.2 -// (c) Steven Levithan -// MIT License - -function parseUri (str) { - var o = parseUri.options, - m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), - uri = {}, - i = 14; - - while (i--) { - uri[o.key[i]] = m[i] || ""; - } - - uri[o.q.name] = {}; - uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { - if ($1) { - uri[o.q.name][$1] = $2; - } - }); - - return uri; -} - -parseUri.options = { - strictMode: false, - key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], - q: { - name: "queryKey", - parser: /(?:^|&)([^&=]*)=?([^&]*)/g - }, - parser: { - strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, - loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ - } -}; - -export default parseUri; +export { default } from 'shared/utils/parse-uri'; diff --git a/lib/shared/app/utils/parse-version.js b/lib/shared/app/utils/parse-version.js index 9c70f52be..838950822 100644 --- a/lib/shared/app/utils/parse-version.js +++ b/lib/shared/app/utils/parse-version.js @@ -1,87 +1 @@ -import Semver from 'npm:semver'; -import Util from 'ui/utils/util'; - -export function satisfies(version, range) { - // Semver doesn't take padding zeros like 17.03.1 - range = range.replace(/\.0+(\d+)/g,'.$1'); - version = version.replace(/\.0+(\d+)/g,'.$1'); - - if ( !Semver.validRange(range) ) { - console.error('Invalid semver range:', range); - return false; - } - - if ( !Semver.valid(version) ) { - console.error('Invalid semver version:', version); - return false; - } - - return Semver.satisfies(version, range); -} - -// @TODO replace with semver calls and verify compare works the same for -preX tags -export function parse(str) { - str = str+''; - - // Trim off leading 'v' - if ( str.substr(0,1).toLowerCase() === 'v' ) - { - str = str.substr(1); - } - - let parts = str.split(/[.-]/); - return parts; -} - -function comparePart(in1, in2) { - in1 = (in1+"").toLowerCase(); - in2 = (in2+"").toLowerCase(); - - if ( Util.isNumeric(in1) && Util.isNumeric(in2) ) - { - let num1 = parseInt(in1,10); - let num2 = parseInt(in2,10); - - if ( !isNaN(num1) && !isNaN(num2) ) - { - return num1 - num2; - } - } - - return in1.localeCompare(in2); -} - -export function compare(in1, in2) { - if ( !in1 ) { - return 1; - } - - if ( !in2 ) { - return -1; - } - - let p1 = parse(in1); - let p2 = parse(in2); - - let minLen = Math.min(p1.length, p2.length); - for ( let i = 0 ; i < minLen ; i++ ) - { - let res = comparePart(p1[i], p2[i]); - if ( res !== 0 ) - { - return res; - } - } - - return p1.length - p2.length; -} - -export function minorVersion(str) { - let [major, minor /*, patch, pre*/] = parse(str); - if ( !minor ) - { - return 'v'+ major +'.0'; - } - - return 'v' + major + '.' + minor; -} +export { default } from 'shared/utils/parse-version'; diff --git a/lib/shared/app/utils/parse-volume.js b/lib/shared/app/utils/parse-volume.js index cd85e791d..2fe173c8e 100644 --- a/lib/shared/app/utils/parse-volume.js +++ b/lib/shared/app/utils/parse-volume.js @@ -1,65 +1 @@ -import VolumeSpec from 'ui/models/volumespec'; - -// name:/incontainer:opt,opt2 -// name:/incontainer -// /onhost:/incontainer:opt -// /onhost:/incontainer -// /incontainer -// @TODO support the windows clown-show (https://github.com/moby/moby/blob/master/volume/volume_windows.go) -export function parseVolumeSpec(str) { - str = str.trim(); - - let source='', dest='', opts=''; - - let parts = str.split(':'); - switch ( parts.length ) { - case 1: - dest = parts[0]; - break; - case 2: - source = parts[0]; - dest = parts[1]; - break; - case 3: - source = parts[0]; - dest = parts[1]; - opts = parts[2]; - break; - default: - return null; - } - - if ( !opts ) { - opts = 'rw'; - } - - return VolumeSpec.create({ - source, - dest, - opts - }); -} - -export function stringifyVolumeSpec(spec) { - let source = (spec.source||'').trim(); - let dest = (spec.dest||'').trim(); - let opts = (spec.opts||'').trim(); - - // RW is the default - if ( opts === 'rw' ) { - opts = ''; - } - - if ( opts ) { - return source +':'+ dest +':'+ opts; - } else if ( source ) { - return source +':'+ dest; - } else { - return dest; - } -} - -export default { - parseVolumeSpec, - stringifyVolumeSpec, -}; +export { default, parseVolumeSpec, stringifyVolumeSpec} from 'shared/utils/parse-version'; diff --git a/lib/shared/app/utils/xterm-fit-addon.js b/lib/shared/app/utils/xterm-fit-addon.js index 6159714ff..6dd114a13 100644 --- a/lib/shared/app/utils/xterm-fit-addon.js +++ b/lib/shared/app/utils/xterm-fit-addon.js @@ -1 +1 @@ -export { proposeGeometry, default } from 'shared/utils/xterm-fit/addon'; +export { proposeGeometry, default } from 'shared/utils/xterm-fit-addon'; diff --git a/lib/shared/package.json b/lib/shared/package.json index 52460a5ad..53becd89c 100644 --- a/lib/shared/package.json +++ b/lib/shared/package.json @@ -4,11 +4,17 @@ "ember-addon" ], "dependencies": { + "ansi_up": "*", "ember-api-store": "*", "ember-truth-helpers": "*", "ember-intl": "*", "ember-cli-htmlbars": "*", "ember-cli-pagination": "*", - "ember-cli-babel": "*" + "ember-cli-babel": "*", + "semver": "*", + "shell-quote": "*", + "url-regex": "*", + "yamljs": "*", + "xterm": "*" } } diff --git a/tests/unit/initializers/extend-ember-input-test.js b/tests/unit/initializers/extend-ember-input-test.js index f6784d9ad..eb1c2b5d9 100644 --- a/tests/unit/initializers/extend-ember-input-test.js +++ b/tests/unit/initializers/extend-ember-input-test.js @@ -1,3 +1,5 @@ +import Application from '@ember/application'; +import { run } from '@ember/runloop'; import { moduleFor, test @@ -10,9 +12,9 @@ var container, application; moduleFor('initializer:extend-ember-input', { setup: function() { - Ember.run(function() { + run(function() { container = new Ember.Container(); - application = Ember.Application.create(); + application = Application.create(); application.deferReadiness(); }); } diff --git a/tests/unit/initializers/touch-test.js b/tests/unit/initializers/touch-test.js index c82a0b2ea..48a0cfb78 100644 --- a/tests/unit/initializers/touch-test.js +++ b/tests/unit/initializers/touch-test.js @@ -1,3 +1,5 @@ +import Application from '@ember/application'; +import { run } from '@ember/runloop'; import { moduleFor, test @@ -10,9 +12,9 @@ var container, application; moduleFor('initializer:touch', { setup: function() { - Ember.run(function() { + run(function() { container = new Ember.Container(); - application = Ember.Application.create(); + application = Application.create(); application.deferReadiness(); }); } diff --git a/tests/unit/utils/parse-port-test.js b/tests/unit/utils/parse-port-test.js index b137ead05..28ef1ae54 100644 --- a/tests/unit/utils/parse-port-test.js +++ b/tests/unit/utils/parse-port-test.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; import { parsePortSpec } from 'ui/utils/parse-port'; import { module, test } from 'qunit'; @@ -28,7 +28,7 @@ data.forEach(function(obj) { test('it can parse spec: ' + obj.str, function(assert) { var expected = obj.parsed; Object.keys(expected).forEach((key) => { - assert.strictEqual(Ember.get(actual,key), Ember.get(expected, key), key + ' parses correctly'); + assert.strictEqual(get(actual,key), get(expected, key), key + ' parses correctly'); }); }); } diff --git a/tests/unit/utils/parse-target-test.js b/tests/unit/utils/parse-target-test.js index 574179a67..fbaadaa99 100644 --- a/tests/unit/utils/parse-target-test.js +++ b/tests/unit/utils/parse-target-test.js @@ -1,4 +1,4 @@ -import Ember from 'ember'; +import { get } from '@ember/object'; import { parseTarget, stringifyTarget } from 'ui/utils/parse-target'; import { module, test } from 'qunit'; @@ -49,7 +49,7 @@ data.forEach(function(obj) { test('it can parse: ' + obj.str, function(assert) { var expected = obj.parsed; Object.keys(expected).forEach((key) => { - assert.strictEqual(Ember.get(actual,key), Ember.get(expected, key), key + ' parses correctly'); + assert.strictEqual(get(actual,key), get(expected, key), key + ' parses correctly'); }); });