Author: apatel
Date: Mon Aug 10 16:32:42 2009 New Revision: 802849 URL: http://svn.apache.org/viewvc?rev=802849&view=rev Log: Financial account reconcile enhancements. Patch from OFBIZ-2816. Thanks Parimal and Rishi for contribution. Thanks Vince and Eva to help define requirements. Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml ofbiz/trunk/applications/accounting/webapp/accounting/finaccounttrans/FinAccountTrans.ftl ofbiz/trunk/applications/accounting/widget/FinAccountForms.xml ofbiz/trunk/applications/accounting/widget/FinAccountScreens.xml Modified: ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml?rev=802849&r1=802848&r2=802849&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml (original) +++ ofbiz/trunk/applications/accounting/config/AccountingUiLabels.xml Mon Aug 10 16:32:42 2009 @@ -2913,6 +2913,10 @@ <value xml:lang="th">วà¹à¸²à¸à¹à¸§à¹à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸³à¸à¸§à¸à¸¡à¸²à¸</value> <value xml:lang="zh">空ç½æ¶åæ大éé¢</value> </property> + <property key="AccountingEndingBalance"> + <value xml:lang="en">Ending Balance</value> + <value xml:lang="hi_IN">ठà¤à¤¤à¤¿à¤® शà¥à¤·</value> + </property> <property key="AccountingEnterGiftCardLink"> <value xml:lang="de">Geben Sie Ihre Kartennummer (Physikalische und virtuelle) und den Pin-Code an um Sie mit Ihrem Konto zu verknüpfen</value> <value xml:lang="en">Enter your physical and virtual card and pin number to link your account</value> @@ -6185,6 +6189,10 @@ <value xml:lang="th">à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸²à¸£à¸à¹à¸²à¸¢à¹à¸à¸´à¸à¹à¸à¹</value> <value xml:lang="zh">离线æ¯ä»</value> </property> + <property key="AccountingOpeningBalance"> + <value xml:lang="en">Opening Balance</value> + <value xml:lang="hi_IN">पà¥à¤°à¤¾à¤°à¤à¤à¤¿à¤ शà¥à¤·</value> + </property> <property key="AccountingOpenPayments"> <value xml:lang="ar">Ù ÙتÙØ</value> <value xml:lang="de">Offen</value> Modified: ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml?rev=802849&r1=802848&r2=802849&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml (original) +++ ofbiz/trunk/applications/accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml Mon Aug 10 16:32:42 2009 @@ -527,6 +527,7 @@ <set field="approvedGrandTotal" type="BigDecimal" value="0"/> <set field="totalApprovedTransactions" type="Long" value="0"/> <set field="createdApprovedGrandTotal" type="BigDecimal" value="0"/> + <set field="glReconciliationApprovedGrandTotal" type="BigDecimal" value="0"/> <iterate list="finAccountTransactions" entry="finAccountTransaction"> <if-compare field="finAccountTransaction.finAccountTransTypeId" operator="equals" value="WITHDRAWAL"> <if-compare field="finAccountTransaction.statusId" operator="equals" value="FINACT_TRNS_CREATED"> @@ -538,6 +539,9 @@ <set field="totalApprovedTransactions" value="${totalApprovedTransactions + 1}" type="Long"/> <set field="approvedGrandTotal" value="${approvedGrandTotal - finAccountTransaction.amount}" type="BigDecimal"/> <set field="createdApprovedGrandTotal" value="${createdApprovedGrandTotal - finAccountTransaction.amount}" type="BigDecimal"/> + <if-compare-field field="parameters.glReconciliationId" operator="equals" to-field="finAccountTransaction.glReconciliationId"> + <set field="glReconciliationApprovedGrandTotal" value="${glReconciliationApprovedGrandTotal - finAccountTransaction.amount}" type="BigDecimal"/> + </if-compare-field> </if-compare> <else> <if-compare field="finAccountTransaction.statusId" operator="equals" value="FINACT_TRNS_CREATED"> @@ -549,6 +553,9 @@ <set field="totalApprovedTransactions" value="${totalApprovedTransactions + 1}" type="Long"/> <set field="approvedGrandTotal" value="${approvedGrandTotal + finAccountTransaction.amount}" type="BigDecimal"/> <set field="createdApprovedGrandTotal" value="${createdApprovedGrandTotal + finAccountTransaction.amount}" type="BigDecimal"/> + <if-compare-field field="parameters.glReconciliationId" operator="equals" to-field="finAccountTransaction.glReconciliationId"> + <set field="glReconciliationApprovedGrandTotal" value="${glReconciliationApprovedGrandTotal + finAccountTransaction.amount}" type="BigDecimal"/> + </if-compare-field> </if-compare> </else> </if-compare> @@ -605,13 +612,19 @@ <field-to-result field="totalApprovedTransactions"/> <field-to-result field="createdApprovedGrandTotal"/> <field-to-result field="totalCreatedApprovedTransactions"/> + <field-to-result field="glReconciliationApprovedGrandTotal"/> </simple-method> - <simple-method method-name="getFinAccountTransRunningTotal" short-description="Calculate running total of Financial Account Transactions"> + <simple-method method-name="getFinAccountTransRunningTotalAndBalances" short-description="Calculate running total and Balances of Financial Account Transactions"> <set field="runningTotal" type="BigDecimal" from-field="parameters.runningTotal" default-value="0"/> <entity-one entity-name="FinAccountTrans" value-field="finAccountTrans" auto-field-map="true"/> <set field="runningTotal" value="${runningTotal + finAccountTrans.amount}" type="BigDecimal"/> <field-to-result field="runningTotal"/> + <set field="numberOfTransactions" type="Long" from-field="parameters.numberOfTransactions" default-value="0"/> + <set field="numberOfTransactions" type="Long" value="${numberOfTransactions + 1}"/> + <field-to-result field="numberOfTransactions"/> + <set field="openingBalance" type="BigDecimal" from-field="parameters.openingBalance" default-value="0"/> + <set field="endingBalance" type="BigDecimal" value="${openingBalance + runningTotal}"/> <set-service-fields service-name="getPartyAccountingPreferences" map="parameters" to-map="getPartyAccountingPreferencesMap"/> <call-service service-name="getPartyAccountingPreferences" in-map-name="getPartyAccountingPreferencesMap"> <result-to-field result-name="partyAccountingPreference"/> @@ -621,32 +634,50 @@ <property-to-field resource="general" property="currency.uom.id.default" field="currencyUomId"/> </if-empty> <set field="finAccountTransRunningTotal" value="${groovy:org.ofbiz.base.util.UtilFormatOut.formatCurrency(runningTotal, currencyUomId, parameters.locale)}"/> + <set field="endingBalance" value="${groovy:org.ofbiz.base.util.UtilFormatOut.formatCurrency(endingBalance, currencyUomId, parameters.locale)}"/> <field-to-result field="finAccountTransRunningTotal"/> + <field-to-result field="endingBalance"/> </simple-method> <simple-method method-name="reconcileFinAccountTrans" short-description="Reconcile Financial Accounting Transaction"> <now-timestamp field="nowTimestamp"/> <entity-one entity-name="FinAccountTrans" value-field="finAccountTrans" auto-field-map="true"/> + <if-not-empty field="finAccountTrans.glReconciliationId"> + <get-related-one relation-name="GlReconciliation" value-field="finAccountTrans" to-value-field="glReconciliation"/> + <set-service-fields service-name="updateGlReconciliation" map="glReconciliation" to-map="updateGlReconciliationMap"/> + </if-not-empty> <if-compare field="finAccountTrans.finAccountTransTypeId" operator="equals" value="ADJUSTMENT"> <set-service-fields service-name="reconcileAdjustmentFinAcctgTrans" map="parameters" to-map="reconcileAdjustmentFinAcctgTransMap"/> <set field="reconcileAdjustmentFinAcctgTransMap.finAccountTrans" from-field="finAccountTrans"/> <set field="reconcileAdjustmentFinAcctgTransMap.organizationPartyId" from-field="parameters.organizationPartyId"/> <call-service service-name="reconcileAdjustmentFinAcctgTrans" in-map-name="reconcileAdjustmentFinAcctgTransMap"/> + <if-not-empty field="finAccountTrans.glReconciliationId"> + <set field="updateGlReconciliationMap.reconciledBalance" value="${glReconciliation.reconciledBalance + finAccountTrans.amount}"/> + </if-not-empty> </if-compare> <if-compare field="finAccountTrans.finAccountTransTypeId" operator="equals" value="DEPOSIT"> <set-service-fields service-name="reconcileDepositFinAcctgTrans" map="parameters" to-map="reconcileDepositFinAcctgTransMap"/> <set field="reconcileDepositFinAcctgTransMap.finAccountTrans" from-field="finAccountTrans"/> <call-service service-name="reconcileDepositFinAcctgTrans" in-map-name="reconcileDepositFinAcctgTransMap"/> + <if-not-empty field="finAccountTrans.glReconciliationId"> + <set field="updateGlReconciliationMap.reconciledBalance" value="${glReconciliation.reconciledBalance + finAccountTrans.amount}"/> + </if-not-empty> </if-compare> <if-compare field="finAccountTrans.finAccountTransTypeId" operator="equals" value="WITHDRAWAL"> <set-service-fields service-name="reconcileWithdrawalFinAcctgTrans" map="parameters" to-map="reconcileWithdrawalFinAcctgTransMap"/> <set field="reconcileWithdrawalFinAcctgTransMap.finAccountTrans" from-field="finAccountTrans"/> <call-service service-name="reconcileWithdrawalFinAcctgTrans" in-map-name="reconcileWithdrawalFinAcctgTransMap"/> + <if-not-empty field="finAccountTrans.glReconciliationId"> + <set field="updateGlReconciliationMap.reconciledBalance" value="${glReconciliation.reconciledBalance - finAccountTrans.amount}"/> + </if-not-empty> </if-compare> <set-service-fields service-name="setFinAccountTransStatus" map="finAccountTrans" to-map="setFinAccountTransStatusMap"/> <set field="setFinAccountTransStatusMap.statusId" value="FINACT_TRNS_APPROVED"/> <call-service service-name="setFinAccountTransStatus" in-map-name="setFinAccountTransStatusMap"/> + <if-not-empty field="finAccountTrans.glReconciliationId"> + <call-service service-name="updateGlReconciliation" in-map-name="updateGlReconciliationMap"/> + </if-not-empty> </simple-method> <simple-method method-name="reconcileAdjustmentFinAcctgTrans" short-description="Reconcile financial accounting transaction of type adjustment"> Modified: ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml?rev=802849&r1=802848&r2=802849&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml (original) +++ ofbiz/trunk/applications/accounting/servicedef/services_finaccount.xml Mon Aug 10 16:32:42 2009 @@ -226,14 +226,18 @@ <attribute name="totalApprovedTransactions" type="Long" mode="OUT" optional="true"/> <attribute name="createdApprovedGrandTotal" type="BigDecimal" mode="OUT" optional="true"/> <attribute name="totalCreatedApprovedTransactions" type="Long" mode="OUT" optional="true"/> + <attribute name="glReconciliationApprovedGrandTotal" type="BigDecimal" mode="OUT" optional="true"/> </service> - <service name="getFinAccountTransRunningTotal" engine="simple" - location="component://accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml" invoke="getFinAccountTransRunningTotal"> + <service name="getFinAccountTransRunningTotalAndBalances" engine="simple" + location="component://accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml" invoke="getFinAccountTransRunningTotalAndBalances"> <description>Financial Account Running Total</description> <attribute name="finAccountTransId" type="String" mode="IN" optional="false"/> <attribute name="organizationPartyId" type="String" mode="IN" optional="false"/> + <attribute name="openingBalance" type="BigDecimal" mode="IN" optional="true"/> <attribute name="runningTotal" type="BigDecimal" mode="INOUT" optional="true"/> + <attribute name="numberOfTransactions" type="Long" mode="INOUT" optional="true"/> <attribute name="finAccountTransRunningTotal" type="String" mode="OUT" optional="true"/> + <attribute name="endingBalance" type="String" mode="OUT" optional="true"/> </service> <service name="reconcileFinAccountTrans" engine="simple" location="component://accounting/script/org/ofbiz/accounting/finaccount/FinAccountServices.xml" invoke="reconcileFinAccountTrans"> Modified: ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml?rev=802849&r1=802848&r2=802849&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml (original) +++ ofbiz/trunk/applications/accounting/webapp/accounting/WEB-INF/controller.xml Mon Aug 10 16:32:42 2009 @@ -1936,8 +1936,8 @@ <security https="true" auth="true"/> <response name="success" type="view" value="BankReconciliation"/> </request-map> - <request-map uri="getFinAccountTransRunningTotal"> - <event type="jsonservice-multi" invoke="getFinAccountTransRunningTotal"/> + <request-map uri="getFinAccountTransRunningTotalAndBalances"> + <event type="jsonservice-multi" invoke="getFinAccountTransRunningTotalAndBalances"/> <response name="success" type="none"/> <response name="error" type="none"/> </request-map> Modified: ofbiz/trunk/applications/accounting/webapp/accounting/finaccounttrans/FinAccountTrans.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/webapp/accounting/finaccounttrans/FinAccountTrans.ftl?rev=802849&r1=802848&r2=802849&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/webapp/accounting/finaccounttrans/FinAccountTrans.ftl (original) +++ ofbiz/trunk/applications/accounting/webapp/accounting/finaccounttrans/FinAccountTrans.ftl Mon Aug 10 16:32:42 2009 @@ -28,10 +28,10 @@ element.checked = master.checked; } } - getFinAccountTransRunningTotal(); + getFinAccountTransRunningTotalAndBalances(); } -function getFinAccountTransRunningTotal() { +function getFinAccountTransRunningTotalAndBalances() { var form = document.selectAllForm; var finAccountTransList = form.elements.length; var isSingle = true; @@ -54,17 +54,23 @@ if (!isSingle) { $('submitButton').disabled = false; if ($('showFinAccountTransRunningTotal')) { - new Ajax.Request('getFinAccountTransRunningTotal', { + new Ajax.Request('getFinAccountTransRunningTotalAndBalances', { asynchronous: false, onSuccess: function(transport) { var data = transport.responseText.evalJSON(true); $('showFinAccountTransRunningTotal').update(data.finAccountTransRunningTotal); + $('finAccountTransRunningTotal').update(data.finAccountTransRunningTotal); + $('numberOfFinAccountTransaction').update(data.numberOfTransactions); + $('endingBalance').update(data.endingBalance); }, parameters: $('listFinAccTra').serialize(), requestHeaders: {Accept: 'application/json'} }); } } else { if ($('showFinAccountTransRunningTotal')) { $('showFinAccountTransRunningTotal').update(""); + $('finAccountTransRunningTotal').update(""); + $('numberOfFinAccountTransaction').update(""); + $('endingBalance').update($('openingBalanceWithUom').value); } $('submitButton').disabled = true; } @@ -84,6 +90,10 @@ <input name="_useRowSubmit" type="hidden" value="Y"/> <input name="finAccountId" type="hidden" value="${parameters.finAccountId}"/> <input name="statusId" type="hidden" value="${parameters.statusId?if_exists}"/> + <#if !grandTotal?exists> + <input name="openingBalance" type="hidden" value="${glReconciliationApprovedGrandTotal}"/> + <input name="openingBalanceWithUom" type="hidden" id="openingBalanceWithUom" value="<@ofbizCurrency amount=glReconciliationApprovedGrandTotal?if_exists/>"/> + </#if> <#assign glReconciliations = delegator.findByAnd("GlReconciliation", {"glAccountId" : finAccount.postToGlAccountId, "reconciledBalance" : null}, Static["org.ofbiz.base.util.UtilMisc"].toList("reconciledDate DESC"))> <#if (glReconciliationId?has_content && (glReconciliationId == "_NA_" && finAccountTransList?has_content)) || !grandTotal?exists> <div align="right"> @@ -228,7 +238,7 @@ <input name="glReconciliationId_o_${finAccountTrans_index}" type="hidden" value="${glReconciliationId}"/> </#if> <#if ((glReconciliationId?has_content && glReconciliationId == "_NA_") && (glReconciliations?has_content && finAccountTransList?has_content)) || !grandTotal?exists> - <td><input id="finAccountTransId_${finAccountTrans_index}" name="_rowSubmit_o_${finAccountTrans_index}" type="checkbox" value="Y" onclick="javascript:getFinAccountTransRunningTotal();"/></td> + <td><input id="finAccountTransId_${finAccountTrans_index}" name="_rowSubmit_o_${finAccountTrans_index}" type="checkbox" value="Y" onclick="javascript:getFinAccountTransRunningTotalAndBalances();"/></td> </#if> <#if !grandTotal?exists> <#if finAccountTrans.finAccountTransTypeId="ADJUSTMENT"> @@ -266,7 +276,7 @@ </form> </#if> </#list> - <table border="1" class="basic-table"> + <table class="basic-table"> <tr> <th>${uiLabelMap.FormFieldTitle_grandTotal} / ${uiLabelMap.AccountingNumberOfTransaction}</th> <th>${uiLabelMap.AccountingCreatedGrandTotal} / ${uiLabelMap.AccountingNumberOfTransaction}</th> @@ -280,6 +290,22 @@ <td>${createdApprovedGrandTotal} / ${totalCreatedApprovedTransactions}</td> </tr> </table> + <#else> + <table class="basic-table"> + <tr> + <th>${uiLabelMap.AccountingRunningTotal} / ${uiLabelMap.AccountingNumberOfTransaction}</th> + <th>${uiLabelMap.AccountingOpeningBalance}</th> + <th>${uiLabelMap.AccountingEndingBalance}</th> + </tr> + <tr> + <td> + <span id="finAccountTransRunningTotal"></span> / + <span id="numberOfFinAccountTransaction"></span> + </td> + <td><@ofbizCurrency amount=glReconciliationApprovedGrandTotal?if_exists/></td> + <td id="endingBalance"><@ofbizCurrency amount=glReconciliationApprovedGrandTotal?if_exists/></td> + </tr> + </table> </#if> <#else> <h2>${uiLabelMap.AccountingNoRecordFound}</h2> Modified: ofbiz/trunk/applications/accounting/widget/FinAccountForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/FinAccountForms.xml?rev=802849&r1=802848&r2=802849&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/FinAccountForms.xml (original) +++ ofbiz/trunk/applications/accounting/widget/FinAccountForms.xml Mon Aug 10 16:32:42 2009 @@ -321,6 +321,12 @@ <form name="FindBankReconciliationFinAcctTrans" target="BankReconciliation" extends="FindFinAccountTransactions"> <field name="statusId" title="${uiLabelMap.CommonStatus}"><display-entity entity-name="StatusItem"/></field> + <field name="glReconciliationId" position="2"> + <drop-down> + <list-options list-name="glReconciliations" key-name="glReconciliationId" + description="${glReconciliationName}[[${glReconciliationId}] [${reconciledDate}] [${reconciledBalance}]]"/> + </drop-down> + </field> </form> <form name="EditDepositPayment" extends="EditPayment" extends-resource="component://accounting/webapp/accounting/payment/PaymentForms.xml" target="createDepositPayment"> Modified: ofbiz/trunk/applications/accounting/widget/FinAccountScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/accounting/widget/FinAccountScreens.xml?rev=802849&r1=802848&r2=802849&view=diff ============================================================================== --- ofbiz/trunk/applications/accounting/widget/FinAccountScreens.xml (original) +++ ofbiz/trunk/applications/accounting/widget/FinAccountScreens.xml Mon Aug 10 16:32:42 2009 @@ -460,9 +460,6 @@ <set field="tabButtonItem" value="FinAccountTrans"/> <set field="layoutSettings.javaScripts[]" value="/images/prototypejs/popup.js" global="true"/> <set field="layoutSettings.styleSheets[+0]" value="/images/prototypejs/popup.css" global="true"/> - <service service-name="getFinAccountTransListAndTotals" result-map="finAccountTransListAndTotals" auto-field-map="true"/> - <set field="finAccountTransList" type="List" from-field="finAccountTransListAndTotals.finAccountTransList"/> - <set field="createdApprovedGrandTotal" type="BigDecimal" from-field="finAccountTransListAndTotals.createdApprovedGrandTotal"/> <set field="finAccountId" from-field="parameters.finAccountId"/> <entity-one entity-name="FinAccount" value-field="finAccount"/> </actions> @@ -473,20 +470,43 @@ <parameter param-name="finAccountId" from-field="finAccountId"/> </link> <section> + <condition> + <not> + <if-empty field="parameters.glReconciliationId"/> + </not> + </condition> <actions> - <entity-condition entity-name="GlAccountOrganizationAndClass" list="glAccountOrgAndClassList"> - <condition-expr field-name="organizationPartyId" from-field="defaultOrganizationPartyId"/> - <order-by field-name="glAccountId"/> - </entity-condition> + <service service-name="getFinAccountTransListAndTotals" result-map="finAccountTransListAndTotals" auto-field-map="true"/> + <set field="finAccountTransList" type="List" from-field="finAccountTransListAndTotals.finAccountTransList"/> + <set field="createdApprovedGrandTotal" type="BigDecimal" from-field="finAccountTransListAndTotals.createdApprovedGrandTotal"/> + <set field="glReconciliationApprovedGrandTotal" type="BigDecimal" from-field="finAccountTransListAndTotals.glReconciliationApprovedGrandTotal"/> </actions> <widgets> + <section> + <actions> + <entity-condition entity-name="GlAccountOrganizationAndClass" list="glAccountOrgAndClassList"> + <condition-expr field-name="organizationPartyId" from-field="defaultOrganizationPartyId"/> + <order-by field-name="glAccountId"/> + </entity-condition> + </actions> + <widgets> + <screenlet id="FinAccountTransPanel" collapsible="true"> + <include-form name="FindBankReconciliationFinAcctTrans" location="component://accounting/widget/FinAccountForms.xml"/> + </screenlet> + <platform-specific> + <html><html-template location="component://accounting/webapp/accounting/finaccounttrans/FinAccountTrans.ftl"/></html> + </platform-specific> + </widgets> + </section> + </widgets> + <fail-widgets> <screenlet id="FinAccountTransPanel" collapsible="true"> <include-form name="FindBankReconciliationFinAcctTrans" location="component://accounting/widget/FinAccountForms.xml"/> </screenlet> <platform-specific> <html><html-template location="component://accounting/webapp/accounting/finaccounttrans/FinAccountTrans.ftl"/></html> </platform-specific> - </widgets> + </fail-widgets> </section> </decorator-section> </decorator-screen> |
Free forum by Nabble | Edit this page |