# NOC Home Page
На настоящий момент стартовая страница NOC содержит небольшой статический текст и несколько ссылок.

На первый взгляд она кажется бедноватой и не несет полезной нагрузки.
## Prior Art
Во многих аналогичных системах первая страница оформляется как конфигурируемый дашборд.

В таком виде стартовая страниица может использоваться для быстрой навигации и дает общее представление о системе.
## 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`. По клику открывает по ссылке нужное приложение.