PluginProbe
E2Pdf – Export Pdf Tool for WordPress / 1.06.02
E2Pdf – Export Pdf Tool for WordPress v1.06.02
1.32.53 1.32.51 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 All 74 releases
e2pdf / js / e2pdf.backend.js

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

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