antares/src/renderer/components/WorkspaceExploreBarDatabase...

86 lines
2.3 KiB
Vue
Raw Normal View History

2020-06-03 20:56:44 +02:00
<template>
<details class="accordion workspace-explorebar-database">
2020-06-05 21:00:15 +02:00
<summary
class="accordion-header database-name pb-0"
:class="{'text-bold': breadcrumbs.database === database.name}"
@click="changeBreadcrumbs({database: database.name, table:null})"
>
2020-06-03 20:56:44 +02:00
<i class="icon material-icons md-18 mr-1">navigate_next</i>
<i class="material-icons md-18 mr-1">view_agenda</i>
2020-06-05 21:00:15 +02:00
<span>{{ database.name }}</span>
2020-06-03 20:56:44 +02:00
</summary>
<div class="accordion-body">
<div class="database-bables">
<ul class="menu menu-nav pt-0">
<li
v-for="table of database.tables"
:key="table.TABLE_NAME"
class="menu-item"
2020-06-05 21:00:15 +02:00
:class="{'text-bold': breadcrumbs.database === database.name && breadcrumbs.table === table.TABLE_NAME}"
@click="changeBreadcrumbs({database: database.name, table: table.TABLE_NAME})"
2020-06-03 20:56:44 +02:00
>
<a class="table-name">
<i class="material-icons md-18 mr-1">grid_on</i>
<span>{{ table.TABLE_NAME }}</span>
</a>
</li>
</ul>
</div>
</div>
</details>
</template>
<script>
2020-06-05 21:00:15 +02:00
import { mapActions, mapGetters } from 'vuex';
2020-06-03 20:56:44 +02:00
export default {
name: 'WorkspaceExploreBarDatabase',
props: {
2020-06-05 21:00:15 +02:00
database: Object,
connection: Object
},
computed: {
...mapGetters({
getWorkspace: 'workspaces/getWorkspace'
}),
breadcrumbs () {
return this.getWorkspace(this.connection.uid).breadcrumbs;
}
},
methods: {
...mapActions({
changeBreadcrumbs: 'workspaces/changeBreadcrumbs'
})
2020-06-03 20:56:44 +02:00
}
};
</script>
<style lang="scss">
.workspace-explorebar-database{
.database-name,
a.table-name{
display: flex;
align-items: center;
padding: .1rem;
cursor: pointer;
> span{
overflow: hidden;
white-space: nowrap;
display: block;
text-overflow: ellipsis;
}
2020-06-05 21:00:15 +02:00
&:hover{
color: $body-font-color;
background: rgba($color: #FFF, $alpha: .05);
border-radius: 2px;
}
2020-06-03 20:56:44 +02:00
}
.database-bables{
margin-left: 1.2rem;
}
}
</style>