PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.1.2
GiveWP – Donation Plugin and Fundraising Platform v2.1.2
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 8 years ago admin-shortcodes.js 8 years ago class-shortcode-button.php 8 years ago mce-plugin.js 8 years ago shortcode-give-donation-grid.php 8 years ago shortcode-give-donation-history.php 8 years ago shortcode-give-form.php 8 years ago shortcode-give-goal.php 8 years ago shortcode-give-login.php 8 years ago shortcode-give-profile-editor.php 8 years ago shortcode-give-receipt.php 8 years ago shortcode-give-register.php 8 years ago shortcode-give-totals.php 8 years ago
admin-shortcodes.js
222 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 render_continue_button_title_field();
138 }
139 };
140
141 // Change the buttons if server-side validation failed
142 if ( response.ok.constructor === Array ) {
143 popup.buttons[0].text = response.ok[0];
144 popup.buttons[0].onclick = 'close';
145 delete popup.buttons[1];
146 }
147
148 editor.windowManager.open( popup );
149 });
150 },
151
152 destroy: function() {
153 var tmp = jq( '#scTemp' );
154
155 if ( tmp.length ) {
156 tinymce.get( 'scTemp' ).remove();
157 tmp.remove();
158 }
159 }
160 };
161
162 jq( function( $ ) {
163 var scOpen = function() {
164 scButton.addClass( 'active' ).parent().find( '.sc-menu' ).show();
165 };
166
167 var scClose = function() {
168 if ( typeof scButton !== 'undefined' ) {
169 scButton.removeClass( 'active' ).parent().find( '.sc-menu' ).hide();
170 }
171 };
172
173 $( document ).on( 'click', function( e ) {
174 if ( ! $( e.target ).closest( '.sc-wrap' ).length ) {
175 scClose();
176 }
177 });
178
179 $( document ).on( 'click', '.sc-button', function( e ) {
180 e.preventDefault();
181
182 scButton = $( this );
183
184 if ( scButton.hasClass( 'active' ) ) {
185 scClose();
186 } else {
187 scOpen();
188 }
189 });
190
191 $( document ).on( 'click', '.sc-shortcode', function( e ) {
192 e.preventDefault();
193
194 // scShortcode is used by scForm to trigger the correct popup
195 scShortcode = $( this ).attr( 'data-shortcode' );
196
197 if ( scShortcode ) {
198 if ( ! tinymce.get( window.wpActiveEditor ) ) {
199
200 if ( ! $( '#scTemp' ).length ) {
201
202 $( 'body' ).append( '<textarea id="scTemp" style="display: none;" />' );
203
204 tinymce.init({
205 mode : "exact",
206 elements : "scTemp",
207 plugins : ['give_shortcode', 'wplink']
208 });
209 }
210
211 setTimeout( function() { tinymce.execCommand( 'Give_Shortcode' ); }, 200 );
212 } else {
213 tinymce.execCommand( 'Give_Shortcode' );
214 }
215
216 setTimeout( function() { scClose(); }, 100 );
217 } else {
218 console.warn( 'That is not a valid shortcode link.' );
219 }
220 });
221 });
222