--- /dev/null
+{
+ "files": ["src/**/*.html"],
+ "indentation": {
+ "char": "space",
+ "number": 2
+ },
+ "attributes": {
+ "quotes": "double",
+ "whitespace": 0,
+ "vertical-align": true
+ }
+}
"integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=",
"dev": true
},
+ "html-linter": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/html-linter/-/html-linter-1.0.8.tgz",
+ "integrity": "sha1-pAnzgLFh0mlhqQyO1m+aWzpdRtI=",
+ "dev": true,
+ "requires": {
+ "colors": "^1.1.2",
+ "commander": "^2.12.2",
+ "glob": "^7.1.2"
+ }
+ },
"html-minifier": {
"version": "3.5.20",
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz",
"lint": "ng lint",
"e2e": "ng e2e",
"prettier": "prettier --write \"{src,e2e}/**/*.{ts,scss}\"",
- "prettier:lint": "prettier --list-different \"{src,e2e}/**/*.{ts,scss}\""
+ "prettier:lint": "prettier --list-different \"{src,e2e}/**/*.{ts,scss}\"",
+ "lint:html": "html-linter --config html-linter.config.json"
},
"private": true,
"jest": {
"@types/node": "8.10.23",
"babel-preset-env": "1.7.0",
"codelyzer": "4.4.3",
+ "html-linter": "1.0.8",
"jasmine-core": "3.1.0",
"jasmine-spec-reporter": "4.2.1",
"jest": "23.4.2",
</label>
<div class="col-sm-9">
<select id="obj_size"
- name="obj_size"
- class="form-control"
- formControlName="obj_size">
+ name="obj_size"
+ class="form-control"
+ formControlName="obj_size">
<option *ngFor="let objectSize of objectSizes"
[value]="objectSize">{{ objectSize }}</option>
</select>
[ngClass]="{'has-error': rbdForm.showError('stripingUnit', formDir)}">
<label class="control-label col-sm-3"
for="stripingUnit">
- <span i18n>Stripe unit</span><span class="required"
- *ngIf="rbdForm.getValue('stripingCount')"></span>
+ <span i18n>Stripe unit</span>
+ <span class="required"
+ *ngIf="rbdForm.getValue('stripingCount')">
+ </span>
</label>
<div class="col-sm-9">
<select id="stripingUnit"
- name="stripingUnit"
- class="form-control"
- formControlName="stripingUnit">
- <option i18n [ngValue]="null">-- Select stripe unit --</option>
+ name="stripingUnit"
+ class="form-control"
+ formControlName="stripingUnit">
+ <option i18n
+ [ngValue]="null">-- Select stripe unit --</option>
<option *ngFor="let objectSize of objectSizes"
[value]="objectSize">{{ objectSize }}</option>
</select>
This field is required because stripe count is defined!
</span>
<span i18n
- class="help-block"
- *ngIf="rbdForm.showError('stripingUnit', formDir, 'invalidStripingUnit')">
- Stripe unit is greater than object size.
- </span>
+ class="help-block"
+ *ngIf="rbdForm.showError('stripingUnit', formDir, 'invalidStripingUnit')">
+ Stripe unit is greater than object size.
+ </span>
</div>
</div>
[ngClass]="{'has-error': rbdForm.showError('stripingCount', formDir)}">
<label class="control-label col-sm-3"
for="stripingCount">
- <span i18n>Stripe count</span><span class="required"
- *ngIf="rbdForm.getValue('stripingUnit')"></span>
+ <span i18n>Stripe count</span>
+ <span class="required"
+ *ngIf="rbdForm.getValue('stripingUnit')">
+ </span>
</label>
<div class="col-sm-9">
<input id="stripingCount"
selectionType="single"
(updateSelection)="updateSelection($event)">
<cd-table-actions class="table-actions"
- [permission]="permission"
- [selection]="selection"
- [tableActions]="tableActions">
+ [permission]="permission"
+ [selection]="selection"
+ [tableActions]="tableActions">
</cd-table-actions>
<cd-rbd-details cdTableDetail
[selection]="selection">
<div class="modal-header">
<h4 class="modal-title pull-left">{{ editing ? 'Rename' : 'Create' }} RBD Snapshot</h4>
- <button type="button" class="close pull-right" aria-label="Close" (click)="modalRef.hide()">
+ <button type="button"
+ class="close pull-right"
+ aria-label="Close"
+ (click)="modalRef.hide()">
<span aria-hidden="true">×</span>
</button>
</div>
<span i18n
class="help-block"
*ngIf="snapshotForm.showError('snapshotName', formDir, 'required')">
- This field is required.
- </span>
+ This field is required.
+ </span>
</div>
</div>
(submitAction)="submit()">
{{ editing ? 'Rename' : 'Create' }} Snapshot
</cd-submit-button>
- <button type="button" class="btn btn-sm btn-default" (click)="modalRef.hide()">Close</button>
+ <button type="button"
+ class="btn btn-sm btn-default"
+ (click)="modalRef.hide()">Close</button>
</div>
</div>
</form>
-
selectionType="single"
(updateSelection)="updateSelection($event)">
<cd-cephfs-detail cdTableDetail
- [selection]="selection">
+ [selection]="selection">
</cd-cephfs-detail>
</cd-table>
</cd-osd-details>
</cd-table>
-<ng-template #statusColor let-value="value">
+<ng-template #statusColor
+ let-value="value">
<span *ngFor="let state of value; last as last">
<span class="label"
- [ngClass]="{'label-success': ['in', 'up'].includes(state), 'label-danger': ['down', 'out'].includes(state)}">{{ state }}</span>
+ [ngClass]="{'label-success': ['in', 'up'].includes(state), 'label-danger': ['down', 'out'].includes(state)}">
+ {{ state }}
+ </span>
<span *ngIf="!last"> </span>
</span>
</ng-template>
-<div *ngIf="contentData" class="container-fluid">
+<div *ngIf="contentData"
+ class="container-fluid">
<cd-info-group groupTitle="Status"
i18n-groupTitle
class="row info-group">
contentClass="content-highlight"
(click)="contentData.health.checks.length > 0 ? healthChecksTarget.toggle() : ''">
<ng-template #healthChecks>
- <p class="logs-link" i18n>
+ <p class="logs-link"
+ i18n>
→ See <a (click)="viewportScroller.scrollToAnchor('logs')">Logs</a> for more details.
</p>
<ul>
</ng-template>
<div class="health-popover-wrapper">
<div [ngStyle]="contentData.health.status | healthColor"
- [popover]="contentData.health.checks.length > 0 ? healthChecks : ''"
- triggers=""
- #healthChecksTarget="bs-popover"
- placement="bottom">
+ [popover]="contentData.health.checks.length > 0 ? healthChecks : ''"
+ triggers=""
+ #healthChecksTarget="bs-popover"
+ placement="bottom">
{{ contentData.health.status }}
</div>
</div>
class="col-sm-6 col-md-4 col-lg-3"
contentClass="content-highlight"
*ngIf="contentData.osd_map">
- <span *ngFor="let result of (contentData.osd_map | osdSummary)" [ngStyle]="result.style">
+ <span *ngFor="let result of (contentData.osd_map | osdSummary)"
+ [ngStyle]="result.style">
{{ result.content }}
</span>
</cd-info-card>
contentClass="card-chart"
(click)="pgStatusTarget.toggle()">
<ng-template #pgStatus>
- <p class="logs-link" i18n>
+ <p class="logs-link"
+ i18n>
→ See <a (click)="viewportScroller.scrollToAnchor('logs')">Logs</a> for more details.
</p>
<ul>
</ng-template>
<div class="pg-status-popover-wrapper">
<div [popover]="pgStatus"
- triggers=""
- #pgStatusTarget="bs-popover"
- placement="bottom">
+ triggers=""
+ #pgStatusTarget="bs-popover"
+ placement="bottom">
<cd-health-pie [data]="contentData"
chartType="pie"
[displayLegend]="true"
cardClass="card-medium"
contentClass="no-center scroll text-monospace"
*ngIf="contentData.clog">
- <p *ngFor="let line of contentData.clog">
- {{ line.stamp }} {{ line.priority }}
- <span [ngStyle]="line | logColor">
- {{ line.message }}
- <br>
- </span>
- </p>
+ <p *ngFor="let line of contentData.clog">
+ {{ line.stamp }} {{ line.priority }}
+ <span [ngStyle]="line | logColor">
+ {{ line.message }}
+ <br>
+ </span>
+ </p>
</cd-info-card>
<cd-info-card cardTitle="Audit"
i18n-cardTitle
cardClass="card-medium"
contentClass="no-center scroll text-monospace"
*ngIf="contentData.audit_log">
- <p *ngFor="let line of contentData.audit_log">
- {{ line.stamp }} {{ line.priority }}
- <span [ngStyle]="line | logColor">
- <span style="font-weight: bold;">
- {{ line.message }}
- </span>
- <br>
+ <p *ngFor="let line of contentData.audit_log">
+ {{ line.stamp }} {{ line.priority }}
+ <span [ngStyle]="line | logColor">
+ <span style="font-weight: bold;">
+ {{ line.message }}
</span>
- </p>
+ <br>
+ </span>
+ </p>
</cd-info-card>
</cd-info-group>
</div>
-<div class="card" [ngClass]="cardClass">
+<div class="card"
+ [ngClass]="cardClass">
<div class="card-title">
- <a *ngIf="link; else noLinkTitle" [routerLink]="link">{{ cardTitle }}</a>
+ <a *ngIf="link; else noLinkTitle"
+ [routerLink]="link">{{ cardTitle }}</a>
<ng-template #noLinkTitle>
{{ cardTitle }}
</ng-template>
</div>
- <div class="card-body" [ngClass]="contentClass">
- <ng-content></ng-content>
+ <div class="card-body"
+ [ngClass]="contentClass">
+ <ng-content></ng-content>
</div>
</div>
</label>
<div class="col-sm-9">
<div class="input-group">
- <input class="form-control"
- type="password"
- placeholder="Password..."
- id="password"
- name="password"
- formControlName="password">
- <span class="input-group-btn">
- <button type="button"
- class="btn btn-default"
- cdPasswordButton="password">
- </button>
- </span>
- </div>
+ <input class="form-control"
+ type="password"
+ placeholder="Password..."
+ id="password"
+ name="password"
+ formControlName="password">
+ <span class="input-group-btn">
+ <button type="button"
+ class="btn btn-default"
+ cdPasswordButton="password">
+ </button>
+ </span>
+ </div>
<span i18n
class="help-block"
*ngIf="userForm.showError('password', formDir, 'required')">
</label>
<div class="col-sm-9">
<div class="input-group">
- <input class="form-control"
- type="password"
- placeholder="Confirm password..."
- id="confirmpassword"
- name="confirmpassword"
- formControlName="confirmpassword">
- <span class="input-group-btn">
- <button type="button"
- class="btn btn-default"
- cdPasswordButton="confirmpassword">
- </button>
- </span>
- </div>
+ <input class="form-control"
+ type="password"
+ placeholder="Confirm password..."
+ id="confirmpassword"
+ name="confirmpassword"
+ formControlName="confirmpassword">
+ <span class="input-group-btn">
+ <button type="button"
+ class="btn btn-default"
+ cdPasswordButton="confirmpassword">
+ </button>
+ </span>
+ </div>
<span i18n
class="help-block"
*ngIf="userForm.showError('confirmpassword', formDir, 'required')">
</label>
<div class="col-sm-9">
<span class="form-control no-border full-height">
- <cd-select-badges
- [data]="userForm.controls.roles.value"
- [options]="allRoles"
- emptyMessage="There are no roles."></cd-select-badges>
+ <cd-select-badges [data]="userForm.controls.roles.value"
+ [options]="allRoles"
+ emptyMessage="There are no roles."></cd-select-badges>
</span>
</div>
routerLink="/cephfs">Filesystems
</a>
</li>
- <!--
- <li routerLinkActive="active"
- class="tc_menuitem tc_menuitem_ceph_osds">
- <a i18n
- routerLink="/cephOsds">OSDs
- </a>
- </li>
- <li routerLinkActive="active"
- class="tc_menuitem tc_menuitem_ceph_pools">
- <a i18n
- routerLink="/cephPools">Pools
- </a>
- </li>
- -->
<!-- Object Gateway -->
<li dropdown
</li>
</ul>
</li>
-
- <!--
- <li routerLinkActive="active"
- class="tc_menuitem tc_submenuitem_settings">
- <a i18n
- routerLink="/settings">Settings
- </a>
- </li>
- -->
</ul>
<!-- /.navbar-primary -->
<input class="form-control"
type="text"
[(ngModel)]="search"
- (keyup)='updateFilter($event)'>
+ (keyup)="updateFilter($event)">
<span class="input-group-btn">
<button type="button"
class="btn btn-default clear-input tc_clearInputBtn"
<ng-template #sparklineTpl
let-row="row"
let-value="value">
- <cd-sparkline [data]="value" [isBinary]="row.cdIsBinary"></cd-sparkline>
+ <cd-sparkline [data]="value"
+ [isBinary]="row.cdIsBinary"></cd-sparkline>
</ng-template>
<ng-template #routerLinkTpl