Initial commit
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
var Notifier = require('builder/components/notifier/notifier');
|
||||
var errorParser = require('builder/helpers/error-parser');
|
||||
|
||||
module.exports = function (opts) {
|
||||
if (!opts.rowModel) throw new Error('rowModel is required');
|
||||
if (opts.newValue === undefined) throw new Error('newValue is required');
|
||||
if (!opts.attribute) throw new Error('attribute is required');
|
||||
|
||||
var rowModel = opts.rowModel;
|
||||
var newValue = opts.newValue;
|
||||
var attribute = opts.attribute;
|
||||
var cartodbId = rowModel.get('cartodb_id');
|
||||
var successCallback = opts.onSuccess;
|
||||
var errorCallback = opts.onError;
|
||||
var notification = Notifier.addNotification({
|
||||
status: 'loading',
|
||||
info: _t('components.table.rows.edit.loading', {
|
||||
attribute: attribute,
|
||||
cartodbId: cartodbId
|
||||
}),
|
||||
closable: false
|
||||
});
|
||||
|
||||
// In order to preserve "previous" attribute
|
||||
rowModel.set(attribute, newValue);
|
||||
rowModel.save(null, {
|
||||
success: function (model, attrs) {
|
||||
successCallback && successCallback(model, attrs);
|
||||
notification.set({
|
||||
status: 'success',
|
||||
info: _t('components.table.rows.edit.success', {
|
||||
attribute: attribute,
|
||||
cartodbId: cartodbId
|
||||
}),
|
||||
closable: true
|
||||
});
|
||||
},
|
||||
error: function (model, err) {
|
||||
errorCallback && errorCallback(model, err);
|
||||
notification.set({
|
||||
status: 'error',
|
||||
info: _t('components.table.rows.edit.error', {
|
||||
attribute: attribute,
|
||||
cartodbId: cartodbId,
|
||||
error: errorParser(err)
|
||||
}),
|
||||
closable: true
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user