mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-15 05:16: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'>
|
||||
<template>
|
||||
<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 class='layout horizontal'>
|
||||
<paper-button on-tap='handleDisarmTap' hidden$='[[!disarm_button_enabled]]'>Disarm</paper-button>
|
||||
<paper-button on-tap='handleHomeTap' hidden$='[[!arm_home_button_enabled]]'>Arm Home</paper-button>
|
||||
<paper-button on-tap='handleAwayTap' hidden$='[[!arm_away_button_enabled]]'>Arm Away</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]]' disabled$='[[!code_valid]]'>Arm Home</paper-button>
|
||||
<paper-button on-tap='handleAwayTap' hidden$='[[!arm_away_button_enabled]]' disabled$='[[!code_valid]]'>Arm Away</paper-button>
|
||||
</div>
|
||||
</template>
|
||||
</dom-module>
|
||||
|
@ -34,17 +34,44 @@ export default new Polymer({
|
||||
type: Boolean,
|
||||
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) {
|
||||
this.entered_code = ev.target.value;
|
||||
validate_code(code) {
|
||||
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) {
|
||||
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_away_button_enabled = newVal.state === 'disarmed';
|
||||
}
|
||||
|
||||
this.async(() => this.fire('iron-resize'), 500);
|
||||
},
|
||||
callService(service, data) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user