blob: 750d0732b93cb9134e9b3d8fe2bb8e3a618d92a3 [file] [log] [blame]
/*
* 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;