Qform DSL knowledge base

<button> ×342 в коде

Кнопки/действия

Кнопка действия (открыть форму, выполнить SQL/JS/PHP-блок)

Может содержать 10

ТегОписаниеВключений здесь
SQL/обработка 3 · включений здесь: 155
<onclick> Обработчик клика по кнопке: do=js/sql/update/php 152
<mod> Подгружает значение поля из SQL: 2
<javascript> JS-блок, выполняющийся в браузере (onsuccess/afterinit/presubmit/update/ondeleted/onerror) 1
Параметры 1 · включений здесь: 129
<params> Контейнер параметров (для button/list/include — передаются в открываемую сущность) 129
Поля ввода 2 · включений здесь: 23
<condition> Условие отображения/применимости элемента (зависит от значения другого поля) 21
<fields> Группа полей (внутри fieldset, определяет колонки) 2
(без группы) 2 · включений здесь: 21
<action> не везде 20
<span> не везде 1
Оформление (HTML) 2 · включений здесь: 2
<br> HTML <br> — перенос строки 1
<sup> HTML надстрочный индекс 1

Может встречаться внутри 7

ТегОписаниеВключений здесь
Кнопки/действия 1 · включений здесь: 221
<buttons> Контейнер кнопок списка (под таблицей) 221
Структура: форма 2 · включений здесь: 75
<elements> Все элементы формы: поля, html-вставки, группы полей (fieldset) и прочее необходимо оборачивать в… 75
<fieldset> не везде Вложенный набор записей (one-to-many или M2M через дочернюю таблицу)
Отчёты 1 · включений здесь: 3
<tab> Описание вкладки (tab) формы — группа элементов на отдельной странице 3
Поля ввода 1 · включений здесь: 2
<field> Поле для ввода информации в форму. 2
(без группы) 1 · включений здесь: 0
<input> не везде
Оформление (HTML) 1 · включений здесь: 0
<div> не везде HTML div-контейнер (для встраивания произвольной разметки, обычно в дашбордах)

Атрибуты 26

АтрибутОписаниеЗначения
Идентификация 3 · включений: 480
name
×313

Имя кнопки — для адресации в onclick, mod, php-обработчиках и в JS

_other_do_addpassedSetArchSetNotArchdo_add_revert
module
×153

Путь к Qform-модулю (форме), который открывается при нажатии кнопки

_other__qscript_ecology/eject/upload_eject_sour…uploader_filesedu4/protocolfiresystems/fire_objects_actions
title
×14 · пример

Системное имя кнопки для адресации в JS/триггерах (часто совпадает с name; иногда используется в Excel-кнопках)

update_gate_idЭксельupdate_plan_meroprupdate_waste_objectupdate_waste_licenseupdate_geo_license
Стиль 2 · включений: 282
class
×273

CSS-класс Bootstrap для оформления кнопки

btn-info / btn-success / btn-warning / btn-danger / btn-primary / btn-inverse / btn-mini

btn-infobtn-successbtn-warningbtn-primary_other_btn-danger
css-style

Inline CSS-стили кнопки (для абсолютного позиционирования и т.п.)

position: absolute; bottom: 15p…position: absolute; top: 145px;…position: absolute; top: 145px;…_qscript_position: absolute; bottom: 15p…margin-top:18px
(без группы) 8 · включений: 255
selectiononly
×175

Кнопка активна только при выбранной строке списка (1=одна строка, 2=минимум одна выделена, 0=всегда активна)

210_qscript_
showalways не везде
×36
1
ontop не везде
×10
1
access не везде
×9
wp_blocking_manage
color не везде
×7
921
icon не везде
×7
playfilepaper-planechecktimesplus
hide не везде
×6
1
sm_to не везде
×5
in_progressreport_draftingreport_reviewclosedcancelled
Отображение 4 · включений: 142
hint
×63

Подсказка (tooltip), показываемая при наведении на кнопку

Отметить запись как НЕ архивнуюОтметить запись как архивную_other_При нажатии на кнопку, выбранны…_qscript_Открыть акт проверки
prompt
×42

Подпись (label) слева от кнопки в форме

_empty_
caption не везде
×29
СогласоватьОтклонитьУдалитьПодтвердитьОтправить на проверку менеджеру…Согласовать всё
prompt-width

Ширина области prompt (метки слева) в пикселях

9414
Размеры 2 · включений: 68
width
×63

Ширина кнопки в пикселях

2500124200379160
size

Размер кнопки (в условных единицах ширины элемента)

20131535
Поведение интерфейса 2 · включений: 60
editmode
×42

Открывать связанную форму в режиме редактирования (1) или просмотра (0)

10
sendfilters
×18 · пример

Передавать значения фильтров списка как параметры в открываемую форму (1=да)

1
Расположение 3 · включений: 42
continue
×22

Размещать кнопку на одной строке со следующим элементом (1=да)

10_qscript_
hidden
×10 · пример

Скрыть кнопку (1=да; обычно для скрытых триггеров обновления через JS)

1_qscript_0
interval-next
×10 · пример

Размер отступа после кнопки (none/small/normal/big/0)

0
События 1 · включений: 22
onclick
×22

Inline JavaScript-выражение, выполняемое при клике (альтернатива блоку <onclick>)

_qscript_javascript:openIndicIns(2);javascript:openIndicHistory();javascript: text_type = rows[id…javascript:setQueSt(1);javascript:setQueSt(2);
Кнопки 1 · включений: 5
button-condition-action

Действие, когда условие <condition> не выполнено: hide (скрыть), disable (отключить)

hidedisable

Примеры из реального кода 8

@sendfilters packages/ecology/NVOS_payment_analitic.xml:193
<button name="edit" module="{{sys.file}}" class="my_edit_button" selectiononly="2" sendrow="0" sendfilters="1" editmode="1">
    Изменить
    <params>
        <param name="id">{{row.id}}</param>
    </params>
</button>
@title packages/dkb_corporate_security/includes/custom_dashboard.xml:210
<button name="exel_custom" width="200"  type="button" title="Эксель" hidden="0"

    >

    Сформировать отчет в Excel

</button>
@hidden packages/audit_control_groups/audit.xml:871
<button width="0" class="btn-mini my_btn_update_akt_scan_copy_file" hidden="1" >
    <onclick do="update" name="akt_scan_copy_file" />
    <onclick do="update" name="akt_scan_copy_cnt_files" />
    &lt;i class='icon-refresh' title="Нажмите, чтобы увидеть обновить подсчет количества файлов для ОС"&gt;&lt;/i&gt;
</button>
@interval-next packages/ecology/reporting_reports_indicators.xml:195
<button name="bst_approve" class="btn-success" width="250" prompt="" prompt-width="94" continue="1" interval-next="0">
    <!-- if({{sys.language}} != ru-RU) { -->
    Approve
    <!--}else{-->
    Подтвердить приоритетные показатели
    <!--}-->
    <condition field="stat" value="2"/>
    <onclick do="js">
        <![CDATA[
            $("#{{dom.fields.stat}}").val("4").change();

            $("#{{dom.form}}").data("qform-object").fnStoreFromModal($(this), "save", 0, function(){fnUpdateAllDataTables();});
        ]]>
    </onclick>
</button>
@css-style packages/audit_control_groups/audit.xml:365
<button name="send_in_pe_in_review" class="btn-info" css-style="position: absolute; top: 145px; left: 220px; width: 230px;">
    Отправить в ПЕ на рассмотрение
    <onclick do="js">
    <![CDATA[
        QForm.fnOpenForm('audit_control_groups/audit_addressee_send_in_pe_in_review', 1, {'audit_id':'{{id}}', 'dom_form_audit':'{{dom.form}}'});
    ]]>
    </onclick>
</button>
@prompt-width packages/audit_control_groups/audit.xml:825
                <button name="audit_akt_report" width="236" prompt="" prompt-width="94" hint="Открыть акт проверки">Предварительный просмотр
                    <onclick do="js">
<!--if({{sys.print}}!=1) {-->
                        $("#{{dom.form}}").data("qform-object").fnStoreFromModal($(this), "save", 0, function(mResponse) {
                            var params = {};
                            params.id = mResponse.id;
<!--}else {-->
                            var params = {};
                            params.id = '{{id}}';
<!--}-->

                            if($("#{{dom.fields.is_dpb}}").val() == 1)
                            {
                                Q.reports.fnOpenReport('/q/audit_control_groups/audit/reports/audit_control_groups_akt_DPB/generate/?'+$.param(params), 'Акт проверки ДПБ', true, 'show');
                            }
                            else
                            {
                                Q.reports.fnOpenReport('/q/audit_control_groups/audit/reports/audit_control_groups_akt/generate/?'+$.param(params), 'Акт проверки Групп контроля', true, 'show');
                            }
<!--if({{sys.print}}!=1) {-->
                        });
<!--}-->
                    </onclick>
                </button>
@button-condition-action packages/admissions/custom_admissions.xml:217
<button name="create_admission" class="btn-success" selectiononly="1" button-condition-action="disable"
onclick="javascript:
    text_type = rows[ids[0]].type;
    adtp = 'repair';
    if(text_type == 'Огневой') adtp = 'fire';
    if(text_type == 'Газоопасный') adtp = 'gas';
    if(text_type == 'Земляной') adtp = 'earth';
    oOptions = {
        sEntity: 'admissions',
        id: ids[0],
        bDublicate: true,
        oExternVars: {
            from_custom_admission: 1,
            adtp: adtp,
            custom_id: ids[0]
        }
    };
    console.log(rows);
    QForm.fnOpenDublForm(oOptions);
"
>
    Создать наряд-допуск
    <condition field="create_admission_btn" comparison="EQ"></condition>
</button>
@size packages/dkb_corporate_security/investigations.xml:403
<button class="btn-info" size="13" disabled="0">Продлить
    <onclick do="js">
        $("#{{dom.form}}").data("qform-object").fnStoreFromModal($(this), "done", 0, function(mResponse) {

            QForm.fnOpenForm('dkb_corporate_security/includes/change_field', mResponse.id,  {field:'deadline'},undefined,undefined,undefined,undefined,undefined,undefined,function(){
                QForm.fnOpenForm('dkb_corporate_security/investigations', parseInt('{{id}}'));
            });
          });
    </onclick>
</button>