Add reset input to profile condition (#1237)
* Add _setType and _setOperator * Add reset value menu option
This commit is contained in:
parent
84d3af0f8d
commit
a97fbcde83
@ -485,32 +485,13 @@ class ProfileConditionUI {
|
|||||||
|
|
||||||
_onTypeChange(e) {
|
_onTypeChange(e) {
|
||||||
const type = e.currentTarget.value;
|
const type = e.currentTarget.value;
|
||||||
const operators = this._getDescriptorOperators(type);
|
this._setType(type);
|
||||||
const operator = operators.length > 0 ? operators[0].name : '';
|
|
||||||
const operatorDetails = this._getOperatorDetails(type, operator);
|
|
||||||
const {defaultValue} = operatorDetails;
|
|
||||||
this._updateSelect(this._operatorInput, this._operatorOptionContainer, operators, operator);
|
|
||||||
this._updateValueInput(defaultValue, operatorDetails);
|
|
||||||
this.settingsController.modifyGlobalSettings([
|
|
||||||
{action: 'set', path: this.getPath('type'), value: type},
|
|
||||||
{action: 'set', path: this.getPath('operator'), value: operator},
|
|
||||||
{action: 'set', path: this.getPath('value'), value: defaultValue}
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onOperatorChange(e) {
|
_onOperatorChange(e) {
|
||||||
const type = this._typeInput.value;
|
const type = this._typeInput.value;
|
||||||
const operator = e.currentTarget.value;
|
const operator = e.currentTarget.value;
|
||||||
const operatorDetails = this._getOperatorDetails(type, operator);
|
this._setOperator(type, operator);
|
||||||
const settingsModifications = [{action: 'set', path: this.getPath('operator'), value: operator}];
|
|
||||||
if (operatorDetails.resetDefaultOnChange) {
|
|
||||||
const {defaultValue} = operatorDetails;
|
|
||||||
const okay = this._updateValueInput(defaultValue, operatorDetails);
|
|
||||||
if (okay) {
|
|
||||||
settingsModifications.push({action: 'set', path: this.getPath('value'), value: defaultValue});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
this.settingsController.modifyGlobalSettings(settingsModifications);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onValueInputChange({validate, normalize}, e) {
|
_onValueInputChange({validate, normalize}, e) {
|
||||||
@ -544,6 +525,9 @@ class ProfileConditionUI {
|
|||||||
case 'delete':
|
case 'delete':
|
||||||
this._removeSelf();
|
this._removeSelf();
|
||||||
break;
|
break;
|
||||||
|
case 'resetValue':
|
||||||
|
this._resetValue();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -654,4 +638,39 @@ class ProfileConditionUI {
|
|||||||
_joinModifiers(modifiersArray) {
|
_joinModifiers(modifiersArray) {
|
||||||
return modifiersArray.join(', ');
|
return modifiersArray.join(', ');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async _setType(type, operator) {
|
||||||
|
const operators = this._getDescriptorOperators(type);
|
||||||
|
if (typeof operator === 'undefined') {
|
||||||
|
operator = operators.length > 0 ? operators[0].name : '';
|
||||||
|
}
|
||||||
|
const operatorDetails = this._getOperatorDetails(type, operator);
|
||||||
|
const {defaultValue} = operatorDetails;
|
||||||
|
this._updateSelect(this._operatorInput, this._operatorOptionContainer, operators, operator);
|
||||||
|
this._updateValueInput(defaultValue, operatorDetails);
|
||||||
|
await this.settingsController.modifyGlobalSettings([
|
||||||
|
{action: 'set', path: this.getPath('type'), value: type},
|
||||||
|
{action: 'set', path: this.getPath('operator'), value: operator},
|
||||||
|
{action: 'set', path: this.getPath('value'), value: defaultValue}
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
async _setOperator(type, operator) {
|
||||||
|
const operatorDetails = this._getOperatorDetails(type, operator);
|
||||||
|
const settingsModifications = [{action: 'set', path: this.getPath('operator'), value: operator}];
|
||||||
|
if (operatorDetails.resetDefaultOnChange) {
|
||||||
|
const {defaultValue} = operatorDetails;
|
||||||
|
const okay = this._updateValueInput(defaultValue, operatorDetails);
|
||||||
|
if (okay) {
|
||||||
|
settingsModifications.push({action: 'set', path: this.getPath('value'), value: defaultValue});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
await this.settingsController.modifyGlobalSettings(settingsModifications);
|
||||||
|
}
|
||||||
|
|
||||||
|
async _resetValue() {
|
||||||
|
const type = this._typeInput.value;
|
||||||
|
const operator = this._operatorInput.value;
|
||||||
|
await this._setType(type, operator);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1789,6 +1789,7 @@
|
|||||||
</div></div></template>
|
</div></div></template>
|
||||||
|
|
||||||
<template id="profile-condition-menu-template"><div class="popup-menu-container" tabindex="-1" role="dialog"><div class="popup-menu">
|
<template id="profile-condition-menu-template"><div class="popup-menu-container" tabindex="-1" role="dialog"><div class="popup-menu">
|
||||||
|
<button class="popup-menu-item" data-menu-action="resetValue">Reset value</button>
|
||||||
<button class="popup-menu-item" data-menu-action="delete">Delete</button>
|
<button class="popup-menu-item" data-menu-action="delete">Delete</button>
|
||||||
</div></div></template>
|
</div></div></template>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user