Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
fix(filter-field): Fixes an issue with confusing disabled styles.
Browse files Browse the repository at this point in the history
Fixes APM-269127
  • Loading branch information
tomheller committed Nov 23, 2020
1 parent a7e133b commit 32ea19d
Show file tree
Hide file tree
Showing 5 changed files with 110 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
</button>
</div>
<button
*ngIf="!(_filterFieldDisabled || disabled) && deletable"
dt-icon-button
variant="nested"
class="dt-filter-field-tag-button"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,18 @@
&.dt-filter-field-tag-disabled {
border-color: $gray-200;
background-color: #ffffff;
color: $gray-300;

.dt-filter-field-tag-key,
.dt-filter-field-tag-value {
color: $gray-500;
}
}

&.dt-filter-field-tag-read-only {
.dt-filter-field-tag-key,
.dt-filter-field-tag-value {
color: $gray-500;
}
}
}

Expand Down Expand Up @@ -75,11 +86,6 @@

.dt-filter-field-tag-container {
display: flex;

&.dt-filter-field-tag-value-isfreetext::after {
content: '"';
color: $turquoise-600;
}
}

.dt-filter-field-tag-value {
Expand All @@ -98,6 +104,8 @@
overflow: hidden;
}

.dt-filter-field-tag-value-isfreetext .dt-filter-field-tag-value::before {
.dt-filter-field-tag-value-isfreetext .dt-filter-field-tag-value::before,
.dt-filter-field-tag-value-isfreetext .dt-filter-field-tag-value::after {
content: '"';
color: currentColor;
}
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import { Subject } from 'rxjs';
'[attr.role]': `'option'`,
class: 'dt-filter-field-tag',
'[class.dt-filter-field-tag-disabled]': '_filterFieldDisabled || disabled',
'[class.dt-filter-field-tag-read-only]': '!editable',
},
encapsulation: ViewEncapsulation.Emulated,
preserveWhitespaces: false,
Expand Down
4 changes: 2 additions & 2 deletions libs/barista-components/filter-field/src/filter-field.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1210,7 +1210,7 @@ describe('DtFilterField', () => {
const tags = getFilterTags(fixture);
const { label, deleteButton } = getTagButtons(tags[0]);
expect(label.disabled).toBeFalsy();
expect(deleteButton.disabled).toBeTruthy();
expect(deleteButton).toBeNull();
});

it('should disable the entire tag when disabled is set to true', () => {
Expand All @@ -1220,7 +1220,7 @@ describe('DtFilterField', () => {
const tags = getFilterTags(fixture);
const { label, deleteButton } = getTagButtons(tags[0]);
expect(label.disabled).toBeTruthy();
expect(deleteButton.disabled).toBeTruthy();
expect(deleteButton).toBeNull();
});

it('should keep the deletable/editable flags on the tags when a tag is edited', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,12 @@ export class DtExampleFilterFieldReadOnlyTags<T> implements AfterViewInit {
autocomplete: [
{
name: 'AUT',
autocomplete: [{ name: 'Linz' }, { name: 'Vienna' }, { name: 'Graz' }],
autocomplete: [
{ name: 'Linz' },
{ name: 'Vienna' },
{ name: 'Graz' },
{ name: 'Bregenz' },
],
},
{
name: 'USA',
Expand Down Expand Up @@ -65,7 +70,48 @@ export class DtExampleFilterFieldReadOnlyTags<T> implements AfterViewInit {
this.DATA.autocomplete[0],
this.DATA.autocomplete[0].autocomplete![0],
];
_filters = [this._linzFilter];
private _viennaFilter = [
this.DATA.autocomplete[0],
this.DATA.autocomplete[0].autocomplete![1],
];
private _grazFilter = [
this.DATA.autocomplete[0],
this.DATA.autocomplete[0].autocomplete![2],
];
private _bregenzFilter = [
this.DATA.autocomplete[0],
this.DATA.autocomplete[0].autocomplete![3],
];
private _miamiFilter = [
this.DATA.autocomplete[1],
this.DATA.autocomplete[1].autocomplete![3],
'Miami',
];
private _austinFilter = [
this.DATA.autocomplete[1],
this.DATA.autocomplete[1].autocomplete![3],
'Austin',
];
private _sandiegoFilter = [
this.DATA.autocomplete[1],
this.DATA.autocomplete[1].autocomplete![3],
'San Diego',
];
private _bendFilter = [
this.DATA.autocomplete[1],
this.DATA.autocomplete[1].autocomplete![3],
'Bend',
];
_filters = [
this._linzFilter,
this._viennaFilter,
this._grazFilter,
this._bregenzFilter,
this._miamiFilter,
this._austinFilter,
this._sandiegoFilter,
this._bendFilter,
];

_dataSource = new DtFilterFieldDefaultDataSource(this.DATA);

Expand All @@ -79,6 +125,49 @@ export class DtExampleFilterFieldReadOnlyTags<T> implements AfterViewInit {
linzTag.deletable = false;
this._changeDetectorRef.markForCheck();
}
const viennaTag = this.filterField.getTagForFilter(this._viennaFilter);
if (viennaTag) {
viennaTag.editable = true;
viennaTag.deletable = false;
this._changeDetectorRef.markForCheck();
}
const grazTag = this.filterField.getTagForFilter(this._grazFilter);
if (grazTag) {
grazTag.editable = false;
grazTag.deletable = true;
this._changeDetectorRef.markForCheck();
}
const bregenz = this.filterField.getTagForFilter(this._bregenzFilter);
if (bregenz) {
bregenz.editable = true;
bregenz.deletable = true;
this._changeDetectorRef.markForCheck();
}
// Permutation for free texts as well
const miami = this.filterField.getTagForFilter(this._miamiFilter);
if (miami) {
miami.editable = false;
miami.deletable = false;
this._changeDetectorRef.markForCheck();
}
const austin = this.filterField.getTagForFilter(this._austinFilter);
if (austin) {
austin.editable = true;
austin.deletable = false;
this._changeDetectorRef.markForCheck();
}
const sandiego = this.filterField.getTagForFilter(this._sandiegoFilter);
if (sandiego) {
sandiego.editable = false;
sandiego.deletable = true;
this._changeDetectorRef.markForCheck();
}
const bend = this.filterField.getTagForFilter(this._bendFilter);
if (bend) {
bend.editable = true;
bend.deletable = true;
this._changeDetectorRef.markForCheck();
}
});
}
}

0 comments on commit 32ea19d

Please sign in to comment.