mirror of
https://github.com/MichMich/MagicMirror.git
synced 2025-08-21 12:55:22 +00:00
Add notification for module dom creation with async support
This commit is contained in:
33
js/main.js
33
js/main.js
@@ -19,10 +19,10 @@ var MM = (function() {
|
|||||||
* are configured for a specific position.
|
* are configured for a specific position.
|
||||||
*/
|
*/
|
||||||
var createDomObjects = function() {
|
var createDomObjects = function() {
|
||||||
for (var m in modules) {
|
modules.forEach(module => {
|
||||||
var module = modules[m];
|
if (typeof module.data.position !== "string") {
|
||||||
|
return;
|
||||||
if (typeof module.data.position === "string") {
|
}
|
||||||
|
|
||||||
var wrapper = selectWrapper(module.data.position);
|
var wrapper = selectWrapper(module.data.position);
|
||||||
|
|
||||||
@@ -48,9 +48,10 @@ var MM = (function() {
|
|||||||
moduleContent.className = "module-content";
|
moduleContent.className = "module-content";
|
||||||
dom.appendChild(moduleContent);
|
dom.appendChild(moduleContent);
|
||||||
|
|
||||||
updateDom(module, 0);
|
updateDom(module, 0).then(() => {
|
||||||
}
|
sendNotification("MODULE_DOM_CREATED", null, null, module);
|
||||||
}
|
}).catch(Log.error);
|
||||||
|
});
|
||||||
|
|
||||||
updateWrapperStates();
|
updateWrapperStates();
|
||||||
|
|
||||||
@@ -80,10 +81,9 @@ var MM = (function() {
|
|||||||
* argument payload mixed - The payload of the notification.
|
* argument payload mixed - The payload of the notification.
|
||||||
* argument sender Module - The module that sent the notification.
|
* argument sender Module - The module that sent the notification.
|
||||||
*/
|
*/
|
||||||
var sendNotification = function(notification, payload, sender) {
|
var sendNotification = function(notification, payload, sender, sendTo) {
|
||||||
for (var m in modules) {
|
for (var module of modules) {
|
||||||
var module = modules[m];
|
if (module !== sender && (!sendTo || module === sendTo)) {
|
||||||
if (module !== sender) {
|
|
||||||
module.notificationReceived(notification, payload, sender);
|
module.notificationReceived(notification, payload, sender);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -96,6 +96,7 @@ var MM = (function() {
|
|||||||
* argument speed Number - The number of microseconds for the animation. (optional)
|
* argument speed Number - The number of microseconds for the animation. (optional)
|
||||||
*/
|
*/
|
||||||
var updateDom = function(module, speed) {
|
var updateDom = function(module, speed) {
|
||||||
|
return new Promise((resolve) => {
|
||||||
var newContentPromise = module.getDom();
|
var newContentPromise = module.getDom();
|
||||||
var newHeader = module.getHeader();
|
var newHeader = module.getHeader();
|
||||||
|
|
||||||
@@ -107,14 +108,8 @@ var MM = (function() {
|
|||||||
newContentPromise.then((newContent) => {
|
newContentPromise.then((newContent) => {
|
||||||
var updatePromise = updateDomWithContent(module, speed, newHeader, newContent);
|
var updatePromise = updateDomWithContent(module, speed, newHeader, newContent);
|
||||||
|
|
||||||
updatePromise.then(() => {
|
updatePromise.then(resolve).catch(Log.error);
|
||||||
// dom has been updated
|
}).catch(Log.error);
|
||||||
sendNotification("MODULE_DOM_CREATED", { module: module.name });
|
|
||||||
}).catch((err) => {
|
|
||||||
Log.error(err);
|
|
||||||
});
|
|
||||||
}).catch((err) => {
|
|
||||||
Log.error(err);
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user