Index: openacs-4/packages/xowiki/www/resources/ckeip.js
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/resources/ckeip.js,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/xowiki/www/resources/ckeip.js 13 Sep 2012 16:05:40 -0000 1.4
+++ openacs-4/packages/xowiki/www/resources/ckeip.js 24 Jun 2013 13:38:13 -0000 1.5
@@ -1,141 +1,152 @@
-/*
-
-# CKEDITOR Edit-In Place jQuery Plugin.
-
-# Created By Dave Earley.
-# www.Dave-Earley.com
-# Adapted by Michael Totschnig
-
-*/
-
-$.fn.ckeip = function (callback,options) {
-
- function load_ck (u_id) {
- var name = 'ckeip_e_' + u_id;
- var textarea = $('#' + name);
- textarea.ckeditor(callback,settings.ckeditor_config);
- CKEDITOR.instances[name].on('instanceReady',function(e) {settings.ckeditor_config.ready_callback});
- textarea.show();
- textarea.bind('destroy.ckeditor',settings.ckeditor_config.destroy_callback);
- $('#buttons_ckeip_' + u_id + '').show();
- }
-
- var defaults = {
- name: 'text',
- e_height: '1',
- data: {},
- e_hover_color: '#eeeeee',
- ckeditor_config: '',
- e_width: '50'
- };
-
- var settings = $.extend({}, defaults, options);
-
- return this.each(function () {
- var using_wrapper = false;
- var timeout;
- var delay = 500;
- var eip_html = $(this).html();
- if (eip_html == ' ') { eip_html = ''}
- var u_id = this.id;
- var div = $(this);
- div.addClass('ckeip');
- div.data('editing',false);
- var wrapper;
- if (settings.wrapper_class != '') {
- wrapper = div.closest('.'+settings.wrapper_class);
- if (wrapper.length == 0) {
- wrapper = div;
- } else {
- using_wrapper = true;
- }
- } else {
- wrapper = div;
- }
-
- $(this).before("
");
-
- wrapper.bind("click focusin", function () {
- //we provide for the possibility that the element has been cloned
- //and changed id after having been initialized
- var div;
- var wrapper = this;
- if (using_wrapper) {
- div = $(wrapper).find('div.ckeip');
- } else {
- div = $(wrapper);
- }
- if (div.data('editing')) {return false}
- var u_id = div.attr('id');
- var textarea = $('#ckeip_e_' + u_id + '');
- if (!timeout) {
- timeout = setTimeout(function() {
- div.hide();
- div.data('editing',true);
- if (div.html().match(/<.+>/)!=null) {
- load_ck(u_id);
- } else {
- textarea.show();;
- textarea.focus();
- textarea.bind("focusout", function(ev) {
- var ckeip_html = textarea.val();
- if (ckeip_html == '') { ckeip_html = ' '}
- div.html(ckeip_html);
- textarea.hide();
- textarea.unbind('focusout');
- div.show();
- div.data('editing',false);
- return false;
- });
- }
- timeout = null;
- }, delay);
- }
- });
- wrapper.bind("dblclick", function () {
- if (timeout) {
- // Clear the timeout since this is a double-click and we don't want
- // the 'click-only' code to run.
- clearTimeout(timeout);
- timeout = null;
- }
- var div;
- var wrapper = this;
- if (using_wrapper) {
- div = $(wrapper).find('div.ckeip');
- } else {
- div = $(wrapper);
- }
- if (div.data('editing')) {return false}
- var u_id = div.attr('id');
- div.hide();
- div.data('editing',true);
- load_ck(u_id);
- });
-
- wrapper.hover(function () {
- $(this).css({
- backgroundColor: settings.e_hover_color
- });
- }, function () {
- $(this).css({
- backgroundColor: ''
- });
- });
- $("#close_ckeip_" + u_id + "").click(function () {
- var wrapper;
- var u_id = this.id.substring(12);
- var textarea = $('#ckeip_e_' + u_id + '');
- var div = $('#' + u_id);
- var ckeip_html = textarea.val();
- if (ckeip_html == '') { ckeip_html = ' '}
- div.html(ckeip_html);
- textarea.ckeditorGet().destroy();
- textarea.hide();
- $('#buttons_ckeip_' + u_id + '').hide();
- div.show();
- div.data('editing',false);
- return false;
- });
- });
+/*
+
+# CKEDITOR Edit-In Place jQuery Plugin.
+
+# Created By Dave Earley.
+# www.Dave-Earley.com
+# Adapted by Michael Totschnig
+
+*/
+
+$.fn.ckeip = function (callback,options) {
+
+ function load_ck (u_id) {
+ var name = 'ckeip_e_' + u_id;
+ var textarea = $('#' + name);
+ textarea.ckeditor(callback,settings.ckeditor_config);
+ CKEDITOR.instances[name].on('instanceReady',function(e) {settings.ckeditor_config.ready_callback});
+ textarea.show();
+ textarea.bind('destroy.ckeditor',settings.ckeditor_config.destroy_callback);
+ $('#buttons_ckeip_' + u_id + '').show();
+ }
+
+ var defaults = {
+ name: 'text',
+ e_height: '1',
+ data: {},
+ e_hover_color: '#eeeeee',
+ ckeditor_config: '',
+ e_width: '50'
+ };
+
+ var settings = $.extend({}, defaults, options);
+
+ return this.each(function () {
+ var using_wrapper = false;
+ var timeout;
+ var delay = 500;
+
+ // if the xowikiimage plugin is available we have to rewrite the wiki_image_links to image tags before loading
+ if (settings.ckeditor_config.extraPlugins.indexOf("xowikiimage") != -1) {
+ var eip_html = calc_wiki_image_links_to_image_tags($(this).html());
+ $(this).html(eip_html);
+ } else {
+ var eip_html = $(this).html();
+ }
+
+ if (eip_html == ' ') { eip_html = ''}
+ var u_id = this.id;
+ var div = $(this);
+ div.addClass('ckeip');
+ div.data('editing',false);
+ var wrapper;
+ if (settings.wrapper_class != '') {
+ wrapper = div.closest('.'+settings.wrapper_class);
+ if (wrapper.length == 0) {
+ wrapper = div;
+ } else {
+ using_wrapper = true;
+ }
+ } else {
+ wrapper = div;
+ }
+
+ // delete an already registered inplace ckedtior to ensure that the ckipeditors doesn't shown twice
+ $('#ckeip_'+u_id).remove();
+
+ $(this).before("");
+
+ wrapper.bind("click focusin", function () {
+ //we provide for the possibility that the element has been cloned
+ //and changed id after having been initialized
+ var div;
+ var wrapper = this;
+ if (using_wrapper) {
+ div = $(wrapper).find('div.ckeip');
+ } else {
+ div = $(wrapper);
+ }
+ if (div.data('editing')) {return false}
+ var u_id = div.attr('id');
+ var textarea = $('#ckeip_e_' + u_id + '');
+ if (!timeout) {
+ timeout = setTimeout(function() {
+ div.hide();
+ div.data('editing',true);
+ if (div.html().length > 0) {
+ load_ck(u_id);
+ } else {
+ textarea.show();;
+ textarea.focus();
+ textarea.bind("focusout", function(ev) {
+ var ckeip_html = textarea.val();
+ if (ckeip_html == '') { ckeip_html = ' '}
+ div.html(ckeip_html);
+ textarea.hide();
+ textarea.unbind('focusout');
+ div.show();
+ div.data('editing',false);
+ return false;
+ });
+ }
+ timeout = null;
+ }, delay);
+ }
+ });
+ wrapper.bind("dblclick", function () {
+ if (timeout) {
+ // Clear the timeout since this is a double-click and we don't want
+ // the 'click-only' code to run.
+ clearTimeout(timeout);
+ timeout = null;
+ }
+ var div;
+ var wrapper = this;
+ if (using_wrapper) {
+ div = $(wrapper).find('div.ckeip');
+ } else {
+ div = $(wrapper);
+ }
+ if (div.data('editing')) {return false}
+ var u_id = div.attr('id');
+ div.hide();
+ div.data('editing',true);
+ load_ck(u_id);
+ });
+
+ wrapper.hover(function () {
+ $(this).css({
+ backgroundColor: settings.e_hover_color
+ });
+ }, function () {
+ $(this).css({
+ backgroundColor: ''
+ });
+ });
+ $("#close_ckeip_" + u_id + "").click(function () {
+ var wrapper;
+ var u_id = this.id.substring(12);
+ var textarea = $('#ckeip_e_' + u_id + '');
+ var div = $('#' + u_id);
+ var ckeip_html = textarea.val();
+ if (ckeip_html == '') { ckeip_html = ' '}
+ div.html(ckeip_html);
+ textarea.ckeditorGet().destroy();
+ textarea.hide();
+ $('#buttons_ckeip_' + u_id + '').hide();
+ div.show();
+ div.data('editing',false);
+ return false;
+ });
+ });
};
\ No newline at end of file