Skip to content
Snippets Groups Projects
Commit 4efdb306 authored by Eugen Ciur's avatar Eugen Ciur
Browse files

pretty good dual panel mode

parent c02c3697
No related branches found
No related tags found
No related merge requests found
...@@ -4,7 +4,10 @@ ...@@ -4,7 +4,10 @@
<li class="breadcrumb-item"> <li class="breadcrumb-item">
<LinkTo <LinkTo
@route="authenticated.nodes" @route="authenticated.nodes"
@model={{node}}>{{node.title}}</LinkTo> @model={{node.id}}
@query={{this.query}}>
{{node.title}}
</LinkTo>
</li> </li>
{{/each}} {{/each}}
</ol> </ol>
......
...@@ -20,4 +20,13 @@ export default class BreadcrumbComponent extends Component { ...@@ -20,4 +20,13 @@ export default class BreadcrumbComponent extends Component {
return _nodes.reverse(); return _nodes.reverse();
} }
get query() {
if (this.args.extranode) {
return {
extranode_id: this.args.extranode.id
}
}
return {};
}
} }
...@@ -2,7 +2,9 @@ ...@@ -2,7 +2,9 @@
<div class="icon folder"></div> <div class="icon folder"></div>
<div class="title"> <div class="title">
<LinkTo <LinkTo
@route="authenticated.nodes" @model={{@model}}> @route="authenticated.nodes"
@model={{@model.id}}
@query={{this.query}}>
{{@model.title}} {{@model.title}}
</LinkTo> </LinkTo>
</div> </div>
......
import { A } from '@ember/array';
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
export default class FolderComponent extends Component {
get query() {
if (this.args.extranode) {
return {
extranode_id: this.args.extranode.id
}
}
return {};
}
}
<div class="panel">
<div> <div>
<button class="btn btn-bordered btn-light btn-flat" <button class="btn btn-bordered btn-light btn-flat"
type="button"> type="button">
...@@ -18,8 +19,9 @@ ...@@ -18,8 +19,9 @@
@onClose={{this.closeNewFolderModal}} @onClose={{this.closeNewFolderModal}}
{{show-when this.show_new_folder_modal}} /> {{show-when this.show_new_folder_modal}} />
<Breadcrumb @node={{@node}} /> <Breadcrumb @node={{@node}} @extranode={{@extranode}} />
{{#each @nodes as |node|}} {{#each @nodes as |node|}}
<Folder @model={{node}} /> <Folder @model={{node}} @extranode={{@extranode}} />
{{/each}} {{/each}}
</div>
\ No newline at end of file
...@@ -4,7 +4,5 @@ import { tracked } from "@glimmer/tracking"; ...@@ -4,7 +4,5 @@ import { tracked } from "@glimmer/tracking";
export default class NodesController extends Controller { export default class NodesController extends Controller {
queryParams = ['extrapanelc']; queryParams = ['extranode_id'];
@tracked extrapanelc = null;
} }
import Route from '@ember/routing/route'; import Route from '@ember/routing/route';
import { inject as service } from '@ember/service'; import { inject as service } from '@ember/service';
import { tracked } from "@glimmer/tracking"; import { tracked } from "@glimmer/tracking";
import RSVP from 'rsvp';
export default class FolderRoute extends Route { export default class FolderRoute extends Route {
@service store; @service store;
queryParams = ['extra']; queryParams = {
@tracked extra = null; extranode_id: {
refreshModel: true
}
};
model(params) {
let response, adapter;
async model(params) { adapter = this.store.adapterFor('node');
let response, adapter, query_params;
if (params.extranode_id) {
return RSVP.hash({
node: adapter.findNode(params.node_id),
extranode: adapter.findNode(params.extranode_id)
});
}
query_params = this.paramsFor('authenticated.nodes'); return adapter.findNode(params.node_id);
console.log(`query_params=${this.query_params}`); }
console.log(`extra=${this.extra}`);
adapter = this.store.adapterFor('node'); setupController(controller, model) {
let _controller = this.controllerFor('authenticated.nodes');
return adapter.findNode(params.node_id); if (model.extranode) {
_controller.set('dualpanel_mode', true);
_controller.set('mainnode', model.node);
_controller.set('extranode', model.extranode);
} else {
_controller.set('dualpanel_mode', false);
_controller.set('mainnode', model);
}
} }
} }
<div class="panels d-flex">
<Panel <Panel
@node={{@model}} @node={{this.mainnode}}
@nodes={{@model.children}} /> @nodes={{this.mainnode.children}}
@extranode={{this.extranode}} />
{{#if this.extrapanelc}} {{#if this.extranode}}
Extra Panel={{this.extrapanelc}}! <Panel
@node={{this.extranode}}
@nodes={{this.extranode.children}}
@mainnode={{this.mainnode}} />
{{/if}} {{/if}}
</div>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment