allianceauth/static/admin/js/inlines.min.js
2014-10-26 16:47:21 -07:00

108 lines
6.4 KiB
JavaScript

(function (b) {
b.fn.formset = function (d) {
var a = b.extend({}, b.fn.formset.defaults, d), c = b(this), d = c.parent(), i = function (a, e, g) {
var d = RegExp("(" + e + "-(\\d+|__prefix__))"), e = e + "-" + g;
b(a).prop("for") && b(a).prop("for", b(a).prop("for").replace(d, e));
a.id && (a.id = a.id.replace(d, e));
a.name && (a.name = a.name.replace(d, e))
}, f = b("#id_" + a.prefix + "-TOTAL_FORMS").prop("autocomplete", "off"), g = parseInt(f.val(), 10), e = b("#id_" + a.prefix + "-MAX_NUM_FORMS").prop("autocomplete", "off"), f = "" === e.val() || 0 < e.val() - f.val();
c.each(function () {
b(this).not("." +
a.emptyCssClass).addClass(a.formCssClass)
});
if (c.length && f) {
var h;
"TR" == c.prop("tagName") ? (c = this.eq(-1).children().length, d.append('<tr class="' + a.addCssClass + '"><td colspan="' + c + '"><a href="javascript:void(0)">' + a.addText + "</a></tr>"), h = d.find("tr:last a")) : (c.filter(":last").after('<div class="' + a.addCssClass + '"><a href="javascript:void(0)">' + a.addText + "</a></div>"), h = c.filter(":last").next().find("a"));
h.click(function (d) {
d.preventDefault();
var f = b("#id_" + a.prefix + "-TOTAL_FORMS"), d = b("#" + a.prefix +
"-empty"), c = d.clone(true);
c.removeClass(a.emptyCssClass).addClass(a.formCssClass).attr("id", a.prefix + "-" + g);
c.is("tr") ? c.children(":last").append('<div><a class="' + a.deleteCssClass + '" href="javascript:void(0)">' + a.deleteText + "</a></div>") : c.is("ul") || c.is("ol") ? c.append('<li><a class="' + a.deleteCssClass + '" href="javascript:void(0)">' + a.deleteText + "</a></li>") : c.children(":first").append('<span><a class="' + a.deleteCssClass + '" href="javascript:void(0)">' + a.deleteText + "</a></span>");
c.find("*").each(function () {
i(this,
a.prefix, f.val())
});
c.insertBefore(b(d));
b(f).val(parseInt(f.val(), 10) + 1);
g = g + 1;
e.val() !== "" && e.val() - f.val() <= 0 && h.parent().hide();
c.find("a." + a.deleteCssClass).click(function (d) {
d.preventDefault();
d = b(this).parents("." + a.formCssClass);
d.remove();
g = g - 1;
a.removed && a.removed(d);
d = b("." + a.formCssClass);
b("#id_" + a.prefix + "-TOTAL_FORMS").val(d.length);
(e.val() === "" || e.val() - d.length > 0) && h.parent().show();
for (var c = 0, f = d.length; c < f; c++) {
i(b(d).get(c), a.prefix, c);
b(d.get(c)).find("*").each(function () {
i(this,
a.prefix, c)
})
}
});
a.added && a.added(c)
})
}
return this
};
b.fn.formset.defaults = {prefix: "form", addText: "add another", deleteText: "remove", addCssClass: "add-row", deleteCssClass: "delete-row", emptyCssClass: "empty-row", formCssClass: "dynamic-form", added: null, removed: null};
b.fn.tabularFormset = function (d) {
var a = b(this), c = function () {
b(a.selector).not(".add-row").removeClass("row1 row2").filter(":even").addClass("row1").end().filter(":odd").addClass("row2")
};
a.formset({prefix: d.prefix, addText: d.addText, formCssClass: "dynamic-" +
d.prefix, deleteCssClass: "inline-deletelink", deleteText: d.deleteText, emptyCssClass: "empty-form", removed: c, added: function (a) {
a.find(".prepopulated_field").each(function () {
var d = b(this).find("input, select, textarea"), c = d.data("dependency_list") || [], e = [];
b.each(c, function (d, b) {
e.push("#" + a.find(".field-" + b).find("input, select, textarea").attr("id"))
});
e.length && d.prepopulate(e, d.attr("maxlength"))
});
"undefined" != typeof DateTimeShortcuts && (b(".datetimeshortcuts").remove(), DateTimeShortcuts.init());
"undefined" != typeof SelectFilter && (b(".selectfilter").each(function (a, b) {
var c = b.name.split("-");
SelectFilter.init(b.id, c[c.length - 1], false, d.adminStaticPrefix)
}), b(".selectfilterstacked").each(function (a, b) {
var c = b.name.split("-");
SelectFilter.init(b.id, c[c.length - 1], true, d.adminStaticPrefix)
}));
c(a)
}});
return a
};
b.fn.stackedFormset = function (d) {
var a = b(this), c = function () {
b(a.selector).find(".inline_label").each(function (a) {
a += 1;
b(this).html(b(this).html().replace(/(#\d+)/g, "#" + a))
})
};
a.formset({prefix: d.prefix,
addText: d.addText, formCssClass: "dynamic-" + d.prefix, deleteCssClass: "inline-deletelink", deleteText: d.deleteText, emptyCssClass: "empty-form", removed: c, added: function (a) {
a.find(".prepopulated_field").each(function () {
var d = b(this).find("input, select, textarea"), c = d.data("dependency_list") || [], e = [];
b.each(c, function (d, b) {
e.push("#" + a.find(".form-row .field-" + b).find("input, select, textarea").attr("id"))
});
e.length && d.prepopulate(e, d.attr("maxlength"))
});
"undefined" != typeof DateTimeShortcuts && (b(".datetimeshortcuts").remove(),
DateTimeShortcuts.init());
"undefined" != typeof SelectFilter && (b(".selectfilter").each(function (a, b) {
var c = b.name.split("-");
SelectFilter.init(b.id, c[c.length - 1], false, d.adminStaticPrefix)
}), b(".selectfilterstacked").each(function (a, b) {
var c = b.name.split("-");
SelectFilter.init(b.id, c[c.length - 1], true, d.adminStaticPrefix)
}));
c(a)
}});
return a
}
})(django.jQuery);