~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/registry/javascript/structural-subscription.js

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-04-12 00:14:41 UTC
  • mfrom: (12785.1.1 bug750561)
  • Revision ID: launchpad@pqm.canonical.com-20110412001441-mizx10jyqhfehhtp
[r=henninge][bug=750561] add a spinner for when you delete, edit,
        or add a structural subscription.

Show diffs side-by-side

added added

removed removed

Lines of Context:
43
43
 
44
44
var overlay_error_handler = new Y.lp.client.ErrorHandler();
45
45
overlay_error_handler.showError = function(error_msg) {
46
 
  add_subscription_overlay.showError(error_msg);
 
46
    add_subscription_overlay.showError(error_msg);
 
47
};
 
48
overlay_error_handler.clearProgressUI = function() {
 
49
    add_subscription_overlay.bodyNode.one('[name="field.actions.create"]')
 
50
        .replaceClass('spinner', 'lazr-pos');
47
51
};
48
52
 
49
53
/**
167
171
 * @param {Object} success_callback Function to execute when filter is added.
168
172
 */
169
173
function add_bug_filter(who, form_data, success_callback) {
 
174
    var submit_button = add_subscription_overlay.bodyNode.one(
 
175
        '[name="field.actions.create"]');
 
176
    submit_button.replaceClass('lazr-pos', 'spinner');
170
177
    var config = {
171
178
        on: {success: function (bug_filter) {
172
179
                // If we fail to PATCH the new bug filter, DELETE it.
183
190
                    success: function (bug_filter) {
184
191
                        success_callback(form_data, bug_filter);
185
192
                        subscription_success(bug_filter);
 
193
                        submit_button.replaceClass('spinner', 'lazr-pos');
186
194
                    }
187
195
                };
188
196
                patch_bug_filter(bug_filter.getAttrs(), form_data, on);
273
281
function edit_subscription_handler(context, form_data) {
274
282
    var has_errors = check_for_errors_in_overlay(add_subscription_overlay);
275
283
    var filter_id = '#filter-description-'+context.filter_id.toString();
 
284
    var submit_button = add_subscription_overlay.bodyNode.one(
 
285
        '[name="field.actions.create"]');
 
286
    submit_button.replaceClass('lazr-pos', 'spinner');
276
287
    if (has_errors) {
277
288
        return false;
278
289
    }
279
290
    var on = {success: function (new_data) {
 
291
        submit_button.replaceClass('spinner', 'lazr-pos');
280
292
        var description_node = Y.one(filter_id);
281
293
        var filter = new_data.getAttrs();
282
294
        fill_filter_description(
1082
1094
/**
1083
1095
 * Construct a handler for an unsubscribe link.
1084
1096
 */
1085
 
function make_delete_handler(filter, filter_id, subscriber_id) {
 
1097
function make_delete_handler(filter, filter_id, node, subscriber_id) {
1086
1098
    var error_handler = new Y.lp.client.ErrorHandler();
 
1099
    var unsubscribe_node = node.one('a.delete-subscription');
1087
1100
    error_handler.showError = function(error_msg) {
1088
 
      var unsubscribe_node = Y.one('#unsubscribe-'+filter_id.toString());
1089
 
      Y.lp.app.errors.display_error(unsubscribe_node, error_msg);
 
1101
        Y.lp.app.errors.display_error(unsubscribe_node, error_msg);
 
1102
    };
 
1103
    error_handler.clearProgressUI = function () {
 
1104
        unsubscribe_node.replaceClass('spinner', 'remove');
1090
1105
    };
1091
1106
    return function() {
1092
1107
        var y_config = {
1094
1109
            headers: {'X-HTTP-Method-Override': 'DELETE'},
1095
1110
            on: {
1096
1111
                success: function(transactionid, response, args){
 
1112
                    unsubscribe_node.replaceClass('spinner', 'remove');
1097
1113
                    var filter_node = Y.one(
1098
1114
                        '#subscription-filter-'+filter_id.toString());
1099
1115
                    filter_node.setStyle("margin-top", "0");
1111
1127
                failure: error_handler.getFailureHandler()
1112
1128
            }
1113
1129
        };
 
1130
        unsubscribe_node.replaceClass('remove', 'spinner');
1114
1131
        do_io(filter.self_link, y_config);
1115
1132
    };
1116
1133
}
1131
1148
        edit_link.on('click', edit_handler);
1132
1149
        var delete_link = node.one('a.delete-subscription');
1133
1150
        var delete_handler = make_delete_handler(
1134
 
            filter_info.filter, filter_id, subscription_id);
 
1151
            filter_info.filter, filter_id, node, subscription_id);
1135
1152
        delete_link.on('click', delete_handler);
1136
1153
    }
1137
1154
}