stackpress
Version:
Incept is a content management framework.
46 lines (45 loc) • 1.69 kB
JavaScript
import Fieldset from './Fieldset.js';
export default class Model extends Fieldset {
get active() {
return Array.from(this.columns.values()).find(column => column.attributes.active === true);
}
get created() {
return Array.from(this.columns.values()).find(column => column.attributes.created === true);
}
get filters() {
return Array.from(this.columns.values()).filter(column => column.filter.method !== 'none');
}
get ids() {
return Array.from(this.columns.values()).filter(column => column.id);
}
get indexables() {
return Array.from(this.columns.values()).filter(column => column.indexable);
}
get query() {
return this.attributes.query;
}
get related() {
return Array.from(this.columns.values()).filter(column => column.related !== null);
}
get relations() {
return Array.from(this.columns.values()).filter(column => column.relation !== null);
}
get restorable() {
return Array.from(this.columns.values()).some(column => column.attributes.active === true);
}
get searchables() {
return Array.from(this.columns.values()).filter(column => column.searchable);
}
get sortables() {
return Array.from(this.columns.values()).filter(column => column.sortable);
}
get spans() {
return Array.from(this.columns.values()).filter(column => column.span.method !== 'none');
}
get uniques() {
return Array.from(this.columns.values()).filter(column => column.unique);
}
get updated() {
return Array.from(this.columns.values()).find(column => column.attributes.updated === true);
}
}