Skip to content

Instantly share code, notes, and snippets.

@apeisa
Created April 25, 2012 10:10
Show Gist options
  • Save apeisa/2488678 to your computer and use it in GitHub Desktop.
Save apeisa/2488678 to your computer and use it in GitHub Desktop.
/*
* Aloha Editor
* Author & Copyright (c) 2010 Gentics Software GmbH
* [email protected]
* Licensed unter the terms of http://www.aloha-editor.com/license.html
*/
define(
['aloha',
'aloha/jquery',
'aloha/plugin',
'aloha/floatingmenu',
'i18n!tags/nls/i18n',
'i18n!aloha/nls/i18n',
'css!tags/css/characterpicker.css'],
function( Aloha, jQuery, Plugin, FloatingMenu, i18n, i18nCore ) {
var
GENTICS = window.GENTICS;
function insertTag(character)
{
var self = this;
var range = Aloha.Selection.getRangeObject();
if( Aloha.activeEditable ) {
var charNode = jQuery(document.createTextNode(character));
GENTICS.Utils.Dom.insertIntoDOM(
charNode,
range,
jQuery(Aloha.activeEditable.obj),
true
);
range.startContainer = range.endContainer = charNode.get( 0 );
range.startOffset = range.endOffset = charNode.length;
range.select();
}
}
return Plugin.create('tags', {
_constructor: function(){
this._super('tags');
},
languages: ['fi'],
init: function() {
var self = this;
if (!Aloha.settings.plugins.tags) {
Aloha.settings.plugins.tags = {}
}
self.settings = Aloha.settings.plugins.tags || {};
if(!self.settings.tags) {
self.settings.tags = [["tagvalue","Tag title"],["lastname","Lastname"]];
}
$.each(self.settings.tags, function(index, value) {
var insertButton = new Aloha.ui.Button({
'name': value[1],
'size': 'small',
'label': value[1],
'onclick': function(element, event) {self.insertTag(this.name)},
//'onclick': function(element, event) { self.characterOverlay.show(element.btnEl.dom); },
'toggle': false
});
FloatingMenu.addButton(
'Aloha.continuoustext',
insertButton,
i18nCore.t("Muuttujat"),
1
);
});
},
insertTag: function(s) {
//s = "<span class='tag'>#" + s + "#</span>";
s = "#" + s + "#";
var self = this;
var length = s.length;
var range = Aloha.Selection.getRangeObject();
if( Aloha.activeEditable ) {
var charNode = jQuery(document.createTextNode(s));
//var span = jQuery("<span class='tag'>" + s + "</span>");
GENTICS.Utils.Dom.insertIntoDOM(
charNode,
range,
jQuery(Aloha.activeEditable.obj),
true
);
range.startContainer = range.endContainer = charNode.get( 0 );
range.startOffset = range.endOffset = length;
range.select();
}
}
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment