PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.0.4
GiveWP – Donation Plugin and Fundraising Platform v2.0.4
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / assets / js / admin / admin-shortcodes.js
give / assets / js / admin Last commit date
tinymce 9 years ago admin-forms.js 8 years ago admin-forms.min.js 8 years ago admin-scripts.js 8 years ago admin-scripts.min.js 8 years ago admin-settings.js 8 years ago admin-settings.min.js 8 years ago admin-shortcodes.js 9 years ago admin-shortcodes.min.js 9 years ago admin-widgets.js 8 years ago admin-widgets.min.js 8 years ago
admin-shortcodes.js
224 lines
1 /*!
2 * Give Admin Shortcodes JS
3 *
4 * @description: The Give Admin Shortcode scripts. Only enqueued on the admin widgets screen; used to show shortcode dialogs, show/hide, and other functions
5 * @package: Give
6 * @subpackage: Assets/JS
7 * @author: Paul Ryley
8 * @copyright: Copyright (c) 2016, WordImpress
9 * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License
10 * @since: 1.3.0
11 */
12
13 /* global ajaxurl, jQuery, scShortcodes, tinymce */
14
15 var jq = jQuery.noConflict();
16
17 var scShortcode, scButton;
18
19 /**
20 * Show continue button title setting field only if display style is not All Fields.
21 */
22 var render_continue_button_title_field = function() {
23 var selected_display_style = jq('.mce-txt', '.mce-give-display-style').text(),
24 expected_display_styles = [ '- Select -', 'All Fields' ];
25
26 if( -1 !== jq.inArray( selected_display_style, expected_display_styles ) ) {
27 jq('.mce-give-continue-button-title').closest('.mce-container' ).hide()
28 } else {
29 jq('.mce-give-continue-button-title').closest('.mce-container' ).show()
30 }
31 };
32
33 var scForm = {
34
35 open: function( editor_id ) {
36 var editor = tinymce.get( editor_id );
37
38 if ( ! editor ) {
39 return;
40 }
41
42 var data, field, required, valid, win;
43
44 data = {
45 action : 'give_shortcode',
46 shortcode : scShortcode
47 };
48
49 jq.post( ajaxurl, data, function( response ) {
50
51 // what happens if response === false?
52 if ( ! response.body ) {
53 console.error( 'Bad AJAX response!' );
54 return;
55 }
56
57 if ( response.body.length === 0 ) {
58 window.send_to_editor( '[' + response.shortcode + ']' );
59
60 scForm.destroy();
61
62 return;
63 }
64
65 /**
66 * Render continue button title setting field on basis of display style value.
67 */
68 jq.each( response.body, function( index, item ){
69
70 if( 'display_style' === item.name ) {
71 response.body[index].onselect = function(){
72 render_continue_button_title_field();
73 };
74 }
75 });
76
77 var popup = {
78 title : response.title,
79 body : response.body,
80 classes: 'sc-popup',
81 minWidth: 320,
82 buttons : [ {
83 text : response.ok,
84 classes : 'primary sc-primary',
85 onclick : function() {
86 // Get the top most window object
87 win = editor.windowManager.getWindows()[0];
88
89 // Get the shortcode required attributes
90 required = scShortcodes[ scShortcode ];
91
92 valid = true;
93
94 // Do some validation voodoo
95 for ( var id in required ) {
96 if ( required.hasOwnProperty( id ) ) {
97
98 field = win.find( '#' + id )[0];
99
100 if ( typeof field !== 'undefined' && field.state.data.value === '' ) {
101
102 valid = false;
103
104 alert( required[ id ] );
105
106 break;
107 }
108 }
109 }
110
111 if ( valid ) {
112 win.submit();
113 }
114 }
115 },
116 {
117 text : response.close,
118 onclick : 'close'
119 }, ],
120 onsubmit: function( e ) {
121 var attributes = '';
122
123 for ( var key in e.data ) {
124 if ( e.data.hasOwnProperty( key ) && e.data[ key ] !== '' ) {
125 attributes += ' ' + key + '="' + e.data[ key ] + '"';
126 }
127 }
128
129 // Insert shortcode into the WP_Editor
130 window.send_to_editor( '[' + response.shortcode + attributes + ']' );
131 },
132 onclose: function() {
133 scForm.destroy();
134 },
135 onopen: function() {
136 // Conditional fields.
137 console.log( response );
138
139 render_continue_button_title_field();
140 }
141 };
142
143 // Change the buttons if server-side validation failed
144 if ( response.ok.constructor === Array ) {
145 popup.buttons[0].text = response.ok[0];
146 popup.buttons[0].onclick = 'close';
147 delete popup.buttons[1];
148 }
149
150 editor.windowManager.open( popup );
151 });
152 },
153
154 destroy: function() {
155 var tmp = jq( '#scTemp' );
156
157 if ( tmp.length ) {
158 tinymce.get( 'scTemp' ).remove();
159 tmp.remove();
160 }
161 }
162 };
163
164 jq( function( $ ) {
165 var scOpen = function() {
166 scButton.addClass( 'active' ).parent().find( '.sc-menu' ).show();
167 };
168
169 var scClose = function() {
170 if ( typeof scButton !== 'undefined' ) {
171 scButton.removeClass( 'active' ).parent().find( '.sc-menu' ).hide();
172 }
173 };
174
175 $( document ).on( 'click', function( e ) {
176 if ( ! $( e.target ).closest( '.sc-wrap' ).length ) {
177 scClose();
178 }
179 });
180
181 $( document ).on( 'click', '.sc-button', function( e ) {
182 e.preventDefault();
183
184 scButton = $( this );
185
186 if ( scButton.hasClass( 'active' ) ) {
187 scClose();
188 } else {
189 scOpen();
190 }
191 });
192
193 $( document ).on( 'click', '.sc-shortcode', function( e ) {
194 e.preventDefault();
195
196 // scShortcode is used by scForm to trigger the correct popup
197 scShortcode = $( this ).attr( 'data-shortcode' );
198
199 if ( scShortcode ) {
200 if ( ! tinymce.get( window.wpActiveEditor ) ) {
201
202 if ( ! $( '#scTemp' ).length ) {
203
204 $( 'body' ).append( '<textarea id="scTemp" style="display: none;" />' );
205
206 tinymce.init({
207 mode : "exact",
208 elements : "scTemp",
209 plugins : ['give_shortcode', 'wplink']
210 });
211 }
212
213 setTimeout( function() { tinymce.execCommand( 'Give_Shortcode' ); }, 200 );
214 } else {
215 tinymce.execCommand( 'Give_Shortcode' );
216 }
217
218 setTimeout( function() { scClose(); }, 100 );
219 } else {
220 console.warn( 'That is not a valid shortcode link.' );
221 }
222 });
223 });
224