|
|
@ -26,16 +26,24 @@ |
|
|
|
<!– <v-icon v-else>mdi-arrow-expand-horizontal</v-icon>–> |
|
|
|
<!– <v-icon v-else>mdi-arrow-expand-horizontal</v-icon>–> |
|
|
|
|
|
|
|
|
|
|
|
</v-btn>--> |
|
|
|
</v-btn>--> |
|
|
|
<!-- <v-text-field--> |
|
|
|
<v-text-field |
|
|
|
<!-- v-model="search"--> |
|
|
|
v-model="search" |
|
|
|
<!-- label="Search Project"--> |
|
|
|
placeholder="Search tables" |
|
|
|
<!-- dense--> |
|
|
|
dense |
|
|
|
<!-- solo--> |
|
|
|
hide-details |
|
|
|
<!-- hide-details--> |
|
|
|
class="elevation-0 mr-2 pl-3 pr-1 caption nc-table-list-filter" |
|
|
|
<!-- clearable--> |
|
|
|
> |
|
|
|
<!-- clear-icon="mdi-close-circle-outline"--> |
|
|
|
<template #prepend-inner> |
|
|
|
<!-- class="pa-2"--> |
|
|
|
<v-icon small class="mt-2 ml-2 mr-1 "> |
|
|
|
<!-- ></v-text-field>--> |
|
|
|
mdi-magnify |
|
|
|
|
|
|
|
</v-icon> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
<template #append> |
|
|
|
|
|
|
|
<v-icon v-if="search" class="mt-3 mr-3" color="grey" x-small @click="search=''"> |
|
|
|
|
|
|
|
mdi-close |
|
|
|
|
|
|
|
</v-icon> |
|
|
|
|
|
|
|
</template> |
|
|
|
|
|
|
|
</v-text-field> |
|
|
|
|
|
|
|
|
|
|
|
<v-skeleton-loader |
|
|
|
<v-skeleton-loader |
|
|
|
v-if="!projects || !projects.length" |
|
|
|
v-if="!projects || !projects.length" |
|
|
@ -108,7 +116,7 @@ |
|
|
|
</v-tooltip> |
|
|
|
</v-tooltip> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
</v-treeview> |
|
|
|
</v-treeview> |
|
|
|
<v-container v-else fluid class="px-1"> |
|
|
|
<v-container v-else fluid class="px-1 pt-0"> |
|
|
|
<v-list dense expand class="nc-project-tree nc-single-env-project-tree"> |
|
|
|
<v-list dense expand class="nc-project-tree nc-single-env-project-tree"> |
|
|
|
<template v-for="item in listViewArr"> |
|
|
|
<template v-for="item in listViewArr"> |
|
|
|
<!-- v-if="item.children && item.children.length"--> |
|
|
|
<!-- v-if="item.children && item.children.length"--> |
|
|
@ -116,7 +124,7 @@ |
|
|
|
v-if="isNested(item) && showNode(item)" |
|
|
|
v-if="isNested(item) && showNode(item)" |
|
|
|
:key="item.type" |
|
|
|
:key="item.type" |
|
|
|
color="textColor" |
|
|
|
color="textColor" |
|
|
|
:value="isActiveList(item)" |
|
|
|
:value="isActiveList(item) || search" |
|
|
|
@click=" |
|
|
|
@click=" |
|
|
|
!(item.children && item.children.length) && addTab({ ...item }, false, false) |
|
|
|
!(item.children && item.children.length) && addTab({ ...item }, false, false) |
|
|
|
" |
|
|
|
" |
|
|
@ -131,7 +139,7 @@ |
|
|
|
<v-list-item-icon> |
|
|
|
<v-list-item-icon> |
|
|
|
<v-icon |
|
|
|
<v-icon |
|
|
|
v-if="open && icons[item._nodes.type].openIcon" |
|
|
|
v-if="open && icons[item._nodes.type].openIcon" |
|
|
|
x-small |
|
|
|
small |
|
|
|
style="cursor: auto" |
|
|
|
style="cursor: auto" |
|
|
|
:color="icons[item._nodes.type].openColor" |
|
|
|
:color="icons[item._nodes.type].openColor" |
|
|
|
> |
|
|
|
> |
|
|
@ -139,7 +147,7 @@ |
|
|
|
</v-icon> |
|
|
|
</v-icon> |
|
|
|
<v-icon |
|
|
|
<v-icon |
|
|
|
v-else |
|
|
|
v-else |
|
|
|
x-small |
|
|
|
small |
|
|
|
style="cursor: auto" |
|
|
|
style="cursor: auto" |
|
|
|
:color="icons[item._nodes.type].color" |
|
|
|
:color="icons[item._nodes.type].color" |
|
|
|
> |
|
|
|
> |
|
|
@ -149,17 +157,25 @@ |
|
|
|
<v-list-item-title> |
|
|
|
<v-list-item-title> |
|
|
|
<v-tooltip v-if="!isNonAdminAccessAllowed(item)" top> |
|
|
|
<v-tooltip v-if="!isNonAdminAccessAllowed(item)" top> |
|
|
|
<template #activator="{ on }"> |
|
|
|
<template #activator="{ on }"> |
|
|
|
<span class="caption font-weight-regular" v-on="on"> |
|
|
|
<span v-if="item.type === 'tableDir'" class="caption font-weight-regular" v-on="on"> |
|
|
|
|
|
|
|
Tables<template v-if="item.children && item.children.length"> ({{ |
|
|
|
|
|
|
|
item.children.filter(child => !search || child.name.toLowerCase().includes(search.toLowerCase())).length |
|
|
|
|
|
|
|
}})</template></span> |
|
|
|
|
|
|
|
<span v-else class="caption font-weight-regular" v-on="on"> |
|
|
|
{{ item.name }}</span> |
|
|
|
{{ item.name }}</span> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<span class="caption">Only visible to Creator</span> |
|
|
|
<span class="caption">Only visible to Creator</span> |
|
|
|
</v-tooltip> |
|
|
|
</v-tooltip> |
|
|
|
<span |
|
|
|
<template |
|
|
|
v-else |
|
|
|
v-else |
|
|
|
class="caption font-weight-regular" |
|
|
|
|
|
|
|
@dblclick="showSqlClient = true" |
|
|
|
|
|
|
|
> |
|
|
|
> |
|
|
|
|
|
|
|
<span v-if="item.type === 'tableDir'" class="caption font-weight-regular" v-on="on"> |
|
|
|
|
|
|
|
Tables<template v-if="item.children && item.children.length"> ({{ |
|
|
|
|
|
|
|
item.children.filter(child => !search || child.name.toLowerCase().includes(search.toLowerCase())).length |
|
|
|
|
|
|
|
}})</template></span> |
|
|
|
|
|
|
|
<span v-else class="caption font-weight-regular" v-on="on"> |
|
|
|
{{ item.name }}</span> |
|
|
|
{{ item.name }}</span> |
|
|
|
|
|
|
|
</template> |
|
|
|
</v-list-item-title> |
|
|
|
</v-list-item-title> |
|
|
|
|
|
|
|
|
|
|
|
<v-spacer /> |
|
|
|
<v-spacer /> |
|
|
@ -186,6 +202,7 @@ |
|
|
|
<v-list-item-group :value="selectedItem"> |
|
|
|
<v-list-item-group :value="selectedItem"> |
|
|
|
<v-list-item |
|
|
|
<v-list-item |
|
|
|
v-for="child in item.children || []" |
|
|
|
v-for="child in item.children || []" |
|
|
|
|
|
|
|
v-show="!search || child.name.toLowerCase().includes(search.toLowerCase())" |
|
|
|
:key="child.key" |
|
|
|
:key="child.key" |
|
|
|
color="x-active" |
|
|
|
color="x-active" |
|
|
|
active-class="font-weight-bold" |
|
|
|
active-class="font-weight-bold" |
|
|
@ -713,7 +730,7 @@ export default { |
|
|
|
open: [], |
|
|
|
open: [], |
|
|
|
search: null, |
|
|
|
search: null, |
|
|
|
menuVisible: false, |
|
|
|
menuVisible: false, |
|
|
|
excelImportDialog:false, |
|
|
|
excelImportDialog: false, |
|
|
|
x: 0, |
|
|
|
x: 0, |
|
|
|
y: 0, |
|
|
|
y: 0, |
|
|
|
menuItem: null, |
|
|
|
menuItem: null, |
|
|
@ -934,7 +951,7 @@ export default { |
|
|
|
this.miniExpanded = false; |
|
|
|
this.miniExpanded = false; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
onExcelImport(){ |
|
|
|
onExcelImport() { |
|
|
|
if (!this.menuItem || this.menuItem.type !== 'tableDir') { |
|
|
|
if (!this.menuItem || this.menuItem.type !== 'tableDir') { |
|
|
|
this.menuItem = this.listViewArr.find(n => n.type === 'tableDir'); |
|
|
|
this.menuItem = this.listViewArr.find(n => n.type === 'tableDir'); |
|
|
|
} |
|
|
|
} |
|
|
@ -1165,7 +1182,7 @@ export default { |
|
|
|
await this.loadViews(this.menuItem); |
|
|
|
await this.loadViews(this.menuItem); |
|
|
|
this.$toast.success('Views refreshed').goAway(1000); |
|
|
|
this.$toast.success('Views refreshed').goAway(1000); |
|
|
|
} else if (action === 'IMPORT_EXCEL') { |
|
|
|
} else if (action === 'IMPORT_EXCEL') { |
|
|
|
this.excelImportDialog=true |
|
|
|
this.excelImportDialog = true |
|
|
|
} else if (action === 'ENV_DB_FUNCTIONS_REFRESH') { |
|
|
|
} else if (action === 'ENV_DB_FUNCTIONS_REFRESH') { |
|
|
|
await this.loadFunctions(this.menuItem); |
|
|
|
await this.loadFunctions(this.menuItem); |
|
|
|
this.$toast.success('Functions refreshed').goAway(1000); |
|
|
|
this.$toast.success('Functions refreshed').goAway(1000); |
|
|
@ -1768,6 +1785,24 @@ export default { |
|
|
|
.nested:hover .action { |
|
|
|
.nested:hover .action { |
|
|
|
opacity: 1; |
|
|
|
opacity: 1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/deep/ .nc-table-list-filter .v-input__slot { |
|
|
|
|
|
|
|
min-height: 30px !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
/deep/ .nc-table-list-filter .v-input__slot label { |
|
|
|
|
|
|
|
top: 6px; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/deep/ .nc-table-list-filter.theme--light.v-text-field > .v-input__control > .v-input__slot:before { |
|
|
|
|
|
|
|
border-top-color: rgba(0, 0, 0, 0.12) !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/deep/ .nc-table-list-filter.theme--dark.v-text-field > .v-input__control > .v-input__slot:before { |
|
|
|
|
|
|
|
border-top-color: rgba(255, 255, 255, 0.12) !important; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
</style> |
|
|
|
</style> |
|
|
|
|
|
|
|
|
|
|
|
<!-- |
|
|
|
<!-- |
|
|
|