mirror of https://github.com/apache/nifi.git
NIFI-12721 Button UX (#8464)
* NIFI-12721 Button UX Updated all the dialog buttons to change them from stroked and raised to basic. This better aligns with Angular Material guidelines and should address the confusion between disabled and cancelled. * NiFi-12721 incremental update Changed the combo editor and editor components to use the flat button styles. Missed them before because I was looking for dialogs. Also caught a style bleed with button:disabled that should be button.nifi-button:disabled and updated that. * Consolidated the button.nifi-button:disabled rules Also ran Prettier to improve markup in a few spots
This commit is contained in:
parent
ac6c9c6ca4
commit
e2e54f2bc8
|
@ -48,9 +48,9 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-stroked-button mat-dialog-close color="primary">Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
mat-raised-button
|
mat-button
|
||||||
[disabled]="addTenantsForm.invalid || saving.value"
|
[disabled]="addTenantsForm.invalid || saving.value"
|
||||||
(click)="addClicked()"
|
(click)="addClicked()"
|
||||||
color="primary">
|
color="primary">
|
||||||
|
|
|
@ -25,8 +25,8 @@
|
||||||
</mat-radio-group>
|
</mat-radio-group>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-stroked-button mat-dialog-close color="primary">Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button mat-raised-button [disabled]="overridePolicyForm.invalid" (click)="overrideClicked()" color="primary">
|
<button mat-button [disabled]="overridePolicyForm.invalid" (click)="overrideClicked()" color="primary">
|
||||||
Override
|
Override
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -206,7 +206,7 @@
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Ok</button>
|
<button color="primary" mat-button mat-dialog-close>Ok</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -50,12 +50,12 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
|
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submit()"
|
(click)="submit()"
|
||||||
[disabled]="!purgeHistoryForm.valid"
|
[disabled]="!purgeHistoryForm.valid"
|
||||||
mat-raised-button
|
mat-button
|
||||||
mat-dialog-close>
|
mat-dialog-close>
|
||||||
Ok
|
Ok
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -175,13 +175,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="createConnectionForm.invalid || saving.value"
|
[disabled]="createConnectionForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="createConnection(breadcrumbs.id)"
|
(click)="createConnection(breadcrumbs.id)"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Add</span>
|
<span *nifiSpinner="saving.value">Add</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -176,13 +176,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close="CANCELLED">Cancel</button>
|
<button mat-button mat-dialog-close="CANCELLED">Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editConnectionForm.dirty || editConnectionForm.invalid || saving.value"
|
[disabled]="!editConnectionForm.dirty || editConnectionForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="editConnection()"
|
(click)="editConnection()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -141,13 +141,13 @@
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end" *ngIf="{ value: (saving$ | async)! } as saving">
|
<mat-dialog-actions align="end" *ngIf="{ value: (saving$ | async)! } as saving">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="importFromRegistryForm.invalid || saving.value"
|
[disabled]="importFromRegistryForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="importFromRegistry()"
|
(click)="importFromRegistry()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Import</span>
|
<span *nifiSpinner="saving.value">Import</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -47,13 +47,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!createPortForm.dirty || createPortForm.invalid || saving.value"
|
[disabled]="!createPortForm.dirty || createPortForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="createPort()"
|
(click)="createPort()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Add</span>
|
<span *nifiSpinner="saving.value">Add</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -48,13 +48,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editPortForm.dirty || editPortForm.invalid || saving.value"
|
[disabled]="!editPortForm.dirty || editPortForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="editPort()"
|
(click)="editPort()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -72,13 +72,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!createProcessGroupForm.dirty || createProcessGroupForm.invalid || saving.value"
|
[disabled]="!createProcessGroupForm.dirty || createProcessGroupForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="createProcessGroup()"
|
(click)="createProcessGroup()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Add</span>
|
<span *nifiSpinner="saving.value">Add</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -149,14 +149,14 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editProcessGroupForm.dirty || editProcessGroupForm.invalid || saving.value"
|
[disabled]="!editProcessGroupForm.dirty || editProcessGroupForm.invalid || saving.value"
|
||||||
class="h-8"
|
class="h-8"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -44,13 +44,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!createProcessGroupForm.dirty || createProcessGroupForm.invalid || saving.value"
|
[disabled]="!createProcessGroupForm.dirty || createProcessGroupForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="createProcessGroup()"
|
(click)="createProcessGroup()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Add</span>
|
<span *nifiSpinner="saving.value">Add</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -192,13 +192,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editProcessorForm.dirty || editProcessorForm.invalid || saving.value"
|
[disabled]="!editProcessorForm.dirty || editProcessorForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -103,13 +103,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!createRemoteProcessGroupForm.dirty || createRemoteProcessGroupForm.invalid || saving.value"
|
[disabled]="!createRemoteProcessGroupForm.dirty || createRemoteProcessGroupForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="createRemoteProcessGroup()"
|
(click)="createRemoteProcessGroup()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Add</span>
|
<span *nifiSpinner="saving.value">Add</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -97,13 +97,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editRemoteProcessGroupForm.dirty || editRemoteProcessGroupForm.invalid || saving.value"
|
[disabled]="!editRemoteProcessGroupForm.dirty || editRemoteProcessGroupForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Add</span>
|
<span *nifiSpinner="saving.value">Add</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -27,11 +27,11 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
@if (request.controllerPermissions.canRead) {
|
@if (request.controllerPermissions.canRead) {
|
||||||
<button mat-stroked-button mat-dialog-close color="primary">Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button mat-raised-button mat-dialog-close color="primary" [routerLink]="['/settings', 'registry-clients']">
|
<button mat-button mat-dialog-close color="primary" [routerLink]="['/settings', 'registry-clients']">
|
||||||
Configure
|
Configure
|
||||||
</button>
|
</button>
|
||||||
} @else {
|
} @else {
|
||||||
<button mat-raised-button mat-dialog-close color="primary">Ok</button>
|
<button mat-button mat-dialog-close color="primary">Ok</button>
|
||||||
}
|
}
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -58,13 +58,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editPortForm.dirty || editPortForm.invalid || saving.value"
|
[disabled]="!editPortForm.dirty || editPortForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="editRemotePort()"
|
(click)="editRemotePort()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -134,21 +134,21 @@
|
||||||
@if ((updateRequest | async)!; as requestEntity) {
|
@if ((updateRequest | async)!; as requestEntity) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
@if (requestEntity.request.complete) {
|
@if (requestEntity.request.complete) {
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Close</button>
|
<button color="primary" mat-button mat-dialog-close>Close</button>
|
||||||
} @else {
|
} @else {
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
}
|
}
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
} @else {
|
} @else {
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editParameterContextForm.dirty || editParameterContextForm.invalid || saving.value"
|
[disabled]="!editParameterContextForm.dirty || editParameterContextForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -77,13 +77,13 @@
|
||||||
}
|
}
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="provenanceOptionsForm.invalid"
|
[disabled]="provenanceOptionsForm.invalid"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="searchClicked()"
|
(click)="searchClicked()"
|
||||||
mat-raised-button
|
mat-button
|
||||||
mat-dialog-close>
|
mat-dialog-close>
|
||||||
<span>Search</span>
|
<span>Search</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -224,6 +224,6 @@
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Ok</button>
|
<button color="primary" mat-button mat-dialog-close>Ok</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -83,13 +83,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editFlowAnalysisRuleForm.dirty || editFlowAnalysisRuleForm.invalid || saving.value"
|
[disabled]="!editFlowAnalysisRuleForm.dirty || editFlowAnalysisRuleForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -80,13 +80,13 @@
|
||||||
|
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editParameterProviderForm.dirty || editParameterProviderForm.invalid || saving.value"
|
[disabled]="!editParameterProviderForm.dirty || editParameterProviderForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -322,18 +322,18 @@
|
||||||
<mat-dialog-actions align="end" *ngIf="{ value: (saving$ | async)! } as saving">
|
<mat-dialog-actions align="end" *ngIf="{ value: (saving$ | async)! } as saving">
|
||||||
<ng-container *ngIf="updateRequest | async; else normalActions">
|
<ng-container *ngIf="updateRequest | async; else normalActions">
|
||||||
<!-- an update to the associated parameter context(s) has been triggered -->
|
<!-- an update to the associated parameter context(s) has been triggered -->
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>
|
<button mat-button mat-dialog-close>
|
||||||
<span *nifiSpinner="saving.value">Close</span>
|
<span *nifiSpinner="saving.value">Close</span>
|
||||||
</button>
|
</button>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-template #normalActions>
|
<ng-template #normalActions>
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!canSubmitForm() || saving.value"
|
[disabled]="!canSubmitForm() || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|
|
@ -56,13 +56,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!createRegistryClientForm.dirty || createRegistryClientForm.invalid || saving.value"
|
[disabled]="!createRegistryClientForm.dirty || createRegistryClientForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="createRegistryClientClicked()"
|
(click)="createRegistryClientClicked()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -61,13 +61,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editRegistryClientForm.dirty || editRegistryClientForm.invalid || saving.value"
|
[disabled]="!editRegistryClientForm.dirty || editRegistryClientForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -101,13 +101,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editReportingTaskForm.dirty || editReportingTaskForm.invalid || saving.value"
|
[disabled]="!editReportingTaskForm.dirty || editReportingTaskForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -79,7 +79,7 @@
|
||||||
<div class="refresh-timestamp">{{ loadedTimestamp$ | async }}</div>
|
<div class="refresh-timestamp">{{ loadedTimestamp$ | async }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button color="primary" mat-raised-button mat-dialog-close tabindex="0">Close</button>
|
<button mat-button mat-dialog-close tabindex="0">Close</button>
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -85,6 +85,6 @@
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Close</button>
|
<button mat-button mat-dialog-close>Close</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -20,5 +20,5 @@
|
||||||
<div class="text-sm">{{ request.message }}</div>
|
<div class="text-sm">{{ request.message }}</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button type="button" (click)="cancelClicked()" mat-raised-button mat-dialog-close color="primary">Cancel</button>
|
<button type="button" (click)="cancelClicked()" mat-button mat-dialog-close>Cancel</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -87,6 +87,6 @@
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Close</button>
|
<button mat-button mat-dialog-close>Close</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -45,8 +45,8 @@
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button type="button" color="primary" (click)="submitForm()" mat-raised-button>Disable</button>
|
<button type="button" color="primary" (click)="submitForm()" mat-button>Disable</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
} @else {
|
} @else {
|
||||||
<mat-dialog-content>
|
<mat-dialog-content>
|
||||||
|
@ -127,11 +127,9 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
@if (disableRequest.currentStep === SetEnableStep.Completed || disableRequest.error) {
|
@if (disableRequest.currentStep === SetEnableStep.Completed || disableRequest.error) {
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Close</button>
|
<button mat-button mat-dialog-close>Close</button>
|
||||||
} @else {
|
} @else {
|
||||||
<button color="primary" (click)="cancelClicked()" mat-stroked-button mat-dialog-close>
|
<button (click)="cancelClicked()" mat-button mat-dialog-close>Cancel</button>
|
||||||
Cancel
|
|
||||||
</button>
|
|
||||||
}
|
}
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
}
|
}
|
||||||
|
|
|
@ -109,13 +109,13 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="!editControllerServiceForm.dirty || editControllerServiceForm.invalid || saving.value"
|
[disabled]="!editControllerServiceForm.dirty || editControllerServiceForm.invalid || saving.value"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving.value">Apply</span>
|
<span *nifiSpinner="saving.value">Apply</span>
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -58,13 +58,13 @@
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="enableControllerServiceForm.invalid"
|
[disabled]="enableControllerServiceForm.invalid"
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="submitForm()"
|
(click)="submitForm()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
Enable
|
Enable
|
||||||
</button>
|
</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
@ -148,11 +148,9 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
@if (enableRequest.currentStep === SetEnableStep.Completed || enableRequest.error) {
|
@if (enableRequest.currentStep === SetEnableStep.Completed || enableRequest.error) {
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Close</button>
|
<button mat-button mat-dialog-close>Close</button>
|
||||||
} @else {
|
} @else {
|
||||||
<button color="primary" (click)="cancelClicked()" mat-stroked-button mat-dialog-close>
|
<button (click)="cancelClicked()" mat-button mat-dialog-close>Cancel</button>
|
||||||
Cancel
|
|
||||||
</button>
|
|
||||||
}
|
}
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,9 +54,9 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-stroked-button mat-dialog-close color="primary">Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
mat-raised-button
|
mat-button
|
||||||
[disabled]="editParameterForm.invalid || saving.value"
|
[disabled]="editParameterForm.invalid || saving.value"
|
||||||
(click)="okClicked()"
|
(click)="okClicked()"
|
||||||
color="primary">
|
color="primary">
|
||||||
|
|
|
@ -60,9 +60,9 @@
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
@if ({ value: (saving$ | async)! }; as saving) {
|
@if ({ value: (saving$ | async)! }; as saving) {
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-stroked-button mat-dialog-close color="primary">Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
mat-raised-button
|
mat-button
|
||||||
[disabled]="editTenantForm.invalid || saving.value"
|
[disabled]="editTenantForm.invalid || saving.value"
|
||||||
(click)="okClicked()"
|
(click)="okClicked()"
|
||||||
color="primary">
|
color="primary">
|
||||||
|
|
|
@ -101,12 +101,12 @@
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-end gap-x-2">
|
<div class="flex justify-end gap-x-2">
|
||||||
<button color="primary" mat-stroked-button mat-dialog-close>Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
[disabled]="selectedType == null || saving"
|
[disabled]="selectedType == null || saving"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="createExtension(selectedType)"
|
(click)="createExtension(selectedType)"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
<span *nifiSpinner="saving">Add</span>
|
<span *nifiSpinner="saving">Add</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -36,9 +36,9 @@
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-stroked-button mat-dialog-close color="primary">Cancel</button>
|
<button mat-button mat-dialog-close>Cancel</button>
|
||||||
<button
|
<button
|
||||||
mat-raised-button
|
mat-button
|
||||||
[disabled]="!newPropertyForm.dirty || newPropertyForm.invalid"
|
[disabled]="!newPropertyForm.dirty || newPropertyForm.invalid"
|
||||||
(click)="addProperty()"
|
(click)="addProperty()"
|
||||||
color="primary">
|
color="primary">
|
||||||
|
|
|
@ -20,5 +20,5 @@
|
||||||
<div class="text-sm max-w-sm">{{ request.message }}</div>
|
<div class="text-sm max-w-sm">{{ request.message }}</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-raised-button mat-dialog-close cdkFocusInitial color="primary">Ok</button>
|
<button mat-button mat-dialog-close cdkFocusInitial>Ok</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -94,12 +94,7 @@
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-end items-center gap-x-2">
|
<div class="flex justify-end items-center gap-x-2">
|
||||||
<button
|
<button mat-button type="button" (mousedown)="preventDrag($event)" (click)="cancelClicked()">
|
||||||
color="primary"
|
|
||||||
mat-stroked-button
|
|
||||||
type="button"
|
|
||||||
(mousedown)="preventDrag($event)"
|
|
||||||
(click)="cancelClicked()">
|
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
@ -108,7 +103,7 @@
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="okClicked()"
|
(click)="okClicked()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
Ok
|
Ok
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -59,12 +59,7 @@
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex justify-end items-center gap-x-2">
|
<div class="flex justify-end items-center gap-x-2">
|
||||||
<button
|
<button mat-button type="button" (mousedown)="preventDrag($event)" (click)="cancelClicked()">
|
||||||
color="primary"
|
|
||||||
mat-stroked-button
|
|
||||||
type="button"
|
|
||||||
(mousedown)="preventDrag($event)"
|
|
||||||
(click)="cancelClicked()">
|
|
||||||
Cancel
|
Cancel
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
|
@ -73,7 +68,7 @@
|
||||||
type="button"
|
type="button"
|
||||||
color="primary"
|
color="primary"
|
||||||
(click)="okClicked()"
|
(click)="okClicked()"
|
||||||
mat-raised-button>
|
mat-button>
|
||||||
Ok
|
Ok
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -442,6 +442,6 @@
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Ok</button>
|
<button mat-button mat-dialog-close>Ok</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -172,7 +172,7 @@
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Close</button>
|
<button mat-button mat-dialog-close>Close</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -236,7 +236,7 @@
|
||||||
<div class="refresh-timestamp">{{ loadedTimestamp$ | async }}</div>
|
<div class="refresh-timestamp">{{ loadedTimestamp$ | async }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<button color="primary" mat-raised-button mat-dialog-close>Close</button>
|
<button mat-button mat-dialog-close>Close</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -20,6 +20,6 @@
|
||||||
<div class="text-sm max-w-sm" data-qa="yes-no-message">{{ request.message }}</div>
|
<div class="text-sm max-w-sm" data-qa="yes-no-message">{{ request.message }}</div>
|
||||||
</mat-dialog-content>
|
</mat-dialog-content>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-stroked-button mat-dialog-close color="primary" (click)="noClicked()">No</button>
|
<button mat-button mat-dialog-close (click)="noClicked()">No</button>
|
||||||
<button mat-raised-button mat-dialog-close cdkFocusInitial color="primary" (click)="yesClicked()">Yes</button>
|
<button mat-button mat-dialog-close cdkFocusInitial color="primary" (click)="yesClicked()">Yes</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
|
@ -393,7 +393,7 @@ $warn-dark-palette: (
|
||||||
);
|
);
|
||||||
|
|
||||||
// Define the palettes for your theme
|
// Define the palettes for your theme
|
||||||
$material-primary-light: mat.define-palette($material-primary-light-palette);
|
$material-primary-light: mat.define-palette($material-primary-light-palette, 600, 100, 900);
|
||||||
$material-accent-light: mat.define-palette($material-primary-light-palette, A400, A100, A700);
|
$material-accent-light: mat.define-palette($material-primary-light-palette, A400, A100, A700);
|
||||||
$nifi-canvas-primary-light: mat.define-palette($nifi-canvas-light-palette);
|
$nifi-canvas-primary-light: mat.define-palette($nifi-canvas-light-palette);
|
||||||
$nifi-canvas-accent-light: mat.define-palette($nifi-canvas-accent-light-palette, 400, 100, 700);
|
$nifi-canvas-accent-light: mat.define-palette($nifi-canvas-accent-light-palette, 400, 100, 700);
|
||||||
|
|
|
@ -317,12 +317,9 @@ $appFontPath: '~roboto-fontface/fonts';
|
||||||
border-color: $accent-palette-A400;
|
border-color: $accent-palette-A400;
|
||||||
}
|
}
|
||||||
|
|
||||||
button:disabled {
|
button.nifi-button:disabled {
|
||||||
color: $primary-palette-200 !important;
|
color: $primary-palette-200 !important;
|
||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
}
|
|
||||||
|
|
||||||
button.nifi-button:disabled {
|
|
||||||
border: 1px solid $primary-palette-200;
|
border: 1px solid $primary-palette-200;
|
||||||
|
|
||||||
i {
|
i {
|
||||||
|
|
|
@ -32,5 +32,5 @@ limitations under the License.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<mat-dialog-actions align="end">
|
<mat-dialog-actions align="end">
|
||||||
<button mat-raised-button color="fds-primary" mat-dialog-close>Close</button>
|
<button mat-button mat-dialog-close>Close</button>
|
||||||
</mat-dialog-actions>
|
</mat-dialog-actions>
|
||||||
|
|
Loading…
Reference in New Issue