From 878a8ccf349c723dff15a1a93317a6d885d723b1 Mon Sep 17 00:00:00 2001 From: Arattian Date: Mon, 14 Jan 2019 17:51:53 +0400 Subject: [PATCH 1/2] New Filter Method. Filtering through filterExpression key. --- README.md | 8 +- package-lock.json | 340 ++++++++++++++---------- package.json | 43 +-- src/App.vue | 2 + src/components/RecordFooter.vue | 15 +- src/components/RecordList.vue | 2 +- src/components/RecordListFilter.vue | 60 +++-- src/containers/TableRecords.vue | 12 +- src/store/modules/database/mutations.ts | 1 + src/store/modules/database/state.ts | 1 + src/store/modules/database/types.ts | 2 + src/store/modules/records/actions.ts | 50 +++- src/store/modules/records/getters.ts | 53 ++-- src/store/modules/records/mutations.ts | 71 ++++- src/store/modules/records/state.ts | 12 +- src/store/modules/records/types.ts | 12 +- 16 files changed, 460 insertions(+), 224 deletions(-) diff --git a/README.md b/README.md index d9c10bc..1d4e397 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,18 @@ # DynamoDb-GUI-Client + ## Cross-platform GUI client for DynamoDb [![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/Arattian/DynamoDb-GUI-Client/blob/master/LICENSE) ### [Release v3.1.0](https://github.com/Arattian/DynamoDb-GUI-Client/releases/tag/3.1.0) + #### [Download for MacOS (.dmg)](https://github.com/Arattian/DynamoDb-GUI-Client/releases/download/3.1.0/DynamoDbGUI-mac-3.1.0.dmg) ### [Release v2.1.1 || Old UI](https://github.com/Arattian/DynamoDb-GUI-Client/releases/tag/v2.1.1) -##### [Download for Debian (.deb)](https://github.com/Arattian/DynamoDb-GUI-Client/releases/download/v2.1.1/DynamoDbGUI-linux-amd64-2.1.1.deb) -##### [Download for Linux (.AppImage)](https://github.com/Arattian/DynamoDb-GUI-Client/releases/download/v2.1.1/DynamoDbGUI-linux-x86_64-2.1.1.AppImage) + +#### [Download for Debian (.deb)](https://github.com/Arattian/DynamoDb-GUI-Client/releases/download/v2.1.1/DynamoDbGUI-linux-amd64-2.1.1.deb) + +#### [Download for Linux (.AppImage)](https://github.com/Arattian/DynamoDb-GUI-Client/releases/download/v2.1.1/DynamoDbGUI-linux-x86_64-2.1.1.AppImage) ![Logo](src/assets/git-logo.png) diff --git a/package-lock.json b/package-lock.json index 2044292..6b55f07 100644 --- a/package-lock.json +++ b/package-lock.json @@ -953,9 +953,9 @@ }, "dependencies": { "core-js": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.1.tgz", - "integrity": "sha512-L72mmmEayPJBejKIWe2pYtGis5r0tQ5NaJekdhyXgeMQTpJoBsH0NL4ElY2LfSoV15xeQWKQ+XTTOZdyero5Xg==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.2.tgz", + "integrity": "sha512-NdBPF/RVwPW6jr0NCILuyN9RiqLo2b1mddWHkUL+VnvcB7dzlnBJ1bXYntjpTGOgkZiiLWj2JxmOr7eGE3qK6g==", "dev": true } } @@ -1040,54 +1040,54 @@ "dev": true }, "@vue/cli-plugin-babel": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.2.0.tgz", - "integrity": "sha512-HRhwsUIZ9DZYH+cVS8O0Qfk2W43vKpl5/JcvCS8YWWmRjwZjjHtRDifnfQuLC3Q0cUMTcv4bv8vnPMtkAbvXKg==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-babel/-/cli-plugin-babel-3.3.0.tgz", + "integrity": "sha512-HS5DwLe42fmkDgu4+78zMITNK+WiLoHKHBCCOuoEqjmsvvKaH/ByCGJOHYgTTe0aI+AiTAAkR2sZ2YulAjlvlQ==", "dev": true, "requires": { "@babel/core": "^7.0.0", - "@vue/babel-preset-app": "^3.2.0", + "@vue/babel-preset-app": "^3.3.0", "babel-loader": "^8.0.4" } }, "@vue/cli-plugin-typescript": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-typescript/-/cli-plugin-typescript-3.2.0.tgz", - "integrity": "sha512-zv9N92mMyidK3+0lyJhIimeMjqIv0SZg8Nkie4xDBEKyliF3KmGLwDstLft7rBm44yqppEROjLMVOxJkuwUVNw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-typescript/-/cli-plugin-typescript-3.3.0.tgz", + "integrity": "sha512-JZ+RYMXL27zq3hU/RnJJaVb6OvsQ5M7qTfZEBWnc45oyw/nFBRLkmFYgQztktvxXvlLcTkJeb8I2cTwxZ2BxnA==", "dev": true, "requires": { "@types/webpack-env": "^1.13.6", - "@vue/cli-shared-utils": "^3.2.0", - "fork-ts-checker-webpack-plugin": "^0.5.0", + "@vue/cli-shared-utils": "^3.3.0", + "fork-ts-checker-webpack-plugin": "^0.5.2", "globby": "^8.0.1", - "ts-loader": "^5.3.1", - "tslint": "^5.11.0" + "ts-loader": "^5.3.2", + "tslint": "^5.12.0" } }, "@vue/cli-plugin-unit-jest": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.2.0.tgz", - "integrity": "sha512-I3d2W7O1Gb7/jNzZJ8Vt7FEn2Az0WmjGPxEGQecPPhD4cKG6xas1eKoWngiNV1NMIJfTO99UN+PlmUUE7hxb1A==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-plugin-unit-jest/-/cli-plugin-unit-jest-3.3.0.tgz", + "integrity": "sha512-Y/WkrO95vdvjVjeNO1vZRQUAxlZ6ngdgAzvMzCeEaujbRG4b8M6W7ePSAe8C9yfoVcJtbnoHcBv2er31sPwtyQ==", "dev": true, "requires": { - "@vue/cli-shared-utils": "^3.2.0", + "@vue/cli-shared-utils": "^3.3.0", "babel-jest": "^23.6.0", "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2", "jest": "^23.6.0", "jest-serializer-vue": "^2.0.2", "jest-transform-stub": "^1.0.0", - "vue-jest": "^3.0.1" + "vue-jest": "^3.0.2" } }, "@vue/cli-service": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.2.0.tgz", - "integrity": "sha512-HTiaz1IBXV/JCfrmyhHJvDOYpPTBK0uQAekSVRTt5AddCeOV68ktdUqHbDe3VPDfrWFA5x3d3kIHlJd6WK31mA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@vue/cli-service/-/cli-service-3.3.0.tgz", + "integrity": "sha512-7PNitKBBCFcGfCvXSiuUGV2GpGA6KEupQcuxQ2xPL5T3UMSAzJLpx7Siw/9++yO4nQEib6yP3YQk2zTfeXWTSA==", "dev": true, "requires": { "@intervolga/optimize-cssnano-plugin": "^1.0.5", - "@vue/cli-overlay": "^3.2.0", - "@vue/cli-shared-utils": "^3.2.0", + "@vue/cli-overlay": "^3.3.0", + "@vue/cli-shared-utils": "^3.3.0", "@vue/preload-webpack-plugin": "^1.1.0", "@vue/web-component-wrapper": "^1.2.0", "acorn": "^6.0.4", @@ -1101,8 +1101,8 @@ "cliui": "^4.1.0", "copy-webpack-plugin": "^4.6.0", "css-loader": "^1.0.1", - "cssnano": "^4.1.7", - "debug": "^4.1.0", + "cssnano": "^4.1.8", + "debug": "^4.1.1", "escape-string-regexp": "^1.0.5", "file-loader": "^2.0.0", "friendly-errors-webpack-plugin": "^1.7.0", @@ -1114,10 +1114,10 @@ "lodash.defaultsdeep": "^4.6.0", "lodash.mapvalues": "^4.6.0", "lodash.transform": "^4.6.0", - "mini-css-extract-plugin": "^0.4.5", + "mini-css-extract-plugin": "^0.5.0", "minimist": "^1.2.0", "ora": "^3.0.0", - "portfinder": "^1.0.19", + "portfinder": "^1.0.20", "postcss-loader": "^3.0.0", "read-pkg": "^4.0.1", "semver": "^5.6.0", @@ -1125,15 +1125,15 @@ "source-map-url": "^0.4.0", "ssri": "^6.0.1", "string.prototype.padend": "^3.0.0", - "terser-webpack-plugin": "^1.1.0", + "terser-webpack-plugin": "^1.2.1", "thread-loader": "^1.2.0", "url-loader": "^1.1.2", "vue-loader": "^15.4.2", - "webpack": "^4.26.1", + "webpack": "4", "webpack-bundle-analyzer": "^3.0.3", "webpack-chain": "^4.11.0", - "webpack-dev-server": "^3.1.10", - "webpack-merge": "^4.1.4", + "webpack-dev-server": "^3.1.14", + "webpack-merge": "^4.1.5", "yorkie": "^2.0.0" }, "dependencies": { @@ -1143,6 +1143,64 @@ "integrity": "sha512-i33Zgp3XWtmZBMNvCr4azvOFeWVw1Rk6p3hfi3LUDvIFraOMywb1kAtrbi+med14m4Xfpqm3zRZMT+c0FNE7kg==", "dev": true }, + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -1164,11 +1222,56 @@ "pify": "^3.0.0" } }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "terser-webpack-plugin": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.2.1.tgz", + "integrity": "sha512-GGSt+gbT0oKcMDmPx4SRSfJPE1XaN3kQRWG4ghxKQw9cn5G9x6aCKSsgYdvyM0na9NJ4Drv0RG6jbBByZ5CMjw==", + "dev": true, + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.8.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + } + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true } } }, @@ -1974,9 +2077,9 @@ } }, "aws-sdk": { - "version": "2.384.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.384.0.tgz", - "integrity": "sha512-E+pIOWFNhQH7GCkOl5GU+Vl42MlaKtAq0Yenaa2fRGult9097u7TnUx45V1pNKMCN9RnEFWQy3ZH1TEPEYJ0fw==", + "version": "2.385.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.385.0.tgz", + "integrity": "sha512-ensf8QVbFdHQYLwhHgkH0FpE7nVxDl1SYJMM09p7neveW48rxQEwSOi/BmXDuI2/xsm7aHASUEZqK6zzeEx77g==", "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -1985,8 +2088,15 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", - "uuid": "3.1.0", + "uuid": "3.3.2", "xml2js": "0.4.19" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } } }, "aws-sign2": { @@ -2559,7 +2669,7 @@ }, "bl": { "version": "1.2.2", - "resolved": "http://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", "dev": true, "requires": { @@ -3134,9 +3244,9 @@ } }, "caniuse-lite": { - "version": "1.0.30000927", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000927.tgz", - "integrity": "sha512-ogq4NbUWf1uG/j66k0AmiO3GjqJAlQyF8n4w8a954cbCyFKmYGvRtgz6qkq2fWuduTXHibX7GyYL5Pg58Aks2g==", + "version": "1.0.30000928", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000928.tgz", + "integrity": "sha512-aSpMWRXL6ZXNnzm8hgE4QDLibG5pVJ2Ujzsuj3icazlIkxXkPXtL+BWnMx6FBkWmkZgBHGUxPZQvrbRw2ZTxhg==", "dev": true }, "capture-exit": { @@ -4845,36 +4955,6 @@ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, - "execa": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", - "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - }, "invert-kv": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", @@ -4899,16 +4979,6 @@ "invert-kv": "^2.0.0" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, "mem": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/mem/-/mem-4.0.0.tgz", @@ -4921,40 +4991,16 @@ } }, "os-locale": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", - "integrity": "sha512-7g5e7dmXPtzcP4bgsZ8ixDVqA7oWYuEz4lOSujeWyliPai4gfVDiFIcwBg3aGCPnmSGfzOKTK3ccPn0CKv3DBw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "dev": true, "requires": { - "execa": "^0.10.0", + "execa": "^1.0.0", "lcid": "^2.0.0", "mem": "^4.0.0" } }, - "p-limit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.0.0.tgz", - "integrity": "sha512-fl5s52lI5ahKCernzzIyAP0QAZbGIovtVHGwpcu1Jr/EpzLVDI2myISHwGqK7m8uQFugVWSrbxH7XnhGtvEc+A==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.0.0.tgz", - "integrity": "sha512-hMp0onDKIajHfIkdRk3P4CdCmErkYAxxDtP3Wx/4nZ3aGlau2VKh3mZpcuFkH27WQkL/3WBCPOktzA9ZOAnMQQ==", - "dev": true - }, "yargs": { "version": "12.0.5", "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", @@ -5225,7 +5271,7 @@ }, "es6-promise": { "version": "3.0.2", - "resolved": "http://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", "dev": true }, @@ -5577,7 +5623,7 @@ }, "external-editor": { "version": "2.2.0", - "resolved": "http://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { @@ -6797,13 +6843,13 @@ "dev": true }, "globby": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", - "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "dev": true, "requires": { "array-union": "^1.0.1", - "dir-glob": "^2.0.0", + "dir-glob": "2.0.0", "fast-glob": "^2.0.2", "glob": "^7.1.2", "ignore": "^3.3.5", @@ -6824,7 +6870,7 @@ }, "got": { "version": "6.7.1", - "resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { @@ -6843,7 +6889,7 @@ "dependencies": { "get-stream": { "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true } @@ -9207,7 +9253,7 @@ "dependencies": { "core-js": { "version": "2.3.0", - "resolved": "http://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz", "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", "dev": true }, @@ -9219,7 +9265,7 @@ }, "readable-stream": { "version": "2.0.6", - "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", "dev": true, "requires": { @@ -9759,9 +9805,9 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz", - "integrity": "sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.5.0.tgz", + "integrity": "sha512-IuaLjruM0vMKhUUT51fQdQzBYTX49dLj8w68ALEAe2A4iYNpIC4eMac67mt3NzycvjOlf07/kYxJDc0RTl1Wqw==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -10133,7 +10179,7 @@ }, "npm-install-package": { "version": "2.1.0", - "resolved": "http://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz", + "resolved": "https://registry.npmjs.org/npm-install-package/-/npm-install-package-2.1.0.tgz", "integrity": "sha1-1+/jz816sAYUuJbqUxGdyaslkSU=", "dev": true }, @@ -10750,7 +10796,7 @@ }, "pbkdf2-compat": { "version": "2.0.1", - "resolved": "http://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/pbkdf2-compat/-/pbkdf2-compat-2.0.1.tgz", "integrity": "sha1-tuDI+plJTZTgURV1gCpZpcFC8og=", "dev": true }, @@ -13653,7 +13699,7 @@ }, "get-stream": { "version": "3.0.0", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true } @@ -13972,7 +14018,7 @@ }, "through": { "version": "2.3.8", - "resolved": "http://registry.npmjs.org/through/-/through-2.3.8.tgz", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, @@ -14703,7 +14749,8 @@ "uuid": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.4", @@ -14769,9 +14816,8 @@ "integrity": "sha512-cH208IoM+jgZyEf/g7mnFyofwPDJTM/QvBNhYMjqGB8fCsRyTf68rH2ISw/G20tJv+5mIThQ3upKwoL4jLTr1A==" }, "vue-cli-plugin-electron-builder": { - "version": "1.0.0-rc.10", - "resolved": "https://registry.npmjs.org/vue-cli-plugin-electron-builder/-/vue-cli-plugin-electron-builder-1.0.0-rc.10.tgz", - "integrity": "sha512-iHhZLupCnjS2xxsUcL/QtqJttCeuVXZZQZ02GZPqdG2TBopObzytwDlNNzwDpRpufYflmciulFGDt8T5XObcLQ==", + "version": "github:nklayman/vue-cli-plugin-electron-builder#28b5be002b1f719f02a4c5f9b4e0cc99c44acd78", + "from": "github:nklayman/vue-cli-plugin-electron-builder", "dev": true, "requires": { "electron-builder": "^20.29.0", @@ -14805,9 +14851,9 @@ } }, "vue-cli-plugin-element": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/vue-cli-plugin-element/-/vue-cli-plugin-element-1.0.0.tgz", - "integrity": "sha512-dbEbVU95PHybdH9U38hEs/ONWFeeQzUTvqhptgViB69IL2W4hQvDu7YzFX7LDK3q5L7ouXOlBypM6hZpQPcLrA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vue-cli-plugin-element/-/vue-cli-plugin-element-1.0.1.tgz", + "integrity": "sha512-OJSOnJtn7f1v/8xX+MJae+RrE8WguhiiG9QTBx/MNOPXYsxqut6Ommo+ZD3raNc7eryhqdM2T/DlMfdvIKpCtw==", "dev": true }, "vue-hot-reload-api": { @@ -14884,9 +14930,9 @@ } }, "vue-template-es2015-compiler": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.6.0.tgz", - "integrity": "sha512-x3LV3wdmmERhVCYy3quqA57NJW7F3i6faas++pJQWtknWT+n7k30F4TVdHvCLn48peTJFRvCpxs3UuFPqgeELg==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.7.0.tgz", + "integrity": "sha512-7qDGmPSK8zPQD3NlRZHKWbAbFiKt4UFYedbNINmqS7gXcjkgO/3Lg4LFx/axYLViLMZDVoPJox9mXKRcEqLl+A==", "dev": true }, "vuex": { @@ -15384,7 +15430,7 @@ "dependencies": { "acorn": { "version": "3.3.0", - "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", "dev": true }, @@ -15415,7 +15461,7 @@ }, "async": { "version": "1.5.2", - "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true }, @@ -15432,7 +15478,7 @@ }, "browserify-aes": { "version": "0.4.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-0.4.0.tgz", "integrity": "sha1-BnFJtmjfMcS1hTPgLQHoBthgjiw=", "dev": true, "requires": { @@ -15484,7 +15530,7 @@ }, "crypto-browserify": { "version": "3.3.0", - "resolved": "http://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.3.0.tgz", "integrity": "sha1-ufx1u0oO1h3PHNXa6W6zDJw+UGw=", "dev": true, "requires": { @@ -15569,7 +15615,7 @@ }, "json5": { "version": "0.5.1", - "resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", "dev": true }, @@ -15670,13 +15716,13 @@ }, "ripemd160": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-0.2.0.tgz", "integrity": "sha1-K/GYveFnys+lHAqSjoS2i74XH84=", "dev": true }, "sha.js": { "version": "2.2.6", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.2.6.tgz", "integrity": "sha1-F93t3F9yL7ZlAWWIlUYZd4ZzFbo=", "dev": true }, @@ -15697,13 +15743,13 @@ }, "tapable": { "version": "0.1.10", - "resolved": "http://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.1.10.tgz", "integrity": "sha1-KcNXB8K3DlDQdIK10gLo7URtr9Q=", "dev": true }, "uglify-js": { "version": "2.7.5", - "resolved": "http://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.7.5.tgz", "integrity": "sha1-RhLAx7qu4rp8SH3kkErhIgefLKg=", "dev": true, "requires": { @@ -15715,7 +15761,7 @@ "dependencies": { "async": { "version": "0.2.10", - "resolved": "http://registry.npmjs.org/async/-/async-0.2.10.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", "dev": true } @@ -15744,7 +15790,7 @@ "dependencies": { "async": { "version": "0.9.2", - "resolved": "http://registry.npmjs.org/async/-/async-0.9.2.tgz", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", "dev": true } @@ -15781,7 +15827,7 @@ }, "yargs": { "version": "3.10.0", - "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "requires": { diff --git a/package.json b/package.json index 6e40e10..dc16d20 100644 --- a/package.json +++ b/package.json @@ -1,32 +1,22 @@ { "name": "dynamodb-gui-client", "version": "3.1.0", + "description": "DynamoDb-GUI-Client", "author": { "name": "Misak Poghosyan", "url": "https://github.com/Arattian" }, - "description": "DynamoDb-GUI-Client", - "license": "MIT", - "repository": "Arattian/DynamoDb-GUI-Client", - "keywords": [ - "element-ui", - "npm", - "package", - "dark", - "theme", - "dynamodb", - "gui" - ], "scripts": { - "start": "vue-cli-service serve --port 5000 --open", "build": "vue-cli-service build", "lint": "vue-cli-service lint", "electron:build": "vue-cli-service electron:build", "electron:serve": "vue-cli-service electron:serve", + "postinstall": "electron-builder install-app-deps", + "start": "vue-cli-service serve --port 5000 --open", "test:unit": "vue-cli-service test:unit" }, "dependencies": { - "aws-sdk": "^2.384.0", + "aws-sdk": "^2.385.0", "electron-default-menu": "^1.0.1", "element-ui": "^2.4.11", "vue": "^2.5.21", @@ -39,10 +29,10 @@ }, "devDependencies": { "@types/jest": "^23.3.12", - "@vue/cli-plugin-babel": "3.2.0", - "@vue/cli-plugin-typescript": "3.2.0", - "@vue/cli-plugin-unit-jest": "3.2.0", - "@vue/cli-service": "3.2.0", + "@vue/cli-plugin-babel": "3.3.0", + "@vue/cli-plugin-typescript": "3.3.0", + "@vue/cli-plugin-unit-jest": "3.3.0", + "@vue/cli-service": "3.3.0", "@vue/test-utils": "^1.0.0-beta.28", "babel-core": "^6.26.3", "electron": "^4.0.1", @@ -53,9 +43,20 @@ "stylus-loader": "^3.0.2", "ts-jest": "^23.10.5", "typescript": "^3.2.2", - "vue-cli-plugin-electron-builder": "^1.0.0-rc.10", - "vue-cli-plugin-element": "^1.0.0", + "vue-cli-plugin-electron-builder": "github:nklayman/vue-cli-plugin-electron-builder", + "vue-cli-plugin-element": "^1.0.1", "vue-template-compiler": "^2.5.21" }, - "main": "background.js" + "keywords": [ + "element-ui", + "npm", + "package", + "dark", + "theme", + "dynamodb", + "gui" + ], + "license": "MIT", + "main": "background.js", + "repository": "Arattian/DynamoDb-GUI-Client" } diff --git a/src/App.vue b/src/App.vue index 2cca4c3..26c7cfc 100644 --- a/src/App.vue +++ b/src/App.vue @@ -83,6 +83,8 @@ input[type="text"]:disabled { user-select none !important td cursor pointer +.el-input__inner, .el-input + border-radius 0px !important .jsoneditor border none !important height 100% !important diff --git a/src/components/RecordFooter.vue b/src/components/RecordFooter.vue index 1d333b7..540d501 100644 --- a/src/components/RecordFooter.vue +++ b/src/components/RecordFooter.vue @@ -8,12 +8,14 @@ width="200" v-model="visible") .popover-content - el-row + el-row(v-if="!filtered") el-row(class="popover-row") Maximum rows in table el-row(class="popover-row") el-input(placeholder="Row Count" @change="getLimitedRows" :disabled="checked" :value="limit" spellcheck="false") rows el-row(class="popover-row") el-checkbox(v-model="checked" @change="getLimitedRows(null)") No Limit + el-row(v-if="filtered") + el-row(class="popover-row") Filtered rows can't be limited according to AWS DynamoDb Docs. Please refresh table to reset filter. el-row(class="popover-close") el-button(size="mini" plain type="primary" @click="visible = false") Close i(class="el-icon-setting settings" slot="reference" title="Table Settings") @@ -21,12 +23,16 @@ class="el-icon-arrow-left" :class="{disabled: lastEvaluatedKeyIndex < 1}" @click="lastEvaluatedKeyIndex >= 1 && getPreviousRecords()" + v-if="!filtered" ) - .pageIndex {{ lastEvaluatedKeyIndex + 1 }} + .pageIndex( + v-if="!filtered" + ) {{ lastEvaluatedKeyIndex + 1 }} i( class="el-icon-arrow-right" - :class="{disabled: (lastEvaluatedKeyIndex + 1) * limit >= itemCount }" - @click="(lastEvaluatedKeyIndex + 1) * limit < itemCount && getNextRecords()" + :class="{disabled: (lastEvaluatedKeyIndex + 1) * limit >= itemCount || evaluatedKeys.length < 1}" + @click="(lastEvaluatedKeyIndex + 1) * limit < itemCount && evaluatedKeys.length > 0 && getNextRecords()" + v-if="!filtered" ) el-col(:span="14" class="itemCount") {{itemCount}} rows in {{currentTable}} @@ -51,6 +57,7 @@ export default class RecordFooter extends Vue { @Prop() private getPreviousRecords: any; @Prop() private lastEvaluatedKeyIndex: any; @Prop() private evaluatedKeys: any; + @Prop() private filtered: any; } diff --git a/src/components/RecordList.vue b/src/components/RecordList.vue index a14cb1c..984aa99 100644 --- a/src/components/RecordList.vue +++ b/src/components/RecordList.vue @@ -4,7 +4,7 @@ el-table-column(type="index" :index="paginationIndex") el-table-column(:prop="keys.hashKey" :label="keys.hashKeyLabel" :render-header="renderHash") el-table-column(:prop="keys.rangeKey" :label="keys.rangeKeyLabel" :render-header="renderRange" v-if="keys.rangeKey") - el-table-column(v-for="(header, index) of header" :prop="header.prop" :label="header.label" :key="index" v-if="hideHashKey(header)") + el-table-column(v-for="(header, index) of header" :prop="header" :label="header" title="Something" :key="index" v-if="hideHashKey(header)") el-table-column(fixed="right" width="50") template(slot-scope="scope") span(class="delete-column") diff --git a/src/components/RecordListFilter.vue b/src/components/RecordListFilter.vue index 5d37c39..d014832 100644 --- a/src/components/RecordListFilter.vue +++ b/src/components/RecordListFilter.vue @@ -1,13 +1,21 @@ diff --git a/src/containers/TableRecords.vue b/src/containers/TableRecords.vue index b56a531..7d83e2c 100644 --- a/src/containers/TableRecords.vue +++ b/src/containers/TableRecords.vue @@ -1,13 +1,13 @@