83 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!--
 | 
						|
 | 
						|
    Copyright © 2016-2025 The Thingsboard Authors
 | 
						|
 | 
						|
    Licensed under the Apache License, Version 2.0 (the "License");
 | 
						|
    you may not use this file except in compliance with the License.
 | 
						|
    You may obtain a copy of the License at
 | 
						|
 | 
						|
        http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
 | 
						|
    Unless required by applicable law or agreed to in writing, software
 | 
						|
    distributed under the License is distributed on an "AS IS" BASIS,
 | 
						|
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						|
    See the License for the specific language governing permissions and
 | 
						|
    limitations under the License.
 | 
						|
 | 
						|
-->
 | 
						|
<section *ngIf="!versionLoadResult$">
 | 
						|
  <mat-toolbar *ngIf="entityDataInfo">
 | 
						|
    <h2 tbTruncateWithTooltip>{{ 'version-control.restore-entity-from-version' | translate: {versionName} }}</h2>
 | 
						|
    <span class="flex-1"></span>
 | 
						|
  </mat-toolbar>
 | 
						|
  <mat-progress-bar color="warn" style="z-index: 10; width: 100%; margin-bottom: -4px;" mode="indeterminate"
 | 
						|
                    *ngIf="entityDataInfo && (isLoading$ | async)">
 | 
						|
  </mat-progress-bar>
 | 
						|
  <mat-spinner *ngIf="!entityDataInfo" mode="indeterminate" diameter="80"></mat-spinner>
 | 
						|
  <form *ngIf="entityDataInfo" [formGroup]="restoreFormGroup" style="padding-top: 16px;">
 | 
						|
    <fieldset [disabled]="isLoading$ | async">
 | 
						|
      <div class="flex flex-1 flex-col">
 | 
						|
        <mat-checkbox *ngIf="entityDataInfo.hasCredentials" formControlName="loadCredentials" style="margin-bottom: 16px;">
 | 
						|
          {{ 'version-control.load-credentials' | translate }}
 | 
						|
        </mat-checkbox>
 | 
						|
        <mat-checkbox *ngIf="entityDataInfo.hasAttributes" formControlName="loadAttributes" style="margin-bottom: 16px;">
 | 
						|
          {{ 'version-control.load-attributes' | translate }}
 | 
						|
        </mat-checkbox>
 | 
						|
        <mat-checkbox *ngIf="entityDataInfo.hasRelations" formControlName="loadRelations" style="margin-bottom: 16px;">
 | 
						|
          {{ 'version-control.load-relations' | translate }}
 | 
						|
        </mat-checkbox>
 | 
						|
        <mat-checkbox *ngIf="entityDataInfo.hasCalculatedFields" formControlName="loadCalculatedFields" class="mb-4">
 | 
						|
          {{ 'version-control.load-calculated-fields' | translate }}
 | 
						|
        </mat-checkbox>
 | 
						|
      </div>
 | 
						|
    </fieldset>
 | 
						|
  </form>
 | 
						|
  <div *ngIf="entityDataInfo"  class="flex items-center justify-end gap-2">
 | 
						|
    <button mat-button color="primary"
 | 
						|
            type="button"
 | 
						|
            [disabled]="(isLoading$ | async)"
 | 
						|
            (click)="cancel()" cdkFocusInitial>
 | 
						|
      {{ 'action.cancel' | translate }}
 | 
						|
    </button>
 | 
						|
    <button mat-raised-button color="primary"
 | 
						|
            type="button"
 | 
						|
            (click)="restore()"
 | 
						|
            [disabled]="(isLoading$ | async) || restoreFormGroup.invalid">
 | 
						|
      {{ 'action.restore' | translate }}
 | 
						|
    </button>
 | 
						|
  </div>
 | 
						|
</section>
 | 
						|
<section *ngIf="versionLoadResult$">
 | 
						|
  <section *ngIf="(versionLoadResult$ | async)?.done || errorMessage; else progress">
 | 
						|
    <section *ngIf="errorMessage">
 | 
						|
      <div class="mat-headline-6 vc-result-message error" [innerHTML]="errorMessage"></div>
 | 
						|
      <div class="flex items-center justify-end gap-2">
 | 
						|
        <button mat-button color="primary"
 | 
						|
                type="button"
 | 
						|
                [disabled]="(isLoading$ | async)"
 | 
						|
                (click)="cancel()" cdkFocusInitial>
 | 
						|
          {{ 'action.close' | translate }}
 | 
						|
        </button>
 | 
						|
      </div>
 | 
						|
    </section>
 | 
						|
  </section>
 | 
						|
  <ng-template #progress>
 | 
						|
    <section class="flex flex-col items-center justify-center">
 | 
						|
      <div class="mat-headline-6 vc-result-message progress">
 | 
						|
        <span translate>version-control.restoring-entity-version</span>
 | 
						|
        <mat-progress-bar mode="indeterminate"></mat-progress-bar>
 | 
						|
      </div>
 | 
						|
    </section>
 | 
						|
  </ng-template>
 | 
						|
</section>
 |