diff --git a/config/spandx.config.js b/config/spandx.config.js index a69b55371..3a6522e31 100644 --- a/config/spandx.config.js +++ b/config/spandx.config.js @@ -16,6 +16,13 @@ module.exports = { '/beta/cost-management': { host: `http://${localhost}:8002`, }, + // New URLs + '/openshift/cost-management': { + host: `http://${localhost}:8002`, + }, + '/beta/openshift/cost-management': { + host: `http://${localhost}:8002`, + }, // For testing cloud-services-config https://github.com/RedHatInsights/cloud-services-config#testing-your-changes-locally // '/beta/config': { // host: `http://${localhost}:8889`, diff --git a/koku-ui-manifest b/koku-ui-manifest index 92e71e758..d1d0bf932 100644 --- a/koku-ui-manifest +++ b/koku-ui-manifest @@ -89,24 +89,24 @@ mgmt_services/cost-mgmt:koku-ui/@nodelib/fs.scandir:2.1.4.yarnlock mgmt_services/cost-mgmt:koku-ui/@nodelib/fs.stat:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/@nodelib/fs.stat:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/@nodelib/fs.walk:1.2.6.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/patternfly:4.90.5.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-charts:6.14.6.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-core:4.101.3.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-core:4.101.3.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-icons:4.9.5.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-icons:4.9.5.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-styles:4.8.5.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-styles:4.8.5.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-table:4.23.14.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-tokens:4.10.5.yarnlock -mgmt_services/cost-mgmt:koku-ui/@patternfly/react-tokens:4.10.5.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/patternfly:4.102.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-charts:6.14.16.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-core:4.115.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-core:4.115.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-icons:4.10.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-icons:4.10.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-styles:4.10.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-styles:4.10.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-table:4.26.6.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-tokens:4.11.2.yarnlock +mgmt_services/cost-mgmt:koku-ui/@patternfly/react-tokens:4.11.2.yarnlock mgmt_services/cost-mgmt:koku-ui/@popperjs/core:2.9.1.yarnlock mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/frontend-components-notifications:3.1.0.yarnlock mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/frontend-components-utilities:3.1.1.yarnlock mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/frontend-components-utilities:3.1.1.yarnlock mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/frontend-components-utilities:3.1.1.yarnlock -mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/frontend-components:3.1.4.yarnlock -mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/rbac-client:1.0.94.yarnlock +mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/frontend-components:3.1.7.yarnlock +mgmt_services/cost-mgmt:koku-ui/@redhat-cloud-services/rbac-client:1.0.96.yarnlock mgmt_services/cost-mgmt:koku-ui/@restart/context:2.1.4.yarnlock mgmt_services/cost-mgmt:koku-ui/@restart/hooks:0.3.26.yarnlock mgmt_services/cost-mgmt:koku-ui/@restart/hooks:0.3.26.yarnlock @@ -276,7 +276,6 @@ mgmt_services/cost-mgmt:koku-ui/async:2.6.3.yarnlock mgmt_services/cost-mgmt:koku-ui/asynckit:0.4.0.yarnlock mgmt_services/cost-mgmt:koku-ui/atob:2.1.2.yarnlock mgmt_services/cost-mgmt:koku-ui/attr-accept:1.1.3.yarnlock -mgmt_services/cost-mgmt:koku-ui/available-typed-arrays:1.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/awesome-debounce-promise:2.1.0.yarnlock mgmt_services/cost-mgmt:koku-ui/awesome-imperative-promise:1.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/awesome-only-resolves-last-promise:1.0.3.yarnlock @@ -433,7 +432,6 @@ mgmt_services/cost-mgmt:koku-ui/debug:2.6.9.yarnlock mgmt_services/cost-mgmt:koku-ui/debug:2.6.9.yarnlock mgmt_services/cost-mgmt:koku-ui/debug:2.6.9.yarnlock mgmt_services/cost-mgmt:koku-ui/debug:3.2.7.yarnlock -mgmt_services/cost-mgmt:koku-ui/debug:3.2.7.yarnlock mgmt_services/cost-mgmt:koku-ui/debug:4.3.1.yarnlock mgmt_services/cost-mgmt:koku-ui/debug:4.3.1.yarnlock mgmt_services/cost-mgmt:koku-ui/debug:4.3.1.yarnlock @@ -574,7 +572,6 @@ mgmt_services/cost-mgmt:koku-ui/esutils:2.0.3.yarnlock mgmt_services/cost-mgmt:koku-ui/etag:1.8.1.yarnlock mgmt_services/cost-mgmt:koku-ui/eventemitter3:4.0.7.yarnlock mgmt_services/cost-mgmt:koku-ui/events:3.3.0.yarnlock -mgmt_services/cost-mgmt:koku-ui/eventsource:1.0.7.yarnlock mgmt_services/cost-mgmt:koku-ui/exec-sh:0.3.4.yarnlock mgmt_services/cost-mgmt:koku-ui/execa:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/execa:4.1.0.yarnlock @@ -621,7 +618,6 @@ mgmt_services/cost-mgmt:koku-ui/focus-trap:6.2.2.yarnlock mgmt_services/cost-mgmt:koku-ui/follow-redirects:1.13.3.yarnlock mgmt_services/cost-mgmt:koku-ui/follow-redirects:1.13.3.yarnlock mgmt_services/cost-mgmt:koku-ui/for-in:1.0.2.yarnlock -mgmt_services/cost-mgmt:koku-ui/foreach:2.0.5.yarnlock mgmt_services/cost-mgmt:koku-ui/forever-agent:0.6.1.yarnlock mgmt_services/cost-mgmt:koku-ui/form-data:2.3.3.yarnlock mgmt_services/cost-mgmt:koku-ui/forwarded:0.1.2.yarnlock @@ -666,6 +662,7 @@ mgmt_services/cost-mgmt:koku-ui/globals:12.4.0.yarnlock mgmt_services/cost-mgmt:koku-ui/globby:11.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/graceful-fs:4.2.6.yarnlock mgmt_services/cost-mgmt:koku-ui/graceful-fs:4.2.6.yarnlock +mgmt_services/cost-mgmt:koku-ui/graceful-fs:4.2.6.yarnlock mgmt_services/cost-mgmt:koku-ui/growly:1.3.0.yarnlock mgmt_services/cost-mgmt:koku-ui/handle-thing:2.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/har-schema:2.0.0.yarnlock @@ -691,7 +688,7 @@ mgmt_services/cost-mgmt:koku-ui/hosted-git-info:2.8.8.yarnlock mgmt_services/cost-mgmt:koku-ui/hpack.js:2.1.6.yarnlock mgmt_services/cost-mgmt:koku-ui/html-element-map:1.3.0.yarnlock mgmt_services/cost-mgmt:koku-ui/html-encoding-sniffer:2.0.1.yarnlock -mgmt_services/cost-mgmt:koku-ui/html-entities:1.4.0.yarnlock +mgmt_services/cost-mgmt:koku-ui/html-entities:2.3.2.yarnlock mgmt_services/cost-mgmt:koku-ui/html-escaper:2.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/html-loader:2.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/html-minifier-terser:5.1.1.yarnlock @@ -707,7 +704,7 @@ mgmt_services/cost-mgmt:koku-ui/http-errors:1.7.2.yarnlock mgmt_services/cost-mgmt:koku-ui/http-errors:1.6.3.yarnlock mgmt_services/cost-mgmt:koku-ui/http-errors:1.7.3.yarnlock mgmt_services/cost-mgmt:koku-ui/http-parser-js:0.5.3.yarnlock -mgmt_services/cost-mgmt:koku-ui/http-proxy-middleware:1.0.6.yarnlock +mgmt_services/cost-mgmt:koku-ui/http-proxy-middleware:1.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/http-proxy:1.18.1.yarnlock mgmt_services/cost-mgmt:koku-ui/http-signature:1.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/human-date:1.4.0.yarnlock @@ -738,7 +735,6 @@ mgmt_services/cost-mgmt:koku-ui/inherits:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/inherits:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/inherits:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/inherits:2.0.4.yarnlock -mgmt_services/cost-mgmt:koku-ui/inherits:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/inherits:2.0.3.yarnlock mgmt_services/cost-mgmt:koku-ui/inline-style-prefixer:5.1.2.yarnlock mgmt_services/cost-mgmt:koku-ui/internal-ip:6.2.0.yarnlock @@ -748,9 +744,9 @@ mgmt_services/cost-mgmt:koku-ui/invariant:2.2.4.yarnlock mgmt_services/cost-mgmt:koku-ui/invert-kv:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/ip-regex:4.3.0.yarnlock mgmt_services/cost-mgmt:koku-ui/ip:1.1.5.yarnlock -mgmt_services/cost-mgmt:koku-ui/ip:1.1.5.yarnlock mgmt_services/cost-mgmt:koku-ui/ipaddr.js:1.9.1.yarnlock mgmt_services/cost-mgmt:koku-ui/ipaddr.js:1.9.1.yarnlock +mgmt_services/cost-mgmt:koku-ui/ipaddr.js:2.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-absolute-url:3.0.3.yarnlock mgmt_services/cost-mgmt:koku-ui/is-accessor-descriptor:0.1.6.yarnlock mgmt_services/cost-mgmt:koku-ui/is-accessor-descriptor:1.0.0.yarnlock @@ -784,7 +780,6 @@ mgmt_services/cost-mgmt:koku-ui/is-extglob:2.1.1.yarnlock mgmt_services/cost-mgmt:koku-ui/is-fullwidth-code-point:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-fullwidth-code-point:3.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-generator-fn:2.1.0.yarnlock -mgmt_services/cost-mgmt:koku-ui/is-generator-function:1.0.8.yarnlock mgmt_services/cost-mgmt:koku-ui/is-glob:4.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/is-glob:4.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/is-glob:4.0.1.yarnlock @@ -797,6 +792,7 @@ mgmt_services/cost-mgmt:koku-ui/is-number:7.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-path-cwd:2.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-path-inside:3.0.3.yarnlock mgmt_services/cost-mgmt:koku-ui/is-plain-obj:1.1.0.yarnlock +mgmt_services/cost-mgmt:koku-ui/is-plain-obj:3.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-plain-object:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/is-plain-object:2.0.4.yarnlock mgmt_services/cost-mgmt:koku-ui/is-plain-object:5.0.0.yarnlock @@ -811,7 +807,6 @@ mgmt_services/cost-mgmt:koku-ui/is-string:1.0.5.yarnlock mgmt_services/cost-mgmt:koku-ui/is-subset:0.1.1.yarnlock mgmt_services/cost-mgmt:koku-ui/is-symbol:1.0.3.yarnlock mgmt_services/cost-mgmt:koku-ui/is-symbol:1.0.3.yarnlock -mgmt_services/cost-mgmt:koku-ui/is-typed-array:1.1.5.yarnlock mgmt_services/cost-mgmt:koku-ui/is-typedarray:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-typedarray:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/is-utf8:0.2.1.yarnlock @@ -883,7 +878,6 @@ mgmt_services/cost-mgmt:koku-ui/json-stable-stringify-without-jsonify:1.0.1.yarn mgmt_services/cost-mgmt:koku-ui/json-stable-stringify:1.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/json-stringify-safe:5.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/json-stringify-safe:5.0.1.yarnlock -mgmt_services/cost-mgmt:koku-ui/json3:3.3.3.yarnlock mgmt_services/cost-mgmt:koku-ui/json5:2.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/json5:2.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/json5:1.0.1.yarnlock @@ -1043,7 +1037,6 @@ mgmt_services/cost-mgmt:koku-ui/onetime:5.1.2.yarnlock mgmt_services/cost-mgmt:koku-ui/open:7.4.2.yarnlock mgmt_services/cost-mgmt:koku-ui/optionator:0.8.3.yarnlock mgmt_services/cost-mgmt:koku-ui/optionator:0.9.1.yarnlock -mgmt_services/cost-mgmt:koku-ui/original:1.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/os-locale:1.4.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-defer:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-each-series:2.2.0.yarnlock @@ -1056,7 +1049,7 @@ mgmt_services/cost-mgmt:koku-ui/p-limit:3.1.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-locate:2.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-locate:4.1.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-map:4.0.0.yarnlock -mgmt_services/cost-mgmt:koku-ui/p-retry:4.4.0.yarnlock +mgmt_services/cost-mgmt:koku-ui/p-retry:4.5.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-timeout:3.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-try:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/p-try:2.2.0.yarnlock @@ -1139,7 +1132,6 @@ mgmt_services/cost-mgmt:koku-ui/qs:6.7.0.yarnlock mgmt_services/cost-mgmt:koku-ui/qs:6.9.6.yarnlock mgmt_services/cost-mgmt:koku-ui/qs:6.5.2.yarnlock mgmt_services/cost-mgmt:koku-ui/querystring:0.2.0.yarnlock -mgmt_services/cost-mgmt:koku-ui/querystringify:2.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/queue-microtask:1.2.2.yarnlock mgmt_services/cost-mgmt:koku-ui/raf:3.4.1.yarnlock mgmt_services/cost-mgmt:koku-ui/railroad-diagrams:1.0.0.yarnlock @@ -1292,7 +1284,6 @@ mgmt_services/cost-mgmt:koku-ui/slice-ansi:4.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/snapdragon-node:2.1.1.yarnlock mgmt_services/cost-mgmt:koku-ui/snapdragon-util:3.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/snapdragon:0.8.2.yarnlock -mgmt_services/cost-mgmt:koku-ui/sockjs-client:1.5.0.yarnlock mgmt_services/cost-mgmt:koku-ui/sockjs:0.3.21.yarnlock mgmt_services/cost-mgmt:koku-ui/source-list-map:2.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/source-list-map:2.0.1.yarnlock @@ -1433,14 +1424,11 @@ mgmt_services/cost-mgmt:koku-ui/unpipe:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/unset-value:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/uri-js:4.4.1.yarnlock mgmt_services/cost-mgmt:koku-ui/urix:0.1.0.yarnlock -mgmt_services/cost-mgmt:koku-ui/url-parse:1.5.1.yarnlock -mgmt_services/cost-mgmt:koku-ui/url-parse:1.5.1.yarnlock mgmt_services/cost-mgmt:koku-ui/url:0.11.0.yarnlock mgmt_services/cost-mgmt:koku-ui/use:3.1.1.yarnlock mgmt_services/cost-mgmt:koku-ui/util-deprecate:1.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/util-deprecate:1.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/util-deprecate:1.0.2.yarnlock -mgmt_services/cost-mgmt:koku-ui/util:0.12.3.yarnlock mgmt_services/cost-mgmt:koku-ui/utila:0.4.0.yarnlock mgmt_services/cost-mgmt:koku-ui/utils-merge:1.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/uuid:3.4.0.yarnlock @@ -1496,7 +1484,7 @@ mgmt_services/cost-mgmt:koku-ui/webidl-conversions:5.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/webidl-conversions:6.1.0.yarnlock mgmt_services/cost-mgmt:koku-ui/webpack-cli:4.5.0.yarnlock mgmt_services/cost-mgmt:koku-ui/webpack-dev-middleware:4.1.0.yarnlock -mgmt_services/cost-mgmt:koku-ui/webpack-dev-server:4.0.0-beta.0.yarnlock +mgmt_services/cost-mgmt:koku-ui/webpack-dev-server:4.0.0-beta.2.yarnlock mgmt_services/cost-mgmt:koku-ui/webpack-log:3.0.1.yarnlock mgmt_services/cost-mgmt:koku-ui/webpack-merge:5.7.3.yarnlock mgmt_services/cost-mgmt:koku-ui/webpack-sources:1.4.3.yarnlock @@ -1511,7 +1499,6 @@ mgmt_services/cost-mgmt:koku-ui/whatwg-url:8.4.0.yarnlock mgmt_services/cost-mgmt:koku-ui/which-boxed-primitive:1.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/which-module:1.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/which-module:2.0.0.yarnlock -mgmt_services/cost-mgmt:koku-ui/which-typed-array:1.1.4.yarnlock mgmt_services/cost-mgmt:koku-ui/which:1.3.1.yarnlock mgmt_services/cost-mgmt:koku-ui/which:2.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/which:2.0.2.yarnlock @@ -1524,7 +1511,6 @@ mgmt_services/cost-mgmt:koku-ui/wrap-ansi:6.2.0.yarnlock mgmt_services/cost-mgmt:koku-ui/wrappy:1.0.2.yarnlock mgmt_services/cost-mgmt:koku-ui/write-file-atomic:3.0.3.yarnlock mgmt_services/cost-mgmt:koku-ui/ws:7.4.4.yarnlock -mgmt_services/cost-mgmt:koku-ui/ws:7.4.4.yarnlock mgmt_services/cost-mgmt:koku-ui/x-is-string:0.1.0.yarnlock mgmt_services/cost-mgmt:koku-ui/xml-name-validator:3.0.0.yarnlock mgmt_services/cost-mgmt:koku-ui/xmlchars:2.2.0.yarnlock diff --git a/package.json b/package.json index d69571e69..ce61dd6f5 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "i18n:key:check:notfound": "scripts/utils/i18n_key_tool.py --Xreport-found --json-file src/locales/en.json --search-path src --exclude-file scripts/utils/i18n_excludes", "i18n:key:check:duplicates": "scripts/utils/i18n_key_tool.py --find-duplicates --Xreport-found --Xreport-not-found --json-file src/locales/en.json --search-path src --exclude-file scripts/utils/i18n_excludes", "start": "NODE_OPTIONS=--max-old-space-size=8192 webpack serve -c ./webpack.config.js", - "start:dev": "APP_ENV=proxy yarn start", + "start:beta": "BETA_ENV=true yarn start", "stats": "yarn build:client --profile --json > stats.json", "test": "jest", "manifest:update": "node scripts/createManifest", @@ -31,17 +31,17 @@ }, "dependencies": { "@fortawesome/free-solid-svg-icons": "5.15.2", - "@patternfly/patternfly": "4.90.5", - "@patternfly/react-charts": "6.14.6", - "@patternfly/react-core": "4.101.3", - "@patternfly/react-icons": "4.9.5", - "@patternfly/react-styles": "4.8.5", - "@patternfly/react-table": "4.23.14", - "@patternfly/react-tokens": "4.10.5", - "@redhat-cloud-services/frontend-components": "^3.1.4", + "@patternfly/patternfly": "4.102.1", + "@patternfly/react-charts": "^6.14.16", + "@patternfly/react-core": "4.115.1", + "@patternfly/react-icons": "4.10.1", + "@patternfly/react-styles": "4.10.1", + "@patternfly/react-table": "4.26.6", + "@patternfly/react-tokens": "4.11.2", + "@redhat-cloud-services/frontend-components": "^3.1.7", "@redhat-cloud-services/frontend-components-notifications": "^3.1.0", "@redhat-cloud-services/frontend-components-utilities": "^3.1.1", - "@redhat-cloud-services/rbac-client": "^1.0.94", + "@redhat-cloud-services/rbac-client": "^1.0.96", "@types/date-fns": "2.6.0", "@types/i18next": "13.0.0", "@types/i18next-xhr-backend": "1.4.2", @@ -114,7 +114,7 @@ "tsconfig-paths-webpack-plugin": "^3.3.0", "webpack": "^5.24.3", "webpack-cli": "^4.5.0", - "webpack-dev-server": "^4.0.0-beta.0", + "webpack-dev-server": "^4.0.0-beta.2", "webpack-log": "^3.0.1" }, "insights": { diff --git a/src/api/reports/report.ts b/src/api/reports/report.ts index 4f21fb919..ca980ca67 100644 --- a/src/api/reports/report.ts +++ b/src/api/reports/report.ts @@ -74,15 +74,16 @@ export interface ReportMeta { percent: number; value: number; }; + filter?: { + [filter: string]: any; + }; group_by?: { [group: string]: string[]; }; order_by?: { [order: string]: string; }; - filter?: { - [filter: string]: any; - }; + others?: number; total?: { capacity?: ReportValue; cost?: ReportItemValue; diff --git a/src/components/charts/common/chartDatumUtils.ts b/src/components/charts/common/chartDatumUtils.ts index a7ef05881..08af80e58 100644 --- a/src/components/charts/common/chartDatumUtils.ts +++ b/src/components/charts/common/chartDatumUtils.ts @@ -205,6 +205,7 @@ export function createReportDatum( x: xVal, y: value === null ? null : yVal, // For displaying "no data" labels in chart tooltips key: computedItem.id, + name: computedItem.label ? computedItem.label : computedItem.id, // legend item label units: computedItem[reportItem] ? computedItem[reportItem][reportItemValue] ? computedItem[reportItem][reportItemValue].units // cost, infrastructure, supplementary diff --git a/src/components/charts/costExplorerChart/costExplorerChart.tsx b/src/components/charts/costExplorerChart/costExplorerChart.tsx index dad2e8539..03de6eab7 100644 --- a/src/components/charts/costExplorerChart/costExplorerChart.tsx +++ b/src/components/charts/costExplorerChart/costExplorerChart.tsx @@ -236,19 +236,11 @@ class CostExplorerChart extends React.Component { private getChart = (series: ChartSeries, index: number) => { const { hiddenSeries } = this.state; + const data = !hiddenSeries.has(index) ? series.data : [{ y: null }]; - if (!hiddenSeries.has(index)) { - return ( - - ); - } - return null; + return ( + + ); }; // Returns CursorVoronoiContainer component diff --git a/src/components/charts/dailyCostChart/dailyCostChart.tsx b/src/components/charts/dailyCostChart/dailyCostChart.tsx index 99060f626..dfabf170e 100644 --- a/src/components/charts/dailyCostChart/dailyCostChart.tsx +++ b/src/components/charts/dailyCostChart/dailyCostChart.tsx @@ -327,19 +327,20 @@ class DailyCostChart extends React.Component { private getChart = (series: ChartSeries, index: number) => { const { hiddenSeries } = this.state; - if (!hiddenSeries.has(index) && !series.isForecast) { + if (!series.isForecast) { + const data = !hiddenSeries.has(index) ? series.data : [{ y: null }]; if (series.isBar) { return ( ); } else if (series.isLine) { - return ; + return ; } } return null; @@ -348,15 +349,10 @@ class DailyCostChart extends React.Component { private getForecastBarChart = (series: ChartSeries, index: number) => { const { hiddenSeries } = this.state; - if (!hiddenSeries.has(index) && series.isForecast && series.isBar) { + if (series.isForecast && series.isBar) { + const data = !hiddenSeries.has(index) ? series.data : [{ y: null }]; return ( - + ); } return null; @@ -365,12 +361,13 @@ class DailyCostChart extends React.Component { private getForecastLineChart = (series: ChartSeries, index: number) => { const { hiddenSeries } = this.state; - if (!hiddenSeries.has(index) && series.isForecast && series.isLine) { + if (series.isForecast && series.isLine) { + const data = !hiddenSeries.has(index) ? series.data : [{ y: null }]; return ( { const otherIndex = computedItems.findIndex(i => { const id = i.id; if (id && id !== null) { - return id.toString().includes('Other'); + return id === 'Other' || id === 'Others'; } }); diff --git a/src/locales/en.json b/src/locales/en.json index fbd8916c7..a88ae6155 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -116,6 +116,8 @@ "limit_legend_tooltip": "Limit ($t(months_abbr.{{month}}))", "month_legend_label": "$t(months_abbr.{{month}})", "no_data": "no data", + "others": "{{count}} Other", + "others_plural": "{{count}} Others", "requests_legend_label": "Requests ({{startDate}} $t(months_abbr.{{month}}))", "requests_legend_label_no_data": "Requests (no data)", "requests_legend_label_plural": "Requests ({{startDate}}-{{endDate}} $t(months_abbr.{{month}}))", @@ -131,11 +133,7 @@ "cost_models": { "add_rate_form": { "add_more_tag_values": "Add more tag values", - "calculation_type": "Calculation type", - "default_label": "Default", "default_option": "Select...", - "description": "Description", - "description_too_long": "Should not exceed 500 characters", "duplicate": "This tag key is already in used", "enter_a_tag_key": "Enter a tag key", "enter_a_tag_value": "Enter a tag value", @@ -145,40 +143,36 @@ "metric_select": "Metric", "not_number": "Rate must be a number", "not_positive": "Rate must be a positive number", - "rate_input": "Rate", "rate_switch": "Enter rate by tag", - "required": "This field is required", "save_rate_button": "Save rate", "supplementary": "Supplementary", "tag_key": "Filter by tag key", - "tag_too_long": "Should not exceed 100 characters", - "tag_value": "Tag value" + "tag_too_long": "Should not exceed 100 characters" }, + "calculation_type": "Calculation type", + "default": "Default", + "description_too_long": "Should not exceed 500 characters", "infra_cost_switch": "Use this rate to calculate infrastructure cost", - "infra_no": "No", - "infra_yes": "Yes", "learn_more": "Learn more", "lowercase": { "Currency": "price ({{units}})", "Request": "request ({{units}})", "Usage": "usage ({{units}})" }, + "no": "No", "node-month": "node-month", + "rate": "Rate", "read_only_tooltip": "You have read only permissions", "remove_button": "Remove", + "required_field": "This field is required", "table": { - "calculation_type": "Calculation type", - "default": "Default", - "default_no": "No", - "default_yes": "Yes", - "description": "Description", "measurement": "Measurement", "metric": "Metric", - "rate": "Rate", "tag_key": "Tag key", - "tag_value": "Tag value", "tagged_rates": "Various" - } + }, + "tag_value": "Tag value", + "yes": "Yes" }, "cost_models_details": { "action_assign": "Assign source(s)", @@ -250,11 +244,7 @@ }, "finish_button": "Finish", "general_info": { - "description_label": "Description", - "description_too_long": "Should not exceed 500 characters", "learn_more": "Learn more", - "name_label": "Name", - "name_required": "This field is required", "name_too_long": "Should not exceed 100 characters", "source_type_empty_value_label": "Select source type", "source_type_label": "Source type", @@ -312,11 +302,9 @@ "already_assigned": "Cannot assigned a source that has already a cost model assigned to it", "clear_all_filters": "Clear all filters", "column_cost_model": "Cost model assigned", - "column_name": "Name", "default_cost_model": "Default cost model", "filter_placeholder": "Filter by name...", "filter_section_aria_label": "Cost model filter sources", - "name_label": "Name", "pagination_section_aria_label": "bottom toolbar section - pagination", "results_text": "Results {{num}}", "select_filter_type": "Select filter type", @@ -352,6 +340,7 @@ "widget_subtitle": "{{startDate}} $t(months.{{month}})", "widget_subtitle_plural": "{{startDate}}-{{endDate}} $t(months.{{month}})" }, + "description": "Description", "details": { "actions": { "export": "Export data", @@ -429,9 +418,9 @@ "title": "Delete {{rate.metric.label_metric}}-{{rate.metric.label_measurement}} ({{rate.metric.label_measurement_unit}}) rate?" }, "docs": { - "add_ocp_sources": "https://access.redhat.com/documentation/en-us/cost_management_service/2021/html/getting_started_with_cost_management/assembly_adding_sources_cost#assembly_adding_ocp_sources", - "config_cost_models": "https://access.redhat.com/documentation/en-us/cost_management_service/2021/html/using_cost_models/configuring-cost-models", - "using_cost_model": "https://access.redhat.com/documentation/en-us/cost_management_service/2021/html/using_cost_models/using_cost_models#cost-model-terminology" + "add_ocp_sources": "https://access.redhat.com/documentation/en-us/cost_management_service/2021/html/getting_started_with_cost_management/assembly-adding-openshift-container-platform-source", + "config_cost_models": "https://access.redhat.com/documentation/en-us/cost_management_service/2021/html/using_cost_models/assembly-setting-up-cost-models", + "using_cost_model": "https://access.redhat.com/documentation/en-us/cost_management_service/2021/html/using_cost_models/assembly-using-cost-models#cost-model-terminology" }, "empty_filter_state": { "subtitle": "Sorry, no data with the given filter was found.", @@ -711,6 +700,7 @@ "Nov", "Dec" ], + "name": "Name", "navigation": { "aws_details": "Amazon Web Services Details", "aws_details_breakdown": "Amazon Web Services Details Breakdown", @@ -850,14 +840,12 @@ "delete": "Delete", "delete_cost_model": "Delete cost model", "delete_title": "Delete cost model", - "description": "Description", "filter_by_description": "Filter by description", "filter_by_name": "Filter by name", "filter_by_source_type": "Filter by source type", "header_popover": "A cost model allows you to associate a price to metrics provided by your sources to charge for utilization of resources.", "header_title": "Cost models", "last_change": "Last change", - "name": "Name", "no_cost_models_description": "Create a cost model to start calculating your hybrid cloud costs using custom price lists, markups, or both. Click on the button below to begin the journey.", "no_cost_models_title": "What is your hybrid cloud costing you?", "ocp": "OpenShift Container Platform", @@ -916,8 +904,6 @@ "name": "name" }, "primary": { - "description": "Description", - "name": "Name", "source_type": "Source type" }, "secondary": { diff --git a/src/pages/costModels/components/addPriceList.test.tsx b/src/pages/costModels/components/addPriceList.test.tsx index 5462a240d..b1f35b2ff 100644 --- a/src/pages/costModels/components/addPriceList.test.tsx +++ b/src/pages/costModels/components/addPriceList.test.tsx @@ -129,7 +129,7 @@ describe('add-a-new-rate', () => { // selecting metric will reset both measurement and cost type fireEvent.click(getByLabelText(qr.infraradio)); fireEvent.change(container.querySelector(qr.metric), { target: { value: 'Memory' } }); - expect(getByText('cost_models.add_rate_form.required')).toBeTruthy(); + expect(getByText('cost_models.required_field')).toBeTruthy(); fireEvent.change(container.querySelector(qr.measurement), { target: { value: 'Request' } }); expect(getByLabelText(qr.supplradio).checked).toBeTruthy(); fireEvent.click(getByLabelText(qr.infraradio)); @@ -166,16 +166,16 @@ describe('add-a-new-rate', () => { // tag key is required validation fireEvent.change(container.querySelector(qr.tagKey), { target: { value: 'test' } }); fireEvent.change(container.querySelector(qr.tagKey), { target: { value: '' } }); - expect(getByText('cost_models.add_rate_form.required')).toBeTruthy(); + expect(getByText('cost_models.required_field')).toBeTruthy(); fireEvent.change(container.querySelector(qr.tagKey), { target: { value: 'openshift' } }); - expect(queryByText('cost_models.add_rate_form.required')).toBeFalsy(); + expect(queryByText('cost_models.required_field')).toBeFalsy(); // tag value is required validation fireEvent.change(container.querySelector(qr.tagValueNth(0)), { target: { value: 'test' } }); fireEvent.change(container.querySelector(qr.tagValueNth(0)), { target: { value: '' } }); - expect(getByText('cost_models.add_rate_form.required')).toBeTruthy(); + expect(getByText('cost_models.required_field')).toBeTruthy(); fireEvent.change(container.querySelector(qr.tagValueNth(0)), { target: { value: 'worker' } }); - expect(queryByText('cost_models.add_rate_form.required')).toBeFalsy(); + expect(queryByText('cost_models.required_field')).toBeFalsy(); // rate must be a number fireEvent.change(container.querySelector(qr.rateNth(0)), { target: { value: 'test' } }); @@ -183,7 +183,7 @@ describe('add-a-new-rate', () => { // rate is required fireEvent.change(container.querySelector(qr.rateNth(0)), { target: { value: '' } }); - expect(getByText('cost_models.add_rate_form.required')).toBeTruthy(); + expect(getByText('cost_models.required_field')).toBeTruthy(); // rate must be positive fireEvent.change(container.querySelector(qr.rateNth(0)), { target: { value: '-0.23' } }); diff --git a/src/pages/costModels/components/inputs/rateInput.tsx b/src/pages/costModels/components/inputs/rateInput.tsx index 58b1c17cd..aa82e016d 100644 --- a/src/pages/costModels/components/inputs/rateInput.tsx +++ b/src/pages/costModels/components/inputs/rateInput.tsx @@ -20,7 +20,7 @@ type RateInputBaseProps = RateFormGroup & RateTextInput & UniqueProps; export const RateInputBase: React.FunctionComponent = ({ fieldId, - label = 'cost_models.add_rate_form.rate_input', + label = 'cost_models.rate', helperTextInvalid = 'cost_models.add_rate_form.error_message', style, validated, diff --git a/src/pages/costModels/components/rateForm/constants.ts b/src/pages/costModels/components/rateForm/constants.ts index 47c9f2d2a..6c1cc51ea 100644 --- a/src/pages/costModels/components/rateForm/constants.ts +++ b/src/pages/costModels/components/rateForm/constants.ts @@ -1,8 +1,8 @@ export const textHelpers = { duplicate: 'cost_models.add_rate_form.duplicate', - required: 'cost_models.add_rate_form.required', + required: 'cost_models.required_field', not_number: 'cost_models.add_rate_form.not_number', not_positive: 'cost_models.add_rate_form.not_positive', - description_too_long: 'cost_models.add_rate_form.description_too_long', + description_too_long: 'cost_models.description_too_long', tag_too_long: 'cost_models.add_rate_form.tag_too_long', }; diff --git a/src/pages/costModels/components/rateForm/rateForm.tsx b/src/pages/costModels/components/rateForm/rateForm.tsx index 391040fc5..64dae50ee 100644 --- a/src/pages/costModels/components/rateForm/rateForm.tsx +++ b/src/pages/costModels/components/rateForm/rateForm.tsx @@ -64,7 +64,7 @@ export const RateForm: React.FunctionComponent = ({ metricsHash, = ({ metricsHash, {step === 'set_rate' ? ( <> <> - + = isRequired style={style} id={`tagValue_${ix}`} - label="cost_models.add_rate_form.tag_value" + label="cost_models.tag_value" placeholder={t('cost_models.add_rate_form.enter_a_tag_value')} value={tag.tagValue} onChange={value => updateTag({ tagValue: value }, ix)} @@ -65,7 +65,7 @@ export const TaggingRatesForm: React.FunctionComponent = updateTag({ description: value }, ix)} @@ -73,7 +73,7 @@ export const TaggingRatesForm: React.FunctionComponent = /> - + updateDefaultTag(ix)} /> diff --git a/src/pages/costModels/components/rateTable.tsx b/src/pages/costModels/components/rateTable.tsx index 0c651aef3..2dee1ed1e 100644 --- a/src/pages/costModels/components/rateTable.tsx +++ b/src/pages/costModels/components/rateTable.tsx @@ -27,11 +27,11 @@ export const RateTable: React.SFC = ({ t, tiers, actions, isComp const [expanded, setExpanded] = React.useState({}); const [sortBy, setSortBy] = React.useState({}); const cells = [ - { title: t('cost_models.table.description') }, + { title: t('description') }, { title: t('cost_models.table.metric'), transforms: [sortable] }, { title: t('cost_models.table.measurement'), transforms: [sortable] }, - { title: t('cost_models.table.calculation_type') }, - { title: t('cost_models.table.rate'), cellTransforms: [compoundExpand] }, + { title: t('cost_models.calculation_type') }, + { title: t('cost_models.rate'), cellTransforms: [compoundExpand] }, ]; const onSort = (_event, index: number, direction: SortByDirection) => { setSortBy({ index, direction }); diff --git a/src/pages/costModels/components/tagRateTable.tsx b/src/pages/costModels/components/tagRateTable.tsx index eeb71ebc2..b8eedd5e5 100644 --- a/src/pages/costModels/components/tagRateTable.tsx +++ b/src/pages/costModels/components/tagRateTable.tsx @@ -12,10 +12,10 @@ interface TagRateTableProps { const cells = [ 'cost_models.table.tag_key', - 'cost_models.table.tag_value', - 'cost_models.table.rate', - 'cost_models.table.description', - 'cost_models.table.default', + 'cost_models.tag_value', + 'cost_models.rate', + 'description', + 'cost_models.default', ]; const translateRows = (t: TFunction, rows: IRow[]): IRow[] => { @@ -43,7 +43,7 @@ const TagRateTable: React.FunctionComponent = ({ tagRates }) tagValue.tag_value, formatCurrency(tagValue.value), tagValue.description, - tagValue.default ? 'cost_models.table.default_yes' : 'cost_models.table.default_no', + tagValue.default ? 'cost_models.yes' : 'cost_models.no', ], }; }); diff --git a/src/pages/costModels/costModel/addSourceStep.tsx b/src/pages/costModels/costModel/addSourceStep.tsx index 7d767d21e..da956b8e8 100644 --- a/src/pages/costModels/costModel/addSourceStep.tsx +++ b/src/pages/costModels/costModel/addSourceStep.tsx @@ -44,9 +44,11 @@ class AddSourcesStep extends React.Component { const onSelect = (_evt, isSelected, rowId) => { if (rowId === -1) { const newState = this.props.providers.reduce((acc, cur) => { + const selected = this.props.checked[cur.uuid] ? this.props.checked[cur.uuid].selected : false; + const disabled = cur.cost_models.length > 0; return { ...acc, - [cur.uuid]: { selected: isSelected, meta: cur }, + [cur.uuid]: { selected: disabled ? selected : isSelected, meta: cur }, }; }, {}); this.props.setState( @@ -88,7 +90,7 @@ class AddSourcesStep extends React.Component { return { cells: [cellName, provCostModels || ''], selected: isSelected, - disableCheckbox: providerData.cost_models.length > 0, + disableSelection: providerData.cost_models.length > 0, }; }); const sourceTypeMap = { @@ -117,7 +119,7 @@ class AddSourcesStep extends React.Component { name: this.props.query.name ? this.props.query.name.split(',') : [], }, }} - searchInputProps={{ + filterInputProps={{ id: 'assign-sources-modal-toolbar', onChange: value => this.props.updateFilter({ @@ -159,7 +161,7 @@ class AddSourcesStep extends React.Component { {sources.length > 0 && ( diff --git a/src/pages/costModels/costModel/addSourceWizard.tsx b/src/pages/costModels/costModel/addSourceWizard.tsx index b2c0a1e0d..5cd15f9b9 100644 --- a/src/pages/costModels/costModel/addSourceWizard.tsx +++ b/src/pages/costModels/costModel/addSourceWizard.tsx @@ -101,7 +101,7 @@ class AddSourceWizardBase extends React.Component { - {t('cost_models_wizard.general_info.name_label')} + {t('name')} diff --git a/src/pages/costModels/costModel/assignSourcesModalToolbar.tsx b/src/pages/costModels/costModel/assignSourcesModalToolbar.tsx index 50eca2708..4e615e670 100644 --- a/src/pages/costModels/costModel/assignSourcesModalToolbar.tsx +++ b/src/pages/costModels/costModel/assignSourcesModalToolbar.tsx @@ -14,7 +14,7 @@ import React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { Omit } from 'react-redux'; -interface SearchInputProps { +interface FilterInputProps { id: string; value: string; onChange: (value: string, event: React.FormEvent) => void; @@ -22,7 +22,7 @@ interface SearchInputProps { placeholder?: string; } -const SearchInput: React.SFC = ({ id, placeholder = '', value, onChange, onSearch }) => { +const FilterInput: React.SFC = ({ id, placeholder = '', value, onChange, onSearch }) => { return ( = ({ id, placeholder = '', value, interface AssignSourcesToolbarBaseProps extends WithTranslation { paginationProps: PaginationProps; - searchInputProps: Omit; + filterInputProps: Omit; filter: { onRemove: (category: string, chip: string) => void; onClearAll: () => void; @@ -56,7 +56,7 @@ interface AssignSourcesToolbarBaseProps extends WithTranslation { export const AssignSourcesToolbarBase: React.SFC = ({ t, - searchInputProps, + filterInputProps, paginationProps, filter, }) => { @@ -65,7 +65,7 @@ export const AssignSourcesToolbarBase: React.SFC - + diff --git a/src/pages/costModels/costModel/header.tsx b/src/pages/costModels/costModel/header.tsx index bf524c43e..37fea21c6 100644 --- a/src/pages/costModels/costModel/header.tsx +++ b/src/pages/costModels/costModel/header.tsx @@ -22,9 +22,11 @@ import UpdateCostModelModal from 'pages/costModels/costModel/updateCostModel'; import React from 'react'; import { WithTranslation, withTranslation } from 'react-i18next'; import { connect } from 'react-redux'; +import { paths } from 'routes'; import { createMapStateToProps } from 'store/common'; import { costModelsActions, costModelsSelectors } from 'store/costModels'; import { rbacSelectors } from 'store/rbac'; +import { getBaseName } from 'utils/getBaseName'; interface Props extends WithTranslation { historyObject: H.History; @@ -55,6 +57,8 @@ const Header: React.FunctionComponent = ({ historyObject, }) => { const [dropdownIsOpen, setDropdownIsOpen] = React.useState(false); + const baseName = getBaseName(window.location.pathname); + return ( <> {isDialogOpen.updateCostModel && } @@ -96,7 +100,7 @@ const Header: React.FunctionComponent = ({ />
- + {t('cost_models_details.cost_model.cost_models')} {current.name} diff --git a/src/pages/costModels/costModel/sourcesTable.tsx b/src/pages/costModels/costModel/sourcesTable.tsx index 32de0b62f..da3f71ba8 100644 --- a/src/pages/costModels/costModel/sourcesTable.tsx +++ b/src/pages/costModels/costModel/sourcesTable.tsx @@ -42,7 +42,7 @@ const SourcesTable = connect( stateProps.costModels.length > 0 ? stateProps.costModels[0].sources.map(source => [source.name]) : []; return { 'aria-label': 'sources-table', - cells: ['filter.name'] as (string | ICell)[], + cells: ['name'] as (string | ICell)[], rows, actions, }; diff --git a/src/pages/costModels/costModel/sourcesToolbar.tsx b/src/pages/costModels/costModel/sourcesToolbar.tsx index d4c5e7d09..bc519cf25 100644 --- a/src/pages/costModels/costModel/sourcesToolbar.tsx +++ b/src/pages/costModels/costModel/sourcesToolbar.tsx @@ -15,7 +15,7 @@ import { SearchIcon } from '@patternfly/react-icons/dist/js/icons/search-icon'; import { ReadOnlyTooltip } from 'pages/costModels/components/readOnlyTooltip'; import React from 'react'; -interface SearchInputProps { +interface FilterInputProps { id: string; value: string; onChange: (value: string, event: React.FormEvent) => void; @@ -23,7 +23,7 @@ interface SearchInputProps { placeholder?: string; } -const SearchInput: React.SFC = ({ id, placeholder = '', value, onChange, onSearch }) => { +const FilterInput: React.SFC = ({ id, placeholder = '', value, onChange, onSearch }) => { return ( = ({ id, placeholder = '', value, interface SourcesToolbarProps { actionButtonProps: ButtonProps; paginationProps: PaginationProps; - searchInputProps: SearchInputProps; + filterInputProps: FilterInputProps; filter: { onRemove: (category: string, chip: string) => void; onClearAll: () => void; @@ -58,7 +58,7 @@ interface SourcesToolbarProps { } export const SourcesToolbar: React.SFC = ({ - searchInputProps, + filterInputProps, paginationProps, filter, actionButtonProps, @@ -72,7 +72,7 @@ export const SourcesToolbar: React.SFC = ({ chips={filter.query.name} categoryName={filter.categoryNames.name} > - + diff --git a/src/pages/costModels/costModel/table.tsx b/src/pages/costModels/costModel/table.tsx index eb0ac52ed..132c5f275 100644 --- a/src/pages/costModels/costModel/table.tsx +++ b/src/pages/costModels/costModel/table.tsx @@ -73,7 +73,7 @@ class TableBase extends React.Component { }); }, query: this.state.query, - categoryNames: { name: t('toolbar.sources.category.name') }, + categoryNames: { name: t('name') }, }} paginationProps={{ isCompact: true, @@ -92,7 +92,7 @@ class TableBase extends React.Component { pagination: { page: 1, perPage: newPerPage }, }), }} - searchInputProps={{ + filterInputProps={{ id: 'sources-tab-toolbar', onChange: (value: string) => this.setState({ diff --git a/src/pages/costModels/costModel/updateCostModel.tsx b/src/pages/costModels/costModel/updateCostModel.tsx index e1fb1d92d..7749e3c12 100644 --- a/src/pages/costModels/costModel/updateCostModel.tsx +++ b/src/pages/costModels/costModel/updateCostModel.tsx @@ -75,7 +75,7 @@ class UpdateCostModelBase extends React.Component { <> {updateError && }
- + { onChange={value => this.setState({ name: value })} /> - +