PATH:
home
/
letacommog
/
entrepro
/
wp-content
/
themes
/
rehub
/
vafpress-framework
/
public
/
js
/* ============================================================= * JQuery or Other Extension * ============================================================= */ "use strict"; jQuery.fn.getAttributes = function() { var attributes = {}; if (!this.length) return this; jQuery.each(this[0].attributes, function(index, attr) { attributes[attr.name] = attr.value; }); return attributes; }; jQuery.fn.getDatas = function() { var attributes = {}, prefix = "data-vp-"; if (!this.length) return this; jQuery.each(this[0].attributes, function(index, attr) { if (attr.name.substring(0, prefix.length) == prefix) { attributes[attr.name.substring(prefix.length)] = attr.value; } }); return attributes; }; jQuery.fn.exists = function () { return this.length !== 0; }; if (!String.prototype.trimChar) { String.prototype.trimChar = function(string) { return this.replace(new RegExp('^' + string + '+|' + string + '+$', 'g'), ''); }; } if (!String.prototype.format) { String.prototype.format = function() { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] != 'undefined' ? args[number] : match; }); }; } if (!String.prototype.replaceAll){ /** * ReplaceAll by Fagner Brack (MIT Licensed) * Replaces all occurrences of a substring in a string */ String.prototype.replaceAll = function(token, newToken, ignoreCase) { var str, i = -1, _token; if((str = this.toString()) && typeof token === "string") { _token = ignoreCase === true? token.toLowerCase() : undefined; while((i = ( _token !== undefined? str.toLowerCase().indexOf( _token, i >= 0? i + newToken.length : 0 ) : str.indexOf( token, i >= 0? i + newToken.length : 0 ) )) !== -1 ) { str = str.substring(0, i) .concat(newToken) .concat(str.substring(i + token.length)); } } return str; }; } // Validation Functions jQuery.fn.validationVal = function() { var $this = this, val = '', tagName = $this.prop('tagName'), checked; if (($this.length > 1 && $this.attr('type') != 'radio') || $this.attr('multiple')) { val = []; } var initialVal = val; $this.each(function(i) { var $field = jQuery(this); switch (tagName) { case 'SELECT': if ($field.has('[multiple]')) { val = $field.val(); } else { val = $field.val(); } break; case 'INPUT': switch ($this.attr('type')) { case 'text': val = $field.val(); break; case 'radio': checked = $field.prop('checked'); if (typeof checked !== 'undefined' && checked !== false) val = $field.val(); break; case 'checkbox': checked = $field.prop('checked'); if ($this.length > 1) { if (typeof checked !== 'undefined' && checked !== false) { val.push($field.val()); } // multiple } else { val = null; if (typeof checked !== 'undefined' && checked !== false) { val = $field.val(); } // multiple } break; } break; case 'TEXTAREA': val = $field.val(); break; default: val = $field.val(); break; } }); // quick fix trial if (val === null) val = initialVal; return val; }; // hidding plugin jQuery.fn.vp_slideUp = function(callback){ var $this = this; $this.each(function(i){ var $el = jQuery(this); if(!$el.hasClass('vp-hide')) { $el.slideUp('fast', function() { jQuery(this).addClass('vp-hide') .slideDown(0, callback); }); } }); }; jQuery.fn.vp_slideDown = function(callback){ var $this = this; $this.each(function(i){ var $el = jQuery(this); if($el.hasClass('vp-hide')) { $el.slideUp(0, function() { jQuery(this).removeClass('vp-hide') .slideDown('fast', callback); }); } }); }; jQuery.fn.vp_fadeOut = function(callback){ var $this = this; if(!$this.hasClass('vp-hide')) { $this.fadeOut('fast', function() { jQuery(this).addClass('vp-hide') .fadeIn(0, callback); }); } }; jQuery.fn.vp_fadeIn = function(callback){ var $this = this; if($this.hasClass('vp-hide')) { $this.fadeOut(0,function() { jQuery(this).removeClass('vp-hide') .fadeIn('fast', callback); }); } }; jQuery.fn.vp_toggle = function(callback){ var $this = this; if($this.hasClass('vp-hide')) { $this.slideUp(0,function() { jQuery(this).removeClass('vp-hide') .slideDown('fast', callback); }); } else { $this.slideUp('fast', function() { jQuery(this).addClass('vp-hide') .slideDown(0, callback); }); } }; /* * ============================================================= */ /** * ============================================================= * Vafpress function * ============================================================= */ /** * vafpress global namespace */ var vp = {}; vp.isNumber = function(n) { return !isNaN(parseFloat(n)) && isFinite(n); }; vp.parseOpt = function(optString) { var openIdx, closeIdx, temp, tempArr, opt = {}; for (var i = 0; i < optString.length; i++) { if (optString[i] == '(') { openIdx = i; } if (optString[i] == ')') { closeIdx = i; temp = optString.substring(openIdx + 1, closeIdx); tempArr = temp.split(':'); opt[tempArr[0]] = vp.isNumber(tempArr[1]) ? parseFloat(tempArr[1]) : tempArr[1]; } } return opt; }; vp.wp_ext2type = function ( ext ) { var ext2type = { image : ['jpg', 'jpeg', 'bmp', 'gif', 'png'], audio : ['aac', 'ac3', 'aif', 'aiff', 'm3a', 'm4a', 'm4b', 'mka', 'mp1', 'mp2', 'mp3', 'ogg', 'oga', 'ram', 'wav', 'wma'], video : ['asf', 'avi', 'divx', 'dv', 'flv', 'm4v', 'mkv', 'mov', 'mp4', 'mpeg', 'mpg', 'mpv', 'ogm', 'ogv', 'qt', 'rm', 'vob', 'wmv'], document : ['doc', 'docx', 'docm', 'dotm', 'odt', 'pages', 'pdf', 'rtf', 'wp', 'wpd'], spreadsheet : ['numbers', 'ods', 'xls', 'xlsx', 'xlsm', 'xlsb'], interactive : ['swf', 'key', 'ppt', 'pptx', 'pptm', 'pps', 'ppsx', 'ppsm', 'sldx', 'sldm', 'odp'], text : ['asc', 'csv', 'tsv', 'txt'], archive : ['bz2', 'cab', 'dmg', 'gz', 'rar', 'sea', 'sit', 'sqx', 'tar', 'tgz', 'zip', '7z'], code : ['css', 'htm', 'html', 'php', 'js'] }; var result = 'default'; for(var type in ext2type) { if(ext2type.hasOwnProperty(type)) { if(jQuery.inArray(ext, ext2type[type]) !== -1 ) { result = type; break; } } } return result; }; vp.get_url_extension = function(url){ var regex = new RegExp(/(.*)[\/\\]([^\/\\]+)\.(\w+)/i); var url_info = regex.exec(url); if(url_info) { if (typeof url_info[3] != 'undefined') { return url_info[3]; } } return ''; }; vp.jqid = function(id) { return '#' + id.replace(/([:\.\[\]])/g,'\\$1'); }; vp.jqidwild = function(id) { id = id.replace(/([:\.\[\]])/g,'\\$1'); id = '[id*=' + id + ']'; return id; }; vp.jqname = function(name) { return '[name="' + name + '"]'; }; vp.jqnamewild = function(name) { return '[name*="' + name + '"]'; }; vp.thejqid = function(id, thecase) { if(thecase === 'option') return vp.jqid(id); if(thecase === 'metabox') return vp.jqidwild(id); return id; }; vp.thejqname = function(name, thecase) { if(thecase === 'option') return vp.jqname(name); if(thecase === 'metabox') return vp.jqnamewild(name); return name; }; vp.validateAlphabet = function(type, val) { // ignore array and empty string, since they should be handled by 'required' rule if (val === '' || jQuery.isArray(val) || jQuery.inArray(type, vp_wp.alphabet_validatable) == -1) { return true; } var regex = new RegExp(/^[A-Z\s]+$/i); return regex.test(val); }; vp.validateAlphaNumeric = function(type, val) { // ignore array and empty string, since they should be handled by 'required' rule if (val === '' || jQuery.isArray(val) || jQuery.inArray(type, vp_wp.alphanumeric_validatable) == -1) { return true; } var regex = new RegExp(/^[A-Z0-9]+$/i); return regex.test(val); }; vp.validateNumeric = function(type, val) { // ignore array and empty string, since they should be handled by 'required' rule if (val === '' || jQuery.isArray(val) || jQuery.inArray(type, vp_wp.numeric_validatable) == -1) { return true; } var regex = new RegExp(/^[-+]?[0-9]*\.?[0-9]+$/); return regex.test(val); }; vp.validateEmail = function(type, val) { // ignore array and empty string, since they should be handled by 'required' rule if (val === '' || jQuery.isArray(val) || jQuery.inArray(type, vp_wp.email_validatable) == -1) { return true; } var regex = new RegExp(/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i); return regex.test(val); }; vp.validateURL = function(type, val) { // ignore array and empty string, since they should be handled by 'required' rule if (val === '' || jQuery.isArray(val) || jQuery.inArray(type, vp_wp.url_validatable) == -1) { return true; } var regex = new RegExp(/^(ftp|http|https):\/\/[^ "]+$/i); return regex.test(val); }; vp.validateMaxLength = function(type, val, n) { // ignore array if (jQuery.inArray(type, vp_wp.maxlength_validatable) != -1) { return true; } return (val.length <= n) ? true : false; }; vp.validateMinLength = function(type, val, n) { // ignore array if (jQuery.inArray(type, vp_wp.minlength_validatable) != -1) { return true; } return (val.length >= n) ? true : false; }; vp.validateRequired = function(type, val) { // only check if it's empty array, if it's not, it will go true anyway.. if (jQuery.isArray(val) && jQuery.isEmptyObject(val)) return false; return (val) ? true : false; }; // validation function loop vp.fields_validation_loop = function(fields){ var msgHTML = '<li class="validation-msg vp-error"></li>', errors = 0; for (var i = 0; i < fields.length; i++) { var field = fields[i], $tr = jQuery(vp.jqid(field.name)), $parent = $tr.parents('.vp-meta-group').exists() ? $tr.parents('.vp-meta-group') : $tr.parents('.vp-section'); // if field is now deleted and not found if($tr.length <= 0) continue; // if field is inactive due to dependencies mechanism if($tr.hasClass('vp-dep-inactive') || ($parent.exists() && $parent.hasClass('vp-dep-inactive'))) continue; var $msgs = $tr.children('div.field').children('.validation-msgs').children('ul'), $input = jQuery('[name="' + field.name + '"]'), val = $input.validationVal(), type = field.type, rules = field.rules.split('|'); field.nError = 0; for (var j = 0; j < rules.length; j++) { var rule = rules[j], q1 = rule.indexOf('['), q2 = rule.indexOf(']'), def = (q1 >= 0) ? rule.substring(0, q1) : rule, res = '', n; switch (def) { case 'alphabet': if (!vp.validateAlphabet(type, val)) { res = vp_wp.val_msg.alphabet.format(); } break; case 'alphanumeric': if (!vp.validateAlphaNumeric(type, val)) { res = vp_wp.val_msg.alphanumeric.format(); } break; case 'numeric': if (!vp.validateNumeric(type, val)) { res = vp_wp.val_msg.numeric.format(); } break; case 'email': if (!vp.validateEmail(type, val)) { res = vp_wp.val_msg.email.format(); } break; case 'url': if (!vp.validateURL(type, val)) { res = vp_wp.val_msg.url.format(); } break; case 'maxlength': n = rule.substring(q1 + 1, q2); if (!vp.validateMaxLength(type, val, n)) { res = vp_wp.val_msg.maxlength.format(n); } break; case 'minlength': n = rule.substring(q1 + 1, q2); if (!vp.validateMinLength(type, val, n)) { res= vp_wp.val_msg.minlength.format(n); } break; case 'maxselected': n = rule.substring(q1 + 1, q2); if (!vp.validateMaxLength(type, val, n)) { res = vp_wp.val_msg.maxselected.format(n); } break; case 'minselected': n = rule.substring(q1 + 1, q2); if (!vp.validateMinLength(type, val, n)) { res= vp_wp.val_msg.minselected.format(n); } break; case 'required': if (!vp.validateRequired(type, val)) { res = vp_wp.val_msg.required.format(); } break; } if (res !== '') { // push into errors pool field.nError += 1; // set message var $msg = jQuery(msgHTML); $msg.html(res); $msg.appendTo($msgs); } } if (field.nError > 0) { errors += 1; $tr.addClass('vp-error'); } } return errors; }; // custom checkbox and radiobutton handler vp.custom_check_radio_event = function(parent, selector){ jQuery(parent).delegate(selector, "click", function(e){ e.preventDefault(); var $control = jQuery(this).find('input'), type = $control.attr('type'); if(type == 'radio') { jQuery(this).parent().parent().find('input').each(function(i){ jQuery(this).removeClass('checked'); $control.prop('checked', false); }); $control.prop('checked', true).change(); } else if(type == 'checkbox') { if ($control.is(':checked')) $control.prop('checked', false); else $control.prop('checked', true); $control.trigger('change'); } }); jQuery(parent).delegate(selector, "change", function(e){ e.preventDefault(); var $control = jQuery(this).find('input'); if ($control.is(':checked')) $control.addClass('checked'); else $control.removeClass('checked'); }); }; // vafpress binding related functions vp.binding_action = function(ids, field, func, thecase) { var $source_tr = jQuery(vp.jqid(field.source)), $source = jQuery('[name="' + field.source + '"]'), values = []; for (var i = 0; i < ids.length; i++) { var val = jQuery(vp.thejqname(ids[i], thecase)).validationVal(); if (jQuery.isArray(val) && val.length == 0) { val = null; } values.push(val); } var data = { action : 'vp_ajax_wrapper', func : func, params : values }; // get loader var $loader = $source_tr.find('.vp-js-bind-loader'), $input = $source_tr.find('.input'); if (field.type == 'vp-html') { $loader.vp_fadeIn(); } else { $input.vp_fadeOut(function(){ $loader.vp_fadeIn(); }); } jQuery.post(ajaxurl, data, function(response) { $loader.vp_fadeOut(function(){ $input.vp_fadeIn(); }); if (response.status) { var data; switch(field.type) { case 'vp-select': case 'vp-multiselect': $source = jQuery('[name="' + field.source + '"]'); if(response.data !== null) { data = response.data instanceof Array ? response.data : [response.data]; $source.val(data).change(); } break; case 'vp-checkbox': if(response.data !== null) { data = response.data instanceof Array ? response.data : [response.data]; $source.prop('checked', false).change(); jQuery.each(data, function(key, value) { $source.filter('[value="'+ value +'"]').prop('checked', true).change(); }); } break; case 'vp-toggle': if(response.data !== null) { if(response.data) $source.prop('checked', true).change(); else $source.prop('checked', false).change(); } break; case 'vp-checkimage': if(response.data !== null) { data = response.data instanceof Array ? response.data : [response.data]; $source.prop('checked', false).change(); jQuery.each(data, function(key, value) { $source.filter('[value="'+ value +'"]').prop('checked', true).change(); }); } vp.init_tipsy(); break; case 'vp-radiobutton': if(response.data !== null) { data = response.data instanceof Array ? response.data : [response.data]; $source.prop('checked', false).change(); jQuery.each(data, function(key, value) { $source.filter('[value="'+ value +'"]').prop('checked', true).change(); }); } break; case 'vp-radioimage': if(response.data !== null) { data = response.data instanceof Array ? response.data : [response.data]; $source.prop('checked', false).change(); jQuery.each(data, function(key, value) { $source.filter('[value="'+ value +'"]').prop('checked', true).change(); }); } vp.init_tipsy(); break; case 'vp-html': if(response.data !== null) { jQuery(vp.jqid(field.source + '_dom')).html(response.data); jQuery(vp.jqname(field.source)).val(response.data); } break; default: $source = jQuery(vp.jqname(field.source)); $source.val(response.data); } jQuery('[name="' + field.source + '"]:first').keypress().keyup().change().blur(); } }, 'JSON'); }; vp.binding_event = function(ids, idx, field, func, parent, thecase) { var change = ['vp-select', 'vp-checkbox', 'vp-checkimage', 'vp-radiobutton', 'vp-radioimage', 'vp-multiselect', 'vp-toggle', 'vp-upload'], typing = ['vp-textbox', 'vp-slider', 'vp-color', 'vp-date'], name = vp.thejqname(ids[idx], thecase), dest_type = jQuery(vp.thejqid(ids[idx], thecase)).attr('data-vp-type'); if(jQuery.inArray(dest_type, change) !== -1 ) { jQuery(parent).delegate(name, 'change', function(){vp.binding_action(ids, field, func, thecase);}); } else if(jQuery.inArray(dest_type, typing) !== -1 ) { jQuery(name).typing({ stop: function(event, $elem){ vp.binding_action(ids, field, func, thecase); }, delay: 400 }); } else { jQuery(parent).delegate(name, 'change', function(){vp.binding_action(ids, field, func, thecase);}); } }; /* * ============================================================= */ // vafpress binding related functions vp.items_binding_action = function(ids, field, func, thecase) { var $source_tr = jQuery(vp.jqid(field.source)), $source = jQuery('[name="' + field.source + '"]'), values = []; for (var i = 0; i < ids.length; i++) { values.push(jQuery(vp.thejqname(ids[i], thecase)).validationVal()); } var data = { action : 'vp_ajax_wrapper', func : func, params : values }; // get loader var $loader = $source_tr.find('.vp-js-bind-loader'), $input = $source_tr.find('.input'); $input.vp_fadeOut(function(){ $loader.vp_fadeIn(); }); jQuery.post(ajaxurl, data, function(response) { $loader.vp_fadeOut(function(){ $input.vp_fadeIn(); }); if (response.status) { var $source; switch(field.type) { case 'vp-select': case 'vp-multiselect': $source = jQuery('[name="' + field.source + '"]'); $source.empty(); $source.append(jQuery("<option></option>")); response.data !== null && jQuery.each(response.data, function(key, value) { $source .append(jQuery("<option></option>") .attr("value",value.value) .text(value.label)); }); break; case 'vp-checkbox': $source = $input; $source.empty(); $source = jQuery(vp.jqid(field.source)).find('.input'); response.data !== null && jQuery.each(response.data, function(key, value) { $source.append(jQuery('<label><input class="vp-input" type="checkbox" name="' + field.source + '" value="' + value.value + '"><span></span>'+ value.label + '</label>')); }); break; case 'vp-checkimage': $source = $input; $source.empty(); $source = jQuery(vp.jqid(field.source)).find('.input'); response.data !== null && jQuery.each(response.data, function(key, value) { $source.append(jQuery('<label><input class="vp-input" type="checkbox" name="' + field.source + '" value="' + value.value + '"><img src="' + value.img + '" alt="' + value.label + '" class="vp-js-tipsy image-item" style="" original-title="' + value.value + '"></label>')); }); vp.init_tipsy(); break; case 'vp-radiobutton': $source = $input; $source.empty(); $source = jQuery(vp.jqid(field.source)).find('.input'); response.data !== null && jQuery.each(response.data, function(key, value) { $source.append(jQuery('<label><input class="vp-input" type="radio" name="' + field.source + '" value="' + value.value + '"><span></span>'+ value.label + '</label>')); }); break; case 'vp-radioimage': $source = $input; $source.empty(); $source = jQuery(vp.jqid(field.source)).find('.input'); response.data !== null && jQuery.each(response.data, function(key, value) { $source.append(jQuery('<label><input class="vp-input" type="radio" name="' + field.source + '" value="' + value.value + '"><img src="' + value.img + '" alt="' + value.label + '" class="vp-js-tipsy image-item" style="" original-title="' + value.value + '"></label>')); }); vp.init_tipsy(); break; } jQuery('[name="' + field.source + '"]:first').change().blur(); } }, 'JSON'); }; vp.items_binding_event = function(ids, idx, field, func, parent, thecase) { var change = ['vp-select', 'vp-checkbox', 'vp-checkimage', 'vp-radiobutton', 'vp-radioimage', 'vp-multiselect', 'vp-toggle', 'vp-upload'], typing = ['vp-textbox', 'vp-slider', 'vp-color', 'vp-date'], name = vp.thejqname(ids[idx], thecase), dest_type = jQuery(vp.thejqid(ids[idx], thecase)).attr('data-vp-type'); if(jQuery.inArray(dest_type, change) !== -1 ) { jQuery(parent).delegate(name, 'change', function(){vp.items_binding_action(ids, field, func, thecase);}); } else if(jQuery.inArray(dest_type, typing) !== -1 ) { jQuery(name).typing({ stop: function(event, $elem){ vp.items_binding_action(ids, field, func, thecase); }, delay: 400 }); } else { jQuery(parent).delegate(name, 'change', function(){vp.binding_action(ids, field, func, thecase);}); } }; /* * ============================================================= */ // vafpress dependencies related functions vp.dependency_action = function(ids, field, func) { var $source_tr = jQuery(vp.jqid(field.source)), $source = jQuery('[name="' + field.source + '"]'), values = [], targets = []; for (var i = 0; i < ids.length; i++) { targets.push(jQuery(vp.jqid(ids[i]))); values.push(jQuery('[name="' + ids[i] + '"]').validationVal()); } var data = { action : 'vp_ajax_wrapper', func : func, params : values }; // get loader jQuery.each(targets, function(idx, val){ var $loader = val.find('.vp-js-bind-loader'); $loader.vp_fadeIn(); }); jQuery.post(ajaxurl, data, function(response) { jQuery.each(targets, function(idx, val){ var $loader = val.find('.vp-js-bind-loader'); $loader.vp_fadeOut(); }); if (response.status) { if(response.data) { $source_tr.removeClass('vp-dep-inactive'); $source_tr.vp_fadeIn(); } else { $source_tr.addClass('vp-dep-inactive'); $source_tr.vp_fadeOut(); } } }, 'JSON'); }; vp.dependency_event = function(ids, idx, field, func, parent){ var change = ['vp-select', 'vp-checkbox', 'vp-checkimage', 'vp-radiobutton', 'vp-radioimage', 'vp-multiselect', 'vp-toggle', 'vp-upload'], typing = ['vp-textbox', 'vp-slider', 'vp-color', 'vp-date'], name = vp.thejqname(ids[idx], 'option'), dest_type = jQuery(vp.thejqid(ids[idx], 'option')).attr('data-vp-type'); if(jQuery.inArray(dest_type, change) !== -1 ) { jQuery(parent).delegate(name, 'change', function(){vp.dependency_action(ids, field, func);}); } else if(jQuery.inArray(dest_type, typing) !== -1 ) { jQuery(name).typing({ stop: function(event, $elem){ vp.dependency_action(ids, field, func); }, delay: 400 }); } else { jQuery(parent).delegate(name, 'change', function(){vp.binding_action(ids, field, func, thecase);}); } }; /* * ============================================================= */ /** * ============================================================= * Control Fields JS Trigering * ============================================================= */ function theValidate(elem, options, $slider) { var $this = jQuery(elem), val = $this.val(); if(val === '') return; if (!vp.validateNumeric('vp-textbox', val)) { $this.val(options.min); $slider.slider('value', options.min); } if (val > options.max) { $this.val(options.max); $slider.slider('value', options.max); } else if (val < options.min) { $this.val(options.min); $slider.slider('value', options.min); } else { $slider.slider('value', $this.val()); } } vp.init_slider = function($elements) { if (jQuery.fn.slider) { $elements.each(function(i, el) { var $slider = jQuery(this), options = jQuery(this).getDatas(); options = vp.parseOpt(options.opt); options.range = 'min'; options.slide = function(event, ui) { $slider.prev('.slideinput').val(ui.value); $slider.prev('.slideinput').trigger('keypress'); $slider.prev('.slideinput').trigger('keyup'); }; $slider.slider(options); $slider.prev('.slideinput').keypress(function(e) { var charCode = (typeof e.which == "number") ? e.which : e.keyCode; if (e.altKey || e.ctrlKey || e.shiftKey) return true; if (jQuery.inArray(charCode, [45, 46, 8, 0]) != -1 || (charCode >= 48 && charCode <= 57) ) return true; return false; }) .blur(function(e){ theValidate(this, options, $slider); $slider.prev('.slideinput').keypress().keyup(); }) }); } }; vp.upload_callback = function() {}; if ( vp_wp.use_new_media_upload ) { var _orig_send_attachment = wp.media.editor.send.attachment, _orig_send_link = wp.media.editor.send.link, _orig_send_to_editor = window.send_to_editor; vp.upload_callback = function(e) { var $this = jQuery(this), $input = $this.parent('.buttons').prev('input'), $preview = $this.parent('.buttons').siblings('.image').find('img'); // handler for attachment wp.media.editor.send.attachment = function(props, attachment) { $input.val(attachment.url); $input.trigger('change'); if(attachment.type === 'image') $preview.attr('src', attachment.url); else $preview.attr('src', attachment.icon); wp.media.editor.send.attachment = _orig_send_attachment; window.send_to_editor = _orig_send_to_editor; }; // handler for link window.send_to_editor = function(html) { if (html !== '') { var info = get_url_info(html); $input.val(info.imgurl); $input.trigger('change'); $preview.attr('src', info.iconurl); } window.send_to_editor = _orig_send_to_editor; wp.media.editor.send.attachment = _orig_send_attachment; }; wp.media.editor.open($this); return false; }; } else { var _orig_send_to_editor = window.send_to_editor; vp.upload_callback = function(e) { var _custom_media = true, $input = jQuery(this).parent('.buttons').prev('input'), $preview = jQuery(this).parent('.buttons').siblings('.image').find('img'); tb_show('Upload Image', 'media-upload.php?&post_id=0&referer=vafpress&TB_iframe=true'); window.send_to_editor = function(html) { if (html !== '') { var info = get_url_info(html); $input.val(info.imgurl); $input.trigger('change'); $preview.attr('src', info.iconurl); } window.send_to_editor = _orig_send_to_editor; tb_remove(); }; return false; }; } function get_url_info(html) { var ext, type, imgurl, iconurl, $el = jQuery(html); if ($el.prop('tagName') == 'A') { imgurl = jQuery(html).attr('href'); ext = vp.get_url_extension(imgurl); type = vp.wp_ext2type(ext); iconurl = imgurl; if(type !== 'image') { iconurl = vp_wp.wp_include_url + 'images/crystal/' + type + '.png' ; } } else if($el.prop('tagName') == 'IMG') { imgurl = jQuery(html).attr('src'); iconurl = imgurl; } return {imgurl: imgurl, iconurl: iconurl}; } vp.remove_upload_callback = function(e) { var $this = jQuery(this), $input = $this.parent('.buttons').prev('input'), $preview = $this.parent('.buttons').siblings('.image').find('img'); $input.val(''); $preview.attr('src', ''); }; jQuery(document).on('click', '.vp-js-upload', vp.upload_callback); jQuery(document).on('click', '.vp-js-remove-upload', vp.remove_upload_callback); vp.init_colorpicker = function($elements) { if (jQuery.fn.colorpicker) { if($elements.length <= 0) return; $elements.each(function() { var $colorpicker = jQuery(this), options = jQuery(this).getDatas(); options = vp.parseOpt(options.opt); $colorpicker.colorpicker({ format: options.format }).on('changeColor', function(ev){ var color; if(options.format == 'hex') { color = ev.color.toHex(); } else if(options.format == 'rgba') { color = ev.color.toRGB(); color = 'rgba(' + color.r + ',' + color.g + ',' + color.b + ',' + color.a + ')'; } else if(options.format == 'rgb') { color = ev.color.toRGB(); color = 'rgb(' + color.r + ',' + color.g + ',' + color.b + ')'; } $colorpicker.prev('label').find('span').css('background-color', color); }).on('blur', function(ev){ $colorpicker.prev('label').find('span').css('background-color', $colorpicker.val()); $colorpicker.keypress().keyup(); }); }); } }; vp.init_datepicker = function($elements) { if (jQuery.fn.datepicker) { if($elements.length <= 0) return; $elements.each(function() { var options = jQuery(this).getDatas(); options = vp.parseOpt(options.opt); options.onSelect = function(){ jQuery(this).trigger('keypress'); jQuery(this).trigger('keyup'); jQuery(this).trigger('blur'); }; jQuery(this).datepicker(options); jQuery(this).datepicker('setDate', options.value); }); } }; vp.init_controls = function($parent) { // init date picker vp.init_datepicker($parent.find('.vp-js-datepicker')); vp.init_fontawesome_chooser($parent.find('.vp-js-fontawesome')); vp.init_select2($parent.find('.vp-js-select2')); vp.init_sorter($parent.find('.vp-js-sorter')); vp.init_colorpicker($parent.find('.vp-js-colorpicker')); vp.init_slider($parent.find('.vp-js-slider')); vp.init_ace_editor($parent.find('.vp-js-codeeditor')); vp.init_wpeditor($parent.find('.vp-js-wpeditor')); }; // Fontawesome Chooser vp.init_fontawesome_chooser = function($elements) { if (jQuery.fn.select2) { if($elements.length <= 0) return; var format = function vp_fontawesome_chooser_format(icon){ return '<span class="fontawesome"><i class="far ' + icon.id + '"></i>' + icon.text + '</span>'; }; $elements.select2({ formatResult: format, formatSelection: format, escapeMarkup: function(m) { return m; }, allowClear: true, placeholder: vp_wp.ctrl_msg.fac_placeholder }); } }; // Select2 vp.init_select2 = function($elements) { if (jQuery.fn.select2) { if($elements.length <= 0) return; $elements.select2({allowClear: true, placeholder: vp_wp.ctrl_msg.select2_placeholder}); } }; // Sorter vp.init_sorter = function($elements) { if (jQuery.fn.select2Sortable) { if($elements.length <= 0) return; $elements.each(function(i, el) { var $el = jQuery(el), options = $el.getDatas(); options = vp.parseOpt(options.opt); $el.select2(options).select2Sortable({bindOrder: 'sortableStop'}); }); } }; // Tipsy vp.init_tipsy = function() { if (jQuery.fn.tipsy) { jQuery('.vp-js-tipsy.description').tipsy({ live: true, gravity : 'e' }); jQuery('.vp-js-tipsy.slideinput').tipsy({ live: true, trigger : 'focus' }); jQuery('.vp-js-tipsy.image-item').tipsy({ live: true }); } }; vp.init_tipsy(); // Init Sorter vp.init_ace_editor = function($elements) { if(window.ace !== 'undefined') { if($elements.length <= 0) return; $elements.each(function() { var editor = ace.edit(jQuery(this).get(0)); var textarea = jQuery(this).prev(); var options = jQuery(this).getDatas(); options = vp.parseOpt(options.opt); // set theme editor.setTheme("ace/theme/" + options.theme); // set language mode if specified if( options.mode ) { editor.getSession().setMode("ace/mode/" + options.mode); } editor.getSession().setUseWrapMode( true ); editor.setShowPrintMargin( false ); editor.getSession().setValue(textarea.val()); editor.getSession().on('change', function(){ textarea.val(editor.getSession().getValue()); }); textarea.on('change', function(){ editor.getSession().setValue(textarea.val()); }); }); } }; // Init WP TinyMCE Editor if(typeof window.KIA_metabox !== 'undefined') { KIA_metabox.mediaButtons(); } vp.init_wpeditor = function($elements) { if(typeof window.KIA_metabox !== 'undefined') { if($elements.length <= 0) return; KIA_metabox.runTinyMCE($elements); } }; vp.tinyMCE_save = function() { if(typeof window.tinyMCE !== 'undefined') { tinyMCE.triggerSave(false, true); } };
[+]
..
[+]
vendor
[-] shortcode-quicktags.js
[edit]
[-] shared.js
[edit]
[-] shortcode-menu.js
[edit]
[-] metabox.js
[edit]
[-] metabox.min.js
[edit]
[-] option.min.js
[edit]
[-] option.js
[edit]
[-] shared.min.js
[edit]
[-] dummy.js
[edit]
[-] shortcodes.js
[edit]
[-] kia-metabox.js
[edit]