mirror of
https://github.com/status-im/consul.git
synced 2025-01-14 07:44:50 +00:00
03a1a86dfe
* v3.20.2...v3.24.0 * Fix handle undefined outlet in route component * Don't use template helper for optional modal.open Using the optional-helper here will trigger a computation in the same runloop error. This is because we are setting the `modal`-property when the `<Ref>` component gets rendered which will update the `this.modal`-property which will then recompute the `optional`-helper leading to this error. Instead we will create an action that will call the `open`-method on the modal when it is defined. This gets rid of the double computation error as we will not access the modal property twice in the same runloop when `modal` is getting set. * Fix - fn needs to be passed function tab-nav We create functions in the component file instead so that fn-helper stops complaining about the need to pass a function. * Update ember-exam to 6.1 version "Makes it compatible" with ember-qunit v5 * scheduleOnce setMaxHeight paged-collection We need to schedule to get around double-computation error. * Fix - model.data is removed from ember-data This has been private API all along - we need to work around the removal. Reference: https://github.com/emberjs/data/pull/7338/files#diff-9a8746fc5c86fd57e6122f00fef3155f76f0f3003a24b53fb7c4621d95dcd9bfL1310 * Fix `propContains` instead of `deepEqual` policy Recent model.data works differently than iterating attributes. We use `propContains` instead of `deepEqual`. We are only interested in the properties we assert against and match the previous behavior with this change. * Fix `propContains` instead of `deepEqual` token * Better handling single-records repo test-helper `model.data` has been removed we need to handle proxies and model instances differently. * Fix remaining repository tests with propContains We don't want to match entire objects - we don't care about properties we haven't defined in the assertion. * Don't use template helper for optional modal.open Using a template helper will give us a recomputation error - we work around it by creating an explicit action on the component instead. * Await `I $verb the $pageObject object` step * Fix no more customization ember-can No need to customize, the helper handles destruction fine on its own. * Fix - don't pass `optional` functions to fn We will declare the functions on the component instead. This gives us the same behavior but no error from `fn`, which expects a function to be passed. * Fix - handle `undefined` state on validate modifier StateChart can yield out an undefined `state` we need to handle that in the validate modifier * Fix linting errors tests directory * Warn / turn off new ember linting issues We will tackle them one by one and don't want to autofix issues that could be dangerous to auto-fix. * Auto-fix linting issues * More linting configuration * Fix remaining linting issues * Fix linting issues new files after rebase * ui: Remove ember-cli-uglify config now we are using terser (#14574) Co-authored-by: John Cowen <johncowen@users.noreply.github.com>
131 lines
4.7 KiB
JavaScript
131 lines
4.7 KiB
JavaScript
// rootURL in production equals `{{.ContentPath}}` and therefore is replaced
|
|
// with the value of -ui-content-path. During development rootURL uses the
|
|
// value as set in environment.js
|
|
|
|
const read = require('fs').readFileSync;
|
|
|
|
const hbsRe = /{{(@[a-z]*)}}/g;
|
|
|
|
const hbs = (path, attrs = {}) =>
|
|
read(`${process.cwd()}/app/components/${path}`)
|
|
.toString()
|
|
.replace('{{yield}}', '')
|
|
.replace(hbsRe, (match, prop) => attrs[prop.substr(1)]);
|
|
|
|
const BrandLoader = (attrs) => hbs('brand-loader/index.hbs', attrs);
|
|
const Enterprise = (attrs) => hbs('brand-loader/enterprise.hbs', attrs);
|
|
|
|
module.exports = ({ appName, environment, rootURL, config, env }) => `
|
|
<noscript>
|
|
<div style="margin: 0 auto;">
|
|
<h2>JavaScript Required</h2>
|
|
<p>Please enable JavaScript in your web browser to use Consul UI.</p>
|
|
</div>
|
|
</noscript>
|
|
${BrandLoader({
|
|
color: '#8E96A3',
|
|
width: config.CONSUL_BINARY_TYPE !== 'oss' && config.CONSUL_BINARY_TYPE !== '' ? `394` : `198`,
|
|
subtitle:
|
|
config.CONSUL_BINARY_TYPE !== 'oss' && config.CONSUL_BINARY_TYPE !== '' ? Enterprise() : ``,
|
|
})}
|
|
<script type="application/json" data-consul-ui-config>
|
|
${environment === 'production' ? `{{jsonEncode .}}` : JSON.stringify(config.operatorConfig)}
|
|
</script>
|
|
<script type="application/json" data-consul-ui-fs>
|
|
{
|
|
"text-encoding/encoding-indexes.js": "${rootURL}assets/encoding-indexes.js",
|
|
"text-encoding/encoding.js": "${rootURL}assets/encoding.js",
|
|
"css.escape/css.escape.js": "${rootURL}assets/css.escape.js",
|
|
"codemirror/mode/javascript/javascript.js": "${rootURL}assets/codemirror/mode/javascript/javascript.js",
|
|
"codemirror/mode/ruby/ruby.js": "${rootURL}assets/codemirror/mode/ruby/ruby.js",
|
|
"codemirror/mode/yaml/yaml.js": "${rootURL}assets/codemirror/mode/yaml/yaml.js",
|
|
"codemirror/mode/xml/xml.js": "${rootURL}assets/codemirror/mode/xml/xml.js"
|
|
}
|
|
</script>
|
|
<script src="${rootURL}assets/consul-ui/services.js"></script>
|
|
<script src="${rootURL}assets/consul-ui/routes.js"></script>
|
|
<script src="${rootURL}assets/consul-lock-sessions/routes.js"></script>
|
|
${
|
|
environment === 'development' || environment === 'staging'
|
|
? `
|
|
<script src="${rootURL}assets/consul-ui/services-debug.js"></script>
|
|
<script src="${rootURL}assets/consul-ui/routes-debug.js"></script>
|
|
`
|
|
: ``
|
|
}
|
|
${
|
|
environment === 'production'
|
|
? `
|
|
{{if .ACLsEnabled}}
|
|
<script src="${rootURL}assets/consul-acls/routes.js"></script>
|
|
{{end}}
|
|
{{if .PeeringEnabled}}
|
|
<script src="${rootURL}assets/consul-peerings/services.js"></script>
|
|
<script src="${rootURL}assets/consul-peerings/routes.js"></script>
|
|
{{end}}
|
|
{{if .PartitionsEnabled}}
|
|
<script src="${rootURL}assets/consul-partitions/services.js"></script>
|
|
<script src="${rootURL}assets/consul-partitions/routes.js"></script>
|
|
{{end}}
|
|
{{if .NamespacesEnabled}}
|
|
<script src="${rootURL}assets/consul-nspaces/routes.js"></script>
|
|
{{end}}
|
|
{{if .HCPEnabled}}
|
|
<script src="${rootURL}assets/consul-hcp/routes.js"></script>
|
|
{{end}}
|
|
`
|
|
: `
|
|
<script>
|
|
(
|
|
function(get, obj) {
|
|
Object.entries(obj).forEach(([key, value]) => {
|
|
if(value.default || get(key) || (key === 'CONSUL_NSPACES_ENABLE' && ${
|
|
env('CONSUL_NSPACES_ENABLED') === '1' ? `true` : `false`
|
|
})) {
|
|
document.write(\`\\x3Cscript src="${rootURL}assets/\${value.name}/services.js">\\x3C/script>\`);
|
|
document.write(\`\\x3Cscript src="${rootURL}assets/\${value.name}/routes.js">\\x3C/script>\`);
|
|
}
|
|
});
|
|
}
|
|
)(
|
|
key => document.cookie.split('; ').find(item => item.startsWith(\`\${key}=\`)),
|
|
{
|
|
'CONSUL_ACLS_ENABLE': {
|
|
name: 'consul-acls',
|
|
default: ${config.operatorConfig.ACLsEnabled}
|
|
},
|
|
'CONSUL_PEERINGS_ENABLE': {
|
|
name: 'consul-peerings',
|
|
default: ${config.operatorConfig.PeeringEnabled}
|
|
},
|
|
'CONSUL_PARTITIONS_ENABLE': {
|
|
name: 'consul-partitions',
|
|
default: ${config.operatorConfig.PartitionsEnabled}
|
|
},
|
|
'CONSUL_NSPACES_ENABLE': {
|
|
name: 'consul-nspaces',
|
|
default: ${config.operatorConfig.NamespacesEnabled}
|
|
},
|
|
'CONSUL_HCP_ENABLE': {
|
|
name: 'consul-hcp',
|
|
default: ${config.operatorConfig.HCPEnabled}
|
|
}
|
|
}
|
|
);
|
|
</script>
|
|
`
|
|
}
|
|
<script src="${rootURL}assets/init.js"></script>
|
|
<script src="${rootURL}assets/vendor.js"></script>
|
|
${environment === 'test' ? `<script src="${rootURL}assets/test-support.js"></script>` : ``}
|
|
<script src="${rootURL}assets/metrics-providers/consul.js"></script>
|
|
<script src="${rootURL}assets/metrics-providers/prometheus.js"></script>
|
|
${
|
|
environment === 'production'
|
|
? `{{ range .ExtraScripts }} <script src="{{.}}"></script> {{ end }}`
|
|
: ``
|
|
}
|
|
<script src="${rootURL}assets/${appName}.js"></script>
|
|
${environment === 'test' ? `<script src="${rootURL}assets/tests.js"></script>` : ``}
|
|
`;
|