Добавление опции «вставить скриншот» в багтрекер Mantis - PullRequest
1 голос
/ 16 июля 2009

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

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

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

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

Ответы [ 5 ]

4 голосов
/ 16 июля 2009

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

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

2 голосов
/ 25 августа 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 на каждом клиентском компьютере, я не считаю его идеальным, но работоспособным в контролируемой среде компании.

2 голосов
/ 16 июля 2009

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

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

1 голос
/ 16 июля 2009

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

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

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

1 голос
/ 16 июля 2009

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

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

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

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

...