Closed mubat closed 7 years ago
Ok. How do you think do it?
@Mubat Чтоб понять, как лучше сделать, можешь привести пример, где нужно отключать вывод сообщений.
@loveorigami, например, я хотел бы использовать виджет вместо стандартного Yii-шного flash alert. И так получилось, что у нас есть виджет с оповещениями, который каждую минуту выполнял ajax запрос на сервер, который проверяет новые оповещения. И, получается, выполняется 2 запроса: который основной и сразу за ним следует запрос из этого виджета. Поэтому хотелось бы возможность отключить запросы в этом виджете.
Добавил настройку showNoty в ajax вызовах. Установи ее в false для отключения последующего запроса. Инструкция на главной. Если все нормально - сделаю релиз
@loveorigami не совсем то, что я имел ввиду (хотя эти изменения тоже имею место быть). Мне нужно просто отключить ajax запросы при генерации виджета. Код виджета:
echo \lo\modules\noty\Wrapper::widget([ // if need icon, class BootstrapNotify should be extended
'layerClass' => 'lo\modules\noty\layers\BootstrapNotify',
'options' => [
'newest_on_top' => true,
'delay' => 5000,
'offset' => [
'x' => 10,
'y' => 70,
],
],
]);
Хорошо бы было иметь возможность указать параметр, например isAjax, = false чтобы не выполнялись ajax запросы (и если этот параметр = true, то только тогда выполнять registerJS()
)
Дописать не сложно, но при такой настройке виджета вывод noty вообще отключится. т.к. php сформирует скрипт, который будет запрещать любые вызовы noty-виджета. Тогда теряется смысл его использовавния.
Как сделал я, получается, на странице может быть несколько ajax вызовов (gridView, editable...,), a noty, например, нужно показать после удаления строки или сортировки.
Может я не правильно понял, но если отключить поддержку ajax, смысл виджета не изменится - выводить flash сообщения (так же описано в шапке репозитория, поправьте если не прав). Мне нужно полностью отключить ajax у виджета.
да, отключить можно, но флеши будут появляться только после перезагрузки страницы. А этот виджет расчитан на то, чтобы показывать сообщения после ajax операций над моделью при помощи js noty библиотек.
По сути - после отключения ajax ты получишь тот же самый yii-alert, только в обертке.
Как вариант - можешь написать свой Wrapper, отнаследовавшись от моего,, в котором оставить пустым registerJs() https://github.com/loveorigami/yii2-notification-wrapper/blob/master/src/Wrapper.php#L157
ну или добавить, как я предложил, в свой ajax скрипт
$.ajax({
...
showNoty: false, // add this for disable notification
success: function(data) {
}
});
да, отключить можно, но флеши будут появляться только после перезагрузки страницы.
Мне так и надо )
Как вариант - можешь написать свой Wrapper, отнаследовавшись от моего,
Сделал следующим образом:
use lo\modules\noty\Wrapper;
class WrapperWithoutAjax extends Wrapper
{
public function init()
{
parent::init();
$this->isAjax = false;
}
protected function registerJs() {}
}
Need to add some trigger to enable/disable ajax requests