mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-23 18:17:20 +00:00
Merge pull request #2160 from matabele/patch-2
Changed the name of the 'list' attribute to 'field' for the $action-listops widget
This commit is contained in:
commit
2cd812c15f
@ -3,87 +3,90 @@ title: $:/core/modules/widgets/action-listops.js
|
||||
type: application/javascript
|
||||
module-type: widget
|
||||
|
||||
Action widget to apply list operations to any tiddler field (defaults to the 'tags' field of the current tiddler)
|
||||
Action widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)
|
||||
|
||||
\*/
|
||||
(function () {
|
||||
(function() {
|
||||
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
/*jslint node: true, browser: true */
|
||||
/*global $tw: false */
|
||||
"use strict";
|
||||
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
||||
var ActionListopsWidget = function(parseTreeNode, options) {
|
||||
this.initialise(parseTreeNode, options);
|
||||
};
|
||||
/**
|
||||
* Inherit from the base widget class
|
||||
*/
|
||||
ActionListopsWidget.prototype = new Widget();
|
||||
/**
|
||||
* Render this widget into the DOM
|
||||
*/
|
||||
ActionListopsWidget.prototype.render = function(parent, nextSibling) {
|
||||
this.computeAttributes();
|
||||
this.execute();
|
||||
};
|
||||
/**
|
||||
* Compute the internal state of the widget
|
||||
*/
|
||||
ActionListopsWidget.prototype.execute = function() {
|
||||
// Get our parameters
|
||||
this.target = this.getAttribute("$tiddler", this.getVariable(
|
||||
"currentTiddler"));
|
||||
this.filter = this.getAttribute("$filter");
|
||||
this.subfilter = this.getAttribute("$subfilter");
|
||||
this.listField = this.getAttribute("$field", "list");
|
||||
this.listIndex = this.getAttribute("$index");
|
||||
this.filtertags = this.getAttribute("$tags");
|
||||
};
|
||||
/**
|
||||
* Refresh the widget by ensuring our attributes are up to date
|
||||
*/
|
||||
ActionListopsWidget.prototype.refresh = function(changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
if(changedAttributes.$tiddler || changedAttributes.$filter ||
|
||||
changedAttributes.$subfilter || changedAttributes.$field ||
|
||||
changedAttributes.$index || changedAttributes.$tags) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
}
|
||||
return this.refreshChildren(changedTiddlers);
|
||||
};
|
||||
/**
|
||||
* Invoke the action associated with this widget
|
||||
*/
|
||||
ActionListopsWidget.prototype.invokeAction = function(triggeringWidget,
|
||||
event) {
|
||||
//Apply the specified filters to the lists
|
||||
var field = this.listField,
|
||||
index,
|
||||
type = "!!",
|
||||
list = this.listField;
|
||||
if(this.listIndex) {
|
||||
field = undefined;
|
||||
index = this.listIndex;
|
||||
type = "##";
|
||||
list = this.listIndex;
|
||||
}
|
||||
if(this.filter) {
|
||||
this.wiki.setText(this.target, field, index, $tw.utils.stringifyList(
|
||||
this.wiki
|
||||
.filterTiddlers(this.filter, this)));
|
||||
}
|
||||
if(this.subfilter) {
|
||||
var subfilter = "[list[" + this.target + type + list + "]] " + this.subfilter;
|
||||
this.wiki.setText(this.target, field, index, $tw.utils.stringifyList(
|
||||
this.wiki
|
||||
.filterTiddlers(subfilter, this)));
|
||||
}
|
||||
if(this.filtertags) {
|
||||
var tagfilter = "[list[" + this.target + "!!tags]] " + this.filtertags;
|
||||
this.wiki.setText(this.target, "tags", undefined, $tw.utils.stringifyList(
|
||||
this.wiki.filterTiddlers(tagfilter, this)));
|
||||
}
|
||||
return true; // Action was invoked
|
||||
};
|
||||
|
||||
var Widget = require("$:/core/modules/widgets/widget.js").widget;
|
||||
|
||||
var ActionListopsWidget = function (parseTreeNode, options) {
|
||||
this.initialise(parseTreeNode, options);
|
||||
};
|
||||
|
||||
/*
|
||||
Inherit from the base widget class
|
||||
*/
|
||||
ActionListopsWidget.prototype = new Widget();
|
||||
|
||||
/*
|
||||
Render this widget into the DOM
|
||||
*/
|
||||
ActionListopsWidget.prototype.render = function (parent, nextSibling) {
|
||||
this.computeAttributes();
|
||||
this.execute();
|
||||
};
|
||||
|
||||
/*
|
||||
Compute the internal state of the widget
|
||||
*/
|
||||
ActionListopsWidget.prototype.execute = function () {
|
||||
// Get our parameters
|
||||
this.target = this.getAttribute("$tiddler", this.getVariable("currentTiddler"));
|
||||
this.filter = this.getAttribute("$filter");
|
||||
this.subfilter = this.getAttribute("$subfilter");
|
||||
this.listField = this.getAttribute("$list", "list");
|
||||
this.listIndex = this.getAttribute("$index");
|
||||
this.filtertags = this.getAttribute("$tags");
|
||||
};
|
||||
|
||||
/*
|
||||
Refresh the widget by ensuring our attributes are up to date
|
||||
*/
|
||||
ActionListopsWidget.prototype.refresh = function (changedTiddlers) {
|
||||
var changedAttributes = this.computeAttributes();
|
||||
if (changedAttributes.$tiddler || changedAttributes.$filter || changedAttributes.$subfilter || changedAttributes.$list || changedAttributes.$index || changedAttributes.$tags) {
|
||||
this.refreshSelf();
|
||||
return true;
|
||||
}
|
||||
return this.refreshChildren(changedTiddlers);
|
||||
};
|
||||
|
||||
/*
|
||||
Invoke the action associated with this widget
|
||||
*/
|
||||
ActionListopsWidget.prototype.invokeAction = function (triggeringWidget, event) {
|
||||
//try this
|
||||
var field = this.listField,
|
||||
index = undefined,
|
||||
type = "!!",
|
||||
list = this.listField;
|
||||
if (this.listIndex) {
|
||||
field = undefined;
|
||||
index = this.listIndex; type = "##";
|
||||
list = this.listIndex;
|
||||
}
|
||||
if (this.filter) {
|
||||
this.wiki.setText(this.target, field, index, $tw.utils.stringifyList(this.wiki.filterTiddlers(this.filter, this)));
|
||||
}
|
||||
if (this.subfilter) {
|
||||
var subfilter = "[list[" + this.target + type + list + "]] " + this.subfilter;
|
||||
this.wiki.setText(this.target, field, index, $tw.utils.stringifyList(this.wiki.filterTiddlers(subfilter, this)));
|
||||
}
|
||||
if (this.filtertags) {
|
||||
var tagfilter = "[list[" + this.target + "!!tags]] " + this.filtertags;
|
||||
this.wiki.setText(this.target, "tags", undefined, $tw.utils.stringifyList(this.wiki.filterTiddlers(tagfilter, this)));
|
||||
}
|
||||
return true; // Action was invoked
|
||||
};
|
||||
|
||||
exports["action-listops"] = ActionListopsWidget;
|
||||
exports["action-listops"] = ActionListopsWidget;
|
||||
|
||||
})();
|
||||
|
Loading…
Reference in New Issue
Block a user