You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

99 lines
9.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку утилиты **ubl-settings-datetime**
1. **ОПИСАНИЕ:**
Графическое средство настройки даты и времени в ОС UBLinux
1. **ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ:**
Общий срок работ по созданию приложения составляет N дней:
- N дня - макет и дизайн приложения и его утверждение
- N дней - разработка приложения
- N дня - тестирование приложения и исправление ошибок
Перечень этапов разработки приложения:
- Разработка макета и дизайна приложения, самостоятельно
- Утверждение и доработка макета, самостоятельно
- Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д., самостоятельно
- Проектирование алгоритма работы приложения, самостоятельно
- Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
- Тестирование и исправление ошибок, самостоятельно
- Публикация
1. **ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:**
1. Приложение разрабатывается под нужды операционной системы UBLinux
1. Использование фирменного логотипа компании
1. Название приложения, техническое: **ubl-settings-datetime**
1. Название приложения, публичное: **UBConfig - Дата и время**
1. Стек технологий:
- Язык программирования: Bash или C++
- Приложение для разработки графического интерфейса: Glade 3
- Графические библиотеки: GTK3
- Операционная система разработки: UBLinux DB
1. Структура:
- **/usr/bin/ubl-settings-datetime (скомпилированный бинарный файл)**
Bash/C: Весь функционал сосредоточен в графической части, вызовы и исполнение процедур написаны на языках Bash, C++
- **/usr/share/ubl-settings-datetime/images/{\*.png,\*.svg}**
Элементы изображений
- **/usr/share/ubl-settings-datetime/locale -> /usr/share/locale**
Локализация En/Ru
1. **ТЕХНИЧЕСКОЕ ЗАДАНИЕ:**
1. Главное окно:
1. Требования к внешнему виду:
- Адаптивный (резиновый) дизайн.
- Минимальный размер окна до прекращения масштабирования 800 на 600 пикселей.
- Шапка в стиле приложений GTK3.
- В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением.
- Рабочая область делится на два блока, которые обрамлены рамками с заголовками: «Локальная настройка», «Глобальная настройка».
1. Требования к «Рабочей области». Выводятся группы настроек запуска:
1. Локальная настройка
- лейбл "Время".
- счётчик от 00 до 23 (часы).
- лейбл «:» (разделитель).
- счётчик от 00 до 59 (минуты).
- лейбл «Дата».
- поле ввода. Ввод даты в формате ДД.ММ.ГГГГ
- кнопка с иконкой календаря. Вызов объекта датапикер (визуальное представление выбора даты).
- кнопка «Синхронизировать». Синхронизация выставленных даты и времени с часами и датой системы.
- кнопка «Синхронизировать аппаратное время». Синхронизация даты и времени с временем BIOS рабочей станции.
- вложенный блок с заголовком «Часовой пояс».
- лейбл «Регион:».
- комбобокс. Перечень регионов, локализация стандартными средствами.
- лейбл «Зона:».
- комбобокс. Перечень городов с поправкой на часовой пояс. Например, «(UTC +06) Омск». Перечень регионов, локализация стандартными средствами.
1. Глобальная настройка
- чекбокс "Синхронизоравать через NTP"
- комбобокс с вариантами выбора сервера: «По умолчанию, DHCP, Вручную». При выборе «По умолчанию», второе поле для ввода вручную становится заблокированным для манипуляций - текст введённого поля серый. Содержание поля - ответ полученный на запрос «ubconfig --source=default get NTPSERVERS\_DEFAULT». При выборе «По умолчанию» в конфиг файл передаются значения: «NTPSERVERS=default». Неактивно, если не включен чекбокс "Синхронизоравать через NTP".
- поле ввода для ручного указания серверов. Неактивно, если не включен чекбокс "Синхронизоравать через NTP", выбрана опция «По умолчанию» в комбобоксе с вариантами выбора сервера.
- дроплист с именами пользователей системы + пользователь root (доступно, если активен чекбокс "Выполнить от имени другого пользователя")
- вложенный блок с заголовком «Часовой пояс».
- лейбл «Регион:».
- комбобокс. Перечень регионов, локализация стандартными средствами.
- лейбл «Зона:».
- комбобокс. Перечень городов с поправкой на часовой пояс. Например, «(UTC +06) Омск». Перечень регионов, локализация стандартными средствами.
1. **КОМАНДЫ**
1. Задать время: `date +%T -s "h:m:sec"`
1. Задать дату: `date +%Y%m%d -s "2000:06:14"`
1. Синхронизировать аппаратное время: `hwclock --systohc`
1. Проверка запущенных процессов синхронизации, например, `pidof -q systemd-timesyncd ntpd chronyd`.
1. Остановка сервисов:
1. systemd-timesyncd `[[ systemctl --quiet is-active systemd-timesyncd &>/dev/null ]] && systemctl stop systemd-timesyncd`
1. ntp `[[ systemctl --quiet is-active ntpd &>/dev/null ]] && systemctl stop ntpd`
1. openntp `[[ systemctl --quiet is-active openntpd &>/dev/null ]] && systemctl stop openntpd`
1. linuxptp `[[ systemctl --quiet is-active ptp4l &>/dev/null ]] && systemctl stop ptp4l`
1. Установка часового пояса: `ln -s /usr/share/zoneinfo/ && ln -s /usr/share/zoneinfo/REGION/ZONE`
1. Команды записи в конфигурационный файл:
1. получить статус синхронизации NTP: `/usr/bin/ubconfig get network NTPSERVERS`
1. Задать значение NTPSERVERS:
1. Если выбран по умолчанию: `/usr/bin/ubconfig set network NTPSERVERS=default`
1. Если выбран dhcp: `/usr/bin/ubconfig set network NTPSERVERS=dhcp`
1. Если выбран вручную: `/usr/bin/ubconfig set network NTPSERVERS=АДРЕСА ИЗ ПОЛЯ`
1. Получить текущую временную зону: `/usr/bin/ubconfig get clock ZONE`
1. Задать временную зону: `/usr/bin/ubconfig set clock ZONE=REGION/ZONE`
1. Отключить синхронизацию NTP: `/usr/bin/ubconfig remove network NTPSERVERS`
1. **ПРИБЛИЗИТЕЛЬНЫЙ МАКЕТ ПРИЛОЖЕНИЯ.**
1. Главное окно
![](https://gitea.ublinux.ru/miramax166/design-ubl-settings-apps/raw/branch/master/ubl-settings-datetime/pic/01.png)