diff --git a/settings.json.template b/settings.json.template index e9d35dcd7..38e826792 100644 --- a/settings.json.template +++ b/settings.json.template @@ -115,6 +115,9 @@ ["importexport", "timeslider", "savedrevision"], ["settings", "embed"], ["showusers"] + ], + "timeslider": [ + ["timeslider_export", "timeslider_returnToPad"] ] }, */ diff --git a/src/node/hooks/express/specialpages.js b/src/node/hooks/express/specialpages.js index 8609d6579..063328fbb 100644 --- a/src/node/hooks/express/specialpages.js +++ b/src/node/hooks/express/specialpages.js @@ -46,7 +46,14 @@ exports.expressCreateServer = function (hook_name, args, cb) { //serve timeslider.html under /p/$padname/timeslider args.app.get('/p/:pad/timeslider', function(req, res, next) { - res.send(eejs.require("ep_etherpad-lite/templates/timeslider.html", {req: req})); + hooks.callAll("padInitToolbar", { + toolbar: toolbar + }); + + res.send(eejs.require("ep_etherpad-lite/templates/timeslider.html", { + req: req, + toolbar: toolbar + })); }); //serve favicon.ico from all path levels except as a pad name diff --git a/src/node/utils/Settings.js b/src/node/utils/Settings.js index 9bfcae4b3..4c6b7ea40 100644 --- a/src/node/utils/Settings.js +++ b/src/node/utils/Settings.js @@ -93,6 +93,9 @@ exports.toolbar = { ["importexport", "timeslider", "savedrevision"], ["settings", "embed"], ["showusers"] + ], + timeslider: [ + ["timeslider_export", "timeslider_returnToPad"] ] } diff --git a/src/node/utils/toolbar.js b/src/node/utils/toolbar.js index fbd1a5da0..a4ee202c9 100644 --- a/src/node/utils/toolbar.js +++ b/src/node/utils/toolbar.js @@ -14,7 +14,7 @@ defaultButtonAttributes = function (name, overrides) { return { command: name, localizationId: "pad.toolbar." + name + ".title", - class: "buttonicon-" + name + class: "buttonicon buttonicon-" + name }; }; @@ -99,8 +99,8 @@ _.extend(Button.prototype, { "data-key": this.attributes.command, }; return tag("li", liAttributes, - tag("a", { "class": this.grouping, "data-l10n-id": this.attributes.localizationId }, - tag("span", { "class": "buttonicon " + this.attributes.class }) + tag("a", { "class": this.grouping }, + tag("span", { "class": " "+ this.attributes.class, "data-l10n-id": this.attributes.localizationId }) ) ); } @@ -162,20 +162,20 @@ module.exports = { orderedlist: { command: "insertorderedlist", localizationId: "pad.toolbar.ol.title", - class: "buttonicon-insertorderedlist" + class: "buttonicon buttonicon-insertorderedlist" }, unorderedlist: { command: "insertunorderedlist", localizationId: "pad.toolbar.ul.title", - class: "buttonicon-insertunorderedlist" + class: "buttonicon buttonicon-insertunorderedlist" }, indent: defaultButtonAttributes("indent"), outdent: { command: "outdent", localizationId: "pad.toolbar.unindent.title", - class: "buttonicon-outdent" + class: "buttonicon buttonicon-outdent" }, undo: defaultButtonAttributes("undo"), @@ -184,25 +184,37 @@ module.exports = { clearauthorship: { command: "clearauthorship", localizationId: "pad.toolbar.clearAuthorship.title", - class: "buttonicon-clearauthorship" + class: "buttonicon buttonicon-clearauthorship" }, importexport: { command: "import_export", localizationId: "pad.toolbar.import_export.title", - class: "buttonicon-import_export" + class: "buttonicon buttonicon-import_export" }, timeslider: { command: "showTimeSlider", localizationId: "pad.toolbar.timeslider.title", - class: "buttonicon-history" + class: "buttonicon buttonicon-history" }, savedrevision: defaultButtonAttributes("savedRevision"), settings: defaultButtonAttributes("settings"), embed: defaultButtonAttributes("embed"), - showusers: defaultButtonAttributes("showusers") + showusers: defaultButtonAttributes("showusers"), + + timeslider_export: { + command: "import_export", + localizationId: "timeslider.toolbar.exportlink.title", + class: "buttonicon buttonicon-import_export" + }, + + timeslider_returnToPad: { + command: "timeslider_returnToPad", + localizationId: "timeslider.toolbar.returnbutton", + class: "buttontext" + } }, registerButton: function (buttonName, buttonInfo) { diff --git a/src/static/css/pad.css b/src/static/css/pad.css index 0c1153fde..4053ebbad 100644 --- a/src/static/css/pad.css +++ b/src/static/css/pad.css @@ -126,6 +126,10 @@ a img { position: relative; top: 1px; } +.toolbar ul li a .buttontext { + color: #222; + font-size: 14px; +} .toolbar ul li a.grouped-left { border-radius: 3px 0 0 3px; } diff --git a/src/static/css/timeslider.css b/src/static/css/timeslider.css index b3c201847..f97d4f2b1 100644 --- a/src/static/css/timeslider.css +++ b/src/static/css/timeslider.css @@ -157,13 +157,6 @@ #editbarright { float: right } -#returnbutton { - color: #222; - font-size: 16px; - line-height: 29px; - margin-top: 0; - padding-right: 6px; -} #settings, #importexport, #embed, diff --git a/src/static/js/pad_editbar.js b/src/static/js/pad_editbar.js index 3174bf506..20c2842dc 100644 --- a/src/static/js/pad_editbar.js +++ b/src/static/js/pad_editbar.js @@ -331,6 +331,14 @@ var padeditbar = (function() ace.ace_setAttributeOnSelection('author', ''); } }); + + toolbar.registerCommand('timeslider_returnToPad', function(cmd) { + if( document.referrer.length > 0 && document.referrer.substring(document.referrer.lastIndexOf("/")-1, document.referrer.lastIndexOf("/")) === "p") { + document.location = document.referrer; + } else { + document.location = document.location.href.substring(0,document.location.href.lastIndexOf("/")); + } + }); } return self; diff --git a/src/static/js/timeslider.js b/src/static/js/timeslider.js index fd22c69a3..b3c10b8a3 100644 --- a/src/static/js/timeslider.js +++ b/src/static/js/timeslider.js @@ -95,12 +95,6 @@ function init() { //get all the export links export_links = $('#export > .exportlink') - if(document.referrer.length > 0 && document.referrer.substring(document.referrer.lastIndexOf("/")-1,document.referrer.lastIndexOf("/")) === "p") { - $("#returnbutton").attr("href", document.referrer); - } else { - $("#returnbutton").attr("href", document.location.href.substring(0,document.location.href.lastIndexOf("/"))); - } - $('button#forcereconnect').click(function() { window.location.reload(); diff --git a/src/templates/timeslider.html b/src/templates/timeslider.html index 4696c4757..559b51b53 100644 --- a/src/templates/timeslider.html +++ b/src/templates/timeslider.html @@ -80,14 +80,9 @@
<% e.begin_block("timesliderEditbarRight"); %> - - <% e.end_block(); %> + <% e.end_block(); %>