Author: hansbak
Date: Wed Aug 24 03:25:12 2011
New Revision: 1160969
URL: http://svn.apache.org/viewvc?rev=1160969&view=rev
Log:
missing and updated files of previous revision:1159056
http://svn.apache.org/viewvc?rev=1159056&view=rev replace the HR company tree
with a jquery version
Added:
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
(with props)
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy
(with props)
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
(with props)
Modified:
ofbiz/trunk/applications/humanres/build.xml
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
Modified: ofbiz/trunk/applications/humanres/build.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/build.xml?rev=1160969&r1=1160968&r2=1160969&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/build.xml (original)
+++ ofbiz/trunk/applications/humanres/build.xml Wed Aug 24 03:25:12 2011
@@ -51,7 +51,7 @@ under the License.
<!-- Compilation of the source files
-->
<!-- ================================================================== -->
- <target name="classes" depends="prepare"/>
+ <!--<target name="classes" depends="prepare"/>-->
<!-- ================================================================== -->
<!-- Build JavaDoc -->
Added:
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java?rev=1160969&view=auto
==============================================================================
---
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
(added)
+++
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
Wed Aug 24 03:25:12 2011
@@ -0,0 +1,160 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+
*******************************************************************************/
+package org.ofbiz.humanres;
+
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.io.Writer;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import javolution.util.FastList;
+import javolution.util.FastMap;
+import net.sf.json.JSONObject;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilMisc;
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericValue;
+import org.ofbiz.entity.util.EntityUtil;
+
+public class HumanResEvents {
+ public static final String module = HumanResEvents.class.getName();
+ public static final String resourceError = "ProductErrorUiLabels";
+
+ // Please note : the structure of map in this function is according to the
JSON data map of the jsTree
+ @SuppressWarnings("unchecked")
+ public static void getChildHRCategoryTree(HttpServletRequest request,
HttpServletResponse response){
+ Delegator delegator = (Delegator) request.getAttribute("delegator");
+ String partyId = request.getParameter("partyId");
+ String onclickFunction = request.getParameter("onclickFunction");
+ String additionParam = request.getParameter("additionParam");
+ String hrefString = request.getParameter("hrefString");
+ String hrefString2 = request.getParameter("hrefString2");
+
+ List categoryList = FastList.newInstance();
+ List<GenericValue> childOfComs;
+
+ try {
+ GenericValue partyGroup = delegator.findByPrimaryKey("PartyGroup"
,UtilMisc.toMap("partyId", partyId));
+ if (UtilValidate.isNotEmpty(partyGroup)) {
+ childOfComs =
EntityUtil.filterByDate(delegator.findByAnd("PartyRelationship", UtilMisc.toMap(
+ "partyIdFrom", partyGroup.get("partyId"),
"partyRelationshipTypeId", "GROUP_ROLLUP")));
+ if (UtilValidate.isNotEmpty(childOfComs)) {
+
+ for (GenericValue childOfCom : childOfComs ) {
+ Object catId = null;
+ String catNameField = null;
+ String title = null;
+
+ Map josonMap = FastMap.newInstance();
+ Map dataMap = FastMap.newInstance();
+ Map dataAttrMap = FastMap.newInstance();
+ Map attrMap = FastMap.newInstance();
+
+ catId = childOfCom.get("partyIdTo");
+
+ //Department or Sub department
+ GenericValue childContext =
delegator.findByPrimaryKey("PartyGroup" ,UtilMisc.toMap("partyId", catId));
+ if (UtilValidate.isNotEmpty(childContext)) {
+ catNameField = (String)
childContext.get("groupName");
+ title = catNameField;
+ josonMap.put("title",title);
+
+ }
+ //Check child existing
+ List<GenericValue> childOfSubComs =
EntityUtil.filterByDate(delegator.findByAnd("PartyRelationship", UtilMisc.toMap(
+ "partyIdFrom", catId,
"partyRelationshipTypeId", "GROUP_ROLLUP")));
+ if (UtilValidate.isNotEmpty(childOfSubComs)) {
+ josonMap.put("state", "closed");
+ }
+
+ //Employee
+ GenericValue emContext =
delegator.findByPrimaryKey("Person" ,UtilMisc.toMap("partyId", catId));
+ if (UtilValidate.isNotEmpty(emContext)) {
+ String firstname = (String)
emContext.get("firstName");
+ String lastname = (String)
emContext.get("lastName");
+ if (UtilValidate.isEmpty(lastname)) {
+ lastname = "";
+ }
+ if (UtilValidate.isEmpty(firstname)) {
+ firstname = "";
+ }
+ title = firstname +" "+ lastname;
+ }
+
+ dataAttrMap.put("onClick", onclickFunction + "('" +
catId + additionParam + "')");
+
+ String hrefStr = hrefString + catId;
+ if (UtilValidate.isNotEmpty(hrefString2)) {
+ hrefStr = hrefStr + hrefString2;
+ }
+ dataAttrMap.put("href", hrefStr);
+
+ dataMap.put("attr", dataAttrMap);
+
+ attrMap.put("id", catId);
+ josonMap.put("attr",attrMap);
+ dataMap.put("title", title);
+ josonMap.put("data", dataMap);
+
+ categoryList.add(josonMap);
+ }
+ toJsonObjectList(categoryList,response);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ public static void toJsonObjectList(List attrList, HttpServletResponse
response){
+ String jsonStr = "[";
+ for (Object attrMap : attrList) {
+ JSONObject json = JSONObject.fromObject(attrMap);
+ jsonStr = jsonStr + json.toString() + ',';
+ }
+ jsonStr = jsonStr + "{ } ]";
+ if (UtilValidate.isEmpty(jsonStr)) {
+ Debug.logError("JSON Object was empty; fatal error!",module);
+ }
+ // set the X-JSON content type
+ response.setContentType("application/json");
+ // jsonStr.length is not reliable for unicode characters
+ try {
+ response.setContentLength(jsonStr.getBytes("UTF8").length);
+ } catch (UnsupportedEncodingException e) {
+ Debug.logError("Problems with Json encoding",module);
+ }
+ // return the JSON String
+ Writer out;
+ try {
+ out = response.getWriter();
+ out.write(jsonStr);
+ out.flush();
+ } catch (IOException e) {
+ Debug.logError("Unable to get response writer",module);
+ }
+ }
+}
Propchange:
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange:
ofbiz/trunk/applications/humanres/src/org/ofbiz/humanres/HumanResEvents.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added:
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy?rev=1160969&view=auto
==============================================================================
---
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy
(added)
+++
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy
Wed Aug 24 03:25:12 2011
@@ -0,0 +1,87 @@
+/*
+ * 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.
+ */
+
+/*
+ * This script is also referenced by the ecommerce's screens and
+ * should not contain order component's specific code.
+ */
+import org.ofbiz.entity.util.EntityUtil;
+import org.ofbiz.base.util.*;
+import org.ofbiz.product.catalog.*;
+import org.ofbiz.product.category.*;
+import javolution.util.FastMap;
+import javolution.util.FastList;
+import javolution.util.FastList.*;
+import org.ofbiz.entity.*;
+import java.util.List;
+
+// Put the result of CategoryWorker.getRelatedCategories into the
separateRootType function as attribute.
+// The separateRootType function will return the list of category of given
catalog.
+// PLEASE NOTE : The structure of the list of separateRootType function is
according to the JSON_DATA plugin of the jsTree.
+
+completedTree = FastList.newInstance();
+completedTreeContext = FastList.newInstance();
+existParties = FastList.newInstance();
+
+//internalOrg list
+partyRelationships =
EntityUtil.filterByDate(delegator.findByAnd("PartyRelationship", [partyIdFrom :
partyId, partyRelationshipTypeId : "GROUP_ROLLUP"]));
+if (partyRelationships) {
+ //root
+ partyRoot = delegator.findByPrimaryKey("PartyGroup", [partyId : partyId]);
+ partyRootMap = FastMap.newInstance();
+ partyRootMap.put("partyId", partyId);
+ partyRootMap.put("groupName", partyRoot.getString("groupName"));
+
+ //child
+ for(partyRelationship in partyRelationships) {
+ partyGroup = delegator.findByPrimaryKey("PartyGroup", [partyId :
partyRelationship.getString("partyIdTo")]);
+ partyGroupMap = FastMap.newInstance();
+ partyGroupMap.put("partyId", partyGroup.getString("partyId"));
+ partyGroupMap.put("groupName", partyGroup.getString("groupName"));
+ completedTreeContext.add(partyGroupMap);
+ }
+
+ partyRootMap.put("child", completedTreeContext);
+ completedTree.add(partyRootMap);
+
+}
+// The complete tree list for the category tree
+context.completedTree = completedTree;
+//Filter Existing parties
+existPartiesContexts =
EntityUtil.filterByDate(delegator.findByAnd("PartyRelationship", [partyIdFrom :
partyId]));
+if (existPartiesContexts) {
+ for(existPartiesContext in existPartiesContexts) {
+ partyGroup = delegator.findByPrimaryKey("PartyGroup", [partyId :
existPartiesContext.getString("partyIdTo")]);
+ if (partyGroup) {
+ partyGroupMap = FastMap.newInstance();
+ partyGroupMap.put("partyId", partyGroup.getString("partyId"));
+ partyGroupMap.put("name", partyGroup.getString("groupName"));
+ existParties.add(partyGroupMap);
+ }
+ person = delegator.findByPrimaryKey("Person", [partyId :
existPartiesContext.getString("partyIdTo")]);
+ if (person) {
+ personMap = FastMap.newInstance();
+ personMap.put("partyId", person.getString("partyId"));
+ personMap.put("name", person.getString("firstName"));
+ existParties.add(personMap);
+ }
+ }
+}
+context.existParties = existParties;
+println'=============================================== existParties :
'+existParties;
Propchange:
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange:
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/actions/category/CategoryTree.groovy
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified:
ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml?rev=1160969&r1=1160968&r2=1160969&view=diff
==============================================================================
--- ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
(original)
+++ ofbiz/trunk/applications/humanres/webapp/humanres/WEB-INF/controller.xml
Wed Aug 24 03:25:12 2011
@@ -1056,7 +1056,7 @@ under the License.
</request-map>
<request-map uri="getHRChild">
<security auth="false" https="true"/>
- <event type="java" path="org.ofbiz.humanres.HumanResServices"
invoke="getChildHRCategoryTree"/>
+ <event type="java" path="org.ofbiz.humanres.HumanResEvents"
invoke="getChildHRCategoryTree"/>
<response name="success" type="none"/>
</request-map>
<!-- ===================Lookup Request===================== -->
Added:
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl?rev=1160969&view=auto
==============================================================================
---
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
(added)
+++
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
Wed Aug 24 03:25:12 2011
@@ -0,0 +1,111 @@
+<#--
+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.
+-->
+
+<script type="text/javascript">
+<#-- some labels are not unescaped in the JSON object so we have to do this
manualy -->
+function unescapeHtmlText(text) {
+ return jQuery('<div />').html(text).text()
+}
+
+jQuery(window).load(createTree());
+
+<#-- creating the JSON Data -->
+var rawdata = [
+ <#if (completedTree?has_content)>
+ <@fillTree rootCat = completedTree/>
+ </#if>
+
+ <#macro fillTree rootCat>
+ <#if (rootCat?has_content)>
+ <#list rootCat as root>
+ {
+ "data": {"title" : unescapeHtmlText("<#if
root.groupName?exists>${root.groupName?js_string}
[${root.partyId}]<#else>${root.partyId?js_string}</#if>"), "attr": {"href" :
"<@ofbizUrl>/viewprofile?partyId=${root.partyId}</@ofbizUrl>","onClick" :
"callDocument('${root.partyId}');"}},
+ "attr": {"id" : "${root.partyId}", "rel" : "root"}
+ <#if root.child?exists>
+ ,"state" : "closed"
+ </#if>
+ <#if root_has_next>
+ },
+ <#else>
+ }
+ </#if>
+ </#list>
+ </#if>
+ </#macro>
+ ];
+
+ <#-- create Tree-->
+ function createTree() {
+ jQuery(function () {
+ $.cookie('jstree_select', null);
+ $.cookie('jstree_open', null);
+
+ jQuery("#tree").jstree({
+ "core" : { "initially_open" : [ "${partyId}" ] },
+ "plugins" : [ "themes", "json_data","ui" ,"cookies", "types", "crrm"],
+ "json_data" : {
+ "data" : rawdata,
+ "ajax" : { "url" :
"<@ofbizUrl>getHRChild</@ofbizUrl>", "type" : "POST",
+ "data" : function (n) {
+ return {
+ "partyId" : n.attr ?
n.attr("id").replace("node_","") : 1 ,
+ "additionParam" : "','category" ,
+ "hrefString" : "viewprofile?partyId=" ,
+ "onclickFunction" : "callDocument"
+ };
+ }
+ }
+ },
+ "types" : {
+ "valid_children" : [ "root" ],
+ "types" : {
+ "CATEGORY" : {
+ "icon" : {
+ "image" :
"/images/jquery/plugins/jsTree/themes/apple/d.png",
+ "position" : "10px40px"
+ }
+ }
+ }
+ }
+ });
+ });
+ }
+
+ function callDocument(id,type) {
+ //jQuerry Ajax Request
+ var dataSet = {};
+ URL = 'viewprofile';
+ dataSet = {"partyId" : id, "ajaxUpdateEvent" : "Y"};
+
+ jQuery.ajax({
+ url: URL,
+ type: 'POST',
+ data: dataSet,
+ error: function(msg) {
+ alert("An error occured loading content! : " + msg);
+ },
+ success: function(msg) {
+ jQuery('div.contentarea').html(msg);
+ }
+ });
+ }
+
+</script>
+
+<div id="tree"></div>
Propchange:
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
------------------------------------------------------------------------------
svn:keywords = "Date Rev Author URL Id"
Propchange:
ofbiz/trunk/applications/humanres/webapp/humanres/humanres/category/CategoryTree.ftl
------------------------------------------------------------------------------
svn:mime-type = text/plain