--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.department;
+
+import java.util.List;
+import javax.ejb.EJB;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.event.Event;
+import javax.enterprise.inject.Any;
+import javax.inject.Inject;
+import javax.inject.Named;
+import org.mxchange.jcontactsbusiness.events.department.added.DepartmentAddedEvent;
+import org.mxchange.jcontactsbusiness.events.department.added.ObservableDepartmentAddedEvent;
+import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentAlreadyAddedException;
+import org.mxchange.jcontactsbusiness.model.basicdata.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.model.branchoffice.BranchOffice;
+import org.mxchange.jcontactsbusiness.model.department.AdminDepartmentSessionBeanRemote;
+import org.mxchange.jcontactsbusiness.model.department.CompanyDepartment;
+import org.mxchange.jcontactsbusiness.model.department.Department;
+import org.mxchange.jcontactsbusiness.model.department.Departments;
+import org.mxchange.jcontactsbusiness.model.employee.Employee;
+import org.mxchange.jcontactsbusiness.model.headquarters.HeadquartersData;
+import org.mxchange.jfinancials.beans.BaseFinancialsBean;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * An administrative bean for departments
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Named ("adminDepartmentController")
+@RequestScoped
+public class FinancialsAdminDepartmentWebRequestBean extends BaseFinancialsBean implements FinancialsAdminDepartmentWebRequestController {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 5_028_697_360_462L;
+
+ /**
+ * EJB for administrative purposes
+ */
+ @EJB (lookup = "java:global/jfinancials-ejb/adminDepartment!org.mxchange.jcontactsbusiness.model.department.AdminDepartmentSessionBeanRemote")
+ private AdminDepartmentSessionBeanRemote adminDepartmentBean;
+
+ /**
+ * An event being fired when a department has been successfully added
+ */
+ @Inject
+ @Any
+ private Event<ObservableDepartmentAddedEvent> departmentAddedEvent;
+
+ /**
+ * Assigned branch office (if apply-able)
+ */
+ private BranchOffice departmentBranchOffice;
+
+ /**
+ * Assigned company for this department
+ */
+ private BusinessBasicData departmentCompany;
+
+ /**
+ * A general department controller (backing bean)
+ */
+ @Inject
+ private FinancialsDepartmentWebRequestController departmentController;
+
+ /**
+ * Assigned headquarters (if apply-able)
+ */
+ private HeadquartersData departmentHeadquarters;
+
+ /**
+ * Lead person of this department
+ */
+ private Employee departmentLead;
+
+ /**
+ * Department name
+ */
+ private String departmentName;
+
+ /**
+ * Owning user instance (which this department is assigned to)
+ */
+ private User departmentUserOwner;
+
+ /**
+ * Default constructor
+ */
+ public FinancialsAdminDepartmentWebRequestBean () {
+ // Call super constructor
+ super();
+ }
+
+ /**
+ * Adds department with all data from this backing bean. First this action
+ * method will validate if the department's address is already registered
+ * and if found, it will output a proper faces message.
+ * <p>
+ * @return Redirect outcome
+ */
+ public String addDepartment () {
+ // Get instance
+ final Department department = this.createDepartment();
+
+ // Is the department not created yet?
+ if (this.isDepartmentCreatedByRequiredData(department)) {
+ // Then show proper faces message
+ this.showFacesMessage("form-admin-add-department:branchStreet", "ADMIN_BRANCH_OFFICE_ALREADY_CREATED"); //NOI18N
+ return ""; //NOI18N
+ }
+
+ // Delcare updated instance
+ final Department updatedDepartment;
+
+ try {
+ // Try to call EJB
+ updatedDepartment = this.adminDepartmentBean.addDepartment(department);
+ } catch (final DepartmentAlreadyAddedException ex) {
+ // Output message
+ this.showFacesMessage("form-admin-add-department:departmentName", "ADMIN_DEPARTMENT_ALREADY_CREATED"); //NOI18N
+ return ""; //NOI18N
+ }
+
+ // Fire event
+ this.departmentAddedEvent.fire(new DepartmentAddedEvent(updatedDepartment));
+
+ // Redirect to list
+ return "admin_list_department"; //NOI18N
+ }
+
+ /**
+ * Getter for assigned branch office
+ * <p>
+ * @return Branch office
+ */
+ public BranchOffice getDepartmentBranchOffice () {
+ return this.departmentBranchOffice;
+ }
+
+ /**
+ * Setter for assigned branch office
+ * <p>
+ * @param departmentBranchOffice Branch office
+ */
+ public void setDepartmentBranchOffice (final BranchOffice departmentBranchOffice) {
+ this.departmentBranchOffice = departmentBranchOffice;
+ }
+
+ /**
+ * Getter for basic company data
+ * <p>
+ * @return Basic company data
+ */
+ public BusinessBasicData getDepartmentCompany () {
+ return this.departmentCompany;
+ }
+
+ /**
+ * Setter for basic company data
+ * <p>
+ * @param departmentCompany Basic company data
+ */
+ public void setDepartmentCompany (final BusinessBasicData departmentCompany) {
+ this.departmentCompany = departmentCompany;
+ }
+
+ /**
+ * Getter for assigned headquarters data
+ * <p>
+ * @return Headquarters data
+ */
+ public HeadquartersData getDepartmentHeadquarters () {
+ return this.departmentHeadquarters;
+ }
+
+ /**
+ * Setter for assigned headquarters data
+ * <p>
+ * @param departmentHeadquarters Headquarters data
+ */
+ public void setDepartmentHeadquarters (final HeadquartersData departmentHeadquarters) {
+ this.departmentHeadquarters = departmentHeadquarters;
+ }
+
+ /**
+ * Getter for department contact person
+ * <p>
+ * @return Department contact person
+ */
+ public Employee getDepartmentLead () {
+ return this.departmentLead;
+ }
+
+ /**
+ * Setter for department contact person
+ * <p>
+ * @param departmentLead Department contact person
+ */
+ public void setDepartmentLead (final Employee departmentLead) {
+ this.departmentLead = departmentLead;
+ }
+
+ /**
+ * Getter for department name
+ * <p>
+ * @return Department name
+ */
+ public String getDepartmentName () {
+ return this.departmentName;
+ }
+
+ /**
+ * Setter for department name
+ * <p>
+ * @param departmentName Department name
+ */
+ public void setDepartmentName (final String departmentName) {
+ this.departmentName = departmentName;
+ }
+
+ /**
+ * Getter for owning user instance
+ * <p>
+ * @return Owning user instance
+ */
+ public User getDepartmentUserOwner () {
+ return this.departmentUserOwner;
+ }
+
+ /**
+ * Setter for owning user instance
+ * <p>
+ * @param departmentUserOwner Owning user instance
+ */
+ public void setDepartmentUserOwner (final User departmentUserOwner) {
+ this.departmentUserOwner = departmentUserOwner;
+ }
+
+ /**
+ * Prepares an instance of a Department object (entity) with all data from
+ * this bean. If a complete fax number or land-line number was provided, it
+ * will be set in the instance as well.
+ * <p>
+ * @return An instance of a Department class (entity)
+ */
+ private Department createDepartment () {
+ // Create new department instance
+ final Department department = new CompanyDepartment(this.getDepartmentCompany(), this.getDepartmentName());
+
+ // Add all optional fields
+ department.setDepartmentHeadquarters(this.getDepartmentHeadquarters());
+ department.setDepartmentBranchOffice(this.getDepartmentBranchOffice());
+ department.setDepartmentLead(this.getDepartmentLead());
+ department.setDepartmentUserOwner(this.getDepartmentUserOwner());
+
+ // Return fully prepared instance
+ 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.
+ * <p>
+ * @param department Department to check it's address
+ * <p>
+ * @return Whether the address has been found
+ */
+ private boolean isDepartmentCreatedByRequiredData (final Department department) {
+ // Get full list from other bean
+ final List<Department> 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;
+ }
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.department;
+
+import java.io.Serializable;
+
+/**
+ * An interface for administrative branch office controller
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+public interface FinancialsAdminDepartmentWebRequestController extends Serializable {
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.department;
+
+import fish.payara.cdi.jsr107.impl.NamedCache;
+import java.text.MessageFormat;
+import java.util.Comparator;
+import java.util.Iterator;
+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.model.department.Department;
+import org.mxchange.jcontactsbusiness.model.department.DepartmentSessionBeanRemote;
+import org.mxchange.jfinancials.beans.BaseFinancialsBean;
+
+/**
+ * A general bean for departments
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Named ("departmentController")
+@RequestScoped
+public class FinancialsDepartmentWebRequestBean extends BaseFinancialsBean implements FinancialsDepartmentWebRequestController {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 5_028_697_360_461L;
+
+ /**
+ * A list of all departments
+ */
+ private final List<Department> allDepartments;
+
+ /**
+ * EJB for administrative purposes
+ */
+ @EJB (lookup = "java:global/jfinancials-ejb/department!org.mxchange.jcontactsbusiness.model.department.DepartmentSessionBeanRemote")
+ private DepartmentSessionBeanRemote departmentBean;
+
+ /**
+ * A list of all departments (globally)
+ */
+ @Inject
+ @NamedCache (cacheName = "departmentCache")
+ private Cache<Long, Department> departmentCache;
+
+ /**
+ * A list of filtered departments
+ */
+ private List<Department> filteredDepartments;
+
+ /**
+ * Default constructor
+ */
+ public FinancialsDepartmentWebRequestBean () {
+ // Call super constructor
+ super();
+
+ // Init list
+ this.allDepartments = new LinkedList<>();
+ }
+
+ /**
+ * Observes events being fired when a department has been added.
+ * <p>
+ * @param event Event being fired
+ * <p>
+ * @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<Department> allDepartments () {
+ return this.allDepartments;
+ }
+
+ /**
+ * Getter for a list of filtered departments
+ * <p>
+ * @return Filtered departments
+ */
+ @SuppressWarnings ("ReturnOfCollectionOrArrayField")
+ public List<Department> getFilteredDepartments () {
+ return this.filteredDepartments;
+ }
+
+ /**
+ * Setter for a list of filtered departments
+ * <p>
+ * @param filteredDepartments Filtered departments
+ */
+ @SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter")
+ public void setFilteredDepartments (final List<Department> filteredDepartments) {
+ this.filteredDepartments = filteredDepartments;
+ }
+
+ /**
+ * Initializer method
+ */
+ @PostConstruct
+ public void initializeList () {
+ // Is cache there?
+ if (!this.departmentCache.iterator().hasNext()) {
+ // Get whole list
+ final List<Department> list = this.departmentBean.allDepartments();
+
+ // Add all
+ for (final Iterator<Department> iterator = list.iterator(); iterator.hasNext();) {
+ // Get next element
+ final Department next = iterator.next();
+
+ // Add it to cache
+ this.departmentCache.put(next.getDepartmentId(), next);
+ }
+ }
+
+ // Is the list empty, but filled cache?
+ if (this.allDepartments.isEmpty() && this.departmentCache.iterator().hasNext()) {
+ // Get iterator
+ final Iterator<Cache.Entry<Long, Department>> iterator = this.departmentCache.iterator();
+
+ // Build up list
+ while (iterator.hasNext()) {
+ // GEt next element
+ final Cache.Entry<Long, Department> next = iterator.next();
+
+ // Add to list
+ this.allDepartments.add(next.getValue());
+ }
+
+ // Sort list
+ this.allDepartments.sort(new Comparator<Department>() {
+ @Override
+ public int compare (final Department o1, final Department o2) {
+ return o1.getDepartmentId() > o2.getDepartmentId() ? 1 : o1.getDepartmentId() < o2.getDepartmentId() ? -1 : 0;
+ }
+ }
+ );
+ }
+ }
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.department;
+
+import java.io.Serializable;
+import java.util.List;
+import org.mxchange.jcontactsbusiness.model.department.Department;
+
+/**
+ * An interface for general department controller
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+public interface FinancialsDepartmentWebRequestController extends Serializable {
+
+ /**
+ * Returns a list of all departments
+ * <p>
+ * @return A list of all departments
+ */
+ List<Department> allDepartments ();
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.opening_time;
+
+import java.util.Date;
+import javax.ejb.EJB;
+import javax.enterprise.context.RequestScoped;
+import javax.enterprise.event.Event;
+import javax.enterprise.inject.Any;
+import javax.inject.Inject;
+import javax.inject.Named;
+import org.mxchange.jcontactsbusiness.events.opening_time.added.ObservableOpeningTimeAddedEvent;
+import org.mxchange.jcontactsbusiness.events.opening_time.added.OpeningTimeAddedEvent;
+import org.mxchange.jcontactsbusiness.model.opening_time.AdminOpeningTimeSessionBeanRemote;
+import org.mxchange.jcontactsbusiness.model.opening_time.BusinessOpeningTime;
+import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
+import org.mxchange.jcontactsbusiness.model.opening_time.dayofweek.DayOfTheWeek;
+import org.mxchange.jfinancials.beans.BaseFinancialsBean;
+
+/**
+ * An administrative bean for openingTimes
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Named ("adminOpeningTimeController")
+@RequestScoped
+public class FinancialsAdminOpeningTimeWebRequestBean extends BaseFinancialsBean implements FinancialsAdminOpeningTimeWebRequestController {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 5_028_697_360_463L;
+
+ /**
+ * EJB for administrative purposes
+ */
+ @EJB (lookup = "java:global/jfinancials-ejb/adminOpeningTimes!org.mxchange.jcontactsbusiness.model.opening_time.AdminOpeningTimeSessionBeanRemote")
+ private AdminOpeningTimeSessionBeanRemote adminOpeningTimeBean;
+
+ /**
+ * Ending week day
+ */
+ private DayOfTheWeek openingEndDay;
+
+ /**
+ * Ending time
+ */
+ private Date openingEndTime;
+
+ /**
+ * Starting week day
+ */
+ private DayOfTheWeek openingStartDay;
+
+ /**
+ * Starting time
+ */
+ private Date openingStartTime;
+
+ /**
+ * An event being fired when a openingTime has been successfully added
+ */
+ @Inject
+ @Any
+ private Event<ObservableOpeningTimeAddedEvent> openingTimeAddedEvent;
+
+ /**
+ * Default constructor
+ */
+ public FinancialsAdminOpeningTimeWebRequestBean () {
+ // Call super constructor
+ super();
+ }
+
+ /**
+ * Adds openingTime with all data from this backing bean. First this action
+ * method will validate if the openingTime's address is already registered
+ * and if found, it will output a proper faces message.
+ * <p>
+ * @return Redirect outcome
+ */
+ public String addOpeningTimes () {
+ // Get instance
+ final OpeningTime openingTime = this.createOpeningTimes();
+
+ // Call EJB and return updated instance
+ final OpeningTime updatedOpeningTimes = this.adminOpeningTimeBean.addOpeningTime(openingTime);
+
+ // Fire event
+ this.openingTimeAddedEvent.fire(new OpeningTimeAddedEvent(updatedOpeningTimes));
+
+ // Redirect to list
+ return "admin_list_opening_time"; //NOI18N
+ }
+
+ /**
+ * Getter for ending week day
+ * <p>
+ * @return Ending week day
+ */
+ public DayOfTheWeek getOpeningEndDay () {
+ return this.openingEndDay;
+ }
+
+ /**
+ * Setter for ending week day
+ * <p>
+ * @param openingEndDay Ending week day
+ */
+ public void setOpeningEndDay (final DayOfTheWeek openingEndDay) {
+ this.openingEndDay = openingEndDay;
+ }
+
+ /**
+ * Getter for ending time
+ * <p>
+ * @return Ending time
+ */
+ @SuppressWarnings ("ReturnOfDateField")
+ public Date getOpeningEndTime () {
+ return this.openingEndTime;
+ }
+
+ /**
+ * Getter for ending time
+ * <p>
+ * @param openingEndTime Ending time
+ */
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+ public void setOpeningEndTime (final Date openingEndTime) {
+ this.openingEndTime = openingEndTime;
+ }
+
+ /**
+ * Getter for starting week day
+ * <p>
+ * @return Starting week day
+ */
+ public DayOfTheWeek getOpeningStartDay () {
+ return this.openingStartDay;
+ }
+
+ /**
+ * Getter for starting week day
+ * <p>
+ * @param openingStartDay Starting week day
+ */
+ public void setOpeningStartDay (final DayOfTheWeek openingStartDay) {
+ this.openingStartDay = openingStartDay;
+ }
+
+ /**
+ * Getter for starting time
+ * <p>
+ * @return Starting time
+ */
+ @SuppressWarnings ("ReturnOfDateField")
+ public Date getOpeningStartTime () {
+ return this.openingStartTime;
+ }
+
+ /**
+ * Getter for starting time
+ * <p>
+ * @param openingStartTime Starting time
+ */
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+ public void setOpeningStartTime (final Date openingStartTime) {
+ this.openingStartTime = openingStartTime;
+ }
+
+ /**
+ * Prepares an instance of a OpeningTimes object (entity) with all data from
+ * this bean. If a complete fax number or land-line number was provided, it
+ * will be set in the instance as well.
+ * <p>
+ * @return An instance of a OpeningTimes class (entity)
+ */
+ private OpeningTime createOpeningTimes () {
+ // Create new openingTime instance
+ final OpeningTime openingTime = new BusinessOpeningTime(this.getOpeningEndDay(), this.getOpeningEndTime(), this.getOpeningStartDay(), this.getOpeningStartTime());
+
+ // Return fully prepared instance
+ return openingTime;
+ }
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.opening_time;
+
+import java.io.Serializable;
+
+/**
+ * An interface for administrative opening time controller
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+public interface FinancialsAdminOpeningTimeWebRequestController extends Serializable {
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.opening_time;
+
+import fish.payara.cdi.jsr107.impl.NamedCache;
+import java.util.Comparator;
+import java.util.Iterator;
+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.inject.Inject;
+import javax.inject.Named;
+import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
+import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTimeSessionBeanRemote;
+import org.mxchange.jfinancials.beans.BaseFinancialsBean;
+
+/**
+ * A general bean for opening times
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Named ("openingTimeController")
+@RequestScoped
+public class FinancialsOpeningTimeWebRequestBean extends BaseFinancialsBean implements FinancialsOpeningTimeWebRequestController {
+
+ /**
+ * Serial number
+ */
+ private static final long serialVersionUID = 5_028_697_360_462L;
+
+ /**
+ * A list of all opening times
+ */
+ private final List<OpeningTime> allOpeningTimes;
+
+ /**
+ * A list of filtered opening times
+ */
+ private List<OpeningTime> filteredOpeningTimes;
+
+ /**
+ * EJB for administrative purposes
+ */
+ @EJB (lookup = "java:global/jfinancials-ejb/openingTimes!org.mxchange.jcontactsbusiness.model.opening_time.OpeningTimeSessionBeanRemote")
+ private OpeningTimeSessionBeanRemote openingTimesBean;
+
+ /**
+ * A list of all opening times (globally)
+ */
+ @Inject
+ @NamedCache (cacheName = "openingTimesCache")
+ private Cache<Long, OpeningTime> openingTimesCache;
+
+ /**
+ * Default constructor
+ */
+ public FinancialsOpeningTimeWebRequestBean () {
+ // Call super constructor
+ super();
+
+ // Init list
+ this.allOpeningTimes = new LinkedList<>();
+ }
+
+ @Override
+ @SuppressWarnings ("ReturnOfCollectionOrArrayField")
+ public List<OpeningTime> allOpeningTimes () {
+ return this.allOpeningTimes;
+ }
+
+ /**
+ * Getter for a list of filtered opening times
+ * <p>
+ * @return Filtered opening times
+ */
+ @SuppressWarnings ("ReturnOfCollectionOrArrayField")
+ public List<OpeningTime> getFilteredOpeningTimes () {
+ return this.filteredOpeningTimes;
+ }
+
+ /**
+ * Setter for a list of filtered opening times
+ * <p>
+ * @param filteredOpeningTimes Filtered opening times
+ */
+ @SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter")
+ public void setFilteredOpeningTimes (final List<OpeningTime> filteredOpeningTimes) {
+ this.filteredOpeningTimes = filteredOpeningTimes;
+ }
+
+ /**
+ * Initializer method
+ */
+ @PostConstruct
+ public void initializeList () {
+ // Is cache there?
+ if (!this.openingTimesCache.iterator().hasNext()) {
+ // Get whole list
+ final List<OpeningTime> list = this.openingTimesBean.allOpeningTimes();
+
+ // Add all
+ for (final Iterator<OpeningTime> iterator = list.iterator(); iterator.hasNext();) {
+ // Get next element
+ final OpeningTime next = iterator.next();
+
+ // Add it to cache
+ this.openingTimesCache.put(next.getOpeningId(), next);
+ }
+ }
+
+ // Is the list empty, but filled cache?
+ if (this.allOpeningTimes.isEmpty() && this.openingTimesCache.iterator().hasNext()) {
+ // Get iterator
+ final Iterator<Cache.Entry<Long, OpeningTime>> iterator = this.openingTimesCache.iterator();
+
+ // Build up list
+ while (iterator.hasNext()) {
+ // GEt next element
+ final Cache.Entry<Long, OpeningTime> next = iterator.next();
+
+ // Add to list
+ this.allOpeningTimes.add(next.getValue());
+ }
+
+ // Sort list
+ this.allOpeningTimes.sort(new Comparator<OpeningTime>() {
+ @Override
+ public int compare (final OpeningTime o1, final OpeningTime o2) {
+ return o1.getOpeningId() > o2.getOpeningId() ? 1 : o1.getOpeningId() < o2.getOpeningId() ? -1 : 0;
+ }
+ }
+ );
+ }
+ }
+
+}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.beans.business.opening_time;
+
+import java.io.Serializable;
+import java.util.List;
+import org.mxchange.jcontactsbusiness.model.opening_time.OpeningTime;
+
+/**
+ * An interface for general opening times controller
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+public interface FinancialsOpeningTimeWebRequestController extends Serializable {
+
+ /**
+ * Returns a list of all opening times
+ * <p>
+ * @return A list of all opening times
+ */
+ List<OpeningTime> allOpeningTimes ();
+
+}
import javax.enterprise.context.ApplicationScoped;
import javax.inject.Named;
+import org.mxchange.jcontactsbusiness.model.opening_time.dayofweek.DayOfTheWeek;
import org.mxchange.jfinancials.beans.BaseFinancialsBean;
import org.mxchange.jproduct.model.payment.PaymentType;
super();
}
+ /**
+ * Returns a list of all days of the week
+ * <p>
+ * @return A list of all days of the week
+ */
+ public DayOfTheWeek[] getDayOfTheWeek () {
+ return DayOfTheWeek.values();
+ }
+
/**
* Returns a list of all payment types
* <p>
public PaymentType[] getPaymentTypes () {
return PaymentType.values();
}
-
}
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
-import org.mxchange.jcontactsbusiness.exceptions.department.CompanyDepartmentNotFoundException;
-import org.mxchange.jcontactsbusiness.model.department.CompanyDepartmentSessionBeanRemote;
+import org.mxchange.jcontactsbusiness.exceptions.department.DepartmentNotFoundException;
import org.mxchange.jcontactsbusiness.model.department.Department;
+import org.mxchange.jcontactsbusiness.model.department.DepartmentSessionBeanRemote;
/**
* Converter for company department id <-> instance
/**
* Company department EJB
*/
- private static CompanyDepartmentSessionBeanRemote DEPARTMENT_BEAN;
+ private static DepartmentSessionBeanRemote DEPARTMENT_BEAN;
@Override
public Department getAsObject (final FacesContext context, final UIComponent component, final String submittedValue) {
final Context initial = new InitialContext();
// Lookup EJB
- DEPARTMENT_BEAN = (CompanyDepartmentSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/companyDepartment!org.mxchange.jcontactsbusiness.model.department.CompanyDepartmentSessionBeanRemote"); //NOI18N
+ DEPARTMENT_BEAN = (DepartmentSessionBeanRemote) initial.lookup("java:global/jfinancials-ejb/companyDepartment!org.mxchange.jcontactsbusiness.model.department.CompanyDepartmentSessionBeanRemote"); //NOI18N
} catch (final NamingException ex) {
// Throw it again
throw new ValidatorException(new FacesMessage(FacesMessage.SEVERITY_ERROR, "Cannot lookup EJB", ex.getMessage()), ex); //NOI18N
} catch (final NumberFormatException ex) {
// Throw again
throw new ConverterException(ex);
- } catch (final CompanyDepartmentNotFoundException ex) {
+ } catch (final DepartmentNotFoundException ex) {
// Debug message
// @TODO Not working with JNDI (no remote interface) this.loggerBeanLocal.logDebug(MessageFormat.format("{0}.getAsObject(): Exception: {1} - Returning null ...", this.getClass().getSimpleName(), ex)); //NOI18N
}
--- /dev/null
+/*
+ * Copyright (C) 2017 Roland Häder
+ *
+ * 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 <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jfinancials.converter.dayofweek;
+
+import javax.faces.convert.EnumConverter;
+import javax.faces.convert.FacesConverter;
+import org.mxchange.jcontactsbusiness.model.opening_time.dayofweek.DayOfTheWeek;
+
+/**
+ * A converter for day of the week enumeration
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@FacesConverter("DayOfTheWeekConverter")
+public class FinancialsDayOfTheWeekConverter extends EnumConverter {
+
+ /**
+ * Default constructor which calls the super constructor with the proper
+ * enumeration as class type.
+ */
+ public FinancialsDayOfTheWeekConverter () {
+ super(DayOfTheWeek.class);
+ }
+
+}
ADMIN_MENU_MAIN_TITLE=Hauptauswahl
ADMIN_MENU_LOGOUT_TITLE=Ausloggen
ADMIN_LINK_INDEX_TITLE=Zur Willkommensseite
-ADMIN_LINK_LOGOUT_TITLE=Ausloggen
+ADMIN_LINK_LOGOUT_TITLE=Ausloggen vom Administrationsbereich
ADMIN_LINK_TO_WEBPAGE_TITLE=Zur Webseite, aber eingeloggt bleiben
ADMIN_LINK_INDEX=Home
ADMIN_LINK_LOGOUT=Ausloggen
ADMIN_LINK_TO_WEBPAGE=Webseite aufrufen
ADMIN_LINK_FOOTER_TO_WEBPAGE=Zur Webseite
+#@TODO Please fix German umlauts!
+ADMIN_LINK_FOOTER_TO_WEBPAGE_TITLE=Dieser Link fuehrt zum Gastbereich.
GUEST_LINK_IMPRINT=Impressum
GUEST_LINK_TERMS=AGBs
GUEST_LINK_PRIVACY=Datenschutz
LOGIN_LINK_LOGOUT=Ausloggen
COUNTRY_GERMANY=Deutschland
COUNTRY_PHILIPPINES=Philippinen
-NONE_SELECTED=k.A.
+#@TODO Please fix German umlauts!
+NONE_SELECTED=Nichts ausgewaehlt
ENTERED_HOUSE_NUMBER_INVALID=Die eingegebene Hausnummer ist ung\u00fcltig.
ENTERED_ZIP_CODE_INVALID=Die eingegebene Postleitzahl ist ung\u00fcltig.
TABLE_HEADER_USER_LIST=Alle Benutzer auflisten
PAGE_TITLE_ADMIN_UNLOCK_USER=Entsperren von Benutzeraccounts
CONTENT_TITLE_ADMIN_UNLOCK_USER=Entsperren von Benutzeraccounts:
ADMIN_MENU_USER_TITLE=Benutzerverwaltung
+#@TODO Please fix German umlauts!
PAGE_TITLE_ADMIN_ADD_USER=Neues Benutzeraccount hinzufuegen
CONTENT_TITLE_ADMIN_ADD_USER=Neues Benutzeraccount hinzufuegen:
TABLE_SUMMARY_ADMIN_LIST_USERS=Diese Tabelle listet Administration, alle Benutzer auf.
ADMIN_MENU_COUNTRY_TITLE=L\u00e4nderdaten
ADMIN_LINK_LIST_COUNTRIES=L\u00e4nder
ADMIN_LINK_LIST_COUNTRIES_TITLE=Bestehende L\u00e4nderdaten auflisten, neue hinzuf\u00fcgen, \u00e4ndern und l\u00f6schen.
-PAGE_TITLE_ADMIN_LIST_COUNTRY=L\u00e4nderdaten verwalten
+PAGE_TITLE_ADMIN_LIST_COUNTRY=L\u00e4nderdaten auflisten
+#@TODO Please fix German umlauts!
CONTENT_TITLE_ADMIN_LIST_COUNTRY=Auflisten von Laenderdaten:
ADMIN_ADD_COUNTRY_TITLE=Neues Land hinzuf\u00fcgen
ADMIN_COUNTRY_DATA_MINIMUM_NOTICE=Bitte geben Sie alle Felder an.
ADMIN_LINK_EXPORT_CONTACT=Daten exportieren
ADMIN_LINK_EXPORT_CONTACT_TITLE=Kontaktdaten exportieren
#@TODO Please fix German umlauts!
-ADMIN_CONTACT_LIST_EMPTY=Keine Kontaktdaten in Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_CONTACT=Keine Kontaktdaten in Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
-ADMIN_USER_LIST_EMPTY=Keine Benutzerdaten in Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_USER=Keine Benutzerdaten in Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
ADMIN_PERSONAL_DATA_COMMENT=Kommentar: (optional)
PAGE_TITLE_USER_RESEND_DONE=Neuen Best\u00e4tigungslink verschickt
CONTENT_TITLE_USER_RESEND_DONE=Neuen Best\u00e4tigungslink verschickt:
#@TODO Please fix German umlauts!
CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Auflisten von Stammdaten
#@TODO Please fix German umlauts!
-ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=Es befinden sich keine Stammdaten in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_BASIC_COMPANY_DATA=Es befinden sich keine Stammdaten in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=Diese Tabelle listet Stammdaten auf.
ADMIN_BASIC_COMPANY_DATA_ID=Id-Nummer:
ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE=Weisst diesem Firmeneintrag einen Unternehmensgruender zu.
ADMIN_BASIC_COMPANY_DATA_CREATED=Eintrag erstellt
ADMIN_USER_NAME_IS_REQUIRED=Bitte vergeben Sie einen Benutzernamen. Dieser muss unique sein.
-NO_WEBSITE_URL_ENTERED=Keine URL eingegeben
+NO_WEBSITE_URL_ENTERED=Keine URL eingegeben.
ADMIN_LINK_LIST_BRANCH_OFFICES=Filialen
ADMIN_LINK_LIST_BRANCH_OFFICES_TITLE=Listet Filialen auf.
ADMIN_ENTER_DATA_STORE=Etage eingeben:
ADMIN_ENTER_DATA_SUITE_NUMBER=Appartmentnummer eingeben:
-ADMIN_ASSIGN_BRANCH_OFFICE_USER_OWNER=Benutzer einer Filiale zuweisen:
+ADMIN_ASSIGN_BRANCH_OFFICE_USER_OWNER=Benutzer der Filiale zuweisen:
ADMIN_ASSIGN_BRANCH_OFFICE_CONTACT_EMPLOYEE=Kontaktperson der Filiale zuweisen:
ADMIN_BRANCH_OFFICE_DATA_LEGEND=Grunddaten der Filiale:
#@TODO Please fix German umlauts!
ADMIN_BRANCH_OFFICE_DATA_LEGEND_TITLE=Geben Sie hier die Grunddaten der Filiale ein.
-ADMIN_ASSIGN_BRANCH_OFFICE_COMPANY=Filiale einem Unternehmen zuweisen:
+ADMIN_ASSIGN_BRANCH_OFFICE_COMPANY=Filiale dem Unternehmen zuweisen:
PAGE_TITLE_ADMIN_LIST_BRANCH_OFFICES=Filialen auflisten
CONTENT_TITLE_ADMIN_LIST_BRANCH_OFFICES=Auflisten von Filialen:
#@TODO Please fix German umlauts!
-ADMIN_BRANCH_OFFICES_LIST_EMPTY=Es wurden keine Filialen in der Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_BRANCH_OFFICES=Es wurden keine Filialen in der Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
ADMIN_ADD_BRANCH_OFFICE_TITLE=Filiale hinzufuegen
#@TODO Please fix German umlauts!
ADMIN_LINK_UNLOCK_SHORT=Entsperren
ADMIN_LINK_LOCK_SHORT=Sperren
#@TODO Please fix German umlauts!
-ADMIN_MOBILE_PROVIDER_LIST_EMPTY=Es befinden sich keine Mobilfunkanbieter in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_MOBILE_PROVIDER=Es befinden sich keine Mobilfunkanbieter in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
ADMIN_LINK_SHOW_MOBILE_PROVIDER_TITLE=Details des Mobilfunkanbieters anzeigen.
ADMIN_LINK_EDIT_MOBILE_PROVIDER_TITLE=Edieren des Mobilfunkanbieters.
#@TODO Please fix German umlauts!
ADMIN_LINK_DELETE_MOBILE_PROVIDER_TITLE=Loescht den Mobilfunkanbieter.
-ADMIN_LINK_SHOW_COUNTRY_TITLE=Details des Landes anzeigen.
-ADMIN_LINK_EDIT_COUNTRY_TITLE=Editieren des Landes.
+ADMIN_LINK_SHOW_COUNTRY_TITLE=Zeigt Details des Landes an.
+#@TODO Please fix German umlauts!
+ADMIN_LINK_EDIT_COUNTRY_TITLE=Editieren der Laenderdaten.
#@TODO Please fix German umlauts!
-ADMIN_LINK_DELETE_COUNTRY_TITLE=Loeschen des Landes.
+ADMIN_LINK_DELETE_COUNTRY_TITLE=Loescht die Laenderdaten.
#@TODO Please fix German umlauts!
-ADMIN_COUNTRY_LIST_EMPTY=Es befinden sich keine Laender in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_COUNTRY=Es befinden sich keine Laender in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
-ADMIN_FAX_NUMBER_LIST_EMPTY=Es befinden sich keine Faxnummern in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_FAX_NUMBER=Es befinden sich keine Faxnummern in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
-ADMIN_LANDLINE_NUMBER_LIST_EMPTY=Es befinden sich keine Festnetznummern in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_LANDLINE_NUMBER=Es befinden sich keine Festnetznummern in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
-ADMIN_MOBILE_NUMBER_LIST_EMPTY=Es befinden sich keine Mobilfunknummern in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_MOBILE_NUMBER=Es befinden sich keine Mobilfunknummern in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
-ADMIN_CONTACT_MOBILE_LIST_EMPTY=Es befinden sich keine Mobilfunknummern von Kontakten in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_CONTACT_MOBILE=Es befinden sich keine Mobilfunknummern von Kontakten in der Datenbank oder Ihre Suche ergab keine Uebereinstimmungen.
#@TODO Please fix German umlauts!
ADMIN_MOBILE_PROVIDER_COUNTRY_REQUIRED=Bitte waehlen Sie ein Land fuer den Mobilfunkanbieter aus.
#@TODO Please fix German umlauts!
ADMIN_SELECT_SELLER_EMPLOYEE=Verkaeufer auswaehlen:
#@TODO Please fix German umlauts!
LOGIN_SELECT_SELLER_EMPLOYEE=Bitte waehlen Sie einen Verkaeufer aus:
-ADMIN_LINK_SHOW_EMPLOYEE_TITLE=Zeigt Daten eines Mitarbeiters an.
+ADMIN_LINK_SHOW_EMPLOYEE_TITLE=Zeigt Details des Mitarbeiters an.
TABLE_SUMMARY_ADMIN_LIST_EMPLOYEES=Diese Tabelle listet alle Mitarbeiter auf.
#@TODO Please fix German umlauts!
-ADMIN_EMPLOYEES_LIST_EMPTY=Es wurden keine Mitarbeiter in der Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_EMPTY_LIST_EMPLOYEES=Es befinden sich keine Mitarbeiter in der Datenbank gefunden. Oder Ihre Suche ergab keine Uebereinstimmungen.
ADMIN_LIST_EMPLOYEES_HEADER=Alle Mitarbeiter auflisten
ADMIN_LINK_LIST_EMPLOYEES=Mitarbeiter
ADMIN_LINK_LIST_EMPLOYEES_TITLE=Listet Mitarbeiter auf
ADMIN_LINK_LIST_DEPARTMENTS_TITLE=Listet Abteilungen von Unternehmen auf.
#@TODO Please fix German umlauts!
ADMIN_LINK_LIST_OPENING_TIMES=Oeffnungszeiten
+PAGE_TITLE_ADMIN_LIST_DEPARTMENTS=Abteilungen auflisten
+CONTENT_TITLE_ADMIN_LIST_DEPARTMENTS=Auflisten von Abteilungen:
+#@TODO Please fix German umlauts!
+ADMIN_EMPTY_LIST_DEPARTMENTS=Es befinden sich keine Abteilungen in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
+ADMIN_LINK_SHOW_DEPARTMENT_TITLE=Zeigt Details zur Abteilung an.
+ADMIN_LINK_EDIT_DEPARTMENT_TITLE=Editieren der Abteilung
+ADMIN_LINK_DELETE_DEPARTMENT_TITLE=Loescht die Abteilung
+#@TODO Please fix German umlauts!
+ADMIN_DEPARTMENT_ALREADY_CREATED=Die Abteilung existiert bereits im ausgewaehlten Unternehmen.
+ADMIN_LIST_DEPARTMENTS_HEADER=Alle Abteilungen auflisten
+ADMIN_DEPARTMENT_NAME=Abteilung:
+ADMIN_DEPARTMENT_LEAD_EMPLOYEE=Abteilungsleiter:
+ADMIN_ADD_DEPARTMENT_TITLE=Neue Abteilung hinzuf\u00fcgen
+ADMIN_DEPARTMENT_LEGEND=Daten der Abteilung eingeben:
+ADMIN_DEPARTMENT_LEGEND_TITLE=Geben Sie hier die Daten der Abteilung ein.
+#@TODO Please fix German umlauts!
+ADMIN_ADD_DEPARTMENT_MINIMUM_DATA=Bitte geben Sie mindestens den Namen der Abteilung (z.B. Verkauf) ein und waehlen Sie mindestens das Unternehmen aus. Wenn bekannt, waehlen Sie entweder eine Filiale oder eine Hauptniederlassung aus.
+ADMIN_ENTER_DEPARTMENT_NAME=Name der Abteilung eingeben:
+ADMIN_ASSIGN_DEPARTMENT_BRANCH_OFFICE=Filiale der Abteilung zuweisen:
+ADMIN_ASSIGN_DEPARTMENT_HEADQUARTERS=Hauptsitz der Abteilung zuweisen:
+ADMIN_ASSIGN_DEPARTMENT_COMPANY=Unternehmen der Abteilung zuweisen:
+ADMIN_ASSIGN_DEPARTMENT_LEAD_EMPLOYEE=Leitender Mitarbeiter der Abteilung zuweisen:
+ADMIN_ASSIGN_DEPARTMENT_USER_OWNER=Benutzer als Besitzer der Abteilung zuweisen:
+ADMIN_DEPARTMENT_COMPANY_REQUIRED=Bitte weisen Sie ein Unternehmen der Abteilung zu.
+ADMIN_DEPARTMENT_NAME_REQUIRED=Bitte geben Sie der Abteilung einen Namen. Zum Beispiel: Verkauf, Personalwesen
+BUTTON_ADMIN_ADD_DEPARTMENT_DATA=Abteilung hinzuf\u00fcgen
+#@TODO Please fix German umlauts!
+PAGE_TITLE_ADMIN_LIST_OPENING_TIMES=Oeffnungszeiten auflisten
+#@TODO Please fix German umlauts!
+CONTENT_TITLE_ADMIN_LIST_OPENING_TIMES=Auflisten von Oeffnungszeiten:
+#@TODO Please fix German umlauts!
+TABLE_SUMMARY_ADMIN_LIST_OPENING_TIMES=Diese Tabelle listet alle bereits angelegten Oeffnungszeiten auf.
+#@TODO Please fix German umlauts!
+ADMIN_EMPTY_LIST_OPENING_TIMES=Es befinden sich keine Oeffnungszeiten in der Datenbank. Oder Ihre Suche ergab keine Uebereinstimmungen.
+LABEL_WEEK_DAYS=Wochentage
+FILTER_BY_MULTIPLE_WEEK_DAYS_TITLE=Liste durch Auswahl von ein oder mehr Wochentagen durchsuchen.
+#@TODO Please fix German umlauts!
+ADMIN_LIST_OPENING_TIMES_HEADER=Liste aller Oeffnungszeiten
+ADMIN_START_WEEK_DAY=Start-Wochentag:
+ADMIN_END_WEEK_DAY=Endwochentag:
+ADMIN_START_TIME=Startzeit:
+ADMIN_END_TIME=Endezeit:
+ADMIN_START_WEEK_DAY_REQUIRED=Bitte geben Sie den Startwochentag an.
+ADMIN_END_WEEK_DAY_REQUIRED=Bitte geben Sie den Endwochentag an.
+ADMIN_START_TIME_REQUIRED=Bitte geben Sie die Startzeit an.
+ADMIN_END_TIME_REQUIRED=Bitte geben Sie die Endezeit an.
+#@TODO Please fix German umlauts!
+ADMIN_OPENING_TIME_LEGEND=Einzelne Oeffnungszeit:
+ADMIN_OPENING_TIME_LEGEND_TITLE=Geben Sie die Daten einer einzelnen Oeffnungszeit an.
+#@TODO Please fix German umlauts!
+ADMIN_ADD_OPENING_TIME_TITLE=Oeffnungszeit hinzufuegen:
+#@TODO Please fix German umlauts!
+ADMIN_ADD_OPENING_TIME_MINIMUM_DATA=Bitte geben Sie zum Hinzufuegen einer Oeffnungszeit alle Angaben an. Diese sollten nicht konfliktieren.
+BUTTON_ADMIN_ADD_OPENING_TIME=Oeffnungszeit hinzufuegen
ADMIN_LINK_LOGOUT=Logout
ADMIN_LINK_TO_WEBPAGE=Call website
ADMIN_LINK_FOOTER_TO_WEBPAGE=To website
+ADMIN_LINK_FOOTER_TO_WEBPAGE_TITLE=This link goes to the guest area.
GUEST_LINK_IMPRINT=Imprint
GUEST_LINK_TERMS=T&C
GUEST_LINK_PRIVACY=Privacy
PAGE_TITLE_LOGIN_AREA=User area
COUNTRY_GERMANY=Germany
COUNTRY_PHILIPPINES=Philippines
-NONE_SELECTED=Empty
+NONE_SELECTED=None selected
ENTERED_HOUSE_NUMBER_INVALID=The entered house number is invalid.
ENTERED_ZIP_CODE_INVALID=The entered ZIP code is invalid.
TABLE_HEADER_USER_LIST=List all users
ADMIN_MENU_COUNTRY_TITLE=Country data
ADMIN_LINK_LIST_COUNTRIES=Countries
ADMIN_LINK_LIST_COUNTRIES_TITLE=List existing countries, add new country, edit and delete.
-PAGE_TITLE_ADMIN_LIST_COUNTRY=Manage country data
+PAGE_TITLE_ADMIN_LIST_COUNTRY=List country data
CONTENT_TITLE_ADMIN_LIST_COUNTRY=List country data:
ADMIN_ADD_COUNTRY_TITLE=Add new country
ADMIN_COUNTRY_DATA_MINIMUM_NOTICE=Please fill out all fields.
ADMIN_DELETE_LAND_LINE_NUMBER_TITLE=Dou you really want to delete following land-line number?
ADMIN_DELETE_LAND_LINE_NUMBER_DATA_NOTICE=If you delete the land-line number, it won't be available anymore for anything. Please consider carefully if you really want this.
BUTTON_ADMIN_DELETE_LAND_LINE_NUMBER=Delete land-line number
-ADMIN_CONTACT_LIST_EMPTY=No contact data found in database. Or your search criteria doesn't match anything.
-ADMIN_USER_LIST_EMPTY=No user data found in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_CONTACT=No contact data found in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_USER=No user data found in database. Or your search criteria doesn't match anything.
ADMIN_PERSONAL_DATA_COMMENT=Comment: (optional)
ADMIN_LINK_RESEND_USER_CONFIRMATION_LINK=Send new confirmation key
ADMIN_LINK_RESEND_USER_CONFIRMATION_LINK_TITLE=Sends out a new confirmation link to the user's assigned email address.
ADMIN_LINK_LIST_BASIC_COMPANY_DATA_TITLE=Lists basic company data.
PAGE_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=List basic company data
CONTENT_TITLE_ADMIN_LIST_BASIC_COMPANY_DATA=Lists basic company data
-ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY=There are currently no basic company data in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_BASIC_COMPANY_DATA=There are currently no basic company data in database. Or your search criteria doesn't match anything.
TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA=This table lists all basic company data.
ADMIN_BASIC_COMPANY_DATA_ID=Id Number:
ADMIN_LINK_SHOW_BASIC_COMAPNY_DATA_TITLE=Show details of this business contact.
ADMIN_LINK_ASSIGN_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE=Assigns a company founder to this company entry.
ADMIN_BASIC_COMPANY_DATA_CREATED=Entry created
ADMIN_USER_NAME_IS_REQUIRED=Please enter a user name. This must be unique.
-NO_WEBSITE_URL_ENTERED=No URL entered
+NO_WEBSITE_URL_ENTERED=No URL entered.
ADMIN_LINK_LIST_BRANCH_OFFICES=Branch offices
ADMIN_LINK_LIST_BRANCH_OFFICES_TITLE=Lists branch offices.
ADMIN_ENTER_DATA_STORE=Enter store:
ADMIN_ASSIGN_BRANCH_OFFICE_COMPANY=Assign branch office to company:
PAGE_TITLE_ADMIN_LIST_BRANCH_OFFICES=List branch offices
CONTENT_TITLE_ADMIN_LIST_BRANCH_OFFICES=List branch offices:
-ADMIN_BRANCH_OFFICES_LIST_EMPTY=There are no branch offices found in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_BRANCH_OFFICES=There are no branch offices found in database. Or your search criteria doesn't match anything.
ADMIN_ADD_BRANCH_OFFICE_TITLE=Add branch office
#Bitte waehlen Sie mindestens das zugehoerige Unternehmen und das Land aus und geben Sie Strasse, Hausnummer, Postleitzahl und Stadt ein.
ADMIN_ADD_BRANCH_OFFICE_MINIMUM_DATA=Please at least choose assigned company, country and enter at least street name, house number, ZIP code and city.
DATA_ADDRESS=Address
DATA_STORE=Store:
DATA_SUITE_NUMBER=Suite number:
-ADMIN_LINK_SHOW_LANDLINE_NUMBER_TITLE=Shows details to land-line number.
-ADMIN_LINK_EDIT_LANDLINE_NUMBER_TITLE=Edit of land-line number.
+ADMIN_LINK_SHOW_LANDLINE_NUMBER_TITLE=Shows details to a land-line number.
+ADMIN_LINK_EDIT_LANDLINE_NUMBER_TITLE=Edit of a land-line number.
ADMIN_LINK_UNLINK_LANDLINE_NUMBER_CONTACT_TITLE=Unlinks land-line number from contact.
-ADMIN_LINK_DELETE_LANDLINE_NUMBER_TITLE=Deletes land-line number.
+ADMIN_LINK_DELETE_LANDLINE_NUMBER_TITLE=Deletes a land-line number.
ADMIN_LINK_UNLINK_MOBILE_NUMBER_CONTACT_TITLE=Unlinks mobile number from contact.
-ADMIN_LINK_SHOW_MOBILE_NUMBER_TITLE=Shows details of mobile number.
+ADMIN_LINK_SHOW_MOBILE_NUMBER_TITLE=Shows details of a mobile number.
ADMIN_LINK_UNLINK_FAX_NUMBER_CONTACT_TITLE=Unlinks fax number from contact.
-ADMIN_LINK_SHOW_FAX_NUMBER_TITLE=Shows details of fax number.
-ADMIN_LINK_DELETE_MOBILE_NUMBER_TITLE=Deletes mobile mobile.
-ADMIN_LINK_EDIT_MOBILE_NUMBER_TITLE=Edit of mobile number
-ADMIN_LINK_DELETE_FAX_NUMBER_TITLE=Deletes fax number.
-ADMIN_LINK_EDIT_FAX_NUMBER_TITLE=Edit of fax number.
+ADMIN_LINK_SHOW_FAX_NUMBER_TITLE=Shows details of a fax number.
+ADMIN_LINK_DELETE_MOBILE_NUMBER_TITLE=Deletes a mobile mobile.
+ADMIN_LINK_EDIT_MOBILE_NUMBER_TITLE=Edit of a mobile number
+ADMIN_LINK_DELETE_FAX_NUMBER_TITLE=Deletes a fax number.
+ADMIN_LINK_EDIT_FAX_NUMBER_TITLE=Edit of a fax number.
ADMIN_LINK_EDIT_BASIC_COMAPNY_DATA_TITLE=Edit of basic data of company.
ADMIN_LINK_DELETE_BASIC_COMAPNY_DATA_TITLE=Deletes basic data of company.
ADMIN_ACTION_LINKS=Actions:
ADMIN_LINK_RESEND_CONFIRMATION_SHORT=Resend
ADMIN_LINK_UNLOCK_SHORT=Unlock
ADMIN_LINK_LOCK_SHORT=Lock
-ADMIN_MOBILE_PROVIDER_LIST_EMPTY=There are no mobile providers in database. Or your search criteria doesn't match anything.
-ADMIN_LINK_SHOW_MOBILE_PROVIDER_TITLE=Shows details of mobile provider.
-ADMIN_LINK_EDIT_MOBILE_PROVIDER_TITLE=Edit of mobile provider.
-ADMIN_LINK_DELETE_MOBILE_PROVIDER_TITLE=Deletes mobile provider.
-ADMIN_LINK_SHOW_COUNTRY_TITLE=Show details of country.
-ADMIN_LINK_EDIT_COUNTRY_TITLE=Edit of country.
-ADMIN_LINK_DELETE_COUNTRY_TITLE=Deletes country.
-ADMIN_COUNTRY_LIST_EMPTY=There are no countries in database. Or your search criteria doesn't match anything.
-ADMIN_FAX_NUMBER_LIST_EMPTY=There are no fax numbers in database. Or your search criteria doesn't match anything.
-ADMIN_LANDLINE_NUMBER_LIST_EMPTY=There are no land-line numbers in database. Or your search criteria doesn't match anything.
-ADMIN_MOBILE_NUMBER_LIST_EMPTY=There are no mobile numbers in database. Or your search criteria doesn't match anything.
-ADMIN_CONTACT_MOBILE_LIST_EMPTY=There are no mobile numbers of contacts in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_MOBILE_PROVIDER=There are no mobile providers in database. Or your search criteria doesn't match anything.
+ADMIN_LINK_SHOW_MOBILE_PROVIDER_TITLE=Shows details of a mobile provider.
+ADMIN_LINK_EDIT_MOBILE_PROVIDER_TITLE=Edit of a mobile provider.
+ADMIN_LINK_DELETE_MOBILE_PROVIDER_TITLE=Deletes a mobile provider.
+ADMIN_LINK_SHOW_COUNTRY_TITLE=Shows details of a country.
+ADMIN_LINK_EDIT_COUNTRY_TITLE=Edit of a country.
+ADMIN_LINK_DELETE_COUNTRY_TITLE=Deletes a country.
+ADMIN_EMPTY_LIST_COUNTRY=There are no countries in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_FAX_NUMBER=There are no fax numbers in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_LANDLINE_NUMBER=There are no land-line numbers in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_MOBILE_NUMBER=There are no mobile numbers in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_CONTACT_MOBILE=There are no mobile numbers of contacts in database. Or your search criteria doesn't match anything.
ADMIN_MOBILE_PROVIDER_COUNTRY_REQUIRED=Please select a country for mobile provider.
LABEL_COUNTRIES=Countries
#Filter list by selecting one or more users.
PAYMENT_TYPE_INVOICE=Per invoice
ADMIN_SELECT_SELLER_EMPLOYEE=Choose seller:
LOGIN_SELECT_SELLER_EMPLOYEE=Please choose a seller:
-ADMIN_LINK_SHOW_EMPLOYEE_TITLE=Shows data of an employee.
+ADMIN_LINK_SHOW_EMPLOYEE_TITLE=Shows details of an employee.
TABLE_SUMMARY_ADMIN_LIST_EMPLOYEES=This table lists all company employees.
-ADMIN_EMPLOYEES_LIST_EMPTY=There are no company employees found in database. Or your search criteria doesn't match anything.
+ADMIN_EMPTY_LIST_EMPLOYEES=There are no company employees found in database. Or your search criteria doesn't match anything.
ADMIN_LIST_EMPLOYEES_HEADER=List all company employees
ADMIN_LINK_LIST_EMPLOYEES=Employees
ADMIN_LINK_LIST_EMPLOYEES_TITLE=Lists company employees
ADMIN_LINK_LIST_DEPARTMENTS=Departments
ADMIN_LINK_LIST_DEPARTMENTS_TITLE=Lists departments of companies.
ADMIN_LINK_LIST_OPENING_TIMES=Opening times
+PAGE_TITLE_ADMIN_LIST_DEPARTMENTS=List departments
+CONTENT_TITLE_ADMIN_LIST_DEPARTMENTS=List departments:
+ADMIN_EMPTY_LIST_DEPARTMENTS=There are no departments in database. Or your search criteria doesn't match anything.
+ADMIN_LINK_SHOW_DEPARTMENT_TITLE=Shpws details of a department.
+ADMIN_LINK_EDIT_DEPARTMENT_TITLE=Edit of a department
+ADMIN_LINK_DELETE_DEPARTMENT_TITLE=Deletes a department.
+ADMIN_DEPARTMENT_ALREADY_CREATED=The department already exists in selected company.
+ADMIN_LIST_DEPARTMENTS_HEADER=List all departments
+ADMIN_DEPARTMENT_NAME=Department:
+ADMIN_DEPARTMENT_LEAD_EMPLOYEE=Department leader:
+ADMIN_ADD_DEPARTMENT_TITLE=Add new department
+ADMIN_DEPARTMENT_LEGEND=Enter data of department:
+ADMIN_DEPARTMENT_LEGEND_TITLE=Here you can enter data of the new department.
+#Bitte geben Sie mindestens den Namen der Abteilung (z.B. Verkauf) ein und waehlen Sie mindestens das Unternehmen aus. Wenn bekannt, waehlen Sie entweder eine Filiale oder eine Hauptniederlassung aus.
+ADMIN_ADD_DEPARTMENT_MINIMUM_DATA=Please enter at least name of department (e.g. Sales) and choose assigned company. If known, choose a branch office or headquarters.
+ADMIN_ENTER_DEPARTMENT_NAME=Enter name of department:
+ADMIN_ASSIGN_DEPARTMENT_BRANCH_OFFICE=Assign branch office to department:
+ADMIN_ASSIGN_DEPARTMENT_HEADQUARTERS=Assign headquarters to department:
+ADMIN_ASSIGN_DEPARTMENT_COMPANY=Assign company to department:
+ADMIN_ASSIGN_DEPARTMENT_LEAD_EMPLOYEE=Assign leading employee to department:
+ADMIN_ASSIGN_DEPARTMENT_USER_OWNER=Assign owning user to department:
+ADMIN_DEPARTMENT_COMPANY_REQUIRED=Please assign a company to this department.
+ADMIN_DEPARTMENT_NAME_REQUIRED=Please enter a name for the department. Examples: Sales, Human Resources
+BUTTON_ADMIN_ADD_DEPARTMENT_DATA=Add department
+PAGE_TITLE_ADMIN_LIST_OPENING_TIMES=List opening times
+CONTENT_TITLE_ADMIN_LIST_OPENING_TIMES=List opening times:
+TABLE_SUMMARY_ADMIN_LIST_OPENING_TIMES=This table lists all opening times.
+ADMIN_EMPTY_LIST_OPENING_TIMES=There are no opening times in database. Or your search criteria doesn't match anything.
+LABEL_WEEK_DAYS=Week days
+FILTER_BY_MULTIPLE_WEEK_DAYS_TITLE=Filter list by selecting one or more week days.
+ADMIN_LIST_OPENING_TIMES_HEADER=List of all opening times
+ADMIN_START_WEEK_DAY=Start week day:
+ADMIN_END_WEEK_DAY=End week day:
+ADMIN_START_TIME=Start time:
+ADMIN_END_TIME=End time:
+ADMIN_START_WEEK_DAY_REQUIRED=Please enter start week day.
+ADMIN_END_WEEK_DAY_REQUIRED=Please enter end week day.
+ADMIN_START_TIME_REQUIRED=Please enter start time.
+ADMIN_END_TIME_REQUIRED=Please enter end time.
+ADMIN_OPENING_TIME_LEGEND=Data of single opening time:
+ADMIN_OPENING_TIME_LEGEND_TITLE=Enter data of single opening time.
+ADMIN_ADD_OPENING_TIME_TITLE=Add new opening time:
+#BItte geben Sie zum Hinzufuegen einer Oeffnungszeit alle Angaben an. Diese sollten nicht konfliktieren.
+ADMIN_ADD_OPENING_TIME_MINIMUM_DATA=To add new opening time, you have to provide all data. They should not conflict.
+BUTTON_ADMIN_ADD_OPENING_TIME=Add opening time
<to-view-id>/admin/basic_company_data/admin_basic_company_data_assign_owner.xhtml</to-view-id>
</navigation-case>
<navigation-case>
- <from-outcome>admin_show_business_employee</from-outcome>
+ <from-outcome>admin_show_employee</from-outcome>
<to-view-id>/admin/company_employee/admin_company_employee_show.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<to-view-id>/admin/basic_company_data/admin_basic_company_data_show.xhtml</to-view-id>
</navigation-case>
<navigation-case>
- <from-outcome>admin_show_business_employee</from-outcome>
+ <from-outcome>admin_show_employee</from-outcome>
<to-view-id>/admin/company_employee/admin_company_employee_show.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<to-view-id>/admin/branch_office/admin_branch_office_assign_employee.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
+ <navigation-rule>
+ <from-view-id>/admin/department/admin_department_list.xhtml</from-view-id>
+ <navigation-case>
+ <from-outcome>admin_show_department</from-outcome>
+ <to-view-id>/admin/department/admin_department_show.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>admin_edit_department</from-outcome>
+ <to-view-id>/admin/department/admin_department_edit.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>admin_delete_department</from-outcome>
+ <to-view-id>/admin/department/admin_department_delete.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>admin_show_branch_office</from-outcome>
+ <to-view-id>/admin/branch_office/admin_branch_office_show.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>admin_assign_department_branch_office</from-outcome>
+ <to-view-id>/admin/department/admin_assign_department_branch_office.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>admin_show_employee</from-outcome>
+ <to-view-id>/admin/employee/admin_employee_show.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>admin_assign_department_employee</from-outcome>
+ <to-view-id>/admin/department/admin_assign_department_employee.xhtml</to-view-id>
+ </navigation-case>
+ <navigation-case>
+ <from-outcome>admin_assign_department_user</from-outcome>
+ <to-view-id>/admin/department/admin_assign_department_user.xhtml</to-view-id>
+ </navigation-case>
+ </navigation-rule>
<navigation-rule>
<from-view-id>/admin/employee/admin_employee_list.xhtml</from-view-id>
<navigation-case>
<type>java.lang.Boolean</type>
</attribute>
</tag>
+ <tag>
+ <tag-name>outputDepartmentAdminMiniLinks</tag-name>
+ <description>This tag renders administrative "mini-links" for given department instance.</description>
+ <source>resources/tags/admin/links/mini/department/admin_department_links.tpl</source>
+ <attribute>
+ <name>department</name>
+ <description>The department instance that provides the data for this tag.</description>
+ <required>true</required>
+ <type>org.mxchange.jcontactsbusiness.model.department.Department</type>
+ </attribute>
+ <attribute>
+ <name>renderShowLink</name>
+ <description>Whether to render (default: true) "show department" link.</description>
+ <required>false</required>
+ <type>java.langBoolean</type>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <description>Whether this tag is being rendered by JSF engine (default: true).</description>
+ <required>false</required>
+ <type>java.lang.Boolean</type>
+ </attribute>
+ </tag>
<tag>
<tag-name>outputCompanyEmployeeAdminMiniLinks</tag-name>
<description>This tag renders administrative "mini-links" for given employee instance.</description>
<type>java.lang.Boolean</type>
</attribute>
</tag>
+ <tag>
+ <tag-name>outputOpeningTimeAdminMiniLinks</tag-name>
+ <description>This tag renders administrative "mini-links" for given opening time instance.</description>
+ <source>resources/tags/admin/links/mini/opening_time/admin_opening_time_links.tpl</source>
+ <attribute>
+ <name>openingTime</name>
+ <description>The opening time instance that provides the data for this tag.</description>
+ <required>true</required>
+ <type>org.mxchange.jcontactsbusiness.model.opening_time.OpeningTimes</type>
+ </attribute>
+ <attribute>
+ <name>renderShowLink</name>
+ <description>Whether to render (default: true) "show opening time" link.</description>
+ <required>false</required>
+ <type>java.langBoolean</type>
+ </attribute>
+ <attribute>
+ <name>rendered</name>
+ <description>Whether this tag is being rendered by JSF engine (default: true).</description>
+ <required>false</required>
+ <type>java.lang.Boolean</type>
+ </attribute>
+ </tag>
<tag>
<tag-name>outputContactAdminMiniLinks</tag-name>
<description>This tag renders administrative "mini-links" for given contact instance.</description>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+ xmlns:p="http://primefaces.org/ui">
+
+ <ui:fragment rendered="#{empty rendered or rendered}">
+ <ul class="navbar-mini">
+ <ui:fragment rendered="#{empty renderShowLink or renderShowLink}">
+ <li class="navlink-mini">
+ <p:link outcome="admin_show_department" value="#{msg.ADMIN_LINK_SHOW_SHORT}" title="#{msg.ADMIN_LINK_SHOW_DEPARTMENT_TITLE}">
+ <f:param name="departmentId" value="#{department.departmentId}" />
+ </p:link>
+ </li>
+ </ui:fragment>
+
+ <li class="navlink-mini">
+ <p:link outcome="admin_edit_department" value="#{msg.ADMIN_LINK_EDIT_SHORT}" title="#{msg.ADMIN_LINK_EDIT_DEPARTMENT_TITLE}">
+ <f:param name="departmentId" value="#{department.departmentId}" />
+ </p:link>
+ </li>
+
+ <li class="navlink-mini">
+ <p:link outcome="admin_delete_department">
+ <h:outputText styleClass="link-danger" value="#{msg.ADMIN_LINK_DELETE_SHORT}" title="#{msg.ADMIN_LINK_DELETE_DEPARTMENT_TITLE}" />
+ <f:param name="departmentId" value="#{department.departmentId}" />
+ </p:link>
+ </li>
+ </ul>
+ </ui:fragment>
+</ui:composition>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+ xmlns:p="http://primefaces.org/ui">
+
+ <ui:fragment rendered="#{empty rendered or rendered}">
+ <ul class="navbar-mini">
+ <ui:fragment rendered="#{empty renderShowLink or renderShowLink}">
+ <li class="navlink-mini">
+ <p:link outcome="admin_show_opening_time" value="#{msg.ADMIN_LINK_SHOW_SHORT}" title="#{msg.ADMIN_LINK_SHOW_OPENING_TIME_TITLE}">
+ <f:param name="openingId" value="#{openingTime.openingId}" />
+ </p:link>
+ </li>
+ </ui:fragment>
+
+ <li class="navlink-mini">
+ <p:link outcome="admin_edit_opening_time" value="#{msg.ADMIN_LINK_EDIT_SHORT}" title="#{msg.ADMIN_LINK_EDIT_OPENING_TIME_TITLE}">
+ <f:param name="openingId" value="#{openingTime.openingId}" />
+ </p:link>
+ </li>
+
+ <li class="navlink-mini">
+ <p:link outcome="admin_delete_opening_time">
+ <h:outputText styleClass="link-danger" value="#{msg.ADMIN_LINK_DELETE_SHORT}" title="#{msg.ADMIN_LINK_DELETE_OPENING_TIME_TITLE}" />
+ <f:param name="openingId" value="#{openingTime.openingId}" />
+ </p:link>
+ </li>
+ </ul>
+ </ui:fragment>
+</ui:composition>
xmlns:p="http://primefaces.org/ui">
<p:panelGrid layout="grid" columns="3" rendered="#{empty rendered or rendered == true}">
- <widgets:outputCountrySelector id="faxCountry" styleClass="select divider-right" value="#{targetController.faxCountry}" />
+ <widgets:outputCountrySelector id="faxCountry" styleClass="select" value="#{targetController.faxCountry}" />
- <p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{targetController.faxAreaCode}">
+ <p:inputText styleClass="input" id="faxAreaCode" size="5" maxlength="10" value="#{targetController.faxAreaCode}">
<f:validator for="faxAreaCode" validatorId="PhoneNumberValidator" />
</p:inputText>
xmlns:p="http://primefaces.org/ui">
<p:panelGrid layout="grid" columns="3" rendered="#{empty rendered or rendered == true}">
- <widgets:outputCountrySelector id="landLineCountry" styleClass="select divider-right" value="#{targetController.landLineCountry}" />
+ <widgets:outputCountrySelector id="landLineCountry" styleClass="select" value="#{targetController.landLineCountry}" />
- <p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{targetController.landLineAreaCode}">
+ <p:inputText styleClass="input" id="landLineAreaCode" size="5" maxlength="10" value="#{targetController.landLineAreaCode}">
<f:validator for="landLineAreaCode" validatorId="PhoneNumberValidator" />
</p:inputText>
<p:outputLabel for="faxNumber" value="#{labelMessage}" />
<p:column>
- <widgets:outputCountrySelector id="faxCountry" styleClass="select divider-right" value="#{targetController.faxCountry}" />
- <p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{targetController.faxAreaCode}">
+ <widgets:outputCountrySelector id="faxCountry" styleClass="select" value="#{targetController.faxCountry}" />
+ <p:inputText styleClass="input" id="faxAreaCode" size="5" maxlength="10" value="#{targetController.faxAreaCode}">
<f:validator validatorId="PhoneNumberValidator" />
</p:inputText>
<p:inputText styleClass="input" id="faxNumber" size="10" maxlength="20" value="#{targetController.faxNumber}">
<p:outputLabel for="landLineNumber" value="#{labelMessage}" />
<p:column>
- <widgets:outputCountrySelector id="landLineCountry" styleClass="select divider-right" value="#{targetController.landLineCountry}" />
- <p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{targetController.landLineAreaCode}">
+ <widgets:outputCountrySelector id="landLineCountry" styleClass="select" value="#{targetController.landLineCountry}" />
+ <p:inputText styleClass="input" id="landLineAreaCode" size="5" maxlength="10" value="#{targetController.landLineAreaCode}">
<f:validator validatorId="PhoneNumberValidator" />
</p:inputText>
<p:inputText styleClass="input" id="landLineNumber" size="10" maxlength="20" value="#{targetController.landLineNumber}">
<pm:footer id="footer" fixed="true" tapToggle="false">
<ul class="navbar-horizontal">
- <li><p:link outcome="index" value="#{msg.ADMIN_LINK_FOOTER_TO_WEBPAGE}" /></li>
+ <li><p:link outcome="index" value="#{msg.ADMIN_LINK_FOOTER_TO_WEBPAGE}" title="#{msg.ADMIN_LINK_FOOTER_TO_WEBPAGE_TITLE}" /></li>
</ul>
</pm:footer>
</ui:composition>
requiredMessage="#{msg.ADMIN_BRANCH_OFFICE_COMPANY_REQUIRED}"
>
<f:converter converterId="BasicCompanyDataConverter" />
- <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.PLEASE_SELECT}" noSelectionOption="true" itemDisabled="true" />
<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
</p:selectOneMenu>
xmlns:widgets="http://mxchange.org/jsf/core/widgets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+ xmlns:p="http://primefaces.org/ui"
+ >
- <p:panelGrid id="show_contact" summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_CONTACT_DATA}" headerClass="table-header-column" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.contact}">
+ <!--
+ @TOD summary="#{msg.ADMIN_TABLE_SUMMARY_SHOW_CONTACT_DATA}"
+ -->
+ <p:panelGrid id="show_contact" styleClass="table table-full" columns="3" rendered="#{not empty beanHelper.contact}">
<f:facet name="header">
<h:outputFormat value="#{msg.ADMIN_HEADER_SHOW_CONTACT}">
<f:param value="#{beanHelper.contact.contactId}" />
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+ xmlns:p="http://primefaces.org/ui">
+
+ <!--
+ @TODO: title="#{msg.ADMIN_DEPARTMENT_LEGEND_TITLE}"
+ -->
+ <p:fieldset legend="#{msg.ADMIN_DEPARTMENT_LEGEND}">
+ <p:panelGrid layout="grid" columns="2" columnClasses="ui-grid-col-4, ui-grid-col-8" styleClass="table table-full ui-noborder">
+ <p:outputLabel for="departmentName" value="#{msg.ADMIN_ENTER_DEPARTMENT_NAME}" />
+ <p:inputText styleClass="input" id="departmentName" size="2" maxlength="10" value="#{adminDepartmentController.departmentName}" required="true" requiredMessage="#{msg.ADMIN_DEPARTMENT_NAME_REQUIRED}" />
+
+ <p:outputLabel for="departmentCompany" value="#{msg.ADMIN_ASSIGN_DEPARTMENT_COMPANY}" />
+ <p:selectOneMenu
+ id="departmentCompany"
+ value="#{adminDepartmentController.departmentCompany}"
+ filter="true"
+ filterMatchMode="contains"
+ required="true"
+ requiredMessage="#{msg.ADMIN_DEPARTMENT_COMPANY_REQUIRED}"
+ >
+ <f:converter converterId="BasicCompanyDataConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.PLEASE_SELECT}" noSelectionOption="true" itemDisabled="true" />
+ <f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
+ </p:selectOneMenu>
+
+ <p:outputLabel for="departmentBranchOffice" value="#{msg.ADMIN_ASSIGN_DEPARTMENT_BRANCH_OFFICE}" />
+ <p:selectOneMenu
+ id="departmentBranchOffice"
+ value="#{adminDepartmentController.departmentBranchOffice}"
+ filter="true"
+ filterMatchMode="contains"
+ >
+ <f:converter converterId="BranchOfficeConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="branchOffice" itemValue="#{branchOffice}" itemLabel="#{beanHelper.renderBranchOffice(branchOffice)}" />
+ </p:selectOneMenu>
+
+ <p:outputLabel for="departmentHeadquarters" value="#{msg.ADMIN_ASSIGN_DEPARTMENT_HEADQUARTERS}" />
+ <p:selectOneMenu
+ id="departmentHeadquarters"
+ value="#{adminDepartmentController.departmentHeadquarters}"
+ filter="true"
+ filterMatchMode="contains"
+ >
+ <f:converter converterId="CompanyEmployeeConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{headquartersController.allHeadquarters()}" var="headquarters" itemValue="#{headquarters}" itemLabel="#{beanHelper.renderHeadquarters(headquarters)}" />
+ </p:selectOneMenu>
+
+ <p:outputLabel for="departmentLead" value="#{msg.ADMIN_ASSIGN_DEPARTMENT_LEAD_EMPLOYEE}" />
+ <p:selectOneMenu
+ id="departmentLead"
+ value="#{adminDepartmentController.departmentLead}"
+ filter="true"
+ filterMatchMode="contains"
+ >
+ <f:converter converterId="CompanyEmployeeConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="employee" itemValue="#{employee}" itemLabel="#{beanHelper.renderEmployee(employee)}" />
+ </p:selectOneMenu>
+
+ <p:outputLabel for="departmentUserOwner" value="#{msg.ADMIN_ASSIGN_DEPARTMENT_USER_OWNER}" />
+ <p:selectOneMenu
+ id="departmentUserOwner"
+ value="#{adminDepartmentController.departmentUserOwner}"
+ filter="true"
+ filterMatchMode="contains"
+ >
+ <f:converter converterId="UserConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{userController.allUsers()}" var="departmentUserOwner" itemValue="#{departmentUserOwner}" itemLabel="#{departmentUserOwner.userContact.contactFirstName} #{departmentUserOwner.userContact.contactFamilyName} (#{departmentUserOwner.userName})" />
+ </p:selectOneMenu>
+ </p:panelGrid>
+ </p:fieldset>
+</ui:composition>
requiredMessage="#{msg.ADMIN_EMPLOYEE_COMPANY_REQUIRED}"
>
<f:converter converterId="BasicCompanyDataConverter" />
- <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.PLEASE_SELECT}" noSelectionOption="true" itemDisabled="true" />
<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
</p:selectOneMenu>
filterMatchMode="contains"
>
<f:converter converterId="BranchOfficeConverter" />
- <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
<f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="branchOffice" itemValue="#{branchOffice}" itemLabel="#{beanHelper.renderBranchOffice(branchOffice)}" />
</p:selectOneMenu>
filterMatchMode="contains"
>
<f:converter converterId="CompanyDepartmentConverter" />
- <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
- <f:selectItems value="#{companyDepartmentController.allDepartments()}" var="department" itemValue="#{department}" itemLabel="#{beanHelper.renderDepartment(department)}" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{departmentController.allDepartments()}" var="department" itemValue="#{department}" itemLabel="#{beanHelper.renderDepartment(department)}" />
</p:selectOneMenu>
<p:outputLabel for="employeeHeadquarters" value="#{msg.ADMIN_ASSIGN_EMPLOYEE_HEADQUARTERS}" />
filterMatchMode="contains"
>
<f:converter converterId="CompanyHeadquartersConverter" />
- <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" noSelectionOption="true" itemDisabled="true" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
<f:selectItems value="#{companyHeadquartersController.allHeadquarterss()}" var="headquarters" itemValue="#{headquarters}" itemLabel="#{beanHelper.renderHeadquarters(headquarters)}" />
</p:selectOneMenu>
</div>
<div class="table-right-medium">
- <p:selectOneMenu styleClass="select divider-right" id=" " value="#{adminPhoneController.faxNumber}">
+ <p:selectOneMenu styleClass="select" id=" " value="#{adminPhoneController.faxNumber}">
<f:converter converterId="FaxNumberConverter" />
<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
<f:selectItems value="#{adminPhoneController.allNonLinkedFaxNumbers()}" var="faxNumber" itemValue="#{faxNumber}" itemLabel="#{faxNumber.phoneCountry.countryExternalDialPrefix} (#{faxNumber.phoneAreaCode}) #{faxNumber.phoneNumber}" />
<widgets:outputFaxInputTableRow targetController="#{adminContactPhoneController}" labelMessage="#{msg.ADMIN_PERSONAL_DATA_FAX_NUMBER}" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" id="submit_add_link_contact_fax" type="submit" action="#{adminContactPhoneController.doLinkMainFaxNumber()}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_FAX_NUMBER}" />
</div>
</div>
<div class="table-right-medium">
- <p:selectOneMenu styleClass="select divider-right" id="landLineNumber" value="#{adminPhoneController.landLineNumber}">
+ <p:selectOneMenu styleClass="select" id="landLineNumber" value="#{adminPhoneController.landLineNumber}">
<f:converter converterId="LandLineNumberConverter" />
<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
<f:selectItems value="#{adminPhoneController.allNonLinkedLandLineNumbers()}" var="landlineNumber" itemValue="#{landlineNumber}" itemLabel="#{landlineNumber.phoneCountry.countryExternalDialPrefix} (#{landlineNumber.phoneAreaCode}) #{landlineNumber.phoneNumber}" />
<widgets:outputLandLineInputTableRow targetController="#{adminPhoneController}" labelMessage="#{msg.ADMIN_PERSONAL_DATA_LAND_LINE_NUMBER}" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" id="submit_add_link_contact_landline" type="submit" action="#{adminContactPhoneController.doLinkAddLandLineNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_LAND_LINE_NUMBER}">
<f:param name="contactId" value="#{param.contactId}" />
</div>
<div class="table-right-medium">
- <p:selectOneMenu styleClass="select divider-right" id="mobileNumber" value="#{adminPhoneController.mobileNumber}">
+ <p:selectOneMenu styleClass="select" id="mobileNumber" value="#{adminPhoneController.mobileNumber}">
<f:converter converterId="MobileNumberConverter" />
<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
<f:selectItems value="#{adminPhoneController.allNonLinkedMobileNumbers()}" var="mobileNumber" itemValue="#{mobileNumber}" itemLabel="#{mobileNumber.mobileProvider.providerCountry.countryExternalDialPrefix} (#{mobileNumber.mobileProvider.providerDialPrefix}) #{mobileNumber.phoneNumber}" />
<h:outputText value="#{msg.ADMIN_OR_ENTER_CONTACT_NEW_MOBILE_DATA}" />
</div>
- <widgets:inputMobileNumberPanelGrid targetController="#{adminPhoneController}" labelMessage="#{msg.ADMIN_PERSONAL_DATA_MOBILE_NUMBER}" />
+ <p:outputLabel for="mobileNumber" value="#{msg.ADMIN_PERSONAL_DATA_MOBILE_NUMBER}" />
+ <widgets:inputMobileNumberPanelGrid targetController="#{adminPhoneController}" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" id="submit_add_link_contact_mobile" type="submit" action="#{adminContactPhoneController.doLinkAddMobileNumber(beanHelper.contact)}" value="#{msg.BUTTON_ADMIN_LINK_ADD_CONTACT_MOBILE_NUMBER}">
<f:param name="contactId" value="#{param.contactId}" />
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+ xmlns:p="http://primefaces.org/ui">
+
+ <!--
+ @TODO: title="#{msg.ADMIN_OPENING_TIME_LEGEND_TITLE}"
+ -->
+ <p:fieldset legend="#{msg.ADMIN_OPENING_TIME_LEGEND}">
+ <p:panelGrid layout="grid" columns="4" columnClasses="ui-grid-col-4, ui-grid-col-8" styleClass="table table-full ui-noborder">
+ <p:outputLabel for="openingStartDay" value="#{msg.ADMIN_START_WEEK_DAY}" />
+ <p:outputLabel for="openingEndDay" value="#{msg.ADMIN_END_WEEK_DAY}" />
+ <p:outputLabel for="openingStartTime" value="#{msg.ADMIN_START_TIME}" />
+ <p:outputLabel for="openingEndTime" value="#{msg.ADMIN_END_TIME}" />
+
+ <p:selectOneMenu
+ id="openingStartDay"
+ value="#{adminOpeningTimeController.openingStartDay}"
+ filter="true"
+ filterMatchMode="contains"
+ required="true"
+ requiredMessage="#{msg.ADMIN_START_WEEK_DAY_REQUIRED}"
+ >
+ <f:converter converterId="DayOfTheWeekConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.PLEASE_SELECT}" noSelectionOption="true" itemDisabled="true" />
+ <f:selectItems value="#{dataController.dayOfTheWeek}" var="dayOfWeek" itemValue="#{dayOfWeek}" itemLabel="#{dayOfWeek.toString()}" />
+ </p:selectOneMenu>
+
+ <p:selectOneMenu
+ id="openingEndDay"
+ value="#{adminOpeningTimeController.openingEndDay}"
+ filter="true"
+ filterMatchMode="contains"
+ required="true"
+ requiredMessage="#{msg.ADMIN_END_WEEK_DAY_REQUIRED}"
+ >
+ <f:converter converterId="DayOfTheWeekConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.PLEASE_SELECT}" noSelectionOption="true" itemDisabled="true" />
+ <f:selectItems value="#{dataController.dayOfTheWeek}" var="dayOfWeek" itemValue="#{dayOfWeek}" itemLabel="#{dayOfWeek.toString()}" />
+ </p:selectOneMenu>
+
+ <p:calendar
+ id="openingStartTime"
+ value="#{adminOpeningTimeController.openingStartTime}"
+ pattern="HH:mm"
+ timeOnly="true"
+ required="true"
+ stepMinute="5"
+ requiredMessage="#{msg.ADMIN_START_TIME_REQUIRED}"
+ />
+
+ <p:calendar
+ id="openingEndTime"
+ value="#{adminOpeningTimeController.openingEndTime}"
+ pattern="HH:mm"
+ timeOnly="true"
+ required="true"
+ stepMinute="5"
+ requiredMessage="#{msg.ADMIN_END_TIME_REQUIRED}"
+ />
+ </p:panelGrid>
+ </p:fieldset>
+</ui:composition>
</div>
<div class="table-right-medium">
- <p:calendar id="birthday" value="#{contactController.birthday}" required="true" requiredMessage="#{msg.GUEST_CONTACT_DATA_BIRTHDAY_REQUIRED}" />
+ <p:calendar
+ id="birthday"
+ value="#{contactController.birthday}"
+ required="true"
+ requiredMessage="#{msg.GUEST_CONTACT_DATA_BIRTHDAY_REQUIRED}"
+ />
</div>
</h:panelGroup>
</div>
<div class="table-right-medium">
- <widgets:outputCountrySelector styleClass="select divider-right" id="landLineCountry" value="#{contactController.landLineCountry}" />
+ <widgets:outputCountrySelector styleClass="select" id="landLineCountry" value="#{contactController.landLineCountry}" />
- <p:inputText styleClass="input divider-right" id="landLineAreaCode" size="5" maxlength="10" value="#{contactController.landLineAreaCode}">
+ <p:inputText styleClass="input" id="landLineAreaCode" size="5" maxlength="10" value="#{contactController.landLineAreaCode}">
<f:validator validatorId="PhoneNumberValidator" />
</p:inputText>
</div>
<div class="table-right-medium">
- <widgets:outputCountrySelector styleClass="select divider-right" id="faxCountry" value="#{contactController.faxCountry}" />
+ <widgets:outputCountrySelector styleClass="select" id="faxCountry" value="#{contactController.faxCountry}" />
- <p:inputText styleClass="input divider-right" id="faxAreaCode" size="5" maxlength="10" value="#{contactController.faxAreaCode}">
+ <p:inputText styleClass="input" id="faxAreaCode" size="5" maxlength="10" value="#{contactController.faxAreaCode}">
<f:validator for="faxAreaCode" validatorId="PhoneNumberValidator" />
</p:inputText>
<p:message for="faxNumber" />
</h:panelGroup>
- <widgets:inputMobileNumberPanelGrid targetController="#{contactController}" labelMessage="#{msg.PERSONAL_DATA_MOBILE_NUMBER}" />
+ <p:outputLabel for="mobileNumber" value="#{msg.PERSONAL_DATA_MOBILE_NUMBER}" />
+ <widgets:inputMobileNumberPanelGrid targetController="#{contactController}" />
</fieldset>
</h:panelGroup>
</fieldset>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" action="#{userLoginController.doUserLogin()}" value="#{msg.BUTTON_USER_LOGIN}" />
</div>
</h:panelGroup>
<ui:include src="/WEB-INF/templates/guest/guest_privacy_terms.tpl" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_continue_register_page1" value="#{msg.BUTTON_CONTINUE_REGISTER_PAGE2}" action="#{userRegistrationController.doRegisterMultiPage1()}" />
</div>
</h:panelGroup>
<ui:include src="/WEB-INF/templates/contact/form_contact_data.tpl" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" value="#{msg.BUTTON_FINISH_REGISTRATION}" action="#{userRegistrationController.doFinishRegistration()}" />
</div>
</h:panelGroup>
<ui:include src="/WEB-INF/templates/guest/guest_privacy_terms.tpl" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_finish_registration_single" value="#{msg.BUTTON_FINISH_REGISTRATION}" action="#{userRegistrationController.doFinishRegistration()}" />
</div>
</h:panelGroup>
rowsPerPageTemplate="5,10,20,50,100"
sortMode="multiple"
summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_BASIC_COMPANY_DATA}"
- emptyMessage="#{msg.ADMIN_BASIC_COMPANY_DATA_LIST_EMPTY}"
+ emptyMessage="#{msg.ADMIN__EMPTY_LISTBASIC_COMPANY_DATA}"
widgetVar="basicDataList"
>
<f:facet name="header">
- <p:row>
- <p:column>
- <h:outputText value="#{msg.ADMIN_LIST_BASIC_COMPANY_DATA_HEADER}" />
- </p:column>
+ <p:panelGrid columns="2" columnClasses="ui-grid-col-10, ui-grid-col-2" layout="grid" styleClass="ui-noborder ui-transparent-widget">
+ <h:outputText value="#{msg.ADMIN_LIST_BASIC_COMPANY_DATA_HEADER}" />
- <p:column>
+ <h:panelGroup>
<p:commandButton id="toggler" type="button" value="#{msg.SELECT_SHOWN_COLUMNS}" styleClass="column-selector" />
<p:columnToggler datasource="table-list-basic-company-data" trigger="toggler" />
- </p:column>
- </p:row>
+ </h:panelGroup>
+ </p:panelGrid>
</f:facet>
<p:column headerText="#{msg.ADMIN_BASIC_COMPANY_DATA_ID}" sortBy="#{basicData.basicDataId}" filterable="false">
</p:selectCheckboxMenu>
</f:facet>
- <p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE}" value="#{basicData.companyContactEmployee.employeeId}" rendered="#{not empty basicData.companyContactEmployee}">
+ <p:link outcome="admin_show_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_CONTACT_PERSON_TITLE}" value="#{basicData.companyContactEmployee.employeeId}" rendered="#{not empty basicData.companyContactEmployee}">
<f:param name="employeeId" value="#{basicData.companyContactEmployee.employeeId}" />
</p:link>
</p:selectCheckboxMenu>
</f:facet>
- <p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE}" value="#{basicData.companyFounder.employeeId}" rendered="#{not empty basicData.companyFounder}">
+ <p:link outcome="admin_show_employee" title="#{msg.ADMIN_LINK_SHOW_BASIC_COMPANY_DATA_COMPANY_FOUNDER_TITLE}" value="#{basicData.companyFounder.employeeId}" rendered="#{not empty basicData.companyFounder}">
<f:param name="employeeId" value="#{basicData.companyFounder.employeeId}" />
</p:link>
</p:dataTable>
</h:form>
- <h:form id="form-admin-add-basic-company-data">
+ <h:form>
<p:panelGrid columns="1" styleClass="table table-full" layout="grid">
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_ADD_BASIC_COMPANY_DATA_TITLE}" />
<f:facet name="footer">
<p:panelGrid columns="2" layout="grid">
<p:commandButton
- styleClass="reset divider-right"
+ styleClass="reset"
type="reset"
value="#{msg.BUTTON_RESET_FORM}"
/>
rowsPerPageTemplate="5,10,20,50,100"
sortMode="multiple"
summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_BRANCH_OFFICES}"
- emptyMessage="#{msg.ADMIN_BRANCH_OFFICES_LIST_EMPTY}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_BRANCH_OFFICES}"
widgetVar="branchOfficeList"
>
<f:facet name="header">
- <p:row>
- <p:column>
- <h:outputText value="#{msg.ADMIN_LIST_BRANCH_OFFICES_HEADER}" />
- </p:column>
+ <p:panelGrid columns="2" columnClasses="ui-grid-col-10, ui-grid-col-2" layout="grid" styleClass="ui-noborder ui-transparent-widget">
+ <h:outputText value="#{msg.ADMIN_LIST_BRANCH_OFFICES_HEADER}" />
- <p:column>
+ <h:panelGroup>
<p:commandButton id="toggler" type="button" value="#{msg.SELECT_SHOWN_COLUMNS}" styleClass="column-selector" />
<p:columnToggler datasource="table-list-branch-offices" trigger="toggler" />
- </p:column>
- </p:row>
+ </h:panelGroup>
+ </p:panelGrid>
</f:facet>
<p:column headerText="#{msg.ADMIN_ID_NUMBER}" sortBy="#{branchOffice.branchId}" filterable="false">
<p:column headerText="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" sortBy="#{branchOffice.branchCompany.companyName}" filterBy="#{branchOffice.branchCompany}" filterMatchMode="in">
<f:facet name="filter">
- <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COMPANIES}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_COMPANIES}"
+ onchange="PF('branchOfficeList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}"
+ >
<f:converter converterId="BasicCompanyDataConverter" />
<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
</p:selectCheckboxMenu>
<h:outputText value="#{branchOffice.branchZipCode} #{branchOffice.branchCity}" title="#{branchOffice.branchStreet} #{branchOffice.branchHouseNumber} (#{msg.DATA_STORE} #{branchOffice.branchStore}, #{msg.DATA_SUITE_NUMBER} #{branchOffice.branchSuiteNumber})" />
</p:column>
- <p:column headerText="#{msg.ADMIN_CONTACT_PERSON}" sortBy="#{branchOffice.branchContactEmployee.employeePersonalData.contactFamilyName}" filterBy="#{branchOffice.branchContactEmployee}" filterMatchMode="in">
+ <p:column headerText="#{msg.ADMIN_CONTACT_PERSON}" sortBy="#{branchOffice.branchContactEmployee.employeePersonalData}" filterBy="#{branchOffice.branchContactEmployee}" filterMatchMode="in">
<f:facet name="filter">
- <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_EMPLOYEES}" onchange="PF('branchOfficeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_EMPLOYEES_TITLE}">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_EMPLOYEES}"
+ onchange="PF('branchOfficeList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_EMPLOYEES_TITLE}"
+ >
<f:converter converterId="CompanyEmployeeConverter" />
<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
- <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="employee" itemValue="#{employee}" itemLabel="#{employee.employeePersonalData.contactFirstName} #{employee.employeePersonalData.contactFamilyName}" />
+ <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="employee" itemValue="#{employee}" itemLabel="#{beanHelper.renderEmployee(employee)}" />
</p:selectCheckboxMenu>
</f:facet>
- <p:link outcome="admin_show_business_employee" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICE_CONTACT_PERSON_TITLE}" value="#{branchOffice.branchContactEmployee.employeeId}" rendered="#{not empty branchOffice.branchContactEmployee}">
+ <p:link outcome="admin_show_employee" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICE_CONTACT_PERSON_TITLE}" value="#{branchOffice.branchContactEmployee.employeeId}" rendered="#{not empty branchOffice.branchContactEmployee}">
<f:param name="employeeId" value="#{branchOffice.branchContactEmployee.employeeId}" />
</p:link>
</p:dataTable>
</h:form>
- <h:form id="form-admin-add-branch-office">
+ <h:form>
<p:panelGrid columns="1" styleClass="table table-full" layout="grid">
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_ADD_BRANCH_OFFICE_TITLE}" />
<f:facet name="footer">
<p:panelGrid columns="2" layout="grid">
<p:commandButton
- styleClass="reset divider-right"
+ styleClass="reset"
type="reset"
value="#{msg.BUTTON_RESET_FORM}"
/>
<ui:include src="/WEB-INF/templates/admin/contact/admin_show_contact_data.tpl" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="button-danger" type="submit" id="submit_delete_contact" value="#{msg.BUTTON_ADMIN_DELETE_CONTACT}" action="#{adminContactController.deleteContactData()}" />
</div>
</h:panelGroup>
<widgets:outputAdminContactDataFormFields />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_edit_contact" value="#{msg.BUTTON_ADMIN_EDIT_CONTACT}" action="#{adminContactController.editContactData()}" />
</div>
</h:panelGroup>
<ui:define name="content">
<h:form id="form_export_contacts" rendered="#{not contactController.allContacts().isEmpty()}">
- <p:dataTable id="table_export_contacts" var="contact" value="#{contactController.allContacts()}" tableStyleClass="table table-full" paginator="true" rows="10" emptyMessage="#{msg.ADMIN_CONTACT_LIST_EMPTY}" summary="#{msg.TABLE_SUMMARY_ADMIN_EXPORT_CONTACT}">
+ <p:dataTable
+ id="table_export_contacts"
+ var="contact"
+ value="#{contactController.allContacts()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ rows="10"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_CONTACT}"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_EXPORT_CONTACT}"
+ >
<p:column exportable="false">
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_EXPORT_CONTACT_ID}" />
paginator="true"
rows="10"
summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_CONTACT}"
- emptyMessage="#{msg.ADMIN_CONTACT_LIST_EMPTY}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_CONTACT}"
widgetVar="contactList"
>
<p:column>
</p:dataTable>
</h:form>
- <h:form id="form-admin-add-contact">
+ <h:form>
<p:panelGrid layout="grid" columns="1" styleClass="table table-full">
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_ADD_CONTACT_TITLE}" />
<f:facet name="footer">
<p:commandButton
- styleClass="reset divider-right"
+ styleClass="reset"
type="reset"
value="#{msg.BUTTON_RESET_FORM}"
/>
paginator="true"
rows="10"
summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_COUNTRIES}"
- emptyMessage="#{msg.ADMIN_COUNTRY_LIST_EMPTY}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_COUNTRY}"
widgetVar="countryList"
>
<p:column>
<div class="table-footer">
<p:commandButton
- styleClass="reset divider-right"
+ styleClass="reset"
type="reset"
value="#{msg.BUTTON_RESET_FORM}"
/>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+ xmlns:links="http://mxchange.org/jsf/core/links"
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:p="http://primefaces.org/ui">
+
+ <ui:define name="document_admin_title">
+ <h:outputText value="#{msg.PAGE_TITLE_ADMIN_LIST_DEPARTMENTS}" />
+ </ui:define>
+
+ <ui:define name="content_header">
+ <h:outputText value="#{msg.CONTENT_TITLE_ADMIN_LIST_DEPARTMENTS}" />
+ </ui:define>
+
+ <ui:define name="content">
+ <h:form id="form-list-department">
+ <p:dataTable
+ id="table-list-department"
+ var="department"
+ value="#{departmentController.allDepartments()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
+ filteredValue="#{departmentController.filteredDepartments}"
+ rows="10"
+ reflow="true"
+ resizableColumns="true"
+ rowsPerPageTemplate="5,10,20,50,100"
+ sortMode="multiple"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_DEPARTMENTS}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_DEPARTMENTS}"
+ widgetVar="departmentList"
+ >
+
+ <f:facet name="header">
+ <p:panelGrid columns="2" columnClasses="ui-grid-col-10, ui-grid-col-2" layout="grid" styleClass="ui-noborder ui-transparent-widget">
+ <h:outputText value="#{msg.ADMIN_LIST_DEPARTMENTS_HEADER}" />
+
+ <h:panelGroup>
+ <p:commandButton id="toggler" type="button" value="#{msg.SELECT_SHOWN_COLUMNS}" styleClass="column-selector" />
+ <p:columnToggler datasource="table-list-department" trigger="toggler" />
+ </h:panelGroup>
+ </p:panelGrid>
+ </f:facet>
+
+ <p:column headerText="#{msg.ADMIN_ID_NUMBER}" sortBy="#{department.departmentId}" filterable="false">
+ <p:link outcome="admin_show_department" title="#{msg.ADMIN_LINK_SHOW_DEPARTMENT_TITLE}" value="#{department.departmentId}">
+ <f:param name="departmentId" value="#{department.departmentId}" />
+ </p:link>
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_DEPARTMENT_NAME}" sortBy="#{department.departmentName}" filterBy="#{department.departmentName}" filterMatchMode="contains">
+ <h:outputText value="#{department.departmentName}" />
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" sortBy="#{department.departmentCompany.companyName}" filterBy="#{department.departmentCompany}" filterMatchMode="in">
+ <f:facet name="filter">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_COMPANIES}"
+ onchange="PF('departmentList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}"
+ >
+ <f:converter converterId="BasicCompanyDataConverter" />
+ <f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
+ </p:selectCheckboxMenu>
+ </f:facet>
+
+ <h:outputLink value="#{department.departmentCompany.companyWebsiteUrl}" target="_blank" title="#{msg.LINK_COMPANY_WEBSITE_URL_TITLE}" rel="external" rendered="#{not empty department.departmentCompany.companyWebsiteUrl}">
+ <h:outputText value="#{department.departmentCompany.companyName}" />
+ </h:outputLink>
+
+ <h:outputText value="#{department.departmentCompany.companyName}" title="#{msg.NO_WEBSITE_URL_ENTERED}" rendered="#{empty department.departmentCompany.companyWebsiteUrl}" />
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_ASSIGNED_BRANCH_OFFICE}" sortBy="#{department.departmentBranchOffice}" filterBy="#{department.departmentBranchOffice}" filterMatchMode="in">
+ <f:facet name="filter">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_BRANCH_OFFICES}"
+ onchange="PF('employeeList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_EMPLOYEES_TITLE}"
+ >
+ <f:converter converterId="BranchOfficeConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="branchOffice" itemValue="#{branchOffice}" itemLabel="#{beanHelper.renderBranchOffice(branchOffice)}" />
+ </p:selectCheckboxMenu>
+ </f:facet>
+
+ <p:link outcome="admin_show_branch_office" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICE_TITLE}" value="#{department.departmentBranchOffice.branchId}" rendered="#{not empty department.departmentBranchOffice}">
+ <f:param name="branchId" value="#{department.departmentBranchOffice.branchId}" />
+ </p:link>
+
+ <p:link outcome="admin_assign_department_branch_office" title="#{msg.ADMIN_LINK_ASSIGN_BRANCH_OFFICE_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty department.departmentBranchOffice}">
+ <f:param name="departmentId" value="#{department.departmentId}" />
+ </p:link>
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_DEPARTMENT_LEAD_EMPLOYEE}" sortBy="#{department.departmentLead.employeePersonalData.contactFamilyName}" filterBy="#{department.departmentLead}" filterMatchMode="in">
+ <f:facet name="filter">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_EMPLOYEES}"
+ onchange="PF('departmentList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_EMPLOYEES_TITLE}"
+ >
+ <f:converter converterId="CompanyEmployeeConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{companyEmployeeController.allCompanyEmployees()}" var="employee" itemValue="#{employee}" itemLabel="#{beanHelper.renderEmployee(employee)}" />
+ </p:selectCheckboxMenu>
+ </f:facet>
+
+ <p:link outcome="admin_show_employee" title="#{msg.ADMIN_LINK_SHOW_DEPARTMENT_LEAD_EMPLOYEE_TITLE}" value="#{department.departmentLead.employeeId}" rendered="#{not empty department.departmentLead}">
+ <f:param name="employeeId" value="#{department.departmentLead.employeeId}" />
+ </p:link>
+
+ <p:link outcome="admin_assign_department_employee" title="#{msg.ADMIN_LINK_ASSIGN_DEPARTMENTS_LEAD_EMPLOYEE_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty department.departmentLead}">
+ <f:param name="departmentId" value="#{department.departmentId}" />
+ </p:link>
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_ASSIGNED_USER}" sortBy="#{department.departmentUserOwner.userName}" filterBy="#{department.departmentUserOwner}" filterMatchMode="in">
+ <f:facet name="filter">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_USERS}"
+ onchange="PF('departmentList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_USERS_TITLE}"
+ >
+ <f:converter converterId="UserConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{userController.allUsers()}" var="user" itemValue="#{user}" itemLabel="#{user.userName}" />
+ </p:selectCheckboxMenu>
+ </f:facet>
+
+ <p:link outcome="admin_show_user" title="#{msg.ADMIN_LINK_SHOW_DEPARTMENT_OWNER_USER_TITLE}" value="#{department.departmentUserOwner.userId}" rendered="#{not empty department.departmentUserOwner}">
+ <f:param name="userId" value="#{department.departmentUserOwner.userId}" />
+ </p:link>
+
+ <p:link outcome="admin_assign_department_user" title="#{msg.ADMIN_LINK_ASSIGN_DEPARTMENTS_OWNER_USER_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty department.departmentUserOwner}">
+ <f:param name="departmentId" value="#{department.departmentId}" />
+ </p:link>
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_LIST_ENTRY_CREATED}" sortBy="#{department.departmentCreated}" filterable="false">
+ <h:outputText id="departmentCreated" value="#{department.departmentCreated.time}">
+ <f:convertDateTime for="departmentCreated" type="both" timeStyle="short" dateStyle="short" />
+ </h:outputText>
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_ACTION_LINKS}" sortable="false" filterable="false">
+ <links:outputDepartmentAdminMiniLinks department="#{department}" />
+ </p:column>
+ </p:dataTable>
+ </h:form>
+
+ <h:form>
+ <p:panelGrid columns="1" styleClass="table table-full" layout="grid">
+ <f:facet name="header">
+ <h:outputText value="#{msg.ADMIN_ADD_DEPARTMENT_TITLE}" />
+ </f:facet>
+
+ <h:panelGroup styleClass="para" layout="block">
+ <h:outputText value="#{msg.ADMIN_ADD_DEPARTMENT_MINIMUM_DATA}" />
+ </h:panelGroup>
+
+ <ui:include src="/WEB-INF/templates/admin/department/admin_form_department_data.tpl" />
+
+ <f:facet name="footer">
+ <p:panelGrid columns="2" layout="grid">
+ <p:commandButton
+ styleClass="reset"
+ type="reset"
+ value="#{msg.BUTTON_RESET_FORM}"
+ />
+
+ <p:commandButton
+ styleClass="submit"
+ type="submit"
+ value="#{msg.BUTTON_ADMIN_ADD_DEPARTMENT_DATA}"
+ action="#{adminDepartmentController.addDepartment()}"
+ update=":master:form-list-department:table-list-department"
+ />
+ </p:panelGrid>
+ </f:facet>
+ </p:panelGrid>
+ </h:form>
+ </ui:define>
+</ui:composition>
rowsPerPageTemplate="5,10,20,50,100"
sortMode="multiple"
summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_EMPLOYEES}"
- emptyMessage="#{msg.ADMIN_EMPLOYEES_LIST_EMPTY}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_EMPLOYEES}"
widgetVar="employeeList"
>
<f:facet name="header">
- <p:row>
- <p:column>
- <h:outputText value="#{msg.ADMIN_LIST_EMPLOYEES_HEADER}" />
- </p:column>
- <p:column>
+ <p:panelGrid columns="2" columnClasses="ui-grid-col-10, ui-grid-col-2" layout="grid" styleClass="ui-noborder ui-transparent-widget">
+ <h:outputText value="#{msg.ADMIN_LIST_EMPLOYEES_HEADER}" />
+
+ <h:panelGroup>
<p:commandButton id="toggler" type="button" value="#{msg.SELECT_SHOWN_COLUMNS}" styleClass="column-selector" />
<p:columnToggler datasource="table-list-company-employees" trigger="toggler" />
- </p:column>
- </p:row>
+ </h:panelGroup>
+ </p:panelGrid>
</f:facet>
<p:column headerText="#{msg.ADMIN_ID_NUMBER}" sortBy="#{employee.employeeId}" filterable="false">
<p:column headerText="#{msg.ADMIN_ASSIGNED_BRANCH_OFFICE}" sortBy="#{employee.employeeBranchOffice}" filterBy="#{employee.employeeBranchOffice}" filterMatchMode="in">
<f:facet name="filter">
- <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_BRANCH_OFFICES}" onchange="PF('employeeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_EMPLOYEES_TITLE}">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_BRANCH_OFFICES}"
+ onchange="PF('employeeList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_EMPLOYEES_TITLE}"
+ >
<f:converter converterId="BranchOfficeConverter" />
<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
<f:selectItems value="#{branchOfficeController.allBranchOffices()}" var="branchOffice" itemValue="#{branchOffice}" itemLabel="#{beanHelper.renderBranchOffice(branchOffice)}" />
</f:facet>
<p:link outcome="admin_show_branch_office" title="#{msg.ADMIN_LINK_SHOW_BRANCH_OFFICE_TITLE}" value="#{employee.employeeBranchOffice.branchId}" rendered="#{not empty employee.employeeBranchOffice}">
- <f:param name="userId" value="#{employee.employeeBranchOffice.branchId}" />
+ <f:param name="branchId" value="#{employee.employeeBranchOffice.branchId}" />
</p:link>
<p:link outcome="admin_assign_branch_office" title="#{msg.ADMIN_LINK_ASSIGN_BRANCH_OFFICE_TITLE}" value="#{msg.ADMIN_LINK_ASSIGN}" rendered="#{empty employee.employeeBranchOffice}">
<p:column headerText="#{msg.ADMIN_ASSIGNED_USER}" sortBy="#{employee.employeeUserOwner.userName}" filterBy="#{employee.employeeUserOwner}" filterMatchMode="in">
<f:facet name="filter">
- <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_USERS}" onchange="PF('employeeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_USERS_TITLE}">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_USERS}"
+ onchange="PF('employeeList').filter()"
+ updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_USERS_TITLE}"
+ >
<f:converter converterId="UserConverter" />
<f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
<f:selectItems value="#{userController.allUsers()}" var="user" itemValue="#{user}" itemLabel="#{user.userName}" />
<p:column headerText="#{msg.ADMIN_BASIC_COMPANY_DATA_COMPANY_NAME}" sortBy="#{employee.employeeCompany.companyName}" filterBy="#{employee.employeeCompany}" filterMatchMode="in">
<f:facet name="filter">
- <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COMPANIES}" onchange="PF('employeeTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_COMPANIES}"
+ onchange="PF('employeeList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_COMPANIES_TITLE}"
+ >
<f:converter converterId="BasicCompanyDataConverter" />
<f:selectItems value="#{basicCompanyDataController.allCompanyBasicData()}" var="basicData" itemValue="#{basicData}" itemLabel="#{basicData.companyName}" />
</p:selectCheckboxMenu>
<f:facet name="footer">
<p:panelGrid columns="2" layout="grid">
<p:commandButton
- styleClass="reset divider-right"
+ styleClass="reset"
type="reset"
value="#{msg.BUTTON_RESET_FORM}"
/>
<widgets:outputAdminFaxDataFormFields faxNumber="#{beanHelper.faxNumber}" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_edit_fax" value="#{msg.BUTTON_ADMIN_EDIT_FAX_NUMBER}" action="#{adminPhoneController.doChangeFaxNumber()}" />
</div>
</h:panelGroup>
</ui:define>
<ui:define name="content">
- <p:dataTable id="table_list_fax" var="faxNumber" value="#{phoneController.allFaxNumbers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_FAXS}" emptyMessage="#{msg.ADMIN_FAX_NUMBER_LIST_EMPTY}">
+ <p:dataTable
+ id="table_list_fax"
+ var="faxNumber"
+ value="#{phoneController.allFaxNumbers()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ rows="10"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_FAXS}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_FAX_NUMBER}"
+ >
<p:column>
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_ID_NUMBER}" />
<widgets:outputAdminLandLineDataFormFields landLineNumber="#{beanHelper.landLineNumber}" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_edit_landline" value="#{msg.BUTTON_ADMIN_EDIT_LAND_LINE_NUMBER}" action="#{adminPhoneController.doChangeLandLineNumber()}" />
</div>
</h:panelGroup>
</ui:define>
<ui:define name="content">
- <p:dataTable id="table_list_landline" var="landLineNumber" value="#{phoneController.allLandLineNumbers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_LAND_LINES}" emptyMessage="#{msg.ADMIN_LANDLINE_NUMBER_LIST_EMPTY}">
+ <p:dataTable
+ id="table_list_landline"
+ var="landLineNumber"
+ value="#{phoneController.allLandLineNumbers()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ rows="10"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_LAND_LINES}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_LANDLINE_NUMBER}"
+ >
<p:column>
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_ID_NUMBER}" />
</ui:define>
<ui:define name="content">
- <p:dataTable id="table_list_mobiles" var="mobile" value="#{phoneController.allMobileNumbers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_MOBILE_NUMBERS}" emptyMessage="#{msg.ADMIN_CONTACT_MOBILE_LIST_EMPTY}">
+ <p:dataTable
+ id="table_list_mobiles"
+ var="mobile"
+ value="#{phoneController.allMobileNumbers()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ rows="10"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_MOBILE_NUMBERS}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_CONTACT_MOBILE}"
+ >
<p:column>
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_SHOW_MOBILE_ID}" />
<widgets:outputAdminMobileDataFormFields mobileNumber="#{beanHelper.mobileNumber}" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_edit_mobile" value="#{msg.BUTTON_ADMIN_EDIT_MOBILE_NUMBER}" action="#{adminPhoneController.doUpdateMobileNumber()}" />
</div>
</h:panelGroup>
</ui:define>
<ui:define name="content">
- <p:dataTable id="table-list-mobile-provider" var="mobileNumber" value="#{phoneController.allMobileNumbers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_MOBILES}" emptyMessage="#{msg.ADMIN_MOBILE_NUMBER_LIST_EMPTY}">
+ <p:dataTable
+ id="table-list-mobile-provider"
+ var="mobileNumber"
+ value="#{phoneController.allMobileNumbers()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ rows="10"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_MOBILES}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_MOBILE_NUMBER}"
+ >
<p:column>
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_ID_NUMBER}" />
tableStyleClass="table table-full"
paginator="true"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
- widgetVar="mobileProviderTable"
+ widgetVar="mobileProviderList"
filteredValue="#{mobileProviderController.filteredMobileProviders}"
rows="10"
reflow="true"
rowsPerPageTemplate="5,10,20,50,100"
sortMode="multiple"
summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_MOBILE_PROVIDERS}"
- emptyMessage="#{msg.ADMIN_MOBILE_PROVIDER_LIST_EMPTY}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_MOBILE_PROVIDER}"
widgetVar="mobileProviderList"
>
<p:column headerText="#{msg.ADMIN_LIST_MOBILE_PROVIDER_COUNTRY}" sortBy="#{mobileProvider.providerCountry.countryPhoneCode}" filterBy="#{mobileProvider.providerCountry}" filterMatchMode="in">
<f:facet name="filter">
- <p:selectCheckboxMenu filter="true" filterMatchMode="contains" label="#{msg.LABEL_COUNTRIES}" onchange="PF('mobileProviderTable').filter()" updateLabel="true" title="#{msg.FILTER_BY_MULTIPLE_COUNTRY_TITLE}">
+ <p:selectCheckboxMenu
+ filter="true"
+ filterMatchMode="contains"
+ label="#{msg.LABEL_COUNTRIES}"
+ onchange="PF('mobileProviderList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_COUNTRY_TITLE}"
+ >
<f:converter converterId="CountryConverter" />
<f:selectItems value="#{countryController.allCountries()}" var="country" itemValue="#{country}" itemLabel="#{msg[country.countryI18nKey]}" />
</p:selectCheckboxMenu>
</p:dataTable>
</h:form>
- <h:form id="form_add_mobile_provider">
+ <h:form>
<h:panelGroup styleClass="table table-full" layout="block">
<div class="table-header">
<h:outputText value="#{msg.ADMIN_ADD_MOBILE_PROVIDER_TITLE}" />
<div class="table-footer">
<p:commandButton
- styleClass="reset divider-right"
+ styleClass="reset"
type="reset"
value="#{msg.BUTTON_RESET_FORM}"
/>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" ?>
+<ui:composition template="/WEB-INF/templates/admin/admin_base.tpl"
+ xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:widgets="http://mxchange.org/jsf/core/widgets"
+ xmlns:links="http://mxchange.org/jsf/core/links"
+ xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
+ xmlns:h="http://xmlns.jcp.org/jsf/html"
+ xmlns:f="http://xmlns.jcp.org/jsf/core"
+ xmlns:p="http://primefaces.org/ui">
+
+ <ui:define name="document_admin_title">
+ <h:outputText value="#{msg.PAGE_TITLE_ADMIN_LIST_OPENING_TIMES}" />
+ </ui:define>
+
+ <ui:define name="content_header">
+ <h:outputText value="#{msg.CONTENT_TITLE_ADMIN_LIST_OPENING_TIMES}" />
+ </ui:define>
+
+ <ui:define name="content">
+ <h:form id="form-list-opening-time">
+ <p:dataTable
+ id="table-list-opening-time"
+ var="openingTime"
+ value="#{openingTimeController.allOpeningTimes()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
+ filteredValue="#{openingTimeController.filteredOpeningTimes}"
+ rows="10"
+ reflow="true"
+ resizableColumns="true"
+ rowsPerPageTemplate="5,10,20,50,100"
+ sortMode="multiple"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_OPENING_TIMES}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_OPENING_TIMES}"
+ widgetVar="openingTimeList"
+ >
+
+ <f:facet name="header">
+ <p:panelGrid columns="2" columnClasses="ui-grid-col-10, ui-grid-col-2" layout="grid" styleClass="ui-noborder ui-transparent-widget">
+ <h:outputText value="#{msg.ADMIN_LIST_OPENING_TIMES_HEADER}" />
+
+ <h:panelGroup>
+ <p:commandButton id="toggler" type="button" value="#{msg.SELECT_SHOWN_COLUMNS}" styleClass="column-selector" />
+ <p:columnToggler datasource="table-list-opening-time" trigger="toggler" />
+ </h:panelGroup>
+ </p:panelGrid>
+ </f:facet>
+
+ <p:column headerText="#{msg.ADMIN_ID_NUMBER}" sortBy="#{openingTime.openingId}" filterable="false">
+ <p:link outcome="admin_show_department" title="#{msg.ADMIN_LINK_SHOW_DEPARTMENT_TITLE}" value="#{openingTime.openingId}">
+ <f:param name="openingId" value="#{openingTime.openingId}" />
+ </p:link>
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_START_WEEK_DAY}" sortBy="#{openingTime.openingStartDay}" filterBy="#{openingTime.openingStartDay}" filterMatchMode="in">
+ <f:facet name="filter">
+ <p:selectCheckboxMenu
+ label="#{msg.LABEL_WEEK_DAYS}"
+ onchange="PF('openingTimeList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_WEEK_DAYS_TITLE}"
+ >
+ <f:converter converterId="DayOfTheWeekConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{dataController.dayOfTheWeek}" var="dayOfWeek" itemValue="#{dayOfWeek}" itemLabel="#{dayOfWeek.toString()}" />
+ </p:selectCheckboxMenu>
+ </f:facet>
+
+ <h:outputText value="#{openingTime.openingStartDay.toString()}" />
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_END_WEEK_DAY}" sortBy="#{openingTime.openingEndDay}" filterBy="#{openingTime.openingEndDay}" filterMatchMode="in">
+ <f:facet name="filter">
+ <p:selectCheckboxMenu
+ label="#{msg.LABEL_WEEK_DAYS}"
+ onchange="PF('openingTimeList').filter()"
+ updateLabel="true"
+ title="#{msg.FILTER_BY_MULTIPLE_WEEK_DAYS_TITLE}"
+ >
+ <f:converter converterId="DayOfTheWeekConverter" />
+ <f:selectItem itemValue="#{null}" itemLabel="#{msg.NONE_SELECTED}" />
+ <f:selectItems value="#{dataController.dayOfTheWeek}" var="dayOfWeek" itemValue="#{dayOfWeek}" itemLabel="#{dayOfWeek.toString()}" />
+ </p:selectCheckboxMenu>
+ </f:facet>
+
+ <h:outputText value="#{openingTime.openingEndDay.toString()}" />
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_START_TIME}" sortBy="#{openingTime.openingStartTime}" filterBy="#{openingTime.openingStartTime}" filterable="false">
+ <h:outputText value="#{openingTime.openingStartTime.time}" />
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_END_TIME}" sortBy="#{openingTime.openingEndTime}" filterBy="#{openingTime.openingEndTime}" filterable="false">
+ <h:outputText value="#{openingTime.openingEndTime.time}" />
+ </p:column>
+
+ <p:column headerText="#{msg.ADMIN_ACTION_LINKS}" sortable="false" filterable="false">
+ <links:outputOpeningTimeAdminMiniLinks openingTime="#{openingTime}" />
+ </p:column>
+ </p:dataTable>
+ </h:form>
+
+ <h:form>
+ <p:panelGrid columns="1" styleClass="table table-full" layout="grid">
+ <f:facet name="header">
+ <h:outputText value="#{msg.ADMIN_ADD_OPENING_TIME_TITLE}" />
+ </f:facet>
+
+ <h:panelGroup styleClass="para" layout="block">
+ <h:outputText value="#{msg.ADMIN_ADD_OPENING_TIME_MINIMUM_DATA}" />
+ </h:panelGroup>
+
+ <ui:include src="/WEB-INF/templates/admin/opening_time/admin_form_opening_time.tpl" />
+
+ <f:facet name="footer">
+ <p:panelGrid columns="2" layout="grid">
+ <p:commandButton
+ styleClass="reset"
+ type="reset"
+ value="#{msg.BUTTON_RESET_FORM}"
+ />
+
+ <p:commandButton
+ styleClass="submit"
+ type="submit"
+ value="#{msg.BUTTON_ADMIN_ADD_OPENING_TIME}"
+ action="#{adminOpeningTimeController.addOpeningTime()}"
+ update=":master:form-list-opening-time:table-list-opening-time"
+ />
+ </p:panelGrid>
+ </f:facet>
+ </p:panelGrid>
+ </h:form>
+ </ui:define>
+</ui:composition>
</h:panelGroup>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="button-danger" type="submit" id="submit_delete_user" value="#{msg.BUTTON_ADMIN_DELETE_USER}" action="#{adminUserController.deleteUserData()}" />
</div>
</h:panelGroup>
<widgets:outputAdminUserDataFormFields mode="edit" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_edit_user" value="#{msg.BUTTON_ADMIN_EDIT_USER}" action="#{adminUserController.editUserData()}" />
</div>
</h:panelGroup>
</ui:define>
<ui:define name="content">
- <widgets:outputMessageBox id="admin-user-list-empty" message="#{msg.ADMIN_USER_LIST_EMPTY}" messageStyleClass="alert-danger" rendered="#{userController.allUsers().isEmpty()}" />
-
- <h:form id="form_export_users" rendered="#{not userController.allUsers().isEmpty()}">
- <p:dataTable id="table_export_users" var="user" value="#{userController.allUsers()}" tableStyleClass="table table-full" paginator="true" rows="10" summary="#{msg.TABLE_SUMMARY_ADMIN_EXPORT_USER}">
+ <h:form id="form_export_users">
+ <p:dataTable
+ id="table_export_users"
+ var="user"
+ value="#{userController.allUsers()}"
+ tableStyleClass="table table-full"
+ paginator="true"
+ rows="10"
+ summary="#{msg.TABLE_SUMMARY_ADMIN_EXPORT_USER}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_USER}"
+ >
<p:column exportable="false">
<f:facet name="header">
<h:outputText value="#{msg.ADMIN_EXPORT_USER_ID}" />
paginator="true"
rows="10"
summary="#{msg.TABLE_SUMMARY_ADMIN_LIST_USERS}"
- emptyMessage="#{msg.ADMIN_USER_LIST_EMPTY}"
+ emptyMessage="#{msg.ADMIN_EMPTY_LIST_USER}"
widgetVar="userList"
>
<p:column>
</p:dataTable>
</h:form>
- <h:panelGroup styleClass="table table-full" layout="block">
- <h:form id="form-admin-add-user">
+ <h:form>
+ <h:panelGroup styleClass="table table-full" layout="block">
<div class="table-header">
<h:outputText value="#{msg.ADMIN_ADD_USER_TITLE}" />
</div>
</h:panelGroup>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton
styleClass="submit"
type="submit"
update=":master:form-list-users:table-list-users"
/>
</div>
- </h:form>
- </h:panelGroup>
+ </h:panelGroup>
+ </h:form>
</ui:define>
</ui:composition>
</h:panelGroup>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" action="#{adminUserController.lockUserAccount()}" value="#{msg.BUTTON_ADMIN_LOCK_USER_ACCOUNT}" />
</div>
</h:panelGroup>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" action="#{adminUserController.resendConfirmationLink()}" value="#{msg.BUTTON_ADMIN_RESEND_USER_CONFIRMATION_LINK_ACCOUNT}" />
</div>
</h:panelGroup>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" action="#{adminUserController.unlockUserAccount()}" value="#{msg.BUTTON_ADMIN_UNLOCK_USER_ACCOUNT}" />
</div>
</fieldset>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" value="#{msg.BUTTON_CONTINUE_STEP_2}" action="#{passwordRecoveryController.doLostPasswordStep2()}" />
</div>
</h:panelGroup>
</h:panelGroup>
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_resend_link" value="#{msg.BUTTON_RESEND_CONFIRMATION_LINK}" action="#{userResendConfirmationController.doResendLink()}" />
</div>
</h:panelGroup>
overflow: auto;
}
-#left-menu-container {
- float: left;
- background-color: khaki;
- padding: 5px;
- width: 170px;
-}
-
-.center_content {
- position: relative;
- background-color: #dddddd;
- padding: 5px;
-}
-
-.content-container {
- padding-right: 5px;
- padding-bottom: 5px;
- margin-left: 190px;
-}
-
.table-footer {
margin: 2px;
}
color: #aa0000;
}
-.divider-right {
- margin-right: 2px;
-}
-
#content-header {
border: 1px solid grey;
}
.ui-noborder {
border: initial;
}
+
+.ui-transparent-widget > div {
+ background-color: transparent;
+ background-image: initial;
+}
<ui:include src="/WEB-INF/templates/login/login_enter_current_password.tpl" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_change_email" value="#{msg.BUTTON_CHANGE_EMAIL_ADDRESS}" action="#{userEmailChangeController.doUserChangeEmailAddress()}" />
</div>
</h:form>
<ui:include src="/WEB-INF/templates/login/user/user_enter_current_password.tpl" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_change_password" value="#{msg.BUTTON_USER_CHANGE_PASSWORD}" action="#{userPasswordController.doChangePassword()}" />
</div>
</h:panelGroup>
<ui:include src="/WEB-INF/templates/guest/guest_privacy_terms.tpl" />
<div class="table-footer">
- <p:commandButton styleClass="reset divider-right" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
+ <p:commandButton styleClass="reset" type="reset" value="#{msg.BUTTON_RESET_FORM}" />
<p:commandButton styleClass="submit" type="submit" id="submit_change_personal_data" value="#{msg.BUTTON_CHANGE_PERSONAL_DATA}" action="#{userController.doChangePersonalData()}" />
</div>
</h:form>