PluginProbe
Visual Slider / trunk
Visual Slider vtrunk
visual-slider / admin / assets / js / layer.js

layer.js in Visual Slider trunk, at admin/assets/js/layer.js

302 lines 18.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function ($, undefined) {
2 'use strict';
3 /*************************************************************************************************************************************************************************
4 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
5 Isset
6 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
7 **************************************************************************************************************************************************************************/
8
9 function isset(variable){
10 return variable !== "undefined" && variable !== "0" && variable !== null && variable !== '';
11 }
12
13 function empty(variable){
14 if(variable === "undefined" && variable === null && variable === ''){
15 return '';
16 }else{
17 return variable;
18 }
19 }
20 /*************************************************************************************************************************************************************************
21 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
22 Layer Json
23 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
24 **************************************************************************************************************************************************************************/
25 $.fn.vs_layer_json = function() {
26 var layer_key = {};
27 $('.vs_module_layer_item').each(function() {
28 var key = $(this).attr('data-key');
29 var id = $(this).attr('data-id');
30 var option = $(this).find('#vs_layer_options').vs_serializeFormToObject();
31
32 layer_key[key] = {'id' : id,'option':option };
33 });
34
35 return layer_key;
36
37 };
38
39 /*************************************************************************************************************************************************************************
40 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
41 sortable layer
42 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
43 **************************************************************************************************************************************************************************/
44 $.fn.vs_sortable_layer = function() {
45 $('.vs_module_layer_list').sortable({
46 handle: ".vs_module_layer_title",
47 opacity: 0.6,
48 update: function() {
49 $('body').vs_reload_layer();
50 }
51
52 });
53 };
54
55 /*************************************************************************************************************************************************************************
56 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
57 reload layer
58 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
59 **************************************************************************************************************************************************************************/
60
61 $.fn.vs_reload_layer = function() {
62
63 $('.vs_perview_slide_content').addClass('vs-loading');
64
65 var data_layer = $('body').vs_layer_json();
66
67 setTimeout(function(){
68
69 $.ajax({
70 type: 'POST',
71 url: visualslider.ajaxurl,
72 data : {
73 action : 'vs_perview_layer',
74 layer_json : JSON.stringify(data_layer),
75 post_id : visualslider.post_id,
76 _wpnonce : visualslider.nonce,
77
78 },
79 success:function(data) {
80 if(data.length){
81 $('.vs_perview_slide_content .vs-perview-slide .vs-layer-warp').remove();
82 $('.vs-perview-slide').append(data);
83
84 $('.vs_perview_slide_content').removeClass('vs-loading');
85 $('body').find('.vs_module_layer_item').each(function() {
86 $(this).vs_layer_options_perview();
87 });
88 $('body').vs_sortable_layer();
89 $('body').vs_draggable();
90 $('body').vs_coloris();
91 $('body').vs_fold_item();
92
93 } else{
94 $('body').vs_remove_add_error_loading();
95 }
96 }
97 });
98 }, 10);
99
100 };
101
102 /*************************************************************************************************************************************************************************
103 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
104 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
105 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
106 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
107 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
108 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
109 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
110 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
111 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
112 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
113 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
114 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
115
116 document Ready
117
118 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
119 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
120 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
121 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
122 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
123 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
124 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
125 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
126 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
127 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
128 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
129 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
130 **************************************************************************************************************************************************************************/
131 jQuery(document).ready(function() {
132 /*************************************************************************************************************************************************************************
133 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
134 Module Layer
135 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
136 **************************************************************************************************************************************************************************/
137 /* Section Options Update*/
138
139 $(document).on('click', '.vs_module_layer_add', function(e) {
140 $('.vs_add_layer').addClass('vs_add_layer_active'); });
141
142 $(document).on('click', '.vs_add_layer_cancel', function(e) {
143 $('.vs_add_layer').removeClass('vs_add_layer_active');
144
145 });
146
147 $(document).on("click",".vs_add_layer_item", function() {
148 $(this).parents('.vs_add_layer_content').find('.selected').removeClass('selected');
149 $(this).addClass('selected');
150 });
151
152 /*************************************************************************************************************************************************************************
153 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
154 Add Layer
155 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
156 **************************************************************************************************************************************************************************/
157 $(document).on('click', '.vs_add_layer_add', function() {
158
159 $('body').append('<div class="vs-mouse-wait"></div>');
160 var data_key = 'r'+Math.floor(Math.random() * 9999999999);
161 var data_id = $('.vs_add_layer').find('.selected').attr('data-layer');
162
163 var data_tablet= $('.vs_live_setting_responsive_tablet').find('input:checked').val();
164 var data_mobile= $('.vs_live_setting_responsive_mobile').find('input:checked').val();
165
166 $.ajax({
167 type: 'POST',
168 url: visualslider.ajaxurl,
169 data : {
170 action : 'vs_module_layer_item',
171 layer_key : data_key,
172 layer_id : data_id,
173 default : '1',
174 vs_tablet : empty(data_tablet),
175 vs_mobile : empty(data_mobile),
176 post_id : visualslider.post_id,
177 _wpnonce : visualslider.nonce,
178
179 },
180 success:function(data) {
181 if(data.length){
182 $('.vs_module_layer_list').append(data);
183 $('.vs-mouse-wait').remove();
184 $('.vs_add_layer').removeClass('vs_add_layer_active');
185 $('body').vs_reload_layer();
186
187 } else{
188 $('body').vs_remove_add_error_loading();
189 }
190 }
191 });
192 });
193
194 /*************************************************************************************************************************************************************************
195 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
196 Layer duplicate
197 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
198 **************************************************************************************************************************************************************************/
199 function vs_duplicate(row,key,adress) {
200 $(adress).attr('data-key',key).attr('id',"vs_"+row+"_"+ key);
201 }
202 jQuery(document).on("click",".vs_module_layer_duplicate",function(){
203
204 var duplicate = $(this).parents(".vs_module_layer_item").addClass('vs_duplicate').clone();
205 $(this).parents('.vs_duplicate').removeClass('vs_duplicate');
206 $(this).parents(".vs_module_layer_item ").after(duplicate);
207 var layer_key = 'r'+Math.floor(Math.random() * 9999999999);
208 vs_duplicate('module_layer',layer_key,'.vs_duplicate');
209 $('.vs_duplicate').removeClass('vs_duplicate');
210
211 $('body').vs_reload_layer();
212
213 });
214
215 /*************************************************************************************************************************************************************************
216 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
217 Layer Active
218 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
219 **************************************************************************************************************************************************************************/
220
221 $(document).on('click', '.vs_module_layer_title ', function() {
222
223 $(this).parents('.vs_panel').find('.vs_module_side_options_active,.vs_module_slide_options_active').removeClass('vs_module_side_options_active vs_module_slide_options_active');
224 $(this).parents('.vs_module_layer_item').addClass('vs_module_side_options_active');
225 $(this).parents('.vs_panel').addClass('vs_panel_options_active');
226
227 $(this).parents('.vs_panel').find('.vs_draggable_active').removeClass('vs_draggable_active');
228 var data_key = $(this).parents('.vs_module_layer_item').attr('data-key');
229 $('#vs_perview_layer_'+data_key).addClass('vs_draggable_active');
230 $('.vs_module_side_options_active').vs_fold_item();
231
232
233
234
235 });
236
237 /*************************************************************************************************************************************************************************
238 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
239 Layer Close
240 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
241 **************************************************************************************************************************************************************************/
242 $(document).on('click', '.vs_module_side_options_close', function() {
243 $(this).parents('.vs_panel').find('.vs_module_side_options_active,.vs_module_slide_options_active').removeClass('vs_module_side_options_active vs_module_slide_options_active');
244 $(this).parents('.vs_panel_options_active').removeClass('vs_panel_options_active');
245 });
246 $(document).on('click', '.vs_perview_slide .vs-slide-cover', function(e) {
247 $('.vs_draggable_active').removeClass('vs_draggable_active');
248 $('.vs_module_side_options_active').removeClass('vs_module_side_options_active');
249 $('.vs_panel_options_active').removeClass('vs_panel_options_active');
250
251 });
252 /*************************************************************************************************************************************************************************
253 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
254 Layer Remove
255 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
256 **************************************************************************************************************************************************************************/
257
258
259 $(document).on('click', '.vs_module_layer_remove', function() {
260 $(this).parents('.vs_module_layer_item').remove();
261 var key =$(this).parents('.vs_module_layer_item').attr('data-key');
262 $('.vs_module_side_options_active').removeClass('vs_module_side_options_active');
263 $('.vs_panel_options_active').removeClass('vs_panel_options_active');
264
265 $('#vs_perview_layer_'+key).remove();
266
267 });
268
269 function vs_align_change(type,position) {
270 $(document).on('click', ".vs_live_layer_"+type+"align_"+position+" label", function(e) {
271 var val = $(this).find('input').val();
272 if(isset(val)){
273 $(this).parents('.vs_side_options_content').find( ".vs_live_layer_"+type+"position_"+position+" input" ).text('0').val('0');
274 }else{
275 $(this).parents('.vs_side_options_content').find( ".vs_live_layer_"+type+"position_"+position+" input" ).text('').val('');
276 }
277 $(this).parents('.vs_side_options_content').vs_layer_postion_size();
278
279 });
280 }
281 vs_align_change('','horizontal');
282 vs_align_change('','vertical');
283 vs_align_change('tablet_','horizontal');
284 vs_align_change('tablet_','vertical');
285 vs_align_change('mobile_','horizontal');
286 vs_align_change('mobile_','vertical');
287
288 $(document).on('click','.vs_panel_title',function() {
289 $('body').vs_layer_json();
290 });
291
292
293
294
295
296
297 });
298
299
300 })(jQuery);
301
302