我们正在AEM 6.1环境中工作,并且创建了一个激活预处理器,如果某些属性未设置,将会停止激活页面。这很好,但是我们还想更改当预处理器抛出ReplicationExcdeption时激活进程显示的错误消息。任何人都可以指向我实际显示错误信息的代码吗?AEM - 如何调整激活错误消息
1
A
回答
0
我们重写了SiteAdmin.Actions.js中的几个函数。从libs文件夹复制它/apps/cq/ui/widgets/source/widgets/wcm/SiteAdmin.Actions.js
或使用CQ.Ext.override
我们需要覆盖CQ.wcm.SiteAdmin.scheduleForActivation
和CQ.wcm.SiteAdmin.internalActivatePage
方法。
我们用下面的代码做
CQ.wcm.SiteAdmin.internalActivatePage = function(paths, callback) {
if (callback == undefined) {
// assume scope is admin and reload grid
var admin = this;
callback = function(options, success, response) {
if (success) admin.reloadPages();
else admin.unmask();
};
}
preActionCallback = function(options, success, response) {
if (success) {
var responseObj = CQ.Util.eval(response);
if (responseObj.activation) {
CQ.HTTP.post(
CQ.shared.HTTP.externalize("/bin/replicate.json"),
callback,
{ "_charset_":"utf-8", "path":paths, "cmd":"Activate" }
);
} else {
CQ.wcm.SiteAdmin.preactivateMessage(responseObj);
}
}else{
CQ.Ext.Msg.alert(
CQ.I18n.getMessage("Error"), CQ.I18n.getMessage("Could not activate page."));
}
admin.unmask();
};
CQ.HTTP.get(
"/apps/sling/servlet/content/preActivateValidator.html?path=" + paths,
preActionCallback
);
};
此路径/apps/sling/servlet/content/preActivateValidator.html
(你可以使用任何其他链接和延伸)返回JSON有关消息的一些信息,这是分析在自定义的方法,并生成自定义错误消息CQ.wcm.SiteAdmin.preactivateMessage
:
CQ.wcm.SiteAdmin.preactivateMessage = function(responseObj) {
var message = "";
var incorrectItems = responseObj.incorrectItems;
if (responseObj.countOfIncorrectItems > 1) message = message + "s";
if (responseObj.missingMetadata) {
message = message + "Please, set \"Programming Type\" for next videos:<br/>";
var missingMetadataPaths = responseObj.missingMetadata;
for(var i = 0; i < missingMetadataPaths.length; i++){
message = message + "<a href=\""+missingMetadataPaths[i].path+".html\">"+missingMetadataPaths[i].path+"</a><br/>";
}
message += "<br/>";
}
if(message == ""){
message = "Unknown error.";
}
CQ.Ext.Msg.alert(
CQ.I18n.getMessage("Error"), CQ.I18n.getMessage(message));
}
所以,你可以实现组件或servlet将验证您的属性,并会产生JSON。
+0
我会看看这个。感谢您的回应! – rnolen
相关问题
- 1. 激活laravel中的错误消息4.2
- 2. 错误激活
- 3. 激活/取消激活virtualenv
- 4. 导航视图激发错误消息
- 5. 如何更改wordpress激活页面上的“激活您的帐户”消息?
- 6. 激活WordPress插件后显示消息
- 7. Window激活时收到的消息
- 8. 如何在点击按钮时激活/取消激活CSS?
- 9. 激活并取消激活首选项
- 10. 已激活和取消激活
- 11. IEventAggregator棱镜激活错误
- 12. wordpress插件激活错误
- 13. 间歇WCF激活错误
- 14. Ninject ActivationException:错误激活IAlertManagement
- 15. 主要活动的错误消息
- 16. 如何将消息发送到服务激活器的链中
- 17. 如何取消激活播放声音
- 18. 如何本地化活动记录错误消息
- 19. 错误消息
- 20. 错误消息
- 21. 错误消息
- 22. 错误消息
- 23. 错误消息
- 24. 如何激活/禁用动态调整大小的元素
- 25. 用户激活邮件预览,错误的激活链接
- 26. 宝石/ Bundler加载错误:无法激活...已激活
- 27. 如何翻译ActiveRecord完整的错误消息?
- 28. 在node.js上取消激活YUI3的INFO消息?
- 29. 如何整合AEM与hybris?
- 30. 活动已取消激活仅激活一次
请问您可以添加更多的细节,你做了什么 –
我创建了一个实现com.day.cq.replication.Preprocessor接口的类。它被AEM称为激活过程的一部分,如果没有找到特定的属性,就会抛出RepositoryException。这会停止激活并向用户显示消息,但是我想更改显示的消息,并且我不知道它实际生成的位置。 – rnolen