Просмотр исходного кода

disabled export button, if nothing selected

Alexander Musikhin 2 лет назад
Родитель
Сommit
10f4e2ad57

+ 32 - 27
resources/views/products/index.blade.php

@@ -5,21 +5,20 @@
         <div class="row align-items-center">
             <div class="col-xl-5 col-md-12">
                 <div class="mb-1">Всего найдено: {{ $products->total() }}</div>
-{{--                {{ $products->links() }}--}}
                 Выбрано: <span id="count_selected">0</span>
-                <button class="btn btn-sm btn-primary mx-3" onclick="select_export()">Экспорт</button>
+                <button class="btn btn-sm btn-primary mx-3 disabled" id="export-button" onclick="select_export()">Экспорт</button>
                 <button class="btn btn-sm btn-primary" onclick="reset_selected()">Сбросить выбор</button>
             </div>
             <div class="col-xl-7 col-md-12">
                 <form class="" action="" method="get">
                     <div class="row my-2 justify-content-center">
-                        <div class="col">
+                        <div class="col-6 col-sm-6 col-md-auto">
                             <label class="form-label" for="s">Поиск</label>
                             <input class="form-control form-control-sm"
                                    value="{{ $s ?? '' }}"
                                    type="text" id="s" name="s" placeholder="Поиск">
                         </div>
-                        <div class="col">
+                        <div class="col-6 col-sm-6 col-md-auto">
                             <label class="form-label " for="series">Серия</label>
                             <select class="form-select form-select-sm" name="s_series" id="series">
                                 <option value="">Все</option>
@@ -28,19 +27,19 @@
                                 @endforeach
                             </select>
                         </div>
-                        <div class="col">
+                        <div class="col-6 col-sm-6 col-md-auto mt-3 mt-md-0"">
                             <label class="form-label " for="price_min">Цена от</label>
                             <input class="form-control form-control-sm"
                                    value="{{ $s_price_min ?? '' }}"
                                    type="number" id="price_min" name="s_price_min">
                         </div>
-                        <div class="col">
-                            <label class="form-label " for="price_max">Цена до</label>
+                        <div class="col-6 col-sm-6 col-md-auto mt-3 mt-md-0">
+                            <label class="form-label" for="price_max">Цена до</label>
                             <input class="form-control form-control-sm"
                                    value="{{ $s_price_max ?? '' }}"
                                    type="number" id="price_max" name="s_price_max">
                         </div>
-                        <div class="col-auto">
+                        <div class="col-6 col-sm-6 col-md-auto mt-3 mt-md-0"">
                             <label class="form-label" for="perpage">На странице</label>
                             <select class="form-select form-select-sm" id="perpage" name="perpage">
                                 <option {{ (isset($perpage) && ($perpage == 20)) ? 'selected' : '' }} value="20">20
@@ -52,7 +51,7 @@
                                 </option>
                             </select>
                         </div>
-                        <div class="col-auto">
+                        <div class="col-6 col-sm-6 col-md-auto mt-3 mt-md-0"">
                             <button id="sb" class="btn btn-primary mt-4" type="submit">Поиск</button>
                             <a href="{{ route('index') }}" class="btn btn-light mt-4 ms-1">Сброс</a>
                         </div>
@@ -70,12 +69,12 @@
                             <label>Все<br><input type="checkbox" class="check_all" onchange="toggle(this)"></label>
                         </th>
                         <th class="text-center">Артикул</th>
-{{--                        <th>Группа <br> Наименование <br> Наименование под образец формы</th>--}}
-                        <th>Цена,&nbsp;руб.</th>
-                        <th>Характеристики</th>
-                        <th>Техническое&nbsp;описание</th>
+
+                        <th class="d-none d-md-table-cell">Цена,&nbsp;руб.</th>
+                        <th class="d-none d-md-table-cell">Характеристики</th>
+                        <th class="d-none d-md-table-cell">Техническое&nbsp;описание</th>
                         <th class="text-center ">Изображение</th>
-                        <th>Создан&nbsp;/&nbsp;Изменён</th>
+                        <th class="d-none d-md-table-cell">Создан&nbsp;/&nbsp;Изменён</th>
                     </thead>
                     </tr>
                     <tbody>
@@ -90,20 +89,13 @@
                                 </label>
                             </td>
 
-{{--                            <td>--}}
-{{--                                <a href="{{ route('view_product', $product->id) }}">--}}
-{{--                                    <strong>Группа:</strong> {{ $product->product_group }}<br>--}}
-{{--                                    <strong>Наименование:</strong> {{ $product->name }}<br>--}}
-{{--                                    <strong>Наименование под образец формы:</strong> {{ $product->name_for_form }}--}}
-{{--                                </a>--}}
-{{--                            </td>--}}
-                            <td>{!! number_format($product->price, 2, ',', '&nbsp') !!}</td>
-                            <td>
+                            <td class="d-none d-md-table-cell">{!! number_format($product->price, 2, ',', '&nbsp') !!}</td>
+                            <td class="d-none d-md-table-cell">
                                 <a href="{{ route('view_product', $product->id) }}">
                                     {!! nl2br($product->characteristics) !!}
                                 </a>
                             </td>
-                            <td title="{{ $product->tech_description }}" style="font-size: small">{!! Str::words(nl2br($product->tech_description), 22) !!}</td>
+                            <td class="d-none d-md-table-cell" title="{{ $product->tech_description }}" style="font-size: small">{!! Str::words(nl2br($product->tech_description), 22) !!}</td>
                             <td class="text-center align-middle">
                                 @empty($product->image_path)
                                     Нет изображения
@@ -113,14 +105,19 @@
                                          alt="{{ $product->article }}">
                                 @endempty
                             </td>
-                            <td>{!! date('d.m.Y_H:i', strtotime($product->created_at)) . '<br>' .date('d.m.Y_H:i', strtotime($product->updated_at)) !!}</td>
+                            <td class="d-none d-md-table-cell">{!! date('d.m.Y_H:i', strtotime($product->created_at)) . '<br>' .date('d.m.Y_H:i', strtotime($product->updated_at)) !!}</td>
                         </tr>
                     @endforeach
                     </tbody>
                 </table>
-                <div class="d-flex">
-                    {{ $products->links() }}
+            </div>
+        </div>
+        <div class="row">
+            <div class="col-12">
+                <div class="pagination pagination-sm justify-content-center">
+                    {{ $products->onEachSide(0)->links() }}
                 </div>
+
             </div>
         </div>
     </div>
@@ -182,6 +179,14 @@
                     checkboxes[i].checked = true;
                 }
             }
+
+            if(selected_products.length > 0){
+                document.getElementById('export-button').classList.remove('disabled');
+            } else {
+                document.getElementById('export-button').classList.add('disabled');
+            }
+
+
         }
 
         // reset all selected (flush localstorage var)

+ 4 - 4
resources/views/products/select_export.blade.php

@@ -14,16 +14,16 @@
                 <form method="post" action="{{ route('export_docx') }}">
                     @csrf
                     <div class="row justify-content-center">
-                        <div class="col-3 mb-3">
+                        <div class="col-12 col-md-3 mb-3">
                             <label class="form-label">Выберите шаблон</label>
-                            <select name="template">
+                            <select name="template" class="form-select form-select-sm">
                                 @foreach($templates as $template)
                                     <option>{{ $template }}</option>
                                 @endforeach
                             </select>
 
-                            <label class="form-label">Выберите какое описание вставить в документ</label>
-                            <select name="descr" class="form-select">
+                            <label class="form-label mt-3">Выберите какое описание вставить в документ</label>
+                            <select name="descr" class="form-select form-select-sm">
                                 <option value="1">Характеристики + краткое описание</option>
                                 <option value="2">Характеристики + полное описание</option>
                                 <option value="3">Только краткое описание</option>

+ 1 - 1
resources/views/products/wait.blade.php

@@ -31,7 +31,7 @@
             document.getElementById('link').click();
             setTimeout(function () {
                 window.location = '/';
-            }, 1000);
+            }, 3000);
         </script>
     @endif
 

+ 7 - 4
todo.txt

@@ -1,3 +1,6 @@
++ если ничего не выбрано, кнопка экспорт не доступна
++ верстку адаптиную поправить
++ Вынести импорт и экспорт в jobs (позволит импортировать/экспортировать в фоне)
 + импорт их xls в базу, распознавание по article
 + постраницчный вывод таблицы товаров, количество товаров на странице
 + фильры: общий поиск, серия, диапазон цен
@@ -10,14 +13,14 @@
 + Выбор описания при экспорте
 
 
-todo Вынести импорт и экспорт в jobs (позволит импортировать/экспортировать в фоне)
+
 
 
 
 
 
 Примерное ТЗ.
-todo Авторизация в системе без разделения ролей на базе «манагера».
+- Авторизация в системе без разделения ролей на базе «манагера».
 + Каталог товаров по данной таблице xlsx.
 + озможность обновлять и загружать новые товары из этой (или ее части) таблицы xlsx.(по аналогии с «манагером»). Товары должны быть разделены по сериям.
 
@@ -26,7 +29,7 @@ todo Авторизация в системе без разделения рол
 *** upd поиск картинки в каталоге работает так: ищем в начале имени фала артикул, если нет то ищем в начале имени фала транслит артикула (чтобы избежать проблем с русскими\латинскими символами в эксль файле)
 
 
-todo Должна присутствовать возможность сформировать документ в формате word:
+- Должна присутствовать возможность сформировать документ в формате word:
 Выгрузка в docx формат выбранных товаров (просто галочками, серию или весь список).
 - как для одного изделия, так и для группы изделий (как из одной серии, так и из разных) ;
 - в отдельный файл для каждого изделия из выборки и в общий файл из выборки.
@@ -38,4 +41,4 @@ todo Должна присутствовать возможность сформ
 + Дизайн - стандартный шаблон.
 
 
-todo нужно каким-то образом запоминать ранее выбранные изображения у товаров, либо при загрузке предоставлять выбор
+- нужно каким-то образом запоминать ранее выбранные изображения у товаров, либо при загрузке предоставлять выбор