Hi Hans,
I did not have time to review, but could it be the reason we have squares
instead of letters on trunk demo (lang=en)?
Thanks
Jacques
hans...@apache.org wrote:
> Author: hansbak
> Date: Wed Mar 16 03:39:49 2011
> New Revision: 1082041
>
> URL: http://svn.apache.org/viewvc?rev=1082041&view=rev
> Log:
> a new version of the category tree, will now display in IE and blankscreen
mostly gone....not perfect yet, we will probably
> make
> the left column about 50% wider in the next version
>
> Added:
> ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css
(with props)
> Modified:
>
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java
>
ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/category/CategoryTree.groovy
> ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
> ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl
> ofbiz/trunk/applications/product/widget/catalog/CommonScreens.xml
>
> Modified:
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java
> URL:
>
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java?rev=1082041&r1=1082040&r2=1082041&view=diff
>
============================================================================== ---
>
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java
(original) +++
>
ofbiz/trunk/applications/product/src/org/ofbiz/product/category/CategoryServices.java
Wed Mar 16 03:39:49 2011 @@ -18,14 +18,22
> @@
>
*******************************************************************************/
> package org.ofbiz.product.category;
>
> +import java.io.IOException;
> +import java.io.UnsupportedEncodingException;
> +import java.io.Writer;
> import java.sql.Timestamp;
> import java.util.List;
> import java.util.Locale;
> 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.UtilDateTime;
> import org.ofbiz.base.util.UtilGenerics;
> @@ -391,4 +399,116 @@ public class CategoryServices {
> if (productCategoryMembers != null)
result.put("productCategoryMembers", productCategoryMembers);
> return result;
> }
> +
> + // Please note : the structure of map in this function is according to
the JSON data map of the jsTree
> + @SuppressWarnings("unchecked")
> + public static void getChildCategoryTree(HttpServletRequest request,
HttpServletResponse response){
> + Delegator delegator = (Delegator) request.getAttribute("delegator");
> + String productCategoryId = request.getParameter("productCategoryId");
> + String isCatalog = request.getParameter("isCatalog");
> + String entityName = null;
> + String primaryKeyName = null;
> +
> + if (isCatalog.equals("true")) {
> + entityName = "ProdCatalog";
> + primaryKeyName = "prodCatalogId";
> + } else {
> + entityName = "ProductCategory";
> + primaryKeyName = "productCategoryId";
> + }
> +
> + List categoryList = FastList.newInstance();
> + List<GenericValue> childOfCats;
> +
> + try {
> + GenericValue category = delegator.findByPrimaryKey(entityName
,UtilMisc.toMap(primaryKeyName, productCategoryId));
> + if (UtilValidate.isNotEmpty(category)) {
> + if (isCatalog.equals("true")) {
> + CategoryWorker.getRelatedCategories(request,
"ChildCatalogList",
> CatalogWorker.getCatalogTopCategoryId(request, productCategoryId), true); +
childOfCats =
> (List<GenericValue>)
> request.getAttribute("ChildCatalogList"); + } else {
> + childOfCats =
delegator.findByAnd("ProductCategoryRollup", UtilMisc.toMap(
> + "parentProductCategoryId", productCategoryId ));
> + }
> + if (UtilValidate.isNotEmpty(childOfCats)) {
> + for (GenericValue childOfCat : childOfCats ) {
> +
> + Object catId = null;
> + String catNameField = null;
> +
> + catId = childOfCat.get("productCategoryId");
> + catNameField = "CATEGORY_NAME";
> +
> + Map josonMap = FastMap.newInstance();
> + List<GenericValue> childList = null;
> +
> + // Get the child list of chosen category
> + childList =
delegator.findByAnd("ProductCategoryRollup", UtilMisc.toMap(
> + "parentProductCategoryId", catId));
> +
> + // Get the chosen category information for the
categoryContentWrapper
> + GenericValue cate =
delegator.findByPrimaryKey("ProductCategory"
> ,UtilMisc.toMap("productCategoryId",catId)); +
> + // If chosen category's child exists, then put the
arrow before category icon
> + if (UtilValidate.isNotEmpty(childList)) {
> + josonMap.put("state", "closed");
> + }
> + Map dataMap = FastMap.newInstance();
> + Map dataAttrMap = FastMap.newInstance();
> + CategoryContentWrapper categoryContentWrapper = new
CategoryContentWrapper(cate, request);
> +
> + if
(UtilValidate.isNotEmpty(categoryContentWrapper.get(catNameField))) {
> + dataMap.put("title",
categoryContentWrapper.get(catNameField)+"["+catId+"]");
> + } else {
> + dataMap.put("title", catId);
> + }
> +
dataAttrMap.put("onClick","window.location.href='EditCategory?productCategoryId="+catId+"';
return
> false;"); +
> + dataMap.put("attr", dataAttrMap);
> + josonMap.put("data", dataMap);
> + Map attrMap = FastMap.newInstance();
> + attrMap.put("id", catId);
> + attrMap.put("isCatalog", false);
> + attrMap.put("rel", "CATEGORY");
> + josonMap.put("attr",attrMap);
> +
> + categoryList.add(josonMap);
> + }
> + toJsonObjectList(categoryList,response);
> + }
> + }
> + } catch (GenericEntityException 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);
> + }
> + }
> }
>
> Modified:
ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/category/CategoryTree.groovy
> URL:
>
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/category/CategoryTree.groovy?rev=1082041&r1=1082040&r2=1082041&view=diff
>
============================================================================== ---
>
ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/category/CategoryTree.groovy
(original) +++
>
ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/actions/category/CategoryTree.groovy
Wed Mar 16 03:39:49 2011 @@ -17,56
> +17,103 @@
> * 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 org.ofbiz.entity.GenericValue;
> import javolution.util.FastMap;
> import javolution.util.FastList;
> -import org.ofbiz.base.util.UtilMisc;
> -import org.ofbiz.base.util.UtilValidate;
> -import org.ofbiz.entity.GenericValue;
> -import org.ofbiz.entity.util.EntityUtil;
> -import javax.servlet.http.HttpSession;
> +import javolution.util.FastList.*;
> +import org.ofbiz.entity.*;
> +import java.util.List;
> +
> +// Put the result of CategoryWorker.getRelatedCategories into the fillTree
function as attribute.
> +// The fillTree function will return the complete list of category of given
catalog.
> +// PLEASE NOTE : The structure of the complete list of fillTree function is
according to the JSON_DATA plugin of the jsTree.
> +
> +List fillTree(rootCat) {
> + if (rootCat) {
> + rootCat.sort{ it.productCategoryId }
> + def listTree = FastList.newInstance();
> + for (root in rootCat) {
> + preCatChilds = delegator.findByAnd("ProductCategoryRollup",
["parentProductCategoryId": root.productCategoryId]);
> + catChilds =
EntityUtil.getRelated("CurrentProductCategory",preCatChilds);
> + def childList = FastList.newInstance();
> + def rootMap = FastMap.newInstance();
> + category = delegator.findByPrimaryKey("ProductCategory",
["productCategoryId": root.productCategoryId]);
> + categoryContentWrapper = new CategoryContentWrapper(category,
request);
> + context.title = categoryContentWrapper.CATEGORY_NAME;
> + categoryDescription = categoryContentWrapper.DESCRIPTION;
> +
> + if (categoryContentWrapper.CATEGORY_NAME) {
> + rootMap["categoryName"] =
categoryContentWrapper.CATEGORY_NAME;
> + } else {
> + rootMap["categoryName"] = root.categoryName;
> + }
> + if (categoryContentWrapper.DESCRIPTION) {
> + rootMap["categoryDescription"] =
categoryContentWrapper.DESCRIPTION;
> + } else {
> + rootMap["categoryDescription"] = root.description;
> + }
> + rootMap["productCategoryId"] = root.productCategoryId;
> + rootMap["child"] = catChilds;
> + rootMap["isCatalog"] = false;
> + listTree.add(rootMap);
> +
> + }
> + return listTree;
> + }
> +}
> +
> +completedTree = FastList.newInstance();
>
> -prodCatalogList = FastList.newInstance();
> +// Get the Catalogs
> prodCatalogs = delegator.findByAnd("ProdCatalog");
> +
> if (prodCatalogs.size() > 0) {
> for (i = 0; i < prodCatalogs.size(); i++) {
>
> prodCatalogMap = FastMap.newInstance();
> prodCatalog = prodCatalogs[i];
> prodCatalogId = prodCatalog.getString("prodCatalogId");
> - prodCatalogMap.put("prodCatalogId", prodCatalogId);
> - prodCatalogMap.put("catalogName",
prodCatalog.getString("catalogName"));
> - prodCatalogMap.put("catalogName",
prodCatalog.getString("catalogName"));
> -
> - //root category list of the catalog
> - prodCategoryList = CatalogWorker.getProdCatalogCategories(request,
prodCatalogId, null);
> - rootCategoryList = FastList.newInstance();
> - if (prodCategoryList.size() > 0) {
> - for (j = 0; j < prodCategoryList.size(); j++) {
> - prodCategory = prodCategoryList[j];
> - rootCategory = delegator.findByPrimaryKey("ProductCategory",
["productCategoryId" :
> prodCategory.getString("productCategoryId")]);
> - rootCategoryList.add(rootCategory);
> - }
> - }
> -
> - if (rootCategoryList) {
> - prodCatalogMap.put("rootCategoryList", rootCategoryList);
> - prodCatalogList.add(prodCatalogMap);
> + prodCatalogMap.put("productCategoryId", prodCatalogId);
> + prodCatalogMap.put("categoryName",
prodCatalog.getString("catalogName"));
> + prodCatalogMap.put("isCatalog", true);
> +
> + CategoryWorker.getRelatedCategories(request, "CatalogList_"+i,
CatalogWorker.getCatalogTopCategoryId(request,
> prodCatalogId), true); + categoryList = null;
> + categoryList = request.getAttribute("CatalogList_"+i);
> + prodCatalogTree = FastList.newInstance();
> +
> + if (categoryList) {
> + prodCatalogTree = fillTree(categoryList);
> + prodCatalogMap.put("child", prodCatalogTree);
> + completedTree.add(prodCatalogMap);
> }
> }
> }
> +// The complete tree list for the category tree
> +context.completedTree = completedTree;
>
> -context.prodCatalogList = prodCatalogList;
> -
> -openTree = false;
> +stillInCatalogManager = true;
> productCategoryId = null;
> +prodCatalogId = null;
> +showProductCategoryId = null;
> +
> +// Reset tree condition check. Are we still in the Catalog Manager ?. If not
, then reset the tree.
> if ((parameters.productCategoryId != null) ||
(parameters.showProductCategoryId != null)) {
> - openTree = true;
> - productCategoryId = (parameters.productCategoryId != null) ?
parameters.productCategoryId :
> parameters.showProductCategoryId;
> + stillInCatalogManager = false;
> + productCategoryId = parameters.productCategoryId;
> + showProductCategoryId = parameters.showProductCategoryId;
> +} else if (parameters.prodCatalogId != null) {
> + stillInCatalogManager = false;
> + prodCatalogId = parameters.prodCatalogId;
> }
> -
> -context.openTree = openTree;
> +context.stillInCatalogManager = stillInCatalogManager;
> context.productCategoryId = productCategoryId;
> +context.prodCatalogId = prodCatalogId;
> +context.showProductCategoryId = showProductCategoryId;
>
> Modified:
ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
> URL:
>
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml?rev=1082041&r1=1082040&r2=1082041&view=diff
>
============================================================================== ---
> ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml
(original) +++
> ofbiz/trunk/applications/product/webapp/catalog/WEB-INF/controller.xml Wed
Mar 16 03:39:49 2011 @@ -3076,6 +3076,12 @@ under
> the
> License. <response name="error" type="view"
value="EditProductPromoContent"/>
> </request-map>
>
> + <request-map uri="getChild">
> + <security auth="false" https="true"/>
> + <event type="java" path="org.ofbiz.product.category.CategoryServices"
invoke="getChildCategoryTree"/>
> + <response name="success" type="none"/>
> + </request-map>
> +
> <!-- View Mappings -->
> <view-map name="main" type="screen"
page="component://product/widget/catalog/CommonScreens.xml#main"/>
>
>
> Modified:
ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl
> URL:
>
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl?rev=1082041&r1=1082040&r2=1082041&view=diff
>
============================================================================== ---
> ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl
(original) +++
> ofbiz/trunk/applications/product/webapp/catalog/category/CategoryTree.ftl Wed
Mar 16 03:39:49 2011 @@ -16,66 +16,31 @@ KIND,
> either express or implied. See th
> specific language governing permissions and limitations
> under the License.
> -->
> -<script language="javascript" type="text/javascript"
>
src="<@ofbizContentUrl>/images/jquery/ui/development-bundle/external/jquery.cookie.js</@ofbizContentUrl>"></script>
> -<script language="javascript" type="text/javascript"
>
src="<@ofbizContentUrl>/images/jquery/plugins/jsTree/jquery.jstree.js</@ofbizContentUrl>"></script>
>
> -<script type="application/javascript">
> -<#-- some labels are not unescaped in the JSON object so we have to do this
manuely -->
> +<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()
> }
> -
> -createTree();
> +
> +jQuery(window).load(createTree());
>
> <#-- creating the JSON Data -->
> var rawdata = [
> - <#if (prodCatalogList?has_content)>
> - <@fillCatalogTree prodCatalogs = prodCatalogList/>
> - </#if>
> -
> - <#macro fillCatalogTree prodCatalogs>
> - <#if (prodCatalogs?has_content)>
> - <#list prodCatalogs as catalog>
> - <#assign catalogId = catalog.prodCatalogId/>
> - <#if !catalogName?has_content>
> -
> - </#if>
> - <#assign categoryList = catalog.rootCategoryList/>
> - {
> - <#if catalogId?has_content>
> - "data": {"title" : unescapeHtmlText("<#if
> catalog.catalogName?has_content>${catalog.catalogName}<#else>${catalogId}</#if>
<#if
> catalog.catalogName?has_content>[${catalogId}]</#if>"), "attr": {"href":
> "<@ofbizUrl>/EditProdCatalog?prodCatalogId=${catalogId}</@ofbizUrl>",
"onClick" :
>
"callDocument('<@ofbizUrl>/EditProdCatalog?prodCatalogId=${catalogId}</@ofbizUrl>');"}},
> - "attr": {"id" : "${catalogId}", "rel" : "root"},
> -
> - </#if>
> - <#if categoryList?has_content>
> - "children": [
> - <@fillCategoryTree childCategoryList = categoryList/>
> - ]
> - </#if>
> - <#if catalog_has_next>
> - },
> - <#else>
> - }
> - </#if>
> - </#list>
> - </#if>
> - </#macro>
> + <#if (completedTree?has_content)>
> + <@fillTree rootCat = completedTree/>
> + </#if>
>
> - <#macro fillCategoryTree childCategoryList>
> - <#if childCategoryList?has_content>
> - <#list childCategoryList as childCategory>
> + <#macro fillTree rootCat>
> + <#if (rootCat?has_content)>
> + <#list rootCat as root>
> {
> - <#local productCategoryId =
childCategory.productCategoryId/>
> - <#local childCategorys =
> Static["org.ofbiz.product.category.CategoryWorker"].getRelatedCategoriesRet(request,
"childCategoryList", productCategoryId,
> true)>
> - "data": {"title" : unescapeHtmlText("<#if
>
childCategory.categoryName?has_content>${childCategory.categoryName}<#else>${productCategoryId}</#if>
<#if
> childCategory.categoryName?has_content>[${productCategoryId}]</#if>"), "attr":
{"href":
> "<@ofbizUrl>/EditCategory?productCategoryId=${productCategoryId}</@ofbizUrl>",
"onClick" :
>
"callDocument('<@ofbizUrl>/EditCategory?productCategoryId=${productCategoryId}</@ofbizUrl>');"}},
> - "attr": {"id" : "${productCategoryId}", "rel" :
"CATEGORY"},
> -
> - <#if childCategoryList?has_content>
> - "children": [
> - <@fillCategoryTree childCategoryList =
childCategorys/>
> - ]
> + "data": {"title" : unescapeHtmlText("<#if
root.categoryName?exists>${root.categoryName?js_string}
> [${root.productCategoryId}]<#else>${root.productCategoryId?js_string}</#if>"), "attr":
{"onClick" :
>
"window.location.href='<@ofbizUrl>/EditProdCatalog?prodCatalogId=${root.productCategoryId}</@ofbizUrl>';
return false;"}}, +
> "attr": {"id" : "${root.productCategoryId}", "rel" : "root", "isCatalog" :
"${root.isCatalog?string}"} +
> <#if
> root.child?exists> + ,"state" : "closed"
</#if>
> - <#if childCategory_has_next>
> + <#if root_has_next>
> },
> <#else>
> }
> @@ -84,33 +49,39 @@ var rawdata = [
> </#if>
> </#macro>
> ];
> -
>
> -
<#-------------------------------------------------------------------------------------create
Tree-->
> + <#-- create Tree-->
> function createTree() {
> jQuery(function () {
> - <#if !openTree>
> + <#-- reset the tree when user browsing out of scope of catalog manager
-->
> + <#if stillInCatalogManager>
> $.cookie('jstree_select', null);
> $.cookie('jstree_open', null);
> <#else>
> - $.cookie("jstree_select", "${productCategoryId}");
> + <#-- Coloring the category when type the product categoryId manualy at
the url bar -->
> + $.cookie('jstree_select', "<#if
productCategoryId?exists>${productCategoryId}<#elseif
> prodCatalogId?exists>${prodCatalogId}<#elseif
showProductCategoryId?exists>${showProductCategoryId}</#if>"); </#if>
> jQuery("#tree").jstree({
> - "plugins" : [ "themes", "json_data", "cookies", "ui", "types"],
> + "plugins" : [ "themes", "json_data","ui" ,"cookies", "types"],
> "json_data" : {
> - "data" : rawdata
> + "data" : rawdata,
> + "ajax" : { "url" : "<@ofbizUrl>getChild</@ofbizUrl>", "type"
: "POST",
> + "data" : function (n) {
> + return {
> + "isCatalog" : n.attr ?
n.attr("isCatalog").replace("node_","") : 1 ,
> + "productCategoryId" : n.attr ?
n.attr("id").replace("node_","") : 1
> + };
> + }
> + }
> },
> "themes" : {
> "icons" : true
> },
> - "cookies" : {
> - "save_opened" : false
> - },
> "types" : {
> "valid_children" : [ "root" ],
> "types" : {
> "CATEGORY" : {
> - "icon" : {
> + "icon" : {
> "image" :
"/images/jquery/plugins/jsTree/themes/apple/d.png",
> "position" : "10px40px"
> }
> @@ -118,27 +89,8 @@ var rawdata = [
> }
> }
> });
> -
> });
> -
> - }
> -
> - function callDocument(url) {
> - $(location).attr('href', url);
> }
> -
> </script>
>
> <div id="tree"></div>
> -<style type="text/css">
> - .jstree-default a
> - {
> - white-space:normal !important;
> - height: auto;
> - }
> - .jstree-default .jstree-leaf > ins
> - {
> - background-position:-36px 0;
> - vertical-align: top;
> - }
> -</style>
>
> Modified: ofbiz/trunk/applications/product/widget/catalog/CommonScreens.xml
> URL:
>
http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/widget/catalog/CommonScreens.xml?rev=1082041&r1=1082040&r2=1082041&view=diff
>
============================================================================== ---
> ofbiz/trunk/applications/product/widget/catalog/CommonScreens.xml (original)
+++
> ofbiz/trunk/applications/product/widget/catalog/CommonScreens.xml Wed Mar 16
03:39:49 2011 @@ -41,6 +41,10 @@ under the
> License.
> <set field="applicationMenuName" value="CatalogAppBar"
global="true"/>
> <set field="applicationMenuLocation"
value="component://product/widget/catalog/CatalogMenus.xml"
> global="true"/>
> <set field="applicationTitle"
value="${uiLabelMap.ProductCatalogManagerApplication}" global="true"/>
> + <set field="layoutSettings.javaScripts[+0]"
> value="/images/jquery/ui/development-bundle/external/jquery.cookie.js"
global="true"/> + <set
> field="layoutSettings.javaScripts[+0]"
value="/images/jquery/plugins/jsTree/jquery.jstree.js" global="true"/> +
> <set field="layoutSettings.javaScripts[+0]" value="/images/jquery/jquery-1.4.2.min.js"
global="true"/> + <set
> field="layoutSettings.styleSheets[+0]" value="/images/catalog/categorytree.css"
global="true"/> </actions>
> <widgets>
> <include-screen name="ApplicationDecorator"
location="component://commonext/widget/CommonScreens.xml"/>
> @@ -343,7 +347,6 @@ under the License.
> <screen name="categorytree">
> <section>
> <actions>
> - <set field="layoutSettings.javaScripts[+0]"
value="/images/jquery/jquery-1.4.2.min.js" global="true"/>
> <script
location="component://product/webapp/catalog/WEB-INF/actions/category/CategoryTree.groovy"></script>
> </actions>
> <widgets>
>
> Added: ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css
> URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css?rev=1082041&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css
(added)
> +++ ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css Wed
Mar 16 03:39:49 2011
> @@ -0,0 +1,28 @@
> +/*
> + * 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.
> + */
> +
> +/* THE CUSTOM CSS FOR AJUST THE CATEGORY TREE */
> +.jstree-default a {
> +white-space:normal !important;
> +height: auto;
> +}
> +.jstree-default .jstree-leaf > ins {
> +background-position:-36px 0;
> +vertical-align: top;
> +}
>
> Propchange:
ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange:
ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css
> ------------------------------------------------------------------------------
> svn:keywords = "Date Rev Author URL Id"
>
> Propchange:
ofbiz/trunk/framework/images/webapp/images/catalog/categorytree.css
> ------------------------------------------------------------------------------
> svn:mime-type = text/css