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

cleaning up DualLinkTo

parent 81f7588c
Branches
No related tags found
Loading
......@@ -18,28 +18,36 @@ export default class DualLinkToComponent extends Component {
/nodes/<node_id> - opens commander single panel model, with <node_id>
root folder/node
/documents/<node_id> - opens viewer in single panel mode, with <node_id>
as current document/node
/document/<doc_id> - opens viewer in single panel mode, with <doc_id>
as current document
Dual panel models:
/nodes/<node_id>?extranode_id=<extranode_id> - opens dual panel mode. On left side
commander is opened with <node_id> as root folder/node. On right panel
there will be opened a commander or a viewer, depending on what node type is
<extranode_id>.
there will be opened a commander with <extranode_id> as root
/documents/<node_id>?extranode_id=<extranode_id> - opens dual panel mode. On left side
document viewer is opened with <node_id> as root document/node. On right panel
there will be opened a commander or a viewer, depending on what node type is
<extranode_id>.
/nodes/<node_id>?extradoc_id=<extradoc_id> - opens dual panel mode. On left side
commander is opened with <node_id> as root folder/node. On right panel
there will be opened a viewer with <extradoc_id> document opened
/document/<doc_id>?extranode_id=<extranode_id> - opens dual panel mode. On left side
document viewer is opened with <doc_id> as root document. On right panel
there will be opened a commander with <extranode_id> as root node
/document/<doc_id>?extradoc_id=<extradoc_id> - opens dual panel mode. On left side
document viewer is opened with <doc_id> as root document. On right panel
there will be opened a viewer with <doc_id> as documented.
*/
get route() {
let node,
extranode,
hint;
hint = this.args.hint;
node = this.args.node;
extranode = this.args.extranode;
if (hint == 'left') {
if (node && node.get('nodeType') === 'document') {
......@@ -51,15 +59,29 @@ export default class DualLinkToComponent extends Component {
}
}
// hint == 'right'
if (extranode && extranode.get('nodeType') === 'document') {
return 'authenticated.document';
}
return 'authenticated.nodes';
}
get model() {
if (this.args.hint == 'left') {
return this.args.node;
let hint,
node,
extranode;
hint = this.args.hint;
node = this.args.node;
extranode = this.args.extranode;
if (hint === 'left') {
return node;
}
return this.args.extranode;
return extranode;
}
get title() {
......@@ -76,16 +98,28 @@ export default class DualLinkToComponent extends Component {
hint = this.args.hint;
if ((hint === 'left') && extranode) {
if (extranode.get('nodeType') === 'document') {
return {
'extradoc_id': extranode.get('id')
};
} else if (extranode.get('nodeType') === 'folder') {
return {
'extranode_id': extranode.get('id')
};
}
}
if (hint === 'right' && node) {
if (node.get('nodeType') === 'document') {
return {
'extradoc_id': node.get('id')
}
} else if (node.get('nodeType') === 'folder' ) {
return {
'extranode_id': node.get('id')
}
}
}
return {};
} // end of query
......
......
......@@ -4,13 +4,12 @@
</div>
<Breadcrumb
@node={{@model.document_version.document}}
@node={{@document_version.document}}
@extranode={{@extranode}}
@hint="left" />
@hint={{@hint}} />
<div class="d-flex">
<Viewer::Thumbnails @pages={{@model.pages}} />
<Viewer::Pages @pages={{@model.pages}} />
<Viewer::Thumbnails @pages={{@pages}} />
<Viewer::Pages @pages={{@pages}} />
</div>
</div>
......@@ -8,7 +8,8 @@ export default class DocumentController extends Controller {
@service currentUser;
@tracked extranode_id = null;
queryParams = ['extranode_id']
@tracked extradoc_id = null;
queryParams = ['extranode_id', 'extradoc_id']
@action
onPanelToggle() {
......
......
......@@ -8,7 +8,8 @@ export default class NodesController extends Controller {
@service currentUser;
@tracked extranode_id = null;
queryParams = ['extranode_id']
@tracked extradoc_id = null;
queryParams = ['extranode_id', 'extradoc_id']
@action
onPanelToggle() {
......
......
import Route from '@ember/routing/route';
import { inject as service } from '@ember/service';
import RSVP from 'rsvp';
export default class DocumentRoute extends Route {
......@@ -9,6 +8,9 @@ export default class DocumentRoute extends Route {
queryParams = {
extranode_id: {
refreshModel: true
},
extradoc_id: {
refreshModel: true
}
};
......@@ -18,8 +20,11 @@ export default class DocumentRoute extends Route {
node_adapter,
extranode,
document_version,
document_version2,
pages,
pages_with_url;
pages2,
pages_with_url,
pages_with_url2;
node_adapter = this.store.adapterFor('node');
page_adapter = this.store.adapterFor('page');
......@@ -29,6 +34,19 @@ export default class DocumentRoute extends Route {
pages = await document_version.pages;
pages_with_url = await page_adapter.loadBinaryImages(pages);
if (params.extradoc_id) {
document_version2 = await doc_adapter.getDocumentVersion(params.extradoc_id);
pages2 = await document_version2.pages;
pages_with_url2 = await page_adapter.loadBinaryImages(pages2);
return {
'document_version': document_version,
'pages': pages_with_url,
'extra_document_version': document_version2,
'extra_pages': pages_with_url2,
};
}
if (params.extranode_id) {
extranode = await node_adapter.findNode(params.extranode_id)
......@@ -58,6 +76,10 @@ export default class DocumentRoute extends Route {
console.log("Document controller setting dualpanel_mode to true");
_controller.set('dualpanel_mode', true);
_controller.set('extranode', model.extranode);
} else if (model.extra_document_version) {
_controller.set('dualpanel_mode', true);
_controller.set('extra_document_version', model.extra_document_version);
_controller.set('extra_pages', model.pages);
} else {
_controller.set('dualpanel_mode', false);
_controller.set('extranode', undefined);
......
......
......@@ -10,15 +10,39 @@ export default class FolderRoute extends Route {
queryParams = {
extranode_id: {
refreshModel: true
},
extradoc_id: {
refreshModel: true
}
};
async model(params) {
let adapter;
let adapter,
doc_adapter,
page_adapter,
pages,
pages_with_url,
document_version;
adapter = this.store.adapterFor('node');
page_adapter = this.store.adapterFor('page');
doc_adapter = this.store.adapterFor('document');
await this.currentUser.loadCurrentUser();
if (params.extradoc_id) {
document_version = await doc_adapter.getDocumentVersion(params.extradoc_id);
pages = await document_version.pages;
pages_with_url = await page_adapter.loadBinaryImages(pages);
return RSVP.hash({
node: adapter.findNode(params.node_id),
home_folder: this.currentUser.user.home_folder,
pages: pages_with_url,
document_version: document_version
});
}
if (params.extranode_id) {
return RSVP.hash({
node: adapter.findNode(params.node_id),
......@@ -40,6 +64,11 @@ export default class FolderRoute extends Route {
if (model.extranode) {
_controller.set('dualpanel_mode', true);
_controller.set('extranode', model.extranode);
} else if (model.document_version) {
_controller.set('dualpanel_mode', true);
_controller.set('document_version', model.document_version);
_controller.set('pages', model.pages);
_controller.set('extranode', model.document_version.document);
} else {
_controller.set('dualpanel_mode', false);
_controller.set('extranode', undefined);
......
......
......@@ -7,6 +7,15 @@
@hint="left" />
{{#if this.dualpanel_mode}}
{{#if this.document_version}}
<Viewer
@document_version={{this.document_version}}
@pages={{this.pages}}
@extranode={{this.extranode}}
@onPanelToggle={{this.onPanelToggle}}
@dualPanelMode={{this.dualpanel_mode}}
@hint="right" />
{{else}}
<Commander
@node={{this.extranode}}
@extranode={{this.mainnode}}
......@@ -14,4 +23,5 @@
@dualPanelMode={{this.dualpanel_mode}}
@hint="right" />
{{/if}}
{{/if}}
</div>
<div class="panels d-flex row">
<Viewer
@model={{@model}}
@document_version={{@model.document_version}}
@pages={{@model.pages}}
@extranode={{this.extranode}}
@onPanelToggle={{this.onPanelToggle}}
@dualPanelMode={{this.dualpanel_mode}}
@hint="left" />
{{#if this.dualpanel_mode}}
{{#if this.extra_document_version}}
<Viewer
@document_version={{this.extra_document_version}}
@pages={{this.extra_pages}}
@extranode={{@model.document_version}}
@onPanelToggle={{this.onPanelToggle}}
@dualPanelMode={{this.dualpanel_mode}}
@hint="right" />
{{else}}
<Commander
@node={{this.extranode}}
@extradoc={{@model}}
......@@ -14,4 +24,5 @@
@dualPanelMode={{this.dualpanel_mode}}
@hint="right" />
{{/if}}
{{/if}}
</div>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment