From cea8acf88669e1204bb780a27a893e23b7469ad2 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 7 Oct 2020 09:28:34 -0400 Subject: [PATCH 1/2] =?UTF-8?q?chore:=20=F0=9F=A4=96=20add=20favicon=20and?= =?UTF-8?q?=20genericize=20SVG=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/core/app/index.html | 2 ++ ui/core/app/templates/application.hbs | 8 ++++---- ui/core/app/templates/scopes/scope.hbs | 2 +- ui/core/app/templates/scopes/scope/-sidebar.hbs | 8 ++++---- ui/core/app/templates/scopes/scope/orgs/index.hbs | 2 +- ui/core/app/templates/scopes/scope/projects/index.hbs | 2 +- .../templates/scopes/scope/projects/project/-sidebar.hbs | 6 +++--- .../{boundary-icons => app-icons}/action-session.svg | 0 .../public/{boundary-icons => app-icons}/auth-method.svg | 0 ui/core/public/{boundary-icons => app-icons}/gear.svg | 0 ui/core/public/{boundary-icons => app-icons}/group.svg | 0 .../{boundary-icons => app-icons}/host-catalogs.svg | 0 ui/core/public/{boundary-icons => app-icons}/org.svg | 0 ui/core/public/{boundary-icons => app-icons}/project.svg | 0 ui/core/public/{boundary-icons => app-icons}/roles.svg | 0 ui/core/public/{boundary-icons => app-icons}/target.svg | 0 .../public/{boundary-icons => app-icons}/user-profile.svg | 0 ui/core/public/{boundary-icons => app-icons}/users.svg | 0 ui/core/public/{logo-boundary.svg => logo-app.svg} | 0 ui/core/public/{logo-hashi.svg => logo-company.svg} | 0 ui/core/public/logo.svg | 1 - 21 files changed, 16 insertions(+), 15 deletions(-) rename ui/core/public/{boundary-icons => app-icons}/action-session.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/auth-method.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/gear.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/group.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/host-catalogs.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/org.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/project.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/roles.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/target.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/user-profile.svg (100%) rename ui/core/public/{boundary-icons => app-icons}/users.svg (100%) rename ui/core/public/{logo-boundary.svg => logo-app.svg} (100%) rename ui/core/public/{logo-hashi.svg => logo-company.svg} (100%) delete mode 100644 ui/core/public/logo.svg diff --git a/ui/core/app/index.html b/ui/core/app/index.html index 21cb16f81..248478b1f 100644 --- a/ui/core/app/index.html +++ b/ui/core/app/index.html @@ -12,6 +12,8 @@ + + {{content-for "head-footer"}} diff --git a/ui/core/app/templates/application.hbs b/ui/core/app/templates/application.hbs index ac4f0eac3..6db0e5baa 100644 --- a/ui/core/app/templates/application.hbs +++ b/ui/core/app/templates/application.hbs @@ -5,13 +5,13 @@ - + {{#if this.session.isAuthenticated}} {{#if this.session.data.authenticated.isGlobal}} @@ -35,7 +35,7 @@ {{t 'actions.change-password'}} @@ -59,7 +59,7 @@ - + {{company-copyright}} {{app-name}} diff --git a/ui/core/app/templates/scopes/scope.hbs b/ui/core/app/templates/scopes/scope.hbs index 2d7d21026..908b13f16 100644 --- a/ui/core/app/templates/scopes/scope.hbs +++ b/ui/core/app/templates/scopes/scope.hbs @@ -6,7 +6,7 @@ {{t "resources.project.title_plural"}} diff --git a/ui/core/app/templates/scopes/scope/-sidebar.hbs b/ui/core/app/templates/scopes/scope/-sidebar.hbs index 27852d3ec..45780e932 100644 --- a/ui/core/app/templates/scopes/scope/-sidebar.hbs +++ b/ui/core/app/templates/scopes/scope/-sidebar.hbs @@ -1,25 +1,25 @@ {{t "resources.user.title_plural"}} {{t "resources.group.title_plural"}} {{t "resources.role.title_plural"}} {{t "resources.auth-method.title_plural"}} diff --git a/ui/core/app/templates/scopes/scope/orgs/index.hbs b/ui/core/app/templates/scopes/scope/orgs/index.hbs index efe5f0a59..b888817fb 100644 --- a/ui/core/app/templates/scopes/scope/orgs/index.hbs +++ b/ui/core/app/templates/scopes/scope/orgs/index.hbs @@ -35,7 +35,7 @@ @title={{org.name}} @description={{org.description}} @id={{org.id}} - @icon="boundary-icons/org" + @icon="app-icons/org" @route="scopes.scope" @model={{org.id}} /> diff --git a/ui/core/app/templates/scopes/scope/projects/index.hbs b/ui/core/app/templates/scopes/scope/projects/index.hbs index fca7f0fae..ebf9e2e21 100644 --- a/ui/core/app/templates/scopes/scope/projects/index.hbs +++ b/ui/core/app/templates/scopes/scope/projects/index.hbs @@ -35,7 +35,7 @@ @title={{project.name}} @description={{project.description}} @id={{project.id}} - @icon="boundary-icons/project" + @icon="app-icons/project" @route="scopes.scope.projects.project" @model={{project.id}} /> diff --git a/ui/core/app/templates/scopes/scope/projects/project/-sidebar.hbs b/ui/core/app/templates/scopes/scope/projects/project/-sidebar.hbs index 5f7845697..e82349443 100644 --- a/ui/core/app/templates/scopes/scope/projects/project/-sidebar.hbs +++ b/ui/core/app/templates/scopes/scope/projects/project/-sidebar.hbs @@ -1,19 +1,19 @@ {{t "resources.session.title_plural"}} {{t "resources.target.title_plural"}} {{t "resources.host-catalog.title_plural"}} diff --git a/ui/core/public/boundary-icons/action-session.svg b/ui/core/public/app-icons/action-session.svg similarity index 100% rename from ui/core/public/boundary-icons/action-session.svg rename to ui/core/public/app-icons/action-session.svg diff --git a/ui/core/public/boundary-icons/auth-method.svg b/ui/core/public/app-icons/auth-method.svg similarity index 100% rename from ui/core/public/boundary-icons/auth-method.svg rename to ui/core/public/app-icons/auth-method.svg diff --git a/ui/core/public/boundary-icons/gear.svg b/ui/core/public/app-icons/gear.svg similarity index 100% rename from ui/core/public/boundary-icons/gear.svg rename to ui/core/public/app-icons/gear.svg diff --git a/ui/core/public/boundary-icons/group.svg b/ui/core/public/app-icons/group.svg similarity index 100% rename from ui/core/public/boundary-icons/group.svg rename to ui/core/public/app-icons/group.svg diff --git a/ui/core/public/boundary-icons/host-catalogs.svg b/ui/core/public/app-icons/host-catalogs.svg similarity index 100% rename from ui/core/public/boundary-icons/host-catalogs.svg rename to ui/core/public/app-icons/host-catalogs.svg diff --git a/ui/core/public/boundary-icons/org.svg b/ui/core/public/app-icons/org.svg similarity index 100% rename from ui/core/public/boundary-icons/org.svg rename to ui/core/public/app-icons/org.svg diff --git a/ui/core/public/boundary-icons/project.svg b/ui/core/public/app-icons/project.svg similarity index 100% rename from ui/core/public/boundary-icons/project.svg rename to ui/core/public/app-icons/project.svg diff --git a/ui/core/public/boundary-icons/roles.svg b/ui/core/public/app-icons/roles.svg similarity index 100% rename from ui/core/public/boundary-icons/roles.svg rename to ui/core/public/app-icons/roles.svg diff --git a/ui/core/public/boundary-icons/target.svg b/ui/core/public/app-icons/target.svg similarity index 100% rename from ui/core/public/boundary-icons/target.svg rename to ui/core/public/app-icons/target.svg diff --git a/ui/core/public/boundary-icons/user-profile.svg b/ui/core/public/app-icons/user-profile.svg similarity index 100% rename from ui/core/public/boundary-icons/user-profile.svg rename to ui/core/public/app-icons/user-profile.svg diff --git a/ui/core/public/boundary-icons/users.svg b/ui/core/public/app-icons/users.svg similarity index 100% rename from ui/core/public/boundary-icons/users.svg rename to ui/core/public/app-icons/users.svg diff --git a/ui/core/public/logo-boundary.svg b/ui/core/public/logo-app.svg similarity index 100% rename from ui/core/public/logo-boundary.svg rename to ui/core/public/logo-app.svg diff --git a/ui/core/public/logo-hashi.svg b/ui/core/public/logo-company.svg similarity index 100% rename from ui/core/public/logo-hashi.svg rename to ui/core/public/logo-company.svg diff --git a/ui/core/public/logo.svg b/ui/core/public/logo.svg deleted file mode 100644 index 2a28cc024..000000000 --- a/ui/core/public/logo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From ce08ae3001785292e2f09c2fe6244a0ea7888a1d Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 7 Oct 2020 10:53:53 -0400 Subject: [PATCH 2/2] =?UTF-8?q?chore:=20=F0=9F=A4=96=20empty=20strings=20s?= =?UTF-8?q?hould=20be=20serialized=20as=20null?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- addons/api/addon/serializers/application.js | 5 ++++- .../tests/unit/serializers/application-test.js | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/addons/api/addon/serializers/application.js b/addons/api/addon/serializers/application.js index 2819231fa..e4531c7fe 100644 --- a/addons/api/addon/serializers/application.js +++ b/addons/api/addon/serializers/application.js @@ -37,8 +37,11 @@ export default class ApplicationSerializer extends RESTSerializer { * @param {String} key * @param {Object} attribute */ - serializeAttribute(snapshot, json, key, { options }) { + serializeAttribute(snapshot, json, key, attribute) { + const { type, options } = attribute; let value = super.serializeAttribute(...arguments); + // Convert empty strings to null. + if (type === 'string' && json[key] === '') json[key] = null; // Do not serialize read-only attributes. if (options.readOnly) delete json[key]; // Version is sent only if it has a non-nullish value diff --git a/addons/api/tests/unit/serializers/application-test.js b/addons/api/tests/unit/serializers/application-test.js index 10de9d4fb..014d80377 100644 --- a/addons/api/tests/unit/serializers/application-test.js +++ b/addons/api/tests/unit/serializers/application-test.js @@ -70,6 +70,21 @@ module('Unit | Serializer | application', function (hooks) { }); }); + test('it serializes empty strings to null', function (assert) { + assert.expect(1); + const store = this.owner.lookup('service:store'); + const record = store.createRecord('user', { + name: '', + description: '', + version: null, + }); + let serializedRecord = record.serialize(); + assert.deepEqual(serializedRecord, { + name: null, + description: null, + }); + }); + test('it serializes non-nullish version fields', function (assert) { assert.expect(2); const store = this.owner.lookup('service:store');