From: Roland Häder Date: Wed, 7 Jun 2017 20:47:46 +0000 (+0200) Subject: Continued: X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=6ba0155dc5f309424e20c2cbb5cbebad16b83772;p=jfinancials-war.git Continued: - moved generic methods to BaseBean - added new controller for receipts - renamed income controller as it is not for administrative purposes - continued with receipt form, used PrimeFaces tags for calendar Signed-off-by: Roland Häder --- diff --git a/src/java/org/mxchange/jfinancials/beans/BaseFinancialsController.java b/src/java/org/mxchange/jfinancials/beans/BaseFinancialsController.java index c18c2ee8..6ecb7e3e 100644 --- a/src/java/org/mxchange/jfinancials/beans/BaseFinancialsController.java +++ b/src/java/org/mxchange/jfinancials/beans/BaseFinancialsController.java @@ -17,13 +17,7 @@ package org.mxchange.jfinancials.beans; import java.io.Serializable; -import java.security.Principal; -import java.text.MessageFormat; -import java.util.Locale; -import java.util.MissingResourceException; -import java.util.ResourceBundle; -import javax.faces.application.FacesMessage; -import javax.faces.context.FacesContext; +import org.mxchange.jcoreee.bean.BaseBean; import org.mxchange.jusercore.model.user.UserUtils; /** @@ -31,7 +25,7 @@ import org.mxchange.jusercore.model.user.UserUtils; *

* @author Roland Häder */ -public abstract class BaseFinancialsController implements Serializable { +public abstract class BaseFinancialsController extends BaseBean implements Serializable { /** * Serial number @@ -44,97 +38,6 @@ public abstract class BaseFinancialsController implements Serializable { protected BaseFinancialsController () { } - /** - * Determines principal's name or returns null if no principal (security) is - * set. - *

- * @return Principal's name or null - */ - protected String determinePrincipalName () { - // Get principal - Principal userPrincipal = FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal(); - - // Init with null - String principalName = null; - - // Is the principal set? - if (userPrincipal instanceof Principal) { - // Get principal's name - principalName = userPrincipal.getName(); - } - - // Return it - return principalName; - } - - /** - * Returns given property key or throws an exception if not found. - *

- * @param parameterKey Property key - *

- * @return Property value - *

- * @throws NullPointerException If given key is not found - * @throws NumberFormatException If no number is given in context parameter - */ - protected int getIntegerContextParameter (final String parameterKey) throws NullPointerException, NumberFormatException { - // Get context parameter - Integer contextValue = Integer.parseInt(this.getStringContextParameter(parameterKey)); - - // Return it - return contextValue; - } - - /** - * Returns given property key or throws an exception if not found. - *

- * @param parameterKey Property key - *

- * @return Property value - *

- * @throws NullPointerException If given key is not found - */ - protected String getStringContextParameter (final String parameterKey) throws NullPointerException { - // Get context parameter - String contextValue = FacesContext.getCurrentInstance().getExternalContext().getInitParameter(parameterKey); - - // Is it null? - if (null == contextValue) { - // Throw NPE - throw new NullPointerException(MessageFormat.format("parameterKey={0} is not set.", parameterKey)); //NOI18N - } - - // Return it - return contextValue; - } - - /** - * Checks whether debug mode is enabled for given controller - *

- * @param controllerName Name of controller - *

- * @return Whether debug mode is enabled - */ - protected boolean isDebugModeEnabled (final String controllerName) { - // Parameters should be valid - if (null == controllerName) { - // Throw NPE - throw new NullPointerException("controllerName is null"); //NOI18N - } else if (controllerName.isEmpty()) { - // Is empty - throw new IllegalArgumentException("controllerName is empty"); //NOI18N - } - - // Try to get context parameter - String contextParameter = this.getStringContextParameter(String.format("is_debug_%s_enabled", controllerName)); //NOI18N - - // Is it set and true? - boolean isEnabled = (Boolean.parseBoolean(contextParameter) == Boolean.TRUE); - - // Return it - return isEnabled; - } - /** * Checks if given password is to weak to be used *

@@ -159,62 +62,4 @@ public abstract class BaseFinancialsController implements Serializable { return isWeak; } - /** - * Shows a faces message for given causing exception. The message from the - * exception is being inserted into the message. - *

- * @param clientId Client id to send message to - * @param cause Causing exception - */ - protected void showFacesMessage (final String clientId, final Throwable cause) { - // Get context and add message - this.showFacesMessage(clientId, cause.getMessage()); - } - - /** - * Shows a faces message with given message (i18n) key. - *

- * @param clientId Client id to send message to - * @param i18nKey Message key - *

- * @throws NullPointerException If clientId or i18nKey is null - * @throws IllegalArgumentException If clientId or i18nKey is empty - */ - protected void showFacesMessage (final String clientId, final String i18nKey) throws NullPointerException, IllegalArgumentException { - // Both parameter must be valid - if (null == clientId) { - // Throw NPE - throw new NullPointerException("clientId is null"); //NOI18N - } else if (clientId.isEmpty()) { - // Is empty - throw new IllegalArgumentException("clientId is null"); //NOI18N - } else if (null == i18nKey) { - // Throw NPE - throw new NullPointerException("i18nKey is null"); //NOI18N - } else if (i18nKey.isEmpty()) { - // Is empty - throw new IllegalArgumentException("i18nKey is null"); //NOI18N - } - - // Get current locale - Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale(); - - // Get bundle bundle - ResourceBundle bundle = ResourceBundle.getBundle("org.mxchange.localization.bundle", locale); - - // Default is i18nKey - String message = i18nKey; - - // Try it - try { - // Get message - message = bundle.getString(i18nKey); - } catch (final MissingResourceException ex) { - // Did not find it, ignored - } - - // Get context and add message - FacesContext.getCurrentInstance().addMessage(clientId, new FacesMessage(message)); - } - } diff --git a/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsAdminFinancialIncomeWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsAdminFinancialIncomeWebRequestBean.java deleted file mode 100644 index dd921455..00000000 --- a/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsAdminFinancialIncomeWebRequestBean.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * Copyright (C) 2016, 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 . - */ -package org.mxchange.jfinancials.beans.financial.income; - -import java.text.MessageFormat; -import java.util.Arrays; -import java.util.List; -import javax.annotation.PostConstruct; -import javax.enterprise.context.RequestScoped; -import javax.faces.view.facelets.FaceletException; -import javax.inject.Inject; -import javax.inject.Named; -import javax.naming.Context; -import javax.naming.InitialContext; -import javax.naming.NamingException; -import org.mxchange.jfinancials.beans.BaseFinancialsController; -import org.mxchange.jfinancials.beans.login.user.FinancialsUserLoginWebSessionController; -import org.mxchange.jfinancials.financial.income.FinancialIncomeSessionBeanRemote; -import org.mxchange.jfinancials.model.income.BillableIncome; -import org.mxchange.jfinancials.model.income.FinancialIncome; -import org.mxchange.jfinancials.model.income.interval.FinancialInterval; - -/** - * An administrative financial income bean (controller) - *

- * @author Roland Häder - */ -@Named ("financialIncomeController") -@RequestScoped -public class FinancialsAdminFinancialIncomeWebRequestBean extends BaseFinancialsController implements FinancialsAdminFinancialIncomeWebRequestController { - - /** - * Serial number - */ - private static final long serialVersionUID = 56_189_028_928_371L; - - /** - * Remote contact bean - */ - private FinancialIncomeSessionBeanRemote financialBean; - - /** - * Income interval - */ - private FinancialInterval incomeInterval; - - /** - * Income single amount - */ - private Float incomeSingleAmount; - - /** - * Income (type) title - */ - private String incomeTitle; - - /** - * User instance - */ - @Inject - private FinancialsUserLoginWebSessionController userLoginController; - - /** - * Constructor - */ - public FinancialsAdminFinancialIncomeWebRequestBean () { - // Call super constructor - super(); - } - - /** - * Adds income data by calling proper business method of the EJB. - *

- * @return Redirect outcome - */ - public String addFinancialIncome () { - // Is all data valid? - if (!this.userLoginController.isUserLoggedIn()) { - // Not logged-in - throw new IllegalStateException("User is not logged-in"); //NOI18N - } else if (null == this.getIncomeInterval()) { - // Throw NPE - throw new NullPointerException("incomeInterval is null"); //NOI18N - } else if (null == this.getIncomeSingleAmount()) { - // Throw again - throw new NullPointerException("incomeSingleAmount is null"); //NOI18N - } else if (this.getIncomeSingleAmount() < 0) { - // Not allowed value - throw new IllegalArgumentException(MessageFormat.format("incomeSingleAmount={0} is not valid.", this.getIncomeSingleAmount())); //NOI18N - } else if (null == this.getIncomeTitle()) { - // Throw again - throw new NullPointerException("incomeTitle is null"); //NOI18N - } else if (this.getIncomeTitle().isEmpty()) { - // Should not be empty - throw new IllegalArgumentException("incomeTitle is empty"); //NOI18N - } - - // Now that all required data has been entered, prepare new income instance - BillableIncome income = new FinancialIncome(this.getIncomeTitle(), this.getIncomeSingleAmount(), this.getIncomeInterval(), this.userLoginController.getLoggedInUser()); - - // Handle it over to the EJB - // @TODO Use updated income instance, e.g. fire event - BillableIncome updatedIncome = this.financialBean.addIncome(income); - - // All fine - return "add_user_fiancial_income"; //NOI18N - } - - @Override - public List getAllIncomeIntervals () { - // Init array - List incomeIntervals = Arrays.asList(FinancialInterval.values()); - - // Return it - return incomeIntervals; - } - - @Override - public FinancialInterval getIncomeInterval () { - return this.incomeInterval; - } - - @Override - public void setIncomeInterval (final FinancialInterval incomeInterval) { - this.incomeInterval = incomeInterval; - } - - @Override - public Float getIncomeSingleAmount () { - return this.incomeSingleAmount; - } - - @Override - public void setIncomeSingleAmount (final Float incomeSingleAmount) { - this.incomeSingleAmount = incomeSingleAmount; - } - - @Override - public String getIncomeTitle () { - return this.incomeTitle; - } - - @Override - public void setIncomeTitle (final String incomeTitle) { - this.incomeTitle = incomeTitle; - } - - /** - * Post-initialization of this class - */ - @PostConstruct - public void init () { - // Try it - try { - // Get initial context - Context context = new InitialContext(); - - // Try to lookup - this.financialBean = (FinancialIncomeSessionBeanRemote) context.lookup("java:global/jfinancials-ejb/financial!org.mxchange.jfinancials.financial.income.FinancialIncomeSessionBeanRemote"); //NOI18N - } catch (final NamingException e) { - // Throw again - throw new FaceletException(e); - } - } - -} diff --git a/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsAdminFinancialIncomeWebRequestController.java b/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsAdminFinancialIncomeWebRequestController.java deleted file mode 100644 index 85b993d7..00000000 --- a/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsAdminFinancialIncomeWebRequestController.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (C) 2016, 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 . - */ -package org.mxchange.jfinancials.beans.financial.income; - -import java.io.Serializable; -import java.util.List; -import org.mxchange.jfinancials.model.income.interval.FinancialInterval; - -/** - * An administrative interface for financial income beans - *

- * @author Roland Häder - */ -public interface FinancialsAdminFinancialIncomeWebRequestController extends Serializable { - - /** - * Getter for income single amount - *

- * @return Income single amount - */ - Float getIncomeSingleAmount (); - - /** - * Setter for income single amount - *

- * @param incomeSingleAmount Income single amount - */ - void setIncomeSingleAmount (final Float incomeSingleAmount); - - /** - * Getter for income (type) title - *

- * @return Income title - */ - String getIncomeTitle (); - - /** - * Setter for income (type) title - *

- * @param incomeTitle Income title - */ - void setIncomeTitle (final String incomeTitle); - - /** - * Getter for income interval - *

- * @return Income interval - */ - FinancialInterval getIncomeInterval (); - - /** - * Setter for income (type) interval - *

- * @param incomeInterval Income interval - */ - void setIncomeInterval (final FinancialInterval incomeInterval); - - /** - * Returns a list of all all income intervals - *

- * @return Income intervals - */ - List getAllIncomeIntervals (); - -} diff --git a/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsIncomeWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsIncomeWebRequestBean.java new file mode 100644 index 00000000..5accbae9 --- /dev/null +++ b/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsIncomeWebRequestBean.java @@ -0,0 +1,180 @@ +/* + * Copyright (C) 2016, 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 . + */ +package org.mxchange.jfinancials.beans.financial.income; + +import java.text.MessageFormat; +import java.util.Arrays; +import java.util.List; +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.faces.view.facelets.FaceletException; +import javax.inject.Inject; +import javax.inject.Named; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import org.mxchange.jfinancials.beans.BaseFinancialsController; +import org.mxchange.jfinancials.beans.login.user.FinancialsUserLoginWebSessionController; +import org.mxchange.jfinancials.financial.income.FinancialIncomeSessionBeanRemote; +import org.mxchange.jfinancials.model.income.BillableIncome; +import org.mxchange.jfinancials.model.income.FinancialIncome; +import org.mxchange.jfinancials.model.income.interval.FinancialInterval; + +/** + * An administrative financial income bean (controller) + *

+ * @author Roland Häder + */ +@Named ("financialIncomeController") +@RequestScoped +public class FinancialsIncomeWebRequestBean extends BaseFinancialsController implements FinancialsIncomeWebRequestController { + + /** + * Serial number + */ + private static final long serialVersionUID = 56_189_028_928_371L; + + /** + * Remote contact bean + */ + private FinancialIncomeSessionBeanRemote financialBean; + + /** + * Income interval + */ + private FinancialInterval incomeInterval; + + /** + * Income single amount + */ + private Float incomeSingleAmount; + + /** + * Income (type) title + */ + private String incomeTitle; + + /** + * User instance + */ + @Inject + private FinancialsUserLoginWebSessionController userLoginController; + + /** + * Constructor + */ + public FinancialsIncomeWebRequestBean () { + // Call super constructor + super(); + } + + /** + * Adds income data by calling proper business method of the EJB. + *

+ * @return Redirect outcome + */ + public String addIncome () { + // Is all data valid? + if (!this.userLoginController.isUserLoggedIn()) { + // Not logged-in + throw new IllegalStateException("User is not logged-in"); //NOI18N + } else if (null == this.getIncomeInterval()) { + // Throw NPE + throw new NullPointerException("incomeInterval is null"); //NOI18N + } else if (null == this.getIncomeSingleAmount()) { + // Throw again + throw new NullPointerException("incomeSingleAmount is null"); //NOI18N + } else if (this.getIncomeSingleAmount() < 0) { + // Not allowed value + throw new IllegalArgumentException(MessageFormat.format("incomeSingleAmount={0} is not valid.", this.getIncomeSingleAmount())); //NOI18N + } else if (null == this.getIncomeTitle()) { + // Throw again + throw new NullPointerException("incomeTitle is null"); //NOI18N + } else if (this.getIncomeTitle().isEmpty()) { + // Should not be empty + throw new IllegalArgumentException("incomeTitle is empty"); //NOI18N + } + + // Now that all required data has been entered, prepare new income instance + BillableIncome income = new FinancialIncome(this.getIncomeTitle(), this.getIncomeSingleAmount(), this.getIncomeInterval(), this.userLoginController.getLoggedInUser()); + + // Handle it over to the EJB + // @TODO Use updated income instance, e.g. fire event + BillableIncome updatedIncome = this.financialBean.addIncome(income); + + // All fine + return "add_user_fiancial_income"; //NOI18N + } + + @Override + public List allIncomeIntervals () { + // Init array + List incomeIntervals = Arrays.asList(FinancialInterval.values()); + + // Return it + return incomeIntervals; + } + + @Override + public FinancialInterval getIncomeInterval () { + return this.incomeInterval; + } + + @Override + public void setIncomeInterval (final FinancialInterval incomeInterval) { + this.incomeInterval = incomeInterval; + } + + @Override + public Float getIncomeSingleAmount () { + return this.incomeSingleAmount; + } + + @Override + public void setIncomeSingleAmount (final Float incomeSingleAmount) { + this.incomeSingleAmount = incomeSingleAmount; + } + + @Override + public String getIncomeTitle () { + return this.incomeTitle; + } + + @Override + public void setIncomeTitle (final String incomeTitle) { + this.incomeTitle = incomeTitle; + } + + /** + * Post-initialization of this class + */ + @PostConstruct + public void init () { + // Try it + try { + // Get initial context + Context context = new InitialContext(); + + // Try to lookup + this.financialBean = (FinancialIncomeSessionBeanRemote) context.lookup("java:global/jfinancials-ejb/financial!org.mxchange.jfinancials.financial.income.FinancialIncomeSessionBeanRemote"); //NOI18N + } catch (final NamingException e) { + // Throw again + throw new FaceletException(e); + } + } + +} diff --git a/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsIncomeWebRequestController.java b/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsIncomeWebRequestController.java new file mode 100644 index 00000000..e25f954e --- /dev/null +++ b/src/java/org/mxchange/jfinancials/beans/financial/income/FinancialsIncomeWebRequestController.java @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2016, 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 . + */ +package org.mxchange.jfinancials.beans.financial.income; + +import java.io.Serializable; +import java.util.List; +import org.mxchange.jfinancials.model.income.interval.FinancialInterval; + +/** + * An administrative interface for financial income beans + *

+ * @author Roland Häder + */ +public interface FinancialsIncomeWebRequestController extends Serializable { + + /** + * Getter for income single amount + *

+ * @return Income single amount + */ + Float getIncomeSingleAmount (); + + /** + * Setter for income single amount + *

+ * @param incomeSingleAmount Income single amount + */ + void setIncomeSingleAmount (final Float incomeSingleAmount); + + /** + * Getter for income (type) title + *

+ * @return Income title + */ + String getIncomeTitle (); + + /** + * Setter for income (type) title + *

+ * @param incomeTitle Income title + */ + void setIncomeTitle (final String incomeTitle); + + /** + * Getter for income interval + *

+ * @return Income interval + */ + FinancialInterval getIncomeInterval (); + + /** + * Setter for income (type) interval + *

+ * @param incomeInterval Income interval + */ + void setIncomeInterval (final FinancialInterval incomeInterval); + + /** + * Returns a list of all all income intervals + *

+ * @return Income intervals + */ + List allIncomeIntervals (); + +} diff --git a/src/java/org/mxchange/jfinancials/beans/financial/receipt/FinancialsReceiptWebRequestBean.java b/src/java/org/mxchange/jfinancials/beans/financial/receipt/FinancialsReceiptWebRequestBean.java new file mode 100644 index 00000000..62dcccf9 --- /dev/null +++ b/src/java/org/mxchange/jfinancials/beans/financial/receipt/FinancialsReceiptWebRequestBean.java @@ -0,0 +1,82 @@ +/* + * Copyright (C) 2016, 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 . + */ +package org.mxchange.jfinancials.beans.financial.receipt; + +import javax.annotation.PostConstruct; +import javax.enterprise.context.RequestScoped; +import javax.faces.view.facelets.FaceletException; +import javax.inject.Inject; +import javax.inject.Named; +import javax.naming.Context; +import javax.naming.InitialContext; +import javax.naming.NamingException; +import org.mxchange.jfinancials.beans.BaseFinancialsController; +import org.mxchange.jfinancials.beans.login.user.FinancialsUserLoginWebSessionController; +import org.mxchange.jfinancials.financial.receipt.FinancialReceiptSessionBeanRemote; + +/** + * An administrative financial receipt bean (controller) + *

+ * @author Roland Häder + */ +@Named ("financialReceiptController") +@RequestScoped +public class FinancialsReceiptWebRequestBean extends BaseFinancialsController implements FinancialsReceiptWebRequestController { + + /** + * Serial number + */ + private static final long serialVersionUID = 56_189_028_928_371L; + + /** + * Remote contact bean + */ + private FinancialReceiptSessionBeanRemote financialBean; + + /** + * User instance + */ + @Inject + private FinancialsUserLoginWebSessionController userLoginController; + + /** + * Constructor + */ + public FinancialsReceiptWebRequestBean () { + // Call super constructor + super(); + } + + /** + * Post-initialization of this class + */ + @PostConstruct + public void init () { + // Try it + try { + // Get initial context + Context context = new InitialContext(); + + // Try to lookup + this.financialBean = (FinancialReceiptSessionBeanRemote) context.lookup("java:global/jfinancials-ejb/financial!org.mxchange.jfinancials.financial.receipt.FinancialReceiptSessionBeanRemote"); //NOI18N + } catch (final NamingException e) { + // Throw again + throw new FaceletException(e); + } + } + +} diff --git a/src/java/org/mxchange/jfinancials/beans/financial/receipt/FinancialsReceiptWebRequestController.java b/src/java/org/mxchange/jfinancials/beans/financial/receipt/FinancialsReceiptWebRequestController.java new file mode 100644 index 00000000..67416d87 --- /dev/null +++ b/src/java/org/mxchange/jfinancials/beans/financial/receipt/FinancialsReceiptWebRequestController.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2016, 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 . + */ +package org.mxchange.jfinancials.beans.financial.receipt; + +import java.io.Serializable; + +/** + * An administrative interface for financial receipt beans + *

+ * @author Roland Häder + */ +public interface FinancialsReceiptWebRequestController extends Serializable { + +} diff --git a/web/WEB-INF/templates/contact/form_contact_data.tpl b/web/WEB-INF/templates/contact/form_contact_data.tpl index 2d9fc075..822148ca 100644 --- a/web/WEB-INF/templates/contact/form_contact_data.tpl +++ b/web/WEB-INF/templates/contact/form_contact_data.tpl @@ -4,7 +4,8 @@ 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"> + xmlns:p="http://primefaces.org/ui" + >

#{msg.PERSONAL_DATA_MINIMUM_NOTICE} diff --git a/web/user/financials/login_financials_add_income.xhtml b/web/user/financials/login_financials_add_income.xhtml index b789487e..a81cd7f8 100644 --- a/web/user/financials/login_financials_add_income.xhtml +++ b/web/user/financials/login_financials_add_income.xhtml @@ -44,7 +44,7 @@
- +
@@ -68,7 +68,7 @@ diff --git a/web/user/financials/login_financials_add_receipt.xhtml b/web/user/financials/login_financials_add_receipt.xhtml index 9cfbc754..1a0e88ee 100644 --- a/web/user/financials/login_financials_add_receipt.xhtml +++ b/web/user/financials/login_financials_add_receipt.xhtml @@ -4,7 +4,8 @@ xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:f="http://xmlns.jcp.org/jsf/core" - > + xmlns:p="http://primefaces.org/ui"> + > @@ -17,7 +18,50 @@ + +
+ +
+
+
+ +
+ +
+ + + + +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+
+ +
+ + + +
+ + +