Vulcan/packages/nova-categories/lib/schema.js

103 lines
2.2 KiB
JavaScript
Raw Normal View History

2016-08-08 11:18:21 +09:00
import Telescope from 'meteor/nova:lib';
2016-06-23 15:11:56 +09:00
import Categories from "./collection.js";
import Users from 'meteor/nova:users';
const canInsert = user => Users.canDo(user, "categories.new");
2016-08-07 19:10:53 +09:00
const canEdit = user => Users.canDo(user, "categories.edit.all");
2016-06-23 15:11:56 +09:00
// category schema
Categories.schema = new SimpleSchema({
name: {
type: String,
insertableIf: canInsert,
2016-08-07 19:10:53 +09:00
editableIf: canEdit,
2016-06-23 15:11:56 +09:00
publish: true
},
description: {
type: String,
optional: true,
insertableIf: canInsert,
2016-08-07 19:10:53 +09:00
editableIf: canEdit,
2016-06-23 15:11:56 +09:00
publish: true,
form: {
2016-06-23 15:11:56 +09:00
rows: 3
}
},
order: {
type: Number,
optional: true,
insertableIf: canInsert,
2016-08-07 19:10:53 +09:00
editableIf: canEdit,
2016-06-23 15:11:56 +09:00
publish: true
},
slug: {
type: String,
optional: true,
insertableIf: canInsert,
2016-08-07 19:10:53 +09:00
editableIf: canEdit,
2016-06-23 15:11:56 +09:00
publish: true
},
image: {
type: String,
optional: true,
insertableIf: canInsert,
2016-08-07 19:10:53 +09:00
editableIf: canEdit,
2016-06-23 15:11:56 +09:00
publish: true
},
parentId: {
type: String,
optional: true,
insertableIf: canInsert,
2016-08-07 19:10:53 +09:00
editableIf: canEdit,
2016-06-23 15:11:56 +09:00
publish: true,
form: {
2016-06-23 15:11:56 +09:00
options: function () {
var categories = Categories.find().map(function (category) {
return {
value: category._id,
label: category.name
};
});
return categories;
}
}
}
});
// Meteor.startup(function(){
// Categories.internationalize();
// });
Categories.attachSchema(Categories.schema);
2016-10-29 14:18:16 +09:00
// Telescope.settings.collection.addField([
// {
// fieldName: 'categoriesBehavior',
// fieldSchema: {
// type: String,
// optional: true,
// form: {
// group: 'categories',
// instructions: 'Let users filter by one or multiple categories at a time.',
// options: function () {
// return [
// {value: "single", label: "categories_behavior_one_at_a_time"},
// {value: "multiple", label: "categories_behavior_multiple"}
// ];
// }
// }
// }
// },
// {
// fieldName: 'hideEmptyCategories',
// fieldSchema: {
// type: Boolean,
// optional: true,
// form: {
// group: 'categories',
// instructions: 'Hide empty categories in navigation'
// }
// }
// }
// ]);