diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js
index b1481adf9..213f71d33 100644
--- a/addons/api/mirage/config.js
+++ b/addons/api/mirage/config.js
@@ -1,4 +1,3 @@
-import Ember from 'ember';
import config from '../config/environment';
import { authHandler, deauthHandler } from './route-handlers/auth';
import { pickRandomStatusString } from './factories/session';
@@ -6,6 +5,8 @@ import { Response } from 'miragejs';
import initializeMockIPC from './scenarios/ipc';
import makeBooleanFilter from './helpers/bexpr-filter';
+const isTesting = config.environment === 'test';
+
export default function () {
initializeMockIPC(this);
@@ -417,7 +418,7 @@ export default function () {
// update alternate sessions to auth user.
// But only if not in testing mode.
// In tests, we need deterministic statuses.
- if (!Ember.testing) {
+ if (!isTesting) {
sessions.all().models.forEach((session) => {
session.update({
status: pickRandomStatusString(),
@@ -446,7 +447,7 @@ export default function () {
);
this.get('/sessions/:id', function ({ sessions }, { params: { id } }) {
const session = sessions.find(id);
- if (!Ember.testing) {
+ if (!isTesting) {
session.update({
status: pickRandomStatusString(),
});
diff --git a/addons/api/mirage/scenarios/ipc.js b/addons/api/mirage/scenarios/ipc.js
index 6e44988e4..0c01a656e 100644
--- a/addons/api/mirage/scenarios/ipc.js
+++ b/addons/api/mirage/scenarios/ipc.js
@@ -1,7 +1,8 @@
-import Ember from 'ember';
import config from 'ember-get-config';
import { datatype } from 'faker';
+const isTesting = config.environment === 'test';
+
export default function initializeMockIPC(server) {
/**
* We strive to make this application runnable in a regular web browser, since
@@ -149,7 +150,7 @@ export default function initializeMockIPC(server) {
*
* Initializes mock IPC only in a non-Electron non-testing context.
*/
- if (!config.isElectron && !Ember.testing) {
+ if (!config.isElectron && !isTesting) {
const mockIPC = new MockIPC();
window.addEventListener('message', async function (event) {
if (event.origin !== window.location.origin) return;
diff --git a/addons/api/package.json b/addons/api/package.json
index 17434703b..2fcc5ae78 100644
--- a/addons/api/package.json
+++ b/addons/api/package.json
@@ -43,7 +43,7 @@
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
@@ -57,7 +57,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
diff --git a/addons/auth/package.json b/addons/auth/package.json
index 531137952..bc19d30ec 100644
--- a/addons/auth/package.json
+++ b/addons/auth/package.json
@@ -36,7 +36,7 @@
"core": "*",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
@@ -49,7 +49,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
diff --git a/addons/core/package.json b/addons/core/package.json
index 03c494d89..c12f03dcd 100644
--- a/addons/core/package.json
+++ b/addons/core/package.json
@@ -50,7 +50,7 @@
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sri": "^2.1.1",
@@ -63,7 +63,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
diff --git a/addons/rose/addon/components/rose/dropdown/link/index.hbs b/addons/rose/addon/components/rose/dropdown/link/index.hbs
index f4c2623f8..a7593fe8d 100644
--- a/addons/rose/addon/components/rose/dropdown/link/index.hbs
+++ b/addons/rose/addon/components/rose/dropdown/link/index.hbs
@@ -1,20 +1,46 @@
+{{!
+ Ember's LinkTo component won't accept nullish @query or @model, so we have to
+ overcompensate by duplicating it four times, one for every combination.
+ This is really unpleasant.
+}}
{{#if @model}}
-
- {{yield}}
-
+ {{#if @query}}
+
+ {{yield}}
+
+ {{else}}
+
+ {{yield}}
+
+ {{/if}}
{{else}}
-
- {{yield}}
-
+ {{#if @query}}
+
+ {{yield}}
+
+ {{else}}
+
+ {{yield}}
+
+ {{/if}}
{{/if}}
diff --git a/addons/rose/package.json b/addons/rose/package.json
index b84a76425..0d0118526 100644
--- a/addons/rose/package.json
+++ b/addons/rose/package.json
@@ -57,7 +57,7 @@
"broccoli-asset-rev": "^3.0.0",
"doctoc": "^2.0.1",
"ember-auto-import": "^1.12.0",
- "ember-cli": "~3.28.0",
+ "ember-cli": "~3.28.3",
"ember-cli-dependency-checker": "^3.2.0",
"ember-cli-inject-live-reload": "^2.1.0",
"ember-cli-sass": "^10.0.1",
@@ -72,7 +72,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-source-channel-url": "^3.0.0",
"ember-template-lint": "^3.7.0",
"ember-try": "^1.4.0",
diff --git a/ui/admin/package.json b/ui/admin/package.json
index 61d9ff33c..8351cc0e5 100644
--- a/ui/admin/package.json
+++ b/ui/admin/package.json
@@ -74,7 +74,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-template-lint": "^3.7.0",
"ember-template-lint-plugin-prettier": "^2.0.0",
"eslint": "^7.32.0",
diff --git a/ui/desktop/package.json b/ui/desktop/package.json
index c3980a942..bc9420931 100755
--- a/ui/desktop/package.json
+++ b/ui/desktop/package.json
@@ -95,7 +95,7 @@
"ember-page-title": "^6.2.2",
"ember-qunit": "^5.1.4",
"ember-resolver": "^8.0.3",
- "ember-source": "~3.24.0",
+ "ember-source": "~3.28.4",
"ember-template-lint": "^3.7.0",
"ember-template-lint-plugin-prettier": "^2.0.0",
"eslint": "^7.32.0",
diff --git a/ui/desktop/tests/integration/components/dialog-detail-test.js b/ui/desktop/tests/integration/components/dialog-detail-test.js
index e3e483325..18156fb76 100644
--- a/ui/desktop/tests/integration/components/dialog-detail-test.js
+++ b/ui/desktop/tests/integration/components/dialog-detail-test.js
@@ -13,7 +13,7 @@ module('Integration | Component | dialog-detail', function (hooks) {
test('it renders with content', async function (assert) {
await render(hbs`
-
+
Test
diff --git a/yarn.lock b/yarn.lock
index 660c765b2..bc5537d8b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2613,6 +2613,13 @@
resolved "https://registry.yarnpkg.com/@glimmer/validator/-/validator-0.44.0.tgz#03d127097dc9cb23052cdb7fcae59d0a9dca53e1"
integrity sha512-i01plR0EgFVz69GDrEuFgq1NheIjZcyTy3c7q+w7d096ddPVeVcRzU3LKaqCfovvLJ+6lJx40j45ecycASUUyw==
+"@glimmer/vm-babel-plugins@0.80.3":
+ version "0.80.3"
+ resolved "https://registry.yarnpkg.com/@glimmer/vm-babel-plugins/-/vm-babel-plugins-0.80.3.tgz#434b62172318cac43830d3ac29818cf2c5f111c1"
+ integrity sha512-9ej6xlm5MzHBJ5am2l0dbbn8Z0wJoYoMpM8FcrGMlUP6SPMLWxvxpMsApgQo8u6dvZRCjR3/bw3fdf7GOy0AFw==
+ dependencies:
+ babel-plugin-debug-macros "^0.3.4"
+
"@glimmer/vm@^0.42.2":
version "0.42.2"
resolved "https://registry.yarnpkg.com/@glimmer/vm/-/vm-0.42.2.tgz#492a4f05eac587c3a37371b3c62593f20bef553d"
@@ -9862,103 +9869,6 @@ ember-cli-version-checker@^5.0.1, ember-cli-version-checker@^5.1.1, ember-cli-ve
semver "^7.3.4"
silent-error "^1.1.1"
-ember-cli@~3.28.0:
- version "3.28.0"
- resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.0.tgz#0a0374c9a1d08386ddf56e8098a38b71dd4453bc"
- integrity sha512-CrMs5edFQ2ingO2xfT33T4nUEl8SlvBQ7q+XO9L/GFTvFU07slHxYSvGur0cwgQfOiLnkSTnIaVF1oqBnEmfPQ==
- dependencies:
- "@babel/core" "^7.13.8"
- "@babel/plugin-transform-modules-amd" "^7.12.1"
- amd-name-resolver "^1.3.1"
- babel-plugin-module-resolver "^4.1.0"
- bower-config "^1.4.3"
- bower-endpoint-parser "0.2.2"
- broccoli "^3.5.1"
- broccoli-amd-funnel "^2.0.1"
- broccoli-babel-transpiler "^7.8.0"
- broccoli-builder "^0.18.14"
- broccoli-concat "^4.2.5"
- broccoli-config-loader "^1.0.1"
- broccoli-config-replace "^1.1.2"
- broccoli-debug "^0.6.5"
- broccoli-funnel "^3.0.5"
- broccoli-funnel-reducer "^1.0.0"
- broccoli-merge-trees "^3.0.2"
- broccoli-middleware "^2.1.1"
- broccoli-slow-trees "^3.1.0"
- broccoli-source "^3.0.0"
- broccoli-stew "^3.0.0"
- calculate-cache-key-for-tree "^2.0.0"
- capture-exit "^2.0.0"
- chalk "^4.1.0"
- ci-info "^2.0.0"
- clean-base-url "^1.0.0"
- compression "^1.7.4"
- configstore "^5.0.1"
- console-ui "^3.1.2"
- core-object "^3.1.5"
- dag-map "^2.0.2"
- diff "^5.0.0"
- ember-cli-is-package-missing "^1.0.0"
- ember-cli-lodash-subset "^2.0.1"
- ember-cli-normalize-entity-name "^1.0.0"
- ember-cli-preprocess-registry "^3.3.0"
- ember-cli-string-utils "^1.1.0"
- ember-source-channel-url "^3.0.0"
- ensure-posix-path "^1.1.1"
- execa "^5.0.0"
- exit "^0.1.2"
- express "^4.17.1"
- filesize "^6.1.0"
- find-up "^5.0.0"
- find-yarn-workspace-root "^2.0.0"
- fixturify-project "^2.1.1"
- fs-extra "^9.1.0"
- fs-tree-diff "^2.0.1"
- get-caller-file "^2.0.5"
- git-repo-info "^2.1.1"
- glob "^7.1.6"
- heimdalljs "^0.2.6"
- heimdalljs-fs-monitor "^1.1.0"
- heimdalljs-graph "^1.0.0"
- heimdalljs-logger "^0.1.10"
- http-proxy "^1.18.1"
- inflection "^1.12.0"
- is-git-url "^1.0.0"
- is-language-code "^2.0.0"
- isbinaryfile "^4.0.6"
- js-yaml "^3.14.0"
- json-stable-stringify "^1.0.1"
- leek "0.0.24"
- lodash.template "^4.5.0"
- markdown-it "^12.0.4"
- markdown-it-terminal "0.2.1"
- minimatch "^3.0.4"
- morgan "^1.10.0"
- nopt "^3.0.6"
- npm-package-arg "^8.1.1"
- p-defer "^3.0.0"
- portfinder "^1.0.28"
- promise-map-series "^0.3.0"
- promise.hash.helper "^1.0.7"
- quick-temp "^0.1.8"
- resolve "^1.20.0"
- resolve-package-path "^3.1.0"
- sane "^4.1.0"
- semver "^7.3.4"
- silent-error "^1.1.1"
- sort-package-json "^1.49.0"
- symlink-or-copy "^1.3.1"
- temp "0.9.4"
- testem "^3.2.0"
- tiny-lr "^2.0.0"
- tree-sync "^2.1.0"
- uuid "^8.3.2"
- walk-sync "^2.2.0"
- watch-detector "^1.0.0"
- workerpool "^6.1.4"
- yam "^1.0.0"
-
ember-cli@~3.28.3:
version "3.28.3"
resolved "https://registry.yarnpkg.com/ember-cli/-/ember-cli-3.28.3.tgz#3384c3fb018b58111e30efed15a2f6a9b66b84c3"
@@ -10504,19 +10414,21 @@ ember-source-channel-url@^3.0.0:
dependencies:
node-fetch "^2.6.0"
-ember-source@~3.24.0:
- version "3.24.5"
- resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.24.5.tgz#7e1da13286f7d1ac63b3d3a547aaeb40bc18a696"
- integrity sha512-j39L7C+q9o9qkwrwNtRN1AVGzE8TlxHm0c6xMzFZFaWMyQt3E7ov72fz3oIn17h8H7zZ1i7dl471Rbqx1GZsLw==
+ember-source@~3.28.4:
+ version "3.28.4"
+ resolved "https://registry.yarnpkg.com/ember-source/-/ember-source-3.28.4.tgz#b6ac2b1e369ef533d05164c65078b4ceafdb6390"
+ integrity sha512-s7kVy0E08erAHUTI/8SZZvXt3an/xb2g5K+m4Rybvo8Tr/noMk3lIdtyQkSvmgMZ/BbvoW8spS630sO0/JN4Eg==
dependencies:
"@babel/helper-module-imports" "^7.8.3"
"@babel/plugin-transform-block-scoping" "^7.8.3"
"@babel/plugin-transform-object-assign" "^7.8.3"
"@ember/edition-utils" "^1.2.0"
- babel-plugin-debug-macros "^0.3.3"
+ "@glimmer/vm-babel-plugins" "0.80.3"
+ babel-plugin-debug-macros "^0.3.4"
babel-plugin-filter-imports "^4.0.0"
broccoli-concat "^4.2.4"
broccoli-debug "^0.6.4"
+ broccoli-file-creator "^2.1.1"
broccoli-funnel "^2.0.2"
broccoli-merge-trees "^4.2.0"
chalk "^4.0.0"
@@ -10529,9 +10441,9 @@ ember-source@~3.24.0:
ember-cli-version-checker "^5.1.1"
ember-router-generator "^2.0.0"
inflection "^1.12.0"
- jquery "^3.5.0"
+ jquery "^3.5.1"
resolve "^1.17.0"
- semver "^6.1.1"
+ semver "^7.3.4"
silent-error "^1.1.1"
ember-template-lint-plugin-prettier@^2.0.0:
@@ -14638,7 +14550,7 @@ jpeg-js@^0.4.2:
resolved "https://registry.yarnpkg.com/jpeg-js/-/jpeg-js-0.4.3.tgz#6158e09f1983ad773813704be80680550eff977b"
integrity sha512-ru1HWKek8octvUHFHvE5ZzQ1yAsJmIvRdGWvSoKV52XKyuyYA437QWDttXT8eZXDSbuMpHlLzPDZUPd6idIz+Q==
-jquery@^3.5.0:
+jquery@^3.5.1:
version "3.6.0"
resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470"
integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==