diff --git a/.env.example b/.env.example index a80f5485..2b19d2f7 100644 --- a/.env.example +++ b/.env.example @@ -13,7 +13,7 @@ VUE_APP_INITIAL_JOB_TYPES={"JOB_IMP_PROD_NEW_BLK":"products","JOB_IMP_ORD_BLK":" VUE_APP_BASE_URL= VUE_APP_BATCH_JOB_ENUMS={"JOB_BKR_ORD_UNF":{"id":"JOB_BKR_ORD_UNF","facilityId":"_NA_","unfillable": true},"JOB_BKR_ORD":{"id": "JOB_BKR_ORD","facilityId":"_NA_","unfillable": false},"JOB_BKR_PREORD_UNF":{"id":"JOB_BKR_PREORD_UNF","facilityId":"PRE_ORDER_PARKING","unfillable":true},"JOB_BKR_PREORD":{"id":"JOB_BKR_PREORD","facilityId":"PRE_ORDER_PARKING","unfillable":false},"JOB_BKR_BACKORD_UNF":{"id":"JOB_BKR_BACKORD_UNF","facilityId":"BACKORDER_PARKING","unfillable":true},"JOB_BKR_BACKORD":{"id":"JOB_BKR_BACKORD","facilityId":"BACKORDER_PARKING","unfillable":false}} VUE_APP_WEBHOOK_ENUMS={"NEW_PRODUCTS":"products/create","DELETE_PRODUCTS":"products/delete","NEW_ORDERS":"orders/create","CANCELLED_ORDERS":"orders/cancelled","PAYMENT_STATUS":"order_transactions/create","RETURNS":"refunds/create","BULK_OPERATIONS_FINISH":"bulk_operations/finish", "INVENTORY_LEVEL_UPDATE":"inventory_levels/update"} -VUE_APP_PERMISSION_ID= +VUE_APP_PERMISSION_ID="JOB_MANAGER_APP_VIEW" VUE_APP_ALIAS= VUE_APP_DEFAULT_LOG_LEVEL="error" VUE_APP_LOGIN_URL="http://launchpad.hotwax.io/login" diff --git a/README.md b/README.md index e90f82f6..729e30a7 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ While writing issues, please be as specific as possible. All requests regarding You may find some useful resources for improving the UI / UX of the app here. # Join the community on Discord -If you have any questions or ideas feel free to join our Discord channel +If you have any questions or ideas feel free to join our Discord channel # The license diff --git a/package-lock.json b/package-lock.json index ee9e0e4c..e6849f12 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "job-manager", - "version": "2.23.1", + "version": "2.24.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "job-manager", - "version": "2.23.1", + "version": "2.24.0", "dependencies": { "@capacitor/android": "^2.4.7", "@capacitor/core": "^2.4.7", @@ -14,7 +14,7 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "1.13.0", + "@hotwax/dxp-components": "1.15.4", "@hotwax/oms-api": "1.14.0", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", @@ -2589,8 +2589,9 @@ "license": "Apache-2.0" }, "node_modules/@hotwax/dxp-components": { - "version": "1.13.0", - "license": "Apache-2.0", + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/@hotwax/dxp-components/-/dxp-components-1.15.4.tgz", + "integrity": "sha512-dlgexo/QBLnLlPkq1zwfWBIPiVtmZKsRcPcCAwe+eFz9qPwyQORdzKb6YjX1WgtRU72GYMv345eA+HuaSY6H5w==", "dependencies": { "@hotwax/oms-api": "^1.8.1", "@ionic/core": "^7.6.0", @@ -2601,7 +2602,8 @@ "pinia-plugin-persistedstate": "^3.1.0", "register-service-worker": "^1.7.2", "vue": "^3.3.4", - "vue-i18n": "^9.2.2" + "vue-i18n": "^9.2.2", + "vue-markdown-render": "^2.2.1" } }, "node_modules/@hotwax/dxp-components/node_modules/pinia": { @@ -2708,37 +2710,6 @@ "dev": true, "license": "BSD-3-Clause" }, - "node_modules/@intlify/bundle-utils": { - "version": "0.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@intlify/core": "^9.1.6", - "@intlify/message-compiler": "^9.1.6", - "@intlify/shared": "^9.1.6", - "jsonc-eslint-parser": "^1.0.1", - "source-map": "^0.6.1", - "yaml-eslint-parser": "^0.3.2" - }, - "engines": { - "node": ">= 12" - } - }, - "node_modules/@intlify/core": { - "version": "9.8.0", - "dev": true, - "license": "MIT", - "dependencies": { - "@intlify/core-base": "9.8.0", - "@intlify/shared": "9.8.0" - }, - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/kazupon" - } - }, "node_modules/@intlify/core-base": { "version": "9.8.0", "license": "MIT", @@ -2753,23 +2724,6 @@ "url": "https://github.com/sponsors/kazupon" } }, - "node_modules/@intlify/devtools-if": { - "version": "9.1.10", - "license": "MIT", - "dependencies": { - "@intlify/shared": "9.1.10" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@intlify/devtools-if/node_modules/@intlify/shared": { - "version": "9.1.10", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/@intlify/message-compiler": { "version": "9.8.0", "license": "MIT", @@ -2784,44 +2738,6 @@ "url": "https://github.com/sponsors/kazupon" } }, - "node_modules/@intlify/message-resolver": { - "version": "9.1.10", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@intlify/runtime": { - "version": "9.1.10", - "license": "MIT", - "dependencies": { - "@intlify/message-compiler": "9.1.10", - "@intlify/message-resolver": "9.1.10", - "@intlify/shared": "9.1.10" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@intlify/runtime/node_modules/@intlify/message-compiler": { - "version": "9.1.10", - "license": "MIT", - "dependencies": { - "@intlify/message-resolver": "9.1.10", - "@intlify/shared": "9.1.10", - "source-map": "0.6.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@intlify/runtime/node_modules/@intlify/shared": { - "version": "9.1.10", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/@intlify/shared": { "version": "9.8.0", "license": "MIT", @@ -2832,41 +2748,6 @@ "url": "https://github.com/sponsors/kazupon" } }, - "node_modules/@intlify/vue-devtools": { - "version": "9.1.10", - "license": "MIT", - "dependencies": { - "@intlify/message-resolver": "9.1.10", - "@intlify/runtime": "9.1.10", - "@intlify/shared": "9.1.10" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@intlify/vue-devtools/node_modules/@intlify/shared": { - "version": "9.1.10", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@intlify/vue-i18n-loader": { - "version": "2.1.2", - "dev": true, - "license": "MIT", - "dependencies": { - "@intlify/bundle-utils": "^0.1.0", - "@intlify/shared": "^9.1.6", - "loader-utils": "^2.0.0" - }, - "engines": { - "node": ">= 12" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, "node_modules/@ionic/core": { "version": "7.8.2", "license": "MIT", @@ -6075,15 +5956,6 @@ "dev": true, "license": "MIT" }, - "node_modules/colors": { - "version": "1.4.0", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/combined-stream": { "version": "1.0.8", "dev": true, @@ -6929,14 +6801,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/deep-is": { "version": "0.1.4", "dev": true, @@ -7211,22 +7075,6 @@ "dev": true, "license": "0BSD" }, - "node_modules/dot-object": { - "version": "1.9.0", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "glob": "^7.1.4" - }, - "bin": { - "dot-object": "bin/dot-object" - } - }, - "node_modules/dot-object/node_modules/commander": { - "version": "2.20.3", - "dev": true, - "license": "MIT" - }, "node_modules/dotenv": { "version": "10.0.0", "dev": true, @@ -8041,14 +7889,6 @@ "dev": true, "license": "ISC" }, - "node_modules/esm": { - "version": "3.2.25", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/espree": { "version": "7.3.1", "dev": true, @@ -10136,14 +9976,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-valid-glob": { - "version": "1.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/is-weakref": { "version": "1.0.2", "dev": true, @@ -10496,75 +10328,6 @@ "node": ">=6" } }, - "node_modules/jsonc-eslint-parser": { - "version": "1.4.1", - "dev": true, - "license": "MIT", - "dependencies": { - "acorn": "^7.4.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^1.3.0", - "espree": "^6.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/jsonc-eslint-parser/node_modules/acorn": { - "version": "7.4.1", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsonc-eslint-parser/node_modules/eslint-utils": { - "version": "2.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, - "node_modules/jsonc-eslint-parser/node_modules/espree": { - "version": "6.2.1", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^7.1.1", - "acorn-jsx": "^5.2.0", - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/jsonc-eslint-parser/node_modules/semver": { - "version": "6.3.1", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, "node_modules/jsonfile": { "version": "4.0.0", "dev": true, @@ -10677,6 +10440,14 @@ "dev": true, "license": "MIT" }, + "node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, "node_modules/listr2": { "version": "3.14.0", "dev": true, @@ -11050,6 +10821,37 @@ "semver": "bin/semver.js" } }, + "node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, "node_modules/md5": { "version": "2.3.0", "license": "BSD-3-Clause", @@ -11064,6 +10866,11 @@ "dev": true, "license": "CC0-1.0" }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, "node_modules/media-typer": { "version": "0.3.0", "dev": true, @@ -13119,11 +12926,6 @@ "node": ">=0.10.0" } }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/requires-port": { "version": "1.0.0", "dev": true, @@ -13543,11 +13345,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "dev": true, - "license": "ISC" - }, "node_modules/set-function-length": { "version": "1.1.1", "license": "MIT", @@ -13719,6 +13516,7 @@ }, "node_modules/source-map": { "version": "0.6.1", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -14722,6 +14520,11 @@ "node": ">=4.2.0" } }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, "node_modules/unbox-primitive": { "version": "1.0.2", "dev": true, @@ -14970,52 +14773,6 @@ } } }, - "node_modules/vue-cli-plugin-i18n": { - "version": "1.0.1", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.1.0", - "deepmerge": "^4.2.0", - "dotenv": "^8.2.0", - "flat": "^5.0.0", - "rimraf": "^3.0.0", - "vue": "^2.6.11", - "vue-i18n": "^8.17.0", - "vue-i18n-extract": "1.0.2" - } - }, - "node_modules/vue-cli-plugin-i18n/node_modules/@vue/compiler-sfc": { - "version": "2.7.15", - "dev": true, - "dependencies": { - "@babel/parser": "^7.18.4", - "postcss": "^8.4.14", - "source-map": "^0.6.1" - } - }, - "node_modules/vue-cli-plugin-i18n/node_modules/dotenv": { - "version": "8.6.0", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=10" - } - }, - "node_modules/vue-cli-plugin-i18n/node_modules/vue": { - "version": "2.7.15", - "dev": true, - "license": "MIT", - "dependencies": { - "@vue/compiler-sfc": "2.7.15", - "csstype": "^3.1.0" - } - }, - "node_modules/vue-cli-plugin-i18n/node_modules/vue-i18n": { - "version": "8.28.2", - "dev": true, - "license": "MIT" - }, "node_modules/vue-component-type-helpers": { "version": "1.8.25", "dev": true, @@ -15118,331 +14875,6 @@ "dev": true, "license": "MIT" }, - "node_modules/vue-i18n": { - "version": "9.1.10", - "license": "MIT", - "dependencies": { - "@intlify/core-base": "9.1.10", - "@intlify/shared": "9.1.10", - "@intlify/vue-devtools": "9.1.10", - "@vue/devtools-api": "^6.0.0-beta.7" - }, - "engines": { - "node": ">= 10" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue-i18n-extract": { - "version": "1.0.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cli-table3": "^0.5.1", - "dot-object": "^1.7.1", - "esm": "^3.2.13", - "glob": "^7.1.3", - "is-valid-glob": "^1.0.0", - "yargs": "^13.2.2" - }, - "bin": { - "vue-i18n-extract": "dist-node/index.bin.js" - } - }, - "node_modules/vue-i18n-extract/node_modules/ansi-regex": { - "version": "3.0.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-i18n-extract/node_modules/camelcase": { - "version": "5.3.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/cli-table3": { - "version": "0.5.1", - "dev": true, - "license": "MIT", - "dependencies": { - "object-assign": "^4.1.0", - "string-width": "^2.1.1" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "colors": "^1.1.2" - } - }, - "node_modules/vue-i18n-extract/node_modules/cliui": { - "version": "5.0.0", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/vue-i18n-extract/node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/emoji-regex": { - "version": "7.0.3", - "dev": true, - "license": "MIT" - }, - "node_modules/vue-i18n-extract/node_modules/find-up": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-i18n-extract/node_modules/locate-path": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/p-locate": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/path-exists": { - "version": "3.0.0", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-i18n-extract/node_modules/string-width": { - "version": "2.1.1", - "dev": true, - "license": "MIT", - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-i18n-extract/node_modules/strip-ansi": { - "version": "4.0.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/vue-i18n-extract/node_modules/wrap-ansi": { - "version": "5.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/wrap-ansi/node_modules/ansi-regex": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/wrap-ansi/node_modules/string-width": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/wrap-ansi/node_modules/strip-ansi": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/y18n": { - "version": "4.0.3", - "dev": true, - "license": "ISC" - }, - "node_modules/vue-i18n-extract/node_modules/yargs": { - "version": "13.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/vue-i18n-extract/node_modules/yargs-parser": { - "version": "13.1.2", - "dev": true, - "license": "ISC", - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/vue-i18n-extract/node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.1", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n-extract/node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/vue-i18n/node_modules/@intlify/core-base": { - "version": "9.1.10", - "license": "MIT", - "dependencies": { - "@intlify/devtools-if": "9.1.10", - "@intlify/message-compiler": "9.1.10", - "@intlify/message-resolver": "9.1.10", - "@intlify/runtime": "9.1.10", - "@intlify/shared": "9.1.10", - "@intlify/vue-devtools": "9.1.10" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/vue-i18n/node_modules/@intlify/message-compiler": { - "version": "9.1.10", - "license": "MIT", - "dependencies": { - "@intlify/message-resolver": "9.1.10", - "@intlify/shared": "9.1.10", - "source-map": "0.6.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/vue-i18n/node_modules/@intlify/shared": { - "version": "9.1.10", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/vue-loader": { "version": "17.3.1", "dev": true, @@ -15532,6 +14964,17 @@ "version": "2.2.3", "license": "MIT" }, + "node_modules/vue-markdown-render": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vue-markdown-render/-/vue-markdown-render-2.2.1.tgz", + "integrity": "sha512-XkYnC0PMdbs6Vy6j/gZXSvCuOS0787Se5COwXlepRqiqPiunyCIeTPQAO2XnB4Yl04EOHXwLx5y6IuszMWSgyQ==", + "dependencies": { + "markdown-it": "^13.0.2" + }, + "peerDependencies": { + "vue": "^3.3.4" + } + }, "node_modules/vue-router": { "version": "4.2.5", "license": "MIT", @@ -16077,11 +15520,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/which-module": { - "version": "2.0.1", - "dev": true, - "license": "ISC" - }, "node_modules/which-typed-array": { "version": "1.1.13", "dev": true, @@ -16572,24 +16010,6 @@ "node": ">= 6" } }, - "node_modules/yaml-eslint-parser": { - "version": "0.3.2", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^1.3.0", - "lodash": "^4.17.20", - "yaml": "^1.10.0" - } - }, - "node_modules/yaml-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=4" - } - }, "node_modules/yargs": { "version": "16.2.0", "dev": true, @@ -16732,4 +16152,4 @@ "license": "ISC" } } -} \ No newline at end of file +} diff --git a/package.json b/package.json index b25cef9e..4b58abf3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "job-manager", - "version": "2.23.1", + "version": "2.24.0", "private": true, "description": "Job Manager App", "scripts": { @@ -17,7 +17,7 @@ "@casl/ability": "^6.0.0", "@hotwax/app-version-info": "^1.0.0", "@hotwax/apps-theme": "^1.2.6", - "@hotwax/dxp-components": "1.13.0", + "@hotwax/dxp-components": "1.15.4", "@hotwax/oms-api": "1.14.0", "@ionic/core": "^7.6.0", "@ionic/vue": "^7.6.0", diff --git a/src/authorization/Actions.ts b/src/authorization/Actions.ts index 48b5f8ff..637dade1 100644 --- a/src/authorization/Actions.ts +++ b/src/authorization/Actions.ts @@ -1,5 +1,6 @@ export default { 'APP_JOB_VIEW': 'APP_JOB_VIEW', 'APP_JOB_UPDATE': 'APP_JOB_UPDATE', - "APP_CUSTOM_FREQ_VIEW": "APP_CUSTOM_FREQ_VIEW" + 'APP_CUSTOM_FREQ_VIEW': 'APP_CUSTOM_FREQ_VIEW', + 'APP_COMMERCE_VIEW': 'APP_COMMERCE_VIEW' } \ No newline at end of file diff --git a/src/authorization/Rules.ts b/src/authorization/Rules.ts index 64e02dec..c2e67300 100644 --- a/src/authorization/Rules.ts +++ b/src/authorization/Rules.ts @@ -10,8 +10,10 @@ export default { "APP_INITIAL_LOAD_VIEW": "", "APP_MISC_VIEW": "", "APP_REPORT_VIEW": "", - "APP_BULK_EDITOR_VIEW": "COMMON_ADMIN", + "APP_BULK_EDITOR_VIEW": "COMMON_ADMIN OR JOB_MANAGER_ADMIN", "APP_JOB_VIEW": "", - "APP_JOB_UPDATE": "COMMON_ADMIN", - "APP_CUSTOM_FREQ_VIEW": "COMMON_ADMIN" -} as any \ No newline at end of file + "APP_JOB_UPDATE": "COMMON_ADMIN OR JOB_MANAGER_ADMIN", + "APP_CUSTOM_FREQ_VIEW": "COMMON_ADMIN OR JOB_MANAGER_ADMIN", + "JOB_MANAGER_APP_VIEW": "JOB_MANAGER_APP_VIEW", + "APP_COMMERCE_VIEW": "COMMERCEUSER_VIEW" +} as any diff --git a/src/components/CustomFrequencyModal.vue b/src/components/CustomFrequencyModal.vue index 0a6d7927..744b7900 100644 --- a/src/components/CustomFrequencyModal.vue +++ b/src/components/CustomFrequencyModal.vue @@ -21,7 +21,7 @@ - {{ customFrequency.description }} + {{ customFrequency.description }} diff --git a/src/components/DownloadLogsFilePopover.vue b/src/components/DownloadLogsFilePopover.vue new file mode 100644 index 00000000..ab9e78bc --- /dev/null +++ b/src/components/DownloadLogsFilePopover.vue @@ -0,0 +1,76 @@ + + + \ No newline at end of file diff --git a/src/components/JobConfiguration.vue b/src/components/JobConfiguration.vue index 77926a83..a786e546 100644 --- a/src/components/JobConfiguration.vue +++ b/src/components/JobConfiguration.vue @@ -6,7 +6,8 @@ - {{ translate("running") }} {{ timeTillJob(currentJob.runTime) }} + {{ currentJob.statusId == "SERVICE_CANCELLED" || currentJob.statusId == "SERVICE_CRASHED" ? timeTillJob(currentJob.cancelDateTime) : timeTillJob(currentJob.finishDateTime) }} + {{ translate("running") }} {{ timeTillJob(currentJob.runTime) }} @@ -19,33 +20,45 @@ - -
{{ translate("Run time") }}
- {{ translate(runTime.label) }} -
- - - - - - - + +
- -
{{ translate("Schedule") }}
- {{ freq.description }} -
+ +
@@ -76,20 +89,20 @@ -->
-
+
- {{ translate("Skip once") }} - {{ translate("Disable") }} + {{ translate("Skip once") }} + {{ translate("Disable") }}
- {{ translate("Save changes") }} + {{ translate("Save changes") }}
- {{ translate("Skip once") }} - {{ translate("Disable") }} - {{ translate("Save changes") }} + {{ translate("Skip once") }} + {{ translate("Disable") }} + {{ translate("Save changes") }}
@@ -97,7 +110,7 @@ {{ translate("History") }} - + {{ translate("Run now") }} @@ -112,7 +125,31 @@
- + +
+ +

{{ translate('Import logs') }}

+ {{ translate('View details') }} +
+ + + + + {{ translate('Files received') }} + {{ getDataManagerLogs.length }} + + + + {{ translate('Files processed') }} + {{ getProcessedFileCount() }} + + + + {{ translate('Files with errors') }} + {{ getErrorFileCount() }} + + +
diff --git a/src/views/JobDetails.vue b/src/views/JobDetails.vue index 4266336b..ebe0fac9 100644 --- a/src/views/JobDetails.vue +++ b/src/views/JobDetails.vue @@ -9,7 +9,7 @@ - + @@ -87,6 +87,10 @@ export default defineComponent({ const jobFreqTypeId = (Object.keys(this.jobFrequencyType).find((enumId: any) => enumId === id)) as any; this.freqType = (id && jobFreqTypeId) && this.jobFrequencyType[jobFreqTypeId]; } + }, + checkJobStatus(statusId: string) { + const statuses = ["SERVICE_CANCELLED", "SERVICE_CRASHED", "SERVICE_FAILED", "SERVICE_FINISHED", "SERVICE_RUNNING", "SERVICE_QUEUED"]; + return statuses.includes(statusId); } }, mounted() { diff --git a/src/views/Pipeline.vue b/src/views/Pipeline.vue index 86e8ac1d..f0874d7f 100644 --- a/src/views/Pipeline.vue +++ b/src/views/Pipeline.vue @@ -186,7 +186,7 @@
- +
{{ job.parentJobId }} @@ -194,7 +194,7 @@
{{ job.statusId == "SERVICE_CANCELLED" || job.statusId == "SERVICE_CRASHED" ? timeFromNow(job.cancelDateTime) : timeFromNow(job.finishDateTime) }} - {{ job.statusDesc }} + {{ job.statusDesc }}
@@ -243,8 +243,8 @@
-