chore: 🤖 integrate breadcrumbs component with service in core

This commit is contained in:
Randall Morey committed 2020-06-10 11:55:58 -04:00
1 parent 38d3a65f40
commit fa580f5c87
25 files changed
+285 -85

No files matched your search

@@ -1,3 +1,6 @@
@use '../../../variables/sizing';
.rose-layout-global-body {
grid-area: body;
padding: sizing.rems(l);
}
View File
Whitespace-only changes.
+15
View File
@@ -0,0 +1,15 @@
{{#if this.breadCrumbs}}
<Rose::Nav::Breadcrumbs as |crumbs|>
{{#each this.breadCrumbs as |crumb|}}
{{#if crumb.model}}
<crumbs.link @route={{crumb.path}} @model={{crumb.model}}>
{{crumb.label}}
</crumbs.link>
{{else}}
<crumbs.link @route={{crumb.path}}>
{{crumb.label}}
</crumbs.link>
{{/if}}
{{/each}}
</Rose::Nav::Breadcrumbs>
{{/if}}
@@ -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');
}
}
@@ -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');
}
}
@@ -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;
}
@@ -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');
}
}
@@ -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;
}
@@ -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');
}
}
-34
View File
@@ -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%;
}
}
}
@@ -1,4 +1,8 @@
<Rose::Layout::Page class="projects-overview" as |page|>
<Rose::Layout::Page as |page|>
<page.breadcrumbs>
<BreadCrumbs />
</page.breadcrumbs>
<page.header>
<h2>{{t "resources.projects"}}</h2>
@@ -1,10 +1,6 @@
<Rose::Layout::Page class="project-new" as |page|>
<Rose::Layout::Page as |page|>
<page.breadcrumbs>
<div class="breadcrumbs">
<LinkTo @route='orgs.org.projects'>{{t "resources.projects"}}</LinkTo>
>
<LinkTo @route='orgs.org.projects.new'>{{t "titles.new"}}</LinkTo>
</div>
<BreadCrumbs />
</page.breadcrumbs>
<page.header>
@@ -16,7 +12,6 @@
@model={{@model}}
@submit={{route-action "save" @model}}
@cancel={{route-action "cancel" @model}}
class="project-new-form"
/>
</page.body>
</Rose::Layout::Page>
@@ -1,18 +1,27 @@
<div class="project-overview">
<Rose::Layout::Page as |page|>
<h2>{{t "resources.host-catalog"}}</h2>
<page.breadcrumbs>
<BreadCrumbs />
</page.breadcrumbs>
<Form::HostCatalog
@model={{@model}}
@submit={{route-action "save" @model}}
@cancel={{route-action "cancel" @model}}
/>
<page.header>
<h2>{{t "resources.host-catalog"}}</h2>
</page.header>
<Rose::Button
@style="warning"
@disabled={{@model.canSave}}
{{on "click" (route-action "delete" @model)}}
>
{{t 'actions.delete'}}
</Rose::Button>
</div>
<page.body>
<Form::HostCatalog
@model={{@model}}
@submit={{route-action "save" @model}}
@cancel={{route-action "cancel" @model}}
/>
<Rose::Button
@style="warning"
@disabled={{@model.canSave}}
{{on "click" (route-action "delete" @model)}}
>
{{t 'actions.delete'}}
</Rose::Button>
</page.body>
</Rose::Layout::Page>
@@ -1,5 +1,9 @@
<Rose::Layout::Page as |page|>
<page.breadcrumbs>
<BreadCrumbs />
</page.breadcrumbs>
<page.header>
<h2>{{t "resources.host-catalogs"}}</h2>
</page.header>
@@ -1,5 +1,9 @@
<Rose::Layout::Page as |page|>
<page.breadcrumbs>
<BreadCrumbs />
</page.breadcrumbs>
<page.header>
<h2>{{t "titles.new"}}</h2>
</page.header>
@@ -1,30 +1,35 @@
<div class="project-overview">
<div class="breadcrumbs">
<LinkTo @route='orgs.org.projects'>{{t "resources.projects"}}</LinkTo>
<Rose::Layout::Page as |page|>
<page.breadcrumbs>
<BreadCrumbs />
</page.breadcrumbs>
<page.header>
<h2>{{t "resources.project"}}</h2>
</page.header>
<page.navigation>
<Rose::Nav::Tabs as |nav|>
<nav.link @route='orgs.org.projects.project'>
{{t 'titles.settings'}}
</nav.link>
</Rose::Nav::Tabs>
</page.navigation>
<page.body>
<Form::Project
@model={{@model}}
@submit={{route-action "save" @model}}
@cancel={{route-action "cancel" @model}}
/>
<Rose::Button
@style="warning"
@disabled={{@model.canSave}}
{{on "click" (route-action "delete" @model)}}
>
<LinkTo @route='orgs.org.projects.project'>{{@model.name}}</LinkTo>
</div>
{{t 'actions.delete'}}
</Rose::Button>
</page.body>
<h2>{{t "resources.project"}}</h2>
<Rose::Nav::Tabs as |nav|>
<nav.link @route='orgs.org.projects.project'>
{{t 'titles.settings'}}
</nav.link>
</Rose::Nav::Tabs>
<Form::Project
@model={{@model}}
@submit={{route-action "save" @model}}
@cancel={{route-action "cancel" @model}}
class="project-new-form"
/>
<Rose::Button
@style="warning"
@disabled={{@model.canSave}}
{{on "click" (route-action "delete" @model)}}
>
{{t 'actions.delete'}}
</Rose::Button>
</div>
</Rose::Layout::Page>
+1
View File
@@ -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",
@@ -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);
});
});
@@ -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);
});
});
@@ -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);
});
});
@@ -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);
});
});
@@ -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);
});
});
@@ -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);
});
});
@@ -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);
});
});
+7
View File
@@ -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"