1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-23 10:07:19 +00:00

Extend action-log and subclass it as log widget (#5078)

* Extended action-log and subclassed it as log widget

* Do not rename LogWidget class

* Removed unneeded variable declaration
This commit is contained in:
saqimtiaz 2020-11-20 15:08:18 +01:00 committed by GitHub
parent 1339c23b3a
commit 483fd941f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 75 additions and 2 deletions

View File

@ -28,23 +28,66 @@ Render this widget into the DOM
*/ */
LogWidget.prototype.render = function(parent,nextSibling) { LogWidget.prototype.render = function(parent,nextSibling) {
this.computeAttributes(); this.computeAttributes();
this.execute();
}; };
LogWidget.prototype.execute = function(){
this.message = this.getAttribute("$$message","debug");
this.logAll = this.getAttribute("$$all","no") === "yes" ? true : false;
this.filter = this.getAttribute("$$filter");
}
/* /*
Refresh the widget by ensuring our attributes are up to date Refresh the widget by ensuring our attributes are up to date
*/ */
LogWidget.prototype.refresh = function(changedTiddlers) { LogWidget.prototype.refresh = function(changedTiddlers) {
return this.refreshChildren(changedTiddlers); this.refreshSelf();
return true;
}; };
/* /*
Invoke the action associated with this widget Invoke the action associated with this widget
*/ */
LogWidget.prototype.invokeAction = function(triggeringWidget,event) { LogWidget.prototype.invokeAction = function(triggeringWidget,event) {
$tw.utils.logTable(this.attributes,["attribute name","value"]); this.log();
return true; // Action was invoked return true; // Action was invoked
}; };
LogWidget.prototype.log = function() {
var data = {},
dataCount,
allVars = {},
filteredVars;
$tw.utils.each(this.attributes,function(attribute,name) {
if(name.substring(0,2) !== "$$") {
data[name] = attribute;
}
});
for(var v in this.variables) {
allVars[v] = this.getVariable(v,{defaultValue:""});
}
if(this.filter) {
filteredVars = this.wiki.compileFilter(this.filter).call(this.wiki,this.wiki.makeTiddlerIterator(allVars));
$tw.utils.each(filteredVars,function(name) {
data[name] = allVars[name];
});
}
dataCount = $tw.utils.count(data);
console.group(this.message);
if(dataCount > 0) {
$tw.utils.logTable(data,["name","value"]);
}
if(this.logAll || !dataCount) {
console.groupCollapsed("All variables");
$tw.utils.logTable(allVars,["name","value"]);
console.groupEnd();
}
console.groupEnd();
}
exports["action-log"] = LogWidget; exports["action-log"] = LogWidget;
})(); })();

View File

@ -0,0 +1,30 @@
/*\
title: $:/core/modules/widgets/log.js
type: application/javascript
module-type: widget-subclass
Widget to log debug messages
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.baseClass = "action-log";
exports.name = "log";
exports.constructor = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
}
exports.prototype = {};
exports.prototype.render = function(event) {
Object.getPrototypeOf(Object.getPrototypeOf(this)).render.call(this,event);
Object.getPrototypeOf(Object.getPrototypeOf(this)).log.call(this);
}
})();