UI: Show a 'loading' chip when tasks are being loaded
Currently, 'No Tasks' is shown in the tasks summary section when the
API to fetch the tasks is in progress. Show a 'loading' chip instead.
https://imgur.com/a/hSTtmRx
Change-Id: Ie89cc9276ac4c5e3f47aec3b0831636feb781cdc
diff --git a/gr-task-plugin/gr-task-chip_html.js b/gr-task-plugin/gr-task-chip_html.js
index 68e1d0c..a8e55d0 100644
--- a/gr-task-plugin/gr-task-chip_html.js
+++ b/gr-task-plugin/gr-task-chip_html.js
@@ -35,6 +35,17 @@
position: relative;
top: 2px;
}
+ .taskSummaryChip.loading {
+ border-color: var(--gray-foreground);
+ background: var(--gray-background);
+ }
+ .taskSummaryChip.loading:hover {
+ background: var(--gray-background-hover);
+ box-shadow: var(--elevation-level-1);
+ }
+ .taskSummaryChip.loading:focus-within {
+ background: var(--gray-background-focus);
+ }
.taskSummaryChip.success {
border-color: var(--success-foreground);
background: var(--success-background);
diff --git a/gr-task-plugin/gr-task-summary.js b/gr-task-plugin/gr-task-summary.js
index 1e23ebe..4fa8ea8 100644
--- a/gr-task-plugin/gr-task-summary.js
+++ b/gr-task-plugin/gr-task-summary.js
@@ -64,6 +64,11 @@
notify: true,
value: 0,
},
+
+ is_loading: {
+ type: Boolean,
+ value: true,
+ },
};
}
@@ -77,13 +82,19 @@
this.waiting_count = e.detail.waiting_count;
this.duplicate_count = e.detail.duplicate_count;
this.pass_count = e.detail.pass_count;
+ this.is_loading = false;
});
}
- _can_show_chips(ready_count, fail_count, invalid_count,
- waiting_count, duplicate_count, pass_count) {
- return ready_count || fail_count || invalid_count ||
- waiting_count || duplicate_count || pass_count;
+ _show_no_tasks(is_loading, ready_count,
+ fail_count, invalid_count,
+ waiting_count, duplicate_count,
+ pass_count) {
+ if (is_loading || ready_count || fail_count || invalid_count ||
+ waiting_count || duplicate_count || pass_count) {
+ return false;
+ }
+ return true;
}
}
diff --git a/gr-task-plugin/gr-task-summary_html.js b/gr-task-plugin/gr-task-summary_html.js
index 2e567c3..6fdb42f 100644
--- a/gr-task-plugin/gr-task-summary_html.js
+++ b/gr-task-plugin/gr-task-summary_html.js
@@ -71,16 +71,15 @@
<tr>
<td class="key">Tasks</td>
<td class="value">
- <template is="dom-if" if="[[_can_show_chips(ready_count, fail_count, invalid_count, waiting_count, duplicate_count, pass_count)]]">
- <gr-task-chip chip_style="fail" hidden$="[[!fail_count]]">[[fail_count]] blocked</gr-task-chip>
- <gr-task-chip chip_style="invalid" hidden$="[[!invalid_count]]">[[invalid_count]] invalid</gr-task-chip>
- <gr-task-chip chip_style="duplicate" hidden$="[[!duplicate_count]]">[[duplicate_count]] duplicate</gr-task-chip>
- <gr-task-chip chip_style="ready" hidden$="[[!ready_count]]">[[ready_count]] ready</gr-task-chip>
- <gr-task-chip chip_style="waiting" hidden$="[[!waiting_count]]">[[waiting_count]] waiting</gr-task-chip>
- <gr-task-chip chip_style="success" hidden$="[[!pass_count]]">[[pass_count]] passed</gr-task-chip>
- </template>
- <template is="dom-if" if="[[!_can_show_chips(ready_count, fail_count, invalid_count, waiting_count, duplicate_count, pass_count)]]">
- <td>No tasks</td>
+ <gr-task-chip chip_style="loading" hidden$="[[!is_loading]]">loading...</gr-task-chip>
+ <gr-task-chip chip_style="fail" hidden$="[[!fail_count]]">[[fail_count]] blocked</gr-task-chip>
+ <gr-task-chip chip_style="invalid" hidden$="[[!invalid_count]]">[[invalid_count]] invalid</gr-task-chip>
+ <gr-task-chip chip_style="duplicate" hidden$="[[!duplicate_count]]">[[duplicate_count]] duplicate</gr-task-chip>
+ <gr-task-chip chip_style="ready" hidden$="[[!ready_count]]">[[ready_count]] ready</gr-task-chip>
+ <gr-task-chip chip_style="waiting" hidden$="[[!waiting_count]]">[[waiting_count]] waiting</gr-task-chip>
+ <gr-task-chip chip_style="success" hidden$="[[!pass_count]]">[[pass_count]] passed</gr-task-chip>
+ <template is="dom-if" if="[[_show_no_tasks(is_loading, ready_count, fail_count, invalid_count, waiting_count, duplicate_count, pass_count)]]">
+ <td>No tasks</td>
</template>
</td>
</tr>