$query = MatrixBouquetActuality::find()
->joinWith(['bouquet']);;
- // add conditions that should always apply here
$dataProvider = new ActiveDataProvider([
'query' => $query,
$this->load($params, $formName);
if (!$this->validate()) {
- // uncomment the following line if you do not want to return any records when validation fails
- // $query->where('0=1');
+
return $dataProvider;
}
- // grid filtering conditions
$query->andFilterWhere([
'id' => $this->id,
'bouquet_id' => $this->bouquet_id,
use yii\helpers\Html;
use yii\helpers\Url;
use yii\web\View;
-use yii_app\records\Products1cNomenclatureActuality;
+
/* @var $this yii\web\View */
/* @var $filter yii\base\DynamicModel */
/* @var $dataProvider yii\data\ActiveDataProvider */
+/* @var yii_app\records\MatrixBouquetActualitySearch $searchModel */
/* @var $groups array */
/* @var $subgroups array */
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success', 'id' => 'saveButton']) ?>
</div>
<?= GridView::widget([
+ 'id' => 'matrix-bouquet-grid',
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
+ 'pjax' => true,
+ 'pjaxSettings' => [
+ 'options' => [
+ 'id' => 'matrix-bouquet-grid-pjax'
+ ]
+ ],
'responsive' => false,
'hover' => true,
'floatHeader' => false,
'label' => 'Наименование',
'format' => 'raw',
'contentOptions' => ['style'=>'min-width:150px;'],
- 'filter' => \yii\helpers\Html::activeTextInput($searchModel, 'bouquet_name', [
- 'class' => 'form-control',
- 'placeholder' => 'Поиск по имени'
- ]),
+ 'filter' => '
+ <div class="d-flex align-items-center">
+ ' . \yii\helpers\Html::activeTextInput($searchModel, 'bouquet_name', [
+ 'class' => 'form-control',
+ 'placeholder' => 'Поиск по имени'
+ ]) . '
+ <div class="ms-1" id="clear-bouquet-name-filter" style="cursor: pointer;">
+ <i class="fa fa-times"></i>
+ </div>
+ </div>
+ ',
'value' => function ($row, $key, $index) {
$product = $row['product'];
$price = $row['price'] ?? null;
<?php ActiveForm::end(); ?>
+
<script>
window.productActualityConfig = {
months: <?= json_encode($months, JSON_UNESCAPED_UNICODE) ?>
syncToWithFrom($inserted.find('.from-month'));
});
+ $(document).on('keyup', '#bouquetcompositionsearch-bouquet_name', function() {
+ var value = $(this).val().toLowerCase();
+ var grid = $(this).closest('.grid-view');
+
+ grid.find('tbody tr').each(function() {
+ var row = $(this);
+ var nameCell = row.find('td:first a');
+ var name = nameCell.text().toLowerCase();
+
+ if (name.indexOf(value) > -1) {
+ row.show();
+ } else {
+ row.hide();
+ }
+ });
+ });
+
+ $(document).on('click', '#clear-bouquet-name-filter', function(e) {
+ e.preventDefault();
+ var input = $('#bouquetcompositionsearch-bouquet_name');
+
+ if (input.val() === '') {
+ return;
+ }
+
+ input.val('');
+ input.trigger('keyup');
+
+ var currentUrl = new URL(window.location.href);
+ currentUrl.searchParams.delete('BouquetCompositionSearch[bouquet_name]');
+
+ $.pjax.reload({
+ container: '#matrix-bouquet-grid-pjax',
+ url: currentUrl.toString(),
+ timeout: false
+ });
+ });
})();
\ No newline at end of file