Как разрешить пользователям редактировать исходный код HtmlFieldControl в TFS 2015 на месте? - PullRequest
1 голос
/ 09 апреля 2019

Если вы вставите изображение в HtmlFieldControl «Описание» при редактировании рабочего элемента, то атрибут html img src будет иметь абсолютный URL-адрес, такой как <img src='http://mytfsserver:8080/tfs/dc/_api/_wit/DownloadAttachment?fileGuid=03e65645..." .. >

Изображения, которые не будут отображаться при работе собратный прокси-сервер, где пользователи из нашей компании обращаются к нашим tfs с помощью URL-адреса, подобного 'https://tfs.mycompany.com/tfs',, потому что снаружи нет доступа к' http://mytfsserver:8080/tfs'

. Моя идея теперь состоит в том, чтобы преобразовать абсолютный URL-адрес.к относительному, как <img src='/tfs/dc/_api/_wit/DownloadAttachment?fileGuid=03e65645..." .. >.После ручного редактирования HTML-кода поля System.Description и его сохранения изображение будет правильно отображаться как внутри пользователей tfs, так и для внешних пользователей, которые используют обратный прокси-сервер.

Я обнаружил, что расширение VSTS может реагировать на событие onFieldChanged, и я хочу соответствующим образом изменить src img в html поля System.Descripton.

После TFS 2017 появился новыйэлемент под названием «Элементы WebLayout и Control», что было бы идеальным подходом.К сожалению, наша компания все еще использует TFS 2015 на месте, и обновление будет сделано не ранее конца этого года.

Так что мой вопрос , могу ли я использовать уже существующий способразработать функциональность для автоматического или ручного замены абсолюта на относительный URL?

Я не нашел способа использовать расширения VSTS ON существующую форму рабочего элемента с TFS2015. И кажется невозможным улучшить стандартный HtmlFieldControl.Или я мог бы написать настроенный HtmlFieldControl?

Невозможно поместить другой элемент управления, например 'FieldControl' для System.Description, в форму wit, она не поддерживается.Было бы утомительно редактировать html вручную всегда после вставки изображения в HtmlFieldControl, сохранять его, перезагружать и редактировать в обычном FieldControl.Но даже это будет принято в качестве обходного пути.

1 Ответ

0 голосов
/ 26 апреля 2019

Наконец-то это просто:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...