Skip to content

Commit c9cfa08

Browse files
authored
776 Database tree left side clicks (#799)
adds handler to accept clicks on the left side of the database tree adds handler for double clicks on the left side of the database tree refs: #776
1 parent 3aa6ea1 commit c9cfa08

File tree

8 files changed

+39
-4
lines changed

8 files changed

+39
-4
lines changed

pgmanage/app/static/pgmanage_frontend/src/components/TreeMariaDB.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<PowerTree ref="tree" v-model="nodes" @nodedblclick="doubleClickNode" @toggle="onToggle"
3-
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" tabindex="0">
3+
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" @click="handleLeftSideClick" @dblclick="handleLeftSideDblClick" tabindex="0">
44
<template v-slot:toggle="{ node }">
55
<i v-if="node.isExpanded" class="exp_col fas fa-chevron-down"></i>
66
<i v-if="!node.isExpanded" class="exp_col fas fa-chevron-right"></i>

pgmanage/app/static/pgmanage_frontend/src/components/TreeMssql.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
@nodecontextmenu="onContextMenu"
88
:allow-multiselect="false"
99
@nodeclick="onClickHandler"
10+
@click="handleLeftSideClick"
11+
@dblclick="handleLeftSideDblClick"
1012
tabindex="0"
1113
>
1214
<template v-slot:toggle="{ node }">

pgmanage/app/static/pgmanage_frontend/src/components/TreeMysql.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<PowerTree ref="tree" v-model="nodes" @nodedblclick="doubleClickNode" @toggle="onToggle"
3-
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" tabindex="0">
3+
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" @click="handleLeftSideClick" @dblclick="handleLeftSideDblClick" tabindex="0">
44
<template v-slot:toggle="{ node }">
55
<i v-if="node.isExpanded" class="exp_col fas fa-chevron-down"></i>
66
<i v-if="!node.isExpanded" class="exp_col fas fa-chevron-right"></i>

pgmanage/app/static/pgmanage_frontend/src/components/TreeOracle.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<PowerTree ref="tree" v-model="nodes" @nodedblclick="doubleClickNode" @toggle="onToggle"
3-
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" tabindex="0">
3+
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" @click="handleLeftSideClick" @dblclick="handleLeftSideDblClick" tabindex="0">
44
<template v-slot:toggle="{ node }">
55
<i v-if="node.isExpanded" class="exp_col fas fa-chevron-down"></i>
66
<i v-if="!node.isExpanded" class="exp_col fas fa-chevron-right"></i>

pgmanage/app/static/pgmanage_frontend/src/components/TreePostgresql.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<PowerTree ref="tree" v-model="nodes" @nodedblclick="doubleClickNode" @toggle="onToggle"
3-
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" tabindex="0">
3+
@nodecontextmenu="onContextMenu" :allow-multiselect="false" @nodeclick="onClickHandler" @click="handleLeftSideClick" @dblclick="handleLeftSideDblClick" tabindex="0">
44
<template v-slot:toggle="{ node }">
55
<i v-if="node.isExpanded" class="exp_col fas fa-chevron-down"></i>
66
<i v-if="!node.isExpanded" class="exp_col fas fa-chevron-right"></i>

pgmanage/app/static/pgmanage_frontend/src/components/TreeSnippets.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
@nodecontextmenu="onContextMenu"
88
:allow-multiselect="false"
99
@nodeclick="onClickHandler"
10+
@click="handleLeftSideClick"
1011
>
1112
<template v-slot:toggle="{ node }">
1213
<i v-if="node.isExpanded" class="exp_col fas fa-chevron-down"></i>

pgmanage/app/static/pgmanage_frontend/src/components/TreeSqlite.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
@nodecontextmenu="onContextMenu"
88
:allow-multiselect="false"
99
@nodeclick="onClickHandler"
10+
@click="handleLeftSideClick"
11+
@dblclick="handleLeftSideDblClick"
1012
tabindex="0"
1113
>
1214
<template v-slot:toggle="{ node }">

pgmanage/app/static/pgmanage_frontend/src/mixins/power_tree.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,5 +480,35 @@ export default {
480480
});
481481
}
482482
},
483+
resolveNodeFromEvent(event) {
484+
let target = event.target;
485+
let nodePath = null;
486+
487+
if (target.classList.contains("vue-power-tree-gap")) {
488+
let parent = target.parentElement;
489+
nodePath = JSON.parse(parent.getAttribute("path"));
490+
} else if (!!target.getAttribute("path")) {
491+
nodePath = JSON.parse(target.getAttribute("path"));
492+
}
493+
494+
if (!nodePath) return;
495+
496+
const node = this.$refs.tree.getNode(nodePath);
497+
498+
return node;
499+
},
500+
handleLeftSideClick(event) {
501+
const node = this.resolveNodeFromEvent(event);
502+
if (!node) return;
503+
504+
this.$refs.tree.select(node.path);
505+
this.onClickHandler(node, event);
506+
},
507+
handleLeftSideDblClick(event) {
508+
const node = this.resolveNodeFromEvent(event);
509+
if (!node) return;
510+
511+
this.doubleClickNode(node);
512+
},
483513
},
484514
};

0 commit comments

Comments
 (0)