diff --git a/src/assets/styles/buttons.css b/src/assets/styles/buttons.css index 278e238..f7ca65c 100644 --- a/src/assets/styles/buttons.css +++ b/src/assets/styles/buttons.css @@ -1,3 +1,12 @@ +button { + box-sizing: border-box; + height: 36px; + padding: 0 12px; + font-size: 14px; + font-weight: 600; + cursor: pointer; +} + button:focus { outline: none; } @@ -5,16 +14,10 @@ button:focus { button.primary { background: var(--color-accent); border: 1px solid var(--color-accent-shade); - box-sizing: border-box; border-radius: var(--border-radius-big); - height: 36px; - padding: 0 12px; min-width: 83px; color: var(--color-text-light); text-shadow: var(--shadow); - font-size: 14px; - font-weight: 600; - cursor: pointer; } button.primary:hover { @@ -22,8 +25,6 @@ button.primary:hover { border: 1px solid var(--color-accent-shade); color: var(--color-text-light); text-shadow: var(--shadow); - font-size: 14px; - font-weight: 600; } button.primary:disabled { @@ -37,27 +38,20 @@ button.primary:disabled { button.secondary { background: white; border: 1px solid var(--color-border); - box-sizing: border-box; border-radius: var(--border-radius-big); - height: 36px; - padding: 0 12px; min-width: 83px; color: var(--color-text-base); - font-size: 14px; - font-weight: 600; - cursor: pointer; +} + +button.secondary:hover { + border: 1px solid var(--color-text-light-2); + color: var(--color-text-active); } button.toolbar { background: transparent; border: none; - box-sizing: border-box; - height: 36px; - padding: 0 12px; color: var(--color-text-base); - font-size: 14px; - font-weight: 600; - cursor: pointer; } button.toolbar:hover { diff --git a/src/assets/styles/dialogs.css b/src/assets/styles/dialogs.css index b6f62f2..47aa996 100644 --- a/src/assets/styles/dialogs.css +++ b/src/assets/styles/dialogs.css @@ -6,7 +6,7 @@ .dialog-header { height: 46px; line-height: 46px; - padding: 0 12px; + padding: 0 22px 0 12px; color: var(--color-text-base); font-size: 16px; font-weight: 600; @@ -28,3 +28,11 @@ background-color: var(--color-bg-light); padding: 24px; } + +.dialog-buttons-container button { + margin-left: 16px; +} + +.vm--overlay { + background-color: rgba(162, 177, 198, 0.5); +} diff --git a/src/assets/styles/textFields.css b/src/assets/styles/textFields.css deleted file mode 100644 index e0b54d2..0000000 --- a/src/assets/styles/textFields.css +++ /dev/null @@ -1,18 +0,0 @@ -input[type="text"] { - background: var(--color-white); - border: 1px solid var(--color-border); - color: var(--color-text-base); - border-radius: var(--border-radius-medium-2); - height: 36px; - padding: 0 8px; - font-size: 12px; -} - -input[type="text"]::placeholder { - color: var(--color-text-light-2); -} - -input[type="text"]:focus { - outline: none; -} - diff --git a/src/assets/styles/variables.css b/src/assets/styles/variables.css index f64de48..05c9d6c 100644 --- a/src/assets/styles/variables.css +++ b/src/assets/styles/variables.css @@ -10,6 +10,7 @@ --color-blue-medium: #119DFF; --color-blue-dark: #0D76BF; --color-blue-dark-2: #2A3F5F; + --color-red: #EF553B; @@ -25,6 +26,7 @@ --color-text-light-2: var(--color-gray-medium); --color-text-base: var(--color-gray-dark); --color-text-active: var(--color-blue-dark-2); + --color-text-error: var(--color-red); --shadow: 0 1px 2px rgba(42, 63, 95, 0.7); diff --git a/src/components/Schema.vue b/src/components/Schema.vue index 357b09c..122889d 100644 --- a/src/components/Schema.vue +++ b/src/components/Schema.vue @@ -1,6 +1,6 @@ + + + + diff --git a/src/components/svg/close.vue b/src/components/svg/close.vue index 4b17e7e..a068cbe 100644 --- a/src/components/svg/close.vue +++ b/src/components/svg/close.vue @@ -1,5 +1,5 @@ @@ -9,3 +9,12 @@ export default { name: 'CloseIcon' } + + diff --git a/src/main.js b/src/main.js index 8b1c68f..653a6d3 100644 --- a/src/main.js +++ b/src/main.js @@ -7,7 +7,6 @@ import VModal from 'vue-js-modal' import '@/assets/styles/variables.css' import '@/assets/styles/buttons.css' -import '@/assets/styles/textFields.css' import '@/assets/styles/tables.css' import '@/assets/styles/dialogs.css' diff --git a/src/views/MyQueries.vue b/src/views/MyQueries.vue index 6460921..0398cd0 100644 --- a/src/views/MyQueries.vue +++ b/src/views/MyQueries.vue @@ -8,7 +8,7 @@
@@ -36,7 +36,7 @@
{{ query.createdAt | date }}
- + @@ -53,14 +53,19 @@
Rename query - +
- +
- - + +
@@ -72,6 +77,7 @@ import CopyIcon from '@/components/svg/copy' import ExportIcon from '@/components/svg/export' import DeleteIcon from '@/components/svg/delete' import CloseIcon from '@/components/svg/close' +import TextField from '@/components/TextField' export default { name: 'MyQueries', @@ -80,11 +86,15 @@ export default { CopyIcon, ExportIcon, DeleteIcon, - CloseIcon + CloseIcon, + TextField }, data () { return { - queries: [] + queries: [], + newName: null, + currentQueryIndex: null, + errorMsg: null } }, created () { @@ -120,8 +130,29 @@ export default { this.$store.commit('setCurrentTabId', tab.id) this.$router.push('/editor') }, - showRenameDialog () { + showRenameDialog (index) { + this.errorMsg = null + this.currentQueryIndex = index + this.newName = this.queries[this.currentQueryIndex].name this.$modal.show('rename') + }, + renameQuery () { + if (!this.newName) { + this.errorMsg = 'Query name can\'t be empty' + return + } + const currentQuery = this.queries[this.currentQueryIndex] + currentQuery.name = this.newName + this.$set(this.queries, this.currentQueryIndex, currentQuery) + this.$modal.hide('rename') + this.saveQueriesInLocalStorage() + const tabIndex = this.$store.state.tabs.findIndex(tab => tab.id === currentQuery.id) + if (tabIndex >= 0) { + this.$store.commit('updateTabName', { index: tabIndex, newName: this.newName }) + } + }, + saveQueriesInLocalStorage () { + localStorage.setItem('myQueries', JSON.stringify(this.queries)) } } } @@ -135,10 +166,13 @@ export default { #my-queries-toolbar { display: flex; justify-content: space-between; + margin-bottom: 18px; + margin: 0 auto 8px; + max-width: 1500px; + width: 100%; } -.rounded-bg, -#my-queries-toolbar { +.rounded-bg { margin: 0 auto; max-width: 1500px; width: 100%; @@ -191,4 +225,7 @@ tbody tr:hover td { tbody tr:hover .icons-container { display: block; } +.dialog input { + width: 100%; +}