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