~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/app/javascript/client.js

[r=jtv,
 wallyworld][bug=824435][incr] Add tests for the request builds code
 in requestbuilds_overlay.js.

Show diffs side-by-side

added added

removed removed

Lines of Context:
84
84
};
85
85
 
86
86
// Generally useful functions.
 
87
/* Helper to select the io_provider. */
 
88
module.get_io_provider = function(io_provider) {
 
89
    if (io_provider === undefined) {
 
90
        return Y;
 
91
    }
 
92
    return io_provider;
 
93
};
 
94
 
 
95
/* Helper to select the io_provider from a config. */
 
96
module.get_configured_io_provider = function(config, key) {
 
97
    if (key === undefined) {
 
98
        key = 'io_provider';
 
99
    }
 
100
    if (config === undefined || config[key] === undefined) {
 
101
        return Y;
 
102
    }
 
103
    return config[key];
 
104
};
 
105
 
87
106
module.append_qs = function(qs, key, value) {
88
107
    /* Append a key-value pair to a query string. */
89
108
    var elems = (qs && qs.length > 0) ? [qs] : [];
200
219
        on: on,
201
220
        'arguments': [entry.lp_client, url, old_on_success, false]
202
221
    };
203
 
    var io = config.io;
204
 
    if (!Y.Lang.isValue(io)) {
205
 
        io = Y.io;
206
 
    }
207
 
    io(url, y_config);
 
222
    var io_provider = module.get_configured_io_provider(config);
 
223
    io_provider.io(url, y_config);
208
224
};
209
225
 
210
226
 
228
244
    return data;
229
245
};
230
246
 
231
 
function update_cached_object(cache_name, cache, entry)
 
247
var update_cached_object = function (cache_name, cache, entry)
232
248
{
233
249
  var fields_changed = [];
234
250
  var name;
275
291
    };
276
292
    Y.fire(event_name, event_);
277
293
  }
278
 
}
 
294
};
279
295
 
280
296
 
281
297
module.update_cache = function(entry) {
348
364
 * Display a list of notifications - error, warning, informational or debug.
349
365
 * @param notifications An json encoded array of (level, message) tuples.
350
366
 */
351
 
function display_notifications(notifications) {
 
367
var display_notifications = function (notifications) {
352
368
    if (notifications === undefined) {
353
369
        return;
354
370
    }
393
409
            last_message = node;
394
410
        });
395
411
    });
396
 
}
 
412
};
397
413
 
398
414
/**
399
415
 * Remove any notifications that are currently displayed.
418
434
    this.uri = uri;
419
435
    this.content_type = content_type;
420
436
    this.contents = contents;
 
437
    this.io_provider = client.io_provider;
421
438
};
422
439
 
423
440
HostedFile.prototype = {
435
452
                        "Content-Disposition": disposition},
436
453
            'arguments': args,
437
454
            'data': hosted_file.contents};
438
 
        Y.io(module.normalize_uri(hosted_file.uri), y_config);
 
455
        this.io_provider.io(module.normalize_uri(hosted_file.uri), y_config);
439
456
    },
440
457
 
441
458
    'lp_delete' : function(config) {
445
462
        var y_config = { method: "DELETE",
446
463
                         on: on,
447
464
                         'arguments': args };
448
 
        Y.io(hosted_file.uri, y_config);
 
465
        this.io_provider.io(hosted_file.uri, y_config);
449
466
    }
450
467
};
451
468
 
625
642
 
626
643
// The Launchpad client itself.
627
644
 
628
 
var Launchpad = function() {
 
645
var Launchpad = function(config) {
629
646
    /* A client that makes HTTP requests to Launchpad's web service. */
 
647
    this.io_provider = module.get_configured_io_provider(config);
630
648
};
631
649
 
632
650
Launchpad.prototype = {
655
673
            'headers': headers,
656
674
            data: data
657
675
        };
658
 
        return Y.io(uri, y_config);
 
676
        return this.io_provider.io(uri, y_config);
659
677
    },
660
678
 
661
679
    'named_get' : function(uri, operation_name, config) {
707
725
            'arguments': [client, uri, old_on_success, update_cache],
708
726
            data: data
709
727
        };
710
 
        Y.io(uri, y_config);
 
728
        this.io_provider.io(uri, y_config);
711
729
    },
712
730
 
713
731
    'patch': function(uri, representation, config, headers) {
742
760
            'arguments': args,
743
761
            'data': data
744
762
        };
745
 
        Y.io(uri, y_config);
 
763
        this.io_provider.io(uri, y_config);
746
764
    },
747
765
 
748
766
    'wrap_resource': function(uri, representation) {
929
947
 * @class PATCHPlugin
930
948
 * @extends Widget
931
949
 */
932
 
function PATCHPlugin () {
 
950
var PATCHPlugin = function PATCHPlugin () {
933
951
    PATCHPlugin.superclass.constructor.apply(this, arguments);
934
 
}
 
952
};
935
953
 
936
954
Y.mix(PATCHPlugin, {
937
955
    /**
1131
1149
Y.namespace('lp.client.plugins');
1132
1150
Y.lp.client.plugins.PATCHPlugin = PATCHPlugin;
1133
1151
 
1134
 
  }, "0.1", {"requires": ["plugin", "dump", "lazr.editor", "lp.client"]});
 
1152
  }, "0.1", {"requires": [
 
1153
                  "plugin", "dump", "lazr.editor", "lp.client"]});