Skip to content

Commit bab8c5f

Browse files
committed
Ignore accordion click for up/down arrows
* After upgrading to newest angular-ui, you now have to stopPropagation and preventDefault to ignore accordion header click. Need to ignore in case of moving fields up/down * Refresh event on event page if users/teams added/removed. This will keep any 'users' dropdowns correctly populated in form preview.
1 parent ffb81b8 commit bab8c5f

File tree

3 files changed

+40
-11
lines changed

3 files changed

+40
-11
lines changed

public/app/admin/events/event.controller.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,9 @@ function AdminEventController($scope, $location, $filter, $routeParams, $q, $uib
108108
$scope.eventNonMembers = _.reject($scope.eventNonMembers, function(item) { return item.id === user.id; });
109109

110110
eventTeam.users.push({id: user.id});
111-
eventTeam.$save();
111+
eventTeam.$save(function() {
112+
$scope.event.$get({popualte: false});
113+
});
112114
}
113115

114116
$scope.removeMember = function(member) {
@@ -128,7 +130,9 @@ function AdminEventController($scope, $location, $filter, $routeParams, $q, $uib
128130
$scope.eventNonMembers.push(user);
129131

130132
eventTeam.users = _.reject(eventTeam.users, function(u) { return user.id === u.id; });
131-
eventTeam.$save();
133+
eventTeam.$save(function() {
134+
$scope.event.$get({populate: false});
135+
});
132136
}
133137

134138
$scope.addLayer = function(layer) {

public/app/admin/events/event.edit.form.controller.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ function AdminEventEditFormController($rootScope, $scope, $location, $filter, $r
2727
$scope.$watch('event.form', function(newForm, oldForm) {
2828
if (!newForm || !oldForm) return;
2929

30+
if ($scope.saving) return;
31+
3032
$scope.unSavedChanges = true;
3133
}, true);
3234

@@ -107,6 +109,7 @@ function AdminEventEditFormController($rootScope, $scope, $location, $filter, $r
107109

108110
$scope.moveFieldUp = function(e, fieldToMoveUp) {
109111
e.stopPropagation();
112+
e.preventDefault();
110113

111114
// find first non-archived field above me
112115
// and switch our ids to re-order
@@ -132,6 +135,7 @@ function AdminEventEditFormController($rootScope, $scope, $location, $filter, $r
132135

133136
$scope.moveFieldDown = function(e, fieldToMoveDown) {
134137
e.stopPropagation();
138+
e.preventDefault();
135139

136140
// find the first non-archived field below me
137141
// and switch our ids to re-order
@@ -173,7 +177,7 @@ function AdminEventEditFormController($rootScope, $scope, $location, $filter, $r
173177
return layer.type;
174178
};
175179

176-
$scope.saveForm = function() {
180+
$scope.saveForm = function() {
177181
formSaved = false;
178182
$scope.saving = true;
179183
$scope.uploadIcons = true;

routes/events.js

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -194,18 +194,35 @@ module.exports = function(app, security) {
194194
req.newEvent.layerIds = req.newEvent.layerIds.split(",");
195195
}
196196

197-
Event.create(req.newEvent, function(err, event) {
198-
if (err) return next(err);
197+
function createEvent(callback) {
198+
Event.create(req.newEvent, callback);
199+
}
199200

201+
function importForm(event, callback) {
200202
new api.Form(event).import(req.files.form, function(err, form) {
201-
if (err) return next(err);
203+
callback(err, event, form);
204+
});
205+
}
202206

203-
Event.update(event._id, {form: form}, function(err, event) {
204-
if (err) return next(err);
207+
function updateEvent(event, form, callback) {
208+
Event.update(event._id, {form: form}, callback);
209+
}
205210

206-
res.status(201).json(event);
207-
});
211+
function populateUserFields(event, callback) {
212+
new api.Form(event).populateUserFields(function(err) {
213+
callback(err, event);
208214
});
215+
}
216+
217+
async.waterfall([
218+
createEvent,
219+
importForm,
220+
updateEvent,
221+
populateUserFields
222+
], function (err, event) {
223+
if (err) return next(err);
224+
225+
res.status(201).json(event);
209226
});
210227
}
211228
);
@@ -242,7 +259,11 @@ module.exports = function(app, security) {
242259
Event.update(req.event._id, req.newEvent, {populate: req.parameters.populate}, function(err, event) {
243260
if (err) return next(err);
244261

245-
res.json(event);
262+
new api.Form(event).populateUserFields(function(err) {
263+
if (err) return next(err);
264+
265+
res.json(event);
266+
});
246267
});
247268
}
248269
);

0 commit comments

Comments
 (0)