From d81f562b712f2387fa02290bf2ca86392ab356f2 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Wed, 11 Oct 2006 20:21:25 +0000 Subject: Aktualisierung auf Version 1.8.1 --- skins/common/ajax.js | 209 ++++++++++-------------- skins/common/ajaxsearch.js | 104 ++++++++++++ skins/common/common.css | 48 +++++- skins/common/images/Arr_u.png | Bin 0 -> 1044 bytes skins/common/images/arrow_disabled_first_25.png | Bin 0 -> 481 bytes skins/common/images/arrow_disabled_last_25.png | Bin 0 -> 480 bytes skins/common/images/arrow_disabled_left_25.png | Bin 0 -> 460 bytes skins/common/images/arrow_disabled_right_25.png | Bin 0 -> 447 bytes skins/common/images/arrow_first.svg | 85 ++++++++++ skins/common/images/arrow_first_25.png | Bin 0 -> 482 bytes skins/common/images/arrow_last_25.png | Bin 0 -> 484 bytes skins/common/images/arrow_left.svg | 78 +++++++++ skins/common/images/arrow_left_25.png | Bin 0 -> 462 bytes skins/common/images/arrow_right_25.png | Bin 0 -> 449 bytes skins/common/protect.js | 3 + skins/common/wikibits.js | 20 ++- 16 files changed, 422 insertions(+), 125 deletions(-) create mode 100644 skins/common/ajaxsearch.js create mode 100644 skins/common/images/Arr_u.png create mode 100644 skins/common/images/arrow_disabled_first_25.png create mode 100644 skins/common/images/arrow_disabled_last_25.png create mode 100644 skins/common/images/arrow_disabled_left_25.png create mode 100644 skins/common/images/arrow_disabled_right_25.png create mode 100644 skins/common/images/arrow_first.svg create mode 100644 skins/common/images/arrow_first_25.png create mode 100644 skins/common/images/arrow_last_25.png create mode 100644 skins/common/images/arrow_left.svg create mode 100644 skins/common/images/arrow_left_25.png create mode 100644 skins/common/images/arrow_right_25.png (limited to 'skins/common') diff --git a/skins/common/ajax.js b/skins/common/ajax.js index 90676548..6cc652b3 100644 --- a/skins/common/ajax.js +++ b/skins/common/ajax.js @@ -3,18 +3,38 @@ var sajax_debug_mode = false; var sajax_request_type = "GET"; -var started; -var typing; -var memory=null; -var body=null; -var oldbody=null; - +/** +* if sajax_debug_mode is true, this function outputs given the message into +* the element with id = sajax_debug; if no such element exists in the document, +* it is injected. +*/ function sajax_debug(text) { - if (sajax_debug_mode) - alert("RSD: " + text) + if (!sajax_debug_mode) return false; + + var e= document.getElementById('sajax_debug'); + + if (!e) { + e= document.createElement("p"); + e.className= 'sajax_debug'; + e.id= 'sajax_debug'; + + var b= document.getElementsByTagName("body")[0]; + + if (b.firstChild) b.insertBefore(e, b.firstChild); + else b.appendChild(e); + } + + var m= document.createElement("div"); + m.appendChild( document.createTextNode( text ) ); + + e.appendChild( m ); + + return true; } - +/** +* compatibility wrapper for creating a new XMLHttpRequest object. +*/ function sajax_init_object() { sajax_debug("sajax_init_object() called..") var A; @@ -31,30 +51,51 @@ function sajax_init_object() { A = new XMLHttpRequest(); if (!A) sajax_debug("Could not create connection object."); + return A; } - -function sajax_do_call(func_name, args) { +/** +* Perform an ajax call to mediawiki. Calls are handeled by AjaxDispatcher.php +* func_name - the name of the function to call. Must be registered in $wgAjaxExportList +* args - an array of arguments to that function +* target - the target that will handle the result of the call. If this is a function, +* if will be called with the XMLHttpRequest as a parameter; if it's an input +* element, its value will be set to the resultText; if it's another type of +* element, its innerHTML will be set to the resultText. +* +* Example: +* sajax_do_call('doFoo', [1, 2, 3], document.getElementById("showFoo")); +* +* This will call the doFoo function via MediaWiki's AjaxDispatcher, with +* (1, 2, 3) as the parameter list, and will show the result in the element +* with id = showFoo +*/ +function sajax_do_call(func_name, args, target) { var i, x, n; var uri; var post_data; uri = wgServer + "/" + wgScriptPath + "/index.php?action=ajax"; if (sajax_request_type == "GET") { if (uri.indexOf("?") == -1) - uri = uri + "?rs=" + escape(func_name); + uri = uri + "?rs=" + encodeURIComponent(func_name); else - uri = uri + "&rs=" + escape(func_name); - for (i = 0; i < args.length-1; i++) - uri = uri + "&rsargs[]=" + escape(args[i]); + uri = uri + "&rs=" + encodeURIComponent(func_name); + for (i = 0; i < args.length; i++) + uri = uri + "&rsargs[]=" + encodeURIComponent(args[i]); //uri = uri + "&rsrnd=" + new Date().getTime(); post_data = null; } else { - post_data = "rs=" + escape(func_name); - for (i = 0; i < args.length-1; i++) - post_data = post_data + "&rsargs[]=" + escape(args[i]); + post_data = "rs=" + encodeURIComponent(func_name); + for (i = 0; i < args.length; i++) + post_data = post_data + "&rsargs[]=" + encodeURIComponent(args[i]); } x = sajax_init_object(); + if (!x) { + alert("AJAX not supported"); + return false; + } + x.open(sajax_request_type, uri, true); if (sajax_request_type == "POST") { x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); @@ -65,113 +106,37 @@ function sajax_do_call(func_name, args) { x.onreadystatechange = function() { if (x.readyState != 4) return; - sajax_debug("received " + x.responseText); - var status; - var data; - status = x.responseText.charAt(0); - data = x.responseText.substring(2); - if (status == "-") - alert("Error: " + data); - else - args[args.length-1](data); + + sajax_debug("received (" + x.status + " " + x.statusText + ") " + x.responseText); + + //if (x.status != 200) + // alert("Error: " + x.status + " " + x.statusText + ": " + x.responseText); + //else + + if ( typeof( target ) == 'function' ) { + target( x ); + } + else if ( typeof( target ) == 'object' ) { + if ( target.tagName == 'INPUT' ) { + if (x.status == 200) target.value= x.responseText; + //else alert("Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")"); + } + else { + if (x.status == 200) target.innerHTML = x.responseText; + else target.innerHTML= "
Error: " + x.status + " " + x.statusText + " (" + x.responseText + ")
"; + } + } + else { + alert("bad target for sajax_do_call: not a function or object: " + target); + } + + return; } + + sajax_debug(func_name + " uri = " + uri + " / post = " + post_data); x.send(post_data); - sajax_debug(func_name + " uri = " + uri + "/post = " + post_data); sajax_debug(func_name + " waiting.."); delete x; -} - -// Remove the typing barrier to allow call() to complete -function Search_doneTyping() -{ - typing=false; -} - -// Wait 500ms to run call() -function Searching_Go() -{ - setTimeout("Searching_Call()", 500); -} - -// If the user is typing wait until they are done. -function Search_Typing() { - started=true; - typing=true; - window.status = "Waiting until you're done typing..."; - setTimeout("Search_doneTyping()", 500); - - // I believe these are needed by IE for when the users press return? - if (window.event) - { - if (event.keyCode == 13) - { - event.cancelBubble = true; - event.returnValue = false; - } - } -} - -// Set the body div to the results -function Searching_SetResult(result) -{ - //body.innerHTML = result; - t = document.getElementById("searchTarget"); - if ( t == null ) { - oldbody=body.innerHTML; - body.innerHTML= '
' ; - t = document.getElementById("searchTarget"); - } - t.innerHTML = result; - t.style.display='block'; -} - -function Searching_Hide_Results() -{ - t = document.getElementById("searchTarget"); - t.style.display='none'; - body.innerHTML = oldbody; -} - - -// This will call the php function that will eventually -// return a results table -function Searching_Call() -{ - var x; - Searching_Go(); - - //Don't proceed if user is typing - if (typing) - return; - - x = document.getElementById("searchInput").value; - - // Don't search again if the query is the same - if (x==memory) - return; - - memory=x; - if (started) { - // Don't search for blank or < 3 chars. - if ((x=="") || (x.length < 3)) - { - return; - } - x_wfSajaxSearch(x, Searching_SetResult); - } -} - -function x_wfSajaxSearch() { - sajax_do_call( "wfSajaxSearch", x_wfSajaxSearch.arguments ); -} - -//Initialize -function sajax_onload() { - x = document.getElementById( 'searchInput' ); - x.onkeypress= function() { Search_Typing(); }; - Searching_Go(); - body = document.getElementById("content"); + return true; } - -hookEvent("load", sajax_onload); diff --git a/skins/common/ajaxsearch.js b/skins/common/ajaxsearch.js new file mode 100644 index 00000000..e6ea31ab --- /dev/null +++ b/skins/common/ajaxsearch.js @@ -0,0 +1,104 @@ +// remote scripting library +// (c) copyright 2005 modernmethod, inc + +var started; +var typing; +var memory=null; +var body=null; +var oldbody=null; + +// Remove the typing barrier to allow call() to complete +function Search_doneTyping() +{ + typing=false; +} + +// Wait 500ms to run call() +function Searching_Go() +{ + setTimeout("Searching_Call()", 500); +} + +// If the user is typing wait until they are done. +function Search_Typing() { + started=true; + typing=true; + window.status = "Waiting until you're done typing..."; + setTimeout("Search_doneTyping()", 500); + + // I believe these are needed by IE for when the users press return? + if (window.event) + { + if (event.keyCode == 13) + { + event.cancelBubble = true; + event.returnValue = false; + } + } +} + +// Set the body div to the results +function Searching_SetResult( request ) +{ + if ( request.status != 200 ) { + alert("Error: " + request.status + " " + request.statusText + ": " + request.responseText); + return; + } + + var result = request.responseText; + + //body.innerHTML = result; + t = document.getElementById("searchTarget"); + if ( t == null ) { + oldbody=body.innerHTML; + body.innerHTML= '
' ; + t = document.getElementById("searchTarget"); + } + t.innerHTML = result; + t.style.display='block'; +} + +function Searching_Hide_Results() +{ + t = document.getElementById("searchTarget"); + t.style.display='none'; + body.innerHTML = oldbody; +} + + +// This will call the php function that will eventually +// return a results table +function Searching_Call() +{ + var x; + Searching_Go(); + + //Don't proceed if user is typing + if (typing) + return; + + x = document.getElementById("searchInput").value; + + // Don't search again if the query is the same + if (x==memory) + return; + + memory=x; + if (started) { + // Don't search for blank or < 3 chars. + if ((x=="") || (x.length < 3)) + { + return; + } + + sajax_do_call( "wfSajaxSearch", [ x ], Searching_SetResult ); + } +} + +//Initialize +function sajax_onload() { + x = document.getElementById( 'searchInput' ); + x.onkeypress= function() { Search_Typing(); }; + Searching_Go(); + body = document.getElementById("content"); +} diff --git a/skins/common/common.css b/skins/common/common.css index 09409fd6..e630b77e 100644 --- a/skins/common/common.css +++ b/skins/common/common.css @@ -383,4 +383,50 @@ table.collapsed tr.collapsable { table.gallery td.galleryheader { text-align: center; font-weight: bold; -} \ No newline at end of file +} + +div.multipageimagenavbox { + border: solid 1px silver; + padding: 4px; + margin: 1em; + -moz-border-radius: 6px; + background: #f0f0f0; +} + +div.multipageimagenavbox div.thumb { + border: none; + margin-left: 2em; + margin-right: 2em; +} + +div.multipageimagenavbox hr { + margin: 6px; +} + +table.multipageimage td { + text-align: center; +} + +/* + Table pager (e.g. Special:Imagelist) + - remove underlines from the navigation link + - collapse borders + - set the borders to outsets (similar to Special:Allmessages) + - remove line wrapping for all td and th, set background color + - restore line wrapping for the last two table cells (description and size) +*/ +.TablePager_nav a { text-decoration: none; } +.TablePager { border-collapse: collapse; } +.TablePager, .TablePager td, .TablePager th { + border: 0.15em solid #777777; + padding: 0 0.15em 0 0.15em; +} +.TablePager th { background-color: #eeeeff } +.TablePager td { background-color: #ffffff } +.TablePager tr:hover td { background-color: #eeeeff } + +.imagelist td, .imagelist th { white-space: nowrap } +.imagelist .TablePager_col_links { background-color: #eeeeff } +.imagelist .TablePager_col_img_description { white-space: normal } +.imagelist th.TablePager_sort { background-color: #ccccff } + diff --git a/skins/common/images/Arr_u.png b/skins/common/images/Arr_u.png new file mode 100644 index 00000000..b8e3b6c6 Binary files /dev/null and b/skins/common/images/Arr_u.png differ diff --git a/skins/common/images/arrow_disabled_first_25.png b/skins/common/images/arrow_disabled_first_25.png new file mode 100644 index 00000000..aaa4bec4 Binary files /dev/null and b/skins/common/images/arrow_disabled_first_25.png differ diff --git a/skins/common/images/arrow_disabled_last_25.png b/skins/common/images/arrow_disabled_last_25.png new file mode 100644 index 00000000..7882fd8c Binary files /dev/null and b/skins/common/images/arrow_disabled_last_25.png differ diff --git a/skins/common/images/arrow_disabled_left_25.png b/skins/common/images/arrow_disabled_left_25.png new file mode 100644 index 00000000..e0c30042 Binary files /dev/null and b/skins/common/images/arrow_disabled_left_25.png differ diff --git a/skins/common/images/arrow_disabled_right_25.png b/skins/common/images/arrow_disabled_right_25.png new file mode 100644 index 00000000..bfec3e24 Binary files /dev/null and b/skins/common/images/arrow_disabled_right_25.png differ diff --git a/skins/common/images/arrow_first.svg b/skins/common/images/arrow_first.svg new file mode 100644 index 00000000..c1d8e364 --- /dev/null +++ b/skins/common/images/arrow_first.svg @@ -0,0 +1,85 @@ + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/skins/common/images/arrow_first_25.png b/skins/common/images/arrow_first_25.png new file mode 100644 index 00000000..b6351c50 Binary files /dev/null and b/skins/common/images/arrow_first_25.png differ diff --git a/skins/common/images/arrow_last_25.png b/skins/common/images/arrow_last_25.png new file mode 100644 index 00000000..d416ab39 Binary files /dev/null and b/skins/common/images/arrow_last_25.png differ diff --git a/skins/common/images/arrow_left.svg b/skins/common/images/arrow_left.svg new file mode 100644 index 00000000..bd4bbc74 --- /dev/null +++ b/skins/common/images/arrow_left.svg @@ -0,0 +1,78 @@ + + + + + + + + + image/svg+xml + + + + + + + + diff --git a/skins/common/images/arrow_left_25.png b/skins/common/images/arrow_left_25.png new file mode 100644 index 00000000..fd05fa6f Binary files /dev/null and b/skins/common/images/arrow_left_25.png differ diff --git a/skins/common/images/arrow_right_25.png b/skins/common/images/arrow_right_25.png new file mode 100644 index 00000000..cf1845c6 Binary files /dev/null and b/skins/common/images/arrow_right_25.png differ diff --git a/skins/common/protect.js b/skins/common/protect.js index a144e5eb..4baa5e4c 100644 --- a/skins/common/protect.js +++ b/skins/common/protect.js @@ -18,6 +18,9 @@ function protectInitialize(tableId, labelText) { check.onclick = protectChainUpdate; col2.appendChild(check); + var space = document.createTextNode(" "); + col2.appendChild(space); + var label = document.createElement('label'); label.setAttribute("for", "mwProtectUnchained"); label.appendChild(document.createTextNode(labelText)); diff --git a/skins/common/wikibits.js b/skins/common/wikibits.js index d95c4dcc..3a8fd6c6 100644 --- a/skins/common/wikibits.js +++ b/skins/common/wikibits.js @@ -49,6 +49,8 @@ function hookEvent(hookName, hookFunct) { attachEvent("on" + hookName, hookFunct); } +//note: all skins shoud call runOnloadHook() at the end of html output, +// so the below should be redundant. It's there just in case. hookEvent("load", runOnloadHook); // document.write special stylesheet links @@ -610,10 +612,24 @@ function checkboxMouseupHandler(e) { return true; } -function fillDestFilename() { +function toggle_element_activation(ida,idb) { if (!document.getElementById) return; - var path = document.getElementById('wpUploadFile').value; + document.getElementById(ida).disabled=true; + document.getElementById(idb).disabled=false; +} + +function toggle_element_check(ida,idb) { + if (!document.getElementById) + return; + document.getElementById(ida).checked=true; + document.getElementById(idb).checked=false; +} + +function fillDestFilename(id) { + if (!document.getElementById) + return; + var path = document.getElementById(id).value; // Find trailing part var slash = path.lastIndexOf('/'); var backslash = path.lastIndexOf('\\'); -- cgit v1.2.2