package hu.sch.web.kp.group.admin; import hu.sch.domain.Membership; import hu.sch.services.MembershipManagerLocal; import hu.sch.web.kp.group.ShowGroup; import hu.sch.web.wicket.components.SelectableMembership; import hu.sch.web.wicket.components.tables.DateIntervalPropertyColumn; import hu.sch.web.wicket.components.tables.MembershipTable; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import org.apache.wicket.extensions.markup.html.repeater.data.table.IColumn; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.markup.html.panel.Panel; import org.apache.wicket.model.Model; import org.apache.wicket.request.mapper.parameter.PageParameters; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Ezt a panelt látja a user akkor, ha jogosult arra, hogy aktiválhassa az * öregtagokat. A körítésen (lásd markup) kívül lehet rendezgetni a táblázatot. * * @author aldaris * @author messo * @see MembershipTable */ public final class AdminOldBoysPanel extends Panel { private static Logger log = LoggerFactory.getLogger(AdminOldBoysPanel.class); @Inject private MembershipManagerLocal membershipManager; public AdminOldBoysPanel(String id, final List<Membership> inactiveMembers) { super(id); Form form; final List<SelectableMembership> lines = new ArrayList<SelectableMembership>(inactiveMembers.size()); for (Membership ms : inactiveMembers) { lines.add(new SelectableMembership(ms)); } add(form = new Form("oldForm") { @Override public void onSubmit() { try { for (SelectableMembership extendedGroup : lines) { Membership ms = extendedGroup.getMembership(); if (extendedGroup.getSelected()) { membershipManager.activateMembership(ms); } } getSession().info("A változások sikeresen mentésre kerültek"); } catch (Exception ex) { getSession().error("Hiba történt a feldolgozás közben"); log.warn("Hiba történt az öregtag visszaállításakor", ex); } setResponsePage(ShowGroup.class, new PageParameters().add("id", inactiveMembers.get(0).getGroup().getId())); } }); form.add(new MembershipTable<SelectableMembership>("table", lines, SelectableMembership.class) { @Override public void onPopulateColumns(List<IColumn<SelectableMembership, String>> columns) { columns.add(new DateIntervalPropertyColumn<SelectableMembership>( new Model<String>("Tagság ideje"), "membershipStartEnd", "membership.start", "membership.end")); } }.getDataTable()); if (inactiveMembers.isEmpty()) { setVisible(false); } } }