# NOC Home Page На настоящий момент стартовая страница NOC содержит небольшой статический текст и несколько ссылок. ![image](https://hackmd.io/_uploads/BJgsv-Y-0.png) На первый взгляд она кажется бедноватой и не несет полезной нагрузки. ## Prior Art Во многих аналогичных системах первая страница оформляется как конфигурируемый дашборд. ![image](https://hackmd.io/_uploads/SkL4Y-FWA.png) В таком виде стартовая страниица может использоваться для быстрой навигации и дает общее представление о системе. ## Home Dashboard На первом этапе предлагается реализовать упрощенное решение без возможности конфигурирования пользователем. Приложение main.welcome переделываеся в main.home. Дашборд представляет собой непересекающиеся widget'ы фиксированной ширины. Доступные widget'ы определяются правами пользователя. Типы widget'ов: * Text - Содержит обычный текст. * Favorites - показывает пользовательские закладки и по клику открывает необходимые табы * Summary - таблица с колонками `описание` - `количество`. Показывает, сколько объектов какого вида есть в системе (видимых пользователем). По клику на строку запускает соответсвующее приложениие. После запуска приложение home делает GET-запрос к /main/home/dashboard/ и получает json ``` json { "widgets": [<widget1>, ..., <widgetN>] } ``` где `<widget>` - конфигурация widget'а: ``` json { type: "<widget type>", title: "<заголовок>", data: { <специфичные данные для widget> } } ``` ### Text ``` json { type: "text", title: "...", data: { text: "Lorem ipsum" } } ``` ### Favorites ``` json { type: "favorites", title: "...", data: { items: [ { title: "Addresses", link: "...", items: [ { text: "...", link: "...", }, ... ] }, ... ] } } ``` Отображает группы в виде горизонтальных заголовков (с открытием приложения, заданного link по клику) Поп заголовком идут элементы отображаемые как `text`, по клику открывается приложениие из `link` ### Summary ``` json { type: "summary", title: "...." data: { items: [ { text: "...", value: "...", link: "..." } ] } } ``` Отображается в виде таблицы, слева `text`, справа `value`. По клику открывает по ссылке нужное приложение.