|
@@ -1,5 +1,5 @@
|
|
|
// Basic editor functions
|
|
|
-function storeCaret(ftext) {
|
|
|
+function storeCaret(ftext) {
|
|
|
if (ftext.createTextRange) {
|
|
|
ftext.caretPos = document.selection.createRange().duplicate();
|
|
|
}
|
|
@@ -86,87 +86,115 @@ function extractor(query) {
|
|
|
|
|
|
// Small and nice editor functionality
|
|
|
$(function() {
|
|
|
+ function textarea(ev) {
|
|
|
+ return $(ev).parents('.editor-editable').find('textarea');
|
|
|
+ }
|
|
|
+
|
|
|
+ function textareaId(ev) {
|
|
|
+ return textarea(ev).attr('id');
|
|
|
+ }
|
|
|
+
|
|
|
$('.editor-tools').fadeIn(600);
|
|
|
- $('.editor').each(function() {
|
|
|
- // Get textarea stuff
|
|
|
- var textarea = $(this).find('textarea');
|
|
|
- var textarea_id = $(textarea).attr('id');
|
|
|
-
|
|
|
+ $('.editor-zen-on').css('display', 'block');
|
|
|
+ $('.editor-editable').each(function() {
|
|
|
// Do we have emojis?
|
|
|
if (ed_emojis.length > 1) {
|
|
|
- textarea.atwho({
|
|
|
+ $(this).find('textarea').atwho({
|
|
|
at: ":",
|
|
|
tpl: ed_emoji_tpl,
|
|
|
data: ed_emojis_list
|
|
|
});
|
|
|
}
|
|
|
+ });
|
|
|
+
|
|
|
+ // Handle buttons
|
|
|
+ $('.editor-zen-on a').click(function() {
|
|
|
+ var overlay = $('.zen-overlay');
|
|
|
+ var overlay_textarea = overlay.find('textarea');
|
|
|
+ overlay_textarea.val(textarea(this).val());
|
|
|
+ overlay_textarea.data('org', '#' + textareaId(this));
|
|
|
+ overlay_textarea.data('pos', $('body').scrollTop());
|
|
|
+ overlay.show();
|
|
|
+ $('#wrap').hide();
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
+ $('.editor-bold').click(function() {
|
|
|
+ makeWrap(textareaId(this), '**', '**');
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
+ $('.editor-emphasis').click(function() {
|
|
|
+ makeWrap(textareaId(this), '*', '*');
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
+ $('.editor-link').click(function() {
|
|
|
+ var selection = $.trim(getSelectionText(textareaId(this)));
|
|
|
+ if (is_url(selection)) {
|
|
|
+ var link_url = $.trim(prompt(ed_lang_enter_link_url, selection));
|
|
|
+ selection = false;
|
|
|
+ } else {
|
|
|
+ var link_url = $.trim(prompt(ed_lang_enter_link_url));
|
|
|
+ }
|
|
|
|
|
|
- // Handle buttons
|
|
|
- $('.editor-bold').click(function() {
|
|
|
- makeWrap(textarea_id, '**', '**');
|
|
|
- return false;
|
|
|
- });
|
|
|
-
|
|
|
- $('.editor-emphasis').click(function() {
|
|
|
- makeWrap(textarea_id, '*', '*');
|
|
|
- return false;
|
|
|
- });
|
|
|
-
|
|
|
- $('.editor-link').click(function() {
|
|
|
- var selection = $.trim(getSelectionText(textarea_id));
|
|
|
- if (is_url(selection)) {
|
|
|
- var link_url = $.trim(prompt(ed_lang_enter_link_url, selection));
|
|
|
- selection = false;
|
|
|
+ if (is_url(link_url)) {
|
|
|
+ if (selection) {
|
|
|
+ var link_label = $.trim(prompt(ed_lang_enter_link_label, selection));
|
|
|
} else {
|
|
|
- var link_url = $.trim(prompt(ed_lang_enter_link_url));
|
|
|
+ var link_label = $.trim(prompt(ed_lang_enter_link_label));
|
|
|
}
|
|
|
|
|
|
- if (is_url(link_url)) {
|
|
|
- if (selection) {
|
|
|
- var link_label = $.trim(prompt(ed_lang_enter_link_label, selection));
|
|
|
- } else {
|
|
|
- var link_label = $.trim(prompt(ed_lang_enter_link_label));
|
|
|
- }
|
|
|
-
|
|
|
- if (link_label.length > 0) {
|
|
|
- makeReplace(textarea_id, '[' + link_label + '](' + link_url + ')');
|
|
|
- } else {
|
|
|
- makeReplace(textarea_id, '<' + link_url + '>');
|
|
|
- }
|
|
|
+ if (link_label.length > 0) {
|
|
|
+ makeReplace(textareaId(this), '[' + link_label + '](' + link_url + ')');
|
|
|
+ } else {
|
|
|
+ makeReplace(textareaId(this), '<' + link_url + '>');
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
+ });
|
|
|
|
|
|
- return false;
|
|
|
- });
|
|
|
-
|
|
|
- $('.editor-image').click(function() {
|
|
|
- var selection = $.trim(getSelectionText(textarea_id));
|
|
|
- if (is_url(selection)) {
|
|
|
- var image_url = $.trim(prompt(ed_lang_enter_image_url, selection));
|
|
|
- selection = false;
|
|
|
+ $('.editor-image').click(function() {
|
|
|
+ var selection = $.trim(getSelectionText(textareaId(this)));
|
|
|
+ if (is_url(selection)) {
|
|
|
+ var image_url = $.trim(prompt(ed_lang_enter_image_url, selection));
|
|
|
+ selection = false;
|
|
|
+ } else {
|
|
|
+ var image_url = $.trim(prompt(ed_lang_enter_image_url));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (is_url(image_url)) {
|
|
|
+ if (selection) {
|
|
|
+ var image_label = $.trim(prompt(ed_lang_enter_image_label, selection));
|
|
|
} else {
|
|
|
- var image_url = $.trim(prompt(ed_lang_enter_image_url));
|
|
|
+ var image_label = $.trim(prompt(ed_lang_enter_image_label));
|
|
|
}
|
|
|
|
|
|
- if (is_url(image_url)) {
|
|
|
- if (selection) {
|
|
|
- var image_label = $.trim(prompt(ed_lang_enter_image_label, selection));
|
|
|
- } else {
|
|
|
- var image_label = $.trim(prompt(ed_lang_enter_image_label));
|
|
|
- }
|
|
|
-
|
|
|
- if (image_label.length > 0) {
|
|
|
- makeReplace(textarea_id, '');
|
|
|
- } else {
|
|
|
- makeReplace(textarea_id, '!(' + image_url + ')');
|
|
|
- }
|
|
|
+ if (image_label.length > 0) {
|
|
|
+ makeReplace(textareaId(this), '');
|
|
|
+ } else {
|
|
|
+ makeReplace(textareaId(this), '!(' + image_url + ')');
|
|
|
}
|
|
|
+ }
|
|
|
+
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
+ $('.editor-hr').click(function() {
|
|
|
+ makeReplace(textareaId(this), '\r\n\r\n- - - - -\r\n\r\n');
|
|
|
+ return false;
|
|
|
+ });
|
|
|
+
|
|
|
+ $('.editor-zen-off a').click(function() {
|
|
|
+ var overlay = $('.zen-overlay');
|
|
|
+ var overlay_textarea = overlay.find('textarea');
|
|
|
+ var scrooltop = overlay.find('textarea').data('pos');
|
|
|
|
|
|
- return false;
|
|
|
- });
|
|
|
-
|
|
|
- $('.editor-hr').click(function() {
|
|
|
- makeReplace(textarea_id, '\r\n\r\n- - - - -\r\n\r\n');
|
|
|
- return false;
|
|
|
- });
|
|
|
+ $(overlay.find('textarea').data('org')).val(overlay.find('textarea').val());
|
|
|
+ $('#wrap').show();
|
|
|
+ $('html, body').scrollTop(scrooltop);
|
|
|
+ overlay.hide();
|
|
|
+ return false;
|
|
|
});
|
|
|
});
|