Изменение отображения билета в Trac

С шаблоном по умолчанию, trac-билет доступен только для просмотра, я должен нажать кнопку "Изменить", чтобы развернуть вкладку свойств, чтобы изменить, изменить состояние билета. Теперь я хочу развернуть эту вкладку автоматически? Как я могу изменить его быстро, не меняя сам шаблон? Можно ли изменить его с помощью файла trac.ini? Я не могу найти, где изменить местоположение шаблона по умолчанию, поэтому я не могу изменить себя. Спасибо!

Ответ 1

Я думаю, что лучший способ включить поведение, которое вы ищете, - это добавить пользовательский JS файл (который может быть добавлен так же, как пользовательский CSS, прочитать TracInterfaceCustomization).

В этом файле выполните следующее:

$(document).ready(function() {
 window.setTimeout(function() {
    $("#modify").parent().removeClass('collapsed')
 }, 0);
});

Этот код не проверен, но он должен дать вам эту идею. В основном нам нужно подождать, пока DOM будет готов ($ (document).ready), но поскольку в течение этого события есть несколько функций JS, setTimeOut устанавливает небольшую задержку, чтобы убедиться, что команда collapse прошла раньше.

HTH от профессионального разработчика Trac: -)

Ответ 2

Я использую trac 0.12 и имею ту же проблему.

... без изменения самого шаблона

Я не мог найти вариант для его настройки, но я заметил, что если вы нажмете ссылку "изменить" в правом верхнем углу билета, тогда складная область "Изменить билет" автоматически будет несовпадающей для вас.

Я знаю, что вы не просили об этом, но на всякий случай вам нужен ужасный взлом шаблона...

Откройте файл шаблона в редакторе, например. для меня в CentOS 5.5:

sudo emacs  /usr/lib/python2.4/site-packages/Trac-0.12-py2.4.egg/trac/ticket/templates/ticket.html

Прокомментируйте строку jQuery, которая запускает секцию изменения, чтобы свернуть на странице:

//$("#modify").parent().toggleClass("collapsed");

Я нашел, что редактирование не вступало в силу сразу - возможно, шаблон кэширован или что-то еще? Он работал после нескольких минут обновления обновления и перезапуска апача.

Давайте надеемся, что кто-то другой ответит с лучшим решением...

Ответ 3

Это в основном ответ Шварца, но в более простой форме

Чтобы получить доступ к билетам, добавленным в нагрузку, выполните следующие действия. Поместите следующий код

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:py="http://genshi.edgewall.org/"
      py:strip="">

  <!--! Add site-specific style sheet -->
  <head py:match="head" py:attrs="select('@*')">
    ${select('*|comment()|text()')}
    <script type="text/JavaScript">
    <!--
    // EXPAND TICKET CONROLS ON LOAD.
    jQuery(document).ready(function() {
     window.setTimeout(function() {
        $("#modify").parent().removeClass('collapsed')
     }, 1);
    });
    //-->
    </script>
  </head>

  <body py:match="body" py:attrs="select('@*')">
    ${select('*|text()')}
  </body>
</html>

в каталоге /path/to/your/trac/project/ templates в файле site.html.