##// END OF EJS Templates
At least log an error if there is no create or remove defined....
At least log an error if there is no create or remove defined. We might just remove this...

File last commit:

r18878:463c49d0
r19034:a04cc775
Show More
config.js
67 lines | 1.9 KiB | application/javascript | JavascriptLexer
Thomas Kluyver
Add JS config API
r18866 // Copyright (c) IPython Development Team.
// Distributed under the terms of the Modified BSD License.
define([
'jquery',
'base/js/utils',
],
function($, utils) {
var ConfigSection = function(section_name, options) {
this.section_name = section_name;
this.base_url = options.base_url;
this.data = {};
var that = this;
/* .loaded is a promise, fulfilled the first time the config is loaded
* from the server. Code can do:
* conf.loaded.then(function() { ... using conf.data ... });
*/
this._one_load_finished = false;
this.loaded = new Promise(function(resolve, reject) {
that._finish_firstload = resolve;
});
};
ConfigSection.prototype.api_url = function() {
Thomas Kluyver
Fix some other bugs
r18878 return utils.url_join_encode(this.base_url, 'api/config', this.section_name);
Thomas Kluyver
Add JS config API
r18866 };
ConfigSection.prototype._load_done = function() {
if (!this._one_load_finished) {
this._one_load_finished = true;
this._finish_firstload();
}
};
ConfigSection.prototype.load = function() {
Thomas Kluyver
Fix some other bugs
r18878 var that = this;
Thomas Kluyver
Use promising_ajax in config API
r18868 return utils.promising_ajax(this.api_url(), {
cache: false,
type: "GET",
dataType: "json",
}).then(function(data) {
Thomas Kluyver
Fix some other bugs
r18878 that.data = data;
that._load_done();
Thomas Kluyver
Use promising_ajax in config API
r18868 return data;
Thomas Kluyver
Add JS config API
r18866 });
};
ConfigSection.prototype.update = function(newdata) {
Thomas Kluyver
Fix some other bugs
r18878 var that = this;
Thomas Kluyver
Use promising_ajax in config API
r18868 return utils.promising_ajax(this.api_url(), {
processData: false,
type : "PATCH",
data: JSON.stringify(newdata),
dataType : "json",
contentType: 'application/json',
}).then(function(data) {
Thomas Kluyver
Fix some other bugs
r18878 that.data = data;
that._load_done();
Thomas Kluyver
Use promising_ajax in config API
r18868 return data;
Thomas Kluyver
Add JS config API
r18866 });
};
Thomas Kluyver
Actually define the module...
r18876
return {ConfigSection: ConfigSection};
Thomas Kluyver
Add JS config API
r18866
});