##// END OF EJS Templates
Fix some other bugs
Thomas Kluyver -
Show More
@@ -1,65 +1,67 b''
1 1 // Copyright (c) IPython Development Team.
2 2 // Distributed under the terms of the Modified BSD License.
3 3
4 4 define([
5 5 'jquery',
6 6 'base/js/utils',
7 7 ],
8 8 function($, utils) {
9 9 var ConfigSection = function(section_name, options) {
10 10 this.section_name = section_name;
11 11 this.base_url = options.base_url;
12 12 this.data = {};
13 13
14 14 var that = this;
15 15
16 16 /* .loaded is a promise, fulfilled the first time the config is loaded
17 17 * from the server. Code can do:
18 18 * conf.loaded.then(function() { ... using conf.data ... });
19 19 */
20 20 this._one_load_finished = false;
21 21 this.loaded = new Promise(function(resolve, reject) {
22 22 that._finish_firstload = resolve;
23 23 });
24 24 };
25 25
26 26 ConfigSection.prototype.api_url = function() {
27 return utils.url_join_encode(this.base_url, 'api/config', that.section_name);
27 return utils.url_join_encode(this.base_url, 'api/config', this.section_name);
28 28 };
29 29
30 30 ConfigSection.prototype._load_done = function() {
31 31 if (!this._one_load_finished) {
32 32 this._one_load_finished = true;
33 33 this._finish_firstload();
34 34 }
35 35 };
36 36
37 37 ConfigSection.prototype.load = function() {
38 var that = this;
38 39 return utils.promising_ajax(this.api_url(), {
39 40 cache: false,
40 41 type: "GET",
41 42 dataType: "json",
42 43 }).then(function(data) {
43 this.data = data;
44 this._load_done();
44 that.data = data;
45 that._load_done();
45 46 return data;
46 47 });
47 48 };
48 49
49 50 ConfigSection.prototype.update = function(newdata) {
51 var that = this;
50 52 return utils.promising_ajax(this.api_url(), {
51 53 processData: false,
52 54 type : "PATCH",
53 55 data: JSON.stringify(newdata),
54 56 dataType : "json",
55 57 contentType: 'application/json',
56 58 }).then(function(data) {
57 this.data = data;
58 this._load_done();
59 that.data = data;
60 that._load_done();
59 61 return data;
60 62 });
61 63 };
62 64
63 65 return {ConfigSection: ConfigSection};
64 66
65 67 });
General Comments 0
You need to be logged in to leave comments. Login now