Replace fork-awesome spinner classes with appropriate Carbon loading components:
- cds-inline-loading: for inline spinners (action feedback, status updates)
* table row actions (executing/removing)
* upgrade status text/buttons
* loading panel alerts
- cds-loading size="sm": for section data loading
* tree view loading (crushmap, multisite-details, cephfs-directories)
* progress component operations
- cds-loading size="lg": for dashboard/overview loading
* rgw-overview-dashboard cards
* multi-cluster overview
Added LoadingModule and InlineLoadingModule imports to:
- block.module.ts
- cephfs.module.ts
- cluster.module.ts
(rgw.module.ts and components.module.ts already had them)
Signed-off-by: Afreen Misbah <afreen@ibm.com>
Assisted-by: Claude
Fixes: https://tracker.ceph.com/issues/76631
GridModule,
IconModule,
IconService,
+ InlineLoadingModule,
InputModule,
+ LoadingModule,
ModalModule,
NumberModule,
RadioModule,
ButtonModule,
GridModule,
IconModule,
+ InlineLoadingModule,
+ LoadingModule,
CheckboxModule,
RadioModule,
SelectModule,
target: {
expanded: _.join(
this.selectedItem.cdExecuting
- ? [Icons.size24, Icons.spinner, Icons.spin]
+ ? [Icons.size24, Icons.spinner]
: [Icons.size24, Icons.bullseye],
' '
)
let-column="data.column"
let-value="data.value"
let-row="data.row">
- <i [ngClass]="[icons.spinner, icons.spin]"
- *ngIf="row.cdExecuting"></i>
+ <cds-inline-loading *ngIf="row.cdExecuting"></cds-inline-loading>
<span [ngClass]="column?.customTemplateConfig?.valueClass">
{{ value }}
</span>
(select)="selectNode($event)">
</cds-tree-view>
<div *ngIf="loadingIndicator">
- <i [ngClass]="[icons.spinner, icons.spin]"></i>
+ <cds-loading [isActive]="true"
+ [overlay]="false"
+ size="sm"></cds-loading>
</div>
</div>
</div>
GridModule,
IconModule,
IconService,
+ InlineLoadingModule,
InputModule,
LayoutModule,
+ LoadingModule,
ModalModule,
NumberModule,
PlaceholderModule,
LayoutModule,
ComboBoxModule,
IconModule,
+ InlineLoadingModule,
+ LoadingModule,
RadioModule,
BaseChartDirective,
TabsModule,
ButtonModule,
GridModule,
ProgressIndicatorModule,
+ InlineLoadingModule,
InputModule,
+ LoadingModule,
ModalModule,
TreeviewModule,
ListModule,
GridModule,
ProgressIndicatorModule,
ButtonModule,
+ InlineLoadingModule,
InputModule,
+ LoadingModule,
ModalModule,
ListModule,
ToggletipModule,
<div class="card-body">
<div class="row">
<div class="col-sm-6 col-lg-6 tree-container">
- <i *ngIf="loadingIndicator"
- [ngClass]="[icons.size24, icons.spinner, icons.spin]"></i>
+ <cds-loading *ngIf="loadingIndicator"
+ [isActive]="true"
+ [overlay]="false"
+ size="sm"></cds-loading>
<cds-tree-view #tree
[isMultiSelect]="false"
(select)="onNodeSelected($event)">
<div class="container h-75">
<div class="row h-100 justify-content-center align-items-center">
<div class="blank-page">
- <i class="mx-auto d-block"
- [ngClass]="[icons.size32, icons.spinner, icons.spin]">
- </i>
+ <cds-loading class="mx-auto d-block"
+ [isActive]="true"
+ [overlay]="false"
+ size="lg"></cds-loading>
<p class="text-center mt-3"
i18n>Loading data, Please wait...</p>
</div>
aria-label="Upgrade now"
[disabled]="true"
i18n>Checking for upgrades
- <i [ngClass]="[icons.spin, icons.spinner]"></i>
+ <cds-inline-loading></cds-inline-loading>
</button>
</div>
</ng-template>
+<<<<<<< HEAD
+=======
+<ng-template #loadingDetails>
+ <div class="w-50"
+ *ngIf="!errorMessage; else upgradeInfoError">
+ <span class="text-info justify-content-center align-items-center"
+ i18n>Fetching registry information
+ <cds-inline-loading></cds-inline-loading>
+ </span>
+ </div>
+</ng-template>
+
+>>>>>>> 60818962ca7 (mgr/dashboard: replace icons.spin with Carbon loading components)
<ng-template #upgradeStatusError>
<div cdsStack
orientation="vertical"
</ng-template>
<ng-template #upgradeProgress>
+<<<<<<< HEAD
<div cdsStack
orientation="vertical"
gap="4"
<h5 class="cds--type-heading-compact-01"
i18n>
<i [ngClass]="[icons.spin, icons.spinner]"></i>
+=======
+ <div class="d-flex flex-column justify-content-center align-items-center mt-2">
+ <h5 i18n>
+ <cds-inline-loading></cds-inline-loading>
+>>>>>>> 60818962ca7 (mgr/dashboard: replace icons.spin with Carbon loading components)
Upgrade in progress {{executingTasks?.progress}}%</h5>
<a class="cds--link cds-mb-3"
routerLink="/upgrade/progress"
i18n>Topology Viewer</div>
<div class="row">
<div class="col-sm-6 col-lg-6 tree-container">
- <i *ngIf="loadingIndicator"
- [ngClass]="[icons.size24, icons.spinner, icons.spin]"></i>
+ <cds-loading *ngIf="loadingIndicator"
+ [isActive]="true"
+ [overlay]="false"
+ size="sm"></cds-loading>
<cds-tree-view #tree
[isMultiSelect]="false"
(select)="onNodeSelected($event)">
<span *ngIf="data.categoryPgAmount?.working">
{{ data.categoryPgAmount?.working }}
</span>
- <i class="text-warning"
- [ngClass]="[icons.spinner, icons.spin]">
- </i>
+ <cds-inline-loading class="text-warning"></cds-inline-loading>
</span>
}
</ng-template>
<ngb-alert type="info"
[dismissible]="false">
<strong>
- <i [ngClass]="[icons.spinner, icons.spin]"
- aria-hidden="true"
- class="me-2"></i>
+ <cds-inline-loading aria-hidden="true"
+ class="me-2"></cds-inline-loading>
</strong>
<ng-content></ng-content>
</ngb-alert>
<h3 class="text-center"
[ngClass]="{ 'mt-3': status === 'in-progress' && isPaused }"
*ngIf="!value || actionName === 'upgrading'">
- <i *ngIf="status === 'in-progress' && isPaused; else spinningIcon"
- [ngClass]="[icons.size24, icons.spinner]"></i>
+ <cds-loading *ngIf="status === 'in-progress' && isPaused; else spinningIcon"
+ [isActive]="false"
+ [overlay]="false"
+ size="sm"></cds-loading>
<ng-template #spinningIcon>
- <i [ngClass]="[icons.size24, icons.spin, icons.spinner]"></i>
+ <cds-loading [isActive]="true"
+ [overlay]="false"
+ size="sm"></cds-loading>
</ng-template>
</h3>
--- /dev/null
+<div *ngIf="upgradeStatus$ | async as status; else isUpgradable">
+ <ng-container *ngIf="status.is_paused || status.in_progress; else isUpgradable">
+ <h5 *ngIf="status.is_paused; else inProgress"
+ i18n>
+ Upgrade is paused
+ </h5>
+ <ng-template #inProgress>
+ <a href="#/upgrade/progress"
+ i18n>
+ <cds-inline-loading></cds-inline-loading>
+ Upgrading {{executingTask?.progress}}%
+ </a>
+ </ng-template>
+ </ng-container>
+</div>
+
+<ng-template #isUpgradable>
+ <div *ngIf="upgradeInfo$ | async as info"
+ i18n>
+ <h5 *ngIf="info.versions.length > 0"
+ (click)="upgradeModal()">
+ <i [ngClass]="icons.up"></i>
+ Upgrade available
+ </h5>
+ </div>
+</ng-template>
let-column="data.column"
let-row="data.row"
let-value="data.value">
- <i [ngClass]="[icons.spinner, icons.spin]"
- *ngIf="row.cdExecuting"></i>
+ <cds-inline-loading *ngIf="row.cdExecuting"></cds-inline-loading>
<span [ngClass]="column?.customTemplateConfig?.valueClass">
{{ value }}
</span>