#571 closed задача (fixed)
п.6. Адресная книга. Новый формат.
Reported by: | san | Owned by: | alx |
---|---|---|---|
Priority: | major | Milestone: | Задания от МВтел |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | |
Cc: |
Description (last modified by )
Сейчас адресная книга - текстовый файл отображаемый как есть в программе.
Требуется создать новую адресную книгу.
- Формат файла содержащего адресную книгу и место его хранения выбирается на усмотрение исполнителя.
- Адресная книга состоит из двух частей: списка абонентов(слева) и панели информации об абоненте(справа).
- 2.а. Список абонентов.
- Список абонентов телефонной книги отсортирован по имени абонента в алфавитном порядке.
- Символы на пиктограммах абонентов формируются из имени пользователя по следующему алгоритму: Если слово в имени одно - используются два первых символа, если слов не менее двух, то используются по одному первому символу 1-го и 2-го слова(разделителем слов считать пробел). В пиктограмме символ отображается заглавным. Пример: "Авакян Василий Петрович" -> "АВ", "техник 1" -> "Т1", "Техник1" -> "ТЕ" (на рисунке есть нарушения описанного алгоритма выбора символов для пиктограммы- не обращать внимания).
- При введении текста в поле фильтра для списка абонентов, в списке должны отображаться только абоненты в имени или в одном из номеров которых содержится введённый текст.
- При нажатии кнопки "+" вызывается функция добавления нового абонента в книгу.
- 2.b. Информация об абоненте - в этой панели отображается информация о выбранном абоненте(если абонент не выбран можно отображать "пусто").
- Информация об абоненте состоит из обязательных полей: Имя, Номер, комментарий, и произвольных полей заданных пользователем. Поля выводятся на экран в следующем порядке:
- Имя
- Номер
- Дополнительные номера - все произвольные поля состоящие только из символов, допустимых для номера (+-0123456789*#p,)
- Комментарий
- Произвольные поля
- При нажатии кнопки "Редактировать", панель "Информация об абоненте" переходит в режим Редактирование. В этом режиме можно изменить содержимое обязательных полей, добавить произвольные поля, добавить дополнительные номера телефонов.
3.a. При нажатии кнопки "+" напротив последнего из номеров, происходит добавление дополнительного поля номера с автоматическим созданым именем "Номер N". Удаление номеров и изменение имени полей производится через вызов контекстного меню в поле номера нажатием кнопки "шестерня"(аналогично странице 28 Гайдлайнов)
3.b. Добавление произвольного поля происходит при нажатии кнопки "Добавить поле" Внешний вид процедуры добавления аналогичен описанному в Гайдлайнах на странице 28.(удаление и редактирование имени с помощью кнопки "шестерня")
- Добавления нового абонента в книгу аналогично редактированию
- Вызов номера абонента в конференцию через контекст ТСОП
5.a. При нажатии кнопки + происходит вызов выбранного абонента в текущую конференцию
5.b. При нажатии кнопки "трубка" происходит создание новой конференции и вызов туда пользователя программы и выбранного абонента.
5.c. Выбор номера для вызова осуществляется через дополнительное меню(смотри рисунок), номером считается любое поле, состоящее только из символов, допустимых для номера (+-0123456789*#p,).
5.d. При выполнении вызова программа переключается на вкладку конференций где отображается конференция в которую вызван абонент.
p.s. Изображенное на рисунках местами отличается от постановки задачи, рисунки только поясняют внешний вид описанных элементов.
Attachments (8)
Change History (43)
comment:1 by , 7 years ago
Description: | modified (diff) |
---|
by , 7 years ago
Attachment: | pb_call.png added |
---|
by , 7 years ago
Attachment: | pb_edit.png added |
---|
by , 7 years ago
Attachment: | pb_new.png added |
---|
by , 7 years ago
Attachment: | pb_view.png added |
---|
by , 7 years ago
Attachment: | pb_call_m.png added |
---|
by , 7 years ago
Attachment: | pb_edit_m.png added |
---|
by , 7 years ago
Attachment: | pb_new_m.png added |
---|
by , 7 years ago
Attachment: | pb_view_m.png added |
---|
comment:2 by , 7 years ago
Description: | modified (diff) |
---|
comment:3 by , 7 years ago
Description: | modified (diff) |
---|
comment:4 by , 7 years ago
Description: | modified (diff) |
---|
comment:5 by , 7 years ago
Description: | modified (diff) |
---|
comment:6 by , 7 years ago
Owner: | changed from | to
---|---|
Status: | new → assigned |
comment:7 by , 7 years ago
comment:8 by , 7 years ago
Replying to san:
- Формат файла содержащего адресную книгу и место его хранения...
Верно ли я понял, что данные справочника должны храниться в файле на стороне клиента?
comment:9 by , 7 years ago
Еще вопрос: правильно ли я понимаю, что гайдлайнов на этот справочник пока не будет, дизайн - на мое усмотрение, а потом все это надо будет переделать в рамках #576?
comment:10 by , 7 years ago
Верно ли я понял, что данные справочника должны храниться в файле на стороне клиента?
В задании от Вани это не уточняется, но думаю что да, на стороне клиента.
гайдлайнов на этот справочник пока не будет, дизайн - на мое усмотрение
Гайдлайнов не будет. Дизайн в соответствии с приложенными к тикету картинками, значения размеров и цветов нужно выбрать в соответствии с "похожими" элементам из гайдлайна.
Если не хватает каких-то элементов(иконок, картинок) замени их временными и напиши в комментах к #576 чего не хватает.
comment:13 by , 7 years ago
Replying to san:
- 2.а. Список абонентов.
- Символы на пиктограммах абонентов формируются из имени пользователя по следующему алгоритму: Если слово в имени одно... если слов не менее двух...
Вопросы вроде бы тривиальные, но для очистки совести спрошу. Здесь не указаны случаи, когда
- имя состоит менее чем из одного слова (пустая строка или только пробелы);
- имя состоит из одного слова, но в этом слове менее двух символов.
Что должно быть на иконке в этих случаях?
comment:14 by , 7 years ago
Replying to san:
- Информация об абоненте состоит из обязательных полей: Имя, Номер 1...Номер N
Чему равно N?
follow-up: 16 comment:15 by , 7 years ago
имя состоит менее чем из одного слова (пустая строка или только пробелы);
Думаю, что на иконке должно быть пусто
имя состоит из одного слова, но в этом слове менее двух символов.
На иконке разумно отобразить тот самый единственный символ
Информация об абоненте состоит из обязательных полей: Имя, Номер 1...Номер N
Чему равно N?
Строго говоря обязательным полем из "Номер 1...Номер N" является только Номер 1, а поля Номер 2...Номер N могут быть добавлены по желанию пользователя.
То есть N>=1, а верхний предел определяется разумным количеством телефонных номеров у человека (мне кажется что 10-ти хватит)
comment:16 by , 7 years ago
Replying to san:
Чему равно N?
То есть N>=1, а верхний предел определяется разумным количеством телефонных номеров у человека (мне кажется что 10-ти хватит)
Тогда приму N=1. Думаю, один телефон - наиболее часто встречающийся случай. А если надо больше, как ты верно заметил, у пользователя есть возможность добавить поле.
comment:17 by , 7 years ago
Replying to san:
3.a. Добавление дополнительного номера происходит при нажатии кнопки "+" напротив последнего из добавленных номеров,
Тут возникает проблема "яйца и курицы": если ни один номер еще не добавлен, то кнопки "+" нет и, следовательно, добавить номер невозможно...
удаление через вызов контекстного меню в поле номера нажатием кнопки "шестерня"(аналогично странице 28 Гайдлайнов)
На приложенном рисунке в поле "Phone Number 2" нет шестерни. Это ошибка, или эта "шестерня" появляется только при определенных условиях? Если при определенных условиях, то при каких?
follow-up: 20 comment:18 by , 7 years ago
Тут возникает проблема "яйца и курицы": если ни один номер еще не добавлен, то кнопки "+" нет и, следовательно, добавить номер невозможно...
Один(первый) номер - обязательное поле, он есть всегда и кнопка у него
На приложенном рисунке в поле "Phone Number 2" нет шестерни. Это ошибка, или эта "шестерня" появляется только при определенных условиях? Если при определенных условиях, то при каких?
Ошибка на рисунке
comment:19 by , 7 years ago
Еще вопрос.
Replying to san:
5.c. Выбор номера для вызова осуществляется через дополнительное меню(смотри рисунок)
Согласно постановке задачи, диспетчер может добавлять в информацию контакта произвольные поля с произвольной информацией (с очень небольшими ограничениями). Как (по какому алгоритму) пульт должен определять, является ли информация какого-либо имеющегося у контакта поля телефонным номером или нет? Это необходимо чтобы составить список вариантов для выпадающего списка.
Верно ли я догадываюсь, что телефонным номером необходимо считать любое поле, имя которого начинается с "Номер"?
comment:20 by , 7 years ago
Replying to san:
Тут возникает проблема "яйца и курицы": если ни один номер еще не добавлен, то кнопки "+" нет и, следовательно, добавить номер невозможно...
Один(первый) номер - обязательное поле, он есть всегда и кнопка у него
Если у этого поля всегда есть кнопка, то нафига тогда еще одна кнопка у последнего добавленного номера? Почему бы не пользоваться всегда одной?
follow-up: 22 comment:21 by , 7 years ago
Если у этого поля всегда есть кнопка, то нафига тогда еще одна кнопка у последнего добавленного номера? Почему бы не пользоваться всегда одной?
Нет, не так, я не правильно выразился. Уточняю: один номер есть всегда, кнопка есть всегда, кнопка у последнего из номеров.
Верно ли я догадываюсь, что телефонным номером необходимо считать любое поле, имя которого начинается с "Номер"?
Нет. В дополнительном меню для вызова должны присутствовать только номера из обязательных полей "Номер 1...Номер N". Пользовательские поля в это меню не попадают.
comment:22 by , 7 years ago
Replying to san:
Нет, не так, я не правильно выразился. Уточняю: один номер есть всегда, кнопка есть всегда, кнопка у последнего из номеров.
Теперь понятно. Слово "добавленных" в первоначальной формулировке было лишним. Тогда у меня возникает новый вопрос (очень похожий на предыдущий, но в свете твоих разъяснений выясняется, что это два разных вопроса): как (по какому алгоритму) пульт должен находить последний телефонный номер контакта. А точнее, по какому алгоритму он должен принимать решение, является ли некое поле телефонным номером (с определением последнего из них у меня затруднений нет)...
Верно ли я догадываюсь, что телефонным номером необходимо считать любое поле, имя которого начинается с "Номер"?
Нет. В дополнительном меню для вызова должны присутствовать только номера из обязательных полей "Номер 1...Номер N". Пользовательские поля в это меню не попадают.
??? Подожди минутку... Ранее мы договорились, что число N (количество обязательных полей с номером телефона) мы принимаем равным единице (точнее, ты постулировал, что N >= 1, а я принял решение, что N будет равно 1, что удовлетворяет твоему условию и здравому смыслу, а ты не возражал). Более того, не далее как сегодня я переделал программу, следав N=1 (было 5)... Но если N равно 1, то теперь получается, что в выпадающем списке должен быть 1 (прописью: ОДИН) номер, что делает наличие этого выпадающего списка абсурдным...
Может я неправильно понял твой comment:15? Тогда давай вернемся к этому вопросу: так чему равно N?
comment:23 by , 7 years ago
Зафиксирую свое предложение, высказанное устно (чтобы не забылось).
Я предлагаю при формировании выпадающего списка номеров (появляющегося при вызове контакта в текущую или новую конференции) считать номером любое поле, состоящее только из символов, допустимых для номера (+-0123456789*#p,). Это избавит от необходимости иметь жесткие правила создания полей с телефонным номером (например давать им заранее установленные имена типа "Номер X"), и диспетчер сможет создавать любое число полей с произвольными именами, например "Работа", "Домашний телефон", "Дача", "Резиденция в Кэмп-Дэвиде", "Резиденция в Бочаровом Ручье"...
comment:24 by , 7 years ago
Replying to san:
3.a. ... удаление через вызов контекстного меню в поле номера нажатием кнопки "шестерня"
В чем смысл наличия контекстного меню, если это меню состоит из единственного пункта - "удалить поле"?
Почему бы не сделать удаление поля по факту клика иконки, без всякого меню? Это упростит процесс, так как исключит бессмысленный выбор единственного варианта из списка... Иконку "шестерня" в этом случае имеет смысл заменить на иконку "крест" или что-то типа этого...
follow-up: 26 comment:25 by , 7 years ago
Description: | modified (diff) |
---|
Я предлагаю при формировании выпадающего списка номеров (появляющегося при вызове контакта в текущую или новую конференции) считать номером любое поле, состоящее только из символов, допустимых для номера (+-0123456789*#p,)
Принято, изменил описание задачи. Алексей, проверь, пожалуйста, правильно ли мы друг друга поняли :)
В чем смысл наличия контекстного меню, если это меню состоит из единственного пункта - "удалить поле"?
Т.к. поля доп. номеров теперь у нас представляют собой обычные произвольные поля, в этом меню появится второй пункт - "Редактирование имени поля", добавил в описание задачи.
Ещё у меня возникло предложение к произвольным полям добавить некий индекс для сортировки, для того чтобы у пользователя была возможность менять порядок вывода полей на экран (например с помощью пунктов "переместить выше", "переместить ниже" добавленных в меню шестерня). В задании этого не было, так что это на твоё усмотрение.
comment:26 by , 7 years ago
Replying to san:
Алексей, проверь, пожалуйста, правильно ли мы друг друга поняли :)
Вроде бы совершенно правильно. Единственное замечание - в описании по-прежнему присутствует слово "добавленных", которое, как мы уже выяснили ранее, лишнее.
Ещё у меня возникло предложение к произвольным полям добавить некий индекс для сортировки,
С одной стороны, у меня нет возражений (не вижу вреда от такой фичи), с другой стороны, нужности в ней, ее полезности я как-то тоже не ощущаю... Давай пока сделаем как описано, а для этой идеи создай новый тикет, может быть как-нибудь потом сделам...
А пока у меня вопрос по поводу
с автоматическим созданым именем "Номер N"
Чему равно N? :)
comment:27 by , 7 years ago
Description: | modified (diff) |
---|
добавленных
убрал
Чему равно N
Ищем все поля с содержанием удовлетворяющим условию "номер"
Среди этих полей выбираем те, имена которых удовлетворяют рег. выражению ^Номер (\d+)$
N = наименьшее число неравное содержимому скобок любого из выбранных имён, и N>1
Пример: представим что есть поля номеров:
Номер
Домашний
Номер 2
Номер 5 <+>
При нажатии + должно быть создано поле с именем Номер 3.
comment:28 by , 7 years ago
Replying to san:
удаление и редактирование имени с помощью кнопки "шестерня"
Каждое поле состоит из двух основных частей: имени поля и значения поля.
Мне кажется нелогичным, что функция изменения имени поля находится в контекстном меню значения. Более логичным и естественным, а поэтому более понятным для пользователя мне кажется если функция изменения имени поля будет производиться в контекстном меню имени поля.
follow-up: 31 comment:30 by , 7 years ago
Это изображение есть в наборе иконок xchange\IPДипетчерская\design\icons\
fieldsettings.png
fieldsettings-active.png
follow-up: 32 comment:31 by , 7 years ago
Replying to san:
fieldsettings.png
fieldsettings-active.png
Иконок с такими именами по 8 штук каждой. Какие из них использовать?
follow-up: 33 comment:32 by , 7 years ago
Replying to alx:
Иконок с такими именами по 8 штук каждой. Какие из них использовать?
Отвечаю сам себе со слов san: на мое усмотрение, но лучше синего и серого цветов.
comment:33 by , 7 years ago
Replying to alx:
Отвечаю сам себе со слов san: на мое усмотрение, но лучше синего и серого цветов.
Хм... Оказалось, что все иконки синие и серые, различаются только размером. Так что критерий цвета при выборе неприменим, и остается единственный критерий - на мое усмотрение. :) Потом не пеняйте...
comment:35 by , 7 years ago
Саша, похоже, я работу по этому тикету закончил. По-моему все что требовалось - выполняется.
Проведи, пожалуйста, сам дополнительные проверки - объем работы был достаточно большой, возможно, какие-то мелочь забыты, или где-то что-то еще неправильно работает...
Если будут замечания, лучше, наверное, открывать отдельные тикеты, здесь уже и так комментариев выше крышы... :)
Алексей, задание сформировано, если что-то непонятно - уточняй в комментах.