Make WordPress Core

Ticket #43481: 43481_first_pass.patch

File 43481_first_pass.patch, 12.5 KB (added by xkon, 7 years ago)

first pass on the UI

  • src/wp-admin/menu.php

     
    256256        $submenu['tools.php'][5]  = array( __( 'Available Tools' ), 'edit_posts', 'tools.php' );
    257257        $submenu['tools.php'][10] = array( __( 'Import' ), 'import', 'import.php' );
    258258        $submenu['tools.php'][15] = array( __( 'Export' ), 'export', 'export.php' );
     259        $submenu['tools.php'][20] = array( __( 'Privacy' ), 'manage_options', 'tools-privacy.php' );
    259260if ( is_multisite() && ! is_main_site() ) {
    260261        $submenu['tools.php'][25] = array( __( 'Delete Site' ), 'delete_site', 'ms-delete-site.php' );
    261262}
  • src/wp-admin/tools-privacy.php

     
     1<?php
     2/**
     3 * Privacy Policy Screen.
     4 *
     5 * @package WordPress
     6 * @subpackage Administration
     7 */
     8
     9/** WordPress Administration Bootstrap */
     10require_once( dirname( __FILE__ ) . '/admin.php' );
     11
     12if ( ! current_user_can( 'manage_options' ) ) {
     13        wp_die( __( 'Sorry, you are not allowed to manage privacy on this site.' ) );
     14}
     15
     16$title = __( 'Privacy Tools' );
     17
     18get_current_screen()->add_help_tab( array(
     19        'id'      => 'privacy',
     20        'title'   => __( 'Privacy' ),
     21        'content' => '<p>' . __( 'This page provides tools with which you can manage your user\'s personal data and site\'s privacy policy.' ) . '</p>',
     22) );
     23
     24get_current_screen()->set_help_sidebar(
     25        '<p><strong>' . __( 'For more information:' ) . '</strong></p>' .
     26        '<p>' . __( '<a href="#">Documentation on privacy</a>' ) . '</p>'
     27);
     28
     29require_once( ABSPATH . 'wp-admin/admin-header.php' );
     30
     31?>
     32        <!-- PAGE WRAP -->
     33        <div class="wrap"><h1><?php echo esc_html( $title ); ?></h1>
     34                <!-- TAB PANEL MENU -->
     35                <h2 class="nav-tab-wrapper wp-clearfix">
     36                        <a href="#" class="nav-tab nav-tab-active" data-tab="privacy-tab-1" id="tools1">Tools</a>
     37                        <a href="#" class="nav-tab" data-tab="privacy-tab-2" id="tools2">Privacy Policy Information</a>
     38                </h2>
     39                <div class="tabs">
     40                        <!-- TAB Tools -->
     41                        <div class="privacy-tab-1">
     42                                <div class="tools-row">
     43                                        <h3><?php _e( 'Set up a Privacy Policy Page' ); ?></h3>
     44                                        <form action="#" id="health-check-file-integrity" method="POST">
     45                                                <p>
     46                                                        <label for="page_on_front">
     47                                                                Select an existing Page: <select name="page_on_front" id="page_on_front">
     48                                                                        <option value="0">— Select —</option>
     49                                                                        <option class="level-0" value="2">Sample Page</option>
     50                                                                </select>
     51                                                        </label>
     52                                                </p>
     53                                                <p>
     54                                                        <input type="submit" class="button button-primary" value="<?php esc_html_e( 'Save' ); ?>"> <?php _e( '- OR -' ); ?> <input type="submit" class="button button-primary" value="<?php esc_html_e( 'Create Page' ); ?>">
     55                                                </p>
     56                                        </form>
     57                                        <div class="notice notice-info inline">
     58                                                <p>
     59                                                        <?php _e( 'You can either select one of your existing Pages to use as a <code>Privacy Policy Page</code> or you can create a new one!' ); ?>
     60                                                </p>
     61                                        </div>
     62                                </div>
     63                                <div class="tools-row">
     64                                        <h3><?php _e( 'Export Data' ); ?></h3>
     65                                        <form action="#" id="health-check-mail-check" method="POST">
     66                                                <p>
     67                                                        <label for="email"><?php _e( 'E-mail', 'health-check' ); ?></label>
     68                                                        <input type="text" name="email" id="email" value="">
     69                                                </p>
     70                                                <input type="submit" class="button button-primary" value="<?php _e( 'Export' ); ?>">
     71                                        </form>
     72                                        <div class="notice notice-info inline">
     73                                                <p>
     74                                                        <?php _e( 'You can export a users data by simply entering his <code>E-mail</code> address. All of the Plugins that support this function will automatically export their Data as well.' ); ?>
     75                                                </p>
     76                                        </div>
     77                                </div>
     78                                <div class="tools-row">
     79                                        <h3><?php _e( 'Anonymize Data' ); ?></h3>
     80                                        <form action="#" id="health-check-mail-check" method="POST">
     81                                                <p>
     82                                                        <label for="email"><?php _e( 'E-mail', 'health-check' ); ?></label>
     83                                                        <input type="text" name="email" id="email" value="">
     84                                                </p>
     85                                                <input type="submit" class="button button-primary" value="<?php _e( 'Anonymize' ); ?>">
     86                                        </form>
     87                                        <div class="notice notice-info inline">
     88                                                <p>
     89                                                        <?php _e( 'You can anonymize a users data by simply entering his <code>E-mail</code> address. All of the Plugins that support this function will automatically anonymize their Data as well.' ); ?>
     90                                                </p>
     91                                        </div>
     92                                        <div class="notice notice-error inline">
     93                                                <p>
     94                                                        <?php _e( 'Caution: You will <code>NOT</code> be able to undo this action.' ); ?>
     95                                                </p>
     96                                        </div>
     97                                </div>
     98                                <div class="tools-row">
     99                                        <h3><?php _e( 'Delete Data' ); ?></h3>
     100                                        <form action="#" id="health-check-mail-check" method="POST">
     101                                                <p>
     102                                                        <label for="email"><?php _e( 'E-mail', 'health-check' ); ?></label>
     103                                                        <input type="text" name="email" id="email" value="">
     104                                                </p>
     105                                                <input type="submit" class="button button-primary" value="<?php _e( 'Delete' ); ?>">
     106                                        </form>
     107                                        <div class="notice notice-info inline">
     108                                                <p>
     109                                                        <?php _e( 'You can delete a users data by simply entering his <code>E-mail</code> address. All of the Plugins that support this function will automatically delete their Data as well.' ); ?>
     110                                                </p>
     111                                        </div>
     112                                        <div class="notice notice-error inline">
     113                                                <p>
     114                                                        <?php _e( 'Caution: You will <code>NOT</code> be able to undo this action.' ); ?>
     115                                                </p>
     116                                        </div>
     117                                </div>
     118                                <div class="information-section">
     119                                        <h2><?php _e( 'General Information - What you can do with this new Tools section' ); ?></h2>
     120                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     121                                        <br/><br/>
     122                                        Ut porta velit nec sodales lobortis. Morbi blandit nunc in quam dictum accumsan. Nunc efficitur non neque at sodales. Duis pellentesque bibendum arcu eget congue. Nulla tincidunt ornare nibh, id dapibus odio lobortis vel. In finibus vulputate urna ac gravida. Proin eu molestie sem, nec feugiat nunc. In scelerisque sollicitudin odio nec fringilla. Etiam ornare orci nisl, at vestibulum ipsum fringilla vitae. Sed finibus ipsum ac ligula convallis, in efficitur massa efficitur.
     123                                        <br/><br/>
     124                                        Pellentesque libero leo, dignissim sed faucibus eget, egestas ac purus. Vivamus pellentesque erat non orci ornare congue. Suspendisse varius nulla in lorem finibus, nec sollicitudin felis porta. Sed commodo, ante sit amet lobortis varius, ex est accumsan risus, a viverra sem sapien eu ante. Aenean ut finibus ligula. Cras sed dignissim ligula, et eleifend est. Donec id justo dapibus, feugiat tortor at, euismod risus. Nunc dignissim lorem nulla, at iaculis nunc lobortis vitae. Mauris sit amet sapien mattis, auctor ex sed, volutpat massa. Donec ex odio, convallis vitae metus in, viverra rutrum nibh. Aenean congue eros ac egestas mattis.
     125                                        <br/><br/>
     126                                        Nulla in orci ultrices, semper odio non, varius nunc. Nulla nec purus magna. Vivamus cursus bibendum nibh, a iaculis lectus mattis vitae. Suspendisse eu accumsan tellus. Curabitur aliquet est ligula, eu imperdiet ex tincidunt in. Nunc in odio accumsan, congue tortor scelerisque, gravida est. Proin quis finibus lectus. Quisque convallis auctor arcu non tristique. Phasellus accumsan leo odio, sed blandit nisi laoreet eu. Nullam lobortis odio neque, sed rutrum nibh sollicitudin id.
     127                                </div>
     128                        </div>
     129                        <!-- TAB Privacy Policy Information -->
     130                        <div class="privacy-tab-2">
     131                                <div id="contextual-help-wrap" class="hidden" tabindex="-1" aria-label="Contextual Help Tab" style="display: block;">
     132                                        <div id="contextual-help-back"></div>
     133                                        <div id="contextual-help-columns">
     134                                                <div class="contextual-help-tabs">
     135                                                        <ul>
     136                                                                <li id="tab-link-core" class="active">
     137                                                                        <a href="#tab-panel-core">Core</a>
     138                                                                </li>
     139                                                                <li id="tab-link-plugin1">
     140                                                                        <a href="#tab-panel-plugin1">Plugin 1</a>
     141                                                                </li>
     142                                                                <li id="tab-link-plugin2">
     143                                                                        <a href="#tab-panel-plugin2">Plugin 2</a>
     144                                                                </li>
     145                                                        </ul>
     146                                                </div>
     147                                                <div class="contextual-help-tabs-wrap">
     148                                                        <div id="tab-panel-core" class="help-tab-content active">
     149                                                                <h2>Core</h2>
     150                                                                <h3>Privacy Policy</h3>
     151                                                                <p>
     152                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     153                                                                </p>
     154                                                                <h3>Cookies</h3>
     155                                                                <p>
     156                                                                        _one _two _three _cookies _in _the _jar
     157                                                                </p>
     158                                                                <h3>Data</h3>
     159                                                                <p>
     160                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     161                                                                </p>
     162                                                        </div>
     163                                                        <div id="tab-panel-plugin1" class="help-tab-content">
     164                                                                <h2>Plugin 1</h2>
     165                                                                <h3>Privacy Policy</h3>
     166                                                                <p>
     167                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     168                                                                </p>
     169                                                                <h3>Cookies</h3>
     170                                                                <p>
     171                                                                        _one _two _three _cookies _in _the _jar
     172                                                                </p>
     173                                                        </div>
     174                                                        <div id="tab-panel-plugin2" class="help-tab-content">
     175                                                                <h2>Plugin 2</h2>
     176                                                                <h3>Cookies</h3>
     177                                                                <p>
     178                                                                        _one _two _three _cookies _in _the _jar
     179                                                                </p>
     180                                                                <h3>Data</h3>
     181                                                                <p>
     182                                                                        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis at neque arcu. In id odio porta, eleifend dui vitae, commodo nunc. Praesent vulputate sollicitudin tellus, accumsan auctor tortor suscipit quis. Integer venenatis consectetur sem, vitae dapibus ex sollicitudin vel. Vivamus ac elit et turpis semper faucibus. Nullam hendrerit risus est, aliquet auctor odio auctor ut. Etiam tortor massa, porta vel laoreet quis, iaculis at dolor. Cras nisl enim, vehicula nec laoreet et, feugiat vitae neque.
     183                                                                </p>
     184                                                        </div>
     185                                                </div>
     186                                        </div>
     187                                </div>
     188                        </div>
     189                </div>
     190        </div>
     191        <script>
     192                ( function( $ ){
     193                        $( document ).ready( function() {
     194                                $('.nav-tab').each( function() {
     195                                        $(this).on('click', function(){
     196                                                var tab = '.' + $(this).data('tab');
     197                                                $( tab ).show();
     198                                                $( tab ).siblings().hide();
     199                                                $( this ).addClass( 'nav-tab-active' );
     200                                                $( this ).siblings().removeClass( 'nav-tab-active' )
     201                                        });
     202                                });
     203
     204                                $( '.privacy-tab-1' ).siblings().css( 'display', 'none' );
     205                        });
     206                })( jQuery )
     207        </script>
     208        <style>
     209                body.tools-privacy-php .nav-tab {
     210                        background: #ccc;
     211                }
     212
     213                body.tools-privacy-php .nav-tab-active {
     214                        border-bottom: 1px solid #f1f1f1;
     215                        background: #f1f1f1;
     216                        color: #000;
     217                        font-weight: 700;
     218                }
     219
     220                body.tools-privacy-php .information-section {
     221                        background: #f6fbfd;
     222                        padding: 20px;
     223                }
     224
     225                body.tools-privacy-php #contextual-help-wrap {
     226                        background: #fff;
     227                }
     228
     229                body.tools-privacy-php #contextual-help-back {
     230                        right: 0;
     231                }
     232
     233                body.tools-privacy-php .tools-row {
     234                        background: #fff;
     235                        padding: 10px;
     236                        margin-bottom: 20px;
     237                }
     238        </style>
     239<?php
     240
     241include( ABSPATH . 'wp-admin/admin-footer.php' );