function log(d) {
if (console.log)console.log(d);
}
// prepend flash message into current element
// message: text message
// kind: string kind of message, default danger (success, danger, info, warning)
// sample: $("my_ele").flash_message("updated", "success");
jQuery(function(){
$.fn.flash_message = function(message, kind){
if(!kind) kind = !message ? "success" : "danger";
if(!message) message = I18n("msg.success_action", "Action completed successfully.");
var msg = '
'+message+'
';
$(this).prepend(msg);
return this;
}
});
/****************** form validations ************/
// panel can be a object: $("#my_form")
// if panel is null, then this will be replaced by body
// args: {validate_settings}
var init_form_validations = function (form, args) {
args = args || {};
// slug management
// you need to add class no_translate to avoid translations in slugs
(form ? form : $('#admin_content')).find('input.slug').each(function () {
var sl_id = $(this).attr("data-parent");
if (!sl_id) return;
var $parent = $('#' + sl_id);
if ($parent.hasClass('translated-item')) {
var $panel_parent = $parent.siblings('.trans_panel:first');
if ($(this).hasClass("no_translate")) {
$(this).slugify('#' + $panel_parent.find('.tab-content .tab-pane:first input:first').attr('id'));
} else {
$(this).addClass('translatable').Translatable(ADMIN_TRANSLATIONS);
var $panel_slug = $(this).siblings('.trans_panel:first');
$panel_parent.find('.tab-content .tab-pane').each(function (index, tab_pane) {
var p_id = $(tab_pane).children('input').attr('id');
$panel_slug.find('.tab-content .tab-pane:eq(' + index + ') input:first').slugify('#' + p_id);
})
$panel_parent.find('.nav > li a').each(function (index, a_tab) {
$(a_tab).click(function () {
$panel_slug.find('.nav > li:eq(' + index + ') a').click()
})
})
}
} else {
$(this).slugify('#' + sl_id);
}
});
(form ? form : $('#admin_content form')).each(function () {
var $form = $(this)
if ($form.find('.translatable').length > 0) {
$form.find('.translatable').Translatable();
}
}).filter(".validate").each(function () {
$(this).validate(args['validate_settings'])
});
};
// file uploader
(function ($) {
// sample:
// $(".upload_input").input_upload({label: '', title: 'Select Images', type: 'image', dimension: '30x30'});
$.fn.input_upload = function (options_init) {
var default_options = {label: I18n("msg.upload_image"), type: "image", ext: "none", icon: "upload", full_url: true, height: '100px'};
default_options = $.extend({}, default_options, options_init || {});
$(this).each(function () {
var $that = $(this);
var options = $.extend({}, default_options, $that.data() || {});
var $content_image = $("").hide();
if (options.type != 'image') $content_image.find('img').remove();
var $btn_upload = $(' ' + options.label + '')
$content_image.find('img').css('max-height', options.height);
$content_image.find(".rm-file").click(function(){ $that.val("").trigger("change"); return false; });
$btn_upload.click(function(){
$.fn.upload_filemanager({
formats: options.type,
selected: function (file, response) {
$that.val(file.url).trigger("change");
},
dimension: $that.attr('data-dimension') || options["dimension"],
versions: $that.attr('data-versions') || options["versions"],
thumb_size: $that.attr('data-thumb_size') || options["thumb_size"],
title: $that.attr('title') || options["title"],
});
return false;
});
$that.after($content_image).after($btn_upload);
$that.change(function(){
var url = $that.val();
if(url){
$content_image.find('img').attr('src', url);
$content_image.find('a').attr('href', url);
$content_image.show();
}else{
$content_image.hide();
}
}).trigger("change");
});
};
// create inline input file uploader with an icon to upload file
// options: all options needed for uploader
// you can add an attribute "data-format" in the input to define the file formats required
$.fn.input_upload_field = function (options) {
this.each(function () {
var input = $(this);
var def = {
formats: (input.attr("data-format") || "image"),
selected: function (file) {
input.val(file.url);
}
};
if (!input.parent().hasClass("input-group")) {
input.wrap('');
input.after(' ');
input.addClass("form-control");
}
input.next("span").click(function () {
$.fn.upload_filemanager($.extend({}, def, (options || {})));
});
});
}
})(jQuery);
// serialize form into json
!(function ($) { jQuery.fn.serializeObject = function () { var json = {}; jQuery.map(jQuery(this).serializeArray(), function (n, i) { var __i = n.name.indexOf('['); if (__i > -1) { var o = json; _name = n.name.replace(/\]/gi, '').split('['); for (var i = 0, len = _name.length; i < len; i++) { if (i == len - 1) { if (o[_name[i]] && $.trim(_name[i]) == '') { if (typeof o[_name[i]] == 'string') { o[_name[i]] = [o[_name[i]]]; } o[_name[i]].push(n.value); } else o[_name[i]] = n.value || ''; } else o = o[_name[i]] = o[_name[i]] || {}; } } else { if (json[n.name] !== undefined) { if (!json[n.name].push) { json[n.name] = [json[n.name]]; } json[n.name].push(n.value || ''); } else json[n.name] = n.value || ''; } }); return json; }; })(jQuery);
// jquery browser support
!function (a) { "function" == typeof define && define.amd ? define(["jquery"], function (b) { a(b) }) : "object" == typeof module && "object" == typeof module.exports ? module.exports = a(require("jquery")) : a(window.jQuery) }(function (a) { "use strict"; function b(a) { void 0 === a && (a = window.navigator.userAgent), a = a.toLowerCase(); var b = /(edge)\/([\w.]+)/.exec(a) || /(opr)[\/]([\w.]+)/.exec(a) || /(chrome)[ \/]([\w.]+)/.exec(a) || /(version)(applewebkit)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+).*(version)[ \/]([\w.]+).*(safari)[ \/]([\w.]+)/.exec(a) || /(webkit)[ \/]([\w.]+)/.exec(a) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a) || /(msie) ([\w.]+)/.exec(a) || a.indexOf("trident") >= 0 && /(rv)(?::| )([\w.]+)/.exec(a) || a.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a) || [], c = /(ipad)/.exec(a) || /(ipod)/.exec(a) || /(iphone)/.exec(a) || /(kindle)/.exec(a) || /(silk)/.exec(a) || /(android)/.exec(a) || /(windows phone)/.exec(a) || /(win)/.exec(a) || /(mac)/.exec(a) || /(linux)/.exec(a) || /(cros)/.exec(a) || /(playbook)/.exec(a) || /(bb)/.exec(a) || /(blackberry)/.exec(a) || [], d = {}, e = { browser: b[5] || b[3] || b[1] || "", version: b[2] || b[4] || "0", versionNumber: b[4] || b[2] || "0", platform: c[0] || ""}; if (e.browser && (d[e.browser] = !0, d.version = e.version, d.versionNumber = parseInt(e.versionNumber, 10)), e.platform && (d[e.platform] = !0), (d.android || d.bb || d.blackberry || d.ipad || d.iphone || d.ipod || d.kindle || d.playbook || d.silk || d["windows phone"]) && (d.mobile = !0), (d.cros || d.mac || d.linux || d.win) && (d.desktop = !0), (d.chrome || d.opr || d.safari) && (d.webkit = !0), d.rv || d.edge) { var f = "msie"; e.browser = f, d[f] = !0 } if (d.safari && d.blackberry) { var g = "blackberry"; e.browser = g, d[g] = !0 } if (d.safari && d.playbook) { var h = "playbook"; e.browser = h, d[h] = !0 } if (d.bb) { var i = "blackberry"; e.browser = i, d[i] = !0 } if (d.opr) { var j = "opera"; e.browser = j, d[j] = !0 } if (d.safari && d.android) { var k = "android"; e.browser = k, d[k] = !0 } if (d.safari && d.kindle) { var l = "kindle"; e.browser = l, d[l] = !0 } if (d.safari && d.silk) { var m = "silk"; e.browser = m, d[m] = !0 } return d.name = e.browser, d.platform = e.platform, d } return window.jQBrowser = b(window.navigator.userAgent), window.jQBrowser.uaMatch = b, a && (a.browser = window.jQBrowser), window.jQBrowser });