var _____WB$wombat$assign$function_____ = function(name) {return (self._wb_wombat && self._wb_wombat.local_init && self._wb_wombat.local_init(name)) || self[name]; }; if (!self.__WB_pmw) { self.__WB_pmw = function(obj) { this.__WB_source = obj; return this; } } { let window = _____WB$wombat$assign$function_____("window"); let self = _____WB$wombat$assign$function_____("self"); let document = _____WB$wombat$assign$function_____("document"); let location = _____WB$wombat$assign$function_____("location"); let top = _____WB$wombat$assign$function_____("top"); let parent = _____WB$wombat$assign$function_____("parent"); let frames = _____WB$wombat$assign$function_____("frames"); let opener = _____WB$wombat$assign$function_____("opener"); /** * editableText plugin that uses contentEditable property (FF2 is not supported) * Project page - http://github.com/valums/editableText * Copyright (c) 2009 Andris Valums, http://valums.com * Licensed under the MIT license (http://valums.com/mit-license/) */ (function(){ /** * The dollar sign could be overwritten globally, * but jQuery should always stay accesible */ var $ = jQuery; /** * Extending jQuery namespace, we * could add public methods here */ $.editableText = {}; $.editableText.defaults = { /** * Pass true to enable line breaks. * Useful with divs that contain paragraphs. */ newlinesEnabled : false, /** * Event that is triggered when editable text is changed */ changeEvent : 'change' }; /** * Usage $('selector).editableText(optionArray); * See $.editableText.defaults for valid options */ $.fn.editableText = function(options){ var options = $.extend({}, $.editableText.defaults, options); return this.each(function(){ // Add jQuery methods to the element var editable = $(this); /** * Save value to restore if user presses cancel */ var prevValue = editable.html(); // Create edit/save buttons var buttons = $( "
" + "" + "" + "" + "
") .insertBefore(editable); // Save references and attach events var editEl = buttons.find('.edit').click(function() { startEditing(); return false; }); buttons.find('.edit').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.save').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.cancel').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.save').click(function(){ if (window.confirm('Are you sure you want to save?')) { stopEditing(); editable.trigger(options.changeEvent); buttons.find('.edit').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.save').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.cancel').css('height', editable.attr('offsetHeight') + 'px'); } return false; }); buttons.find('.cancel').click(function(){ if (window.confirm('Are you sure you want to discard every changes?')) { stopEditing(); editable.html(prevValue); buttons.find('.edit').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.save').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.cancel').css('height', editable.attr('offsetHeight') + 'px'); } return false; }); // Display only edit button buttons.children().css('display', 'none'); editEl.show(); editable.keypress(function(event){ buttons.find('.edit').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.save').css('height', editable.attr('offsetHeight') + 'px'); buttons.find('.cancel').css('height', editable.attr('offsetHeight') + 'px'); if (!options.newlinesEnabled){ // Prevents user from adding newlines to headers, links, etc. // event is cancelled if enter is pressed return event.which != 13; } else { return event; } }); /* original if (!options.newlinesEnabled){ // Prevents user from adding newlines to headers, links, etc. editable.keypress(function(event){ // event is cancelled if enter is pressed return event.which != 13; }); } */ /** * Makes element editable */ function startEditing(){ buttons.children().show(); editEl.hide(); editable.attr('contentEditable', true); editable.css('backgroundColor', '#ffffff'); editable.css('outlineColor', '#dddddd'); editable.css('color', '#000000'); } /** * Makes element non-editable */ function stopEditing(){ buttons.children().hide(); editEl.show(); editable.attr('contentEditable', false); editable.css('backgroundColor', '#f9f9f9'); editable.css('outlineColor', '#eeeeee'); editable.css('color', '#666666'); } }); } })(); }