mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-15 13:26:34 +00:00
support code format
This commit is contained in:
parent
8f13584c14
commit
283400f211
@ -6,12 +6,12 @@
|
|||||||
<dom-module id='more-info-alarm_control_panel'>
|
<dom-module id='more-info-alarm_control_panel'>
|
||||||
<template>
|
<template>
|
||||||
<div class='layout horizontal'>
|
<div class='layout horizontal'>
|
||||||
<paper-input label='code' value='[[entered_code]]' pattern='[0-9]*' type='password' on-change='enteredCodeChanged'></paper-input>
|
<paper-input label='code' input='[[entered_code]]' pattern='[[code_format]]' on-keyup='entered_code_changed' type='password' hidden$='[[!code_input_visible]]' disabled$='[[!code_input_enabled]]'></paper-input>
|
||||||
</div>
|
</div>
|
||||||
<div class='layout horizontal'>
|
<div class='layout horizontal'>
|
||||||
<paper-button on-tap='handleDisarmTap' hidden$='[[!disarm_button_enabled]]'>Disarm</paper-button>
|
<paper-button on-tap='handleDisarmTap' hidden$='[[!disarm_button_enabled]]' disabled$='[[!code_valid]]'>Disarm</paper-button>
|
||||||
<paper-button on-tap='handleHomeTap' hidden$='[[!arm_home_button_enabled]]'>Arm Home</paper-button>
|
<paper-button on-tap='handleHomeTap' hidden$='[[!arm_home_button_enabled]]' disabled$='[[!code_valid]]'>Arm Home</paper-button>
|
||||||
<paper-button on-tap='handleAwayTap' hidden$='[[!arm_away_button_enabled]]'>Arm Away</paper-button>
|
<paper-button on-tap='handleAwayTap' hidden$='[[!arm_away_button_enabled]]' disabled$='[[!code_valid]]'>Arm Away</paper-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</dom-module>
|
</dom-module>
|
||||||
|
@ -34,17 +34,44 @@ export default new Polymer({
|
|||||||
type: Boolean,
|
type: Boolean,
|
||||||
value: false,
|
value: false,
|
||||||
},
|
},
|
||||||
|
code_input_visible: {
|
||||||
|
type: Boolean,
|
||||||
|
value: false,
|
||||||
|
},
|
||||||
|
code_input_enabled: {
|
||||||
|
type: Boolean,
|
||||||
|
value: false,
|
||||||
|
},
|
||||||
|
code_format: {
|
||||||
|
type: String,
|
||||||
|
value: '',
|
||||||
|
},
|
||||||
|
code_valid: {
|
||||||
|
type: Boolean,
|
||||||
|
value: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
enteredCodeChanged(ev) {
|
validate_code(code) {
|
||||||
this.entered_code = ev.target.value;
|
if(this.code_format == null){
|
||||||
|
this.code_valid = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var re = new RegExp(this.code_format);
|
||||||
|
this.code_valid = re.test(code);
|
||||||
|
},
|
||||||
|
entered_code_changed(ev) {
|
||||||
|
this.validate_code(ev.target.value);
|
||||||
},
|
},
|
||||||
stateObjChanged(newVal) {
|
stateObjChanged(newVal) {
|
||||||
if (newVal) {
|
if (newVal) {
|
||||||
this.disarm_button_enabled = newVal.state === 'armed_home' || newVal.state === 'armed_away';
|
this.code_format = newVal.attributes.code_format;
|
||||||
|
this.validate_code(this.entered_code);
|
||||||
|
this.code_input_visible = newVal.attributes.code_format != null;
|
||||||
|
this.code_input_enabled = (newVal.state === 'armed_home' || newVal.state === 'armed_away' || newVal.state === 'disarmed');
|
||||||
|
this.disarm_button_enabled = (newVal.state === 'armed_home' || newVal.state === 'armed_away');
|
||||||
this.arm_home_button_enabled = newVal.state === 'disarmed';
|
this.arm_home_button_enabled = newVal.state === 'disarmed';
|
||||||
this.arm_away_button_enabled = newVal.state === 'disarmed';
|
this.arm_away_button_enabled = newVal.state === 'disarmed';
|
||||||
}
|
}
|
||||||
|
|
||||||
this.async(() => this.fire('iron-resize'), 500);
|
this.async(() => this.fire('iron-resize'), 500);
|
||||||
},
|
},
|
||||||
callService(service, data) {
|
callService(service, data) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user