Документация по параметрам URL для подключения к приложению АНАЛИТИКА

Базовый формат ссылки:

http://[IP-адрес СА]:[порт клиента администрирования]/analytic/?page=...&min=...&max=...&baseName=...&seriesIds=...&token=...

ОБЯЗАТЕЛЬНЫЕ ПАРАМЕТРЫ:

I. Временной диапазон

Для настройки диапазона времени, за который данные выводятся на тренд, при вызове аналитики используются следующие URL-параметры: min, max и interval,
а также их синонимы, соответственно t0, t1 и td. Использование параметров и синонимов одновременно в одном URL недопустимо.

	min (t0) - начальная временная точка;	
	max (t1) - конечная временная точка;
	interval (dt) - длительность временного интервала.

Одновременно могут быть использованы 2, 1 или 0 из этих трех параметров. Логика вычисления диапазона следующая:
	
	При указании двух параметров:
	
		1. min и interval: параметр max игнорируется. Конец диапазона вычисляется как min + interval.
		2. min и max (без interval): используется диапазон между этими точками.
	
	При указании одного параметра:
	
		3. Только min: используется interval=10 мин. по умолчанию, max вычисляется как min + interval.
		4. Только max: используется interval=10 мин. по умолчанию, min вычисляется как max - interval.
		5. Только interval: используется max = последнее значение в базе, min вычисляется как max - interval.
		
	При отсутствии параметров:
	
		6. Ни один параметр не указан: используется max = последнее значение в базе, interval=10 мин. по умолчанию, min вычисляется как max - interval.
	

Форматы указания времени

При задании значений параметров настройки диапазона времени можно использовать следующие форматы:

	- для параметров min и max: timestamp и RFC 3339 (ISO 8601)
      		Пример: min=2025-11-15T11:13:44Z, max=1758118604000
	- для параметра interval: человекочитаемый формат
      		Пример interval='1d2h21m280s14ms'

	1. Timestamp (для min, max)

	Это числовое значение в миллисекундах с 01.01.1970.
	Пример: min=1758118424000, max=1758118604000

	2. RFC 3339 / ISO 8601 (для min, max)

	Это стандартизированный строковый формат даты и времени.
	Пример: min=2025-11-15T11:13:44Z, max=2025-11-15T14:13:44+03:00

	3. Человекочитаемый формат (для interval)

	Это строка вида [N]d[N]h[N]m[N]s[N]ms, 
	 где 
       		d - дни, 
       		h - часы, 
       		m - минуты, 
       		s - секунды, 
       		ms - миллисекунды.

Правила использования формата для interval:

	- Можно использовать любые комбинации единиц.
	- Можно указать только одну единицу времени.
	- Регистр символов важен, используйте только строчные буквы.
	- Поддерживаются дробные числа, например, 1.5h.

Примеры допустимых значений interval:

       1d2h21m28s14ms - 1 день, 2 часа, 21 минута, 28 секунд, 14 миллисекунд
       2h30m - 2 часа 30 минут
       45s - 45 секунд
       500ms - 500 миллисекунд
       1.5h - 1.5 часа (90 минут)

Примеры URL

1. Использование timestamp:
analytic/?page=monitoring&min=1758118424000&max=1758118604000&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=dark

2. Использование человекочитаемого формата интервала:
analytic/?page=monitoring&interval=2h&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=dark

3. Использование RFC 3339 для начальной точки:
analytic/?page=monitoring&min=2025-11-15T14:13:44+03:00&interval=45s&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=dark

4. Задание начальной точки в формате интервала с абсолютным интервалом:
analytic/?page=monitoring&min=2h&interval=15m&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=dark

Значения по умолчанию:

	При отсутствии в URL параметров min, max и interval их значения берутся по умолчанию: время max устанавливается по 
	последней записи в архив, а диапазон просмотра (interval) - 10 минут (10m).


Особенности и ограничения

	- Преобразование в интерфейсе: При изменении параметров через интерфейс приложения параметр interval автоматически преобразуется в 
	  человекочитаемый формат в URL, а параметры min и max всегда остаются в формате timestamp.
	- Ограничения:
		- все числовые значения времени должны быть положительными;
		- минимальная единица времени - миллисекунда (ms);
		- формат строки должен строго соответствовать шаблону: без пробелов, с использованием правильных строчных букв.

Рекомендации по использованию

	- Для задания интервала, отсчитываемого от точки, указывайте параметры только min и interval.
	- Для задания фиксированного диапазона указывайте параметры min и max.
	- При отсутствии обязательных параметров могут применяться значения по умолчанию.
	- Интервал по умолчанию: 10 минут (600000 мс) - используется когда не заданы min и max и нет interval в URL.
	- Для отображения "последних данных" не указывайте min, max. Приложение по умолчанию покажет данные за последние 10 минут.
	- Чтобы изменить период по умолчанию, добавьте параметр interval с нужным значением, например, interval=1h для последнего часа.

II. База данных:
	baseName - имя базы данных
	Пример: baseName=СА_АНАЛИТИКА

III. Данные (перья) - один из вариантов:

	Вариант 1: По идентификаторам
	seriesIds - перечень ID перьев через запятую
	Пример: seriesIds=17580215850092997,17580215850146498,17580215850478402,17580215850577240

	Вариант 2: По группе
	groupName - имя группы перьев (при наличии этого параметра seriesIds игнорируется)
	Пример: groupName=fast

IV. Авторизация - один из вариантов:

	Вариант 1: По токену
	token - токен авторизации (значение токена формируется в клиенте администрирования)

	Вариант 2: По логину и паролю
	login - логин пользователя
	pass - пароль пользователя

Примечание: При наличии всех трёх параметров приоритет отдаётся token. login и pass игнорируются.


ОПЦИОНАЛЬНЫЕ ПАРАМЕТРЫ

V. Настройка отображения интерфейса:

	Базовый формат ссылки может быть расширен через параметр mode, который позволяет скрывать различные элементы интерфейса:
	
	mode=[page_code]:[elements]@[buttons]~[trend_settings]
	 где
		[page_code] - Код страницы, к которой применяются настройки:
			m - Мониторинг (Monitoring);
			a - Аналитика (Analytics);
			default - применяется ко всем страницам как базовая настройка.

		[elements] - Основные элементы страницы (разделитель:):
			t - Table (таблица перьев в нижней части);
			n - Navigation (элемент выбора страниц приложения);
			b - Trend Toolbar (верхняя панель инструментов);
			f - Fragment toolbar (элемент управления фрагментом, доступна только в аналитике).

		[buttons] - Кнопки управления (разделитель @):
			y - Синхронизация;
			a - Автопрокрутка (доступно только на странице мониторинга). Одновременно скрывается кнопка настройки автопрокрутки;
			h - Time Shift режим (скрывает кнопки: "Включить режим временного сдвига" и "Установить временной сдвиг");
			s - TimeShift Setup - скрывает настройку временного сдвига;
			t - Table Toggle - переключатель таблицы;
			f - Pen Filter - фильтр перьев;
			l - Legend Toggle - переключатель плавающей легенды;
		
		Примечание: Обратите внимание, что идентификаторы t и f используются как в списке элементов, так и в списке кнопок, 
		но отвечают за разные объекты интерфейса (элемент целиком vs кнопка управления).
	
		[trend_settings] - Настройки тренда (разделитель ~):
			p - TrendTooltip (всплывающие подсказки на графике);
			s - Trend Slider (слайдер масштабирования времени);
			e - Trend Events отображение событий на тренде (взаимодействие с графиком: перемещение и зумирование мышью).	
	
		
		Настройки для разных страниц передаются через точку с запятой, например: mode=a:btf@f;m:bt@hs~pm
		
		Настройка включения/выключения автопрокрутки (автоплей) может быть указана в URL за пределами mode:
			 autoplay=1 или autoplay=on автопрокрутка включена, причем ее нельзя выключить через mode=@a;
			 autoplay=0 или autoplay=off автопрокрутка выключена.
		Если параметр autoplay не указан, то по умолчанию он выключен или берётся значение из кэша.

	Памятка:
	
	Коды элементов:
	Основные:  t  n  b  f
	Кнопки:    y  a  h  s  t  f  l
	Тренд:     p  s  e

	Формат:
	страница:основные@кнопки~тренд

	Примеры использования
	
	Пример 1: Минимальный интерфейс мониторинга.

	mode=m:tnbf@yahsftl~pse	скрывает на мониторинге: все основные элементы (tnbf), все кнопки управления (yahsftl), все настройки тренда (pse).

	Пример 2: Только график на всех страницах.
	
	mode=default:tnf~pmse скрывает на всех страницах: таблицу (t), навигацию (n), панель фрагментов (f), все настройки тренда (pse).

	Пример 3: Разные настройки для разных страниц.

	mode=default:t@a;m:b@f;a:tn@y~p скрывает для всех страниц: таблицу (t) и автоплей (a), на мониторинге: тулбар тренда (b) и фильтр перьев (f),
	на аналитике: таблицу и навигацию (tn), синхронизацию (y) и тултипы (p).

	Пример 4: Без таблицы, но с управлением.

	mode=default:t скрывает таблицу на всех страницах, но оставляет все кнопки управления.

	Пример 5: Тренд без лишних элементов.

	mode=default:nbf~ps скрывает навигацию (n), обе панели инструментов (bf), все настройки тренда кроме событий (ps).

	Пример 6: Скрыть все на одной странице.
	
	mode=m:tnbf@yahsftl~pse

	Правила формирования URL:
	
	1. Показать всё - не передавть параметр mode или передать пустое значение.
	2. Скрыть элемент - добавить его код в соответствующую секцию.
	3. Настройка нескольких страниц - разделить настройки точкой с запятой (;).
	4. default может быть переопределен последующим указанием конкретной страницы, например, mode=default:bt~pse;m:@a;a:f
	
	Часто задаваемые вопросы:
	
	Как показать всё, если уже указан mode? Удалить параметр mode из URL и обновить страницу без него.

	Как скрыть элемент на всех страницах? Использовать default: в начале строки.

	Порядок кодов важен? Нет, порядок не важен, главное - правильная секция.


	Пресет. 

	Требуется показать на экране только один движущийся тренд, без возможности его выключать и двигать:
	
	mode=m:tb~se&autoplay=on на мониторинге скрыть таблицу и тулбар над трендом, скрыть слайдер (нельзя двигать),
	e - отключить события (нельзя листать и зумировать), режим автопрокрутки включен (autoplay=on).


VI. Цветовая схема:	
	
	theme - тема приложения: указывается код 1,2... или название темы dark-gold, dark...

	"1": "dark-gold",
    "2": "dark",
    "3": "light",
    "4": "midnight",
    "5": "scada",
	"6": "scada-2".

	По умолчанию: "1" или "dark-gold".

	Примеры:
	
	...token=...&theme=midnight
	...token=...&theme=1

VII. Адрес сервера данных:

	ip=[хост]:[порт]
	
	Параметр ip позволяет перенаправить запрос данных на альтернативный сервер. 
	Это полезно при работе с распределённой инфраструктурой.
	
	Пример:
	
	...&ip=10.0.0.7:3000


ПОЛНЫЕ ПРИМЕРЫ ССЫЛКИ:

http://127.0.0.1:7779/analytic/?page=monitoring&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=1&min=1772104546718.226&max=1772105121871&autoplay=1&mode=default:t;m:b

http://127.0.0.1:7779/analytic/?page=monitoring&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=1&&t0=1772104546718.226&t1=1772105121871&autoplay=1&mode=default:t;m:b

http://127.0.0.1:7779/analytic/?page=monitoring&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=1&t0=2026-02-25T14:13:44+03:00&t1=2026-02-25T14:33:44+03:00&autoplay=1&mode=default:t;m:b

http://127.0.0.1:7779/analytic/?page=monitoring&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=1&t0=2026-02-25T14:13:44+03:00&dt=15m&autoplay=1&mode=default:t;m:b

http://127.0.0.1:7779/analytic/?page=monitoring&baseName=СА_НОВАЯ_БАЗА&groupName=Первая&token=123&theme=1&t0=2026-02-25T14:13:44+03:00&dt=15m&autoplay=1&ip=10.0.0.7:3000&mode=default:t;m:b
