[Devel-conf] alterator: удаление отмеченных объектов из таблицы

Vitaly Ostanin =?iso-8859-1?q?vyt_=CE=C1_altlinux=2Eorg?=
Чт Мар 20 20:10:45 MSK 2008


Stanislav Ievlev пишет:
> Я разобрался.
> 
> Дополнительный параметр, добавленный в поле action формы приезжает не
> просто отдельно, он приходит в команде, предназначенной для всего
> модуля, а не отдельной строки.
> 
> Тут вот какая проблема: динамическая таблица - это некий мозг,
> обладающий любопытной фишкой: он на каждую строку таблицы умеет при
> последующем submit сделать отдельную команду. Достигает он этого тем,
> что при генерации таблицы особым образом подхакивает name у элементов
> формы обнаруженных внутри таблицы. А значения всех полей вне таблицы
> при этом же submit приезжают как обычно, для всей формы целиком.
> Отсюда мораль - сейчас, алгоритм разделения пришедших к серверу
> значений формы не может догадаться, что param3 относился не к общим
> параметрам формы, а к каждой строчке таблицы. Знание об этом
> нивелировал браузер пока формулировал ответ ;). action обрабатывается
> особо - поэтому он и есть у каждой команды.
> 
> Чтобы какое-то значение приезжало для каждой строчки таблицы - можно
> запинуть его в hidden в строке (соотв. он размножится на всю таблицу),
>  а можно закодировать в урле ибо если форма имеет урл "/a", в таблице
> в optionlist сказано '/b' (суффикс который добавляется к a, чтобы
> сделать woo-list), то на каждую строку будет приходить команда с урлом
> /a/b/<name>. И этот 'b' можно использовать как 'параметр'.
> Второй способ применяется в alterator-bind.

Сделал <input type="hidden" name="..."> рядом со <span
type="alterator-label" name="..."/>. Вроде бы работает, как надо, но
теперь action delete приходит для каждой строки таблицы, независимо
от того, отмечена ли она. Для отмеченных выставляется
params[delete]: #t, см. лог ниже.

По-моему, раньше в бакенд передавались только отмеченные строки. Я,
конечно, могу добавить проверку на params[delete], но другие модули
сломаются. Или я что-то путаю?

Стоит alterator-fbi из git (тот, что в Сизифе, неправильно передаёт
url из динамической таблицы в бакенд).

March 20 20:03:45 amanda: params[dumptype]: comp-root-tar
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[hostname]: localhost
March 20 20:03:45 amanda: params[_objects]:
DailySet1/disklist/localhost/etc
March 20 20:03:45 amanda: params[diskname]: /etc
March 20 20:03:45 amanda: ==========: ==========
March 20 20:03:45 amanda: params[dumptype]: NO-COMPRESS
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[delete]: #t
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[hostname]: localhost
March 20 20:03:45 amanda: params[_objects]:
DailySet1/disklist/localhost/tmp
March 20 20:03:45 amanda: params[diskname]: /tmp
March 20 20:03:45 amanda: ==========: ==========
March 20 20:03:45 amanda: params[dumptype]: NO-COMPRESS
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[hostname]: localhost
March 20 20:03:45 amanda: params[_objects]:
DailySet1/disklist/localhost/usr
March 20 20:03:45 amanda: params[diskname]: /usr
March 20 20:03:45 amanda: ==========: ==========
March 20 20:03:45 amanda: params[action]: delete
March 20 20:03:45 amanda: params[language]: ru_RU;en_US
March 20 20:03:45 amanda: params[type]: disklist
March 20 20:03:45 amanda: params[_objects]: DailySet1

<skipped/>

-- 
Regards, Vyt
mailto:  vyt на altlinux.org
JID:     vitaly.ostanin на gmail.com

----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : signature.asc
Тип     : application/pgp-signature
Размер  : 252 байтов
Описание: OpenPGP digital signature
Url     : <http://lists.altlinux.org/pipermail/devel-conf/attachments/20080320/b05ac737/attachment-0002.bin>


Подробная информация о списке рассылки devel-conf