PluginProbe
TablePress – Tables in WordPress made easy / 3.2
TablePress – Tables in WordPress made easy v3.2
3.3.4 3.3.3 3.3.2 3.3.1 trunk 1.12 1.14 1.9.2 2.0.4 2.1.7 2.1.8 2.2 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.3 2.3.1 2.3.2 2.4 2.4.1 2.4.2 2.4.3 2.4.4 All 44 releases
tablepress / admin / js / codemirror.js

codemirror.js in TablePress – Tables in WordPress made easy 3.2, at admin/js/codemirror.js

51 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * JavaScript code for the CodeMirror handling on the "Options" screen.
3 *
4 * @package TablePress
5 * @subpackage Views JavaScript
6 * @author Tobias Bäthge
7 * @since 1.9.0
8 */
9
10 /* globals tp, wp */
11
12 /* jshint strict: global */
13 'use strict'; // Necessary as this file does not use "import".
14
15 // Ensure the global `tp` object exists.
16 window.tp = window.tp || {};
17
18 /**
19 * Invoke CodeMirror on the "Custom CSS" textarea.
20 *
21 * @since 1.9.0
22 */
23 tp.CM_custom_css = wp.codeEditor.initialize( 'option-custom-css', {} ).codemirror;
24 const $CM_wrapper = tp.CM_custom_css.getWrapperElement();
25
26 /**
27 * Let CodeMirror textarea grow on first focus (with mouse click), if it is not disabled.
28 *
29 * @since 1.0.0
30 */
31 const CM_wrapper_mousedown_handler = function () {
32 if ( ! this.classList.contains( 'disabled' ) ) {
33 this.classList.add( 'large' );
34 tp.CM_custom_css.refresh();
35 this.removeEventListener( 'mousedown', CM_wrapper_mousedown_handler ); // No need to keep checking for clicks after the textarea height was increased.
36 }
37 };
38 $CM_wrapper.addEventListener( 'mousedown', CM_wrapper_mousedown_handler );
39
40 /**
41 * Enable/disable CodeMirror according to state of "Load Custom CSS" checkbox.
42 *
43 * @since 1.0.0
44 */
45 const $cb_use_custom_css = document.getElementById( 'option-use-custom-css' );
46 $cb_use_custom_css.addEventListener( 'change', function () {
47 tp.CM_custom_css.setOption( 'readOnly', ! this.checked );
48 $CM_wrapper.classList.toggle( 'disabled', ! this.checked );
49 } );
50 $cb_use_custom_css.dispatchEvent( new Event( 'change' ) );
51