e096a0a5ab
* chore: upgrade forward compatible packages * chore: v3.20.2...v3.24.0 * chore: silence string prototype extension deprecation * refact: don't test clicking disabled button job-list Recent test-helper upgrades will guard against clicking disabled buttons as this is not something that real users can do. We need to change our tests accordingly. * fix: await async test helper `expectError` We have to await this async test function otherwise the test's rendering context will be torn down before we run assertions against it. * fix: don't try to click disabled two-step-button Recent test-helper updates prohibit clicking disabled buttons. We need to adapt the tests accordingly. * fix: recommendation-accordion Use up-to-date semantics for handling list-accordion closing in recommendation-accordion. * fixes toggling recommendation-accordion toggle. * fix: simple-unless linting error application.hbs There's no reason to use unless here - we can use if instead. * fix: no-quoteless-attributes recommendation accordion * fix: no-quoteless-attributes recommendation-chart * fix: allow `unless` - global-header.hbs This is a valid use of unless in our opinion. * fix: allow unless in job-diff This is not a great use for unless but we don't want to change this behavior atm. * fix: no-attrs-in-components list-pager There is no need to use this.attrs in classic components. When we will convert to glimmer we will use `@`-instead. * fix: simple-unless job/definition We can convert to a simple if here. * fix: allow inline-styles stats-box component To make linter happy. * fix: disable no-action and no-invalid-interactive Will be adressed in follow-up PRs. * chore: update ember-classic-decorator to latest * chore: upgrade ember-can to latest * chore: upgrade ember-composable-helpers to latest * chore: upgrade ember-concurrency * fix: recomputation deprecation `Trigger` schedule `do` on actions queue to work around recomputation deprecation when triggering Trigger on `did-insert`. * chore: upgrade ember-cli-string-helpers * chore: upgrade ember-copy * chore: upgrade ember-data-model-fragments * chore: upgrade ember-deprecation-workflow * chore: upgrade ember-inline-svg * chore: upgrade ember-modifier * chore: upgrade ember-truth-helpers * chore: upgrade ember-moment & ember-cli-moment-shim * chore: upgrade ember-power-select * chore: upgrade ember-responsive * chore: upgrade ember-sinon * chore: upgrade ember-cli-mirage For now we will stay on 2.2 - upgrades > 2.3 break the build. * chore: upgrade 3.24.0 to 3.28.5 * fix: add missing classic decorators on adapters * fix: missing classic decorators to serializers * fix: don't reopen Ember.Object anymore * fix: remove unused useNativeEvents ember-cli-page-objects doesn't provide this method anymore * fix: add missing attributeBindings for test-selectors ember-test-selectors doesn't provides automatic bindings for data-test-* attributes anymore. * fix: classic decorator for application serializer test * fix: remove `removeContext` from tests. It is unneeded and ember-cli-page-objects doesn't provides this method anymore. * fix: remove deprecations `run.*`-invocations * fix: `collapseWhitespace` in optimize test * fix: make sure to load async relationship before access * fix: dependent keys for relationship computeds We need to add `*.isFulfilled` as dependent keys for computeds that access async relationships. * fix: `computed.read`-invocations use `read` instead * chore: prettify templates * fix: use map instead of mapBy ember-cli-page-object Doesn't work with updated ember-cli-page-object anymore. * fix: remove remaining deprecated `run.*`-calls * chore: add more deprecations deprecation-workflow * fix: `implicit-injection`-deprecation All routes that add watchers will need to inject the store-service as the store service is internally used in watchers. * fix: more implicit injection deprecations * chore: silence implicit-injection deprecation We can tackle the deprecation when we find the time. * fix: new linting errors after upgrade * fix: remove merge conflicts prettierignore * chore: upgrade to run node 12.22 when building binaries
128 lines
4.2 KiB
Handlebars
128 lines
4.2 KiB
Handlebars
<Breadcrumb @crumb={{hash label="Recommendations" args=(array "optimize")}} />
|
|
<PageLayout>
|
|
<section class="section">
|
|
{{#if this.summaries}}
|
|
<div class="toolbar collapse">
|
|
<div class="toolbar-item">
|
|
{{#if this.summaries}}
|
|
<SearchBox
|
|
data-test-recommendation-summaries-search
|
|
@onChange={{this.syncActiveSummary}}
|
|
@searchTerm={{mut this.searchTerm}}
|
|
@placeholder="Search
|
|
{{this.summaries.length}}
|
|
{{pluralize 'recommendation' this.summaries.length}}..."
|
|
/>
|
|
{{/if}}
|
|
</div>
|
|
<div class="toolbar-item is-right-aligned is-mobile-full-width">
|
|
<div class="button-bar">
|
|
{{#if this.system.shouldShowNamespaces}}
|
|
<SingleSelectDropdown
|
|
data-test-namespace-facet
|
|
@label="Namespace"
|
|
@options={{this.optionsNamespaces}}
|
|
@selection={{this.qpNamespace}}
|
|
@onSelect={{action
|
|
(queue
|
|
(action this.cacheNamespace)
|
|
(action this.setFacetQueryParam "qpNamespace")
|
|
)
|
|
}}
|
|
/>
|
|
{{/if}}
|
|
<MultiSelectDropdown
|
|
data-test-type-facet
|
|
@label="Type"
|
|
@options={{this.optionsType}}
|
|
@selection={{this.selectionType}}
|
|
@onSelect={{action this.setFacetQueryParam "qpType"}}
|
|
/>
|
|
<MultiSelectDropdown
|
|
data-test-status-facet
|
|
@label="Status"
|
|
@options={{this.optionsStatus}}
|
|
@selection={{this.selectionStatus}}
|
|
@onSelect={{action this.setFacetQueryParam "qpStatus"}}
|
|
/>
|
|
<MultiSelectDropdown
|
|
data-test-datacenter-facet
|
|
@label="Datacenter"
|
|
@options={{this.optionsDatacenter}}
|
|
@selection={{this.selectionDatacenter}}
|
|
@onSelect={{action this.setFacetQueryParam "qpDatacenter"}}
|
|
/>
|
|
<MultiSelectDropdown
|
|
data-test-prefix-facet
|
|
@label="Prefix"
|
|
@options={{this.optionsPrefix}}
|
|
@selection={{this.selectionPrefix}}
|
|
@onSelect={{action this.setFacetQueryParam "qpPrefix"}}
|
|
/>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{#if this.filteredSummaries}}
|
|
{{outlet}}
|
|
|
|
<ListTable @source={{this.filteredSummaries}} as |t|>
|
|
<t.head>
|
|
<th>Job</th>
|
|
<th>Recommended At</th>
|
|
<th># Allocs</th>
|
|
<th>CPU</th>
|
|
<th>Mem</th>
|
|
<th>Agg. CPU</th>
|
|
<th>Agg. Mem</th>
|
|
</t.head>
|
|
<t.body as |row|>
|
|
{{#if row.model.isProcessed}}
|
|
<Das::RecommendationRow
|
|
class="is-disabled"
|
|
@summary={{row.model}}
|
|
/>
|
|
{{else}}
|
|
<Das::RecommendationRow
|
|
class="is-interactive
|
|
{{if
|
|
(eq row.model this.activeRecommendationSummary)
|
|
'is-active'
|
|
}}"
|
|
@summary={{row.model}}
|
|
{{on "click" (fn this.transitionToSummary row.model)}}
|
|
/>
|
|
{{/if}}
|
|
</t.body>
|
|
</ListTable>
|
|
{{else}}
|
|
<div class="empty-message" data-test-empty-recommendations>
|
|
<h3
|
|
class="empty-message-headline"
|
|
data-test-empty-recommendations-headline
|
|
>
|
|
No Matches
|
|
</h3>
|
|
<p class="empty-message-body">
|
|
No recommendations match your current filter selection.
|
|
</p>
|
|
</div>
|
|
{{/if}}
|
|
{{else}}
|
|
<div class="empty-message" data-test-empty-recommendations>
|
|
<h3
|
|
class="empty-message-headline"
|
|
data-test-empty-recommendations-headline
|
|
>
|
|
No Recommendations
|
|
</h3>
|
|
<p class="empty-message-body">
|
|
All recommendations have been accepted or dismissed. Nomad will
|
|
continuously monitor applications so expect more recommendations in
|
|
the future.
|
|
</p>
|
|
</div>
|
|
{{/if}}
|
|
</section>
|
|
</PageLayout>
|