diff --git a/client/components/ExternalLibs/BookmarkSettings/BookmarkSettings.vue b/client/components/ExternalLibs/BookmarkSettings/BookmarkSettings.vue index 90ca0dc6..1eeb6f3d 100644 --- a/client/components/ExternalLibs/BookmarkSettings/BookmarkSettings.vue +++ b/client/components/ExternalLibs/BookmarkSettings/BookmarkSettings.vue @@ -103,11 +103,14 @@ class BookmarkSettings extends BookmarkSettingsProps { get nodes() { const result = []; - this.expanded = []; + const expanded = []; + this.links = {}; let i = 0; this.libs.groups.forEach(group => { const rkey = `${i}`; const g = {label: group.r, key: rkey, children: []}; + this.links[rkey] = group.r; + let j = 0; group.list.forEach(link => { const key = `${i}-${j}`; @@ -115,8 +118,10 @@ class BookmarkSettings extends BookmarkSettingsProps { label: (link.c ? link.c + ' ': '') + lu.removeOrigin(link.l), key }); - if (link.l == this.libs.startLink && this.expanded.indexOf(rkey) < 0) { - this.expanded.push(rkey); + + this.links[key] = link.l; + if (link.l == this.libs.startLink && expanded.indexOf(rkey) < 0) { + expanded.push(rkey); } j++; @@ -126,6 +131,10 @@ class BookmarkSettings extends BookmarkSettingsProps { i++; }); + this.$nextTick(() => { + this.expanded = expanded; + }); + return result; } @@ -135,6 +144,15 @@ class BookmarkSettings extends BookmarkSettingsProps { } openSelected() { + if (!this.selected) + return; + if (this.selected.indexOf('-') < 0) {//rootLink + this.$emit('do-action', {action: 'setRootLink', data: this.links[this.selected]}); + } else {//selectedLink + this.$emit('do-action', {action: 'setSelectedLink', data: this.links[this.selected]}); + } + + //this.close(); } openOptions() { diff --git a/client/components/ExternalLibs/ExternalLibs.vue b/client/components/ExternalLibs/ExternalLibs.vue index 2439aaf5..463aa6a1 100644 --- a/client/components/ExternalLibs/ExternalLibs.vue +++ b/client/components/ExternalLibs/ExternalLibs.vue @@ -47,7 +47,7 @@ Вернуться на стартовую страницу - + Загрузить URL во фрейм @@ -97,7 +97,7 @@ - + @@ -292,6 +292,14 @@ class ExternalLibs extends Vue { this.updateSelectedLink(); } + doAction(event) { + switch (event.action) { + case 'setLibs': this.commitLibs(event.data); break; + case 'setRootLink': this.rootLink = event.data; this.rootLinkInput(); break; + case 'setSelectedLink': this.selectedLink = event.data; this.selectedLinkInput(); break; + } + } + get mode() { return this.$store.state.config.mode; }