Implementována verze DB a převod DB.

Nové DB mají délku nastavenou anotací.
ZUL soubory jsou omezeny atributem maxlength.

closes #186
Verze_1.0
František Přibyl 10 years ago
parent 780edd5678
commit d37076cd27

@ -11,6 +11,7 @@ import info.bukova.isspst.data.User;
import info.bukova.isspst.reporting.Report;
import info.bukova.isspst.reporting.ReportMapping;
import info.bukova.isspst.reporting.ReportType;
import info.bukova.isspst.services.dbinfo.DbInfoService;
import info.bukova.isspst.services.munits.MUnitService;
import info.bukova.isspst.services.numberseries.NumberSeriesService;
import info.bukova.isspst.services.requirement.RequirementTypeService;
@ -33,6 +34,8 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
public class AppInitListener implements ServletContextListener {
private DbInfoService dbInfoService;
private MUnitService mUnitsService;
private RoleService roleService;
private UserService userService;
@ -52,6 +55,7 @@ public class AppInitListener implements ServletContextListener {
logger.info("Initializing database");
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(evt.getServletContext());
dbInfoService = ctx.getBean(DbInfoService.class);
mUnitsService = ctx.getBean(MUnitService.class);
roleService = ctx.getBean(RoleService.class);
userService = ctx.getBean(UserService.class);
@ -61,6 +65,7 @@ public class AppInitListener implements ServletContextListener {
reqTypeService = ctx.getBean(RequirementTypeService.class);
userService.grantAdmin();
this.checkDbInfo();
checkMUnits();
checkRoles();
checkUsers();
@ -74,6 +79,24 @@ public class AppInitListener implements ServletContextListener {
loadModuleReports();
}
private void checkDbInfo()
{
List<User> userList = userService.getAll();
if (userList.isEmpty())
{
// Database is new/empty, column definition is anotated - set actual
// database version
dbInfoService.updateDatabaseVersion();
}
else
{
// Existing database - try change structure and set actual database
// version...
dbInfoService.changeDatabase();
}
}
private void checkMUnits()
{
List<MUnit> mUnits = mUnitsService.getAll();

@ -1,9 +1,5 @@
package info.bukova.isspst;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import info.bukova.isspst.data.Permission;
import info.bukova.isspst.data.PermissionType;
import info.bukova.isspst.data.Requirement;
@ -28,8 +24,14 @@ import info.bukova.isspst.services.users.RoleService;
import info.bukova.isspst.services.users.UserService;
import info.bukova.isspst.services.workgroups.WorkgroupService;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class Constants {
public final static long DB_VERSION = 1;
public final static String DEF_ADMIN = "admin";
public final static String DEF_ADMIN_PASSWD = "admin";
public final static String ROLE_USER = "ROLE_USER";
@ -145,4 +147,7 @@ public class Constants {
put(Requirement.class, "/main/orders/");
put(TripRequirement.class, "/main/trips/requirements/");
}} );
public final static int LEN_TEXT = 255;
public final static int LEN_DESCRIPTION = 8192;
}

@ -0,0 +1,7 @@
package info.bukova.isspst.dao;
import info.bukova.isspst.data.DbInfo;
public interface DbInfoDao extends BaseDao<DbInfo>
{
}

@ -0,0 +1,9 @@
package info.bukova.isspst.dao.jpa;
import info.bukova.isspst.dao.DbInfoDao;
import info.bukova.isspst.data.DbInfo;
public class DbInfoDaoJPA extends BaseDaoJPA<DbInfo> implements DbInfoDao
{
}

@ -1,5 +1,6 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import info.bukova.isspst.StringUtils;
import java.util.ArrayList;
@ -45,7 +46,7 @@ public class Address extends BaseData
private String email;
@Column(name = "WEB")
private String web;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@NotNull(message = "Zadejte firmu")

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.util.ArrayList;
import java.util.List;
@ -23,7 +25,7 @@ public class Building extends BaseData implements DataModel {
@Column(name = "NAME")
private String name;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "building", orphanRemoval = true)

@ -0,0 +1,28 @@
package info.bukova.isspst.data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "DBINFO")
public class DbInfo extends BaseSimpleData
{
@Column(name = "VERSION")
private long version;
public DbInfo()
{
this.version = 0;
}
public long getVersion()
{
return version;
}
public void setVersion(long version)
{
this.version = version;
}
}

@ -1,5 +1,6 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import info.bukova.isspst.StringUtils;
import javax.persistence.Column;
@ -13,7 +14,7 @@ public class MUnit extends BaseData
@Column(name = "NAME")
private String name;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
public String getName()

@ -1,5 +1,6 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import info.bukova.isspst.StringUtils;
import javax.persistence.Column;
@ -14,7 +15,7 @@ public class MUnitEmb
@Column(name = "MUNIT_NAME")
private String name;
@Column(name = "MUNIT_DESCRIPTION")
@Column(name = "MUNIT_DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
public MUnitEmb()

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
@ -35,7 +37,7 @@ public class Order extends BaseData implements Cloneable
@AttributeOverride(name = "company", column = @Column(name = "SUPPLIER_COMPANY")),
@AttributeOverride(name = "contactName", column = @Column(name = "SUPPLIER_CONTACT_NAME")),
@AttributeOverride(name = "department", column = @Column(name = "SUPPLIER_DEPARTMENT")),
@AttributeOverride(name = "description", column = @Column(name = "SUPPLIER_DESCRIPTION")),
@AttributeOverride(name = "description", column = @Column(name = "SUPPLIER_DESCRIPTION", length = Constants.LEN_DESCRIPTION)),
@AttributeOverride(name = "dic", column = @Column(name = "SUPPLIER_DIC")),
@AttributeOverride(name = "email", column = @Column(name = "SUPPLIER_EMAIL")),
@AttributeOverride(name = "houseNumber", column = @Column(name = "SUPPLIER_HOUSENUMBER")),
@ -54,7 +56,7 @@ public class Order extends BaseData implements Cloneable
@AttributeOverride(name = "company", column = @Column(name = "INVOICE_COMPANY")),
@AttributeOverride(name = "contactName", column = @Column(name = "INVOICE_CONTACT_NAME")),
@AttributeOverride(name = "department", column = @Column(name = "INVOICE_DEPARTMENT")),
@AttributeOverride(name = "description", column = @Column(name = "INVOICE_DESCRIPTION")),
@AttributeOverride(name = "description", column = @Column(name = "INVOICE_DESCRIPTION", length = Constants.LEN_DESCRIPTION)),
@AttributeOverride(name = "dic", column = @Column(name = "INVOICE_DIC")),
@AttributeOverride(name = "email", column = @Column(name = "INVOICE_EMAIL")),
@AttributeOverride(name = "houseNumber", column = @Column(name = "INVOICE_HOUSENUMBER")),
@ -73,7 +75,7 @@ public class Order extends BaseData implements Cloneable
@AttributeOverride(name = "company", column = @Column(name = "DELIVERY_COMPANY")),
@AttributeOverride(name = "contactName", column = @Column(name = "DELIVERY_CONTACT_NAME")),
@AttributeOverride(name = "department", column = @Column(name = "DELIVERY_DEPARTMENT")),
@AttributeOverride(name = "description", column = @Column(name = "DELIVERY_DESCRIPTION")),
@AttributeOverride(name = "description", column = @Column(name = "DELIVERY_DESCRIPTION", length = Constants.LEN_DESCRIPTION)),
@AttributeOverride(name = "dic", column = @Column(name = "DELIVERY_DIC")),
@AttributeOverride(name = "email", column = @Column(name = "DELIVERY_EMAIL")),
@AttributeOverride(name = "houseNumber", column = @Column(name = "DELIVERY_HOUSENUMBER")),
@ -94,7 +96,7 @@ public class Order extends BaseData implements Cloneable
@Column(name = "DELIVERY_TYPE")
private String deliveryType;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "order", orphanRemoval = true)

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.math.BigDecimal;
import javax.persistence.Column;
@ -43,7 +45,7 @@ public class OrderItem
@Column(name = "TOTAL", precision = 15, scale = 4)
private BigDecimal total;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@ManyToOne(fetch = FetchType.EAGER)

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
@ -19,7 +21,7 @@ public class Permission extends BaseSimpleData implements GrantedAuthority {
@Column(name="AUTHORITY")
private String authority;
@Column(name="DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@Column(name="MODULE")
private String module;

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -32,7 +34,7 @@ public class RequirementBase extends BaseData implements FilterableRequirement {
private String numser;
@Column(name = "REQ_DATE")
private Date reqDate;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "CENTRE_ID")

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.math.BigDecimal;
import javax.persistence.Column;
@ -50,7 +52,7 @@ public class RequirementItem
@Column(name = "TOTAL", precision=15, scale=4)
private BigDecimal total;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@Column(name = "DELIVERED")

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.util.Date;
import javax.persistence.Column;
@ -42,7 +44,7 @@ public abstract class RequirementSubject implements OwnedDataModel {
private String code;
@Column(name = "NAME")
private String name;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@NotEmpty(message = "{MaterialFormCodeConstr}")

@ -1,13 +1,15 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinTable;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;
@ -22,7 +24,7 @@ public class RequirementType extends BaseData {
@Column(name = "TYPE")
private String type;
@Column(name = "DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval=true)
@LazyCollection(LazyCollectionOption.FALSE)

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.util.ArrayList;
import java.util.List;
@ -25,7 +27,7 @@ public class Role extends BaseSimpleData implements GrantedAuthority, DataModel
@Column(name="AUTHORITY", unique=true)
private String authority;
@Column(name="DESCRIPTION")
@Column(name = "DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
@ManyToMany
@LazyCollection(LazyCollectionOption.FALSE)

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import java.math.BigDecimal;
import java.util.Date;
@ -33,7 +35,7 @@ public class TripBillItem extends BaseData {
@Embedded
@AttributeOverrides({
@AttributeOverride(name = "code", column = @Column(name = "BACK_VEHICLE_CODE")),
@AttributeOverride(name = "description", column = @Column(name = "BACK_VEHICLE_DESCRIPTION"))
@AttributeOverride(name = "description", column = @Column(name = "BACK_VEHICLE_DESCRIPTION", length = Constants.LEN_DESCRIPTION))
})
private Vehicle backVehicle;
@Column(name = "BEGIN_WORK")

@ -1,5 +1,7 @@
package info.bukova.isspst.data;
import info.bukova.isspst.Constants;
import javax.persistence.Column;
import javax.persistence.Embeddable;
@ -8,7 +10,7 @@ public class Vehicle {
@Column(name = "VEHICLE_CODE")
private String code;
@Column(name = "VEHICLE_DESCRIPTION")
@Column(name = "VEHICLE_DESCRIPTION", length = Constants.LEN_DESCRIPTION)
private String description;
public String getCode() {

@ -0,0 +1,11 @@
package info.bukova.isspst.services.dbinfo;
import info.bukova.isspst.data.DbInfo;
import info.bukova.isspst.services.Service;
public interface DbInfoService extends Service<DbInfo>
{
public void changeDatabase();
public void updateDatabaseVersion();
}

@ -0,0 +1,117 @@
package info.bukova.isspst.services.dbinfo;
import info.bukova.isspst.Constants;
import info.bukova.isspst.data.DbInfo;
import info.bukova.isspst.services.AbstractService;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.SQLQuery;
import org.springframework.transaction.annotation.Transactional;
public class DbInfoServiceImpl extends AbstractService<DbInfo> implements DbInfoService
{
private DbInfo getDbInfo()
{
DbInfo dbInfo = null;
List<DbInfo> list = this.getAll();
if (list.isEmpty())
{
dbInfo = new DbInfo();
this.add(dbInfo);
list = this.getAll();
}
for (DbInfo item : list)
{
dbInfo = item;
break;
}
return dbInfo;
}
@Override
@Transactional
public void changeDatabase()
{
class Str2Str
{
private String key;
private String value;
public Str2Str(String key, String value)
{
this.key = key;
this.value = value;
}
public String getKey()
{
return this.key;
}
public String getValue()
{
return this.value;
}
}
long dbVersion = this.getDbInfo().getVersion();
if (Constants.DB_VERSION > dbVersion)
{
if (dbVersion < 1)
{
List<Str2Str> tables = new ArrayList<Str2Str>();
tables.add(new Str2Str("address", "DESCRIPTION"));
tables.add(new Str2Str("building", "DESCRIPTION"));
tables.add(new Str2Str("material", "DESCRIPTION"));
tables.add(new Str2Str("munit", "DESCRIPTION"));
tables.add(new Str2Str("orders", "DESCRIPTION"));
tables.add(new Str2Str("order_item", "DESCRIPTION"));
tables.add(new Str2Str("permission", "DESCRIPTION"));
tables.add(new Str2Str("requirement", "DESCRIPTION"));
tables.add(new Str2Str("requirementtype", "DESCRIPTION"));
tables.add(new Str2Str("requirement_items", "DESCRIPTION"));
tables.add(new Str2Str("role", "DESCRIPTION"));
tables.add(new Str2Str("service", "DESCRIPTION"));
tables.add(new Str2Str("triprequirement", "DESCRIPTION"));
tables.add(new Str2Str("material", "MUNIT_DESCRIPTION"));
tables.add(new Str2Str("orders", "INVOICE_DESCRIPTION"));
tables.add(new Str2Str("orders", "DELIVERY_DESCRIPTION"));
tables.add(new Str2Str("orders", "SUPPLIER_DESCRIPTION"));
tables.add(new Str2Str("order_item", "MUNIT_DESCRIPTION"));
tables.add(new Str2Str("requirement_items", "MUNIT_DESCRIPTION"));
tables.add(new Str2Str("triprequirement", "VEHICLE_DESCRIPTION"));
tables.add(new Str2Str("trip_bill_items", "BACK_VEHICLE_DESCRIPTION"));
tables.add(new Str2Str("trip_bill_items", "VEHICLE_DESCRIPTION"));
SQLQuery sq = null;
String sql = "";
for (Str2Str item : tables)
{
sql = "ALTER TABLE " + item.getKey() + " MODIFY " + item.getValue() + " VARCHAR(" + String.valueOf(Constants.LEN_DESCRIPTION) + ")";
sq = this.dao.getSession().createSQLQuery(sql);
sq.executeUpdate();
}
}
this.updateDatabaseVersion();
}
}
@Override
@Transactional
public void updateDatabaseVersion()
{
DbInfo dbInfo = this.getDbInfo();
dbInfo.setVersion(Constants.DB_VERSION);
this.update(dbInfo);
}
}

@ -1,5 +1,6 @@
package info.bukova.isspst.ui;
import info.bukova.isspst.Constants;
import info.bukova.isspst.StringUtils;
import java.util.ArrayList;
@ -39,6 +40,16 @@ public class DocumentViewModel
this.standardBoolConverter = standardBoolConverter;
}
final public int getLengthText()
{
return Constants.LEN_TEXT;
}
final public int getLengthDescription()
{
return Constants.LEN_DESCRIPTION;
}
@Init
public void initDocumentViewModel()
{

@ -14,6 +14,7 @@ import info.bukova.isspst.reporting.GeneratorFactory;
import info.bukova.isspst.reporting.ReportDefinition;
import info.bukova.isspst.services.addressbook.AdbService;
import info.bukova.isspst.services.users.UserService;
import info.bukova.isspst.ui.DocumentViewModel;
import java.util.ArrayList;
import java.util.List;
@ -27,7 +28,8 @@ import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Window;
public class MailForm {
public class MailForm extends DocumentViewModel
{
@WireVariable
private Mailer mailer;
@ -52,7 +54,7 @@ public class MailForm {
private int adbType;
private String findAddress;
@Init
@Init(superclass = true)
public void init(@ExecutionArgParam("report") Boolean report) {
message = new MailMessage();
message.setHtml(true);

@ -4,6 +4,7 @@ import info.bukova.isspst.reporting.Report;
import info.bukova.isspst.reporting.ReportDefinition;
import info.bukova.isspst.reporting.ReportType;
import info.bukova.isspst.sort.ReflectionTools;
import info.bukova.isspst.ui.DocumentViewModel;
import info.bukova.isspst.ui.ListChecks;
import info.bukova.isspst.ui.LocaleConverter;
@ -12,13 +13,13 @@ import java.util.List;
import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.select.annotation.WireVariable;
public class ColSelectVM {
public class ColSelectVM extends DocumentViewModel
{
@WireVariable
private ReportDefinition reportDefinition;
private LocaleConverter locConverter;
@Init
@Init(superclass = true)
public void init() {
locConverter = new LocaleConverter();
}

@ -1,17 +1,18 @@
package info.bukova.isspst.ui.reporting;
import info.bukova.isspst.reporting.ReportDefinition;
import info.bukova.isspst.ui.DocumentViewModel;
import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.select.annotation.WireVariable;
public class OrderOptionsVM {
public class OrderOptionsVM extends DocumentViewModel
{
private boolean printPrices;
@WireVariable
private ReportDefinition reportDefinition;
@Init
@Init(superclass = true)
public void init() {
printPrices = true;
reportDefinition.setParam("SET_PRICES", true);

@ -4,6 +4,7 @@ import info.bukova.isspst.reporting.Report;
import info.bukova.isspst.reporting.ReportDefinition;
import info.bukova.isspst.reporting.ReportType;
import info.bukova.isspst.services.Service;
import info.bukova.isspst.ui.DocumentViewModel;
import java.util.List;
@ -16,7 +17,8 @@ import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Window;
public class ReportDialogVM {
public class ReportDialogVM extends DocumentViewModel
{
private List<Report> reports;
private Report selected;
@ -25,7 +27,7 @@ public class ReportDialogVM {
private List<Object> dataList;
private Object singleObject;
@Init
@Init(superclass = true)
public void init(@ExecutionArgParam("reports") List<Report> reports,
@ExecutionArgParam("data") List<Object> data,
@ExecutionArgParam("singleObject") Object singleObject,

@ -1,5 +1,7 @@
package info.bukova.isspst.ui.reporting;
import info.bukova.isspst.ui.DocumentViewModel;
import java.util.HashMap;
import java.util.Map;
@ -8,9 +10,9 @@ import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zul.Window;
public class ReportVM {
@Init
public class ReportVM extends DocumentViewModel
{
@Init(superclass = true)
public void init() {
}

@ -1,6 +1,7 @@
package info.bukova.isspst.ui.requirement;
import info.bukova.isspst.data.Workflow;
import info.bukova.isspst.ui.DocumentViewModel;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command;
@ -8,11 +9,11 @@ import org.zkoss.bind.annotation.ExecutionArgParam;
import org.zkoss.bind.annotation.Init;
import org.zkoss.zul.Window;
public class LimitVM {
public class LimitVM extends DocumentViewModel
{
private Workflow workflow;
@Init
@Init(superclass = true)
public void init(@ExecutionArgParam("workflow") Workflow workflow) {
this.workflow = workflow;
}

@ -1,5 +1,11 @@
package info.bukova.isspst.ui.requirement;
import info.bukova.isspst.data.RequirementType;
import info.bukova.isspst.data.Workgroup;
import info.bukova.isspst.services.workgroups.WorkgroupService;
import info.bukova.isspst.ui.DocumentViewModel;
import info.bukova.isspst.ui.ListChecks;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.ExecutionArgParam;
@ -7,19 +13,14 @@ 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 {
public class OfferedCentresVM extends DocumentViewModel
{
private RequirementType selectedType;
@WireVariable
private WorkgroupService workgroupService;
private ListChecks<Workgroup> wgChecks;
@Init
@Init(superclass = true)
public void init(@ExecutionArgParam("type") RequirementType type) {
this.selectedType = type;
wgChecks = new ListChecks<Workgroup>(selectedType.getOfferedCentres(), workgroupService.getCentres());

@ -9,6 +9,7 @@ import info.bukova.isspst.mail.MailMessage;
import info.bukova.isspst.services.settings.GlobalSettingsService;
import info.bukova.isspst.sort.ReflectionTools;
import info.bukova.isspst.storage.FileStorage;
import info.bukova.isspst.ui.DocumentViewModel;
import info.bukova.isspst.ui.LocaleConverter;
import info.bukova.isspst.ui.SecurityHelper;
@ -31,7 +32,8 @@ import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Window;
public class GlobalSettingsVM {
public class GlobalSettingsVM extends DocumentViewModel
{
@WireVariable
private GlobalSettingsService settingsService;
@ -42,7 +44,7 @@ public class GlobalSettingsVM {
@WireVariable
private FileStorage storage;
@Init
@Init(superclass = true)
public void init() {
settings = settingsService.getSettings();
locConverter = new LocaleConverter();

@ -1,5 +1,11 @@
package info.bukova.isspst.ui.settings;
import info.bukova.isspst.Constants;
import info.bukova.isspst.Module;
import info.bukova.isspst.data.NumberSeries;
import info.bukova.isspst.services.numberseries.NumberSeriesService;
import info.bukova.isspst.ui.DocumentViewModel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@ -11,19 +17,15 @@ import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Window;
import info.bukova.isspst.Constants;
import info.bukova.isspst.Module;
import info.bukova.isspst.data.NumberSeries;
import info.bukova.isspst.services.numberseries.NumberSeriesService;
public class NumberSeriesVM {
public class NumberSeriesVM extends DocumentViewModel
{
@WireVariable
private NumberSeriesService numericSeriesService;
private List<NumberSeries> numberSeriesList;
private Map<String, Module> moduleMap;
@Init
@Init(superclass = true)
public void init() {
numberSeriesList = new ArrayList<NumberSeries>(numericSeriesService.getAll());
moduleMap = new HashMap<String, Module>();

@ -3,6 +3,7 @@ package info.bukova.isspst.ui.settings;
import info.bukova.isspst.data.UserSettingsData;
import info.bukova.isspst.services.users.UserService;
import info.bukova.isspst.storage.FileStorage;
import info.bukova.isspst.ui.DocumentViewModel;
import java.awt.image.RenderedImage;
import java.io.IOException;
@ -19,15 +20,15 @@ import org.zkoss.zk.ui.event.UploadEvent;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Window;
public class UserSettingsVM {
public class UserSettingsVM extends DocumentViewModel
{
@WireVariable
private UserService userService;
@WireVariable
private FileStorage storage;
private UserSettingsData settings;
@Init
@Init(superclass = true)
public void init() {
settings = userService.getUserSettings();
}

@ -2,6 +2,7 @@ package info.bukova.isspst.ui.users;
import info.bukova.isspst.data.User;
import info.bukova.isspst.services.users.UserService;
import info.bukova.isspst.ui.DocumentViewModel;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command;
@ -10,7 +11,8 @@ import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Window;
public class PasswdVM {
public class PasswdVM extends DocumentViewModel
{
private String oldPw;
private String newPw;
@ -19,7 +21,7 @@ public class PasswdVM {
@WireVariable
private UserService userService;
@Init
@Init(superclass = true)
public void init() {
user = userService.getCurrent();
}

@ -5,6 +5,7 @@
<hibernate-configuration>
<session-factory>
<mapping class="info.bukova.isspst.data.DbInfo"></mapping>
<mapping class="info.bukova.isspst.data.User"></mapping>
<mapping class="info.bukova.isspst.data.Role"></mapping>
<mapping class="info.bukova.isspst.data.Permission"></mapping>

@ -183,6 +183,10 @@
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="dbInfoDao" class="info.bukova.isspst.dao.jpa.DbInfoDaoJPA">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="userDao" class="info.bukova.isspst.dao.jpa.UserDaoJPA">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
@ -258,6 +262,10 @@
<!-- Business logic -->
<bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"/>
<bean id="dbInfoService" class="info.bukova.isspst.services.dbinfo.DbInfoServiceImpl">
<property name="dao" ref="dbInfoDao" />
</bean>
<bean id="userService" class="info.bukova.isspst.services.users.UserServiceImpl">
<constructor-arg name="marshaller" ref="marshallerUsrSettings"/>
<constructor-arg name="unmarshaller" ref="unmarshallerUsrSettings"/>

@ -34,6 +34,7 @@
value="@bind(vm.dataBean.username)"
instant="true"
disabled="@load(vm.editRec)"
maxlength="@load(vm.lengthText)"
onChange="@command('checkLogin')" />
<label
value="Login je obsazený"
@ -42,21 +43,28 @@
</row>
<row>
<label value="${labels.UsersFormFirstName}" />
<textbox value="@bind(vm.dataBean.firstName)" />
<textbox
value="@bind(vm.dataBean.firstName)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.UsersFormSureName}" />
<textbox value="@bind(vm.dataBean.lastName)" />
<textbox
value="@bind(vm.dataBean.lastName)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.UsersFormPersonalID}" />
<textbox
value="@bind(vm.dataBean.personalNumber)"
maxlength="@load(vm.lengthText)"
width="90px" />
</row>
<row>
<label value="${labels.UsersFormEmail}" />
<textbox value="@bind(vm.dataBean.email)" />
<textbox
value="@bind(vm.dataBean.email)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="" />
@ -70,6 +78,7 @@
id="idUserPasswordOriginal"
value="@save(vm.password, before='save')"
type="password"
maxlength="@load(vm.lengthText)"
instant="true" />
</row>
<row>
@ -78,6 +87,7 @@
id="idUserPasswordDuplicate"
value="@save(vm.retPasswd, before='save')"
type="password"
maxlength="@load(vm.lengthText)"
instant="true" />
</row>
<row>
@ -110,19 +120,27 @@
<rows>
<row>
<label value="${labels.SuppliersFormStreet}"/>
<textbox value="@bind(vm.dataBean.address.street)"/>
<textbox
value="@bind(vm.dataBean.address.street)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormNo}"/>
<textbox value="@bind(vm.dataBean.address.houseNumber)"/>
<textbox
value="@bind(vm.dataBean.address.houseNumber)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormZIP}"/>
<textbox value="@bind(vm.dataBean.address.zipCode)"/>
<textbox
value="@bind(vm.dataBean.address.zipCode)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormCity}"/>
<textbox value="@bind(vm.dataBean.address.city)"/>
<textbox
value="@bind(vm.dataBean.address.city)"
maxlength="@load(vm.lengthText)" />
</row>
</rows>
</grid>

@ -24,7 +24,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.username)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.username)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -34,7 +39,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.personalNumber)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.personalNumber)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -44,7 +54,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.firstName)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.firstName)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -54,7 +69,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.lastName)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.lastName)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />

@ -13,13 +13,22 @@
<row>
<cell sclass="row-title">${labels.code} :</cell>
<cell>
<textbox id="code" constraint="@load(vm.constriant)" width="200px" value="@bind(vm.dataBean.code)" />
<textbox
id="code"
constraint="@load(vm.constriant)"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.code)" />
</cell>
</row>
<row>
<cell sclass="row-title">${labels.name} :</cell>
<cell>
<textbox id="name" width="200px" value="@bind(vm.dataBean.name)" />
<textbox
id="name"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.name)" />
</cell>
</row>
<row>
@ -30,7 +39,12 @@
<row>
<cell sclass="row-title">${labels.WorkgroupFormOrderLimit} :</cell>
<cell>
<textbox id="limit" width="200px" value="@bind(vm.dataBean.limit) @converter(vm.bdConverter)" disabled="@load(vm.centre)"/>
<textbox
id="limit"
width="200px"
value="@bind(vm.dataBean.limit) @converter(vm.bdConverter)"
maxlength="@load(vm.lengthText)"
disabled="@load(vm.centre)" />
</cell>
</row>
</rows>
@ -38,7 +52,12 @@
<label value="Přetáhněte myší:"/>
<hlayout>
<vbox>
<textbox value="@bind(vm.findUser)" onChange="@command('find')" instant="true" width="300px"/>
<textbox
value="@bind(vm.findUser)"
onChange="@command('find')"
instant="true"
maxlength="@load(vm.lengthText)"
width="300px" />
<listbox id="users" model="@bind(vm.users)" height="380px" width="300px" multiple="true"
droppable="true" onDrop="@command('addMember', event=event)" selectedItems="@bind(vm.selectedUsers)">
<listhead>

@ -40,6 +40,7 @@
value="@bind(vm.filterTemplate.code)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -54,6 +55,7 @@
value="@bind(vm.filterTemplate.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -13,7 +13,12 @@ viewModel="@id('vm') @init('info.bukova.isspst.ui.mail.MailForm')" width="800px"
<comboitem label="${labels.MailSuppliers}"/>
</combobox>
</hbox>
<textbox value="@bind(vm.findAddress)" instant="true" onChange="@command('find')" width="100%"/>
<textbox
value="@bind(vm.findAddress)"
instant="true"
onChange="@command('find')"
maxlength="@load(vm.lengthText)"
width="100%" />
<listbox model="@load(vm.users)"
visible="@load(vm.adbType eq 0)"
multiple="true"
@ -54,7 +59,12 @@ viewModel="@id('vm') @init('info.bukova.isspst.ui.mail.MailForm')" width="800px"
</columns>
<rows>
<row>
<label value="${labels.MailFor}"/> <textbox value="@bind(vm.to)" width="100%" droppable="true" onDrop="@command('addTo')"/>
<label value="${labels.MailFor}"/>
<textbox
value="@bind(vm.to)"
width="100%"
droppable="true"
onDrop="@command('addTo')" />
</row>
<row>
<label value="${labels.MailCc}"/> <textbox value="@bind(vm.cc)" width="100%" droppable="true" onDrop="@command('addCc')"/>

@ -13,9 +13,27 @@
<column/>
</columns>
<rows>
<row><label value="Staré heslo:"/><textbox type="password" value="@bind(vm.oldPw)"/></row>
<row><label value="Nové heslo:"/><textbox type="password" value="@bind(vm.newPw)"/></row>
<row><label value="Nové heslo znovu:"/><textbox type="password" value="@bind(vm.retPw)"/></row>
<row>
<label value="Staré heslo:" />
<textbox
type="password"
maxlength="@load(vm.lengthText)"
value="@bind(vm.oldPw)" />
</row>
<row>
<label value="Nové heslo:" />
<textbox
type="password"
maxlength="@load(vm.lengthText)"
value="@bind(vm.newPw)" />
</row>
<row>
<label value="Nové heslo znovu:" />
<textbox
type="password"
maxlength="@load(vm.lengthText)"
value="@bind(vm.retPw)" />
</row>
</rows>
</grid>
<button image="/img/save.png" label="Uložit" onClick="@command('save', window=passwd)" sclass="nicebutton" /><button image="~./zul/img/misc/drag-disallow.png" label="Zrušit" onClick="passwd.detach()" sclass="nicebutton"/>

@ -4,7 +4,10 @@
viewModel="@id('vmOpt') @init('info.bukova.isspst.ui.reporting.ColSelectVM')">
<caption label="${labels.ReportOptions}"></caption>
<hbox>
<label value="${labels.ReportTitle}"/> <textbox value="@bind(vmOpt.reportDefinition.reportTitle)"/>
<label value="${labels.ReportTitle}"/>
<textbox
value="@bind(vmOpt.reportDefinition.reportTitle)"
maxlength="@load(vm.lengthText)" />
</hbox>
<vbox children="@load(vmOpt.columns.checks)">
<template name="children">

@ -12,32 +12,52 @@
<rows>
<row>
<label value="${labels.SuppliersFormCompany}" />
<textbox id="company" value="@bind(fx.company)" instant="true" width="320px" />
<textbox
id="company"
value="@bind(fx.company)"
instant="true"
maxlength="@load(vm.lengthText)"
width="320px" />
<button image="/img/search.png" label="${labels.SuppliersFormFindInARES}" onClick="@command('searchAres')" sclass="nicebutton" disabled="@load((fx.ic == 0) &amp;&amp; (empty fx.company))" />
</row>
<row>
<label value="${labels.SuppliersFormIC}" />
<textbox value="@bind(fx.ic)" instant="true" />
<textbox
value="@bind(fx.ic)"
maxlength="@load(vm.lengthText)"
instant="true" />
</row>
<row>
<label value="${labels.SuppliersFormDIC}" />
<textbox value="@bind(fx.dic)" />
<textbox
value="@bind(fx.dic)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormDepartment}" />
<textbox value="@bind(fx.department)" />
<textbox
value="@bind(fx.department)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormContact}" />
<textbox value="@bind(fx.contactName)" />
<textbox
value="@bind(fx.contactName)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormStreet}" />
<textbox value="@bind(fx.street)" width="320px" />
<textbox
value="@bind(fx.street)"
maxlength="@load(vm.lengthText)"
width="320px" />
</row>
<row>
<label value="${labels.SuppliersFormNo}" />
<textbox value="@bind(fx.houseNumber)" width="80px" />
<textbox
value="@bind(fx.houseNumber)"
maxlength="@load(vm.lengthText)"
width="80px" />
</row>
<row>
<label value="${labels.SuppliersFormCity}" />
@ -45,19 +65,31 @@
</row>
<row>
<label value="${labels.SuppliersFormZIP}" />
<textbox value="@bind(fx.zipCode)" />
<textbox
value="@bind(fx.zipCode)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormPhone}" />
<textbox value="@bind(fx.phone)" />
<textbox
value="@bind(fx.phone)"
maxlength="@load(vm.lengthText)" />
</row>
<row>
<label value="${labels.SuppliersFormEmail}" />
<textbox id="email" value="@bind(fx.email)" width="320px" />
<textbox
id="email"
value="@bind(fx.email)"
maxlength="@load(vm.lengthText)"
width="320px" />
</row>
<row>
<label value="${labels.SuppliersFormWWW}" />
<textbox id="web" value="@bind(fx.web)" width="320px" />
<textbox
id="web"
value="@bind(fx.web)"
maxlength="@load(vm.lengthText)"
width="320px" />
</row>
</rows>
</grid>

@ -26,7 +26,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.company)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.company)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -36,7 +41,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.ic)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.ic)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -46,7 +56,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.contactName)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.contactName)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -56,7 +71,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.street)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.street)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -66,7 +86,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.houseNumber)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.houseNumber)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />
@ -76,7 +101,12 @@
<auxheader>
<div sclass="find-grid-cell">
<div sclass="find-grid-divtextbox">
<textbox value="@bind(vm.filterTemplate.city)" instant="true" onChange="@command('doFilter')" sclass="find-grid-textbox" />
<textbox
value="@bind(vm.filterTemplate.city)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
<image src="/img/funnel.png" />

@ -41,6 +41,7 @@
value="@bind(vm.filterTemplate.code)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -55,6 +56,7 @@
value="@bind(vm.filterTemplate.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -69,6 +71,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -28,6 +28,7 @@
id="code"
constraint="@load(vm.constriant)"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.code)" />
</cell>
</row>
@ -37,6 +38,7 @@
<textbox
id="name"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.name)" />
</cell>
</row>
@ -46,6 +48,7 @@
<textbox
id="description"
width="300px"
maxlength="@load(vm.lengthDescription)"
value="@bind(vm.dataBean.description)" />
</cell>
</row>
@ -69,26 +72,31 @@
<listcell>
<textbox
inplace="true"
maxlength="@load(vm.lengthText)"
value="@bind(each.code)" />
</listcell>
<listcell>
<textbox
inplace="true"
maxlength="@load(vm.lengthText)"
value="@bind(each.name)" />
</listcell>
<listcell>
<textbox
inplace="true"
maxlength="@load(vm.lengthText)"
value="@bind(each.shortcut)" />
</listcell>
<listcell>
<textbox
inplace="true"
maxlength="@load(vm.lengthText)"
value="@bind(each.number)" />
</listcell>
<listcell>
<textbox
inplace="true"
maxlength="@load(vm.lengthText)"
value="@bind(each.floor)" />
</listcell>
<listcell>

@ -43,6 +43,7 @@
value="@bind(vm.filterTemplate.code)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -57,6 +58,7 @@
value="@bind(vm.filterTemplate.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -90,6 +92,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -27,6 +27,7 @@
id="code"
constraint="@load(vm.constriant)"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.code)" />
</cell>
</row>
@ -36,6 +37,7 @@
<textbox
id="name"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.name)" />
</cell>
</row>
@ -58,6 +60,7 @@
<textbox
id="description"
width="300px"
maxlength="@load(vm.lengthDescription)"
value="@bind(vm.dataBean.description)" />
</cell>
</row>

@ -26,6 +26,7 @@
<textbox
id="name"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.name)" />
</cell>
</row>
@ -35,6 +36,7 @@
<textbox
id="description"
width="300px"
maxlength="@load(vm.lengthDescription)"
value="@bind(vm.dataBean.description)" />
</cell>
</row>

@ -35,6 +35,7 @@
value="@bind(vm.filterTemplate.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -49,6 +50,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -40,6 +40,7 @@
value="@bind(vm.filterTemplate.code)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -54,6 +55,7 @@
value="@bind(vm.filterTemplate.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -68,6 +70,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -27,6 +27,7 @@
id="code"
constraint="@load(vm.constriant)"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.code)" />
</cell>
</row>
@ -36,6 +37,7 @@
<textbox
id="name"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(vm.dataBean.name)" />
</cell>
</row>
@ -45,6 +47,7 @@
<textbox
id="description"
width="300px"
maxlength="@load(vm.lengthDescription)"
value="@bind(vm.dataBean.description)" />
</cell>
</row>

@ -52,6 +52,7 @@
value="@bind(each.invoiceNumber)"
sclass="grid-textbox-max"
inplace="true"
maxlength="@load(vm.lengthText)"
onFocus="@command('onFocus', item=each)"/>
</listcell>
<listcell>
@ -60,6 +61,7 @@
sclass="grid-textbox-max"
inplace="true"
onFocus="@command('onFocus', item=each)"
maxlength="@load(vm.lengthText)"
onChange="@command('calculate')"/>
</listcell>
<listcell>
@ -85,6 +87,7 @@
width="200px"
value="@bind(vm.dataBean.requirement.numser)"
style="font-weight: bold;"
maxlength="@load(vm.lengthText)"
readonly="true"/>
</cell>
</row>
@ -95,6 +98,7 @@
width="350px"
rows="5"
value="@bind(vm.dataBean.requirement.description)"
maxlength="@load(vm.lengthDescription)"
readonly="true" />
</cell>
</row>
@ -104,6 +108,7 @@
<textbox
width="150px"
value="@bind(vm.dataBean.requirement.sumTotal) @converter(vm.standardBigDecimalConverter)"
maxlength="@load(vm.lengthText)"
readonly="true"/>
</cell>
</row>
@ -114,6 +119,7 @@
width="150px"
value="@bind(vm.dataBean.totalInvoiced) @converter(vm.standardBigDecimalConverter)"
readonly="true"
maxlength="@load(vm.lengthText)"
style="@load(vm.dataBean.totalInvoiced gt vm.dataBean.requirement.sumTotal ? ' color: red;' : '' )"/>
</cell>
</row>

@ -54,6 +54,7 @@
value="@bind(vm.filterTemplate.requirement.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -121,6 +122,7 @@
value="@bind(vm.filterTemplate.requirement.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -135,6 +137,7 @@
value="@bind(vm.filterTemplate.requirement.sumTotal) @converter(vm.standardBigDecimalConverter)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -149,6 +152,7 @@
value="@bind(vm.filterTemplate.totalInvoiced) @converter(vm.standardBigDecimalConverter)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -88,6 +88,7 @@
value="@bind(vm.filterTemplate.code)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -102,6 +103,7 @@
value="@bind(vm.filterTemplate.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -116,6 +118,7 @@
value="@bind(vm.filterTemplate.textItem)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -133,6 +136,7 @@
value="@bind(vm.filterTemplate.quantity)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox-right" />
</div>
</div-->
@ -144,6 +148,7 @@
value="@bind(vm.filterTemplate.munit.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -161,6 +166,7 @@
value="@bind(vm.filterTemplate.unitPrice)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox-right" />
</div>
</div-->
@ -175,6 +181,7 @@
value="@bind(vm.filterTemplate.total)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox-right" />
</div>
</div-->
@ -249,6 +256,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -95,6 +95,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -200,6 +201,7 @@
value="@bind(vm.filterTemplate.address)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -235,6 +237,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -61,6 +61,7 @@
constraint="@load(vm.constriant)"
value="@bind(fx.numser)"
placeholder="${labels.NotYetFilled}..."
maxlength="@load(vm.lengthText)"
readonly="true" />
</cell>
</row>
@ -81,6 +82,7 @@
id="idOrderTotal"
readonly="true"
width="150px"
maxlength="@load(vm.lengthText)"
value="@bind(fx.total) @converter(vm.standardBigDecimalConverter)" />
</cell>
</row>
@ -111,6 +113,7 @@
id="idOrderDescription"
width="100%"
rows="5"
maxlength="@load(vm.lengthDescription)"
value="@bind(fx.description)" />
</cell>
</row>
@ -177,12 +180,14 @@
<textbox
id="idSuppIC"
value="@bind(fx.suplier.ic)"
maxlength="@load(vm.lengthText)"
instant="true" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormDIC} :</cell>
<cell>
<textbox
id="idSuppDIC"
maxlength="@load(vm.lengthText)"
value="@bind(fx.suplier.dic)" />
</cell>
</row>
@ -192,6 +197,7 @@
<textbox
id="idSuppDepartment"
value="@bind(fx.suplier.department)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormContact} :</cell>
@ -199,6 +205,7 @@
<textbox
id="idSuppContactName"
value="@bind(fx.suplier.contactName)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -208,12 +215,14 @@
<textbox
id="idSuppStreet"
value="@bind(fx.suplier.street)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormNo} :</cell>
<cell>
<textbox
id="idSuppHouseNumber"
maxlength="@load(vm.lengthText)"
value="@bind(fx.suplier.houseNumber)" />
</cell>
</row>
@ -223,12 +232,14 @@
<textbox
id="idSuppCity"
value="@bind(fx.suplier.city)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormZIP} :</cell>
<cell>
<textbox
id="idSuppZIP"
maxlength="@load(vm.lengthText)"
value="@bind(fx.suplier.zipCode)" />
</cell>
</row>
@ -237,6 +248,7 @@
<cell>
<textbox
id="idSuppPhone"
maxlength="@load(vm.lengthText)"
value="@bind(fx.suplier.phone)" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormEmail} :</cell>
@ -244,6 +256,7 @@
<textbox
id="idSuppEmail"
value="@bind(fx.suplier.email)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -253,6 +266,7 @@
<textbox
id="idSuppWWW"
value="@bind(fx.suplier.web)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -297,12 +311,14 @@
<cell>
<textbox
id="idDeliveryIC"
maxlength="@load(vm.lengthText)"
value="@bind(fx.deliveryAddress.ic)" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormDIC} :</cell>
<cell>
<textbox
id="idDeliveryDIC"
maxlength="@load(vm.lengthText)"
value="@bind(fx.deliveryAddress.dic)" />
</cell>
</row>
@ -311,6 +327,7 @@
<cell>
<textbox
id="idDeliveryDepartment"
maxlength="@load(vm.lengthText)"
value="@bind(fx.deliveryAddress.department)"
width="100%" />
</cell>
@ -319,6 +336,7 @@
<textbox
id="idDeliveryContactName"
value="@bind(fx.deliveryAddress.contactName)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -328,12 +346,14 @@
<textbox
id="idDeliveryStreet"
value="@bind(fx.deliveryAddress.street)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormNo} :</cell>
<cell>
<textbox
id="idDeliveryHouseNumber"
maxlength="@load(vm.lengthText)"
value="@bind(fx.deliveryAddress.houseNumber)" />
</cell>
</row>
@ -343,12 +363,14 @@
<textbox
id="idDeliveryCity"
value="@bind(fx.deliveryAddress.city)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormZIP} :</cell>
<cell>
<textbox
id="idDeliveryZIP"
maxlength="@load(vm.lengthText)"
value="@bind(fx.deliveryAddress.zipCode)" />
</cell>
</row>
@ -357,6 +379,7 @@
<cell>
<textbox
id="idDeliveryPhone"
maxlength="@load(vm.lengthText)"
value="@bind(fx.deliveryAddress.phone)" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormEmail} :</cell>
@ -364,6 +387,7 @@
<textbox
id="idDeliveryEmail"
value="@bind(fx.deliveryAddress.email)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -373,6 +397,7 @@
<textbox
id="idDeliveryWWW"
value="@bind(fx.deliveryAddress.web)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -400,6 +425,7 @@
<textbox
id="idInvoiceCompany"
value="@bind(fx.address.company)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -408,12 +434,14 @@
<cell>
<textbox
id="idInvoiceIC"
maxlength="@load(vm.lengthText)"
value="@bind(fx.address.ic)" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormDIC} :</cell>
<cell>
<textbox
id="idInvoiceDIC"
maxlength="@load(vm.lengthText)"
value="@bind(fx.address.dic)" />
</cell>
</row>
@ -423,6 +451,7 @@
<textbox
id="idInvoiceDepartment"
value="@bind(fx.address.department)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormContact} :</cell>
@ -430,6 +459,7 @@
<textbox
id="idInvoiceContactName"
value="@bind(fx.address.contactName)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -439,12 +469,14 @@
<textbox
id="idInvoiceStreet"
value="@bind(fx.address.street)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormNo} :</cell>
<cell>
<textbox
id="idInvoiceHouseNumber"
maxlength="@load(vm.lengthText)"
value="@bind(fx.address.houseNumber)" />
</cell>
</row>
@ -454,12 +486,14 @@
<textbox
id="idInvoiceCity"
value="@bind(fx.address.city)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormZIP} :</cell>
<cell>
<textbox
id="idInvoiceZIP"
maxlength="@load(vm.lengthText)"
value="@bind(fx.address.zipCode)" />
</cell>
</row>
@ -468,6 +502,7 @@
<cell>
<textbox
id="idInvoicePhone"
maxlength="@load(vm.lengthText)"
value="@bind(fx.address.phone)" />
</cell>
<cell sclass="row-title">${labels.SuppliersFormEmail} :</cell>
@ -475,6 +510,7 @@
<textbox
id="idInvoiceEmail"
value="@bind(fx.address.email)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -484,6 +520,7 @@
<textbox
id="idInvoiceWWW"
value="@bind(fx.address.web)"
maxlength="@load(vm.lengthText)"
width="100%" />
</cell>
</row>
@ -550,6 +587,7 @@
readonly="true"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
onChange="@command('recalculate', form=fx, changed='quantity')"
maxlength="@load(vm.lengthText)"
value="@bind(each.quantity) @converter(vm.standardBigDecimalConverter)" />
</listcell>
<listcell label="@load(each.munit.name)" />
@ -560,6 +598,7 @@
readonly="${not sec:isAllGranted('ROLE_ADMIN')}"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
onChange="@command('recalculate', form=fx, changed='unitPrice')"
maxlength="@load(vm.lengthText)"
value="@bind(each.unitPrice) @converter(vm.standardBigDecimalConverter)" />
</listcell>
<listcell>
@ -569,6 +608,7 @@
readonly="${not sec:isAllGranted('ROLE_ADMIN')}"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
onChange="@command('recalculate', form=fx, changed='total')"
maxlength="@load(vm.lengthText)"
value="@bind(each.total) @converter(vm.standardBigDecimalConverter)" />
</listcell>
<listcell label="@load(each.description)" />

@ -52,6 +52,7 @@
value="@bind(vm.filterTmpMaterial.code)"
instant="true"
onChange="@command('doFilterMaterial')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -66,6 +67,7 @@
value="@bind(vm.filterTmpMaterial.name)"
instant="true"
onChange="@command('doFilterMaterial')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -100,6 +102,7 @@
value="@bind(vm.filterTmpMaterial.description)"
instant="true"
onChange="@command('doFilterMaterial')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -26,6 +26,7 @@
width="150px"
constraint="@load(vm.constriant)"
value="@bind(fx.numser)"
maxlength="@load(vm.lengthText)"
readonly="true" />
</cell>
</row>
@ -72,6 +73,7 @@
id="idSumTotal"
readonly="true"
width="150px"
maxlength="@load(vm.lengthText)"
value="@bind(fx.sumTotal) @converter(vm.standardBigDecimalConverter)" />
</cell>
</row>
@ -82,6 +84,7 @@
id="description"
width="400px"
rows="5"
maxlength="@load(vm.lengthDescription)"
value="@bind(fx.description)" />
</cell>
</row>
@ -161,6 +164,7 @@
sclass="grid-textbox-max"
readonly="false"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
maxlength="@load(vm.lengthText)"
value="@bind(each.name)" />
</listcell>
<listcell>
@ -168,6 +172,7 @@
inplace="true"
sclass="grid-textbox-max"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
maxlength="@load(vm.lengthText)"
value="@bind(each.textItem)" />
</listcell>
<listcell>
@ -176,6 +181,7 @@
sclass="grid-textbox-max-right"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
onChange="@command('recalculate', form=fx, changed='quantity')"
maxlength="@load(vm.lengthText)"
value="@bind(each.quantity) @converter(vm.standardBigDecimalConverter)" />
</listcell>
<listcell>
@ -184,6 +190,7 @@
sclass="grid-textbox-max"
readonly="false"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
maxlength="@load(vm.lengthText)"
value="@bind(each.munit.name)" />
</listcell>
<listcell>
@ -192,6 +199,7 @@
sclass="grid-textbox-max-right"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
onChange="@command('recalculate', form=fx, changed='unitprice')"
maxlength="@load(vm.lengthText)"
value="@bind(each.unitPrice) @converter(vm.standardBigDecimalConverter)" />
</listcell>
<listcell>
@ -200,6 +208,7 @@
sclass="grid-textbox-max-right"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
onChange="@command('recalculate', form=fx, changed='total')"
maxlength="@load(vm.lengthText)"
value="@bind(each.total) @converter(vm.standardBigDecimalConverter)" />
</listcell>
<listcell>
@ -207,6 +216,7 @@
inplace="true"
sclass="grid-textbox-max"
onFocus="@command('onFocusItem', item=each, ctrl=self)"
maxlength="@load(vm.lengthDescription)"
value="@bind(each.description)" />
</listcell>
<listcell

@ -59,6 +59,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -122,6 +123,7 @@
value="@bind(vm.filterTemplate.sumTotal) @converter(vm.bigDecimalConverter)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -136,6 +138,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -65,6 +65,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -128,6 +129,7 @@
value="@bind(vm.filterTemplate.sumTotal) @converter(vm.bigDecimalConverter)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -142,6 +144,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -65,6 +65,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -128,6 +129,7 @@
value="@bind(vm.filterTemplate.sumTotal) @converter(vm.bigDecimalConverter)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -142,6 +144,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -65,6 +65,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -128,6 +129,7 @@
value="@bind(vm.filterTemplate.sumTotal) @converter(vm.bigDecimalConverter)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -142,6 +144,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -64,6 +64,7 @@
value="@bind(vm.filterTmpMaterial.code)"
instant="true"
onChange="@command('doFilterMaterial')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -78,6 +79,7 @@
value="@bind(vm.filterTmpMaterial.name)"
instant="true"
onChange="@command('doFilterMaterial')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -112,6 +114,7 @@
value="@bind(vm.filterTmpMaterial.description)"
instant="true"
onChange="@command('doFilterMaterial')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -165,6 +168,7 @@
value="@bind(vm.filterTmpService.code)"
instant="true"
onChange="@command('doFilterService')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -179,6 +183,7 @@
value="@bind(vm.filterTmpService.name)"
instant="true"
onChange="@command('doFilterService')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -193,6 +198,7 @@
value="@bind(vm.filterTmpService.description)"
instant="true"
onChange="@command('doFilterService')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -49,6 +49,7 @@
value="@bind(vm.filterTmpService.code)"
instant="true"
onChange="@command('doFilterService')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -63,6 +64,7 @@
value="@bind(vm.filterTmpService.name)"
instant="true"
onChange="@command('doFilterService')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -77,6 +79,7 @@
value="@bind(vm.filterTmpService.description)"
instant="true"
onChange="@command('doFilterService')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -236,9 +236,11 @@
<vbox hflex="max">
<textbox inplace="true"
value="@load(each.to)"
maxlength="@load(vm.lengthText)"
sclass="grid-textbox-max-left"/>
<textbox inplace="true"
value="@load(each.back)"
maxlength="@load(vm.lengthText)"
sclass="grid-textbox-max-left"/>
</vbox>
<vbox>
@ -275,15 +277,41 @@
<timebox inplace="true" width="68px" value="@bind(each.endWork)" format="short"/>
</vbox>
<vbox>
<textbox inplace="true" width="68px" value="@bind(each.distance) @converter(vm.standardBigDecimalConverter)"/>
<textbox inplace="true" width="68px" value="@bind(each.distanceAmount) @converter(vm.standardBigDecimalConverter)" onChange="@command('calculate')"/>
<textbox
inplace="true"
width="68px"
maxlength="@load(vm.lengthText)"
value="@bind(each.distance) @converter(vm.standardBigDecimalConverter)" />
<textbox
inplace="true"
width="68px"
value="@bind(each.distanceAmount) @converter(vm.standardBigDecimalConverter)"
maxlength="@load(vm.lengthText)"
onChange="@command('calculate')" />
</vbox>
<vbox>
<textbox inplace="true" width="68px" value="@bind(each.fuelConsumption) @converter(vm.standardBigDecimalConverter)"/>
<textbox inplace="true" width="68px" value="@bind(each.fuelAmount) @converter(vm.standardBigDecimalConverter)" onChange="@command('calculate')"/>
<textbox
inplace="true"
width="68px"
maxlength="@load(vm.lengthText)"
value="@bind(each.fuelConsumption) @converter(vm.standardBigDecimalConverter)" />
<textbox
inplace="true"
width="68px"
value="@bind(each.fuelAmount) @converter(vm.standardBigDecimalConverter)"
maxlength="@load(vm.lengthText)"
onChange="@command('calculate')" />
</vbox>
<textbox inplace="true" value="@bind(each.carefare) @converter(vm.standardBigDecimalConverter)" onChange="@command('calculate')"/>
<textbox inplace="true" value="@bind(each.housing) @converter(vm.standardBigDecimalConverter)" onChange="@command('calculate')"/>
<textbox
inplace="true"
value="@bind(each.carefare) @converter(vm.standardBigDecimalConverter)"
maxlength="@load(vm.lengthText)"
onChange="@command('calculate')" />
<textbox
inplace="true"
value="@bind(each.housing) @converter(vm.standardBigDecimalConverter)"
maxlength="@load(vm.lengthText)"
onChange="@command('calculate')" />
<combobox inplace="true" selectedIndex="@bind(each.freeMealsCount)"
readonly="true"
width="60px"
@ -295,7 +323,11 @@
<comboitem value="3" label="3"/>
</combobox>
<label value="@load(each.meals) @converter(vm.standardBigDecimalConverter)"/>
<textbox inplace="true" value="@bind(each.otherExpenses) @converter(vm.standardBigDecimalConverter)" onChange="@command('calculate')"/>
<textbox
inplace="true"
value="@bind(each.otherExpenses) @converter(vm.standardBigDecimalConverter)"
maxlength="@load(vm.lengthText)"
onChange="@command('calculate')" />
<label value="@load(each.total) @converter(vm.standardBigDecimalConverter)"/>
<label value="@load(each.adjustedTotal) @converter(vm.standardBigDecimalConverter)"/>
</row>

@ -48,6 +48,7 @@
value="@bind(vm.filterTemplate.name)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -62,6 +63,7 @@
value="@bind(vm.filterTemplate.description)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthDescription)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">

@ -43,6 +43,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -92,6 +93,7 @@
value="@bind(vm.filterTemplate.from)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -107,6 +109,7 @@
instant="true"
onChange="@command('doFilter')"
sclass="find-grid-textbox"
maxlength="@load(vm.lengthText)"
width="100%" />
</div>
<div sclass="find-grid-img">

@ -54,6 +54,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -122,6 +123,7 @@
value="@bind(vm.filterTemplate.from)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -137,6 +139,7 @@
instant="true"
onChange="@command('doFilter')"
sclass="find-grid-textbox"
maxlength="@load(vm.lengthText)"
width="100%" />
</div>
<div sclass="find-grid-img">

@ -50,6 +50,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -99,6 +100,7 @@
value="@bind(vm.filterTemplate.from)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -114,6 +116,7 @@
instant="true"
onChange="@command('doFilter')"
sclass="find-grid-textbox"
maxlength="@load(vm.lengthText)"
width="100%" />
</div>
<div sclass="find-grid-img">

@ -54,6 +54,7 @@
value="@bind(vm.filterTemplate.numser)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -122,6 +123,7 @@
value="@bind(vm.filterTemplate.from)"
instant="true"
onChange="@command('doFilter')"
maxlength="@load(vm.lengthText)"
sclass="find-grid-textbox" />
</div>
<div sclass="find-grid-img">
@ -137,6 +139,7 @@
instant="true"
onChange="@command('doFilter')"
sclass="find-grid-textbox"
maxlength="@load(vm.lengthText)"
width="100%" />
</div>
<div sclass="find-grid-img">

@ -27,6 +27,7 @@
id="numser"
width="200px"
value="@bind(fx.numser)"
maxlength="@load(vm.lengthText)"
readonly="true" />
</cell>
</row>
@ -59,6 +60,7 @@
<textbox
id="from"
width="300px"
maxlength="@load(vm.lengthText)"
value="@bind(fx.from)" />
</cell>
</row>
@ -86,6 +88,7 @@
<textbox
id="to"
width="300px"
maxlength="@load(vm.lengthText)"
value="@bind(fx.to)" />
</cell>
</row>
@ -95,6 +98,7 @@
<textbox
id="description"
width="300px"
maxlength="@load(vm.lengthText)"
value="@bind(fx.description)" />
</cell>
</row>
@ -104,6 +108,7 @@
<textbox
id="end"
width="200px"
maxlength="@load(vm.lengthText)"
value="@bind(fx.end)" />
</cell>
</row>
@ -169,7 +174,10 @@
</row>
<row>
<checkbox label="Požaduji zálohu" checked="@bind(vm.dataBean.requireDownPayment)"/>
<textbox value="@bind(vm.dataBean.downPayment)" disabled="@bind(not vm.dataBean.requireDownPayment)"/>
<textbox
value="@bind(vm.dataBean.downPayment)"
maxlength="@load(vm.lengthText)"
disabled="@bind(not vm.dataBean.requireDownPayment)" />
</row>
</rows>
</grid>

@ -8,31 +8,55 @@
<rows>
<row>
<label value="${labels.SuppliersFormCompany}"/>
<textbox value="@bind(vm.settings.mainAddress.company)" width="100%" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.mainAddress.company)"
width="100%"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.SuppliersFormIC}"/>
<textbox value="@bind(vm.settings.mainAddress.ic)" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.mainAddress.ic)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.SuppliersFormDIC}"/>
<textbox value="@bind(vm.settings.mainAddress.dic)" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.mainAddress.dic)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.SuppliersFormStreet}"/>
<textbox value="@bind(vm.settings.mainAddress.street)" width="100%" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.mainAddress.street)"
width="100%"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.SuppliersFormNo}"/>
<textbox value="@bind(vm.settings.mainAddress.houseNumber)" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.mainAddress.houseNumber)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.SuppliersFormCity}"/>
<textbox value="@bind(vm.settings.mainAddress.city)" width="100%" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.mainAddress.city)"
width="100%"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.SuppliersFormZIP}"/>
<textbox value="@bind(vm.settings.mainAddress.zipCode)" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.mainAddress.zipCode)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
</rows>
</grid>
@ -50,16 +74,36 @@
<template name="model">
<listitem>
<listcell>
<textbox inplace="true" value="@bind(each.street)" readonly="@load(not vm.canSave)"></textbox>
<textbox
inplace="true"
value="@bind(each.street)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)">
</textbox>
</listcell>
<listcell>
<textbox inplace="true" value="@bind(each.houseNumber)" readonly="@load(not vm.canSave)"></textbox>
<textbox
inplace="true"
value="@bind(each.houseNumber)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)">
</textbox>
</listcell>
<listcell>
<textbox inplace="true" value="@bind(each.city)" readonly="@load(not vm.canSave)"></textbox>
<textbox
inplace="true"
value="@bind(each.city)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)">
</textbox>
</listcell>
<listcell>
<textbox inplace="true" value="@bind(each.zipCode)" readonly="@load(not vm.canSave)"></textbox>
<textbox
inplace="true"
value="@bind(each.zipCode)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)">
</textbox>
</listcell>
<listcell>
<button label="${labels.RemoveItem }" onClick="@command('removeAddress', addr=each)" disabled="@load(not vm.canSave)"/>

@ -8,15 +8,25 @@
<rows>
<row>
<label value="${labels.BankName}"/>
<textbox value="@bind(vm.settings.bankName)" width="100%" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.bankName)"
width="100%"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.AccountNumber}"/>
<textbox value="@bind(vm.settings.accountNumber)" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.accountNumber)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row>
<label value="${labels.BankCode}"/>
<textbox value="@bind(vm.settings.bankCode)" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.bankCode)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
</rows>
</grid>

@ -15,7 +15,12 @@
</columns>
<rows>
<row>
<label value="${labels.MailSubject}"/> <textbox value="@bind(vm.settings.newReqTemplate.subject)" width="100%" readonly="@load(not vm.canSave)"/>
<label value="${labels.MailSubject}" />
<textbox
value="@bind(vm.settings.newReqTemplate.subject)"
width="100%"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row spans="2">
<vbox>
@ -38,7 +43,12 @@
</columns>
<rows>
<row>
<label value="${labels.MailSubject}"/> <textbox value="@bind(vm.settings.authReqTemplate.subject)" width="100%" readonly="@load(not vm.canSave)"/>
<label value="${labels.MailSubject}" />
<textbox
value="@bind(vm.settings.authReqTemplate.subject)"
width="100%"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row spans="2">
<vbox>
@ -61,7 +71,12 @@
</columns>
<rows>
<row>
<label value="${labels.MailSubject}"/> <textbox value="@bind(vm.settings.confReqTemplate.subject)" width="100%" readonly="@load(not vm.canSave)"/>
<label value="${labels.MailSubject}" />
<textbox
value="@bind(vm.settings.confReqTemplate.subject)"
width="100%"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
<row spans="2">
<vbox>

@ -23,10 +23,26 @@
<template name="model">
<row>
<label value="@load(each)"/>
<textbox value="@bind(vm.settings.refunds[each][0])" inplace="true" readonly="@load(not vm.canSave)"/>
<textbox value="@bind(vm.settings.refunds[each][1])" inplace="true" readonly="@load(not vm.canSave)"/>
<textbox value="@bind(vm.settings.refunds[each][2])" inplace="true" readonly="@load(not vm.canSave)"/>
<textbox value="@bind(vm.settings.refunds[each][3])" inplace="true" readonly="@load(not vm.canSave)"/>
<textbox
value="@bind(vm.settings.refunds[each][0])"
inplace="true"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
<textbox
value="@bind(vm.settings.refunds[each][1])"
inplace="true"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
<textbox
value="@bind(vm.settings.refunds[each][2])"
inplace="true"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
<textbox
value="@bind(vm.settings.refunds[each][3])"
inplace="true"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
</row>
</template>
@ -45,8 +61,16 @@
<rows>
<template name="model">
<row>
<textbox inplace="true" value="@bind(each.code)" readonly="@load(not vm.canSave)"/>
<textbox inplace="true" value="@bind(each.description)" readonly="@load(not vm.canSave)"/>
<textbox
inplace="true"
value="@bind(each.code)"
maxlength="@load(vm.lengthText)"
readonly="@load(not vm.canSave)" />
<textbox
inplace="true"
value="@bind(each.description)"
maxlength="@load(vm.lengthDescription)"
readonly="@load(not vm.canSave)" />
<button label="${labels.RemoveItem}" onClick="@command('removeVehicle', vehicle=each)" disabled="@load(not vm.canSave)"/>
</row>
</template>

@ -15,7 +15,9 @@ binder="@init(queueName='numSeries')">
<template name="model">
<row>
<label value="@load(vm.moduleMap[each.module].name.concat(' - ').concat(labels.Prefix))"/>
<textbox value="@bind(each.prefix)"/>
<textbox
value="@bind(each.prefix)"
maxlength="@load(vm.lengthText)" />
<label value="${labels.Number}"/>
<label value="@load(each.number)"/>
</row>

@ -6,7 +6,9 @@ viewModel="@id('vm') @init('info.bukova.isspst.ui.requirement.LimitVM')">
<vbox>
<hbox>
<label value="${labels.Limit}"/>
<textbox value="@bind(vm.workflow.limit)"/>
<textbox
value="@bind(vm.workflow.limit)"
maxlength="@load(vm.lengthText)" />
</hbox>
<include src="/app/formButtons.zul" />
</vbox>

Loading…
Cancel
Save