diff -r 4babf8545826 -r a71de5e21423 themes/enanium/js/inlinerename.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/themes/enanium/js/inlinerename.js Wed Apr 15 20:10:40 2009 -0400 @@ -0,0 +1,89 @@ +function ajaxRenameInline() +{ + if ( KILL_SWITCH || IE ) + return false; + // This trick is _so_ vBulletin... + elem = document.getElementById('h2PageName'); + if(!elem) return; + elem.style.display = 'none'; + name = elem.firstChild.nodeValue; + textbox = document.createElement('input'); + textbox.type = 'text'; + textbox.value = name; + textbox.id = 'pageheading'; + textbox.size = name.length + 7; + textbox.onkeyup = function(e) { if(!e) return; if(e.keyCode == 13) ajaxRenameInlineSave(); if(e.keyCode == 27) ajaxRenameInlineCancel(); }; + textbox.oldname = name; + elem.parentNode.insertBefore(textbox, elem); + document.onclick = ajaxRenameInlineCancel; + + load_component(['l10n', 'fadefilter', 'messagebox']); + textbox.focus(); + textbox.select(); +} + +function ajaxRenameInlineSave() +{ + elem1 = document.getElementById('h2PageName'); + elem2 = document.getElementById('pageheading'); + if(!elem1 || !elem2) return; + value = elem2.value; + elem2.parentNode.removeChild(elem2); // just destroy the thing + elem1.removeChild(elem1.firstChild); + elem1.appendChild(document.createTextNode(value)); + elem1.style.display = 'block'; + if(!value || value=='' || value==elem2.oldname) return; + setAjaxLoading(); + ajaxPost(stdAjaxPrefix+'&_mode=rename', 'newtitle='+ajaxEscape(value), function() { + if ( ajax.readyState == 4 ) + { + unsetAjaxLoading(); + var response = String(ajax.responseText); + if ( !check_json_response(response) ) + { + handle_invalid_json(response); + return false; + } + response = parseJSON(response); + if ( response.success ) + { + new MessageBox( MB_OK|MB_ICONINFORMATION, $lang.get('ajax_rename_success_title'), $lang.get('ajax_rename_success_body', { page_name_new: value }) ); + } + else + { + alert(response.error); + } + } + }); +} + +function ajaxRenameInlineCancel(e) +{ + if ( typeof(e) != 'object' && IE ) + e = window.event; + elem1 = document.getElementById('h2PageName'); + elem2 = document.getElementById('pageheading'); + if(!elem1 || !elem2) return; + if ( typeof(e) == 'object' && e.target ) + { + if(e.target == elem2) + return; + } + //value = elem2.value; + elem2.parentNode.removeChild(elem2); // just destroy the thing + //elem1.innerHTML = value; + elem1.style.display = 'block'; + document.onclick = null; +} + +addOnloadHook(function() + { + var h2 = document.getElementById('h2PageName'); + if ( h2 ) + { + h2.ondblclick = function() + { + ajaxRenameInline(); + } + } + });