summaryrefslogtreecommitdiff
path: root/app/lib/grappelli/media/js/grappelli.change_list.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/lib/grappelli/media/js/grappelli.change_list.js')
-rw-r--r--app/lib/grappelli/media/js/grappelli.change_list.js317
1 files changed, 0 insertions, 317 deletions
diff --git a/app/lib/grappelli/media/js/grappelli.change_list.js b/app/lib/grappelli/media/js/grappelli.change_list.js
deleted file mode 100644
index 3a8c967..0000000
--- a/app/lib/grappelli/media/js/grappelli.change_list.js
+++ /dev/null
@@ -1,317 +0,0 @@
-/**
- * manages all interactions in the admin change_list
- */
-(function($) {
- $.fn.change_list = function(opts) {
- var options = $.extend({}, $.fn.change_list.defaults, opts),
- actionCheckboxes = $(options.actionCheckboxes);
-
- checker = function(checked) {
- if (checked) {
- showQuestion();
- } else {
- reset();
- }
- actionCheckboxes.attr("checked", checked).parent().parent().toggleClass(options.selectedClass, checked);
- };
-
- updateCounter = function() {
- var count = actionCheckboxes.filter(":checked").length;
-
- if (count > 0) {
- hideSubmitFooter();
- $(options.actionContainer).show();
- } else {
- $(options.actionContainer).hide();
- showSubmitFooter();
- }
-
- if ($(options.actionContainer).find("span._acnt").length > 0) {
- $(options.actionContainer).find("span._acnt").html(count);
- } else {
- var actionCounter = $(options.actionContainer).find("span.action-counter"),
- text = actionCounter.html();
- actionCounter.html('<span class="_acnt">' + count + '</span>' + text.substring(1));
- }
-
- $(options.allToggle).attr("checked", function() {
- if (count == actionCheckboxes.length) {
- value = true;
- showQuestion();
- } else {
- value = false;
- clearAcross();
- }
- return value;
- });
- };
-
- showQuestion = function() {
- $(options.acrossClears).hide();
- $(options.acrossQuestions).show();
- $(options.allContainer).hide();
- };
-
- showClear = function() {
- $(options.acrossClears).show();
- $(options.allContainer).show();
-
- $(options.acrossQuestions).hide();
- $(options.counterContainer).hide();
-
- $(options.actionContainer).toggleClass(options.selectedClass);
- };
-
- reset = function() {
- $(options.acrossClears).hide();
- $(options.acrossQuestions).hide();
- $(options.allContainer).hide();
- $(options.counterContainer).show();
- };
-
- clearAcross = function() {
- reset();
- $(options.acrossInput).val(0);
- $(options.actionContainer).removeClass(options.selectedClass);
- };
-
- clearSelection = function() {
- $(options.allToggle).attr("checked", false);
- clearAcross();
- checker(false);
- updateCounter();
- };
-
- initializeFlexibleLayout = function(content) {
- var SpanGrid,
- PaddingRight,
- MarginRight;
- $('#content').addClass('content-flexible');
- $(content).find('.span-flexible').next('.column').parent().addClass('layout-flexible-grid');
- $(content).find('.column').next('.span-flexible').parent().addClass('layout-grid-flexible');
- $(content).append('<br clear="all" />');
- // Layout Flexible + Grid
- if ($(content).hasClass('layout-flexible-grid')) {
- SpanGrid = $(content).find('.span-flexible').next('.column').outerWidth();
- PaddingRight = SpanGrid + 20;
- MarginRight = - SpanGrid - 20;
- $(content).css({
- 'padding-right': PaddingRight
- });
- $(content).find('.span-flexible').next('.column').css({
- 'margin-right': -10000
- });
- }
- // Layout Grid + Flexible
- if ($(content).hasClass('layout-grid-flexible')) {
- SpanGrid = $(content).find('.span-flexible').prev('.column').outerWidth();
- PaddingLeft = SpanGrid + 20;
- MarginLeft = - SpanGrid - 20;
- $(content).css({
- 'padding-left': PaddingLeft
- });
- $(content).find('.span-flexible').prev('.column').css({
- 'margin-left': MarginLeft
- });
- }
- };
-
- HorizontalOverflow = function(content) {
- var TableWidth = $(content).find('table').outerWidth();
- var SpanFlexibleWidth = $(content).find('.span-flexible').outerWidth();
- if (TableWidth > SpanFlexibleWidth) {
- $(content).find('.span-flexible').css({
- 'min-width' : TableWidth + 1 + 'px'
- });
- $(content).find('.span-flexible').next('.column').css({
- 'border-right' : '20px solid transparent'
- });
- }
- if (TableWidth < SpanFlexibleWidth) {
- $(content).find('.span-flexible').css({
- 'min-width': 'auto'
- });
- }
- };
-
- ModifyTableElements = function() {
- // UGLY HACK: add no-wrap to table-elements
- // should be there already.
- $('.changelist-results a.add-another').parent().addClass('nowrap');
- };
-
- initFilter = function() {
- $("a.toggle-filters").click(function() {
- $(".filter-pulldown").toggle();
- $("#filters").toggleClass("open");
- });
-
- $(".filter_choice").change(function(){
- location.href = $(this).val();
- });
-
- var filter_choice = $(".filter_choice");
-
- for (var i = 0; i < filter_choice.length; i++) {
- if (!$(filter_choice[i]).find(':first-child').attr('selected')) {
- $("#filters").addClass('selected');
- }
- }
- };
-
- initLayout = function() {
- initializeFlexibleLayout('.container-flexible');
-
- $(window).resize(function(){
- HorizontalOverflow('.container-flexible');
- });
-
- //window.onload = function () {
- HorizontalOverflow('.container-flexible');
- //};
- };
-
- showSubmitFooter = function() {
- $("div#submit").show();
-
- // need to uncheck all actions checkboxes and update counter
- // (actions are not working if you want to edit items in the change_list)
-
- //actionCheckboxes.attr("checked", false);
- //clearSelection();
- };
-
- hideSubmitFooter = function() {
- $("div#submit").hide();
- };
-
- // Show counter by default
- $(options.counterContainer).show();
-
- $(options.allToggle).show().click(function() {
- checker($(this).attr("checked"));
- updateCounter();
- });
-
- $("div.changelist-actions li.question a").click(function(event) {
- event.preventDefault();
- $(options.acrossInput).val(1);
- showClear();
- });
-
- $("div.changelist-actions li.clear-selection a").click(function(event) {
- event.preventDefault();
- clearSelection();
- });
-
- lastChecked = null;
- actionCheckboxes.click(function(event) {
- if (!event) {
- event = window.event;
- }
- var target = event.target ? event.target : event.srcElement;
- if (lastChecked && $.data(lastChecked) != $.data(target) && event.shiftKey == true) {
- var inrange = false;
- $(lastChecked).attr("checked", target.checked).parent().parent().toggleClass(options.selectedClass, target.checked);
- actionCheckboxes.each(function() {
- if ($.data(this) == $.data(lastChecked) || $.data(this) == $.data(target)) {
- inrange = (inrange) ? false : true;
- }
- if (inrange) {
- $(this).attr("checked", target.checked)
- .parent().parent().toggleClass(options.selectedClass, target.checked);
- }
- });
- }
- $(target).parent().parent().toggleClass(options.selectedClass, target.checked);
- lastChecked = target;
- updateCounter();
- });
-
- $(options.actionSelect).attr("autocomplete", "off").change(function(evt){
- $(this).parents("form").submit();
- });
-
- initLayout();
-
- initFilter();
- /*
- * django version < 1.2.3 only
- * hide the last coll if its an editable list
- * because this coll has just the hidden input with the id (breaks ui)
-
- if ($("#changelist").hasClass("editable")) {
- // UGLY HACK: add th for thead when list_editables are activated.
- $(".changelist-results tr").each(function() {
- $(this).find("td:last").hide();
- });
- }
- */
-
-
- /*
- * deprecated code
- * used to show submit footer if something changed only.
- * way to complex to achieve this feature.
- * now submit footer is visible if list_editable (and toggles visibility with action footer).
-
- $("input.action-select, input#action-toggle, a.cancel-link").click(function() {
- $("div#submit").hide();
- });
-
- //var edit_inlines = $("input[name!='_selected_action'][id!='action-toggle'][id!='searchbar']");
- //edit_inlines.focus(showSubmitFooter);
- // safari (5) needs this because focus event doesn't work on checkboxes (anymore)
- //edit_inlines.end().find(":checkbox").click(showSubmitFooter);
- var input_nodes = $("input[name!='_selected_action'][id!='action-toggle'][id!='searchbar']");
- input_nodes.bind("change click", showSubmitFooter);
- $("select[class!='filter_choice'][name!='action']").bind("change click", showSubmitFooter);
- // FilebrowseField's button
- $("a.fb_show").click(showSubmitFooter);
- */
-
- $("td input.vForeignKeyRawIdAdminField, td input.vFileBrowseField, td a.add-another").each(function() {
- $(this).parent().addClass('nowrap');
- });
-
- // Check state of checkboxes and reinit state if needed
- actionCheckboxes.filter(":checked").each(function(i) {
- $(this).parent().parent().toggleClass(options.selectedClass);
- updateCounter();
- if ($(options.acrossInput).val() == 1) {
- showClear();
- }
- });
-
- // if (!$("input#searchbar").val()) {
- // $("input#searchbar").val(options.initialSearchVal);
- // }
- // $("input#searchbar").focus(function(){
- // if ($(this).val() == options.initialSearchVal) {
- // $(this).val("");
- // }
- // });
- // $("input#searchbar").blur(function(){
- // if (!$(this).val()) {
- // $(this).val(options.initialSearchVal);
- // }
- // });
-
- };
-
- /* Setup plugin defaults */
- $.fn.change_list.defaults = {
- actionCheckboxes: "input.action-select",
- actionContainer: "div.changelist-actions",
- counterContainer: "li.action-counter",
- allContainer: "div.changelist-actions li.all",
- acrossInput: "div.changelist-actions input.select-across",
- acrossQuestions: "div.changelist-actions li.question",
- acrossClears: "div.changelist-actions li.clear-selection",
- allToggle: "#action-toggle",
- selectedClass: "selected",
- actionSelect: "div.changelist-actions select",
- initialSearchVal: "Search"
- };
-})(django.jQuery);
-