BlizD / Tasks

Трекер задач. Конфигурация 1с: канбан доска, загрузка изменений из хранилища, выпуск релизов, учет времени
http://infostart.ru/public/552480/
Apache License 2.0
293 stars 172 forks source link

Открытие задачи по ссылке #31

Closed pallid closed 7 years ago

pallid commented 7 years ago

Если в содержании задачи есть ссылка на другую задачу - "#10220", что бы такой тег выделялся как ссылка на эту задачу. Либо в командной панели редактирования markdown добавить кнопку установки ссылки #10220, либо парсить текст содержания и программно преобразовывать #NNNNN в такую ссылку

pallid commented 7 years ago
Процедура ЗаменитьТекстПоШаблону(Текст)

    сч = СтрЧислоВхождений(Текст, "#");

    Для й=0 По сч Цикл

        ПозицияТега = Найти(Текст, "#");
        ЕстьТегЗадачи = ПозицияТега > 0;
        ЗнакиПослеТега = Сред(Текст,ПозицияТега+1,9);

        ЗадачаСсылка = Справочники.Задачи.НайтиПоКоду(ЗнакиПослеТега, истина);
        СсылкаНаЗадачу = ПолучитьНавигационнуюСсылку(ЗадачаСсылка);

        ТекстСсылка = "<a href=v8tasks:"+СсылкаНаЗадачу+" style='text-decoration: underline'>"+"[]"+ЗнакиПослеТега+"</a>";

        Текст = СтрЗаменить(Текст, "#"+ЗнакиПослеТега, ТекстСсылка);

    КонецЦикла;

    Текст = СтрЗаменить(Текст, "[]", "#");
КонецПроцедуры
BlizD commented 7 years ago

Спасибо, постараюсь в ближайшее время добавить это. Может есть желание у Вас самому это реализовать?

pallid commented 7 years ago

Хорошо. Если начну делать, сообщу, что приступил.

BlizD commented 7 years ago

@pallid Не удалось такое провернуть, как только заменил на навигационные ссылки. При нажатии на них, 1с открывает explorer и пытается там открыть.

image

BlizD commented 7 years ago

@stepa86 @nixel2007 Не знаете как это можно побороть?

Stepa86 commented 7 years ago

@BlizD http://infostart.ru/public/586481/ в конце оно? И у тебя начало у ссылки странное

pallid commented 7 years ago

@BlizD Поле в котором надо нажимать должно быть ПолеHTMLДокумента, в переключатели Markdown попробуйте нажать, там вроде как раз ПолеHTMLДокумента. И вроде бы переход работает при опции ТолькоПросмотр = Истина

Stepa86 commented 7 years ago

@BlizD Попробуй без префикса "v8tasks:" . 1Ска сама должна понять, что это ссылка на внутренний объект и перейти на него

pallid commented 7 years ago

@Stepa86 @BlizD кусок из ДО

&НаКлиенте
Процедура ПолеHTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Если Не ЗначениеЗаполнено(ДанныеСобытия.Href) Тогда 
        Возврат;
    КонецЕсли;  

    Если Найти(ДанныеСобытия.Href, "goods") Тогда
        Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.СтраницаТовары;
        Возврат;
    ИначеЕсли Лев(ДанныеСобытия.Href, 6) <> "v8doc:" Тогда 
        Возврат;
    КонецЕсли;

    НавигационнаяСсылкаПоля = Сред(ДанныеСобытия.Href, 7);

"v8tasks:" - это как роутер где потом получаем НавигационнаяСсылкаПоля

Stepa86 commented 7 years ago

@pallid В твоем примере явно стоит вырезка навигационной ссылки и дальше по коду наверняка идет ПерейтиПоНавигационнойСсылке( НавигационнаяСсылкаПоля ) , а @BlizD у себя не переопределяет ссылку, судя по открывшемуся ИЕ с префиксом в ссылке

pallid commented 7 years ago

@Stepa86 кусок с "goods" глянь. т.е для задачи это может быть переход в раздел "Вопросы и ответы"

pallid commented 7 years ago

@Stepa86 так и есть, потом переход, но не во всех случаях

Если Найти(НавигационнаяСсылкаПоля, "releases") > 0 Тогда   
                ПараметрыФормы = Новый Структура("Ключ", Объект.Релиз);
        ОткрытьФорму("Справочник.Релизы.ФормаОбъекта", ПараметрыФормы, Параметры.ЭтаФорма);
КонецЕсли;

Может быть и так

Stepa86 commented 7 years ago

@pallid Да, и что? В ссылке можно что угодно зашифровать и как угодно потом распарсить при клике, но по умолчанию 1Ска просто переходит по ссылке, что и произошло в https://github.com/BlizD/Tasks/issues/31#issuecomment-296117956

pallid commented 7 years ago

Просто далее можно переход делать не только на задачи, но и на другие объекты

Stepa86 commented 7 years ago

@pallid Еще раз. Я это все понимаю и знаю что и как делается. Но @BlizD спрашивает почему у него открылся ИЕ, и я отвечаю, что он открылся, потому что в ссылке есть префикс.

Stepa86 commented 7 years ago

Нужно или префикс убрать или обработчик навесить и в нем обрабатывать

pallid commented 7 years ago

@Stepa86 и потому что это реквизит с типом ФорматированныйДокумент

Stepa86 commented 7 years ago

@pallid Форматированный документ так же умеет в навигационный ссылки по умолчанию и у него так же можно это переопределить в обработчике

pallid commented 7 years ago

@Stepa86 Ооо, а как это, можно скрин где у него обработчик ПриНажатии?

pallid commented 7 years ago

Форматированный документ по ссылке откроет только новое окно "БРАУЗЕРА"

Stepa86 commented 7 years ago

@pallid Да, перепутал с форматированной строкой

BlizD commented 7 years ago

@Stepa86 @BlizD кусок из ДО "v8tasks:" - это как роутер где потом получаем НавигационнаяСсылкаПоля

Понял, попробую, спасибо.

Stepa86 commented 7 years ago

@pallid Если в форматированный документ вставить внешнюю навигационную ссылку, то можно открыть объект в 1Ске. Но окно експлорера все равно откроется. Если в реестре подшаманить слегка, как в http://infostart.ru/public/586481/

pallid commented 7 years ago

@Stepa86 спасибо, буду знать

BlizD commented 7 years ago

@pallid Получается, чтобы это реализовать мне надо отказываться от использования ФорматированногоДокумента? Что то на такие жертвы не готов=)

BlizD commented 7 years ago

Ну или делать по аналогии с Markdown - редактируем в одном окне, а смотрим в другом...

pallid commented 7 years ago

@BlizD ну второй вариант я думал, только там чтоб открытие ссылки делалось.

pallid commented 7 years ago

Ну и вообще, зачем ФорматированныйДокумент, если есть текст, markdown и его просмотр. По мне так с головой

BlizD commented 7 years ago

Проще в этом случае собрать все задачи в тексте HTML и показать их в отдельном поле и оттуда уже делать переходы

BlizD commented 7 years ago

Ну и вообще, зачем ФорматированныйДокумент, если есть текст, markdown и его просмотр. По мне так с головой

Ну, все таки удобнее для пользователей это привычное "Word"-подобное редактирование Особенно радует вставка картинки из буфера - она отрабатывает корректно.

Stepa86 commented 7 years ago

Так редактировать можно в форматированном документе, а выводить только в html

BlizD commented 7 years ago

Пока реализовал вот так:

default