Skip to content

Instantly share code, notes, and snippets.

@vmakhaev
Created April 28, 2014 06:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vmakhaev/11362889 to your computer and use it in GitHub Desktop.
Save vmakhaev/11362889 to your computer and use it in GitHub Desktop.
module.exports =
companies:
access: { view: 'employee', add: 'no', edit: 'admin', del: 'no', copy: 'no', inline: 'no' }
columns:
name: {name: 'Name'}
currencyId: {name: 'Base Currency', type: 'select', collection: 'currencies'}
materialCurrencyId: {name: 'Vendor Currency', type: 'select', collection: 'currencies'}
shippingAddress: {name: 'Shipping Address', type: 'textarea'}
description: {name: 'Description', type: 'textarea'}
weightunitId: {name: 'Weight Unit', type: 'select', collection: 'measureunits'}
packingsizeunitId: {name: 'Packing Size Unit', type: 'select', collection: 'measureunits'}
pricelevelId: {name: 'Price Level', type: 'select', collection: 'pricelevels', isnull: true}
accountId: {name: 'Account', type: 'select', collection: 'accounts', isnull: true}
logoId: {name: 'Logo', type: 'select', collection: 'images', isnull: true}
catalog: {type: 'obj', cols:
name: {name: 'Name'}
year: {name: 'Year'}
site: {name: 'Site'}
netweight: {name: 'Net Weight'}
grossweight: {name: 'Gross Weight'}
discount: {name: 'Discount'}
pages: {name: 'Pages'}
contents: {name: 'Contents'}
titleId: {name: 'Title Image', type: 'select', collection: 'images', isnull: true}
}
price: {type: 'obj', cols:
a: {name: 'a', type: 'double', default: 1}
b: {name: 'b', type: 'double', default: 0}
}
weight: {type: 'obj', cols:
a: {name: 'a', type: 'double', default: 1}
b: {name: 'b', type: 'double', default: 0}
}
weightingcategories: {name: 'Weighting Categories', type: 'hash', collection: 'productcategories', cols:
a: {name: 'a', type: 'double', default: 1}
b: {name: 'b', type: 'double', default: 0}
}
smtp: {type: 'obj', cols:
host: {name: 'Host'}
port: {name: 'Port'}
user: {name: 'User'}
password: {name: 'Password'}
}
translates: {name: 'Translates', type: 'hash', collection: 'languages', cols:
name: {name: 'Name'}
netweight: {name: 'Net Weight'}
grossweight: {name: 'Gross Weight'}
discount: {name: 'Discount'}
pages: {name: 'Pages'}
contents: {name: 'Contents'}
}
name: 'Company'
names: 'Companies'
collection: 'companies'
employees:
access: { view: 'employee', add: 'admin', edit: 'admin', del: 'admin', copy: 'no' }
columns:
lastName: {name: 'Last Name'}
firstName: {name: 'First Name'}
middleName: {name: 'Middle Name'}
title: {name: 'Title'}
email: {name: 'Email'}
phone: {name: 'Phone'}
homePhone: {name: 'Home Phone'}
mobilePhone: {name: 'Mobile Phone'}
officePhone: {name: 'Office Phone'}
fax: {name: 'Fax'}
skype: {name: 'Skype'}
url: {name: 'Url'}
password: {name: 'Password', type: 'password'}
inviteDate: {name: 'Invite Date', type: 'datetime'}
address: {name: 'Address', type: 'textarea'}
description: {name: 'Description', type: 'textarea'}
currencyId: {name: 'Currency', type: 'select', collection: 'currencies', isnull: true}
roles: {name: 'Roles', type: 'hash', collection: 'roles', access: {view: 'admin'}}
listfields: ['internalId', 'fullName', 'email', 'phone', 'mobilePhone', 'officePhone']
abbr: 'EM'
icon: 'icon-user'
name: 'Employee'
names: 'Employees'
collection: 'employees'
filters: [
{ field: 'isInactive', type: 'radio', role: 'admin', values: [
{ name: 'All' }
{ name: 'Active', value: false, checked: true }
{ name: 'Inactive', value: true }
]}
]
warehouses:
access: { view: 'employee', add: 'admin', edit: 'admin', del: 'admin' }
columns:
name: {name: 'Name'}
address: {name: 'Address', type: 'textarea'}
description: {name: 'Description', type: 'textarea'}
listfields: ['internalId', 'fullName', 'address', 'description']
abbr: 'WA'
icon: 'icon-flag'
name: 'Warehouse'
names: 'Warehouses'
collection: 'warehouses'
credits:
access: { view: 'admin', add: 'admin', edit: 'admin', del: 'admin' }
columns:
name: {name: 'Name'}
totalPrice: {name: 'Total Price', type: 'price', default: 0}
currencyId: {name: 'Currency', type: 'select', collection: 'currencies'}
date: {name: 'Date', type: 'date'}
ownerId: {name: 'Owner', type: 'select', collection: 'employees'}
description: {name: 'Description', type: 'textarea'}
listfields: ['internalId', 'date', 'name', 'totalPrice', 'currencyId', 'ownerId', 'description']
abbr: 'CR'
icon: 'icon-flag'
name: 'Credit'
names: 'Credits'
collection: 'credits'
expenses:
access: { view: 'employee', inline: 'no' }
columns:
totalPrice: {name: 'Total Price', type: 'price', default: 0}
currencyId: {name: 'Currency', type: 'select', collection: 'currencies'}
date: {name: 'Date', type: 'date'}
ownerId: {name: 'Owner', type: 'select', collection: 'employees'}
categoryId: {name: 'Category', type: 'select', collection: 'expensecategories', isnull: true}
description: {name: 'Description', type: 'textarea'}
items: {name: 'Items', type: 'list', cols:
date: {name: 'Date', type: 'date'}
name: {name: 'Name'}
description: {name: 'Description'}
quantity: {name: 'Quantity', type: 'long', default: 1}
price: {name: 'Price', type: 'price', default: 0}
subtotalPrice: {name: 'Subtotal Price', type: 'price', default: 0}
}
listfields: ['internalId', 'date', 'ownerId', 'toId', 'paidStatus', 'totalPrice', 'currencyId', 'categoryId', 'description']
abbr: 'EX'
name: 'Expense'
names: 'Expenses'
collection: 'expenses'
sort: ['internalId', 'desc']
validations:
currencyId:
required: true
expensecategories:
access: { view: 'admin', add: 'admin', edit: 'admin', del: 'admin' }
columns:
name: {name: 'Name'}
description: {name: 'Description', type: 'textarea'}
listfields: ['internalId', 'fullName', 'description']
abbr: 'EC'
name: 'Expense Category'
names: 'Expense Categories'
collection: 'expensecategories'
sort: ['internalId', 'desc']
accounts:
access: { view: 'admin', add: 'admin', edit: 'admin', del: 'no' }
columns:
name: {name: 'Name'}
currencyId: {name: 'Currency', type: 'select', collection: 'currencies', create: true, edit: false}
isCash: {name: 'Cash', type: 'bool', yes: 'Cash', no: 'Bank'}
billingAddress: {name: 'Billing Address', type: 'textarea'}
bank: {name: 'Bank', type: 'textarea'}
description: {name: 'Description', type: 'textarea'}
value: {name: 'Value', type: 'double', create: true, edit: true, default: 0}
date: {name: 'Date', type: 'datetime'}
ownerId: {name: 'Owner', type: 'select', collection: 'employees'}
translates: {name: 'Translates', type: 'hash', collection: 'languages', cols:
name: {name: 'Name'}
description: {name: 'Description', type: 'textarea'}
}
listfields: ['internalId', 'fullName', 'isCash', 'ownerId', 'accountValue', 'currencyId', 'description']
abbr: 'AC'
name: 'Account'
names: 'Accounts'
collection: 'accounts'
validations:
currencyId:
required: true
payments:
access: { view: 'employee', copy: 'no', inline: 'no' }
columns:
type: {name: 'Type'}
from: {type: 'obj', cols:
entity: {name: 'From', type: 'entity'}
currencyId: {name: 'From Currency', type: 'select', collection: 'currencies'}
value: {name: 'Paid', type: 'price', default: 0}
}
to: {type: 'obj', cols:
entity: {name: 'To', type: 'entity'}
currencyId: {name: 'Currency', type: 'select', collection: 'currencies'}
value: {name: 'Value', type: 'price', default: 0}
}
commission: {type: 'obj', cols:
fixed: {name: 'Fixed', type: 'price', default: 0}
percent: {name: 'Percent', type: 'double', default: 0}
value: {name: 'Commission', type: 'price', default: 0}
}
rate: {type: 'obj', cols:
currencyId: {name: 'Base Currency', type: 'select', collection: 'currencies'}
value: {name: 'Rate', type: 'double', default: 0}
}
date: {name: 'Date', type: 'date'}
description: {name: 'Description', type: 'textarea'}
relations: {name: 'Relations', type: 'list', cols:
entity: {name: 'Entity', type: 'entity'}
}
listfields: ['internalId', 'date', 'fullName', 'paymentType', 'from.entity', 'to.entity', 'to.value', 'to.currencyId', 'relations', 'description']
abbr: 'PA'
name: 'Payment'
names: 'Payments'
collection: 'payments'
sort: ['dateCreated', 'desc']
statuses:
salesorders: {name: 'From Customer for SO'}
credits: {name: 'From Credit'}
accounts: {name: 'Transfer between Accounts'}
purchaseorders: {name: 'To Vendor for PO'}
expenses: {name: 'For Expense'}
validations:
type:
required: true
tasks:
access: { view: 'employee', copy: 'no', inline: 'no' }
columns:
name: {name: 'Name'}
status: {name: 'Status', type: 'status'}
entity: {name: 'Entity', type: 'entity', isnull: true}
date: {name: 'Target Date', type: 'date'}
description: {name: 'Description', type: 'textarea'}
employeeId: {name: 'Responsible', type: 'select', collection: 'employees'}
ownerId: {name: 'Owner', type: 'select', collection: 'employees', edit: false}
employees: {name: 'Employees', type: 'hash', collection: 'employees', cols:
name: {name: 'Name'} #hack for refreshing hashFields
}
abbr: 'TA'
name: 'Task'
names: 'Tasks'
collection: 'tasks'
sort: ['dateCreated', 'desc']
statuses:
notstarted: {name: 'Not Started'}
inwork: {name: 'In Work'}
finished: {name: 'Finished'}
canceled: {name: 'Canceled', iscomment: true}
validations:
name:
required: true
employeeId:
required: true
comments:
access: { view: 'employee', edit: 'no', copy: 'no', inline: 'no' }
columns:
entity: {name: 'Entity', type: 'entity'}
text: {name: 'Text'}
ownerId: {name: 'Owner', type: 'select', collection: 'employees'}
abbr: 'CO'
name: 'Comment'
names: 'Comments'
collection: 'comments'
sort: ['dateCreated', 'desc']
validations:
text:
required: true
ownerId:
required: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment