Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#550 closed баг (fixed)

Пропадает селект из колонки Конференции

Reported by: san Owned by: alx
Priority: major Milestone: 1 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords:
Cc:

Description (last modified by san)

Если на сервере сделать reloadxml. то селект в колонке конференция пропадает.(не выбрана никакая конференция)

Также селект пропадает в некоторых других случаях: 5

Change History (10)

comment:1 by alx, 8 years ago

А что в этом ненормального? Почему ты считаешь, что это баг?

comment:2 by san, 8 years ago

Во первых с точки зрения пользователя программы ничего не произошло, и ему будет не понятно почему вдруг селект пропал. (например Диспетчер выбрал конференцию 1 и наблюдает за ней, а в это время Техник редактируя список абонентов вызвал reloadxml, при этом Диспетчер внезапно потеряет из виду состав участников конференции)

Во вторых по н.т.з (неявное т.з.:) в колонке конфереции всегда должна быть выбрана хотя-бы одна конференция, а если "реальных" конференций нет - селект должен установиться на строку основной конференции(он так и делает сейчас)

Version 0, edited 8 years ago by san (next)

comment:3 by san, 8 years ago

Ещё заметил что после reloadxml пропадают и "заготовки" несозданных конференций, что тоже не логично, на мой взгляд

in reply to:  2 comment:4 by alx, 8 years ago

Replying to san:

Во первых, с точки зрения пользователя программы ничего не произошло, и ему будет не понятно почему вдруг селект пропал.

Теперь согласен. Так как конференция на самом деле не пропадала, select должен оставаться на ней. Попробую сделать сохранение select'а.

Во вторых, по н.т.з (неявное т.з.:) в колонке конфереции всегда должна быть выбрана хотя-бы одна конференция, а если "реальных" конференций нет - селект должен установиться на строку основной конференции(он так и делает сейчас)

Как интересно... Хорошо, я это тоже проверю...

comment:5 by san, 8 years ago

r797
В некоторых случаях в колонке "Конференции" оказывается не выбрана ни одна конференция, а по н.т.з. так происходить не должно.
Строчка с именем основной конференции всегда присутствует в колонке конференций и селект должен устанавливаться в неё в случаях когда его положение не определено... хотя что такое неопределено? Насколько я вижу, сейчас при удалении выбранной конференции селект устанавливается на строчку выше и если удалить все конференции селект останется на основной.
В таком случае не понятно почему в каких-то случаях он пропадает.
Достоверно известно что при старте программы пропадает селект (не всегда). При этом заметно, что строчка основной конференции на мгновение выделяется, а затем селект пропадает.
По утверждению Вити также селект пропадает в каких-то других случаях, но воспроизвести не удалось.

comment:6 by san, 8 years ago

Description: modified (diff)
Milestone: Текущее1 очередь
Priority: minormajor

comment:7 by san, 8 years ago

Повысил приоритет, т.к. пропадание селекта мешает выполнению основных функций диспетчера

comment:8 by alx, 8 years ago

In 807/dispatcher:

Изменен алгоритм обновления списка конференций и списка участников конференций:
ранее при получении от FS списка конференций имеющийся список полностью очищался,
после чего в него добавлялись новые элементы в соответствии с полученным списком.
Теперь для каждой конференции и участника конференции сначала ищется существующий
элемент в списке и, если есть обновляется в соответствии с записью, и только если
такого нет, создается новый. После этого из списков удаляются старые элементы,
которых нет в полученном от FS списке. Данный алгоритм позволяет сохранять
выделения и позиции курсора при обновлении списка (например при reloadxml).
See #550.

comment:9 by alx, 8 years ago

Resolution: fixed
Status: newclosed

In 809/dispatcher:

В ConferenceListView при вставке новых строк и при изменении селекции проверяется,
есть ли в результате выбранные элементы, и если нет, самый первый элемент
(как правило, это основная конференция) делается выбранным. Closes #550.

in reply to:  5 comment:10 by alx, 8 years ago

Replying to san:

В некоторых случаях в колонке "Конференции" оказывается не выбрана ни одна конференция,

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

Note: See TracTickets for help on using tickets.