themes/enanium/js/inlinerename.js
changeset 1300 1f97ee3ec614
parent 958 3dafe0969e5a
equal deleted inserted replaced
1299:29601ba3c448 1300:1f97ee3ec614
     1 // Sidebar collapse
     1 // Sidebar collapse
     2 function enanium_toggle_sidebar(side)
     2 function enanium_toggle_sidebar(side)
     3 {
     3 {
     4   if ( document.getElementById('enanium_sidebar_' + side).style.display == 'none' )
     4 	if ( !document.getElementById('enanium_sidebar_' + side) )
     5   {
     5 		return false;
     6     // show
     6 	if ( document.getElementById('enanium_sidebar_' + side).style.display == 'none' )
     7     document.getElementById('enanium_sidebar_' + side).style.display = 'block';
     7 	{
     8     document.getElementById('enanium_sidebar_' + side + '_hidden').style.display = 'none';
     8 		// show
     9     createCookie(side + '_sidebar', 'open', 365);
     9 		document.getElementById('enanium_sidebar_' + side).style.display = 'block';
    10   }
    10 		document.getElementById('enanium_sidebar_' + side + '_hidden').style.display = 'none';
    11   else
    11 		createCookie(side + '_sidebar', 'open', 365);
    12   {
    12 	}
    13     // hide
    13 	else
    14     document.getElementById('enanium_sidebar_' + side).style.display = 'none';
    14 	{
    15     document.getElementById('enanium_sidebar_' + side + '_hidden').style.display = 'block';
    15 		// hide
    16     createCookie(side + '_sidebar', 'collapsed', 365);
    16 		document.getElementById('enanium_sidebar_' + side).style.display = 'none';
    17   }
    17 		document.getElementById('enanium_sidebar_' + side + '_hidden').style.display = 'block';
       
    18 		createCookie(side + '_sidebar', 'collapsed', 365);
       
    19 	}
    18 }
    20 }
    19 
    21 
    20 function enanium_toggle_sidebar_right()
    22 function enanium_toggle_sidebar_right()
    21 {
    23 {
    22   enanium_toggle_sidebar('right');
    24 	enanium_toggle_sidebar('right');
    23 }
    25 }
    24 
    26 
    25 function enanium_toggle_sidebar_left()
    27 function enanium_toggle_sidebar_left()
    26 {
    28 {
    27   enanium_toggle_sidebar('left');
    29 	enanium_toggle_sidebar('left');
    28 }
    30 }
    29 
    31 
    30 addOnloadHook(function()
    32 addOnloadHook(function()
    31   {
    33 	{
    32     if ( readCookie('left_sidebar') == 'collapsed' )
    34 		if ( readCookie('left_sidebar') == 'collapsed' && document.getElementById('enanium_sidebar_left') )
    33     {
    35 		{
    34       document.getElementById('enanium_sidebar_left').style.display = 'none';
    36 			document.getElementById('enanium_sidebar_left').style.display = 'none';
    35       document.getElementById('enanium_sidebar_left_hidden').style.display = 'block';
    37 			document.getElementById('enanium_sidebar_left_hidden').style.display = 'block';
    36     }
    38 		}
    37     
    39 		
    38     if ( readCookie('right_sidebar') == 'collapsed' )
    40 		if ( readCookie('right_sidebar') == 'collapsed' && document.getElementById('enanium_sidebar_right') )
    39     {
    41 		{
    40       document.getElementById('enanium_sidebar_right').style.display = 'none';
    42 			document.getElementById('enanium_sidebar_right').style.display = 'none';
    41       document.getElementById('enanium_sidebar_right_hidden').style.display = 'block';
    43 			document.getElementById('enanium_sidebar_right_hidden').style.display = 'block';
    42     }
    44 		}
    43   });
    45 	});
    44 
    46 
    45 // Inline rename
    47 // Inline rename
    46 
    48 
    47 function ajaxRenameInline()
    49 function ajaxRenameInline()
    48 {
    50 {
    49   if ( KILL_SWITCH || IE )
    51 	if ( KILL_SWITCH || IE )
    50     return false;
    52 		return false;
    51   // This trick is _so_ vBulletin...
    53 	// This trick is _so_ vBulletin...
    52   elem = document.getElementById('h2PageName');
    54 	elem = document.getElementById('h2PageName');
    53   if(!elem) return;
    55 	if(!elem) return;
    54   elem.style.display = 'none';
    56 	elem.style.display = 'none';
    55   name = elem.firstChild.nodeValue;
    57 	name = elem.firstChild.nodeValue;
    56   textbox = document.createElement('input');
    58 	textbox = document.createElement('input');
    57   textbox.type = 'text';
    59 	textbox.type = 'text';
    58   textbox.value = name;
    60 	textbox.value = name;
    59   textbox.id = 'pageheading';
    61 	textbox.id = 'pageheading';
    60   textbox.size = name.length + 7;
    62 	textbox.size = name.length + 7;
    61   textbox.onkeyup = function(e) { if(!e) return; if(e.keyCode == 13) ajaxRenameInlineSave(); if(e.keyCode == 27) ajaxRenameInlineCancel(); };
    63 	textbox.onkeyup = function(e) { if(!e) return; if(e.keyCode == 13) ajaxRenameInlineSave(); if(e.keyCode == 27) ajaxRenameInlineCancel(); };
    62   textbox.oldname = name;
    64 	textbox.oldname = name;
    63   elem.parentNode.insertBefore(textbox, elem);
    65 	elem.parentNode.insertBefore(textbox, elem);
    64   document.onclick = ajaxRenameInlineCancel;
    66 	document.onclick = ajaxRenameInlineCancel;
    65   
    67 	
    66   load_component(['l10n', 'fadefilter', 'messagebox']);
    68 	load_component(['l10n', 'fadefilter', 'messagebox']);
    67   textbox.focus();
    69 	textbox.focus();
    68   textbox.select();
    70 	textbox.select();
    69 }
    71 }
    70 
    72 
    71 function ajaxRenameInlineSave()
    73 function ajaxRenameInlineSave()
    72 {
    74 {
    73   elem1 = document.getElementById('h2PageName');
    75 	elem1 = document.getElementById('h2PageName');
    74   elem2 = document.getElementById('pageheading');
    76 	elem2 = document.getElementById('pageheading');
    75   if(!elem1 || !elem2) return;
    77 	if(!elem1 || !elem2) return;
    76   value = elem2.value;
    78 	value = elem2.value;
    77   elem2.parentNode.removeChild(elem2); // just destroy the thing
    79 	elem2.parentNode.removeChild(elem2); // just destroy the thing
    78   elem1.removeChild(elem1.firstChild);
    80 	elem1.removeChild(elem1.firstChild);
    79   elem1.appendChild(document.createTextNode(value));
    81 	elem1.appendChild(document.createTextNode(value));
    80   elem1.style.display = 'block';
    82 	elem1.style.display = 'block';
    81   if(!value || value=='' || value==elem2.oldname) return;
    83 	if(!value || value=='' || value==elem2.oldname) return;
    82   setAjaxLoading();
    84 	setAjaxLoading();
    83   ajaxPost(stdAjaxPrefix+'&_mode=rename', 'newtitle='+ajaxEscape(value), function() {
    85 	ajaxPost(stdAjaxPrefix+'&_mode=rename', 'newtitle='+ajaxEscape(value), function() {
    84     if ( ajax.readyState == 4 )
    86 		if ( ajax.readyState == 4 )
    85     {
    87 		{
    86       unsetAjaxLoading();
    88 			unsetAjaxLoading();
    87       var response = String(ajax.responseText);
    89 			var response = String(ajax.responseText);
    88       if ( !check_json_response(response) )
    90 			if ( !check_json_response(response) )
    89       {
    91 			{
    90         handle_invalid_json(response);
    92 				handle_invalid_json(response);
    91         return false;
    93 				return false;
    92       }
    94 			}
    93       response = parseJSON(response);
    95 			response = parseJSON(response);
    94       if ( response.success )
    96 			if ( response.success )
    95       {
    97 			{
    96         new MessageBox( MB_OK|MB_ICONINFORMATION, $lang.get('ajax_rename_success_title'), $lang.get('ajax_rename_success_body', { page_name_new: value }) );
    98 				new MessageBox( MB_OK|MB_ICONINFORMATION, $lang.get('ajax_rename_success_title'), $lang.get('ajax_rename_success_body', { page_name_new: value }) );
    97       }
    99 			}
    98       else
   100 			else
    99       {
   101 			{
   100         alert(response.error);
   102 				alert(response.error);
   101       }
   103 			}
   102     }
   104 		}
   103   });
   105 	});
   104 }
   106 }
   105 
   107 
   106 function ajaxRenameInlineCancel(e)
   108 function ajaxRenameInlineCancel(e)
   107 {
   109 {
   108   if ( typeof(e) != 'object' && IE )
   110 	if ( typeof(e) != 'object' && IE )
   109     e = window.event;
   111 		e = window.event;
   110   elem1 = document.getElementById('h2PageName');
   112 	elem1 = document.getElementById('h2PageName');
   111   elem2 = document.getElementById('pageheading');
   113 	elem2 = document.getElementById('pageheading');
   112   if(!elem1 || !elem2) return;
   114 	if(!elem1 || !elem2) return;
   113   if ( typeof(e) == 'object' && e.target )
   115 	if ( typeof(e) == 'object' && e.target )
   114   {
   116 	{
   115     if(e.target == elem2)
   117 		if(e.target == elem2)
   116       return;
   118 			return;
   117   }
   119 	}
   118   //value = elem2.value;
   120 	//value = elem2.value;
   119   elem2.parentNode.removeChild(elem2); // just destroy the thing
   121 	elem2.parentNode.removeChild(elem2); // just destroy the thing
   120   //elem1.innerHTML = value;
   122 	//elem1.innerHTML = value;
   121   elem1.style.display = 'block';
   123 	elem1.style.display = 'block';
   122   document.onclick = null;
   124 	document.onclick = null;
   123 }
   125 }
   124 
   126 
   125 if ( window.auth_rename )
   127 if ( window.auth_rename )
   126 {
   128 {
   127   addOnloadHook(function()
   129 	addOnloadHook(function()
   128     {
   130 		{
   129       var h2 = document.getElementById('h2PageName');
   131 			var h2 = document.getElementById('h2PageName');
   130       if ( h2 )
   132 			if ( h2 )
   131       {
   133 			{
   132         h2.ondblclick = function()
   134 				h2.ondblclick = function()
   133         {
   135 				{
   134           ajaxRenameInline();
   136 					ajaxRenameInline();
   135         }
   137 				}
   136       }
   138 			}
   137     });
   139 		});
   138 }
   140 }