Revision: 43697
Author:   brion
Date:     2008-11-19 01:36:43 +0000 (Wed, 19 Nov 2008)

Log Message:
-----------
Tweak around how the collapse/expansion is done, set up distinct styles which 
can be used to make user and anon alternates for the collapsed version more 
cleanly.
.siteNoticeBig -- big version (as before)
.siteNoticeSmall -- small version (as before)
.siteNoticeSmallUser -- small version showing for logged-in users only
.siteNoticeSmallAnon -- small version showing for anons only

Modified Paths:
--------------
    trunk/extensions/CentralNotice/SpecialNoticeText.php

Modified: trunk/extensions/CentralNotice/SpecialNoticeText.php
===================================================================
--- trunk/extensions/CentralNotice/SpecialNoticeText.php        2008-11-19 
00:19:25 UTC (rev 43696)
+++ trunk/extensions/CentralNotice/SpecialNoticeText.php        2008-11-19 
01:36:43 UTC (rev 43697)
@@ -37,7 +37,12 @@
                                "," .
                                Xml::encodeJsVar( $weights ) .
                                ");\n" .
-                       "if (wgUserName == null && wgNotice != '') 
wgNotice='<div class=\"anonnotice\">'+wgNotice+'</div>';\n";
+                       "if (wgNotice != '')\n" .
+                       "wgNotice='<div id=\"centralNotice\" class=\"' + " .
+                       "(wgNoticeToggleState ? 'expanded' : 'collapsed') + " .
+                       "' ' + " .
+                       "(wgUserName ? 'usernotice' : 'anonnotice' ) + " .
+                       "'\">' + wgNotice+'</div>';\n";
        }
 
        function getHtmlNotice( $noticeName ) {
@@ -50,40 +55,35 @@
 
        function getToggleScripts() {
                $showStyle = <<<END
-<style type="text/css">.siteNoticeSmall{display:none;}</style>
+<style type="text/css">
+#centralNotice .siteNoticeSmall{display:none;}
+#centralNotice .siteNoticeSmallAnon{display:none;}
+#centralNotice .siteNoticeSmallUser{display:none;}
+#centralNotice.collapsed .siteNoticeBig{display:none;}
+#centralNotice.collapsed .siteNoticeSmall{display:block;}
+#centralNotice.collapsed .siteNoticeSmallUser{display:block;}
+#centralNotice.collapsed .siteNoticeSmallAnon{display:block;}
+#centralNotice.anonnotice .siteNoticeSmallUser{display:none !important;}
+#centralNotice.usernotice .siteNoticeSmallAnon{display:none !important;}
+</style>
 END;
-               $hideStyle = <<<END
-<style type="text/css">.siteNoticeBig{display:none;}</style>
-END;
-               $hideToggleStyle = <<<END
-<style type="text/css">.siteNoticeToggle{display:none;}</style>
-END;
                $encShowStyle = Xml::encodeJsVar( $showStyle );
-               $encHideStyle = Xml::encodeJsVar( $hideStyle );
-               $encHideToggleStyle = Xml::encodeJsVar( $hideToggleStyle );
 
                $script = "
 var wgNoticeToggleState = (document.cookie.indexOf('hidesnmessage=1')==-1);
-document.writeln(
-       wgNoticeToggleState
-       ? $encShowStyle
-       : $encHideStyle);
-document.writeln($encHideToggleStyle);\n\n";
+document.writeln($encShowStyle);\n\n";
                return $script;
        }
 
        function getScriptFunctions() {
                $script = "
 function toggleNotice() {
-       var big = getElementsByClassName(document,'div','siteNoticeBig');
-       var small = getElementsByClassName(document,'div','siteNoticeSmall');
+       var notice = document.getElementById('centralNotice');
        if (!wgNoticeToggleState) {
-               toggleNoticeStyle(big,'block');
-               toggleNoticeStyle(small,'none');
+               notice.className = notice.className.replace('collapsed', 
'expanded');
                toggleNoticeCookie('0');
        } else {
-               toggleNoticeStyle(big,'none');
-               toggleNoticeStyle(small,'block');
+               notice.className = notice.className.replace('expanded', 
'collapsed');
                toggleNoticeCookie('1');
        }
        wgNoticeToggleState = !wgNoticeToggleState;



_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to