Описание списков

Материал из ISPWiki
Перейти к: навигация, поиск

Введение

Элемент metadata для списков может иметь следующие дополнительные атрибуты:

атрибут key
Ключевое поле. Знаение этого поля будет передано в форму в параметре elid при редактировании.
атрибут keyname
Задает поле, значение которого используется для отображения списка выбранных элементов при групповых операциях. Если не указан, используется значение ключевого поля.
атрибут autoupdate
Задаёт интервал автоматического обновления страницы в секундах.
атрибут selficon
Этот список имеет свой собственный логотип. Значение параметра — имя картинки.
  <metadata name="product" type="list" key="mpname" keyname="name" mgr="core">
    <toolbar view="buttontext">
      <toolgrp name="one">
        <toolbtn func="product.params" type="edit" default="yes" img="t-edit" name="params">
          <hide name="isinstalled" value="off"/>
        </toolbtn>
        <toolbtn func="product.update" type="edit" img="t-retry" name="update">
          <hide name="isinstalled" value="off"/>
        </toolbtn>
        <toolbtn func="product.install" type="edit" img="t-install" name="install">
          <hide name="isinstalled" value="on"/>
        </toolbtn>
        <toolbtn func="product.delete" type="group" img="t-delete" name="delete">
          <hide name="isinstalled" value="off"/>
          <hide name="name" value="COREmanager"/>
        </toolbtn>
      </toolgrp>
      <toolgrp name="two">
        <toolbtn func="product.go" type="edit" img="t-goisp" name="go">
          <hide name="isinstalled" value="off"/>
          <hide name="name" value="COREmanager"/>
        </toolbtn>
      </toolgrp>
      <toolgrp name="three">
        <toolbtn func="product.config" type="new" img="t-attr" name="config"/>
      </toolgrp>
    </toolbar>
    <coldata>
      <col name="name" type="data" sort="alpha" sorted="yes"/>
      <col name="version" type="data"/>
      <col name="avail_version" type="data"/>
      <col name="state" sort="prop">
        <prop name="installed" defimg="p-off" onimg="p-on"/>
        <prop name="installing" onimg="p-install" animated="yes"/>
        <prop name="updating" onimg="p-install" animated="yes"/>
        <prop name="deleting" onimg="p-install" animated="yes"/>
      </col>
      <col name="descr" type="msg"/>
    </coldata>
  </metadata>

Панель инструментов (элемент toolbar)

Панель инструментов содержит в себе кнопки разделенные на группы (элемент toolgrp).

атрибут view
задает внешний вид панели инструментов. Данный атрибут навешивается автоматически и его значение зависит от настроек текущего пользователя. Возможные значения: button (показывать только кнопки), buttontext (показывать подписи к кнопкам).
элемент toolgrp
предназначен для логического разделения кнопок, содержит в себе элементы toolbtn, должен иметь атрибут name.
элемент toolbtn
см. Кнопка панели инструментов

Группа кнопок (элемент toolgrp)

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

Кнопка панели инструментов (элемент toolbtn)

атрибут name
имя кнопки. Используется для идентификации кнопки и привязки к языкам.
атрибут func
имя функции, которая будет вызвана при нажатии.
атрибут img
имя картинки, которая будет отображена на кнопке. Необходимо указать без расширения.
атрибут default
Значение "yes" является признаком действия по умолчанию (при двойном щелчке по строке таблицы).
атрибут cgi
Адрес cgi скрипта на который отправлять запрос. Например /mancgi/download
атрибут sametab
модуль будет открыт в той же вкладке
атрибут warning
только для групповой операции, конфирм сообщение будет выделено красным цветом, слева будет иконка с восклицательным знаком
атрибут newtab
модуль будет открыт в новой вкладке панели
атрибут nogroupedit
запретить групповое редактирование


атрибут type
Тип действия кнопки. Может принимать следующие значения:
  • new: Будет показана форма создания нового элемента.
  • back: Вернуться к предыдущему списку.
  • edit: Вызов формы редактирования одного выбранного элемента.
  • action: Операция над выбранным элементом без подтверждения.
  • editnosel: Аналог edit за тем исключением, что открывает форму редактирования, когда ни один элемент таблицы не выбран.
  • editlist: Вызов функции-списка, для которого родительским элементом (plid) будет являться выбранный элемент в текущем списке.
  • group: Групповая операция над выбранными элементами.
  • groupform: Вызов формы группового редактирования выбранных элементов.
  • groupformnosel: Аналог groupform за тем исключением, что позволяет вызов функции, когда ни один элемент таблицы не выбран.
  • groupdownload: Аналог групповой операции с той разницей, что в ответ ожидаем файл.
  • list: Вызов функции-списка.
  • refresh: Вызов функции для обновления текущего списка.
  • windownosel: Функция будет открыта в новом окне
  • window: Функция будет открыта в новом окне, для выбранного элемента
  • groupwindow: Функция будет открыта в новом окне, для выбранных элементов
  • url: Открыть URL указанный в атрибуте func в отдельной вкладке браузера.
  • preview: Будет отображена картинка отданная вызванной ф-цией.
элемент hide
элемент show
элемент remove;

Сообщения

Для локализации при работе с книпками панели инструментов используются следующие сообщения:

hint_<имя кнопки>
сообщения для всплывающей подсказки
short_<имя кнопки>
подпись под кнопкой в панели инструментов
msg_confirm_<имя кнопки>
сообщение используемое для подтверждения операции (@type='group')
msg_confirm_delimiter
строка, которая будет использоваться как разделитель в подтверждении, при выборе нескольких элементов. По умолчанию в качестве разделителя используется запятая с пробелом.

Элемент hide: отключение кнопки в зависимости от выбранной строчки.

атрибут name
имя столбца
атрибут value
значение при котором кнопка будет недоступна

Пример использования

Элемент show

Включение кнопки в зависимости от выбранной строчки.

атрибут name
имя столбца
атрибут value
значение при котором будет показана кнопка

Пример использования

Элемент remove

Удаление кнопки в зависимости от выбранной строчки.

атрибут name
имя столбца
атрибут value
значение при котором будет удалена кнопка

Описание колонок таблицы (элемент coldata)

Узел coldata должен содержать один или более узлов col, описывающих колонки таблицы.

элемент col
Описывает колонку таблицы.
элемент setcolor
Задает условия для раскраски строки. Подробнее смотрите описание элемента setcolor.

Описание колонки (элемент col)

атрибут name
Имя колонки. Должно иметь уникальное значение в пределах одного metadata. Необходимо для привязки к языкам.
атрибут type
Тип данных в колонке. Может принимать значения data (данные от панели управления; используется по умолчанию), indicator (индикатор; значения лимита и фактического использования передаёт панель управления), msg (показ сообщения, соответствующего переданному значению от панели управления).
атрибут sort
Задаёт тип сортировки данных в колонке. Возможные значения: alpha (алфавитная сортировка; по умолчанию), calpha (регистронезависимая алфавитная сортировка), digit (сортировка в порядке числового возрастания), version (сортировка версий программного обеспечения), file (аналогична "alpha", но символ '/' считается меньше любого другого, таким образом файлы внутри одного каталога всегда располагаются вместе), indicator (сортировка по "использованному значению" индикатора; только для колонок с индикаторами), ip (сортировка IP-адресов), prop (сортировка по наличию свойств, при одинаковых свойствах сортируем по значению колонки в алфавитном порядке), priority (сортировка в алфавитном порядке по по атрибуту @priority).
атрибут sorted
Задает сортировку по умолчанию, в качестве значения должно быть указано число задающее порядок сортировки, знак перед числом определяет направление '-' - по убыванию, '+' - по возрастанию (знак обязателен). Устаревший вариант: если sorted="yes", таблица по умолчанию отсортирована по этой колонке. sorted="desc" сортировать по убыванию.
атрибут stat
Показывать сумму чисел в данном столбце. При этом, если за числом идет некая строка (суффикс), то суммирование производится отдельно для каждого суффикса. Для индикаторов суммируется и всего, и использовано. Если в значение элемента списка есть атрибут total, то при total="ignore" - при выделение эта строка будет игнорироваться в сумме, а при total="final" в сумме будет отображаться только это значение.
атрибут wrap
Если установлен, переносы строк в данных не будут проигнорированы. Данные в колонке отображаются в нескольких строках.
атрибут align
Выравнивание данных колонки. Может принимать значения left, right, center.
атрибут width
Ширина колонки по умолчанию.
атрибут editform
Значение ячейки будет отображено в виде ссылки на форму редактирования. Имя ф-ции должно быть задано в значение атрибута.
атрибут view
только для типа indicator, если значение = brackets, то значение будет отображено в виде 80(10)
атрибут fastfilter
Будет отображена иконка быстрого фильтра по списку, дающая уставить фильтр по значению ячейки таблицы списка в один клик.
атрибут if
См. Введение.
атрибут hidden
По умолчанию, скрывать данную колонку. Для отображения необходимо выполнить настройку вида таблицы.
атрибут level
См. Введение.
атрибут noescaping
Наличие этого атрибута отключает экранирование html.
атрибут convert
Задает алгоритм кодирования для стобца. Все значения в этом столбце будут преобразованы с использованием заданного алгоритма. На данный момент реализован только punycode - алгоритм преобразования из punycode в последовательность символов в кодировке UTF-8.
атрибут edit
Разрешить редактирование элемента прямо из списка. Значение атрибута задает имя функции (формы), которую необходимо позвать для сохранения значения. Важно, чтобы название колонки совпадало с названием поля (field) из формы и это поле должно быть доступно для изменения. Помимо значения в форму будет передано имя колонки (scolname) и имя списка (stablename). Если значение поля влияет на идентификатор строки, функция обязана возвращать новый идентификатор [elid] и имя [elname] (если его значение не совпадает с идентификатором) Поддерживаются следующие типы полей формы: input[type=text][zoom, unlimit, date], select, radio, slider, textarea.
атрибут nestedlist
Задает имя списка, в который следует перейти при нажатии на значение в этой колонке. Перед переходом в список на него будет установлен фильтр. Параметры фильтра будут взяты из значения @nestedlist, который имеет формат QUERY_STRING. Кроме имени списка, с которого должно начинаться значение @nestedlist, в атрибуте могут быть использованы следующие макросы:
  • col_value - значение ячейки
  • elid - идентификатор строки (@key)
  • plid - идентификатор подсписка
  • +значения полей фильтра текущего списка

Например:

<coldata>
  <col sort="ip" sorted="yes" name="name" type="data" nestedlist="webdomain&amp;ipaddr=__col_value__"/>
</coldata>

При нажатии на значение в списке IP адресов будет отображен список WEB доменов (webdomain). Перед вызовом списка на него будет установлен фильтр следующим вызовом webdomain&ipaddr=__col_value__&sok=ok, где вместо __col_value__ будет подставлено значение ячейки. Для игнорирования данного функционала для определенных строк нужно использовать атрибут nestedlist="no" в элементе со значением.

атрибут nestedlist_blank
Списки будут открываться в новой вкладке панели, используется только в связке с атрибутом nestedlist
элемент setcolor
Задает условия для раскраски ячейки. Подробнее смотрите описание элемента setcolor.
подсказки к колонокам (hint)

сообщения могут содержать подсказки к колонкам: hint_<имя_колонки>

Описание свойства (prop/xprop)

Любая колонка может содержать до 64 свойств (элементов prop и xprop). Свойства сортируются согласно порядку их объявления в метаданных.

элемент prop
отображается при наличии в строке значения с именем указанным в атрибуте @name.
элемент xprop
отображается, если значение указанное в атрибуте @name равно значению, указанному в атрибуте @value. Если атрибут @value не указан, такое свойство будет отображено, если значению этого элемента не соответствует никакого другого xprop с таким же @name.

элементы prop и xprop могут содержать следующие атрибуты:

атрибут name
см. описание выше
атрибут value
только для xprop см. описание выше
атрибут img
задает картинку, которая будет отображена
атрибут animated
картинка img — анимированный gif файл
атрибут cgi
Адрес cgi скрипта на который отправлять запрос. Например /mancgi/download
атрибут func
задает функцию, которая должна быть вызвана при нажатии на картинку. Этой функции будут переданы в качестве параметров значения elid - идентификатор выбранной строки, plid - идентификатор в базовом списке, value - значение свойства.
атрибут sort
задает тип сортировки для данного свойства. Атрибут sort имеет смысл использовать только совместно с сортировкой типа "prop". Возможные значения этого атрибута:
  • no: данное свойство не будет учитываться при сортировке.
  • invert: при сортировке по убыванию строки без этого свойства будут идти раньше строк с ним.
атрибут type
задает тип функции @func. Может принимать следующие значения:
  • edit: Вызов формы редактирования одного выбранного элемента.
  • list: Вызов функции-списка, для которого родительским элементом (plid) будет являться выбранный элемент в текущем списке.
  • group: Операция с подтверждением над выбранным элементом.
  • window: Вызов фукции в отдельной вкладке браузера.
  • url: Открыть URL указанный в атрибуте func в отдельной вкладке браузера.
атрибут stat
показывать общее количество строк с таким свойством внизу таблицы.
атрибут activehint
если установлен в "yes", то сообщение описывающее свойство будет загружено из панели отдельным запросом всякий раз, когда его необходимо отобразить. Для этого будет вызвана функция формирования списка с параметрами hint_field содержащим имя свойства, value - его значение, elid - идентификатор строки, результатом функции должен быть xml документ содержащий элемент value с текстом сообщения. Текст будет подставлен в соответствующее сообщение (см. далее) вместо макроса __value__

сообщения могут содержать описание для свойства:

hint_p_<name>_<value>
описание для xprop с заданным именем и значением
hint_p_<name>
описание для prop/xprop. В котором макрос __value__ будет заменен на значение.

Раскраска (элемент setcolor)

Действие элемента setcolor распространяется на одну ячейку (цвет текста), если он описан внутри элемента col или на всю строку (цвет фона), если он описан внутри элемента coldata. Вы можете описать любое количество условий раскраски строк или ячеек таблицы.

атрибут name
задает имя элемента (это может быть имя col, prop, xprop или имя колонки не описанной в xml), значение которого будет сравниваться с указанным в атрибуте value. Этот атрибут можно не указывать в правилах для раскраски ячеек. В этом случае будет взято содержимое ячейки, для которой это правило написано.
атрибут value
задает значение, с которым будет сравниваться значение поля, заданного атрибутом @name. Если значение не указано или пустое - проверяет наличие поля в строке.
атрибут color
задает цвет, который будет применен, если выполняется заданное условие

Ячейки и строки таблицы могут быть раскрашены вручную при формировании данных (элементов elem). Для этого необходимо добавить атрибут color в соответствующий элемент elem для раскраски строки или в любой элемент с данными ячейки, для раскраски соответствующей ячейки. На момент передачи данных в xslt обработчик, все условия, заданные элементом setcolor, будут вычислены и выставлены соответствующие атрибуты в элементах данных списка.

На данный момент доступны следующие цвета: red, green, blue, yellow, cyan Пример раскраски состояний в списке изменений:

...
        <col name="state" sort="alpha" type="msg">
            <setcolor color="red" value="testing"/>
            <setcolor color="yellow" value="planned"/>
            <setcolor color="green" value="release"/>
        </col>
...

Описание диаграм (элемент diagram)

К таблицам возможно добавить визуальное отображение данных с помощью элемента diagram.

атрибут type
Тип графика. Возможные значения: line, histogram, pie, column, area, steppedarea (посмотреть примеры можно тут ).
атрибут label
Из какой колонки взять подпись к значениям.
атрибут data
Из какой колонки взять данные для круговой диаграммы (только для type="pie").
атрибут min
Задает нижний вертикальный предел для графика (только для type="line" и type="histogram").
атрибут max
Задает верхний вертикальный предел для графика (только для type="line" и type="histogram").
атрибут others 
Задает минимальный процент для отображения на круге, все данные ниже этого процента будут отображаются как "другое" (только для type="pie", задается дробным числом например 20% это 0.2)
элемент line
Один или несколько таких элементов описывают данные, которые должны быть отображены на графике. атрибут @data этого элемента задает имя колонки, из которой будут взяты значения; атрибут @color задает цвет линии/столбца, для применения необходимо задать этот атрибут для всех элементов line.