如何在 CSCokpit 中 disable掉 order cancle,order refund 等button?
这里有这样一个类:
/*** Eclipse Class Decompiler plugin, copyright (c) 2012 Chao Chen (cnfree2000@hotmail.com) ***/ package de.hybris.platform.cscockpit.widgets.renderers.impl; import de.hybris.platform.cockpit.session.UISession; import de.hybris.platform.cockpit.session.UISessionUtils; import de.hybris.platform.cockpit.util.UITools; import de.hybris.platform.cockpit.widgets.Widget; import de.hybris.platform.cockpit.widgets.models.impl.DefaultItemWidgetModel; import de.hybris.platform.cscockpit.utils.LabelUtils; import de.hybris.platform.cscockpit.widgets.controllers.OrderManagementActionsWidgetController; import de.hybris.platform.cscockpit.widgets.renderers.utils.PopupWidgetHelper; import org.springframework.beans.factory.annotation.Required; import org.zkoss.zk.ui.api.HtmlBasedComponent; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; import org.zkoss.zul.Button; import org.zkoss.zul.Div; // extends 这个类 public class OrderManagementActionsWidgetRenderer extends AbstractCsWidgetRenderer<Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController>> { protected static final String CSS_ORDER_MANAGEMENT_ACTIONS_WIDGET = "orderManagementActionsWidget"; protected static final String CSS_FULL_CANCEL_POPUP = "csFullCancelPopup"; protected static final String CSS_PARTIAL_CANCEL_POPUP = "csPartialCancelPopup"; protected static final String CSS_RETURN_REQUEST_CREATE_WIDGET = "csReturnRequestCreateWidget"; protected static final String COCKPIT_ID_CANCEL_ORDER = "Order_Order_Management_Cancel_Order_button"; protected static final String COCKPIT_ID_PARTIAL_CANCEL_ORDER = "Order_Order_Management_Partial_Cancel_Order_button"; protected static final String COCKPIT_ID_REFUND_ORDER = "Order_Order_Management_Refund_Order_button"; protected static final String COCKPIT_ID_REPLACE_ORDER = "Order_Order_Management_Replace_Order_button"; private PopupWidgetHelper popupWidgetHelper; protected PopupWidgetHelper getPopupWidgetHelper() { return this.popupWidgetHelper; } @Required public void setPopupWidgetHelper(PopupWidgetHelper popupWidgetHelper) { this.popupWidgetHelper = popupWidgetHelper; } //override 这个方法,添加你的逻辑 protected HtmlBasedComponent createContentInternal(Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, HtmlBasedComponent rootContainer) { Div component = new Div(); component.setSclass("orderManagementActionsWidget"); createButton(widget, component, "cancelWholeOrder", "csFullOrderCancellationWidgetConfig", "csFullOrderCancel-Popup", "csFullCancelPopup", "popup.fullCancellationRequestCreate", !(((OrderManagementActionsWidgetController)widget.getWidgetController()).isFullCancelPossible())); createButton(widget, component, "cancelPartialOrder", "csPartialOrderCancellationWidgetConfig", "csPartialOrderCancellationWidgetConfig-Popup", "csPartialCancelPopup", "popup.partialCancellationRequestCreate", !(((OrderManagementActionsWidgetController)widget.getWidgetController()).isPartialCancelPossible())); createButton(widget, component, "refundOrder", "csRefundRequestCreateWidgetConfig", "csRefundRequestCreateWidget-Popup", "csReturnRequestCreateWidget", "popup.refundRequestCreate", !(((OrderManagementActionsWidgetController)widget.getWidgetController()).isRefundPossible())); createButton(widget, component, "replaceOrder", "csReplacementRequestCreateWidgetConfig", "csReplacementRequestCreateWidget-Popup", "csReturnRequestCreateWidget", "popup.replacementRequestCreate", !(((OrderManagementActionsWidgetController)widget .getWidgetController()).isReplacePossible())); return component; } protected void createButton(Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, Div container, String buttonLabelName, String springWidgetName, String popupCode, String cssClass, String popupTitleLabelName, boolean disabled) { EventListener eventListener = new EventListener(widget, container, springWidgetName, popupCode, cssClass, popupTitleLabelName) { public void onEvent(Event event) throws Exception { OrderManagementActionsWidgetRenderer.this.handleButtonClickEvent(this.val$widget, event, this.val$container, this.val$springWidgetName, this.val$popupCode, this.val$cssClass, this.val$popupTitleLabelName); } }; createButton(widget, container, buttonLabelName, eventListener, disabled); } protected void handleButtonClickEvent(Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, Event event, Div container, String springWidgetName, String popupCode, String cssClass, String popupTitleLabelName) { getPopupWidgetHelper().createPopupWidget(container, springWidgetName, popupCode, cssClass, LabelUtils.getLabel(widget, popupTitleLabelName, new Object[0]), 1000); } protected void createButton(Widget widget, Div container, String buttonLabelName, EventListener eventListener, boolean disabled) { Button button = new Button(); if (UISessionUtils.getCurrentSession().isUsingTestIDs()) { if ("cancelWholeOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Cancel_Order_button"); } else if ("cancelPartialOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Partial_Cancel_Order_button"); } else if ("refundOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Refund_Order_button"); } else if ("replaceOrder".equals(buttonLabelName)) { UITools.applyTestID(button, "Order_Order_Management_Replace_Order_button"); } } button.setLabel(LabelUtils.getLabel(widget, buttonLabelName, new Object[0])); button.setParent(container); button.setDisabled(disabled); button.addEventListener("onClick", eventListener); } }
所以这里很简单 ,只要extends这个类 再override上面的方法,添加你的逻辑就OK了,如下
public class MyOrderManagementActionsWidgetRenderer extends OrderManagementActionsWidgetRenderer { private static final Logger LOG = Logger.getLogger(VirginOrderManagementActionsWidgetRenderer.class); private UserService userService; private static String CREDITCARD = "creditcard"; @Override protected HtmlBasedComponent createContentInternal( final Widget<DefaultItemWidgetModel, OrderManagementActionsWidgetController> widget, final HtmlBasedComponent rootContainer) { String paymentMode = getPaymentModeCode(widget); final Div component = new Div(); component.setSclass("orderManagementActionsWidget"); Boolean canCancel=false; for(ConsignmentStatus status:getConsignmentStatus(widget)){ if(ConsignmentStatus.PACKED.equals(status)||ConsignmentStatus.SHIPPED.equals(status)){// PACKED/SHIPPED/READY FOR COLLECTION/ COLLECTED. canCancel=false; break; }else if(ConsignmentStatus.READY.equals(status)||ConsignmentStatus.PICKPACK.equals(status)||ConsignmentStatus.NOT_COLLECTED.equals(status)){//READY/PICKPACK/PICKPACK/PICKPACK/PICKPACK canCancel=true; } } createButton(widget, component, "cancelWholeOrder", "csFullOrderCancellationWidgetConfig", "csFullOrderCancel-Popup", "csFullCancelPopup", "popup.fullCancellationRequestCreate", !canCancel);
相关推荐
将CXCOM200500P_0-70004955.ZIP移至hybris-b2b-spartacus/hybris-b2b CXCOM200500P_0-70004955.ZIP hybris-b2b-spartacus/hybris-b2b (如果要使用其他版本的SAP Commerce,请编辑hybris-b2b-spartacus/hybris-b2b/...
hybris-base-image Hybris Commerce Suite 的基本映像,基于ubuntu:latest 。 可以开箱即用地用于基于 Hybris Commerce Suite >5.5 的项目。 请直接在阅读此文档。 否则链接可能不起作用。 上的是从 GitHub 源存储库...
`rootfs-templates`是一个专门用于生成Hybris-Mobian图像的debos配方,它简化了这个复杂过程,让开发者能够更高效地定制和构建自己的嵌入式Linux系统。 Hybris-Mobian是一个基于Debian和Moblin的开源项目,旨在为...
在本主题中,我们将深入探讨“hybris-tools”及其在电商项目中的作用。** **一、hybris-tools概述** “hybris-tools”是专门为hybris平台设计的一系列工具和实用程序,它们旨在简化开发过程,提高效率,以及优化...
### Hybris Administration Cockpit中文说明书 #### 概述 Hybris Administration Cockpit 是一款功能强大的管理工具,专门设计用于在Hybris多渠道解决方案中高效管理各类信息。它为用户提供了一个直观的操作界面,...
“hybris-mini”是一个专为机械键盘设计的嵌入式蓝牙控制器。这个控制器具有小巧的体积,可以方便地集成到各种机械键盘之中,为键盘提供无线连接功能,让用户能够通过蓝牙设备(如手机、平板或电脑)进行操作。 **...
Hybris-5.7-Project
hybris-snipets 我发现有趣的有用代码片段的集合,我喜欢分享它们
【标题】"hybris入门手册_hybris"涵盖了SAP的hybris平台,这是一个高度可扩展的电子商务解决方案,主要用于构建B2B和B2C在线商店。Hybris平台结合了内容管理、订单处理、产品目录管理、客户服务和市场推广等多种功能...
Hybris ACC TypeScript Typescript模块加载程序,可与Hybris ACC无缝集成。背景这个项目是出于对使用TypeScript使用ACC开发Hybris前端的好奇心而诞生的。即使简单地添加TypeScript并开发ACC模块即可使用默认方式(在...
### SAP Hybris 6.4 B2C 平台搭建详解 #### 一、概述 本文档旨在为SAP Hybris 6.4初学者提供一份详细的B2C平台搭建指南。通过本教程,读者可以了解如何从零开始搭建一个完整的Hybris 6.4 B2C平台,并解决在搭建...
hybris-docker(WIP) 此存储库是为了简化配置,部署和可维护性的目的而尝试对SAP Hbrise电子商务平台进行泊坞。 提供的dockerfile和关联的配置基于开发配置模板。 为了使该产品准备就绪,您将需要根据需要对其进行...
设置 npm install npm install serverless -g...redis db由一个lambda填充,该lambda导入由hybris导出到s3存储桶的json文件。 此无服务器功能是只读的。 如何调试? 如何部署? 最初,您可以生成一个程序包。 从长远
### Hybris Platform 安装指南知识点详述 #### 引言 Hybris Platform 是一个功能强大的电子商务解决方案平台,被广泛应用于构建多渠道、全渠道的零售业务系统。本指南将详细解析如何安装与初始化 Hybris Commerce ...
本文档是关于Hybris开发者培训课程的第一部分——核心平台的第二模块,主题为开发环境的搭建。Hybris是一个强大的电子商务平台,由SAP公司开发,广泛应用于企业级的电子商务解决方案。本模块主要讲述了如何配置...
**Hybris概述** Hybris是一款强大的电子商务平台,用于构建高度可扩展且多功能的B2B和B2C在线商店。它提供了丰富的功能,包括产品管理、订单处理、库存控制、客户关系管理、市场营销等,支持多渠道销售,如web、...
git clone :jirafe / hybris-extensions.git 先决条件 Java VM 1.6以上 安装 如果您已经安装了Hybris,请跳过步骤1和2。 解压缩Hybris Multichannel Suite( HYBRIS_HOME稍后将用作Hybris主目录/基本目录的占位符...
Hybris 是一个强大的电子商务解决方案和多渠道的电子商务平台,广泛应用于B2B和B2C的电子商务领域。Hybris的核心架构被设计为服务导向架构(SOA),这使得它能够利用Spring框架提供的特性来实现高度可配置和可扩展的...
14.1 3.2 hybris-15.1 3.3 hybris-16.0 4个图形4.1口红段故障/无显示4.2 BOARD_USES_QCOM_HARDWARE不在供应商设备存储库中4.3使用Mali GPU的设备4.4图形性能提升4.5黑色画廊图片,没有浏览器内容/浏览器崩溃: 4.6以...