From 834deec9d3ec02332f7c9dc16dcd6fb69a1f09f0 Mon Sep 17 00:00:00 2001 From: Peter Hormanns Date: Thu, 31 Mar 2011 19:08:34 +0000 Subject: [PATCH] Rollen-spezifische Module --- .../WebContent/VAADIN/themes/hs/icons/bg.png | Bin 0 -> 646 bytes .../VAADIN/themes/hs/icons/database.png | Bin 0 -> 390 bytes .../VAADIN/themes/hs/icons/database_key.png | Bin 0 -> 764 bytes .../VAADIN/themes/hs/icons/logo.png | Bin 0 -> 9502 bytes .../VAADIN/themes/hs/icons/table.png | Bin 0 -> 566 bytes .../VAADIN/themes/hs/icons/table_key.png | Bin 0 -> 746 bytes hsarweb/WebContent/WEB-INF/web.xml | 15 +- hsarweb/build.xml | 1 - .../src/de/hsadmin/web/AbstractModule.java | 1 - .../de/hsadmin/web/DomainReadonlyModule.java | 31 ++++ hsarweb/src/de/hsadmin/web/GenericModule.java | 6 +- hsarweb/src/de/hsadmin/web/HomeModule.java | 173 ++++++++++++++++++ .../src/de/hsadmin/web/MainApplication.java | 30 ++- .../de/hsadmin/web/PacketReadonlyModule.java | 33 ++++ hsarweb/src/de/hsadmin/web/Remote.java | 7 +- .../de/hsadmin/web/config/ModuleConfig.java | 10 + .../EMailTargetPropertyFieldFactory.java | 8 +- .../de/hsadmin/web/vaadin/GenericForm.java | 2 +- .../web/vaadin/TableComponentFactory.java | 10 +- hsarweb/src/texts/home.properties | 18 ++ hsarweb/src/texts/home_de.properties | 18 ++ hsarweb/src/texts/main.properties | 9 +- hsarweb/src/texts/main_de.properties | 3 +- hsarweb/src/texts/pac.properties | 10 + hsarweb/src/texts/pac_de.properties | 10 + 25 files changed, 367 insertions(+), 28 deletions(-) create mode 100644 hsarweb/WebContent/VAADIN/themes/hs/icons/bg.png create mode 100644 hsarweb/WebContent/VAADIN/themes/hs/icons/database.png create mode 100644 hsarweb/WebContent/VAADIN/themes/hs/icons/database_key.png create mode 100644 hsarweb/WebContent/VAADIN/themes/hs/icons/logo.png create mode 100644 hsarweb/WebContent/VAADIN/themes/hs/icons/table.png create mode 100644 hsarweb/WebContent/VAADIN/themes/hs/icons/table_key.png create mode 100644 hsarweb/src/de/hsadmin/web/DomainReadonlyModule.java create mode 100644 hsarweb/src/de/hsadmin/web/HomeModule.java create mode 100644 hsarweb/src/de/hsadmin/web/PacketReadonlyModule.java create mode 100644 hsarweb/src/texts/home.properties create mode 100644 hsarweb/src/texts/home_de.properties create mode 100644 hsarweb/src/texts/pac.properties create mode 100644 hsarweb/src/texts/pac_de.properties diff --git a/hsarweb/WebContent/VAADIN/themes/hs/icons/bg.png b/hsarweb/WebContent/VAADIN/themes/hs/icons/bg.png new file mode 100644 index 0000000000000000000000000000000000000000..c6251e73c0effb01126a9c26b0b35374d6af0e59 GIT binary patch literal 646 zcmeAS@N?(olHy`uVBq!ia0y~yV4DDByKyi9NtbU9^MDj%age(c!@6@aFM%A+0*}aI z1_r*kTeAbW|YuPgg)W_ckQ4xXPkRTvnUBs^UlLn>~)ya&t;ucLK6T7nsDp@ literal 0 HcmV?d00001 diff --git a/hsarweb/WebContent/VAADIN/themes/hs/icons/database.png b/hsarweb/WebContent/VAADIN/themes/hs/icons/database.png new file mode 100644 index 0000000000000000000000000000000000000000..3d09261a26eb97c6dedc1d3504cbc2cf915eb642 GIT binary patch literal 390 zcmV;10eSw3P);1k*-!zk~CMF9Bv_3(^PCOq;8(Zs~5pkxC`Czx(!Sg&Qcw=J& zxm*s3L;~q_`XljO2nK`6ZG=!LG!>7>X*g{!E0s!GG#b@LMn(oHxKb?nwAIwq;D1(M zUk?)G%uc_FICawM>MCqD8?06<%x1Ih6Gai3Oa{qh5=~7_6o5SeCX)%-Y!;H

={4^ZidAM3m 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 serverName - http://agnes.ostwall195.de:8180 + http://agnes.ostwall195.de:8080 backendURL - https://config-dev.hostsharing.net:443/hsar/backend + https://agnes.ostwall195.de:9443/hsar/backend xmlrpcURL - https://config-dev.hostsharing.net:443/hsar/xmlrpc/hsadmin + https://agnes.ostwall195.de:9443/hsar/xmlrpc/hsadmin Vaadin production mode productionMode false - - HSAdmin Module - hsarmodules - de.hsadmin.web.UnixUserModule,de.hsadmin.web.DomainModule,de.hsadmin.web.EMailAddressModule,de.hsadmin.web.EMailAliasModule,de.hsadmin.web.QueueTaskModule - CAS Authentication Filter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl - https://login-dev.hostsharing.net:443/cas/login + https://agnes.ostwall195.de:9443/cas/login service @@ -46,7 +41,7 @@ org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter casServerUrlPrefix - https://login-dev.hostsharing.net:443/cas + https://agnes.ostwall195.de:9443/cas proxyReceptorUrl diff --git a/hsarweb/build.xml b/hsarweb/build.xml index 2d69b64..0a0d023 100644 --- a/hsarweb/build.xml +++ b/hsarweb/build.xml @@ -15,7 +15,6 @@ - diff --git a/hsarweb/src/de/hsadmin/web/AbstractModule.java b/hsarweb/src/de/hsadmin/web/AbstractModule.java index 8fa8576..47c4fbc 100644 --- a/hsarweb/src/de/hsadmin/web/AbstractModule.java +++ b/hsarweb/src/de/hsadmin/web/AbstractModule.java @@ -104,7 +104,6 @@ public abstract class AbstractModule implements Module { } layout.addComponent(component); layout.setExpandRatio(component, 1.0f); - layout.addComponent(new Link(localeConfig.getText("impressum.label"), new ExternalResource(localeConfig.getText("impressum.link")))); } diff --git a/hsarweb/src/de/hsadmin/web/DomainReadonlyModule.java b/hsarweb/src/de/hsadmin/web/DomainReadonlyModule.java new file mode 100644 index 0000000..f08f0cd --- /dev/null +++ b/hsarweb/src/de/hsadmin/web/DomainReadonlyModule.java @@ -0,0 +1,31 @@ +package de.hsadmin.web; + +import java.util.Date; + +import de.hsadmin.web.config.ModuleConfig; +import de.hsadmin.web.config.PropertyConfig; +import de.hsadmin.web.config.PropertyTableColumn; + +public class DomainReadonlyModule extends AbstractModule { + + private static final long serialVersionUID = 1L; + + private ModuleConfig moduleConfig; + + @Override + protected void initModule() { + moduleConfig = new ModuleConfig("domain", getApplication().getLocale()); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "id", Long.class, PropertyTableColumn.INTERNAL_KEY)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "name", String.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "user", String.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "pac", String.class, PropertyTableColumn.HIDDEN)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "hive", String.class, PropertyTableColumn.HIDDEN)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "since", Date.class)); + } + + @Override + public ModuleConfig getModuleConfig() { + return moduleConfig; + } + +} diff --git a/hsarweb/src/de/hsadmin/web/GenericModule.java b/hsarweb/src/de/hsadmin/web/GenericModule.java index 4b17369..4e1bcb1 100644 --- a/hsarweb/src/de/hsadmin/web/GenericModule.java +++ b/hsarweb/src/de/hsadmin/web/GenericModule.java @@ -13,18 +13,18 @@ public abstract class GenericModule extends AbstractModule implements InsertAble private static final long serialVersionUID = 1L; public void insertRow(Map paramHash) throws HsarwebException { - getApplication().getRemote().callAdd(getModuleConfig().getName(), paramHash); + getApplication().getRemote().callAdd(getModuleConfig().getRemoteName(), paramHash); } public void deleteRow(Map paramHash) throws HsarwebException { - getApplication().getRemote().callDelete(getModuleConfig().getName(), paramHash); + getApplication().getRemote().callDelete(getModuleConfig().getRemoteName(), paramHash); } public void updateRow(Map paramHash) throws HsarwebException { Map whereHash = new HashMap(); String idKey = findIdKey(); whereHash.put(idKey, paramHash.get(idKey)); - getApplication().getRemote().callUpdate(getModuleConfig().getName(), paramHash, whereHash); + getApplication().getRemote().callUpdate(getModuleConfig().getRemoteName(), paramHash, whereHash); } private String findIdKey() { diff --git a/hsarweb/src/de/hsadmin/web/HomeModule.java b/hsarweb/src/de/hsadmin/web/HomeModule.java new file mode 100644 index 0000000..de13787 --- /dev/null +++ b/hsarweb/src/de/hsadmin/web/HomeModule.java @@ -0,0 +1,173 @@ +package de.hsadmin.web; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import com.vaadin.terminal.Sizeable; +import com.vaadin.terminal.ThemeResource; +import com.vaadin.ui.AbstractComponent; +import com.vaadin.ui.Button; +import com.vaadin.ui.Component; +import com.vaadin.ui.Form; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.VerticalLayout; +import com.vaadin.ui.Window; +import com.vaadin.ui.Button.ClickEvent; + +import de.hsadmin.web.config.ComponentFactory; +import de.hsadmin.web.config.ModuleConfig; +import de.hsadmin.web.config.PropertyConfig; +import de.hsadmin.web.config.PropertyTableColumn; +import de.hsadmin.web.vaadin.GenericForm; +import de.hsadmin.web.vaadin.PasswordPropertyFieldFactory; + +public class HomeModule extends AbstractModule implements ComponentFactory, UpdateAble { + + private ModuleConfig moduleConfig; + private MainApplication application; + + public HomeModule() { + super(); + setComponentFactory(this); + } + + public void updateRow(Map paramHash) throws HsarwebException { + Map whereHash = new HashMap(); + String idKey = findIdKey(); + whereHash.put(idKey, paramHash.get(idKey)); + paramHash.remove(idKey); + application.getRemote().callUpdate(moduleConfig.getRemoteName(), paramHash, whereHash); + } + + private String findIdKey() { + List propertyList = getModuleConfig().getPropertyList(); + String idKey = null; + for (PropertyConfig propConf : propertyList) { + PropertyTableColumn propTableColumn = propConf.getPropTableColumn(); + if (PropertyTableColumn.INTERNAL_KEY == propTableColumn) { + idKey = propConf.getId(); + return idKey; + } + } + return idKey; + } + @Override + public ModuleConfig getModuleConfig() { + return moduleConfig; + } + + @Override + protected void initModule() { + application = getApplication(); + moduleConfig = new ModuleConfig("home", application.getLocale()); + moduleConfig.setRemoteName("user"); + PropertyConfig pacProp = new PropertyConfig(moduleConfig, "pac", String.class, PropertyTableColumn.HIDDEN); + pacProp.setReadOnly(true); + PropertyConfig idProp = new PropertyConfig(moduleConfig, "id", Long.class, PropertyTableColumn.INTERNAL_KEY); + idProp.setReadOnly(true); + PropertyConfig useridProp = new PropertyConfig(moduleConfig, "userid", Long.class, PropertyTableColumn.HIDDEN); + useridProp.setReadOnly(true); + PropertyConfig nameProp = new PropertyConfig(moduleConfig, "name", String.class); + nameProp.setReadOnly(true); + PropertyConfig passwordProp = new PropertyConfig(moduleConfig, "password", String.class, PropertyTableColumn.NONE, new PasswordPropertyFieldFactory(this)); + PropertyConfig commentProp = new PropertyConfig(moduleConfig, "comment", String.class); + commentProp.setReadOnly(true); + moduleConfig.addProperty(idProp); + moduleConfig.addProperty(pacProp); + moduleConfig.addProperty(useridProp); + moduleConfig.addProperty(nameProp); + moduleConfig.addProperty(commentProp); + moduleConfig.addProperty(passwordProp); + } + + @Override + public Object initComponent() throws HsarwebException { + final Module thisModule = this; + VerticalLayout layout = new VerticalLayout(); + Button button = new Button(moduleConfig.getLabel("change_password")); + ThemeResource icon = new ThemeResource(moduleConfig.getLabel("change_password_icon")); + button.setIcon(icon); + Map whereHash = new HashMap(); + whereHash.put("name", application.getLogin()); + Long key = -1L; + try { + Object object = application.getRemote().callSearch(moduleConfig.getRemoteName(), whereHash); + if (object instanceof Object[] && ((Object[]) object).length > 0) { + key = Long.parseLong((String) ((Map) ((Object[]) object)[0]).get("id")); + } + } catch (HsarwebException e) { + e.printStackTrace(); + getApplication().showSystemException(e); + } + button.setData(key); + button.addListener(new Button.ClickListener() { + private static final long serialVersionUID = 1L; + private Window childWindow; + @Override + public void buttonClick(ClickEvent event) { + Long data = (Long) event.getButton().getData(); + final GenericForm genericForm = new GenericForm(thisModule, data); + final Form form = genericForm.createUpdateForm(); + childWindow = new Window(moduleConfig.getLabel("update")); + childWindow.setWidth(640.0f, Sizeable.UNITS_PIXELS); + VerticalLayout vLayout = new VerticalLayout(); + vLayout.setMargin(true); + vLayout.setSpacing(true); + vLayout.addComponent(form); + HorizontalLayout hLayout = new HorizontalLayout(); + Button btSaveRow = new Button(moduleConfig.getLabel("save")); + btSaveRow.setData(data); + btSaveRow.addListener(new Button.ClickListener() { + private static final long serialVersionUID = 1L; + @Override + public void buttonClick(ClickEvent event) { + application.getMainWindow().removeWindow(childWindow); + try { + Map map = new HashMap(); + map.put("id", ((Long) event.getButton().getData()).toString()); + Iterator componentIterator = form.getLayout().getComponentIterator(); + while (componentIterator.hasNext()) { + Component component = (Component) componentIterator.next(); + if (component instanceof AbstractComponent) { + Object data = ((AbstractComponent) component).getData(); + String propName = (String) data; + if ("password".equals(propName)) { + PropertyConfig property = moduleConfig.getProperty(propName); + map.put(propName, property.getPropFieldFactory().getValue(property, component)); + } + } + } + ((UpdateAble) thisModule).updateRow(map); + } catch (HsarwebException e) { + application.showUserException(e); + } + } + }); + Button btAbort = new Button(moduleConfig.getLabel("abort")); + btAbort.addListener(new Button.ClickListener() { + private static final long serialVersionUID = 1L; + @Override + public void buttonClick(ClickEvent event) { + application.getMainWindow().removeWindow(childWindow); + } + }); + hLayout.addComponent(btSaveRow); + hLayout.addComponent(btAbort); + vLayout.addComponent(hLayout); + childWindow.setContent(vLayout); + childWindow.setModal(true); + application.getMainWindow().addWindow(childWindow); + } + }); + layout.addComponent(button); + return layout; + } + + @Override + public void loadData() throws HsarwebException { + + } + +} diff --git a/hsarweb/src/de/hsadmin/web/MainApplication.java b/hsarweb/src/de/hsadmin/web/MainApplication.java index aaf201d..60b89e0 100644 --- a/hsarweb/src/de/hsadmin/web/MainApplication.java +++ b/hsarweb/src/de/hsadmin/web/MainApplication.java @@ -14,10 +14,15 @@ import org.jasig.cas.client.authentication.AuthenticationFilter; import org.jasig.cas.client.validation.Assertion; import com.vaadin.Application; +import com.vaadin.terminal.ExternalResource; import com.vaadin.terminal.Terminal; import com.vaadin.terminal.ThemeResource; import com.vaadin.terminal.gwt.server.HttpServletRequestListener; import com.vaadin.ui.Component; +import com.vaadin.ui.Embedded; +import com.vaadin.ui.HorizontalLayout; +import com.vaadin.ui.Link; +import com.vaadin.ui.Panel; import com.vaadin.ui.TabSheet; import com.vaadin.ui.VerticalLayout; import com.vaadin.ui.Window; @@ -49,12 +54,33 @@ public class MainApplication extends Application implements HttpServletRequestLi } localeConfig = new LocaleConfig(locale, "main"); remote = new Remote(this); + String role = "NONE"; + try { + Object rolesArrayObj = remote.callSearch("role", null); + if (rolesArrayObj != null && rolesArrayObj instanceof Object[]) { + Object[] rolesArray = (Object[]) rolesArrayObj; + if (rolesArray.length > 0 && rolesArray[0] instanceof Map) { + role = (String) ((Map) rolesArray[0]).get("role"); + } + } + } catch (HsarwebException e) { + showSystemException(e); + } Window mainWindow = new Window(localeConfig.getText("applicationtitle")); VerticalLayout verticalLayout = new VerticalLayout(); verticalLayout.setSizeFull(); + HorizontalLayout banner = new HorizontalLayout(); + Embedded image = new Embedded(null, new ThemeResource("../hs/icons/logo.png")); + image.setMimeType("image/png"); + Embedded bgImage = new Embedded(null, new ThemeResource("../hs/icons/bg.png")); + bgImage.setMimeType("image/png"); + banner.addComponent(image); + banner.addComponent(bgImage); + banner.setExpandRatio(bgImage, 1.0f); + verticalLayout.addComponent(banner); TabSheet tabs = new TabSheet(); tabs.setSizeFull(); - String modulesParamString = getContextParam("hsarmodules"); + String modulesParamString = localeConfig.getText("modules." + role); modules = new HashMap(); Module firstModule = null; for (String className : modulesParamString.split(",")) { @@ -74,6 +100,8 @@ public class MainApplication extends Application implements HttpServletRequestLi } tabs.addListener(this); verticalLayout.addComponent(tabs); + verticalLayout.setExpandRatio(tabs, 1.0f); + verticalLayout.addComponent(new Link(localeConfig.getText("impressum.label"), new ExternalResource(localeConfig.getText("impressum.link")))); mainWindow.setContent(verticalLayout); setMainWindow(mainWindow); setErrorHandler(new Terminal.ErrorListener() { diff --git a/hsarweb/src/de/hsadmin/web/PacketReadonlyModule.java b/hsarweb/src/de/hsadmin/web/PacketReadonlyModule.java new file mode 100644 index 0000000..828837d --- /dev/null +++ b/hsarweb/src/de/hsadmin/web/PacketReadonlyModule.java @@ -0,0 +1,33 @@ +package de.hsadmin.web; + +import java.util.Date; + +import de.hsadmin.web.config.ModuleConfig; +import de.hsadmin.web.config.PropertyConfig; +import de.hsadmin.web.config.PropertyTableColumn; + +public class PacketReadonlyModule extends AbstractModule { + + private static final long serialVersionUID = 1L; + + private ModuleConfig moduleConfig; + + @Override + protected void initModule() { + moduleConfig = new ModuleConfig("pac", getApplication().getLocale()); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "id", Long.class, PropertyTableColumn.INTERNAL_KEY)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "name", String.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "basepac", String.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "components", String.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "hive", String.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "curinetaddr", String.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "created", Date.class)); + moduleConfig.addProperty(new PropertyConfig(moduleConfig, "customer", String.class, PropertyTableColumn.HIDDEN)); + } + + @Override + public ModuleConfig getModuleConfig() { + return moduleConfig; + } + +} diff --git a/hsarweb/src/de/hsadmin/web/Remote.java b/hsarweb/src/de/hsadmin/web/Remote.java index ae6188c..512d7de 100644 --- a/hsarweb/src/de/hsadmin/web/Remote.java +++ b/hsarweb/src/de/hsadmin/web/Remote.java @@ -2,6 +2,7 @@ package de.hsadmin.web; import java.net.MalformedURLException; import java.net.URL; +import java.util.HashMap; import java.util.Map; import org.apache.xmlrpc.XmlRpcException; @@ -37,7 +38,7 @@ public class Remote { Object[] params = new Object[3]; params[0] = app.getLogin(); params[1] = app.getProxyTicket(); - params[2] = param1; + params[2] = param1 != null ? param1 : new HashMap(); return xmlrpcCall(module + "." + operation, params); } @@ -45,8 +46,8 @@ public class Remote { Object[] params = new Object[4]; params[0] = app.getLogin(); params[1] = app.getProxyTicket(); - params[2] = param1; - params[3] = param2; + params[2] = param1 != null ? param1 : new HashMap(); + params[3] = param2 != null ? param2 : new HashMap(); return xmlrpcCall(module + "." + operation, params); } diff --git a/hsarweb/src/de/hsadmin/web/config/ModuleConfig.java b/hsarweb/src/de/hsadmin/web/config/ModuleConfig.java index 776afd8..34438fd 100644 --- a/hsarweb/src/de/hsadmin/web/config/ModuleConfig.java +++ b/hsarweb/src/de/hsadmin/web/config/ModuleConfig.java @@ -12,12 +12,14 @@ public class ModuleConfig implements Serializable { private static final long serialVersionUID = 1L; private String name; + private String remoteName; private List propertyList; private Map propertyMap; private LocaleConfig localeConfig; public ModuleConfig(String name, Locale locale) { this.name = name; + this.remoteName = name; propertyList = new ArrayList(); propertyMap = new HashMap(); localeConfig = new LocaleConfig(locale, name); @@ -27,6 +29,14 @@ public class ModuleConfig implements Serializable { return name; } + public String getRemoteName() { + return remoteName; + } + + public void setRemoteName(String name) { + remoteName = name; + } + public void addProperty(PropertyConfig property) { propertyList.add(property); propertyMap.put(property.getId(), property); diff --git a/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java index c3cf10c..106d30a 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/EMailTargetPropertyFieldFactory.java @@ -141,8 +141,12 @@ public class EMailTargetPropertyFieldFactory implements PropertyFieldFactory { leftPart.setNewItemsAllowed(false); leftPart.setNullSelectionAllowed(false); leftPart.addItem(" "); - leftPart.addItem("User"); - leftPart.addItem("Alias"); + if (users != null && users.size() > 0) { + leftPart.addItem("User"); + } + if (mailAliases != null && mailAliases.size() > 0) { + leftPart.addItem("Alias"); + } leftPart.addItem("EMail"); String type = ""; if (target != null && target.length() > 0) { diff --git a/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java b/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java index 468cabe..c04cee5 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/GenericForm.java @@ -48,7 +48,7 @@ public class GenericForm { ModuleConfig config = module.getModuleConfig(); Map where = new HashMap(); where.put(findIdKey(), entityId.toString()); - Object searchResult = application.getRemote().callSearch(config.getName(), where); + Object searchResult = application.getRemote().callSearch(config.getRemoteName(), where); if (searchResult instanceof Object[]) { Map row = (Map) (((Object[]) searchResult)[0]); Form f = new Form(); diff --git a/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java b/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java index 034734c..ae16bde 100644 --- a/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java +++ b/hsarweb/src/de/hsadmin/web/vaadin/TableComponentFactory.java @@ -36,13 +36,15 @@ import de.hsadmin.web.config.PropertyTableColumn; public class TableComponentFactory implements ComponentFactory, Serializable { private static final long serialVersionUID = 1L; - private static final DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT); + private static final DateFormat serverDateFormat = DateFormat.getDateInstance(DateFormat.SHORT); private Module module; private Table table; + private DateFormat browserDateFormat; public TableComponentFactory(Module module) { this.module = module; + this.browserDateFormat = DateFormat.getDateInstance(DateFormat.SHORT, module.getApplication().getLocale()); } @Override @@ -55,7 +57,7 @@ public class TableComponentFactory implements ComponentFactory, Serializable { Property property) { if (Date.class == property.getType()) { try { - return df.format(property.getValue()); + return browserDateFormat.format(property.getValue()); } catch (IllegalArgumentException e) { return "---"; } @@ -104,7 +106,7 @@ public class TableComponentFactory implements ComponentFactory, Serializable { table.removeAllItems(); try { ModuleConfig moduleConfig = module.getModuleConfig(); - Object callSearch = module.getApplication().getRemote().callSearch(moduleConfig.getName(), new HashMap()); + Object callSearch = module.getApplication().getRemote().callSearch(moduleConfig.getRemoteName(), new HashMap()); List propertyList = moduleConfig.getPropertyList(); if (callSearch instanceof Object[]) { for (Object row : ((Object[])callSearch)) { @@ -129,7 +131,7 @@ public class TableComponentFactory implements ComponentFactory, Serializable { } if (Date.class.equals(prop.getType())) { try { - itemData[idx] = df.parse((String) valueObject); + itemData[idx] = serverDateFormat.parse((String) valueObject); } catch (ParseException e) { Calendar cal = Calendar.getInstance(); cal.clear(); diff --git a/hsarweb/src/texts/home.properties b/hsarweb/src/texts/home.properties new file mode 100644 index 0000000..86b846a --- /dev/null +++ b/hsarweb/src/texts/home.properties @@ -0,0 +1,18 @@ +id=identifier +name=username +password=password +password1=new password +password2=repeat password +comment=comment +shell=shell +userid=numeric userid +homedir=home directory +pac=packet +moduletitle=password +moduleicon=../runo/icons/16/lock.png +change_password_icon=../runo/icons/16/lock.png +hello=Hello world! +change_password=change password +update=change password +save=save password +abort=abort \ No newline at end of file diff --git a/hsarweb/src/texts/home_de.properties b/hsarweb/src/texts/home_de.properties new file mode 100644 index 0000000..820fe6e --- /dev/null +++ b/hsarweb/src/texts/home_de.properties @@ -0,0 +1,18 @@ +id=Schlüssel +name=Benutzername +password=Passwort +password1=neues Passwort +password2=Passwort-Wiederholung +comment=Kommentar +shell=Shell +userid=Benutzerkennung +homedir=Heimat Verzeichnis +pac=Paket +moduletitle=Passwort +moduleicon=../runo/icons/16/lock.png +change_password_icon=../runo/icons/16/lock.png +hello=Hallo Welt! +change_password=Passwort ändern +update=Passwort ändern +save=Passwort speichern +abort=abbrechen \ No newline at end of file diff --git a/hsarweb/src/texts/main.properties b/hsarweb/src/texts/main.properties index 2eff361..4995ccd 100644 --- a/hsarweb/src/texts/main.properties +++ b/hsarweb/src/texts/main.properties @@ -6,4 +6,11 @@ save=save abort=abort new=new impressum.label=Published by -impressum.link=http://www.hostsharing.net/impressum \ No newline at end of file +impressum.link=https://www.hostsharing.net/impressum +logo.link=https://www.hostsharing.net/logo.png +modules.NONE=de.hsadmin.web.HomeModule +modules.USER=de.hsadmin.web.HomeModule +modules.DOM_ADMIN=de.hsadmin.web.DomainReadonlyModule,de.hsadmin.web.EMailAddressModule,de.hsadmin.web.HomeModule +modules.PAC_ADMIN=de.hsadmin.web.UnixUserModule,de.hsadmin.web.DomainModule,de.hsadmin.web.EMailAddressModule,de.hsadmin.web.EMailAliasModule,de.hsadmin.web.QueueTaskModule +modules.CUSTOMER=de.hsadmin.web.PacketReadonlyModule,de.hsadmin.web.UnixUserModule,de.hsadmin.web.DomainModule,de.hsadmin.web.EMailAddressModule,de.hsadmin.web.EMailAliasModule,de.hsadmin.web.QueueTaskModule +modules.HOSTMASTER=de.hsadmin.web.PacketReadonlyModule,de.hsadmin.web.UnixUserModule,de.hsadmin.web.DomainModule,de.hsadmin.web.EMailAddressModule,de.hsadmin.web.EMailAliasModule,de.hsadmin.web.QueueTaskModule diff --git a/hsarweb/src/texts/main_de.properties b/hsarweb/src/texts/main_de.properties index 9ab358d..7e2fa73 100644 --- a/hsarweb/src/texts/main_de.properties +++ b/hsarweb/src/texts/main_de.properties @@ -6,4 +6,5 @@ save=speichern abort=abbrechen new=Eintrag anlegen impressum.label=Impressum -impressum.link=http://www.hostsharing.net/impressum \ No newline at end of file +impressum.link=https://www.hostsharing.net/impressum +logo.link=https://www.hostsharing.net/logo.png diff --git a/hsarweb/src/texts/pac.properties b/hsarweb/src/texts/pac.properties new file mode 100644 index 0000000..80c7eef --- /dev/null +++ b/hsarweb/src/texts/pac.properties @@ -0,0 +1,10 @@ +id=identifier +name=packet +curinetaddr=inet address +created=created +basepac=packet type +components=packet options +hive=host +customer=customer +moduletitle=packets +moduleicon=../runo/icons/16/document.png diff --git a/hsarweb/src/texts/pac_de.properties b/hsarweb/src/texts/pac_de.properties new file mode 100644 index 0000000..fdcc92e --- /dev/null +++ b/hsarweb/src/texts/pac_de.properties @@ -0,0 +1,10 @@ +id=Schlüssel +name=Paket +curinetaddr=IP Adresse +created=angelegt +basepac=Pakettyp +components=Paket-Optionen +hive=Server +customer=Mitglied +moduletitle=Pakete +moduleicon=../runo/icons/16/document.png