PluginProbe
Easy Bootstrap Shortcode / 4.4
Easy Bootstrap Shortcode v4.4
trunk 2.4.0 2.5 3.4 3.5 3.6 3.7 4.0.0 4.4 4.5 4.5.4 5.0.0 5.0.1 5.0.2
easy-bootstrap-shortcodes / shortcode / wpcolumns / wpcolumns_plugin.js

wpcolumns_plugin.js in Easy Bootstrap Shortcode 4.4, at shortcode/wpcolumns/wpcolumns_plugin.js

350 lines 12.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var wpcolumns={
2 title:"Columns Shortcode",
3 id :'oscitas-form-wpcolumns',
4 pluginName: 'wpcolumns'
5 };
6 (function() {
7 _create_tinyMCE_options(wpcolumns, 1094);
8 })();
9
10 function ebs_return_html_wpcolumns(pluginObj){
11 var form = jQuery('<div id="'+pluginObj.id+'" class="oscitas-container" title="'+pluginObj.title+'"><table id="oscitas-table" class="form-table">\
12 <tr>\
13 <th><label for="oscitas-no-of-wpcolumns">Number of columns</label></th>\
14 <td><select name="type" id="oscitas-no-of-wpcolumns">\
15 <option value="1" selected="selected">One column</option>\
16 <option value="2">Two columns</option>\
17 <option value="3">Three columns</option>\
18 <option value="4">Four columns</option>\
19 </select><br />\
20 </td>\
21 </tr>\
22 <tr id="wptwo" style="display:none;">\
23 <th><label for="oscitas-two-columns">2 column division</label></th>\
24 <td><select name="type" id="oscitas-two-columns" class="osc-change-col">\
25 <option value="6$6">1/2-1/2</option>\
26 <option value="4$8">1/3-2/3</option>\
27 <option value="8$3">2/3-1/3</option>\
28 <option value="3$9">1/4-3/4</option>\
29 <option value="9$3">3/4-1/4</option>\
30 </select> For Large Screen<br />\
31 </td>\
32 </tr>\
33 <tr id="wpthree" style="display:none;">\
34 <th><label for="oscitas-three-columns">3 column division</label></th>\
35 <td><select name="type" id="oscitas-three-columns" class="osc-change-col">\
36 <option value="4$4$4">1/3-1/3-1/3</option>\
37 <option value="3$6$3">1/4-2/4-1/4</option>\
38 <option value="3$3$6">1/4-1/4-2/4</option>\
39 <option value="6$3$3">2/4-1/4-1/4</option>\
40 </select> For Large Screen<br />\
41 </tr>\
42 <tr id="">\
43 <th><label for="append_column_table">Column Specification</label></th>\
44 <td id="append_column_table"></td>\
45 </tr>\
46 <tr>\
47 <th><label for="oscitas-column-class">Custom Class:</label></th>\
48 <td><input type="text" name="line" id="oscitas-column-class" value=""/>\
49 </td>\
50 </tr>\
51 </table>\
52 <p class="submit">\
53 <input type="button" id="oscitas-submit-wp_column" class="button-primary" value="Insert Columns" name="submit" />\
54 </p>\
55 </div>');
56
57 return form;
58 }
59 function create_oscitas_wpcolumns(pluginObj){
60 var form=jQuery(pluginObj.hashId);
61
62
63 var table = form.find('table');
64
65
66 function show_table(){
67
68 var ele='',e=0,sm,smoff,md,mdoff,lg,lgoff,xs,xsoff,sel,val=0,selcol,hidecol;
69 var col= form.find('#oscitas-no-of-wpcolumns').val();
70 ele = '<i>You can select different column style for different screens such as medium, small(e.g < 992px), x-small(e.g < 768px)</i><br/>';
71
72 var option={
73 'lg':'Large Screen',
74 'md': 'Medium Screen',
75 'sm': 'Small Screen',
76 'xs':'X-small Screen'
77 }
78 ele+= '<table id="appended" class="tb_multiple_column"><thead><tr><th>Screen</th><th style="min-width:50px;max-width:50px">Hide Row</th>';
79
80 for(i=1;i<=col;i++){
81 ele+='<th><div class="head_division head_division_check">Clear Left</div><div class="head_division">Column</div><div class="head_division">Offset</div><div class="head_division head_division_check right">Hide</div></th>';
82
83 }
84 ele+= '</tr></thead><tbody class="column_tbody">';
85 jQuery.each(option,function(index,val){
86 ele+='<tr><th class="column_td_first">'+val+'</th><td style="min-width:50px;max-width:50px"><input type="checkbox" name="'+index+'rowhide" id="'+index+'rowhide" value="yes"></td>';
87 for(var i=1;i<=col;i++){
88 sm='<select name="'+index+'['+i+']" id="'+index+i+'">';
89 for( e=1;e<=12;e++){
90 if(index=='lg'){
91
92 selcol=12/col;
93 if(e==selcol){
94 sel='selected=selected'
95 }
96 else{
97 sel='';
98 }
99 } else{
100 if(e==12){
101 sel='selected=selected'
102 }
103 else{
104 sel='';
105 }
106 }
107 sm+='<option value="'+e+'" '+sel+'>'+e+'</option>';
108 }
109 sm+='</select>';
110 smoff='<select name="'+index+'off['+i+']" id="'+index+'off'+i+'">';
111 for( e=0;e<12;e++){
112
113 smoff+='<option value="'+e+'">'+e+'</option>';
114 }
115 smoff+='</select>';
116
117 clearleft='<input type="checkbox" name="'+index+'clear['+i+']" id="'+index+'clear'+i+'" value="yes">';
118
119 hidecol='<input type="checkbox" name="'+index+'hide['+i+']" id="'+index+'hide'+i+'" value="yes">';
120
121
122 ele+='<td><div class="head_division head_division_check">'+clearleft+'</div><div class="head_division">'+sm+'</div><div class="head_division">'+smoff+'</div><div class="head_division head_division_check right">'+hidecol+'</div></td>';
123
124
125
126 }
127 ele+='</tr>';
128 });
129 ele +='</tbody></table>';
130 table.find('#append_column_table').html(ele);
131 jQuery("#oscitas-table tr:not(#appended tr):visible:even").css('background-color', '#ffffff');
132 jQuery("#oscitas-table tr:not(#appended tr):visible:odd").css('background-color', '#efefef');
133 }
134 function chnage_col_value(){
135
136 var col= form.find('#oscitas-no-of-wpcolumns').val(),str,arr=[],i=0;
137 if(col==2 || col==3){
138 if(col==2){
139 str=form.find('#oscitas-two-columns').val();
140 } else if(col==3){
141 str=form.find('#oscitas-three-columns').val();
142 }
143 arr=str.split('$');
144 jQuery.each(arr,function(index,val){
145 i=parseInt(index)+1;
146 jQuery('#lg'+i).val(val);
147 })
148
149 }
150 jQuery("#oscitas-table tr:not(#appended tr):visible:even").css('background-color', '#FFFFFF');
151 jQuery("#oscitas-table tr:not(#appended tr):visible:odd").css('background-color', '#efefef');
152 }
153
154 show_table();
155
156 jQuery('#oscitas-no-of-wpcolumns').change(function(){
157 var noOfColumns = jQuery(this).val();
158 if(2 == noOfColumns){
159
160 jQuery("#wpthree").hide();
161 jQuery("#wptwo").show();
162 }
163 else if(3 == noOfColumns){
164 jQuery("#wptwo").hide();
165 jQuery("#wpthree").show();
166 }
167 else{
168 jQuery("#wptwo").hide();
169 jQuery("#wpthree").hide();
170
171 }
172 show_table();
173 chnage_col_value();
174
175
176 });
177 form.find('.osc-change-col').change(function(){
178 chnage_col_value();
179 })
180 var arr={
181 1:'lg',
182 2: 'md',
183 3:'sm',
184 4:'xs'
185 };
186
187
188 var value1 =0,valueoff=0,lastSel,previous;
189 jQuery.each(arr,function(i,valuenum){
190 jQuery.each(arr,function(tt,index){
191
192 jQuery('#'+index+i).live('focus',function(){
193 previous = this.value;
194 }).live('change',function(){
195 value1= parseInt(jQuery(this).val());
196 valueoff =parseInt(jQuery('#'+index+'off'+i).val());
197 value1=value1+valueoff;
198 if(value1<=12){
199 previous = this.value;
200 }
201 else{
202 jQuery('#'+index+i).val(previous);
203 alert('Can\'t Change, exceeds the limit');
204 }
205 });
206
207 jQuery('#'+index+'off'+i).live('focus',function(){
208 previous = this.value;
209 }).live('change',function(){
210 value1= parseInt(jQuery(this).val());
211 valueoff = parseInt(jQuery('#'+index+i).val());
212 value1=value1+valueoff;
213 if(value1<=12){
214 previous = this.value;
215 }
216 else{
217 jQuery('#'+index+'off'+i).val(previous);
218 alert('Can\'t Change, exceeds the limit');
219 }
220 })
221 })
222 });
223
224 // handles the click event of the submit button
225 form.find('#oscitas-submit-wp_column').click(function(){
226 // defines the options and their default values
227 // again, this is not the most elegant way to do this
228 // but well, this gets the job done nonetheless
229 var a_md=[],a_sm=[],a_xs=[],a_lg=[],j=0,a_md_off=[],a_sm_off=[],a_xs_off=[],a_lg_off=[],a_md_hide=[],a_sm_hide=[],a_xs_hide=[],a_lg_hide=[],sm='',md='',xs='',smoff='',mdoff='',xsoff='',lgoff='',smhide='',mdhide='',xshide='',lghide='',smclear='',mdclear='',xsclear='',lgclear='';
230
231
232 var noOfColumns = jQuery('#oscitas-no-of-wpcolumns').val();
233 var shortcode = '';
234 var cusclass='';
235 if(table.find('#oscitas-column-class').val()!=''){
236 cusclass= ' class="'+table.find('#oscitas-column-class').val()+'"';
237 }
238 shortcode ='['+$ebs_prefix+'row'+cusclass+']';
239 for(var i=1;i<=parseInt(noOfColumns);i++){
240
241 a_md[i] = jQuery('#md'+i).val();
242 a_sm[i] = jQuery('#sm'+i).val();
243 a_xs[i] = jQuery('#xs'+i).val();
244 a_lg[i] = jQuery('#lg'+i).val();
245 a_md_off[i] = jQuery('#mdoff'+i).val();
246 a_sm_off[i] = jQuery('#smoff'+i).val();
247 a_xs_off[i] = jQuery('#xsoff'+i).val();
248 a_lg_off[i] = jQuery('#lgoff'+i).val();
249
250 //if(a_md[i]!=12){
251 md=' md="'+a_md[i]+'"';
252 //} else{
253 // md='';
254 //}
255 //if(a_sm[i]!=12){
256 sm=' sm="'+a_sm[i]+'"';
257 //} else{
258 // sm='';
259 //}
260 //if(a_xs[i]!=12){
261 xs=' xs="'+a_xs[i]+'"';
262 //} else{
263 // xs='';
264 //}
265 if(a_md_off[i]!=0){
266 mdoff=' mdoff="'+a_md_off[i]+'"';
267 }
268 else{
269 mdoff='';
270 }
271 if(a_sm_off[i]!=0){
272 smoff=' smoff="'+a_sm_off[i]+'"';
273 }
274 else{
275 smoff='';
276 }
277 if(a_xs_off[i]!=0){
278 xsoff=' xsoff="'+a_xs_off[i]+'"';
279 }
280 else{
281 xsoff='';
282 }
283 if(a_lg_off[i]!=0){
284 lgoff=' lgoff="'+a_lg_off[i]+'"';
285 }
286 else{
287 lgoff='';
288 }
289
290 if(jQuery('#mdrowhide').is(':checked') || jQuery('#mdhide'+i).is(':checked')){
291 mdhide=' mdhide="yes"';
292 }
293 else{
294 mdhide='';
295 }
296 if(jQuery('#smrowhide').is(':checked') ||jQuery('#smhide'+i).is(':checked')){
297 smhide=' smhide="yes"';
298 }
299 else{
300 smhide='';
301 }
302 if(jQuery('#xsrowhide').is(':checked') ||jQuery('#xshide'+i).is(':checked')){
303 xshide=' xshide="yes"';
304 }
305 else{
306 xshide='';
307 }
308 if(jQuery('#lgrowhide').is(':checked') ||jQuery('#lghide'+i).is(':checked')){
309 lghide=' lghide="yes"';
310 }
311 else{
312 lghide='';
313 }
314
315 if(jQuery('#mdclear'+i).is(':checked')){
316 mdclear=' mdclear="yes"';
317 }
318 else{
319 mdclear='';
320 }
321 if(jQuery('#smclear'+i).is(':checked')){
322 smclear=' smclear="yes"';
323 }
324 else{
325 smclear='';
326 }
327 if(jQuery('#xsclear'+i).is(':checked')){
328 xsclear=' xsclear="yes"';
329 }
330 else{
331 xsclear='';
332 }
333 if(jQuery('#lgclear'+i).is(':checked')){
334 lgclear=' lgclear="yes"';
335 }
336 else{
337 lgclear='';
338 }
339
340 shortcode += '<br/>['+$ebs_prefix+'column lg="'+a_lg[i]+'"'+md+sm+xs+mdoff+smoff+xsoff+lgoff+mdhide+smhide+xshide+lghide+mdclear+smclear+xsclear+lgclear+' ]<br/>text<br/>[/'+$ebs_prefix+'column]';
341 }
342
343 shortcode += '<br/>[/'+$ebs_prefix+'row]';
344 // inserts the shortcode into the active editor
345 tinyMCE.activeEditor.execCommand('mceInsertContent', 0, shortcode);
346 // closes Thickbox
347 close_dialogue(pluginObj.hashId);
348 });
349 }
350