You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Scott Gray <sc...@hotwaxmedia.com> on 2011/08/24 07:38:04 UTC
Re: svn commit: r1160969 - in /ofbiz/trunk/applications/humanres: ./ src/org/ofbiz/humanres/ webapp/humanres/WEB-INF/ webapp/humanres/WEB-INF/actions/ webapp/humanres/WEB-INF/actions/category/ webapp/humanres/humanres/category/
Hi Hans,
Why do you keep commenting out the ant target in build.xml? Removing it prevents compilation on git based checkouts, I already put it back in after you changed it last week.
Regards
Scott
On 24/08/2011, at 3:25 PM, hansbak@apache.org wrote:
> 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" : "<@o...@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" : "<@o...@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
>
>
Re: svn commit: r1160969 - in /ofbiz/trunk/applications/humanres: ./ src/org/ofbiz/humanres/ webapp/humanres/WEB-INF/ webapp/humanres/WEB-INF/actions/ webapp/humanres/WEB-INF/actions/category/ webapp/humanres/humanres/category/
Posted by Scott Gray <sc...@hotwaxmedia.com>.
Sorry Hans, I didn't notice that a java file had been added in the commit. Now that there are actually source files it should work fine with git.
Thanks
Scott
On 24/08/2011, at 5:55 PM, Hans Bakker wrote:
> If this statement is active, the ./ant command does not seem to compile
> the file: HumanResEvents.java
>
> afterwards i get the error:
> org.ofbiz.webapp.event.EventHandlerException: Error invoking event, the
> class org.ofbiz.humanres.HumanResEvents was not found
>
> commenting out this statement resolves the problem.
>
> Regards,
> Hans
>
>
>
> On Wed, 2011-08-24 at 17:38 +1200, Scott Gray wrote:
>> Hi Hans,
>>
>> Why do you keep commenting out the ant target in build.xml? Removing it prevents compilation on git based checkouts, I already put it back in after you changed it last week.
>>
>> Regards
>> Scott
>>
>> On 24/08/2011, at 3:25 PM, hansbak@apache.org wrote:
>>
>>> 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" : "<@o...@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" : "<@o...@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
>>>
>>>
>>
>
> --
> Ofbiz on twitter: http://twitter.com/apache_ofbiz
> Myself on twitter: http://twitter.com/hansbak
> Antwebsystems.com: Quality services for competitive rates.
>
Re: svn commit: r1160969 - in /ofbiz/trunk/applications/humanres:
./ src/org/ofbiz/humanres/ webapp/humanres/WEB-INF/
webapp/humanres/WEB-INF/actions/ webapp/humanres/WEB-INF/actions/category/
webapp/humanres/humanres/category/
Posted by Hans Bakker <ma...@antwebsystems.com>.
If this statement is active, the ./ant command does not seem to compile
the file: HumanResEvents.java
afterwards i get the error:
org.ofbiz.webapp.event.EventHandlerException: Error invoking event, the
class org.ofbiz.humanres.HumanResEvents was not found
commenting out this statement resolves the problem.
Regards,
Hans
On Wed, 2011-08-24 at 17:38 +1200, Scott Gray wrote:
> Hi Hans,
>
> Why do you keep commenting out the ant target in build.xml? Removing it prevents compilation on git based checkouts, I already put it back in after you changed it last week.
>
> Regards
> Scott
>
> On 24/08/2011, at 3:25 PM, hansbak@apache.org wrote:
>
> > 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" : "<@o...@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" : "<@o...@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
> >
> >
>
--
Ofbiz on twitter: http://twitter.com/apache_ofbiz
Myself on twitter: http://twitter.com/hansbak
Antwebsystems.com: Quality services for competitive rates.