Merge branch 'master' of https://git.bukova.info/repos/git/isspst
Conflicts: src/main/java/info/bukova/isspst/data/Requirement.javamultitenant
						commit
						0041a1744b
					
				@ -0,0 +1,7 @@
 | 
			
		||||
package info.bukova.isspst.dao;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
 | 
			
		||||
public interface TripRequirementDao extends BaseDao<TripRequirement> {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,9 @@
 | 
			
		||||
package info.bukova.isspst.dao.jpa;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.dao.TripRequirementDao;
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementDaoJPA extends BaseDaoJPA<TripRequirement> implements
 | 
			
		||||
		TripRequirementDao {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,48 @@
 | 
			
		||||
package info.bukova.isspst.data;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import javax.persistence.Column;
 | 
			
		||||
import javax.persistence.Entity;
 | 
			
		||||
import javax.persistence.Table;
 | 
			
		||||
 | 
			
		||||
@Entity
 | 
			
		||||
@Table(name = "TRIPREQUIREMENT")
 | 
			
		||||
public class TripRequirement extends RequirementBase {
 | 
			
		||||
	
 | 
			
		||||
	@Column(name = "TRIP_FROM")
 | 
			
		||||
	private String from;
 | 
			
		||||
	@Column(name = "TRIP_TO")
 | 
			
		||||
	private String to;
 | 
			
		||||
	@Column(name = "TRIP_DATE")
 | 
			
		||||
	private Date tripDate;
 | 
			
		||||
 | 
			
		||||
	public TripRequirement() {
 | 
			
		||||
		this.setOwnedBy(new User());
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public String getFrom() {
 | 
			
		||||
		return from;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setFrom(String from) {
 | 
			
		||||
		this.from = from;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public String getTo() {
 | 
			
		||||
		return to;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setTo(String to) {
 | 
			
		||||
		this.to = to;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public Date getTripDate() {
 | 
			
		||||
		return tripDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public void setTripDate(Date tripDate) {
 | 
			
		||||
		this.tripDate = tripDate;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,71 @@
 | 
			
		||||
package info.bukova.isspst.filters;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.DateTimeUtils;
 | 
			
		||||
import info.bukova.isspst.StringUtils;
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
 | 
			
		||||
import org.hamcrest.Description;
 | 
			
		||||
import org.hamcrest.Factory;
 | 
			
		||||
import org.hamcrest.Matcher;
 | 
			
		||||
import org.hamcrest.TypeSafeMatcher;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementFilter implements Filter<TripRequirement>
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
	private TripRequirement condition;
 | 
			
		||||
 | 
			
		||||
	public TripRequirementFilter(TripRequirement cond)
 | 
			
		||||
	{
 | 
			
		||||
		this.condition = cond;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private static class TripRequirementMatcher extends TypeSafeMatcher<TripRequirement>
 | 
			
		||||
	{
 | 
			
		||||
 | 
			
		||||
		private TripRequirement condition;
 | 
			
		||||
 | 
			
		||||
		public TripRequirementMatcher(TripRequirement cond)
 | 
			
		||||
		{
 | 
			
		||||
			this.condition = cond;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public void describeTo(Description desc)
 | 
			
		||||
		{
 | 
			
		||||
			desc.appendText("requirement matches");
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Override
 | 
			
		||||
		public boolean matchesSafely(TripRequirement item)
 | 
			
		||||
		{
 | 
			
		||||
			boolean foundNumser = StringUtils.isEqualForFilter(item.getNumser(), condition.getNumser());
 | 
			
		||||
			boolean foundReqDate = DateTimeUtils.isEqualByDateForFilter(item.getReqDate(), condition.getReqDate());
 | 
			
		||||
			boolean foundDescription = StringUtils.isEqualForFilter(item.getDescription(), condition.getDescription());
 | 
			
		||||
			boolean foundFrom = StringUtils.isEqualForFilter(item.getFrom(), condition.getFrom());
 | 
			
		||||
			boolean foundTo = StringUtils.isEqualForFilter(item.getTo(), condition.getTo());
 | 
			
		||||
			boolean foundWorkgroup = (condition.getWorkgroup() == null ||(item.getWorkgroup() != null && item.getWorkgroup().equals(condition.getWorkgroup())));
 | 
			
		||||
			boolean foundCentre = (condition.getCentre() == null || (item.getCentre() != null && item.getCentre().equals(condition.getCentre())));
 | 
			
		||||
			boolean foundOwner = StringUtils.isEqualForFilter(item.getOwnedBy().getLastName(), condition.getOwnedBy().getLastName());
 | 
			
		||||
			return foundNumser && foundReqDate && foundDescription && foundFrom && foundTo && foundWorkgroup && foundCentre && foundOwner;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		@Factory
 | 
			
		||||
		public static Matcher<TripRequirement> matchTripRequirement(TripRequirement building)
 | 
			
		||||
		{
 | 
			
		||||
			return new TripRequirementMatcher(building);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public TripRequirementMatcher matcher()
 | 
			
		||||
	{
 | 
			
		||||
		return new TripRequirementMatcher(condition);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	public String queryString()
 | 
			
		||||
	{
 | 
			
		||||
		return "";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,5 @@
 | 
			
		||||
package info.bukova.isspst.services.requirement;
 | 
			
		||||
 | 
			
		||||
public interface RequirementBaseService {
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -1,8 +1,16 @@
 | 
			
		||||
package info.bukova.isspst.services.requirement;
 | 
			
		||||
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.RequirementType;
 | 
			
		||||
import info.bukova.isspst.services.AbstractOwnedService;
 | 
			
		||||
 | 
			
		||||
public class RequirementTypeServiceImpl  extends AbstractOwnedService<RequirementType> implements RequirementTypeService {
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional
 | 
			
		||||
	public RequirementType getTypeById(String id) {
 | 
			
		||||
		return selectSingle("from RequirementType where type = '" + id + "'");
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,14 @@
 | 
			
		||||
package info.bukova.isspst.services.requirement;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
import info.bukova.isspst.services.Service;
 | 
			
		||||
 | 
			
		||||
public interface TripRequirementService extends Service<TripRequirement> {
 | 
			
		||||
	
 | 
			
		||||
	public List<TripRequirement> getCentreReq();
 | 
			
		||||
	public List<TripRequirement> getWorkgroupReq();
 | 
			
		||||
	public List<TripRequirement> getFromAll();
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,92 @@
 | 
			
		||||
package info.bukova.isspst.services.requirement;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.Constants;
 | 
			
		||||
import info.bukova.isspst.data.RequirementState;
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
import info.bukova.isspst.data.Workgroup;
 | 
			
		||||
import info.bukova.isspst.services.AbstractOwnedService;
 | 
			
		||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
 | 
			
		||||
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.hibernate.Query;
 | 
			
		||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
			
		||||
import org.springframework.security.access.prepost.PostFilter;
 | 
			
		||||
import org.springframework.security.access.prepost.PreAuthorize;
 | 
			
		||||
import org.springframework.transaction.annotation.Transactional;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementServiceImpl extends AbstractOwnedService<TripRequirement>
 | 
			
		||||
		implements TripRequirementService, RequirementBaseService {
 | 
			
		||||
	
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private RequirementTypeService reqTypeService;
 | 
			
		||||
	@Autowired
 | 
			
		||||
	private WorkgroupService workgroupService;
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected TripRequirement createEntity() {
 | 
			
		||||
		TripRequirement tr = new TripRequirement();
 | 
			
		||||
		tr.setReqDate(new Date());
 | 
			
		||||
		tr.setType(reqTypeService.getTypeById(Constants.REQTYPE_BUSINESSTRIP));
 | 
			
		||||
		tr.setState(RequirementState.NEW);
 | 
			
		||||
		return tr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional
 | 
			
		||||
	@PreAuthorize("hasPermission(this, 'PERM_ADD')")
 | 
			
		||||
	public void add(TripRequirement entity) {
 | 
			
		||||
		Workgroup reqWorkgroup = null;
 | 
			
		||||
		for (Workgroup w : workgroupService.getUserWorkgroups(getLoggedInUser())) {
 | 
			
		||||
			if (workgroupService.getMembers(entity.getCentre()).contains(w)) {
 | 
			
		||||
				reqWorkgroup = w;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		entity.setWorkgroup(reqWorkgroup);
 | 
			
		||||
		entity.setNumser(getNumberSerie());
 | 
			
		||||
		super.add(entity);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@SuppressWarnings("unchecked")
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional
 | 
			
		||||
	@PreAuthorize("hasPermission(this, 'PERM_READ')")
 | 
			
		||||
	public List<TripRequirement> getAll() {
 | 
			
		||||
		Query q = dao.getQuery("from TripRequirement where ownedBy = :owner");
 | 
			
		||||
		q.setParameter("owner", getLoggedInUser());
 | 
			
		||||
		return q.list();
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@SuppressWarnings("unchecked")
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional
 | 
			
		||||
	@PreAuthorize("hasPermission(this, 'PERM_SHOW_CENTRE_REQ')")
 | 
			
		||||
	@PostFilter("hasPermission(filterObject, 'PERM_SHOW_CENTRE_REQ')")
 | 
			
		||||
	public List<TripRequirement> getCentreReq() {
 | 
			
		||||
		List<Workgroup> wgList = workgroupService.getUserCentres(getLoggedInUser());
 | 
			
		||||
		Query q = dao.getQuery("select tr from TripRequirement tr join tr.centre c where c in (:wgList)");
 | 
			
		||||
		q.setParameterList("wgList", wgList);
 | 
			
		||||
		return q.list();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@SuppressWarnings("unchecked")
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional
 | 
			
		||||
	@PreAuthorize("hasPermission(this, 'PERM_SHOW_WORKGROUP_REQ')")
 | 
			
		||||
	@PostFilter("hasPermission(filterObject, 'PERM_SHOW_WORKGROUP_REQ')")
 | 
			
		||||
	public List<TripRequirement> getWorkgroupReq() {
 | 
			
		||||
		List<Workgroup> wgList = workgroupService.getUserWorkgroups(getLoggedInUser());
 | 
			
		||||
		Query q = dao.getQuery("select tr from TripRequirement tr join tr.workgroup w where w in (:wgList)");
 | 
			
		||||
		q.setParameterList("wgList", wgList);
 | 
			
		||||
		return q.list();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	@Transactional
 | 
			
		||||
	@PreAuthorize("hasPermission(this, 'PERM_SHOW_ALL_REQ')")
 | 
			
		||||
	public List<TripRequirement> getFromAll() {
 | 
			
		||||
		return super.getAll();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,33 @@
 | 
			
		||||
package info.bukova.isspst.ui.requirement;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.zkoss.bind.annotation.Init;
 | 
			
		||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
import info.bukova.isspst.data.Workgroup;
 | 
			
		||||
import info.bukova.isspst.services.users.UserService;
 | 
			
		||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
 | 
			
		||||
import info.bukova.isspst.ui.FormViewModel;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementForm extends FormViewModel<TripRequirement> {
 | 
			
		||||
	
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private UserService userService;
 | 
			
		||||
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private WorkgroupService workgroupService;
 | 
			
		||||
	
 | 
			
		||||
	private List<Workgroup> centres;
 | 
			
		||||
	
 | 
			
		||||
	@Init(superclass = true)
 | 
			
		||||
	public void init() {
 | 
			
		||||
		centres = workgroupService.getUserCentres(userService.getCurrent());
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public List<Workgroup> getCentres() {
 | 
			
		||||
		return centres;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,79 @@
 | 
			
		||||
package info.bukova.isspst.ui.requirement;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
import info.bukova.isspst.data.Workgroup;
 | 
			
		||||
import info.bukova.isspst.filters.TripRequirementFilter;
 | 
			
		||||
import info.bukova.isspst.services.requirement.TripRequirementService;
 | 
			
		||||
import info.bukova.isspst.services.users.UserService;
 | 
			
		||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
 | 
			
		||||
import info.bukova.isspst.ui.ListViewModel;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.zkoss.bind.annotation.GlobalCommand;
 | 
			
		||||
import org.zkoss.bind.annotation.Init;
 | 
			
		||||
import org.zkoss.bind.annotation.NotifyChange;
 | 
			
		||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementList extends ListViewModel<TripRequirement> {
 | 
			
		||||
	
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private TripRequirementService tripRequirementService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private WorkgroupService workgroupService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private UserService userService;
 | 
			
		||||
	private List<Workgroup> myCentres;
 | 
			
		||||
	private boolean showCentre;
 | 
			
		||||
	private boolean showWorkgroup;
 | 
			
		||||
	private boolean showAll;
 | 
			
		||||
 | 
			
		||||
	@Init
 | 
			
		||||
	public void init() {
 | 
			
		||||
		service = tripRequirementService;
 | 
			
		||||
		dataClass = TripRequirement.class;
 | 
			
		||||
		formZul = "requirementsForm.zul";
 | 
			
		||||
		
 | 
			
		||||
		showCentre = true;
 | 
			
		||||
		showWorkgroup = true;
 | 
			
		||||
		showAll = true;
 | 
			
		||||
		
 | 
			
		||||
		dataFilter = new TripRequirementFilter(getFilterTemplate());
 | 
			
		||||
		myCentres = workgroupService.getUserCentres(userService.getCurrent());
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@GlobalCommand
 | 
			
		||||
	@NotifyChange("showCentre")
 | 
			
		||||
	public void disableCentre() {
 | 
			
		||||
		showCentre = false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@GlobalCommand
 | 
			
		||||
	@NotifyChange("showWorkgroup")
 | 
			
		||||
	public void disableWorkgroup() {
 | 
			
		||||
		showWorkgroup = false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@GlobalCommand
 | 
			
		||||
	@NotifyChange("showAll")
 | 
			
		||||
	public void disableAll() {
 | 
			
		||||
		showAll = false;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public boolean isShowCentre() {
 | 
			
		||||
		return showCentre;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public boolean isShowWorkgroup() {
 | 
			
		||||
		return showWorkgroup;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public boolean isShowAll() {
 | 
			
		||||
		return showAll;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public List<Workgroup> getMyCentres() {
 | 
			
		||||
		return myCentres;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,59 @@
 | 
			
		||||
package info.bukova.isspst.ui.requirement;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.springframework.security.access.AccessDeniedException;
 | 
			
		||||
import org.zkoss.bind.BindUtils;
 | 
			
		||||
import org.zkoss.bind.annotation.Init;
 | 
			
		||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
import info.bukova.isspst.data.Workgroup;
 | 
			
		||||
import info.bukova.isspst.filters.TripRequirementFilter;
 | 
			
		||||
import info.bukova.isspst.services.requirement.TripRequirementService;
 | 
			
		||||
import info.bukova.isspst.services.users.UserService;
 | 
			
		||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
 | 
			
		||||
import info.bukova.isspst.ui.ListViewModel;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementListAll extends ListViewModel<TripRequirement> {
 | 
			
		||||
	
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private TripRequirementService tripRequirementService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private WorkgroupService workgroupService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private UserService userService;
 | 
			
		||||
	private List<Workgroup> allCentres;
 | 
			
		||||
	private List<Workgroup> allWorkgroups;
 | 
			
		||||
 | 
			
		||||
	@Init
 | 
			
		||||
	public void init() {
 | 
			
		||||
		service = tripRequirementService;
 | 
			
		||||
		dataClass = TripRequirement.class;
 | 
			
		||||
		formZul = "requirementsForm.zul";
 | 
			
		||||
		dataFilter = new TripRequirementFilter(getFilterTemplate());
 | 
			
		||||
		
 | 
			
		||||
		allCentres = workgroupService.getCentres();
 | 
			
		||||
		allWorkgroups = workgroupService.getWorkgroups();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected List<TripRequirement> getListFromService() {
 | 
			
		||||
		try {
 | 
			
		||||
			return tripRequirementService.getFromAll();
 | 
			
		||||
		} catch (AccessDeniedException e) {
 | 
			
		||||
			BindUtils.postGlobalCommand(null, null, "disableAll", null);
 | 
			
		||||
			return new ArrayList<TripRequirement>();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public List<Workgroup> getAllCentres() {
 | 
			
		||||
		return allCentres;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public List<Workgroup> getAllWorkgroups() {
 | 
			
		||||
		return allWorkgroups;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,53 @@
 | 
			
		||||
package info.bukova.isspst.ui.requirement;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.springframework.security.access.AccessDeniedException;
 | 
			
		||||
import org.zkoss.bind.BindUtils;
 | 
			
		||||
import org.zkoss.bind.annotation.Init;
 | 
			
		||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
import info.bukova.isspst.data.Workgroup;
 | 
			
		||||
import info.bukova.isspst.filters.TripRequirementFilter;
 | 
			
		||||
import info.bukova.isspst.services.requirement.TripRequirementService;
 | 
			
		||||
import info.bukova.isspst.services.users.UserService;
 | 
			
		||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
 | 
			
		||||
import info.bukova.isspst.ui.ListViewModel;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementListCentre extends ListViewModel<TripRequirement> {
 | 
			
		||||
	
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private TripRequirementService tripRequirementService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private WorkgroupService workgroupService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private UserService userService;
 | 
			
		||||
	private List<Workgroup> myCentres;
 | 
			
		||||
 | 
			
		||||
	@Init
 | 
			
		||||
	public void init() {
 | 
			
		||||
		service = tripRequirementService;
 | 
			
		||||
		dataClass = TripRequirement.class;
 | 
			
		||||
		formZul = "requirementsForm.zul";
 | 
			
		||||
		dataFilter = new TripRequirementFilter(getFilterTemplate());
 | 
			
		||||
		
 | 
			
		||||
		myCentres = workgroupService.getUserCentres(userService.getCurrent());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected List<TripRequirement> getListFromService() {
 | 
			
		||||
		try {
 | 
			
		||||
			return tripRequirementService.getCentreReq();
 | 
			
		||||
		} catch (AccessDeniedException e) {
 | 
			
		||||
			BindUtils.postGlobalCommand(null, null, "disableCentre", null);
 | 
			
		||||
			return new ArrayList<TripRequirement>();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public List<Workgroup> getMyCentres() {
 | 
			
		||||
		return myCentres;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,59 @@
 | 
			
		||||
package info.bukova.isspst.ui.requirement;
 | 
			
		||||
 | 
			
		||||
import java.util.ArrayList;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.springframework.security.access.AccessDeniedException;
 | 
			
		||||
import org.zkoss.bind.BindUtils;
 | 
			
		||||
import org.zkoss.bind.annotation.Init;
 | 
			
		||||
import org.zkoss.zk.ui.select.annotation.WireVariable;
 | 
			
		||||
 | 
			
		||||
import info.bukova.isspst.data.TripRequirement;
 | 
			
		||||
import info.bukova.isspst.data.Workgroup;
 | 
			
		||||
import info.bukova.isspst.filters.TripRequirementFilter;
 | 
			
		||||
import info.bukova.isspst.services.requirement.TripRequirementService;
 | 
			
		||||
import info.bukova.isspst.services.users.UserService;
 | 
			
		||||
import info.bukova.isspst.services.workgroups.WorkgroupService;
 | 
			
		||||
import info.bukova.isspst.ui.ListViewModel;
 | 
			
		||||
 | 
			
		||||
public class TripRequirementListWorkgroup extends ListViewModel<TripRequirement> {
 | 
			
		||||
	
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private TripRequirementService tripRequirementService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private WorkgroupService workgroupService;
 | 
			
		||||
	@WireVariable
 | 
			
		||||
	private UserService userService;
 | 
			
		||||
	private List<Workgroup> myCentres;
 | 
			
		||||
	private List<Workgroup> myWorkgroups;
 | 
			
		||||
 | 
			
		||||
	@Init
 | 
			
		||||
	public void init() {
 | 
			
		||||
		service = tripRequirementService;
 | 
			
		||||
		dataClass = TripRequirement.class;
 | 
			
		||||
		formZul = "requirementsForm.zul";
 | 
			
		||||
		dataFilter = new TripRequirementFilter(getFilterTemplate());
 | 
			
		||||
		
 | 
			
		||||
		myCentres = workgroupService.getUserCentres(userService.getCurrent());
 | 
			
		||||
		myWorkgroups = workgroupService.getUserWorkgroups(userService.getCurrent());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@Override
 | 
			
		||||
	protected List<TripRequirement> getListFromService() {
 | 
			
		||||
		try {
 | 
			
		||||
			return tripRequirementService.getWorkgroupReq();
 | 
			
		||||
		} catch (AccessDeniedException e) {
 | 
			
		||||
			BindUtils.postGlobalCommand(null, null, "disableWorkgroup", null);
 | 
			
		||||
			return new ArrayList<TripRequirement>();
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public List<Workgroup> getMyCentres() {
 | 
			
		||||
		return myCentres;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public List<Workgroup> getMyWorkgroups() {
 | 
			
		||||
		return myWorkgroups;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
@ -1,46 +1,46 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<beans xmlns="http://www.springframework.org/schema/beans"
 | 
			
		||||
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 | 
			
		||||
	
 | 
			
		||||
	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
 | 
			
		||||
		<property name="host" value="${mail.host}"/>
 | 
			
		||||
		<property name="port" value="${mail.port}"/>
 | 
			
		||||
		<property name="username" value="${mail.username}"/>
 | 
			
		||||
		<property name="password" value="${mail.password}"/>
 | 
			
		||||
		<property name="defaultEncoding" value="UTF-8"/>
 | 
			
		||||
		<property name="javaMailProperties">
 | 
			
		||||
			<props>
 | 
			
		||||
				<prop key="mail.smtp.auth">${mail.useauth}</prop>
 | 
			
		||||
				<prop key="mail.smtp.starttls.enable">${mail.usessl}</prop>
 | 
			
		||||
			</props>
 | 
			
		||||
		</property>
 | 
			
		||||
	</bean>
 | 
			
		||||
	
 | 
			
		||||
	<bean id="mailer" class="info.bukova.isspst.mail.MailerWithAttachement">
 | 
			
		||||
		<constructor-arg ref="mailSender"/>
 | 
			
		||||
		<property name="from" value="${mail.from}"/>
 | 
			
		||||
	</bean>
 | 
			
		||||
	
 | 
			
		||||
	<bean id="simpleMailer" class="info.bukova.isspst.mail.SimpleMailer">
 | 
			
		||||
		<constructor-arg ref="mailSender"/>
 | 
			
		||||
		<property name="from" value="${mail.from}"/>
 | 
			
		||||
	</bean>
 | 
			
		||||
	
 | 
			
		||||
	<bean id="messageBuilder" class="info.bukova.isspst.mail.EntityMessageBuilder"/>
 | 
			
		||||
	
 | 
			
		||||
<!-- 	<bean id="mailer" class="info.bukova.rsfaktura.services.mail.ThreadMailer"> -->
 | 
			
		||||
<!-- 		<constructor-arg ref="attachementMailer"/> -->
 | 
			
		||||
<!-- 	</bean> -->
 | 
			
		||||
	
 | 
			
		||||
<!-- 	<bean id="attachementMailer" class="info.bukova.rsfaktura.services.mail.AttachementMailer"> -->
 | 
			
		||||
<!-- 		<constructor-arg ref="tmpStorage"/> -->
 | 
			
		||||
<!-- 		<property name="from" value="josef.rokos@gmail.com"/> -->
 | 
			
		||||
<!-- 		<property name="sender" ref="mailSender"/> -->
 | 
			
		||||
<!-- 	</bean> -->
 | 
			
		||||
	
 | 
			
		||||
<!-- 	<bean id="messageBuilder" class="info.bukova.rsfaktura.services.mail.MailMessageBuilder"> -->
 | 
			
		||||
<!-- 		<constructor-arg ref="tmpStorage"/> -->
 | 
			
		||||
<!-- 	</bean> -->
 | 
			
		||||
 | 
			
		||||
</beans>
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<beans xmlns="http://www.springframework.org/schema/beans"
 | 
			
		||||
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | 
			
		||||
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
 | 
			
		||||
	
 | 
			
		||||
	<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
 | 
			
		||||
		<property name="host" value="${mail.host}"/>
 | 
			
		||||
		<property name="port" value="${mail.port}"/>
 | 
			
		||||
		<property name="username" value="${mail.username}"/>
 | 
			
		||||
		<property name="password" value="${mail.password}"/>
 | 
			
		||||
		<property name="defaultEncoding" value="UTF-8"/>
 | 
			
		||||
		<property name="javaMailProperties">
 | 
			
		||||
			<props>
 | 
			
		||||
				<prop key="mail.smtp.auth">${mail.useauth}</prop>
 | 
			
		||||
				<prop key="mail.smtp.starttls.enable">${mail.usessl}</prop>
 | 
			
		||||
			</props>
 | 
			
		||||
		</property>
 | 
			
		||||
	</bean>
 | 
			
		||||
	
 | 
			
		||||
	<bean id="mailer" class="info.bukova.isspst.mail.MailerWithAttachement">
 | 
			
		||||
		<constructor-arg ref="mailSender"/>
 | 
			
		||||
		<property name="from" value="${mail.from}"/>
 | 
			
		||||
	</bean>
 | 
			
		||||
	
 | 
			
		||||
	<bean id="simpleMailer" class="info.bukova.isspst.mail.SimpleMailer">
 | 
			
		||||
		<constructor-arg ref="mailSender"/>
 | 
			
		||||
		<property name="from" value="${mail.from}"/>
 | 
			
		||||
	</bean>
 | 
			
		||||
	
 | 
			
		||||
	<bean id="messageBuilder" class="info.bukova.isspst.mail.EntityMessageBuilder"/>
 | 
			
		||||
	
 | 
			
		||||
<!-- 	<bean id="mailer" class="info.bukova.rsfaktura.services.mail.ThreadMailer"> -->
 | 
			
		||||
<!-- 		<constructor-arg ref="attachementMailer"/> -->
 | 
			
		||||
<!-- 	</bean> -->
 | 
			
		||||
	
 | 
			
		||||
<!-- 	<bean id="attachementMailer" class="info.bukova.rsfaktura.services.mail.AttachementMailer"> -->
 | 
			
		||||
<!-- 		<constructor-arg ref="tmpStorage"/> -->
 | 
			
		||||
<!-- 		<property name="from" value="josef.rokos@gmail.com"/> -->
 | 
			
		||||
<!-- 		<property name="sender" ref="mailSender"/> -->
 | 
			
		||||
<!-- 	</bean> -->
 | 
			
		||||
	
 | 
			
		||||
<!-- 	<bean id="messageBuilder" class="info.bukova.rsfaktura.services.mail.MailMessageBuilder"> -->
 | 
			
		||||
<!-- 		<constructor-arg ref="tmpStorage"/> -->
 | 
			
		||||
<!-- 	</bean> -->
 | 
			
		||||
 | 
			
		||||
</beans>
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,8 @@
 | 
			
		||||
<?page title="req toolbar" contentType="text/html;charset=UTF-8"?>
 | 
			
		||||
<zk>
 | 
			
		||||
<toolbar>
 | 
			
		||||
	<toolbarbutton image="/img/edit.png" tooltiptext="${labels.ToolbarRecEdit}" id="btnEdit" onClick="@command('edit')" disabled="@load(empty vmSub.dataBean ? 'true' : 'false')"/>
 | 
			
		||||
	<toolbarbutton image="/img/funnel.png" tooltiptext="${labels.ToolbarRecFilter}" id="btnFilter" onClick="@command('filter')" />
 | 
			
		||||
	<toolbarbutton image="/img/print.png" tooltiptext="${labels.ToolbarPrint}" id="btnPrint" onClick="@command('onPrint')" />
 | 
			
		||||
</toolbar>
 | 
			
		||||
</zk>
 | 
			
		||||
@ -0,0 +1,10 @@
 | 
			
		||||
<?page title="${labels.AgendaActRequirements}" contentType="text/html;charset=UTF-8"?>
 | 
			
		||||
<zk>
 | 
			
		||||
 | 
			
		||||
<zscript>
 | 
			
		||||
	String gridZul = "requirements.zul";
 | 
			
		||||
</zscript>
 | 
			
		||||
 | 
			
		||||
<include src="../../app/template.zhtml"/>
 | 
			
		||||
 | 
			
		||||
</zk>
 | 
			
		||||
@ -0,0 +1,610 @@
 | 
			
		||||
<?page title="${labels.AgendaActRequirements}" contentType="text/html;charset=UTF-8"?>
 | 
			
		||||
<zk>
 | 
			
		||||
	<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
 | 
			
		||||
	<window
 | 
			
		||||
		border="normal"
 | 
			
		||||
		apply="org.zkoss.bind.BindComposer"
 | 
			
		||||
		viewModel="@id('vm') @init('info.bukova.isspst.ui.requirement.TripRequirementList')">
 | 
			
		||||
		<caption
 | 
			
		||||
			zclass="form-caption"
 | 
			
		||||
			label="${labels.AgendaActRequirements}" />
 | 
			
		||||
		
 | 
			
		||||
		<tabbox>
 | 
			
		||||
			<tabs>
 | 
			
		||||
				<tab label="${labels.RequirementsGridMy}"/>
 | 
			
		||||
				<tab label="${labels.RequirementsGridMyCentres}" disabled="@load(not vm.showCentre)"/>
 | 
			
		||||
				<tab label="${labels.RequirementsGridMyWorkgroups}" disabled="@load(not vm.showWorkgroup)"/>
 | 
			
		||||
				<tab label="${labels.RequirementsGridAll}" disabled="@load(not vm.showAll)"/>
 | 
			
		||||
			</tabs>
 | 
			
		||||
			
 | 
			
		||||
			<tabpanels>
 | 
			
		||||
				<tabpanel>
 | 
			
		||||
					<include src="/app/toolbar.zul" />
 | 
			
		||||
					<listbox
 | 
			
		||||
						model="@load(vm.dataList)"
 | 
			
		||||
						selectedItem="@bind(vm.dataBean)">
 | 
			
		||||
						<listhead menupopup="auto">
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridNumberSerie}"
 | 
			
		||||
								sort="czech(numser)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridReqDate}"
 | 
			
		||||
								sort="auto(reqDate)"
 | 
			
		||||
								width="13%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridCenter}"
 | 
			
		||||
								sort="auto(centre)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridFrom}"
 | 
			
		||||
								sort="czech(from)"
 | 
			
		||||
								width="40%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridTo}"
 | 
			
		||||
								sort="czech(to)"
 | 
			
		||||
								width="40%" />
 | 
			
		||||
						</listhead>
 | 
			
		||||
						<auxhead
 | 
			
		||||
							sclass="category-center"
 | 
			
		||||
							visible="@load(vm.filter)">
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vm.filterTemplate.numser)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<datebox
 | 
			
		||||
											value="@bind(vm.filterTemplate.reqDate)"
 | 
			
		||||
											format="${labels.DateFormat}"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<combobox
 | 
			
		||||
										readonly="true"
 | 
			
		||||
										width="100%"
 | 
			
		||||
										selectedItem="@bind(vm.filterTemplate.centre)"
 | 
			
		||||
										model="@load(vm.myCentres)"
 | 
			
		||||
										onChange="@command('doFilter')">
 | 
			
		||||
										<template name="model">
 | 
			
		||||
											<comboitem label="@load(each.fullName)" />
 | 
			
		||||
										</template>
 | 
			
		||||
									</combobox>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vm.filterTemplate.from)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vm.filterTemplate.to)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
						</auxhead> 
 | 
			
		||||
						<template name="model">
 | 
			
		||||
							<listitem>
 | 
			
		||||
								<listcell label="@load(each.numser)" />
 | 
			
		||||
								<listcell label="@load(each.reqDate) @converter('formatedDate', format=labels.DateFormat)" />
 | 
			
		||||
								<listcell label="@load(each.centre.fullName)" />
 | 
			
		||||
								<listcell label="@load(each.from)" />
 | 
			
		||||
								<listcell label="@load(each.to)"/>
 | 
			
		||||
							</listitem>
 | 
			
		||||
						</template>
 | 
			
		||||
					</listbox>		
 | 
			
		||||
				</tabpanel>
 | 
			
		||||
				
 | 
			
		||||
				<tabpanel apply="org.zkoss.bind.BindComposer" 
 | 
			
		||||
					viewModel="@id('vmSub') @init('info.bukova.isspst.ui.requirement.TripRequirementListCentre')">
 | 
			
		||||
					<include src="/requirements/toolbar.zul"/>
 | 
			
		||||
				
 | 
			
		||||
					<listbox
 | 
			
		||||
						model="@load(vmSub.dataList)"
 | 
			
		||||
						selectedItem="@bind(vmSub.dataBean)">
 | 
			
		||||
						<listhead menupopup="auto">
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridNumberSerie}"
 | 
			
		||||
								sort="czech(numser)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridReqDate}"
 | 
			
		||||
								sort="auto(reqDate)"
 | 
			
		||||
								width="13%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridCenter}"
 | 
			
		||||
								sort="auto(centre)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridFrom}"
 | 
			
		||||
								sort="auto(from)"
 | 
			
		||||
								width="40%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridTo}"
 | 
			
		||||
								sort="czech(to)"
 | 
			
		||||
								width="40%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridOwnedBy}"
 | 
			
		||||
								sort="auto(ownedBy)"
 | 
			
		||||
								width="20%" />
 | 
			
		||||
						</listhead>
 | 
			
		||||
						<auxhead
 | 
			
		||||
							sclass="category-center"
 | 
			
		||||
							visible="@load(vmSub.filter)">
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.numser)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<datebox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.reqDate)"
 | 
			
		||||
											format="${labels.DateFormat}"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<combobox
 | 
			
		||||
										readonly="true"
 | 
			
		||||
										width="100%"
 | 
			
		||||
										selectedItem="@bind(vmSub.filterTemplate.centre)"
 | 
			
		||||
										model="@load(vmSub.myCentres)"
 | 
			
		||||
										onChange="@command('doFilter')">
 | 
			
		||||
										<template name="model">
 | 
			
		||||
											<comboitem label="@load(each.fullName)" />
 | 
			
		||||
										</template>
 | 
			
		||||
									</combobox>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.from)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.to)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.ownedBy.lastName)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
						</auxhead> 
 | 
			
		||||
						<template name="model">
 | 
			
		||||
							<listitem>
 | 
			
		||||
								<listcell label="@load(each.numser)" />
 | 
			
		||||
								<listcell label="@load(each.reqDate) @converter('formatedDate', format=labels.DateFormat)" />
 | 
			
		||||
								<listcell label="@load(each.centre.fullName)" />
 | 
			
		||||
								<listcell label="@load(each.from)" />
 | 
			
		||||
								<listcell label="@load(each.to)"/>
 | 
			
		||||
								<listcell label="@load(each.ownedBy)"/>
 | 
			
		||||
							</listitem>
 | 
			
		||||
						</template>
 | 
			
		||||
					</listbox>
 | 
			
		||||
				</tabpanel>
 | 
			
		||||
				
 | 
			
		||||
				<tabpanel apply="org.zkoss.bind.BindComposer"
 | 
			
		||||
					viewModel="@id('vmSub') @init('info.bukova.isspst.ui.requirement.TripRequirementListWorkgroup')">
 | 
			
		||||
					<include src="/requirements/toolbar.zul"/>
 | 
			
		||||
					<listbox
 | 
			
		||||
						model="@load(vmSub.dataList)"
 | 
			
		||||
						selectedItem="@bind(vmSub.dataBean)">
 | 
			
		||||
						<listhead menupopup="auto">
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridNumberSerie}"
 | 
			
		||||
								sort="czech(numser)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridReqDate}"
 | 
			
		||||
								sort="auto(reqDate)"
 | 
			
		||||
								width="13%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridCenter}"
 | 
			
		||||
								sort="auto(centre)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridWorkgroup}"
 | 
			
		||||
								sort="auto(workgroup)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridFrom}"
 | 
			
		||||
								sort="czech(from)"
 | 
			
		||||
								width="30%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridTo}"
 | 
			
		||||
								sort="czech(to)"
 | 
			
		||||
								width="30%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridOwnedBy}"
 | 
			
		||||
								sort="auto(ownedBy)"
 | 
			
		||||
								width="20%" />
 | 
			
		||||
						</listhead>
 | 
			
		||||
						<auxhead
 | 
			
		||||
							sclass="category-center"
 | 
			
		||||
							visible="@load(vmSub.filter)">
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.numser)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<datebox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.reqDate)"
 | 
			
		||||
											format="${labels.DateFormat}"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<combobox
 | 
			
		||||
										readonly="true"
 | 
			
		||||
										width="100%"
 | 
			
		||||
										selectedItem="@bind(vmSub.filterTemplate.centre)"
 | 
			
		||||
										model="@load(vmSub.myCentres)"
 | 
			
		||||
										onChange="@command('doFilter')">
 | 
			
		||||
										<template name="model">
 | 
			
		||||
											<comboitem label="@load(each.fullName)" />
 | 
			
		||||
										</template>
 | 
			
		||||
									</combobox>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<combobox
 | 
			
		||||
										readonly="true"
 | 
			
		||||
										width="100%"
 | 
			
		||||
										selectedItem="@bind(vmSub.filterTemplate.workgroup)"
 | 
			
		||||
										model="@load(vmSub.myWorkgroups)"
 | 
			
		||||
										onChange="@command('doFilter')">
 | 
			
		||||
										<template name="model">
 | 
			
		||||
											<comboitem label="@load(each.fullName)" />
 | 
			
		||||
										</template>
 | 
			
		||||
									</combobox>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.from)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.to)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.ownedBy.lastName)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
						</auxhead>
 | 
			
		||||
						<template name="model">
 | 
			
		||||
							<listitem>
 | 
			
		||||
								<listcell label="@load(each.numser)" />
 | 
			
		||||
								<listcell label="@load(each.reqDate) @converter('formatedDate', format=labels.DateFormat)" />
 | 
			
		||||
								<listcell label="@load(each.centre.fullName)" />
 | 
			
		||||
								<listcell label="@load(each.workgroup.fullName)"/>
 | 
			
		||||
								<listcell label="@load(each.from)" />
 | 
			
		||||
								<listcell label="@load(each.to)"/>
 | 
			
		||||
								<listcell label="@load(each.ownedBy)"/>
 | 
			
		||||
							</listitem>
 | 
			
		||||
						</template>
 | 
			
		||||
					</listbox>
 | 
			
		||||
				</tabpanel>
 | 
			
		||||
				
 | 
			
		||||
				<tabpanel apply="org.zkoss.bind.BindComposer"
 | 
			
		||||
					viewModel="@id('vmSub') @init('info.bukova.isspst.ui.requirement.TripRequirementListAll')">
 | 
			
		||||
					<include src="/requirements/toolbar.zul"/>
 | 
			
		||||
					<listbox
 | 
			
		||||
						model="@load(vmSub.dataList)"
 | 
			
		||||
						selectedItem="@bind(vmSub.dataBean)">
 | 
			
		||||
						<listhead menupopup="auto">
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridNumberSerie}"
 | 
			
		||||
								sort="czech(numser)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridReqDate}"
 | 
			
		||||
								sort="auto(reqDate)"
 | 
			
		||||
								width="13%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridCenter}"
 | 
			
		||||
								sort="auto(centre)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridWorkgroup}"
 | 
			
		||||
								sort="auto(workgroup)"
 | 
			
		||||
								width="10%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridFrom}"
 | 
			
		||||
								sort="czech(from)"
 | 
			
		||||
								width="30%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridTo}"
 | 
			
		||||
								sort="czech(to)"
 | 
			
		||||
								width="30%" />
 | 
			
		||||
							<listheader
 | 
			
		||||
								label="${labels.RequirementsGridOwnedBy}"
 | 
			
		||||
								sort="auto(ownedBy)"
 | 
			
		||||
								width="20%" />
 | 
			
		||||
						</listhead>
 | 
			
		||||
						<auxhead
 | 
			
		||||
							sclass="category-center"
 | 
			
		||||
							visible="@load(vmSub.filter)">
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.numser)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<datebox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.reqDate)"
 | 
			
		||||
											format="${labels.DateFormat}"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<combobox
 | 
			
		||||
										readonly="true"
 | 
			
		||||
										width="100%"
 | 
			
		||||
										selectedItem="@bind(vmSub.filterTemplate.centre)"
 | 
			
		||||
										model="@load(vmSub.allCentres)"
 | 
			
		||||
										onChange="@command('doFilter')">
 | 
			
		||||
										<template name="model">
 | 
			
		||||
											<comboitem label="@load(each.fullName)" />
 | 
			
		||||
										</template>
 | 
			
		||||
									</combobox>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<combobox
 | 
			
		||||
										readonly="true"
 | 
			
		||||
										width="100%"
 | 
			
		||||
										selectedItem="@bind(vmSub.filterTemplate.workgroup)"
 | 
			
		||||
										model="@load(vmSub.allWorkgroups)"
 | 
			
		||||
										onChange="@command('doFilter')">
 | 
			
		||||
										<template name="model">
 | 
			
		||||
											<comboitem label="@load(each.fullName)" />
 | 
			
		||||
										</template>
 | 
			
		||||
									</combobox>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.from)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.to)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
							<auxheader>
 | 
			
		||||
								<div sclass="find-grid-cell">
 | 
			
		||||
									<div sclass="find-grid-divtextbox">
 | 
			
		||||
										<textbox
 | 
			
		||||
											value="@bind(vmSub.filterTemplate.ownedBy.lastName)"
 | 
			
		||||
											instant="true"
 | 
			
		||||
											onChange="@command('doFilter')"
 | 
			
		||||
											sclass="find-grid-textbox"
 | 
			
		||||
											width="100%" />
 | 
			
		||||
									</div>
 | 
			
		||||
									<div sclass="find-grid-img">
 | 
			
		||||
										<image src="/img/funnel.png" />
 | 
			
		||||
									</div>
 | 
			
		||||
								</div>
 | 
			
		||||
							</auxheader>
 | 
			
		||||
						</auxhead>
 | 
			
		||||
						<template name="model">
 | 
			
		||||
							<listitem>
 | 
			
		||||
								<listcell label="@load(each.numser)" />
 | 
			
		||||
								<listcell label="@load(each.reqDate) @converter('formatedDate', format=labels.DateFormat)" />
 | 
			
		||||
								<listcell label="@load(each.centre.fullName)" />
 | 
			
		||||
								<listcell label="@load(each.workgroup.fullName)"/>
 | 
			
		||||
								<listcell label="@load(each.from)" />
 | 
			
		||||
								<listcell label="@load(each.to)"/>
 | 
			
		||||
								<listcell label="@load(each.ownedBy)"/>
 | 
			
		||||
							</listitem>
 | 
			
		||||
						</template>
 | 
			
		||||
					</listbox>
 | 
			
		||||
				</tabpanel>
 | 
			
		||||
			</tabpanels>
 | 
			
		||||
		</tabbox>
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
	</window>
 | 
			
		||||
</zk>
 | 
			
		||||
@ -0,0 +1,90 @@
 | 
			
		||||
<?page title="${labels.RequirementsFormTitle}" contentType="text/html;charset=UTF-8"?>
 | 
			
		||||
<zk>
 | 
			
		||||
	<window
 | 
			
		||||
		id="editWin"
 | 
			
		||||
		closable="true"
 | 
			
		||||
		border="normal"
 | 
			
		||||
		position="center"
 | 
			
		||||
		apply="org.zkoss.bind.BindComposer"
 | 
			
		||||
		viewModel="@id('vm') @init('info.bukova.isspst.ui.requirement.TripRequirementForm')">
 | 
			
		||||
		<caption
 | 
			
		||||
			src="/img/reqact.png"
 | 
			
		||||
			zclass="form-caption"
 | 
			
		||||
			label="${labels.RequirementsFormTitle}" />
 | 
			
		||||
		<vlayout>
 | 
			
		||||
			<grid hflex="min">
 | 
			
		||||
				<columns>
 | 
			
		||||
					<column
 | 
			
		||||
						align="right"
 | 
			
		||||
						hflex="min" />
 | 
			
		||||
					<column />
 | 
			
		||||
				</columns>
 | 
			
		||||
				<rows>
 | 
			
		||||
					<row>
 | 
			
		||||
						<cell sclass="row-title">${labels.RequirementsFormNumberSerie} :</cell>
 | 
			
		||||
						<cell>
 | 
			
		||||
							<textbox
 | 
			
		||||
								id="numser"
 | 
			
		||||
								constraint="@load(vm.constriant)"
 | 
			
		||||
								width="200px"
 | 
			
		||||
								value="@bind(vm.dataBean.numser)"
 | 
			
		||||
								readonly="true" />
 | 
			
		||||
						</cell>
 | 
			
		||||
					</row>
 | 
			
		||||
					<row>
 | 
			
		||||
						<cell sclass="row-title">${labels.RequirementsFormReqDate} :</cell>
 | 
			
		||||
						<cell>
 | 
			
		||||
							<datebox
 | 
			
		||||
								id="reqDate"
 | 
			
		||||
								width="200px"
 | 
			
		||||
								value="@bind(vm.dataBean.reqDate)"
 | 
			
		||||
								format="${labels.DateFormat}" />
 | 
			
		||||
						</cell>
 | 
			
		||||
					</row>
 | 
			
		||||
					<row>
 | 
			
		||||
						<cell sclass="row-title">${labels.RequirementsFormCenter} :</cell>
 | 
			
		||||
						<cell>
 | 
			
		||||
							<combobox
 | 
			
		||||
								model="@load(vm.centres)"
 | 
			
		||||
								readonly="true"
 | 
			
		||||
								selectedItem="@bind(vm.dataBean.centre)">
 | 
			
		||||
								<template name="model">
 | 
			
		||||
									<comboitem label="@load(each.fullName)" />
 | 
			
		||||
								</template>
 | 
			
		||||
							</combobox>
 | 
			
		||||
						</cell>
 | 
			
		||||
					</row>
 | 
			
		||||
					<row>
 | 
			
		||||
						<cell sclass="row-title">${labels.RequirementsFormFrom} :</cell>
 | 
			
		||||
						<cell>
 | 
			
		||||
							<textbox
 | 
			
		||||
								id="from"
 | 
			
		||||
								width="300px"
 | 
			
		||||
								value="@bind(vm.dataBean.from)" />
 | 
			
		||||
						</cell>
 | 
			
		||||
					</row>
 | 
			
		||||
					<row>
 | 
			
		||||
						<cell sclass="row-title">${labels.RequirementsFormTo} :</cell>
 | 
			
		||||
						<cell>
 | 
			
		||||
							<textbox
 | 
			
		||||
								id="to"
 | 
			
		||||
								width="300px"
 | 
			
		||||
								value="@bind(vm.dataBean.to)" />
 | 
			
		||||
						</cell>
 | 
			
		||||
					</row>
 | 
			
		||||
					<row>
 | 
			
		||||
						<cell sclass="row-title">${labels.RequirementsFormPurpose} :</cell>
 | 
			
		||||
						<cell>
 | 
			
		||||
							<textbox
 | 
			
		||||
								id="description"
 | 
			
		||||
								width="300px"
 | 
			
		||||
								value="@bind(vm.dataBean.description)" />
 | 
			
		||||
						</cell>
 | 
			
		||||
					</row>
 | 
			
		||||
				</rows>
 | 
			
		||||
			</grid>
 | 
			
		||||
			
 | 
			
		||||
			<include src="/app/formButtons.zul" />
 | 
			
		||||
		</vlayout>
 | 
			
		||||
	</window>
 | 
			
		||||
</zk>
 | 
			
		||||
					Loading…
					
					
				
		Reference in New Issue