<cd-submit-button (submitAction)="submitAction()"
[form]="discoveryForm"
i18n>Submit</cd-submit-button>
-
- <button class="btn btn-link btn-sm"
- (click)="bsModalRef.hide()"
- i18n>Cancel</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
} from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { ToastModule } from 'ng2-toastr';
import { BsModalRef } from 'ngx-bootstrap/modal';
configureTestBed({
declarations: [IscsiTargetDiscoveryModalComponent],
- imports: [HttpClientTestingModule, ReactiveFormsModule, SharedModule, ToastModule.forRoot()],
+ imports: [
+ HttpClientTestingModule,
+ ReactiveFormsModule,
+ SharedModule,
+ ToastModule.forRoot(),
+ RouterTestingModule
+ ],
providers: [i18nProviders, BsModalRef]
});
type="button"
(submitAction)="submit()"
i18n>Submit</cd-submit-button>
-
- <button type="button"
- class="btn btn-sm btn-default"
- routerLink="/block/iscsi/targets"
- i18n>Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
<button class="btn btn-sm btn-primary"
(click)="save()"
i18n>Confirm</button>
-
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()">Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</ng-container>
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { BsModalRef } from 'ngx-bootstrap/modal';
configureTestBed({
declarations: [IscsiTargetImageSettingsModalComponent],
- imports: [SharedModule, FormsModule, HttpClientTestingModule],
+ imports: [SharedModule, FormsModule, HttpClientTestingModule, RouterTestingModule],
providers: [BsModalRef, i18nProviders]
});
<cd-submit-button i18n
[form]="settingsForm"
(submitAction)="save()">Confirm</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()">Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormControl, ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { BsModalRef } from 'ngx-bootstrap/modal';
configureTestBed({
declarations: [IscsiTargetIqnSettingsModalComponent],
- imports: [SharedModule, ReactiveFormsModule, HttpClientTestingModule],
+ imports: [SharedModule, ReactiveFormsModule, HttpClientTestingModule, RouterTestingModule],
providers: [BsModalRef, i18nProviders]
});
<cd-submit-button i18n
[form]="editModeForm"
(submitAction)="update()">Update</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()">Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
<cd-submit-button i18n
[form]="editPeerForm"
(submitAction)="update()">Submit</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()">Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
(submitAction)="submit()">
<span i18n>{mode, select, editing {Update} cloning {Clone} copying {Copy} other {Create}} RBD</span>
</cd-submit-button>
- <button type="button"
- class="btn btn-sm btn-default"
- routerLink="/block/rbd"
- i18n>Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
</form>
-</div>
\ No newline at end of file
+</div>
<cd-submit-button [form]="snapshotForm"
(submitAction)="submit()"
i18n>{ editing, select, true {Rename} other {Create}} Snapshot</cd-submit-button>
- <button type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()"
- i18n>Close</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Close"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
<cd-submit-button i18n
[form]="moveForm"
(submitAction)="moveImage()">Move Image</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()">Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
<cd-submit-button [form]="purgeForm"
(submitAction)="purge()"
i18n>Purge Trash</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()">Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
<cd-submit-button [form]="restoreForm"
(submitAction)="restore()"
i18n>Restore Image</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="modalRef.hide()">Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
(submitAction)="submit()">
<span i18n>Save</span>
</cd-submit-button>
- <button type="button"
- class="btn btn-sm btn-default"
- routerLink="/configuration"
- i18n>Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
<cd-submit-button (submitAction)="submitAction()"
[form]="osdFlagsForm"
i18n>Submit</cd-submit-button>
-
- <button class="btn btn-link btn-sm"
- (click)="bsModalRef.hide()"
- i18n>Cancel</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import * as _ from 'lodash';
import { ToastModule } from 'ng2-toastr';
ModalModule.forRoot(),
SharedModule,
HttpClientTestingModule,
+ RouterTestingModule,
ToastModule.forRoot()
],
declarations: [OsdFlagsModalComponent],
<cd-submit-button (submitAction)="submitAction()"
[form]="osdRecvSpeedForm"
i18n>Submit</cd-submit-button>
-
- <button class="btn btn-link btn-sm"
- (click)="bsModalRef.hide()"
- i18n>Cancel</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import * as _ from 'lodash';
import { ToastModule } from 'ng2-toastr';
HttpClientTestingModule,
ModalModule.forRoot(),
ReactiveFormsModule,
+ RouterTestingModule,
SharedModule,
ToastModule.forRoot()
],
[form]="reweightForm"
[disabled]="reweightForm.invalid"
i18n>Reweight</cd-submit-button>
-
- <button class="btn btn-link btn-sm"
- (click)="bsModalRef.hide()"
- i18n>Cancel</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</form>
</ng-container>
import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { BsModalRef } from 'ngx-bootstrap/modal';
import { of } from 'rxjs';
import { configureTestBed, i18nProviders } from '../../../../../testing/unit-test-helper';
import { OsdService } from '../../../../shared/api/osd.service';
+import { BackButtonComponent } from '../../../../shared/components/back-button/back-button.component';
import { ModalComponent } from '../../../../shared/components/modal/modal.component';
import { SubmitButtonComponent } from '../../../../shared/components/submit-button/submit-button.component';
import { CdFormBuilder } from '../../../../shared/forms/cd-form-builder';
let fixture: ComponentFixture<OsdReweightModalComponent>;
configureTestBed({
- imports: [ReactiveFormsModule, HttpClientTestingModule],
- declarations: [OsdReweightModalComponent, ModalComponent, SubmitButtonComponent],
+ imports: [ReactiveFormsModule, HttpClientTestingModule, RouterTestingModule],
+ declarations: [
+ OsdReweightModalComponent,
+ ModalComponent,
+ SubmitButtonComponent,
+ BackButtonComponent
+ ],
providers: [OsdService, BsModalRef, CdFormBuilder, i18nProviders]
});
<cd-submit-button (submitAction)="scrub()"
[form]="scrubForm"
i18n>Submit</cd-submit-button>
-
- <button class="btn btn-link btn-sm"
- (click)="bsModalRef.hide()"
- i18n>Cancel</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</form>
</ng-container>
(submitAction)="submitAction()">
<ng-container i18n>Submit</ng-container>
</cd-submit-button>
- <button type="button"
- class="btn btn-sm btn-default"
- (click)="cancelAction()"
- i18n>Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
return requestModel;
}
-
- cancelAction() {
- this.router.navigate(['/nfs']);
- }
}
<cd-submit-button (submitAction)="onSubmit()"
[form]="frm"
i18n>Add</cd-submit-button>
- <button class="btn btn-sm btn-default"
- type="button"
- (click)="bsModalRef.hide()"
- i18n>Close</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Close"
+ i18n-name>
+ </cd-back-button>
</div>
</form>
(submitAction)="submit()">
<span i18n>{editing, select, 1 {Edit} other {Create}} pool</span>
</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- routerLink="/pool">Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
[form]="bucketForm">
<ng-container i18n>{editing, select, 1 {Update} other {Add}}</ng-container>
</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- routerLink="/rgw/bucket">Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
[form]="formGroup">
<ng-container i18n>{editing, select, 1 {Update} other {Add}}</ng-container>
</cd-submit-button>
- <button class="btn btn-sm btn-default"
- type="button"
- (click)="bsModalRef.hide()"
- i18n>Close</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Close"
+ i18n-name>
+ </cd-back-button>
</div>
</form>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { BsModalRef } from 'ngx-bootstrap/modal';
-import { configureTestBed } from '../../../../testing/unit-test-helper';
+import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
import { SharedModule } from '../../../shared/shared.module';
import { RgwUserCapabilityModalComponent } from './rgw-user-capability-modal.component';
configureTestBed({
declarations: [RgwUserCapabilityModalComponent],
- imports: [ReactiveFormsModule, SharedModule],
- providers: [BsModalRef]
+ imports: [ReactiveFormsModule, SharedModule, RouterTestingModule],
+ providers: [BsModalRef, i18nProviders]
});
beforeEach(() => {
[form]="userForm">
<ng-container i18n>{editing, select, 1 {Update} other {Add}}</ng-container>
</cd-submit-button>
- <button class="btn btn-sm btn-default"
- type="button"
- routerLink="/rgw/user"
- i18n>Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
(submitAction)="onSubmit()"
[form]="formGroup"
i18n>Add</cd-submit-button>
- <button class="btn btn-sm btn-default"
- type="button"
- (click)="bsModalRef.hide()"
- i18n>Close</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Close"
+ i18n-name>
+ </cd-back-button>
</div>
</form>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { BsModalRef } from 'ngx-bootstrap/modal';
-import { configureTestBed } from '../../../../testing/unit-test-helper';
+import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
import { SharedModule } from '../../../shared/shared.module';
import { RgwUserS3KeyModalComponent } from './rgw-user-s3-key-modal.component';
configureTestBed({
declarations: [RgwUserS3KeyModalComponent],
- imports: [ReactiveFormsModule, SharedModule],
- providers: [BsModalRef]
+ imports: [ReactiveFormsModule, SharedModule, RouterTestingModule],
+ providers: [BsModalRef, i18nProviders]
});
beforeEach(() => {
[form]="formGroup">
<ng-container i18n>{editing, select, 1 {Update} other {Add}}</ng-container>
</cd-submit-button>
- <button class="btn btn-sm btn-default"
- type="button"
- (click)="bsModalRef.hide()"
- i18n>Close</button>
+ <cd-back-button [back]="bsModalRef.hide"
+ name="Close"
+ i18n-name>
+ </cd-back-button>
</div>
</form>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { FormControl, ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { BsModalRef } from 'ngx-bootstrap/modal';
-import { configureTestBed } from '../../../../testing/unit-test-helper';
+import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
import { SharedModule } from '../../../shared/shared.module';
import { RgwUserSubuserModalComponent } from './rgw-user-subuser-modal.component';
configureTestBed({
declarations: [RgwUserSubuserModalComponent],
- imports: [ReactiveFormsModule, SharedModule],
- providers: [BsModalRef]
+ imports: [ReactiveFormsModule, SharedModule, RouterTestingModule],
+ providers: [BsModalRef, i18nProviders]
});
beforeEach(() => {
type="button"
(submitAction)="submit()"
i18n>{mode, select, editing {Update} other {Create}} Role</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- routerLink="/user-management/roles">Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
type="button"
(submitAction)="submit()"
i18n>{mode, select, editing {Update} other {Create}} User</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- routerLink="/user-management/users">Back</button>
+ <cd-back-button></cd-back-button>
</div>
</div>
</div>
--- /dev/null
+
+<button class="btn btn-sm btn-default tc_backButton"
+ (click)="back()"
+ type="button">
+ {{ name }}
+</button>
--- /dev/null
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+
+import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
+import { BackButtonComponent } from './back-button.component';
+
+describe('BackButtonComponent', () => {
+ let component: BackButtonComponent;
+ let fixture: ComponentFixture<BackButtonComponent>;
+
+ configureTestBed({
+ imports: [RouterTestingModule],
+ declarations: [BackButtonComponent],
+ providers: [i18nProviders]
+ });
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(BackButtonComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
--- /dev/null
+import { Location } from '@angular/common';
+import { Component, Input } from '@angular/core';
+
+import { I18n } from '@ngx-translate/i18n-polyfill';
+
+@Component({
+ selector: 'cd-back-button',
+ templateUrl: './back-button.component.html',
+ styleUrls: ['./back-button.component.scss']
+})
+export class BackButtonComponent {
+ constructor(private location: Location, private i18n: I18n) {}
+
+ @Input() name: string = this.i18n('Back');
+ @Input() back: Function = () => this.location.back();
+}
import { DirectivesModule } from '../directives/directives.module';
import { PipesModule } from '../pipes/pipes.module';
+import { BackButtonComponent } from './back-button/back-button.component';
import { ConfirmationModalComponent } from './confirmation-modal/confirmation-modal.component';
import { CriticalConfirmationModalComponent } from './critical-confirmation-modal/critical-confirmation-modal.component';
import { ErrorPanelComponent } from './error-panel/error-panel.component';
LanguageSelectorComponent,
GrafanaComponent,
SelectComponent,
+ BackButtonComponent,
RefreshSelectorComponent
],
providers: [],
HelperComponent,
SelectBadgesComponent,
SubmitButtonComponent,
+ BackButtonComponent,
ErrorPanelComponent,
LoadingPanelComponent,
InfoPanelComponent,
(submitAction)="onSubmit(confirmationForm.value)">
{{ buttonText }}
</cd-submit-button>
- <button i18n
- type="button"
- class="btn btn-sm btn-default"
- (click)="cancel()">Cancel</button>
+ <cd-back-button [back]="boundCancel"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</div>
</form>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ReactiveFormsModule } from '@angular/forms';
+import { RouterTestingModule } from '@angular/router/testing';
import { BsModalRef } from 'ngx-bootstrap/modal';
-import { configureTestBed } from '../../../../testing/unit-test-helper';
+import { configureTestBed, i18nProviders } from '../../../../testing/unit-test-helper';
+import { BackButtonComponent } from '../back-button/back-button.component';
import { ModalComponent } from '../modal/modal.component';
import { SubmitButtonComponent } from '../submit-button/submit-button.component';
import { ConfirmationModalComponent } from './confirmation-modal.component';
let fixture: ComponentFixture<ConfirmationModalComponent>;
configureTestBed({
- declarations: [ConfirmationModalComponent, SubmitButtonComponent, ModalComponent],
- imports: [ReactiveFormsModule],
- providers: [BsModalRef]
+ declarations: [
+ ConfirmationModalComponent,
+ BackButtonComponent,
+ SubmitButtonComponent,
+ ModalComponent
+ ],
+ imports: [ReactiveFormsModule, RouterTestingModule],
+ providers: [BsModalRef, i18nProviders]
});
beforeEach(() => {
bodyContext: object;
confirmationForm: FormGroup;
+ boundCancel = this.cancel.bind(this);
+
constructor(public modalRef: BsModalRef) {
this.confirmationForm = new FormGroup({});
}
(submitAction)="callSubmitAction()">
<ng-container *ngTemplateOutlet="deletionHeading"></ng-container>
</cd-submit-button>
- <button class="btn btn-link btn-sm"
- (click)="hideModal()"
- i18n>Cancel</button>
+ <cd-back-button [back]="modalRef.hide"
+ name="Cancel"
+ i18n-name>
+ </cd-back-button>
</div>
</form>
</ng-container>