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');
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