pimatic-bluelink
Version:
Pimatic plugin for Bluelink connected cars
105 lines (89 loc) • 3.85 kB
text/coffeescript
merge = Array.prototype.concat
$(document).on 'templateinit', (event) ->
class BluelinkItem extends pimatic.DeviceItem # extends pimatic.SwitchItem
constructor: (templData, ) ->
super(templData, )
getItemTemplate: => 'bluelink'
afterRender: (elements) ->
super(elements)
= $(elements).find('[name=startAircoButton]')
= $(elements).find('[name=startAircoPlusButton]')
= $(elements).find('[name=offAircoButton]')
= $(elements).find('[name=lockButton]')
= $(elements).find('[name=unlockButton]')
= $(elements).find('[name=startChargeButton]')
= $(elements).find('[name=stopChargeButton]')
= $(elements).find('[name=refreshButton]')
?.value.subscribe( => )
?.value.subscribe( => )
?.value.subscribe( => )
modeStartAirco: -> "start"
modeStartAircoPlus: -> "startPlus"
modeOffAirco: -> "stop"
modeLock: -> "lock"
modeUnlock: -> "unlock"
modeStartCharge: -> "startCharge"
modeStopCharge: -> "stopCharge"
modeRefresh: ->
"refresh"
.then =>
updateAircoButtons: =>
aircoAttr = ?.value()
switch aircoAttr
when "start"
.addClass('ui-btn-active')
.removeClass('ui-btn-active')
.removeClass('ui-btn-active')
when "startPlus"
.removeClass('ui-btn-active')
.addClass('ui-btn-active')
.removeClass('ui-btn-active')
when "off"
.removeClass('ui-btn-active')
.removeClass('ui-btn-active')
.addClass('ui-btn-active')
else
.removeClass('ui-btn-active')
.removeClass('ui-btn-active')
.removeClass('ui-btn-active')
return
updateDoorButtons: =>
doorAttr = ?.value()
switch doorAttr
when true
.addClass('ui-btn-active')
.removeClass('ui-btn-active')
when false
.removeClass('ui-btn-active')
.addClass('ui-btn-active')
else
.removeClass('ui-btn-active')
.removeClass('ui-btn-active')
return
updateChargingButtons: =>
chargingAttr = ?.value()
switch chargingAttr
when true
.addClass('ui-btn-active')
.removeClass('ui-btn-active')
when false
.removeClass('ui-btn-active')
.addClass('ui-btn-active')
else
.removeClass('ui-btn-active')
.removeClass('ui-btn-active')
return
updateRefreshButton: =>
.addClass('ui-btn-active')
setTimeout(=>
.removeClass('ui-btn-active')
return
, 3000)
changeActionTo: (_action) ->
.rest.changeActionTo({action: _action}, global: no)
.done(ajaxShowToast)
.fail(ajaxAlertFail)
pimatic.templateClasses['bluelink'] = BluelinkItem