Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Pagination + sortable list (https://javascript.ru/forum/server/73568-pagination-sortable-list.html)

Nexus 25.04.2018 17:55

Цитата:

Сообщение от laimas
Что при этом изменится, что заставит подгрузится элементы с первой страницы?

Изменится позиция перетаскиваемого элемента, это и может послужить триггером.
Какую страницу подгрузить станет понятно сравнив позиции текущего и вытесненного элемента.

laimas 25.04.2018 17:58

Цитата:

Сообщение от Nexus
Изменится позиция перетаскиваемого элемента, это и может послужить триггером.

Какой триггер, если у вас изменили позицию элементы в пределах одной страницы?

Nexus 25.04.2018 18:49

Цитата:

Сообщение от laimas
Какой триггер, если у вас изменили позицию элементы в пределах одной страницы?

Что вас смущает?
Да, элемент остался на той же странице, однако пользователь вполне может потянуть его дальше в начало документа, так и не сделать этого.
Если потянул, то я покажу ему предыдущую страницу, нет - скрою её.

laimas 25.04.2018 19:00

Цитата:

Сообщение от Nexus
однако пользователь вполне может потянуть его дальше в начало документа

Ту так это нужно перетянуть его за пределы списка текущей страницы, но не при смене же как, в примере, позиции 8 на позицию 7! Это не только не смущает, от этого волосы дыбом. )

Я редактировал, пост, добавил, если не читали:

Я еще понимаю, если тянуть вверх и выйти за пределы списка, что инициалиузирует запрос и загрузит первую страницу и в ней опустить элемент с индексом 8, перед индексом 2, это будет инициализацией обновления в базе. Но чтобы 8 на позицию 7 и показалось нечто с первой страницы ..., этого я не понимаю.

Это другое дело, но опять таки, если это перемещение в небольших пределах, но если большой список ... врагу не пожелаешь такой сортировки. :)

laimas 25.04.2018 20:17

Nexus,
такая задача не редко возникает в админках. Мне как-то пришлось решать такой вопрос, и ждать пока "перемотает", это утомительно, да и заказчика волновал всегда вопрос цены - не надо наворотов, чем дешевле тем лучше.

Это без наворотов и использую зачастую. Все элементы навигатора (страницы) доступны из панели внизу. Ее состояние по умолчанию - одна строка кнопок страниц, в которой текущая страница. При наведении мыши она выезжает на всю высоту.

В списке щелчком выбирается (подсвечивается) перемещаемый элемент, затем на панель навигатора, он раскрывается, подводим мышь под нужную страницу, раскрывается список с кнопками элементов в нем, выбираем в нем позицию. Эти две позиции отправляются на сервер.

Nexus 26.04.2018 10:10

Цитата:

Сообщение от laimas
в примере, позиции 8 на позицию 7! Это не только не смущает, от этого волосы дыбом.

Это я грубо написал, разумеется грузить след. страницу, когда пользователь передвинул элемент на 1 позицию - глупость, а добавить какие-то условия - не столь сложно будет.

Цитата:

Сообщение от laimas
врагу не пожелаешь такой сортировки.

Это да, не подумал о подобном. 10 Страниц элемент тащить - то еще удовольствие :)

Цитата:

Сообщение от laimas
В списке щелчком выбирается (подсвечивается) перемещаемый элемент, затем на панель навигатора, он раскрывается, подводим мышь под нужную страницу, раскрывается список с кнопками элементов в нем, выбираем в нем позицию. Эти две позиции отправляются на сервер.

Гениально! Спасибо за ответ, именно так и сделаю :)

laimas 26.04.2018 11:11

Цитата:

Сообщение от Nexus
именно так и сделаю

Тогда по полной делать: перемещение от одного до множества по выбору индивидуальному или диапазона с Shift. Серверу всегда отдается два ключа: from - коллекция перемещаемых, to - позиция перемещения.

Nexus 26.04.2018 11:17

laimas, перемещение на новую позицию нескольких элементов единовременно, вероятно, самая непопулярная операция.
Но спасибо за подсказку )

laimas 26.04.2018 11:43

Цитата:

Сообщение от Nexus
перемещение на новую позицию нескольких элементов единовременно, вероятно, самая непопулярная операция

Это почему?

Nexus 26.04.2018 11:56

Цитата:

Сообщение от laimas (Сообщение 484105)
Это почему?

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


Часовой пояс GMT +3, время: 21:37.