From fa580f5c87835459289b0498e19f82dfbe598990 Mon Sep 17 00:00:00 2001 From: Randall Morey Date: Wed, 10 Jun 2020 11:55:58 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20=F0=9F=A4=96=20integrate=20breadcrumbs?= =?UTF-8?q?=20component=20with=20service=20in=20core?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rose/components/layout/global/_body.scss | 3 + ui/core/app/components/.gitkeep | 0 ui/core/app/components/bread-crumbs.hbs | 15 +++++ ui/core/app/controllers/orgs/org/projects.js | 19 ++++++ .../app/controllers/orgs/org/projects/new.js | 19 ++++++ .../controllers/orgs/org/projects/project.js | 13 ++++ .../org/projects/project/host-catalogs.js | 19 ++++++ .../project/host-catalogs/host-catalog.js | 13 ++++ .../org/projects/project/host-catalogs/new.js | 19 ++++++ ui/core/app/styles/app.scss | 34 ----------- .../app/templates/orgs/org/projects/index.hbs | 6 +- .../app/templates/orgs/org/projects/new.hbs | 9 +-- .../host-catalogs/host-catalog/index.hbs | 39 +++++++----- .../projects/project/host-catalogs/index.hbs | 4 ++ .../projects/project/host-catalogs/new.hbs | 4 ++ .../orgs/org/projects/project/index.hbs | 61 ++++++++++--------- ui/core/package.json | 1 + .../components/bread-crumbs-test.js | 13 ++++ .../controllers/orgs/org/projects-test.js | 12 ++++ .../controllers/orgs/org/projects/new-test.js | 12 ++++ .../orgs/org/projects/project-test.js | 12 ++++ .../projects/project/host-catalogs-test.js | 12 ++++ .../host-catalogs/host-catalog-test.js | 12 ++++ .../project/host-catalogs/new-test.js | 12 ++++ yarn.lock | 7 +++ 25 files changed, 285 insertions(+), 85 deletions(-) delete mode 100644 ui/core/app/components/.gitkeep create mode 100644 ui/core/app/components/bread-crumbs.hbs create mode 100644 ui/core/app/controllers/orgs/org/projects.js create mode 100644 ui/core/app/controllers/orgs/org/projects/new.js create mode 100644 ui/core/app/controllers/orgs/org/projects/project.js create mode 100644 ui/core/app/controllers/orgs/org/projects/project/host-catalogs.js create mode 100644 ui/core/app/controllers/orgs/org/projects/project/host-catalogs/host-catalog.js create mode 100644 ui/core/app/controllers/orgs/org/projects/project/host-catalogs/new.js create mode 100644 ui/core/tests/integration/components/bread-crumbs-test.js create mode 100644 ui/core/tests/unit/controllers/orgs/org/projects-test.js create mode 100644 ui/core/tests/unit/controllers/orgs/org/projects/new-test.js create mode 100644 ui/core/tests/unit/controllers/orgs/org/projects/project-test.js create mode 100644 ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs-test.js create mode 100644 ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/host-catalog-test.js create mode 100644 ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/new-test.js diff --git a/addons/rose/addon/styles/rose/components/layout/global/_body.scss b/addons/rose/addon/styles/rose/components/layout/global/_body.scss index 926856f49..4c937b553 100644 --- a/addons/rose/addon/styles/rose/components/layout/global/_body.scss +++ b/addons/rose/addon/styles/rose/components/layout/global/_body.scss @@ -1,3 +1,6 @@ +@use '../../../variables/sizing'; + .rose-layout-global-body { grid-area: body; + padding: sizing.rems(l); } diff --git a/ui/core/app/components/.gitkeep b/ui/core/app/components/.gitkeep deleted file mode 100644 index e69de29bb..000000000 diff --git a/ui/core/app/components/bread-crumbs.hbs b/ui/core/app/components/bread-crumbs.hbs new file mode 100644 index 000000000..f969028c6 --- /dev/null +++ b/ui/core/app/components/bread-crumbs.hbs @@ -0,0 +1,15 @@ +{{#if this.breadCrumbs}} + + {{#each this.breadCrumbs as |crumb|}} + {{#if crumb.model}} + + {{crumb.label}} + + {{else}} + + {{crumb.label}} + + {{/if}} + {{/each}} + +{{/if}} diff --git a/ui/core/app/controllers/orgs/org/projects.js b/ui/core/app/controllers/orgs/org/projects.js new file mode 100644 index 000000000..e1199f8e8 --- /dev/null +++ b/ui/core/app/controllers/orgs/org/projects.js @@ -0,0 +1,19 @@ +import Controller from '@ember/controller'; +import { inject as service } from '@ember/service'; + +export default class OrgsOrgProjectsController extends Controller { + + // =services + + @service intl; + + // =attributes + + /** + * @type {string} + */ + get breadCrumb() { + return this.intl.t('resources.projects'); + } + +} diff --git a/ui/core/app/controllers/orgs/org/projects/new.js b/ui/core/app/controllers/orgs/org/projects/new.js new file mode 100644 index 000000000..5f9540189 --- /dev/null +++ b/ui/core/app/controllers/orgs/org/projects/new.js @@ -0,0 +1,19 @@ +import Controller from '@ember/controller'; +import { inject as service } from '@ember/service'; + +export default class OrgsOrgProjectsNewController extends Controller { + + // =services + + @service intl; + + // =attributes + + /** + * @type {string} + */ + get breadCrumb() { + return this.intl.t('titles.new'); + } + +} diff --git a/ui/core/app/controllers/orgs/org/projects/project.js b/ui/core/app/controllers/orgs/org/projects/project.js new file mode 100644 index 000000000..15f6255cf --- /dev/null +++ b/ui/core/app/controllers/orgs/org/projects/project.js @@ -0,0 +1,13 @@ +import Controller from '@ember/controller'; +import { alias } from '@ember/object/computed'; + +export default class OrgsOrgProjectsProjectController extends Controller { + + // =attributes + + /** + * @type {string} + */ + @alias('model.name') breadCrumb; + +} diff --git a/ui/core/app/controllers/orgs/org/projects/project/host-catalogs.js b/ui/core/app/controllers/orgs/org/projects/project/host-catalogs.js new file mode 100644 index 000000000..80dde2c39 --- /dev/null +++ b/ui/core/app/controllers/orgs/org/projects/project/host-catalogs.js @@ -0,0 +1,19 @@ +import Controller from '@ember/controller'; +import { inject as service } from '@ember/service'; + +export default class OrgsOrgProjectsProjectHostCatalogsController extends Controller { + + // =services + + @service intl; + + // =attributes + + /** + * @type {string} + */ + get breadCrumb() { + return this.intl.t('resources.host-catalogs'); + } + +} diff --git a/ui/core/app/controllers/orgs/org/projects/project/host-catalogs/host-catalog.js b/ui/core/app/controllers/orgs/org/projects/project/host-catalogs/host-catalog.js new file mode 100644 index 000000000..067facc1d --- /dev/null +++ b/ui/core/app/controllers/orgs/org/projects/project/host-catalogs/host-catalog.js @@ -0,0 +1,13 @@ +import Controller from '@ember/controller'; +import { alias } from '@ember/object/computed'; + +export default class OrgsOrgProjectsProjectHostCatalogsHostCatalogController extends Controller { + + // =attributes + + /** + * @type {string} + */ + @alias('model.name') breadCrumb; + +} diff --git a/ui/core/app/controllers/orgs/org/projects/project/host-catalogs/new.js b/ui/core/app/controllers/orgs/org/projects/project/host-catalogs/new.js new file mode 100644 index 000000000..4fb2aed63 --- /dev/null +++ b/ui/core/app/controllers/orgs/org/projects/project/host-catalogs/new.js @@ -0,0 +1,19 @@ +import Controller from '@ember/controller'; +import { inject as service } from '@ember/service'; + +export default class OrgsOrgProjectsProjectHostCatalogsNewController extends Controller { + + // =services + + @service intl; + + // =attributes + + /** + * @type {string} + */ + get breadCrumb() { + return this.intl.t('titles.new'); + } + +} diff --git a/ui/core/app/styles/app.scss b/ui/core/app/styles/app.scss index f7c1e37f1..56d7f26df 100644 --- a/ui/core/app/styles/app.scss +++ b/ui/core/app/styles/app.scss @@ -18,37 +18,3 @@ } } } - -.projects-overview { - margin: sizing.rems(l); -} - -.project-overview, -.project-new { - margin: sizing.rems(l); - - .breadcrumbs, - .breadcrumbs a { - color: #6f7682; - text-decoration: none; - } - - .project-new-form { - .form-actions { - display: flex; - flex-direction: row; - position: relative; - float: right; - - button { - margin-right: 10px; - } - } - - input, - textarea { - box-sizing: border-box; - width: 100%; - } - } -} diff --git a/ui/core/app/templates/orgs/org/projects/index.hbs b/ui/core/app/templates/orgs/org/projects/index.hbs index f141c2649..0ddef022c 100644 --- a/ui/core/app/templates/orgs/org/projects/index.hbs +++ b/ui/core/app/templates/orgs/org/projects/index.hbs @@ -1,4 +1,8 @@ - + + + + +

{{t "resources.projects"}}

diff --git a/ui/core/app/templates/orgs/org/projects/new.hbs b/ui/core/app/templates/orgs/org/projects/new.hbs index a4066d4f5..5289636f7 100644 --- a/ui/core/app/templates/orgs/org/projects/new.hbs +++ b/ui/core/app/templates/orgs/org/projects/new.hbs @@ -1,10 +1,6 @@ - + - + @@ -16,7 +12,6 @@ @model={{@model}} @submit={{route-action "save" @model}} @cancel={{route-action "cancel" @model}} - class="project-new-form" /> diff --git a/ui/core/app/templates/orgs/org/projects/project/host-catalogs/host-catalog/index.hbs b/ui/core/app/templates/orgs/org/projects/project/host-catalogs/host-catalog/index.hbs index de04351ae..b80d3f9b0 100644 --- a/ui/core/app/templates/orgs/org/projects/project/host-catalogs/host-catalog/index.hbs +++ b/ui/core/app/templates/orgs/org/projects/project/host-catalogs/host-catalog/index.hbs @@ -1,18 +1,27 @@ -
+ -

{{t "resources.host-catalog"}}

+ + + - + +

{{t "resources.host-catalog"}}

+
- - {{t 'actions.delete'}} - -
+ + + + + {{t 'actions.delete'}} + + + +
diff --git a/ui/core/app/templates/orgs/org/projects/project/host-catalogs/index.hbs b/ui/core/app/templates/orgs/org/projects/project/host-catalogs/index.hbs index 490cb5b65..1d845501b 100644 --- a/ui/core/app/templates/orgs/org/projects/project/host-catalogs/index.hbs +++ b/ui/core/app/templates/orgs/org/projects/project/host-catalogs/index.hbs @@ -1,5 +1,9 @@ + + + +

{{t "resources.host-catalogs"}}

diff --git a/ui/core/app/templates/orgs/org/projects/project/host-catalogs/new.hbs b/ui/core/app/templates/orgs/org/projects/project/host-catalogs/new.hbs index 2f5cdf96a..1ac7bf86f 100644 --- a/ui/core/app/templates/orgs/org/projects/project/host-catalogs/new.hbs +++ b/ui/core/app/templates/orgs/org/projects/project/host-catalogs/new.hbs @@ -1,5 +1,9 @@ + + + +

{{t "titles.new"}}

diff --git a/ui/core/app/templates/orgs/org/projects/project/index.hbs b/ui/core/app/templates/orgs/org/projects/project/index.hbs index 1b255c4e1..5c297e624 100644 --- a/ui/core/app/templates/orgs/org/projects/project/index.hbs +++ b/ui/core/app/templates/orgs/org/projects/project/index.hbs @@ -1,30 +1,35 @@ -
- + {{t 'actions.delete'}} + + -

{{t "resources.project"}}

- - - - {{t 'titles.settings'}} - - - - - - - {{t 'actions.delete'}} - -
+
diff --git a/ui/core/package.json b/ui/core/package.json index cd4e42ab9..a03037825 100644 --- a/ui/core/package.json +++ b/ui/core/package.json @@ -38,6 +38,7 @@ "doctoc": "^1.4.0", "ember-a11y-testing": "^3.0.0", "ember-auto-import": "^1.5.3", + "ember-breadcrumbs": "^0.2.3", "ember-cli": "~3.16.1", "ember-cli-app-version": "^3.2.0", "ember-cli-babel": "^7.17.2", diff --git a/ui/core/tests/integration/components/bread-crumbs-test.js b/ui/core/tests/integration/components/bread-crumbs-test.js new file mode 100644 index 000000000..47ba10bba --- /dev/null +++ b/ui/core/tests/integration/components/bread-crumbs-test.js @@ -0,0 +1,13 @@ +import { module, test } from 'qunit'; +import { setupRenderingTest } from 'ember-qunit'; +//import { render } from '@ember/test-helpers'; +//import { hbs } from 'ember-cli-htmlbars'; + +module('Integration | Component | bread-crumbs', function(hooks) { + setupRenderingTest(hooks); + + // TODO: need bread crumbs tests + test('it renders', async function(assert) { + assert.ok(true); + }); +}); diff --git a/ui/core/tests/unit/controllers/orgs/org/projects-test.js b/ui/core/tests/unit/controllers/orgs/org/projects-test.js new file mode 100644 index 000000000..6176a173c --- /dev/null +++ b/ui/core/tests/unit/controllers/orgs/org/projects-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | orgs/org/projects', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:orgs/org/projects'); + assert.ok(controller); + }); +}); diff --git a/ui/core/tests/unit/controllers/orgs/org/projects/new-test.js b/ui/core/tests/unit/controllers/orgs/org/projects/new-test.js new file mode 100644 index 000000000..9e3731313 --- /dev/null +++ b/ui/core/tests/unit/controllers/orgs/org/projects/new-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | orgs/org/projects/new', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:orgs/org/projects/new'); + assert.ok(controller); + }); +}); diff --git a/ui/core/tests/unit/controllers/orgs/org/projects/project-test.js b/ui/core/tests/unit/controllers/orgs/org/projects/project-test.js new file mode 100644 index 000000000..36a2c2482 --- /dev/null +++ b/ui/core/tests/unit/controllers/orgs/org/projects/project-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | orgs/org/projects/project', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:orgs/org/projects/project'); + assert.ok(controller); + }); +}); diff --git a/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs-test.js b/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs-test.js new file mode 100644 index 000000000..808f14138 --- /dev/null +++ b/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | orgs/org/projects/project/host-catalogs', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:orgs/org/projects/project/host-catalogs'); + assert.ok(controller); + }); +}); diff --git a/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/host-catalog-test.js b/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/host-catalog-test.js new file mode 100644 index 000000000..4efc4b85c --- /dev/null +++ b/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/host-catalog-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | orgs/org/projects/project/host-catalogs/host-catalog', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:orgs/org/projects/project/host-catalogs/host-catalog'); + assert.ok(controller); + }); +}); diff --git a/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/new-test.js b/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/new-test.js new file mode 100644 index 000000000..1981e1857 --- /dev/null +++ b/ui/core/tests/unit/controllers/orgs/org/projects/project/host-catalogs/new-test.js @@ -0,0 +1,12 @@ +import { module, test } from 'qunit'; +import { setupTest } from 'ember-qunit'; + +module('Unit | Controller | orgs/org/projects/project/host-catalogs/new', function(hooks) { + setupTest(hooks); + + // Replace this with your real tests. + test('it exists', function(assert) { + let controller = this.owner.lookup('controller:orgs/org/projects/project/host-catalogs/new'); + assert.ok(controller); + }); +}); diff --git a/yarn.lock b/yarn.lock index b5270240f..90f435da4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7058,6 +7058,13 @@ ember-auto-import@^1.2.15, ember-auto-import@^1.2.19, ember-auto-import@^1.5.3: walk-sync "^0.3.3" webpack "~4.28" +ember-breadcrumbs@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/ember-breadcrumbs/-/ember-breadcrumbs-0.2.3.tgz#a95e02b73fdc2150f3d552e84a479d6dc96a8b31" + integrity sha512-QUiPXwAlTeiXykF5RnyilEgcj9NSFGciAawktImv6V6Lq9sNfmJHZAYZXAg8U/wA1tw7CG0fQl991K+jtuBTKQ== + dependencies: + ember-cli-babel "^7.10.0" + ember-cli-addon-docs-yuidoc@^0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/ember-cli-addon-docs-yuidoc/-/ember-cli-addon-docs-yuidoc-0.2.4.tgz#dd8f5cf4982e8492b255fb677e9d771925e27dce"