| /* |
| * 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 javolution.util.FastMap; |
| import javolution.util.FastList; |
| |
| // 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. |
| |
| List separateRootType(roots) { |
| if(roots) { |
| prodRootTypeTree = []; |
| roots.each { root -> |
| prodCateMap = [:]; |
| productCategory = root.getRelatedOne("ProductCategory", false); |
| prodCateMap.productCategoryId = productCategory.getString("productCategoryId"); |
| prodCateMap.categoryName = productCategory.getString("categoryName"); |
| prodCateMap.isCatalog = false; |
| prodCateMap.isCategoryType = true; |
| prodRootTypeTree.add(prodCateMap); |
| } |
| return prodRootTypeTree; |
| } |
| } |
| |
| completedTree = []; |
| // Get the Catalogs |
| prodCatalogs = delegator.findList("ProdCatalog", null, null, null, null, false); |
| if (prodCatalogs) { |
| prodCatalogs.each { prodCatalog -> |
| prodCatalogMap = [:]; |
| prodCatalogMap.productCategoryId = prodCatalog.getString("prodCatalogId"); |
| prodCatalogMap.categoryName = prodCatalog.getString("catalogName"); |
| prodCatalogMap.isCatalog = true; |
| prodCatalogMap.isCategoryType = false; |
| prodCatalogCategories = EntityUtil.filterByDate(delegator.findByAnd("ProdCatalogCategory", ["prodCatalogId" : prodCatalog.prodCatalogId], null, false)); |
| if (prodCatalogCategories) { |
| prodCatalogMap.child = separateRootType(prodCatalogCategories); |
| } |
| completedTree.add(prodCatalogMap); |
| } |
| } |
| // The complete tree list for the category tree |
| context.completedTree = completedTree; |
| |
| 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)) { |
| stillInCatalogManager = false; |
| productCategoryId = parameters.productCategoryId; |
| showProductCategoryId = parameters.showProductCategoryId; |
| } else if (parameters.prodCatalogId != null) { |
| stillInCatalogManager = false; |
| prodCatalogId = parameters.prodCatalogId; |
| } |
| context.stillInCatalogManager = stillInCatalogManager; |
| context.productCategoryId = productCategoryId; |
| context.prodCatalogId = prodCatalogId; |
| context.showProductCategoryId = showProductCategoryId; |