PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.01.01
E2Pdf – Export Pdf Tool for WordPress v1.01.01
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.01.01, at js/e2pdf.backend.js

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