【问题标题】:How to enable users to edit HtmlFieldControl source in TFS 2015 on-premise?如何使用户能够在本地编辑 TFS 2015 中的 HtmlFieldControl 源?
【发布时间】:2019-08-30 16:24:57
【问题描述】:

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

当使用反向代理时,图像将不会显示,我们公司外部的用户使用“https://tfs.mycompany.com/tfs”之类的 url 访问我们的 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。

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

所以我的问题是,我可以使用已经存在的方式来开发功能以自动或手动将绝对网址替换为相对网址吗?

我发现没有办法在 TFS 2015 中使用 VSTS 扩展ON现有的工作项表单。而且似乎不可能增强默认的 HtmlFieldControl。或者我可以写一个自定义的 HtmlFieldControl 吗?

无法将 System.Description 的“FieldControl”等其他控件放到 wit 表单上,不支持。在 HtmlFieldControl 中插入图像、保存、重新加载并在普通 FieldControl 中编辑它之后,总是手动编辑 html 会很乏味。但即使这样也被接受为一种解决方法。

【问题讨论】:

    标签: tfs azure-devops tfs-2015


    【解决方案1】:

    终于轻松了:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多