PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.4.3
GiveWP – Donation Plugin and Fundraising Platform v2.4.3
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 / includes / admin / shortcodes / admin-shortcodes.js
give / includes / admin / shortcodes Last commit date
abstract-shortcode-generator.php 7 years ago admin-shortcodes.js 7 years ago class-shortcode-button.php 7 years ago mce-plugin.js 8 years ago shortcode-give-donation-grid.php 7 years ago shortcode-give-donation-history.php 7 years ago shortcode-give-donor-wall.php 7 years ago shortcode-give-form.php 7 years ago shortcode-give-goal.php 7 years ago shortcode-give-login.php 7 years ago shortcode-give-profile-editor.php 7 years ago shortcode-give-receipt.php 7 years ago shortcode-give-register.php 7 years ago shortcode-give-totals.php 7 years ago
admin-shortcodes.js
238 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, GiveWP
9 * @license: http://opensource.org/licenses/gpl-2.0.php GNU Public License
10 * @since: 1.3.0
11 */
12
13 /* global Give, ajaxurl, jQuery, scShortcodes, tinymce */
14
15 var scShortcode, scButton;
16
17
18 jQuery( function( $ ) {
19
20 let doc = $( this );
21
22 /**
23 * Show continue button title setting field only if display style is not All Fields.
24 */
25 window.render_continue_button_title_field = function() {
26 var selected_display_style = $('.mce-txt', '.mce-give-display-style').text(),
27 expected_display_styles = [ '- Select -', 'All Fields' ];
28
29 if( -1 !== $.inArray( selected_display_style, expected_display_styles ) ) {
30 $('.mce-give-continue-button-title').closest('.mce-container' ).hide()
31 } else {
32 $('.mce-give-continue-button-title').closest('.mce-container' ).show()
33 }
34 };
35
36 window.scForm = {
37
38 open: function( editor_id ) {
39 var editor = tinymce.get( editor_id );
40
41 if ( ! editor ) {
42 return;
43 }
44
45 var data, field, required, valid, win;
46
47 data = {
48 action : 'give_shortcode',
49 shortcode : scShortcode
50 };
51
52 $.post( ajaxurl, data, function( response ) {
53
54 // what happens if response === false?
55 if ( ! response.body ) {
56 console.error( 'Bad AJAX response!' );
57 return;
58 }
59
60 if ( response.body.length === 0 ) {
61 window.send_to_editor( '[' + response.shortcode + ']' );
62
63 scForm.destroy();
64
65 return;
66 }
67
68 /**
69 * Render continue button title setting field on basis of display style value.
70 */
71 $.each( response.body, function( index, item ){
72
73 if( 'display_style' === item.name ) {
74 response.body[index].onselect = function(){
75 render_continue_button_title_field();
76 };
77 }
78 });
79
80 var popup = {
81 title : response.title,
82 body : response.body,
83 classes: 'sc-popup',
84 minWidth: 320,
85 buttons : [ {
86 text : response.ok,
87 classes : 'primary sc-primary',
88 onclick : function() {
89 // Get the top most window object
90 win = editor.windowManager.getWindows()[0];
91
92 // Get the shortcode required attributes
93 required = scShortcodes[ scShortcode ];
94
95 valid = true;
96
97 // Do some validation voodoo
98 for ( var id in required ) {
99 if ( required.hasOwnProperty( id ) ) {
100
101 field = win.find( '#' + id )[0];
102
103 if ( typeof field !== 'undefined' && field.state.data.value === '' ) {
104
105 valid = false;
106
107 new Give.modal.GiveErrorAlert({
108 modalContent:{
109 desc: required[ id ],
110 cancelBtnTitle: Give.fn.getGlobalVar('ok'),
111 }
112 }).render();
113
114 break;
115 }
116 }
117 }
118
119 if ( valid ) {
120 win.submit();
121 }
122 }
123 },
124 {
125 text : response.close,
126 onclick : 'close'
127 }, ],
128 onsubmit: function( e ) {
129 var attributes = '';
130
131 for ( var key in e.data ) {
132 if ( e.data.hasOwnProperty( key ) && e.data[ key ] !== '' ) {
133 attributes += ' ' + key + '="' + e.data[ key ] + '"';
134 }
135 }
136
137 // Insert shortcode into the WP_Editor
138 window.send_to_editor( '[' + response.shortcode + attributes + ']' );
139 },
140 onclose: function() {
141 scForm.destroy();
142 },
143 onopen: function() {
144
145 // Hacky way to remove scrollbars when not necessary.
146 let popup = $('.mce-sc-popup');
147 popup.css({
148 width: popup.width(),
149 height: popup.height(),
150 overflow: 'auto'
151 });
152
153 // Conditional fields.
154 render_continue_button_title_field();
155 }
156 };
157
158 // Change the buttons if server-side validation failed
159 if ( response.ok.constructor === Array ) {
160 popup.buttons[0].text = response.ok[0];
161 popup.buttons[0].onclick = 'close';
162 delete popup.buttons[1];
163 }
164
165 editor.windowManager.open( popup );
166 });
167 },
168
169 destroy: function() {
170 var tmp = $( '#scTemp' );
171
172 if ( tmp.length ) {
173 tinymce.get( 'scTemp' ).remove();
174 tmp.remove();
175 }
176 }
177 };
178
179 var scOpen = function() {
180 scButton.addClass( 'active' ).parent().find( '.sc-menu' ).show();
181 };
182
183 var scClose = function() {
184 if ( typeof scButton !== 'undefined' ) {
185 scButton.removeClass( 'active' ).parent().find( '.sc-menu' ).hide();
186 }
187 };
188
189 doc.on( 'click', function( e ) {
190 if ( ! $( e.target ).closest( '.sc-wrap' ).length ) {
191 scClose();
192 }
193 });
194
195 doc.on( 'click', '.sc-button', function( e ) {
196 e.preventDefault();
197
198 scButton = $( this );
199
200 if ( scButton.hasClass( 'active' ) ) {
201 scClose();
202 } else {
203 scOpen();
204 }
205 });
206
207 doc.on( 'click', '.sc-shortcode', function( e ) {
208 e.preventDefault();
209
210 // scShortcode is used by scForm to trigger the correct popup
211 scShortcode = $( this ).attr( 'data-shortcode' );
212
213 if ( scShortcode ) {
214 if ( ! tinymce.get( window.wpActiveEditor ) ) {
215
216 if ( ! $( '#scTemp' ).length ) {
217
218 $( 'body' ).append( '<textarea id="scTemp" style="display: none;" />' );
219
220 tinymce.init({
221 mode : "exact",
222 elements : "scTemp",
223 plugins : ['give_shortcode', 'wplink']
224 });
225 }
226
227 setTimeout( function() { tinymce.execCommand( 'Give_Shortcode' ); }, 200 );
228 } else {
229 tinymce.execCommand( 'Give_Shortcode' );
230 }
231
232 setTimeout( function() { scClose(); }, 100 );
233 } else {
234 console.warn( 'That is not a valid shortcode link.' );
235 }
236 });
237 });
238