--- /dev/null
+-- // add actual to project_status
+-- Migration SQL that makes the change goes here.
+
+ALTER TABLE project_status
+ ADD COLUMN actual SMALLINT NOT NULL DEFAULT 1;
+
+-- //@UNDO
+-- SQL to undo the change goes here.
+
+ALTER TABLE project_status
+ DROP COLUMN actual;
+CALL SYSPROC.ADMIN_CMD('REORG TABLE project_status');
private String name;
- private boolean active;
-
private int order;
+
+ private boolean active;
+
+ private boolean actual;
}
package hu.user.lis.db.repository;
import hu.user.lis.db.Project;
+import hu.user.lis.db.repository.filter.ProjectFilter;
import org.springframework.data.domain.Pageable;
import java.util.List;
public interface ProjectRepositorySearch {
+ List<Project> search(ProjectFilter filter);
+
+ long count(ProjectFilter filter);
+
List<Project> search(String partialSearch, List<Long> projectIds, boolean filterShowActive, boolean filterShowInActive, Pageable pageable);
long count(String partialSearch, List<Long> projectIds, boolean filterShowActive, boolean filterShowInActive);
package hu.user.lis.db.repository;
import hu.user.lis.db.Project;
+import hu.user.lis.db.repository.filter.ProjectFilter;
import org.apache.commons.collections4.ListUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.domain.Pageable;
import javax.persistence.criteria.Root;
import java.util.ArrayList;
import java.util.List;
+import java.util.Objects;
@Repository
public class ProjectRepositorySearchImpl implements ProjectRepositorySearch {
return predicates.toArray(new Predicate[]{});
}
+ Predicate[] getPredicates(CriteriaBuilder cb, Root<Project> root, ProjectFilter filter) {
+ List<Predicate> predicates = new ArrayList<>();
+ if (StringUtils.isNotBlank(filter.getPartialSearch())) {
+ List<Predicate> orPredicates = new ArrayList<>();
+ orPredicates.add(cb.like(cb.lower(root.get("name")), "%" + filter.getPartialSearch().toLowerCase() + "%"));
+ orPredicates.add(cb.like(cb.lower(root.get("humanId")), "%" + filter.getPartialSearch().toLowerCase() + "%"));
+ orPredicates.add(cb.like(cb.lower(root.join("partner").get("name")), "%" + filter.getPartialSearch().toLowerCase() + "%"));
+ predicates.add(cb.or(orPredicates.toArray(new Predicate[]{})));
+ }
+ if (!ListUtils.emptyIfNull(filter.getProjectIds()).isEmpty()) {
+ predicates.add(root.get("id").in(filter.getProjectIds()));
+ }
+ if (filter.isFilterShowActive() && !filter.isFilterShowInActive()) {
+ predicates.add(cb.isTrue(root.get("active")));
+ }
+ if (filter.isFilterShowInActive() && !filter.isFilterShowActive()) {
+ predicates.add(cb.isFalse(root.get("active")));
+ }
+ if (filter.isActual()) {
+ predicates.add(cb.isTrue(root.join("projectStatus").get("active")));
+ }
+ if (Objects.nonNull(filter.getPartner())) {
+ predicates.add(cb.equal(root.get("partner"), filter.getPartner()));
+ }
+ if (Objects.nonNull(filter.getStatus())) {
+ predicates.add(cb.equal(root.get("projectStatus"), filter.getStatus()));
+ }
+ return predicates.toArray(new Predicate[]{});
+ }
+
+ @Override
+ public List<Project> search(ProjectFilter filter) {
+ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
+ CriteriaQuery<Project> cq = cb.createQuery(Project.class);
+ Root<Project> root = cq.from(Project.class);
+
+ cq.where(getPredicates(cb, root, filter));
+ cq.orderBy(QueryUtils.toOrders(filter.getPageable().getSort(), root, cb));
+ TypedQuery<Project> query = entityManager.createQuery(cq);
+ query.setMaxResults(filter.getPageable().getPageSize());
+ query.setFirstResult(filter.getPageable().getPageSize() * filter.getPageable().getPageNumber());
+ return query.getResultList();
+ }
+
+ @Override
+ public long count(ProjectFilter filter) {
+ CriteriaBuilder cb = entityManager.getCriteriaBuilder();
+ CriteriaQuery<Long> cq = cb.createQuery(Long.class);
+ Root<Project> root = cq.from(Project.class);
+
+ cq.select(cb.count(root));
+ cq.where(getPredicates(cb, root, filter));
+ return entityManager.createQuery(cq).getSingleResult();
+ }
+
@Override
public List<Project> search(String partialSearch, List<Long> projectIds, boolean filterShowActive, boolean filterShowInActive, Pageable pageable) {
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
--- /dev/null
+package hu.user.lis.db.repository.filter;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+@Getter
+@Setter
+@SuperBuilder
+@ToString
+public class ActiveFilter extends PageableFilter {
+
+ private boolean filterShowInActive;
+
+ private boolean filterShowActive;
+
+ private boolean filterShowBoth;
+
+}
import hu.user.lis.db.InvoiceStatus;
import hu.user.lis.db.Partner;
import hu.user.lis.db.Project;
-import lombok.*;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
import java.util.Date;
+
@Getter
@Setter
-@Builder
+@SuperBuilder
@ToString
-@NoArgsConstructor
-@AllArgsConstructor
public class InvoiceFilter extends PageableFilter {
private Partner partner;
import lombok.Getter;
import lombok.Setter;
+import lombok.experimental.SuperBuilder;
import org.springframework.data.domain.Pageable;
@Getter
@Setter
+@SuperBuilder
public class PageableFilter {
private Pageable pageable;
}
--- /dev/null
+package hu.user.lis.db.repository.filter;
+
+import hu.user.lis.db.Partner;
+import hu.user.lis.db.ProjectStatus;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.experimental.SuperBuilder;
+
+import java.util.List;
+
+@Getter
+@Setter
+@SuperBuilder
+@ToString
+public class ProjectFilter extends ActiveFilter {
+
+ private Partner partner;
+
+ private ProjectStatus status;
+
+ private boolean actual;
+
+ private String partialSearch;
+
+ private List<Long> projectIds;
+
+}
import hu.user.lis.db.ProjectStatus;
import hu.user.lis.db.repository.InvoiceRepository;
import hu.user.lis.db.repository.ProjectRepository;
+import hu.user.lis.db.repository.filter.ProjectFilter;
import hu.user.lis.service.data.EntityDataService;
import hu.user.lis.ui.data.common.CachedSpringDataModel;
import lombok.extern.log4j.Log4j2;
@Autowired
EntityDataService<Project> projectDataService;
+ private ProjectFilter filter;
+
private String partialName;
private boolean listAll;
@Override
public List<Project> getResultSet(int page, int pageSize, FieldComparator sortComparator) {
Pageable pageable = createPageable(page, pageSize, sortComparator);
- List<Project> result = listAll ? projectRepository.findAll() :
- projectRepository.search(partialName, null, filterShowActive, filterShowInActive, pageable);
- return result;
+ Optional.ofNullable(filter).ifPresent(f -> f.setPageable(pageable));
+ return Objects.isNull(filter) ? projectRepository.findAll(pageable).getContent() : projectRepository.search(filter);
}
@Override
public int getResultSetCount() {
- long result = listAll ? projectRepository.count() :
- projectRepository.count(partialName, null, filterShowActive, filterShowInActive);
+ long result = Objects.isNull(filter) ? projectRepository.count() : projectRepository.count(filter);
return (int) result;
}
+
+ public void search(ProjectFilter filter) {
+ log.info("Searching projects using filter: {}", filter);
+ this.filter = filter;
+ super.reset();
+ }
+
public void search(String partialName) {
- log.info("Searching partner using filters: name LIKE {}", partialName);
+ log.info("Searching projects using filters: name LIKE {}", partialName);
listAll = false;
this.partialName = partialName;
super.reset();
String timestamp = DateTimeFormatter.ofPattern("yyyyMMdd-HHmmss").format(LocalDateTime.now());
Path destinationTempPath = Paths.get(applicationUIProperties.getExportTempPath(), String.format("%s-%s.xlsx", getShortName(), timestamp));
int resultSetCount = getResultSetCount();
+ log.info("Result total count is {}", resultSetCount);
if (resultSetCount == 0) {
Messagebox.show("Nincs exportálható adat.");
return;
import org.springframework.stereotype.Service;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.Sessions;
+import org.zkoss.zul.theme.Themes;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
log.info("SessionSettings created");
}
+ public void applyTheme(String theme) {
+// HttpServletResponse response = (HttpServletResponse) Executions.getCurrent().getNativeResponse();
+ //ez a zk alapertelmezett tema cookie Cookie[] cookies = request.getCookies();
+// Cookie themeCookie = new Cookie("zktheme", theme);
+// response.addCookie(themeCookie);
+ Themes.setTheme(Executions.getCurrent(), theme);
+ }
+
private HttpServletRequest getNativeRequest() {
return (HttpServletRequest) Executions.getCurrent().getNativeRequest();
}
return getNativeSession().getId();
}
-
public void setAttribute(String name, Object obj) {
HttpSession session = getNativeSession();
if (Objects.isNull(session)) {
import org.zkoss.bind.annotation.Destroy;
import org.zkoss.bind.annotation.Init;
import org.zkoss.lang.Strings;
+import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
});
}
+ @Command
+ public void applyTheme(@BindingParam("name") String name) {
+ sessionSettings.applyTheme(name);
+ Executions.getCurrent().sendRedirect(Strings.EMPTY);
+ }
}
import hu.user.lis.ui.event.SaveEntityEvent;
import hu.user.lis.ui.view.common.EntityViewModel;
import lombok.Getter;
+import lombok.Setter;
import lombok.extern.log4j.Log4j2;
import org.springframework.transaction.annotation.Transactional;
+import org.zkoss.bind.BindContext;
import org.zkoss.bind.BindUtils;
import org.zkoss.bind.PropertyChangeEvent;
import org.zkoss.bind.annotation.*;
@Getter
private InvoiceFilter invoiceFilter;
+ @Getter
+ @Setter
+ private boolean showPartner;
+
@WireVariable
private EventBus eventBus;
}
@Command
- public void setIncoming(@BindingParam("incoming") boolean value) {
+ public void setIncoming(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx, @BindingParam("incoming") boolean value) {
invoiceFilter.setIncoming(value);
- BindUtils.postNotifyChange(null, null, invoiceFilter, "incoming");
+ BindUtils.postNotifyChange(invoiceFilter, "incoming");
}
@Command
}
@Override
- public void onEvent(Event evt) throws Exception {
- if (evt instanceof PropertyChangeEvent) {
- PropertyChangeEvent propertyEvent = (PropertyChangeEvent) evt;
+ public void onEvent(Event event) throws Exception {
+ if (event instanceof PropertyChangeEvent) {
+ PropertyChangeEvent propertyEvent = (PropertyChangeEvent) event;
// (this.equals(propertyEvent.getBase()) && propertyEvent.getProperty().startsWith("invoiceFilter")))
if (invoiceFilter.equals(propertyEvent.getBase())) {
log.info("Refresh needed, {} changed", propertyEvent.getProperty());
package hu.user.lis.ui.view;
+import hu.user.lis.db.Partner;
import hu.user.lis.db.Project;
+import hu.user.lis.db.repository.filter.ActiveFilter;
+import hu.user.lis.db.repository.filter.ProjectFilter;
import hu.user.lis.ui.Constants;
import hu.user.lis.ui.data.ProjectsDataModel;
import hu.user.lis.ui.data.common.CachedSpringDataModel;
+import hu.user.lis.ui.editor.selector.EntitySelectorRouter;
import hu.user.lis.ui.event.EventBus;
import hu.user.lis.ui.event.SaveEntityEvent;
import hu.user.lis.ui.view.common.FilterActiveViewModel;
import lombok.Getter;
import lombok.extern.log4j.Log4j2;
import org.zkoss.bind.BindUtils;
-import org.zkoss.bind.annotation.Command;
-import org.zkoss.bind.annotation.Destroy;
-import org.zkoss.bind.annotation.Init;
+import org.zkoss.bind.PropertyChangeEvent;
+import org.zkoss.bind.annotation.*;
+import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.select.annotation.WireVariable;
@Log4j2
-public class ProjectsViewModel extends FilterActiveViewModel<Project> implements EventListener {
+public class ProjectsViewModel extends FilterActiveViewModel<Project> implements EventListener<Event> {
@WireVariable
@Getter
private ProjectsDataModel projectsDataModel;
@WireVariable
private EventBus eventBus;
+
+ @Getter
+ @WireVariable
+ private EntitySelectorRouter entitySelectorRouter;
+
@WireVariable
private WorkflowManagerService workflowManagerService;
+ public ProjectFilter getProjectFilter() {
+ return (ProjectFilter) super.getActiveFilter();
+ }
+
@Override
protected CachedSpringDataModel<Project> getDataModel() {
return projectsDataModel;
public void init() {
super.init();
eventBus.register(this);
+ eventBus.registerForBinding(this);
+
addColumns(Arrays.asList(
"humanId,Azonosító,ascending,left,true",
"partner.name,Ügyfél,natural,left,true",
));
}
+ @Override
+ @AfterCompose
+ public void onAfterCompose(@ContextParam(ContextType.VIEW) Component view) {
+ entitySelectorRouter.configureSelector(Partner.class, this, "partnerFilter.partner");
+ }
+
+ protected ActiveFilter createFilter() {
+ return ProjectFilter.builder()
+ .filterShowActive(true)
+ .filterShowInActive(false)
+ .actual(true)
+ .build();
+ }
+
public void saveEntity(SaveEntityEvent<Project> event) {
}
protected void refresh() {
projectsDataModel.clearSelection();
setSelectedEntity(null);
- if (isFilterShowBoth()) {
- projectsDataModel.search(true, true);
- } else {
- projectsDataModel.search(isFilterShowActive(), isFilterShowInActive());
- }
+ projectsDataModel.search(getProjectFilter());
+// if (isFilterShowBoth()) {
+// projectsDataModel.search(true, true);
+// } else {
+// projectsDataModel.search(isFilterShowActive(), isFilterShowInActive());
+// }
+
BindUtils.postNotifyChange(this, "selectedEntity");
}
refresh();
projectsDataModel.addToSelection(formDocument);
}
+ if (event instanceof PropertyChangeEvent) {
+ PropertyChangeEvent propertyEvent = (PropertyChangeEvent) event;
+// (this.equals(propertyEvent.getBase()) && propertyEvent.getProperty().startsWith("invoiceFilter")))
+ if (getProjectFilter().equals(propertyEvent.getBase())) {
+ log.info("Refresh needed, {} changed", propertyEvent.getProperty());
+ refresh();
+ }
+ }
+
}
@Destroy
package hu.user.lis.ui.view.common;
+import hu.user.lis.db.repository.filter.ActiveFilter;
+import lombok.Getter;
import lombok.extern.log4j.Log4j2;
import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.annotation.NotifyChange;
@Log4j2
public abstract class FilterActiveViewModel<T extends Serializable> extends EntityViewModel<T> {
- boolean filterShowInActive;
- boolean filterShowActive;
-
- boolean filterShowBoth;
+ @Getter
+ ActiveFilter activeFilter;
protected abstract void refresh();
@Init
public void init() {
super.init();
+ activeFilter = createFilter();
setFilterShowActive(true);
}
+ protected ActiveFilter createFilter() {
+ return ActiveFilter.builder().build();
+ }
+
public boolean isFilterShowActive() {
- return filterShowActive;
+ return activeFilter.isFilterShowActive();
}
@NotifyChange({"filterShowActive", "filterShowInActive", "filterShowBoth"})
public void setFilterShowActive(boolean filterShowActive) {
- this.filterShowBoth = false;
- this.filterShowInActive = false;
- this.filterShowActive = filterShowActive;
+ activeFilter.setFilterShowBoth(false);
+ activeFilter.setFilterShowInActive(false);
+ activeFilter.setFilterShowActive(true);
refresh();
}
public boolean isFilterShowInActive() {
- return filterShowInActive;
+ return activeFilter.isFilterShowInActive();
}
@NotifyChange({"filterShowActive", "filterShowInActive", "filterShowBoth"})
public void setFilterShowInActive(boolean filterShowInActive) {
- this.filterShowBoth = false;
- this.filterShowActive = false;
- this.filterShowInActive = filterShowInActive;
+ activeFilter.setFilterShowBoth(false);
+ activeFilter.setFilterShowActive(false);
+ activeFilter.setFilterShowInActive(true);
refresh();
}
public boolean isFilterShowBoth() {
- return this.filterShowBoth;
+ return activeFilter.isFilterShowBoth();
}
@NotifyChange({"filterShowActive", "filterShowInActive", "filterShowBoth"})
public void setFilterShowBoth(boolean filterShowBoth) {
- this.filterShowActive = false;
- this.filterShowInActive = false;
- this.filterShowBoth = filterShowBoth;
+ activeFilter.setFilterShowBoth(true);
+ activeFilter.setFilterShowActive(false);
+ activeFilter.setFilterShowInActive(false);
refresh();
}
<system-config>
<max-upload-size>10240</max-upload-size>
</system-config>
- <library-property>
- <name>org.zkoss.theme.preferred</name>
- <value>silvertail</value>
- <!-- <value>sapphire</value>-->
- <!-- <value>atlantic</value>-->
- </library-property>
+ <!-- <library-property>-->
+ <!-- <name>org.zkoss.theme.preferred</name>-->
+ <!-- <value>silvertail</value>-->
+ <!-- <value>sapphire</value>-->
+ <!-- <value>atlantic</value>-->
+ <!-- </library-property>-->
<library-property>
<name>org.zkoss.zul.grid.rod</name>
<value>false</value>
Messagebox.show("Coming soon!", "Information", Messagebox.OK, Messagebox.INFORMATION);
]]></attribute>
</menuitem>
+ <menuseparator/>
+ <menu iconSclass="z-icon-picture-o" label="Téma">
+ <menupopup>
+ <menuitem label="Silvertail (alapértelmezett)"
+ onClick="@command('applyTheme', name='silvertail')"/>
+ <menuitem label="Sapphire" onClick="@command('applyTheme', name='sapphire')"/>
+ <menuitem label="Atlantic" onClick="@command('applyTheme', name='atlantic')"/>
+ </menupopup>
+ </menu>
+
<menuseparator/>
<menuitem label="Kijelentkezés">
<attribute name="onClick"><![CDATA[
</caption>
<borderlayout>
<north hflex="true">
- <toolbar>
- <toolbarbutton label="Partner" tooltip="partner_filter"/>
- <popup id="partner_filter">
- <label value="Partner"/>
- <separator orient="vertical"/>
- <entity-selector selector_id="inv_partner" entity="Partner"
- style="display: inline-block;"
- width="300px"/>
- </popup>
- <toolbarbutton label="Projekt" tooltip="project_filter"/>
- <popup id="project_filter">
- <label value="Projekt"/>
- <separator orient="vertical"/>
- <entity-selector selector_id="inv_project" entity="Project"
- style="display: inline-block;"
- width="300px"/>
- </popup>
- <toolbarbutton label="Dátum" tooltip="date_filter"/>
- <popup id="date_filter">
- <combobox instant="true" model="${dateTypes}"
- selectedItem="@bind(vm.invoiceFilter.dateType)"
- readonly="true">
- <template name="model">
- <comboitem label="${each.display}"/>
- </template>
- </combobox>
+ <tabbox id="tb">
+ <tabs id="tabs">
+ <tab label="Partner"/>
+ <tab label="Projekt"/>
+ <tab label="Dátum"/>
+ </tabs>
+ <toolbar>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-external-link" label="Bejövő"
+ checked="@load(vm.invoiceFilter.incoming)"
+ onClick="@command('setIncoming', incoming=true)"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-sign-in" label="Kimenő"
+ checked="@load(!vm.invoiceFilter.incoming)"
+ onClick="@command('setIncoming', incoming=false)"/>
- <separator orient="vertical"/>
+ <space bar="true"/>
- <datebox instant="true" format="yyyy. MM. dd."
- value="@bind(vm.invoiceFilter.paymentDeadLineFrom)"/>
- <label value="-"/>
- <datebox instant="true" format="yyyy. MM. dd."
- value="@bind(vm.invoiceFilter.paymentDeadLineTo)"/>
- </popup>
- <toolbarbutton mode="toggle" iconSclass="z-icon-external-link" label="Bejövő"
- checked="@load(vm.invoiceFilter.incoming)"
- onClick="@command('setIncoming', incoming=true)"/>
- <toolbarbutton mode="toggle" iconSclass="z-icon-sign-in" label="Kimenő"
- checked="@load(!vm.invoiceFilter.incoming)"
- onClick="@command('setIncoming', incoming=false)"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Kiegyenlítve"
+ checked="@bind(vm.invoiceFilter.paid)"/>
+ </toolbar>
+ <tabpanels>
+ <tabpanel>
+ <entity-selector selector_id="inv_partner" entity="Partner"
+ style="display: inline-block;" width="300px"/>
- <separator orient="vertical"/>
+ </tabpanel>
+ <tabpanel>
+ <entity-selector selector_id="inv_project" entity="Project"
+ style="display: inline-block;" width="300px"/>
+ </tabpanel>
+ <tabpanel>
+ <hlayout>
+ <combobox instant="true" model="${dateTypes}"
+ selectedItem="@bind(vm.invoiceFilter.dateType)"
+ readonly="true">
+ <template name="model">
+ <comboitem label="${each.display}"/>
+ </template>
+ </combobox>
- <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Kiegyenlítve"
- checked="@bind(vm.invoiceFilter.paid)"/>
- </toolbar>
+ <space bar="false"/>
+
+ <datebox instant="true" format="yyyy. MM. dd."
+ value="@bind(vm.invoiceFilter.paymentDeadLineFrom)"/>
+ <label value="-"/>
+ <datebox instant="true" format="yyyy. MM. dd."
+ value="@bind(vm.invoiceFilter.paymentDeadLineTo)"/>
+ </hlayout>
+ </tabpanel>
+ </tabpanels>
+ </tabbox>
</north>
<center border="none">
<vlayout vflex="true">
+<?component name="entity-selector" inline="true" class="hu.user.lis.ui.editor.widget.EntitySelector"?>
<zk>
<window vflex="true" viewModel="@id('vm') @init('hu.user.lis.ui.view.ProjectsViewModel')">
<caption sclass="stretch-content">
</caption>
<borderlayout>
<north flex="true">
- <toolbar>
- <toolbarbutton mode="toggle" iconSclass="z-icon-check" label="Aktív"
- checked="@bind(vm.filterShowActive)"/>
- <toolbarbutton mode="toggle" iconSclass="z-icon-ban" label="Inaktív"
- checked="@bind(vm.filterShowInActive)"/>
- <toolbarbutton mode="toggle" iconSclass="z-icon-adjust" label="Mind"
- checked="@bind(vm.filterShowBoth)"/>
- </toolbar>
+ <tabbox id="tb">
+ <tabs id="tabs">
+ <tab label="Partner"/>
+ </tabs>
+ <toolbar>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-credit-card" label="Aktuális"
+ checked="@bind(vm.projectFilter.actual)"/>
+ <space bar="tre"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-check" label="Aktív"
+ checked="@bind(vm.filterShowActive)"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-ban" label="Inaktív"
+ checked="@bind(vm.filterShowInActive)"/>
+ <toolbarbutton mode="toggle" iconSclass="z-icon-adjust" label="Mind"
+ checked="@bind(vm.filterShowBoth)"/>
+ </toolbar>
+ <tabpanels>
+ <tabpanel>
+ <entity-selector selector_id="inv_partner" entity="Partner"
+ style="display: inline-block;" width="300px"/>
+
+ </tabpanel>
+ </tabpanels>
+ </tabbox>
+
</north>
<center border="none">
<vlayout vflex="true">
<listheader label="Sorrend" align="left"/>
<listheader label="Név" align="left"/>
<listheader label="Aktív" align="left"/>
+ <listheader label="Aktuális" align="left"/>
</listhead>
<template name="model">
<listitem>
<checkbox checked="@bind(each.active)"
onCheck="@command('onProjectStatusChanged', entity=each)"/>
</listcell>
+ <listcell>
+ <checkbox checked="@bind(each.actual)"
+ onCheck="@command('onProjectStatusChanged', entity=each)"/>
+ </listcell>
</listitem>
</template>
</listbox>