Import xinha so we can switch from htmlarea and fix a bunch of in-browser issues that htmlarea has
This commit is contained in:
71
xinha/plugins/InsertWords/insert-words.js
Executable file
71
xinha/plugins/InsertWords/insert-words.js
Executable file
@@ -0,0 +1,71 @@
|
||||
// Plugin for htmlArea to insert keywords, when a type of
|
||||
// keyword is selected from a dropdown list
|
||||
// By Adam Wright, for The University of Western Australia
|
||||
//
|
||||
// Distributed under the same terms as HTMLArea itself.
|
||||
// This notice MUST stay intact for use (see license.txt).
|
||||
|
||||
function InsertWords(editor, params) {
|
||||
this.editor = editor;
|
||||
var cfg = editor.config;
|
||||
var self = this;
|
||||
|
||||
if(params[0] && params[0].combos) {
|
||||
//if arguments where passed with registerPlugin use these
|
||||
var combos = params[0].combos;
|
||||
} else if (cfg.InsertWords && cfg.InsertWords.combos) {
|
||||
//if combos is found in config use these
|
||||
var combos = cfg.InsertWords.combos;
|
||||
} else {
|
||||
//no combos found
|
||||
var combos = [];
|
||||
}
|
||||
|
||||
// register the toolbar with the keywords dropdown
|
||||
var first = true;
|
||||
var toolbar = [];
|
||||
|
||||
for (var i = combos.length; --i >= 0;) {
|
||||
var combo = combos[i];
|
||||
var id = "IW-id" + i;
|
||||
var iw_class = {
|
||||
id : id,
|
||||
options : combo.options,
|
||||
action : function (editor) { self.onSelect(editor, this, combo.context); },
|
||||
refresh : function (editor) { },
|
||||
context : combo.context
|
||||
};
|
||||
cfg.registerDropdown(iw_class);
|
||||
|
||||
if (combo.label)
|
||||
toolbar.push("T[" + combo.label + "]");
|
||||
toolbar.push(id);
|
||||
toolbar.push(first ? "separator" : "space");
|
||||
}
|
||||
|
||||
cfg.addToolbarElement(toolbar, "linebreak", 1);
|
||||
|
||||
};
|
||||
|
||||
InsertWords._pluginInfo = {
|
||||
name : "InsertWords",
|
||||
version : "1.0",
|
||||
developer : "Adam Wright",
|
||||
developer_url : "http://blog.hipikat.org/",
|
||||
sponsor : "The University of Western Australia",
|
||||
sponsor_url : "http://www.uwa.edu.au/",
|
||||
license : "htmlArea"
|
||||
};
|
||||
|
||||
InsertWords.prototype.onSelect = function(editor, obj, context) {
|
||||
|
||||
// Get the toolbar object element
|
||||
var elem = editor._toolbarObjects[obj.id].element;
|
||||
|
||||
// Insert the keyword value blindly at the selection
|
||||
editor.insertHTML(elem.value);
|
||||
|
||||
// Reset the dropdown to it's label
|
||||
elem.selectedIndex = 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user