You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2008/09/30 01:59:00 UTC
svn commit: r700310 - in /ofbiz/trunk/framework: common/config/ common/data/
common/servicedef/ common/webcommon/WEB-INF/ common/webcommon/includes/
service/entitydef/ service/src/org/ofbiz/service/calendar/
webtools/webapp/webtools/WEB-INF/ webtools/w...
Author: adrianc
Date: Mon Sep 29 16:58:59 2008
New Revision: 700310
URL: http://svn.apache.org/viewvc?rev=700310&view=rev
Log:
Temporal Expression UI artifacts. There is a Temporal Expression Maintenance screen in the Webtools component.
I tried my best to break this up into re-usable pieces and put them where I thought they made sense. Feel free to move things around if you have a better idea.
Internationalization note: this commit contains new UI labels.
Added:
ofbiz/trunk/framework/common/config/TemporalExpressionUiLabels.xml (with props)
ofbiz/trunk/framework/common/webcommon/WEB-INF/tempexpr-controller.xml (with props)
ofbiz/trunk/framework/common/webcommon/includes/commonMacros.ftl (with props)
ofbiz/trunk/framework/service/src/org/ofbiz/service/calendar/ExpressionUiHelper.java (with props)
ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/
ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprForms.xml (with props)
ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMacros.ftl (with props)
ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMaint.ftl (with props)
ofbiz/trunk/framework/webtools/widget/TempExprScreens.xml (with props)
Modified:
ofbiz/trunk/framework/common/config/CommonUiLabels.xml
ofbiz/trunk/framework/common/data/CommonSecurityData.xml
ofbiz/trunk/framework/common/servicedef/services.xml
ofbiz/trunk/framework/service/entitydef/entitymodel.xml
ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
ofbiz/trunk/framework/webtools/webapp/webtools/includes/appheader.ftl
ofbiz/trunk/framework/webtools/widget/CommonScreens.xml
ofbiz/trunk/framework/webtools/widget/WebToolsMenus.xml
Modified: ofbiz/trunk/framework/common/config/CommonUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/config/CommonUiLabels.xml?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/config/CommonUiLabels.xml (original)
+++ ofbiz/trunk/framework/common/config/CommonUiLabels.xml Mon Sep 29 16:58:59 2008
@@ -676,6 +676,9 @@
<value xml:lang="zh_CN">å
«æ</value>
<value xml:lang="zh">å
«æ</value>
</property>
+ <property key="CommonAutoAssignedId">
+ <value xml:lang="en">Unique ID - auto-assigned if blank</value>
+ </property>
<property key="CommonAvailable">
<value xml:lang="ar">Ù
تÙÙØ±</value>
<value xml:lang="cs">k dispozici</value>
@@ -3387,6 +3390,18 @@
<value xml:lang="zh_CN">æ¹æ³</value>
<value xml:lang="zh">æ¹æ³</value>
</property>
+ <property key="CommonMinute">
+ <value xml:lang="ar">Ø¨Ø¯ÙØ©</value>
+ <value xml:lang="de">Jede Minute</value>
+ <value xml:lang="en">Minute</value>
+ <value xml:lang="fr">Chaque minute</value>
+ <value xml:lang="it">Minuto</value>
+ <value xml:lang="pt">Minuto a Minuto</value>
+ <value xml:lang="ro">Minut</value>
+ <value xml:lang="ru">ÐжеминÑÑно</value>
+ <value xml:lang="th">à¸à¸¸à¸à¸à¸²à¸à¸µ</value>
+ <value xml:lang="zh">æ¯åé</value>
+ </property>
<property key="CommonMinutely">
<value xml:lang="ar">Ø¨Ø¯ÙØ©</value>
<value xml:lang="de">Jede Minute</value>
@@ -5042,6 +5057,19 @@
<value xml:lang="zh_CN">æç´¢ç»æ</value>
<value xml:lang="zh">æç´¢</value>
</property>
+ <property key="CommonSecond">
+ <!-- The time measurement, not the ordinal -->
+ <value xml:lang="ar">ثاÙÙØ§</value>
+ <value xml:lang="de">Zweiter</value>
+ <value xml:lang="en">Second</value>
+ <value xml:lang="fr">Deuxièmement</value>
+ <value xml:lang="it">Secondo</value>
+ <value xml:lang="pt">Secundariamente</value>
+ <value xml:lang="ro">Al doilea</value>
+ <value xml:lang="ru">Ðо-вÑоÑÑÑ
</value>
+ <value xml:lang="th">à¹à¸à¸¥à¸³à¸à¸±à¸à¸à¸µà¹à¸ªà¸à¸</value>
+ <value xml:lang="zh">æ¯ç§</value>
+ </property>
<property key="CommonSecondly">
<value xml:lang="ar">ثاÙÙØ§</value>
<value xml:lang="de">Zweiter</value>
Added: ofbiz/trunk/framework/common/config/TemporalExpressionUiLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/config/TemporalExpressionUiLabels.xml?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/config/TemporalExpressionUiLabels.xml (added)
+++ ofbiz/trunk/framework/common/config/TemporalExpressionUiLabels.xml Mon Sep 29 16:58:59 2008
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <property key="TemporalExpression">
+ <value xml:lang="en">Temporal Expression</value>
+ </property>
+ <property key="TemporalExpressionFind">
+ <value xml:lang="en">Find Temporal Expression</value>
+ </property>
+ <property key="TemporalExpressionId">
+ <value xml:lang="en">Expression Id</value>
+ </property>
+ <property key="TemporalExpressionType">
+ <value xml:lang="en">Expression Type</value>
+ </property>
+ <property key="TemporalExpressionFreqCount">
+ <value xml:lang="en">Frequency Count</value>
+ </property>
+ <property key="TemporalExpressionFreqType">
+ <value xml:lang="en">Frequency Type</value>
+ </property>
+ <property key="TemporalExpressionTimeFormat">
+ <value xml:lang="en">hh:mm:ss</value>
+ </property>
+ <property key="TemporalExpressionOccurrence">
+ <value xml:lang="en">Occurrence</value>
+ </property>
+ <property key="TemporalExpressionMaintenance">
+ <value xml:lang="en">Temporal Expression Maintenance</value>
+ </property>
+ <property key="TemporalExpressionCollections">
+ <value xml:lang="en">Expression Collections</value>
+ </property>
+ <property key="TemporalExpression_DATE_RANGE">
+ <value xml:lang="en">Date Range</value>
+ </property>
+ <property key="TemporalExpression_DAY_IN_MONTH">
+ <value xml:lang="en">Day In Month</value>
+ </property>
+ <property key="TemporalExpression_DAY_OF_MONTH_RANGE">
+ <value xml:lang="en">Day Of Month Range</value>
+ </property>
+ <property key="TemporalExpression_DAY_OF_WEEK_RANGE">
+ <value xml:lang="en">Day Of Week Range</value>
+ </property>
+ <property key="TemporalExpression_DIFFERENCE">
+ <value xml:lang="en">Difference</value>
+ </property>
+ <property key="TemporalExpression_FREQUENCY">
+ <value xml:lang="en">Frequency</value>
+ </property>
+ <property key="TemporalExpression_INTERSECTION">
+ <value xml:lang="en">Intersection</value>
+ </property>
+ <property key="TemporalExpression_MONTH_RANGE">
+ <value xml:lang="en">Month Range</value>
+ </property>
+ <property key="TemporalExpression_TIME_OF_DAY_RANGE">
+ <value xml:lang="en">Time Of Day Range</value>
+ </property>
+ <property key="TemporalExpression_UNION">
+ <value xml:lang="en">Union</value>
+ </property>
+ <property key="TemporalExpressionInclude">
+ <value xml:lang="en">Include</value>
+ </property>
+ <property key="TemporalExpressionExclude">
+ <value xml:lang="en">Exclude</value>
+ </property>
+</resource>
Propchange: ofbiz/trunk/framework/common/config/TemporalExpressionUiLabels.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: ofbiz/trunk/framework/common/data/CommonSecurityData.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/data/CommonSecurityData.xml?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/data/CommonSecurityData.xml (original)
+++ ofbiz/trunk/framework/common/data/CommonSecurityData.xml Mon Sep 29 16:58:59 2008
@@ -44,4 +44,8 @@
<!-- User preferences security -->
<SecurityPermission description="User preferences admin" permissionId="USERPREF_ADMIN"/>
<SecurityGroupPermission groupId="FULLADMIN" permissionId="USERPREF_ADMIN"/>
+
+ <!-- Temporal expression security -->
+ <SecurityPermission description="Temporal expression admin" permissionId="TEMPEXPR_ADMIN"/>
+ <SecurityGroupPermission groupId="FULLADMIN" permissionId="TEMPEXPR_ADMIN"/>
</entity-engine-xml>
Modified: ofbiz/trunk/framework/common/servicedef/services.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/servicedef/services.xml?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/servicedef/services.xml (original)
+++ ofbiz/trunk/framework/common/servicedef/services.xml Mon Sep 29 16:58:59 2008
@@ -542,4 +542,40 @@
<implements service="permissionInterface"/>
</service>
+
+ <!-- Temporal expression services -->
+ <service name="tempExprPermissionCheck" engine="simple"
+ location="org/ofbiz/common/permission/CommonPermissionServices.xml" invoke="genericBasePermissionCheck">
+ <implements service="permissionInterface"/>
+ <attribute name="primaryPermission" type="String" mode="IN" optional="false" default-value="TEMPEXPR"/>
+ <attribute name="altPermission" type="String" mode="IN" optional="true"/>
+ </service>
+
+ <service name="createTemporalExpression" default-entity-name="TemporalExpression" engine="entity-auto" invoke="create" auth="true">
+ <description>Create a Temporal Expression</description>
+ <permission-service service-name="tempExprPermissionCheck" main-action="CREATE"/>
+ <auto-attributes include="pk" mode="OUT" optional="false"/>
+ <auto-attributes include="nonpk" mode="IN" optional="true"/>
+ </service>
+
+ <service name="updateTemporalExpression" default-entity-name="TemporalExpression" engine="entity-auto" invoke="update" auth="true">
+ <description>Update a Temporal Expression</description>
+ <permission-service service-name="tempExprPermissionCheck" main-action="UPDATE"/>
+ <auto-attributes include="pk" mode="IN" optional="false"/>
+ <auto-attributes include="nonpk" mode="IN" optional="true"/>
+ </service>
+
+ <service name="createTemporalExpressionAssoc" default-entity-name="TemporalExpressionAssoc" engine="entity-auto" invoke="create" auth="true">
+ <description>Create a Temporal Expression Association</description>
+ <permission-service service-name="tempExprPermissionCheck" main-action="CREATE"/>
+ <auto-attributes include="pk" mode="IN" optional="false"/>
+ <auto-attributes include="nonpk" mode="IN" optional="true"/>
+ </service>
+
+ <service name="deleteTemporalExpressionAssoc" default-entity-name="TemporalExpressionAssoc" engine="entity-auto" invoke="delete" auth="true">
+ <description>Delete a Temporal Expression Association</description>
+ <permission-service service-name="exampleGenericPermission" main-action="DELETE"/>
+ <auto-attributes include="pk" mode="IN" optional="false"/>
+ </service>
+
</services>
Added: ofbiz/trunk/framework/common/webcommon/WEB-INF/tempexpr-controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/WEB-INF/tempexpr-controller.xml?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/WEB-INF/tempexpr-controller.xml (added)
+++ ofbiz/trunk/framework/common/webcommon/WEB-INF/tempexpr-controller.xml Mon Sep 29 16:58:59 2008
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd">
+ <description>Temporal Expression Events Configuration File</description>
+ <owner>Copyright 2001-2008 The Apache Software Foundation</owner>
+
+ <handler name="service" type="request" class="org.ofbiz.webapp.event.ServiceEventHandler"/>
+
+ <!-- Temporal expression event mapping -->
+ <request-map uri="createTemporalExpression">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createTemporalExpression"/>
+ <response name="success" type="request" value="editTemporalExpression"/>
+ </request-map>
+ <request-map uri="updateTemporalExpression">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="updateTemporalExpression"/>
+ <response name="success" type="request" value="editTemporalExpression"/>
+ </request-map>
+ <request-map uri="createTemporalExpressionAssoc">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="createTemporalExpressionAssoc"/>
+ <response name="success" type="request" value="editTemporalExpression"/>
+ </request-map>
+ <request-map uri="deleteTemporalExpressionAssoc">
+ <security https="true" auth="true"/>
+ <event type="service" invoke="deleteTemporalExpressionAssoc"/>
+ <response name="success" type="request" value="editTemporalExpression"/>
+ </request-map>
+
+</site-conf>
Propchange: ofbiz/trunk/framework/common/webcommon/WEB-INF/tempexpr-controller.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: ofbiz/trunk/framework/common/webcommon/includes/commonMacros.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/includes/commonMacros.ftl?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/includes/commonMacros.ftl (added)
+++ ofbiz/trunk/framework/common/webcommon/includes/commonMacros.ftl Mon Sep 29 16:58:59 2008
@@ -0,0 +1,76 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<#--
+To use these macros in your template, insert the following line in
+your template file:
+<#include "component://common/webcommon/includes/commonMacros.ftl"/>
+-->
+
+<#assign
+ dayValueList = Static["org.ofbiz.service.calendar.ExpressionUiHelper"].getDayValueList(locale)
+ monthValueList = Static["org.ofbiz.service.calendar.ExpressionUiHelper"].getMonthValueList(locale)
+/>
+
+<#macro NullMacro></#macro>
+
+<#macro DateField formName="" fieldName="" fieldValue="" fieldClass="">
+ <input type="text" name="${fieldName}"<#if fieldValue?has_content> value="${fieldValue}"</#if><#if fieldClass?has_content> class="${fieldClass}"</#if> maxlength="25" size="25"/>
+ <#if javaScriptEnabled>
+ <a href="javascript:call_cal(document.${formName}.${fieldName},'${fieldValue}');">
+ <img src="/images/cal.gif" width="16" height="16" border="0" alt="${uiLabelMap.CommonViewCalendar}" title="${uiLabelMap.CommonViewCalendar}"/></a>
+ </#if>
+ <span class="tooltip">${uiLabelMap.CommonFormatDateTime}</span>
+ <#if fieldClass == "required">
+ <span class="tooltip">${uiLabelMap.CommonRequired}</span>
+ </#if>
+</#macro>
+
+<#macro MonthField fieldName="" fieldValue=-1 fieldClass="">
+ <select name="${fieldName}"<#if fieldClass?has_content> class="${fieldClass}"</#if>>
+ <#list monthValueList as monthValue>
+ <option value="${monthValue.value}"<#if monthValue.value == fieldValue> selected="selected"</#if>>${monthValue.description}</option>
+ </#list>
+ </select>
+ <#if fieldClass == "required">
+ <span class="tooltip">${uiLabelMap.CommonRequired}</span>
+ </#if>
+</#macro>
+
+<#macro DayOfWeekField fieldName="" fieldValue=-1 fieldClass="">
+ <select name="${fieldName}"<#if fieldClass?has_content> class="${fieldClass}"</#if>>
+ <#list dayValueList as dayValue>
+ <option value="${dayValue.value}"<#if dayValue.value == fieldValue> selected="selected"</#if>>${dayValue.description}</option>
+ </#list>
+ </select>
+ <#if fieldClass == "required">
+ <span class="tooltip">${uiLabelMap.CommonRequired}</span>
+ </#if>
+</#macro>
+
+<#macro DayOfMonthField fieldName="" fieldValue=-1 fieldClass="">
+ <select name="${fieldName}"<#if fieldClass?has_content> class="${fieldClass}"</#if>>
+ <#list 1..31 as i>
+ <option value="${i}"<#if i == fieldValue> selected="selected"</#if>>${i}</option>
+ </#list>
+ </select>
+ <#if fieldClass == "required">
+ <span class="tooltip">${uiLabelMap.CommonRequired}</span>
+ </#if>
+</#macro>
Propchange: ofbiz/trunk/framework/common/webcommon/includes/commonMacros.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Modified: ofbiz/trunk/framework/service/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/entitydef/entitymodel.xml?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/framework/service/entitydef/entitymodel.xml Mon Sep 29 16:58:59 2008
@@ -156,7 +156,7 @@
title="Temporal Expression Association">
<field name="fromTempExprId" type="id-ne"><description>The "parent" expression</description></field>
<field name="toTempExprId" type="id-ne"><description>The "child" expression</description></field>
- <field name="exprAssocType" type="id"><description>Expression association type, applies to DIFFERENCE expression types only. Valid values are INCLUDED or EXCLUDED.</description></field>
+ <field name="exprAssocType" type="id"><description>Expression association type. Applies to DIFFERENCE expression types only. Valid values are INCLUDED or EXCLUDED.</description></field>
<prim-key field="fromTempExprId"/>
<prim-key field="toTempExprId"/>
<relation type="one" fk-name="TEMP_EXPR_FROM" rel-entity-name="TemporalExpression" title="From">
@@ -167,6 +167,20 @@
</relation>
</entity>
+ <view-entity entity-name="TemporalExpressionChild"
+ package-name="org.ofbiz.service.schedule"
+ title="Temporal Expression Children View Entity">
+ <member-entity entity-alias="TEA" entity-name="TemporalExpressionAssoc"/>
+ <member-entity entity-alias="TE" entity-name="TemporalExpression"/>
+ <alias-all entity-alias="TEA">
+ <exclude field="toTempExprId"/>
+ </alias-all>
+ <alias-all entity-alias="TE"/>
+ <view-link entity-alias="TEA" rel-entity-alias="TE">
+ <key-map field-name="toTempExprId" rel-field-name="tempExprId"/>
+ </view-link>
+ </view-entity>
+
<!-- ========================================================= -->
<!-- org.ofbiz.service.semaphore -->
<!-- ========================================================= -->
Added: ofbiz/trunk/framework/service/src/org/ofbiz/service/calendar/ExpressionUiHelper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/calendar/ExpressionUiHelper.java?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/calendar/ExpressionUiHelper.java (added)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/calendar/ExpressionUiHelper.java Mon Sep 29 16:58:59 2008
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+package org.ofbiz.service.calendar;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+
+import javolution.util.FastList;
+import javolution.util.FastSet;
+
+import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.entity.GenericDelegator;
+import org.ofbiz.entity.GenericEntityException;
+import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.condition.EntityCondition;
+import org.ofbiz.entity.condition.EntityExpr;
+import org.ofbiz.entity.condition.EntityOperator;
+import org.ofbiz.entity.util.EntityUtil;
+
+/** TemporalExpression UI artifacts worker. */
+public class ExpressionUiHelper {
+
+ /** An array of valid DayInMonth occurrence values. */
+ public static final int Occurrence[] = {1, 2, 3, 4, 5, -1, -2, -3, -4 -5};
+
+ /** Returns a List of valid DayInMonth occurrence int values.
+ * @return
+ */
+ public static List getOccurrenceList() {
+ return Arrays.asList(Occurrence);
+ }
+
+ /** Returns a List of Maps containing day of the week values.
+ * @param locale
+ * @return List of Maps. Each Map has a
+ * <code>description</code> entry and a <code>value</code> entry.
+ */
+ public static List<Map> getDayValueList(Locale locale) {
+ Calendar tempCal = Calendar.getInstance(locale);
+ tempCal.set(Calendar.DAY_OF_WEEK, tempCal.getFirstDayOfWeek());
+ SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE", locale);
+ List<Map> result = new ArrayList<Map>(7);
+ for (int i = Calendar.SUNDAY; i <= Calendar.SATURDAY; i++) {
+ result.add(UtilMisc.toMap("description", dateFormat.format(tempCal.getTime()), "value", new Integer(i)));
+ tempCal.roll(Calendar.DAY_OF_WEEK, 1);
+ }
+ return result;
+ }
+
+ /** Returns a List of Maps containing month values.
+ * @param locale
+ * @return List of Maps. Each Map has a
+ * <code>description</code> entry and a <code>value</code> entry.
+ */
+ public static List<Map> getMonthValueList(Locale locale) {
+ Calendar tempCal = Calendar.getInstance(locale);
+ tempCal.set(Calendar.MONTH, Calendar.JANUARY);
+ SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM", locale);
+ List<Map> result = new ArrayList<Map>(13);
+ for (int i = Calendar.JANUARY; i <= tempCal.getActualMaximum(Calendar.MONTH); i++) {
+ result.add(UtilMisc.toMap("description", dateFormat.format(tempCal.getTime()), "value", new Integer(i)));
+ tempCal.roll(Calendar.MONTH, 1);
+ }
+ return result;
+ }
+
+ /** Returns a List of Maps containing valid Frequency values.
+ * @param uiLabelMap CommonUiLabels label Map
+ * @return List of Maps. Each Map has a
+ * <code>description</code> entry and a <code>value</code> entry.
+ */
+ public static List<Map> getFrequencyValueList(Map<String, Object> uiLabelMap) {
+ List<Map> result = new ArrayList<Map>(6);
+ result.add(UtilMisc.toMap("description", uiLabelMap.get("CommonSecond"), "value", new Integer(Calendar.SECOND)));
+ result.add(UtilMisc.toMap("description", uiLabelMap.get("CommonMinute"), "value", new Integer(Calendar.MINUTE)));
+ result.add(UtilMisc.toMap("description", uiLabelMap.get("CommonHour"), "value", new Integer(Calendar.HOUR_OF_DAY)));
+ result.add(UtilMisc.toMap("description", uiLabelMap.get("CommonDay"), "value", new Integer(Calendar.DAY_OF_MONTH)));
+ result.add(UtilMisc.toMap("description", uiLabelMap.get("CommonMonth"), "value", new Integer(Calendar.MONTH)));
+ result.add(UtilMisc.toMap("description", uiLabelMap.get("CommonYear"), "value", new Integer(Calendar.YEAR)));
+ return result;
+ }
+
+ /** Returns a List of Maps containing valid temporal expression types.
+ * @param uiLabelMap TemporalExpressionUiLabels label Map
+ * @return List of Maps. Each Map has a
+ * <code>description</code> entry and a <code>value</code> entry.
+ */
+ public static List<Map> getExpressionTypeList(Map<String, Object> uiLabelMap) {
+ int listSize = TemporalExpressionWorker.ExpressionTypeList.length;
+ List<Map> result = new ArrayList<Map>(listSize);
+ for (int i = 0; i < listSize; i++) {
+ String exprType = TemporalExpressionWorker.ExpressionTypeList[i];
+ result.add(UtilMisc.toMap("description", uiLabelMap.get("TemporalExpression_" + exprType), "value", exprType));
+ }
+ return result;
+ }
+
+ /** Returns a List of candidate inclusion tempExprId Strings.
+ * @param delegator
+ * @param tempExprId The ID of the temporal expression needing candidates
+ * for inclusion
+ * @return Set of candidate tempExprId Strings
+ */
+ public static Set<String> getCandidateIncludeIds(GenericDelegator delegator, String tempExprId) throws GenericEntityException {
+ List<GenericValue> findList = delegator.findList("TemporalExpressionAssoc", EntityCondition.makeCondition("fromTempExprId", tempExprId), null, null, null, true);
+ Set<String> excludedIds = FastSet.newInstance();
+ for (GenericValue value : findList) {
+ excludedIds.add(value.getString("toTempExprId"));
+ }
+ excludedIds.add(tempExprId);
+ findList = delegator.findList("TemporalExpression", null, null, null, null, true);
+ Set<String> candidateIds = FastSet.newInstance();
+ for (GenericValue value : findList) {
+ candidateIds.add(value.getString("tempExprId"));
+ }
+ candidateIds.removeAll(excludedIds);
+ return candidateIds;
+ }
+
+}
Propchange: ofbiz/trunk/framework/service/src/org/ofbiz/service/calendar/ExpressionUiHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml (original)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/WEB-INF/controller.xml Mon Sep 29 16:58:59 2008
@@ -21,6 +21,7 @@
<site-conf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/site-conf.xsd">
<include location="component://common/webcommon/WEB-INF/common-controller.xml"/>
+ <include location="component://common/webcommon/WEB-INF/tempexpr-controller.xml"/>
<description>WebTools Site Configuration File</description>
<owner>Copyright 2001-2008 The Apache Software Foundation</owner>
@@ -514,6 +515,17 @@
<response name="success" type="none"/>
<response name="error" type="none"/>
</request-map>
+
+ <!-- Temporal expression view mapping -->
+ <request-map uri="editTemporalExpression">
+ <security https="true" auth="true" />
+ <response name="success" type="view" value="editTemporalExpression"/>
+ </request-map>
+ <request-map uri="findTemporalExpression">
+ <security https="true" auth="true" />
+ <response name="success" type="view" value="findTemporalExpression"/>
+ </request-map>
+
<!-- end of request mappings -->
<!-- View Mappings -->
@@ -595,5 +607,10 @@
<!-- Artifact Info Views -->
<view-map name="ArtifactInfo" type="screen" page="component://webtools/widget/ArtifactInfoScreens.xml#ArtifactInfo"/>
+
+ <!-- Temporal expression views -->
+ <view-map name="editTemporalExpression" type="screen" page="component://webtools/widget/TempExprScreens.xml#EditTemporalExpression"/>
+ <view-map name="findTemporalExpression" type="screen" page="component://webtools/widget/TempExprScreens.xml#FindTemporalExpression"/>
+
<!-- end of view mappings -->
</site-conf>
Modified: ofbiz/trunk/framework/webtools/webapp/webtools/includes/appheader.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/includes/appheader.ftl?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/includes/appheader.ftl (original)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/includes/appheader.ftl Mon Sep 29 16:58:59 2008
@@ -34,6 +34,9 @@
<#if security.hasPermission("ARTIFACT_INFO_VIEW", session)>
<li<#if selected == "ArtifactInfo"> class="selected"</#if>><a href="<@o...@ofbizUrl>">Artifact Info</a></li>
</#if>
+ <#if security.hasPermission("TEMPEXPR_ADMIN", session)>
+ <li<#if selected == "tempexpr"> class="selected"</#if>><a href="<@o...@ofbizUrl>">${uiLabelMap.TemporalExpression}</a></li>
+ </#if>
<li class="opposed"><a href="<@o...@ofbizUrl>">${uiLabelMap.CommonLogout}</a></li>
<#else>
<li class="opposed"><a href="<@o...@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li>
Added: ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprForms.xml?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprForms.xml (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprForms.xml Mon Sep 29 16:58:59 2008
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<forms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-form.xsd">
+
+ <!-- Temporal Expression forms -->
+ <form name="FindTemporalExpression" target="findTemporalExpression" type="single">
+ <actions>
+ <set field="expressionTypeList" value="${bsh:org.ofbiz.service.calendar.ExpressionUiHelper.getExpressionTypeList(uiLabelMap);}" type="List"/>
+ </actions>
+ <field name="tempExprId" title="${uiLabelMap.TemporalExpressionId}"><text-find/></field>
+<!-- <field name="tempExprTypeId" title="${uiLabelMap.TemporalExpressionType}">
+ <drop-down allow-empty="true">
+ <list-options list-name="expressionTypeList" key-name="value" description="description"/>
+ </drop-down>
+ </field> -->
+ <field name="noConditionFind"><hidden value="Y"/></field>
+ <field name="submitButton" title="${uiLabelMap.CommonFind}"><submit button-type="button"/></field>
+ </form>
+
+ <form name="BasicExpressionList" type="list"
+ default-table-style="basic-table hover-bar" odd-row-style="alternate-row" header-row-style="header-row-2">
+ <field name="tempExprId" title="${uiLabelMap.TemporalExpressionId}">
+ <hyperlink also-hidden="false" target-type="plain" description="${tempExprId}" target="editTemporalExpression?tempExprId=${tempExprId}"/>
+ </field>
+ <field name="tempExprTypeId" title="${uiLabelMap.TemporalExpressionType}"><display/></field>
+ <field name="date1"><display/></field>
+ <field name="date2"><display/></field>
+ <field name="integer1"><display/></field>
+ <field name="integer2"><display/></field>
+ <field name="string1"><display/></field>
+ <field name="string2"><display/></field>
+ </form>
+
+ <form name="ListTemporalExpressions" extends="BasicExpressionList" list-name="listIt" paginate="true">
+ <actions>
+ <service service-name="performFind" result-map-name="result" result-map-list-name="listIt">
+ <field-map field-name="inputFields" env-name="parameters"/>
+ <field-map field-name="entityName" value="TemporalExpression"/>
+ </service>
+ </actions>
+ </form>
+
+ <form name="ListChildExpressions" extends="BasicExpressionList" list-name="childExpressionList" paginate-target="editTemporalExpression?tempExprId=${tempExprId}">
+ <field name="exprAssocType"><display/></field>
+ <field name="deleteButton" title=" " widget-style="buttontext">
+ <hyperlink also-hidden="false" description="${uiLabelMap.CommonDelete}" target="deleteTemporalExpressionAssoc?tempExprId=${parameters.tempExprId}&fromTempExprId=${fromTempExprId}&toTempExprId=${tempExprId}"/>
+ </field>
+ </form>
+
+</forms>
Propchange: ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprForms.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMacros.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMacros.ftl?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMacros.ftl (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMacros.ftl Mon Sep 29 16:58:59 2008
@@ -0,0 +1,139 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<#--
+To use these macros in your template, insert the following line in
+your template file:
+<#include "component://common/webcommon/includes/tempExprMacros.ftl"/>
+-->
+
+<#include "component://common/webcommon/includes/commonMacros.ftl"/>
+
+<#assign
+ occurrenceList = Static["org.ofbiz.service.calendar.ExpressionUiHelper"].getOccurrenceList()
+ frequencyTypeList = Static["org.ofbiz.service.calendar.ExpressionUiHelper"].getFrequencyValueList(uiLabelMap)
+/>
+
+<#macro DateRange formName="" fromDate="" toDate="">
+ <tr>
+ <td class="label">${uiLabelMap.CommonFrom}</td>
+ <td>
+ <@DateField formName=formName fieldName="date1" fieldValue=fromDate/>
+ </td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.CommonTo}</td>
+ <td>
+ <@DateField formName=currentForm fieldName="date2" fieldValue=toDate/>
+ </td>
+ </tr>
+</#macro>
+
+<#macro DayInMonth fieldValue=0>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionOccurrence}</td>
+ <td>
+ <select name="integer2">
+ <#list 1..5 as i>
+ <option value="${i}"<#if i == fieldValue> selected="selected"</#if>>${i}</option>
+ </#list>
+ <#list -1..-5 as i>
+ <option value="${i}"<#if i == fieldValue> selected="selected"</#if>>${i}</option>
+ </#list>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.CommonDay}</td>
+ <td><@DayOfWeekField fieldName="integer1" fieldValue=(temporalExpression.integer1)?default(1)/></td>
+ </tr>
+</#macro>
+
+<#macro DayOfMonthRange fromDay=1 toDay=31>
+ <tr>
+ <td class="label">${uiLabelMap.CommonFrom}</td>
+ <td><@DayOfMonthField fieldName="integer1" fieldValue=fromDay/></td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.CommonTo}</td>
+ <td><@DayOfMonthField fieldName="integer2" fieldValue=toDay/></td>
+ </tr>
+</#macro>
+
+<#macro DayOfWeekRange fromDay=1 toDay=7>
+ <tr>
+ <td class="label">${uiLabelMap.CommonFrom}</td>
+ <td><@DayOfWeekField fieldName="integer1" fieldValue=fromDay/></td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.CommonTo}</td>
+ <td><@DayOfWeekField fieldName="integer2" fieldValue=toDay/></td>
+ </tr>
+</#macro>
+
+<#macro Frequency formName="" fromDate="" freqType=-1 freqValue=0>
+ <tr>
+ <td class="label">${uiLabelMap.CommonFrom}</td>
+ <td>
+ <@DateField formName=formName fieldName="date1" fieldValue=(temporalExpression.date1)?default("")/>
+ </td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionFreqType}</td>
+ <td>
+ <select name="integer1">
+ <#list frequencyTypeList as freqTypeItem>
+ <option value="${freqTypeItem.value}"<#if freqTypeItem.value == freqType> selected="selected"</#if>>${freqTypeItem.description}</option>
+ </#list>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionFreqCount}</td>
+ <td>
+ <select name="integer2">
+ <#list 1..50 as i>
+ <option value="${i}"<#if i == freqValue> selected="selected"</#if>>${i}</option>
+ </#list>
+ </select>
+ </td>
+ </tr>
+</#macro>
+
+<#macro MonthRange fromMonth=0 toMonth=11>
+ <tr>
+ <td class="label">${uiLabelMap.CommonFrom}</td>
+ <td><@MonthField fieldName="integer1" fieldValue=fromMonth/></td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.CommonTo}</td>
+ <td><@MonthField fieldName="integer2" fieldValue=toMonth/></td>
+ </tr>
+</#macro>
+
+<#macro TimeOfDayRange fromTime="" toTime="">
+ <tr>
+ <td class="label">${uiLabelMap.CommonFrom}</td>
+ <td><input type="text" name="string1" value="${fromTime}" maxlength="8" size="8"/><span class="tooltip">${uiLabelMap.TemporalExpressionTimeFormat}</span></td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.CommonTo}</td>
+ <td><input type="text" name="string2" value="${toTime}" maxlength="8" size="8"/><span class="tooltip">${uiLabelMap.TemporalExpressionTimeFormat}</span></td>
+ </tr>
+</#macro>
Propchange: ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMacros.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Added: ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMaint.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMaint.ftl?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMaint.ftl (added)
+++ ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMaint.ftl Mon Sep 29 16:58:59 2008
@@ -0,0 +1,150 @@
+<#--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+<#include "component://webtools/webapp/webtools/tempexpr/tempExprMacros.ftl"/>
+<h1>${title}</h1>
+<#if temporalExpression?has_content>
+ <#-- Edit existing expression -->
+ <table class="basic-table" cellspacing="0">
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionId}</td>
+ <td>${temporalExpression.tempExprId}</td>
+ </tr>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionType}</td>
+ <td>${uiLabelMap.get("TemporalExpression_" + temporalExpression.tempExprTypeId)}</td>
+ </tr>
+ <#if !"INTERSECTION.UNION.DIFFERENCE"?contains(temporalExpression.tempExprTypeId)>
+ <form name="updateExpression" method="post" action="<@o...@ofbizUrl>">
+ <input type="hidden" name="tempExprId" value="${temporalExpression.tempExprId}"/>
+ <input type="hidden" name="tempExprTypeId" value="${temporalExpression.tempExprTypeId}"/>
+ </#if>
+ <#if temporalExpression.tempExprTypeId == "DATE_RANGE">
+ <@DateRange formName="updateExpression" fromDate=temporalExpression.date1 toDate=temporalExpression.date2/>
+ <#elseif temporalExpression.tempExprTypeId == "DAY_IN_MONTH">
+ <@DayInMonth/>
+ <#elseif temporalExpression.tempExprTypeId == "DAY_OF_MONTH_RANGE">
+ <@DayOfMonthRange fromDay=temporalExpression.integer1 toDay=temporalExpression.integer2/>
+ <#elseif temporalExpression.tempExprTypeId == "DAY_OF_WEEK_RANGE">
+ <@DayOfWeekRange fromDay=temporalExpression.integer1 toDay=temporalExpression.integer2/>
+ <#elseif temporalExpression.tempExprTypeId == "FREQUENCY">
+ <@Frequency formName="updateExpression" fromDate=temporalExpression.date1 freqType=temporalExpression.integer1 freqValue=temporalExpression.integer2/>
+ <#elseif temporalExpression.tempExprTypeId == "MONTH_RANGE">
+ <@MonthRange fromMonth=temporalExpression.integer1 toMonth=temporalExpression.integer2/>
+ <#elseif temporalExpression.tempExprTypeId == "TIME_OF_DAY_RANGE">
+ <@TimeOfDayRange fromTime=temporalExpression.string1 toTime=temporalExpression.string2/>
+ <#elseif "INTERSECTION.UNION.DIFFERENCE"?contains(temporalExpression.tempExprTypeId)>
+ <#assign candidateIdList = Static["org.ofbiz.service.calendar.ExpressionUiHelper"].getCandidateIncludeIds(delegator, temporalExpression.tempExprId)/>
+ <#if "INTERSECTION.UNION"?contains(temporalExpression.tempExprTypeId)>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionInclude}</td>
+ <td><@CreateExprAssocForm formName="includeExpression"/></td>
+ </tr>
+ <#else>
+ <#assign hasInclude = false hasExclude = false/>
+ <#if childExpressionList?has_content>
+ <#list childExpressionList as childExpression>
+ <#if childExpression.exprAssocType == "INCLUDE">
+ <#assign hasInclude = true/>
+ <#elseif childExpression.exprAssocType == "EXCLUDE">
+ <#assign hasExclude = true/>
+ </#if>
+ </#list>
+ </#if>
+ <#if !hasInclude>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionInclude}</td>
+ <td><@CreateExprAssocForm formName="includeExpression" exprAssocType="INCLUDE"/></td>
+ </tr>
+ </#if>
+ <#if !hasExclude>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionExclude}</td>
+ <td><@CreateExprAssocForm formName="excludeExpression" exprAssocType="EXCLUDE"/></td>
+ </tr>
+ </#if>
+ </#if>
+ </#if>
+ <#if !"INTERSECTION.UNION.DIFFERENCE"?contains(temporalExpression.tempExprTypeId)>
+ <tr>
+ <td> </td>
+ <td><input type="submit" name="submitBtn" value="${uiLabelMap.CommonSave}"/></td>
+ </tr>
+ </form>
+ </#if>
+ </table>
+<#else>
+ <#-- Create new expression -->
+ <@CreateForm "DATE_RANGE" CreateDateRange/>
+ <hr/>
+ <@CreateForm "DAY_IN_MONTH" DayInMonth/>
+ <hr/>
+ <@CreateForm "DAY_OF_MONTH_RANGE" DayOfMonthRange/>
+ <hr/>
+ <@CreateForm "DAY_OF_WEEK_RANGE" DayOfWeekRange/>
+ <hr/>
+ <@CreateForm "FREQUENCY" Frequency/>
+ <hr/>
+ <@CreateForm "MONTH_RANGE" MonthRange/>
+ <hr/>
+ <@CreateForm "TIME_OF_DAY_RANGE" TimeOfDayRange/>
+ <hr/>
+ <@CreateForm "INTERSECTION"/>
+ <hr/>
+ <@CreateForm "UNION"/>
+ <hr/>
+ <@CreateForm "DIFFERENCE"/>
+</#if>
+
+<#macro CreateForm expressionTypeId="" formContents=NullMacro>
+ <form name="${currentForm}" method="post" action="<@o...@ofbizUrl>">
+ <input type="hidden" name="tempExprTypeId" value="${expressionTypeId}"/>
+ <table class="basic-table" cellspacing="0">
+ <#assign mapExpression = "TemporalExpression_" + expressionTypeId/>
+ <#assign headingText = uiLabelMap[mapExpression]/>
+ <tr><td colspan="2" class="h2">${headingText}</td></tr>
+ <tr>
+ <td class="label">${uiLabelMap.TemporalExpressionId}</td>
+ <td><input name="tempExprId" type="text" maxlength="20" size="20"/><span class="tooltip">${uiLabelMap.CommonAutoAssignedId}</span></td>
+ </tr>
+ <@formContents/>
+ <tr>
+ <td> </td>
+ <td><input type="submit" name="submitBtn" value="${uiLabelMap.CommonSave}"/></td>
+ </tr>
+ </table>
+ </form>
+</#macro>
+
+<#macro CreateDateRange>
+ <@DateRange formName="DATE_RANGE"/>
+</#macro>
+
+<#macro CreateExprAssocForm formName="" exprAssocType="">
+ <form name="${formName}" method="post" action="<@o...@ofbizUrl>">
+ <input type="hidden" name="tempExprId" value="${temporalExpression.tempExprId}"/>
+ <input type="hidden" name="fromTempExprId" value="${temporalExpression.tempExprId}"/>
+ <input type="hidden" name="exprAssocType" value="${exprAssocType}"/>
+ <select name="toTempExprId">
+ <#list candidateIdList as candidate>
+ <option value="${candidate}">${candidate}</option>
+ </#list>
+ </select>
+ <input type="submit" name="submitBtn" value="${uiLabelMap.CommonSave}"/>
+ </form>
+</#macro>
Propchange: ofbiz/trunk/framework/webtools/webapp/webtools/tempexpr/tempExprMaint.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Modified: ofbiz/trunk/framework/webtools/widget/CommonScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/CommonScreens.xml?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/widget/CommonScreens.xml (original)
+++ ofbiz/trunk/framework/webtools/widget/CommonScreens.xml Mon Sep 29 16:58:59 2008
@@ -24,6 +24,7 @@
<section>
<actions>
<!-- base/top/specific map first, then more common map added for shared labels -->
+ <property-map resource="TemporalExpressionUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="WebtoolsUiLabels" map-name="uiLabelMap" global="true"/>
<property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/>
<set field="layoutSettings.companyName" from-field="uiLabelMap.WebtoolsCompanyName" global="true"/>
Added: ofbiz/trunk/framework/webtools/widget/TempExprScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/TempExprScreens.xml?rev=700310&view=auto
==============================================================================
--- ofbiz/trunk/framework/webtools/widget/TempExprScreens.xml (added)
+++ ofbiz/trunk/framework/webtools/widget/TempExprScreens.xml Mon Sep 29 16:58:59 2008
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+-->
+
+<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/widget-screen.xsd">
+
+ <screen name="TemporalExpressionDecorator">
+ <section>
+ <actions>
+ <set field="headerItem" value="tempexpr"/>
+ <property-map resource="TemporalExpressionUiLabels" map-name="uiLabelMap" global="true"/>
+ <set field="title" value="${uiLabelMap.${titleProperty}}" global="true"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}">
+ <decorator-section name="body">
+ <section>
+ <condition>
+ <if-service-permission service-name="tempExprPermissionCheck" main-action="VIEW"/>
+ </condition>
+ <widgets>
+ <decorator-section-include name="body"/>
+ </widgets>
+ <fail-widgets>
+ <label style="h3">${uiLabelMap.WebtoolsPermissionError}</label>
+ </fail-widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+
+ <screen name="FindTemporalExpression">
+ <section>
+ <actions>
+ <set field="tabMenuItem" value="findExpression"/>
+ <set field="titleProperty" value="${titleProperty}" default-value="TemporalExpressionFind"/>
+ </actions>
+ <widgets>
+ <decorator-screen name="TemporalExpressionDecorator" location="${parameters.tempExprDecoratorLocation}">
+ <decorator-section name="body">
+ <decorator-screen name="FindScreenDecorator" location="component://common/widget/CommonScreens.xml">
+ <decorator-section name="menu-bar">
+ <section>
+ <condition>
+ <if-service-permission service-name="tempExprPermissionCheck" main-action="CREATE"/>
+ </condition>
+ <widgets>
+ <container style="button-bar"><link target="editTemporalExpression" text="${uiLabelMap.CommonCreate}" style="buttontext"/></container>
+ </widgets>
+ </section>
+ </decorator-section>
+ <decorator-section name="search-options">
+ <include-form name="FindTemporalExpression" location="component://webtools/webapp/webtools/tempexpr/tempExprForms.xml"/>
+ </decorator-section>
+ <decorator-section name="search-results">
+ <include-form name="ListTemporalExpressions" location="component://webtools/webapp/webtools/tempexpr/tempExprForms.xml"/>
+ </decorator-section>
+ </decorator-screen>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+
+ <screen name="EditTemporalExpression">
+ <section>
+ <actions>
+ <set field="tabMenuItem" value="editExpression"/>
+ <set field="titleProperty" value="${titleProperty}" default-value="TemporalExpressionMaintenance"/>
+ <entity-one value-name="temporalExpression" entity-name="TemporalExpression"/>
+ <set field="fromTempExprId" from-field="parameters.tempExprId"/>
+ <entity-condition list-name="childExpressionList" entity-name="TemporalExpressionChild">
+ <condition-expr field-name="fromTempExprId" env-name="fromTempExprId"/>
+ </entity-condition>
+ </actions>
+ <widgets>
+ <decorator-screen name="TemporalExpressionDecorator" location="${parameters.tempExprDecoratorLocation}">
+ <decorator-section name="body">
+ <include-menu name="TempExprTabBar" location="component://webtools/widget/WebToolsMenus.xml"/>
+ <platform-specific>
+ <html><html-template location="component://webtools/webapp/webtools/tempexpr/tempExprMaint.ftl"/></html>
+ </platform-specific>
+ <section>
+ <condition>
+ <not><if-empty field-name="childExpressionList"/></not>
+ </condition>
+ <widgets>
+ <include-form name="ListChildExpressions" location="component://webtools/webapp/webtools/tempexpr/tempExprForms.xml"/>
+ </widgets>
+ </section>
+ </decorator-section>
+ </decorator-screen>
+ </widgets>
+ </section>
+ </screen>
+
+</screens>
Propchange: ofbiz/trunk/framework/webtools/widget/TempExprScreens.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: ofbiz/trunk/framework/webtools/widget/WebToolsMenus.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webtools/widget/WebToolsMenus.xml?rev=700310&r1=700309&r2=700310&view=diff
==============================================================================
--- ofbiz/trunk/framework/webtools/widget/WebToolsMenus.xml (original)
+++ ofbiz/trunk/framework/webtools/widget/WebToolsMenus.xml Mon Sep 29 16:58:59 2008
@@ -63,4 +63,18 @@
<link target="LogConfiguration"/>
</menu-item>
</menu>
-</menus>
\ No newline at end of file
+
+ <menu name="TempExprTabBar" type="simple" menu-container-style="button-bar tab-bar"
+ default-selected-style="selected" selected-menuitem-context-field-name="tabMenuItem">
+ <menu-item name="findExpression" title="${uiLabelMap.CommonFind}">
+ <link target="findTemporalExpression"/>
+ </menu-item>
+ <menu-item name="editExpression" title="${uiLabelMap.CommonEdit}">
+ <condition>
+ <not><if-empty field-name="temporalExpression"/></not>
+ </condition>
+ <link target="editTemporalExpression?tempExprId=${temporalExpression.tempExprId}"/>
+ </menu-item>
+ </menu>
+
+</menus>