PluginProbe ʕ •ᴥ•ʔ
Shortcoder — Create Shortcodes for Anything / 5.3.1
Shortcoder — Create Shortcodes for Anything v5.3.1
trunk 3.0 3.0.1 3.1 3.2 3.3 3.4 3.4.1 4.0 4.0.1 4.0.2 4.0.3 4.1 4.1.1 4.1.2 4.1.3 4.1.4 4.1.5 4.1.6 4.1.7 4.1.8 4.1.9 4.2 4.3 4.4 4.5 4.6 5.0 5.0.1 5.0.2 5.0.3 5.0.4 5.1 5.2 5.2.1 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.4 5.5 5.6 5.7 5.8 6.0 6.1 6.2 6.3 6.3.1 6.3.2 6.4 6.5 6.5.1 6.5.2 6.5.3
shortcoder / admin / js / script.js
shortcoder / admin / js Last commit date
blocks 6 years ago tinymce 6 years ago script-insert.js 6 years ago script-tools.js 6 years ago script.js 6 years ago
script.js
246 lines
1 (function($){
2 $(document).ready(function(){
3
4 var init = function(){
5
6 if(window.SC_EDITOR == 'code'){
7
8 load_cm_sc_mode();
9
10 window.sc_cm = CodeMirror.fromTextArea(document.getElementById('sc_content'), {
11 lineNumbers: true,
12 mode: 'sc_mode',
13 indentWithTabs: false,
14 lineWrapping: true,
15 styleActiveLine: true,
16 htmlMode: true
17 });
18 sc_cm.setSize( null, 500 );
19 sc_cm.on('change', function(){
20 sc_cm.save();
21 });
22
23 $('.sc_editor_toolbar').appendTo('.sc_cm_menu');
24
25 }else{
26 $('.sc_editor_toolbar').appendTo('.wp-media-buttons');
27 }
28
29 if(typeof window.SC_VARS !== 'undefined'){
30
31 if(SC_VARS['screen']['base'] == 'edit'){
32 var version = '<small>v' + SC_VARS['sc_version'] + '</small>';
33 $('.wp-heading-inline').append(version);
34 add_top_import_export_btn();
35 }
36
37 if(SC_VARS['screen']['base'] == 'post'){
38 var $cfe_button = $('.cfe_bottom');
39 if($cfe_button.length > 0){
40 $cfe_button.appendTo('#normal-sortables');
41 }
42 }
43
44 add_top_coffee_btn();
45 }
46
47 $('.sc_params_list').appendTo('body');
48
49 }
50
51 var set_sc_preview_text = function(name){
52 $('.sc_preview_text').text('[sc name="' + name + '"]');
53 }
54
55 var insert_in_editor = function(data){
56 console.log(data);
57 if(window.SC_EDITOR == 'code'){
58 var doc = window.sc_cm.getDoc();
59 doc.replaceRange(data, doc.getCursor());
60 }else{
61 send_to_editor(data);
62 }
63 }
64
65 var copy_to_clipboard = function(str){
66 var el = document.createElement('textarea');
67 el.value = str;
68 el.setAttribute('readonly', '');
69 el.style.position = 'absolute';
70 el.style.left = '-9999px';
71 document.body.appendChild(el);
72 el.select();
73 document.execCommand('copy');
74 document.body.removeChild(el);
75 };
76
77 var load_cm_sc_mode = function(){
78
79 if(typeof CodeMirror.overlayMode === 'undefined'){
80 return false;
81 }
82
83 CodeMirror.defineMode('sc_mode', function(config, parserConfig){
84 var mustacheOverlay = {
85 token: function(stream, state){
86 if(stream.match(/\$\$[a-z0-9A-Z:_]+\$\$/)){
87 return 'number sc_param';
88 }
89 if(stream.match(/%%.*?%%/)){
90 return 'atom sc_param';
91 }
92 stream.next();
93 }
94 };
95 return CodeMirror.overlayMode(CodeMirror.getMode(config, parserConfig.backdrop || 'htmlmixed'), mustacheOverlay);
96 });
97 }
98
99 var close_params_list = function(){
100 $('.sc_params_list').hide();
101 }
102
103 var add_top_coffee_btn = function(){
104
105 $('#screen-meta-links').prepend('<div class="screen-meta-toggle cfe_top_link"><a class="show-settings button" href="https://www.paypal.me/vaakash/" target="_blank">Buy me a Coffee</a></div>');
106
107 }
108
109 var add_top_import_export_btn = function(){
110
111 $('#screen-meta-links').prepend('<div class="screen-meta-toggle ie_top_link hide-if-no-js"><button aria-controls="import-export-tab" aria-expanded="false" class="show-settings button">Import / Export</button></div>');
112
113 $('#screen-meta').append('<div id="import-export-tab" class="hidden"></div>');
114
115 $('#ie_content > div').appendTo('#import-export-tab');
116
117 }
118
119 $('#post_name').on('change keyup', function(){
120 set_sc_preview_text($(this).val());
121 });
122
123 $('.sc_editor').on('focus', function(){
124 window.sc_old_editor = $(this).val();
125 }).on('change', function(e){
126
127 new_editor = $(this).val();
128 response = confirm(SC_VARS.text_editor_switch_notice);
129
130 if(!response){
131 e.preventDefault();
132 $(this).val(window.sc_old_editor);
133 return false;
134 }
135
136 window.location = window.location + '&editor=' + $(this).val();
137
138 });
139
140 $('.sc_insert_param').on('click', function(e){
141
142 e.preventDefault();
143
144 var offset = $(this).offset();
145 var mtop = offset.top + $(this).outerHeight();
146
147 $('.sc_params_list').css({
148 top: mtop,
149 left: offset.left
150 }).toggle();
151
152 });
153
154 $('.sc_wp_params li').on('click', function(){
155 insert_in_editor('$$' + $(this).data('id') + '$$');
156 close_params_list();
157 });
158
159 $('.sc_cp_btn').on('click', function(){
160
161 var $cp_box = $('.sc_cp_box');
162 var $cp_default = $('.sc_cp_default');
163 var $cp_info = $('.sc_cp_info');
164 var param_val = $cp_box.val().trim();
165 var default_val = $cp_default.val().trim();
166
167 if( param_val != '' && $cp_box[0].checkValidity() ){
168
169 var the_code = '';
170 if(default_val == ''){
171 the_code = '%%' + param_val + '%%';
172 }else{
173 the_code = '%%' + param_val + ':' + default_val + '%%';
174 }
175
176 insert_in_editor(the_code);
177 $cp_info.removeClass('red');
178 close_params_list();
179 }else{
180 $cp_info.addClass('red');
181 }
182
183 });
184
185 $('.sc_cf_btn').on('click', function(){
186
187 var $cf_box = $('.sc_cf_box');
188 var $cf_info = $('.sc_cf_info');
189 var param_val = $cf_box.val().trim();
190
191 if( param_val != '' && $cf_box[0].checkValidity() ){
192 insert_in_editor('$$custom_field:' + param_val + '$$');
193 $cf_info.removeClass('red');
194 close_params_list();
195 }else{
196 $cf_info.addClass('red');
197 }
198
199 });
200
201 $('.sc_copy').on('click', function(){
202 copy_to_clipboard($('.sc_preview_text').text());
203 $this = $(this);
204 $this.addClass('copied');
205 setTimeout(function() {
206 $this.removeClass('copied');
207 }, 3000);
208 })
209
210 $('.sc_changelog .dismiss_btn').on('click', function(){
211 var url = SC_VARS.ajax_url + '?action=sc_admin_ajax&do=close_changelog';
212 $.get(url, function( data ){
213 if(data.search( /done/g ) == -1){
214 $( '.sc_changelog article' ).html('Failed to close window. <a href="' + url + '" target="_blank">Please click here to close</a>');
215 }else{
216 $( '.sc_changelog' ).fadeOut();
217 }
218 });
219 });
220
221 $('.cfe_amt').on('click', function(){
222 var $btn = $(this).closest('.cfe_form').find('.cfe_btn');
223 $btn.attr('href', $btn.data('link') + $(this).val());
224 });
225
226 $('.subscribe_btn').click(function(e){
227 e.preventDefault();
228 var action = $(this).parent().data('action');
229 $.ajax({
230 type: 'get',
231 url: action,
232 cache: false,
233 dataType: 'jsonp',
234 data: {
235 'EMAIL': $('.subscribe_email_box').val()
236 },
237 success : function(data) {
238 }
239 });
240 $('.subscribe_confirm').show();
241 });
242
243 init();
244
245 });
246 })( jQuery );