EventOrganiserView.java 4.47 KB
package fi.insomnia.bortal.view;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.component.UISelectItems;
import javax.faces.component.html.HtmlSelectOneMenu;
import javax.faces.event.ValueChangeEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import fi.insomnia.bortal.beans.EventBeanLocal;
import fi.insomnia.bortal.beans.EventOrganiserBeanLocal;
import fi.insomnia.bortal.beans.RoleBeanLocal;
import fi.insomnia.bortal.beans.SecurityBeanLocal;
import fi.insomnia.bortal.beans.UserBeanLocal;
import fi.insomnia.bortal.exceptions.PermissionDeniedException;
import fi.insomnia.bortal.model.EventOrganiser;
import fi.insomnia.bortal.model.LanEvent;
import fi.insomnia.bortal.model.Role;
import fi.insomnia.bortal.model.User;
import fi.insomnia.bortal.web.converter.RoleConverter;

@ManagedBean(name = "eventorgView")
@SessionScoped
public class EventOrganiserView {

    private static final Logger logger = LoggerFactory.getLogger(EventOrganiserView.class);
    @EJB
    private UserBeanLocal userbean;
    @EJB
    private EventOrganiserBeanLocal eventorgbean;
    @EJB
    private RoleBeanLocal rolebean;

    @EJB
    private EventBeanLocal eventbean;
    private ListDataModel<EventOrganiser> organisers;
    private ListDataModel<LanEvent> orgsEvents;
    private EventOrganiser eventorg;
    private String createorgname;
    private LanEvent event;
    private String eventname;

    public DataModel<EventOrganiser> getOrganisations() {
        userbean.fatalNotLoggedIn();
        User usr = userbean.getCurrentUser();
        List<EventOrganiser> list = null;
        if (usr.isSuperadmin()) {
            list = eventorgbean.getEventOrganisers();
        } else {
            list = usr.getEventOrganiser();
        }
        organisers = new ListDataModel<EventOrganiser>(list);
        return organisers;
    }

    public DataModel<LanEvent> getOrgsEvents() {
        orgsEvents = new ListDataModel<LanEvent>(eventorg.getEvents());
        return orgsEvents;
    }

    public String editEvent() {

        setEvent(orgsEvents.getRowData());
        return "editEvent";
    }
    public String createEvent()
    {
        event = new LanEvent();
        event.setOrganiser(eventorg);
        event.setName(eventname);
        eventbean.create(event);
        eventname = "";
        return "editEvent";
    }

    public String edit() {
        eventorg = null;
        EventOrganiser row = organisers.getRowData();
        eventorgbean.fatalPermission(row);
        eventorg = row;
        return "edit";
    }

    public String save() {
        eventorgbean.fatalPermission(eventorg);
        eventorgbean.save(eventorg);
        return "edit";
    }
    public String saveEvent()
    {
        logger.debug("Saving event. role {}", event.getDefaultRole());
       event= eventbean.mergeChanges(event);
        return "editEvent";
    }

    public String create() {
        eventorg = eventorgbean.create(createorgname);
        return "edit";
    }

    public void setEventorg(EventOrganiser eventorg) {
        this.eventorg = eventorg;
    }

    public EventOrganiser getEventorg() {
        return eventorg;
    }

    public void setCreateorgname(String createorgname) {
        this.createorgname = createorgname;
    }

    public String getCreateorgname() {
        return createorgname;
    }

    public void setEvent(LanEvent event) {
        this.event = event;
    }

    public LanEvent getEvent() {
        return event;
    }

    public List<Role> getEventsRolelist() {

        if (event.getId() == null || event.getId() == 0) {
            return new ArrayList<Role>();
        }
        return rolebean.listRoles(event);
    }

    public void eventDefaultRoleChangelistener(ValueChangeEvent ev) {
        logger.debug("Default role changed. Type {}, vaule {}", ev.getNewValue().getClass(), ev.getNewValue());
        int val = Integer.parseInt(ev.getNewValue().toString());
        Role nrole = null;
        if (val > 0) {
            nrole = rolebean.find(val, event);
        }
        event.setDefaultRole(nrole);
    }
    public RoleConverter getRoleconverter()
    {
        return new RoleConverter(rolebean, event);
    }

    public void setEventname(String eventname) {
        this.eventname = eventname;
    }

    public String getEventname() {
        return eventname;
    }
}