如何为Azure DevOps中TinyMCE的ControlContribution添加内置最大化按钮?
在Azure DevOps工作项模板中为TinyMCE扩展添加内置最大化按钮
问题背景
我在Azure DevOps工作项的扩展模板中使用第三方TinyMCE扩展,当前配置代码如下:
<Section> <Group Label="Description Test (tinyMce)"> <ControlContribution Id="test.Tiny-editor"> <Inputs> <Input Id="FieldName" Value="System.Description" /> </Inputs> </ControlContribution> </Group> <Group Label="Description Test (Classic)"> <Control Type="HtmlFieldControl" FieldName="System.Description" Visible="false" /> </Group> </Section>
原生的HtmlFieldControl(经典描述控件)自带最大化和折叠按钮,但通过ControlContribution引入的TinyMCE控件只有折叠按钮,没有最大化选项。尝试直接给ControlContribution添加HtmlFieldControl配置时,上传流程模板会报错,需要解决如何为TinyMCE控件添加内置最大化按钮的问题。
可行解决方案
1. 检查TinyMCE扩展的配置参数
部分第三方TinyMCE扩展支持通过输入参数启用最大化功能,你可以查看该扩展的官方文档或配置说明,尝试在<Inputs>节点中添加对应参数,示例如下:
<ControlContribution Id="test.Tiny-editor"> <Inputs> <Input Id="FieldName" Value="System.Description" /> <Input Id="EnableMaximize" Value="true" /> <!-- 假设存在该配置参数 --> </Inputs> </ControlContribution>
如果扩展本身未提供该参数,可以查看扩展的社区Issue或联系开发者,确认是否有计划支持该功能。
2. 自定义封装支持最大化的控件
如果具备Azure DevOps扩展开发能力,可以基于原TinyMCE扩展封装自定义控件:
- 参考Azure DevOps SDK中
HtmlFieldControl的最大化实现逻辑,引入VSS.Controls中的原生最大化组件 - 将TinyMCE编辑器嵌入到可触发最大化的容器中,绑定原生的最大化/还原事件
- 打包自定义控件后,作为新的
ControlContribution引入流程模板
3. 临时替代方案:保留原生控件的最大化入口
调整模板配置,将原生HtmlFieldControl设置为默认折叠但可见,用户需要最大化编辑时可展开原生控件操作:
<Section> <Group Label="Description Test (tinyMce)"> <ControlContribution Id="test.Tiny-editor"> <Inputs> <Input Id="FieldName" Value="System.Description" /> </Inputs> </ControlContribution> </Group> <Group Label="Description Test (Classic)" Collapsed="true"> <Control Type="HtmlFieldControl" FieldName="System.Description" Visible="true" /> </Group> </Section>
内容的提问来源于stack exchange,提问作者harsha vardhan
相关产品推荐
相关产品推荐

