From ed8706189730737c4b5c002f9e918a1a72023616 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Mon, 23 Jan 2012 18:31:17 +0000 Subject: [PATCH] Added the slider macro --- js/App.js | 1 + js/macros/slider.js | 49 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 js/macros/slider.js diff --git a/js/App.js b/js/App.js index d047212c5..eb1f5497b 100644 --- a/js/App.js +++ b/js/App.js @@ -93,6 +93,7 @@ var App = function() { this.store.installMacro(require("./macros/info.js").macro); this.store.installMacro(require("./macros/link.js").macro); this.store.installMacro(require("./macros/list.js").macro); + this.store.installMacro(require("./macros/slider.js").macro); this.store.installMacro(require("./macros/story.js").macro); this.store.installMacro(require("./macros/tiddler.js").macro); this.store.installMacro(require("./macros/version.js").macro); diff --git a/js/macros/slider.js b/js/macros/slider.js new file mode 100644 index 000000000..8f33416fc --- /dev/null +++ b/js/macros/slider.js @@ -0,0 +1,49 @@ +/*\ +title: js/macros/slider.js + +\*/ +(function(){ + +/*jslint node: true */ +"use strict"; + +var utils = require("../Utils.js"); + +exports.macro = { + name: "slider", + types: ["text/html","text/plain"], + params: { + name: {byPos: 0, type: "text", optional: false}, + targetTiddler: {byPos: 1, type: "tiddler", optional: false}, + label: {byPos: 2, type: "text", optional: false}, + tooltip: {byPos: 3, type: "text", optional: true} + }, + handler: function(type,tiddler,store,params) { + if(type === "text/html") { + var sliderHandle = utils.stitchElement("div",params.tooltip ? { + title: utils.htmlEncode(params.tooltip) + } : null,{ + content: utils.htmlEncode(params.label), + classNames: ["tw-slider-handle"] + }), + sliderBody = utils.stitchElement("div",{ + style: { + display: "block" + } + },{ + content: store.renderTiddler(type,params.targetTiddler), + classNames: ["tw-slider-body"] + }); + return utils.stitchElement("div",null,{ + content: sliderHandle + sliderBody, + classNames: ["tw-slider"] + }); + } else if(type === "text/plain") { + return store.renderTiddler(type,params.target); + } + return null; + } +}; + +})(); +