Added: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml (added) +++ ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml Sat Dec 20 20:40:27 2008 @@ -0,0 +1,125 @@ +<?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. +--> + +<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> + + <simple-method method-name="sendEmailToCustomer" short-description="Send Mail When Customer Request is created or commpleted."> + <entity-one entity-name="CustRequest" value-name="custReq"/> + <if> + <condition> + <if-compare field="custReq.statusId" value="CRQ_COMPLETED" operator="equals"></if-compare> + </condition> + <then> + <if-not-empty field="custReq.fromPartyId"> + <entity-and entity-name="PartyAndUserLogin" list-name="partyUserLogin"> + <field-map field-name="partyId" env-name="custReq.fromPartyId"/> + </entity-and> + <first-from-list entry-name="partyUserLogin" list-name="partyUserLogin"/> + <entity-one entity-name="UserPreference" value-name="userPref"> + <field-map field-name="userLoginId" value="${partyUserLogin.userLoginId}"/> + <field-map field-name="userPrefTypeId" value="sendCustRequestEmail"/> + </entity-one> + <if-empty field="userPref.userPrefValue"> + <!-- set send customer requst email field to default--> + <set field="setUserPref.userPrefMap.sendCustRequestEmail" value="Y"/> + <entity-one entity-name="UserLogin" value-name="userLogin"> + <field-map field-name="userLoginId" value="system"/> + </entity-one> + <set field="setUserPref.userLoginId" from-field="userLogin.userLoginId"/> + <set field="setUserPref.userLogin" from-field="userLogin"/> + <set field="setUserPref.userPrefGroupTypeId" value="MyPage"/> + <call-service service-name="setUserPreferenceGroup" in-map-name="setUserPref" include-user-login="false"/> + </if-empty> + <!-- if customer want to send email notification when customer request completed then send email--> + <if> + <condition> + <or> + <if-compare field="userPref.userPrefValue" value="Y" operator="equals"/> + <if-empty field="userPref.userPrefValue"></if-empty> + </or> + </condition> + <then> + <entity-and entity-name="ProductStoreEmailSetting" list-name="storeEmail"> + <field-map field-name="emailType" value="PRDS_CUST_CONFIRM"/> + </entity-and> + <first-from-list entry-name="storeEmail" list-name="storeEmail"/> + <set field="statusCustReq" value="COMPLETED"/> + </then> + </if> + </if-not-empty> + </then> + <else-if> + <condition> + <if-compare field="custReq.statusId" value="CRQ_ACCEPTED" operator="equals"></if-compare> + </condition> + <then> + <entity-and entity-name="ProductStoreEmailSetting" list-name="storeEmail"> + <field-map field-name="emailType" value="PRDS_CUST_CREATED"/> + </entity-and> + <first-from-list entry-name="storeEmail" list-name="storeEmail"/> + <set field="statusCustReq" value="ACCEPTED"/> + </then> + </else-if> + </if> + <!-- Send Email to Customer when Customer Request is Completed or Created--> + <if> + <condition> + <or> + <if-compare field="statusCustReq" value="COMPLETED" operator="equals"/> + <if-compare field="statusCustReq" value="ACCEPTED" operator="equals"/> + </or> + </condition> + <then> + <if-not-empty field="storeEmail.bodyScreenLocation"> + <entity-one entity-name="Person" value-name="person"> + <field-map field-name="partyId" env-name="custReq.fromPartyId"/> + </entity-one> + <set field="getPartyEmail.partyId" from-field="custReq.fromPartyId"/> + <call-service service-name="getPartyEmail" in-map-name="getPartyEmail"> + <result-to-field result-name="emailAddress" field-name="emailParams.sendTo"/> + </call-service> + <entity-and list-name="webSites" entity-name="WebSite"> + <field-map field-name="productStoreId" env-name="storeEmail.productStoreId" /> + </entity-and> + <first-from-list entry-name="webSite" list-name="webSites" /> + <entity-one entity-name="UserLogin" value-name="userLoginSystem"> + <field-map field-name="userLoginId" value="system"/> + </entity-one> + <if-not-empty field="emailParams.sendTo"> + <set field="bodyParameters.person" from-field="person"/> + <set field="bodyParameters.custRequest" from-field="custReq"/> + <set field="bodyParameters.partyId" from-field="custReq.fromPartyId"/> + <set field="emailParams.bodyParameters" from-field="bodyParameters"/> + <set field="emailParams.subject" from-field="storeEmail.subject"/> + <set field="emailParams.sendFrom" from-field="storeEmail.fromAddress"/> + <set field="emailParams.sendCc" from-field="storeEmail.ccAddress"/> + <set field="emailParams.sendBcc" from-field="storeEmail.bccAddress"/> + <set field="emailParams.contentType" value="text/html"/> + <set field="emailParams.bodyScreenUri" from-field="storeEmail.bodyScreenLocation"/> + <set field="emailParams.webSiteId" from-field="webSite.webSiteId"/> + <set field="emailParams.userLogin" from-field="userLoginSystem"/> + <call-service service-name="sendMailFromScreen" in-map-name="emailParams" include-user-login="false"/> + </if-not-empty> + </if-not-empty> + </then> + </if> + </simple-method> +</simple-methods> Propchange: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/script/org/ofbiz/myportal/MyPortalServices.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml (added) +++ ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml Sat Dec 20 20:40:27 2008 @@ -0,0 +1,33 @@ +<?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. +--> + +<service-eca xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/service-eca.xsd"> + <eca service="updateCustRequest" event="commit"> + <condition field-name="oldStatusId" operator="not-equals" value="CRQ_COMPLETED"/> + <condition field-name="statusId" operator="equals" value="CRQ_COMPLETED"/> + <action service="sendEmailToCustomer" mode="sync"/> + </eca> + <eca service="createCustRequestStatus" event="commit"> + <condition field-name="statusId" operator="is-not-empty"/> + <condition field-name="statusId" operator="equals" value="CRQ_ACCEPTED"/> + <action service="sendEmailToCustomer" mode="sync"/> + </eca> +</service-eca> Propchange: ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/servicedef/secas.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml (added) +++ ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml Sat Dec 20 20:40:27 2008 @@ -0,0 +1,33 @@ +<?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. +--> + +<services xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/services.xsd"> + <description>Project Manager service definitions.</description> + + <service name="sendEmailToCustomer" engine="simple" auth="true" default-entity-name="CustRequest" + location="org/ofbiz/myportal/MyPortalServices.xml" invoke="sendEmailToCustomer"> + <description>Send email to customer when customer request is Completed or Created. </description> + <attribute name="custRequestId" type="String" mode="IN"/> + <auto-attributes mode="IN" include="pk" optional="false"/> + <auto-attributes include="nonpk" mode="OUT" optional="true"/> + </service> + +</services> Propchange: ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/servicedef/services.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl (added) +++ ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl Sat Dec 20 20:40:27 2008 @@ -0,0 +1,48 @@ +<#-- +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. +--> + +<#assign selected = headerItem?default("void")> +<div id="app-navigation"> + <h2>My Personal Page</h2> + <ul> + <#if userLogin?has_content> + <#if getMainPage?has_content> + <#list getMainPage as page> + <li<#if selected = "${page.portalPageId}"> class="selected"</#if>><a href="<@ofbizUrl>dashboardExample?portalPageId=${page.portalPageId}</@ofbizUrl>">${page.portalName}</a></li> + </#list> + <#else> + <#list getNA as page> + <li<#if selected = "${page.portalPageId}"> class="selected"</#if>><a href="<@ofbizUrl>dashboardExample?portalPageId=${page.portalPageId}</@ofbizUrl>">${page.portalName}</a></li> + </#list> + </#if> + <#if pages?has_content> + <#list pages as page> + <li<#if selected = "${page.portalPageId}"> class="selected"</#if>><a href="<@ofbizUrl>dashboardExample?portalPageId=${page.portalPageId}</@ofbizUrl>">${page.portalName}</a></li> + </#list> + </#if> + <li class="opposed"><a href="<@ofbizUrl>logout</@ofbizUrl>">${uiLabelMap.CommonLogout}</a></li> + <#--li class="opposed"><a href="http://docs.ofbiz.org/display/OFBENDUSER/My+Page?decorator=printable" target="_blank">${uiLabelMap.CommonHelp}</a></li>--> + <li class="opposed"><a href="http://docs.ofbiz.org/display/OFBENDUSER/My+Page?decorator=printable" url-mode="plain" target-window="new">Help</a></li> + <li class="opposed"><a href="<@ofbizUrl>ManagePortalPages?originalPortalPageId=${originalPortalPageId}</@ofbizUrl>">preferences</a></li> + <#else> + <li class="opposed"><a href="<@ofbizUrl>${checkLoginUrl?if_exists}</@ofbizUrl>">${uiLabelMap.CommonLogin}</a></li> + </#if> + </ul> + <br class="clear" /> +</div> \ No newline at end of file Propchange: ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/templates/appheader.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl (added) +++ ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl Sat Dec 20 20:40:27 2008 @@ -0,0 +1,37 @@ +<#-- +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. +--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> + <title>${title}</title> + <link rel="stylesheet" href="${baseUrl?if_exists}/images/maincss.css" type="text/css"/> + </head> + <body> + <h1>${title}</h1> + <p>Hello ${person.firstName?if_exists} ${person.lastName?if_exists},</p> + <p>Your Customer Request ${custRequest.custRequestName?if_exists} [${custRequest.custRequestId}] has been completed. + <br/><br/> + The status and used hours can always be checked at the url: <br/> + <a href="${baseUrl?if_exists}/mypage/control/ViewRequest?custRequestId=${custRequest.custRequestId}">${baseUrl?if_exists}/mypage/control/ViewRequest?custRequestId=${custRequest.custRequestId}</a> + <br/><br/> + Regards.<br/><br/> + Thank you for your business. + </body> +</html> Propchange: ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/templates/email/CompletedCustRequestNotification.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl (added) +++ ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl Sat Dec 20 20:40:27 2008 @@ -0,0 +1,41 @@ +<#-- +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. +--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> + <title>${title}</title> + <link rel="stylesheet" href="${baseUrl?if_exists}/images/maincss.css" type="text/css"/> + </head> + <body> + <h1>${title}</h1> + <p>Hello ${person.firstName?if_exists} ${person.lastName?if_exists},</p> + <p>Your Customer Request ${custRequest.custRequestName?if_exists} [${custRequest.custRequestId}] has been created successfully. + <br/><br/> + We will solve/implement the request as soon as possible + <br/><br/> + The status and used hours can always be checked at the url: <br/> + <a href="${baseUrl?if_exists}/mypage/control/ViewRequest?custRequestId=${custRequest.custRequestId}">${baseUrl?if_exists}/mypage/control/ViewRequest?custRequestId=${custRequest.custRequestId}</a> + <br/><br/> + Regards. + <br/><br/> + PS. we will notify you when the customer request is completed. + </p> + </body> +</html> Propchange: ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/templates/email/CreateCustRequestNotification.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl Sat Dec 20 20:40:27 2008 @@ -0,0 +1,26 @@ + <div id="partyContent" class="screenlet"> + <div class="screenlet-title-bar"> + <h3>Attach File</h3> + </div> + <div class="screenlet-body"> + + <div class="label">${uiLabelMap.Attach}</div> + <form id="uploadPartyContent" method="post" enctype="multipart/form-data" action="<@ofbizUrl>uploadAttachFiletoEmail</@ofbizUrl>"> + <input type="hidden" name="dataCategoryId" value="PERSONAL"/> + <input type="hidden" name="contentTypeId" value="DOCUMENT"/> + <input type="hidden" name="statusId" value="CTNT_PUBLISHED"/> + <input type="hidden" name="partyId" value="${partyId}" id="contentPartyId"/> + <input type="hidden" name="partyContentTypeId" value="USERDEF"/> + <input type="hidden" name="roleTypeId" value="CONTENT"/> + <input type="hidden" name="communicationEventId" value="${communicationEventId}"/> + <input type="hidden" name="communicationEventTypeId" value="${communicationEventTypeId}"/> + <input type="hidden" name="parentCommEventId" value="${parameters.parentCommEventId?if_exists}"/> + <input type="hidden" name="originalCommEventId" value="${parameters.originalCommEventId?if_exists}"/> + + <input type="file" name="uploadedFile" size="25" id="uploadedFile"/> + <input type="submit" value="${uiLabelMap.CommonUpload}"/><br><br> + <input type="button" value="Back" onClick="javascript:history.go(-1);"> + </form> + <div id='progress_bar'><div></div></div> + </div> + </div> Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/addAttachFile.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl Sat Dec 20 20:40:27 2008 @@ -0,0 +1,37 @@ + <div id="partyContentList"> + <div class="screenlet-title-bar"> + <h3>Attached file</h3> + </div> + <div class="screenlet-body"> + <#if commEventContent?has_content> + <table class="basic-table" cellspacing="0"> + <#list commEventContent as commContent> + <#list partyContent as pContent> + <#assign partyId = pContent.partyId/> + <#if commContent.contentId == pContent.contentId> + <#assign content = pContent.getRelatedOne("Content")> + <#assign fromDate = commContent.fromDate> + <#assign ptype = pContent.partyContentTypeId/> + </#if> + </#list> + <tr> + <td width="30%"> + <#if content?has_content> + <#if (content.contentName?has_content)> + <a href="<@ofbizUrl>img/${content.contentName}?imgId=${content.dataResourceId}</@ofbizUrl>" target="blank"> ${content.contentName?if_exists}</a> + </#if> + </#if> + </td> + <td class="button-col" width="20%"> + <a href="<@ofbizUrl>removeAttachFile/EditCommunicationEvent?partyId=${partyId}&communicationEventTypeId=EMAIL_COMMUNICATION&communicationEventId=${commContent.communicationEventId}&contentId=${commContent.contentId}&fromDate=${fromDate}</@ofbizUrl>">${uiLabelMap.CommonRemove}</a> + </td> + <td width="20%">${commContent.fromDate?if_exists}</td> + <td width="30%"> </td> + </tr> + </#list> + </table> + <#else> + ${uiLabelMap.PartyNoContent} + </#if> + </div> + </div> \ No newline at end of file Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/attachFileList.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp Sat Dec 20 20:40:27 2008 @@ -0,0 +1,20 @@ +<%-- +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. +--%> + +<%response.sendRedirect("control/main");%> Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/index.jsp ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy Sat Dec 20 20:40:27 2008 @@ -0,0 +1,56 @@ +/* + * 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. + */ + +import java.util.*; +import org.ofbiz.entity.*; +import org.ofbiz.base.util.*; +import org.ofbiz.base.util.collections.*; +import org.ofbiz.accounting.invoice.*; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.math.BigDecimal; +import org.ofbiz.base.util.UtilNumber; +import javolution.util.FastList; + +conversionRate = BigDecimal.ONE; +ZERO = BigDecimal.ZERO; +int decimals = UtilNumber.getBigDecimalScale("invoice.decimals"); +int rounding = UtilNumber.getBigDecimalRoundingMode("invoice.rounding"); +invoiceType = delegator.findByPrimaryKey("InvoiceType", ["invoiceTypeId" : invoiceTypeId]); + if (invoiceType.parentTypeId.equals("SALES_INVOICE")) { + otherCurrency = delegator.findByPrimaryKey("Party", ["partyId" : partyId]).preferredCurrencyUomId; + } else { + otherCurrency = delegator.findByPrimaryKey("Party", ["partyId" : partyIdFrom]).preferredCurrencyUomId; + } + // check if conversion required + if (currencyUomId && otherCurrency && otherCurrency != currencyUomId && !otherCurrency.equals(currencyUomId)) { + result = dispatcher.runSync("convertUom", [uomId : currencyUomId, + uomIdTo : otherCurrency, + originalValue : new Double("1.00"), + asOfDate : invoiceDate]); + + if (result.convertedValue != null) { + context.total = (org.ofbiz.accounting.invoice.InvoiceWorker.getInvoiceTotalBd(delegator,invoiceId)).multiply(new BigDecimal(result.convertedValue.toString())).setScale(decimals, rounding); + context.amountToApply = org.ofbiz.accounting.invoice.InvoiceWorker.getInvoiceNotApplied(delegator,invoiceId).multiply(new BigDecimal(result.convertedValue.toString())).setScale(decimals, rounding); + context.currencyUomId = otherCurrency; + } + } else { + context.total = (org.ofbiz.accounting.invoice.InvoiceWorker.getInvoiceTotalBd(delegator,invoiceId)); + context.amountToApply = org.ofbiz.accounting.invoice.InvoiceWorker.getInvoiceNotApplied(delegator,invoiceId); + } Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/ConvertInvoiceCurrency.groovy ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy Sat Dec 20 20:40:27 2008 @@ -0,0 +1,38 @@ +/* + * 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. + */ + +import org.ofbiz.base.util.*; +import org.ofbiz.entity.util.EntityUtil; + +if (parameters.communicationEventId) { + communicationEventRoles = delegator.findByAnd("CommunicationEventRole", + ["communicationEventId" : parameters.communicationEventId, + "partyId" : userLogin.partyId, + "statusId" : "COM_ROLE_READ" + ]); + if (!communicationEventRoles) { + communicationEventRoles = delegator.findByAnd("CommunicationEventRole", + ["communicationEventId" : parameters.communicationEventId, + "partyId" : userLogin.partyId + ]); + } + if (communicationEventRoles) { + context.communicationEventRole = communicationEventRoles.get(0); + } +} \ No newline at end of file Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/actions/GetMyCommunicationEventRole.groovy ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml Sat Dec 20 20:40:27 2008 @@ -0,0 +1,320 @@ +<?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"> + <include location="component://common/webcommon/WEB-INF/common-controller.xml"/> + <include location="component://common/webcommon/WEB-INF/portal-controller.xml"/> + <include location="component://projectmgr/webapp/projectmgr/WEB-INF/controller.xml"/> + <include location="component://party/webapp/partymgr/WEB-INF/controller.xml"/> + + <description>Show personal information in the system</description> + + <request-map uri="main"> + <security https="true" auth="true"/> + <event type="simple" invoke="getPortalPageId" path="org/ofbiz/myportal/Events.xml"/> + <response name="success" type="view" value="main"/> + </request-map> + + <!-- TIMESHEET --> + <request-map uri="myTimesheet"> + <security https="true" auth="true"/> + <response name="success" type="view" value="myTimesheet"/> + </request-map> + <request-map uri="updateTimesheet"> + <security https="true" auth="true"/> + <event type="service-multi" invoke="updateTimeEntryByWorkeffort"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="main"/> + </request-map> + <request-map uri="updateTimesheetKey"> + <security https="true" auth="true"/> + <event type="service-multi" invoke="updateTimeEntryByWorkeffort"/> + <response name="success" type="view" value="myTimesheet"/> + <response name="error" type="view" value="myTimesheet"/> + </request-map> + <request-map uri="statusToComplete"> + <security https="true" auth="true"/> + <event type="service" invoke="updateTimesheet"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="request" value="getToNextDonePage"/> + </request-map> + + <!-- MY TASKS --> + <request-map uri="myTasks"> + <security https="true" auth="true"/> + <response name="success" type="view" value="myTasks"/> + </request-map> + <request-map uri="updateTaskAssigment"> + <security https="true" auth="true"/> + <event type="service" invoke="updateTaskAssigment"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="request" value="getToNextDonePage"/> + </request-map> + + <!-- COMPANY COMMUNICATION --> + <request-map uri="myCompanyComms"> + <security https="true" auth="true"/> + <response name="success" type="view" value="myCompanyComms"/> + </request-map> + <request-map uri="newEvent"> + <security https="true" auth="true"/> + <response name="success" type="view" value="newEvent"/> + </request-map> + <request-map uri="createEvent"> + <security https="true" auth="true"/> + <event type="service" invoke="createWorkEffort"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="newEvent"/> + </request-map> + <request-map uri="deleteEvent"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteWorkEffort"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="request" value="getToNextDonePage"/> + </request-map> + + <!-- MY COMMUNICATIONS --> + <request-map uri="myCommunications"> + <security https="true" auth="true"/> + <response name="success" type="view" value="myCommunications"/> + </request-map> + <request-map uri="createCommunicationEvent"> + <security https="true" auth="true"/> + <event type="service" invoke="createCommunicationEvent"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="main"/> + </request-map> + <request-map uri="deletePartyCommunicationEvent"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteCommunicationEvent"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="main"/> + </request-map> + <request-map uri="RemoveCommunicationEventRole"> + <security https="true" auth="true"/> + <event type="service" invoke="removeCommunicationEventRole"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="request" value="getToNextDonePage"/> + </request-map> + <request-map uri="allocateMsgToParty"> + <security https="true" auth="true"/> + <event type="simple" path="org/ofbiz/party/communication/CommunicationEventServices.xml" invoke="allocateMsgToParty"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="ViewCommunicationEvent"/> + </request-map> + + <request-map uri="deleteCommunicationEvents"> + <security https="true" auth="true"/> + <event type="service-multi" invoke="deleteCommunicationEventWorkEffort"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="main"/> + </request-map> + + <!-- PREFERENCES --> + <request-map uri="preferences"> + <security https="true" auth="true"/> + <response name="success" type="view" value="preferences"/> + </request-map> + <request-map uri="updatePreferences"> + <security https="true" auth="true"/> + <event invoke="updatePreferences" path="org/ofbiz/myportal/Events.xml" type="simple"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="preferences"/> + </request-map> + <request-map uri="custPreferences"> + <security https="true" auth="true"/> + <response name="success" type="view" value="custPreferences"/> + </request-map> + <request-map uri="updateCustPreferences"> + <security https="true" auth="true"/> + <event invoke="updateCustPreferences" path="org/ofbiz/myportal/Events.xml" type="simple"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="custPreferences"/> + </request-map> + + <!-- OTHER COMMUNICATIONS --> + <request-map uri="otherCommunications"> + <security https="true" auth="true"/> + <response name="success" type="view" value="otherCommunications"/> + </request-map> + <request-map uri="setCommunicationEventRoleStatus"> + <security https="true" auth="true"/> + <event type="service" invoke="setCommunicationEventRoleStatus"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="main"/> + </request-map> + <request-map uri="ViewCommunicationEvent"> + <security https="true" auth="true"/> + <event type="simple" invoke="setCommEventToRead" path="org/ofbiz/myportal/Events.xml"/> + <response name="success" type="view" value="ViewCommunicationEvent"/> + <response name="error" type="request" value="getToNextDonePage"/> + </request-map> + + <request-map uri="deleteUnknownCommunicationEvent"> + <security https="true" auth="true"/> + <event type="service" invoke="deleteCommunicationEvent"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="ViewCommunicationEvent"/> + </request-map> + + <!-- to clean up old data --> + <request-map uri="createCommEventRoles"> + <security https="true" auth="true"/> + <event type="simple" invoke="createCommunicationEventRoles" path="org/ofbiz/myportal/Events.xml"/> + <response name="success" type="request" value="getToNextDonePage"/> + <response name="error" type="view" value="main"/> + </request-map> + + <request-map uri="getToNextDonePage"> + <security https="true" auth="true"/> + <event type="simple" invoke="getToNextDonePage" path="org/ofbiz/myportal/Events.xml"/> + <response name="main" type="request" value="main"/> + <response name="ViewCommunicationEvent" type="request" value="ViewCommunicationEvent"/> + <response name="myCommunications" type="request" value="myCommunications"/> + <response name="otherCommunications" type="request" value="otherCommunications"/> + <response name="myTimesheet" type="request" value="myTimesheet"/> + <response name="myTasks" type="request" value="myTasks"/> + <response name="myCompanyComms" type="request" value="myCompanyComms"/> + <response name="error" type="view" value="main"/> + </request-map> + + <!-- Create Customer Request--> + <request-map uri="newrequest"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditRequest"/> + </request-map> + <request-map uri="createrequest"> + <security https="true" auth="true"/> + <event type="service" invoke="createCustRequest"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="EditRequest"/> + </request-map> + <request-map uri="updateRequest"> + <security https="true" auth="true"/> + <event type="service" invoke="updateCustRequest"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="main"/> + </request-map> + <request-map uri="listInvoices"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ListInvoices"/> + </request-map> + <request-map uri="listProjects"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ListProjects"/> + </request-map> + + <!-- EMAIL COMMUNICATIONS --> + <request-map uri="NewCommunicationEvents"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditCommunicationEvent"/> + </request-map> + + <request-map uri="NewCommunicationEvent"> + <security https="true" auth="true"/> + <event type="service" invoke="createCommunicationEvent"/> + <response name="success" type="view" value="EditCommunicationEvent"/> + </request-map> + + <request-map uri="updateCommunicationEvent"> + <security https="true" auth="true"/> + <event type="service" invoke="updateCommunicationEvent"/> + <response name="success" type="view" value="main"/> + <response name="error" type="view" value="ViewCommunicationEvent"/> + </request-map> + + <request-map uri="addAttachmentEmail"> + <security https="true" auth="true"/> + <response name="success" type="view" value="addAttachmentEmail"/> + </request-map> + + <request-map uri="addContentToCommEvent"> + <security https="true" auth="true"/> + <event type="simple" path="org/ofbiz/myportal/Events.xml" invoke="addContentToCommEvent"/> + <response name="success" type="request" value="NewCommunicationEvents"/> + <response name="error" type="view" value="EditCommunicationEvent"/> + </request-map> + + <request-map uri="uploadAttachFiletoEmail"> + <security https="true" auth="true"/> + <event type="simple" path="org/ofbiz/myportal/Events.xml" invoke="createCommunicationContent"/> + <response name="success" type="request" value="NewCommunicationEvents"/> + <response name="error" type="view" value="EditCommunicationEvent"/> + </request-map> + + <request-map uri="removeAttachFile"> + <security https="true" auth="true"/> + <event type="service" invoke="removeCommEventContentAssoc"/> + <response name="success" type="request" value="NewCommunicationEvents"/> + <response name="error" type="view" value="EditCommunicationEvent"/> + </request-map> + + <request-map uri="EditCommunicationEvent"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditCommunicationEvent"/> + </request-map> + + <!-- CustRequest Content --> + <request-map uri="EditCustRequestContent"> + <security https="true" auth="true"/> + <response name="success" type="view" value="EditCustRequestContent"/> + </request-map> + + <request-map uri="createCustRequestContent"> + <security auth="true" https="true"/> + <event path="org/ofbiz/order/request/CustRequestEvents.xml" type="simple" invoke="createCustRequestContent"/> + <response name="success" type="request-redirect" value="EditCustRequestContent"/> + <response name="error" type="view" value="EditCustRequestContent"/> + </request-map> + + <request-map uri="deleteCustRequestContent"> + <security auth="true" https="true"/> + <event invoke="deleteCustRequestContent" type="service"/> + <response name="success" type="request-redirect" value="EditCustRequestContent"/> + <response name="error" type="view" value="EditCustRequestContent"/> + </request-map> + + <!-- dashboard --> + <request-map uri="dashboardExample"> + <security https="true" auth="false"/> + <response name="success" type="view" value="dashboardExample"/> + </request-map> + + <view-map name="myTasks" type="screen" page="component://myportal/widget/CommonScreens.xml#MyTasks"/> + <view-map name="myCommunications" type="screen" page="component://myportal/widget/CommonScreens.xml#MyCommunications"/> + <view-map name="otherCommunications" type="screen" page="component://myportal/widget/CommonScreens.xml#OtherCommunications"/> + <view-map name="myCompanyComms" type="screen" page="component://myportal/widget/CommonScreens.xml#MyCompanyComms"/> + <view-map name="myTimesheet" type="screen" page="component://myportal/widget/CommonScreens.xml#MyTimesheet"/> + <view-map name="newEvent" type="screen" page="component://myportal/widget/MyPageScreens.xml#newEvent"/> + <view-map name="ViewCommunicationEvent" type="screen" page="component://myportal/widget/MyPageScreens.xml#ViewCommunicationEvent"/> + <view-map name="ViewRequest" type="screen" page="component://myportal/widget/MyPageScreens.xml#ViewRequest"/> + <view-map name="EditRequest" type="screen" page="component://myportal/widget/MyPageScreens.xml#EditRequest"/> + <view-map name="ListInvoices" type="screen" page="component://myportal/widget/MyPageScreens.xml#ListInvoices"/> + <view-map name="ListProjects" type="screen" page="component://myportal/widget/MyPageScreens.xml#ListProjects"/> + <view-map name="custPreferences" type="screen" page="component://myportal/widget/CommonScreens.xml#custPreferences"/> + <view-map name="EditCommunicationEvent" type="screen" page="component://myportal/widget/MyPageScreens.xml#EditCommunicationEvent"/> + <view-map name="addAttachmentEmail" type="screen" page="component://myportal/widget/MyPageScreens.xml#addAttachmentEmail"/> + <view-map name="EditCustRequestContent" type="screen" page="component://myportal/widget/MyPageScreens.xml#EditCustRequestContent"/> + + <!-- dashboard --> + <view-map name="main" type="screen" page="component://myportal/widget/CommonScreens.xml#main"/> + <view-map name="dashboardExample" type="screen" page="component://myportal/widget/MyPortalScreens.xml#DisplayExamplePage"/> +</site-conf> Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/controller.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml Sat Dec 20 20:40:27 2008 @@ -0,0 +1,99 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> +<!-- + 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. +--> + +<web-app> + <display-name>Open For Business - My Page</display-name> + <description>My Portal component of the Open For Business Project</description> + + <context-param> + <param-name>webSiteId</param-name> + <param-value>WebStore</param-value> + <description>A unique ID used to look up the WebSite entity to get information about catalogs, etc.</description> + </context-param> + <context-param> + <param-name>entityDelegatorName</param-name> + <param-value>default</param-value> + <description>The Name of the Entity Delegator to use, defined in entityengine.xml</description> + </context-param> + <context-param> + <param-name>localDispatcherName</param-name> + <param-value>myportal</param-value> + <description>A unique name used to identify/recognize the local dispatcher for the Service Engine</description> + </context-param> + <context-param> + <param-name>mainDecoratorLocation</param-name> + <param-value>component://myportal/widget/CommonScreens.xml</param-value> + <description>The location of the main-decorator screen to use for this webapp; referred to as a context variable in screen def XML files.</description> + </context-param> + + <filter> + <filter-name>ContextFilter</filter-name> + <display-name>ContextFilter</display-name> + <filter-class>org.ofbiz.webapp.control.ContextFilter</filter-class> + <init-param> + <param-name>disableContextSecurity</param-name> + <param-value>N</param-value> + </init-param> + <init-param> + <param-name>allowedPaths</param-name> + <param-value>/control:/select:/index.html:/index.jsp:/default.html:/default.jsp:/images:/includes/maincss.css</param-value> + </init-param> + <init-param> + <param-name>errorCode</param-name> + <param-value>403</param-value> + </init-param> + <init-param> + <param-name>redirectPath</param-name> + <param-value>/control/main</param-value> + </init-param> + </filter> + <filter-mapping> + <filter-name>ContextFilter</filter-name> + <url-pattern>/*</url-pattern> + </filter-mapping> + + <listener><listener-class>org.ofbiz.webapp.control.ControlEventListener</listener-class></listener> + <listener><listener-class>org.ofbiz.webapp.control.LoginEventListener</listener-class></listener> + <!-- NOTE: not all app servers support mounting implementations of the HttpSessionActivationListener interface --> + <!-- <listener><listener-class>org.ofbiz.webapp.control.ControlActivationEventListener</listener-class></listener> --> + + <servlet> + <servlet-name>ControlServlet</servlet-name> + <display-name>ControlServlet</display-name> + <description>Main Control Servlet</description> + <servlet-class>org.ofbiz.webapp.control.ControlServlet</servlet-class> + <load-on-startup>1</load-on-startup> + </servlet> + <servlet-mapping> + <servlet-name>ControlServlet</servlet-name> + <url-pattern>/control/*</url-pattern> + </servlet-mapping> + + <session-config> + <session-timeout>60</session-timeout> <!-- in minutes --> + </session-config> + + <welcome-file-list> + <welcome-file>index.jsp</welcome-file> + <welcome-file>index.html</welcome-file> + <welcome-file>index.htm</welcome-file> + </welcome-file-list> +</web-app> Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/WEB-INF/web.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Added: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp (added) +++ ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp Sat Dec 20 20:40:27 2008 @@ -0,0 +1,53 @@ +<%-- +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. +--%> + +<%@ page import="org.ofbiz.base.util.*" %> +<html> +<head> +<title>Open For Business Message</title> +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> +</head> + +<% String errorMsg = (String) request.getAttribute("_ERROR_MESSAGE_"); %> + +<body bgcolor="#FFFFFF"> +<div align="center"> + <br/> + <table width="100%" border="1" height="200"> + <tr> + <td> + <table width="100%" border="0" height="200"> + <tr bgcolor="#CC6666"> + <td height="45"> + <div align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="4" color="#FFFFFF"><b>:ERROR MESSAGE:</b></font></div> + </td> + </tr> + <tr> + <td> + <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><%=UtilFormatOut.replaceString(errorMsg, "\n", "<br/>")%></font></div> + </td> + </tr> + </table> + </td> + </tr> + </table> +</div> +<div align="center"></div> +</body> +</html> Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/webapp/myportal/error/error.jsp ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml?rev=728389&view=auto ============================================================================== --- ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml (added) +++ ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml Sat Dec 20 20:40:27 2008 @@ -0,0 +1,379 @@ +<?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="main-decorator"> + <section> + <actions> + <!-- base/top/specific map first, then more common map added for shared labels --> + <property-map resource="MyPortalUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="AccountingUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="WorkEffortUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="ContentUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="OrderUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="ProductUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="ProjectMgrUiLabels" map-name="uiLabelMap" global="true"/> + <property-map resource="HumanResUiLabels" map-name="uiLabelMap" global="true"/> + + <set field="layoutSettings.companyName" from-field="uiLabelMap.MyInformation" global="true"/> + <set field="layoutSettings.companySubtitle" from-field="uiLabelMap.PartyCompanySubtitle" global="true"/> + <!-- layoutSettings.headerImageUrl can be used to specify an application specific logo; if not set, + then the global layoutSettings.commonHeaderImageUrl (specified in GlobalDecorator) will be used. --> + <!--<set field="layoutSettings.headerImageUrl" value="/images/ofbiz_logo.jpg" global="true"/>--> + + <!-- <set field="layoutSettings.headerMiddleBackgroundUrl" value="" global="true"/> --> + <!-- <set field="layoutSettings.headerRightBackgroundUrl" value="" global="true"/> --> + <!-- TODO: Use transform to specify component URI --> + <set field="activeApp" value="example" global="true"/> + <!--set field="applicationMenuName" value="ExampleAppBar" global="true"/> + <set field="applicationMenuLocation" value="component://example/widget/example/ExampleMenus.xml" global="true"/--> + <set field="originalPortalPageId" value="MYPORTAL"/> + <set field="mainPortalPageId" value="MAINMYPORTAL"/> + <set field="appheaderTemplate" value="component://myportal/templates/appheader.ftl"/> + <entity-and entity-name="PortalPage" list-name="pages"> + <field-map field-name="originalPortalPageId" env-name="originalPortalPageId"/> + <field-map field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/> + <order-by field-name="createdStamp"/> + </entity-and> + <entity-and entity-name="PortalPage" list-name="getNA"> + <field-map field-name="ownerUserLoginId" value="_NA_"/> + </entity-and> + <entity-and entity-name="PortalPage" list-name="getMainPage"> + <field-map field-name="originalPortalPageId" env-name="mainPortalPageId"/> + <field-map field-name="ownerUserLoginId" env-name="userLogin.userLoginId"/> + </entity-and> + </actions> + <widgets> + <section> + <condition><not><if-empty field-name="userLogin"/></not></condition> + <actions> + <service service-name="getUserPreferenceGroup" result-map-name="preferences"> + <field-map field-name="userPrefGroupTypeId" value="MyPortal" /> + </service> + </actions> + <widgets/> + </section> + <include-screen name="GlobalDecorator" location="component://common/widget/CommonScreens.xml"/> + </widgets> + </section> + </screen> + + <screen name="CommonPartyDecorator"> + <section> + <actions> + <set field="headerItem" value="viewprofile"/> + <set field="partyId" from-field="userLogin.partyId"/> + <set field="parameters.partyId" from-field="userLogin.partyId"/> + <entity-one entity-name="Party" value-name="party"/> + <entity-one entity-name="Person" value-name="lookupPerson"/> + <entity-one entity-name="PartyGroup" value-name="lookupGroup"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <widgets> + <container style="h1"><label text="${uiLabelMap.PartyTheProfileOf} ${lookupPerson.personalTitle} ${lookupPerson.firstName} ${lookupPerson.middleName} ${lookupPerson.lastName} ${lookupPerson.suffix} ${lookupGroup.groupName} [${partyId}]"/></container> + <decorator-section-include name="body"/> + </widgets> + </section> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + + <screen name="CommonCalendarDecorator"> + <section> + <widgets> + <decorator-section-include name="body"/> + </widgets> + </section> + </screen> + + <screen name="CommonTimesheetDecorator"> + <section> + <actions> + <set field="headerItem" value="${parameters.donePage}"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"/> + </decorator-screen> + </widgets> + </section> + </screen> + <screen name="CommonCommunicationEventDecorator"> + <section> + <actions> + <set field="headerItem" value="${parameters.donePage}"/> + <entity-one entity-name="CommunicationEvent" value-name="commEvent"> + <field-map field-name="communicationEventId" env-name="parameters.communicationEventId"/> + </entity-one> + <script location="component://mypage/webapp/mypage/WEB-INF/actions/GetMyCommunicationEventRole.groovy"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <include-menu location="component://mypage/widget/MyPageMenus.xml" name="CommSubTabBar"/> + <decorator-section-include name="body"/> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> + + <screen name="CommonMyTaskDecorator"> + <section> + <actions> + <set field="headerItem" value="${parameters.donePage}"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"/> + </decorator-screen> + </widgets> + </section> + </screen> + + <screen name="main"> + <section> + <widgets> + <include-screen name="DisplayExamplePage" location="component://myportal/widget/MyPortalScreens.xml"/> + </widgets> + </section> + </screen> + + <screen name="mainEmployee"> + <section> + <actions> + <service service-name="getUserPreferenceGroup" + result-map-name="preferences"> + <field-map field-name="userPrefGroupTypeId" value="MyPage" /> + </service> + <!-- check if there are any customer requests for this user --> + <entity-condition list-name="custRequests" entity-name="CustReqAndTypeAndPartyRel"> + <condition-list combine="and"> + <condition-expr field-name="statusId" operator="equals" value="CRQ_SUBMITTED"/> + <condition-list combine="and"> + <condition-expr field-name="roleTypeIdTo" operator="equals" value="REQ_TAKER"/> + <condition-expr field-name="partyIdTo" operator="equals" env-name="userLogin.partyId"/> + </condition-list> + </condition-list> + <order-by field-name="-custRequestDate"/> + </entity-condition> + </actions> + <widgets> + <section> + <condition> + <not><if-empty field-name="custRequests"/></not> + </condition> + <widgets> + <screenlet title="${uiLabelMap.IncomingCustRequests}" navigation-form-name="ListRequestList" > + <include-form name="ListRequestList" location="component://order/webapp/ordermgr/request/RequestForms.xml"/> + </screenlet> + </widgets> + </section> + <section> + <condition> + <if-compare field-name="preferences.userPrefMap.myCommunications" + operator="equals" value="Y" /> + </condition> + <widgets> + <include-screen name="MyCommunications" + location="component://mypage/widget/MyPageScreens.xml"/> + </widgets> + </section> + <section> + <condition> + <if-compare field-name="preferences.userPrefMap.otherCommunications" + operator="equals" value="Y" /> + </condition> + <widgets> + <include-screen name="OtherCommunications" + location="component://mypage/widget/MyPageScreens.xml" /> + </widgets> + </section> + <section> + <condition> + <if-compare field-name="preferences.userPrefMap.myCompanyComms" + operator="equals" value="Y" /> + </condition> + <widgets> + <include-screen name="MyCompanyComms" + location="component://mypage/widget/MyPageScreens.xml" /> + </widgets> + </section> + <section> + <condition> + <if-compare field-name="preferences.userPrefMap.myTasks" + operator="equals" value="Y" /> + </condition> + <widgets> + <include-screen name="MyTasks" + location="component://mypage/widget/MyPageScreens.xml" /> + </widgets> + </section> + <section> + <condition> + <if-compare field-name="preferences.userPrefMap.myTimesheet" + operator="equals" value="Y" /> + </condition> + <widgets> + <include-screen name="MyTimesheet" + location="component://mypage/widget/MyPageScreens.xml" /> + </widgets> + </section> + </widgets> + </section> + </screen> + + <screen name="mainCustomer"> + <section> + <actions> + <set field="partyId" from-field="userLogin.partyId"/> + <set field="status" from-field="parameters.status" default-value="open"/> + <set field="status" value="${bsh:"all".equals(status)?"%":"open"}"/> + <entity-condition list-name="custRequests" entity-name="CustRequestInfoAndWorkEffortAndPartyRel"> + <condition-list combine="and"> + <condition-expr field-name="fromPartyId" operator="equals" value="${userLogin.partyId}"/> + <condition-list combine="or"> + <condition-expr field-name="statusId" operator="equals" value="CRQ_REVIEWED"/> + <condition-expr field-name="statusId" operator="equals" value="CRQ_ACCEPTED"/> + </condition-list> + </condition-list> + <order-by field-name="+priority"/> + <order-by field-name="+custRequestDate"/> + </entity-condition> + <entity-condition list-name="custRequestsCompleted" entity-name="CustRequestInfoAndWorkEffortAndPartyRel"> + <condition-list combine="and"> + <condition-expr field-name="fromPartyId" operator="equals" value="${userLogin.partyId}"/> + <condition-list combine="or"> + <condition-expr field-name="statusId" operator="equals" value="CRQ_COMPLETED"/> + <condition-expr field-name="statusId" operator="equals" value="CRQ_CANCELLED"/> + </condition-list> + </condition-list> + <order-by field-name="custRequestDate"/> + </entity-condition> + <script location="component://party/webapp/partymgr/WEB-INF/actions/party/GetMyCompany.groovy"/> + <entity-condition list-name="companyCustRequests" entity-name="CustRequestInfoAndWorkEffortAndPartyRel"> + <condition-list combine="and"> + <condition-expr field-name="partyIdFrom" operator="equals" value="${myCompanyId}"/> + <condition-expr field-name="fromPartyId" operator="not-equals" value="${userLogin.partyId}"/> + </condition-list> + <order-by field-name="custRequestDate"/> + </entity-condition> + <!-- only list internal notes to the customer do not show the incoming or outgoing emails: will confuse only --> + <entity-condition entity-name="CommunicationEventAndRole" list-name="commEvents"> + <condition-list combine="and"> + <condition-expr field-name="communicationEventTypeId" operator="equals" value="COMMENT_NOTE" /> + <condition-expr field-name="partyId" operator="equals" value="${partyId}" /> + <condition-list combine="or"> + <condition-expr field-name="roleStatusId" + operator="not-equals" value="COM_ROLE_COMPLETED" /> + <condition-expr field-name="roleStatusId" + operator="like" value="${status}" /> + </condition-list> + </condition-list> + <order-by field-name="-datetimeStarted" /> + </entity-condition> + <service service-name="getUserPreferenceGroup" result-map-name="preferences"> + <field-map field-name="userPrefGroupTypeId" value="MyPage" /> + </service> + </actions> + <widgets> + <screenlet title="${uiLabelMap.MyOpenCustomerRequests}" navigation-form-name="ListCustRequests" > + <link target="newrequest" text="${uiLabelMap.OrderNewRequest}" style="buttontext"/> + <include-form name="ListCustRequests" location="component://mypage/widget/MyPageForms.xml"/> + </screenlet> + <screenlet title="${uiLabelMap.MyCompletedCustomerRequests}" navigation-form-name="ListCustRequestsCompleted"> + <include-form name="ListCustRequestsCompleted" location="component://mypage/widget/MyPageForms.xml"/> + </screenlet> + <section> + <condition> + <not><if-empty field-name="companyCustRequests"/></not> + </condition> + <widgets> + <screenlet title="${uiLabelMap.OtherCompanyCustomerRequests}" navigation-form-name="ListOtherCompanyRequests"> + <include-form name="ListOtherCompanyRequests" location="component://mypage/widget/MyPageForms.xml"/> + </screenlet> + </widgets> + </section> + <screenlet title="${uiLabelMap.CommunicationsOfParty}: ${partyName.firstName} ${partyName.middleName} ${partyName.lastName} ${partyName.groupName} [${partyId}] " + navigation-menu-name="communicationsMenu" navigation-form-name="ListPartyCommEvents" name="myComms"> + <include-menu name="communicationsMenu" location="component://mypage/widget/MyPageMenus.xml" /> + <include-form name="ListPartyCommEvents" location="component://mypage/widget/MyPageForms.xml" /> + </screenlet> + </widgets> + </section> + </screen> + + <screen name="mainNoAccess"> + <section> + <widgets> + <screenlet title="${uiLabelMap.CommonNoAccess}" navigation-form-name="ListRequestList" > + <container> + <label style="h1" text="${uiLabelMap.MyPageNoAccess1}"></label> + </container> + <container> + <label style="h2" text="${uiLabelMap.MyPageNoAccess2}"></label> + </container> + <container> + <label style="h3" text="${uiLabelMap.MyPageNoAccess3}"></label> + </container> + <container> + <label style="h3" text="${uiLabelMap.MyPageNoAccess4}"></label> + </container> + </screenlet> + </widgets> + </section> + </screen> + + <screen name="CommonRequestDecorator"> + <section> + <actions> + <set field="custRequestId" from-field="parameters.custRequestId"/> + <entity-one entity-name="CustRequest" value-name="custRequest"/> + </actions> + <widgets> + <decorator-screen name="main-decorator" location="${parameters.mainDecoratorLocation}"> + <decorator-section name="body"> + <section> + <condition> + <not><if-empty field-name="custRequest"/></not> + </condition> + <widgets> + <include-menu location="component://myportal/widget/MyPageMenus.xml" name="RequestTabBar"/> + </widgets> + </section> + <include-menu name="RequestSubTabBar" location="component://myportal/widget/MyPageMenus.xml"/> + <container> + <label style="h1">[${uiLabelMap.CommonId}:${custRequest.custRequestId}] ${custRequest.custRequestName}</label> + </container> + <decorator-section-include name="body"/> + </decorator-section> + </decorator-screen> + </widgets> + </section> + </screen> +</screens> \ No newline at end of file Propchange: ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/trunk/specialpurpose/myportal/widget/CommonScreens.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml |
Free forum by Nabble | Edit this page |