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