hide unusable buttons

This commit is contained in:
Per Sandström 2015-09-16 21:13:09 +02:00
parent 743a519a3e
commit 7b8ba2ce4d
2 changed files with 28 additions and 3 deletions

View File

@ -9,9 +9,9 @@
<paper-input label='code' value='[[entered_code]]' pattern='[0-9]*' type='password' on-change='enteredCodeChanged'></paper-input>
</div>
<div class='layout horizontal'>
<paper-button on-tap='handleDisarmTap'>Disarm</paper-button>
<paper-button on-tap='handleHomeTap'>Arm Home</paper-button>
<paper-button on-tap='handleAwayTap'>Arm Away</paper-button>
<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>
</div>
</template>
</dom-module>

View File

@ -14,14 +14,39 @@ export default new Polymer({
this.callService('alarm_arm_away', {code: this.entered_code});
},
properties: {
stateObj: {
type: Object,
observer: 'stateObjChanged',
},
entered_code: {
type: String,
value: '',
},
disarm_button_enabled: {
type: Boolean,
value: false,
},
arm_home_button_enabled: {
type: Boolean,
value: false,
},
arm_away_button_enabled: {
type: Boolean,
value: false,
},
},
enteredCodeChanged(ev) {
this.entered_code = ev.target.value;
},
stateObjChanged(newVal) {
if (newVal) {
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) {
const serviceData = data || {};
serviceData.entity_id = this.stateObj.entityId;