PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.00.00
E2Pdf – Export Pdf Tool for WordPress v1.00.00
1.32.49 1.32.48 1.32.43 1.32.40 1.32.34 1.32.32 1.32.31 1.32.26 1.32.22 1.32.23 1.32.18 1.32.17 1.32.15 trunk 1.00.00 1.00.13 1.01.01 1.02.02 1.03.07 1.04.07 1.05.03 1.06.02 1.07.11 1.08.00 1.08.06 All 72 releases
e2pdf / js / e2pdf.backend.js

e2pdf.backend.js in E2Pdf – Export Pdf Tool for WordPress 1.00.00, at js/e2pdf.backend.js

5,717 lines 251.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 var e2pdf = {
2 //e2pdf.helper
3 helper: {
4 //e2pdf.helper.color
5 color: {
6 close: function (el) {
7 var color_panel = jQuery(el).parent();
8 color_panel.find('.wp-color-result').click();
9 }
10 },
11 //e2pdf.helper.image
12 image: {
13 //e2pdf.helper.image.load
14 load: function (el) {
15 el.addClass('e2pdf-loader');
16 var image = new Image();
17 image.src = e2pdf.properties.getValue(el, 'value');
18 var children = e2pdf.element.children(el);
19 image.onload = function ()
20 {
21 el.removeClass('e2pdf-loader');
22 el.find('.e2pdf-image').attr('src', e2pdf.properties.getValue(el, 'value'));
23 if (el.data('data-type') === 'e2pdf-image' && e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.WIDTH) {
24 var o_width = this.width;
25 var o_height = this.height;
26 var dimension = parseFloat(children.css('width')) / o_width;
27 var height = o_height * dimension;
28 var add_height = parseFloat(el.css('height')) - parseFloat(children.css('height'));
29 el.css('height', height + add_height);
30 el.resizable("option", "aspectRatio", true).data('uiResizable')._aspectRatio = true;
31 } else if (el.data('data-type') === 'e2pdf-image' && e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.HEIGHT) {
32 var o_width = this.width;
33 var o_height = this.height;
34 var dimension = parseFloat(children.css('height')) / o_height;
35 var width = o_width * dimension;
36 var add_width = parseFloat(el.css('width')) - parseFloat(children.css('width'));
37 el.css('width', width + add_width);
38 el.resizable("option", "aspectRatio", true).data('uiResizable')._aspectRatio = true;
39 } else {
40 el.resizable("option", "aspectRatio", false).data('uiResizable')._aspectRatio = false;
41 }
42
43 children.removeClass('e2pdf-image-blank');
44 };
45 image.onerror = function ()
46 {
47 el.removeClass('e2pdf-loader');
48 children.attr('src', e2pdf.url.pluginsUrl() + '/img/upload.png').addClass('e2pdf-image-blank');
49 if (el.data('data-type') === 'e2pdf-image' && (e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.WIDTH || e2pdf.properties.getValue(el, 'scale') === e2pdf.static.const.HEIGHT)) {
50 el.resizable("option", "aspectRatio", true).data('uiResizable')._aspectRatio = true;
51 } else {
52 el.resizable("option", "aspectRatio", false).data('uiResizable')._aspectRatio = false;
53 }
54 };
55 }
56 },
57 //e2pdf.helper.convert
58 convertPxToFloat: function (value) {
59 return parseFloat(value.replace('px', ''));
60 },
61 //e2pdf.helper.ajaxurl
62 ajaxurl: function (action) {
63
64 if (action) {
65 var url = ajaxurl + '?action=' + action + '&e2pdf_check=true&_nonce=' + e2pdfParams['nonce'];
66 } else {
67 var url = ajaxurl + '?e2pdf_check=true&_nonce=' + e2pdfParams['nonce'];
68 }
69
70 return url;
71 }
72 },
73 //e2pdf.url
74 url: {
75 //e2pdf.url.change
76 change: function (page, path) {
77 if (window.history && window.history.pushState) {
78 var url = window.location.pathname;
79
80 if (page) {
81 url += '?page=' + page;
82 }
83
84 if (path) {
85 url += '&' + path;
86 }
87 history.pushState({urlPath: url}, "", url);
88 }
89 },
90 //e2pdf.url.build
91 build: function (page, path, nonce) {
92 var url = window.location.pathname;
93
94 if (page) {
95 url += '?page=' + page;
96 }
97 if (path) {
98 url += '&' + path;
99 }
100
101 if (nonce) {
102 url += '&e2pdf_check=true&_nonce=' + e2pdfParams['nonce']
103 }
104
105 return url;
106 },
107 //e2pdf.url.get
108 get: function (name, url) {
109 if (!url)
110 url = window.location.href;
111 name = name.replace(/[\[\]]/g, "\\$&");
112 var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), results = regex.exec(url);
113 if (!results) {
114 return null;
115 }
116
117 if (!results[2]) {
118 return '';
119 }
120 return decodeURIComponent(results[2].replace(/\+/g, " "));
121 },
122 pluginsUrl: function () {
123 return e2pdfParams['plugins_url'];
124 },
125 uploadUrl: function () {
126 return e2pdfParams['upload_url'];
127 }
128 },
129 //e2pdf.shortcode
130 shortcode: {
131 //e2pdf.shortcode.get
132 get: function (template_id, dataset_id) {
133
134 if (template_id && dataset_id) {
135 var shortcode = '[e2pdf-download id="' + template_id + '" dataset="' + dataset_id + '"]';
136 } else if (template_id) {
137 var shortcode = '[e2pdf-download id="' + template_id + '"]';
138 } else {
139 var shortcode = false;
140 }
141 return shortcode;
142 }
143 },
144 //e2pdf.guide
145 guide: {
146 //e2pdf.guide.calc
147 calc: function (el, pos, w, h, g) {
148
149 if (el != null) {
150 if (g) {
151 w = parseFloat(jQuery(el).css('width')) * e2pdf.zoom.zoom;
152 h = parseFloat(jQuery(el).css('height')) * e2pdf.zoom.zoom;
153 pos = jQuery(el).offset();
154 if (jQuery(el).hasClass('e2pdf-page')) {
155 pos = {
156 left: pos.left + 1,
157 top: pos.top + 1
158 };
159 }
160 } else {
161
162 w = parseFloat(jQuery(el).css('width'));
163 h = parseFloat(jQuery(el).css('height'));
164
165 if (jQuery(el).hasClass('e2pdf-page')) {
166 pos = {
167 left: 0,
168 top: 0
169 };
170 } else {
171 pos = {
172 left: parseFloat(e2pdf.properties.getValue(jQuery(el), 'left')),
173 top: parseFloat(e2pdf.properties.getValue(jQuery(el), 'top'))
174 };
175 }
176 }
177 }
178
179 return [
180 {type: "h", left: pos.left, top: pos.top},
181 {type: "h", left: pos.left, top: pos.top + h},
182 {type: "v", left: pos.left, top: pos.top},
183 {type: "v", left: pos.left + w, top: pos.top},
184 {type: "h", left: pos.left, top: pos.top + h / 2},
185 {type: "v", left: pos.left + w / 2, top: pos.top}
186 ];
187 }
188 },
189 //e2pdf.pdf
190 pdf: {
191 //e2pdf.pdf.settings
192 settings: {
193 options: [],
194 //e2pdf.pdf.settings.change
195 change: function (key, value) {
196 e2pdf.pdf.settings.options[key] = value;
197 if (jQuery('.e2pdf-form-builder > input[name="' + key + '"]').length > 0) {
198 jQuery('.e2pdf-form-builder > input[name="' + key + '"]').val(value);
199 } else {
200 var input = jQuery('<input>',
201 {
202 'type': 'hidden',
203 'name': key,
204 'value': value,
205 });
206 jQuery('.e2pdf-form-builder').append(input);
207 }
208
209 if (key == 'extension') {
210 e2pdf.request.submitRequest('e2pdf_get_styles', jQuery('.e2pdf-submit-form'), value);
211 }
212 },
213 //e2pdf.pdf.settings.set
214 set: function (key, value) {
215 e2pdf.pdf.settings.options[key] = value;
216 },
217 //e2pdf.pdf.settings.get
218 get: function (key) {
219 if (typeof e2pdf.pdf.settings.options[key] === 'undefined') {
220 return null;
221 } else {
222 return e2pdf.pdf.settings.options[key];
223 }
224 }
225 }
226 },
227 //e2pdf.static
228 static: {
229 //e2pdf.static.unsaved
230 unsaved: false,
231 //e2pdf.static.mediaUploader
232 mediaUploader: false,
233 //e2pdf.static.autoloadExport
234 autoloadExport: false,
235 //e2pdf.static.selectionRange
236 selectionRange: null,
237 //e2pdf.static.guide
238 guide: {
239 //e2pdf.static.guide.guides
240 guides: [],
241 //e2pdf.static.guide.distance
242 distance: 5,
243 x: 0,
244 y: 0
245 },
246 //e2pdf.static.drag
247 drag: {
248 //e2pdf.static.drag.min_top
249 min_top: 0,
250 //e2pdf.static.drag.max_top
251 max_top: 0,
252 //e2pdf.static.drag.min_left
253 min_left: 0,
254 //e2pdf.static.drag.max_left
255 max_left: 0,
256 //e2pdf.static.drag.page
257 page: null,
258 },
259 //e2pdf.static.const
260 const: {
261 'WIDTH_HEIGHT': '0',
262 'WIDTH': '1',
263 'HEIGHT': '2'
264 }
265 },
266 //e2pdf.event
267 event: {
268 //e2pdf.event.fire
269 fire: function (event, action, el) {
270 if (event === 'after.pages.deletePage'
271 || event === 'after.createPdf'
272 || event === 'after.pages.createPage.newpage'
273 || event === 'after.element.create'
274 || event === 'after.element.delete'
275 || event === 'after.settings.style.change'
276 || event === 'after.settings.template.change'
277 || event === 'after.wysiwyg.apply'
278 || event === 'after.request.submitLocal'
279 || event === 'after.mediaUploader.select'
280 || event === 'after.element.moved'
281 || event === 'after.pages.movePage'
282 ) {
283 e2pdf.static.unsaved = true;
284 }
285
286 if (event === 'before.request.submitForm') {
287 e2pdf.static.unsaved = false;
288 }
289
290 if (event === 'after.dialog.create' || event === 'after.actions.change') {
291 jQuery('.e2pdf-color-picker-load').each(function () {
292 jQuery(this).wpColorPicker(
293 {
294 defaultColor: function () {
295 var el = jQuery(event.target).parent().find('.e2pdf-color-picker');
296 if (el.attr('data-default')) {
297 return el.attr('data-default');
298 } else {
299 return;
300 }
301 },
302 change: function (event, ui) {
303 jQuery(this).val(ui.color.toString()).change();
304 }
305 }
306 ).removeClass('e2pdf-color-picker-load');
307 });
308 }
309
310 if (event === 'after.pages.deletePage'
311 || event === 'after.pages.createPage.newpage') {
312 jQuery('#e2pdf-zoom').trigger('change');
313 }
314
315 if (event === 'before.request.submitRequest') {
316 el.attr('disabled', 'disabled');
317
318 if (action === 'e2pdf_auto') {
319 el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item').attr('disabled', 'disabled');
320 }
321 if (action === 'e2pdf_extension') {
322 el.closest('form').find('.e2pdf-create-pdf, #e2pdf-item').attr('disabled', 'disabled');
323 }
324
325 if (action === 'e2pdf_templates') {
326 el.closest('form').find('#e2pdf-export-form-submit, #e2pdf-export-dataset').attr('disabled', 'disabled');
327 el.closest('form').find('#e2pdf-template-link, #e2pdf-item-link, #e2pdf-delete-item, #e2pdf-delete-items').attr('href', 'javascript:void(0);').attr('disabled', 'disabled');
328 }
329
330 if (action === 'e2pdf_dataset') {
331 el.closest('form').find('#e2pdf-export-form-submit').attr('disabled', 'disabled');
332 el.closest('form').find('#e2pdf-item-link, #e2pdf-delete-item').attr('href', 'javascript:void(0);').attr('disabled', 'disabled');
333 }
334 }
335
336 if (event === 'after.request.submitRequest.error' || event === 'after.request.submitRequest.success') {
337 el.attr('disabled', false);
338 if (action === 'e2pdf_auto') {
339 el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item').attr('disabled', false);
340 }
341 if (action === 'e2pdf_extension') {
342 el.closest('form').find('#e2pdf-item').find('option').remove();
343 el.closest('form').find('.e2pdf-create-pdf, #e2pdf-item').attr('disabled', false);
344 }
345 if (action === 'e2pdf_get_styles') {
346 jQuery('link[id^="e2pdf-dynamic-style-"]').remove();
347 }
348 }
349
350 if (event === 'before.request.upload') {
351 el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item').attr('disabled', 'disabled');
352 }
353
354 if (event === 'after.request.upload.error' || event === 'after.request.upload.success') {
355 el.closest('form').find('.e2pdf-submit, #e2pdf-extension, #e2pdf-item').attr('disabled', false);
356 el.closest('form').find('#e2pdf-upload-pdf').replaceWith(
357 jQuery('<input>', {'id': 'e2pdf-upload-pdf', 'type': 'file', 'name': 'pdf', 'class': 'e2pdf-upload-pdf e2pdf-hide'})
358 );
359 el.closest('form').find('#e2pdf-reupload-pdf').replaceWith(
360 jQuery('<input>', {'id': 'e2pdf-reupload-pdf', 'type': 'file', 'name': 'pdf', 'class': 'e2pdf-reupload-pdf e2pdf-hide'})
361 );
362 }
363 }
364 },
365 //e2pdf.form
366 form: {
367 //e2pdf.form.serializeObject
368 serializeObject: function (form) {
369
370 var o = {};
371 var a = form.serializeArray();
372
373 jQuery.each(a, function () {
374 if (this.name.endsWith('[]')) {
375
376 var name = this.name;
377 name = name.substring(0, this.name.length - 2);
378 if (!(name in o)) {
379 o[name] = [];
380 }
381 o[name].push(this.value);
382 } else if (this.name.endsWith(']')) {
383
384 var name = this.name;
385 var path = name.split(/[\[\]]+/);
386 var curItem = o;
387
388 for (var j = 0; j < path.length - 2; j++)
389 {
390 if (!(path[j] in curItem))
391 {
392 curItem[path[j]] = {};
393 }
394 curItem = curItem[path[j]];
395 }
396
397 curItem[path[j]] = this.value || '';
398
399 } else {
400 o[this.name] = this.value || '';
401 }
402 });
403 return o;
404 },
405 //e2pdf.form.serializeElements
406 serializeElements: function () {
407 var o = {};
408 jQuery('.e2pdf-element').each(
409 function (index) {
410 var el = {};
411 el.type = jQuery(this).data('data-type');
412 el.properties = e2pdf.properties.get(jQuery(this), true);
413 el.actions = e2pdf.actions.get(jQuery(this));
414 el.top = jQuery(this).css('top');
415 el.left = jQuery(this).css('left');
416 el.width = jQuery(this).css('width');
417 el.height = jQuery(this).css('height');
418 if (jQuery(this).data('data-type') == 'e2pdf-html') {
419 el.value = jQuery(this).find('.e2pdf-html').html();
420 } else if (jQuery(this).data('data-type') == 'e2pdf-input') {
421 el.value = jQuery(this).find('.e2pdf-input').val();
422 } else if (jQuery(this).data('data-type') == 'e2pdf-textarea') {
423 el.value = jQuery(this).find('.e2pdf-textarea').val();
424 } else if (jQuery(this).data('data-type') == 'e2pdf-checkbox') {
425 el.value = e2pdf.properties.getValue(jQuery(this), 'value');
426 } else if (jQuery(this).data('data-type') == 'e2pdf-radio') {
427 el.value = e2pdf.properties.getValue(jQuery(this), 'value');
428 } else if (jQuery(this).data('data-type') == 'e2pdf-select') {
429 el.value = e2pdf.properties.getValue(jQuery(this), 'value');
430 } else if (jQuery(this).data('data-type') == 'e2pdf-image') {
431 el.value = e2pdf.properties.getValue(jQuery(this), 'value');
432 } else if (jQuery(this).data('data-type') == 'e2pdf-link') {
433 el.value = e2pdf.properties.getValue(jQuery(this), 'value');
434 } else {
435 el.value = jQuery(this).html();
436 }
437 el.page_id = jQuery(this).closest('.e2pdf-page').attr('data-page_id');
438 el.element_id = jQuery(this).attr('data-element_id');
439 o[index] = el;
440 });
441 return o;
442 }
443 },
444 //e2pdf.font
445 font: {
446 //e2pdf.font.load
447 load: function (el) {
448 if (el.is('select')) {
449 var name = el.val();
450 var value = el.find('option:selected').attr('path');
451 } else if (el.is('div')) {
452 var name = el.attr('name');
453 var value = el.attr('path');
454 }
455
456 if (jQuery("head").find('style[name="' + name + '"]').length === 0) {
457 jQuery("head").append("<style name='" + name + "' type='text/css'>@font-face {font-family: " + name + "; src: url('" + e2pdf.url.uploadUrl() + "/fonts/" + value + "')}</style>");
458 }
459 },
460 //e2pdf.font.apply
461 apply: function (el, font) {
462 var font_name = font.find('option:selected').html();
463 if (font_name) {
464 el.css('font-family', font_name);
465 } else {
466 el.css('font-family', '');
467 }
468 },
469 //e2pdf.font.size
470 size: function (el, size) {
471 var font_size = size.find('option:selected').html();
472 el.css({'font-size': font_size});
473 },
474 //e2pdf.font.line
475 line: function (el, height) {
476 var line_height = height.find('option:selected').html();
477 el.css({'line-height': line_height});
478 },
479 //e2pdf.font.color
480 fontcolor: function (el, color) {
481 var font_color = color.val();
482 el.css({'color': font_color});
483 },
484 //e2pdf.font.delete
485 delete: function (el) {
486 var font = el.attr('data-font');
487 e2pdf.request.submitRequest('e2pdf_delete_font', el, font);
488 }
489 },
490 //e2pdf.request
491 request: {
492 //e2pdf.request.upload
493 upload: function (action, el) {
494
495 if (el.attr('disabled')) {
496 return;
497 }
498
499 var data = new FormData(el.closest('form')[0]);
500 e2pdf.event.fire('before.request.upload', action, el);
501 var loader = el.closest('form').find('.e2pdf-form-loader .spinner');
502 loader.css('visibility', 'visible').fadeIn();
503 jQuery.ajax({
504 url: e2pdf.helper.ajaxurl(action),
505 type: 'POST',
506 data: data,
507 cache: false,
508 contentType: false,
509 processData: false,
510 success: function (response) {
511 loader.css('visibility', 'hidden').fadeOut();
512 e2pdf.event.fire('after.request.upload.success', action, el);
513 if (response.redirect !== undefined) {
514 // recheck if redirect fires in other cases when not upload pdf
515 e2pdf.static.unsaved = false;
516 location.href = response.redirect;
517 } else if (response.error !== undefined) {
518 alert(response.error);
519 } else if (response.content) {
520 e2pdf.request.callBack(action, response.content);
521 }
522 },
523 error: function (response) {
524 loader.css('visibility', 'hidden').fadeOut();
525 e2pdf.event.fire('after.request.upload.success', action, el);
526 }
527 });
528 },
529 //e2pdf.request.submitForm
530 submitForm: function (el) {
531 if (el.attr('disabled')) {
532 return;
533 }
534 el.attr('disabled', 'disabled');
535 var loader = el.closest('form').find('.e2pdf-form-loader .spinner');
536 loader.css('visibility', 'visible').fadeIn();
537 e2pdf.event.fire('before.request.submitForm');
538 var form_id = el.attr('form-id');
539 var form = jQuery(document.getElementById(form_id));
540 var data = e2pdf.form.serializeObject(form);
541 if (form_id === 'e2pdf_build_form') {
542 var elements = e2pdf.form.serializeElements();
543 data.pages = {};
544 jQuery('.e2pdf-page').each(function () {
545 var page_id = jQuery(this).attr('data-page_id');
546 data.pages[page_id] = {};
547 var properties = {};
548 var page_elements = [];
549 properties['width'] = jQuery(this).css('width').replace('px', '');
550 properties['height'] = jQuery(this).css('height').replace('px', '');
551 data.pages[page_id]['properties'] = properties;
552 data.pages[page_id]['actions'] = e2pdf.actions.get(jQuery(this));
553 data.pages[page_id]['elements'] = page_elements;
554 });
555 for (var key in elements) {
556 data.pages[elements[key].page_id]['elements'].push(elements[key]);
557 }
558 data = JSON.stringify(data);
559 }
560
561 if (form_id === 'e2pdf-email') {
562
563 jQuery('.e2pdf-email-lock .e2pdf-form-loader').removeClass('e2pdf-hidden-loader');
564 data = {};
565 data['email'] = form.find('input[name="email"]').val();
566 if (form.find('input[name="email_code"]').length > 0) {
567 data['email_code'] = form.find('input[name="email_code"]').val();
568 }
569 }
570
571 var action = el.attr('action');
572 el.parent().find('.spinner').css('visibility', 'visible').fadeIn();
573 if (el.attr('target') === '_blank') {
574 var post_form = jQuery('<form>', {'target': '_blank', 'method': 'POST', 'action': el.attr('href')}).append(
575 jQuery('<textarea>', {'name': 'preview', 'value': data})
576 ).hide();
577 jQuery('body').append(post_form);
578 post_form.submit();
579 post_form.remove();
580 el.parent().find('.spinner').css('visibility', 'hidden').fadeOut();
581 loader.css('visibility', 'hidden').fadeOut();
582 el.attr('disabled', false);
583 return false;
584 }
585
586 jQuery.ajax({
587 type: 'POST', url: e2pdf.helper.ajaxurl(),
588 data: {action: action, data: data},
589 success: function (response) {
590 el.parent().find('.spinner').css('visibility', 'hidden').fadeOut();
591 loader.css('visibility', 'hidden').fadeOut();
592 el.attr('disabled', false);
593 if (response.redirect !== undefined) {
594 location.href = response.redirect;
595 } else if (response.error !== undefined) {
596 alert(response.error);
597 } else if (response.content) {
598 e2pdf.request.callBack(action, response.content, el);
599 }
600 },
601 error: function (response) {
602 el.parent().find('.spinner').css('visibility', 'hidden').fadeOut();
603 loader.css('visibility', 'hidden').fadeOut();
604 el.attr('disabled', false);
605 }
606 });
607 },
608 //e2pdf.request.submitRequest
609 submitRequest: function (action, el, value) {
610
611 if (el.attr('disabled')) {
612 return;
613 }
614
615 var loader = el.closest('form').find('.e2pdf-form-loader .spinner');
616 if (!value) {
617 var value = el.val();
618 }
619 loader.css('visibility', 'visible').fadeIn();
620 e2pdf.event.fire('before.request.submitRequest', action, el);
621 jQuery.ajax({
622 type: 'POST', url: e2pdf.helper.ajaxurl(),
623 data: {action: action, data: value},
624 success: function (response) {
625 loader.css('visibility', 'hidden').fadeOut();
626 e2pdf.event.fire('after.request.submitRequest.success', action, el);
627 if (response.redirect !== undefined) {
628 location.href = response.redirect;
629 } else if (response.error !== undefined) {
630 alert(response.error);
631 } else if (response.content) {
632 e2pdf.request.callBack(action, response.content, el);
633 }
634 },
635 error: function (response) {
636 loader.css('visibility', 'hidden').fadeOut();
637 e2pdf.event.fire('after.request.submitRequest.error', action, el);
638 }
639 });
640 },
641 //e2pdf.request.submitLocal
642 submitLocal: function (el) {
643 var form_id = el.attr('form-id');
644
645 var form = jQuery(document.getElementById(form_id));
646 var data = e2pdf.form.serializeObject(form);
647
648 if (form_id === 'e2pdf-page-options') {
649 var width = data['width'];
650 var height = data['height'];
651 var page = jQuery('.e2pdf-page[data-page_id="' + data['page_id'] + '"]');
652 e2pdf.actions.apply(page, data['actions']);
653 e2pdf.pages.changePageSize(page, width, height);
654 e2pdf.event.fire('after.request.submitLocal', false, page);
655 } else {
656 var element = jQuery(".e2pdf-element[data-element_id='" + data.element_id + "']").first();
657
658 e2pdf.actions.apply(element, data['actions']);
659 delete data['actions'];
660
661 e2pdf.properties.apply(element, data);
662 e2pdf.properties.render(element);
663 e2pdf.dialog.close();
664 e2pdf.event.fire('after.request.submitLocal', false, el);
665 }
666
667 e2pdf.dialog.close();
668
669
670 },
671 //e2pdf.request.callBack
672 callBack: function (action, result, el) {
673
674 if (action === 'e2pdf_email') {
675
676 if (result === 'subscribed') {
677 jQuery('.e2pdf-email-lock').remove();
678 } else {
679 jQuery('.e2pdf-email-lock .e2pdf-form-loader').addClass('e2pdf-hidden-loader');
680 var form_id = el.attr('form-id');
681 var form = jQuery(document.getElementById(form_id));
682 form.find('label').html(e2pdfLang['Confirmation code'] + ":");
683 form.find('input[name="email"]').attr('type', 'hidden');
684 jQuery('<input/>', {'type': 'text', 'name': 'email_code', 'placeholder': e2pdfLang['Code']}).insertAfter(form.find('input[name="email"]'));
685 }
686 }
687
688 if (action === 'e2pdf_extension') {
689 for (var key in result) {
690 var option = jQuery('<option>',
691 {
692 'value': result[key]['key']
693 }).html(result[key]['value']);
694 if (e2pdf.pdf.settings.get('item') === result[key]['key']) {
695 option.attr('selected', 'selected');
696 }
697
698 jQuery('#e2pdf-item').append(option);
699 }
700 }
701
702 if (action === 'e2pdf_get_styles') {
703 for (var key in result) {
704 jQuery('<link>', {'id': 'e2pdf-dynamic-style-' + key + '-css', 'type': 'text/css', 'rel': 'stylesheet', 'href': result[key]}).appendTo('head');
705 }
706 }
707 if (action === 'e2pdf_visual_mapper') {
708 el.html(result);
709 e2pdf.visual.mapper.markup();
710 }
711 if (action === 'e2pdf_templates') {
712
713 var dataset_field = jQuery('#e2pdf-export-dataset');
714 dataset_field.attr('disabled', 'disabled').find('option').remove();
715 for (var key in result['datasets']) {
716 var option = jQuery('<option>',
717 {
718 'value': result['datasets'][key]['key']
719 }).html(result['datasets'][key]['value']);
720 dataset_field.append(option);
721 }
722
723 dataset_field.val('');
724 if (Object.keys(result['datasets']).length > 1) {
725 dataset_field.attr('disabled', false);
726 }
727
728 var options = jQuery('#e2pdf-export-form .e2pdf-options');
729 options.hide();
730 options.find('input[type="text"]').val('').attr('disabled', 'disabled');
731 options.find('select').val('0').attr('disabled', 'disabled');
732 options.find('input[type="checkbox"]').attr('checked', false).attr('disabled', 'disabled');
733 jQuery('#e2pdf-dataset-shortcode-wr').hide();
734 jQuery('#e2pdf-dataset-shortcode').val('');
735 jQuery('#e2pdf-template-shortcode').val('');
736 if (Object.keys(result['options']).length > 0) {
737 for (var key in result['options']) {
738 var field = options.find('[name="options[' + key + ']"]');
739 if (field.attr('type') === 'text' || field.is("select")) {
740 field.val(result['options'][key]);
741 } else if (field.attr('type') === 'hidden' && result['options'][key] === "1") {
742 var checkbox = options.find('input[type="checkbox"][name="options[' + key + ']"]');
743 checkbox.attr('checked', 'checked');
744 }
745 }
746
747 var template_id = jQuery('#e2pdf-export-template').val();
748 options.find('input[type="text"]').attr('disabled', false);
749 options.find('input[type="checkbox"]').attr('disabled', false);
750 options.find('select').attr('disabled', false);
751 jQuery('#e2pdf-template-link').attr('href', result['url']).attr('disabled', false);
752 jQuery('#e2pdf-template-shortcode').val(e2pdf.shortcode.get(template_id, false));
753 if (result['delete_items']) {
754 jQuery('#e2pdf-delete-items').attr({'template': template_id, 'disabled': false});
755 }
756
757 options.slideDown();
758 if (e2pdf.static.autoloadExport) {
759 if (e2pdf.url.get('dataset_id')) {
760 if (dataset_field.find('option[value="' + e2pdf.url.get('dataset_id') + '"]').length > 0) {
761 dataset_field.val(e2pdf.url.get('dataset_id')).change();
762 }
763 }
764 e2pdf.static.autoloadExport = false;
765 } else {
766 e2pdf.url.change('e2pdf', 'template_id=' + template_id);
767 }
768
769 dataset_field.change();
770 } else {
771 e2pdf.url.change('e2pdf');
772 }
773 }
774 if (action === 'e2pdf_dataset') {
775 var template_id = jQuery('#e2pdf-export-template').val();
776 var dataset_id = jQuery('#e2pdf-export-dataset').val();
777 jQuery('#e2pdf-dataset-shortcode-wr').hide();
778 jQuery('#e2pdf-dataset-shortcode').val('');
779 if (dataset_id && dataset_id != "0") {
780 jQuery('#e2pdf-dataset-shortcode').val(e2pdf.shortcode.get(template_id, dataset_id));
781 jQuery('#e2pdf-dataset-shortcode-wr').show();
782 }
783
784 if (result['export']) {
785 var export_url = e2pdf.url.build('e2pdf', 'action=export&template_id=' + template_id + '&dataset_id=' + dataset_id);
786 jQuery('#e2pdf-export-form').attr('action', export_url);
787 jQuery('#e2pdf-export-form-submit').attr('disabled', false);
788 e2pdf.url.change('e2pdf', 'template_id=' + template_id + '&dataset_id=' + dataset_id);
789 } else {
790 e2pdf.url.change('e2pdf', 'template_id=' + template_id);
791 }
792
793 if (result['view'] && result['dataset']) {
794 jQuery('#e2pdf-item-link').attr('href', result['dataset']['url']).attr('disabled', false);
795 }
796
797 if (result['delete_item'] && result['dataset']) {
798 jQuery('#e2pdf-delete-item').attr({'template': template_id, 'dataset': dataset_id, 'disabled': false});
799 }
800
801 }
802 if (action === 'e2pdf_activate_template' || action === 'e2pdf_deactivate_template') {
803 if (action === 'e2pdf_activate_template') {
804 el.removeClass('e2pdf-activate-template e2pdf-color-red').addClass('e2pdf-deactivate-template e2pdf-color-green').text(e2pdfLang['Activated']);
805 } else {
806 el.removeClass('e2pdf-deactivate-template e2pdf-color-green').addClass('e2pdf-activate-template e2pdf-color-red').text(e2pdfLang['Not Activated']);
807 }
808 }
809 if (action === 'e2pdf_auto' || action === 'e2pdf_upload') {
810 var elements = result.elements;
811 var width = e2pdf.pdf.settings.get('width');
812 var height = e2pdf.pdf.settings.get('height');
813 e2pdf.pages.changeTplSize(width, height);
814 e2pdf.pages.createPage();
815 jQuery('.ui-dialog-content').dialog('close');
816 var bottom = 0;
817 var start_top = 0;
818 if (typeof result.page !== 'undefined') {
819 if (typeof result.page.bottom !== 'undefined') {
820 bottom = parseFloat(result.page.bottom);
821 }
822 if (typeof result.page.top !== 'undefined') {
823 start_top = parseFloat(result.page.top);
824 }
825 }
826
827 var correction = 0;
828 var last_block = false;
829 var i = 1;
830 var page = jQuery('.e2pdf-page').last();
831 for (var key in elements) {
832 var element = elements[key];
833 var type = element.type;
834 var block = false;
835 var float = false;
836 var last_block_properties = false;
837 var properties = {};
838 if (element.properties) {
839 for (var property in element.properties) {
840 properties[property] = element.properties[property];
841 }
842 }
843
844 properties['margin_left'] = parseFloat(element.left);
845 properties['margin_right'] = parseFloat(element.right);
846 if (typeof element.block !== 'undefined') {
847 block = element.block;
848 }
849
850 if (typeof element.float !== 'undefined') {
851 float = element.float;
852 }
853
854 if (last_block) {
855 last_block_properties = e2pdf.properties.get(last_block);
856 }
857
858 if (typeof element.width !== 'undefined') {
859 if (element.width.search("%") > 0) {
860 properties['width'] = Math.floor((width * (parseFloat(element.width.replace('%', '')) / 100)) - parseFloat(element.left) - parseFloat(element.right));
861 }
862 }
863
864 if (block) {
865 if (typeof properties.width === 'undefined') {
866 properties['width'] = width - parseFloat(element.left) - parseFloat(element.right);
867 }
868 if (float && last_block) {
869 var start_left = last_block_properties.left + last_block_properties.width + last_block_properties.margin_right;
870 if (width - start_left >= properties.width + parseFloat(element.left) + parseFloat(element.right)) {
871 if (page.find(last_block).length === 0) {
872 page = last_block.closest('.e2pdf-page');
873 }
874 properties['left'] = start_left + parseFloat(element.left);
875 } else {
876 float = false;
877 properties['left'] = parseFloat(element.left);
878 }
879 } else {
880 float = false;
881 properties['left'] = parseFloat(element.left);
882 }
883 } else {
884 if (last_block) {
885 properties['left'] = last_block_properties.left + parseFloat(element.left);
886 if (typeof properties.width === 'undefined') {
887 properties['width'] = last_block_properties.width - parseFloat(element.left) - parseFloat(element.right);
888 }
889 } else {
890 properties['left'] = parseFloat(element.left);
891 if (typeof properties.width === 'undefined') {
892 properties['width'] = width - parseFloat(element.left) - parseFloat(element.right);
893 }
894 }
895 }
896
897 page.find('.e2pdf-element').each(function () {
898 if (!block && last_block) {
899 if (page.find(last_block).length === 0) {
900 if (typeof result.page.top === 'undefined') {
901 start_top = 0;
902 } else {
903 start_top = parseFloat(result.page.top);
904 }
905 } else {
906 start_top = last_block_properties.top + parseFloat(last_block.css('height').replace('px', ''));
907 }
908
909 } else {
910 start_top = Math.max(start_top, parseFloat(jQuery(this).css('top').replace('px', '')) + parseFloat(jQuery(this).css('height').replace('px', '')));
911 }
912 });
913 if (i === 1) {
914 properties['top'] = start_top;
915 } else {
916 if (float && block) {
917 if (last_block) {
918 properties['top'] = last_block_properties.top;
919 } else {
920 properties['top'] = start_top + parseFloat(element.top);
921 }
922 } else {
923 if (page.find(last_block).length === 0 && !block) {
924 properties['top'] = start_top + parseFloat(element.top) - correction;
925 } else {
926 properties['top'] = start_top + parseFloat(element.top);
927 }
928 }
929 }
930 //changed
931 var el = e2pdf.element.create(type, page, properties, false, true);
932 e2pdf.properties.render(el);
933 e2pdf.properties.set(el, 'height', parseFloat(el.css('height').replace('px', '')));
934 page.append(el);
935 if (properties['top'] + parseFloat(el.css('height').replace('px', '')) + bottom > height) {
936
937 if (page.is(':last-child')) {
938
939 if (e2pdfParams['license_type'] == 'FREE') {
940 alert(e2pdfLang['Only 1 page allowed with "FREE" license type']);
941 return;
942 }
943
944 e2pdf.pages.createPage();
945 page = jQuery('.e2pdf-page').last();
946 } else {
947 page = page.next('.e2pdf-page');
948 }
949
950 if (typeof result.page.top === 'undefined') {
951 start_top = 0;
952 } else {
953 start_top = parseFloat(result.page.top);
954 }
955
956 e2pdf.element.delete(el);
957 if (!block) {
958 correction = parseFloat(element.top);
959 }
960
961 properties['top'] = start_top + parseFloat(element.top) - correction;
962 //properties['top'] = start_top;
963 if (properties.height > height - start_top - bottom) {
964 properties['height'] = height - start_top - bottom;
965 }
966 //changed
967 var el = e2pdf.element.create(type, page, properties, false, true);
968 e2pdf.properties.render(el);
969 page.append(el);
970 }
971
972 if (block) {
973 correction = 0;
974 last_block = el;
975 }
976 i++;
977 }
978 }
979 }
980 },
981 //e2pdf.dialog
982 dialog: {
983 //e2pdf.dialog.create
984 create: function (el) {
985 e2pdf.dialog.close();
986 var modal = el.attr('data-modal');
987 var title = el.attr('data-modal-title');
988 var noclose = false;
989 var width = '600';
990 var height = '600';
991 if (modal === 'license-key') {
992 width = '300';
993 var content = jQuery('<div>', {'class': 'e2pdf-rel'}).append(
994 jQuery('<form>', {'id': 'license_key'}).append(
995 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
996 jQuery('<span>', {'class': 'spinner'})
997 ),
998 jQuery('<ul>').append(
999 jQuery('<li>').append(
1000 jQuery('<label>').html(e2pdfLang['License Key'] + ':'),
1001 jQuery('<input>', {'type': 'text', 'name': 'license_key'})
1002 ),
1003 jQuery('<li>', {'class': 'e2pdf-center'}).append(
1004 jQuery('<input>', {'form-id': "license_key", 'action': 'e2pdf_license_key', 'type': 'button', 'class': 'e2pdf-submit-form button-primary button-small', 'value': e2pdfLang['Submit']})
1005 )
1006 )
1007 )
1008 );
1009 } else if (modal === 'properties') {
1010 for (var key in e2pdf.element.selected) {
1011 var title = e2pdfLang['Properties'];
1012 var selected = e2pdf.element.selected[key];
1013 var properties = e2pdf.properties.get(selected);
1014 var fields = e2pdf.properties.renderFields(selected);
1015 var content = jQuery('<div>').append(
1016 jQuery('<form>', {'id': 'e2pdf-properties'}).append(
1017 jQuery('<div>', {'class': 'e2pdf-el-properties e2pdf-popup-inner'}).append(
1018 fields
1019 ),
1020 )
1021 );
1022 }
1023 } else if (modal === 'page-options') {
1024
1025
1026 var title = e2pdfLang['Page Options'];
1027 var page = el.closest('.e2pdf-page');
1028 var readonly_size = false;
1029 if (e2pdf.pdf.settings.get('pdf')) {
1030 readonly_size = true;
1031 }
1032
1033 var content = jQuery('<div>', {'class': 'e2pdf-page-options'}).append(jQuery('<form>', {'id': 'e2pdf-page-options', 'class': 'e2pdf-rel'}).append(
1034 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1035 jQuery('<span>', {'class': 'spinner'})
1036 ),
1037 jQuery('<div>', {'class': 'e2pdf-center'}).append(
1038 jQuery('<h3>').html(e2pdfLang['Page Options'])
1039 )),
1040 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1041 jQuery('<span>', {'class': 'spinner'})
1042 ));
1043
1044
1045 var fields = e2pdf.properties.renderFields(page);
1046
1047 content.find('form').append(jQuery('<div>', {'class': 'e2pdf-el-properties e2pdf-popup-inner'}).append(
1048 fields
1049 ));
1050
1051 } else if (modal === 'tpl-options') {
1052 var noclose = false;
1053 width = '500';
1054 var title = e2pdfLang['PDF Options'];
1055 var readonly_size = false;
1056 if (e2pdf.pdf.settings.get('pdf')) {
1057 readonly_size = true;
1058 }
1059
1060 var sizes = jQuery('<select>', {'name': 'preset', 'class': 'e2pdf-preset e2pdf-w100', 'disabled': readonly_size ? 'disabled' : false}).append(
1061 jQuery('<option>',
1062 {
1063 'value': '',
1064 }).html(e2pdfLang['--- Select ---']).attr('selected', 'selected')
1065 );
1066 for (var size in e2pdfTemplateSizes) {
1067 var option = jQuery('<option>',
1068 {
1069 'value': size,
1070 }).html(size + ' (' + e2pdfTemplateSizes[size]['width'] + 'x' + e2pdfTemplateSizes[size]['height'] + ')');
1071 sizes.append(option);
1072 }
1073
1074 var extensions = jQuery('<select>', {'name': 'extension', 'id': 'e2pdf-extension', 'class': 'e2pdf-extension e2pdf-w100'});
1075 for (var extension in e2pdfTemplateExtensions) {
1076 var option = jQuery('<option>',
1077 {
1078 'value': extension,
1079 }).html(e2pdfTemplateExtensions[extension]);
1080 if (e2pdf.pdf.settings.get('extension') === extension) {
1081 option.attr('selected', 'selected');
1082 }
1083 extensions.append(option);
1084 }
1085
1086 var content = jQuery('<div>', {'class': 'e2pdf-welcome'}).append(jQuery('<form>', {'id': 'e2pdf-create-pdf-form', 'class': 'e2pdf-rel'}).append(
1087 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1088 jQuery('<span>', {'class': 'spinner'})
1089 ),
1090 jQuery('<div>', {'class': 'e2pdf-center'}).append(
1091 jQuery('<h3>').html(e2pdfLang['PDF Options'])
1092 )),
1093 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1094 jQuery('<span>', {'class': 'spinner'})
1095 ));
1096 var default_width = '595';
1097 if (e2pdf.pdf.settings.get('width')) {
1098 var default_width = e2pdf.pdf.settings.get('width');
1099 }
1100
1101 var default_height = '842';
1102 if (e2pdf.pdf.settings.get('height')) {
1103 var default_height = e2pdf.pdf.settings.get('height');
1104 }
1105
1106 content.find('form').append(
1107 jQuery('<label>').html(e2pdfLang['Page Size'] + ':'),
1108 jQuery('<div>', {'class': 'e2pdf-grid'}).append(
1109 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pr10'}).html(e2pdfLang['Width'] + ':'),
1110 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pl10'}).html(e2pdfLang['Height'] + ':')
1111 ),
1112 jQuery('<div>', {'class': 'e2pdf-grid'}).append(
1113 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-pr10'}).append(
1114 jQuery('<input>', {'class': 'e2pdf-numbers', 'id': 'e2pdf-width', 'type': 'text', 'name': 'width', 'readonly': readonly_size ? 'readonly' : false, 'value': default_width})
1115 ),
1116 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-pl10'}).append(
1117 jQuery('<input>', {'class': 'e2pdf-numbers', 'id': 'e2pdf-height', 'type': 'text', 'name': 'height', 'readonly': readonly_size ? 'readonly' : false, 'value': default_height})
1118 )
1119 )
1120 );
1121 content.find('form').append(
1122 jQuery('<label>').html(e2pdfLang['Size Preset'] + ':'),
1123 sizes);
1124 content.find('form').append(
1125 jQuery('<label>').html(e2pdfLang['Extension'] + ':'),
1126 extensions,
1127 jQuery('<label>').html(e2pdfLang['Item'] + ':'),
1128 jQuery('<select>', {'id': 'e2pdf-item', 'name': 'item', 'class': 'e2pdf-item e2pdf-w100'})
1129 );
1130 content.find('form').append(
1131 jQuery('<input>', {'id': 'e2pdf-upload-pdf', 'type': 'file', 'name': 'pdf', 'class': 'e2pdf-upload-pdf e2pdf-hide'})
1132 );
1133 if (e2pdf.pdf.settings.get('pdf')) {
1134 content.find('form').append(
1135 jQuery('<ul>').append(
1136 jQuery('<li>'),
1137 jQuery('<li>').append(
1138 jQuery('<a>', {'href': 'javascript:void(0);', 'data-action': 'apply', 'class': 'e2pdf-create-pdf e2pdf-submit button-primary button-large e2pdf-link'}).html(e2pdfLang['Apply'])
1139 ),
1140 jQuery('<li>')
1141 )
1142 );
1143 } else {
1144 content.find('form').append(
1145 jQuery('<ul>').append(
1146 jQuery('<li>').append(
1147 jQuery('<a>', {'href': 'javascript:void(0);', 'data-action': 'apply', 'class': 'e2pdf-create-pdf e2pdf-submit button-primary button-large e2pdf-link'}).html(e2pdfLang['Apply'])
1148 ),
1149 jQuery('<li>'),
1150 jQuery('<li>').append(
1151 jQuery('<a>', {'id': 'e2pdf-w-auto', 'href': 'javascript:void(0);', 'data-action': 'auto', 'class': 'e2pdf-create-pdf e2pdf-submit button-primary button-large e2pdf-link'}).html(e2pdfLang['Auto PDF'])
1152 )
1153 )
1154 );
1155 }
1156
1157 } else if (modal === 'welcome-screen') {
1158 var noclose = true;
1159 width = '500';
1160 var title = e2pdfLang['Create PDF'];
1161 var sizes = jQuery('<select>', {'id': 'e2pdf-preset', 'name': 'preset', 'class': 'e2pdf-preset e2pdf-w100'}).append(
1162 jQuery('<option>',
1163 {
1164 'value': '',
1165 }).html(e2pdfLang['--- Select ---']).attr('selected', 'selected')
1166 );
1167 for (var size in e2pdfTemplateSizes) {
1168 var option = jQuery('<option>',
1169 {
1170 'value': size,
1171 'data-width': e2pdfTemplateSizes[size]['width'],
1172 'data-height': e2pdfTemplateSizes[size]['height']
1173 }).html(size + ' (' + e2pdfTemplateSizes[size]['width'] + 'x' + e2pdfTemplateSizes[size]['height'] + ')');
1174 sizes.append(option);
1175 }
1176
1177 var extensions = jQuery('<select>', {'name': 'extension', 'id': 'e2pdf-extension', 'class': 'e2pdf-extension e2pdf-w100'});
1178 for (var extension in e2pdfTemplateExtensions) {
1179 var option = jQuery('<option>',
1180 {
1181 'value': extension,
1182 }).html(e2pdfTemplateExtensions[extension]);
1183 if (e2pdf.pdf.settings.get('extension') === extension) {
1184 option.attr('selected', 'selected');
1185 }
1186 extensions.append(option);
1187 }
1188
1189 var content = jQuery('<div>', {'class': 'e2pdf-welcome'}).append(jQuery('<form>', {'id': 'e2pdf-create-pdf-form', 'class': 'e2pdf-rel'}).append(
1190 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1191 jQuery('<span>', {'class': 'spinner'})
1192 ),
1193 jQuery('<div>', {'class': 'e2pdf-center'}).append(
1194 jQuery('<h3>').html(e2pdfLang['PDF Options'])
1195 )),
1196 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1197 jQuery('<span>', {'class': 'spinner'})
1198 ));
1199 var default_width = '595';
1200 if (e2pdf.pdf.settings.get('width')) {
1201 var default_width = e2pdf.pdf.settings.get('width');
1202 }
1203
1204 var default_height = '842';
1205 if (e2pdf.pdf.settings.get('height')) {
1206 var default_height = e2pdf.pdf.settings.get('height');
1207 }
1208
1209 content.find('form').append(
1210 jQuery('<label>').html(e2pdfLang['Page Size'] + ':'),
1211 jQuery('<div>', {'class': 'e2pdf-grid'}).append(
1212 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pr10'}).html(e2pdfLang['Width'] + ':'),
1213 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pl10'}).html(e2pdfLang['Height'] + ':')
1214 ),
1215 jQuery('<div>', {'class': 'e2pdf-grid'}).append(
1216 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-pr10'}).append(
1217 jQuery('<input>', {'class': 'e2pdf-numbers', 'id': 'e2pdf-width', 'type': 'text', 'name': 'width', 'value': default_width})
1218 ),
1219 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-pl10'}).append(
1220 jQuery('<input>', {'class': 'e2pdf-numbers', 'id': 'e2pdf-height', 'type': 'text', 'name': 'height', 'value': default_height})
1221 )
1222 )
1223 );
1224 content.find('form').append(
1225 jQuery('<label>').html(e2pdfLang['Size Preset'] + ':'),
1226 sizes);
1227 content.find('form').append(
1228 jQuery('<label>').html(e2pdfLang['Extension'] + ':'),
1229 extensions,
1230 jQuery('<label>').html(e2pdfLang['Item'] + ':'),
1231 jQuery('<select>', {'id': 'e2pdf-item', 'name': 'item', 'class': 'e2pdf-item e2pdf-w100'})
1232 );
1233 content.find('form').append(
1234 jQuery('<input>', {'id': 'e2pdf-upload-pdf', 'type': 'file', 'name': 'pdf', 'class': 'e2pdf-upload-pdf e2pdf-hide'})
1235 );
1236 content.find('form').append(
1237 jQuery('<input>', {'type': 'hidden', 'name': 'pdf', 'value': ''})
1238 );
1239
1240 if (e2pdf.pdf.settings.get('ID')) {
1241 content.find('form').append(
1242 jQuery('<input>', {'id': 'template_id', 'type': 'hidden', 'name': 'template_id', 'value': e2pdf.pdf.settings.get('ID')})
1243 );
1244 }
1245
1246 content.find('form').append(
1247 jQuery('<ul>').append(
1248 jQuery('<li>').append(
1249 jQuery('<a>', {'id': 'e2pdf-w-empty', 'href': 'javascript:void(0);', 'data-action': 'empty', 'class': 'e2pdf-create-pdf e2pdf-submit button-primary button-large e2pdf-link'}).html(e2pdfLang['Empty PDF'])
1250 ),
1251 jQuery('<li>').append(
1252 jQuery('<a>', {'id': 'e2pdf-w-upload', 'href': 'javascript:void(0);', 'data-action': 'upload', 'class': 'e2pdf-create-pdf e2pdf-submit button-primary button-large e2pdf-link'}).html(e2pdfLang['Upload PDF'])
1253 ),
1254 jQuery('<li>').append(
1255 jQuery('<a>', {'id': 'e2pdf-w-auto', 'href': 'javascript:void(0);', 'data-action': 'auto', 'class': 'e2pdf-create-pdf e2pdf-submit button-primary button-large e2pdf-link'}).html(e2pdfLang['Auto PDF'])
1256 )
1257 )
1258 );
1259 } else if (modal === 'visual-mapper') {
1260
1261 var title = e2pdfLang['Visual Mapper'];
1262 var content = jQuery('<div>', {'id': 'visual-mapper', 'class': 'visual-mapper'}).append(
1263 jQuery('<form>', {'class': 'e2pdf-rel'}).append(
1264 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1265 jQuery('<span>', {'class': 'spinner'})
1266 )).append(
1267 jQuery('<div>', {'id': 'e2pdf-vm-inner', 'class': 'e2pdf-popup-inner'}).append(
1268 jQuery('<div>', {'id': 'e2pdf-vm-content', 'class': 'e2pdf-vm-content e2pdf-rel'})
1269 )
1270 ));
1271 } else if (modal === 'pdf-reupload') {
1272
1273 var title = e2pdfLang['PDF Upload'];
1274 width = '500';
1275 var content = jQuery('<div>', {'class': 'e2pdf-welcome'}).append(jQuery('<form>', {'id': 'e2pdf-reupload-pdf-form', 'class': 'e2pdf-rel'}).append(
1276 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1277 jQuery('<span>', {'class': 'spinner'})
1278 ),
1279 jQuery('<div>', {'class': 'e2pdf-center'}).append(
1280 jQuery('<h3>').html(e2pdfLang['PDF Options'])
1281 )),
1282 jQuery('<div>', {'class': 'e2pdf-form-loader'}).append(
1283 jQuery('<span>', {'class': 'spinner'})
1284 ));
1285 content.find('form').append(
1286 jQuery('<input>', {'id': 'e2pdf-reupload-pdf', 'type': 'file', 'name': 'pdf', 'class': 'e2pdf-reupload-pdf e2pdf-hide'})
1287 );
1288 if (e2pdf.pdf.settings.get('ID')) {
1289 content.find('form').append(
1290 jQuery('<input>', {'id': 'template_id', 'type': 'hidden', 'name': 'template_id', 'value': e2pdf.pdf.settings.get('ID')})
1291 );
1292 }
1293
1294 var pages = jQuery('<div>', {'class': 'e2pdf-reupload-pages'});
1295 pages.append(
1296 jQuery('<div>', {'class': 'e2pdf-grid e2pdf-reupload-pages-header'}).append(
1297 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pr10 e2pdf-center'}).append(
1298 jQuery('<label>').text(e2pdfLang['Page ID'])
1299 ),
1300 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pl10 e2pdf-pr10 e2pdf-center'}).append(
1301 jQuery('<label>').text(e2pdfLang['New Position'])
1302 ),
1303 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pl10 e2pdf-center'}).append(
1304 jQuery('<label>').text(e2pdfLang['Render New Fields'])
1305 ),
1306 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pl10 e2pdf-pr10 e2pdf-center'}).append(
1307 jQuery('<label>').text(e2pdfLang['Flush Elements'])
1308 )));
1309 jQuery('.e2pdf-page').each(function () {
1310 var page_id = jQuery(this).attr('data-page_id');
1311 pages.append(
1312 jQuery('<div>', {'class': 'e2pdf-grid'}).append(
1313 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pr10 e2pdf-center'}).text(page_id),
1314 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pl10 e2pdf-pr10 e2pdf-center'}).append(
1315 jQuery('<input>', {'name': 'positions[' + page_id + ']', 'type': 'text', 'class': 'e2pdf-numbers e2pdf-center', 'value': page_id})
1316 ),
1317 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pl10 e2pdf-center'}).append(
1318 jQuery('<input>', {'name': 'new[]', 'type': 'checkbox', 'value': page_id})
1319 ),
1320 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w25 e2pdf-pl10 e2pdf-pr10 e2pdf-center'}).append(
1321 jQuery('<input>', {'name': 'flush[]', 'type': 'checkbox', 'value': page_id})
1322 )
1323 )
1324 );
1325 });
1326 content.find('form').append(pages);
1327 content.find('form').append(
1328 jQuery('<ul>').append(
1329 jQuery('<li>').append(
1330 ),
1331 jQuery('<li>').append(
1332 jQuery('<a>', {'id': 'e2pdf-w-reupload', 'href': 'javascript:void(0);', 'class': 'e2pdf-w-reupload e2pdf-submit button-primary button-large'}).html(e2pdfLang['Upload PDF'])
1333 ),
1334 jQuery('<li>').append(
1335 )
1336 )
1337 );
1338 } else {
1339 var content = jQuery('<div>');
1340 }
1341
1342 content.dialog({
1343 title: title,
1344 dialogClass: 'e2pdf-dialog',
1345 modal: true,
1346 width: width,
1347 maxHeight: Math.min(height, jQuery(window).height() - 80),
1348 resizable: false,
1349 minHeight: 0,
1350 my: "center",
1351 at: "center",
1352 open: function (event, ui) {
1353 if (noclose) {
1354 jQuery(".ui-dialog-titlebar-close", ui.dialog | ui).remove();
1355 } else {
1356 jQuery('.ui-widget-overlay').bind('click', function ()
1357 {
1358 content.dialog('close');
1359 });
1360 }
1361
1362 var dialog_height = jQuery('.e2pdf-dialog').height();
1363
1364
1365 if (modal === 'properties') {
1366 jQuery(".ui-dialog-titlebar").after(
1367 jQuery('<div>', {'class': 'e2pdf-dialog-over e2pdf-align-right'}).append(
1368 jQuery('<input>', {'form-id': "e2pdf-properties", 'type': 'button', 'class': 'e2pdf-submit-local button-primary button-small', 'value': e2pdfLang['Save']})
1369 )
1370 );
1371 } else if (modal === 'page-options') {
1372 jQuery(".ui-dialog-titlebar").after(
1373 jQuery('<div>', {'class': 'e2pdf-dialog-over e2pdf-align-right'}).append(
1374 jQuery('<input>', {'form-id': "e2pdf-page-options", 'type': 'button', 'class': 'e2pdf-submit-local button-primary button-small', 'value': e2pdfLang['Save']})
1375 )
1376 );
1377 }
1378
1379 jQuery('.e2pdf-dialog').find(".ui-dialog-content").dialog('option', 'maxHeight', Math.min(height, jQuery(window).height() - 80));
1380
1381 var dialog_width = Math.min(width, jQuery(window).width() - 80);
1382 jQuery('.e2pdf-dialog').css({'position': 'fixed', 'top': (jQuery(window).height() - dialog_height) / 2, 'left': ((jQuery(window).width() - dialog_width) / 2), 'max-width': dialog_width});
1383 },
1384 closeOnEscape: modal === 'welcome-screen' || modal === 'tpl-options' ? false : true,
1385 close: function (event, ui)
1386 {
1387 if (jQuery(this).find('.wp-color-result.wp-picker-open').length > 0) {
1388 jQuery(this).find('.wp-color-result.wp-picker-open').each(function () {
1389 jQuery(this).click();
1390 });
1391 }
1392 jQuery(this).remove();
1393 }
1394 });
1395 if (modal === 'welcome-screen' || modal === 'tpl-options') {
1396 e2pdf.request.submitRequest('e2pdf_extension', jQuery('#e2pdf-create-pdf-form select[name="extension"]'));
1397 } else if (modal === 'properties') {
1398 jQuery('.e2pdf-scale-field').each(function () {
1399 jQuery(this).trigger('change');
1400 });
1401 } else if (modal === 'visual-mapper') {
1402
1403 var data = {};
1404 data['extension'] = e2pdf.pdf.settings.get('extension');
1405 data['item'] = e2pdf.pdf.settings.get('item');
1406 e2pdf.request.submitRequest('e2pdf_visual_mapper', jQuery('#e2pdf-vm-content'), data);
1407 }
1408 e2pdf.event.fire('after.dialog.create');
1409 },
1410 //e2pdf.dialog.close
1411 close: function () {
1412 if (jQuery('.e2pdf-dialog').length > 0) {
1413 jQuery('.ui-dialog-content').dialog('close');
1414 }
1415 },
1416 //e2pdf.dialog.rebuild
1417 rebuild: function () {
1418 if (jQuery('.e2pdf-dialog').length > 0) {
1419
1420 var dialog = jQuery('.e2pdf-dialog').find(".ui-dialog-content");
1421 var width = dialog.data("ui-dialog").options.width;
1422 var height = 600;
1423 dialog.dialog('option', 'maxHeight', Math.min(height, jQuery(window).height() - 80));
1424 var dialog_height = jQuery('.e2pdf-dialog').height();
1425
1426 var dialog_width = Math.min(width, jQuery(window).width() - 80);
1427 jQuery('.e2pdf-dialog').css({'position': 'fixed', 'top': (jQuery(window).height() - dialog_height) / 2, 'left': ((jQuery(window).width() - dialog_width) / 2), 'max-width': dialog_width});
1428 }
1429 }
1430 },
1431 //e2pdf.mediaUploader
1432 mediaUploader: {
1433 //e2pdf.mediaUploader.init
1434 init: function (el) {
1435
1436 var mediaUploader;
1437 mediaUploader = wp.media.frames.file_frame = wp.media({
1438 title: e2pdfLang['Choose Image'],
1439 button: {
1440 text: e2pdfLang['Choose Image']
1441 }, multiple: false});
1442 mediaUploader.on('select', function () {
1443 var attachment = mediaUploader.state().get('selection').first().toJSON();
1444 e2pdf.properties.set(el, 'value', attachment.url);
1445 e2pdf.properties.render(el);
1446 e2pdf.event.fire('after.mediaUploader.select');
1447 });
1448 mediaUploader.open();
1449 }
1450 },
1451 //e2pdf.actions
1452 actions: {
1453 //e2pdf.actions.add
1454 add: function (el, target) {
1455
1456 var last_id = -1;
1457
1458 target.find('.e2pdf-action').each(function () {
1459 var num_id = parseInt(jQuery(this).attr("data-action_id"));
1460 if (num_id > last_id) {
1461 last_id = num_id;
1462 }
1463 });
1464 var action_id = parseInt(last_id + 1);
1465
1466
1467 target.append(e2pdf.actions.renderField(el, action_id));
1468 },
1469 //e2pdf.actions.change
1470 change: function (action) {
1471 var action_id = action.attr("data-action_id");
1472
1473 var form = action.closest('form');
1474 var data = e2pdf.form.serializeObject(form);
1475
1476
1477 var el = false;
1478
1479 if (form.attr('id') === 'e2pdf-page-options') {
1480 el = jQuery('.e2pdf-page[data-page_id="' + data.page_id + '"]');
1481 } else {
1482 el = jQuery(".e2pdf-element[data-element_id='" + data.element_id + "']").first();
1483 }
1484
1485 data['actions'][action_id]['change'] = '';
1486
1487 action.replaceWith(e2pdf.actions.renderField(el, action_id, data['actions'][action_id]));
1488
1489 e2pdf.event.fire('after.actions.change');
1490 },
1491 //e2pdf.actions.delete
1492 delete: function (action) {
1493 action.remove();
1494 },
1495 //e2pdf.actions.conditions
1496 conditions: {
1497 //e2pdf.actions.conditions.add
1498 add: function (el, target) {
1499 var action = target.closest('.e2pdf-action');
1500
1501 var action_id = action.attr('data-action_id');
1502 var last_id = -1;
1503
1504 target.find('.e2pdf-condition').each(function () {
1505 var num_id = parseInt(jQuery(this).attr("data-condition_id"));
1506 if (num_id > last_id) {
1507 last_id = num_id;
1508 }
1509 });
1510 var condition_id = parseInt(last_id + 1);
1511
1512 action.find('.e2pdf-conditions').append(
1513 e2pdf.actions.conditions.renderField(el, action_id, condition_id)
1514 );
1515 },
1516 //e2pdf.actions.conditions.getFields
1517 getFields: function (el, action_id, condition_id, condition) {
1518 var obj = {
1519 'condition': {
1520 'fields': [
1521 e2pdf.actions.conditions.getField('if', el, action_id, condition_id, condition),
1522 e2pdf.actions.conditions.getField('condition', el, action_id, condition_id, condition),
1523 e2pdf.actions.conditions.getField('value', el, action_id, condition_id, condition),
1524 ],
1525 'classes': [
1526 'e2pdf-ib e2pdf-w25 e2pdf-pr5',
1527 'e2pdf-ib e2pdf-w25 e2pdf-pl5 e2pdf-pr5',
1528 'e2pdf-ib e2pdf-w35 e2pdf-pl5 e2pdf-pr5',
1529 ],
1530 },
1531
1532 };
1533 return obj;
1534 },
1535 //e2pdf.actions.conditions.getField
1536 getField: function (field, el, action_id, condition_id, condition) {
1537 var obj = false;
1538
1539 switch (field) {
1540
1541 case 'if':
1542 var value = condition ? condition.if : '';
1543 obj = {
1544 'name': e2pdfLang['If'],
1545 'key': 'actions[' + action_id + '][conditions][' + condition_id + '][if]',
1546 'type': 'text',
1547 'value': value,
1548 'atts': []
1549 };
1550 break;
1551
1552 case 'condition':
1553 var value = condition ? condition.condition : '=';
1554
1555 obj = {
1556 'name': e2pdfLang['Condition'],
1557 'key': 'actions[' + action_id + '][conditions][' + condition_id + '][condition]',
1558 'type': 'select',
1559 'value': value,
1560 'options': [
1561 {'=': '='},
1562 {'!=': '!='},
1563 {'>': '>'},
1564 {'>=': '>='},
1565 {'<': '<'},
1566 {'<=': '<='},
1567 {'like': 'LIKE'},
1568 {'not_like': 'NOT LIKE'}
1569 ],
1570 'atts': []
1571 };
1572 break;
1573
1574
1575 case 'value':
1576 var value = condition ? condition.value : '';
1577 obj = {
1578 'name': e2pdfLang['Value'],
1579 'key': 'actions[' + action_id + '][conditions][' + condition_id + '][value]',
1580 'type': 'text',
1581 'value': value,
1582 'atts': []
1583 };
1584 break;
1585 }
1586
1587 return obj;
1588 },
1589 //e2pdf.actions.conditions.delete
1590 delete: function (condition) {
1591 condition.remove();
1592 },
1593 //e2pdf.actions.conditions.renderField
1594 renderField: function (el, action_id, condition_id, condition) {
1595 var groups = e2pdf.actions.conditions.getFields(el, action_id, condition_id, condition);
1596
1597 if (groups) {
1598 for (var group_key in groups) {
1599
1600 var group = groups[group_key];
1601 var grid = jQuery('<div>', {'class': 'e2pdf-grid'});
1602
1603 for (var field_key in group.fields) {
1604 var group_field = group.fields[field_key];
1605 var classes = '';
1606 if (group.classes) {
1607 if (group.classes[field_key]) {
1608 classes = group.classes[field_key];
1609 }
1610 }
1611
1612 var field = '';
1613 var label = '';
1614 var wrap = '';
1615
1616 if (group_field.type === 'text') {
1617 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1618 field = jQuery('<input>', {'type': 'text', 'name': group_field.key, 'value': group_field.value});
1619 } else if (group_field.type === 'hidden') {
1620 field = jQuery('<input>', {'type': 'hidden', 'name': group_field.key, 'value': group_field.value});
1621 } else if (group_field.type === 'textarea') {
1622 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1623 field = jQuery('<textarea>', {'name': group_field.key, 'class': 'e2pdf-w100', 'rows': '5'}).val(group_field.value);
1624 } else if (group_field.type === 'checkbox') {
1625 label = jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pr10 e2pdf-label'}).html(group_field.name + ":");
1626 field = jQuery('<input>', {'type': 'checkbox', 'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pl10', 'name': group_field.key, 'value': group_field.option});
1627 if (group_field.value == group_field.option) {
1628 field.attr('checked', 'checked');
1629 }
1630 } else if (group_field.type === 'color') {
1631 wrap = jQuery('<div>', {'class': 'e2pdf-colorpicker-wr'});
1632 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1633 field = jQuery('<input>', {'class': 'e2pdf-color-picker e2pdf-color-picker-load', 'type': 'text', 'name': group_field.key, 'value': group_field.value});
1634 } else if (group_field.type === 'select') {
1635 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1636 field = jQuery('<select>', {'class': 'e2pdf-w100', 'name': group_field.key});
1637 for (var option_key in group_field.options) {
1638 field.append(jQuery('<option>', {'value': Object.keys(group_field.options[option_key])[0]}).html(Object.values(group_field.options[option_key])[0]));
1639 }
1640 field.val(group_field.value);
1641 }
1642
1643 if (!wrap) {
1644 wrap = field;
1645 } else {
1646 wrap.prepend(field);
1647 }
1648
1649 grid.append(jQuery('<div>', {'class': 'e2pdf-ib ' + classes}).append(label, wrap));
1650 }
1651 }
1652 }
1653
1654 grid.append(jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w15 e2pdf-pl5 e2pdf-mt23 e2pdf-center'}).append(
1655 jQuery('<a>', {'href': 'javascript:void(0);', 'class': 'e2pdf-link e2pdf-action-condition-add'}).append(
1656 jQuery('<i>', {'class': 'dashicons dashicons-plus'})
1657 ),
1658 jQuery('<a>', {'href': 'javascript:void(0);', 'class': 'e2pdf-link e2pdf-action-condition-delete'}).append(
1659 jQuery('<i>', {'class': 'dashicons dashicons-minus'})
1660 )));
1661
1662 var new_condition = jQuery("<div>", {'class': 'e2pdf-ib e2pdf-condition', 'data-condition_id': condition_id}).append(
1663 jQuery('<a>', {'href': 'javascript:void(0);', 'class': 'e2pdf-link e2pdf-action-delete'}).append(
1664 jQuery('<i>', {'class': 'dashicons dashicons-no'})
1665 ),
1666 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w100'}).append(
1667 grid,
1668 )
1669 );
1670 return new_condition;
1671 }
1672 },
1673
1674 //e2pdf.actions.get
1675 get: function (el) {
1676 var actions = [];
1677 if (typeof el.data('data-properties') !== 'undefined') {
1678 actions = JSON.parse(el.data('data-actions'));
1679 actions = Object.values(actions).sort(function (a, b) {
1680 if (parseInt(a.order) === parseInt(b.order)) {
1681 return 0;
1682 }
1683 return parseInt(a.order) < parseInt(b.order) ? -1 : 1;
1684 });
1685 }
1686 return actions;
1687 },
1688 //e2pdf.actions.apply
1689 apply: function (el, data) {
1690 if (!data) {
1691 data = [];
1692 }
1693 el.data('data-actions', JSON.stringify(data));
1694 },
1695 //e2pdf.actions.getField
1696 getField: function (field, el, action_id, action) {
1697
1698 var obj = false;
1699
1700 switch (field) {
1701 case 'order':
1702 var value = action ? action.order : '0';
1703 obj = {
1704 'name': e2pdfLang['Order'],
1705 'key': 'actions[' + action_id + '][order]',
1706 'type': 'text',
1707 'value': value,
1708 'atts': ['number']
1709 };
1710 break;
1711
1712
1713 case 'action':
1714 var value = action ? action.action : 'hide';
1715 obj = {
1716 'name': e2pdfLang['Action'],
1717 'key': 'actions[' + action_id + '][action]',
1718 'type': 'select',
1719 'value': value,
1720 'options': [
1721 {'hide': e2pdfLang['Hide']},
1722 {'show': e2pdfLang['Show']},
1723 {'change': e2pdfLang['Change']},
1724 ],
1725 'atts': []
1726 };
1727 break;
1728
1729 case 'property':
1730 var value = action ? action.property : '';
1731
1732 if (action && action.action === 'change') {
1733 var options = [];
1734 var option = {
1735 '': e2pdfLang['--- Select ---']
1736 };
1737 options.push(option);
1738
1739 var groups = e2pdf.properties.getFields(el);
1740
1741 var disabled_groups = ['element_id', 'page_id', 'preset'];
1742
1743 for (var group_key in groups) {
1744 var group = groups[group_key];
1745
1746 if (jQuery.inArray(group_key, disabled_groups) === -1) {
1747 for (var field_key in group.fields) {
1748 var group_field = group.fields[field_key];
1749 var option = {};
1750
1751 if (group.classes && group.classes[field_key] && group.classes[field_key].includes("e2pdf-hide-label")) {
1752 option[group_field.key] = group.name;
1753 } else {
1754 option[group_field.key] = group.name + ' ' + group_field.name;
1755 }
1756
1757 options.push(option);
1758 }
1759 }
1760 }
1761
1762 obj = {
1763 'name': e2pdfLang['Property'],
1764 'key': 'actions[' + action_id + '][property]',
1765 'type': 'select',
1766 'value': value,
1767 'options': options,
1768 'atts': []
1769 };
1770
1771 }
1772 break;
1773
1774 case 'change':
1775 var value = action ? action.change : '';
1776
1777 if (
1778 action
1779 && typeof action.action !== 'undefined'
1780 && action.action === 'change'
1781 && typeof action.property !== 'undefined'
1782 && action.property !== ''
1783 ) {
1784
1785 var property = e2pdf.properties.getField(action.property, el);
1786
1787 if (property) {
1788 property.name = e2pdfLang['Change'];
1789 property.key = 'actions[' + action_id + '][change]';
1790
1791 if (jQuery.inArray('readonly', property.atts) === -1) {
1792 if (property.type === 'select') {
1793 for (var key in property.options) {
1794 if (Object.keys(property.options[key])[0] == value) {
1795 property.value = value;
1796 break;
1797 }
1798 }
1799 } else if (jQuery.inArray('number', property.atts) !== -1) {
1800 if (value === '') {
1801 property.value = 0;
1802 } else {
1803 property.value = value;
1804 }
1805 } else {
1806 property.value = value;
1807 }
1808 }
1809
1810 obj = property;
1811 }
1812 }
1813
1814 break;
1815
1816 case 'apply':
1817 var value = action ? action.apply : 'any';
1818 obj = {
1819 'name': e2pdfLang['Apply If'],
1820 'key': 'actions[' + action_id + '][apply]',
1821 'type': 'select',
1822 'value': value,
1823 'options': [
1824 {'any': e2pdfLang['Any']},
1825 {'all': e2pdfLang['All']},
1826 ],
1827 'atts': []
1828 };
1829 break;
1830 }
1831 return obj;
1832 },
1833 //e2pdf.actions.getFields
1834 getFields: function (el, action_id, action) {
1835 var obj = {
1836 'action': {
1837 'fields': [
1838 e2pdf.actions.getField('order', el, action_id, action),
1839 e2pdf.actions.getField('action', el, action_id, action),
1840 e2pdf.actions.getField('property', el, action_id, action),
1841 e2pdf.actions.getField('change', el, action_id, action),
1842 e2pdf.actions.getField('apply', el, action_id, action),
1843 ],
1844 'classes': [
1845 'e2pdf-w10 e2pdf-pr5 e2pdf-action-order',
1846 'e2pdf-w25 e2pdf-pr5 e2pdf-action-action',
1847 'e2pdf-w30 e2pdf-pl5 e2pdf-pr5 e2pdf-action-property',
1848 'e2pdf-w20 e2pdf-pl5 e2pdf-pr5 e2pdf-action-change',
1849 'e2pdf-w15 e2pdf-pl5'
1850 ],
1851 },
1852 };
1853 return obj;
1854 },
1855 //e2pdf.actions.renderField
1856 renderField: function (el, action_id, action) {
1857
1858 var conditions = jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w100 e2pdf-conditions'});
1859 if (action) {
1860 for (var condition in action.conditions) {
1861 conditions.append(e2pdf.actions.conditions.renderField(el, action_id, condition, action.conditions[condition]));
1862 }
1863 } else {
1864 conditions.append(e2pdf.actions.conditions.renderField(el, action_id, 1));
1865 }
1866
1867 var groups = e2pdf.actions.getFields(el, action_id, action);
1868
1869 if (groups) {
1870
1871 for (var group_key in groups) {
1872
1873 var group = groups[group_key];
1874 var grid = jQuery('<div>', {'class': 'e2pdf-grid'});
1875
1876 for (var field_key in group.fields) {
1877 var group_field = group.fields[field_key];
1878 var classes = '';
1879 if (group.classes) {
1880 if (group.classes[field_key]) {
1881 classes = group.classes[field_key];
1882 }
1883 }
1884
1885 var field = '';
1886 var label = '';
1887 var wrap = '';
1888
1889 if (group_field.type === 'text') {
1890 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1891 field = jQuery('<input>', {'type': 'text', 'name': group_field.key, 'value': group_field.value});
1892 } else if (group_field.type === 'hidden') {
1893 field = jQuery('<input>', {'type': 'hidden', 'name': group_field.key, 'value': group_field.value});
1894 } else if (group_field.type === 'textarea') {
1895 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1896 field = jQuery('<textarea>', {'name': group_field.key, 'class': 'e2pdf-w100', 'rows': '5'}).val(group_field.value);
1897 } else if (group_field.type === 'checkbox') {
1898 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1899 field = jQuery('<input>', {'type': 'checkbox', 'class': 'e2pdf-ib', 'name': group_field.key, 'value': group_field.option});
1900 if (group_field.value == group_field.option) {
1901 field.attr('checked', 'checked');
1902 }
1903 } else if (group_field.type === 'color') {
1904 wrap = jQuery('<div>', {'class': 'e2pdf-colorpicker-wr'});
1905 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1906 field = jQuery('<input>', {'class': 'e2pdf-color-picker e2pdf-color-picker-load', 'type': 'text', 'name': group_field.key, 'value': group_field.value});
1907 } else if (group_field.type === 'select') {
1908 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
1909 field = jQuery('<select>', {'class': 'e2pdf-w100', 'name': group_field.key});
1910 for (var option_key in group_field.options) {
1911 field.append(jQuery('<option>', {'value': Object.keys(group_field.options[option_key])[0]}).html(Object.values(group_field.options[option_key])[0]));
1912 }
1913 field.val(group_field.value);
1914 }
1915
1916 for (var att_key in group_field.atts) {
1917 var att = group_field.atts[att_key];
1918
1919 switch (att) {
1920 case 'readonly':
1921 field.attr('readonly', 'readonly');
1922 break;
1923 case 'number':
1924 field.addClass('e2pdf-numbers e2pdf-number-negative e2pdf-number-positive');
1925 break;
1926 case 'autocomplete':
1927
1928 wrap = jQuery('<div>', {'class': 'e2pdf-rel e2pdf-w100'});
1929 field.addClass('e2pdf-autocomplete-cl');
1930 field.autocomplete({
1931 source: group_field.source,
1932 minLength: 0,
1933 appendTo: wrap,
1934 open: function () {
1935 $(this).autocomplete("widget").addClass("e2pdf-autocomplete");
1936 },
1937 classes: {
1938 "ui-autocomplete": "e2pdf-autocomplete"
1939 },
1940 });
1941 break;
1942
1943 case 'scale':
1944 field.addClass('e2pdf-scale-field');
1945 break;
1946 }
1947 }
1948
1949 if (!wrap) {
1950 wrap = field;
1951 } else {
1952 wrap.prepend(field);
1953 }
1954
1955 grid.append(jQuery('<div>', {'class': 'e2pdf-ib ' + classes}).append(label, wrap));
1956 }
1957 }
1958 }
1959
1960 var new_action = jQuery("<div>", {'class': 'e2pdf-ib e2pdf-rel e2pdf-w100 e2pdf-action', 'data-action_id': action_id}).append(
1961 jQuery('<a>', {'href': 'javascript:void(0);', 'class': 'e2pdf-link e2pdf-action-delete'}).append(
1962 jQuery('<i>', {'class': 'dashicons dashicons-no'})
1963 ),
1964 jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w100'}).append(
1965 grid
1966 ),
1967 conditions
1968 );
1969
1970 return new_action;
1971 },
1972 //e2pdf.actions.renderFields
1973 renderFields: function (el) {
1974
1975 var add_action = jQuery('<div>', {'class': 'e2pdf-action-add-wrapper'}).append(
1976 jQuery('<a>', {'href': 'javascript:void(0);', 'class': 'button-primary button-small e2pdf-action-add'}).html("Add Action")
1977 );
1978
1979 var block = jQuery('<div>', {'class': 'e2pdf-actions-wrapper e2pdf-mt5 e2pdf-w100'});
1980 var action_wrapper = jQuery('<div>', {'class': 'e2pdf-actions'});
1981
1982 var actions = e2pdf.actions.get(el);
1983
1984 for (var action in actions) {
1985 action_wrapper.append(e2pdf.actions.renderField(el, action, actions[action]));
1986 }
1987
1988 block.append(action_wrapper, add_action);
1989
1990 return block;
1991 }
1992 },
1993 //e2pdf.properties
1994 properties: {
1995 //e2pdf.properties.getField
1996 getField: function (field, el) {
1997
1998 var obj = false;
1999 var properties = e2pdf.properties.get(el);
2000 var children = e2pdf.element.children(el);
2001
2002 switch (field) {
2003 case 'element_id':
2004 var value = el.attr('data-element_id');
2005 obj = {
2006 'name': e2pdfLang['ID'],
2007 'key': 'element_id',
2008 'type': 'text',
2009 'value': value ? value : 0,
2010 'atts': [
2011 'readonly'
2012 ]
2013 };
2014 break;
2015
2016 case 'page_id':
2017 var value = el.attr('data-page_id');
2018 obj = {
2019 'name': e2pdfLang['ID'],
2020 'key': 'page_id',
2021 'type': 'text',
2022 'value': value ? value : 0,
2023 'atts': [
2024 'readonly'
2025 ]
2026 };
2027 break;
2028
2029 case 'width':
2030
2031 var value = e2pdf.helper.convertPxToFloat(el.css('width'));
2032
2033 obj = {
2034 'name': e2pdfLang['Width'],
2035 'key': 'width',
2036 'type': 'text',
2037 'value': value,
2038 'atts': [
2039 'number'
2040 ]
2041 };
2042
2043 if (el.data('data-type') == 'e2pdf-page') {
2044 if (e2pdf.pdf.settings.get('pdf')) {
2045 obj.atts.push('readonly')
2046 }
2047 }
2048
2049 break;
2050 case 'height':
2051 var value = e2pdf.helper.convertPxToFloat(el.css('height'));
2052 obj = {
2053 'name': e2pdfLang['Height'],
2054 'key': 'height',
2055 'type': 'text',
2056 'value': value,
2057 'atts': [
2058 'number'
2059 ]
2060 };
2061
2062 if (el.data('data-type') == 'e2pdf-page') {
2063 if (e2pdf.pdf.settings.get('pdf')) {
2064 obj.atts.push('readonly')
2065 }
2066 }
2067
2068 break;
2069 case 'top':
2070 var value = parseFloat(el.css('top'));
2071 obj = {
2072 'name': e2pdfLang['Top'],
2073 'key': 'top',
2074 'type': 'text',
2075 'value': value,
2076 'atts': [
2077 'number'
2078 ]
2079 };
2080 break;
2081 case 'left':
2082 var value = parseFloat(el.css('left'));
2083 obj = {
2084 'name': e2pdfLang['Left'],
2085 'key': 'left',
2086 'type': 'text',
2087 'value': value,
2088 'atts': [
2089 'number'
2090 ]
2091 };
2092 break;
2093 case 'dynamic_height':
2094 var value = properties['dynamic_height'] && properties['dynamic_height'] == '1' ? '1' : '0';
2095 obj = {
2096 'name': e2pdfLang['Dynamic Height'],
2097 'key': 'dynamic_height',
2098 'type': 'checkbox',
2099 'value': value,
2100 'option': 1,
2101 'atts': []
2102 };
2103 break;
2104 case 'text_color':
2105 var value = properties['text_color'];
2106 obj = {
2107 'name': e2pdfLang['Color'],
2108 'key': 'text_color',
2109 'type': 'color',
2110 'value': value,
2111 'atts': []
2112 };
2113 break;
2114 case 'text_type':
2115 var value = properties['text_type'];
2116 obj = {
2117 'name': e2pdfLang['Type'],
2118 'key': 'text_type',
2119 'type': 'select',
2120 'value': value,
2121 'options': [
2122 {'check': e2pdfLang['Check']},
2123 {'circle': e2pdfLang['Circle']},
2124 {'cross': e2pdfLang['Cross']},
2125 {'diamond': e2pdfLang['Diamond']},
2126 {'square': e2pdfLang['Square']},
2127 {'star': e2pdfLang['Star']},
2128 ],
2129 'atts': []
2130 };
2131 break;
2132 case 'text_font':
2133 var options = [];
2134 jQuery('#e2pdf_wysiwyg_font').find('option').each(function () {
2135 var option = {};
2136 option[jQuery(this).attr('value')] = jQuery(this).html();
2137 options.push(option);
2138 });
2139 var value = '';
2140 if (properties['text_font']) {
2141 value = properties['text_font'];
2142 }
2143 obj = {
2144 'name': e2pdfLang['Font'],
2145 'key': 'text_font',
2146 'type': 'select',
2147 'value': value,
2148 'options': options,
2149 'atts': []
2150 };
2151 break;
2152 case 'text_font_size':
2153 var options = [];
2154 jQuery('#e2pdf_wysiwyg_fontsize').find('option').each(function () {
2155 var option = {};
2156 option[jQuery(this).attr('value')] = jQuery(this).html();
2157 options.push(option);
2158 if (jQuery(this).attr('value') === '' && el.data('data-type') != 'e2pdf-html') {
2159 option = {};
2160 option['-1'] = e2pdfLang['Auto'];
2161 options.push(option);
2162 }
2163 });
2164 var value = '';
2165 if (properties['text_font_size']) {
2166 value = properties['text_font_size'];
2167 }
2168 obj = {
2169 'name': e2pdfLang['Size'],
2170 'key': 'text_font_size',
2171 'type': 'select',
2172 'value': value,
2173 'options': options,
2174 'atts': []
2175 };
2176 break;
2177 case 'text_line_height':
2178
2179 var options = [];
2180
2181 var value = '';
2182 if (properties['text_line_height']) {
2183 value = properties['text_line_height'];
2184 }
2185
2186 var option = {};
2187 option[''] = '-';
2188 options.push(option);
2189
2190 jQuery('#e2pdf-line-height').find('option').each(function () {
2191 var option = {};
2192 option[jQuery(this).attr('value')] = jQuery(this).html();
2193 options.push(option);
2194 });
2195
2196 obj = {
2197 'name': e2pdfLang['Line Height'],
2198 'key': 'text_line_height',
2199 'type': 'select',
2200 'value': value,
2201 'options': options,
2202 'atts': []
2203 };
2204 break;
2205 case 'z_index':
2206 var value = properties['z_index'];
2207 obj = {
2208 'name': e2pdfLang['Z-index'],
2209 'key': 'z_index',
2210 'type': 'text',
2211 'value': value,
2212 'atts': ['number']
2213 };
2214 break;
2215 case 'background':
2216 var value = properties['background'];
2217 obj = {
2218 'name': e2pdfLang['Background'],
2219 'key': 'background',
2220 'type': 'color',
2221 'value': value,
2222 'atts': []
2223 };
2224 break;
2225 case 'border':
2226 var value = properties['border'];
2227 obj = {
2228 'name': e2pdfLang['Border'],
2229 'key': 'border',
2230 'type': 'text',
2231 'value': value,
2232 'atts': ['number']
2233 };
2234 break;
2235 case 'border_top':
2236 var value = properties['border_top'];
2237 obj = {
2238 'name': e2pdfLang['Top'],
2239 'key': 'border_top',
2240 'type': 'text',
2241 'value': value,
2242 'atts': ['number']
2243 };
2244 break;
2245 case 'border_left':
2246 var value = properties['border_left'];
2247 obj = {
2248 'name': e2pdfLang['Left'],
2249 'key': 'border_left',
2250 'type': 'text',
2251 'value': value,
2252 'atts': ['number']
2253 };
2254 break;
2255 case 'border_right':
2256 var value = properties['border_right'];
2257 obj = {
2258 'name': e2pdfLang['Right'],
2259 'key': 'border_right',
2260 'type': 'text',
2261 'value': value,
2262 'atts': ['number']
2263 };
2264 break;
2265 case 'border_bottom':
2266 var value = properties['border_bottom'];
2267 obj = {
2268 'name': e2pdfLang['Bottom'],
2269 'key': 'border_bottom',
2270 'type': 'text',
2271 'value': value,
2272 'atts': ['number']
2273 };
2274 break;
2275 case 'border_color':
2276 var value = properties['border_color'];
2277 obj = {
2278 'name': e2pdfLang['Color'],
2279 'key': 'border_color',
2280 'type': 'color',
2281 'value': value,
2282 };
2283 break;
2284 case 'padding_top':
2285 var value = properties['padding_top'];
2286 obj = {
2287 'name': e2pdfLang['Top'],
2288 'key': 'padding_top',
2289 'type': 'text',
2290 'value': value,
2291 'atts': ['number']
2292 };
2293 break;
2294 case 'padding_left':
2295 var value = properties['padding_left'];
2296 obj = {
2297 'name': e2pdfLang['Left'],
2298 'key': 'padding_left',
2299 'type': 'text',
2300 'value': value,
2301 'atts': ['number']
2302 };
2303 break;
2304 case 'padding_right':
2305 var value = properties['padding_right'];
2306 obj = {
2307 'name': e2pdfLang['Right'],
2308 'key': 'padding_right',
2309 'type': 'text',
2310 'value': value,
2311 'atts': ['number']
2312 };
2313 break;
2314 case 'padding_bottom':
2315 var value = properties['padding_bottom'];
2316 obj = {
2317 'name': e2pdfLang['Bottom'],
2318 'key': 'padding_bottom',
2319 'type': 'text',
2320 'value': value,
2321 'atts': ['number']
2322 };
2323 break;
2324 case 'rtl':
2325 var value = properties['rtl'] && properties['rtl'] == '1' ? '1' : '0';
2326 obj = {
2327 'name': e2pdfLang['RTL'],
2328 'key': 'rtl',
2329 'type': 'checkbox',
2330 'option': 1,
2331 'value': value,
2332 'atts': []
2333 };
2334 break;
2335 case 'required':
2336 var value = properties['required'] && properties['required'] == '1' ? '1' : '0';
2337 obj = {
2338 'name': e2pdfLang['Required'],
2339 'key': 'required',
2340 'type': 'checkbox',
2341 'option': 1,
2342 'value': value,
2343 'atts': []
2344 };
2345 break;
2346 case 'readonly':
2347 var value = properties['readonly'] && properties['readonly'] == '1' ? '1' : '0';
2348 obj = {
2349 'name': e2pdfLang['Readonly'],
2350 'key': 'readonly',
2351 'type': 'checkbox',
2352 'option': 1,
2353 'value': value,
2354 'atts': []
2355 };
2356 break;
2357 case 'pass':
2358 var value = properties['pass'] && properties['pass'] == '1' ? '1' : '0';
2359 obj = {
2360 'name': e2pdfLang['Password'],
2361 'key': 'pass',
2362 'type': 'checkbox',
2363 'option': 1,
2364 'value': value,
2365 'atts': []
2366 };
2367 break;
2368 case 'multiline':
2369 var value = properties['multiline'] && properties['multiline'] == '1' ? '1' : '0';
2370 obj = {
2371 'name': e2pdfLang['Multiline'],
2372 'key': 'multiline',
2373 'type': 'checkbox',
2374 'option': 1,
2375 'value': value,
2376 'atts': []
2377 };
2378 break;
2379 case 'dimension':
2380 var value = properties['dimension'] && properties['dimension'] == '1' ? '1' : '0';
2381 obj = {
2382 'name': e2pdfLang['Keep dimension'],
2383 'key': 'dimension',
2384 'type': 'checkbox',
2385 'option': 1,
2386 'value': value,
2387 'atts': []
2388 };
2389 break;
2390 case 'horizontal':
2391 var value = properties['horizontal'];
2392 obj = {
2393 'name': e2pdfLang['Horizontal align'],
2394 'key': 'horizontal',
2395 'type': 'select',
2396 'value': value,
2397 'options':
2398 [
2399 {'left': e2pdfLang['Left']},
2400 {'center': e2pdfLang['Center']},
2401 {'right': e2pdfLang['Right']},
2402 ]
2403 ,
2404 'atts': []
2405 };
2406 break;
2407 case 'vertical':
2408 var value = properties['vertical'];
2409 obj = {
2410 'name': e2pdfLang['Vertical align'],
2411 'key': 'vertical',
2412 'type': 'select',
2413 'value': value,
2414 'options':
2415 [
2416 {'top': e2pdfLang['Top']},
2417 {'middle': e2pdfLang['Middle']},
2418 {'bottom': e2pdfLang['Bottom']},
2419 ]
2420 ,
2421 'atts': []
2422 };
2423 break;
2424 case 'scale':
2425 var value = properties['scale'];
2426 obj = {
2427 'name': e2pdfLang['Scale'],
2428 'key': 'scale',
2429 'type': 'select',
2430 'value': value,
2431 'options':
2432 [
2433 {'0': e2pdfLang['Width&Height']},
2434 {'1': e2pdfLang['Width']},
2435 {'2': e2pdfLang['Height']},
2436 ]
2437 ,
2438 'atts': ['scale']
2439 };
2440 break;
2441 case 'text_align':
2442 var value = properties['text_align'];
2443 obj = {
2444 'name': e2pdfLang['Text Align'],
2445 'key': 'text_align',
2446 'type': 'select',
2447 'value': value,
2448 'options':
2449 [
2450 {'left': e2pdfLang['Left']},
2451 {'center': e2pdfLang['Center']},
2452 {'right': e2pdfLang['Right']},
2453 ]
2454 ,
2455 'atts': []
2456 };
2457 break;
2458 case 'parent':
2459 var value = properties['parent'];
2460 var source = [
2461 ];
2462 if (el.data('data-type') === 'e2pdf-html') {
2463 jQuery('#e2pdf-tpl').find('.e2pdf-html').each(function () {
2464 if (!jQuery(this).is(children)) {
2465 var parent = jQuery(this).parent().attr('data-element_id');
2466 if (source.indexOf(parent) === -1) {
2467 source.push(parent);
2468 }
2469 }
2470 });
2471 }
2472
2473 obj = {
2474 'name': e2pdfLang['Parent'],
2475 'key': 'parent',
2476 'type': 'text',
2477 'value': value,
2478 'source': source,
2479 'atts': ['autocomplete']
2480 };
2481 break;
2482 case 'group':
2483 var value = properties['group'];
2484 var source = [
2485 ];
2486 jQuery('#e2pdf-tpl').find('.e2pdf-radio').each(function () {
2487 if (!jQuery(this).is(children)) {
2488 var radio = jQuery(this).parent();
2489 var group = e2pdf.properties.getValue(radio, 'group');
2490 if (source.indexOf(group) === -1) {
2491 source.push(group);
2492 }
2493 }
2494 });
2495 obj = {
2496 'name': e2pdfLang['Group'],
2497 'key': 'group',
2498 'type': 'text',
2499 'value': value,
2500 'source': source,
2501 'atts': ['autocomplete']
2502 };
2503 break;
2504 case 'option':
2505 var value = properties['option'];
2506 obj = {
2507 'name': e2pdfLang['Option'],
2508 'key': 'option',
2509 'type': 'textarea',
2510 'value': value,
2511 'atts': []
2512 };
2513 break;
2514
2515 case 'options':
2516 var value = properties['options'];
2517 obj = {
2518 'name': e2pdfLang['Options'],
2519 'key': 'options',
2520 'type': 'textarea',
2521 'value': value,
2522 'atts': []
2523 };
2524 break;
2525
2526
2527 case 'value':
2528 value = '';
2529 if (el.data('data-type') === 'e2pdf-html') {
2530 value = children.html();
2531 } else if (el.data('data-type') === 'e2pdf-input' || el.data('data-type') === 'e2pdf-textarea') {
2532 value = children.val();
2533 } else {
2534 value = properties['value'];
2535 }
2536
2537 obj = {
2538 'name': e2pdfLang['Value'],
2539 'key': 'value',
2540 'type': 'textarea',
2541 'value': value,
2542 'atts': []
2543 };
2544 break;
2545
2546 case 'preset':
2547
2548 var value = '';
2549
2550 var options = [];
2551 var option = {
2552 '': e2pdfLang['--- Select ---']
2553 };
2554 options.push(option);
2555
2556 for (var size in e2pdfTemplateSizes) {
2557 var option = {};
2558 option[size] = size + ' (' + e2pdfTemplateSizes[size]['width'] + 'x' + e2pdfTemplateSizes[size]['height'] + ')';
2559 options.push(option);
2560 }
2561
2562 obj = {
2563 'name': e2pdfLang['Size Preset'],
2564 'key': 'preset',
2565 'type': 'select',
2566 'value': value,
2567 'options': options,
2568 'atts': [],
2569 };
2570
2571
2572 if (e2pdf.pdf.settings.get('pdf')) {
2573 obj.atts.push('disabled');
2574 }
2575
2576 break;
2577 }
2578
2579 return obj;
2580 },
2581 //e2pdf.properties.getFields
2582 getFields: function (el, actions) {
2583 if (el.data('data-type') === 'e2pdf-page') {
2584 var obj = {
2585 'page_id': {
2586 'name': e2pdfLang['ID'],
2587 'fields': [
2588 e2pdf.properties.getField('page_id', el),
2589 ],
2590 'position': 'top',
2591 'classes': [
2592 'e2pdf-w100 e2pdf-hide-label'
2593 ],
2594 },
2595 'size': {
2596 'name': e2pdfLang['Size'],
2597 'fields': [
2598 e2pdf.properties.getField('width', el),
2599 e2pdf.properties.getField('height', el),
2600 ],
2601 'position': 'top',
2602 'classes': [
2603 'e2pdf-w50 e2pdf-pr10',
2604 'e2pdf-w50 e2pdf-pl10'
2605 ],
2606 },
2607 'preset': {
2608 'name': e2pdfLang['Size Preset'],
2609 'fields': [
2610 e2pdf.properties.getField('preset', el),
2611 ],
2612 'position': 'top',
2613 'classes': [
2614 'e2pdf-w100 e2pdf-hide-label'
2615 ]
2616 }
2617 };
2618 } else {
2619
2620 var obj = {
2621 'element_id': {
2622 'name': e2pdfLang['ID'],
2623 'fields': [
2624 e2pdf.properties.getField('element_id', el)
2625 ],
2626 'position': 'top',
2627 'classes': [
2628 'e2pdf-w100 e2pdf-hide-label',
2629 ],
2630 },
2631 'size': {
2632 'name': e2pdfLang['Size'],
2633 'fields': [
2634 e2pdf.properties.getField('width', el),
2635 e2pdf.properties.getField('height', el),
2636 ],
2637 'position': 'left',
2638 'classes': [
2639 'e2pdf-w50 e2pdf-pr10',
2640 'e2pdf-w50 e2pdf-pl10'
2641 ],
2642 },
2643 'position': {
2644 'name': e2pdfLang['Position'],
2645 'fields': [
2646 e2pdf.properties.getField('left', el),
2647 e2pdf.properties.getField('top', el)
2648 ],
2649 'position': 'right',
2650 'classes': [
2651 'e2pdf-w50 e2pdf-pr10',
2652 'e2pdf-w50 e2pdf-pl10'
2653 ],
2654 },
2655 };
2656
2657 if (el.data('data-type') === 'e2pdf-html') {
2658 obj['font'] = {
2659 'name': e2pdfLang['Font'],
2660 'fields': [
2661 e2pdf.properties.getField('text_color', el),
2662 e2pdf.properties.getField('text_font', el),
2663 e2pdf.properties.getField('text_font_size', el),
2664 e2pdf.properties.getField('text_line_height', el),
2665 ],
2666 'position': 'left',
2667 'classes': [
2668 'e2pdf-w100',
2669 'e2pdf-w100',
2670 'e2pdf-w50 e2pdf-pr10',
2671 'e2pdf-w50 e2pdf-pl10'
2672 ],
2673 };
2674
2675 }
2676
2677 // Font
2678 if (el.data('data-type') === 'e2pdf-input'
2679 || el.data('data-type') === 'e2pdf-textarea'
2680 || el.data('data-type') === 'e2pdf-select'
2681 ) {
2682 obj['font'] = {
2683 'name': e2pdfLang['Font'],
2684 'fields': [
2685 e2pdf.properties.getField('text_color', el),
2686 e2pdf.properties.getField('text_font', el),
2687 e2pdf.properties.getField('text_font_size', el),
2688 ],
2689 'position': 'left',
2690 'classes': [
2691 'e2pdf-w100',
2692 'e2pdf-w70 e2pdf-pr10',
2693 'e2pdf-w30 e2pdf-pl10'
2694 ],
2695 };
2696 }
2697
2698 // Text align
2699 if (el.data('data-type') === 'e2pdf-html'
2700 || el.data('data-type') === 'e2pdf-input'
2701 || el.data('data-type') === 'e2pdf-textarea'
2702 ) {
2703 obj['text_align'] = {
2704 'name': e2pdfLang['Text Align'],
2705 'fields': [
2706 e2pdf.properties.getField('text_align', el),
2707 ],
2708 'position': 'left',
2709 'classes': [
2710 'e2pdf-w100 e2pdf-hide-label',
2711 ]
2712 };
2713 }
2714
2715 // Settings
2716 if (el.data('data-type') === 'e2pdf-html') {
2717 obj['settings'] = {
2718 'name': e2pdfLang['Settings'],
2719 'fields': [
2720 e2pdf.properties.getField('rtl', el),
2721 e2pdf.properties.getField('dynamic_height', el),
2722 ],
2723 'position': 'left',
2724 'classes': [
2725 'e2pdf-w100',
2726 'e2pdf-w100',
2727 ]
2728 };
2729 }
2730
2731 // Settings
2732 if (el.data('data-type') === 'e2pdf-input'
2733 || el.data('data-type') === 'e2pdf-textarea'
2734 ) {
2735 obj['settings'] = {
2736 'name': e2pdfLang['Settings'],
2737 'fields': [
2738 e2pdf.properties.getField('rtl', el),
2739 e2pdf.properties.getField('required', el),
2740 e2pdf.properties.getField('readonly', el),
2741 e2pdf.properties.getField('pass', el),
2742 ],
2743 'position': 'left',
2744 'classes': [
2745 'e2pdf-w100',
2746 'e2pdf-w100',
2747 'e2pdf-w100',
2748 'e2pdf-w100',
2749 ]
2750 };
2751 }
2752
2753 // Settings
2754 if (el.data('data-type') === 'e2pdf-checkbox'
2755 || el.data('data-type') === 'e2pdf-radio'
2756 ) {
2757 obj['settings'] = {
2758 'name': e2pdfLang['Settings'],
2759 'fields': [
2760 e2pdf.properties.getField('required', el),
2761 e2pdf.properties.getField('readonly', el),
2762 ],
2763 'position': 'left',
2764 'classes': [
2765 'e2pdf-w100',
2766 'e2pdf-w100',
2767 ]
2768 };
2769 }
2770
2771 // Settings
2772 if (el.data('data-type') === 'e2pdf-select') {
2773 obj['settings'] = {
2774 'name': e2pdfLang['Settings'],
2775 'fields': [
2776 e2pdf.properties.getField('rtl', el),
2777 e2pdf.properties.getField('required', el),
2778 e2pdf.properties.getField('readonly', el),
2779 e2pdf.properties.getField('multiline', el),
2780 ],
2781 'position': 'left',
2782 'classes': [
2783 'e2pdf-w100',
2784 'e2pdf-w100',
2785 'e2pdf-w100',
2786 'e2pdf-w100',
2787 ]
2788 };
2789 }
2790
2791 // Selector
2792 if (el.data('data-type') === 'e2pdf-checkbox'
2793 || el.data('data-type') === 'e2pdf-radio'
2794 ) {
2795 obj['selector'] = {
2796 'name': e2pdfLang['Selector'],
2797 'fields': [
2798 e2pdf.properties.getField('text_color', el),
2799 e2pdf.properties.getField('text_type', el),
2800 ],
2801 'position': 'left',
2802 'classes': [
2803 'e2pdf-w100',
2804 'e2pdf-w100',
2805 ]
2806 };
2807 }
2808
2809 // Background
2810 if (el.data('data-type') === 'e2pdf-html'
2811 || el.data('data-type') === 'e2pdf-input'
2812 || el.data('data-type') === 'e2pdf-textarea'
2813 || el.data('data-type') === 'e2pdf-image'
2814 || el.data('data-type') === 'e2pdf-rectangle'
2815 ) {
2816 obj['background'] = {
2817 'name': e2pdfLang['Background'],
2818 'fields': [
2819 e2pdf.properties.getField('background', el)
2820 ],
2821 'position': el.data('data-type') === 'e2pdf-rectangle' || el.data('data-type') === 'e2pdf-image' ? 'left' : 'right',
2822 'classes': [
2823 'e2pdf-w100 e2pdf-hide-label',
2824 ]
2825 };
2826 }
2827
2828 // Resize
2829 if (el.data('data-type') === 'e2pdf-image') {
2830 obj['resize'] = {
2831 'name': e2pdfLang['Resize'],
2832 'fields': [
2833 e2pdf.properties.getField('scale', el),
2834 e2pdf.properties.getField('horizontal', el),
2835 e2pdf.properties.getField('vertical', el),
2836 e2pdf.properties.getField('dimension', el),
2837 ],
2838 'position': 'left',
2839 'classes': [
2840 'e2pdf-w100',
2841 'e2pdf-w50 e2pdf-pr10',
2842 'e2pdf-w50 e2pdf-pl10',
2843 'e2pdf-w100 e2pdf-mt5'
2844 ]
2845 };
2846 }
2847
2848 // Border
2849 if (el.data('data-type') === 'e2pdf-input'
2850 || el.data('data-type') === 'e2pdf-textarea'
2851 || el.data('data-type') === 'e2pdf-checkbox'
2852 || el.data('data-type') === 'e2pdf-radio'
2853 || el.data('data-type') === 'e2pdf-select'
2854 ) {
2855 obj['border'] = {
2856 'name': e2pdfLang['Border'],
2857 'fields': [
2858 e2pdf.properties.getField('border', el),
2859 e2pdf.properties.getField('border_color', el)
2860 ],
2861 'position': 'right',
2862 'classes': [
2863 'e2pdf-w25 e2pdf-pr10',
2864 'e2pdf-w100'
2865 ],
2866 };
2867 }
2868
2869 // Border
2870 if (el.data('data-type') === 'e2pdf-html'
2871 || el.data('data-type') === 'e2pdf-image'
2872
2873 ) {
2874 obj['border'] = {
2875 'name': e2pdfLang['Border'],
2876 'fields': [
2877 e2pdf.properties.getField('border_top', el),
2878 e2pdf.properties.getField('border_left', el),
2879 e2pdf.properties.getField('border_right', el),
2880 e2pdf.properties.getField('border_bottom', el),
2881 e2pdf.properties.getField('border_color', el)
2882 ],
2883 'position': 'right',
2884 'classes': [
2885 'e2pdf-w25 e2pdf-pr10',
2886 'e2pdf-w25 e2pdf-pr10',
2887 'e2pdf-w25 e2pdf-pr10',
2888 'e2pdf-w25',
2889 'e2pdf-w100'
2890 ],
2891 };
2892 }
2893
2894 // Padding
2895 if (el.data('data-type') === 'e2pdf-html'
2896 || el.data('data-type') === 'e2pdf-image'
2897 ) {
2898 obj['padding'] = {
2899 'name': e2pdfLang['Padding'],
2900 'fields': [
2901 e2pdf.properties.getField('padding_top', el),
2902 e2pdf.properties.getField('padding_left', el),
2903 e2pdf.properties.getField('padding_right', el),
2904 e2pdf.properties.getField('padding_bottom', el)
2905 ],
2906 'position': 'right',
2907 'classes': [
2908 'e2pdf-w25 e2pdf-pr10',
2909 'e2pdf-w25 e2pdf-pr10',
2910 'e2pdf-w25 e2pdf-pr10',
2911 'e2pdf-w25',
2912 ]
2913 };
2914 }
2915
2916 // Z-index
2917 obj['z_index'] = {
2918 'name': e2pdfLang['Z-index'],
2919 'fields': [
2920 e2pdf.properties.getField('z_index', el)
2921 ],
2922 'position': el.data('data-type') === 'e2pdf-link' ? 'left' : 'right',
2923 'classes': [
2924 'e2pdf-w100 e2pdf-hide-label',
2925 ]
2926 };
2927
2928 // Parent
2929 if (el.data('data-type') === 'e2pdf-html') {
2930 obj['parent'] = {
2931 'name': e2pdfLang['Parent'],
2932 'fields': [
2933 e2pdf.properties.getField('parent', el),
2934 ],
2935 'position': 'bottom',
2936 'classes': [
2937 'e2pdf-w100 e2pdf-hide-label',
2938 ],
2939 };
2940 }
2941
2942 if (el.data('data-type') === 'e2pdf-radio') {
2943 obj['group'] = {
2944 'name': e2pdfLang['Group'],
2945 'fields': [
2946 e2pdf.properties.getField('group', el),
2947 ],
2948 'position': 'bottom',
2949 'classes': [
2950 'e2pdf-w100 e2pdf-hide-label',
2951 ]
2952 };
2953 }
2954
2955 if (el.data('data-type') === 'e2pdf-radio'
2956 || el.data('data-type') === 'e2pdf-checkbox'
2957 ) {
2958 obj['option'] = {
2959 'name': e2pdfLang['Option'],
2960 'fields': [
2961 e2pdf.properties.getField('option', el),
2962 ],
2963 'position': 'bottom',
2964 'classes': [
2965 'e2pdf-w100 e2pdf-hide-label',
2966 ]
2967 };
2968 }
2969
2970 // Options
2971 if (el.data('data-type') === 'e2pdf-select') {
2972 obj['options'] = {
2973 'name': e2pdfLang['Options'],
2974 'fields': [
2975 e2pdf.properties.getField('options', el),
2976 ],
2977 'position': 'bottom',
2978 'classes': [
2979 'e2pdf-w100 e2pdf-hide-label',
2980 ]
2981 };
2982 }
2983
2984 // Value
2985 if (el.data('data-type') === 'e2pdf-html'
2986 || el.data('data-type') === 'e2pdf-input'
2987 || el.data('data-type') === 'e2pdf-textarea'
2988 || el.data('data-type') === 'e2pdf-radio'
2989 || el.data('data-type') === 'e2pdf-checkbox'
2990 || el.data('data-type') === 'e2pdf-select'
2991 || el.data('data-type') === 'e2pdf-image'
2992 || el.data('data-type') === 'e2pdf-link'
2993 ) {
2994 obj['value'] = {
2995 'name': e2pdfLang['Value'],
2996 'fields': [
2997 e2pdf.properties.getField('value', el),
2998 ],
2999 'position': 'bottom',
3000 'classes': [
3001 'e2pdf-w100 e2pdf-hide-label',
3002 ]
3003 };
3004 }
3005 }
3006
3007 if (actions) {
3008 // actions
3009 obj['actions'] = {
3010 'name': e2pdfLang['Actions'],
3011 'fields': e2pdf.actions.renderFields(el),
3012 'position': el.data('data-type') === 'e2pdf-page' ? 'top' : 'bottom',
3013 };
3014 }
3015
3016 return obj;
3017 },
3018 //e2pdf.properties.renderFields
3019 renderFields: function (el) {
3020
3021 var actions = true;
3022 var fields = jQuery('<div>', {'class': ' e2pdf-grid'}).append();
3023 var fields_top = jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w100 e2pdf-top'});
3024 var fields_left = jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-pr5 e2pdf-left'});
3025 var fields_right = jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-pl5 e2pdf-right'});
3026 var fields_bottom = jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w100 e2pdf-bottom'});
3027
3028 if (el.data('data-type') == 'e2pdf-page') {
3029 fields_left = '';
3030 fields_right = '';
3031 fields_bottom = '';
3032 }
3033
3034 var groups = e2pdf.properties.getFields(el, actions);
3035 if (groups) {
3036 for (var group_key in groups) {
3037
3038 if (group_key === 'actions') {
3039
3040 var group = groups[group_key];
3041 var block = jQuery('<div>');
3042 if (group.name) {
3043 block.append(jQuery('<label>').html(group.name + ':'));
3044 }
3045 var grid = jQuery('<div>', {'class': 'e2pdf-grid'});
3046 grid.append(group.fields);
3047
3048 block.append(grid);
3049 if (group.position === 'top') {
3050 fields_top.append(block);
3051 } else if (group.position === 'left') {
3052 fields_left.append(block);
3053 } else if (group.position === 'right') {
3054 fields_right.append(block);
3055 } else {
3056 fields_bottom.append(block);
3057 }
3058
3059 } else {
3060
3061 var group = groups[group_key];
3062 var block = jQuery('<div>');
3063 if (group.name) {
3064 block.append(jQuery('<label>').html(group.name + ':'));
3065 }
3066 var grid = jQuery('<div>', {'class': 'e2pdf-grid'});
3067 for (var field_key in group.fields) {
3068
3069 var group_field = group.fields[field_key];
3070 var classes = '';
3071 if (group.classes) {
3072 if (group.classes[field_key]) {
3073 classes = group.classes[field_key];
3074 }
3075 }
3076
3077 var field = '';
3078 var label = '';
3079 var wrap = '';
3080 if (group_field.type === 'text') {
3081 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
3082 field = jQuery('<input>', {'type': 'text', 'name': group_field.key, 'value': group_field.value});
3083 } else if (group_field.type === 'hidden') {
3084 field = jQuery('<input>', {'type': 'hidden', 'name': group_field.key, 'value': group_field.value});
3085 } else if (group_field.type === 'textarea') {
3086 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
3087 field = jQuery('<textarea>', {'name': group_field.key, 'class': 'e2pdf-w100', 'rows': '5'}).val(group_field.value);
3088 } else if (group_field.type === 'checkbox') {
3089 label = jQuery('<div>', {'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pr10 e2pdf-label'}).html(group_field.name + ":");
3090 field = jQuery('<input>', {'type': 'checkbox', 'class': 'e2pdf-ib e2pdf-w50 e2pdf-small e2pdf-pl10', 'name': group_field.key, 'value': group_field.option});
3091 if (group_field.value == group_field.option) {
3092 field.attr('checked', 'checked');
3093 }
3094 } else if (group_field.type === 'color') {
3095 wrap = jQuery('<div>', {'class': 'e2pdf-colorpicker-wr'});
3096 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
3097 field = jQuery('<input>', {'class': 'e2pdf-color-picker e2pdf-color-picker-load', 'type': 'text', 'name': group_field.key, 'value': group_field.value});
3098 } else if (group_field.type === 'select') {
3099 label = jQuery('<div>', {'class': 'e2pdf-small e2pdf-label'}).html(group_field.name + ":");
3100 field = jQuery('<select>', {'class': 'e2pdf-w100', 'name': group_field.key});
3101 for (var option_key in group_field.options) {
3102 field.append(jQuery('<option>', {'value': Object.keys(group_field.options[option_key])[0]}).html(Object.values(group_field.options[option_key])[0]));
3103 }
3104 field.val(group_field.value);
3105 }
3106
3107 for (var att_key in group_field.atts) {
3108 var att = group_field.atts[att_key];
3109
3110 switch (att) {
3111 case 'readonly':
3112 field.attr('readonly', 'readonly');
3113 break;
3114 case 'disabled':
3115 field.attr('disabled', 'disabled');
3116 break;
3117 case 'number':
3118 field.addClass('e2pdf-numbers');
3119 break;
3120 case 'autocomplete':
3121
3122 wrap = jQuery('<div>', {'class': 'e2pdf-rel e2pdf-w100'});
3123 field.addClass('e2pdf-autocomplete-cl');
3124 field.autocomplete({
3125 source: group_field.source,
3126 minLength: 0,
3127 appendTo: wrap,
3128 open: function () {
3129 $(this).autocomplete("widget").addClass("e2pdf-autocomplete");
3130 },
3131 classes: {
3132 "ui-autocomplete": "e2pdf-autocomplete"
3133 },
3134 });
3135 break;
3136
3137 case 'scale':
3138 field.addClass('e2pdf-scale-field');
3139 break;
3140 }
3141 }
3142
3143
3144 if (!wrap) {
3145 wrap = field;
3146 } else {
3147 wrap.prepend(field);
3148 }
3149
3150 grid.append(jQuery('<div>', {'class': 'e2pdf-ib ' + classes}).append(label, wrap));
3151 }
3152
3153 block.append(grid);
3154 if (group.position === 'top') {
3155 fields_top.append(block);
3156 } else if (group.position === 'left') {
3157 fields_left.append(block);
3158 } else if (group.position === 'right') {
3159 fields_right.append(block);
3160 } else {
3161 fields_bottom.append(block);
3162 }
3163 }
3164 }
3165 }
3166
3167 fields.append(fields_top, fields_left, fields_right, fields_bottom);
3168 return fields;
3169 },
3170 //e2pdf.properties.apply
3171 apply: function (el, data) {
3172 el.data('data-properties', JSON.stringify(data));
3173 },
3174 //e2pdf.properties.set
3175 set: function (el, key, value) {
3176 var properties = e2pdf.properties.get(el);
3177 properties[key] = value;
3178 e2pdf.properties.apply(el, properties);
3179 },
3180 //e2pdf.properties.getValue
3181 getValue: function (el, key) {
3182 var properties = e2pdf.properties.get(el);
3183 return properties[key];
3184 },
3185 //e2pdf.properties.get
3186 get: function (el, submit) {
3187
3188 var properties = [];
3189
3190 if (typeof el.data('data-properties') !== 'undefined') {
3191 properties = JSON.parse(el.data('data-properties'));
3192
3193 if (el.data('data-type') !== 'e2pdf-page') {
3194 if (!("width" in properties)) {
3195 properties['width'] = parseFloat(el.css('width'));
3196 }
3197 if (!("height" in properties)) {
3198 properties['height'] = parseFloat(el.css('height'));
3199 }
3200
3201 if (!("top" in properties)) {
3202 properties['top'] = parseFloat(el.css('top'));
3203 }
3204
3205 if (!("left" in properties)) {
3206 properties['left'] = parseFloat(el.css('left'));
3207 }
3208
3209 if (submit) {
3210 delete properties['width'];
3211 delete properties['height'];
3212 delete properties['value'];
3213 delete properties['top'];
3214 delete properties['left'];
3215 }
3216 }
3217 }
3218
3219 return properties;
3220 },
3221 //e2pdf.properties.render
3222 render: function (el) {
3223 var properties = e2pdf.properties.get(el);
3224 var children = e2pdf.element.children(el);
3225 if (properties.hasOwnProperty("options")) {
3226 var property = "options";
3227 if (el.data('data-type') === 'e2pdf-select') {
3228 children.find('option').remove();
3229 var options = properties[property].split("\n");
3230 if (typeof options !== 'undefined' && options.length > 0) {
3231 for (var key in options) {
3232 children.append(
3233 jQuery('<option>', {'value': options[key].trim()}).html(options[key].trim())
3234 );
3235 }
3236 }
3237 }
3238
3239 }
3240
3241 // value render
3242 if (properties.hasOwnProperty("value")) {
3243 var property = "value";
3244 if (el.data('data-type') === 'e2pdf-html') {
3245 children.html(properties[property]);
3246 } else if (el.data('data-type') === 'e2pdf-input') {
3247 children.val(properties[property]);
3248 } else if (el.data('data-type') === 'e2pdf-textarea') {
3249 children.val(properties[property]);
3250 } else if (el.data('data-type') === 'e2pdf-select') {
3251 children.val(properties[property]);
3252 } else if (el.data('data-type') === 'e2pdf-checkbox') {
3253 if (properties[property] == e2pdf.properties.getValue(el, 'option')) {
3254 children.attr('checked', 'checked');
3255 } else {
3256 children.attr('checked', false);
3257 }
3258 } else if (el.data('data-type') === 'e2pdf-image') {
3259 e2pdf.helper.image.load(el);
3260 }
3261 }
3262
3263 if (properties.hasOwnProperty("group")) {
3264 var property = "group";
3265 jQuery('#e2pdf-tpl').find('.e2pdf-radio').each(function () {
3266 var radio = jQuery(this).parent();
3267 var group = e2pdf.properties.getValue(radio, 'group');
3268 if (group === properties[property]) {
3269 e2pdf.properties.set(radio, 'readonly', properties['readonly']);
3270 e2pdf.properties.set(radio, 'required', properties['required']);
3271 e2pdf.properties.set(radio, 'value', properties['value']);
3272 var option = e2pdf.properties.getValue(radio, 'option');
3273 if (properties['value'] === option) {
3274 jQuery(this).attr('checked', 'checked');
3275 } else {
3276 jQuery(this).attr('checked', false);
3277 }
3278 }
3279 });
3280 }
3281
3282 // multiline
3283 if (el.data('data-type') === 'e2pdf-select') {
3284 if (properties.hasOwnProperty("multiline") && properties["multiline"] == '1') {
3285 var property = "multiline";
3286 children.attr('multiple', true);
3287 } else {
3288 children.attr('multiple', false);
3289 }
3290 }
3291
3292 // z_index render
3293 if (properties.hasOwnProperty("z_index")) {
3294 var property = "z_index";
3295 el.css('z-index', properties[property]);
3296 }
3297
3298 // rtl
3299 if (el.data('data-type') === 'e2pdf-select'
3300 || el.data('data-type') === 'e2pdf-input'
3301 || el.data('data-type') === 'e2pdf-textarea'
3302 || el.data('data-type') === 'e2pdf-html') {
3303 if (properties.hasOwnProperty("rtl")) {
3304 children.attr('dir', 'rtl');
3305 } else {
3306 children.attr('dir', false);
3307 }
3308
3309 }
3310
3311 // background render
3312 if (properties.hasOwnProperty("background")) {
3313 var property = "background";
3314 if (el.data('data-type') === 'e2pdf-radio'
3315 || el.data('data-type') === 'e2pdf-checkbox'
3316 ) {
3317 children.css('background', properties[property]);
3318 } else {
3319 el.css('background', properties[property]);
3320 }
3321 }
3322
3323 if (properties.hasOwnProperty("border_top")) {
3324 var property = "border_top";
3325 // border_top render
3326 if (properties[property] !== '0') {
3327 el.css('border-top', properties[property] + 'px solid ' + properties['border_color']);
3328 } else {
3329 el.css('border-top', '');
3330 }
3331 }
3332
3333 if (properties.hasOwnProperty("border_left")) {
3334 var property = "border_left";
3335 // border_left render
3336 if (properties[property] !== '0') {
3337 el.css('border-left', properties[property] + 'px solid ' + properties['border_color']);
3338 } else {
3339 el.css('border-left', '');
3340 }
3341 }
3342
3343
3344 if (properties.hasOwnProperty("border_right")) {
3345 var property = "border_right";
3346 // border_right render
3347 if (properties[property] !== '0') {
3348 el.css('border-right', properties[property] + 'px solid ' + properties['border_color']);
3349 } else {
3350 el.css('border-right', '');
3351 }
3352 }
3353
3354 if (properties.hasOwnProperty("border_bottom")) {
3355 var property = "border_bottom";
3356 // border_bottom render
3357 if (properties[property] !== '0') {
3358 el.css('border-bottom', properties[property] + 'px solid ' + properties['border_color']);
3359 } else {
3360 el.css('border-bottom', '');
3361 }
3362 }
3363
3364 if (properties.hasOwnProperty("padding_top")) {
3365 var property = "padding_top";
3366 el.css('padding-top', properties[property] + 'px');
3367 }
3368
3369 if (properties.hasOwnProperty("padding_left")) {
3370 var property = "padding_left";
3371 el.css('padding-left', properties[property] + 'px');
3372 }
3373
3374 if (properties.hasOwnProperty("padding_right")) {
3375 var property = "padding_right";
3376 el.css('padding-right', properties[property] + 'px');
3377 }
3378
3379 if (properties.hasOwnProperty("padding_bottom")) {
3380 var property = "padding_bottom";
3381 el.css('padding-bottom', properties[property] + 'px');
3382 }
3383
3384 if (properties.hasOwnProperty("border")) {
3385 var property = "border";
3386 if (el.data('data-type') === 'e2pdf-input'
3387 || el.data('data-type') === 'e2pdf-textarea'
3388 || el.data('data-type') === 'e2pdf-select'
3389 || el.data('data-type') === 'e2pdf-radio'
3390 || el.data('data-type') === 'e2pdf-checkbox'
3391 ) {
3392 if (properties[property] !== '0') {
3393 children.css('border', properties[property] + 'px solid ' + properties['border_color']);
3394 } else {
3395 children.css('border', '');
3396 }
3397 }
3398 }
3399
3400 if (properties.hasOwnProperty("text_color")) {
3401 var property = "text_color";
3402 if (el.data('data-type') === 'e2pdf-html') {
3403 el.css('color', properties[property]);
3404 } else if (el.data('data-type') === 'e2pdf-input'
3405 || el.data('data-type') === 'e2pdf-textarea'
3406 || el.data('data-type') === 'e2pdf-select'
3407 || el.data('data-type') === 'e2pdf-radio'
3408 || el.data('data-type') === 'e2pdf-checkbox'
3409 ) {
3410 children.css('color', properties[property]);
3411 }
3412 }
3413
3414 if (properties.hasOwnProperty("text_font")) {
3415 var property = "text_font";
3416 if (properties[property] && properties[property] !== "") {
3417 var path = jQuery('#e2pdf_wysiwyg_font').find("[value='" + properties[property] + "']").attr('path');
3418 var tmp = jQuery('<div>', {'name': properties[property], 'path': path});
3419 e2pdf.font.load(tmp);
3420 el.css('font-family', properties[property]);
3421 } else {
3422 el.css('font-family', '');
3423 }
3424 }
3425
3426 if (properties.hasOwnProperty("text_font_size")) {
3427 var property = "text_font_size";
3428 if (properties[property] !== '') {
3429 el.css('font-size', properties[property] + "px");
3430 } else {
3431 el.css('font-size', '');
3432 }
3433 }
3434
3435 if (properties.hasOwnProperty("text_line_height")) {
3436 var property = "text_line_height";
3437 //backward compatiability with input
3438 if (properties[property] !== '' && properties[property] !== '0') {
3439 el.css('line-height', properties[property] + "px");
3440 } else {
3441 el.css('line-height', '');
3442 }
3443 }
3444
3445 if (properties.hasOwnProperty("top")) {
3446 var property = "top";
3447 var page_height = parseFloat(el.closest('.e2pdf-page').css('height'));
3448 if ((parseFloat(properties[property]) + parseFloat(el.css('height'))) > page_height) {
3449 var top = page_height - parseFloat(el.css('height'));
3450 el.css('top', top + "px");
3451 } else if (properties[property] >= 0) {
3452 el.css('top', properties[property] + "px");
3453 }
3454 }
3455
3456 if (properties.hasOwnProperty("left")) {
3457 var property = "left";
3458 var page_width = parseFloat(el.closest('.e2pdf-page').css('width'));
3459 if ((parseFloat(properties[property]) + parseFloat(el.css('width'))) > page_width) {
3460 var left = page_width - parseFloat(el.css('width'));
3461 el.css('left', left + "px");
3462 } else if (properties[property] >= 0) {
3463 el.css('left', properties[property] + "px");
3464 }
3465 }
3466
3467 if (properties.hasOwnProperty("text_align")) {
3468 var property = "text_align";
3469 children.css('text-align', properties[property]);
3470 }
3471
3472 // width render
3473 if (properties.hasOwnProperty("width")) {
3474 var property = "width";
3475 var width = parseFloat(properties[property]);
3476 var left = parseFloat(el.css('left'));
3477 var page_width = parseFloat(el.closest('.e2pdf-page').css('width'));
3478 if (width > 0) {
3479 if (width > page_width - left) {
3480 el.css('width', page_width - left);
3481 e2pdf.properties.set(el, 'width', page_width - left);
3482 } else {
3483 el.css('width', properties[property]);
3484 }
3485 }
3486 }
3487
3488 // height render
3489 if (properties.hasOwnProperty("height")) {
3490 var property = "height";
3491 // height render
3492 var height = parseFloat(properties[property]);
3493 var top = parseFloat(el.css('top'));
3494 var page_height = parseFloat(el.closest('.e2pdf-page').css('height'));
3495 if (height > 0) {
3496 if (height > page_height - top) {
3497 el.css('height', page_height - top);
3498 e2pdf.properties.set(el, 'width', page_height - top);
3499 } else {
3500 el.css('height', properties[property]);
3501 }
3502 }
3503 }
3504 }
3505 },
3506 //e2pdf.welcomeScreen
3507 welcomeScreen: function () {
3508 if (jQuery('.e2pdf-page').length === 0) {
3509 var el = jQuery('<div/>', {'data-modal': 'welcome-screen'});
3510 e2pdf.dialog.create(el);
3511 }
3512 },
3513 //e2pdf.createPdf
3514 createPdf: function (el) {
3515
3516 var action = el.attr('data-action');
3517 var data = e2pdf.form.serializeObject(el.closest('form'));
3518 for (var key in data) {
3519 e2pdf.pdf.settings.change(key, data[key]);
3520 }
3521
3522 if (action === 'apply') {
3523 var width = parseFloat(el.closest('form').find('input[name="width"]').val());
3524 var height = parseFloat(el.closest('form').find('input[name="height"]').val());
3525 e2pdf.pages.changeTplSize(width, height);
3526 jQuery('.ui-dialog-content').dialog('close');
3527 } else if (action === 'empty') {
3528 var width = parseFloat(el.closest('form').find('input[name="width"]').val());
3529 var height = parseFloat(el.closest('form').find('input[name="height"]').val());
3530 e2pdf.pages.changeTplSize(width, height);
3531 e2pdf.pages.createPage();
3532 jQuery('.ui-dialog-content').dialog('close');
3533 } else if (action === 'auto') {
3534
3535 var extension = el.closest('form').find('#e2pdf-extension').val();
3536 var item = el.closest('form').find('#e2pdf-item').val();
3537 var data = {};
3538 data['extension'] = extension;
3539 data['item'] = item;
3540 e2pdf.request.submitRequest('e2pdf_auto', el, data);
3541 } else if (action === 'upload') {
3542 if (e2pdf.pdf.settings.get('ID')) {
3543 if (!confirm(e2pdfLang['Saved Template will be overwritten! Are you sure want to continue?'])) {
3544 return false;
3545 }
3546 }
3547 jQuery('#e2pdf-upload-pdf').click();
3548 }
3549
3550 e2pdf.font.load(jQuery('#e2pdf-font'));
3551 e2pdf.font.apply(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font'));
3552 e2pdf.font.size(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-size'));
3553 e2pdf.font.line(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-line-height'));
3554 e2pdf.font.fontcolor(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-color'));
3555 e2pdf.event.fire('after.createPdf');
3556 },
3557 //e2pdf.pages
3558 pages: {
3559 //e2pdf.pages.rebuildPages
3560 rebuildPages: function () {
3561 jQuery('.e2pdf-page').each(function (index) {
3562
3563 if (!e2pdf.pdf.settings.get('pdf')) {
3564 if (index + 1 === 1) {
3565 jQuery(this).find('.e2pdf-up-page').attr('disabled', 'disabled');
3566 } else {
3567 jQuery(this).find('.e2pdf-up-page').attr('disabled', false);
3568 }
3569
3570 if (index + 1 === jQuery('.e2pdf-page').length) {
3571 jQuery(this).find('.e2pdf-down-page').attr('disabled', 'disabled');
3572 } else {
3573 jQuery(this).find('.e2pdf-down-page').attr('disabled', false);
3574 }
3575 }
3576
3577 jQuery(this).attr('data-page_id', index + 1);
3578 });
3579 e2pdf.welcomeScreen();
3580 },
3581 //e2pdf.pages.createPage
3582 createPage: function (page, properties, actions) {
3583 e2pdf.pages.rebuildPages();
3584 var newpage = true;
3585 if (page) {
3586 var newpage = false;
3587 }
3588
3589 if (!properties) {
3590 var properties = {};
3591 }
3592
3593 if (!actions) {
3594 var actions = {};
3595 }
3596
3597 if (newpage) {
3598 var page_id = parseInt(jQuery('.e2pdf-page').length) + 1;
3599 var page = jQuery('<div/>', {
3600 'class': 'e2pdf-page ui-droppable',
3601 'width': jQuery('.e2pdf-tpl').attr('data-width'),
3602 'height': jQuery('.e2pdf-tpl').attr('data-height'),
3603 }).attr('data-page_id', page_id).append(
3604 jQuery('<div>', {'class': 'page-options-icons'}).append(
3605 jQuery('<a>', {
3606 'href': 'javascript:void(0);',
3607 'class': 'page-options-icon e2pdf-up-page e2pdf-link'
3608 }).append(
3609 jQuery('<i>', {'class': 'dashicons dashicons-arrow-up-alt2'})
3610 ),
3611 jQuery('<a>', {
3612 'href': 'javascript:void(0);',
3613 'class': 'page-options-icon e2pdf-down-page e2pdf-link'
3614 }).append(
3615 jQuery('<i>', {'class': 'dashicons dashicons-arrow-down-alt2'})
3616 ),
3617 jQuery('<a>', {
3618 'href': 'javascript:void(0);',
3619 'class': 'page-options-icon e2pdf-page-options e2pdf-modal e2pdf-link',
3620 'data-modal': 'page-options'
3621 }).append(
3622 jQuery('<i>', {'class': 'dashicons dashicons-admin-generic'})
3623 ),
3624 jQuery('<a>', {
3625 'href': 'javascript:void(0);',
3626 'class': 'page-options-icon e2pdf-delete-page e2pdf-link'
3627 }).append(
3628 jQuery('<i>', {'class': 'dashicons dashicons-no'})
3629 ),
3630 ),
3631 jQuery('<div>', {'class': 'e2pdf-guide e2pdf-guide-h'}),
3632 jQuery('<div>', {'class': 'e2pdf-guide e2pdf-guide-v'}),
3633 );
3634 }
3635
3636 page.data('data-type', 'e2pdf-page');
3637
3638 e2pdf.properties.apply(page, properties);
3639 e2pdf.actions.apply(page, actions);
3640
3641 page.droppable({
3642 over: function (ev, ui) {
3643 e2pdf.static.drag.page = jQuery(this);
3644 e2pdf.static.guide.guides = [];
3645
3646 if (ui.draggable.hasClass('e2pdf-clone')) {
3647 jQuery(this).find(".e2pdf-element").each(function () {
3648 e2pdf.static.guide.guides = jQuery.merge(e2pdf.static.guide.guides, e2pdf.guide.calc(jQuery(this), null, null, null, true));
3649 });
3650 e2pdf.static.guide.guides = jQuery.merge(e2pdf.static.guide.guides, e2pdf.guide.calc(e2pdf.static.drag.page, null, null, null, true));
3651 } else {
3652 e2pdf.static.guide.guides = jQuery.map(jQuery(this).find(".e2pdf-element").not('.e2pdf-selected'), e2pdf.guide.calc);
3653 e2pdf.static.guide.guides = jQuery.merge(e2pdf.static.guide.guides, e2pdf.guide.calc(e2pdf.static.drag.page, null, null, null, false));
3654 }
3655 },
3656 out: function (ev) {
3657 e2pdf.static.drag.page = null;
3658 e2pdf.static.guide.guides = [];
3659 },
3660 deactivate: function (ev) {
3661 e2pdf.static.drag.page = null;
3662 e2pdf.static.guide.guides = [];
3663 },
3664 drop: function (ev, ui) {
3665 if (ui.draggable.hasClass('e2pdf-clone')) {
3666 var type = jQuery(ui.draggable).attr('data-type');
3667 var page = jQuery(this).closest('.e2pdf-page');
3668 var pos = {
3669 top: Math.max(0, (jQuery(ui.helper).offset().top - jQuery(this).offset().top) / e2pdf.zoom.zoom - 1),
3670 left: Math.max(0, (jQuery(ui.helper).offset().left - jQuery(this).offset().left) / e2pdf.zoom.zoom - 1),
3671 right: Math.min(0, ((parseFloat(jQuery(ui.helper).css('width')) + jQuery(ui.helper).offset().left - 2) - (jQuery(this).offset().left + parseFloat(jQuery(this).css('width')))) / e2pdf.zoom.zoom),
3672 };
3673
3674 if (pos.left < 0 || pos.right > 0 || pos.top < 0) {
3675 return false;
3676 }
3677
3678 var properties = {};
3679 properties['width'] = jQuery(ui.helper).css('width');
3680 properties['height'] = jQuery(ui.helper).css('height');
3681 properties['top'] = pos.top;
3682 properties['left'] = pos.left;
3683 properties['value'] = jQuery(ui.draggable).attr('data-value');
3684 //changed
3685 var el = e2pdf.element.create(type, page, properties, false, true);
3686 jQuery(this).append(el);
3687 e2pdf.properties.render(el);
3688 }
3689 e2pdf.static.drag.page = null;
3690 }
3691 });
3692 page.contextmenu(function (e) {
3693 if (jQuery(e.target).hasClass('e2pdf-page')) {
3694 e2pdf.contextMenu(e, page);
3695 e.preventDefault();
3696 }
3697 });
3698 page.selectable(
3699 {
3700 filter: '.e2pdf-element',
3701 cancel: 'a,.e2pdf-element',
3702 distance: 10,
3703 selecting: function (event, ui) {
3704 jQuery(ui.selecting).addClass('e2pdf-selected');
3705 },
3706 unselecting: function (event, ui) {
3707 jQuery(ui.unselecting).removeClass('e2pdf-selected');
3708 },
3709 selected: function (event, ui) {
3710 e2pdf.element.select(jQuery(ui.selected));
3711 },
3712 unselected: function (event, ui) {
3713 e2pdf.element.unselect(jQuery(ui.unselected));
3714 }
3715 });
3716 if (newpage) {
3717 jQuery('.e2pdf-tpl .e2pdf-tpl-inner').append(page);
3718 e2pdf.pages.rebuildPages();
3719 e2pdf.event.fire('after.pages.createPage.newpage');
3720 return true;
3721 } else {
3722 return false;
3723 }
3724 },
3725 //e2pdf.pages.movePage
3726 movePage: function (el, direction) {
3727
3728 if (e2pdf.pdf.settings.get('pdf')) {
3729 return false;
3730 }
3731 if (direction === 'up') {
3732 el.closest('.e2pdf-page').insertBefore(el.closest('.e2pdf-page').prev('.e2pdf-page'));
3733 } else if (direction === 'down') {
3734 el.closest('.e2pdf-page').insertAfter(el.closest('.e2pdf-page').next('.e2pdf-page'));
3735 }
3736
3737 e2pdf.event.fire('after.pages.movePage');
3738 e2pdf.pages.rebuildPages();
3739 },
3740 //e2pdf.pages.deletePage
3741 deletePage: function (el) {
3742 el.closest('.e2pdf-page').remove();
3743 e2pdf.event.fire('after.pages.deletePage');
3744 e2pdf.pages.rebuildPages();
3745 },
3746 //e2pdf.pages.changeTplSize
3747 changeTplSize: function (width, height) {
3748 jQuery('.e2pdf-tpl').attr('data-width', width).attr('data-height', height);
3749 },
3750 changePageSize: function (el, width, height) {
3751
3752 var set_width = true;
3753 var set_height = true;
3754 var prev_width = parseFloat(el.css('width'));
3755 var prev_height = parseFloat(el.css('height'));
3756 var width_diff = width / prev_width;
3757 var height_diff = height / prev_height;
3758 el.find(".e2pdf-element").each(function () {
3759 jQuery(this).css('left', parseFloat(jQuery(this).css('left')) * width_diff);
3760 jQuery(this).css('top', parseFloat(jQuery(this).css('top')) * height_diff);
3761 if (jQuery(this).data('data-type') === 'e2pdf-image') {
3762 var scale = e2pdf.properties.getValue(jQuery(this), 'scale');
3763 if (scale === e2pdf.static.const.WIDTH) {
3764 jQuery(this).css('height', parseFloat(jQuery(this).css('height')) * width_diff);
3765 set_height = false;
3766 } else if (scale === e2pdf.static.const.HEIGHT) {
3767 jQuery(this).css('width', parseFloat(jQuery(this).css('height')) * height_diff);
3768 set_width = false;
3769 }
3770 }
3771
3772 if (set_width) {
3773 jQuery(this).css('width', parseFloat(jQuery(this).css('width')) * width_diff);
3774 }
3775
3776 if (set_height) {
3777 jQuery(this).css('height', parseFloat(jQuery(this).css('height')) * height_diff);
3778 }
3779
3780 });
3781 el.css('width', width);
3782 el.css('height', height);
3783 }
3784 },
3785 //e2pdf.contextMenu
3786 contextMenu: function (e, el) {
3787 e2pdf.delete('.e2pdf-context');
3788 var menu = jQuery('<div/>', {'class': 'e2pdf-context'});
3789 if (el.hasClass('e2pdf-page')) {
3790 var parent = el;
3791 menu.append(jQuery('<ul/>', {'class': 'e2pdf-context-menu'}).append(
3792 jQuery('<li/>').append(
3793 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-paste e2pdf-link', 'disabled': 'disabled'}).html(e2pdfLang['Paste'])
3794 ),
3795 jQuery('<li/>').append(
3796 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-pasteinplace e2pdf-link', 'disabled': 'disabled'}).html(e2pdfLang['Paste in Place'])
3797 )
3798 ));
3799 if (e2pdf.element.buffered.length > 0) {
3800 menu.find('a').attr('disabled', false);
3801 }
3802 } else {
3803 e2pdf.element.unselect();
3804 var parent = el.closest('.e2pdf-page');
3805 e2pdf.element.select(el);
3806 menu.append(jQuery('<ul/>', {'class': 'e2pdf-context-menu'}).append(
3807 jQuery('<li/>').append(
3808 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': el.hasClass('e2pdf-hide') ? 'e2pdf-unhidden' : 'e2pdf-hidden'}).html(el.hasClass('e2pdf-hide') ? e2pdfLang['Show'] : e2pdfLang['Hide'])
3809 ),
3810 jQuery('<li/>').append(
3811 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-copy'}).html(e2pdfLang['Copy'])
3812 ),
3813 jQuery('<li/>').append(
3814 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-cut'}).html(e2pdfLang['Cut'])
3815 ),
3816 jQuery('<li/>').append(
3817 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-delete', }).html(e2pdfLang['Delete'])
3818 ),
3819 ));
3820 if (e2pdf.element.selected.length == 1) {
3821
3822 menu.find('ul').append(
3823 jQuery('<li/>').append(
3824 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-properties e2pdf-modal', 'data-modal': 'properties'}).html(e2pdfLang['Properties'])
3825 ));
3826 if (el.data('data-type') === 'e2pdf-image') {
3827 menu.find('ul').prepend(
3828 jQuery('<li/>').append(
3829 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-upload'}).html(e2pdfLang['Choose Image'])
3830 ));
3831 }
3832
3833 if (el.data('data-type') !== 'e2pdf-rectangle') {
3834 menu.find('ul').prepend(jQuery('<li/>').append(
3835 jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-visual'}).html(e2pdfLang['Map Field'])
3836 ));
3837 }
3838
3839 }
3840 }
3841
3842 var pos_x = (e.pageX - parent.offset().left) / e2pdf.zoom.zoom;
3843 var pos_y = (e.pageY - parent.offset().top) / e2pdf.zoom.zoom;
3844 menu.css({top: pos_y + "px", left: pos_x + "px"});
3845 menu.appendTo(parent);
3846 },
3847 //e2pdf.delete
3848 delete: function (el) {
3849 jQuery(el).remove();
3850 },
3851 //e2pdf.element
3852 element: {
3853 //e2pdf.element.buffered
3854 buffered: [],
3855 //e2pdf.element.selected
3856 selected: [],
3857 //e2pdf.element.init
3858 init: function (el) {
3859
3860 if (el.data('data-type') === 'e2pdf-html') {
3861 e2pdf.properties.set(el, 'value', el.find('.e2pdf-html').html());
3862 } else if (el.data('data-type') === 'e2pdf-input') {
3863 e2pdf.properties.set(el, 'value', el.find('.e2pdf-input').val());
3864 } else if (el.data('data-type') === 'e2pdf-textarea') {
3865 e2pdf.properties.set(el, 'value', el.find('.e2pdf-textarea').val());
3866 }
3867
3868 },
3869 //e2pdf.element.create
3870 create: function (type, page, properties, actions, default_properties, onload, element_id) {
3871
3872 var aspect = false;
3873 var min_height = 10;
3874 if (!properties) {
3875 var properties = {};
3876 }
3877
3878 if (!actions) {
3879 var actions = {};
3880 }
3881
3882 if (!properties['value']) {
3883 properties['value'] = '';
3884 }
3885
3886 // Switch element types
3887 if (type === 'e2pdf-html') {
3888
3889 if (!properties['height']) {
3890 properties['height'] = 'auto';
3891 }
3892
3893 if (!properties['width']) {
3894 properties['width'] = '200px';
3895 }
3896
3897 var element =
3898 jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
3899 jQuery('<div/>', {'contenteditable': true, 'class': 'content e2pdf-html'}).html(properties['value']),
3900 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3901 );
3902 } else if (type === 'e2pdf-input') {
3903
3904 if (!properties['width']) {
3905 properties['width'] = '200px';
3906 }
3907
3908 if (!properties['height']) {
3909 properties['height'] = '22px';
3910 }
3911
3912 var element =
3913 jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
3914 jQuery('<input/>', {'type': 'text', 'class': 'e2pdf-input'}).val(properties['value']),
3915 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3916 );
3917 } else if (type === 'e2pdf-textarea') {
3918
3919 if (!properties['width']) {
3920 properties['width'] = '200px';
3921 }
3922
3923 if (!properties['height']) {
3924 properties['height'] = '100px';
3925 }
3926
3927 var element = jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
3928 jQuery('<textarea/>', {'type': 'text', 'class': 'e2pdf-textarea'}).html(properties['value']),
3929 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3930 );
3931 } else if (type === 'e2pdf-checkbox') {
3932
3933 if (!properties['width']) {
3934 properties['width'] = '16px';
3935 }
3936
3937 if (!properties['height']) {
3938 properties['height'] = '16px';
3939 }
3940
3941 var element = jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
3942 jQuery('<input/>', {'type': 'checkbox', 'class': 'e2pdf-checkbox'}),
3943 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3944 );
3945 } else if (type === 'e2pdf-radio') {
3946
3947 if (!properties['width']) {
3948 properties['width'] = '16px';
3949 }
3950
3951 if (!properties['height']) {
3952 properties['height'] = '16px';
3953 }
3954
3955 var element = jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
3956 jQuery('<input/>', {'type': 'radio', 'class': 'e2pdf-radio'}),
3957 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3958 );
3959 var aspect = false;
3960 } else if (type === 'e2pdf-select') {
3961
3962 if (!properties['width']) {
3963 properties['width'] = '200px';
3964 }
3965
3966 if (!properties['height']) {
3967 properties['height'] = '22px';
3968 }
3969
3970 var element = jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
3971 jQuery('<select/>', {'class': 'e2pdf-select'}).append(
3972 ),
3973 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3974 );
3975 } else if (type === 'e2pdf-image') {
3976
3977 var element = jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-loader e2pdf-resizable', 'width': '100px', height: '100px'}).append(
3978 jQuery('<img/>', {'class': 'e2pdf-image'}),
3979 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3980 );
3981 } else if (type === 'e2pdf-rectangle') {
3982
3983 if (!properties['width']) {
3984 properties['width'] = '200px';
3985 }
3986
3987 if (!properties['height']) {
3988 properties['height'] = '5px';
3989 }
3990
3991 var min_height = 1;
3992 var element =
3993 jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
3994 jQuery('<div/>', {'class': 'content e2pdf-rectangle'}),
3995 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
3996 );
3997 } else if (type === 'e2pdf-link') {
3998
3999 if (!properties['width']) {
4000 properties['width'] = '200px';
4001 }
4002
4003 if (!properties['height']) {
4004 properties['height'] = '22px';
4005 }
4006
4007 var min_height = 1;
4008 var element =
4009 jQuery('<div/>', {'class': 'e2pdf-el-wrapper e2pdf-resizable'}).append(
4010 jQuery('<div/>', {'class': 'content e2pdf-link'}),
4011 jQuery('<i/>', {'class': 'e2pdf-drag dashicons dashicons-move'})
4012 );
4013 }
4014
4015 // If element exists
4016 if (typeof element !== "undefined") {
4017 element.contextmenu(function (e) {
4018 e2pdf.contextMenu(e, element);
4019 e.preventDefault();
4020 });
4021 if (!element_id) {
4022 var last_id = 0;
4023 jQuery('#e2pdf-tpl .e2pdf-element').each(function () {
4024 var num_id = parseInt(jQuery(this).attr("data-element_id"));
4025 if (num_id > last_id) {
4026 last_id = num_id;
4027 }
4028 });
4029 element_id = parseInt(last_id + 1);
4030 }
4031 element.addClass('e2pdf-element');
4032 element.attr('data-element_id', element_id);
4033 if (type === 'e2pdf-select') {
4034 if (!properties['options']) {
4035 if (default_properties) {
4036 properties['options'] = '';
4037 }
4038 }
4039 }
4040
4041 if (!properties['z_index']) {
4042 properties['z_index'] = 0;
4043 }
4044
4045 if (type === 'e2pdf-input'
4046 || type === 'e2pdf-textarea'
4047 || type === 'e2pdf-select'
4048 || type === 'e2pdf-radio'
4049 || type === 'e2pdf-checkbox'
4050 ) {
4051 if (!properties['border']) {
4052 if (default_properties) {
4053 properties['border'] = 1;
4054 }
4055 }
4056 }
4057
4058 if (type === 'e2pdf-image') {
4059 if (!properties['scale']) {
4060 properties['scale'] = e2pdf.static.const.WIDTH_HEIGHT;
4061 }
4062 if (!properties['horizontal']) {
4063 properties['horizontal'] = 'left';
4064 }
4065 if (!properties['vertical']) {
4066 properties['vertical'] = 'bottom';
4067 }
4068 }
4069
4070 if (type === 'e2pdf-html'
4071 || type === 'e2pdf-image'
4072 ) {
4073
4074 if (!properties['border_top']) {
4075 properties['border_top'] = 0;
4076 }
4077
4078 if (!properties['border_left']) {
4079 properties['border_left'] = 0;
4080 }
4081
4082 if (!properties['border_right']) {
4083 properties['border_right'] = 0;
4084 }
4085
4086 if (!properties['border_bottom']) {
4087 properties['border_bottom'] = 0;
4088 }
4089
4090
4091 if (!properties['padding_top']) {
4092 properties['padding_top'] = 0;
4093 }
4094
4095 if (!properties['padding_left']) {
4096 properties['padding_left'] = 0;
4097 }
4098
4099 if (!properties['padding_right']) {
4100 properties['padding_right'] = 0;
4101 }
4102
4103 if (!properties['padding_bottom']) {
4104 properties['padding_bottom'] = 0;
4105 }
4106 }
4107
4108 if (type !== 'e2pdf-rectangle') {
4109 if (!properties['border_color']) {
4110 properties['border_color'] = '';
4111 if (default_properties && (type === 'e2pdf-input'
4112 || type === 'e2pdf-textarea'
4113 || type === 'e2pdf-select'
4114 || type === 'e2pdf-radio'
4115 || type === 'e2pdf-checkbox'
4116 )
4117 ) {
4118 properties['border_color'] = '#000000';
4119 }
4120 }
4121 }
4122
4123 if (type !== 'e2pdf-image') {
4124
4125 if (!properties['text_color']) {
4126 properties['text_color'] = '';
4127 }
4128
4129 if (!properties['text_font']) {
4130 properties['text_font'] = '';
4131 }
4132
4133 if (!properties['text_font_size']) {
4134 properties['text_font_size'] = '';
4135 }
4136
4137 if (!properties['text_line_height']) {
4138 properties['text_line_height'] = '';
4139 }
4140 }
4141
4142 if (type === 'e2pdf-radio' || type === 'e2pdf-checkbox') {
4143 if (!properties['option']) {
4144 if (default_properties) {
4145 properties['option'] = "option" + element_id;
4146 }
4147 }
4148
4149 if (!properties['text_type']) {
4150 if (default_properties) {
4151 if (type === 'e2pdf-radio') {
4152 properties['text_type'] = 'circle';
4153 } else if (type === 'e2pdf-checkbox') {
4154 properties['text_type'] = 'check';
4155 }
4156 }
4157 }
4158 }
4159
4160 if (type === 'e2pdf-input' || type === 'e2pdf-textarea' || type === 'e2pdf-html') {
4161 if (!properties['text_align']) {
4162 if (default_properties) {
4163 properties['text_align'] = 'left';
4164 }
4165 }
4166 }
4167
4168 if (type === 'e2pdf-radio') {
4169 if (!properties['group']) {
4170 if (default_properties) {
4171 properties['group'] = "group";
4172 }
4173 }
4174 }
4175
4176 element.data('data-type', type);
4177 if (properties['width']) {
4178 element.css({"width": properties['width']});
4179 }
4180
4181 if (properties['height']) {
4182 element.css({"height": properties['height']});
4183 }
4184
4185 if (type === 'e2pdf-rectangle') {
4186 if (!properties['background']) {
4187 if (default_properties) {
4188 properties['background'] = '#000000';
4189 }
4190 }
4191 }
4192
4193 if (properties['top'] && properties['left']) {
4194 element.css({"top": properties['top'], "left": properties['left']});
4195 }
4196
4197 element.css({"position": "absolute"});
4198 e2pdf.properties.apply(element, properties);
4199 e2pdf.actions.apply(element, actions);
4200 // If element draggable
4201 element.draggable({
4202 cancel: '.no-drag',
4203 handle: ".e2pdf-drag",
4204 containment: jQuery(page),
4205 stop: function (ev, ui) {
4206
4207 var page = jQuery(this).closest('.e2pdf-page');
4208 for (var key in e2pdf.element.selected) {
4209 var selected = e2pdf.element.selected[key];
4210 if (selected.hasClass('e2pdf-width-auto')) {
4211 selected.css({'width': 'auto'});
4212 }
4213 if (selected.hasClass('e2pdf-height-auto')) {
4214 selected.css({'height': 'auto'});
4215 }
4216
4217 e2pdf.properties.set(selected, 'top', Math.max(0, e2pdf.helper.convertPxToFloat(selected.css('top'))));
4218 e2pdf.properties.set(selected, 'left', Math.max(0, e2pdf.helper.convertPxToFloat(selected.css('left'))));
4219 }
4220
4221 jQuery('.page-options-icons').css('z-index', '');
4222 e2pdf.event.fire('after.element.moved');
4223 e2pdf.element.unselect();
4224 jQuery(".e2pdf-guide-v, .e2pdf-guide-h").hide();
4225 },
4226 drag: function (ev, ui) {
4227
4228 var left = (ev.clientX - e2pdf.zoom.click.x + ui.originalPosition.left) / e2pdf.zoom.zoom;
4229 var top = (ev.clientY - e2pdf.zoom.click.y + ui.originalPosition.top) / e2pdf.zoom.zoom;
4230
4231 left = Math.min(left, e2pdf.static.drag.max_left);
4232 top = Math.min(top, e2pdf.static.drag.max_top);
4233
4234 ui.position = {
4235 left: Math.max(e2pdf.static.drag.min_left, left),
4236 top: Math.max(e2pdf.static.drag.min_top, top)
4237 };
4238
4239 var diff_top = ui.position.top - parseFloat(e2pdf.properties.getValue(jQuery(this), 'top'));
4240 var diff_left = ui.position.left - parseFloat(e2pdf.properties.getValue(jQuery(this), 'left'));
4241 for (var key in e2pdf.element.selected) {
4242 var selected = e2pdf.element.selected[key];
4243 if (!selected.is(jQuery(this))) {
4244 selected.finish().animate({
4245 left: parseFloat(e2pdf.properties.getValue(selected, 'left')) + diff_left,
4246 top: parseFloat(e2pdf.properties.getValue(selected, 'top')) + diff_top,
4247 }, 0);
4248 }
4249 }
4250
4251 var guides = {top: {dist: e2pdf.static.guide.distance + 1}, left: {dist: e2pdf.static.guide.distance + 1}};
4252 var w = parseFloat(jQuery(this).css('width'));
4253 var h = parseFloat(jQuery(this).css('height'));
4254 var el_guides = e2pdf.guide.calc(null, ui.position, w, h);
4255
4256 jQuery.each(e2pdf.static.guide.guides, function (i, guide) {
4257 jQuery.each(el_guides, function (i, elemGuide) {
4258 if (guide.type == elemGuide.type) {
4259 var prop = guide.type == "h" ? "top" : "left";
4260 var d = Math.abs(elemGuide[prop] - guide[prop]);
4261 if (d < guides[prop].dist) {
4262 guides[prop].dist = d;
4263 guides[prop].offset = elemGuide[prop] - ui.position[prop];
4264 guides[prop].guide = guide;
4265 }
4266 }
4267 });
4268 });
4269
4270 if (guides.top.dist <= e2pdf.static.guide.distance) {
4271
4272 jQuery(this).closest('.e2pdf-page').find(".e2pdf-guide-h").css("top", guides.top.guide.top).show();
4273
4274 var snap_top = guides.top.guide.top - guides.top.offset;
4275
4276 if (e2pdf.static.drag.max_top >= snap_top && snap_top >= e2pdf.static.drag.min_top) {
4277 ui.position.top = snap_top;
4278
4279 var guide_diff_top = ui.position.top - parseFloat(e2pdf.properties.getValue(jQuery(this), 'top'));
4280
4281 for (var key in e2pdf.element.selected) {
4282 var selected = e2pdf.element.selected[key];
4283 if (!selected.is(jQuery(this))) {
4284 selected.finish().animate({
4285 top: parseFloat(e2pdf.properties.getValue(selected, 'top')) + guide_diff_top,
4286 }, 0);
4287 }
4288 }
4289 }
4290 } else {
4291 jQuery(".e2pdf-guide-h").hide();
4292 }
4293
4294 if (guides.left.dist <= e2pdf.static.guide.distance) {
4295 jQuery(this).closest('.e2pdf-page').find(".e2pdf-guide-v").css("left", guides.left.guide.left).show();
4296
4297 var snap_left = guides.left.guide.left - guides.left.offset;
4298
4299 if (e2pdf.static.drag.max_left >= snap_left && snap_left >= e2pdf.static.drag.min_left) {
4300 ui.position.left = snap_left;
4301
4302 var guide_diff_left = ui.position.left - parseFloat(e2pdf.properties.getValue(jQuery(this), 'left'));
4303
4304 for (var key in e2pdf.element.selected) {
4305 var selected = e2pdf.element.selected[key];
4306 if (!selected.is(jQuery(this))) {
4307 selected.finish().animate({
4308 left: parseFloat(e2pdf.properties.getValue(selected, 'left')) + guide_diff_left,
4309 }, 0);
4310 }
4311 }
4312 }
4313 } else {
4314 jQuery(".e2pdf-guide-v").hide();
4315 }
4316
4317 },
4318 start: function (ev, ui) {
4319
4320 e2pdf.element.select(jQuery(this));
4321
4322 e2pdf.static.drag.min_left = 0;
4323 e2pdf.static.drag.max_left = jQuery(this).closest('.e2pdf-page').width();
4324 e2pdf.static.drag.min_top = 0;
4325 e2pdf.static.drag.max_top = jQuery(this).closest('.e2pdf-page').height();
4326
4327 for (var key in e2pdf.element.selected) {
4328 var selected = e2pdf.element.selected[key];
4329
4330 if (selected.hasClass('e2pdf-width-auto')) {
4331 selected.css({"width": "auto"});
4332 }
4333
4334 if (selected.hasClass('e2pdf-height-auto')) {
4335 selected.css({"height": "auto"});
4336 }
4337
4338 var padding_top = e2pdf.helper.convertPxToFloat(selected.css('padding-top'));
4339 var padding_left = e2pdf.helper.convertPxToFloat(selected.css('padding-left'));
4340 var padding_right = e2pdf.helper.convertPxToFloat(selected.css('padding-right'));
4341 var padding_bottom = e2pdf.helper.convertPxToFloat(selected.css('padding-bottom'));
4342 var border_top = e2pdf.helper.convertPxToFloat(selected.css('border-top-width'));
4343 var border_left = e2pdf.helper.convertPxToFloat(selected.css('border-left-width'));
4344 var border_right = e2pdf.helper.convertPxToFloat(selected.css('border-right-width'));
4345 var border_bottom = e2pdf.helper.convertPxToFloat(selected.css('border-bottom-width'));
4346 e2pdf.static.drag.min_left = Math.max(parseFloat(e2pdf.properties.getValue(jQuery(this), 'left')) - e2pdf.properties.getValue(selected, 'left'), e2pdf.static.drag.min_left);
4347 e2pdf.static.drag.min_top = Math.max(parseFloat(e2pdf.properties.getValue(jQuery(this), 'top')) - e2pdf.properties.getValue(selected, 'top'), e2pdf.static.drag.min_top);
4348 e2pdf.static.drag.max_left = Math.min(selected.closest('.e2pdf-page').width() - selected.width() - padding_left - padding_right - border_left - border_right + (parseFloat(e2pdf.properties.getValue(jQuery(this), 'left')) - parseFloat(e2pdf.properties.getValue(selected, 'left'))), e2pdf.static.drag.max_left);
4349 e2pdf.static.drag.max_top = Math.min(selected.closest('.e2pdf-page').height() - selected.height() - padding_top - padding_bottom - border_top - border_bottom + (parseFloat(e2pdf.properties.getValue(jQuery(this), 'top')) - parseFloat(e2pdf.properties.getValue(selected, 'top'))), e2pdf.static.drag.max_top);
4350 }
4351
4352 e2pdf.zoom.click.x = ev.clientX;
4353 e2pdf.zoom.click.y = ev.clientY;
4354 jQuery('.page-options-icons').css('z-index', -1);
4355 }
4356 });
4357 // If element resizable
4358 if (element.hasClass('e2pdf-resizable')) {
4359 element.resizable({
4360 aspectRatio: aspect,
4361 minHeight: min_height,
4362 start: function (ev, ui) {
4363 var left = parseFloat(jQuery(this).css('left'));
4364 var top = parseFloat(jQuery(this).css('top'));
4365 var page_width = parseFloat(jQuery(this).closest('.e2pdf-page').css('width'));
4366 var page_height = parseFloat(jQuery(this).closest('.e2pdf-page').css('height'));
4367 jQuery(this).resizable("option", "maxWidth", page_width - left);
4368 jQuery(this).resizable("option", "maxHeight", page_height - top);
4369
4370 var padding_top = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-top'));
4371 var padding_left = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-left'));
4372 var padding_right = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-right'));
4373 var padding_bottom = e2pdf.helper.convertPxToFloat(jQuery(this).css('padding-bottom'));
4374 var border_top = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-top-width'));
4375 var border_left = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-left-width'));
4376 var border_right = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-right-width'));
4377 var border_bottom = e2pdf.helper.convertPxToFloat(jQuery(this).css('border-bottom-width'));
4378
4379 ui.originalSize.width = ui.originalSize.width + padding_left + padding_right + border_left + border_right;
4380 ui.originalSize.height = ui.originalSize.height + padding_top + padding_bottom + border_top + border_bottom;
4381
4382 e2pdf.zoom.click.x = ev.clientX;
4383 e2pdf.zoom.click.y = ev.clientY;
4384 },
4385 resize: function (ev, ui) {
4386 },
4387 stop: function (event, ui) {
4388 e2pdf.properties.set(jQuery(this), 'width', ui.size.width);
4389 e2pdf.properties.set(jQuery(this), 'height', ui.size.height);
4390 }
4391 });
4392 } else if (element.hasClass('e2pdf-resizable-horizontal')) {
4393 element.resizable({
4394 handles: 'e, w, se',
4395 resize: function (e, ui) {
4396 jQuery(this).css('height', 'auto');
4397 },
4398 start: function (e, ui) {
4399 var left = parseFloat(jQuery(this).css('left'));
4400 var page_width = parseFloat(jQuery(this).closest('.e2pdf-page').css('width'));
4401 jQuery(this).resizable("option", "maxWidth", page_width - left);
4402 },
4403 stop: function (event, ui) {
4404 e2pdf.properties.set(jQuery(this), 'width', ui.size.width);
4405 e2pdf.properties.set(jQuery(this), 'height', ui.size.height);
4406 }
4407 }
4408 );
4409 }
4410 if (!onload) {
4411 e2pdf.event.fire('after.element.create');
4412 }
4413 return element;
4414 } else {
4415 return false;
4416 }
4417 },
4418 //e2pdf.element.children
4419 children: function (el) {
4420
4421 var children = false;
4422
4423 if (el.data('data-type') === 'e2pdf-html') {
4424 children = el.find('.e2pdf-html');
4425 } else if (el.data('data-type') === 'e2pdf-input') {
4426 children = el.find('.e2pdf-input');
4427 } else if (el.data('data-type') === 'e2pdf-textarea') {
4428 children = el.find('.e2pdf-textarea');
4429 } else if (el.data('data-type') === 'e2pdf-select') {
4430 children = el.find('.e2pdf-select');
4431 } else if (el.data('data-type') === 'e2pdf-radio') {
4432 children = el.find('.e2pdf-radio');
4433 } else if (el.data('data-type') === 'e2pdf-checkbox') {
4434 children = el.find('.e2pdf-checkbox');
4435 } else if (el.data('data-type') === 'e2pdf-image') {
4436 children = el.find('.e2pdf-image');
4437 }
4438 return children;
4439 },
4440 //e2pdf.element.copy
4441 copy: function (el) {
4442 e2pdf.element.init(el);
4443 e2pdf.element.buffer(el.clone(true));
4444 },
4445 //e2pdf.element.cut
4446 cut: function (el) {
4447 e2pdf.element.init(el);
4448 e2pdf.element.buffer(el.clone(true));
4449 e2pdf.element.delete(el);
4450 },
4451 //e2pdf.element.select
4452 select: function (el) {
4453 var selected = false;
4454 for (var key in e2pdf.element.selected) {
4455 if (e2pdf.element.selected[key].is(el)) {
4456 selected = true;
4457 }
4458 }
4459 if (!selected) {
4460 el.addClass('e2pdf-selected');
4461 e2pdf.element.selected.push(el);
4462 }
4463 },
4464 //e2pdf.element.unselect
4465 unselect: function (el) {
4466 if (!el) {
4467 jQuery('.e2pdf-selected').removeClass('e2pdf-selected');
4468 e2pdf.element.selected = [];
4469 } else {
4470 for (var key in e2pdf.element.selected) {
4471 if (e2pdf.element.selected[key].is(el)) {
4472 el.removeClass('e2pdf-selected');
4473 delete e2pdf.element.selected[key];
4474 }
4475 }
4476 }
4477 },
4478 //e2pdf.element.buffer
4479 buffer: function (el) {
4480 var buffered = false;
4481 for (var key in e2pdf.element.buffered) {
4482 if (e2pdf.element.buffered[key].is(el)) {
4483 buffered = true;
4484 }
4485 }
4486 if (!buffered) {
4487 e2pdf.element.buffered.push(el);
4488 }
4489 },
4490 //e2pdf.element.unbuffer
4491 unbuffer: function (el) {
4492 if (!el) {
4493 e2pdf.element.buffered = [];
4494 } else {
4495 for (var key in e2pdf.element.buffered) {
4496 if (e2pdf.element.buffered[key].is(el)) {
4497 delete e2pdf.element.buffered[key];
4498 }
4499 }
4500 }
4501 },
4502 //e2pdf.element.hide
4503 hide: function (el) {
4504 el.addClass('e2pdf-hide');
4505 },
4506 //e2pdf.element.show
4507 show: function (el) {
4508 el.removeClass('e2pdf-hide');
4509 },
4510 //e2pdf.element.paste
4511 paste: function (keep_position) {
4512
4513 var min_top = 99999999;
4514 var min_left = 9999999;
4515 var left_correction = 0;
4516 var top_correction = 0;
4517 if (!keep_position) {
4518 for (var key in e2pdf.element.buffered) {
4519 var buffered = e2pdf.element.buffered[key];
4520 min_top = Math.min(e2pdf.properties.getValue(buffered, 'top'), min_top);
4521 min_left = Math.min(e2pdf.properties.getValue(buffered, 'left'), min_left);
4522 }
4523
4524 for (var key in e2pdf.element.buffered) {
4525 var buffered = e2pdf.element.buffered[key];
4526 var context = jQuery('.e2pdf-context');
4527 var properties = e2pdf.properties.get(buffered);
4528 var width = parseFloat(properties['width']);
4529 var height = parseFloat(properties['height']);
4530 var page = context.closest('.e2pdf-page');
4531 var top = parseFloat(e2pdf.helper.convertPxToFloat(context.css('top')) + (parseFloat(properties['top'] - min_top)));
4532 var left = parseFloat(e2pdf.helper.convertPxToFloat(context.css('left')) + (parseFloat(properties['left']) - min_left));
4533 if ((left + width) > parseFloat(page.css('width'))) {
4534 var correction = left - (parseFloat(page.css('width')) - width);
4535 left_correction = Math.max(correction, left_correction);
4536 }
4537
4538 if ((top + height) > parseFloat(page.css('height'))) {
4539 var correction = top - (parseFloat(page.css('height')) - height);
4540 top_correction = Math.max(correction, top_correction);
4541 }
4542 }
4543 }
4544
4545 for (var key in e2pdf.element.buffered) {
4546 var buffered = e2pdf.element.buffered[key];
4547 var context = jQuery('.e2pdf-context');
4548 var properties = e2pdf.properties.get(buffered);
4549 var actions = e2pdf.actions.get(buffered);
4550 var width = parseFloat(properties['width']);
4551 var height = parseFloat(properties['height']);
4552 var page = context.closest('.e2pdf-page');
4553 var type = buffered.data('data-type');
4554 if (!keep_position) {
4555
4556 var top = parseFloat(e2pdf.helper.convertPxToFloat(context.css('top')) + (parseFloat(properties['top'] - min_top)) - top_correction);
4557 var left = parseFloat(e2pdf.helper.convertPxToFloat(context.css('left')) + (parseFloat(properties['left']) - min_left) - left_correction);
4558 properties['top'] = top;
4559 properties['left'] = left;
4560 }
4561 //changed
4562 var el = e2pdf.element.create(type, page, properties, actions);
4563 page.append(el);
4564 e2pdf.properties.render(el);
4565 }
4566
4567 e2pdf.event.fire('after.element.paste');
4568 },
4569 //e2pdf.element.delete
4570 delete: function (el) {
4571 el.remove();
4572 e2pdf.event.fire('after.element.delete');
4573 }
4574 },
4575 //e2pdf.wysiwyg
4576 wysiwyg: {
4577 //e2pdf.wysiwyg.apply
4578 apply: function (el) {
4579 var command = el.attr('data-command');
4580 if (command === 'H1') {
4581 var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
4582 if (node.is("h1") && document.getSelection().toString() === node.text()) {
4583 e2pdf.wysiwyg.clear('h1');
4584 } else {
4585 var html = jQuery('<h1/>').html(e2pdf.wysiwyg.helper.getSelectionHtml()).prop('outerHTML');
4586 document.execCommand('insertHTML', false, html);
4587 }
4588 } else if (command === 'H2') {
4589 var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
4590 if (node.is("h2") && document.getSelection().toString() === node.text()) {
4591 e2pdf.wysiwyg.clear('h2');
4592 } else {
4593 var html = jQuery('<h2/>').html(e2pdf.wysiwyg.helper.getSelectionHtml()).prop('outerHTML');
4594 document.execCommand('insertHTML', false, html);
4595 }
4596 } else if (command === 'createlink') {
4597 url = prompt(e2pdfLang['Enter link here'] + ': ', 'http:\/\/');
4598 document.execCommand(command, false, url);
4599 } else if (command === 'font-size') {
4600 var font_size = el.find('option:selected').html();
4601 var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
4602 if (node.is("span") && document.getSelection().toString() === node.text()) {
4603 var html = node.css('font-size', font_size).prop('outerHTML');
4604 } else {
4605 var html = jQuery('<span/>').html(e2pdf.wysiwyg.helper.getSelectionHtml()).css('font-size', font_size).prop('outerHTML');
4606 }
4607 document.execCommand('insertHTML', false, html);
4608 el.val('');
4609 } else if (command === 'font') {
4610 e2pdf.font.load(el);
4611 var font = el.find('option:selected').html();
4612 var node = jQuery(e2pdf.wysiwyg.helper.getSelectedNode());
4613 if (node.is("span") && document.getSelection().toString() === node.text()) {
4614 var html = node.css('font-family', font).prop('outerHTML');
4615 } else {
4616 var html = jQuery('<span/>').html(e2pdf.wysiwyg.helper.getSelectionHtml()).css('font-family', font).prop('outerHTML');
4617 }
4618
4619 document.execCommand('insertHTML', false, html);
4620 el.val('');
4621 } else if (command === 'color') {
4622 e2pdf.wysiwyg.helper.restoreSelection(e2pdf.static.selectionRange);
4623 var color = el.val();
4624 document.execCommand('foreColor', false, color);
4625 e2pdf.static.selectionRange = e2pdf.wysiwyg.helper.saveSelection();
4626 } else if (command === 'clear') {
4627 document.execCommand("removeformat", false, "");
4628 e2pdf.wysiwyg.clear();
4629 } else {
4630 document.execCommand(command, false, null);
4631 }
4632
4633 e2pdf.event.fire('after.wysiwyg.apply');
4634 },
4635 clear: function (tags) {
4636 if (!tags) {
4637 var tags = "h1,h2";
4638 }
4639 var array = tags.toLowerCase().split(",");
4640 e2pdf.wysiwyg.helper.getSelectedNodes().forEach(function (node) {
4641 if (node.nodeType === 1 &&
4642 array.indexOf(node.tagName.toLowerCase()) > -1) {
4643 e2pdf.wysiwyg.helper.replaceWithOwnChildren(node);
4644 }
4645 });
4646 },
4647 helper: {
4648 getSelectedNodes: function () {
4649 var nodes = [];
4650 if (window.getSelection) {
4651 var sel = window.getSelection();
4652 for (var i = 0, len = sel.rangeCount; i < len; ++i) {
4653 nodes.push.apply(nodes, e2pdf.wysiwyg.helper.getRangeSelectedNodes(sel.getRangeAt(i), true));
4654 }
4655 }
4656 return nodes;
4657 },
4658 replaceWithOwnChildren: function (el) {
4659 var parent = el.parentNode;
4660 while (el.hasChildNodes()) {
4661 parent.insertBefore(el.firstChild, el);
4662 }
4663 parent.removeChild(el);
4664 },
4665 getRangeSelectedNodes: function (range, includePartiallySelectedContainers) {
4666 var node = range.startContainer;
4667 var endNode = range.endContainer;
4668 var rangeNodes = [];
4669 if (node === endNode) {
4670 rangeNodes = [node];
4671 } else {
4672 while (node && node !== endNode) {
4673 rangeNodes.push(node = e2pdf.wysiwyg.helper.nextNode(node));
4674 }
4675 node = range.startContainer;
4676 while (node && node !== range.commonAncestorContainer) {
4677 rangeNodes.unshift(node);
4678 node = node.parentNode;
4679 }
4680 }
4681
4682 if (includePartiallySelectedContainers) {
4683 node = range.commonAncestorContainer;
4684 while (node) {
4685 rangeNodes.push(node);
4686 node = node.parentNode;
4687 }
4688 }
4689
4690 return rangeNodes;
4691 },
4692 getSelectedNode: function () {
4693 var node, selection;
4694 if (window.getSelection) {
4695 selection = getSelection();
4696 node = selection.anchorNode;
4697 }
4698 if (!node && document.selection) {
4699 selection = document.selection
4700 var range = selection.getRangeAt ? selection.getRangeAt(0) : selection.createRange();
4701 node = range.commonAncestorContainer ? range.commonAncestorContainer :
4702 range.parentElement ? range.parentElement() : range.item(0);
4703 }
4704 if (node) {
4705 return (node.nodeName === "#text" ? node.parentNode : node);
4706 }
4707 },
4708 nextNode: function (node) {
4709
4710 if (node.hasChildNodes()) {
4711 return node.firstChild;
4712 } else {
4713 while (node && !node.nextSibling) {
4714 node = node.parentNode;
4715 }
4716 if (!node) {
4717 return null;
4718 }
4719 return node.nextSibling;
4720 }
4721
4722 },
4723 getSelectionHtml: function () {
4724 var html = "";
4725 if (typeof window.getSelection != "undefined") {
4726 var sel = window.getSelection();
4727 if (sel.rangeCount) {
4728 var container = document.createElement("div");
4729 for (var i = 0, len = sel.rangeCount; i < len; ++i) {
4730 container.appendChild(sel.getRangeAt(i).cloneContents());
4731 }
4732 html = container.innerHTML;
4733 }
4734 } else if (typeof document.selection != "undefined") {
4735 if (document.selection.type === "Text") {
4736 html = document.selection.createRange().htmlText;
4737 }
4738 }
4739 return html;
4740 },
4741 saveSelection: function () {
4742 if (window.getSelection) {
4743 sel = window.getSelection();
4744 if (sel.getRangeAt && sel.rangeCount) {
4745 return sel.getRangeAt(0);
4746 }
4747 } else if (document.selection && document.selection.createRange) {
4748 return document.selection.createRange();
4749 }
4750 return null;
4751 },
4752 restoreSelection: function (range) {
4753 if (range) {
4754 if (window.getSelection) {
4755 sel = window.getSelection();
4756 sel.removeAllRanges();
4757 sel.addRange(range);
4758 } else if (document.selection && range.select) {
4759 range.select();
4760 }
4761 }
4762 }
4763 }
4764 },
4765 //e2pdf.visual
4766 visual: {
4767 //e2pdf.visual.mapper
4768 mapper: {
4769 selected: null,
4770 //e2pdf.visual.mapper.init
4771 init: function (el) {
4772 e2pdf.visual.mapper.selected = el;
4773 var modal = jQuery('<div/>', {'data-modal': 'visual-mapper'});
4774 e2pdf.dialog.create(modal);
4775 },
4776 // e2pdf.visual.mapper.markup
4777 markup: function () {
4778 if (jQuery('#e2pdf-vm-content').length > 0) {
4779 var vc_content = jQuery('#e2pdf-vm-content');
4780 var vc_wrapper = jQuery('<div/>', {'class': 'e2pdf-vm-wrapper'});
4781 vc_content.find('input[type="text"], input[type="radio"], input[type="checkbox"], input[type="password"], input[type="url"], input[type="number"], input[type="tel"], input[type="phone"], input[type="credit_card_cvc"], input[type="email"], input[type="color_picker"], input[type="range"], input[type="file"], textarea, select').each(function () {
4782 vc_wrapper.append(e2pdf.visual.mapper.load(jQuery(this)));
4783 });
4784 vc_content.append(vc_wrapper);
4785 e2pdf.dialog.rebuild();
4786 }
4787 },
4788 load: function (el) {
4789 var loaded = false;
4790 if (el.is(":visible") && !el.hasClass('e2pdf-no-vm')) {
4791
4792 var width = el.css('width');
4793 var height = el.css('height');
4794 var top = el.offset().top - el.closest('#e2pdf-vm-content').offset().top;
4795 var left = el.offset().left - el.closest('#e2pdf-vm-content').offset().left;
4796 //if (el.attr('type') === 'text' || el.attr('type') === 'radio' || el.attr('type') === 'checkbox') {
4797 loaded = jQuery('<a/>', {'href': 'javascript:void(0);', 'class': 'e2pdf-vm-element'}).css({
4798 'width': width, 'height': height, 'top': top, 'left': left
4799 });
4800 var name = el.attr('name');
4801 var type = el.attr('type');
4802 var value = el.attr('value');
4803 if (el.is("select")) {
4804 type = 'select';
4805 value = '';
4806 el.find('option').each(function () {
4807 value += jQuery(this).attr('value');
4808 if (jQuery(this)[0] !== el.find('option:last-child')[0]) {
4809 value += "\n";
4810 }
4811 });
4812 }
4813
4814 loaded.data('name', name);
4815 loaded.data('type', type);
4816 loaded.data('value', value);
4817 if (el.hasClass('e2pdf-vm-field')) {
4818 el.remove();
4819 }
4820
4821 //}
4822 }
4823 return loaded;
4824 },
4825 apply: function (el) {
4826 if (e2pdf.visual.mapper.selected) {
4827 var name = el.data('name');
4828 var value = el.data('value');
4829 var type = el.data('type');
4830 if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-checkbox') {
4831 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
4832 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'option', value);
4833 } else if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-radio') {
4834 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'group', name);
4835 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
4836 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'option', value);
4837 } else if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-select') {
4838 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
4839 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'options', value);
4840 } else if (e2pdf.visual.mapper.selected.data('data-type') === 'e2pdf-image') {
4841 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
4842 } else {
4843 e2pdf.properties.set(e2pdf.visual.mapper.selected, 'value', name);
4844 }
4845
4846 e2pdf.properties.render(e2pdf.visual.mapper.selected);
4847 e2pdf.visual.mapper.selected = null;
4848 }
4849 e2pdf.dialog.close();
4850 }
4851 }
4852 },
4853 zoom: {
4854 zoom: 1,
4855 click: {
4856 x: 0,
4857 y: 0
4858 },
4859 apply: function (el) {
4860 jQuery('#e2pdf-tpl').removeClass(function (index, className) {
4861 return (className.match(/(^|\s)e2pdf-z\S+/g) || []).join(' ');
4862 });
4863 if (el.val() !== '100') {
4864 jQuery('#e2pdf-tpl').addClass("e2pdf-z" + el.val());
4865 }
4866
4867 e2pdf.zoom.zoom = el.val() / 100;
4868 jQuery('#e2pdf-tpl').scrollLeft(((jQuery('.e2pdf-tpl-inner').width() * e2pdf.zoom.zoom) - jQuery('#e2pdf-tpl').width()) / 2);
4869 }
4870 }
4871 };
4872
4873
4874
4875 jQuery(window).resize(function () {
4876 if (this.e2pdfResizeTO)
4877 clearTimeout(this.e2pdfResizeTO);
4878 this.e2pdfResizeTO = setTimeout(function () {
4879 jQuery(this).trigger('e2pdfResizeEnd');
4880 }, 500);
4881 });
4882
4883 jQuery(window).bind('e2pdfResizeEnd', function () {
4884 e2pdf.dialog.rebuild();
4885 });
4886
4887 jQuery(document).ready(function () {
4888
4889 jQuery('a.e2pdf-link[disabled="disabled"]').live('click', function (e) {
4890 e.stopPropagation();
4891 e.preventDefault();
4892 e.stopImmediatePropagation();
4893 return false;
4894 });
4895
4896 jQuery('.e2pdf-action-add').live('click', function (e) {
4897 var actions = jQuery(this).closest('.e2pdf-actions-wrapper').find('.e2pdf-actions');
4898 var element = jQuery(".e2pdf-element[data-element_id='" + jQuery(this).closest('form').find('input[name="element_id"]').val() + "']").first();
4899 e2pdf.actions.add(element, actions);
4900 jQuery(this).trigger('e2pdfResizeEnd');
4901 });
4902
4903 jQuery('.e2pdf-action-condition-add').live('click', function (e) {
4904 var action_conditions = jQuery(this).closest('.e2pdf-action');
4905 var element = jQuery(".e2pdf-element[data-element_id='" + jQuery(this).closest('form').find('input[name="element_id"]').val() + "']").first();
4906 e2pdf.actions.conditions.add(element, action_conditions);
4907 jQuery(this).trigger('e2pdfResizeEnd');
4908 });
4909
4910 jQuery('.e2pdf-action-delete').live('click', function (e) {
4911 if (!confirm(e2pdfLang['Action will be removed! Are you sure want to continue?'])) {
4912 return false;
4913 }
4914 var action = jQuery(this).closest('.e2pdf-action');
4915 e2pdf.actions.delete(action);
4916 });
4917
4918 jQuery('.e2pdf-action-condition-delete').live('click', function (e) {
4919 var action = jQuery(this).closest('.e2pdf-action');
4920 if (action.find('.e2pdf-condition').length === 1) {
4921 alert(e2pdfLang["Last condition can't be removed"]);
4922 return false;
4923 }
4924 if (!confirm(e2pdfLang['Condition will be removed! Are you sure want to continue?'])) {
4925 return false;
4926 }
4927 var condition = jQuery(this).closest('.e2pdf-condition');
4928 e2pdf.actions.conditions.delete(condition);
4929 });
4930
4931 jQuery('#e2pdf-zoom').live('change', function () {
4932 e2pdf.zoom.apply(jQuery(this));
4933 });
4934
4935 jQuery('#e2pdf-extension').live('change', function () {
4936 e2pdf.request.submitRequest('e2pdf_extension', jQuery(this));
4937 });
4938
4939 jQuery('.e2pdf-action-action select, .e2pdf-action-property select').live('change', function () {
4940 var action = jQuery(this).closest('.e2pdf-action');
4941 e2pdf.actions.change(action);
4942 });
4943
4944 jQuery('.e2pdf-tabs a').live('click', function () {
4945 jQuery(this).closest('.e2pdf-tabs-panel').find('.tabs-panel').hide()
4946 var tab = jQuery(this);
4947 tab.closest('ul').find('li').removeClass('active');
4948 tab.parent('li').addClass('active');
4949 jQuery(document.getElementById(tab.attr('data-tab'))).show();
4950 });
4951
4952 jQuery('.e2pdf-hidden-dropdown').live('click', function () {
4953 var parent = jQuery(this).closest('.e2pdf-closed');
4954 if (parent.hasClass('e2pdf-opened')) {
4955 parent.removeClass('e2pdf-opened');
4956 } else {
4957 jQuery('.e2pdf-closed').each(function () {
4958 jQuery(this).removeClass('e2pdf-opened');
4959 });
4960 parent.addClass('e2pdf-opened');
4961 }
4962 });
4963
4964 jQuery('.e2pdf-submit-form').live('click', function (e) {
4965 e.preventDefault();
4966 var el = jQuery(this);
4967 e2pdf.request.submitForm(el);
4968 });
4969
4970 jQuery('.e2pdf-submit-local').live('click', function () {
4971 var el = jQuery(this);
4972 e2pdf.request.submitLocal(el);
4973 });
4974
4975 jQuery('.e2pdf-delete').live('click', function () {
4976 var message = e2pdf.element.selected.length > 1 ? e2pdfLang['Elements will be removed! Are you sure want to continue?'] : e2pdfLang['Element will be removed! Are you sure want to continue?'];
4977 if (!confirm(message)) {
4978 e2pdf.delete('.e2pdf-context');
4979 return false;
4980 }
4981 for (var key in e2pdf.element.selected) {
4982 var selected = e2pdf.element.selected[key];
4983 e2pdf.element.delete(selected);
4984 }
4985
4986 e2pdf.element.unselect();
4987 });
4988
4989 jQuery('.e2pdf-copy').live('click', function () {
4990 e2pdf.element.unbuffer();
4991
4992 for (var key in e2pdf.element.selected) {
4993 var selected = e2pdf.element.selected[key];
4994 e2pdf.element.copy(selected);
4995 }
4996 });
4997
4998 jQuery('.e2pdf-hidden').live('click', function () {
4999 for (var key in e2pdf.element.selected) {
5000 var selected = e2pdf.element.selected[key];
5001 e2pdf.element.hide(selected);
5002 }
5003 });
5004
5005 jQuery('.e2pdf-unhidden').live('click', function () {
5006 for (var key in e2pdf.element.selected) {
5007 var selected = e2pdf.element.selected[key];
5008 e2pdf.element.show(selected);
5009 }
5010 });
5011
5012 jQuery('.e2pdf-cut').live('click', function () {
5013 e2pdf.element.unbuffer();
5014 for (var key in e2pdf.element.selected) {
5015 var selected = e2pdf.element.selected[key];
5016 e2pdf.element.cut(selected);
5017 }
5018 });
5019
5020 jQuery('.e2pdf-paste').live('click', function () {
5021 e2pdf.element.paste(false);
5022 });
5023
5024 jQuery('.e2pdf-pasteinplace').live('click', function () {
5025 e2pdf.element.paste(true);
5026 });
5027
5028 jQuery('.e2pdf-checkbox').live('click', function () {
5029 return false;
5030 });
5031
5032 jQuery('.e2pdf-radio').live('click', function () {
5033 return false;
5034 });
5035
5036 jQuery('.e2pdf-hide-controls').live('click', function () {
5037
5038 if (jQuery(this).hasClass('e2pdf-inactive')) {
5039 jQuery('html').removeClass('e2pdf-hide-markup');
5040 jQuery(this).removeClass('e2pdf-inactive');
5041 } else {
5042 jQuery('html').addClass('e2pdf-hide-markup');
5043 jQuery(this).addClass('e2pdf-inactive');
5044 }
5045 });
5046
5047 jQuery('.e2pdf-hidden-elements').live('click', function () {
5048 if (jQuery(this).hasClass('e2pdf-inactive')) {
5049 jQuery('html').addClass('e2pdf-show-all-elements');
5050 jQuery(this).removeClass('e2pdf-inactive');
5051 } else {
5052 jQuery('html').removeClass('e2pdf-show-all-elements');
5053 jQuery(this).addClass('e2pdf-inactive');
5054 }
5055 });
5056
5057 jQuery('.e2pdf-add-page').live('click', function () {
5058 if (e2pdf.pdf.settings.get('pdf')) {
5059 alert(e2pdfLang['Adding new pages not available in "Uploaded PDF"']);
5060 } else if (e2pdfParams['license_type'] == 'FREE') {
5061 alert(e2pdfLang['Only 1 page allowed with "FREE" license type']);
5062 } else {
5063 e2pdf.pages.createPage();
5064 }
5065 });
5066
5067 jQuery('.e2pdf-create-pdf').live('click', function () {
5068 e2pdf.createPdf(jQuery(this));
5069 });
5070
5071 jQuery('.e2pdf-up-page').live('click', function () {
5072 e2pdf.pages.movePage(jQuery(this), 'up');
5073 });
5074
5075 jQuery('.e2pdf-down-page').live('click', function () {
5076 e2pdf.pages.movePage(jQuery(this), 'down');
5077 });
5078
5079 jQuery('.e2pdf-delete-page').live('click', function () {
5080 if (e2pdf.pdf.settings.get('pdf')) {
5081 if (!confirm(e2pdfLang['All pages will be removed! Are you sure want to continue?'])) {
5082 return false;
5083 }
5084 jQuery('#e2pdf-tpl .e2pdf-page').each(function () {
5085 var el = jQuery(this);
5086 e2pdf.pages.deletePage(el);
5087 });
5088 } else {
5089 if (!confirm(e2pdfLang['Are you sure want to remove page?'])) {
5090 return false;
5091 }
5092 var el = jQuery(jQuery(this));
5093 e2pdf.pages.deletePage(el);
5094 }
5095 });
5096
5097 jQuery('.e2pdf-delete-all-pages').live('click', function () {
5098 if (!confirm(e2pdfLang['All pages will be removed! Are you sure want to continue?'])) {
5099 return false;
5100 }
5101 jQuery('#e2pdf-tpl .e2pdf-page').each(function () {
5102 var el = jQuery(this);
5103 e2pdf.pages.deletePage(el);
5104 });
5105 });
5106
5107 jQuery('.e2pdf-delete-font').live('click', function () {
5108 if (!confirm(e2pdfLang['Are you sure want to remove font?'])) {
5109 return false;
5110 }
5111 var el = jQuery(jQuery(this));
5112 e2pdf.font.delete(el);
5113 });
5114
5115 jQuery('.e2pdf-modal').live('click', function () {
5116 e2pdf.dialog.create(jQuery(this));
5117 });
5118
5119 jQuery('body').live('click', function (e) {
5120 e2pdf.delete('.e2pdf-context');
5121 });
5122
5123 jQuery('#e2pdf-font').live('change', function () {
5124 e2pdf.font.load(jQuery(this));
5125 e2pdf.font.apply(jQuery('#e2pdf-tpl'), jQuery(this));
5126 });
5127
5128 jQuery('#e2pdf-export-template').live('change', function () {
5129 e2pdf.request.submitRequest('e2pdf_templates', jQuery(this));
5130 });
5131
5132 jQuery('#e2pdf-export-dataset').live('change', function () {
5133 var data = {};
5134 data['template'] = jQuery('#e2pdf-export-template').val();
5135 data['dataset'] = jQuery('#e2pdf-export-dataset').val();
5136 e2pdf.request.submitRequest('e2pdf_dataset', jQuery(this), data);
5137 });
5138
5139 jQuery('#e2pdf-font-size').live('change', function () {
5140 e2pdf.font.size(jQuery('#e2pdf-tpl'), jQuery(this));
5141 });
5142
5143 jQuery('.e2pdf-numbers').live('keydown', function (e) {
5144 if (jQuery.inArray(e.keyCode, [46, 8, 9, 27, 13, 107, 109, 110, 189, 190]) !== -1 ||
5145 ((e.keyCode === 65 || e.keyCode === 86 || e.keyCode === 67) && (e.ctrlKey === true || e.metaKey === true)) ||
5146 (e.shiftKey === true && e.keyCode === 187) ||
5147 (e.keyCode >= 35 && e.keyCode <= 40)) {
5148
5149 if ((e.keyCode === 109 || e.keyCode === 189) && !jQuery(this).hasClass('e2pdf-number-negative')) {
5150 e.preventDefault();
5151 } else if ((e.keyCode === 187 || e.keyCode === 107) && !jQuery(this).hasClass('e2pdf-number-positive')) {
5152 e.preventDefault();
5153 } else {
5154 return;
5155 }
5156 }
5157 if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
5158 e.preventDefault();
5159 }
5160 });
5161
5162 jQuery('.e2pdf-numbers').live('change', function (e) {
5163 var value = jQuery(this).val().trim();
5164 var prefix = '';
5165 if (jQuery(this).hasClass('e2pdf-number-positive') && value.startsWith('+')) {
5166 prefix = '+';
5167 }
5168 value = parseFloat(value);
5169 if (isNaN(value)) {
5170 value = 0;
5171 }
5172 jQuery(this).val(prefix + value);
5173 });
5174
5175 jQuery('#e2pdf-font-color').live('change', function () {
5176 e2pdf.font.fontcolor(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-color'));
5177 });
5178
5179 jQuery('#e2pdf-line-height').live('change', function () {
5180 e2pdf.font.line(jQuery('#e2pdf-tpl'), jQuery(this));
5181 });
5182
5183 jQuery('.e2pdf-upload').live('click', function (e) {
5184 e.preventDefault();
5185 for (var key in e2pdf.element.selected) {
5186 var selected = e2pdf.element.selected[key];
5187 e2pdf.mediaUploader.init(selected);
5188 }
5189 });
5190
5191 jQuery('.e2pdf-visual').live('click', function (e) {
5192 for (var key in e2pdf.element.selected) {
5193 var selected = e2pdf.element.selected[key];
5194 e2pdf.visual.mapper.init(selected);
5195 }
5196 });
5197
5198 jQuery('.e2pdf-apply-wysiwyg').live('click', function () {
5199 e2pdf.wysiwyg.apply(jQuery(this));
5200 });
5201
5202 jQuery('.e2pdf-apply-wysiwyg-color').live('click', function (e) {
5203 e2pdf.static.selectionRange = e2pdf.wysiwyg.helper.saveSelection();
5204 e.preventDefault();
5205 e.stopPropagation();
5206 e.stopImmediatePropagation();
5207 var color_panel = jQuery(this).parent().find('.wp-picker-container');
5208 if (!color_panel.hasClass('wp-picker-active')) {
5209 color_panel.find('.wp-color-result').click();
5210 if (color_panel.find('.wp-color-close').length === 0) {
5211 var close = jQuery('<a>', {"class": "wp-color-close", "href": "javascript:void(0);", 'onclick': "e2pdf.helper.color.close(this);"});
5212 var width = parseFloat(jQuery(this).css('width'));
5213 var height = parseFloat(jQuery(this).css('height'));
5214 close.css({'width': width, "height": height, "margin-top": -height});
5215 color_panel.append(close);
5216 }
5217 }
5218 });
5219
5220 jQuery('#e2pdf-wysiwyg-font-color').live('change', function (e) {
5221 e2pdf.wysiwyg.apply(jQuery(this));
5222 });
5223
5224 jQuery('#e2pdf_wysiwyg_fontsize').live('change', function () {
5225 e2pdf.wysiwyg.apply(jQuery(this));
5226 });
5227
5228 jQuery('#e2pdf_wysiwyg_font').live('change', function () {
5229 e2pdf.wysiwyg.apply(jQuery(this));
5230 });
5231
5232 jQuery('#e2pdf-upload-pdf').live('change', function () {
5233 e2pdf.request.upload('e2pdf_upload', jQuery('#e2pdf-w-upload'));
5234 });
5235
5236 jQuery('#e2pdf-w-reupload').live('click', function () {
5237 var message = "";
5238 if (e2pdf.static.unsaved) {
5239 message += e2pdfLang['WARNING: Template has changes after last save! Changes will be lost!'] + "\r\n";
5240 }
5241 message += e2pdfLang['Saved Template will be overwritten! Are you sure want to continue?'];
5242 if (!confirm(message)) {
5243 return false;
5244 }
5245 jQuery('#e2pdf-reupload-pdf').click();
5246 });
5247
5248 jQuery('#e2pdf-reupload-pdf').live('change', function () {
5249 e2pdf.request.upload('e2pdf_reupload', jQuery('#e2pdf-w-reupload'));
5250 });
5251
5252 jQuery('.e2pdf-scale-field').live('change', function () {
5253 var value = jQuery(this).val();
5254 var fields = jQuery(this).closest('.e2pdf-el-properties');
5255 fields.find('input[name="height"]').attr('readonly', false);
5256 fields.find('input[name="width"]').attr('readonly', false);
5257 var image = new Image();
5258 image.src = fields.find('*[name="value"]').val();
5259 image.onload = function ()
5260 {
5261 if (value === e2pdf.static.const.WIDTH) {
5262 fields.find('input[name="height"]').attr('readonly', 'readonly');
5263 } else if (value === e2pdf.static.const.HEIGHT) {
5264 fields.find('input[name="width"]').attr('readonly', 'readonly');
5265 }
5266 };
5267 });
5268
5269 jQuery('.e2pdf-el-properties input[name="group"]').live('click', function () {
5270 jQuery(this).autocomplete("search", "");
5271 });
5272
5273 jQuery('.e2pdf-settings-style-change').live('change', function () {
5274 e2pdf.event.fire('after.settings.style.change');
5275 });
5276
5277 jQuery('.e2pdf-settings-template-change').live('change, keyup', function () {
5278 e2pdf.event.fire('after.settings.template.change');
5279 });
5280
5281 jQuery('select[name="preset"]').live('change', function () {
5282 if (jQuery(this).val() !== '') {
5283 var form = jQuery(this).closest('form');
5284 var size = e2pdfTemplateSizes[jQuery(this).val()];
5285 form.find('input[name="width"]').val(size.width);
5286 form.find('input[name="height"]').val(size.height);
5287 }
5288 });
5289
5290 jQuery('.e2pdf-vm-element').live('click', function () {
5291 e2pdf.visual.mapper.apply(jQuery(this));
5292 });
5293
5294 jQuery('.e2pdf-drag').live('click', function (e) {
5295 var el = jQuery(this).parent();
5296 if (jQuery(this).parent().hasClass('e2pdf-selected')) {
5297 if (jQuery('.e2pdf-selected').length > 1) {
5298 if (!e.ctrlKey) {
5299 e2pdf.element.unselect();
5300 e2pdf.element.select(el);
5301 } else {
5302 e2pdf.element.unselect(el);
5303 }
5304 } else {
5305 e2pdf.element.unselect(el);
5306 }
5307 } else {
5308 if (!e.ctrlKey) {
5309 e2pdf.element.unselect();
5310 }
5311 e2pdf.element.select(el);
5312 }
5313 });
5314
5315 jQuery('.e2pdf-activate-template').live('click', function () {
5316 var data = {};
5317 data['id'] = jQuery(this).attr('data-id');
5318 e2pdf.request.submitRequest('e2pdf_activate_template', jQuery(this), data);
5319 });
5320
5321 jQuery('.e2pdf-deactivate-template').live('click', function () {
5322 var data = {};
5323 data['id'] = jQuery(this).attr('data-id');
5324 e2pdf.request.submitRequest('e2pdf_deactivate_template', jQuery(this), data);
5325 });
5326
5327 jQuery('.e2pdf-delete-item').live('click', function () {
5328 if (!confirm(e2pdfLang['Dataset will be removed! Are you sure want to continue?'])) {
5329 return false;
5330 }
5331 var data = {};
5332 data['template'] = jQuery(this).attr('template');
5333 data['dataset'] = jQuery(this).attr('dataset');
5334 e2pdf.request.submitRequest('e2pdf_delete_item', jQuery(this), data);
5335 });
5336
5337 jQuery('.e2pdf-delete-items').live('click', function () {
5338 if (!confirm(e2pdfLang['All datasets will be removed! Are you sure want to continue?'])) {
5339 return false;
5340 }
5341 var data = {};
5342 data['template'] = jQuery(this).attr('template');
5343 e2pdf.request.submitRequest('e2pdf_delete_items', jQuery(this), data);
5344 });
5345
5346 jQuery('.e2pdf-copy-field').live('click', function () {
5347 jQuery(this).select();
5348 });
5349
5350 jQuery(document).live('click', function (e) {
5351 if (!jQuery(e.target).hasClass('e2pdf-drag')) {
5352 e2pdf.element.unselect();
5353 }
5354 if (jQuery(e.target).closest('.e2pdf-closed').length == 0) {
5355 jQuery('.e2pdf-closed').each(function () {
5356 jQuery(this).removeClass('e2pdf-opened');
5357 });
5358 }
5359 });
5360
5361 jQuery('.e2pdf-autocomplete-cl').live('click focus', function (e) {
5362 jQuery(this).autocomplete("search", '');
5363 });
5364
5365 if (jQuery('.e2pdf-form-builder > input[name="sub_action"]').length > 0) {
5366 e2pdf.pdf.settings.set('sub_action', jQuery('.e2pdf-form-builder > input[name="sub_action"]').val());
5367 }
5368
5369 if (jQuery('.e2pdf-form-builder > input[name="ID"]').length > 0) {
5370 e2pdf.pdf.settings.set('ID', jQuery('.e2pdf-form-builder > input[name="ID"]').val());
5371 }
5372
5373 if (jQuery('.e2pdf-form-builder > input[name="width"]').length > 0) {
5374 e2pdf.pdf.settings.set('width', jQuery('.e2pdf-form-builder > input[name="width"]').val());
5375 }
5376
5377 if (jQuery('.e2pdf-form-builder > input[name="height"]').length > 0) {
5378 e2pdf.pdf.settings.set('height', jQuery('.e2pdf-form-builder > input[name="height"]').val());
5379 }
5380
5381 if (jQuery('.e2pdf-form-builder > input[name="extension"]').length > 0) {
5382 e2pdf.pdf.settings.set('extension', jQuery('.e2pdf-form-builder > input[name="extension"]').val());
5383 }
5384
5385 if (jQuery('.e2pdf-form-builder > input[name="item"]').length > 0) {
5386 e2pdf.pdf.settings.set('item', jQuery('.e2pdf-form-builder > input[name="item"]').val());
5387 }
5388
5389 if (jQuery('.e2pdf-form-builder > input[name="item"]').length > 0) {
5390 e2pdf.pdf.settings.set('pdf', jQuery('.e2pdf-form-builder > input[name="pdf"]').val());
5391 }
5392
5393 if (jQuery('.e2pdf-form-builder > input[name="format"]').length > 0) {
5394 e2pdf.pdf.settings.set('format', jQuery('.e2pdf-form-builder > input[name="format"]').val());
5395 }
5396
5397 jQuery('#e2pdf-zoom').trigger('change');
5398
5399 if (jQuery('body').hasClass('toplevel_page_e2pdf')) {
5400 if (e2pdf.url.get('template_id')) {
5401 e2pdf.static.autoloadExport = true;
5402 if (jQuery("#e2pdf-export-template option[value=" + e2pdf.url.get('template_id') + "]").length == 0) {
5403 jQuery('#e2pdf-export-template').val('0').change();
5404 } else {
5405 jQuery('#e2pdf-export-template').val(e2pdf.url.get('template_id')).change();
5406 }
5407 }
5408 }
5409
5410 if (jQuery('body').hasClass('e2pdf_page_e2pdf-templates')) {
5411
5412 jQuery('.e2pdf-color-picker-load').each(function () {
5413 jQuery(this).wpColorPicker(
5414 {
5415 defaultColor: function () {
5416 var el = jQuery(event.target).parent().find('.e2pdf-color-picker');
5417 if (el.attr('data-default')) {
5418 return el.attr('data-default');
5419 } else {
5420 return;
5421 }
5422 },
5423 change: function (event, ui) {
5424 jQuery(this).val(ui.color.toString()).change();
5425 }
5426 }
5427 ).removeClass('e2pdf-color-picker-load');
5428 });
5429
5430 jQuery(window).bind("beforeunload", function (e) {
5431 if (e2pdf.static.unsaved) {
5432 var confirmationMessage = "\o/";
5433 (e || window.event).returnValue = confirmationMessage;
5434 return confirmationMessage;
5435 }
5436 });
5437
5438 jQuery(document).bind("mousedown", function (e) {
5439 if (jQuery(e.target).hasClass("e2pdf-fade")) {
5440 e2pdf.delete('.e2pdf-fade');
5441 e2pdf.delete('.e2pdf-properties-window');
5442 }
5443 });
5444
5445 if (jQuery('#e2pdf_build_form').length > 0) {
5446 postboxes.add_postbox_toggles(pagenow);
5447 }
5448
5449 if (typeof (jQuery.ui) != 'undefined' && typeof (jQuery.ui.draggable) != 'undefined'
5450 && typeof (jQuery.ui.droppable) != 'undefined'
5451 && jQuery('.e2pdf-tpl').length > 0) {
5452
5453 // jQuery UI scale bug fix
5454 jQuery.ui.ddmanager.prepareOffsets = function (t, event) {
5455 var i, j,
5456 m = jQuery.ui.ddmanager.droppables[ t.options.scope ] || [],
5457 type = event ? event.type : null,
5458 list = (t.currentItem || t.element).find(":data(ui-droppable)").addBack();
5459
5460 droppablesLoop: for (i = 0; i < m.length; i++) {
5461 if (m[ i ].options.disabled || (t && !m[ i ].accept.call(m[ i ].element[ 0 ], (t.currentItem || t.element)))) {
5462 continue;
5463 }
5464 for (j = 0; j < list.length; j++) {
5465 if (list[ j ] === m[ i ].element[ 0 ]) {
5466 m[ i ].proportions().height = 0;
5467 continue droppablesLoop;
5468 }
5469 }
5470 m[ i ].visible = m[ i ].element.css("display") !== "none";
5471 if (!m[ i ].visible) {
5472 continue;
5473 }
5474 if (type === "mousedown") {
5475 m[ i ]._activate.call(m[ i ], event);
5476 }
5477 m[ i ].offset = m[ i ].element.offset();
5478 m[ i ].proportions({width: m[ i ].element[ 0 ].offsetWidth * e2pdf.zoom.zoom, height: m[ i ].element[ 0 ].offsetHeight * e2pdf.zoom.zoom});
5479 }
5480 }
5481
5482 jQuery(".e2pdf-load-el").each(function () {
5483 var element = jQuery(this);
5484 var type = element.attr('data-type');
5485 var page = element.closest('.e2pdf-page');
5486 var properties = JSON.parse(element.find('.e2pdf-data-properties').text());
5487 var actions = JSON.parse(element.find('.e2pdf-data-actions').text());
5488
5489 properties['width'] = element.attr('data-width');
5490 properties['height'] = element.attr('data-height');
5491 properties['top'] = element.attr('data-top');
5492 properties['left'] = element.attr('data-left');
5493 if (type == 'e2pdf-html') {
5494 properties['value'] = element.find('.e2pdf-data-value').html();
5495 } else {
5496 properties['value'] = element.find('.e2pdf-data-value').text();
5497 }
5498 //changed
5499 var el = e2pdf.element.create(type, page, properties, actions, false, true, element.attr('data-element_id'));
5500 jQuery(this).replaceWith(el);
5501 e2pdf.properties.render(el);
5502 });
5503
5504 jQuery(".e2pdf-load-page").each(function () {
5505 var page = jQuery(this);
5506 var actions = JSON.parse(page.find('.e2pdf-data-actions').text());
5507 var properties = JSON.parse(page.find('.e2pdf-data-properties').text());
5508 page.find('.e2pdf-data-properties').remove();
5509 page.find('.e2pdf-data-actions').remove();
5510 page.removeClass('e2pdf-load-page');
5511 e2pdf.pages.createPage(page, properties, actions);
5512
5513 });
5514
5515 jQuery(".e2pdf-be").draggable({
5516 helper: function () {
5517 var element = jQuery(this).clone();
5518 var type = element.attr('data-type');
5519 var page = element.closest('.e2pdf-page')
5520 //changed
5521 var el = e2pdf.element.create(type, page, false, false, true);
5522 e2pdf.font.apply(el, jQuery('#e2pdf-font'));
5523 e2pdf.font.size(el, jQuery('#e2pdf-font-size'));
5524 e2pdf.font.line(el, jQuery('#e2pdf-line-height'));
5525 e2pdf.font.fontcolor(el, jQuery('#e2pdf-font-color'));
5526 e2pdf.properties.render(el);
5527 el.css('z-index', 1);
5528 if (e2pdf.zoom.zoom != 1) {
5529 el.css('transform', 'scale(' + e2pdf.zoom.zoom + ')');
5530 el.css('transform-origin', '0 0');
5531 }
5532 return el;
5533 },
5534 start: function (ev, ui) {
5535 e2pdf.static.guide.x = ev.originalEvent.pageX - jQuery(this).offset().left;
5536 e2pdf.static.guide.y = ev.originalEvent.pageY - jQuery(this).offset().top;
5537
5538 },
5539 stop: function (ev, ui) {
5540 jQuery(".e2pdf-guide-v, .e2pdf-guide-h").hide();
5541
5542 },
5543 drag: function (ev, ui) {
5544
5545 if (e2pdf.static.drag.page !== null) {
5546
5547 var pos = {left: ev.originalEvent.pageX - e2pdf.static.guide.x, top: ev.originalEvent.pageY - e2pdf.static.guide.y};
5548
5549 var guides = {top: {dist: e2pdf.static.guide.distance + 1}, left: {dist: e2pdf.static.guide.distance + 1}};
5550 var w = parseFloat(jQuery(ui.helper).css('width')) * e2pdf.zoom.zoom;
5551 var h = parseFloat(jQuery(ui.helper).css('height')) * e2pdf.zoom.zoom;
5552
5553 var el_guides = e2pdf.guide.calc(null, pos, w, h, true);
5554
5555 jQuery.each(e2pdf.static.guide.guides, function (i, guide) {
5556 jQuery.each(el_guides, function (i, elemGuide) {
5557 if (guide.type == elemGuide.type) {
5558 var prop = guide.type == "h" ? "top" : "left";
5559 var d = Math.abs(elemGuide[prop] - guide[prop]);
5560 if (d < guides[prop].dist) {
5561 guides[prop].dist = d;
5562 guides[prop].offset = elemGuide[prop] - pos[prop];
5563 guides[prop].guide = guide;
5564 }
5565 }
5566 });
5567 });
5568
5569 if (guides.top.dist <= e2pdf.static.guide.distance) {
5570 e2pdf.static.drag.page.find('.e2pdf-guide-h').css("top", guides.top.guide.top / e2pdf.zoom.zoom - e2pdf.static.drag.page.offset().top / e2pdf.zoom.zoom - 1).show();
5571 var snap_top = guides.top.guide.top - guides.top.offset - jQuery(this).offset().top;
5572 ui.position.top = snap_top;
5573 } else {
5574 jQuery(".e2pdf-guide-h").hide();
5575 }
5576
5577 if (guides.left.dist <= e2pdf.static.guide.distance) {
5578 e2pdf.static.drag.page.find('.e2pdf-guide-v').css("left", guides.left.guide.left / e2pdf.zoom.zoom - e2pdf.static.drag.page.offset().left / e2pdf.zoom.zoom - 1).show();
5579 var snap_left = guides.left.guide.left - guides.left.offset - jQuery(this).offset().left + 5;
5580 ui.position.left = snap_left;
5581 } else {
5582 jQuery(".e2pdf-guide-v").hide();
5583 }
5584 }
5585 }
5586 });
5587 e2pdf.welcomeScreen();
5588 }
5589 e2pdf.font.load(jQuery('#e2pdf-font'));
5590
5591 jQuery('.e2pdf-load-font').each(function () {
5592 e2pdf.font.load(jQuery(this));
5593 jQuery(this).remove();
5594 });
5595
5596 e2pdf.font.apply(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font'));
5597 e2pdf.font.size(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-size'));
5598 e2pdf.font.line(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-line-height'));
5599 e2pdf.font.fontcolor(jQuery('#e2pdf-tpl'), jQuery('#e2pdf-font-color'));
5600 }
5601
5602 jQuery(document).keydown(function (e) {
5603
5604 if (e2pdf.element.selected.length > 0) {
5605 e.preventDefault();
5606 switch (e.which) {
5607 case 37://left
5608
5609 var diff = 1;
5610
5611 for (var key in e2pdf.element.selected) {
5612 var selected = e2pdf.element.selected[key];
5613 if (parseFloat(selected.css('left')) > 0) {
5614 if (parseFloat(selected.css('left')) - 1 < 0) {
5615 diff = Math.min(diff, selected.css('left'));
5616 }
5617 } else {
5618 diff = Math.min(diff, 0);
5619 }
5620 }
5621
5622 for (var key in e2pdf.element.selected) {
5623 var selected = e2pdf.element.selected[key];
5624 selected.finish().animate({
5625 left: "-=" + diff
5626 }, 0);
5627 e2pdf.properties.set(selected, 'left', parseFloat(selected.css('left').replace('px', '')));
5628 }
5629 break;
5630 case 38: //top
5631
5632 var diff = 1;
5633
5634 for (var key in e2pdf.element.selected) {
5635 var selected = e2pdf.element.selected[key];
5636 if (parseFloat(selected.css('top')) > 0) {
5637 if (parseFloat(selected.css('top')) - 1 < 0) {
5638 diff = Math.min(diff, selected.css('top'));
5639 }
5640 } else {
5641 diff = Math.min(diff, 0);
5642 }
5643 }
5644
5645 for (var key in e2pdf.element.selected) {
5646 var selected = e2pdf.element.selected[key];
5647 selected.finish().animate({
5648 top: "-=" + diff
5649 }, 0);
5650 e2pdf.properties.set(selected, 'top', parseFloat(selected.css('top').replace('px', '')));
5651 }
5652 break;
5653 case 39:
5654 //right
5655 var diff = 1;
5656
5657 for (var key in e2pdf.element.selected) {
5658 var selected = e2pdf.element.selected[key];
5659 if (parseFloat(selected.css('right')) > 0) {
5660 if (parseFloat(selected.css('right')) - 1 < 0) {
5661 diff = Math.min(diff, selected.css('right'));
5662 }
5663 } else {
5664 diff = Math.min(diff, 0);
5665 }
5666 }
5667
5668 for (var key in e2pdf.element.selected) {
5669 var selected = e2pdf.element.selected[key];
5670 selected.finish().animate({
5671 left: "+=" + diff
5672 }, 0);
5673 e2pdf.properties.set(selected, 'left', parseFloat(selected.css('left').replace('px', '')));
5674 }
5675 break;
5676 case 40:
5677 //down
5678 var diff = 1;
5679
5680 for (var key in e2pdf.element.selected) {
5681 var selected = e2pdf.element.selected[key];
5682 if (parseFloat(selected.css('bottom')) > 0) {
5683 if (parseFloat(selected.css('bottom')) - 1 < 0) {
5684 diff = Math.min(diff, selected.css('bottom'));
5685 }
5686 } else {
5687 diff = Math.min(diff, 0);
5688 }
5689 }
5690
5691 for (var key in e2pdf.element.selected) {
5692 var selected = e2pdf.element.selected[key];
5693 selected.finish().animate({
5694 top: "+=" + diff
5695 }, 0);
5696 e2pdf.properties.set(selected, 'top', parseFloat(selected.css('top').replace('px', '')));
5697 }
5698 break;
5699 case 46://delete
5700
5701 var message = e2pdf.element.selected.length > 1 ? e2pdfLang['Elements will be removed! Are you sure want to continue?'] : e2pdfLang['Element will be removed! Are you sure want to continue?'];
5702 if (!confirm(message)) {
5703 e2pdf.delete('.e2pdf-context');
5704 return false;
5705 }
5706
5707 for (var key in e2pdf.element.selected) {
5708 var selected = e2pdf.element.selected[key];
5709 e2pdf.element.delete(selected);
5710 }
5711
5712 e2pdf.element.unselect();
5713 break;
5714 }
5715 }
5716 });
5717 });