Как разрешить пользователям редактировать исходный код HtmlFieldControl в локальной среде TFS 2015?

Если вы вставите изображение в 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://mytfsсервер:8080/tfs».

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

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

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

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

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

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Наконец это легко:

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

Другие вопросы по теме