cartodb/lib/assets/javascripts/builder/components/notifier/notifier-model.js
2020-06-15 10:58:47 +08:00

73 lines
1.3 KiB
JavaScript
Executable File

var Backbone = require('backbone');
module.exports = Backbone.Model.extend({
defaults: {
status: 'idle',
info: '',
closable: true
},
initialize: function (attrs, opts) {
if (attrs.id === undefined) {
this.set('id', 'notifier' + this.cid);
}
this.set('defaultDelay', opts.delay);
if (opts.visDefinitionModel) {
this._retriggerEvent(opts.visDefinitionModel, 'vis:reload');
this._retriggerEvent(opts.visDefinitionModel, 'vis:error');
}
},
isClosable: function () {
return this.get('closable') === true;
},
updateClosable: function (val) {
this.set({closable: val});
},
getButton: function () {
return this.get('button');
},
updateButton: function (val) {
this.set({button: val});
},
getStatus: function () {
return this.get('status');
},
updateStatus: function (val) {
this.set({status: val});
},
getInfo: function () {
return this.get('info');
},
getAction: function () {
return this.get('action');
},
setAction: function (val) {
this.set({action: val});
},
updateInfo: function (val) {
this.set({info: val});
},
update: function (state) {
this.set(state);
},
_retriggerEvent: function (model, event) {
model.on(event, function () {
this.trigger(event, arguments);
}, this);
}
});