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 |
Free forum by Nabble | Edit this page |