mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2025-08-08 06:43:49 +00:00
Adapted button macro so that it can also toggle the value of a tiddler
We're splitting the slider macro up into its two constituent parts
This commit is contained in:
parent
fb5d7793ab
commit
797544c1f9
@ -15,7 +15,12 @@ Button macro
|
|||||||
exports.info = {
|
exports.info = {
|
||||||
name: "button",
|
name: "button",
|
||||||
params: {
|
params: {
|
||||||
name: {byName: "default", type: "text"},
|
message: {byName: "default", type: "text"},
|
||||||
|
toggle: {byName: true, type: "tiddler"},
|
||||||
|
set: {byName: true, type: "tiddler"},
|
||||||
|
on: {byName: true, type: "text"},
|
||||||
|
off: {byName: true, type: "text"},
|
||||||
|
qualifyTiddlerTitles: {byName: true, type: "text"},
|
||||||
"class": {byName: true, type: "text"}
|
"class": {byName: true, type: "text"}
|
||||||
},
|
},
|
||||||
events: ["click"]
|
events: ["click"]
|
||||||
@ -23,11 +28,29 @@ exports.info = {
|
|||||||
|
|
||||||
exports.handleEvent = function(event) {
|
exports.handleEvent = function(event) {
|
||||||
if(event.type === "click") {
|
if(event.type === "click") {
|
||||||
var buttonEvent = document.createEvent("Event");
|
if(this.hasParameter("message")) {
|
||||||
buttonEvent.initEvent("tw-" + this.params.name,true,true);
|
var buttonEvent = document.createEvent("Event");
|
||||||
buttonEvent.tiddlerTitle = this.tiddlerTitle;
|
buttonEvent.initEvent("tw-" + this.params.message,true,true);
|
||||||
buttonEvent.commandOrigin = this;
|
buttonEvent.tiddlerTitle = this.tiddlerTitle;
|
||||||
event.target.dispatchEvent(buttonEvent);
|
buttonEvent.commandOrigin = this;
|
||||||
|
event.target.dispatchEvent(buttonEvent);
|
||||||
|
}
|
||||||
|
if(this.hasParameter("toggle")) {
|
||||||
|
var title = this.params.toggle,
|
||||||
|
on = this.params.on || "open",
|
||||||
|
off = this.params.off || "closed";
|
||||||
|
if(this.hasParameter("qualifyTiddlerTitles") && this.params.qualifyTiddlerTitles === "yes") {
|
||||||
|
title = "(" + this.parents.join(",") + "," + this.tiddlerTitle + ")" + title;
|
||||||
|
}
|
||||||
|
var tiddler = this.wiki.getTiddler(title),
|
||||||
|
value = tiddler ? tiddler.fields.text : undefined;
|
||||||
|
if(value === this.params.on) {
|
||||||
|
value = this.params.off;
|
||||||
|
} else {
|
||||||
|
value = this.params.on;
|
||||||
|
}
|
||||||
|
this.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: title, text: value}));
|
||||||
|
}
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user