forked from colmena/colmena
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathroutes.js
More file actions
78 lines (76 loc) · 2.33 KB
/
routes.js
File metadata and controls
78 lines (76 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
'use strict'
import angular from 'angular'
import templateUrlForm from './views/form.html'
import templateUrlList from './views/list.html'
import templateUrlMain from './views/main.html'
import templateUrlView from './views/view.html'
angular
.module('com.module.posts.routes', [])
.config(($stateProvider) => $stateProvider
.state('app.posts', {
abstract: true,
url: '/posts',
templateUrl: templateUrlMain,
})
.state('app.posts.list', {
url: '',
templateUrl: templateUrlList,
controllerAs: 'ctrl',
controller: function listCtrl (posts) {
this.posts = posts
},
resolve: {
posts: (PostsService) => PostsService.getPosts(),
},
})
.state('app.posts.add', {
url: '/add',
templateUrl: templateUrlForm,
controllerAs: 'ctrl',
controller: function addCtrl ($state, PostsService, post) {
this.post = post
this.formFields = PostsService.getFormFields()
this.formOptions = {}
this.submit = () => PostsService.upsertPost(this.post).then(() => $state.go('^.list'))
},
resolve: {
post: () => {},
},
})
.state('app.posts.edit', {
url: '/:id/edit',
templateUrl: templateUrlForm,
controllerAs: 'ctrl',
controller: function editCtrl ($state, PostsService, post) {
this.post = post
this.formFields = PostsService.getFormFields()
this.formOptions = {}
this.submit = () => PostsService.upsertPost(this.post).then(() => $state.go('^.list'))
},
resolve: {
post: ($stateParams, PostsService) => PostsService.getPost($stateParams.id),
},
})
.state('app.posts.view', {
url: '/:id',
templateUrl: templateUrlView,
controllerAs: 'ctrl',
controller: function viewCtrl (post) {
this.post = post
},
resolve: {
post: ($stateParams, PostsService) => PostsService.getPost($stateParams.id),
},
})
.state('app.posts.delete', {
url: '/:id/delete',
template: '',
controllerAs: 'ctrl',
controller: ($state, PostsService, post) => PostsService.deletePost(post.id,
() => $state.go('^.list'),
() => $state.go('^.list')),
resolve: {
post: ($stateParams, PostsService) => PostsService.getPost($stateParams.id),
},
})
)