我一直致力于开发自定义extjs控制台,以便作者使用 html5smartfile 组件删除资产。但不知何故,html5smartfile组件的工作方式不正常。作者可以删除资产的区域不显示。如果我正在创建CQ5对话框,则工作正常。但在我的情况下,我创建了一个窗口,它不起作用。
我已经声明了我的smartfile组件:
var assetLinkDropField = {
xtype: 'html5smartfile',
fieldLabel: 'Asset Link',
ddAccept: 'video/.*',
ddGroups: 'media',
fileReferenceParameter: './linkUrl',
name: './linkUrl',
allowUpload: false,
allowFileNameEditing: false,
allowFileReference: true,
transferFileName: false
};
但是这样渲染:
经过大量的工作,我发现CQ5对话框更新了组件的视图,但是在我的窗口的情况下,我必须自己更新它。因此,通过轻微操作,我只是通过调整声明来成功显示拖动区域:
var assetLinkDropField = {
xtype: 'html5smartfile',
fieldLabel: 'Asset Link',
ddAccept: 'video/.*',
ddGroups: 'media',
fileReferenceParameter: './linkUrl',
name: './linkUrl',
allowUpload: false,
allowFileNameEditing: false,
allowFileReference: true,
transferFileName: false,
listeners: {
afterlayout: function () {
this.updateView();
}
}
}
现在面板看起来像:
但拖拽仍无法正常工作。我的窗口声明是这样的:
win = new CQ.Ext.Window({
height : 750,
width : 700,
layout : 'anchor',
// animateTarget : btn.el,
closeAction : 'close', // Prevent destruction on Close
id : 'manageLinkWindow',
title : '<b>Multi Link Widget Dialog</b>',
frame : true,
draggable : false,
modal : false, //Mask entire page
constrain : true,
buttonAlign : 'center',
items : [assetLinkDropField]
});
}
答案 0 :(得分:0)
我认为你不应该使用 ddAccept:'video /.*', 这样只允许拖放内容查找器中的视频。它应该是“image /".
如果上述问题无法解决您的问题,请验证html5smartfile的其他extjs属性/配置。