Skip to content

Commit

Permalink
Classes handler change
Browse files Browse the repository at this point in the history
#259 Manage_Classes it's now handled inside node_helper
  • Loading branch information
ezeholz committed Apr 16, 2021
1 parent ed3c8cc commit 54fa61c
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 8 deletions.
2 changes: 1 addition & 1 deletion API/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ module.exports = {
var classes = self.getConfig().modules.find(m => m.module === "MMM-Remote-Control").config || {};
const val = decodeURIComponent(req.params.value)
if(classes.classes && classes.classes[val]) {
self.executeQuery({ action: "MANAGE_CLASSES", payload: { classes: classes.classes[val]} }, res);
self.executeQuery({ action: "MANAGE_CLASSES", payload: { classes: req.params.value} }, res);
} else {
res.status(400).json({ success: false, message: `Invalid value ${val} provided in request. Use /api/classes to see actual values` });
}
Expand Down
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/).

## [2.3.4] - Unreleased

### Added
- Now you can use MANAGE_CLASSES to use them between modules, instead of just the API

### Fixed
- Classes now detects when you're using identifiers and names in the same action (#259)

Expand Down
24 changes: 18 additions & 6 deletions node_helper.js
Original file line number Diff line number Diff line change
Expand Up @@ -796,12 +796,24 @@ module.exports = NodeHelper.create(Object.assign({
}
}
if (query.action === "MANAGE_CLASSES") {
if (!query.payload || !query.payload.classes) return;
for(const act in query.payload.classes) {
if (["SHOW","HIDE","TOGGLE"].includes(act.toUpperCase())) {
this.sendSocketNotification(act.toUpperCase(),{ module: query.payload.classes[act]});
}
}
if (!query.payload || !query.payload.classes || !this.thisConfig || !this.thisConfig.classes) return;
let classes = [];
switch (typeof query.payload.classes) {
case 'string': classes.push(this.thisConfig.classes[query.payload.classes]); break;
case 'object': query.payload.classes.forEach((t)=>classes.push(this.thisConfig.classes[t]))
}
classes.forEach((cl)=>{
for(const act in cl) {
if (["SHOW","HIDE","TOGGLE"].includes(act.toUpperCase())) {
if(typeof cl[act] == 'string') this.sendSocketNotification(act.toUpperCase(),{ module: cl[act]});
else {
cl[act].forEach((t)=>{
this.sendSocketNotification(act.toUpperCase(),{ module: t});
})
}
}
}
})
this.sendResponse(res);
return;
}
Expand Down
2 changes: 1 addition & 1 deletion remote.js
Original file line number Diff line number Diff line change
Expand Up @@ -1226,7 +1226,7 @@ var Remote = {
},{
content: {
payload: {
classes: classes[i]
classes: i
}
}
})
Expand Down

0 comments on commit 54fa61c

Please sign in to comment.