Router.map(function () {
	this.route('groupDetails', {
		path: 'group/:_id/:name?',
		waitOn: function () {
			return [
				subs.subscribe('group', this.params._id),
			];
		},
		data: function () {
			var group;
			var isNew = this.params._id === 'create';
			if (isNew) {
				group = {
					_id: 'create'
				};
			} else {
				group = Groups.findOne({_id: this.params._id});
			}

			if (!group) return false;

			var data = {
				group: group,
				courseQuery: {group: this._id},
				isNew: isNew,
				showCourses: !isNew,
			};

			var userId = Meteor.userId();
			var mayEdit = isNew || userId && GroupLib.isMember(userId, group._id);

			if (mayEdit) {
				var handleSaving = function(err, groupId) {
					if (err) {
						addMessage(mf('group.saving.error', { ERROR: err }, 'Saving the group went wrong! Sorry about this. We encountered the following error: {ERROR}'), 'danger');
					} else {
						addMessage(mf('group.saving.success', { NAME: group.short }), 'Saved change to {NAME}');
					}
				};

				var showControls = !isNew;

				data.editableName = makeEditable(
					group.name,
					true,
					function(newName) {
						Meteor.call("saveGroup", group._id, { name: newName }, handleSaving);
					},
					mf('group.name.placeholder', "Name for this group"),
					showControls
				);

				data.editableShort = makeEditable(
					group.short,
					true,
					function(newShort) {
						Meteor.call("saveGroup", group._id, { short: newShort }, handleSaving);
					},
					mf('group.short.placeholder', "Short name"),
					showControls
				);

				data.editableClaim = makeEditable(
					group.claim,
					true,
					function(newClaim) {
						Meteor.call("saveGroup", group._id, { claim: newClaim }, handleSaving);
					},
					mf('group.claim.placeholder', "Tell us why your group is so great"),
					showControls
				);

				data.editableDescription = makeEditable(
					group.description,
					false,
					function(newDescription) {
						Meteor.call("saveGroup", group._id, { description: newDescription }, handleSaving);
					},
					mf('group.description.placeholder', "Describe the audience, the interests and activities of your group"),
					showControls
				);
			}

			return data;
		},
		onAfterAction: function() {
			var group = Groups.findOne({_id: this.params._id});
			if (group) {
				document.title = mf('group.siteTitle', { NAME: group.name }, "{NAME}") + " - " + webpagename;
			}
		}
	});
});

Template.groupDetails.events({
	'click .-saveGroup': function(event, instance) {
		if (pleaseLogin()) return false;

		var group = {};

		group.name = instance.data.editableName.editedContent();
		group.short = instance.data.editableShort.editedContent();
		group.claim = instance.data.editableClaim.editedContent();
		group.description = instance.data.editableDescription.editedContent();

		Meteor.call("saveGroup", "create", group, function(err, groupId) {
			if (err) {
				var msg = mf('group.saving.error', { ERROR: err });
				addMessage(msg, 'danger');
			} else {
				instance.data.editableName.end();
				instance.data.editableShort.end();
				instance.data.editableClaim.end();
				instance.data.editableDescription.end();

				addMessage(mf('group.create.success', 'Created group'));
				Router.go('groupDetails', { _id: groupId });
			}
		});

	},

	'click .-cancelGroup': function(event, instance) {
		Router.go('/'); // Got a better idea?
	}
});

@@ -960,17 +960,16 @@
 .short %7D
-)
 , 'Saved
@@ -987,16 +987,28 @@
 %7BNAME%7D')
+, 'success')
 ;%0A%09%09%09%09%09%7D

fix message type