<div class="modal-body">
<!-- User -->
<div class="form-group row">
- <label class="col-form-label col-sm-4"
+ <label class="cd-col-form-label"
for="user"
i18n>User</label>
- <div class="col-sm-8">
+ <div class="cd-col-form-input">
<input id="user"
class="form-control"
formControlName="user"
<!-- Password -->
<div class="form-group row">
- <label class="col-form-label col-sm-4"
+ <label class="cd-col-form-label"
for="password"
i18n>Password</label>
- <div class="col-sm-8">
+ <div class="cd-col-form-input">
<div class="input-group">
<input id="password"
class="form-control"
<!-- mutual_user -->
<div class="form-group row">
- <label class="col-form-label col-sm-4"
+ <label class="cd-col-form-label"
for="mutual_user">
<ng-container i18n>Mutual User</ng-container>
</label>
- <div class="col-sm-8">
+ <div class="cd-col-form-input">
<input id="mutual_user"
class="form-control"
formControlName="mutual_user"
<!-- mutual_password -->
<div class="form-group row">
- <label class="col-form-label col-sm-4"
+ <label class="cd-col-form-label"
for="mutual_password"
i18n>Mutual Password</label>
- <div class="col-sm-8">
+ <div class="cd-col-form-input">
<div class="input-group">
<input id="mutual_password"
class="form-control"
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form name="targetForm"
#formDir="ngForm"
[formGroup]="targetForm"
<div class="card-body">
<!-- Target IQN -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="target_iqn">
<ng-container i18n>Target IQN</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="text"
<!-- Portals -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="portals">
<ng-container i18n>Portals</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-container *ngFor="let portal of portals.value; let i = index">
<div class="input-group cd-mb">
<!-- Images -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="disks"
i18n>Images</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-container *ngFor="let image of targetForm.getValue('disks'); let i = index">
<div class="input-group cd-mb">
<input class="cd-form-control"
<!-- acl_enabled -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
<!-- Target user -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="target_user">
<ng-container i18n>User</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
id="target_user"
<!-- Target password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="target_password">
<ng-container i18n>Password</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="password"
<!-- Target mutual_user -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="target_mutual_user">
<ng-container i18n>Mutual User</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
id="target_mutual_user"
<!-- Target mutual_password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="target_mutual_password">
<ng-container i18n>Mutual Password</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="password"
<!-- Initiators -->
<div class="form-group row"
*ngIf="targetForm.getValue('acl_enabled')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="initiators"
i18n>Initiators</label>
- <div class="col-sm-9"
+ <div class="cd-col-form-input"
formArrayName="initiators">
<div class="card mb-2"
*ngFor="let initiator of initiators.controls; let ii = index"
<div class="card-body">
<!-- Initiator: Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="client_iqn">
<ng-container i18n>Client IQN</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
formControlName="client_iqn"
<ng-container formGroupName="auth">
<!-- Initiator: User -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="user"
i18n>User</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input [id]="'user' + ii"
class="form-control"
formControlName="user"
<!-- Initiator: Password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="password"
i18n>Password</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input [id]="'password' + ii"
class="form-control"
<!-- Initiator: mutual_user -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="mutual_user">
<ng-container i18n>Mutual User</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input [id]="'mutual_user' + ii"
class="form-control"
formControlName="mutual_user"
<!-- Initiator: mutual_password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="mutual_password"
i18n>Mutual Password</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input [id]="'mutual_password' + ii"
class="form-control"
<!-- Initiator: Images -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="luns"
i18n>Images</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-container *ngFor="let image of initiator.getValue('luns'); let li = index">
<div class="input-group cd-mb">
<input class="cd-form-control"
<!-- Groups -->
<div class="form-group row"
*ngIf="targetForm.getValue('acl_enabled')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="initiators"
i18n>Groups</label>
- <div class="col-sm-9"
+ <div class="cd-col-form-input"
formArrayName="groups">
<div class="card mb-2"
*ngFor="let group of groups.controls; let gi = index"
<div class="card-body">
<!-- Group: group_id -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="group_id">
<ng-container i18n>Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
formControlName="group_id">
<!-- Group: members -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="members">
<ng-container i18n>Initiators</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-container *ngFor="let member of group.getValue('members'); let i = index">
<div class="input-group cd-mb">
<input class="cd-form-control"
<!-- Group: disks -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="disks">
<ng-container i18n>Images</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-container *ngFor="let disk of group.getValue('disks'); let i = index">
<div class="input-group cd-mb">
<input class="cd-form-control"
[hidden]="!sectionVisibility[section.class]">
<div class="form-group row"
*ngFor="let option of section.options">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
[for]="option.name">{{ option.displayName }}<cd-helper>{{ option.description }}</cd-helper></label>
- <div class="col-sm-9 {{ section.heading }}">
+ <div class="cd-col-form-input {{ section.heading }}">
<div class="input-group">
<ng-container [ngSwitch]="option.type">
<ng-container *ngSwitchCase="configurationType.milliseconds">
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form name="rbdForm"
#formDir="ngForm"
[formGroup]="rbdForm"
<div class="form-group row"
*ngIf="rbdForm.getValue('parent')">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="name">{{ action | titlecase }} from</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
id="parent"
<!-- Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="name">
<ng-container i18n>Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Name..."
<!-- Pool -->
<div class="form-group row"
(change)="onPoolChange($event.target.value)">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="pool">
Pool
<span class="required"
*ngIf="mode !== 'editing'"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Pool name..."
<!-- Namespace -->
<div class="form-group row"
*ngIf="mode !== 'editing' && rbdForm.getValue('pool') && namespaces === null">
- <div class="col-sm-9 offset-sm-3">
+ <div class="cd-col-form-offset">
<i [ngClass]="[icons.spinner, icons.spin]"></i>
</div>
</div>
<div class="form-group row"
*ngIf="(mode === 'editing' && rbdForm.getValue('namespace')) || mode !== 'editing' && (namespaces && namespaces.length > 0 || !poolPermission.read)">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="pool">
Namespace
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Namespace..."
<!-- Use a dedicated pool -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
<!-- Data Pool -->
<div class="form-group row"
*ngIf="rbdForm.getValue('useDataPool')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="dataPool">
<ng-container i18n>Data pool</ng-container>
<span class="required"
html="Dedicated pool that stores the object-data of the RBD.">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Data pool name..."
<!-- Size -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="size">
<ng-container i18n>Size</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="size"
name="size"
class="form-control"
<div class="form-group row"
formGroupName="features">
<label i18n
- class="col-sm-3 col-form-label"
+ class="cd-col-form-label"
for="features">Features</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="custom-control custom-checkbox"
*ngFor="let feature of featuresList">
<input type="checkbox"
<!-- Object Size -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="size">Object size</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select id="obj_size"
name="obj_size"
class="form-control custom-select"
<!-- stripingUnit -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="stripingUnit">
<span i18n>Stripe unit</span>
<span class="required"
*ngIf="rbdForm.getValue('stripingCount')">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select id="stripingUnit"
name="stripingUnit"
class="form-control custom-select"
<!-- Stripe Count -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="stripingCount">
<span i18n>Stripe count</span>
<span class="required"
*ngIf="rbdForm.getValue('stripingUnit')">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="stripingCount"
name="stripingCount"
formControlName="stripingCount"
<!-- Pool -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="pool">
Pool
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Pool name..."
<!-- Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="namespace">
<ng-container i18n>Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Namespace name..."
<!-- Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="snapshotName">
<ng-container i18n>Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Snapshot name..."
-<div class="col-sm-12 col-md-12 col-lg-6">
+<div class="cd-col-form">
<form name="configForm"
#formDir="ngForm"
[formGroup]="configForm"
<!-- Name -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3">Name</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Name</label>
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
id="name"
<div class="form-group row"
*ngIf="configForm.getValue('desc')">
<label i18n
- class="col-form-label col-sm-3">Description</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Description</label>
+ <div class="cd-col-form-input">
<textarea class="form-control resize-vertical"
id="desc"
formControlName="desc"
<div class="form-group row"
*ngIf="configForm.getValue('long_desc')">
<label i18n
- class="col-form-label col-sm-3">Long description</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Long description</label>
+ <div class="cd-col-form-input">
<textarea class="form-control resize-vertical"
id="long_desc"
formControlName="long_desc"
<div class="form-group row"
*ngIf="configForm.getValue('default') !== ''">
<label i18n
- class="col-form-label col-sm-3">Default</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Default</label>
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
id="default"
<div class="form-group row"
*ngIf="configForm.getValue('daemon_default') !== ''">
<label i18n
- class="col-form-label col-sm-3">Daemon default</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Daemon default</label>
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
id="daemon_default"
<div class="form-group row"
*ngIf="configForm.getValue('services').length > 0">
<label i18n
- class="col-form-label col-sm-3">Services</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Services</label>
+ <div class="cd-col-form-input">
<span *ngFor="let service of configForm.getValue('services')"
class="form-component-badge">
<span class="badge badge-dark">{{ service }}</span>
<ng-container *ngFor="let section of availSections">
<div class="form-group row"
*ngIf="type === 'bool'">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
[for]="section">{{ section }}
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select id="pool"
name="pool"
class="form-control custom-select"
<div class="form-group row"
*ngIf="type !== 'bool'">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
[for]="section">{{ section }}
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
[type]="inputType"
[id]="section"
<cd-loading-panel *ngIf="loading"
i18n>Loading...</cd-loading-panel>
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form name="hostForm"
*ngIf="!loading"
#formDir="ngForm"
<!-- Hostname -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="hostname">
<ng-container i18n>Hostname</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="mon-123"
*ngIf="loading && error"
i18n>The configuration could not be loaded.</cd-alert-panel>
-<div class="col-sm-12 col-lg-6"
+<div class="cd-col-form"
*ngIf="!loading && !error">
<form name="mgrModuleForm"
#frm="ngForm"
<!-- button -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="createDeleteButton">
<ng-container i18n>{{ name }} devices</ng-container>
<cd-helper>
*ngIf="type === 'db'">DB devices can be used for storing BlueStore’s internal metadata. It is only helpful to provision a DB device if it is faster than the primary device (e.g. NVME devices or SSD).</span>
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-container *ngIf="devices.length === 0; else blockClearDevices">
<button type="button"
class="btn btn-light"
}
];
- const buttonSelector = '.col-sm-9 button';
+ const buttonSelector = '.cd-col-form-input button';
const getButton = () => {
const debugElement = fixtureHelper.getElementByCss(buttonSelector);
return debugElement.nativeElement;
<a href="{{ docsUrl }}"
target="_blank">documentation</a> on how to
configure and enable the orchestrator functionality.</cd-alert-panel>
-<div class="col-sm-10"
+<div class="cd-col-form"
*ngIf="!loading && orchestratorExist">
<form name="form"
#formDir="ngForm"
<!-- WAL slots -->
<div class="form-group row"
*ngIf="walDeviceSelectionGroups.devices.length !== 0">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="walSlots">
<ng-container i18n>WAL slots</ng-container>
<cd-helper>
<span i18n>Specify 0 to let Orchestrator backend decide it.</span>
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
id="walSlots"
name="walSlots"
<!-- DB slots -->
<div class="form-group row"
*ngIf="dbDeviceSelectionGroups.devices.length !== 0">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="dbSlots">
<ng-container i18n>DB slots</ng-container>
<cd-helper>
<span i18n>Specify 0 to let Orchestrator backend decide it.</span>
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
id="dbSlots"
name="dbSlots"
<div class="form-group row"
formGroupName="features">
<label i18n
- class="col-sm-3 col-form-label"
+ class="cd-col-form-label"
for="features">Features</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="custom-control custom-checkbox"
*ngFor="let feature of featureList">
<input type="checkbox"
it('should display form', () => {
fixtureHelper.expectElementVisible('cd-alert-panel', false);
- fixtureHelper.expectElementVisible('.col-sm-10 form', true);
+ fixtureHelper.expectElementVisible('.cd-col-form form', true);
});
describe('without data devices selected', () => {
<span class="help-block"></span>
</ng-template>
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form #formDir="ngForm"
[formGroup]="form"
class="form"
<!-- Creator -->
<div class="card-body">
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="created-by">
<ng-container i18n>Creator</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
formControlName="createdBy"
id="created-by"
<!-- Comment -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="comment">
<ng-container i18n>Comment</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<textarea class="form-control"
formControlName="comment"
id="comment"
<!-- Start time -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="starts-at">
<ng-container i18n>Start time</ng-container>
<cd-helper i18n>If the start time lies in the past the creation time will be used</cd-helper>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input [bsConfig]="bsConfig"
bsDatepicker
class="form-control"
<!-- Duration -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="duration">
<ng-container i18n>Duration</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
formControlName="duration"
id="duration"
<!-- End time -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="ends-at">
<ng-container i18n>End time</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input [bsConfig]="bsConfig"
bsDatepicker
class="form-control"
<fieldset>
<legend i18n>Matchers<span class="required">*</span></legend>
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<h5 *ngIf="matchers.length === 0"
[ngClass]="{'text-warning': !formDir.submitted, 'text-danger': formDir.submitted}">
<strong i18n>A silence requires at least one matcher</strong>
</div>
<div *ngIf="matchers.length && matcherMatch"
- class="offset-sm-3 col-sm-9 {{matcherMatch.cssClass}}"
+ class="cd-col-form-offset {{matcherMatch.cssClass}}"
id="match-state">
<span class="text-muted {{matcherMatch.cssClass}}">
{{ matcherMatch.status }}
<div class="modal-body">
<!-- Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="name">
<ng-container i18n>Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control"
id="name"
formControlName="name"
<!-- Value -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="value">
<ng-container i18n>Value</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="value"
class="form-control"
type="text"
i18n>This field is required!</span>
</div>
<div *ngIf="form.getValue('value') && !form.getValue('isRegex') && matcherMatch"
- class="offset-sm-3 col-sm-9 {{matcherMatch.cssClass}}"
+ class="cd-col-form-offset {{matcherMatch.cssClass}}"
id="match-state">
<span class="text-muted {{matcherMatch.cssClass}}">
{{matcherMatch.status}}
<!-- isRegex -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
i18n>Clients</label>
- <div class="col-sm-9"
+ <div class="cd-col-form-input"
[formGroup]="form"
#formDir="ngForm">
<span *ngIf="form.get('clients').value.length === 0"
<!-- Addresses -->
<div class="form-group row">
<label i18n
- class="col-sm-3 col-form-label"
+ class="cd-col-form-label"
for="addresses">Addresses</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
class="form-control"
name="addresses"
<!-- Access Type-->
<div class="form-group row">
<label i18n
- class="col-sm-3 col-form-label"
+ class="cd-col-form-label"
for="access_type">Access Type</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
name="access_type"
id="access_type"
<!-- Squash -->
<div class="form-group row">
<label i18n
- class="col-sm-3 col-form-label"
+ class="cd-col-form-label"
for="squash">Squash</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
name="squash"
id="squash"
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form name="nfsForm"
#formDir="ngForm"
[formGroup]="nfsForm"
<!-- cluster_id -->
<div class="form-group row"
*ngIf="!isDefaultCluster">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="cluster_id">
<ng-container i18n>Cluster</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
formControlName="cluster_id"
name="cluster_id"
<!-- daemons -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="daemons">
<ng-container i18n>Daemons</ng-container>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-container *ngFor="let daemon of nfsForm.getValue('daemons'); let i = index">
<div class="input-group cd-mb">
<input class="cd-form-control"
<div formGroupName="fsal">
<!-- Name -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="name">
<ng-container i18n>Storage Backend</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
formControlName="name"
name="name"
<!-- RGW user -->
<div class="form-group row"
*ngIf="nfsForm.getValue('name') === 'RGW'">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="rgw_user_id">
<ng-container i18n>Object Gateway User</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
formControlName="rgw_user_id"
name="rgw_user_id"
<!-- CephFS user_id -->
<div class="form-group row"
*ngIf="nfsForm.getValue('name') === 'CEPH'">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="user_id">
<ng-container i18n>CephFS User ID</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
formControlName="user_id"
name="user_id"
<!-- CephFS fs_name -->
<div class="form-group row"
*ngIf="nfsForm.getValue('name') === 'CEPH'">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="fs_name">
<ng-container i18n>CephFS Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
formControlName="fs_name"
name="fs_name"
<!-- Secutiry Label -->
<div class="form-group row"
*ngIf="nfsForm.getValue('name') === 'CEPH'">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="security_label">
<ng-container i18n>Security Label</ng-container>
<span class="required"
*ngIf="nfsForm.getValue('security_label')"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
<!-- Path -->
<div class="form-group row"
*ngIf="nfsForm.getValue('name') === 'CEPH'">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="path">
<ng-container i18n>CephFS Path</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
class="form-control"
name="path"
<!-- Bucket -->
<div class="form-group row"
*ngIf="nfsForm.getValue('name') === 'RGW'">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="path">
<ng-container i18n>Path</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
class="form-control"
name="path"
<!-- NFS Protocol -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="protocols">
<ng-container i18n>NFS Protocol</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
<!-- Tag -->
<div class="form-group row"
*ngIf="nfsForm.getValue('protocolNfsv3')">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="tag">
<ng-container i18n>NFS Tag</ng-container>
<cd-helper>
<p i18n>By using different Tag options, the same Path may be exported multiple times.</p>
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
class="form-control"
name="tag"
<!-- Pseudo -->
<div class="form-group row"
*ngIf="nfsForm.getValue('protocolNfsv4')">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="pseudo">
<ng-container i18n>Pseudo</ng-container>
<span class="required"></span>
<p i18n>By using different Pseudo options, the same Path may be exported multiple times.</p>
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
class="form-control"
name="pseudo"
<!-- Access Type -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="access_type">
<ng-container i18n>Access Type</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
formControlName="access_type"
name="access_type"
<!-- Squash -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="squash">
<ng-container i18n>Squash</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
name="squash"
formControlName="squash"
<!-- Transport Protocol -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
for="transports">
<ng-container i18n>Transport Protocol</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
<div class="modal-body">
<div class="form-group row">
<label for="name"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
id="name"
name="name"
<div class="form-group row">
<label for="plugin"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Plugin</ng-container>
<span class="required"></span>
<cd-helper [html]="tooltips.plugins[plugin].description">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="plugin"
name="plugin"
<div class="form-group row">
<label for="k"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Data chunks (k)</ng-container>
<span class="required"
*ngIf="requiredControls.includes('k')"></span>
<cd-helper [html]="tooltips.k">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="number"
id="k"
name="k"
<div class="form-group row">
<label for="m"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Coding chunks (m)</ng-container>
<span class="required"
*ngIf="requiredControls.includes('m')"></span>
<cd-helper [html]="tooltips.m">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="number"
id="m"
name="m"
<div class="form-group row"
*ngIf="plugin === 'shec'">
<label for="c"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Durability estimator (c)</ng-container>
<cd-helper [html]="tooltips.plugins.shec.c">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="number"
id="c"
name="c"
<div class="form-group row"
*ngIf="plugin === PLUGIN.LRC">
<label for="l"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Locality (l)</ng-container>
<span class="required"></span>
<cd-helper [html]="tooltips.plugins.lrc.l">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="number"
id="l"
name="l"
<div class="form-group row">
<label for="crushFailureDomain"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Crush failure domain</ng-container>
<cd-helper [html]="tooltips.crushFailureDomain">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="crushFailureDomain"
name="crushFailureDomain"
<div class="form-group row"
*ngIf="plugin === PLUGIN.LRC">
<label for="crushLocality"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Crush Locality</ng-container>
<cd-helper [html]="tooltips.plugins.lrc.crushLocality">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="crushLocality"
name="crushLocality"
<div class="form-group row"
*ngIf="[PLUGIN.JERASURE, PLUGIN.ISA].includes(plugin)">
<label for="technique"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Technique</ng-container>
<cd-helper [html]="tooltips.plugins[plugin].technique">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="technique"
name="technique"
<div class="form-group row"
*ngIf="plugin === PLUGIN.JERASURE">
<label for="packetSize"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Packetsize</ng-container>
<cd-helper [html]="tooltips.plugins.jerasure.packetSize">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="number"
id="packetSize"
name="packetSize"
<div class="form-group row">
<label for="crushRoot"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Crush root</ng-container>
<cd-helper [html]="tooltips.crushRoot">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
id="crushRoot"
name="crushRoot"
<div class="form-group row">
<label for="crushDeviceClass"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Crush device class</ng-container>
<cd-helper [html]="tooltips.crushDeviceClass">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="crushDeviceClass"
name="crushDeviceClass"
<div class="form-group row">
<label for="directory"
- class="col-form-label col-sm-3">
+ class="cd-col-form-label">
<ng-container i18n>Directory</ng-container>
<cd-helper [html]="tooltips.directory">
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input type="text"
id="directory"
name="directory"
<cd-loading-panel *ngIf="!(info && ecProfiles)"
i18n>Loading...</cd-loading-panel>
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form name="form"
*ngIf="info && ecProfiles"
#formDir="ngForm"
<div class="card-body">
<!-- Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="name">
<ng-container i18n>Name</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="name"
name="name"
type="text"
<!-- Pool type selection -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="poolType">
<ng-container i18n>Pool type</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="poolType"
formControlName="poolType"
<!-- PG Autoscale Mode -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="pgAutoscaleMode">PG Autoscale</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="pgAutoscaleMode"
name="pgAutoscaleMode"
<!-- Pg number -->
<div class="form-group row"
*ngIf="form.getValue('pgAutoscaleMode') !== 'on'">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="pgNum">
<ng-container i18n>Placement groups</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
id="pgNum"
name="pgNum"
<!-- Replica Size -->
<div class="form-group row"
*ngIf="form.getValue('poolType') === 'replicated'">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="size">
<ng-container i18n>Replicated size</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
id="size"
[max]="getMaxSize()"
<div class="form-group row"
*ngIf="info.is_all_bluestore && form.getValue('poolType') === 'erasure'">
<label i18n
- class="col-form-label col-sm-3">Flags</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Flags</label>
+ <div class="cd-col-form-input">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
<!-- Applications -->
<div class="form-group row">
<label i18n
- class="col-sm-3 col-form-label"
+ class="cd-col-form-label"
for="applications">Applications</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<cd-select-badges id="applications"
[customBadges]="true"
[customBadgeValidators]="data.applications.validators"
<div class="form-group row"
*ngIf="form.getValue('poolType') === 'erasure'">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="erasureProfile">Erasure code profile</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<select class="form-control custom-select"
id="erasureProfile"
<!-- Crush ruleset selection -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="crushRule"
i18n>Crush ruleset</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-template #noRules>
<span class="form-text text-muted">
<span i18n>There are no rules.</span>
<!-- Compression Mode -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="mode">Mode</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="mode"
name="mode"
<!-- Compression algorithm selection -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="algorithm">Algorithm</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select class="form-control custom-select"
id="algorithm"
name="algorithm"
<!-- Compression min blob size -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="minBlobSize">Minimum blob size</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="minBlobSize"
name="minBlobSize"
formControlName="minBlobSize"
<!-- Compression max blob size -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="maxBlobSize">Maximum blob size</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="maxBlobSize"
type="text"
min="0"
<!-- Compression ratio -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="ratio">Ratio</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="ratio"
name="ratio"
formControlName="ratio"
<!-- Max Bytes -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="max_bytes">
<ng-container i18n>Max bytes</ng-container>
<cd-helper>
<span i18n>A valid quota should be greater than 0.</span>
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
id="max_bytes"
name="max_bytes"
<!-- Max Objects -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="max_objects">
<ng-container i18n>Max objects</ng-container>
<cd-helper>
<span i18n>A valid quota should be greater than 0.</span>
</cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
id="max_objects"
min="0"
<cd-loading-panel *ngIf="editing && loading && !error"
i18n>Loading bucket data...</cd-loading-panel>
-<div class="col-sm-12 col-lg-6"
+<div class="cd-col-form"
*ngIf="!loading && !error">
<form name="bucketForm"
#frm="ngForm"
<div class="form-group row"
*ngIf="editing">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="id">Id</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="id"
name="id"
class="form-control"
<!-- Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="bid">
<ng-container i18n>Name</ng-container>
<span class="required"
*ngIf="!editing"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="bid"
name="bid"
class="form-control"
<!-- Owner -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="owner">
<ng-container i18n>Owner</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select id="owner"
name="owner"
class="form-control custom-select"
<!-- Placement target -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="placement-target">
<ng-container i18n>Placement target</ng-container>
<span class="required"
*ngIf="!editing"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<ng-template #placementTargetSelect>
<select id="placement-target"
name="placement-target"
*ngIf="editing">
<legend class="cd-header ml-5 mr-5"
i18n>Versioning</legend>
- <div class="col-sm-9 offset-sm-3">
+ <div class="cd-col-form-offset">
<input type="radio"
id="enabled"
name="versioning"
i18n>Enables versioning for the objects in the bucket.</div>
</label>
</div>
- <div class="col-sm-9 offset-sm-3">
+ <div class="cd-col-form-offset">
<input type="radio"
id="suspended"
name="versioning"
<!-- Type -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="type">
<ng-container i18n>Type</ng-container>
<span class="required"
*ngIf="!editing">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="type"
class="form-control"
type="text"
<!-- Permission -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="perm">
<ng-container i18n>Permission</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select id="perm"
class="form-control custom-select"
formControlName="perm">
(backAction)="goToListView()"
i18n>The user data could not be loaded.</cd-alert-panel>
-<div class="col-sm-12 col-lg-6"
+<div class="cd-col-form"
*ngIf="!loading && !error">
<form #frm="ngForm"
[formGroup]="userForm"
<div class="card-body">
<!-- Username -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="uid">
<ng-container i18n>Username</ng-container>
<span class="required"
*ngIf="!editing">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="uid"
class="form-control"
type="text"
<!-- Full name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="display_name">
<ng-container i18n>Full name</ng-container>
<span class="required"
*ngIf="!editing">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="display_name"
class="form-control"
type="text"
<!-- Email address -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="email"
i18n>Email address</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="email"
class="form-control"
type="text"
<!-- Max. buckets -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="max_buckets">
<ng-container i18n>Max. buckets</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="max_buckets"
class="form-control"
type="number"
<!-- Suspended -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="suspended"
<!-- Auto-generate key -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="generate_key"
<!-- Access key -->
<div class="form-group row"
*ngIf="!editing && !userForm.getValue('generate_key')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="access_key">
<ng-container i18n>Access key</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input id="access_key"
class="form-control"
<!-- Secret key -->
<div class="form-group row"
*ngIf="!editing && !userForm.getValue('generate_key')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="secret_key">
<ng-container i18n>Secret key</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input id="secret_key"
class="form-control"
<fieldset *ngIf="editing">
<legend i18n>Subusers</legend>
<div class="row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<span *ngIf="subusers.length === 0"
class="no-border">
<span class="form-text text-muted"
<!-- S3 keys -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
i18n>S3</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<span *ngIf="s3Keys.length === 0"
class="no-border">
<span class="form-text text-muted"
<!-- Swift keys -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
i18n>Swift</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<span *ngIf="swiftKeys.length === 0"
class="no-border">
<span class="form-text text-muted"
<legend i18n>Capabilities</legend>
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<span *ngIf="capabilities.length === 0"
class="no-border">
<span class="form-text text-muted"
<!-- Enabled -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="user_quota_enabled"
<!-- Unlimited size -->
<div class="form-group row"
*ngIf="userForm.controls.user_quota_enabled.value">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="user_quota_max_size_unlimited"
<!-- Maximum size -->
<div class="form-group row"
*ngIf="userForm.controls.user_quota_enabled.value && !userForm.getValue('user_quota_max_size_unlimited')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="user_quota_max_size">
<ng-container i18n>Max. size</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="user_quota_max_size"
class="form-control"
type="text"
<!-- Unlimited objects -->
<div class="form-group row"
*ngIf="userForm.controls.user_quota_enabled.value">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="user_quota_max_objects_unlimited"
<!-- Maximum objects -->
<div class="form-group row"
*ngIf="userForm.controls.user_quota_enabled.value && !userForm.getValue('user_quota_max_objects_unlimited')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="user_quota_max_objects">
<ng-container i18n>Max. objects</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="user_quota_max_objects"
class="form-control"
type="number"
<!-- Enabled -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="bucket_quota_enabled"
<!-- Unlimited size -->
<div class="form-group row"
*ngIf="userForm.controls.bucket_quota_enabled.value">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="bucket_quota_max_size_unlimited"
<!-- Maximum size -->
<div class="form-group row"
*ngIf="userForm.controls.bucket_quota_enabled.value && !userForm.getValue('bucket_quota_max_size_unlimited')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="bucket_quota_max_size">
<ng-container i18n>Max. size</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="bucket_quota_max_size"
class="form-control"
type="text"
<!-- Unlimited objects -->
<div class="form-group row"
*ngIf="userForm.controls.bucket_quota_enabled.value">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="bucket_quota_max_objects_unlimited"
<!-- Maximum objects -->
<div class="form-group row"
*ngIf="userForm.controls.bucket_quota_enabled.value && !userForm.getValue('bucket_quota_max_objects_unlimited')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="bucket_quota_max_objects">
<ng-container i18n>Max. objects</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="bucket_quota_max_objects"
class="form-control"
type="number"
<!-- Username -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="user">
<ng-container i18n>Username</ng-container>
<span class="required"
*ngIf="!viewing">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="user"
class="form-control"
type="text"
<!-- Auto-generate key -->
<div class="form-group row"
*ngIf="!viewing">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="generate_key"
<!-- Access key -->
<div class="form-group row"
*ngIf="!formGroup.getValue('generate_key')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="access_key">
<ng-container i18n>Access key</ng-container>
<span class="required"
*ngIf="!viewing">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input id="access_key"
class="form-control"
<!-- Secret key -->
<div class="form-group row"
*ngIf="!formGroup.getValue('generate_key')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="secret_key">
<ng-container i18n>Secret key</ng-container>
<span class="required"
*ngIf="!viewing">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input id="secret_key"
class="form-control"
<!-- Username -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="uid"
i18n>Username</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="uid"
class="form-control"
type="text"
<!-- Subuser -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="subuid">
<ng-container i18n>Subuser</ng-container>
<span class="required"
*ngIf="!editing">
</span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input id="subuid"
class="form-control"
type="text"
<!-- Permission -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="perm">
<ng-container i18n>Permission</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<select id="perm"
class="form-control custom-select"
formControlName="perm">
<!-- Auto-generate key -->
<div class="form-group row">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input class="custom-control-input"
id="generate_secret"
<!-- Secret key -->
<div class="form-group row"
*ngIf="!editing && !formGroup.getValue('generate_secret')">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="secret_key">
<ng-container i18n>Secret key</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input id="secret_key"
class="form-control"
<!-- Username -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="user"
i18n>Username</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-inpu">
<input id="user"
name="user"
class="form-control"
<!-- Secret key -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="secret_key"
i18n>Secret key</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-inpu">
<div class="input-group">
<input id="secret_key"
name="secret_key"
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form name="roleForm"
#formDir="ngForm"
[formGroup]="roleForm"
<!-- Name -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="name">
<ng-container i18n>Name</ng-container>
<span class="required"
*ngIf="mode !== roleFormMode.editing"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
i18n-placeholder
<!-- Description -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="description">Description</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
i18n-placeholder
<!-- Permissions -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3">Permissions</label>
- <div class="col-sm-9">
+ class="cd-col-form-label">Permissions</label>
+ <div class="cd-col-form-input">
<cd-table [data]="scopes_permissions"
[columns]="columns"
columnMode="flex"
<cd-loading-panel *ngIf="!pwdExpirationSettings"
i18n>Loading...</cd-loading-panel>
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form name="userForm"
#formDir="ngForm"
[formGroup]="userForm"
<!-- Username -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="username">
<ng-container i18n>Username</ng-container>
<span class="required"
*ngIf="mode !== userFormMode.editing"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Username..."
<!-- Password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="password">
- <ng-container i18n>Password</ng-container>
- <cd-helper class="text-pre"
- html="{{ passwordPolicyHelpText }}">
- </cd-helper>
+ <ng-container i18n>Password</ng-container>
+ <cd-helper class="text-pre"
+ html="{{ passwordPolicyHelpText }}">
+ </cd-helper>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="password"
<!-- Confirm password -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="confirmpassword">Confirm password</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="password"
<!-- Password expiration date -->
<div class="form-group row"
*ngIf="!authStorageService.isSSO()">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="pwdExpirationDate">
<ng-container i18n>Password expiration date</ng-container>
<cd-helper class="text-pre"
<span class="required"
*ngIf="pwdExpirationSettings.pwdExpirationSpan > 0"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input type="text"
class="form-control"
<!-- Name -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="name">Full name</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="text"
placeholder="Full name..."
<!-- Email -->
<div class="form-group row">
<label i18n
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
for="email">Email</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<input class="form-control"
type="email"
placeholder="Email..."
<!-- Roles -->
<div class="form-group row">
- <label class="col-sm-3 col-form-label"
+ <label class="cd-col-form-label"
i18n>Roles</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<span class="no-border full-height"
*ngIf="allRoles">
<cd-select-badges [data]="userForm.controls.roles.value"
<!-- Enabled -->
<div class="form-group row"
*ngIf="!isCurrentUser()">
- <div class="offset-sm-3 col-sm-9">
+ <div class="cd-col-form-offset">
<div class="custom-control custom-checkbox">
<input type="checkbox"
class="custom-control-input"
-<div class="col-sm-12 col-lg-6">
+<div class="cd-col-form">
<form #frm="ngForm"
[formGroup]="userForm"
novalidate>
<div class="card-body">
<!-- Old password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="oldpassword">
<ng-container i18n>Old password</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="password"
<!-- New password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="newpassword">
<ng-container i18n>New password</ng-container>
<cd-helper class="text-pre"
</cd-helper>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="password"
<!-- Confirm new password -->
<div class="form-group row">
- <label class="col-form-label col-sm-3"
+ <label class="cd-col-form-label"
for="confirmnewpassword">
<ng-container i18n>Confirm new password</ng-container>
<span class="required"></span>
</label>
- <div class="col-sm-9">
+ <div class="cd-col-form-input">
<div class="input-group">
<input class="form-control"
type="password"
<ng-container *ngFor="let field of fields">
<div class="form-group row cd-{{field.name}}-form-group">
<label *ngIf="field.label"
- class="col-form-label col-sm-3"
+ class="cd-col-form-label"
[for]="field.name">
{{ field.label }}
</label>
- <div [ngClass]="{'col-sm-9': field.label, 'col-sm-12': !field.label}">
+ <div [ngClass]="{'cd-col-form-input': field.label, 'col-sm-12': !field.label}">
<input *ngIf="['text', 'number'].includes(field.type)"
[type]="field.type"
class="form-control"
});
it('has one defined label field', () => {
- fh.expectTextToBe('.col-form-label', 'Optional');
+ fh.expectTextToBe('.cd-col-form-label', 'Optional');
});
it('has a predefined values for requiredField', () => {
padding-top: 7px;
}
+.cd-col-form {
+ @extend .col-12;
+ @extend .col-lg-8;
+ @extend .col-xl-6;
+}
+
+.cd-col-form-label {
+ @extend .col-form-label;
+ @extend .col-sm-4;
+ @extend .col-md-4;
+ @extend .col-lg-3;
+}
+
+.cd-col-form-input {
+ @extend .col-sm-8;
+ @extend .col-md-8;
+ @extend .col-lg-9;
+}
+
+.cd-col-form-offset {
+ @extend .offset-sm-4;
+ @extend .offset-lg-3;
+ @extend .cd-col-form-input;
+}
+
+cd-modal {
+ .cd-col-form-label {
+ @extend .col-lg-4;
+ }
+
+ .cd-col-form-input {
+ @extend .col-lg-8;
+ }
+}
+
/* Card */
.card-footer button.btn:not(:first-child) {
margin-left: 5px;