Skip to content

Commit bc022a1

Browse files
committed
Refactor Events module
1 parent 3f425c1 commit bc022a1

11 files changed

Lines changed: 251 additions & 244 deletions

File tree

Lines changed: 68 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,88 @@
11
'use strict';
22
angular.module('com.module.events')
3-
.config(function($stateProvider) {
3+
.config(function ($stateProvider) {
44
$stateProvider.state('app.events', {
55
abstract: true,
66
url: '/events',
77
templateUrl: 'modules/events/views/main.html'
88
}).state('app.events.list', {
99
url: '',
1010
templateUrl: 'modules/events/views/list.html',
11-
controller: 'EventsCtrl'
11+
controllerAs: 'ctrl',
12+
controller: function (events) {
13+
this.events = events;
14+
},
15+
resolve: {
16+
events: function (EventsService) {
17+
return EventsService.getEvents();
18+
}
19+
}
1220
}).state('app.events.add', {
1321
url: '/add',
1422
templateUrl: 'modules/events/views/form.html',
15-
controller: 'EventsCtrl'
23+
controllerAs: 'ctrl',
24+
controller: function ($state, EventsService, event) {
25+
this.event = event;
26+
this.formFields = EventsService.getFormFields();
27+
this.formOptions = {};
28+
this.submit = function () {
29+
EventsService.upsertEvent(this.event).then(function () {
30+
$state.go('^.list');
31+
});
32+
};
33+
},
34+
resolve: {
35+
event: function () {
36+
return {};
37+
}
38+
}
1639
}).state('app.events.edit', {
1740
url: '/:id/edit',
1841
templateUrl: 'modules/events/views/form.html',
19-
controller: 'EventsCtrl'
42+
controllerAs: 'ctrl',
43+
controller: function ($state, EventsService, event) {
44+
console.log(event);
45+
this.event = event;
46+
this.formFields = EventsService.getFormFields();
47+
this.formOptions = {};
48+
this.submit = function () {
49+
EventsService.upsertEvent(this.event).then(function () {
50+
$state.go('^.list');
51+
});
52+
};
53+
},
54+
resolve: {
55+
event: function ($stateParams, EventsService) {
56+
return EventsService.getEvent($stateParams.id);
57+
}
58+
}
2059
}).state('app.events.view', {
2160
url: '/:id',
2261
templateUrl: 'modules/events/views/view.html',
23-
controller: 'EventsCtrl'
62+
controllerAs: 'ctrl',
63+
controller: function (event) {
64+
this.event = event;
65+
},
66+
resolve: {
67+
event: function ($stateParams, EventsService) {
68+
return EventsService.getEvent($stateParams.id);
69+
}
70+
}
71+
}).state('app.events.delete', {
72+
url: '/:id/delete',
73+
template: '',
74+
controllerAs: 'ctrl',
75+
controller: function ($state, EventsService, event) {
76+
EventsService.deleteEvent(event.id, function () {
77+
$state.go('^.list');
78+
}, function () {
79+
$state.go('^.list');
80+
});
81+
},
82+
resolve: {
83+
event: function ($stateParams, EventsService) {
84+
return EventsService.getEvent($stateParams.id);
85+
}
86+
}
2487
});
2588
});

client/app/modules/events/controllers/events.ctrl.js

Lines changed: 0 additions & 157 deletions
This file was deleted.
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
'use strict';
2+
var app = angular.module('com.module.events');
3+
4+
app.service('EventsService', ['$state', 'CoreService', 'Event', 'gettextCatalog',
5+
function ($state, CoreService, Event, gettextCatalog) {
6+
7+
this.getEvents = function () {
8+
return Event.find().$promise;
9+
};
10+
11+
this.getEvent = function (id) {
12+
return Event.findById({
13+
id: id
14+
}).$promise;
15+
};
16+
17+
this.upsertEvent = function (event) {
18+
return Event.upsert(event).$promise
19+
.then(function () {
20+
CoreService.toastSuccess(
21+
gettextCatalog.getString('Event saved'),
22+
gettextCatalog.getString('Your event is safe with us!')
23+
);
24+
})
25+
.catch(function (err) {
26+
CoreService.toastSuccess(
27+
gettextCatalog.getString('Error saving event '),
28+
gettextCatalog.getString('This event could no be saved: ') + err
29+
);
30+
}
31+
);
32+
};
33+
34+
this.deleteEvent = function (id, successCb, cancelCb) {
35+
CoreService.confirm(
36+
gettextCatalog.getString('Are you sure?'),
37+
gettextCatalog.getString('Deleting this cannot be undone'),
38+
function () {
39+
Event.deleteById({id: id}, function () {
40+
CoreService.toastSuccess(
41+
gettextCatalog.getString('Event deleted'),
42+
gettextCatalog.getString('Your event is deleted!'));
43+
successCb();
44+
}, function (err) {
45+
CoreService.toastError(
46+
gettextCatalog.getString('Error deleting event'),
47+
gettextCatalog.getString('Your event is not deleted! ') + err);
48+
cancelCb();
49+
});
50+
},
51+
function () {
52+
cancelCb();
53+
}
54+
);
55+
};
56+
57+
this.getFormFields = function () {
58+
return [{
59+
key: 'name',
60+
type: 'input',
61+
templateOptions: {
62+
label: gettextCatalog.getString('Name'),
63+
required: true
64+
}
65+
}, {
66+
key: 'description',
67+
type: 'textarea',
68+
templateOptions: {
69+
label: gettextCatalog.getString('Description'),
70+
required: true
71+
}
72+
}, {
73+
key: 'startDate',
74+
type: 'datepicker',
75+
templateOptions: {
76+
label: gettextCatalog.getString('Start Date'),
77+
required: true
78+
}
79+
}, {
80+
key: 'startDate',
81+
type: 'timepicker',
82+
templateOptions: {
83+
label: gettextCatalog.getString('Start Time')
84+
}
85+
}, {
86+
key: 'endDate',
87+
type: 'datepicker',
88+
templateOptions: {
89+
label: gettextCatalog.getString('End Date'),
90+
required: true
91+
}
92+
}, {
93+
key: 'endDate',
94+
type: 'timepicker',
95+
templateOptions: {
96+
label: gettextCatalog.getString('End Time')
97+
}
98+
}];
99+
};
100+
101+
}
102+
]);

0 commit comments

Comments
 (0)