Добавление опции «вставить скриншот» в багтрекер Mantis

Мы используем багтрекер Mantis (версия 1.1.8), основанный на PHP. Чтобы упростить рабочий процесс добавления ошибок, мы хотели бы добавить возможность вставлять скриншоты из буфера обмена прямо в «форму новой ошибки».

Скриншоты делают отчеты об ошибках гораздо более ценными для разработчиков, поэтому я хотел бы упростить их добавление. Желательно без использования внешнего приложения, но прямо в браузере.

Я искал способ добавить это, но не повезло. Как это делают другие люди? Я упускаю что-то очевидное?

edit: багтрекер является частным в небольшой компании, поэтому я был бы готов принять риски безопасности, которые, например, присутствуют в Java-апплетах.


person Martijn Heemels    schedule 16.07.2009    source источник


Ответы (5)


На самом деле нет способа сделать это, кроме использования ActiveX, апплета или технологии типа Flash на клиенте. Даже в этом случае существует множество препятствий для обеспечения безопасности. У браузера нет простого способа конвертировать данные из буфера обмена в подходящий формат для загрузки на веб-сайт, и даже если бы это было так, возникли бы проблемы с безопасностью. Например, вредоносный код на странице может скопировать конфиденциальную информацию из вашего буфера обмена и отправить ее на сайт страницы, даже если вы даже не подозреваете об этом.

Обновление. Существует автономная утилита захвата экрана, которая утверждает, что работает с Mantis (и множество других баг-трекеров). Это, наверное, ваш лучший вариант.

person Vinay Sajip    schedule 16.07.2009
comment
Поскольку багтрекер является частным, в небольшой компании (15 человек), поэтому я был бы готов принять на себя риски безопасности. Это, вероятно, объясняет отсутствие готовых плагинов. :-) Есть мысли по поводу решения Java или Flash? - person Martijn Heemels; 16.07.2009
comment
Я использовал упомянутую выше автономную утилиту захвата экрана - Bug Shooting. Это великолепно. Я создал трекер ошибок (BugTracker.NET) и написал для него свою собственную утилиту захвата экрана, но я отказался от написанного и вместо этого использую Bug Shooting. - person Corey Trager; 09.08.2009
comment
Спасибо за предложение Винай. Я знал об отдельной утилите, но предпочел бы использовать что-нибудь на основе браузера. - person Martijn Heemels; 25.08.2009

Для Atlassian Confluence существует Java-апплет для прикрепления изображений с возможностью перетаскивания и перетаскивания, который обладает необходимой вам функциональностью. Он поддерживает только Confluence, но поскольку исходный код находится в свободном доступе под BSD, вы можете настроить его под свои нужды.

Забыл ссылку: http://confluence.atlassian.com/display/CONFEXT/Drag+and+Drop+Image+Attacher+Plugin

person OliverS    schedule 16.07.2009

Мне удалось создать собственное решение, которое работает достаточно хорошо. Он размещает апплет загрузки файлов Java на страницах, к которым вы хотите прикрепить снимок экрана. В апплете есть две кнопки:

  1. «вставить снимок экрана», который вставляет изображение из буфера обмена в апплет.
  2. 'загрузить снимок экрана', который загружает вставленное изображение в каталог / tmp на сервере Mantis и использует обратный вызов javascript для помещения автоматически сгенерированного имени файла загруженного изображения в поле формы.

После отправки формы новая функция в Mantis использует имя файла в поле формы для перемещения изображения из / tmp в конечное место и обрабатывает изображение так же, как и другие вложения. Если форма никогда не отправляется, загруженный файл остается в / tmp и в конечном итоге будет удален сервером.

Он работает хорошо, но имеет один недостаток, которого я не могу избежать: я использую Java для доступа к буферу обмена клиента, но это требует взлома песочницы JVM. По-видимому, это можно сделать, если вы поставите цифровую подпись на апплет, что требует довольно дорогого ежегодного платежа (около 500 долларов) такой компании, как Verisign (в настоящее время бесплатные варианты, такие как cacert.org, по-прежнему ограничены в своей полезности).

Другой способ разрешить Java-апплетам доступ к буферу обмена - создать файл с именем .java.policy в вашем домашнем каталоге или каталоге профиля. Этот файл должен содержать следующее (замените домен доменом, на котором размещен ваш Java-апплет):

grant codeBase "http://bugs.example.com/-" {
  permission java.awt.AWTPermission "accessClipboard";
};

К счастью, решение является кроссбраузерным, поскольку JVM всегда проверяет один и тот же файл независимо от используемого браузера. Поскольку мое решение требует наличия этого файла .java.policy на каждом клиентском компьютере, я не считаю его идеальным, но работоспособным в контролируемой среде компании.

person Martijn Heemels    schedule 25.08.2009

Я тоже посмотрел на это. Это не совсем простой способ, поэтому вместо этого я разрешил им загружать неограниченное количество файлов, и эти файлы затем «прикреплялись» к этой ошибке. На самом деле это оказалось лучше, потому что они могут загружать снимки экрана, электронные таблицы, текстовые документы и т. Д.

Как и ваш, это сайт только для внутреннего использования, поэтому безопасность невысока. Я сделал это в ASP.Net, но общая идея состоит в том, что, когда они просматривают страницу с ошибкой, у них есть окно загрузки. Когда они что-то загружают, я предварительно добавляю это с идентификатором ошибки. Таким образом, ScreenShot.jpg становится 233_ScreenShot.jpg.

Также на этой странице есть сетка (GridView), привязанная ко всем именам файлов в моем каталоге загрузки, которые начинаются с этого идентификатора ошибки.

Чтобы увидеть, как это выглядит, нажмите здесь.

person JBrooks    schedule 16.07.2009
comment
Спасибо, но Mantis уже поддерживает прикрепление файлов к отчету об ошибке. Речь идет о загрузке прямо из буфера обмена, без обычно необходимого промежуточного файла. - person Martijn Heemels; 16.07.2009
comment
Да, я не думаю, что это простая задача, особенно если вы хотите, чтобы она работала со всеми браузерами. Я изучил, как это делает FogBugz, и из того, что я могу сказать - у них есть программа Windows, работающая на вашем ПК (и она отображается в панели задач), и когда вы ее вызываете, она позволяет вам играть с изображением, а затем, когда вы submit он отправляет изображение на сервер с помощью веб-службы. Это можно сделать, но это нетривиальная задача, и вы не уверены, нравится ли вам идея о том, что ваши пользователи разрешают установку программы и т. Д. - person JBrooks; 17.07.2009

Для технически ориентированных пользователей всегда есть возможность использовать Eclipse + Mylyn + соединитель Mylyn-Mantis < / а>.

Тогда загружать скриншоты очень просто:

Загрузка снимка экрана http://img216.imageshack.us/img216/246/screenshotattachments1.png < / а>

person Robert Munteanu    schedule 16.07.2009
comment
Это приятная особенность. Вскоре я уже собирался попробовать Mylyn, так как это отличная система. Однако большинство ошибок вносятся нашими тестировщиками и менеджерами. Я не могу ожидать, что они будут использовать Eclipse. - person Martijn Heemels; 16.07.2009
comment
Может быть вы можете представить им этот «клиент отслеживания ошибок» - автономный Eclipse, урезанный (без Java, без CVS и т. д.) + Mylyn + Connector. - person Robert Munteanu; 16.07.2009
comment
Мы с некоторыми коллегами-разработчиками начали использовать Mylyn, и нам это нравится. Я считаю, что его утилита для создания снимков экрана далека от идеала для не-разработчиков, потому что она полагается на Eclipse, но она очень хорошо работает для разработчиков. - person Martijn Heemels; 25.08.2009