Umožněno nastavení nabízených středisek k typům požadavků.

refs #130
multitenant
Josef Rokos 10 years ago
parent b1664ca656
commit 60accd156c

@ -6,6 +6,9 @@ import java.util.List;
import javax.persistence.CascadeType; import javax.persistence.CascadeType;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany; import javax.persistence.OneToMany;
import javax.persistence.OrderBy; import javax.persistence.OrderBy;
import javax.persistence.Table; import javax.persistence.Table;
@ -25,9 +28,16 @@ public class RequirementType extends BaseData {
@LazyCollection(LazyCollectionOption.FALSE) @LazyCollection(LazyCollectionOption.FALSE)
@OrderBy("CENTRE, WORDER") @OrderBy("CENTRE, WORDER")
private List<Workflow> workflow; private List<Workflow> workflow;
@Column(name = "LIMIT_CENTRES")
private Boolean limitCentres;
@ManyToMany
@LazyCollection(LazyCollectionOption.FALSE)
@JoinTable(name="REQUIREMENTTYPE_WORKGROUP", joinColumns={@JoinColumn(name="REQUIREMENTTYPE_ID")}, inverseJoinColumns={@JoinColumn(name="WORKGROUP_ID")})
private List<Workgroup> offeredCentres;
public RequirementType() { public RequirementType() {
workflow = new ArrayList<Workflow>(); workflow = new ArrayList<Workflow>();
offeredCentres = new ArrayList<Workgroup>();
} }
public RequirementType(String type, String description) { public RequirementType(String type, String description) {
@ -68,4 +78,20 @@ public class RequirementType extends BaseData {
return false; return false;
} }
public Boolean getLimitCentres() {
return limitCentres;
}
public void setLimitCentres(Boolean limitCentres) {
this.limitCentres = limitCentres;
}
public List<Workgroup> getOfferedCentres() {
return offeredCentres;
}
public void setOfferedCentres(List<Workgroup> offeredCentres) {
this.offeredCentres = offeredCentres;
}
} }

@ -0,0 +1,49 @@
package info.bukova.isspst.ui.requirement;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.ExecutionArgParam;
import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Window;
import info.bukova.isspst.data.RequirementType;
import info.bukova.isspst.data.Workgroup;
import info.bukova.isspst.services.workgroups.WorkgroupService;
import info.bukova.isspst.ui.ListChecks;
public class OfferedCentresVM {
private RequirementType selectedType;
@WireVariable
private WorkgroupService workgroupService;
private ListChecks<Workgroup> wgChecks;
@Init
public void init(@ExecutionArgParam("type") RequirementType type) {
this.selectedType = type;
wgChecks = new ListChecks<Workgroup>(selectedType.getOfferedCentres(), workgroupService.getCentres());
}
@Command
public void save(@BindingParam("window") Window window) {
window.detach();
}
public boolean isCanSave() {
return true;
}
public RequirementType getSelectedType() {
return selectedType;
}
public void setSelectedType(RequirementType selectedType) {
this.selectedType = selectedType;
}
public ListChecks<Workgroup> getWgChecks() {
return wgChecks;
}
}

@ -242,6 +242,23 @@ public class RequirementTypesVM {
public void refresh() { public void refresh() {
reqTypeService.update(selected); reqTypeService.update(selected);
} }
@Command
public void centresDialog() {
Map<String, RequirementType> param = new HashMap<String, RequirementType>();
param.put("type", selected);
Window win = (Window) Executions.createComponents("/settings/workflow/offeredCentres.zul", null, param);
win.doModal();
}
@Command
@NotifyChange("selected")
public void clearCentres() {
if (!selected.getLimitCentres()) {
selected.getOfferedCentres().clear();
refresh();
}
}
public Workflow getWgSelWorkflow() { public Workflow getWgSelWorkflow() {
return wgSelWorkflow; return wgSelWorkflow;

@ -137,6 +137,10 @@ CentreWorkflow=Schválení ve středisku
LimitFormTitle=Limit pro schválení LimitFormTitle=Limit pro schválení
Limit=Limit: Limit=Limit:
OverLimit=Pouze nadlimitní OverLimit=Pouze nadlimitní
Centres=Střediska
OfferSelectedOnly=Nabízet pouze vybraná střediska
Select=Vybrat
OfferedCentres=Nabízená střediska
Number=Číslo: Number=Číslo:
Prefix=Prefix: Prefix=Prefix:

@ -0,0 +1,19 @@
<?page title="${labels.OfferedCentres}" contentType="text/html;charset=UTF-8"?>
<zk>
<window border="normal" apply="org.zkoss.bind.BindComposer"
id="editWin"
width="500px"
closable="true"
viewModel="@id('vm') @init('info.bukova.isspst.ui.requirement.OfferedCentresVM')">
<caption zclass="form-caption" label="${labels.OfferedCentres}" />
<vbox children="@load(vm.wgChecks.checks)">
<template name="children">
<checkbox label="@load(each.member)" checked="@bind(each.checked)"/>
</template>
</vbox>
<include src="/app/formButtons.zul" />
</window>
</zk>

@ -13,6 +13,24 @@
</template> </template>
</combobox> </combobox>
</hbox> </hbox>
<groupbox mold="3d">
<caption label="${labels.Centres}"/>
<vbox>
<checkbox label="${labels.OfferSelectedOnly}"
checked="@bind(vm.selected.limitCentres)"
disabled="@load(empty vm.selected)"
onClick="@command('clearCentres')" />
<button label="${labels.Select}"
disabled="@load(empty vm.selected or not vm.selected.limitCentres)"
onClick="@command('centresDialog')"
sclass="nicebutton"/>
<hbox children="@load(vm.selected.offeredCentres)">
<template name="children">
<label value="@load(each.fullName.concat(', '))"/>
</template>
</hbox>
</vbox>
</groupbox>
<hbox> <hbox>
<div hflex="1"> <div hflex="1">
<groupbox mold="3d" hflex="1"> <groupbox mold="3d" hflex="1">

Loading…
Cancel
Save