mirror of
https://github.com/0x1d/esp8266-laser.git
synced 2025-12-17 02:46:39 +01:00
oidshfs
This commit is contained in:
@@ -96,22 +96,18 @@ var $ = function(selector){
|
||||
},
|
||||
link: (node) => {
|
||||
return (actuator) => {
|
||||
let update = function(endpoint, method, props) {
|
||||
let update = actuator.handler || function(actuator) {
|
||||
Sui.http.ajax({
|
||||
method: method,
|
||||
endpoint: node.api[endpoint],
|
||||
data: props,
|
||||
method: actuator.method,
|
||||
endpoint: actuator.api,
|
||||
data: actuator.data ?
|
||||
actuator.data.call(this) : [this.value],
|
||||
cache: false
|
||||
}, actuator.onResponse || null);
|
||||
};
|
||||
Sui.select(actuator.selector).forEach( (domEl) =>{
|
||||
let handle = function(event) {
|
||||
update.call(this,
|
||||
actuator.api,
|
||||
actuator.method,
|
||||
actuator.data ?
|
||||
actuator.data.call(this) : [this.value]
|
||||
);
|
||||
update.call(this, actuator);
|
||||
}
|
||||
domEl.addEventListener(actuator.event, handle)
|
||||
});
|
||||
@@ -161,7 +157,20 @@ var $ = function(selector){
|
||||
request.send(postData);
|
||||
}
|
||||
}
|
||||
};Sui.ready(() => {
|
||||
};
|
||||
let click = element => element.click();
|
||||
let check = element => element.setAttribute('checked','checked');
|
||||
let uncheck = element => element.removeAttribute('checked');
|
||||
|
||||
let switchElementState = element => {
|
||||
let state = element.getAttribute('data-state') == 'false';
|
||||
element.setAttribute('data-state', state);
|
||||
return state;
|
||||
};
|
||||
let bindData = (element, attribute, data) => {
|
||||
element.setAttribute('data-' + attribute, data);
|
||||
};
|
||||
Sui.ready(() => {
|
||||
let debugResponse = (data) => {
|
||||
document.querySelector('#response').innerHTML = data;
|
||||
};
|
||||
@@ -175,7 +184,33 @@ var $ = function(selector){
|
||||
|
||||
// init actuators
|
||||
[{
|
||||
api: 'MOTOR',
|
||||
api: '/wificonfig',
|
||||
method: 'POST',
|
||||
selector: '.switch.ap-mode .slider',
|
||||
event: 'click',
|
||||
onResponse: debugResponse,
|
||||
handler: function() {
|
||||
let nextState = switchElementState(this);
|
||||
/*let bindingName = this.getAttribute('data-bind');
|
||||
Sui.select('.switch.ap-mode [name="'+ bindingName+'"]')
|
||||
.forEach(check);*/
|
||||
console.log(nextState);
|
||||
}
|
||||
},{
|
||||
api: '/presetMode',
|
||||
method: 'POST',
|
||||
selector: '.switch.preset-mode .slider',
|
||||
event: 'click',
|
||||
onResponse: debugResponse,
|
||||
data: function() {
|
||||
let state = switchElementState(this);
|
||||
console.log(state);
|
||||
return Sui.util.serialize({
|
||||
mode: state ? 1 : 0
|
||||
});
|
||||
}
|
||||
},{
|
||||
api: '/spirograph',
|
||||
method: 'POST',
|
||||
selector: '.slider.motor',
|
||||
event: 'change',
|
||||
@@ -193,7 +228,7 @@ var $ = function(selector){
|
||||
return Sui.util.serialize(payload);
|
||||
}
|
||||
}, {
|
||||
api: 'LASER',
|
||||
api: '/spirograph',
|
||||
method: 'POST',
|
||||
selector: '.slider.laser',
|
||||
event: 'change',
|
||||
@@ -210,7 +245,8 @@ var $ = function(selector){
|
||||
}].forEach(Sui.link({
|
||||
api: {
|
||||
MOTOR: '/spirograph', // {motorNr}/{value}
|
||||
LASER: '/spirograph' // {value}
|
||||
LASER: '/spirograph', // {value}
|
||||
PRESET: '/presetMode'
|
||||
}
|
||||
}));
|
||||
});
|
||||
Reference in New Issue
Block a user