summaryrefslogtreecommitdiff
path: root/skins
diff options
context:
space:
mode:
Diffstat (limited to 'skins')
-rw-r--r--skins/ArchLinux.deps.php3
-rw-r--r--skins/ArchLinux.php13
-rw-r--r--skins/Chick.deps.php4
-rw-r--r--skins/Chick.php2
-rw-r--r--skins/CologneBlue.php2
-rw-r--r--skins/MonoBook.deps.php4
-rw-r--r--skins/MonoBook.php11
-rw-r--r--skins/MySkin.deps.php4
-rw-r--r--skins/MySkin.php2
-rw-r--r--skins/Nostalgia.php2
-rw-r--r--skins/Simple.deps.php4
-rw-r--r--skins/Simple.php2
-rw-r--r--skins/Standard.php6
-rw-r--r--skins/archlinux/Opera95Fixes.css10
-rw-r--r--skins/archlinux/main.css641
-rw-r--r--skins/archlinux/rtl.css12
-rw-r--r--skins/chick/main.css39
-rw-r--r--skins/common/ajax.js21
-rw-r--r--skins/common/ajaxwatch.js99
-rw-r--r--skins/common/block.js16
-rw-r--r--skins/common/cologneblue.css13
-rw-r--r--skins/common/commonPrint.css3
-rw-r--r--skins/common/common_rtl.css9
-rw-r--r--skins/common/diff.css74
-rw-r--r--skins/common/diff.js20
-rw-r--r--skins/common/images/spinner.gifbin0 -> 2285 bytes
-rw-r--r--skins/common/oldshared.css465
-rw-r--r--skins/common/protect.js172
-rw-r--r--skins/common/shared.css48
-rw-r--r--skins/common/upload.js175
-rw-r--r--skins/common/wikibits.js292
-rw-r--r--skins/disabled/HTMLDump.php2
-rw-r--r--skins/disabled/MonoBook.tpl2
-rw-r--r--skins/disabled/MonoBookCBT.php2
-rw-r--r--skins/monobook/Opera95Fixes.css10
-rw-r--r--skins/monobook/main.css637
-rw-r--r--skins/monobook/rtl.css8
-rw-r--r--skins/monobook/user.gifbin932 -> 923 bytes
-rw-r--r--skins/simple/main.css28
39 files changed, 1860 insertions, 997 deletions
diff --git a/skins/ArchLinux.deps.php b/skins/ArchLinux.deps.php
index afc41392..e36d7f48 100644
--- a/skins/ArchLinux.deps.php
+++ b/skins/ArchLinux.deps.php
@@ -8,5 +8,4 @@
if ( ! defined( 'MEDIAWIKI' ) )
die( 1 );
-require_once('includes/SkinTemplate.php');
-?> \ No newline at end of file
+require_once( dirname( dirname( __FILE__ ) ) . '/includes/SkinTemplate.php');
diff --git a/skins/ArchLinux.php b/skins/ArchLinux.php
index dcf57fd7..2b6bda72 100644
--- a/skins/ArchLinux.php
+++ b/skins/ArchLinux.php
@@ -13,9 +13,6 @@
if( !defined( 'MEDIAWIKI' ) )
die( -1 );
-/** */
-require_once('includes/SkinTemplate.php');
-
/**
* Inherit main code from SkinTemplate, set the CSS and template filter.
* @todo document
@@ -51,7 +48,7 @@ class ArchLinuxTemplate extends QuickTemplate {
wfSuppressWarnings();
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
+<html xmlns="<?php $this->text('xhtmldefaultnamespace') ?>" <?php
foreach($this->data['xhtmlnamespaces'] as $tag => $ns) {
?>xmlns:<?php echo "{$tag}=\"{$ns}\" ";
} ?>xml:lang="<?php $this->text('lang') ?>" lang="<?php $this->text('lang') ?>" dir="<?php $this->text('dir') ?>">
@@ -59,9 +56,11 @@ class ArchLinuxTemplate extends QuickTemplate {
<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
<?php $this->html('headlinks') ?>
<title>archlinux.de :: <?php $this->text('pagetitle') ?></title>
- <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/main.css?<?php echo $GLOBALS['wgStyleVersion'] ?>"; /*]]>*/</style>
+ <style type="text/css" media="screen, projection">/*<![CDATA[*/
+ @import "<?php $this->text('stylepath') ?>/common/shared.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";
+ @import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/main.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";
+ /*]]>*/</style>
<link rel="stylesheet" type="text/css" <?php if(empty($this->data['printable']) ) { ?>media="print"<?php } ?> href="<?php $this->text('stylepath') ?>/common/commonPrint.css?<?php echo $GLOBALS['wgStyleVersion'] ?>" />
- <link rel="stylesheet" type="text/css" media="handheld" href="<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/handheld.css?<?php echo $GLOBALS['wgStyleVersion'] ?>" />
<!--[if lt IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE50Fixes.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";</style><![endif]-->
<!--[if IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE55Fixes.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";</style><![endif]-->
<!--[if IE 6]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE60Fixes.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";</style><![endif]-->
@@ -241,7 +240,7 @@ class ArchLinuxTemplate extends QuickTemplate {
<?php } ?></li><?php
}
- foreach( array('contributions', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
+ foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
if($this->data['nav_urls'][$special]) {
?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
diff --git a/skins/Chick.deps.php b/skins/Chick.deps.php
index 54614c49..e49e95e7 100644
--- a/skins/Chick.deps.php
+++ b/skins/Chick.deps.php
@@ -8,6 +8,6 @@
if ( ! defined( 'MEDIAWIKI' ) )
die( 1 );
-require_once('includes/SkinTemplate.php');
+require_once( dirname( dirname( __FILE__ ) ) . '/includes/SkinTemplate.php');
require_once( dirname(__FILE__) . '/MonoBook.php' );
-?>
+
diff --git a/skins/Chick.php b/skins/Chick.php
index 9721900c..30993b77 100644
--- a/skins/Chick.php
+++ b/skins/Chick.php
@@ -25,4 +25,4 @@ class SkinChick extends SkinTemplate {
}
}
-?>
+
diff --git a/skins/CologneBlue.php b/skins/CologneBlue.php
index b066a1ac..f33c34f4 100644
--- a/skins/CologneBlue.php
+++ b/skins/CologneBlue.php
@@ -309,4 +309,4 @@ class SkinCologneBlue extends Skin {
}
}
-?>
+
diff --git a/skins/MonoBook.deps.php b/skins/MonoBook.deps.php
index b054c840..f53f1743 100644
--- a/skins/MonoBook.deps.php
+++ b/skins/MonoBook.deps.php
@@ -8,5 +8,5 @@
if ( ! defined( 'MEDIAWIKI' ) )
die( 1 );
-require_once('includes/SkinTemplate.php');
-?>
+require_once( dirname( dirname( __FILE__ ) ) . '/includes/SkinTemplate.php');
+
diff --git a/skins/MonoBook.php b/skins/MonoBook.php
index 50d7f00f..398d3f7c 100644
--- a/skins/MonoBook.php
+++ b/skins/MonoBook.php
@@ -12,9 +12,6 @@
if( !defined( 'MEDIAWIKI' ) )
die( -1 );
-/** */
-require_once('includes/SkinTemplate.php');
-
/**
* Inherit main code from SkinTemplate, set the CSS and template filter.
* @todo document
@@ -59,9 +56,11 @@ class MonoBookTemplate extends QuickTemplate {
<meta http-equiv="Content-Type" content="<?php $this->text('mimetype') ?>; charset=<?php $this->text('charset') ?>" />
<?php $this->html('headlinks') ?>
<title><?php $this->text('pagetitle') ?></title>
- <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/main.css?<?php echo $GLOBALS['wgStyleVersion'] ?>"; /*]]>*/</style>
+ <style type="text/css" media="screen, projection">/*<![CDATA[*/
+ @import "<?php $this->text('stylepath') ?>/common/shared.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";
+ @import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/main.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";
+ /*]]>*/</style>
<link rel="stylesheet" type="text/css" <?php if(empty($this->data['printable']) ) { ?>media="print"<?php } ?> href="<?php $this->text('stylepath') ?>/common/commonPrint.css?<?php echo $GLOBALS['wgStyleVersion'] ?>" />
- <link rel="stylesheet" type="text/css" media="handheld" href="<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/handheld.css?<?php echo $GLOBALS['wgStyleVersion'] ?>" />
<!--[if lt IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE50Fixes.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";</style><![endif]-->
<!--[if IE 5.5000]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE55Fixes.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";</style><![endif]-->
<!--[if IE 6]><style type="text/css">@import "<?php $this->text('stylepath') ?>/<?php $this->text('stylename') ?>/IE60Fixes.css?<?php echo $GLOBALS['wgStyleVersion'] ?>";</style><![endif]-->
@@ -203,7 +202,7 @@ class MonoBookTemplate extends QuickTemplate {
<?php } ?></li><?php
}
- foreach( array('contributions', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
+ foreach( array('contributions', 'log', 'blockip', 'emailuser', 'upload', 'specialpages') as $special ) {
if($this->data['nav_urls'][$special]) {
?><li id="t-<?php echo $special ?>"><a href="<?php echo htmlspecialchars($this->data['nav_urls'][$special]['href'])
diff --git a/skins/MySkin.deps.php b/skins/MySkin.deps.php
index 633ab558..5e24906d 100644
--- a/skins/MySkin.deps.php
+++ b/skins/MySkin.deps.php
@@ -8,6 +8,6 @@
if ( ! defined( 'MEDIAWIKI' ) )
die( 1 );
-require_once('includes/SkinTemplate.php');
+require_once( dirname( dirname( __FILE__ ) ) . '/includes/SkinTemplate.php');
require_once( dirname(__FILE__) . '/MonoBook.php' );
-?>
+
diff --git a/skins/MySkin.php b/skins/MySkin.php
index 5331e215..837df959 100644
--- a/skins/MySkin.php
+++ b/skins/MySkin.php
@@ -25,4 +25,4 @@ class SkinMySkin extends SkinTemplate {
}
}
-?>
+
diff --git a/skins/Nostalgia.php b/skins/Nostalgia.php
index 1bb180ed..8759659e 100644
--- a/skins/Nostalgia.php
+++ b/skins/Nostalgia.php
@@ -94,4 +94,4 @@ class SkinNostalgia extends Skin {
}
}
-?>
+
diff --git a/skins/Simple.deps.php b/skins/Simple.deps.php
index b7f1f5eb..7603f522 100644
--- a/skins/Simple.deps.php
+++ b/skins/Simple.deps.php
@@ -8,6 +8,6 @@
if ( ! defined( 'MEDIAWIKI' ) )
die( 1 );
-require_once('includes/SkinTemplate.php');
+require_once( dirname( dirname( __FILE__ ) ) . '/includes/SkinTemplate.php');
require_once( dirname(__FILE__) . '/MonoBook.php' );
-?>
+
diff --git a/skins/Simple.php b/skins/Simple.php
index a9c0cc51..b61b6a94 100644
--- a/skins/Simple.php
+++ b/skins/Simple.php
@@ -65,4 +65,4 @@ END;
}
}
-?>
+
diff --git a/skins/Standard.php b/skins/Standard.php
index f79571a5..ed00d59d 100644
--- a/skins/Standard.php
+++ b/skins/Standard.php
@@ -18,10 +18,10 @@ class SkinStandard extends Skin {
/**
*
*/
- function getHeadScripts() {
+ function getHeadScripts( $allowUserJs ) {
global $wgStylePath, $wgJsMimeType, $wgStyleVersion;
- $s = parent::getHeadScripts();
+ $s = parent::getHeadScripts( $allowUserJs );
if ( 3 == $this->qbSetting() ) { # Floating left
$s .= "<script language='javascript' type='$wgJsMimeType' " .
"src='{$wgStylePath}/common/sticky.js?$wgStyleVersion'></script>\n";
@@ -299,4 +299,4 @@ class SkinStandard extends Skin {
}
-?>
+
diff --git a/skins/archlinux/Opera95Fixes.css b/skins/archlinux/Opera95Fixes.css
new file mode 100644
index 00000000..6048c66c
--- /dev/null
+++ b/skins/archlinux/Opera95Fixes.css
@@ -0,0 +1,10 @@
+/**
+ * One tweak for Opera 9.5 carried over from Opera 7. This seems to be exactly
+ * the same rule as is used for #bodyContent a.external normally, why do we
+ * need it? Someone should compare with and without and remove this file en-
+ * tirely if appropriate.
+ */
+#bodyContent a.external {
+ background: url(external.png) center right no-repeat;
+ padding-right: 13px;
+}
diff --git a/skins/archlinux/main.css b/skins/archlinux/main.css
index 7eabb56a..a50f93a3 100644
--- a/skins/archlinux/main.css
+++ b/skins/archlinux/main.css
@@ -8,32 +8,23 @@
** Michael Zeltner and Geir Bækholt)
** All you guys rock :)
*/
-/**
- * Stylesheet for screen/projection. All rules not marked media-specific are
- * shared with handheld.css and should be updated in tandem. The rules can't
- * be in the same file because old browsers like IE5 won't obey @media rules.
- *
- * Rules that are screen/projection-specific are marked with commented-out
- * @media rules and indentation.
- */
-/* @media screen, projection { */
- #column-content {
- width: 100%;
- float: right;
- margin: 0 0 .6em -12.2em;
- padding: 0;
- }
- #content {
- margin: 3px 0 0 12.2em;
- padding: 0 1em 1.5em 1em;
- position: relative;
- z-index: 2;
- }
- #column-one {
- padding-top: 3px;
- }
-/* } */
+#column-content {
+ width: 100%;
+ float: right;
+ margin: 0 0 .6em -12.2em;
+ padding: 0;
+}
+#content {
+ margin: 3px 0 0 12.2em;
+ padding: 0 1em 1.5em 1em;
+ position: relative;
+ z-index: 2;
+}
+#column-one {
+ padding-top: 3px;
+}
+
#content {
background: white;
color: black;
@@ -107,12 +98,11 @@ img {
border: none;
vertical-align: middle;
}
-/* @media screen, projection { */
- p {
- margin: .4em 0 .5em 0;
- line-height: 1.5em;
- }
-/* } */
+
+p {
+ margin: .4em 0 .5em 0;
+ line-height: 1.5em;
+}
p img {
margin: 0;
@@ -152,12 +142,6 @@ h5 .editsection { font-weight: normal; }
h6 { font-size: 80%; }
h6 .editsection { font-size: 125%; font-weight: normal; }
-.editsection {
- float: right;
- margin-left: 5px;
-}
-
-
ul {
line-height: 1.5em;
list-style-type: square;
@@ -249,15 +233,12 @@ pre {
** the main content area
*/
-/* @media screen, projection { */
- #siteSub {
- display: none;
- }
- #jump-to-nav {
- display: none;
- }
-/* } */
-
+#siteSub {
+ display: none;
+}
+#jump-to-nav {
+ display: none;
+}
#contentSub, #contentSub2 {
font-size: 84%;
@@ -506,15 +487,12 @@ div.tleft {
border-width: .5em 1.4em .8em 0;
}
+img.thumbborder {
+ border: 1px solid #dddddd;
+}
+
.hiddenStructure {
display: none;
- speak: none;
-}
-img.tex {
- vertical-align: middle;
-}
-span.texhtml {
- font-family: serif;
}
/*
@@ -594,30 +572,6 @@ div.townBox dl dd {
}
/*
-** Diff rendering
-*/
-table.diff, td.diff-otitle, td.diff-ntitle {
- background-color: white;
-}
-td.diff-addedline {
- background: #cfc;
- font-size: smaller;
-}
-td.diff-deletedline {
- background: #ffa;
- font-size: smaller;
-}
-td.diff-context {
- background: #eee;
- font-size: smaller;
-}
-.diffchange {
- color: red;
- font-weight: bold;
- text-decoration: none;
-}
-
-/*
** keep the whitespace in front of the ^=, hides rule from konqueror
** this is css3, the validator doesn't like it when validating as css2
*/
@@ -763,45 +717,42 @@ special external link styling */
/*
** Logo properties
*/
-/* @media screen, projection { */
- #p-logo {
- top: 0;
- left: 0;
- position: absolute; /*needed to use z-index */
- z-index: 3;
- height: 155px;
- width: 12em;
- overflow: visible;
- }
- #p-logo h5 {
- display: none;
- }
- #p-logo a,
- #p-logo a:hover {
- display: block;
- height: 155px;
- width: 12.2em;
- background-repeat: no-repeat;
- background-position: 35% 50% !important;
- text-decoration: none;
- }
-/* } */
+#p-logo {
+ top: 0;
+ left: 0;
+ position: absolute; /*needed to use z-index */
+ z-index: 3;
+ height: 155px;
+ width: 12em;
+ overflow: visible;
+}
+#p-logo h5 {
+ display: none;
+}
+#p-logo a,
+#p-logo a:hover {
+ display: block;
+ height: 155px;
+ width: 12.2em;
+ background-repeat: no-repeat;
+ background-position: 35% 50% !important;
+ text-decoration: none;
+}
+
/*
** the navigation portlet
*/
-/* @media screen, projection { */
- #p-navigation {
- position: relative;
- z-index: 3;
- }
- #p-navigation a {
- display: block;
- }
- #p-navigation li.active a, #p-navigation li.active a:hover {
- display: inline;
- }
-/* } */
+#p-navigation {
+ position: relative;
+ z-index: 3;
+}
+#p-navigation a {
+ display: block;
+}
+#p-navigation li.active a, #p-navigation li.active a:hover {
+ display: inline;
+}
#p-navigation .pBody {
padding-right: 0;
@@ -816,12 +767,10 @@ special external link styling */
/*
** Search portlet
*/
-/* @media screen, projection { */
- #p-search {
- position: relative;
- z-index: 3;
- }
-/* } */
+#p-search {
+ position: relative;
+ z-index: 3;
+}
input.searchButton {
margin-top: 1px;
@@ -848,82 +797,81 @@ input.searchButton {
/*
** the personal toolbar
*/
-/* @media screen, projection { */
- #p-personal {
- position: absolute;
- left: 0;
- top: 80px;
- z-index: 0;
- }
- #p-personal {
- width: 100%;
- white-space: nowrap;
- padding: 0;
- margin: 0;
- border: none;
- background: none;
- overflow: visible;
- line-height: 1.2em;
- }
- #p-personal h5 {
- display: none;
- }
- #p-personal .portlet,
- #p-personal .pBody {
- z-index: 0;
- padding: 0;
- margin: 0;
- border: none;
- overflow: visible;
- background: none;
- }
+#p-personal {
+ position: absolute;
+ left: 0;
+ top: 80px;
+ z-index: 0;
+}
+#p-personal {
+ width: 100%;
+ white-space: nowrap;
+ padding: 0;
+ margin: 0;
+ border: none;
+ background: none;
+ overflow: visible;
+ line-height: 1.2em;
+}
+#p-personal h5 {
+ display: none;
+}
+#p-personal .portlet,
+#p-personal .pBody {
+ z-index: 0;
+ padding: 0;
+ margin: 0;
+ border: none;
+ overflow: visible;
+ background: none;
+}
/* this is the ul contained in the portlet */
- #p-personal ul {
- border: none;
- line-height: 1.4em;
- color: #2f6fab;
- padding: 0 2em 0 3em;
- margin: 0;
- text-align: right;
- list-style: none;
- z-index: 0;
- background: none;
- cursor: default;
- }
- #p-personal li {
- z-index: 0;
- border: none;
- padding: 0;
- display: inline;
- color: #2f6fab;
- margin-left: 1em;
- line-height: 1.2em;
- background: none;
- }
- #p-personal li a {
- text-decoration: none;
- color: #005896;
- padding-bottom: .2em;
- background: none;
- }
- #p-personal li a:hover {
- background-color: white;
- padding-bottom: .2em;
- text-decoration: none;
- }
- #p-personal li.active a:hover {
- background-color: transparent;
- }
- /* the icon in front of the user name, single quotes
- in bg url to hide it from iemac */
- li#pt-userpage,
- li#pt-anonuserpage,
- li#pt-login {
- background: url(user.gif) top left no-repeat;
- padding-left: 20px;
- text-transform: none;
- }
-/* } */
+#p-personal ul {
+ border: none;
+ line-height: 1.4em;
+ color: #2f6fab;
+ padding: 0 2em 0 3em;
+ margin: 0;
+ text-align: right;
+ list-style: none;
+ z-index: 0;
+ background: none;
+ cursor: default;
+}
+#p-personal li {
+ z-index: 0;
+ border: none;
+ padding: 0;
+ display: inline;
+ color: #2f6fab;
+ margin-left: 1em;
+ line-height: 1.2em;
+ background: none;
+}
+#p-personal li a {
+ text-decoration: none;
+ color: #005896;
+ padding-bottom: .2em;
+ background: none;
+}
+#p-personal li a:hover {
+ background-color: white;
+ padding-bottom: .2em;
+ text-decoration: none;
+}
+#p-personal li.active a:hover {
+ background-color: transparent;
+}
+/* the icon in front of the user name, single quotes
+in bg url to hide it from iemac */
+li#pt-userpage,
+li#pt-anonuserpage,
+li#pt-login {
+ background: url(user.gif) top left no-repeat;
+ padding-left: 20px;
+ text-transform: none;
+}
+
#p-personal ul {
text-transform: lowercase;
}
@@ -933,91 +881,90 @@ input.searchButton {
/*
** the page-related actions- page/talk, edit etc
*/
-/* @media screen, projection { */
- #p-cactions {
- position: absolute;
- top: 137px;
- left: 14.5em;
- margin: 0;
- white-space: nowrap;
- width: 76%;
- line-height: 1.1em;
- overflow: visible;
- background: none;
- border-collapse: collapse;
- padding-left: 1em;
- list-style: none;
- font-size: 95%;
- }
- #p-cactions ul {
- list-style: none;
- }
- #p-cactions li {
- display: inline;
- border: 1px solid #aaa;
- border-bottom: none;
- padding: 0 0 .1em 0;
- margin: 0 .3em 0 0;
- overflow: visible;
- background: white;
- }
- #p-cactions li.selected {
- border-color: #fabd23;
- padding: 0 0 .2em 0;
- font-weight: bold;
- }
- #p-cactions li a {
- background-color: #fbfbfb;
- color: #002bb8;
- border: none;
- padding: 0 .8em .3em;
- position: relative;
- z-index: 0;
- margin: 0;
- text-decoration: none;
- }
- #p-cactions li.selected a {
- z-index: 3;
- padding: 0 1em .2em!important;
- background-color: white;
- }
- #p-cactions .new a {
- color: #ba0000;
- }
- #p-cactions li a:hover {
- z-index: 3;
- text-decoration: none;
- background-color: white;
- }
- #p-cactions h5 {
- display: none;
- }
- #p-cactions li.istalk {
- margin-right: 0;
- }
- #p-cactions li.istalk a {
- padding-right: .5em;
- }
- #p-cactions #ca-addsection a {
- padding-left: .4em;
- padding-right: .4em;
- }
- /* offsets to distinguish the tab groups */
- li#ca-talk {
- margin-right: 1.6em;
- }
- li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {
- margin-left: 1.6em;
- }
- #p-cactions .pBody {
- font-size: 1em;
- background-color: transparent;
- color: inherit;
- border-collapse: inherit;
- border: 0;
- padding: 0;
- }
-/* } */
+#p-cactions {
+ position: absolute;
+ top: 137px;
+ left: 14.5em;
+ margin: 0;
+ white-space: nowrap;
+ width: 76%;
+ line-height: 1.1em;
+ overflow: visible;
+ background: none;
+ border-collapse: collapse;
+ padding-left: 1em;
+ list-style: none;
+ font-size: 95%;
+}
+#p-cactions ul {
+ list-style: none;
+}
+#p-cactions li {
+ display: inline;
+ border: 1px solid #aaa;
+ border-bottom: none;
+ padding: 0 0 .1em 0;
+ margin: 0 .3em 0 0;
+ overflow: visible;
+ background: white;
+}
+#p-cactions li.selected {
+ border-color: #fabd23;
+ padding: 0 0 .2em 0;
+ font-weight: bold;
+}
+#p-cactions li a {
+ background-color: #fbfbfb;
+ color: #002bb8;
+ border: none;
+ padding: 0 .8em .3em;
+ position: relative;
+ z-index: 0;
+ margin: 0;
+ text-decoration: none;
+}
+#p-cactions li.selected a {
+ z-index: 3;
+ padding: 0 1em .2em!important;
+ background-color: white;
+}
+#p-cactions .new a {
+ color: #ba0000;
+}
+#p-cactions li a:hover {
+ z-index: 3;
+ text-decoration: none;
+ background-color: white;
+}
+#p-cactions h5 {
+ display: none;
+}
+#p-cactions li.istalk {
+ margin-right: 0;
+}
+#p-cactions li.istalk a {
+ padding-right: .5em;
+}
+#p-cactions #ca-addsection a {
+ padding-left: .4em;
+ padding-right: .4em;
+}
+/* offsets to distinguish the tab groups */
+li#ca-talk {
+ margin-right: 1.6em;
+}
+li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {
+ margin-left: 1.6em;
+}
+#p-cactions .pBody {
+ font-size: 1em;
+ background-color: transparent;
+ color: inherit;
+ border-collapse: inherit;
+ border: 0;
+ padding: 0;
+}
+
#p-cactions .hiddenStructure {
display: none;
}
@@ -1028,14 +975,11 @@ input.searchButton {
/*
** the remaining portlets
*/
-/* @media screen, projection { */
- #p-tbx,
- #p-lang {
- position: relative;
- z-index: 3;
- }
-/* } */
-
+#p-tbx,
+#p-lang {
+ position: relative;
+ z-index: 3;
+}
/* TODO: #t-iscite is only used by the Cite extension, come up with some
@@ -1085,21 +1029,20 @@ input.searchButton {
#preftoc li { background-color: #f0f0f0;
color: #000;
}
-/* @media screen, projection { */
- #preftoc li {
- margin: 1px -2px 1px 2px;
- float: left;
- padding: 2px 0 3px 0;
- border: 1px solid #fff;
- border-right-color: #716f64;
- border-bottom: 0;
- position: relative;
- white-space: nowrap;
- list-style-type: none;
- list-style-image: none;
- z-index: 3;
- }
-/* } */
+
+#preftoc li {
+ margin: 1px -2px 1px 2px;
+ float: left;
+ padding: 2px 0 3px 0;
+ border: 1px solid #fff;
+ border-right-color: #716f64;
+ border-bottom: 0;
+ position: relative;
+ white-space: nowrap;
+ list-style-type: none;
+ list-style-image: none;
+ z-index: 3;
+}
#preftoc li.selected {
font-weight: bold;
@@ -1153,19 +1096,17 @@ input.searchButton {
.prefsection table, .prefsection legend {
background-color: #F9F9F9;
}
-/* @media screen, projection { */
- .mainLegend {
- display: none;
- }
-/* } */
+
+.mainLegend {
+ display: none;
+}
div.prefsectiontip {
- font-size: 95%;
- margin-top: 0;
- background-color: #FFC1C1;
- padding: .2em .7em;
- clear: both;
+ font-size: x-small;
+ padding: .2em 2em;
+ color: #666;
}
+
.btnSavePrefs {
font-weight: bold;
padding-left: .3em;
@@ -1202,10 +1143,10 @@ div#userlogin form#userlogin2 h2 {
padding-top: 0;
}
-div#userlogin .captcha {
+div#userlogin .captcha,
+div#userloginForm .captcha {
border: 1px solid #bbb;
padding: 1.5em 2em;
- width: 400px;
background-color: white;
}
@@ -1228,29 +1169,27 @@ div#userlogin .captcha {
font-weight: bold;
}
-/* @media screen, projection { */
- /*
- ** IE/Mac fixes, hope to find a validating way to move this
- ** to a separate stylesheet. This would work but doesn't validate:
- ** @import("IEMacFixes.css");
- */
- /* tabs: border on the a, not the div */
- * > html #p-cactions li { border: none; }
- * > html #p-cactions li a {
- border: 1px solid #aaa;
- border-bottom: none;
- }
- * > html #p-cactions li.selected a { border-color: #fabd23; }
- /* footer icons need a fixed width */
- * > html #f-poweredbyico,
- * > html #f-copyrightico { width: 88px; }
- * > html #bodyContent,
- * > html #bodyContent pre {
- overflow-x: auto;
- width: 100%;
- padding-bottom: 25px;
- }
-/* } */
+/*
+** IE/Mac fixes, hope to find a validating way to move this
+** to a separate stylesheet. This would work but doesn't validate:
+** @import("IEMacFixes.css");
+*/
+/* tabs: border on the a, not the div */
+* > html #p-cactions li { border: none; }
+* > html #p-cactions li a {
+ border: 1px solid #aaa;
+ border-bottom: none;
+}
+* > html #p-cactions li.selected a { border-color: #fabd23; }
+/* footer icons need a fixed width */
+* > html #f-poweredbyico,
+* > html #f-copyrightico { width: 88px; }
+* > html #bodyContent,
+* > html #bodyContent pre {
+ overflow-x: auto;
+ width: 100%;
+ padding-bottom: 25px;
+}
/* more IE fixes */
@@ -1347,6 +1286,7 @@ div.gallerybox div.thumb {
}
div.gallerytext {
+ overflow: hidden;
font-size: 94%;
padding: 2px 4px;
}
@@ -1614,7 +1554,7 @@ tr.sv-space td { display: none; }
*/
.TablePager_nav a { text-decoration: none; }
.TablePager { border-collapse: collapse; }
-.TablePager, .TablePager td, .TablePager th {
+.TablePager, .TablePager td, .TablePager th {
border: 1px solid #aaaaaa;
padding: 0 0.15em 0 0.15em;
}
@@ -1632,3 +1572,30 @@ tr.sv-space td { display: none; }
.mw-summary-preview {
margin: 0.1em 0;
}
+
+/* Friendlier slave lag warnings */
+div.mw-lag-warn-normal,
+div.mw-lag-warn-high {
+ padding: 3px;
+ text-align: center;
+ margin: 3px auto;
+}
+div.mw-lag-warn-normal {
+ border: 1px solid #FFCC66;
+ background-color: #FFFFCC;
+}
+div.mw-lag-warn-high {
+ font-weight: bold;
+ border: 2px solid #FF0033;
+ background-color: #FFCCCC;
+}
+
+/* Recreating-deleted-page warning and log entries */
+div#mw-recreate-deleted-warn {
+ padding: 3px;
+ margin-bottom: 3px;
+ border: 2px solid #2F6FAB;
+}
+div#mw-recreate-deleted-warn ul li {
+ font-size: 90%;
+} \ No newline at end of file
diff --git a/skins/archlinux/rtl.css b/skins/archlinux/rtl.css
index ce87855d..e84f2b9c 100644
--- a/skins/archlinux/rtl.css
+++ b/skins/archlinux/rtl.css
@@ -170,8 +170,8 @@ li#ca-watch {
margin-right: 13.6em;
border-left: 0;
border-right: 1px solid #fabd23;
-}
-* html #column-content {
+}
+* html #column-content {
float: none;
margin-left: 0;
margin-right: 0;
@@ -219,3 +219,11 @@ input#wpSave, input#wpDiff {
p.mw-ipb-conveniencelinks {
float: left;
}
+
+.toggle {
+ margin-left: 0em;
+ margin-right: 2em;
+}
+table.filehistory th {
+ text-align: right;
+} \ No newline at end of file
diff --git a/skins/chick/main.css b/skins/chick/main.css
index 26d4f925..876f3c7d 100644
--- a/skins/chick/main.css
+++ b/skins/chick/main.css
@@ -52,8 +52,6 @@ h1, h2, h3, h4, h5, h6 {
}
.editsection {
font-weight: normal;
- float: right;
- margin-left: 5px;
}
h1 { font-size: 188%; }
h1 .editsection { font-size: 53.2%; }
@@ -321,12 +319,13 @@ div.tleft {
margin-right:0.5em;
border-width: 0.5em 1.4em 0.8em 0;
}
+img.thumbborder {
+ border: 1px solid #dddddd;
+}
.hiddenStructure {
display: none;
}
-img.tex { vertical-align: middle; }
-span.texhtml { font-family: serif; }
/*
** classes for special content elements like town boxes
@@ -397,25 +396,6 @@ div.townBox dl dd {
background-color:#f9f9f9;
border:1px dashed #aaaaaa;
}
-/*
-** Diff rendering
-*/
-table.diff { background:white; }
-td.diff-otitle { background:#ffffff; }
-td.diff-ntitle { background:#ffffff; }
-td.diff-addedline {
- background:#ccffcc;
- font-size: smaller;
-}
-td.diff-deletedline {
- background:#ffffaa;
- font-size: smaller;
-}
-td.diff-context {
- background:#eeeeee;
- font-size: smaller;
-}
-.diffchange { color: red; text-decoration: none; }
a.external { color: #3366bb; }
@@ -475,6 +455,7 @@ div.gallerybox div.thumb {
}
div.gallerytext {
+ overflow: hidden;
font-size: 94%;
padding: 2px 4px;
}
@@ -485,11 +466,7 @@ div.gallerytext {
.templatesUsed { margin-top: 1.5em; }
-/**
- * Here is some stuff that's ACTUALLY COMMON TO ALL SKINS.
- * When the day comes, it can be moved to a *real* common.css.
- */
-.mw-plusminus-null { color: #aaa; }
-.texvc { direction: ltr; unicode-bidi: embed; }
-/* Stop floats from intruding into edit area in previews */
-#toolbar, #wpTextbox1 { clear: both; } \ No newline at end of file
+/* Recreating-deleted-page warning and log entries */
+div#mw-recreate-deleted-warn ul li {
+ font-size: 95%;
+}
diff --git a/skins/common/ajax.js b/skins/common/ajax.js
index d90bea09..854d7a00 100644
--- a/skins/common/ajax.js
+++ b/skins/common/ajax.js
@@ -39,16 +39,21 @@ function sajax_init_object() {
sajax_debug("sajax_init_object() called..")
var A;
try {
- A=new ActiveXObject("Msxml2.XMLHTTP");
+ // Try the new style before ActiveX so we don't
+ // unnecessarily trigger warnings in IE 7 when
+ // set to prompt about ActiveX usage
+ A = new XMLHttpRequest();
} catch (e) {
try {
- A=new ActiveXObject("Microsoft.XMLHTTP");
- } catch (oc) {
- A=null;
+ A=new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ A=new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (oc) {
+ A=null;
+ }
}
}
- if(!A && typeof XMLHttpRequest != "undefined")
- A = new XMLHttpRequest();
if (!A)
sajax_debug("Could not create connection object.");
@@ -75,7 +80,9 @@ function sajax_do_call(func_name, args, target) {
var i, x, n;
var uri;
var post_data;
- uri = wgServer + wgScriptPath + "/index.php?action=ajax";
+ uri = wgServer +
+ ((wgScript == null) ? (wgScriptPath + "/index.php") : wgScript) +
+ "?action=ajax";
if (sajax_request_type == "GET") {
if (uri.indexOf("?") == -1)
uri = uri + "?rs=" + encodeURIComponent(func_name);
diff --git a/skins/common/ajaxwatch.js b/skins/common/ajaxwatch.js
index 16e4fdc4..b30e4ffd 100644
--- a/skins/common/ajaxwatch.js
+++ b/skins/common/ajaxwatch.js
@@ -2,10 +2,10 @@
// * ajax.js:
/*extern sajax_init_object, sajax_do_call */
// * wikibits.js:
- /*extern changeText, akeytt, hookEvent */
+ /*extern changeText, akeytt, hookEvent, jsMsg */
// These should have been initialized in the generated js
-/*extern wgAjaxWatch, wgArticleId */
+/*extern wgAjaxWatch, wgPageName */
if(typeof wgAjaxWatch === "undefined" || !wgAjaxWatch) {
var wgAjaxWatch = {
@@ -20,32 +20,60 @@ wgAjaxWatch.supported = true; // supported on current page and by browser
wgAjaxWatch.watching = false; // currently watching page
wgAjaxWatch.inprogress = false; // ajax request in progress
wgAjaxWatch.timeoutID = null; // see wgAjaxWatch.ajaxCall
-wgAjaxWatch.watchLink1 = null; // "watch"/"unwatch" link
-wgAjaxWatch.watchLink2 = null; // second one, for (some?) non-Monobook-based
-wgAjaxWatch.oldHref = null; // url for action=watch/action=unwatch
+wgAjaxWatch.watchLinks = []; // "watch"/"unwatch" links
wgAjaxWatch.setLinkText = function(newText) {
- changeText(wgAjaxWatch.watchLink1, newText);
- if (wgAjaxWatch.watchLink2) {
- changeText(wgAjaxWatch.watchLink2, newText);
+ for (i = 0; i < wgAjaxWatch.watchLinks.length; i++) {
+ changeText(wgAjaxWatch.watchLinks[i], newText);
}
};
wgAjaxWatch.setLinkID = function(newId) {
- wgAjaxWatch.watchLink1.id = newId;
+ // We can only set the first one
+ wgAjaxWatch.watchLinks[0].setAttribute( 'id', newId );
akeytt(newId); // update tooltips for Monobook
};
+wgAjaxWatch.setHref = function( string ) {
+ for( i = 0; i < wgAjaxWatch.watchLinks.length; i++ ) {
+ if( string == 'watch' ) {
+ wgAjaxWatch.watchLinks[i].href = wgAjaxWatch.watchLinks[i].href
+ .replace( /&action=unwatch/, '&action=watch' );
+ } else if( string == 'unwatch' ) {
+ wgAjaxWatch.watchLinks[i].href = wgAjaxWatch.watchLinks[i].href
+ .replace( /&action=watch/, '&action=unwatch' );
+ }
+ }
+}
+
wgAjaxWatch.ajaxCall = function() {
- if(!wgAjaxWatch.supported || wgAjaxWatch.inprogress) {
- return;
+ if(!wgAjaxWatch.supported) {
+ return true;
+ } else if (wgAjaxWatch.inprogress) {
+ return false;
}
+ if(!wfSupportsAjax()) {
+ // Lazy initialization so we don't toss up
+ // ActiveX warnings on initial page load
+ // for IE 6 users with security settings.
+ wgAjaxWatch.supported = false;
+ return true;
+ }
+
wgAjaxWatch.inprogress = true;
- wgAjaxWatch.setLinkText(wgAjaxWatch.watching ? wgAjaxWatch.unwatchingMsg : wgAjaxWatch.watchingMsg);
- sajax_do_call("wfAjaxWatch", [wgArticleId, (wgAjaxWatch.watching ? "u" : "w")], wgAjaxWatch.processResult);
+ wgAjaxWatch.setLinkText( wgAjaxWatch.watching
+ ? wgAjaxWatch.unwatchingMsg : wgAjaxWatch.watchingMsg);
+ sajax_do_call(
+ "wfAjaxWatch",
+ [wgPageName, (wgAjaxWatch.watching ? "u" : "w")],
+ wgAjaxWatch.processResult
+ );
// if the request isn't done in 10 seconds, allow user to try again
- wgAjaxWatch.timeoutID = window.setTimeout(function() { wgAjaxWatch.inprogress = false; }, 10000);
- return;
+ wgAjaxWatch.timeoutID = window.setTimeout(
+ function() { wgAjaxWatch.inprogress = false; },
+ 10000
+ );
+ return false;
};
wgAjaxWatch.processResult = function(request) {
@@ -53,20 +81,22 @@ wgAjaxWatch.processResult = function(request) {
return;
}
var response = request.responseText;
- if(response == "<err#>") {
- window.location.href = wgAjaxWatch.oldHref;
- return;
- } else if(response == "<w#>") {
+ if( response.match(/^<w#>/) ) {
wgAjaxWatch.watching = true;
wgAjaxWatch.setLinkText(wgAjaxWatch.unwatchMsg);
wgAjaxWatch.setLinkID("ca-unwatch");
- wgAjaxWatch.oldHref = wgAjaxWatch.oldHref.replace(/action=watch/, "action=unwatch");
- } else if(response == "<u#>") {
+ wgAjaxWatch.setHref( 'unwatch' );
+ } else if( response.match(/^<u#>/) ) {
wgAjaxWatch.watching = false;
wgAjaxWatch.setLinkText(wgAjaxWatch.watchMsg);
wgAjaxWatch.setLinkID("ca-watch");
- wgAjaxWatch.oldHref = wgAjaxWatch.oldHref.replace(/action=unwatch/, "action=watch");
+ wgAjaxWatch.setHref( 'watch' );
+ } else {
+ // Either we got a <err#> error code or it just plain broke.
+ window.location.href = wgAjaxWatch.watchLinks[0].href;
+ return;
}
+ jsMsg( response.substr(4), 'watch' );
wgAjaxWatch.inprogress = false;
if(wgAjaxWatch.timeoutID) {
window.clearTimeout(wgAjaxWatch.timeoutID);
@@ -75,6 +105,8 @@ wgAjaxWatch.processResult = function(request) {
};
wgAjaxWatch.onLoad = function() {
+ // This document structure hardcoding sucks. We should make a class and
+ // toss all this out the window.
var el1 = document.getElementById("ca-unwatch");
var el2 = null;
if (!el1) {
@@ -96,20 +128,19 @@ wgAjaxWatch.onLoad = function() {
}
}
- if(!wfSupportsAjax()) {
- wgAjaxWatch.supported = false;
- return;
- }
-
// The id can be either for the parent (Monobook-based) or the element
// itself (non-Monobook)
- wgAjaxWatch.watchLink1 = el1.tagName.toLowerCase() == "a" ? el1 : el1.firstChild;
- wgAjaxWatch.watchLink2 = el2 ? el2 : null;
+ wgAjaxWatch.watchLinks.push( el1.tagName.toLowerCase() == "a"
+ ? el1 : el1.firstChild );
- wgAjaxWatch.oldHref = wgAjaxWatch.watchLink1.getAttribute("href");
- wgAjaxWatch.watchLink1.setAttribute("href", "javascript:wgAjaxWatch.ajaxCall()");
- if (wgAjaxWatch.watchLink2) {
- wgAjaxWatch.watchLink2.setAttribute("href", "javascript:wgAjaxWatch.ajaxCall()");
+ if( el2 ) {
+ wgAjaxWatch.watchLinks.push( el2 );
+ }
+
+ // I couldn't get for (watchLink in wgAjaxWatch.watchLinks) to work, if
+ // you can be my guest.
+ for( i = 0; i < wgAjaxWatch.watchLinks.length; i++ ) {
+ wgAjaxWatch.watchLinks[i].onclick = wgAjaxWatch.ajaxCall;
}
return;
};
@@ -124,4 +155,4 @@ function wfSupportsAjax() {
var supportsAjax = request ? true : false;
delete request;
return supportsAjax;
-} \ No newline at end of file
+}
diff --git a/skins/common/block.js b/skins/common/block.js
index c9c02446..430c1d54 100644
--- a/skins/common/block.js
+++ b/skins/common/block.js
@@ -22,26 +22,32 @@ function considerChangingExpiryFocus() {
function updateBlockOptions() {
if (!document.getElementById)
return;
-
+
var target = document.getElementById('mw-bi-target');
if (!target)
return;
-
+
var addy = target.value;
var isEmpty = addy.match(/^\s*$/);
var isIp = addy.match(/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|:(:[0-9A-Fa-f]{1,4}){1,7}|[0-9A-Fa-f]{1,4}(:{1,2}[0-9A-Fa-f]{1,4}|::$){1,7})(\/\d+)?$/);
-
+
/*
var anonymousCheck = document.getElementById('wpAnonOnly');
anonymousCheck.disabled = !isIp && !isEmpty;
-
+
var autoblockCheck = document.getElementById('wpEnableAutoblock');
autoblockCheck.disabled = isIp && !isEmpty;
+
+ var emailblockCheck = document.getElementById('wpEmailBan');
+ emailblockCheck.disabled = isIp && !isEmpty;
*/
var anonymousRow = document.getElementById('wpAnonOnlyRow');
anonymousRow.style.display = (!isIp && !isEmpty) ? 'none' : '';
-
+
var autoblockRow = document.getElementById('wpEnableAutoblockRow');
autoblockRow.style.display = isIp && !isEmpty ? 'none' : '';
+
+ var emailblockRow = document.getElementById('wpEnableEmailBan');
+ emailblockRow.style.display = isIp && !isEmpty ? 'none' : '';
}
diff --git a/skins/common/cologneblue.css b/skins/common/cologneblue.css
index 5b6e5bca..547585ef 100644
--- a/skins/common/cologneblue.css
+++ b/skins/common/cologneblue.css
@@ -93,4 +93,15 @@ a.stub, #quickbar a.stub { color:#772233; text-decoration:none; }
a.new, #quickbar a.new { color: #CC2200; }
h2, h3, h4, h5, h6 { margin-bottom: 0; }
small { font-size: 75%; }
-input.mw-searchInput { width: 106px; } \ No newline at end of file
+input.mw-searchInput { width: 106px; }
+
+/* Recreating-deleted-page warning and log entries */
+div#mw-recreate-deleted-warn {
+ padding: 3px;
+ margin-top: 3px;
+ margin-bottom: 3px;
+ border: 1px solid #6688AA;
+}
+div#mw-recreate-deleted-warn ul li {
+ font-size: 90%;
+} \ No newline at end of file
diff --git a/skins/common/commonPrint.css b/skins/common/commonPrint.css
index 4fddafaa..a7d49e36 100644
--- a/skins/common/commonPrint.css
+++ b/skins/common/commonPrint.css
@@ -73,6 +73,9 @@ div.tleft {
margin-right:0.5em;
border-width: 0.5em 1.4em 0.8em 0;
}
+img.thumbborder {
+ border: 1px solid #dddddd;
+}
/* table standards */
table.rimage {
diff --git a/skins/common/common_rtl.css b/skins/common/common_rtl.css
index 0c08de55..d26acc13 100644
--- a/skins/common/common_rtl.css
+++ b/skins/common/common_rtl.css
@@ -1,5 +1,7 @@
-/* This CSS file is called from absolutely every wiki that's RTL: unlike
- * common.css, it's actually common to all skins. */
+/*
+ * This file contains CSS settings common to RTL wikis use the old
+ * pre-Monobook skins Wikistandard, Nostalgia and CologneBlue
+ */
/* js pref toc */
#preftoc { float: right; }
@@ -30,3 +32,6 @@ div.tleft, div.floatleft {
p.mw-ipb-conveniencelinks {
float: left;
}
+table.filehistory th {
+ text-align: right;
+}
diff --git a/skins/common/diff.css b/skins/common/diff.css
new file mode 100644
index 00000000..6a1f23b5
--- /dev/null
+++ b/skins/common/diff.css
@@ -0,0 +1,74 @@
+/*
+** Diff rendering
+*/
+table.diff, td.diff-otitle, td.diff-ntitle {
+ background-color: white;
+}
+td.diff-otitle,
+td.diff-ntitle {
+ text-align: center;
+}
+td.diff-marker {
+ text-align: right;
+}
+.rtl td.diff-marker {
+ text-align: left;
+}
+td.diff-lineno {
+ font-weight: bold;
+}
+td.diff-addedline {
+ background: #cfc;
+ font-size: smaller;
+}
+td.diff-deletedline {
+ background: #ffa;
+ font-size: smaller;
+}
+td.diff-context {
+ background: #eee;
+ font-size: smaller;
+}
+.diffchange {
+ color: red;
+ font-weight: bold;
+ text-decoration: none;
+}
+
+table.diff {
+ border: none;
+ width: 98%;
+ border-spacing: 4px;
+
+ /* Fixed layout is required to ensure that cells containing long URLs
+ don't widen in Safari, Internet Explorer, or iCab */
+ table-layout: fixed;
+}
+table.diff td {
+ padding: 0;
+}
+table.diff col.diff-marker {
+ width: 2%;
+}
+table.diff col.diff-content {
+ width: 48%;
+}
+table.diff td div {
+ /* Force-wrap very long lines such as URLs or page-widening char strings.
+ CSS 3 draft..., but Gecko doesn't support it yet:
+ https://bugzilla.mozilla.org/show_bug.cgi?id=99457 */
+ word-wrap: break-word;
+
+ /* As fallback, scrollbars will be added for very wide cells
+ instead of text overflowing or widening */
+ overflow: auto;
+
+ /* The above rule breaks on very old versions of Mozilla due
+ to a bug which collapses the table cells to a single line.
+
+ In Mozilla 1.1 and below with JavaScript enabled, the rule
+ will be overridden with this by diff.js; wide cell contents
+ then spill horizontally without widening the rest of the
+ table: */
+ /* overflow: visible; */
+}
diff --git a/skins/common/diff.js b/skins/common/diff.js
new file mode 100644
index 00000000..e80a895c
--- /dev/null
+++ b/skins/common/diff.js
@@ -0,0 +1,20 @@
+/*
+Workaround for overflow bug in Mozilla 1.1 and earlier, where scrolling
+<div>s in <td> cells collapse their height to a single line.
+
+Known to be fixed in 1.2.1 (Gecko 20021130), but the CSS hacks I've tried
+with overflow-x disable the scrolling all the way until Mozilla 1.8 / FF 1.5
+and break Opera as well.
+
+So... we check for reaaaally old Gecko and hack in an alternate rule to let
+the wide cells spill instead of scrolling them. Not ideal as it won't work
+if JS is disabled, of course.
+*/
+
+if (navigator && navigator.product == "Gecko" && navigator.productSub < "20021130") {
+ var sheets = document.styleSheets;
+ var lastSheet = sheets[sheets.length-1];
+ lastSheet.insertRule(
+ "table.diff td div { overflow: visible; }",
+ lastSheet.cssRules.length);
+} \ No newline at end of file
diff --git a/skins/common/images/spinner.gif b/skins/common/images/spinner.gif
new file mode 100644
index 00000000..57d749b0
--- /dev/null
+++ b/skins/common/images/spinner.gif
Binary files differ
diff --git a/skins/common/oldshared.css b/skins/common/oldshared.css
new file mode 100644
index 00000000..27d93a03
--- /dev/null
+++ b/skins/common/oldshared.css
@@ -0,0 +1,465 @@
+/*
+ * oldshared.css
+ * This file contains CSS settings common to Wikistandard, Nostalgia and
+ * CologneBlue, the old pre-Monobook skins
+ */
+
+/* For clarity, explicitly state some recommendations from <http://www.w3.org/
+ TR/CSS21/sample.html> to make sure the editsection links scale right */
+
+h1 { font-size: 2em; }
+h2 { font-size: 1.5em; }
+h3 { font-size: 1.17em; }
+h5 { font-size: .83em; }
+h6 { font-size: .75em; }
+h1, h2, h3, h4, h5, h6 { font-weight: bolder }
+
+/* Now the custom parts */
+
+/* Make edit sections (which are inside h# tags) normal-sized */
+.editsection {
+ font-weight: normal;
+}
+h1 .editsection { font-size: 50% }
+h2 .editsection { font-size: 66.7% }
+h3 .editsection { font-size: 85.5% }
+h5 .editsection { font-size: 120% }
+h6 .editsection { font-size: 133% }
+
+#footer { clear: both }
+/* images */
+div.floatright { float: right; clear: right; margin: 0 0 1em 1em; }
+div.floatright p { font-style: italic; }
+div.floatleft { float: left; clear: left; margin: 0.3em 0.5em 0.5em 0; }
+div.floatleft p { font-style: italic; }
+
+
+/* Print-specific things to hide */
+.printfooter {
+ display: none;
+}
+
+/* table standards */
+table.rimage {
+ float:right;
+ margin-left:1em;
+ margin-bottom:1em;
+ text-align:center;
+ font-size:smaller;
+}
+
+/* thumbnails */
+div.thumb {
+ margin-bottom: .5em;
+ border-style: solid;
+ border-color: white;
+ width: auto;
+}
+div.thumbinner {
+ border: 1px solid #ccc;
+ padding: 3px !important;
+ background-color: #f9f9f9;
+ font-size: 94%;
+ text-align: center;
+ overflow: hidden;
+}
+html .thumbimage {
+ border: 1px solid #ccc;
+}
+html .thumbcaption {
+ border: none;
+ text-align: left;
+ line-height: 1.4em;
+ padding: 3px !important;
+ font-size: 94%;
+}
+div.magnify {
+ float: right;
+ border: none !important;
+ background: none !important;
+}
+div.magnify a, div.magnify img {
+ display: block;
+ border: none !important;
+ background: none !important;
+}
+div.tright {
+ clear: right;
+ float: right;
+ border-width: .5em 0 .8em 1.4em;
+}
+div.tleft {
+ float: left;
+ clear: left;
+ margin-right: .5em;
+ border-width: .5em 1.4em .8em 0;
+}
+img.thumbborder {
+ border: 1px solid #dddddd;
+}
+
+/* Page history styling */
+/* the auto-generated edit comments */
+.autocomment { color: #4b4b4b; }
+#pagehistory span.user {
+ margin-left: 1.4em;
+ margin-right: 0.4em;
+}
+#pagehistory span.minor { font-weight: bold; }
+#pagehistory li { border: 1px solid White; }
+#pagehistory li.selected {
+ background-color:#f9f9f9;
+ border:1px dashed #aaaaaa;
+}
+
+img { border: none; }
+
+#toc,
+.toc {
+ border: 1px solid #bba;
+ background-color: #f7f8ff;
+ padding: 5px;
+ font-size: 95%;
+ text-align: center;
+}
+#toc h2,
+.toc h2 {
+ display: inline;
+ border: none;
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+}
+#toc ul,
+.toc ul {
+ list-style-type: none;
+ list-style-image: none;
+ margin-left: 0;
+ padding-left: 0;
+ text-align: left;
+}
+#toc ul ul,
+.toc ul ul {
+ margin: 0 0 0 2em;
+}
+#toc .toctoggle,
+.toc .toctoggle {
+ font-size: 94%;
+}
+
+
+.error {
+ color: red;
+ font-size: larger;
+}
+
+/* preference page with js-genrated toc */
+#preftoc {
+ float: left;
+ margin: 1em 1em 1em 1em;
+ width: 13em;
+}
+#preftoc li { border: 1px solid White; }
+#preftoc li.selected {
+ background-color:#f9f9f9;
+ border:1px dashed #aaaaaa;
+}
+#preftoc a,
+#preftoc a:active {
+ display: block;
+ color: #005189;
+}
+#prefcontrol {
+ clear: left;
+ float: left;
+ margin-top: 1em;
+}
+div.prefsectiontip {
+ font-size: 94%;
+ margin-top: 0.4em;
+ color: #666;
+}
+fieldset.prefsection { margin-top: 1em }
+fieldset.operaprefsection { margin-left: 15em }
+
+/* emulate center */
+.center {
+ width: 100%;
+ text-align: center;
+}
+*.center * {
+ margin-left: auto;
+ margin-right: auto;
+}
+/* small for tables and similar */
+.small, .small * { font-size: 94%; }
+table.small { font-size: 100% }
+
+div.townBox {
+ position:relative;
+ float:right;
+ background:White;
+ margin-left:1em;
+ border: 1px solid gray;
+ padding:0.3em;
+ width: 200px;
+ overflow: hidden;
+ clear: right;
+}
+div.townBox dl {
+ padding: 0;
+ margin: 0 0 0.3em 0;
+ font-size: 96%;
+}
+div.townBox dl dt {
+ background: none;
+ margin: 0.4em 0 0 0;
+}
+div.townBox dl dd {
+ margin: 0.1em 0 0 1.1em;
+ background-color: #f3f3f3;
+}
+/* use this instead of #toc for page content */
+.toccolours {
+ border:1px solid #aaaaaa;
+ background-color:#f9f9f9;
+ padding:5px;
+ font-size: 95%;
+}
+#siteNotice {
+ border:1px solid #aaaaaa;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+.redirectText {
+ font-size:150%;
+ margin:5px;
+}
+.searchmatch {
+ color: red;
+ font-weight: bold;
+}
+.sharedUploadNotice {
+ font-style: italic;
+}
+span.unpatrolled {
+ font-weight:bold;
+ color:red;
+}
+
+span.updatedmarker {
+ color:black;
+ background-color:#00FF00;
+}
+
+table.gallery {
+ border: 1px solid #cccccc;
+ margin: 2px;
+ padding: 2px;
+ background-color:#ffffff;
+}
+
+table.gallery tr {
+ vertical-align:top;
+}
+
+table.gallery td {
+ vertical-align:top;
+ background-color:#f9f9f9;
+ border: solid 2px white;
+}
+
+div.gallerybox {
+ margin: 2px;
+ width: 150px;
+}
+
+div.gallerybox div.thumb {
+ text-align: center;
+ border: 1px solid #cccccc;
+ margin: 2px;
+}
+
+div.gallerytext {
+ overflow: hidden;
+ font-size: 94%;
+ padding: 2px 4px;
+}
+
+span.comment {
+ font-style: italic;
+}
+
+span.changedby {
+ font-size: 95%;
+}
+
+.previewnote {
+ text-align: center;
+ color: #cc0000;
+}
+.editExternally {
+ border-style:solid;
+ border-width:1px;
+ border-color:gray;
+ background: #ffffff;
+ padding:3px;
+ margin-top:0.5em;
+ float:left;
+ font-size:small;
+ text-align:center;
+}
+.editExternallyHelp {
+ font-style:italic;
+ color:gray;
+}
+
+li span.deleted {
+ text-decoration: line-through;
+ color: #888;
+ font-style: italic;
+}
+
+/* Classes for EXIF data display */
+table.mw_metadata {
+ margin-left: 0.5em;
+}
+
+table.mw_metadata caption { font-weight: bold; }
+table.mw_metadata th { font-weight: normal; }
+table.mw_metadata td { padding: 0.1em; }
+
+table.mw_metadata {
+ border: none;
+ border-collapse: collapse;
+}
+table.mw_metadata td, table.mw_metadata th {
+ border: 1px solid #aaaaaa;
+ padding-left: 4px;
+ padding-right: 4px;
+}
+table.mw_metadata th {
+ background-color: #f9f9f9;
+}
+table.mw_metadata td {
+ background-color: #fcfcfc;
+}
+table.mw_metadata td.spacer {
+ background: inherit;
+ border-top: none;
+ border-bottom: none;
+}
+table.collapsed tr.collapsable {
+ display: none;
+}
+
+.visualClear {
+ clear: both;
+}
+
+#mw_trackbacks {
+ border: solid 1px #bbbbff;
+ background-color: #eeeeff;
+ padding: 0.2em;
+}
+
+/* Allmessages table */
+
+#allmessagestable th {
+ background-color: #b2b2ff;
+}
+
+#allmessagestable tr.orig {
+ background-color: #ffe2e2;
+}
+
+#allmessagestable tr.new {
+ background-color: #e2ffe2;
+}
+
+#allmessagestable tr.def {
+ background-color: #f0f0ff;
+}
+
+#jump-to-nav {
+ display: none;
+}
+
+/* Keep this temporarily so that cached pages will display right */
+table.gallery td.galleryheader {
+ text-align: center;
+ font-weight: bold;
+}
+table.gallery caption {
+ font-weight: bold;
+}
+
+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 }
+
+.templatesUsed { margin-top: 1em; }
+
+/* Convenience links on Special:Ipblocklist */
+p.mw-ipb-conveniencelinks {
+ font-size: 90%;
+ float: right;
+}
+
+/* Recreating-deleted-page warning and log entries */
+div#mw-recreate-deleted-warn ul li {
+ font-size: 95%;
+}
+
+
+.MediaTransformError {
+ border: thin solid #777;
+ background-color: #ccc;
+ padding: 0.1em;
+}
+.MediaTransformError td {
+ text-align: center;
+ vertical-align: middle;
+ font-size: 90%;
+}
diff --git a/skins/common/protect.js b/skins/common/protect.js
index d8d1aa1c..b3eec3bd 100644
--- a/skins/common/protect.js
+++ b/skins/common/protect.js
@@ -1,89 +1,94 @@
-function protectInitialize(tableId, labelText) {
- if (document.createTextNode) {
- var box = document.getElementById(tableId);
- if (!box)
- return false;
-
- var tbody = box.getElementsByTagName('tbody')[0];
- var row = document.createElement('tr');
- tbody.appendChild(row);
-
- row.appendChild(document.createElement('td'));
- var col2 = document.createElement('td');
- row.appendChild(col2);
-
- var check = document.createElement('input');
- check.id = "mwProtectUnchained";
- check.type = "checkbox";
- 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));
- col2.appendChild(label);
-
- if (protectAllMatch()) {
- check.checked = false;
- protectEnable(false);
- } else {
- check.checked = true;
- protectEnable(true);
- }
+/**
+ * Set up the protection chaining interface (i.e. "unlock move permissions" checkbox)
+ * on the protection form
+ *
+ * @param String tableId Identifier of the table containing UI bits
+ * @param String labelText Text to use for the checkbox label
+ */
+function protectInitialize( tableId, labelText ) {
+ if( !( document.createTextNode && document.getElementById && document.getElementsByTagName ) )
+ return false;
- allowCascade();
-
- return true;
- }
- return false;
+ var box = document.getElementById( tableId );
+ if( !box )
+ return false;
+
+ var tbody = box.getElementsByTagName( 'tbody' )[0];
+ var row = document.createElement( 'tr' );
+ tbody.appendChild( row );
+
+ row.appendChild( document.createElement( 'td' ) );
+ var col = document.createElement( 'td' );
+ row.appendChild( col );
+
+ var check = document.createElement( 'input' );
+ check.id = 'mwProtectUnchained';
+ check.type = 'checkbox';
+ col.appendChild( check );
+ addClickHandler( check, protectChainUpdate );
+
+ col.appendChild( document.createTextNode( ' ' ) );
+ var label = document.createElement( 'label' );
+ label.setAttribute( 'for', 'mwProtectUnchained' );
+ label.appendChild( document.createTextNode( labelText ) );
+ col.appendChild( label );
+
+ check.checked = !protectAllMatch();
+ protectEnable( check.checked );
+
+ allowCascade();
+
+ return true;
}
function allowCascade() {
- var pr_types = document.getElementsByTagName("select");
- for (var i = 0; i < pr_types.length; i++) {
- if (pr_types[i].id.match(/^mwProtect-level-/)) {
- var selected_level = pr_types[i].getElementsByTagName("option")[pr_types[i].selectedIndex].value;
- if ( !isCascadeableLevel(selected_level) ) {
- document.getElementById('mwProtect-cascade').checked=false;
- document.getElementById('mwProtect-cascade').disabled=true;
+ var lists = protectSelectors();
+ for( var i = 0; i < lists.length; i++ ) {
+ if( lists[i].selectedIndex > -1 ) {
+ var items = lists[i].getElementsByTagName( 'option' );
+ var selected = items[ lists[i].selectedIndex ].value;
+ if( wgCascadeableLevels.indexOf( selected ) == -1 ) {
+ document.getElementById( 'mwProtect-cascade' ).checked = false;
+ document.getElementById( 'mwProtect-cascade' ).disabled = true;
return false;
}
}
}
- document.getElementById('mwProtect-cascade').disabled=false;
+ document.getElementById( 'mwProtect-cascade' ).disabled = false;
return true;
}
-function isCascadeableLevel( level ) {
- for (var k = 0; k < wgCascadeableLevels.length; k++) {
- if ( wgCascadeableLevels[k] == level ) {
- return true;
- }
- }
- return false;
-}
-
+/**
+ * When protection levels are locked together, update the rest
+ * when one action's level changes
+ *
+ * @param Element source Level selector that changed
+ */
function protectLevelsUpdate(source) {
- if (!protectUnchained()) {
- protectUpdateAll(source.selectedIndex);
- }
+ if( !protectUnchained() )
+ protectUpdateAll( source.selectedIndex );
allowCascade();
}
+/**
+ * Update chain status and enable/disable various bits of the UI
+ * when the user changes the "unlock move permissions" checkbox
+ */
function protectChainUpdate() {
- if (protectUnchained()) {
- protectEnable(true);
+ if( protectUnchained() ) {
+ protectEnable( true );
} else {
protectChain();
- protectEnable(false);
+ protectEnable( false );
}
allowCascade();
}
-
+/**
+ * Are all actions protected at the same level?
+ *
+ * @return boolean
+ */
function protectAllMatch() {
var values = new Array();
protectForSelectors(function(set) {
@@ -97,17 +102,22 @@ function protectAllMatch() {
return true;
}
+/**
+ * Is protection chaining on or off?
+ *
+ * @return bool
+ */
function protectUnchained() {
- var unchain = document.getElementById("mwProtectUnchained");
- if (!unchain) {
- alert("This shouldn't happen");
- return false;
- }
- return unchain.checked;
+ var unchain = document.getElementById( 'mwProtectUnchained' );
+ return unchain
+ ? unchain.checked
+ : true; // No control, so we need to let the user set both levels
}
+/**
+ * Find the highest-protected action and set all others to that level
+ */
function protectChain() {
- // Find the highest-protected action and bump them all to this level
var maxIndex = -1;
protectForSelectors(function(set) {
if (set.selectedIndex > maxIndex) {
@@ -117,6 +127,11 @@ function protectChain() {
protectUpdateAll(maxIndex);
}
+/**
+ * Protect all actions at the specified level
+ *
+ * @param int index Protection level
+ */
function protectUpdateAll(index) {
protectForSelectors(function(set) {
if (set.selectedIndex != index) {
@@ -125,6 +140,11 @@ function protectUpdateAll(index) {
});
}
+/**
+ * Apply a callback to each protection selector
+ *
+ * @param callable func Callback function
+ */
function protectForSelectors(func) {
var selectors = protectSelectors();
for (var i = 0; i < selectors.length; i++) {
@@ -132,6 +152,11 @@ function protectForSelectors(func) {
}
}
+/**
+ * Get a list of all protection selectors on the page
+ *
+ * @return Array
+ */
function protectSelectors() {
var all = document.getElementsByTagName("select");
var ours = new Array();
@@ -144,6 +169,11 @@ function protectSelectors() {
return ours;
}
+/**
+ * Enable/disable protection selectors
+ *
+ * @param boolean val Enable?
+ */
function protectEnable(val) {
// fixme
var first = true;
diff --git a/skins/common/shared.css b/skins/common/shared.css
new file mode 100644
index 00000000..f6d63ab8
--- /dev/null
+++ b/skins/common/shared.css
@@ -0,0 +1,48 @@
+/**
+ * CSS in this file is used by *all* skins (that have any CSS at all). Be
+ * careful what you put in here, since what looks good in one skin may not in
+ * another, but don't ignore the poor non-Monobook users either.
+ */
+.mw-plusminus-null { color: #aaa; }
+
+.texvc { direction: ltr; unicode-bidi: embed; }
+img.tex { vertical-align: middle; }
+span.texhtml { font-family: serif; }
+
+/* Stop floats from intruding into edit area in previews */
+#toolbar, #wpTextbox1 { clear: both; }
+
+div#mw-js-message {
+ margin: 1em 5%;
+ padding: 0.5em 2.5%;
+ border: solid 1px #ddd;
+ background-color: #fcfcfc;
+}
+
+/* Edit section links */
+.editsection {
+ float: right;
+ margin-left: 5px;
+}
+
+/**
+ * File histories
+ */
+table.filehistory {
+ border:1px solid #ccc;
+ border-collapse:collapse;
+}
+
+table.filehistory th,
+table.filehistory td {
+ padding: 0 0.2em 0 0.2em;
+ vertical-align:top;
+ border:1px solid #ccc;
+}
+table.filehistory th {
+ text-align: left;
+}
+table.filehistory td.mw-imagepage-filesize,
+table.filehistory th.mw-imagepage-filesize {
+ white-space:nowrap;
+}
diff --git a/skins/common/upload.js b/skins/common/upload.js
index 160fbf27..7cbfc9aa 100644
--- a/skins/common/upload.js
+++ b/skins/common/upload.js
@@ -1,23 +1,176 @@
function licenseSelectorCheck() {
- var selector = document.getElementById("wpLicense");
- if (selector.selectedIndex > 0 &&
- selector.options[selector.selectedIndex].value == "" ) {
- // Browser is broken, doesn't respect disabled attribute on <option>
- selector.selectedIndex = 0;
+ var selector = document.getElementById( "wpLicense" );
+ var selection = selector.options[selector.selectedIndex].value;
+ if( selector.selectedIndex > 0 ) {
+ if( selection == "" ) {
+ // Option disabled, but browser is broken and doesn't respect this
+ selector.selectedIndex = 0;
+ }
}
+ // We might show a preview
+ wgUploadLicenseObj.fetchPreview( selection );
}
function licenseSelectorFixup() {
// for MSIE/Mac; non-breaking spaces cause the <option> not to render
// but, for some reason, setting the text to itself works
var selector = document.getElementById("wpLicense");
- var ua = navigator.userAgent;
- var isMacIe = (ua.indexOf("MSIE") != -1) && (ua.indexOf("Mac") != -1);
- if (isMacIe) {
- for (var i = 0; i < selector.options.length; i++) {
- selector.options[i].text = selector.options[i].text;
+ if (selector) {
+ var ua = navigator.userAgent;
+ var isMacIe = (ua.indexOf("MSIE") != -1) && (ua.indexOf("Mac") != -1);
+ if (isMacIe) {
+ for (var i = 0; i < selector.options.length; i++) {
+ selector.options[i].text = selector.options[i].text;
+ }
+ }
+ }
+}
+
+var wgUploadWarningObj = {
+ 'responseCache' : { '' : '&nbsp;' },
+ 'nameToCheck' : '',
+ 'typing': false,
+ 'delay': 500, // ms
+ 'timeoutID': false,
+
+ 'keypress': function () {
+ if ( !wgAjaxUploadDestCheck || !sajax_init_object() ) return;
+
+ // Find file to upload
+ var destFile = document.getElementById('wpDestFile');
+ var warningElt = document.getElementById( 'wpDestFile-warning' );
+ if ( !destFile || !warningElt ) return ;
+
+ this.nameToCheck = destFile.value ;
+
+ // Clear timer
+ if ( this.timeoutID ) {
+ window.clearTimeout( this.timeoutID );
+ }
+ // Check response cache
+ for (cached in this.responseCache) {
+ if (this.nameToCheck == cached) {
+ this.setWarning(this.responseCache[this.nameToCheck]);
+ return;
+ }
+ }
+
+ this.timeoutID = window.setTimeout( 'wgUploadWarningObj.timeout()', this.delay );
+ },
+
+ 'checkNow': function (fname) {
+ if ( !wgAjaxUploadDestCheck || !sajax_init_object() ) return;
+ if ( this.timeoutID ) {
+ window.clearTimeout( this.timeoutID );
}
+ this.nameToCheck = fname;
+ this.timeout();
+ },
+
+ 'timeout' : function() {
+ if ( !wgAjaxUploadDestCheck || !sajax_init_object() ) return;
+ injectSpinner( document.getElementById( 'wpDestFile' ), 'destcheck' );
+
+ // Get variables into local scope so that they will be preserved for the
+ // anonymous callback. fileName is copied so that multiple overlapping
+ // ajax requests can be supported.
+ var obj = this;
+ var fileName = this.nameToCheck;
+ sajax_do_call( 'UploadForm::ajaxGetExistsWarning', [this.nameToCheck],
+ function (result) {
+ obj.processResult(result, fileName)
+ }
+ );
+ },
+
+ 'processResult' : function (result, fileName) {
+ removeSpinner( 'destcheck' );
+ this.setWarning(result.responseText);
+ this.responseCache[fileName] = result.responseText;
+ },
+
+ 'setWarning' : function (warning) {
+ var warningElt = document.getElementById( 'wpDestFile-warning' );
+ var ackElt = document.getElementById( 'wpDestFileWarningAck' );
+ this.setInnerHTML(warningElt, warning);
+
+ // Set a value in the form indicating that the warning is acknowledged and
+ // doesn't need to be redisplayed post-upload
+ if ( warning == '' || warning == '&nbsp' ) {
+ ackElt.value = '';
+ } else {
+ ackElt.value = '1';
+ }
+ },
+
+ 'setInnerHTML' : function (element, text) {
+ // Check for no change to avoid flicker in IE 7
+ if (element.innerHTML != text) {
+ element.innerHTML = text;
+ }
+ }
+}
+
+function fillDestFilename(id) {
+ if (!document.getElementById) {
+ return;
+ }
+ var path = document.getElementById(id).value;
+ // Find trailing part
+ var slash = path.lastIndexOf('/');
+ var backslash = path.lastIndexOf('\\');
+ var fname;
+ if (slash == -1 && backslash == -1) {
+ fname = path;
+ } else if (slash > backslash) {
+ fname = path.substring(slash+1, 10000);
+ } else {
+ fname = path.substring(backslash+1, 10000);
+ }
+
+ // Capitalise first letter and replace spaces by underscores
+ fname = fname.charAt(0).toUpperCase().concat(fname.substring(1,10000)).replace(/ /g, '_');
+
+ // Output result
+ var destFile = document.getElementById('wpDestFile');
+ if (destFile) {
+ destFile.value = fname;
+ wgUploadWarningObj.checkNow(fname) ;
+ }
+}
+
+var wgUploadLicenseObj = {
+
+ 'responseCache' : { '' : '' },
+
+ 'fetchPreview': function( license ) {
+ if( !wgAjaxLicensePreview || !sajax_init_object() ) return;
+ for (cached in this.responseCache) {
+ if (cached == license) {
+ this.showPreview( this.responseCache[license] );
+ return;
+ }
+ }
+ injectSpinner( document.getElementById( 'wpLicense' ), 'license' );
+ sajax_do_call( 'UploadForm::ajaxGetLicensePreview', [license],
+ function( result ) {
+ wgUploadLicenseObj.processResult( result, license );
+ }
+ );
+ },
+
+ 'processResult' : function( result, license ) {
+ removeSpinner( 'license' );
+ this.showPreview( result.responseText );
+ this.responseCache[license] = result.responseText;
+ },
+
+ 'showPreview' : function( preview ) {
+ var previewPanel = document.getElementById( 'mw-license-preview' );
+ if( previewPanel.innerHTML != preview )
+ previewPanel.innerHTML = preview;
}
+
}
-addOnloadHook(licenseSelectorFixup);
+addOnloadHook( licenseSelectorFixup ); \ No newline at end of file
diff --git a/skins/common/wikibits.js b/skins/common/wikibits.js
index 6299e5fa..11ede270 100644
--- a/skins/common/wikibits.js
+++ b/skins/common/wikibits.js
@@ -12,6 +12,7 @@ if (clientPC.indexOf('opera') != -1) {
var is_opera = true;
var is_opera_preseven = (window.opera && !document.childNodes);
var is_opera_seven = (window.opera && document.childNodes);
+ var is_opera_95 = (clientPC.search(/opera\/(9.[5-9]|[1-9][0-9])/)!=-1);
}
// Global external objects used by this script.
@@ -41,8 +42,10 @@ function hookEvent(hookName, hookFunct) {
if (typeof stylepath != 'undefined' && typeof skin != 'undefined') {
if (is_opera_preseven) {
document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera6Fixes.css">');
- } else if (is_opera_seven) {
+ } else if (is_opera_seven && !is_opera_95) {
document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera7Fixes.css">');
+ } else if (is_opera_95) {
+ document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/Opera95Fixes.css">');
} else if (is_khtml) {
document.write('<link rel="stylesheet" type="text/css" href="'+stylepath+'/'+skin+'/KHTMLFixes.css">');
}
@@ -373,7 +376,8 @@ function mwSetupToolbar() {
// Don't generate buttons for browsers which don't fully
// support it.
- if (!document.selection && textbox.selectionStart === null) {
+ if (!(document.selection && document.selection.createRange)
+ && textbox.selectionStart === null) {
return false;
}
@@ -408,7 +412,6 @@ function escapeQuotesHTML(text) {
// apply tagOpen/tagClose to selection in textarea,
// use sampleText instead of selection if there is none
-// copied and adapted from phpBB
function insertTags(tagOpen, tagClose, sampleText) {
var txtarea;
if (document.editform) {
@@ -418,62 +421,72 @@ function insertTags(tagOpen, tagClose, sampleText) {
var areas = document.getElementsByTagName('textarea');
txtarea = areas[0];
}
+ var selText, isSample = false;
- // IE
- if (document.selection && !is_gecko) {
- var theSelection = document.selection.createRange().text;
- if (!theSelection) {
- theSelection=sampleText;
- }
+ if (document.selection && document.selection.createRange) { // IE/Opera
+
+ //save window scroll position
+ if (document.documentElement && document.documentElement.scrollTop)
+ var winScroll = document.documentElement.scrollTop
+ else if (document.body)
+ var winScroll = document.body.scrollTop;
+ //get current selection
txtarea.focus();
- if (theSelection.charAt(theSelection.length - 1) == " ") { // exclude ending space char, if any
- theSelection = theSelection.substring(0, theSelection.length - 1);
- document.selection.createRange().text = tagOpen + theSelection + tagClose + " ";
- } else {
- document.selection.createRange().text = tagOpen + theSelection + tagClose;
+ var range = document.selection.createRange();
+ selText = range.text;
+ //insert tags
+ checkSelectedText();
+ range.text = tagOpen + selText + tagClose;
+ //mark sample text as selected
+ if (isSample && range.moveStart) {
+ if (window.opera)
+ tagClose = tagClose.replace(/\n/g,'');
+ range.moveStart('character', - tagClose.length - selText.length);
+ range.moveEnd('character', - tagClose.length);
}
-
- // Mozilla
- } else if(txtarea.selectionStart || txtarea.selectionStart == '0') {
- var replaced = false;
+ range.select();
+ //restore window scroll position
+ if (document.documentElement && document.documentElement.scrollTop)
+ document.documentElement.scrollTop = winScroll
+ else if (document.body)
+ document.body.scrollTop = winScroll;
+
+ } else if (txtarea.selectionStart || txtarea.selectionStart == '0') { // Mozilla
+
+ //save textarea scroll position
+ var textScroll = txtarea.scrollTop;
+ //get current selection
+ txtarea.focus();
var startPos = txtarea.selectionStart;
var endPos = txtarea.selectionEnd;
- if (endPos-startPos) {
- replaced = true;
- }
- var scrollTop = txtarea.scrollTop;
- var myText = (txtarea.value).substring(startPos, endPos);
- if (!myText) {
- myText=sampleText;
- }
- var subst;
- if (myText.charAt(myText.length - 1) == " ") { // exclude ending space char, if any
- subst = tagOpen + myText.substring(0, (myText.length - 1)) + tagClose + " ";
- } else {
- subst = tagOpen + myText + tagClose;
- }
- txtarea.value = txtarea.value.substring(0, startPos) + subst +
- txtarea.value.substring(endPos, txtarea.value.length);
- txtarea.focus();
+ selText = txtarea.value.substring(startPos, endPos);
+ //insert tags
+ checkSelectedText();
+ txtarea.value = txtarea.value.substring(0, startPos)
+ + tagOpen + selText + tagClose
+ + txtarea.value.substring(endPos, txtarea.value.length);
//set new selection
- if (replaced) {
- var cPos = startPos+(tagOpen.length+myText.length+tagClose.length);
- txtarea.selectionStart = cPos;
- txtarea.selectionEnd = cPos;
+ if (isSample) {
+ txtarea.selectionStart = startPos + tagOpen.length;
+ txtarea.selectionEnd = startPos + tagOpen.length + selText.length;
} else {
- txtarea.selectionStart = startPos+tagOpen.length;
- txtarea.selectionEnd = startPos+tagOpen.length+myText.length;
+ txtarea.selectionStart = startPos + tagOpen.length + selText.length + tagClose.length;
+ txtarea.selectionEnd = txtarea.selectionStart;
}
- txtarea.scrollTop = scrollTop;
+ //restore textarea scroll position
+ txtarea.scrollTop = textScroll;
+ }
- // All other browsers get no toolbar.
- // There was previously support for a crippled "help"
- // bar, but that caused more problems than it solved.
- }
- // reposition cursor if possible
- if (txtarea.createTextRange) {
- txtarea.caretPos = document.selection.createRange().duplicate();
+ function checkSelectedText(){
+ if (!selText) {
+ selText = sampleText;
+ isSample = true;
+ } else if (selText.charAt(selText.length - 1) == ' ') { //exclude ending space char
+ selText = selText.substring(0, selText.length - 1);
+ tagClose += ' '
+ }
}
+
}
@@ -604,8 +617,7 @@ function akeytt( doId ) {
// the original.
var ta;
if ( doId ) {
- ta = new Array;
- ta[doId] = window.ta[doId];
+ ta = [doId];
} else {
ta = window.ta;
}
@@ -713,8 +725,10 @@ function addCheckboxClickHandlers(inputs, start) {
var cb = inputs[i];
if ( !cb.type || cb.type.toLowerCase() != 'checkbox' )
continue;
- cb.index = checkboxes.push(cb) - 1;
- cb.onmouseup = checkboxMouseupHandler;
+ var end = checkboxes.length;
+ checkboxes[end] = cb;
+ cb.index = end;
+ cb.onclick = checkboxClickHandler;
}
if ( finish < inputs.length ) {
@@ -724,7 +738,7 @@ function addCheckboxClickHandlers(inputs, start) {
}
}
-function checkboxMouseupHandler(e) {
+function checkboxClickHandler(e) {
if (typeof e == 'undefined') {
e = window.event;
}
@@ -732,10 +746,7 @@ function checkboxMouseupHandler(e) {
lastCheckbox = this.index;
return true;
}
- var endState = !this.checked;
- if ( is_opera ) { // opera has already toggled the checkbox by this point
- endState = !endState;
- }
+ var endState = this.checked;
var start, finish;
if ( this.index < lastCheckbox ) {
start = this.index + 1;
@@ -767,47 +778,23 @@ function toggle_element_check(ida,idb) {
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('\\');
- var fname;
- if (slash == -1 && backslash == -1) {
- fname = path;
- } else if (slash > backslash) {
- fname = path.substring(slash+1, 10000);
- } else {
- fname = path.substring(backslash+1, 10000);
- }
-
- // Capitalise first letter and replace spaces by underscores
- fname = fname.charAt(0).toUpperCase().concat(fname.substring(1,10000)).replace(/ /g, '_');
-
- // Output result
- var destFile = document.getElementById('wpDestFile');
- if (destFile) {
- destFile.value = fname;
- }
-}
-
+/**
+ * Restore the edit box scroll state following a preview operation,
+ * and set up a form submission handler to remember this state
+ */
function scrollEditBox() {
- var editBoxEl = document.getElementById("wpTextbox1");
- var scrollTopEl = document.getElementById("wpScrolltop");
- var editFormEl = document.getElementById("editform");
-
- if (editBoxEl && scrollTopEl) {
- if (scrollTopEl.value) { editBoxEl.scrollTop = scrollTopEl.value; }
- editFormEl.onsubmit = function() {
- document.getElementById("wpScrolltop").value = document.getElementById("wpTextbox1").scrollTop;
- };
+ var editBox = document.getElementById( 'wpTextbox1' );
+ var scrollTop = document.getElementById( 'wpScrolltop' );
+ var editForm = document.getElementById( 'editform' );
+ if( editBox && scrollTop ) {
+ if( scrollTop.value )
+ editBox.scrollTop = scrollTop.value;
+ addHandler( editForm, 'submit', function() {
+ document.getElementById( 'wpScrolltop' ).value = document.getElementById( 'wpTextbox1' ).scrollTop;
+ } );
}
}
-
-hookEvent("load", scrollEditBox);
+hookEvent( 'load', scrollEditBox );
var allmessages_nodelist = false;
var allmessages_modified = false;
@@ -905,11 +892,13 @@ function getElementsByClassName(oElm, strTagName, oClassNames){
var arrRegExpClassNames = new Array();
if(typeof oClassNames == "object"){
for(var i=0; i<oClassNames.length; i++){
- arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
+ arrRegExpClassNames[arrRegExpClassNames.length] =
+ new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)");
}
}
else{
- arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
+ arrRegExpClassNames[arrRegExpClassNames.length] =
+ new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)");
}
var oElement;
var bMatchesAll;
@@ -923,7 +912,7 @@ function getElementsByClassName(oElm, strTagName, oClassNames){
}
}
if(bMatchesAll){
- arrReturnElements.push(oElement);
+ arrReturnElements[arrReturnElements.length] = oElement;
}
}
return (arrReturnElements)
@@ -1010,7 +999,8 @@ function ts_makeSortable(table) {
function ts_getInnerText(el) {
if (typeof el == "string") return el;
if (typeof el == "undefined") { return el };
- if (el.innerText) return el.innerText; // Not needed but it is faster
+ if (el.textContent) return el.textContent; // not needed but it is faster
+ if (el.innerText) return el.innerText; // IE doesn't have textContent
var str = "";
var cs = el.childNodes;
@@ -1213,6 +1203,83 @@ function ts_alternate(table) {
/*
* End of table sorting code
*/
+
+
+/**
+ * Add a cute little box at the top of the screen to inform the user of
+ * something, replacing any preexisting message.
+ *
+ * @param String message HTML to be put inside the right div
+ * @param String className Used in adding a class; should be different for each
+ * call to allow CSS/JS to hide different boxes. null = no class used.
+ * @return Boolean True on success, false on failure
+ */
+function jsMsg( message, className ) {
+ if ( !document.getElementById ) {
+ return false;
+ }
+ // We special-case skin structures provided by the software. Skins that
+ // choose to abandon or significantly modify our formatting can just define
+ // an mw-js-message div to start with.
+ var messageDiv = document.getElementById( 'mw-js-message' );
+ if ( !messageDiv ) {
+ messageDiv = document.createElement( 'div' );
+ if ( document.getElementById( 'column-content' )
+ && document.getElementById( 'content' ) ) {
+ // MonoBook, presumably
+ document.getElementById( 'content' ).insertBefore(
+ messageDiv,
+ document.getElementById( 'content' ).firstChild
+ );
+ } else if ( document.getElementById('content')
+ && document.getElementById( 'article' ) ) {
+ // Non-Monobook but still recognizable (old-style)
+ document.getElementById( 'article').insertBefore(
+ messageDiv,
+ document.getElementById( 'article' ).firstChild
+ );
+ } else {
+ return false;
+ }
+ }
+
+ messageDiv.setAttribute( 'id', 'mw-js-message' );
+ if( className ) {
+ messageDiv.setAttribute( 'class', 'mw-js-message-'+className );
+ }
+ messageDiv.innerHTML = message;
+ return true;
+}
+
+/**
+ * Inject a cute little progress spinner after the specified element
+ *
+ * @param element Element to inject after
+ * @param id Identifier string (for use with removeSpinner(), below)
+ */
+function injectSpinner( element, id ) {
+ var spinner = document.createElement( "img" );
+ spinner.id = "mw-spinner-" + id;
+ spinner.src = stylepath + "/common/images/spinner.gif";
+ spinner.alt = spinner.title = "...";
+ if( element.nextSibling ) {
+ element.parentNode.insertBefore( spinner, element.nextSibling );
+ } else {
+ element.parentNode.appendChild( spinner );
+ }
+}
+
+/**
+ * Remove a progress spinner added with injectSpinner()
+ *
+ * @param id Identifier string
+ */
+function removeSpinner( id ) {
+ var spinner = document.getElementById( "mw-spinner-" + id );
+ if( spinner ) {
+ spinner.parentNode.removeChild( spinner );
+ }
+}
function runOnloadHook() {
// don't run anything below this for non-dom browsers
@@ -1239,8 +1306,31 @@ function runOnloadHook() {
}
}
+/**
+ * Add an event handler to an element
+ *
+ * @param Element element Element to add handler to
+ * @param String attach Event to attach to
+ * @param callable handler Event handler callback
+ */
+function addHandler( element, attach, handler ) {
+ if( window.addEventListener ) {
+ element.addEventListener( attach, handler, false );
+ } else if( window.attachEvent ) {
+ element.attachEvent( 'on' + attach, handler );
+ }
+}
+
+/**
+ * Add a click event handler to an element
+ *
+ * @param Element element Element to add handler to
+ * @param callable handler Event handler callback
+ */
+function addClickHandler( element, handler ) {
+ addHandler( element, 'click', handler );
+}
//note: all skins should call runOnloadHook() at the end of html output,
// so the below should be redundant. It's there just in case.
hookEvent("load", runOnloadHook);
-
hookEvent("load", mwSetupToolbar);
diff --git a/skins/disabled/HTMLDump.php b/skins/disabled/HTMLDump.php
index 4e1ca4e9..d5e2300e 100644
--- a/skins/disabled/HTMLDump.php
+++ b/skins/disabled/HTMLDump.php
@@ -101,7 +101,7 @@ class HTMLDumpTemplate extends QuickTemplate {
* class, and a wrapper for MediaWiki's localization database, and
* outputs a formatted page.
*
- * @access private
+ * @private
*/
function execute() {
wfSuppressWarnings();
diff --git a/skins/disabled/MonoBook.tpl b/skins/disabled/MonoBook.tpl
index a5a259c8..58bc4f5c 100644
--- a/skins/disabled/MonoBook.tpl
+++ b/skins/disabled/MonoBook.tpl
@@ -5,7 +5,7 @@
{headlinks}
{headscripts}
<title>{pagetitle}</title>
- <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "{~ stylepath}/{~ stylename}/main.css?5"; /*]]>*/</style>
+ <style type="text/css" media="screen, projection">/*<![CDATA[*/ @import "{~ stylepath}/{~ stylename}/main.css?5"; /*]]>*/</style>
<link rel="stylesheet" type="text/css" {if notprintable {media="print"}} href="{~ stylepath}/common/commonPrint.css" />
<!--[if lt IE 5.5000]><style type="text/css">@import "{~ stylepath}/{~ stylename}/IE50Fixes.css";</style><![endif]-->
<!--[if IE 5.5000]><style type="text/css">@import "{~ stylepath}/{~ stylename}/IE55Fixes.css";</style><![endif]-->
diff --git a/skins/disabled/MonoBookCBT.php b/skins/disabled/MonoBookCBT.php
index aa9abb00..03e5f070 100644
--- a/skins/disabled/MonoBookCBT.php
+++ b/skins/disabled/MonoBookCBT.php
@@ -1386,4 +1386,4 @@ class SkinMonoBookCBT extends SkinTemplate {
return $this->mTalkPage;
}
}
-?>
+
diff --git a/skins/monobook/Opera95Fixes.css b/skins/monobook/Opera95Fixes.css
new file mode 100644
index 00000000..6048c66c
--- /dev/null
+++ b/skins/monobook/Opera95Fixes.css
@@ -0,0 +1,10 @@
+/**
+ * One tweak for Opera 9.5 carried over from Opera 7. This seems to be exactly
+ * the same rule as is used for #bodyContent a.external normally, why do we
+ * need it? Someone should compare with and without and remove this file en-
+ * tirely if appropriate.
+ */
+#bodyContent a.external {
+ background: url(external.png) center right no-repeat;
+ padding-right: 13px;
+}
diff --git a/skins/monobook/main.css b/skins/monobook/main.css
index ff18f349..3c089ded 100644
--- a/skins/monobook/main.css
+++ b/skins/monobook/main.css
@@ -9,32 +9,21 @@
** All you guys rock :)
*/
-/**
- * Stylesheet for screen/projection. All rules not marked media-specific are
- * shared with handheld.css and should be updated in tandem. The rules can't
- * be in the same file because old browsers like IE5 won't obey @media rules.
- *
- * Rules that are screen/projection-specific are marked with commented-out
- * @media rules and indentation.
- */
-
-/* @media screen, projection { */
- #column-content {
- width: 100%;
- float: right;
- margin: 0 0 .6em -12.2em;
- padding: 0;
- }
- #content {
- margin: 2.8em 0 0 12.2em;
- padding: 0 1em 1.5em 1em;
- position: relative;
- z-index: 2;
- }
- #column-one {
- padding-top: 160px;
- }
-/* } */
+#column-content {
+ width: 100%;
+ float: right;
+ margin: 0 0 .6em -12.2em;
+ padding: 0;
+}
+#content {
+ margin: 2.8em 0 0 12.2em;
+ padding: 0 1em 1.5em 1em;
+ position: relative;
+ z-index: 2;
+}
+#column-one {
+ padding-top: 160px;
+}
#content {
background: white;
color: black;
@@ -106,12 +95,10 @@ img {
border: none;
vertical-align: middle;
}
-/* @media screen, projection { */
- p {
- margin: .4em 0 .5em 0;
- line-height: 1.5em;
- }
-/* } */
+p {
+ margin: .4em 0 .5em 0;
+ line-height: 1.5em;
+}
p img {
margin: 0;
}
@@ -150,11 +137,6 @@ h5 .editsection { font-weight: normal; }
h6 { font-size: 80%; }
h6 .editsection { font-size: 125%; font-weight: normal; }
-.editsection {
- float: right;
- margin-left: 5px;
-}
-
ul {
line-height: 1.5em;
list-style-type: square;
@@ -245,14 +227,12 @@ pre {
** the main content area
*/
-/* @media screen, projection { */
- #siteSub {
- display: none;
- }
- #jump-to-nav {
- display: none;
- }
-/* } */
+#siteSub {
+ display: none;
+}
+#jump-to-nav {
+ display: none;
+}
#contentSub, #contentSub2 {
font-size: 84%;
@@ -485,16 +465,11 @@ div.tleft {
margin-right: .5em;
border-width: .5em 1.4em .8em 0;
}
-
+img.thumbborder {
+ border: 1px solid #dddddd;
+}
.hiddenStructure {
display: none;
- speak: none;
-}
-img.tex {
- vertical-align: middle;
-}
-span.texhtml {
- font-family: serif;
}
/* Have a checkered background on images on the description pages and in galleries
@@ -582,30 +557,6 @@ div.townBox dl dd {
}
/*
-** Diff rendering
-*/
-table.diff, td.diff-otitle, td.diff-ntitle {
- background-color: white;
-}
-td.diff-addedline {
- background: #cfc;
- font-size: smaller;
-}
-td.diff-deletedline {
- background: #ffa;
- font-size: smaller;
-}
-td.diff-context {
- background: #eee;
- font-size: smaller;
-}
-.diffchange {
- color: red;
- font-weight: bold;
- text-decoration: none;
-}
-
-/*
** keep the whitespace in front of the ^=, hides rule from konqueror
** this is css3, the validator doesn't like it when validating as css2
*/
@@ -752,45 +703,41 @@ special external link styling */
** Logo properties
*/
-/* @media screen, projection { */
- #p-logo {
- top: 0;
- left: 0;
- position: absolute; /*needed to use z-index */
- z-index: 3;
- height: 155px;
- width: 12em;
- overflow: visible;
- }
- #p-logo h5 {
- display: none;
- }
- #p-logo a,
- #p-logo a:hover {
- display: block;
- height: 155px;
- width: 12.2em;
- background-repeat: no-repeat;
- background-position: 35% 50% !important;
- text-decoration: none;
- }
-/* } */
+#p-logo {
+ top: 0;
+ left: 0;
+ position: absolute; /*needed to use z-index */
+ z-index: 3;
+ height: 155px;
+ width: 12em;
+ overflow: visible;
+}
+#p-logo h5 {
+ display: none;
+}
+#p-logo a,
+#p-logo a:hover {
+ display: block;
+ height: 155px;
+ width: 12.2em;
+ background-repeat: no-repeat;
+ background-position: 35% 50% !important;
+ text-decoration: none;
+}
/*
** the navigation portlet
*/
-/* @media screen, projection { */
- #p-navigation {
- position: relative;
- z-index: 3;
- }
- #p-navigation a {
- display: block;
- }
- #p-navigation li.active a, #p-navigation li.active a:hover {
- display: inline;
- }
-/* } */
+#p-navigation {
+ position: relative;
+ z-index: 3;
+}
+#p-navigation a {
+ display: block;
+}
+#p-navigation li.active a, #p-navigation li.active a:hover {
+ display: inline;
+}
#p-navigation .pBody {
padding-right: 0;
@@ -805,12 +752,10 @@ special external link styling */
/*
** Search portlet
*/
-/* @media screen, projection { */
- #p-search {
- position: relative;
- z-index: 3;
- }
-/* } */
+#p-search {
+ position: relative;
+ z-index: 3;
+}
input.searchButton {
margin-top: 1px;
font-size: 95%;
@@ -833,82 +778,80 @@ input.searchButton {
/*
** the personal toolbar
*/
-/* @media screen, projection { */
- #p-personal {
- position: absolute;
- left: 0;
- top: 0;
- z-index: 0;
- }
- #p-personal {
- width: 100%;
- white-space: nowrap;
- padding: 0;
- margin: 0;
- border: none;
- background: none;
- overflow: visible;
- line-height: 1.2em;
- }
- #p-personal h5 {
- display: none;
- }
- #p-personal .portlet,
- #p-personal .pBody {
- z-index: 0;
- padding: 0;
- margin: 0;
- border: none;
- overflow: visible;
- background: none;
- }
+#p-personal {
+ position: absolute;
+ left: 0;
+ top: 0;
+ z-index: 0;
+}
+#p-personal {
+ width: 100%;
+ white-space: nowrap;
+ padding: 0;
+ margin: 0;
+ border: none;
+ background: none;
+ overflow: visible;
+ line-height: 1.2em;
+}
+#p-personal h5 {
+ display: none;
+}
+#p-personal .portlet,
+#p-personal .pBody {
+ z-index: 0;
+ padding: 0;
+ margin: 0;
+ border: none;
+ overflow: visible;
+ background: none;
+}
/* this is the ul contained in the portlet */
- #p-personal ul {
- border: none;
- line-height: 1.4em;
- color: #2f6fab;
- padding: 0 2em 0 3em;
- margin: 0;
- text-align: right;
- list-style: none;
- z-index: 0;
- background: none;
- cursor: default;
- }
- #p-personal li {
- z-index: 0;
- border: none;
- padding: 0;
- display: inline;
- color: #2f6fab;
- margin-left: 1em;
- line-height: 1.2em;
- background: none;
- }
- #p-personal li a {
- text-decoration: none;
- color: #005896;
- padding-bottom: .2em;
- background: none;
- }
- #p-personal li a:hover {
- background-color: white;
- padding-bottom: .2em;
- text-decoration: none;
- }
- #p-personal li.active a:hover {
- background-color: transparent;
- }
- /* the icon in front of the user name, single quotes
- in bg url to hide it from iemac */
- li#pt-userpage,
- li#pt-anonuserpage,
- li#pt-login {
- background: url(user.gif) top left no-repeat;
- padding-left: 20px;
- text-transform: none;
- }
-/* } */
+#p-personal ul {
+ border: none;
+ line-height: 1.4em;
+ color: #2f6fab;
+ padding: 0 2em 0 3em;
+ margin: 0;
+ text-align: right;
+ list-style: none;
+ z-index: 0;
+ background: none;
+ cursor: default;
+}
+#p-personal li {
+ z-index: 0;
+ border: none;
+ padding: 0;
+ display: inline;
+ color: #2f6fab;
+ margin-left: 1em;
+ line-height: 1.2em;
+ background: none;
+}
+#p-personal li a {
+ text-decoration: none;
+ color: #005896;
+ padding-bottom: .2em;
+ background: none;
+}
+#p-personal li a:hover {
+ background-color: white;
+ padding-bottom: .2em;
+ text-decoration: none;
+}
+#p-personal li.active a:hover {
+ background-color: transparent;
+}
+/* the icon in front of the user name, single quotes
+in bg url to hide it from iemac */
+li#pt-userpage,
+li#pt-anonuserpage,
+li#pt-login {
+ background: url(user.gif) top left no-repeat;
+ padding-left: 20px;
+ text-transform: none;
+}
#p-personal ul {
text-transform: lowercase;
}
@@ -918,91 +861,89 @@ input.searchButton {
/*
** the page-related actions- page/talk, edit etc
*/
-/* @media screen, projection { */
- #p-cactions {
- position: absolute;
- top: 1.3em;
- left: 11.5em;
- margin: 0;
- white-space: nowrap;
- width: 76%;
- line-height: 1.1em;
- overflow: visible;
- background: none;
- border-collapse: collapse;
- padding-left: 1em;
- list-style: none;
- font-size: 95%;
- }
- #p-cactions ul {
- list-style: none;
- }
- #p-cactions li {
- display: inline;
- border: 1px solid #aaa;
- border-bottom: none;
- padding: 0 0 .1em 0;
- margin: 0 .3em 0 0;
- overflow: visible;
- background: white;
- }
- #p-cactions li.selected {
- border-color: #fabd23;
- padding: 0 0 .2em 0;
- font-weight: bold;
- }
- #p-cactions li a {
- background-color: #fbfbfb;
- color: #002bb8;
- border: none;
- padding: 0 .8em .3em;
- position: relative;
- z-index: 0;
- margin: 0;
- text-decoration: none;
- }
- #p-cactions li.selected a {
- z-index: 3;
- padding: 0 1em .2em!important;
- background-color: white;
- }
- #p-cactions .new a {
- color: #ba0000;
- }
- #p-cactions li a:hover {
- z-index: 3;
- text-decoration: none;
- background-color: white;
- }
- #p-cactions h5 {
- display: none;
- }
- #p-cactions li.istalk {
- margin-right: 0;
- }
- #p-cactions li.istalk a {
- padding-right: .5em;
- }
- #p-cactions #ca-addsection a {
- padding-left: .4em;
- padding-right: .4em;
- }
- /* offsets to distinguish the tab groups */
- li#ca-talk {
- margin-right: 1.6em;
- }
- li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {
- margin-left: 1.6em;
- }
- #p-cactions .pBody {
- font-size: 1em;
- background-color: transparent;
- color: inherit;
- border-collapse: inherit;
- border: 0;
- padding: 0;
- }
-/* } */
+#p-cactions {
+ position: absolute;
+ top: 1.3em;
+ left: 11.5em;
+ margin: 0;
+ white-space: nowrap;
+ width: 76%;
+ line-height: 1.1em;
+ overflow: visible;
+ background: none;
+ border-collapse: collapse;
+ padding-left: 1em;
+ list-style: none;
+ font-size: 95%;
+}
+#p-cactions ul {
+ list-style: none;
+}
+#p-cactions li {
+ display: inline;
+ border: 1px solid #aaa;
+ border-bottom: none;
+ padding: 0 0 .1em 0;
+ margin: 0 .3em 0 0;
+ overflow: visible;
+ background: white;
+}
+#p-cactions li.selected {
+ border-color: #fabd23;
+ padding: 0 0 .2em 0;
+ font-weight: bold;
+}
+#p-cactions li a {
+ background-color: #fbfbfb;
+ color: #002bb8;
+ border: none;
+ padding: 0 .8em .3em;
+ position: relative;
+ z-index: 0;
+ margin: 0;
+ text-decoration: none;
+}
+#p-cactions li.selected a {
+ z-index: 3;
+ padding: 0 1em .2em!important;
+ background-color: white;
+}
+#p-cactions .new a {
+ color: #ba0000;
+}
+#p-cactions li a:hover {
+ z-index: 3;
+ text-decoration: none;
+ background-color: white;
+}
+#p-cactions h5 {
+ display: none;
+}
+#p-cactions li.istalk {
+ margin-right: 0;
+}
+#p-cactions li.istalk a {
+ padding-right: .5em;
+}
+#p-cactions #ca-addsection a {
+ padding-left: .4em;
+ padding-right: .4em;
+}
+/* offsets to distinguish the tab groups */
+li#ca-talk {
+ margin-right: 1.6em;
+}
+li#ca-watch, li#ca-unwatch, li#ca-varlang-0, li#ca-print {
+ margin-left: 1.6em;
+}
+#p-cactions .pBody {
+ font-size: 1em;
+ background-color: transparent;
+ color: inherit;
+ border-collapse: inherit;
+ border: 0;
+ padding: 0;
+}
#p-cactions .hiddenStructure {
display: none;
}
@@ -1013,13 +954,11 @@ input.searchButton {
/*
** the remaining portlets
*/
-/* @media screen, projection { */
- #p-tbx,
- #p-lang {
- position: relative;
- z-index: 3;
- }
-/* } */
+#p-tbx,
+#p-lang {
+ position: relative;
+ z-index: 3;
+}
/* TODO: #t-iscite is only used by the Cite extension, come up with some
* system which allows extensions to add to this file on the fly
@@ -1068,21 +1007,19 @@ input.searchButton {
background-color: #f0f0f0;
color: #000;
}
-/* @media screen, projection { */
- #preftoc li {
- margin: 1px -2px 1px 2px;
- float: left;
- padding: 2px 0 3px 0;
- border: 1px solid #fff;
- border-right-color: #716f64;
- border-bottom: 0;
- position: relative;
- white-space: nowrap;
- list-style-type: none;
- list-style-image: none;
- z-index: 3;
- }
-/* } */
+#preftoc li {
+ margin: 1px -2px 1px 2px;
+ float: left;
+ padding: 2px 0 3px 0;
+ border: 1px solid #fff;
+ border-right-color: #716f64;
+ border-bottom: 0;
+ position: relative;
+ white-space: nowrap;
+ list-style-type: none;
+ list-style-image: none;
+ z-index: 3;
+}
#preftoc li.selected {
font-weight: bold;
background-color: #f9f9f9;
@@ -1135,17 +1072,13 @@ input.searchButton {
.prefsection table, .prefsection legend {
background-color: #F9F9F9;
}
-/* @media screen, projection { */
- .mainLegend {
- display: none;
- }
-/* } */
+.mainLegend {
+ display: none;
+}
div.prefsectiontip {
- font-size: 95%;
- margin-top: 0;
- background-color: #FFC1C1;
- padding: .2em .7em;
- clear: both;
+ font-size: x-small;
+ padding: .2em 2em;
+ color: #666;
}
.btnSavePrefs {
font-weight: bold;
@@ -1183,10 +1116,10 @@ div#userlogin form#userlogin2 h2 {
padding-top: 0;
}
-div#userlogin .captcha {
+div#userlogin .captcha,
+div#userloginForm .captcha {
border: 1px solid #bbb;
padding: 1.5em 2em;
- width: 400px;
background-color: white;
}
@@ -1209,29 +1142,27 @@ div#userlogin .captcha {
font-weight: bold;
}
-/* @media screen, projection { */
- /*
- ** IE/Mac fixes, hope to find a validating way to move this
- ** to a separate stylesheet. This would work but doesn't validate:
- ** @import("IEMacFixes.css");
- */
- /* tabs: border on the a, not the div */
- * > html #p-cactions li { border: none; }
- * > html #p-cactions li a {
- border: 1px solid #aaa;
- border-bottom: none;
- }
- * > html #p-cactions li.selected a { border-color: #fabd23; }
- /* footer icons need a fixed width */
- * > html #f-poweredbyico,
- * > html #f-copyrightico { width: 88px; }
- * > html #bodyContent,
- * > html #bodyContent pre {
- overflow-x: auto;
- width: 100%;
- padding-bottom: 25px;
- }
-/* } */
+/*
+** IE/Mac fixes, hope to find a validating way to move this
+** to a separate stylesheet. This would work but doesn't validate:
+** @import("IEMacFixes.css");
+*/
+/* tabs: border on the a, not the div */
+* > html #p-cactions li { border: none; }
+* > html #p-cactions li a {
+ border: 1px solid #aaa;
+ border-bottom: none;
+}
+* > html #p-cactions li.selected a { border-color: #fabd23; }
+/* footer icons need a fixed width */
+* > html #f-poweredbyico,
+* > html #f-copyrightico { width: 88px; }
+* > html #bodyContent,
+* > html #bodyContent pre {
+ overflow-x: auto;
+ width: 100%;
+ padding-bottom: 25px;
+}
/* more IE fixes */
/* float/negative margin brokenness */
@@ -1327,6 +1258,7 @@ div.gallerybox div.thumb {
}
div.gallerytext {
+ overflow: hidden;
font-size: 94%;
padding: 2px 4px;
}
@@ -1618,15 +1550,32 @@ p.mw-ipb-conveniencelinks {
float: right;
}
-/**
- * Here is some stuff that's ACTUALLY COMMON TO ALL SKINS.
- * When the day comes, it can be moved to a *real* common.css.
- */
-.mw-plusminus-null { color: #aaa; }
-.texvc { direction: ltr; unicode-bidi: embed; }
-/* Stop floats from intruding into edit area in previews */
-#toolbar, #wpTextbox1 { clear: both; }
+/* Friendlier slave lag warnings */
+div.mw-lag-warn-normal,
+div.mw-lag-warn-high {
+ padding: 3px;
+ text-align: center;
+ margin: 3px auto;
+}
+div.mw-lag-warn-normal {
+ border: 1px solid #FFCC66;
+ background-color: #FFFFCC;
+}
+div.mw-lag-warn-high {
+ font-weight: bold;
+ border: 2px solid #FF0033;
+ background-color: #FFCCCC;
+}
+/* Recreating-deleted-page warning and log entries */
+div#mw-recreate-deleted-warn {
+ padding: 3px;
+ margin-bottom: 3px;
+ border: 2px solid #2F6FAB;
+}
+div#mw-recreate-deleted-warn ul li {
+ font-size: 90%;
+}
.MediaTransformError {
background-color: #ccc;
padding: 0.1em;
@@ -1635,4 +1584,4 @@ p.mw-ipb-conveniencelinks {
text-align: center;
vertical-align: middle;
font-size: 90%;
-}
+} \ No newline at end of file
diff --git a/skins/monobook/rtl.css b/skins/monobook/rtl.css
index ce87855d..e28ffb75 100644
--- a/skins/monobook/rtl.css
+++ b/skins/monobook/rtl.css
@@ -219,3 +219,11 @@ input#wpSave, input#wpDiff {
p.mw-ipb-conveniencelinks {
float: left;
}
+
+.toggle {
+ margin-left: 0em;
+ margin-right: 2em;
+}
+table.filehistory th {
+ text-align: right;
+}
diff --git a/skins/monobook/user.gif b/skins/monobook/user.gif
index bc934396..c9c9ab96 100644
--- a/skins/monobook/user.gif
+++ b/skins/monobook/user.gif
Binary files differ
diff --git a/skins/simple/main.css b/skins/simple/main.css
index ea682ecc..c159b1f4 100644
--- a/skins/simple/main.css
+++ b/skins/simple/main.css
@@ -10,12 +10,9 @@ h1, h2, h3, h4, h5, h6 { font-weight: bolder }
/* Now the custom parts */
-/* Make edit sections (which are inside h# tags) normal-sized
- and otherwise format */
+/* Make edit sections (which are inside h# tags) normal-sized */
.editsection {
font-weight: normal;
- float: right;
- margin-left: 5px;
}
h1 .editsection { font-size: 50% }
h2 .editsection { font-size: 66.7% }
@@ -346,6 +343,9 @@ div.tleft {
margin-right:0.5em;
border-width: 0.5em 1.4em 0.8em 0;
}
+img.thumbborder {
+ border: 1px solid #dddddd;
+}
a.stub { color: #772233; }
a.new,
@@ -438,17 +438,11 @@ table.collapsed tr.collapsable {
.templatesUsed { margin-top: 1.5em; }
-/**
- * Here is some stuff that's ACTUALLY COMMON TO ALL SKINS.
- * When the day comes, it can be moved to a *real* common.css.
- */
-.mw-plusminus-null { color: #aaa; }
-.texvc { direction: ltr; unicode-bidi: embed; }
-/* Stop floats from intruding into edit area in previews */
-#toolbar, #wpTextbox1 { clear: both; }
-
-/*
-#file img, .gallerybox .thumb img {
- background: url(../common/images/Checker-16x16.png) repeat;
+/* Recreating-deleted-page warning and log entries */
+div#mw-recreate-deleted-warn ul li {
+ font-size: 95%;
+}
+div.mw-recreate-deleted-control {
+ float: right;
+ font-size: 90%;
}
-*/ \ No newline at end of file