diff --git a/app/components/breadcrumb/index.js b/app/components/breadcrumb/index.js index 8568edbdac1b963f688954568629dd96f889d3c1..63e73b2de0af26a01b2b1a3b93e37ceae0fdc7b0 100644 --- a/app/components/breadcrumb/index.js +++ b/app/components/breadcrumb/index.js @@ -10,6 +10,7 @@ export default class BreadcrumbComponent extends Component { current = this.args.node; while (current && current.get('id')) { + console.log(`pushing current node id = ${current.get('id')}`); _nodes.push(current); current = current.get('parent'); } @@ -18,6 +19,7 @@ export default class BreadcrumbComponent extends Component { } get query() { + if (this.args.extranode) { return { extranode_id: this.args.extranode.id diff --git a/app/components/dual_link_to/index.js b/app/components/dual_link_to/index.js index 1843cc7026cf22d0b58bb59d7ec6709e0cd05ebf..62579022ba7ad125a245d41fff6f0424668378ce 100644 --- a/app/components/dual_link_to/index.js +++ b/app/components/dual_link_to/index.js @@ -88,8 +88,13 @@ export default class DualLinkToComponent extends Component { let ret; ret = this.args.title || this.args.node.get('title'); - if (ret.length > 16) { - return `${ret.substring(0, 16)}...`; + + if (!ret) { + return ''; + } + + if (ret.length > 24) { + return `${ret.substring(0, 24)}...`; } return ret; diff --git a/app/routes/authenticated/document.js b/app/routes/authenticated/document.js index 27127574e992334cb42b04e1bdc23a40c32e1b05..ef7f51be4beee6d30f8e3a23db5fe95a0d29d819 100644 --- a/app/routes/authenticated/document.js +++ b/app/routes/authenticated/document.js @@ -1,6 +1,8 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; +import { getPanelInfo } from './utils'; + export default class DocumentRoute extends Route { @service store; @@ -17,7 +19,6 @@ export default class DocumentRoute extends Route { async model(params) { let doc_adapter, page_adapter, - node_adapter, extranode, document_version, document_version2, @@ -26,7 +27,6 @@ export default class DocumentRoute extends Route { pages_with_url, pages_with_url2; - node_adapter = this.store.adapterFor('node'); page_adapter = this.store.adapterFor('page'); doc_adapter = this.store.adapterFor('document'); @@ -50,7 +50,11 @@ export default class DocumentRoute extends Route { if (params.extranode_id) { - extranode = await node_adapter.findNode(params.extranode_id) + extranode = await getPanelInfo({ + store: this.store, + node_id: params.extranode_id, + page: 1 + }); return { 'document_version': document_version, diff --git a/app/routes/authenticated/nodes.js b/app/routes/authenticated/nodes.js index 778355055e1262da197761437cda8a3a37be84e9..c290e499daf11134a3fa24d5ab329f1ab92eb4f0 100644 --- a/app/routes/authenticated/nodes.js +++ b/app/routes/authenticated/nodes.js @@ -2,6 +2,8 @@ import Route from '@ember/routing/route'; import { inject as service } from '@ember/service'; import RSVP from 'rsvp'; +import { getPanelInfo } from './utils'; + export default class FolderRoute extends Route { @service store; @@ -24,10 +26,9 @@ export default class FolderRoute extends Route { doc_adapter, page_adapter, pages, - current_node, pages_with_url, document_version, - home_folder; + context = {}; adapter = this.store.adapterFor('node'); page_adapter = this.store.adapterFor('page'); @@ -35,6 +36,13 @@ export default class FolderRoute extends Route { await this.currentUser.loadCurrentUser(); + context = await getPanelInfo({ + store: this.store, + node_id: params.node_id, + page: params.page + }); + + if (params.extradoc_id) { document_version = await doc_adapter.getDocumentVersion(params.extradoc_id); pages = await document_version.pages; @@ -49,27 +57,16 @@ export default class FolderRoute extends Route { } if (params.extranode_id) { - return RSVP.hash({ - node: adapter.findNode(params.node_id), - extranode: adapter.findNode(params.extranode_id), - home_folder: this.currentUser.user.home_folder + context['extranode'] = await getPanelInfo({ + store: this.store, + node_id: params.extranode_id, + page: 1 }); } - const {children, pagination} = await adapter.getChildren({ - node_id: params.node_id, - page: params.page - }); - home_folder = await this.currentUser.user.getHomeFolder(); - current_node = await adapter.getFolder(params.node_id); - - return { - current_node, - home_folder, - children, - pagination - }; + context['home_folder'] = await this.currentUser.user.getHomeFolder(); + return context; } setupController(controller, model) { @@ -94,4 +91,5 @@ export default class FolderRoute extends Route { _controller.set('children', model.children); _controller.set('pagination', model.pagination); } + } diff --git a/app/routes/authenticated/utils.js b/app/routes/authenticated/utils.js new file mode 100644 index 0000000000000000000000000000000000000000..434ca7985ee4e28d2ad52581ca4042560e33820b --- /dev/null +++ b/app/routes/authenticated/utils.js @@ -0,0 +1,23 @@ + + +export async function getPanelInfo({store, node_id, page}) { + /* + Returns current_node model its + children nodes models and associated pagination info. + + `page` is integer number of the page + `store` is "@service store" thingy + */ + let node; + const adapter = store.adapterFor('node'); + const {children, pagination} = await adapter.getChildren({node_id, page}); + + + node = await adapter.getFolder(node_id); + + return { + current_node: node, + children: children, + pagination: pagination + }; +} diff --git a/app/templates/authenticated/nodes.hbs b/app/templates/authenticated/nodes.hbs index 4145fb9a85673db09500295c772b029d68c21027..4f949df2f7e85fdb3c8e49e18d0d2f6207ea1647 100644 --- a/app/templates/authenticated/nodes.hbs +++ b/app/templates/authenticated/nodes.hbs @@ -1,7 +1,7 @@ <div class="panels d-flex row"> <Commander @node={{this.mainnode}} - @extranode={{this.extranode}} + @extranode={{this.extranode.current_node}} @children={{this.children}} @pagination={{this.pagination}} @onPanelToggle={{this.onPanelToggle}} @@ -19,8 +19,10 @@ @hint="right" /> {{else}} <Commander - @node={{this.extranode}} + @node={{this.extranode.current_node}} @extranode={{this.mainnode}} + @children={{this.extranode.children}} + @pagination={{this.extranode.pagination}} @onPanelToggle={{this.onPanelToggle}} @dualPanelMode={{this.dualpanel_mode}} @hint="right" /> diff --git a/app/templates/authenticated/viewer.hbs b/app/templates/authenticated/viewer.hbs index 0c2c60d0fc0874f6459002f8b7bfbbb27bd3ee08..fcbafad33dd78d8f94cfbc4960a8b3131f123f63 100644 --- a/app/templates/authenticated/viewer.hbs +++ b/app/templates/authenticated/viewer.hbs @@ -2,7 +2,7 @@ <Viewer @document_version={{@model.document_version}} @pages={{@model.pages}} - @extranode={{this.extranode}} + @extranode={{this.extranode.current_node}} @onPanelToggle={{this.onPanelToggle}} @dualPanelMode={{this.dualpanel_mode}} @hint="left" /> @@ -18,7 +18,9 @@ @hint="right" /> {{else}} <Commander - @node={{this.extranode}} + @node={{this.extranode.current_node}} + @children={{this.extranode.children}} + @pagination={{this.extranode.pagination}} @extradoc={{@model}} @onPanelToggle={{this.onPanelToggle}} @dualPanelMode={{this.dualpanel_mode}}