All Downloads are FREE. Search and download functionalities are using the official Maven repository.

groovity.portal.admin.groups.grvt Maven / Gradle / Ivy

There is a newer version: 2.1.0-beta.1
Show newest version
/*******************************************************************************
 * © 2018 Disney | ABC Television Group
 *
 * Licensed under the Apache License, Version 2.0 (the "Apache License")
 * with the following modification; you may not use this file except in
 * compliance with the Apache License and the following modification to it:
 * Section 6. Trademarks. is deleted and replaced with:
 *
 * 6. Trademarks. This License does not grant permission to use the trade
 *     names, trademarks, service marks, or product names of the Licensor
 *     and its affiliates, except as required to comply with Section 4(c) of
 *     the License and to reproduce the content of the NOTICE file.
 *
 * You may obtain a copy of the Apache License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the Apache License with the above modification is
 * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the Apache License for the specific
 * language governing permissions and limitations under the Apache License.
 *******************************************************************************/
@Field static portal = [
	path:'/admin/groups',
	title:"Groups",
	roles:['auth','admin'],
	order:3
];

@Field static args = [
	group_id : 0l,
	addMember : 0,
	addLeader : 0,
	deleteGroup : false,
	name:null
];

@Field sql = load('/groovity/sql').sql('portalDB')

load '/data/factory'

selectedGroup = null;
selectedMember = null;
selectedLeader = null;
formError = null
formMessage = null;
closeMemberLink = null;

hasAdminRole = roles.contains('admin');
if(!hasAdminRole && group_id){
	//check if user is a group leader
	hasAdminRole = request.userPrincipal.getLeadership(group_id);
}

if(roles.contains('admin') && deleteGroup && group_id){
	factory('group',"${group_id}")?.delete()
	response.sendRedirect('/admin/groups');
	return;
}
if(request.method=='POST' && hasAdminRole){
	if(addMember){
		try{
			factory('person',"${addMember}")?.addMembership(group_id)
		}
		catch(Exception e){
			formError = e;
			log(error:"Error adding member",thrown:e);
		}
	}
	else if(addLeader){
		try{
			factory('person',"${addLeader}")?.addLeadership(group_id)
		}
		catch(Exception e){
			formError = e;
			log(error:"Error adding leader",thrown:e);
		}
	}
	else if(name){
		try{
			def newGroup = factory('group').putAll([id:group_id,name:name]);
			newGroup.store()
			formMessage = "Group updated"
		}
		catch(Exception e){
			formError = e;
			log(error:"Error updating group",thrown:e);
		}
	}
}
if(group_id){
	selectedGroup = factory('group',"${group_id}");
}
addMemberFormat =  { row, col -> 
	stream <~ ${row[col]} ~>
};
addLeaderFormat =  { row, col ->
	stream <~ ${row[col]} ~>
};

<~

	
	
Update group Create new group
Name
~>




© 2015 - 2025 Weber Informatics LLC | Privacy Policy