mysociety/alaveteli

View on GitHub
app/assets/javascripts/admin/admin.js

Summary

Maintainability
C
1 day
Test Coverage
(function() {
  jQuery(function() {
    $('.locales a:first').tab('show');
    $('.accordion-body').on('hidden', function() {
      return $(this).prev().find('i.icon-chevron-down').first().removeClass().addClass('icon-chevron-right');
    });
    $('.accordion-body').on('shown', function() {
      return $(this).prev().find('i.icon-chevron-right').first().removeClass().addClass('icon-chevron-down');
    });
    $('.toggle-hidden').on('click', function() {
      $(this).parents('td').find('div:hidden').show();
      return false;
    });
    $('#request_hidden_user_explanation_reasons').on('click', 'input', function() {
      var info_request_id, message;
      $('#request_hidden_user_subject, #request_hidden_user_explanation, #request_hidden_user_prominence_reason, #request_hide_button').show();
      info_request_id = $('#hide_request_form').attr('data-info-request-id');
      message = $(this).attr('data-message');
      $('#request_hidden_user_explanation_field').val("[loading default text...]");
      return $.ajax("/hidden_user_explanation?message=" + message + "&info_request_id=" + info_request_id, {
        type: "GET",
        dataType: "json",
        error: function(data, textStatus, jqXHR) {
          return $('#request_hidden_user_explanation_field').val("Error: " + textStatus);
        },
        success: function(data, textStatus, jqXHR) {
          $('#request_hidden_user_explanation_field').val(data.explanation);
          $('#request_hidden_user_prominence_reason_field').val(data.prominence_reason);
        }
      });
    });
    $('#incoming_messages').on('change', 'input[class=delete-checkbox]', function() {
      var selected;
      selected = $('#ids').val() !== "" ? $('#ids').val().split(',') : [];
      if (this.checked) {
        selected.push(this.value);
        $('#ids').val(selected.join(','));
        return $('input[value="Delete selected messages"]').attr("disabled", false);
      } else {
        selected = selected.filter((function(_this) {
          return function(e) {
            return e !== _this.value;
          };
        })(this));
        $('#ids').val(selected.join(','));
        if ($('#ids').val() === "") {
          return $('input[value="Delete selected messages"]').attr("disabled", true);
        }
      }
    });
    $('#info_request_described_state').on('change', function() {
      var submit_button;
      submit_button = $(this).closest('form').find(':submit');
      if ((this.value === 'vexatious' || this.value === 'not_foi') && ($('#info_request_prominence').val() === 'normal' || $('#info_request_prominence').val() === 'backpage')) {
        $('#info_request_prominence').attr('title', 'The request will not be hidden unless you change the prominence.');
        $('#info_request_prominence').tooltip('show');
        submit_button.attr('title', 'Warning! You are about to save this request without hiding it!');
        submit_button.tooltip();
        return submit_button.data('confirm', 'You have set this request to "' + this.value + '" but not' + ' hidden it using prominence. Are you sure you want to continue?');
      } else {
        $('#info_request_prominence').removeAttr('title');
        $('#info_request_prominence').tooltip('destroy');
        submit_button.removeData('confirm');
        submit_button.removeAttr('title');
        return submit_button.tooltip('destroy');
      }
    });
    $('#info_request_prominence').on('change', function() {
      var submit_button;
      submit_button = $(this).closest('form').find(':submit');
      if ((this.value === 'normal' || this.value === 'backpage') && ($('#info_request_described_state').val() === 'not_foi' || $('#info_request_described_state').val() === 'vexatious')) {
        $(this).attr('title', 'The request will not be hidden unless you change the prominence.');
        $(this).tooltip('show');
        submit_button.attr('title', 'Warning! You are about to save this request without hiding it!');
        submit_button.tooltip();
        return submit_button.data('confirm', 'You have set this request to "' + this.value + '" but not' + ' hidden it using prominence. Are you sure you want to continue?');
      } else {
        $(this).removeAttr('title');
        $(this).tooltip('destroy');
        submit_button.removeAttr('title');
        submit_button.tooltip('destroy');
        return submit_button.removeData('confirm');
      }
    });
    return $('[data-dismiss]').on('click', function() {
      var parent;
      console.log('click');
      parent = $(this).parents("." + ($(this).data('dismiss')));
      return parent.hide('slow');
    });
  });

}).call(this);

$(function() {
  $('.select_all').click(function (event) {
    var selectables = $("input[name='" + $(this).data('target') + "']");
    var state = $(this).data('state');

    if (state == "unchecked") {
      selectables.each(function () {
        $(this).prop('checked', true);
      });

      $(this).data('state', 'checked');
      $(this).text("Deselect all");
      return false;
    } else {
      selectables.each(function () {
        $(this).prop('checked', false);
      });

      $(this).data('state', 'unchecked');
      $(this).text("Select all");
      return false;
    }
  });

  return false;
});