如何让用户在TFS 2015内部编辑HtmlFieldControl源?

问题描述 投票:1回答:1

如果在编辑工作项时将图像插入“描述”HtmlFieldControl,那么html img src属性将具有<img src='http://mytfsserver:8080/tfs/dc/_api/_wit/DownloadAttachment?fileGuid=03e65645..." .. >之类的绝对URL

使用反向代理时不会显示图像,我们公司外部的用户使用“https://tfs.mycompany.com/tfs”等网址访问我们的tfs,因为从外部无法访问'http://mytfsserver:8080/tfs'

我的想法是将绝对网址转换为相对网址,例如<img src='/tfs/dc/_api/_wit/DownloadAttachment?fileGuid=03e65645..." .. >。在手动编辑System.Description字段的html并保存之后,从tfs用户内部以及使用反向代理的外部用户也可以正确显示图像。

我发现VSTS扩展可以对onFieldChanged事件做出反应,我想在System.Descripton字段的html中相应地更改img src。

自2017年TFS以来,有一个名为“WebLayout和控制元素”的新元素,这将是一个完美的方法。不幸的是,我们公司仍然使用TFS 2015内部部署,并且更新将在今年年底之前完成。

所以我的问题是,我可以使用已有的方法开发自动或手动替换相对url的绝对功能吗?

我发现无法在TFS 2015的现有工作项表单上使用VSTS扩展。并且似乎无法增强默认的HtmlFieldControl。或者我可以编写自定义的HtmlFieldControl吗?

无法将另一个像System.Description的“FieldControl”控件放到机智表单上,它不受支持。在HtmlFieldControl中插入图像,保存,重新加载并在普通的FieldControl中编辑它后,手动编辑html会很繁琐。但即使这样也可以作为一种解决方法。

tfs azure-devops tfs2015
1个回答
0
投票

最后很容易:

var descriptionField = that._workItem.getField("System.Description");
var descriptionHTML = descriptionField._getValue().toString();
...
descriptionHTML = descriptionHTML.replace(toReplace,replaceWith);
descriptionField.setValue(descriptionHTML);

© www.soinside.com 2019 - 2024. All rights reserved.