mirror of
https://github.com/TryGhost/Ghost.git
synced 2024-12-25 11:55:03 +03:00
39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
|
const ghostBookshelf = require('./base');
|
||
|
|
||
|
const Benefit = ghostBookshelf.Model.extend({
|
||
|
|
||
|
tableName: 'benefits',
|
||
|
|
||
|
async onSaving(model, attr, options) {
|
||
|
ghostBookshelf.Model.prototype.onSaving.call(this, model, attr, options);
|
||
|
// Make sure name is trimmed of extra spaces
|
||
|
let name = this.get('name') && this.get('name').trim();
|
||
|
this.set('name', name);
|
||
|
if (this.hasChanged('slug') || (!this.get('slug') && this.get('name'))) {
|
||
|
// Pass the new slug through the generator to strip illegal characters, detect duplicates
|
||
|
const slug = await ghostBookshelf.Model.generateSlug(
|
||
|
Benefit,
|
||
|
this.get('slug') || this.get('name'),
|
||
|
{transacting: options.transacting}
|
||
|
);
|
||
|
this.set({slug});
|
||
|
}
|
||
|
}
|
||
|
}, {
|
||
|
orderDefaultOptions() {
|
||
|
return {
|
||
|
name: 'ASC',
|
||
|
created_at: 'DESC'
|
||
|
};
|
||
|
}
|
||
|
});
|
||
|
|
||
|
const Benefits = ghostBookshelf.Collection.extend({
|
||
|
model: Benefit
|
||
|
});
|
||
|
|
||
|
module.exports = {
|
||
|
Benefit: ghostBookshelf.model('Benefit', Benefit),
|
||
|
Benefits: ghostBookshelf.collection('Benefits', Benefits)
|
||
|
};
|