Merge pull request #2120 from ether/fix/timeslider-editbar
Add a customizable toolbar for timeslider
This commit is contained in:
commit
de3a60ee2a
|
@ -14,7 +14,17 @@ Example:
|
||||||
var orderedlist = toolbar.button({
|
var orderedlist = toolbar.button({
|
||||||
command: "insertorderedlist",
|
command: "insertorderedlist",
|
||||||
localizationId: "pad.toolbar.ol.title",
|
localizationId: "pad.toolbar.ol.title",
|
||||||
class: "buttonicon-insertorderedlist"
|
class: "buttonicon buttonicon-insertorderedlist"
|
||||||
|
})
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also create buttons with text:
|
||||||
|
|
||||||
|
```
|
||||||
|
var myButton = toolbar.button({
|
||||||
|
command: "myButton",
|
||||||
|
localizationId: "myPlugin.toolbar.myButton",
|
||||||
|
class: "buttontext"
|
||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -115,6 +115,9 @@
|
||||||
["importexport", "timeslider", "savedrevision"],
|
["importexport", "timeslider", "savedrevision"],
|
||||||
["settings", "embed"],
|
["settings", "embed"],
|
||||||
["showusers"]
|
["showusers"]
|
||||||
|
],
|
||||||
|
"timeslider": [
|
||||||
|
["timeslider_export", "timeslider_returnToPad"]
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -46,7 +46,14 @@ exports.expressCreateServer = function (hook_name, args, cb) {
|
||||||
//serve timeslider.html under /p/$padname/timeslider
|
//serve timeslider.html under /p/$padname/timeslider
|
||||||
args.app.get('/p/:pad/timeslider', function(req, res, next)
|
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
|
//serve favicon.ico from all path levels except as a pad name
|
||||||
|
|
|
@ -93,6 +93,9 @@ exports.toolbar = {
|
||||||
["importexport", "timeslider", "savedrevision"],
|
["importexport", "timeslider", "savedrevision"],
|
||||||
["settings", "embed"],
|
["settings", "embed"],
|
||||||
["showusers"]
|
["showusers"]
|
||||||
|
],
|
||||||
|
timeslider: [
|
||||||
|
["timeslider_export", "timeslider_returnToPad"]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ defaultButtonAttributes = function (name, overrides) {
|
||||||
return {
|
return {
|
||||||
command: name,
|
command: name,
|
||||||
localizationId: "pad.toolbar." + name + ".title",
|
localizationId: "pad.toolbar." + name + ".title",
|
||||||
class: "buttonicon-" + name
|
class: "buttonicon buttonicon-" + name
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -99,8 +99,8 @@ _.extend(Button.prototype, {
|
||||||
"data-key": this.attributes.command,
|
"data-key": this.attributes.command,
|
||||||
};
|
};
|
||||||
return tag("li", liAttributes,
|
return tag("li", liAttributes,
|
||||||
tag("a", { "class": this.grouping, "data-l10n-id": this.attributes.localizationId },
|
tag("a", { "class": this.grouping },
|
||||||
tag("span", { "class": "buttonicon " + this.attributes.class })
|
tag("span", { "class": " "+ this.attributes.class, "data-l10n-id": this.attributes.localizationId })
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -162,20 +162,20 @@ module.exports = {
|
||||||
orderedlist: {
|
orderedlist: {
|
||||||
command: "insertorderedlist",
|
command: "insertorderedlist",
|
||||||
localizationId: "pad.toolbar.ol.title",
|
localizationId: "pad.toolbar.ol.title",
|
||||||
class: "buttonicon-insertorderedlist"
|
class: "buttonicon buttonicon-insertorderedlist"
|
||||||
},
|
},
|
||||||
|
|
||||||
unorderedlist: {
|
unorderedlist: {
|
||||||
command: "insertunorderedlist",
|
command: "insertunorderedlist",
|
||||||
localizationId: "pad.toolbar.ul.title",
|
localizationId: "pad.toolbar.ul.title",
|
||||||
class: "buttonicon-insertunorderedlist"
|
class: "buttonicon buttonicon-insertunorderedlist"
|
||||||
},
|
},
|
||||||
|
|
||||||
indent: defaultButtonAttributes("indent"),
|
indent: defaultButtonAttributes("indent"),
|
||||||
outdent: {
|
outdent: {
|
||||||
command: "outdent",
|
command: "outdent",
|
||||||
localizationId: "pad.toolbar.unindent.title",
|
localizationId: "pad.toolbar.unindent.title",
|
||||||
class: "buttonicon-outdent"
|
class: "buttonicon buttonicon-outdent"
|
||||||
},
|
},
|
||||||
|
|
||||||
undo: defaultButtonAttributes("undo"),
|
undo: defaultButtonAttributes("undo"),
|
||||||
|
@ -184,25 +184,37 @@ module.exports = {
|
||||||
clearauthorship: {
|
clearauthorship: {
|
||||||
command: "clearauthorship",
|
command: "clearauthorship",
|
||||||
localizationId: "pad.toolbar.clearAuthorship.title",
|
localizationId: "pad.toolbar.clearAuthorship.title",
|
||||||
class: "buttonicon-clearauthorship"
|
class: "buttonicon buttonicon-clearauthorship"
|
||||||
},
|
},
|
||||||
|
|
||||||
importexport: {
|
importexport: {
|
||||||
command: "import_export",
|
command: "import_export",
|
||||||
localizationId: "pad.toolbar.import_export.title",
|
localizationId: "pad.toolbar.import_export.title",
|
||||||
class: "buttonicon-import_export"
|
class: "buttonicon buttonicon-import_export"
|
||||||
},
|
},
|
||||||
|
|
||||||
timeslider: {
|
timeslider: {
|
||||||
command: "showTimeSlider",
|
command: "showTimeSlider",
|
||||||
localizationId: "pad.toolbar.timeslider.title",
|
localizationId: "pad.toolbar.timeslider.title",
|
||||||
class: "buttonicon-history"
|
class: "buttonicon buttonicon-history"
|
||||||
},
|
},
|
||||||
|
|
||||||
savedrevision: defaultButtonAttributes("savedRevision"),
|
savedrevision: defaultButtonAttributes("savedRevision"),
|
||||||
settings: defaultButtonAttributes("settings"),
|
settings: defaultButtonAttributes("settings"),
|
||||||
embed: defaultButtonAttributes("embed"),
|
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) {
|
registerButton: function (buttonName, buttonInfo) {
|
||||||
|
|
|
@ -126,6 +126,10 @@ a img {
|
||||||
position: relative;
|
position: relative;
|
||||||
top: 1px;
|
top: 1px;
|
||||||
}
|
}
|
||||||
|
.toolbar ul li a .buttontext {
|
||||||
|
color: #222;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
.toolbar ul li a.grouped-left {
|
.toolbar ul li a.grouped-left {
|
||||||
border-radius: 3px 0 0 3px;
|
border-radius: 3px 0 0 3px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -157,13 +157,6 @@
|
||||||
#editbarright {
|
#editbarright {
|
||||||
float: right
|
float: right
|
||||||
}
|
}
|
||||||
#returnbutton {
|
|
||||||
color: #222;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 29px;
|
|
||||||
margin-top: 0;
|
|
||||||
padding-right: 6px;
|
|
||||||
}
|
|
||||||
#settings,
|
#settings,
|
||||||
#importexport,
|
#importexport,
|
||||||
#embed,
|
#embed,
|
||||||
|
|
|
@ -206,7 +206,7 @@ var padeditbar = (function()
|
||||||
|
|
||||||
if(module.css('display') != "none")
|
if(module.css('display') != "none")
|
||||||
{
|
{
|
||||||
$("#" + module[i] + "link").removeClass("selected");
|
$("#" + self.dropdowns[i] + "link").removeClass("selected");
|
||||||
module.slideUp("fast", cb);
|
module.slideUp("fast", cb);
|
||||||
returned = true;
|
returned = true;
|
||||||
}
|
}
|
||||||
|
@ -331,6 +331,14 @@ var padeditbar = (function()
|
||||||
ace.ace_setAttributeOnSelection('author', '');
|
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;
|
return self;
|
||||||
|
|
|
@ -95,12 +95,6 @@ function init() {
|
||||||
//get all the export links
|
//get all the export links
|
||||||
export_links = $('#export > .exportlink')
|
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()
|
$('button#forcereconnect').click(function()
|
||||||
{
|
{
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
|
|
|
@ -80,14 +80,9 @@
|
||||||
<div class="editbarright toolbar" id="editbar">
|
<div class="editbarright toolbar" id="editbar">
|
||||||
<% e.begin_block("timesliderEditbarRight"); %>
|
<% e.begin_block("timesliderEditbarRight"); %>
|
||||||
<ul>
|
<ul>
|
||||||
<li onClick="window.padeditbar.toolbarClick('import_export');return false;">
|
<%- toolbar.menu(settings.toolbar.timeslider) %>
|
||||||
<a id="exportlink" data-l10n-id="timeslider.toolbar.exportlink.title">
|
|
||||||
<div class="buttonicon buttonicon-import_export"></div>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
<a id="returnbutton" data-l10n-id="timeslider.toolbar.returnbutton"></a>
|
<% e.end_block(); %>
|
||||||
<% e.end_block(); %>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
@ -241,6 +236,8 @@
|
||||||
/* TODO: These globals shouldn't exist. */
|
/* TODO: These globals shouldn't exist. */
|
||||||
padeditbar = require('ep_etherpad-lite/static/js/pad_editbar').padeditbar;
|
padeditbar = require('ep_etherpad-lite/static/js/pad_editbar').padeditbar;
|
||||||
padimpexp = require('ep_etherpad-lite/static/js/pad_impexp').padimpexp;
|
padimpexp = require('ep_etherpad-lite/static/js/pad_impexp').padimpexp;
|
||||||
|
|
||||||
|
padeditbar.init()
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue