From 1c3323b5377505bac5544991407ea73b8a6b8b37 Mon Sep 17 00:00:00 2001 From: Fabio Date: Wed, 10 Jun 2020 19:29:10 +0200 Subject: [PATCH] Additions --- package-lock.json | 85 +++++++++++--- package.json | 9 +- src/renderer/App.vue | 27 ++--- .../components/ModalEditConnection.vue | 5 +- .../components/ModalNewConnection.vue | 5 +- .../components/WorkspaceExploreBar.vue | 8 +- .../WorkspaceExploreBarDatabase.vue | 9 +- src/renderer/components/WorkspaceQueryTab.vue | 108 +++++++++--------- .../components/WorkspaceQueryTable.vue | 56 +++++++++ src/renderer/i18n/en-US.js | 4 +- src/renderer/i18n/it-IT.js | 3 +- src/renderer/scss/_data-types.scss | 25 ++++ src/renderer/scss/_fake-tables.scss | 65 +++++++++++ src/renderer/scss/main.scss | 11 ++ 14 files changed, 320 insertions(+), 100 deletions(-) create mode 100644 src/renderer/components/WorkspaceQueryTable.vue create mode 100644 src/renderer/scss/_data-types.scss create mode 100644 src/renderer/scss/_fake-tables.scss diff --git a/package-lock.json b/package-lock.json index ad3d51d9..b050e297 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1146,6 +1146,12 @@ "integrity": "sha512-q95SP4FdkmF0CwO0F2q0H6ZgudsApaY/yCtAQNRn1gduef5fGpyEphzy0YCq/N0UFvDSnLg5V8jFK/YGXlDiCw==", "dev": true }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -4151,9 +4157,9 @@ } }, "electron-log": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.2.0.tgz", - "integrity": "sha512-Yy1X8iZEzoBA8pu5b7YU07dRHi1GPM9C5jLEOn87Uqtdc9rbe6KbvvQ/AAAtGvn4/GC3azRW/eeiSI4ZF+Hm2A==" + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/electron-log/-/electron-log-4.2.1.tgz", + "integrity": "sha512-tUI9w3kUP3qhwXJ92RDUPFVZfwtBwKCy/1TsSHndXYLlNCB/7+vkiQG0uxv9D2Leuxc/DJKfYyrdEBpzi/vyZg==" }, "electron-publish": { "version": "22.7.0", @@ -4858,23 +4864,24 @@ } }, "eslint-plugin-import": { - "version": "2.20.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz", - "integrity": "sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg==", + "version": "2.21.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.21.1.tgz", + "integrity": "sha512-qYOOsgUv63vHof7BqbzuD+Ud34bXHxFJxntuAC1ZappFZXYbRIek3aJ7jc9i2dHDGDyZ/0zlO0cpioES265Lsw==", "dev": true, "requires": { - "array-includes": "^3.0.3", - "array.prototype.flat": "^1.2.1", + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", "contains-path": "^0.1.0", "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "^0.3.2", - "eslint-module-utils": "^2.4.1", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", "has": "^1.0.3", "minimatch": "^3.0.4", - "object.values": "^1.1.0", + "object.values": "^1.1.1", "read-pkg-up": "^2.0.0", - "resolve": "^1.12.0" + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" }, "dependencies": { "debug": { @@ -10924,6 +10931,11 @@ "ajv-keywords": "^3.4.1" } }, + "scrollparent": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/scrollparent/-/scrollparent-2.0.1.tgz", + "integrity": "sha1-cV1bnMV3YPsivczDvvtb/gaxoxc=" + }, "scss-tokenizer": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", @@ -12246,6 +12258,29 @@ "utf8-byte-length": "^1.0.1" } }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz", + "integrity": "sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, "tslib": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz", @@ -12796,9 +12831,9 @@ } }, "vue-i18n": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.18.1.tgz", - "integrity": "sha512-K+hFQJksF8Ph23pnhbwSyoQx+4Y1q/rh2o7GiXI/3rLCCrwanUbzudC8+trp0Mb8rn9y83DYF6RXNrMd+VsuCw==" + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.18.2.tgz", + "integrity": "sha512-0X5nBTCZAVjlwcrPaYJwNs3iipBBTv0AUHwQUOa8yP3XbQGWKbRHqBb3OhCYtum/IHDD21d/df5Xd2VgyxbxfA==" }, "vue-loader": { "version": "15.9.1", @@ -12813,6 +12848,16 @@ "vue-style-loader": "^4.1.0" } }, + "vue-observe-visibility": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vue-observe-visibility/-/vue-observe-visibility-0.4.6.tgz", + "integrity": "sha512-xo0CEVdkjSjhJoDdLSvoZoQrw/H2BlzB5jrCBKGZNXN2zdZgMuZ9BKrxXDjNP2AxlcCoKc8OahI3F3r3JGLv2Q==" + }, + "vue-resize": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.5.tgz", + "integrity": "sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg==" + }, "vue-style-loader": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", @@ -12839,6 +12884,16 @@ "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", "dev": true }, + "vue-virtual-scroller": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/vue-virtual-scroller/-/vue-virtual-scroller-1.0.10.tgz", + "integrity": "sha512-Hn4qSBDhRY4XdngPioYy/ykDjrLX/NMm1fQXm/4UQQ/Xv1x8JbHGFZNftQowTcfICgN7yc31AKnUk1UGLJ2ndA==", + "requires": { + "scrollparent": "^2.0.1", + "vue-observe-visibility": "^0.4.4", + "vue-resize": "^0.4.5" + } + }, "vuedraggable": { "version": "2.23.2", "resolved": "https://registry.npmjs.org/vuedraggable/-/vuedraggable-2.23.2.tgz", diff --git a/package.json b/package.json index 36a803e7..0a0e625e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "antares", "productName": "Antares", "version": "0.0.0", - "description": "A cross-platform easy to use SQL client. ", + "description": "A cross-platform easy to use SQL client.", "license": "MIT", "repository": "https://github.com/Fabio286/antares.git", "scripts": { @@ -29,7 +29,7 @@ }, "dependencies": { "codemirror": "^5.54.0", - "electron-log": "^4.2.0", + "electron-log": "^4.2.1", "electron-updater": "^4.3.1", "lodash": "^4.17.15", "material-design-icons": "^3.0.1", @@ -40,7 +40,8 @@ "source-map-support": "^0.5.16", "spectre.css": "^0.5.8", "vue-click-outside": "^1.1.0", - "vue-i18n": "^8.18.1", + "vue-i18n": "^8.18.2", + "vue-virtual-scroller": "^1.0.10", "vuedraggable": "^2.23.2", "vuex": "^3.4.0", "vuex-persist": "^2.2.0" @@ -55,7 +56,7 @@ "electron-webpack-vue": "^2.4.0", "eslint": "^6.8.0", "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.20.1", + "eslint-plugin-import": "^2.21.1", "eslint-plugin-node": "^11.1.0", "eslint-plugin-promise": "^4.2.1", "eslint-plugin-standard": "^4.0.1", diff --git a/src/renderer/App.vue b/src/renderer/App.vue index f47f9f1a..629490d0 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -24,28 +24,19 @@ + + diff --git a/src/renderer/i18n/en-US.js b/src/renderer/i18n/en-US.js index a7568bed..92c6e53f 100644 --- a/src/renderer/i18n/en-US.js +++ b/src/renderer/i18n/en-US.js @@ -26,7 +26,9 @@ module.exports = { about: 'About', language: 'Language', version: 'Version', - donate: 'Donate' + donate: 'Donate', + run: 'Run', + schema: 'Schema' }, message: { appWelcome: 'Welcome to Antares SQL Client!', diff --git a/src/renderer/i18n/it-IT.js b/src/renderer/i18n/it-IT.js index e7147dce..14c76ffa 100644 --- a/src/renderer/i18n/it-IT.js +++ b/src/renderer/i18n/it-IT.js @@ -26,7 +26,8 @@ module.exports = { about: 'Informazioni', language: 'Lingua', version: 'Versione', - donate: 'Dona' + donate: 'Dona', + run: 'Esegui' }, message: { appWelcome: 'Benvenuto in Antares SQL Client!', diff --git a/src/renderer/scss/_data-types.scss b/src/renderer/scss/_data-types.scss new file mode 100644 index 00000000..dd9bdcec --- /dev/null +++ b/src/renderer/scss/_data-types.scss @@ -0,0 +1,25 @@ +@mixin type-colors($types) { + @each $type, $color in $types { + .type-#{$type} { + color: $color; + + @if $type == 'null'{ + &::after{ + content: 'NULL'; + } + } + + @if $type == 'number'{ + text-align: right; + } + } + } +} + +@include type-colors(( + "string": seagreen, + "number": cornflowerblue, + "date": coral, + "blob": darkorchid, + "null": gray, +)) \ No newline at end of file diff --git a/src/renderer/scss/_fake-tables.scss b/src/renderer/scss/_fake-tables.scss new file mode 100644 index 00000000..f39d5a70 --- /dev/null +++ b/src/renderer/scss/_fake-tables.scss @@ -0,0 +1,65 @@ +.table { + border-collapse: collapse; + border-spacing: 0; + width: 100%; + display: table; + + &.table-striped { + .tbody { + .tr:nth-of-type(odd) { + background: $bg-color; + } + } + } + + &, + &.table-striped { + .tbody { + .tr { + &.active { + background: $bg-color-dark; + } + } + } + } + + &.table-hover { + .tbody { + .tr { + &:hover { + background: $bg-color-dark; + } + } + } + } + + // Scollable tables + &.table-scroll { + display: block; + overflow-x: auto; + padding-bottom: .75rem; + white-space: nowrap; + } + + .thead{ + display: table-header-group; + } + + .tbody{ + display: table-row-group; + } + + .tr{ + display: table-row; + } + + .td, + .th { + border-bottom: $border-width solid $border-color; + padding: $unit-3 $unit-2; + display: table-cell; + } + .th { + border-bottom-width: $border-width-lg; + } + } \ No newline at end of file diff --git a/src/renderer/scss/main.scss b/src/renderer/scss/main.scss index ef846d54..d7dff7fa 100644 --- a/src/renderer/scss/main.scss +++ b/src/renderer/scss/main.scss @@ -1,5 +1,9 @@ + +@import "~spectre.css/src/variables"; @import "variables"; @import "transitions"; +@import "data-types"; +@import "fake-tables"; @import "mdi-additions"; @import "db-icons"; @import "~spectre.css/src/spectre"; @@ -131,4 +135,11 @@ body{ .accordion-body { max-height: 500rem!important; +} + +.btn.loading { + > .material-icons, + > span{ + visibility: hidden; + } } \ No newline at end of file