From 95dbc6566cf7b609483496d8815e413fdebc9f1c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Thu, 2 Apr 2020 15:38:24 +0200 Subject: [PATCH] Please cherry-pick: - rewrote admin-departments-list view to have working filters and sorting (wasn't done correctly) - also included a "global" search (all columns) - moved isDepartmentAlreadyAdded() to departmentListController to avoid getter for allDepartments being exposed in interface MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Roland Häder --- .../JobsAdminDepartmentWebRequestBean.java | 47 +--- .../JobsDepartmentWebRequestBean.java | 144 ----------- .../JobsDepartmentWebRequestController.java | 23 -- .../list/JobsDepartmentListWebViewBean.java | 244 ++++++++++++++++++ .../JobsDepartmentListWebViewController.java | 54 ++++ .../department/JobsDepartmentConverter.java | 20 +- .../localization/generic_de_DE.properties | 1 + .../localization/generic_en_US.properties | 1 + .../form_data/form_country_selector.tpl | 2 +- .../admin_branch_office_list.xhtml | 4 +- .../department/admin_department_list.xhtml | 69 ++++- .../admin_mobile_provider_list.xhtml | 2 +- 12 files changed, 383 insertions(+), 228 deletions(-) create mode 100644 src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewBean.java create mode 100644 src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewController.java diff --git a/src/java/org/mxchange/jjobs/beans/business/department/JobsAdminDepartmentWebRequestBean.java b/src/java/org/mxchange/jjobs/beans/business/department/JobsAdminDepartmentWebRequestBean.java index 79699953..0db3e12e 100644 --- a/src/java/org/mxchange/jjobs/beans/business/department/JobsAdminDepartmentWebRequestBean.java +++ b/src/java/org/mxchange/jjobs/beans/business/department/JobsAdminDepartmentWebRequestBean.java @@ -16,7 +16,6 @@ */ package org.mxchange.jjobs.beans.business.department; -import java.util.List; import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; import javax.enterprise.event.Event; @@ -31,10 +30,10 @@ import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice; import org.mxchange.jcontactsbusiness.model.department.AdminDepartmentSessionBeanRemote; import org.mxchange.jcontactsbusiness.model.department.BusinessDepartment; import org.mxchange.jcontactsbusiness.model.department.Department; -import org.mxchange.jcontactsbusiness.model.department.Departments; import org.mxchange.jcontactsbusiness.model.employee.Employable; import org.mxchange.jcontactsbusiness.model.headquarter.Headquarter; import org.mxchange.jjobs.beans.BaseJobsBean; +import org.mxchange.jjobs.beans.business.department.list.JobsDepartmentListWebViewController; import org.mxchange.jusercore.model.user.User; /** @@ -74,12 +73,6 @@ public class JobsAdminDepartmentWebRequestBean extends BaseJobsBean implements J */ private BasicData departmentCompany; - /** - * A general department controller (backing bean) - */ - @Inject - private JobsDepartmentWebRequestController departmentController; - /** * Assigned headquarter (if apply-able) */ @@ -95,6 +88,12 @@ public class JobsAdminDepartmentWebRequestBean extends BaseJobsBean implements J */ private Employable departmentLead; + /** + * A general department controller (backing bean) + */ + @Inject + private JobsDepartmentListWebViewController departmentListController; + /** * Owning user instance (which this department is assigned to) */ @@ -118,7 +117,7 @@ public class JobsAdminDepartmentWebRequestBean extends BaseJobsBean implements J final Department department = this.createDepartment(); // Is the department not created yet? - if (this.isDepartmentCreatedByRequiredData(department)) { + if (this.departmentListController.isDepartmentAlreadyAdded(department)) { // Then show proper faces message this.showFacesMessage("form-admin-add-department:branchStreet", "ADMIN_DEPARTMENT_ALREADY_CREATED"); //NOI18N return; @@ -269,34 +268,4 @@ public class JobsAdminDepartmentWebRequestBean extends BaseJobsBean implements J return department; } - /** - * Checks whether the given department is already found in local cache. - * Please note that this method fully relies on the cache, so you must - * always fire proper events that add/update/delete entries in cache. - *

- * @param department Department to check it's address - *

- * @return Whether the address has been found - */ - private boolean isDepartmentCreatedByRequiredData (final Department department) { - // Get full list from other bean - final List departments = this.departmentController.allDepartments(); - - // Default is not found - boolean isFound = false; - - // Now check each entry - for (final Department dep : departments) { - // Is same address? - if (Departments.isSameDepartment(dep, department)) { - // Found one - isFound = true; - break; - } - } - - // Return flag - return isFound; - } - } diff --git a/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestBean.java b/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestBean.java index 84a8283c..5c0ab158 100644 --- a/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestBean.java +++ b/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestBean.java @@ -16,21 +16,9 @@ */ package org.mxchange.jjobs.beans.business.department; -import fish.payara.cdi.jsr107.impl.NamedCache; -import java.text.MessageFormat; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; -import javax.annotation.PostConstruct; -import javax.cache.Cache; import javax.ejb.EJB; import javax.enterprise.context.RequestScoped; -import javax.enterprise.event.Observes; -import javax.inject.Inject; import javax.inject.Named; -import org.mxchange.jcontactsbusiness.events.department.added.ObservableDepartmentAddedEvent; -import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentNotFoundException; -import org.mxchange.jcontactsbusiness.model.department.Department; import org.mxchange.jcontactsbusiness.model.department.DepartmentSessionBeanRemote; import org.mxchange.jjobs.beans.BaseJobsBean; @@ -48,150 +36,18 @@ public class JobsDepartmentWebRequestBean extends BaseJobsBean implements JobsDe */ private static final long serialVersionUID = 5_028_697_360_461L; - /** - * A list of all departments - */ - private final List allDepartments; - /** * EJB for administrative purposes */ @EJB (lookup = "java:global/jjobs-ejb/department!org.mxchange.jcontactsbusiness.model.department.DepartmentSessionBeanRemote") private DepartmentSessionBeanRemote departmentBean; - /** - * A list of all departments (globally) - */ - @Inject - @NamedCache (cacheName = "departmentCache") - private Cache departmentCache; - - /** - * A list of filtered departments - */ - private List filteredDepartments; - /** * Default constructor */ public JobsDepartmentWebRequestBean () { // Call super constructor super(); - - // Init list - this.allDepartments = new LinkedList<>(); - } - - /** - * Observes events being fired when a department has been added. - *

- * @param event Event being fired - *

- * @throws NullPointerException If the parameter or it's carried instance is - * null - * @throws IllegalArgumentException If the branchId is zero or lower - */ - public void afterDepartmentAddedEvent (@Observes final ObservableDepartmentAddedEvent event) { - // Validate parameter - if (null == event) { - // Throw NPE - throw new NullPointerException("event is null"); //NOI18N - } else if (event.getDepartment() == null) { - // Throw NPE again - throw new NullPointerException("event.department is null"); //NOI18N - } else if (event.getDepartment().getDepartmentId() == null) { - // Throw it again - throw new NullPointerException("event.department.branchId is null"); //NOI18N - } else if (event.getDepartment().getDepartmentId() < 1) { - // Throw IAE - throw new IllegalArgumentException(MessageFormat.format("event.department.branchId={0} is not valid", event.getDepartment().getDepartmentId())); //NOI18N - } - - // Add instance to cache - this.departmentCache.put(event.getDepartment().getDepartmentId(), event.getDepartment()); - this.allDepartments.add(event.getDepartment()); - } - - @Override - @SuppressWarnings ("ReturnOfCollectionOrArrayField") - public List allDepartments () { - return this.allDepartments; - } - - @Override - public Department findDepartmentById (final Long departmentId) throws DepartmentNotFoundException { - // Validate parameter - if (null == departmentId) { - // Throw NPE - throw new NullPointerException("departmentId is null"); //NOI18N - } else if (departmentId < 1) { - // Throw IAE - throw new IllegalArgumentException("departmentId=" + departmentId + " is invalid"); //NOI18N - } else if (!this.departmentCache.containsKey(departmentId)) { - // Not found - throw new DepartmentNotFoundException(departmentId); - } - - // Get it from cache - final Department department = this.departmentCache.get(departmentId); - - // Return it - return department; - } - - /** - * Getter for a list of filtered departments - *

- * @return Filtered departments - */ - @SuppressWarnings ("ReturnOfCollectionOrArrayField") - public List getFilteredDepartments () { - return this.filteredDepartments; - } - - /** - * Setter for a list of filtered departments - *

- * @param filteredDepartments Filtered departments - */ - @SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter") - public void setFilteredDepartments (final List filteredDepartments) { - this.filteredDepartments = filteredDepartments; - } - - /** - * Initializer method - */ - @PostConstruct - public void initializeList () { - // Is cache there? - if (!this.departmentCache.iterator().hasNext()) { - // Get whole list from EJB - final List departments = this.departmentBean.allDepartments(); - - // Add all - for (final Department department : departments) { - // Add it to cache - this.departmentCache.put(department.getDepartmentId(), department); - } - } - - // Is the list empty, but filled cache? - if (this.allDepartments.isEmpty() && this.departmentCache.iterator().hasNext()) { - // Build up list - for (final Cache.Entry currentEntry : this.departmentCache) { - // Add to list - this.allDepartments.add(currentEntry.getValue()); - } - - // Sort list - this.allDepartments.sort(new Comparator() { - @Override - public int compare (final Department department1, final Department department2) { - return department1.getDepartmentId() > department2.getDepartmentId() ? 1 : department1.getDepartmentId() < department2.getDepartmentId() ? -1 : 0; - } - }); - } } } diff --git a/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestController.java b/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestController.java index 72d19d22..26adee68 100644 --- a/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestController.java +++ b/src/java/org/mxchange/jjobs/beans/business/department/JobsDepartmentWebRequestController.java @@ -17,9 +17,6 @@ package org.mxchange.jjobs.beans.business.department; import java.io.Serializable; -import java.util.List; -import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentNotFoundException; -import org.mxchange.jcontactsbusiness.model.department.Department; /** * An interface for general department controller @@ -28,24 +25,4 @@ import org.mxchange.jcontactsbusiness.model.department.Department; */ public interface JobsDepartmentWebRequestController extends Serializable { - /** - * Returns a list of all departments - *

- * @return A list of all departments - */ - List allDepartments (); - - /** - * Retrieves a single company department entity for given id number or - * throws a proper exception if not found. - *

- * @param departmentId Company department id to lookup - *

- * @return Company department instance - *

- * @throws DepartmentNotFoundException If the id number could not be - * looked up and solved into an entity - */ - Department findDepartmentById (final Long departmentId) throws DepartmentNotFoundException; - } diff --git a/src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewBean.java b/src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewBean.java new file mode 100644 index 00000000..dec8346a --- /dev/null +++ b/src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewBean.java @@ -0,0 +1,244 @@ +/* + * Copyright (C) 2017 - 2020 Free Software Foundation + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.mxchange.jjobs.beans.business.department.list; + +import fish.payara.cdi.jsr107.impl.NamedCache; +import java.text.MessageFormat; +import java.util.Comparator; +import java.util.LinkedList; +import java.util.List; +import javax.annotation.PostConstruct; +import javax.cache.Cache; +import javax.ejb.EJB; +import javax.enterprise.event.Observes; +import javax.faces.view.ViewScoped; +import javax.inject.Inject; +import javax.inject.Named; +import org.mxchange.jcontactsbusiness.events.department.added.ObservableDepartmentAddedEvent; +import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentNotFoundException; +import org.mxchange.jcontactsbusiness.model.department.Department; +import org.mxchange.jcontactsbusiness.model.department.DepartmentSessionBeanRemote; +import org.mxchange.jcontactsbusiness.model.department.Departments; +import org.mxchange.jjobs.beans.BaseJobsBean; + +/** + * A list bean for departments + *

+ * @author Roland Häder + */ +@Named ("departmentListController") +@ViewScoped +public class JobsDepartmentListWebViewBean extends BaseJobsBean implements JobsDepartmentListWebViewController { + + /** + * Serial number + */ + private static final long serialVersionUID = 5_028_697_360_462L; + + /** + * A list of all departments + */ + private final List allDepartments; + + /** + * EJB for administrative purposes + */ + @EJB (lookup = "java:global/jjobs-ejb/department!org.mxchange.jcontactsbusiness.model.department.DepartmentSessionBeanRemote") + private DepartmentSessionBeanRemote departmentBean; + + /** + * A list of all departments (globally) + */ + @Inject + @NamedCache (cacheName = "departmentCache") + private transient Cache departmentCache; + + /** + * A list of filtered departments + */ + private List filteredDepartments; + + /** + * Currently selected department + */ + private Department selectedDepartment; + + /** + * Default constructor + */ + public JobsDepartmentListWebViewBean () { + // Call super constructor + super(); + + // Init list + this.allDepartments = new LinkedList<>(); + } + + /** + * Observes events being fired when a department has been added. + *

+ * @param event Event being fired + *

+ * @throws NullPointerException If the parameter or it's carried instance is + * null + * @throws IllegalArgumentException If the branchId is zero or lower + */ + public void afterDepartmentAddedEvent (@Observes final ObservableDepartmentAddedEvent event) { + // Validate parameter + if (null == event) { + // Throw NPE + throw new NullPointerException("event is null"); //NOI18N + } else if (event.getDepartment() == null) { + // Throw NPE again + throw new NullPointerException("event.department is null"); //NOI18N + } else if (event.getDepartment().getDepartmentId() == null) { + // Throw it again + throw new NullPointerException("event.department.branchId is null"); //NOI18N + } else if (event.getDepartment().getDepartmentId() < 1) { + // Throw IAE + throw new IllegalArgumentException(MessageFormat.format("event.department.branchId={0} is not valid", event.getDepartment().getDepartmentId())); //NOI18N + } + + // Add instance to cache + this.departmentCache.put(event.getDepartment().getDepartmentId(), event.getDepartment()); + this.getAllDepartments().add(event.getDepartment()); + } + + @Override + public Department findDepartmentById (final Long departmentId) throws DepartmentNotFoundException { + // Validate parameter + if (null == departmentId) { + // Throw NPE + throw new NullPointerException("departmentId is null"); //NOI18N + } else if (departmentId < 1) { + // Throw IAE + throw new IllegalArgumentException("departmentId=" + departmentId + " is invalid"); //NOI18N + } else if (!this.departmentCache.containsKey(departmentId)) { + // Not found + throw new DepartmentNotFoundException(departmentId); + } + + // Get it from cache + final Department department = this.departmentCache.get(departmentId); + + // Return it + return department; + } + + /** + * Returns a list of all departments + *

+ * @return A list of all departments + */ + @SuppressWarnings ("ReturnOfCollectionOrArrayField") + public List getAllDepartments () { + return this.allDepartments; + } + + /** + * Getter for a list of filtered departments + *

+ * @return Filtered departments + */ + @SuppressWarnings ("ReturnOfCollectionOrArrayField") + public List getFilteredDepartments () { + return this.filteredDepartments; + } + + /** + * Setter for a list of filtered departments + *

+ * @param filteredDepartments Filtered departments + */ + @SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter") + public void setFilteredDepartments (final List filteredDepartments) { + this.filteredDepartments = filteredDepartments; + } + + /** + * Getter for selected department + *

+ * @return Selected department + */ + public Department getSelectedDepartment () { + return this.selectedDepartment; + } + + /** + * Setter for selected department + *

+ * @param selectedDepartment Selected department + */ + public void setSelectedDepartment (final Department selectedDepartment) { + this.selectedDepartment = selectedDepartment; + } + + /** + * Initializer method + */ + @PostConstruct + public void initializeList () { + // Is cache there? + if (!this.departmentCache.iterator().hasNext()) { + // Get whole list from EJB + final List departments = this.departmentBean.allDepartments(); + + // Add all + for (final Department department : departments) { + // Add it to cache + this.departmentCache.put(department.getDepartmentId(), department); + } + } + + // Is the list empty, but filled cache? + if (this.getAllDepartments().isEmpty() && this.departmentCache.iterator().hasNext()) { + // Build up list + for (final Cache.Entry currentEntry : this.departmentCache) { + // Add to list + this.getAllDepartments().add(currentEntry.getValue()); + } + + // Sort list + this.getAllDepartments().sort(new Comparator() { + @Override + public int compare (final Department department1, final Department department2) { + return department1.getDepartmentId() > department2.getDepartmentId() ? 1 : department1.getDepartmentId() < department2.getDepartmentId() ? -1 : 0; + } + }); + } + } + + @Override + public boolean isDepartmentAlreadyAdded (final Department department) { + // Default is not found + boolean isFound = false; + + // Now check each entry + for (final Department currentDepartment : this.getAllDepartments()) { + // Is same address? + if (Departments.isSameDepartment(currentDepartment, department)) { + // Found one + isFound = true; + break; + } + } + + // Return flag + return isFound; + } + +} diff --git a/src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewController.java b/src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewController.java new file mode 100644 index 00000000..553e8ffd --- /dev/null +++ b/src/java/org/mxchange/jjobs/beans/business/department/list/JobsDepartmentListWebViewController.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2017 - 2020 Free Software Foundation + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +package org.mxchange.jjobs.beans.business.department.list; + +import java.io.Serializable; +import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentNotFoundException; +import org.mxchange.jcontactsbusiness.model.department.Department; + +/** + * An interface for general department controller + *

+ * @author Roland Häder + */ +public interface JobsDepartmentListWebViewController extends Serializable { + + /** + * Retrieves a single company department entity for given id number or + * throws a proper exception if not found. + *

+ * @param departmentId Company department id to lookup + *

+ * @return Company department instance + *

+ * @throws DepartmentNotFoundException If the id number could not be looked + * up and solved into an entity + */ + Department findDepartmentById (final Long departmentId) throws DepartmentNotFoundException; + + /** + * Checks whether the given department is already found in local cache. + * Please note that this method fully relies on the cache, so you must + * always fire proper events that add/update/delete entries in cache. + *

+ * @param department Department to check it's address + *

+ * @return Whether the address has been found + */ + boolean isDepartmentAlreadyAdded (final Department department); + +} diff --git a/src/java/org/mxchange/jjobs/converter/business/department/JobsDepartmentConverter.java b/src/java/org/mxchange/jjobs/converter/business/department/JobsDepartmentConverter.java index aa5f3e00..3f2a1f47 100644 --- a/src/java/org/mxchange/jjobs/converter/business/department/JobsDepartmentConverter.java +++ b/src/java/org/mxchange/jjobs/converter/business/department/JobsDepartmentConverter.java @@ -24,8 +24,8 @@ import javax.faces.convert.ConverterException; import javax.faces.convert.FacesConverter; import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentNotFoundException; import org.mxchange.jcontactsbusiness.model.department.Department; -import org.mxchange.jjobs.beans.business.department.JobsDepartmentWebRequestBean; -import org.mxchange.jjobs.beans.business.department.JobsDepartmentWebRequestController; +import org.mxchange.jjobs.beans.business.department.list.JobsDepartmentListWebViewBean; +import org.mxchange.jjobs.beans.business.department.list.JobsDepartmentListWebViewController; /** * Converter for company department id <-> instance @@ -38,16 +38,10 @@ public class JobsDepartmentConverter implements Converter { /** * Company department EJB */ - private static JobsDepartmentWebRequestController DEPARTMENT_CONTROLLER; + private static JobsDepartmentListWebViewController DEPARTMENT_LIST_CONTROLLER; @Override public Department getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) { - // Is the instance there? - if (null == DEPARTMENT_CONTROLLER) { - // Get bean from CDI directly - DEPARTMENT_CONTROLLER = CDI.current().select(JobsDepartmentWebRequestBean.class).get(); - } - // Is the value null or empty? if ((null == submittedValue) || (submittedValue.trim().isEmpty())) { // Warning message @@ -64,8 +58,14 @@ public class JobsDepartmentConverter implements Converter { // Try to parse the value as long final Long departmentId = Long.valueOf(submittedValue); + // Is the instance there? + if (null == DEPARTMENT_LIST_CONTROLLER) { + // Get bean from CDI directly + DEPARTMENT_LIST_CONTROLLER = CDI.current().select(JobsDepartmentListWebViewBean.class).get(); + } + // Try to get user instance from it - companyDepartment = DEPARTMENT_CONTROLLER.findDepartmentById(departmentId); + companyDepartment = DEPARTMENT_LIST_CONTROLLER.findDepartmentById(departmentId); } catch (final NumberFormatException ex) { // Throw again throw new ConverterException(ex); diff --git a/src/java/org/mxchange/localization/generic_de_DE.properties b/src/java/org/mxchange/localization/generic_de_DE.properties index fac4739f..cffa4945 100644 --- a/src/java/org/mxchange/localization/generic_de_DE.properties +++ b/src/java/org/mxchange/localization/generic_de_DE.properties @@ -1228,3 +1228,4 @@ ADMIN_MANUFACTURER_HEADER=Hersteller: ADMIN_ASSIGNED_MANUFACTURER_LABEL=Zugewiesener Hersteller: BARCODE=Barcode: ADMIN_CONTACT_DETAILS_HEADER=Kontaktdaten zu {0} {1} {2}: +ADMIN_DEPARTMENT_DETAILS_HEADER=Daten der Abteilung {0} (Id {1}): diff --git a/src/java/org/mxchange/localization/generic_en_US.properties b/src/java/org/mxchange/localization/generic_en_US.properties index d9a51515..2af80878 100644 --- a/src/java/org/mxchange/localization/generic_en_US.properties +++ b/src/java/org/mxchange/localization/generic_en_US.properties @@ -1135,3 +1135,4 @@ ADMIN_MANUFACTURER_HEADER=Manufacturer: ADMIN_ASSIGNED_MANUFACTURER_LABEL=Assigned manufacturer: BARCODE=Barcode: ADMIN_CONTACT_DETAILS_HEADER=Contact data of {0} {1} {2}: +ADMIN_DEPARTMENT_DETAILS_HEADER=Data of department {0} (Id {1}): diff --git a/web/WEB-INF/resources/tags/country/form_data/form_country_selector.tpl b/web/WEB-INF/resources/tags/country/form_data/form_country_selector.tpl index b3369930..0c154ca3 100644 --- a/web/WEB-INF/resources/tags/country/form_data/form_country_selector.tpl +++ b/web/WEB-INF/resources/tags/country/form_data/form_country_selector.tpl @@ -21,7 +21,7 @@ @@ -284,7 +284,7 @@ responsive="true" closeOnEscape="true" > - + diff --git a/web/admin/department/admin_department_list.xhtml b/web/admin/department/admin_department_list.xhtml index a52836bc..4f724549 100644 --- a/web/admin/department/admin_department_list.xhtml +++ b/web/admin/department/admin_department_list.xhtml @@ -18,15 +18,16 @@ - + - - + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + @@ -292,7 +345,7 @@ type="submit" value="#{msg.BUTTON_ADMIN_ADD_DEPARTMENT_DATA}" action="#{adminDepartmentController.addDepartment()}" - update=":master:form-list-department:departmentList" + update=":master:form-list-departments:departmentList" /> diff --git a/web/admin/mobile_provider/admin_mobile_provider_list.xhtml b/web/admin/mobile_provider/admin_mobile_provider_list.xhtml index 444cbce9..f56d61dc 100644 --- a/web/admin/mobile_provider/admin_mobile_provider_list.xhtml +++ b/web/admin/mobile_provider/admin_mobile_provider_list.xhtml @@ -100,7 +100,7 @@ >