<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[3784] sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page: WordCamp Coming Soon Page: Implement new design and migrate to Customizer.</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/3784">3784</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/3784","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>iandunn</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2016-08-09 14:53:51 +0000 (Tue, 09 Aug 2016)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>WordCamp Coming Soon Page: Implement new design and migrate to Customizer.

Fixes <a href="http://meta.trac.wordpress.org/ticket/334">#334</a>
Props melchoyce, melsenc, ryelle</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagebootstrapphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/bootstrap.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageclasseswccspsettingsphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-settings.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageclasseswordcampcomingsoonpagephp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wordcamp-coming-soon-page.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagecsstemplatecomingsooncss">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon.css</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingsadminnoticesphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-admin-notices.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewstemplatecomingsoonphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/template-coming-soon.php</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageclasseswccspcustomizerphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-customizer.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagecsstemplatecomingsoondynamicphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon-dynamic.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagejavascriptwccspcustomizerjs">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-customizer.js</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageTODOtxt">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/TODO.txt</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagejavascriptwccspsettingsjs">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-settings.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingsfieldsphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-fields.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingsscreenphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-screen.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingssectionheadersphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-section-headers.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageTODOtxt"></a>
<div class="delfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Deleted: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/TODO.txt</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/TODO.txt        2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/TODO.txt  2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,21 +0,0 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-High priority:
-       default image so organizers know it's an option
-       refactor get_contact_form_shortcode() once https://github.com/Automattic/jetpack/issues/102 is fixed
-               if doesn't happen soon, then add admin notice if missing page w/ contact form or it's not published
-
-Medium priority:
-       add color pickers
-       update image preview after they pick new but before they save/refresh
-       contact form shortcode - lookup email from wordcamp cpt instead of admin email?
-       internationalize
-       any other TODOs in code
-       select image size from dropdown of available sizes
-               maybe add more custom sizes too
-       make the date lookup less fragile? maybe store blog id in wordcamp post type meta so don't have to rely on url, or just parse_url() to make matching easier
-
-
-Low priority:
-       styles
-               make responsive & mobile-first
-               make contact box align w/ right edge of intro text properly instead of workaround
-       make dashes/underscores consistent in html element ids/names
</del></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagebootstrapphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/bootstrap.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/bootstrap.php   2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/bootstrap.php     2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -13,6 +13,8 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> require_once( __DIR__ . '/classes/wordcamp-coming-soon-page.php' );
</span><span class="cx" style="display: block; padding: 0 10px"> require_once( __DIR__ . '/classes/wccsp-settings.php' );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+require_once( __DIR__ . '/classes/wccsp-customizer.php' );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> $GLOBALS['WordCamp_Coming_Soon_Page'] = new WordCamp_Coming_Soon_Page();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-$GLOBALS['WCCSP_Settings']            = new WCCSP_Settings();
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+$GLOBALS['WCCSP_Customizer']          = new WCCSP_Customizer();
+$GLOBALS['WCCSP_Settings']            = new WCCSP_Settings();
</ins></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageclasseswccspcustomizerphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-customizer.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-customizer.php                            (rev 0)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-customizer.php      2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,150 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<?php
+
+class WCCSP_Customizer {
+       protected $settings;
+
+       /**
+        * Constructor
+        */
+       public function __construct() {
+               add_action( 'init',                  array( $this, 'init'                           ), 11 ); // after WCCSP_Settings::init()
+               add_action( 'customize_register',    array( $this, 'register_customizer_components' )     );
+               add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_customizer_scripts'     )     );
+       }
+
+       /**
+        * Initializes variables
+        */
+       public function init() {
+               $this->settings = $GLOBALS['WCCSP_Settings']->get_settings();
+       }
+
+       /**
+        * Register our Customizer settings, panels, sections, and controls
+        *
+        * @param \WP_Customize_Manager $wp_customize
+        */
+       public function register_customizer_components( $wp_customize ) {
+               $wp_customize->add_section(
+                       'wccsp_live_preview',
+                       array(
+                               'capability' => $GLOBALS['WCCSP_Settings']::REQUIRED_CAPABILITY,
+                               'title'      => __( 'Coming Soon Page', 'wordcamporg' ),
+
+                               'description' => __(
+                                       'When enabled, the Coming Soon page will be displayed to logged-out users,
+                                       giving you a chance to setup all of your content before your site is visible to the world.',
+                                       'wordcamporg'
+                ) . $GLOBALS['WCCSP_Settings']->render_admin_notices(),
+                       )
+               );
+
+               $wp_customize->add_setting(
+                       'wccsp_settings[enabled]',
+                       array(
+                               'default'           => 'off',
+                               'type'              => 'option',
+                               'capability'        => $GLOBALS['WCCSP_Settings']::REQUIRED_CAPABILITY,
+                               'sanitize_callback' => 'sanitize_text_field',
+                       )
+               );
+
+               $wp_customize->add_control(
+                       'wccsp_settings[enabled]',
+                       array(
+                               'section'     => 'wccsp_live_preview',
+                               'type'        => 'radio',
+                               'choices'     => array( 'on' => 'On', 'off' => 'Off' ),
+                               'priority'    => 1,
+                               'capability'  => $GLOBALS['WCCSP_Settings']::REQUIRED_CAPABILITY,
+                       )
+               );
+
+               $wp_customize->add_setting(
+                       'wccsp_settings[body_background_color]',
+                       array(
+                               'default'           => '#0073aa',
+                               'type'              => 'option',
+                               'capability'        => $GLOBALS['WCCSP_Settings']::REQUIRED_CAPABILITY,
+                               'sanitize_callback' => 'sanitize_hex_color',
+                       )
+               );
+
+               $wp_customize->add_control(
+                       new WP_Customize_Color_Control(
+                               $wp_customize,
+                               'wccsp_settings[body_background_color]',
+                               array(
+                                       'section'     => 'wccsp_live_preview',
+                                       'label'       => __( 'Accent Color', 'wordcamporg' ),
+                                       'description' => __( 'This color is used to generate the header background, and the button colors.', 'wordcamporg' ),
+                               )
+                       )
+               );
+
+               $wp_customize->add_setting(
+                       'wccsp_settings[image_id]',
+                       array(
+                               'default'           => 0,
+                               'type'              => 'option',
+                               'capability'        => $GLOBALS['WCCSP_Settings']::REQUIRED_CAPABILITY,
+                               'sanitize_callback' => 'absint',
+                       )
+               );
+
+               $wp_customize->add_control(
+                       new WP_Customize_Media_Control(
+                               $wp_customize,
+                               'wccsp_settings[image_id]',
+                               array(
+                                       'label'       => __( 'Logo', 'wordcamporg' ),
+                                       'description' => __( 'A smaller image displayed above your WordCamp name.<br />Best size is less than 500px wide.', 'wordcamporg' ),
+                                       'section'     => 'wccsp_live_preview',
+                                       'mime_type'   => 'image',
+                               )
+                       )
+               );
+
+               $wp_customize->add_setting(
+                       'wccsp_settings[background_id]',
+                       array(
+                               'default'           => 0,
+                               'type'              => 'option',
+                               'capability'        => $GLOBALS['WCCSP_Settings']::REQUIRED_CAPABILITY,
+                               'sanitize_callback' => 'absint',
+                       )
+               );
+
+               $wp_customize->add_control(
+                       new WP_Customize_Media_Control(
+                               $wp_customize,
+                               'wccsp_settings[background_id]',
+                               array(
+                                       'label'       => __( 'Background Image', 'wordcamporg' ),
+                                       'description' => __( 'A larger image displayed behind the header text.<br />Best size is larger than 1000px wide.', 'wordcamporg' ),
+                                       'section'     => 'wccsp_live_preview',
+                                       'mime_type'   => 'image',
+                               )
+                       )
+               );
+       }
+
+       /**
+        * Enqueue scripts and styles for the Customizer
+        */
+       public function enqueue_customizer_scripts() {
+               if ( ! isset( $GLOBALS['wp_customize'] ) ) {
+                       return;
+               }
+
+               $GLOBALS['WordCamp_Coming_Soon_Page']->manage_plugin_theme_stylesheets();
+
+               wp_enqueue_script(
+                       'wccsp-customizer',
+                       plugins_url( 'javascript/wccsp-customizer.js', __DIR__ ),
+                       array(),
+                       1,
+                       true
+               );
+       }
+}
</ins></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageclasseswccspsettingsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-settings.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-settings.php      2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wccsp-settings.php        2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,5 +1,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> <?php
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+/*
+ * todo
+ * Now that using Customizer, this class isn't really needed and doesn't make sense. Its functions can be moved
+ * into wordcamp-coming-soon-page.php and wccsp-customizer.php
+ */
+
</ins><span class="cx" style="display: block; padding: 0 10px"> class WCCSP_Settings {
</span><span class="cx" style="display: block; padding: 0 10px">        protected $settings;
</span><span class="cx" style="display: block; padding: 0 10px">        const REQUIRED_CAPABILITY = 'administrator';
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -10,9 +16,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function __construct() {
</span><span class="cx" style="display: block; padding: 0 10px">                add_action( 'admin_menu',                   array( $this, 'register_settings_pages' ) );
</span><span class="cx" style="display: block; padding: 0 10px">                add_action( 'init',                         array( $this, 'init' ) );
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                add_action( 'admin_init',                   array( $this, 'register_settings' ) );
-               add_action( 'admin_enqueue_scripts',        array( $this, 'enqueue_scripts' ) );
-               add_action( 'admin_notices',                array( $this, 'render_admin_notices' ) );
</del><span class="cx" style="display: block; padding: 0 10px">                 add_action( 'update_option_wccsp_settings', array( $this, 'clear_static_page_cache' ) );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -31,10 +34,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_settings() {
</span><span class="cx" style="display: block; padding: 0 10px">                $defaults = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'enabled'                    => 'off',        // so that sites created before the plugin was deployed won't display the home page when the plugin is activated
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        'body_background_color'      => '#666666',
-                       'container_background_color' => '#FFFFFF',
-                       'text_color'                 => '#000000',
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 'body_background_color'      => '#0073aa',
</ins><span class="cx" style="display: block; padding: 0 10px">                         'image_id'                   => 0,
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        'background_id'              => 0,
+                       'container_background_color' => '#FFFFFF', // deprecated
+                       'text_color'                 => '#000000', // deprecated
</ins><span class="cx" style="display: block; padding: 0 10px">                 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $settings = shortcode_atts(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -46,28 +50,27 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Register and enqueue the JavaScript we need for the Settings screen
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Get the URL for the Coming Soon section in the Customizer
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string $screen
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return string
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        public function enqueue_scripts( $hook_suffix ) {
-               if ( 'settings_page_wccsp_settings' != $hook_suffix ) {
-                       return;
-               }
-
-               wp_register_script(
-                       'wccsp-settings',
-                       plugins_url( '/javascript/wccsp-settings.js', __DIR__ ),
-                       array( 'jquery', 'media-upload', 'media-views' ),
-                       WordCamp_Coming_Soon_Page::VERSION
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ public function get_customizer_section_url() {
+               $url = add_query_arg(
+                       array(
+                               'autofocus[section]' => 'wccsp_live_preview',
+                               'url'                => rawurlencode( add_query_arg( 'wccsp-preview', '', site_url() ) ),
+                       ),
+                       admin_url( 'customize.php' )
</ins><span class="cx" style="display: block; padding: 0 10px">                 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                wp_enqueue_media();
-               wp_enqueue_script( 'wccsp-settings' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         return $url;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Adds pages to the Admin Panel menu
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Add a link to the Settings menu
+        *
+        * Even though this lives in the Customizer, having a link in the regular admin menus helps with
+        * discoverability.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function register_settings_pages() {
</span><span class="cx" style="display: block; padding: 0 10px">                add_submenu_page(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -75,134 +78,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        __( 'Coming Soon', 'wordcamporg' ),
</span><span class="cx" style="display: block; padding: 0 10px">                        __( 'Coming Soon', 'wordcamporg' ),
</span><span class="cx" style="display: block; padding: 0 10px">                        self::REQUIRED_CAPABILITY,
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        'wccsp_settings',
-                       array( $this, 'markup_settings_page' )
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 $this->get_customizer_section_url()
</ins><span class="cx" style="display: block; padding: 0 10px">                 );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Creates the markup for the Settings page
-        */
-       public function markup_settings_page() {
-               if ( current_user_can( self::REQUIRED_CAPABILITY ) ) {
-                       require_once( dirname( __DIR__ ) . '/views/settings-screen.php' );
-               } else {
-                       wp_die( __( 'Access denied.', 'wordcamporg' ) );
-               }
-       }
-
-       /**
-        * Registers settings sections, fields and settings
-        */
-       public function register_settings() {
-               add_settings_section(
-                       'wccsp_default',
-                       '',
-                       array( $this, 'markup_section_headers' ),
-                       'wccsp_settings'
-               );
-
-
-               add_settings_field(
-                       'wccsp_enabled',
-                       __( 'Enabled', 'wordcamporg' ),
-                       array( $this, 'markup_fields' ),
-                       'wccsp_settings',
-                       'wccsp_default',
-                       array( 'label_for' => 'wccsp_enabled_true' )
-               );
-
-               add_settings_field(
-                       'wccsp_body_background_color',
-                       __( 'Body Background Color', 'wordcamporg' ),
-                       array( $this, 'markup_fields' ),
-                       'wccsp_settings',
-                       'wccsp_default',
-                       array( 'label_for' => 'wccsp_body_background_color' )
-               );
-
-               add_settings_field(
-                       'wccsp_container_background_color',
-                       __( 'Container Background Color', 'wordcamporg' ),
-                       array( $this, 'markup_fields' ),
-                       'wccsp_settings',
-                       'wccsp_default',
-                       array( 'label_for' => 'wccsp_container_background_color' )
-               );
-
-               add_settings_field(
-                       'wccsp_text_color',
-                       __( 'Text Color', 'wordcamporg' ),
-                       array( $this, 'markup_fields' ),
-                       'wccsp_settings',
-                       'wccsp_default',
-                       array( 'label_for' => 'wccsp_text_color' )
-               );
-
-               add_settings_field(
-                       'wccsp_image_id',
-                       __( 'Image', 'wordcamporg' ),
-                       array( $this, 'markup_fields' ),
-                       'wccsp_settings',
-                       'wccsp_default',
-                       array( 'label_for' => 'wccsp_image_id' )
-               );
-
-
-               register_setting(
-                       'wccsp_settings',
-                       'wccsp_settings',
-                       array( $this, 'validate_settings' )
-               );
-       }
-
-       /**
-        * Adds the section introduction text to the Settings page
-        *
-        * @param array $section
-        */
-       public function markup_section_headers( $section ) {
-               require( dirname( __DIR__ ) . '/views/settings-section-headers.php' );
-       }
-
-       /**
-        * Delivers the markup for settings fields
-        *
-        * @param array $field
-        */
-       public function markup_fields( $field ) {
-               switch ( $field['label_for'] ) {
-                       case 'wccsp_image_id':
-                               $image = wp_get_attachment_image_src( $this->settings['image_id'], 'medium' );
-                       break;
-               }
-
-               require( dirname( __DIR__ ) . '/views/settings-fields.php' );
-       }
-
-       /**
-        * Validates submitted setting values before they get saved to the database.
-        *
-        * @param array $new_settings
-        * @return array
-        */
-       public function validate_settings( $new_settings ) {
-               $new_settings = shortcode_atts( $this->settings, $new_settings );
-
-               if ( 'on' != $new_settings['enabled'] ) {
-                       $new_settings['enabled'] = 'off';
-               }
-
-               $new_settings['body_background_color']      = sanitize_text_field( $new_settings['body_background_color'] );
-               $new_settings['container_background_color'] = sanitize_text_field( $new_settings['container_background_color'] );
-               $new_settings['text_color']                 = sanitize_text_field( $new_settings['text_color'] );
-
-               $new_settings['image_id'] = absint( $new_settings['image_id'] );
-
-               return $new_settings;
-       }
-
-       /**
</del><span class="cx" style="display: block; padding: 0 10px">          * Clear the static page cache
</span><span class="cx" style="display: block; padding: 0 10px">         * Changing the settings will change the how the page looks, so the cache needs to be refreshed.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -216,12 +96,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Renders notices for the administrator when problems are detected
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function render_admin_notices() {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $current_screen = get_current_screen();
-
-               if ( 'settings_page_wccsp_settings' != $current_screen->id ) {
-                       return;
-               }
-
</del><span class="cx" style="display: block; padding: 0 10px">                 $active_modules            = Jetpack::$instance->get_active_modules();
</span><span class="cx" style="display: block; padding: 0 10px">                $inactive_required_modules = array();
</span><span class="cx" style="display: block; padding: 0 10px">                $required_modules          = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -235,8 +109,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                ob_start();
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 if ( $inactive_required_modules ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        require_once( dirname( __DIR__ ) . '/views/settings-admin-notices.php' );
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+
+               return ob_get_clean();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> } // end WCCSP_Settings
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageclasseswordcampcomingsoonpagephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wordcamp-coming-soon-page.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wordcamp-coming-soon-page.php   2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/classes/wordcamp-coming-soon-page.php     2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2,7 +2,7 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> class WordCamp_Coming_Soon_Page {
</span><span class="cx" style="display: block; padding: 0 10px">        protected $override_theme_template;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        const VERSION = '0.1';
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ const VERSION = '0.2';
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="cx" style="display: block; padding: 0 10px">         * Constructor
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -21,12 +21,23 @@
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function init() {
</span><span class="cx" style="display: block; padding: 0 10px">                $settings                      = $GLOBALS['WCCSP_Settings']->get_settings();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->override_theme_template = 'on' == $settings['enabled'] && ! current_user_can( 'edit_posts' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         $show_page                     = 'on' == $settings['enabled'] && ! current_user_can( 'edit_posts' );
+               $this->override_theme_template = $show_page || $this->is_coming_soon_preview();
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Check if the current page is our section of the Previewer
+        *
+        * @return bool
+        */
+       public function is_coming_soon_preview() {
+               global $wp_customize;
+
+               return isset( $_GET['wccsp-preview'] ) && $wp_customize->is_preview();
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Ensure the template has a consistent base of CSS rules, regardless of the current theme or Custom CSS
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Dequeue irrelevant stylesheets and use TwentyThirteen as the base style
</del><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public function manage_plugin_theme_stylesheets() {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( ! $this->override_theme_template ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -34,13 +45,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $this->dequeue_all_stylesheets();
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $this->register_twentythirteen_styles();
</del><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                wp_enqueue_style(
</span><span class="cx" style="display: block; padding: 0 10px">                        'wccsp-template',
</span><span class="cx" style="display: block; padding: 0 10px">                        plugins_url( '/css/template-coming-soon.css', __DIR__ ),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        array( 'twentythirteen-fonts', 'genericons', 'twentythirteen-style', 'admin-bar' ),
-                       self::VERSION
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 array(),
+                       1
</ins><span class="cx" style="display: block; padding: 0 10px">                 );
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -56,25 +66,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Register TwentyThirteen's base styles
-        */
-       protected function register_twentythirteen_styles() {
-               $twentythirteen_uri = get_theme_root_uri( 'twentythirteen' ) . '/twentythirteen';
-
-               if ( ! wp_style_is( 'twentythirteen-fonts', 'registered' ) ) {
-                       wp_register_style( 'twentythirteen-fonts', '//fonts.googleapis.com/css?family=Source+Sans+Pro%3A300%2C400%2C700%2C300italic%2C400italic%2C700italic%7CBitter%3A400%2C700&#038;subset=latin%2Clatin-ext', array(), null );
-               }
-
-               if ( ! wp_style_is( 'genericons', 'registered' ) ) {
-                       wp_register_style( 'genericons', $twentythirteen_uri . '/fonts/genericons.css' );
-               }
-
-               if ( ! wp_style_is( 'twentythirteen-style', 'registered' ) ) {
-                       wp_register_style( 'twentythirteen-style', $twentythirteen_uri . '/style.css' );
-               }
-       }
-
-       /**
</del><span class="cx" style="display: block; padding: 0 10px">          * Render dynamic CSS styles
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function render_dynamic_styles() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -82,29 +73,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        return;
</span><span class="cx" style="display: block; padding: 0 10px">                }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                $settings = $GLOBALS['WCCSP_Settings']->get_settings();
-               ?>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         extract( $GLOBALS['WordCamp_Coming_Soon_Page']->get_template_variables() );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <!-- BEGIN wordcamp-coming-soon-page -->
-               <style type="text/css">
-                       html, body {
-                               color: <?php echo esc_html( $settings['text_color'] ); ?>;
-                       }
-
-                       #wccsp-container,
-                       .widget  {
-                               background-color: <?php echo esc_html( $settings['container_background_color'] ); ?>;
-                       }
-
-                       @media all and ( min-width: 800px ) {
-                               html, body {
-                                       background-color: <?php echo esc_html( $settings['body_background_color'] ); ?>;
-                               }
-                       }
-               </style>
-               <!-- END wordcamp-coming-soon-page -->
-
-               <?php
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         require_once( dirname( __DIR__ ) . '/css/template-coming-soon-dynamic.php' );
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -130,17 +101,73 @@
</span><span class="cx" style="display: block; padding: 0 10px">        function get_template_variables() {
</span><span class="cx" style="display: block; padding: 0 10px">                $variables = array(
</span><span class="cx" style="display: block; padding: 0 10px">                        'image_url'              => $this->get_image_url(),
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        'background_url'         => $this->get_bg_image_url(),
</ins><span class="cx" style="display: block; padding: 0 10px">                         'dates'                  => $this->get_dates(),
</span><span class="cx" style="display: block; padding: 0 10px">                        'active_modules'         => Jetpack::$instance->get_active_modules(),
</span><span class="cx" style="display: block; padding: 0 10px">                        'contact_form_shortcode' => $this->get_contact_form_shortcode(),
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        'colors'                 => $this->get_colors(),
</ins><span class="cx" style="display: block; padding: 0 10px">                 );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                return $variables;
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * Retrieve the URL of the image displayed in the template
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * Retrieve the colors for the template
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * @return array
+        */
+       public function get_colors() {
+               $settings = $GLOBALS['WCCSP_Settings']->get_settings();
+
+               if ( ! class_exists( 'Jetpack_Color' ) && function_exists( 'jetpack_require_lib' ) ) {
+                       jetpack_require_lib( 'class.color' );
+               }
+
+               // If they never changed from the old default background color, then use the new default
+               $background = $settings['body_background_color'];
+               if ( '#666666' === $background ) {
+                       $background = '#0073aa';
+               }
+
+               // Just in case we can't find Jetpack_Color
+               if ( class_exists( 'Jetpack_Color' ) ) {
+                       $color     = new Jetpack_Color( $background, 'hex' );
+                       $color_hsl = $color->toHsl();
+
+                       $lighter_color = new Jetpack_Color( array(
+                               $color_hsl['h'],
+                               $color_hsl['s'],
+                               ( $color_hsl['l'] >= 85 ) ? 100 : $color_hsl['l'] + 15
+                       ), 'hsl' );
+
+                       $darker_color = new Jetpack_Color( array(
+                               $color_hsl['h'],
+                               $color_hsl['s'],
+                               ( $color_hsl['l'] < 10 ) ? 0 : $color_hsl['l'] - 10
+                       ), 'hsl' );
+
+                       $background_lighter = '#' . $lighter_color->toHex();
+                       $background_darker  = '#' . $darker_color->toHex();
+               } else {
+                       $background_lighter = $background;
+                       $background_darker  = $background;
+               }
+
+               $colors['main']    = $background;
+               $colors['lighter'] = $background_lighter;
+               $colors['darker']  = $background_darker;
+
+               // Not currently customizable
+               $colors['text']       = '#32373c';
+               $colors['light-text'] = '#b4b9be';
+               $colors['border']     = '#00669b';
+
+               return $colors;
+       }
+
+       /**
+        * Retrieve the URL of the logo image displayed in the template
+        *
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return string|false
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_image_url() {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -153,6 +180,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">        }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        /**
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * Retrieve the URL of the background image displayed in the template
+        *
+        * @return string|false
+        */
+       public function get_bg_image_url() {
+               $settings   = $GLOBALS['WCCSP_Settings']->get_settings();
+               $image_meta = wp_get_attachment_metadata(  $settings['background_id']         );
+               $image      = wp_get_attachment_image_src( $settings['background_id'], 'full' );
+
+               return empty( $image[0] ) ? false : $image[0];
+       }
+
+       /**
</ins><span class="cx" style="display: block; padding: 0 10px">          * Retrieve the dates of the WordCamp
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @return string|false
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -164,12 +204,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                if ( isset( $wordcamp_post->ID ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        if ( ! empty( $wordcamp_post->meta['Start Date (YYYY-mm-dd)'][0] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                // translators: date format, see https://php.net/date
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                $dates = date_i18n( __( 'l, F jS Y' , 'wordcamporg' ), $wordcamp_post->meta['Start Date (YYYY-mm-dd)'][0] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         $dates = date_i18n( __( 'F jS Y' , 'wordcamporg' ), $wordcamp_post->meta['Start Date (YYYY-mm-dd)'][0] );
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                if ( ! empty( $wordcamp_post->meta['End Date (YYYY-mm-dd)'][0] ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                        if ( $wordcamp_post->meta['Start Date (YYYY-mm-dd)'][0] !== $wordcamp_post->meta['End Date (YYYY-mm-dd)'][0] ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                                // translators: date format, see https://php.net/date
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                $dates .= ' - ' . date_i18n( __( 'l, F jS Y' , 'wordcamporg' ), $wordcamp_post->meta['End Date (YYYY-mm-dd)'][0] );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                         $dates .= ' - ' . date_i18n( __( 'F jS Y' , 'wordcamporg' ), $wordcamp_post->meta['End Date (YYYY-mm-dd)'][0] );
</ins><span class="cx" style="display: block; padding: 0 10px">                                         }
</span><span class="cx" style="display: block; padding: 0 10px">                                }
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagecsstemplatecomingsoondynamicphp"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon-dynamic.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon-dynamic.php                            (rev 0)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon-dynamic.php      2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,34 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<!-- BEGIN wordcamp-coming-soon-page -->
+<style type="text/css">
+       body,
+       input[type="text"],
+       input[type="email"],
+       textarea {
+               color: <?php echo esc_attr( $colors['text'] ); ?>;
+       }
+
+       label span {
+               color: <?php echo esc_attr( $colors['light-text'] ); ?>;
+       }
+
+       .wccsp-header {
+               <?php if ( $background_url ) : ?>
+                       background: url('<?php echo esc_url( $background_url ); ?>') no-repeat center;
+                       background-size: cover;
+               <?php else: ?>
+                       background: <?php echo esc_attr( $colors['main'] ); ?>;
+                       background: linear-gradient(
+                               45deg,
+                               <?php echo esc_attr( $colors['main'] ); ?>,
+                               <?php echo esc_attr( $colors['lighter'] ); ?>
+                       );
+               <?php endif; ?>
+       }
+
+       button,
+       input[type="submit"] {
+               background: <?php echo esc_attr( $colors['main'] ); ?>;
+               border-color: <?php echo esc_attr( $colors['darker'] ); ?>;
+       }
+</style>
+<!-- END wordcamp-coming-soon-page -->
</ins></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagecsstemplatecomingsooncss"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon.css</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon.css    2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/css/template-coming-soon.css      2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,90 +1,225 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-h1, h2 {
-       margin-top: 0;
-       margin-bottom: 1em;
-       text-align: center;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+body {
+       margin: 0;
+       font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
+       font-size: 24px;
+       -webkit-font-smoothing: antialiased;
+       -moz-osx-font-smoothing: grayscale;
+       background-color: white;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-#wccsp-container {
-       max-width: 700px;
-       margin-left: auto;
-       margin-right: auto;
-       padding: 40px;
-       overflow: auto;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.wccsp-background {
+       position: absolute;
+       top: 0;
+       left: 0;
+       right: 0;
+       z-index: -1;
</ins><span class="cx" style="display: block; padding: 0 10px"> }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        #wccsp-image {
-               display: block;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.wccsp-container {
+       margin: 0 auto;
+       padding: 0 20px;
+       max-width: 730px;
+}
+
+.wccsp-header {
+       position: relative;
+       color: white;
+       overflow: hidden;
+       padding: 120px 0;
+}
+
+       .wccsp-header.overlay::after {
+               content: ' ';
+               position: absolute;
+               z-index: 0;
+               background: rgba( 0, 0, 0, 0.3 );
+               top: 0;
+               left: 0;
+               right: 0;
+               bottom: 0;
+       }
+
+       .wccsp-header.overlay * {
+               position: relative;
+               z-index: 1;
+       }
+
+.wccsp-image {
+       text-align: center;
+}
+
+       .wccsp-image img {
</ins><span class="cx" style="display: block; padding: 0 10px">                 max-width: 100%;
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                margin: 0 auto 40px auto;
</del><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        #wccsp-introduction {
-               margin-bottom: 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+h1 {
+       margin: 0;
+       margin-bottom: 10px;
+       font-size: 62px;
+       font-weight: 300;
+       text-align: center;
+}
+
+@media screen and ( max-width: 400px ) {
+       h1 {
+               font-size: 48px;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        .wccsp-box {
-               width: 100%;
-               min-height: 150px;
-               overflow: auto;
-               margin: 40px 40px 0 0;
-               padding: 15px;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+h2 {
+       font-size: 28px;
+       font-weight: 600;
+}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                border: 1px solid black;        /* todo box shadow */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+h2.wccsp-dates {
+       margin: 0;
+       margin-bottom: 50px;
+       font-size: 30px;
+       font-weight: 300;
+       text-align: center;
+       color: rgba( 255, 255, 255, 0.8 );
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+       color: inherit;
+       font: inherit;
+       margin: 0;
+}
+
+button,
+input[type="text"],
+input[type="email"],
+input[type="submit"],
+textarea {
+       box-sizing: border-box;
+       padding: 5px;
+       width: 100%;
+       border: none;
+       font-size: 18px;
+       line-height: normal;
+}
+
+input[type="text"],
+input[type="email"] {
+       height: 40px;
+}
+
+textarea {
+       height: 200px;
+       resize: vertical;
+}
+
+button,
+input[type="submit"] {
+       -webkit-appearance: button;
+       cursor: pointer;
+       height: 40px;
+       font-size: 14px;
+       color: white;
+       text-shadow: 0 0 5px rgba( 0, 0, 0, 0.5 );
+       border-width: 1px 1px 2px;
+       border-style: solid;
+       border-radius: 3px;
+}
+
+label {
+       display: block;
+}
+
+       label span {
+               margin-left: 8px;
+               text-transform: uppercase;
+               font-size: 16px;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                #wccsp-container .wccsp-box:last-child {
-                       margin-right: 0;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.jetpack_subscription_widget {
+}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box .widget {
-                       margin: 0;
-                       padding: 0;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ .jetpack_subscription_widget form {
+               display: flex;
+               padding: 5px;
+               background: white;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box h2 {
-                       margin-top: 0;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ .jetpack_subscription_widget p {
+               margin: 0;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box p:last-child {
-                       margin-bottom: 0;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         .jetpack_subscription_widget p.error {
+                       margin-bottom: 5px;
+                       font-size: 16px;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box input[type="text"],
-               .wccsp-box input[type="email"],
-               .wccsp-box textarea {
-                       width: 100%;
-                       margin-bottom: 1em;
-                       padding: 2px 3px;
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ #subscribe-email {
+               flex: 3;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        /* todo not working */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         #subscribe-email input[type="submit"] {
+                       padding: 5px 30px;
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box input[type="text"]:last-child {
-                       margin-bottom: 0;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ #subscribe-submit  {
+               flex: 1;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box input[type="submit"] {
-                       margin: 0 auto;                         /*todo not working */
-                       text-align: center;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.wccsp-introduction {
+       margin-bottom: 75px;
+       padding: 75px 0;
+       border-bottom: 2px solid #f0f2f3;
+}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box textarea {
-                       height: 8em;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ .wccsp-introduction p {
+               margin: 0;
+       }
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .grunion-field-label span {
-                       padding-left: 5px;
-               }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+.wccsp-contact {
+       margin-bottom: 75px;
+}
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-@media all and ( min-width: 800px ) {
-       #wccsp-container {
-               margin-top: 50px;
-               margin-bottom: 50px;
-               border: 1px solid black; /* todo box shadow */
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ .wccsp-contact h2 {
+               margin: 0 0 50px;
</ins><span class="cx" style="display: block; padding: 0 10px">         }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                .wccsp-box {
-                       float: left;
-                       width: 46%;             /* todo temp workaround */
-               }
-}
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        .wccsp-contact input[type="text"],
+       .wccsp-contact input[type="email"],
+       .wccsp-contact textarea {
+               border: 1px solid #cbcdce;
+       }
+
+       .wccsp-contact form > div {
+               margin-bottom: 40px;
+       }
+
+       .wccsp-contact label {
+               margin-bottom: 10px;
+       }
+
+       .wccsp-contact input[type="submit"] {
+               padding: 5px 30px;
+               width: auto;
+       }
+
+.wccsp-footer {
+       background: #32373c;
+       text-align: center;
+       padding: 20px 0;
+       font-size: 16px;
+       font-weight: 400;
+}
+
+       .wccsp-footer a:link,
+       .wccsp-footer a:visited,
+       .wccsp-footer a:hover,
+       .wccsp-footer a:active {
+               color: white;
+               text-decoration: none;
+       }
+
+       .wccsp-footer a:hover,
+       .wccsp-footer a:focus {
+               text-decoration: underline;
+       }
</ins></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagejavascriptwccspcustomizerjs"></a>
<div class="addfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Added: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-customizer.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-customizer.js                          (rev 0)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-customizer.js    2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -0,0 +1,44 @@
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+wp.customize.WordCamp.ComingSoonPage = ( function( $, api ) {
+       'use strict';
+
+       var self = {
+               sectionID : 'wccsp_live_preview',
+               siteURL   : window.location.protocol + '//' + window.location.hostname,
+       };
+
+       self.previewPageURL = self.siteURL + '?wccsp-preview';
+
+       /**
+        * Initialize
+        */
+       self.initialize = function() {
+               api.section( self.sectionID ).container.bind( 'expanded',  self.loadPreviewPage   );
+               api.section( self.sectionID ).container.bind( 'collapsed', self.unloadPreviewPage );
+       };
+
+       /**
+        * Load the Coming Soon page when navigating to our section
+        *
+        * @param {object} event
+        */
+       self.loadPreviewPage = function( event ) {
+               if ( self.previewPageURL !== api.previewer.previewUrl.get() ) {
+                       api.previewer.previewUrl.set( self.previewPageURL );
+               }
+       };
+
+       /**
+        * Unload the Coming Soon page when navigating away from our section
+        *
+        * @param {object} event
+        */
+       self.unloadPreviewPage = function( event ) {
+               if ( self.previewPageURL === api.previewer.previewUrl.get() ) {
+                       api.previewer.previewUrl.set( self.siteURL );
+               }
+       };
+
+       api.bind( 'ready', self.initialize );
+       return self;
+
+} ( jQuery, wp.customize ) );
</ins></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpagejavascriptwccspsettingsjs"></a>
<div class="delfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Deleted: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-settings.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-settings.js    2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/javascript/wccsp-settings.js      2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,38 +0,0 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-jQuery( document ).ready( function( $ ) {
-
-       var WCCSP_Settings = {
-
-               /**
-                * Constructor
-                */
-               __construct: function () {
-                       $( '#wccsp-select-image' ).click( WCCSP_Settings.uploader );
-               },
-
-               /**
-                * Injects the media modal and assigns the chosen attachment ID to corresponding input field
-                *
-                * @param object event
-                * @returns {boolean}
-                */
-               uploader : function( event ) {
-                       var frame = wp.media( {
-                               title           : 'Select Image',
-                               multiple        : false,
-                               library         : { type : 'image' },
-                               button          : { text : 'Select Image' }
-                       } );
-
-                       frame.on( 'close', function() {
-                               var attachments = frame.state().get( 'selection' ).toJSON();
-                               $( '#wccsp_image_id' ).val( parseInt( attachments[0].id ) );
-                               $( '#wccsp_image_preview' ).text( 'You have chosen a new image. The preview will be updated after you click on the Save Changes button.' );
-                       } );
-
-                       frame.open();
-                       return false;
-               }
-       }; // end WCCSP_Settings
-
-       WCCSP_Settings.__construct();
-} );
</del><span class="cx" style="display: block; padding: 0 10px">\ No newline at end of file
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingsadminnoticesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-admin-notices.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-admin-notices.php        2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-admin-notices.php  2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,4 +1,4 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<div class="error">
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+<div class="notice notice-error notice-large">
</ins><span class="cx" style="display: block; padding: 0 10px">         <ul>
</span><span class="cx" style="display: block; padding: 0 10px">                <?php foreach ( $inactive_required_modules as $module ) : ?>
</span><span class="cx" style="display: block; padding: 0 10px">                        <li>
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingsfieldsphp"></a>
<div class="delfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Deleted: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-fields.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-fields.php       2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-fields.php 2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,45 +0,0 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<?php if ( 'wccsp_enabled_true' == $field['label_for'] ) : ?>
-       <input id="wccsp_enabled_true" name="wccsp_settings[enabled]" type="radio" value="on" <?php checked( $this->settings['enabled'], 'on' ); ?> />
-       <span class="example">
-               <?php // translators: If Coming Soon plugin is enabled ?>
-               <?php _e( 'On', 'wordcamporg' ); ?>
-       </span><br />
-       
-       <input id="wccsp_enabled_false" name="wccsp_settings[enabled]" type="radio" value="off" <?php checked( $this->settings['enabled'], 'off' ); ?> />
-       <span class="example">
-               <?php // translators: If Coming Soon plugin is disabled ?>
-               <?php _e( 'Off', 'wordcamporg' ); ?>
-       </span>
-<?php endif; ?>
-
-
-<?php if ( 'wccsp_body_background_color' == $field['label_for'] ) : ?>
-       <input id="wccsp_body_background_color" name="wccsp_settings[body_background_color]" type="text" class="short-text" value="<?php echo esc_attr( $this->settings['body_background_color'] ); ?>" />
-<?php endif; ?>
-
-
-<?php if ( 'wccsp_container_background_color' == $field['label_for'] ) : ?>
-       <input id="wccsp_container_background_color" name="wccsp_settings[container_background_color]" type="text" class="short-text" value="<?php echo esc_attr( $this->settings['container_background_color'] ); ?>" />
-<?php endif; ?>
-
-
-<?php if ( 'wccsp_text_color' == $field['label_for'] ) : ?>
-       <input id="wccsp_text_color" name="wccsp_settings[text_color]" type="text" class="short-text" value="<?php echo esc_attr( $this->settings['text_color'] ); ?>" />
-<?php endif; ?>
-
-
-<?php if ( 'wccsp_image_id' == $field['label_for'] ) : ?>
-       <p>
-               <input type="hidden" id="wccsp_image_id" name="wccsp_settings[image_id]" value="<?php echo esc_attr( $this->settings['image_id'] ); ?>" />
-               <a href="javascript:;" id="wccsp-select-image" class="button insert-media add_media" title="<?php _e( 'Select Image', 'wordcamporg' ); ?>">
-                       <?php _e( 'Select Image', 'wordcamporg' ); ?>
-               </a>
-       </p>
-       
-       <?php if( $image ) : ?>
-               <p id="wccsp_image_preview">
-                       <?php _e( 'Current image preview:', 'wordcamporg' ); ?><br />
-                       <img src="<?php echo esc_attr( $image[0] ); ?>" alt="<?php _e( 'Image Preview', 'wordcamporg' ); ?>" />
-               </p>
-       <?php endif; ?>
-<?php endif; ?>
</del></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingsscreenphp"></a>
<div class="delfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Deleted: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-screen.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-screen.php       2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-screen.php 2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,13 +0,0 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<div class="wrap">
-       <div id="icon-options-general" class="icon32"><br /></div>
-       <h1><?php _e( 'Coming Soon', 'wordcamporg' ); ?></h1>
-
-       <form method="post" action="options.php">
-               <?php settings_fields( 'wccsp_settings' ); ?>
-               <?php do_settings_sections( 'wccsp_settings' ); ?>
-
-               <p class="submit">
-                       <input type="submit" name="submit" id="submit" class="button-primary" value="<?php echo __( 'Save Changes' ); ?>" />
-               </p>
-       </form>
-</div> <!-- .wrap -->
</del></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewssettingssectionheadersphp"></a>
<div class="delfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Deleted: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-section-headers.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-section-headers.php      2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/settings-section-headers.php        2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1,8 +0,0 @@
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-<p>
-       <?php _e(
-               'When enabled, the Coming Soon page will be displayed to logged-out users, giving you a chance to setup
-                all of your content before your site is visible to the world. To preview the page, just open your site in
-                an Incognito/Private tab, or log out of your account.',
-               'wordcamporg'
-       ); ?>
-</p>
</del></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswordcampcomingsoonpageviewstemplatecomingsoonphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/template-coming-soon.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/template-coming-soon.php  2016-08-08 20:15:21 UTC (rev 3783)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wordcamp-coming-soon-page/views/template-coming-soon.php    2016-08-09 14:53:51 UTC (rev 3784)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -5,50 +5,73 @@
</span><span class="cx" style="display: block; padding: 0 10px">        <meta name="viewport" content="width=device-width">
</span><span class="cx" style="display: block; padding: 0 10px">        <title><?php echo esc_html( get_bloginfo( 'name' ) ); ?></title>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        <?php extract( $GLOBALS['WordCamp_Coming_Soon_Page']->get_template_variables() ); ?>
</ins><span class="cx" style="display: block; padding: 0 10px">         <?php wp_head(); ?>
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        <?php extract( $GLOBALS['WordCamp_Coming_Soon_Page']->get_template_variables() ); ?>
</del><span class="cx" style="display: block; padding: 0 10px"> </head>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> <body <?php body_class(); ?>>
</span><span class="cx" style="display: block; padding: 0 10px">        <div id="wccsp-container">
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                <div class="wccsp-header <?php echo $background_url ? 'overlay' : ''; ?>">
+                       <div class="wccsp-container">
+                               <?php if ( $image_url ) : ?>
+                                       <div class="wccsp-image">
+                                               <img id="wccsp-image" src="<?php echo esc_attr( $image_url ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>" />
+                                       </div>
+                               <?php endif; ?>
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <h1><?php echo esc_attr( get_bloginfo( 'name' ) ); ?></h1>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         <h1><?php echo esc_html( get_bloginfo( 'name' ) ); ?></h1>
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <?php if ( $image_url ) : ?>
-                       <img id="wccsp-image" src="<?php echo esc_attr( $image_url ); ?>" alt="<?php echo esc_attr( get_bloginfo( 'name' ) ); ?>" />
-               <?php endif; ?>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         <?php if ( $dates ) : ?>
+                                       <h2 class="wccsp-dates">
+                                               <?php echo esc_html( $dates ); ?>
+                                       </h2>
+                               <?php endif; ?>
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <?php if ( $dates ) : ?>
-                       <h2><?php echo esc_html( $dates ); ?></h2>
-               <?php endif; ?>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         <?php if ( in_array( 'subscriptions', $active_modules ) ) : ?>
+                                       <div class="wccsp-subscription">
+                                               <?php echo do_shortcode( sprintf(
+                                                       '[jetpack_subscription_form subscribe_text="" title="" subscribe_button="%s"]',
+                                                       esc_html__( 'Send me updates!', 'wordcamporg' )
+                                               ) ); ?>
+                                       </div>
+                               <?php endif; ?>
+                       </div><!-- .wccsp-container -->
+               </div><!-- .wccsp-header -->
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <p id="wccsp-introduction">
-                       <?php printf(
-                               // translators: %s is the name of the blog
-                               __( '%s is in the early planning stages. In the meantime, you can subscribe to be notified when the site goes live, or contact the organizers to get involved.', 'wordcamporg' ),
-                               esc_html( get_bloginfo( 'name' ) )
-                       ); ?>
-               </p>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         <div class="wccsp-container">
+                       <div class="wccsp-introduction">
+                               <p id="wccsp-introduction">
+                                       <?php printf(
+                                               // translators: %s is the name of the blog
+                                               __(
+                                                       '%s is in the early planning stages.
+                                                        In the meantime, you can subscribe to be notified when the site goes live, or contact the organizers to get involved.',
+                                                       'wordcamporg'
+                                               ),
+                                               esc_html( get_bloginfo( 'name' ) )
+                                       ); ?>
+                               </p>
+                       </div><!-- .wccsp-introduction -->
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <?php if ( in_array( 'subscriptions', $active_modules ) ) : ?>
-                       <div class="wccsp-box">
-                               <?php echo do_shortcode( sprintf(
-                                       '[jetpack_subscription_form title="%s"]',
-                                       __( 'Subscribe for Updates', 'wordcamporg' )
-                               ) ); ?>
-                       </div>
-               <?php endif; ?>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 <?php if ( in_array( 'contact-form', $active_modules ) && $contact_form_shortcode ) : ?>
+                               <div class="wccsp-contact">
+                                       <h2><?php esc_html_e( 'Contact the Organizers' , 'wordcamporg' ); ?></h2>
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                <?php if ( in_array( 'contact-form', $active_modules ) && $contact_form_shortcode ) : ?>
-                       <div class="wccsp-box">
-                               <h2><?php _e( 'Contact the Organizers' , 'wordcamporg' ); ?></h2>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                 <?php echo $contact_form_shortcode; // intentionally not escaping because it's the output of do_shortcode() ?>
+                               </div>
+                       <?php endif; ?>
+               </div><!-- .wccsp-container -->
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                <?php echo $contact_form_shortcode; // intentionally not escaping because it's the output of do_shortcode() ?>
-                       </div>
-               <?php endif; ?>
-
</del><span class="cx" style="display: block; padding: 0 10px">         </div><!-- #wccsp_container -->
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        <div class="wccsp-footer">
+               <p>
+                       <a href="https://central.wordcamp.org/schedule/">
+                               <?php esc_html_e( 'See all upcoming events at WordCamp Central', 'wordcamporg' ); ?>
+                       </a>
+               </p>
+       </div>
+
</ins><span class="cx" style="display: block; padding: 0 10px">         <?php wp_footer(); ?>
</span><span class="cx" style="display: block; padding: 0 10px"> </body>
</span><span class="cx" style="display: block; padding: 0 10px"> </html>
</span></span></pre>
</div>
</div>

</body>
</html>