xTables JS

В файле /js/xtables.js находятся js функции xTables.

jQuery(selector).xtTimer();

Плагин jQuery, который запускает таймер в милисекундах в переданном селекторе.


jQuery("#sometimer").xtTimer();

jQuery(selector).xtInitInput();

Плагин jQuery, который инициализирует поля input, textarea по переданному селектору, добавляя символ крестика справа для очистки поля и ограничение количества символов, если оно передано в качестве параметра.

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

Поле ввода должно быть обернуто в div, в котором поле ввода должно быть первым дочерним элементом. При необходимости использования label для такого поля, он должен быть вынесен за пределы этого div.


<div class="form-group">
    <input id="someinput" class="form-control">
</div>

jQuery("#someinput").xtInitInput(250);

xtables.inputsCrypt()

Функция для шифрования данных в полях ввода на клиенте.
Осуществляется с использованием библиотеки https://github.com/travist/jsencrypt.
Нужно поместить данные полей ввода, которые необходимо зашифровать, в массив и передать его вместе с открытым ключом в качестве аргументов в данную функцию.


var inputs = [];
inputs.push(login.val(), pass.val());

var inputsCrypted = xtables.inputsCrypt(inputs, pubKey);
login.val(inputsCrypted[0]);
pass.val(inputsCrypted[1]);

xtables.ajax()

Используется для передачи данных методом POST на сервером через ajax запрос. Автоматически добавляет csrf-токен. В метод передаются:


xtables.ajax('/some/url', {name: 'some name', else_val: 'some else data'});

xtables.ajax('/some/url',
    {
        name: 'some name',
        else_val: 'some else data'
    },
    {
        success: function(data) {
            // some action
    }
});

xtables.startAjDi(params)

В фукнцию xtables.startAjDi() нужно передать агрументы в json:


xtables.startAjDi({
    url: '/some/url',
    data: {
        some: 'some data',
        else: 1
    },
    refresh: 0,
    reloadBundles: ['#selector1', '#selector2'],
    history: '/some/new/url'
});

xtables.ajDiBundle(selector, url, data)

Эта функция используется для перезагрузки аякс контейнера по имени селектора. Если в фукнцию будут переданы url, data, то произойдет обновление данных ajax dispatcher. Если будет только сообщен селектор, то произойдет простая перезагрузка.


xtables.ajDiBundle('#someId');
// or
xtables.ajDiBundle('#someId', '/some/url', {
    some: 'some data',
    else: 1
});

xtables.reloadAjDi(params)

Эта функция предназначена для перезагрузки ранее загруженного аякс диспетчера. В функцию должны быть переданы именованные параметры:


xtables.reloadAjDi({num: 'ajDi234'});

// OR

xtables.reloadAjDi({
    num: 'ajDi234', // some ajDi name
    url: '/some/url',
    data: {
        some: 'some data',
        else: 1
    },
    history: '/some/new/url'
});

xtables.serverReplyHandle()

Производит разбор ответа сервера, поступающего, как правило, как результат выполнения ajax запроса.
Выполняет:

xtables.setCookie()

Устанавливает значение куки. Кука с сессионным идентификатором не доступна через js.

xtables.getCookie()

Получение значения куки по имени. Кука с сессионным идентификатором не доступна через js. В случае, если кука с таким именем не будет найдена, то будет возвращена пустая строка. В функцию нужно передать только имя куки.

xtables.onSettingsReady(toDo)

С сервера на клиент передаются настройки в файле /tmp/xtables.settings.json. Дополнительные настройки могут быть определены в файле /config/js-css-meta.php в параметре xtables_js_settings (см. HeadConnector).

Для обеспечения выполнения функции гарантировано только после загрузки данных настроек с сервера, если какие-то из них используются в функции, можно обернуть ее выполнение в xtables.onSettingsReady(toDo), куда в качестве параметра нужно передать функцию. Ее выполнение будет отложено, если настройки еще не прогрузились.


xtables.onSettingsReady(function() {
    // some code ... with any xtables.settings params
});

xtables.plot(cssId, url, preloader)

Для подгрузки с сервера диаграммы с использованием js библиотеки flot может быть использована данная функция, в которую нужно передать:


xtables.plot('#some-id', '/some/url');

xtables.scrollArrows(toTopId, toBottomId)

Для управления указателями прокрутки страницы вверх и вниз можно использовать данную функцию, в которую можно передать css идентификаторы указателей. По умолчанию, если они не определены, то используются идентификаторы #to-top, #to-bottom.

Глобальные свойства