Print page converted
This commit is contained in:
parent
50a07f0f6d
commit
e624eae79d
|
@ -51,8 +51,8 @@ public class UserSession implements Serializable {
|
|||
|
||||
// ***
|
||||
/**
|
||||
* Tab index to select when presenting editDetails.
|
||||
* First tab is 0.
|
||||
* Tab index to select when presenting editDetails. First tab
|
||||
* is 0.
|
||||
*/
|
||||
private int detailTab;
|
||||
|
||||
|
@ -75,11 +75,12 @@ public class UserSession implements Serializable {
|
|||
|
||||
/**
|
||||
* Recipe is set by the mainpage bean to a blank recipe
|
||||
* before dispatching to the detailEdit page (new recipe).
|
||||
* It is also set by the detail view page so that the
|
||||
* detail view can be edited.
|
||||
* before dispatching to the detailEdit page (new recipe). It
|
||||
* is also set by the detail view page so that the detail
|
||||
* view can be edited.
|
||||
*
|
||||
* In addition to detail editing, it's also used by the
|
||||
*
|
||||
* @see PictureController.
|
||||
*
|
||||
* @return Recipe selected.
|
||||
|
@ -94,4 +95,38 @@ public class UserSession implements Serializable {
|
|||
public void setRecipe(Recipe recipe) {
|
||||
this.recipe = recipe;
|
||||
}
|
||||
|
||||
// ====
|
||||
public String formatTime(Long ltime) {
|
||||
if (ltime == null) {
|
||||
return "";
|
||||
}
|
||||
int time = ltime.intValue();
|
||||
int dd, hh, mm, ss;
|
||||
ss = time % 60;
|
||||
time /= 60;
|
||||
mm = time % 60;
|
||||
time /= 60;
|
||||
hh = time % 24;
|
||||
dd = time / 24;
|
||||
StringBuffer sb = new StringBuffer(20);
|
||||
if (dd > 0) {
|
||||
sb.append(dd).append("d ");
|
||||
}
|
||||
if (hh > 0) {
|
||||
sb.append(hh).append("h ");
|
||||
}
|
||||
if (mm > 0) {
|
||||
sb.append(mm);
|
||||
if ((ss == 0) && (hh == 0)) {
|
||||
sb.append(" minutes");
|
||||
} else {
|
||||
sb.append("min. ");
|
||||
}
|
||||
}
|
||||
if (ss > 0) {
|
||||
sb.append(dd).append("sec. ");
|
||||
}
|
||||
return sb.toString().trim();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,22 @@
|
|||
>
|
||||
<ui:define name="title">Gourmet Recipe Manager</ui:define>
|
||||
<ui:define name="content">
|
||||
<style>
|
||||
.recipeTitle {
|
||||
font-size: larger;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.subtitle {
|
||||
font-size: large;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.ui-panelgrid-cell {
|
||||
border-width: 0;
|
||||
border-style: none;
|
||||
}
|
||||
</style>
|
||||
<h:messages />
|
||||
<h:form id="form1">
|
||||
<p:panelGrid label="#{recipeDetailBean.recipe.title}"
|
||||
|
@ -15,54 +31,52 @@
|
|||
>
|
||||
<p:panelGrid>
|
||||
<f:facet name="header">
|
||||
<h:outputText
|
||||
<h:outputText styleClass="recipeTitle"
|
||||
value="#{recipeDetailBean.recipe.title}"
|
||||
/>
|
||||
</f:facet>
|
||||
<p:row>
|
||||
<p:column id="leftCol" style="width: 80%">
|
||||
|
||||
<img id="bigpix"
|
||||
src="/img/picture/#{recipeDetailBean.recipe.id}"
|
||||
/>
|
||||
<p:panelGrid columns="2">
|
||||
<p:button value="<- Back"
|
||||
action="main"
|
||||
<p:commandButton value="<- Back"
|
||||
styleClass="ui-button-arrow-left"
|
||||
action="main.jsf"
|
||||
immediate="true"
|
||||
/>
|
||||
<p:button value="Print"
|
||||
action="recipePrint"
|
||||
<p:commandButton value="Print"
|
||||
action="recipePrint.jsf"
|
||||
styleClass="ui-button-print"
|
||||
immediate="true"
|
||||
/>
|
||||
<p:outputLabel for="@next"
|
||||
value="Categories:"
|
||||
/>
|
||||
<h:outputText
|
||||
label="Category: "
|
||||
<h:outputText label="Category: "
|
||||
value="#{adminMainBean.formatCategories(recipeDetailBean.recipe)}"
|
||||
/>
|
||||
<p:outputLabel for="@next"
|
||||
value="Cuisine:"
|
||||
/>
|
||||
<h:outputText
|
||||
label="Cuisine: "
|
||||
<h:outputText label="Cuisine: "
|
||||
value="#{recipeDetailBean.recipe.cuisine}"
|
||||
/>
|
||||
<p:outputLabel for="@next"
|
||||
value="Prep Time:"
|
||||
/>
|
||||
<h:outputText
|
||||
label="Prep Time: "
|
||||
value="#{recipeDetailBean.recipe.preptime}"
|
||||
<h:outputText label="Prep Time: "
|
||||
value="#{userSession.formatTime(recipeDetailBean.recipe.preptime)}"
|
||||
/>
|
||||
<p:outputLabel for="@next"
|
||||
value="Cook Time:"
|
||||
/>
|
||||
<h:outputText
|
||||
label="Cook Time: "
|
||||
value="#{recipeDetailBean.recipe.cooktime}"
|
||||
<h:outputText label="Cook Time: "
|
||||
value="#{userSession.formatTime(recipeDetailBean.recipe.cooktime)}"
|
||||
/>
|
||||
</p:panelGrid>
|
||||
<h:commandLink
|
||||
value="Edit Details"
|
||||
<h:commandLink value="Edit Details"
|
||||
action="#{recipeDetailBean.editDescription}"
|
||||
>
|
||||
<c:set target="#{flash}"
|
||||
|
@ -71,9 +85,13 @@
|
|||
/>
|
||||
</h:commandLink>
|
||||
<!-- -->
|
||||
<p:panelGrid label="Instructions"
|
||||
columns="1"
|
||||
>
|
||||
<p:panelGrid columns="1">
|
||||
<f:facet name="header">
|
||||
<h:outputText
|
||||
styleClass="subtitle"
|
||||
value="Instructions"
|
||||
/>
|
||||
</f:facet>
|
||||
<h:outputText id="instructions"
|
||||
escape="false"
|
||||
value="#{recipeDetailBean.instructions}"
|
||||
|
@ -83,9 +101,13 @@
|
|||
action="#{recipeDetailBean.editInstructions}"
|
||||
/>
|
||||
</p:panelGrid>
|
||||
<p:panelGrid label="Notes"
|
||||
columns="1"
|
||||
>
|
||||
<p:panelGrid columns="1">
|
||||
<f:facet name="header">
|
||||
<h:outputText
|
||||
styleClass="subtitle"
|
||||
value="Notes"
|
||||
/>
|
||||
</f:facet>
|
||||
<h:outputText escape="false"
|
||||
value="#{recipeDetailBean.modifications}"
|
||||
/>
|
||||
|
@ -107,18 +129,26 @@
|
|||
</p:column>
|
||||
<!-- ====== Ingredients ============================ -->
|
||||
<p:column id="ingredientsc"
|
||||
style="width: 20%"
|
||||
style="width: 20%; vertical-align: top;"
|
||||
>
|
||||
<h:commandLink
|
||||
value="Edit Ingredients"
|
||||
style="vertical-align: top"
|
||||
action="#{recipeDetailBean.editIngredients}"
|
||||
/>
|
||||
<p:dataTable id="ingredients"
|
||||
showDirectLinksArrows="true"
|
||||
value="#{recipeDetailBean.ingredients}"
|
||||
var="ingredient"
|
||||
>
|
||||
<f:facet name="header">
|
||||
<h:outputText
|
||||
styleClass="subtitle"
|
||||
value="Ingredients"
|
||||
/>
|
||||
</f:facet>
|
||||
<f:facet name="footer">
|
||||
<h:commandLink
|
||||
value="Edit Ingredients"
|
||||
style="vertical-align: top"
|
||||
action="#{recipeDetailBean.editIngredients}"
|
||||
/>
|
||||
</f:facet>
|
||||
<p:column label="Amt"
|
||||
style="width: 4em; text-align: right"
|
||||
>
|
||||
|
|
|
@ -1,87 +1,88 @@
|
|||
<?xml version="1.0"?>
|
||||
<ui:composition template="/WEB-INF/layout/layout.xhtml"
|
||||
xmlns:c="http://java.sun.com/jsp/jstl/core"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
||||
xmlns:ui="http://java.sun.com/jsf/facelets"
|
||||
xmlns:tc="http://myfaces.apache.org/tobago/component"
|
||||
xmlns:p="http://primefaces.org/ui"
|
||||
xmlns:c="http://xmlns.jcp.org/jstl"
|
||||
>
|
||||
<!-- Print Recipe -->
|
||||
<ui:define name="title">Gourmet Recipe Manager</ui:define>
|
||||
<ui:define name="content">
|
||||
<tc:messages />
|
||||
<tc:section level="2"
|
||||
label="#{recipeDetailBean.recipe.title}"
|
||||
>
|
||||
<tc:flexLayout columns="auto 6em auto">
|
||||
<tc:image id="bigpix"
|
||||
value="/gourmetj/img/picture/#{recipeDetailBean.recipe.id}"
|
||||
<h:messages />
|
||||
<img id="bigpix"
|
||||
SRC="/img/picture/#{recipeDetailBean.recipe.id}"
|
||||
/>
|
||||
<tc:button label="<- Back" action="main">
|
||||
<tc:style width="5em" height="2em"/>
|
||||
</tc:button>
|
||||
<tc:gridLayout columns="15em 15em">
|
||||
<tc:out label="Category: "
|
||||
<p:button value="<- Back" action="main" />
|
||||
<p:panelGrid columns="2">
|
||||
<h:outputLabel for="@next" value="Category: " />
|
||||
<h:outputText
|
||||
value="#{adminMainBean.formatCategories(recipeDetailBean.recipe)}"
|
||||
/>
|
||||
<tc:out label="Cuisine: "
|
||||
<h:outputLabel for="@next" value="Cuisine: " />
|
||||
<h:outputText
|
||||
value="#{recipeDetailBean.recipe.cuisine}"
|
||||
/>
|
||||
<tc:out label="Prep Time: "
|
||||
value="#{recipeDetailBean.recipe.preptime}"
|
||||
<h:outputLabel for="@next" value="Prep Time: " />
|
||||
<h:outputText
|
||||
value="#{userSession.formatTime(recipeDetailBean.recipe.preptime)}"
|
||||
/>
|
||||
<tc:out label="Cook Time: "
|
||||
value="#{recipeDetailBean.recipe.preptime}"
|
||||
<h:outputLabel for="@next" value="Cook Time: " />
|
||||
<h:outputText label="Cook Time: "
|
||||
value="#{userSession.formatTime(recipeDetailBean.recipe.cooktime)}"
|
||||
/>
|
||||
</tc:gridLayout>
|
||||
</tc:flexLayout>
|
||||
</p:panelGrid>
|
||||
<!-- -->
|
||||
<tc:section id="ingredientsc" label="Ingredients">
|
||||
<tc:sheet id="ingredients"
|
||||
<p:panelGrid columns="1" id="ingredientsc">
|
||||
<f:facet name="header">
|
||||
<h:outputText styleClass="subtitle"
|
||||
value="Ingredients"
|
||||
/>
|
||||
</f:facet>
|
||||
<p:dataTable id="ingredients"
|
||||
showDirectLinksArrows="true"
|
||||
value="#{recipeDetailBean.ingredients}"
|
||||
var="ingredient"
|
||||
>
|
||||
<tc:row>
|
||||
<tc:style
|
||||
customClass="#{item.ingGroup ? 'stGroup' : ''}"
|
||||
/>
|
||||
</tc:row>
|
||||
<tc:column label="Amt" align="right">
|
||||
<tc:out
|
||||
<p:column label="Amt" style="text-align: right">
|
||||
<h:outputText
|
||||
value="#{ingredient.displayAmount}"
|
||||
/>
|
||||
</tc:column>
|
||||
<tc:column label="Units">
|
||||
<tc:out value="#{ingredient.unit}" />
|
||||
</tc:column>
|
||||
<tc:column label="Item">
|
||||
<tc:out value="#{ingredient.item}" />
|
||||
</tc:column>
|
||||
<tc:column label="Optional" align="center">
|
||||
<tc:selectBooleanCheckbox readonly="true"
|
||||
value="#{ingredient.optional}"
|
||||
</p:column>
|
||||
<p:column label="Units">
|
||||
<h:outputText value="#{ingredient.unit}" />
|
||||
</p:column>
|
||||
<p:column label="Item">
|
||||
<h:outputText value="#{ingredient.item}" />
|
||||
</p:column>
|
||||
<p:column label="Optional" align="center">
|
||||
<p:selectBooleanCheckbox readonly="true"
|
||||
value="#{ingredient.optionalCB}"
|
||||
/>
|
||||
</tc:column>
|
||||
</tc:sheet>
|
||||
<tc:out
|
||||
</p:column>
|
||||
</p:dataTable>
|
||||
</p:panelGrid>
|
||||
<h:outputText
|
||||
value="Recipe ID: #{recipeDetailBean.recipe.id}"
|
||||
/>
|
||||
</tc:section>
|
||||
<tc:segmentLayout medium="7seg 5seg">
|
||||
<tc:panel id="summ">
|
||||
<p:panelGrid columns="1">
|
||||
<f:facet name="header">
|
||||
<h:outputText styleClass="subtitle"
|
||||
value="Instructions"
|
||||
/>
|
||||
</f:facet>
|
||||
<!-- -->
|
||||
<tc:box label="Instructions">
|
||||
<tc:out id="instructions" escape="false"
|
||||
<h:outputText id="instructions" escape="false"
|
||||
value="#{recipeDetailBean.instructions}"
|
||||
/>
|
||||
</tc:box>
|
||||
<tc:box label="Notes">
|
||||
<tc:out escape="false"
|
||||
</p:panelGrid>
|
||||
<p:panelGrid columns="1">
|
||||
<f:facet name="header">
|
||||
<h:outputText styleClass="subtitle" value="Notes" />
|
||||
</f:facet>
|
||||
<h:outputText escape="false"
|
||||
value="#{recipeDetailBean.modifications}"
|
||||
/>
|
||||
</tc:box>
|
||||
</tc:panel>
|
||||
</tc:segmentLayout>
|
||||
</tc:section>
|
||||
</p:panelGrid>
|
||||
</ui:define>
|
||||
</ui:composition>
|
Loading…
Reference in New Issue
Block a user