Детали задачи
-
История
-
Решение: Готово
-
High
-
Не заполнено
-
Не заполнено
Описание
1. Разработать сервис для регистрации и получения контроллеров страниц.
Контроллер страницы должен содержать:
pageId - идентификатор страницы, к которой он относится. По этому параметру будет связь между страницей и контроллером. Например: dashboard или journals
getPageKey(params) - метод для получения ключа по параметрам в URL. Ключ определяет необходимость создавать новую вкладку.
Каждая вкладка в системе должна иметь уникальный составной ключ pageId + результат вызова getPageKey(params). Если же у нас идет попытка открыть URL, у которого итоговый ключ совпадает с одной из уже открытых вкладок, то следует её сделать активной и не открывать новую.
PageKey НЕ следует сохранять в localStorage во избежание багов с неправильным открытием вкладок после изменений в методе getPageKey. В localStorage храним полный URL с параметрами и при надобности каждый раз вычисляем PageKey (возможно кэширование в памяти, но при перезагрузке страницы эта информация должна быть пересчитана если её кто-то запросит).
getPageTitle(params) - метод для получения заголовка вкладки по её параметрам.
Так же следует реализовать дефолтный контроллер, который будет возвращаться из сервиса если не найдется никакой другой.
Методы сервиса:
getController(pageId: String): PageController
register(controller: PageController)
2. Для страницы журналов сделать реализацию getPageKey при которой ключ === параметру journalsListId
Все остальные параметры считаем незначительными и их изменение не должно открывать новую вкладку.
3. Для страницы dashboard сделать реализацию getPageKey при которой ключ === параметру recordRef (пустая строка если он отсутствует)
Все остальные параметры считаем незначительными и их изменение не должно открывать новую вкладку.
4. Для страницы dashboard/settings сделать реализацию getPageKey при которой важен только параметр dashboardId
Вложенные файлы
Связи запроса
- is caused by
-
ECOSCOM-3161 Uni Journals. clicking on a next page opens new tab
-
- Готово
-
- relates to
-
ECOSCOM-3176 ECOS tabs logic
-
- Готово
-
-
ECOSCOM-3228 Incorrect tab behavior
-
- Готово
-
-
ECOSCOM-3219 Name of the Home page tab is missing
-
- Готово
-