From be900625d7f3265be547df34e603d7cd7ea1bf58 Mon Sep 17 00:00:00 2001 From: dannylonglegs Date: Wed, 5 Jun 2019 16:07:14 -0400 Subject: [PATCH] Add javascript to toggle read only on customizer page --- assets/scripts/customizer-toggle.js | 25 ++++++++++++++++++++++ assets/scripts/customizer.js | 1 + dist/mix-manifest.json | 5 +++-- dist/scripts/customizer-toggle.js | 1 + dist/scripts/page-section.js | 2 +- functions.php | 1 + inc/customizer/namespace.php | 13 +++++++++--- package-lock.json | 32 +++++++++++++++++++++-------- webpack.mix.js | 5 +++-- 9 files changed, 68 insertions(+), 17 deletions(-) create mode 100644 assets/scripts/customizer-toggle.js create mode 100644 dist/scripts/customizer-toggle.js diff --git a/assets/scripts/customizer-toggle.js b/assets/scripts/customizer-toggle.js new file mode 100644 index 0000000..cc9d89a --- /dev/null +++ b/assets/scripts/customizer-toggle.js @@ -0,0 +1,25 @@ +document.addEventListener( 'DOMContentLoaded', function () { + let checkbox = document.getElementById( '_customize-input-pb_network_contact_form' ); + let email = document.querySelector( '#_customize-input-pb_network_contact_email' ); + let link = document.querySelector( '#_customize-input-pb_network_contact_link' ); + let title = document.querySelector( '#_customize-input-pb_network_contact_form_title' ); + + checkbox.addEventListener( 'click', toggleReadOnly ); + + function toggleReadOnly(){ + if ( checkbox.checked === false ){ + email.setAttribute( 'readonly', 'readonly' ); + title.setAttribute( 'readonly', 'readonly' ); + + link.removeAttribute( 'readonly' ); + } else { + email.removeAttribute( 'readonly' ); + title.removeAttribute( 'readonly' ); + + link.setAttribute( 'readonly', 'readonly' ); + } + } + + toggleReadOnly(); + +} ) diff --git a/assets/scripts/customizer.js b/assets/scripts/customizer.js index 3d5a84d..2301206 100644 --- a/assets/scripts/customizer.js +++ b/assets/scripts/customizer.js @@ -1,3 +1,4 @@ + wp.customize( 'blogname', value => { value.bind( to => document.querySelector( '.home .entry-title' ).textContent = to ); } ); diff --git a/dist/mix-manifest.json b/dist/mix-manifest.json index 1b10913..753ce5c 100644 --- a/dist/mix-manifest.json +++ b/dist/mix-manifest.json @@ -5,5 +5,6 @@ "/scripts/call-to-action.js": "/scripts/call-to-action.js?id=14b2ac09b5fc52660522", "/scripts/catalog-admin.js": "/scripts/catalog-admin.js?id=43511dff74631c962103", "/scripts/customizer.js": "/scripts/customizer.js?id=cd5dc6157cc6b89dc521", - "/scripts/page-section.js": "/scripts/page-section.js?id=03bd80d7f2c2727b2b4f" -} + "/scripts/customizer-toggle.js": "/scripts/customizer-toggle.js?id=1c22f3d5b5cb63f75533", + "/scripts/page-section.js": "/scripts/page-section.js?id=b62a3319a10d83a36aea" +} diff --git a/dist/scripts/customizer-toggle.js b/dist/scripts/customizer-toggle.js new file mode 100644 index 0000000..623a10c --- /dev/null +++ b/dist/scripts/customizer-toggle.js @@ -0,0 +1 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=4)}({4:function(e,t,n){e.exports=n("5MvR")},"5MvR":function(e,t){document.addEventListener("DOMContentLoaded",function(){var e=document.getElementById("_customize-input-pb_network_contact_form"),t=document.querySelector("#_customize-input-pb_network_contact_email"),n=document.querySelector("#_customize-input-pb_network_contact_link"),r=document.querySelector("#_customize-input-pb_network_contact_form_title");function o(){!1===e.checked?(t.setAttribute("readonly","readonly"),r.setAttribute("readonly","readonly"),n.removeAttribute("readonly")):(t.removeAttribute("readonly"),r.removeAttribute("readonly"),n.setAttribute("readonly","readonly"))}e.addEventListener("click",o),o()})}}); \ No newline at end of file diff --git a/dist/scripts/page-section.js b/dist/scripts/page-section.js index 16cba1e..d5333f9 100644 --- a/dist/scripts/page-section.js +++ b/dist/scripts/page-section.js @@ -1 +1 @@ -!function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(i,a,function(t){return e[t]}.bind(null,a));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=4)}({4:function(e,t,n){e.exports=n("eeN9")},eeN9:function(e,t){tinymce.create("tinymce.plugins.aldine_page_section",{init:function(e,t){e.addButton("aldine_page_section",{title:aldine.page_section.title,icon:"icon dashicons-layout",onclick:function(){e.windowManager.open({title:aldine.page_section.title,body:[{type:"textbox",name:"title",label:aldine.page_section.title_label,value:aldine.page_section.title},{type:"listbox",name:"variant",label:"Variant",values:[{text:aldine.page_section.standard,value:""},{text:aldine.page_section.accent,value:"accent"},{text:aldine.page_section.bordered,value:"bordered"},{text:aldine.page_section.borderless,value:"borderless"}],value:""}],onsubmit:function(t){e.insertContent('[aldine_page_section title="'+t.data.title+'" variant="'+t.data.variant+'"]

Insert your page section content here.

[/aldine_page_section]')}})}})},createControl:function(e,t){return null}}),tinymce.PluginManager.add("aldine_page_section",tinymce.plugins.aldine_page_section)}}); \ No newline at end of file +!function(e){var t={};function n(i){if(t[i])return t[i].exports;var a=t[i]={i:i,l:!1,exports:{}};return e[i].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(i,a,function(t){return e[t]}.bind(null,a));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/",n(n.s=5)}({5:function(e,t,n){e.exports=n("eeN9")},eeN9:function(e,t){tinymce.create("tinymce.plugins.aldine_page_section",{init:function(e,t){e.addButton("aldine_page_section",{title:aldine.page_section.title,icon:"icon dashicons-layout",onclick:function(){e.windowManager.open({title:aldine.page_section.title,body:[{type:"textbox",name:"title",label:aldine.page_section.title_label,value:aldine.page_section.title},{type:"listbox",name:"variant",label:"Variant",values:[{text:aldine.page_section.standard,value:""},{text:aldine.page_section.accent,value:"accent"},{text:aldine.page_section.bordered,value:"bordered"},{text:aldine.page_section.borderless,value:"borderless"}],value:""}],onsubmit:function(t){e.insertContent('[aldine_page_section title="'+t.data.title+'" variant="'+t.data.variant+'"]

Insert your page section content here.

[/aldine_page_section]')}})}})},createControl:function(e,t){return null}}),tinymce.PluginManager.add("aldine_page_section",tinymce.plugins.aldine_page_section)}}); \ No newline at end of file diff --git a/functions.php b/functions.php index 12ddc3e..446b540 100644 --- a/functions.php +++ b/functions.php @@ -65,6 +65,7 @@ add_action( 'updated_option', '\Aldine\Actions\add_color_variants', 10, 3 ); add_action( 'customize_register', '\Aldine\Customizer\customize_register' ); add_action( 'customize_preview_init', '\Aldine\Customizer\customize_preview_js' ); add_action( 'customize_controls_enqueue_scripts', '\Aldine\Customizer\enqueue_color_contrast_validator' ); +add_action( 'customize_controls_enqueue_scripts', '\Aldine\Customizer\enqueue_customizer_toggle' ); // Shortcodes add_shortcode( 'aldine_page_section', '\Aldine\Shortcodes\page_section' ); diff --git a/inc/customizer/namespace.php b/inc/customizer/namespace.php index c160095..31e1aab 100644 --- a/inc/customizer/namespace.php +++ b/inc/customizer/namespace.php @@ -27,6 +27,8 @@ function customize_register( \WP_Customize_Manager $wp_customize ) { $wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage'; $wp_customize->get_setting( 'header_textcolor' )->transport = 'postMessage'; + + if ( isset( $wp_customize->selective_refresh ) ) { $wp_customize->selective_refresh->add_partial( 'blogname', [ @@ -197,6 +199,7 @@ function customize_register( \WP_Customize_Manager $wp_customize ) { $wp_customize->add_setting( 'pb_network_contact_form', [ 'type' => 'option', + 'transport' => 'refresh', ] ); $wp_customize->add_control( @@ -207,7 +210,6 @@ function customize_register( \WP_Customize_Manager $wp_customize ) { 'type' => 'checkbox', ] ); - if ( get_option( 'pb_network_contact_form' ) === true ) { $wp_customize->add_setting( 'pb_network_contact_form_title', [ 'type' => 'option', @@ -236,7 +238,6 @@ function customize_register( \WP_Customize_Manager $wp_customize ) { 'settings' => 'pb_network_contact_email', ] ); - } else { $wp_customize->add_setting( 'pb_network_contact_link', [ 'type' => 'option', @@ -249,7 +250,6 @@ function customize_register( \WP_Customize_Manager $wp_customize ) { 'settings' => 'pb_network_contact_link', ] ); - } } /** @@ -291,3 +291,10 @@ function enqueue_color_contrast_validator() { sprintf( 'var _validateWCAGColorContrastExports = %s;', wp_json_encode( $exports ) ) ); } + +function enqueue_customizer_toggle() { + $assets = new Assets( 'pressbooks-aldine', 'theme' ); + $assets->setSrcDirectory( 'assets' )->setDistDirectory( 'dist' ); + + wp_enqueue_script( 'aldine/customizer-toggle', $assets->getPath( 'scripts/customizer-toggle.js' ), false, null ); +} diff --git a/package-lock.json b/package-lock.json index dac327f..e993b45 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2767,7 +2767,7 @@ }, "buffer": { "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "resolved": "http://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { @@ -6824,11 +6824,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -6841,15 +6843,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -6952,7 +6957,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -6962,6 +6968,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -6974,17 +6981,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.3.5", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -7001,6 +7011,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -7073,7 +7084,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7083,6 +7095,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -7188,6 +7201,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -14054,7 +14068,7 @@ }, "rgba-regex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "resolved": "http://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", "dev": true }, diff --git a/webpack.mix.js b/webpack.mix.js index cc4e83e..018a669 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -21,9 +21,9 @@ mix.setResourceRoot( '../' ); // BrowserSync mix.browserSync( { - host: 'localhost', + host: 'localhost', proxy: 'https://pressbooks.test', - port: 3100, + port: 3100, files: [ '*.php', `${inc}/**/*.php`, @@ -45,6 +45,7 @@ mix .js( `${assets}/scripts/call-to-action.js`, `${dist}/scripts` ) .js( `${assets}/scripts/catalog-admin.js`, `${dist}/scripts` ) .js( `${assets}/scripts/customizer.js`, `${dist}/scripts` ) + .js( `${assets}/scripts/customizer-toggle.js`, `${dist}/scripts` ) .js( `${assets}/scripts/page-section.js`, `${dist}/scripts` ); // Assets