Added setting modal

This commit is contained in:
Fabio 2020-05-30 12:54:05 +02:00
parent 5dc901a75c
commit d9dbf8e462
15 changed files with 270 additions and 54 deletions

View File

@ -18,7 +18,7 @@ function createMainWindow () {
width: 1600, width: 1600,
height: 1000, height: 1000,
minHeight: 550, minHeight: 550,
minWidth: 450, minWidth: 900,
title: 'Antares', title: 'Antares',
autoHideMenuBar: true, autoHideMenuBar: true,
icon: path.join(__static, 'logo-32.png'), icon: path.join(__static, 'logo-32.png'),

View File

@ -15,6 +15,7 @@
<TheNotificationsBoard /> <TheNotificationsBoard />
<ModalNewConnection v-if="isNewConnModal" /> <ModalNewConnection v-if="isNewConnModal" />
<ModalEditConnection v-if="isEditModal" /> <ModalEditConnection v-if="isEditModal" />
<ModalSettings v-if="isSettingModal" />
</div> </div>
</template> </template>
@ -27,6 +28,7 @@ import TheAppWelcome from '@/components/TheAppWelcome';
import DatabaseWorkspace from '@/components/DatabaseWorkspace'; import DatabaseWorkspace from '@/components/DatabaseWorkspace';
import ModalNewConnection from '@/components/ModalNewConnection'; import ModalNewConnection from '@/components/ModalNewConnection';
import ModalEditConnection from '@/components/ModalEditConnection'; import ModalEditConnection from '@/components/ModalEditConnection';
import ModalSettings from '@/components/ModalSettings';
export default { export default {
name: 'App', name: 'App',
@ -37,7 +39,8 @@ export default {
TheAppWelcome, TheAppWelcome,
DatabaseWorkspace, DatabaseWorkspace,
ModalNewConnection, ModalNewConnection,
ModalEditConnection ModalEditConnection,
ModalSettings
}, },
data () { data () {
return { return {
@ -46,14 +49,15 @@ export default {
computed: { computed: {
...mapGetters({ ...mapGetters({
isLoading: 'application/isLoading', isLoading: 'application/isLoading',
isNewConnModal: 'connections/isNewModal', isNewConnModal: 'application/isNewModal',
isEditModal: 'connections/isEditModal', isEditModal: 'application/isEditModal',
isSettingModal: 'application/isSettingModal',
connections: 'connections/getConnections' connections: 'connections/getConnections'
}) })
}, },
methods: { methods: {
...mapActions({ ...mapActions({
showNewConnModal: 'connections/showNewConnModal' showNewConnModal: 'application/showNewConnModal'
}) })
} }
}; };

View File

@ -2,7 +2,7 @@
<div class="modal modal-sm active"> <div class="modal modal-sm active">
<a class="modal-overlay" @click="hideModal" /> <a class="modal-overlay" @click="hideModal" />
<div class="modal-container"> <div class="modal-container">
<div v-if="hasHeader" class="modal-header text-light"> <div v-if="hasHeader" class="modal-header">
<div class="modal-title h6"> <div class="modal-title h6">
<slot name="header" /> <slot name="header" />
</div> </div>

View File

@ -2,7 +2,7 @@
<div class="modal active modal-sm"> <div class="modal active modal-sm">
<a class="modal-overlay" /> <a class="modal-overlay" />
<div class="modal-container p-0"> <div class="modal-container p-0">
<div class="modal-header text-light"> <div class="modal-header">
<div class="modal-title h6"> <div class="modal-title h6">
{{ $t('word.credentials') }} {{ $t('word.credentials') }}
</div> </div>

View File

@ -2,7 +2,7 @@
<div class="modal active"> <div class="modal active">
<a class="modal-overlay c-hand" @click="closeModal" /> <a class="modal-overlay c-hand" @click="closeModal" />
<div class="modal-container"> <div class="modal-container">
<div class="modal-header text-light"> <div class="modal-header">
<div class="modal-title h6"> <div class="modal-title h6">
{{ $t('message.editConnection') }} {{ $t('message.editConnection') }}
</div> </div>
@ -151,7 +151,7 @@ export default {
}, },
computed: { computed: {
...mapGetters({ ...mapGetters({
connection: 'connections/getSelectedConnection' connection: 'application/getSelectedConnection'
}) })
}, },
created () { created () {
@ -159,7 +159,7 @@ export default {
}, },
methods: { methods: {
...mapActions({ ...mapActions({
closeModal: 'connections/hideEditConnModal', closeModal: 'application/hideEditConnModal',
editConnection: 'connections/editConnection' editConnection: 'connections/editConnection'
}), }),
async startTest () { async startTest () {

View File

@ -2,7 +2,7 @@
<div class="modal active"> <div class="modal active">
<a class="modal-overlay c-hand" @click="closeModal" /> <a class="modal-overlay c-hand" @click="closeModal" />
<div class="modal-container"> <div class="modal-container">
<div class="modal-header text-light"> <div class="modal-header">
<div class="modal-title h6"> <div class="modal-title h6">
{{ $t('message.createNewConnection') }} {{ $t('message.createNewConnection') }}
</div> </div>
@ -164,7 +164,7 @@ export default {
}, },
methods: { methods: {
...mapActions({ ...mapActions({
closeModal: 'connections/hideNewConnModal', closeModal: 'application/hideNewConnModal',
addConnection: 'connections/addConnection' addConnection: 'connections/addConnection'
}), }),
setDefaults () { setDefaults () {

View File

@ -0,0 +1,145 @@
<template>
<div id="settings" class="modal active">
<a class="modal-overlay c-hand" @click="closeModal" />
<div class="modal-container">
<div class="modal-header">
<div class="modal-title h5">
{{ $t('word.settings') }}
</div>
<a class="btn btn-clear c-hand" @click="closeModal" />
</div>
<div class="modal-body p-0">
<div class="panel">
<div class="panel-nav">
<ul class="tab tab-block">
<li
class="tab-item"
:class="{'active': selectedTab === 'general'}"
@click="selectTab('general')"
>
<a class="c-hand">{{ $t('word.general') }}</a>
</li>
<li
class="tab-item"
:class="{'active': selectedTab === 'themes'}"
@click="selectTab('themes')"
>
<a class="c-hand">{{ $t('word.themes') }}</a>
</li>
<li
class="tab-item"
:class="{'active': selectedTab === 'update'}"
@click="selectTab('update')"
>
<a class="c-hand" :class="{'badge': isUpdate}">{{ $t('word.update') }}</a>
</li>
<li
class="tab-item"
:class="{'active': selectedTab === 'about'}"
@click="selectTab('about')"
>
<a class="c-hand">{{ $t('word.about') }}</a>
</li>
</ul>
</div>
<div v-if="selectedTab === 'general'" class="panel-body py-4">
<form class="form-horizontal">
<div class="col-6 col-sm-12">
<div class="form-group">
<div class="col-6 col-sm-12">
<label class="form-label">{{ $t('word.language') }}:</label>
</div>
<div class="col-6 col-sm-12">
<select
v-model="localLocale"
class="form-select"
@change="changeLocale(localLocale)"
>
<option v-for="(locale, key) in locales" :key="key">
{{ locale }}
</option>
</select>
</div>
</div>
</div>
</form>
</div>
<div v-if="selectedTab === 'themes'" class="panel-body py-4">
<!-- -->
</div>
<div v-if="selectedTab === 'update'" class="panel-body py-4">
<!-- -->
</div>
<div v-if="selectedTab === 'about'" class="panel-body py-4">
<div class="text-center">
<img src="logo.svg" width="128">
<h4>{{ appName }}</h4>
<p>
{{ $t('word.version') }}: 0.0.0<br>
<a class="c-hand" @click="openOutside('https://github.com/Fabio286/antares')">GitHub</a>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { mapActions, mapGetters } from 'vuex';
const { shell } = require('electron');
export default {
name: 'ModalSettings',
data () {
return {
isUpdate: false,
localLocale: null,
selectedTab: 'general'
};
},
computed: {
...mapGetters({
appName: 'application/appName',
selectedLocale: 'settings/getLocale'
}),
locales () {
return this.$i18n.availableLocales;
}
},
created () {
this.localLocale = this.selectedLocale;
},
methods: {
...mapActions({
closeModal: 'application/hideSettingModal',
changeLocale: 'settings/changeLocale'
}),
selectTab (tab) {
this.selectedTab = tab;
},
openOutside (link) {
shell.openExternal(link);
}
}
};
</script>
<style lang="scss">
#settings{
.modal-body{
overflow: hidden;
.panel-body{
height: calc(70vh - 70px);
overflow: auto;
}
.badge::after{
background: #32b643;
}
}
}
</style>

View File

@ -50,7 +50,7 @@ export default {
methods: { methods: {
...mapActions({ ...mapActions({
deleteConnection: 'connections/deleteConnection', deleteConnection: 'connections/deleteConnection',
showEditModal: 'connections/showEditConnModal' showEditModal: 'application/showEditConnModal'
}), }),
showConfirmModal () { showConfirmModal () {
this.isConfirmModal = true; this.isConfirmModal = true;

View File

@ -34,7 +34,11 @@
<div class="settingbar-bottom-elements"> <div class="settingbar-bottom-elements">
<ul class="settingbar-elements"> <ul class="settingbar-elements">
<li class="settingbar-element btn btn-link tooltip tooltip-right mb-2" :data-tooltip="$t('word.settings')"> <li
class="settingbar-element btn btn-link tooltip tooltip-right mb-2"
:data-tooltip="$t('word.settings')"
@click="showSettingModal"
>
<i class="settingbar-element-icon material-icons text-light">settings</i> <i class="settingbar-element-icon material-icons text-light">settings</i>
</li> </li>
</ul> </ul>
@ -79,7 +83,8 @@ export default {
methods: { methods: {
...mapActions({ ...mapActions({
updateConnections: 'connections/updateConnections', updateConnections: 'connections/updateConnections',
showNewConnModal: 'connections/showNewConnModal', showNewConnModal: 'application/showNewConnModal',
showSettingModal: 'application/showSettingModal',
selectWorkspace: 'workspaces/selectWorkspace' selectWorkspace: 'workspaces/selectWorkspace'
}), }),
contextMenu (event, connection) { contextMenu (event, connection) {

View File

@ -18,7 +18,13 @@ module.exports = {
disconnect: 'Disconnect', disconnect: 'Disconnect',
disconnected: 'Disconnected', disconnected: 'Disconnected',
refresh: 'Refresh', refresh: 'Refresh',
settings: 'Settings' settings: 'Settings',
general: 'General',
themes: 'Themes',
update: 'Update',
about: 'About',
language: 'Language',
version: 'Version'
}, },
message: { message: {
appWelcome: 'Welcome to Antares SQL Client!', appWelcome: 'Welcome to Antares SQL Client!',

View File

@ -18,7 +18,13 @@ module.exports = {
disconnect: 'Disconnetti', disconnect: 'Disconnetti',
disconnected: 'Disconnesso', disconnected: 'Disconnesso',
refresh: 'Aggiorna', refresh: 'Aggiorna',
settings: 'Impostazioni' settings: 'Impostazioni',
general: 'Generale',
themes: 'Temi',
update: 'Aggiornamento',
about: 'Informazioni',
language: 'Lingua',
version: 'Versione'
}, },
message: { message: {
appWelcome: 'Benvenuto in Antares SQL Client!', appWelcome: 'Benvenuto in Antares SQL Client!',

View File

@ -50,6 +50,24 @@ body{
} }
} }
// Scrollbars
::-webkit-scrollbar {
width: 10px;
height: 10px;
}
::-webkit-scrollbar-track {
background: $bg-color-light;
}
::-webkit-scrollbar-thumb {
background: rgba($color: #FFF, $alpha: .5);
&:hover {
background: rgba($color: #FFF, $alpha: 1);
}
}
// Animations // Animations
@keyframes rotation { @keyframes rotation {
from { from {
@ -84,6 +102,24 @@ body{
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
color: #FFF;
}
}
}
.tab{
border-color: #272727;
}
.panel{
border: none;
}
.badge{
&[data-badge],
&:not([data-badge]){
&::after {
box-shadow: none;
} }
} }
} }

View File

@ -4,20 +4,66 @@ export default {
strict: true, strict: true,
state: { state: {
app_name: 'Antares - SQL Client', app_name: 'Antares - SQL Client',
is_loading: false is_loading: false,
is_new_modal: false,
is_edit_modal: false,
is_setting_modal: false,
selected_conection: {}
}, },
getters: { getters: {
isLoading: state => state.is_loading, isLoading: state => state.is_loading,
appName: state => state.app_name appName: state => state.app_name,
getSelectedConnection: state => state.selected_conection,
isNewModal: state => state.is_new_modal,
isEditModal: state => state.is_edit_modal,
isSettingModal: state => state.is_setting_modal
}, },
mutations: { mutations: {
SET_LOADING_STATUS (state, payload) { SET_LOADING_STATUS (state, payload) {
state.is_loading = payload; state.is_loading = payload;
},
SHOW_NEW_CONNECTION_MODAL (state) {
state.is_new_modal = true;
},
HIDE_NEW_CONNECTION_MODAL (state) {
state.is_new_modal = false;
},
SHOW_EDIT_CONNECTION_MODAL (state, connection) {
state.is_edit_modal = true;
state.selected_conection = connection;
},
HIDE_EDIT_CONNECTION_MODAL (state) {
state.is_edit_modal = false;
},
SHOW_SETTING_MODAL (state) {
state.is_setting_modal = true;
},
HIDE_SETTING_MODAL (state) {
state.is_setting_modal = false;
} }
}, },
actions: { actions: {
setLoadingStatus ({ commit }, payload) { setLoadingStatus ({ commit }, payload) {
commit('SET_LOADING_STATUS', payload); commit('SET_LOADING_STATUS', payload);
},
// Modals
showNewConnModal ({ commit }) {
commit('SHOW_NEW_CONNECTION_MODAL');
},
hideNewConnModal ({ commit }) {
commit('HIDE_NEW_CONNECTION_MODAL');
},
showEditConnModal ({ commit }, connection) {
commit('SHOW_EDIT_CONNECTION_MODAL', connection);
},
hideEditConnModal ({ commit }) {
commit('HIDE_EDIT_CONNECTION_MODAL');
},
showSettingModal ({ commit }) {
commit('SHOW_SETTING_MODAL');
},
hideSettingModal ({ commit }) {
commit('HIDE_SETTING_MODAL');
} }
} }
}; };

View File

@ -4,16 +4,10 @@ export default {
namespaced: true, namespaced: true,
strict: true, strict: true,
state: { state: {
connections: [], connections: []
is_new_modal: false,
is_edit_modal: false,
selected_conection: {}
}, },
getters: { getters: {
getConnections: state => state.connections, getConnections: state => state.connections
getSelectedConnection: state => state.selected_conection,
isNewModal: state => state.is_new_modal,
isEditModal: state => state.is_edit_modal
}, },
mutations: { mutations: {
ADD_CONNECTION (state, connection) { ADD_CONNECTION (state, connection) {
@ -32,19 +26,6 @@ export default {
}, },
UPDATE_CONNECTIONS (state, connections) { UPDATE_CONNECTIONS (state, connections) {
state.connections = connections; state.connections = connections;
},
SHOW_NEW_CONNECTION_MODAL (state) {
state.is_new_modal = true;
},
HIDE_NEW_CONNECTION_MODAL (state) {
state.is_new_modal = false;
},
SHOW_EDIT_CONNECTION_MODAL (state, connection) {
state.is_edit_modal = true;
state.selected_conection = connection;
},
HIDE_EDIT_CONNECTION_MODAL (state) {
state.is_edit_modal = false;
} }
}, },
actions: { actions: {
@ -59,19 +40,6 @@ export default {
}, },
updateConnections ({ commit }, connections) { updateConnections ({ commit }, connections) {
commit('UPDATE_CONNECTIONS', connections); commit('UPDATE_CONNECTIONS', connections);
},
// Modals
showNewConnModal ({ commit }) {
commit('SHOW_NEW_CONNECTION_MODAL');
},
hideNewConnModal ({ commit }) {
commit('HIDE_NEW_CONNECTION_MODAL');
},
showEditConnModal ({ commit }, connection) {
commit('SHOW_EDIT_CONNECTION_MODAL', connection);
},
hideEditConnModal ({ commit }) {
commit('HIDE_EDIT_CONNECTION_MODAL');
} }
} }
}; };

View File

@ -5,7 +5,7 @@ export default {
namespaced: true, namespaced: true,
strict: true, strict: true,
state: { state: {
locale: 'it-IT' locale: 'en-US'
}, },
getters: { getters: {
getLocale: state => state.locale getLocale: state => state.locale