81 lines
2.3 KiB
CoffeeScript
81 lines
2.3 KiB
CoffeeScript
@AdminController = RouteController.extend
|
|
layoutTemplate: 'AdminLayout'
|
|
waitOn: ->
|
|
[
|
|
Meteor.subscribe 'adminUsers'
|
|
Meteor.subscribe 'adminUser'
|
|
Meteor.subscribe 'adminCollectionsCount'
|
|
]
|
|
onBeforeAction: ->
|
|
Session.set 'adminSuccess', null
|
|
Session.set 'adminError', null
|
|
|
|
Session.set 'admin_title', ''
|
|
Session.set 'admin_subtitle', ''
|
|
Session.set 'admin_collection_page', null
|
|
Session.set 'admin_collection_name', null
|
|
Session.set 'admin_id', null
|
|
Session.set 'admin_doc', null
|
|
|
|
if not Roles.userIsInRole Meteor.userId(), ['admin']
|
|
Meteor.call 'adminCheckAdmin'
|
|
if typeof AdminConfig?.nonAdminRedirectRoute == 'string'
|
|
Router.go AdminConfig.nonAdminRedirectRoute
|
|
|
|
@next()
|
|
|
|
|
|
Router.route "adminDashboard",
|
|
path: "/admin"
|
|
template: "AdminDashboard"
|
|
controller: "AdminController"
|
|
action: ->
|
|
@render()
|
|
onAfterAction: ->
|
|
Session.set 'admin_title', 'Dashboard'
|
|
Session.set 'admin_collection_name', ''
|
|
Session.set 'admin_collection_page', ''
|
|
|
|
Router.route "adminDashboardUsersView",
|
|
path: "/admin/Users"
|
|
template: "AdminDashboardView"
|
|
controller: "AdminController"
|
|
action: ->
|
|
@render()
|
|
data: ->
|
|
admin_table: AdminTables.Users
|
|
onAfterAction: ->
|
|
Session.set 'admin_title', 'Users'
|
|
Session.set 'admin_subtitle', 'View'
|
|
Session.set 'admin_collection_name', 'Users'
|
|
|
|
Router.route "adminDashboardUsersNew",
|
|
path: "/admin/Users/new"
|
|
template: "AdminDashboardUsersNew"
|
|
controller: 'AdminController'
|
|
action: ->
|
|
@render()
|
|
onAfterAction: ->
|
|
Session.set 'admin_title', 'Users'
|
|
Session.set 'admin_subtitle', 'Create new user'
|
|
Session.set 'admin_collection_page', 'New'
|
|
Session.set 'admin_collection_name', 'Users'
|
|
|
|
Router.route "adminDashboardUsersEdit",
|
|
path: "/admin/Users/:_id/edit"
|
|
template: "AdminDashboardUsersEdit"
|
|
controller: "AdminController"
|
|
data: ->
|
|
user: Meteor.users.find(@params._id).fetch()
|
|
roles: Roles.getRolesForUser @params._id
|
|
otherRoles: _.difference _.map(Meteor.roles.find().fetch(), (role) -> role.name), Roles.getRolesForUser(@params._id)
|
|
action: ->
|
|
@render()
|
|
onAfterAction: ->
|
|
Session.set 'admin_title', 'Users'
|
|
Session.set 'admin_subtitle', 'Edit user ' + @params._id
|
|
Session.set 'admin_collection_page', 'edit'
|
|
Session.set 'admin_collection_name', 'Users'
|
|
Session.set 'admin_id', @params._id
|
|
Session.set 'admin_doc', Meteor.users.findOne({_id:@params._id})
|