WordPress.org

Plugin Directory

Changeset 1751358


Ignore:
Timestamp:
10/23/17 18:16:31 (8 weeks ago)
Author:
jamiewilson
Message:

Version 1.1 updates

Location:
gatekeeper/trunk
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • gatekeeper/trunk

    • Property svn:ignore set to
      .git
  • gatekeeper/trunk/gk-jquery.js

    r681396 r1751358  
    55 
    66jQuery("#gk-whitelist-title").click(function() { 
    7     jQuery("#gk-whitelist-table").toggle('slow'); 
    8     jQuery("#gk-blacklist-table").hide('slow'); 
     7    var $parent = jQuery("#gk-whitelist-table"); 
     8    var $toggleStatus = jQuery("#gk-whitelist-title.gk-section-title .gk-toggle-status"); 
     9 
     10    $parent.slideToggle(function() { 
     11        if ( $toggleStatus.attr('data-toggle-status') === 'closed' ) { 
     12            $toggleStatus.attr('data-toggle-status', 'open'); 
     13            $toggleStatus.text('-'); 
     14        } else { 
     15            $toggleStatus.attr('data-toggle-status', 'closed'); 
     16            $toggleStatus.text('+'); 
     17        } 
     18    }); 
    919}); 
    1020 
    1121jQuery("#gk-blacklist-title").click(function() { 
    12     jQuery("#gk-blacklist-table").toggle('slow'); 
    13     jQuery("#gk-whitelist-table").hide('slow'); 
     22    var $parent = jQuery("#gk-blacklist-table"); 
     23    var $toggleStatus = jQuery("#gk-blacklist-title.gk-section-title .gk-toggle-status"); 
     24 
     25    $parent.slideToggle(function() { 
     26        if ( $toggleStatus.attr('data-toggle-status') === 'closed' ) { 
     27            $toggleStatus.attr('data-toggle-status', 'open'); 
     28            $toggleStatus.text('-'); 
     29        } else { 
     30            $toggleStatus.attr('data-toggle-status', 'closed'); 
     31            $toggleStatus.text('+'); 
     32        } 
     33    }); 
    1434}); 
    1535 
     36 
     37// class="gk-toggle-status" data-toggle-status="closed" 
  • gatekeeper/trunk/gkfunc.php

    r1110508 r1751358  
    44Plugin URI: http://wordpress.org/extend/plugins/gatekeeper 
    55Description: Gatekeeper allows administrators to take a WordPress site offline quickly and easily while leaving it fully accessible to administrators and other authorized users. Site visitors will be shown or redirected to a specified offline page. An optional blacklist can be used for permanent bans. 
    6 Version: 1.0.1 
     6Version: 1.1 
    77Author: Jamie Wilson 
    88Author URI: http://jamiewilson.net 
    99License: GPL2 
    10    
    11     Copyright © 2011-2015 Jamie Wilson (email: wpdev@jamiewilson.net) 
     10 
     11    Copyright © 2011-2018 Jamie Wilson (email: wpdev@jamiewilson.net) 
    1212 
    1313    This program is free software; you can redistribute it and/or modify 
    14     it under the terms of the GNU General Public License, version 2, as  
     14    it under the terms of the GNU General Public License, version 2, as 
    1515    published by the Free Software Foundation. 
    1616 
     
    2727 
    2828// REGISTER HOOKS 
    29 register_activation_hook(__FILE__,'gatekeeper_install');  
     29register_activation_hook(__FILE__,'gatekeeper_install'); 
    3030register_deactivation_hook( __FILE__, 'gatekeeper_remove' ); 
    3131 
     
    8787// REGISTER EXTERNAL CSS 
    8888function gatekeeper_css_register() { 
    89     wp_register_style("gatekeeper-css", plugins_url("style.css", __FILE__), false, false); 
     89    wp_register_style("gatekeeper-css", plugins_url("style.min.css", __FILE__), false, false); 
    9090    wp_enqueue_style("gatekeeper-css"); 
    9191} 
     
    9393// REGISTER EXTERNAL JAVASCRIPT 
    9494function gatekeeper_js_register() { 
    95     wp_register_script("gatekeeper-js", plugins_url("gk-jquery.js", __FILE__) ); 
     95    wp_register_script("gatekeeper-js", plugins_url("gk-jquery.min.js", __FILE__) ); 
    9696    wp_enqueue_script("gatekeeper-js"); 
    9797} 
     
    101101    add_management_page('Gatekeeper Settings', 'Gatekeeper', 'manage_options', 'gatekeeper', 'gatekeeper_options'); 
    102102    } 
    103      
     103 
    104104// ADMIN STATUS NOTIFICATION 
    105105function gatekeeper_admin_status() { 
     
    111111} 
    112112 
    113 // DISPLAY THE OPTIONS PAGE  
     113// DISPLAY THE OPTIONS PAGE 
    114114function gatekeeper_options() { 
    115      
     115 
    116116    // DENY ACCESS TO NON-ADMINISTRATORS 
    117117    if (!current_user_can('manage_options'))  { 
    118118        wp_die( __('You do not have sufficient permissions to access this page.') ); 
    119119    } 
    120      
     120 
    121121    // SET USEFUL VARIABLES 
    122122    $GKPATH = WP_PLUGIN_URL . "/gatekeeper/"; 
    123123    global $current_user; 
    124124    ?> 
    125      
     125 
    126126    <div class="wrap"> 
    127127        <div style="background: url('<?php echo $GKPATH; ?>images/banner_bg.png') repeat-x; width: 100%; margin-bottom: 14px;"><img src="<?php echo $GKPATH; ?>images/banner_logo.png" /></div> 
    128128        <?php if (isset($_GET['settings-updated'])) { 
    129129            echo "<div style='color: red;'>Settings saved.</div>"; } ?> 
    130          
     130 
    131131        <div id="gk-main"> 
    132132        <form method="post" action="options.php"> 
     
    136136            <div id="gk-status" class="gk-rounded" style="background: url('<?php echo $GKPATH; ?>images/<?php if (get_option('gatekeeper_active') == "true") { echo "bg_red.jpg"; } else { echo "bg_green.jpg"; } ?>') repeat-x;"> 
    137137                <?php if (get_option('gatekeeper_active') == "true") { echo "Offline"; } else { echo "Online"; } ?> 
    138             </div>               
     138            </div> 
    139139 
    140140            <table class="form-table gk-option-table"> 
    141                  
     141 
    142142                <?php /* SITE STATUS SELECTOR */ ?> 
    143143                <tr valign="top"> 
     
    146146                        <select name="gatekeeper_active"> 
    147147                            <option value="true" <?php if (get_option('gatekeeper_active') == "true" ) { ?>selected="selected"<?php } ?>>Offline</option> 
    148                             <option value="false" <?php if (get_option('gatekeeper_active') == "false" ) { ?>selected="selected"<?php } ?>>Online</option>                   
     148                            <option value="false" <?php if (get_option('gatekeeper_active') == "false" ) { ?>selected="selected"<?php } ?>>Online</option> 
    149149                        </select> 
    150150                    </td> 
    151151                </tr> 
    152                  
     152 
    153153                <?php /* OFFLINE BEHAVIOR */ ?> 
    154154                <tr valign="top"> 
     
    156156                    <td> 
    157157                        <input type="radio" name="gatekeeper_placeholder_behavior" value="redirect" <?php if (get_option('gatekeeper_placeholder_behavior') != 'replace') { echo "checked"; } ?> />Redirect (302 Temporary Redirect) <br /> 
    158                         <input type="radio" name="gatekeeper_placeholder_behavior" value="replace" <?php if (get_option('gatekeeper_placeholder_behavior') == 'replace') { echo "checked"; } ?> />Replace page                   
    159                     </td>                
     158                        <input type="radio" name="gatekeeper_placeholder_behavior" value="replace" <?php if (get_option('gatekeeper_placeholder_behavior') == 'replace') { echo "checked"; } ?> />Replace page 
     159                    </td> 
    160160                </tr> 
    161                  
     161 
    162162                <?php /* OFFLINE PAGE */ ?> 
    163163                <tr valign="top"> 
    164164                    <th scope="row"><label for="gatekeeper_placeholder_redirect_page" title="Display this page when offline. This cannot be a WordPress-managed page.">Offline page:</label></th> 
    165165                    <td> 
    166                         <input name="gatekeeper_placeholder_redirect_page" type="text" style="width: 400px;" value="<?php echo get_option('gatekeeper_placeholder_redirect_page'); ?>" />                    
    167                     </td>                
     166                        <input name="gatekeeper_placeholder_redirect_page" type="text" style="width: 400px;" value="<?php echo get_option('gatekeeper_placeholder_redirect_page'); ?>" /> 
     167                    </td> 
    168168                </tr> 
    169                  
     169 
    170170            </table> 
    171              
     171 
    172172            <?php /* WHITELIST TABLE */ ?> 
    173173            <div id="gk-whitelist"> 
    174                 <div id="gk-whitelist-title" class="gk-section-title">Whitelist</div> 
     174                <div id="gk-whitelist-title" class="gk-section-title">Whitelist <div class="gk-toggle-status" data-toggle-status="closed">+</div></div> 
    175175                <table id="gk-whitelist-table" class="form-table gk-option-table" style="margin-top: 20px;"> 
    176                      
    177                     <tr valign="top"> 
    178                         <td colspan="2">Allow the following to access the site when it is offline for everyone else.</td>                
    179                     </tr> 
    180                      
     176 
     177                    <tr valign="top"> 
     178                        <td colspan="2">Allow the following to access the site when it is offline for everyone else.</td> 
     179                    </tr> 
     180 
    181181                    <?php /* WHITELIST ADMINS */ ?> 
    182182                    <tr valign="top"> 
    183183                        <th scope="row"><label for="gatekeeper_allowadmins" title="Don't apply offline status to logged-in administrators.">Whitelist Logged-in Admins:</label></th> 
    184                         <td><input name="gatekeeper_allowadmins" type="checkbox" value="true" <?php if (get_option('gatekeeper_allowadmins') == "true") { echo "CHECKED"; } ?> /></td>   
    185                     </tr> 
    186                      
     184                        <td><input name="gatekeeper_allowadmins" type="checkbox" value="true" <?php if (get_option('gatekeeper_allowadmins') == "true") { echo "CHECKED"; } ?> /></td> 
     185                    </tr> 
     186 
    187187                    <?php /* AUTO-PROTECT ADMIN IP */ ?> 
    188188                    <tr valign="top"> 
    189                         <th scope="row"><label for="gatekeeper_autoprotect_adminip" title="Automatically whitelist your current IP address to prevent accidentally lock-out.">Auto-Protect Admin IP:</label></th>    
    190                         <td> 
    191                             <input name="gatekeeper_autoprotect_adminip" type="checkbox" value="true" <?php if (get_option('gatekeeper_autoprotect_adminip') == "true") { echo "CHECKED"; } ?>                   
    192                         </td>            
    193                     </tr> 
    194                      
     189                        <th scope="row"><label for="gatekeeper_autoprotect_adminip" title="Automatically whitelist your current IP address to prevent accidentally lock-out.">Auto-Protect Admin IP:</label></th> 
     190                        <td> 
     191                            <input name="gatekeeper_autoprotect_adminip" type="checkbox" value="true" <?php if (get_option('gatekeeper_autoprotect_adminip') == "true") { echo "CHECKED"; } ?> 
     192                        </td> 
     193                    </tr> 
     194 
    195195                    <?php /* ADMIN IP */ ?> 
    196196                    <tr valign="top"> 
     
    199199                            <input name="gatekeeper_adminipDISPLAY" type="text" disabled="disabled" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" /> 
    200200                            <input type="hidden" name="gatekeeper_adminip" value="<?php echo $_SERVER['REMOTE_ADDR']; ?>" /> 
    201                         </td>            
    202                     </tr> 
    203                      
     201                        </td> 
     202                    </tr> 
     203 
    204204                    <?php /* WHITELIST */ ?> 
    205205                    <tr valign="top"> 
    206206                        <th scope="row"><label for="gatekeeper_whitelist" title="Whitelist: one per line. Examples: 192.168.10.103, 192.168.10.*, 192.168.10.[0-9]">Whitelist:</label></th> 
    207207                        <td> 
    208                             <textarea name="gatekeeper_whitelist"><?php echo get_option('gatekeeper_whitelist'); ?></textarea>                   
    209                         </td>                
    210                     </tr>                            
     208                            <textarea name="gatekeeper_whitelist"><?php echo get_option('gatekeeper_whitelist'); ?></textarea> 
     209                        </td> 
     210                    </tr> 
    211211                </table> 
    212212            </div> 
    213              
     213 
    214214            <?php /* BLACKLIST TABLE */ ?> 
    215215            <div id="gk-blacklist"> 
    216                 <div id="gk-blacklist-title" class="gk-section-title">Blacklist</div> 
     216                <div id="gk-blacklist-title" class="gk-section-title">Blacklist <div class="gk-toggle-status" data-toggle-status="closed">+</div></div> 
    217217                <table id="gk-blacklist-table" class="form-table gk-option-table" style="margin-top: 20px;"> 
    218                      
    219                     <tr valign="top"> 
    220                         <td colspan="2">Prevent blacklisted IPs from accessing the site at any time, including login and registration pages.</td>                
    221                     </tr> 
    222                      
     218 
     219                    <tr valign="top"> 
     220                        <td colspan="2"> 
     221                            Attempt to prevent blacklisted IPs from accessing the site, including login and registration pages.<br><br> 
     222                            <strong>Important:</strong> If security is your goal, use a WordPress security tool designed specifically for that purpose. 
     223                        </td> 
     224                    </tr> 
     225 
    223226                    <?php /* BLACKLIST BEHAVIOR */ ?> 
    224227                    <tr valign="top"> 
     
    226229                        <td> 
    227230                            <input type="radio" name="gatekeeper_blacklist_behavior" value="redirect" <?php if (get_option('gatekeeper_blacklist_behavior') != 'replace') { echo "checked"; } ?> />Redirect (301 Moved Permanently) <br /> 
    228                             <input type="radio" name="gatekeeper_blacklist_behavior" value="replace" <?php if (get_option('gatekeeper_blacklist_behavior') == 'replace') { echo "checked"; } ?> />Replace page                   
    229                         </td>                
    230                     </tr> 
    231                      
     231                            <input type="radio" name="gatekeeper_blacklist_behavior" value="replace" <?php if (get_option('gatekeeper_blacklist_behavior') == 'replace') { echo "checked"; } ?> />Replace page 
     232                        </td> 
     233                    </tr> 
     234 
    232235                    <?php /* BLACKLIST PAGE */ ?> 
    233236                    <tr valign="top"> 
    234237                        <th scope="row"><label for="gatekeeper_blacklist_redirect_page" title="Display this page to blacklisted IPs. This cannot be a WordPress-managed page.">Blacklist page:</label></th> 
    235238                        <td> 
    236                             <input name="gatekeeper_blacklist_redirect_page" type="text" style="width: 400px;" value="<?php echo get_option('gatekeeper_blacklist_redirect_page'); ?>" />                    
    237                         </td>                
    238                     </tr> 
    239                      
     239                            <input name="gatekeeper_blacklist_redirect_page" type="text" style="width: 400px;" value="<?php echo get_option('gatekeeper_blacklist_redirect_page'); ?>" /> 
     240                        </td> 
     241                    </tr> 
     242 
    240243                    <?php /* BLACKLIST */ ?> 
    241244                    <tr valign="top"> 
    242245                        <th scope="row"><label for="gatekeeper_blacklist" title="Blacklist: one per line. Examples: 192.168.10.103, 192.168.10.*, 192.168.10.[0-9]">Blacklist:</label></th> 
    243246                        <td> 
    244                             <textarea name="gatekeeper_blacklist"><?php echo get_option('gatekeeper_blacklist'); ?></textarea>                   
    245                         </td>                
    246                     </tr>                
     247                            <textarea name="gatekeeper_blacklist"><?php echo get_option('gatekeeper_blacklist'); ?></textarea> 
     248                        </td> 
     249                    </tr> 
    247250                </table> 
    248251            </div> 
    249                  
     252 
    250253            <p class="submit"> 
    251                 <input type="submit" class="button-primary" value="Save Changes" />          
    252             </p>     
     254                <input type="submit" class="button-primary" value="Save Changes" /> 
     255            </p> 
    253256        </form> 
    254257        </div> 
    255          
     258 
    256259        <?php /* SIDEBAR */ ?> 
    257260        <div id="gk-sidebar"> 
    258          
     261 
    259262            <?php /* DONATION LINKS */ ?> 
    260263            <div class="gk-container"> 
     
    270273                </div> 
    271274            </div> 
    272              
     275 
    273276        </div> 
    274277        <div style="clear: both;"></div> 
     
    279282// GATEKEEPER (SENTRY) FUNCTIONS 
    280283function gatekeeper_watch_the_gate() { 
    281      
     284 
    282285    # if this IP is on the blacklist, deal with it immediately 
    283286    if (gk_checkip('blacklist')) { 
     
    293296                die(gk_curlGet($gk_blklstloc)); #IF HEADERS ALREADY SENT, FALL BACK TO THIS 
    294297            } 
    295         }        
    296     }    
    297      
     298        } 
     299    } 
     300 
    298301    # check to see if Gatekeeper is active. If not, there's no need to continue (except for blacklists). 
    299302    if (get_option('gatekeeper_active') != 'true') { 
    300303        return; 
    301304    } 
    302      
     305 
    303306    # don't apply to admin pages 
    304307    if (is_admin()) { 
    305308        return; 
    306309        } 
    307          
     310 
    308311    # don't apply to login or logout pages 
    309312    if ($GLOBALS['pagenow'] == 'wp-login.php') { 
    310313        return; 
    311314        } 
    312      
     315 
    313316    # don't apply to logged in administrators 
    314317    if (get_option('gatekeeper_allowadmins') == "true" && current_user_can('manage_options'))  { 
    315318        update_option('gatekeeper_stats_whitelist_views', get_option('gatekeeper_stats_whitelist_views') + 1); 
    316319        return; 
    317     }    
    318      
     320    } 
     321 
    319322    # don't apply to admin ip 
    320323    if (get_option('gatekeeper_autoprotect_adminip') == "true" && $_SERVER['REMOTE_ADDR'] == get_option('gatekeeper_adminip')) { 
    321324        update_option('gatekeeper_stats_whitelist_views', get_option('gatekeeper_stats_whitelist_views') + 1); 
    322325        return; 
    323         }  
    324      
     326        } 
     327 
    325328    # don't apply to matching IP addresses (if any) #preg_match? 
    326329    # if line contains letters or dashes, consider it a hostname 
     
    329332        return; 
    330333        } 
    331          
     334 
    332335    # redirect any IP that has made it this far 
    333336    update_option('gatekeeper_stats_offline_redirects', get_option('gatekeeper_stats_offline_redirects') + 1); 
     
    346349function gk_checkip($list) { 
    347350    $remote_ip = $_SERVER['REMOTE_ADDR']; 
    348      
     351 
    349352    // LOAD THE REQUESTED LIST 
    350353    if (strtolower($list) == "whitelist") { 
     
    377380    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    378381    return curl_exec($ch); 
    379 }  
     382} 
    380383?> 
  • gatekeeper/trunk/readme.txt

    r1110508 r1751358  
    44Tags: gatekeeper, offline, maintenance, whitelist, blacklist, access, ip, coming soon 
    55Requires at least: 3.0 
    6 Tested up to: 4.1.1 
     6Tested up to: 4.8.2 
    77Stable tag: trunk 
    88 
     
    1919* The current admin's IP address can be automatically whitelisted 
    2020* An IP-based whitelist that can accept specific IP addresses, wildcards, and ranges 
    21 * An IP-based blacklist that redirects blacklisted IPs to a specified page 
     21* A basic IP-based blacklist that redirects blacklisted IPs to a specified page (not to be used for security) 
    2222* A notifier that appears on administrator pages when the site is offline 
    2323 
     
    3434 
    3535I needed a "coming soon" page for a site I was working on but also needed to be able to use WordPress myself in order to test themes, designs, etc. 
    36 The existing landing page themes are nice, unless you also need to be able to test a theme without letting the world see. At first, I added some PHP  
    37 code into the WordPress index.php file to redirect all but my IP address to the coming soon page, but WP upgrades opened my site to the world. Editing  
     36The existing landing page themes are nice, unless you also need to be able to test a theme without letting the world see. At first, I added some PHP 
     37code into the WordPress index.php file to redirect all but my IP address to the coming soon page, but WP upgrades opened my site to the world. Editing 
    3838the htaccess file is an option, but it's extra work and only works until my IP address changes. So...I created Gatekeeper. 
    3939 
     
    4949= Can Gatekeeper protect non-WordPress pages? = 
    5050 
    51 No.  
     51No. 
     52 
     53= Should I rely on the Blacklist for security? = 
     54No. The primary purpose of the plugin is to take sites offline for maintenance. The Blacklist was designed as an extra feature to help thwart connections from undesirable IP addresses, but is not designed as a security feature. Wordpress administrators would be advised to use Wordfence, iThemes Security, Bulletproof Security, Sucuri Security, or another widely used and trusted WordPress security plugin for security. 
    5255 
    5356= Help! It doesn’t work!! = 
     
    6063 
    6164== Changelog == 
     65 
     66= 1.1 = 
     67* UI improvements. 
     68* Explicit warnings that the Blacklist is not designed for security. See FAQ. 
     69* Acknowledging support for latest version of WordPress. 
    6270 
    6371= 1.0.1 = 
  • gatekeeper/trunk/style.css

    r681396 r1751358  
    22    GATEKEEPER STYLESHEET 
    33    Author: Jamie Wilson 
    4     Copyright © 2011-2013 Jamie Wilson (wpdev@jamiewilson.net) 
     4    Copyright © 2011-2018 Jamie Wilson (wpdev@jamiewilson.net) 
    55*/ 
    66 
     
    1818    -moz-border-radius: 5px; 
    1919    -webkit-border-radius: 5px; 
    20     border-radius: 5px;x; 
     20    border-radius: 5px; 
    2121    } 
    2222 
     
    2424    width: 400px; 
    2525    } 
    26      
     26 
    2727#gk-active-notifier { 
    28     background-color: red;  
     28    background-color: red; 
    2929    border: 1px solid rgb(119,119,119); 
    3030    color: white; 
     
    3434    font-weight: bold; 
    3535    height: 22px; 
    36     margin: 0 2px;  
     36    margin: 0 2px; 
    3737    padding: 0px 6px; 
    3838    text-shadow: rgba(0, 0, 0, 0.3) 1px 0.8; 
    39      
     39 
    4040    -moz-border-radius-bottomleft: 5px; 
    4141    -moz-border-radius-bottomright: 5px; 
     
    5252#gk-main { 
    5353    float: left; 
     54    max-width: 50%; 
     55    width: 50%; 
    5456    } 
    55      
     57 
     58#gk-main .gk-section-title { 
     59    background-color: #777; 
     60    color: #fff; 
     61    font: bold 16px sans-serif; 
     62    margin: 0 0 5px 0; 
     63    padding: 5px; 
     64    border-radius: 5px; 
     65    cursor: pointer; 
     66} 
     67 
     68#gk-main .gk-section-title .gk-toggle-status { 
     69    display: inline-block; 
     70    float: right; 
     71    margin-right: 10px; 
     72} 
     73 
    5674#gk-sidebar { 
    5775    float: right; 
    58     margin: 0px 10px 20px 20px;  
    59     width: 280px;  
     76    margin: 0px 10px 20px 20px; 
     77    width: 280px; 
    6078    } 
    61      
     79 
    6280#gk-sidebar .gk-container { 
    6381    border: 1px solid #dfdfdf; 
    6482    margin-bottom: 10px; 
    65     -moz-border-radius: 5px; 
    66     -webkit-border-radius: 5px; 
    6783    border-radius: 5px; 
    6884    } 
    69      
     85 
    7086#gk-sidebar .gk-section-title { 
    7187    background-color: #dfdfdf; 
     
    7389    margin: 0 0 5px 0; 
    7490    padding: 5px; 
    75     -moz-border-topleft-radius: 5px; 
    76     -moz-border-topright-radius: 5px; 
    77     -webkit-border-top-left-radius: 5px; 
    78     -webkit-border-top-rightradius: 5px; 
    7991    border-radius: 5px 5px 0 0; 
    8092    } 
    81      
     93 
    8294.gk-sidebar-content { 
    8395    padding: 5px; 
    8496    } 
    85      
     97 
    8698#gk-status { 
    8799    border: 1px solid black; 
    88100    color: white; 
    89     font-size: 14px;  
    90     font-weight: bold;  
    91     height: 14px;  
     101    font-size: 14px; 
     102    font-weight: bold; 
     103    height: 14px; 
    92104    padding: 5px; 
    93     text-transform: uppercase;  
    94     width: 100%;  
    95      
     105    text-transform: uppercase; 
     106    width: 100%; 
     107 
    96108    -moz-border-radius: 5px; 
    97109    -webkit-border-radius: 5px; 
Note: See TracChangeset for help on using the changeset viewer.