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.
20 KiB
20 KiB
ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку утилиты ubl-settings-datetime
-
ОПИСАНИЕ: Графическое средство настройки даты и времени в ОС UBLinux
-
ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ:
- Общий срок работ по созданию приложения составляет N дней:
- N дня - макет и дизайн приложения и его утверждение
- N дней - разработка приложения
- N дня - тестирование приложения и исправление ошибок
- Перечень этапов разработки приложения:
- Разработка макета и дизайна приложения, самостоятельно
- Утверждение и доработка макета, самостоятельно
- Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д., самостоятельно
- Проектирование алгоритма работы приложения, самостоятельно
- Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
- Тестирование и исправление ошибок, самостоятельно
- Публикация
- Общий срок работ по созданию приложения составляет N дней:
-
ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:
- Приложение разрабатывается под нужды операционной системы UBLinux
- Использование фирменного логотипа компании
- Название приложения, техническое: ubl-settings-datetime
- Название приложения, публичное: Дата и время
- Стек технологий:
- Язык программирования: Bash или C++
- Приложение для разработки графического интерфейса: Glade 3
- Графические библиотеки: GTK3
- Операционная система разработки: UBLinux DB
- Структура:
- /usr/bin/ubl-settings-datetime (скомпилированный бинарный файл) Bash/C: Весь функционал сосредоточен в графической части, вызовы и исполнение процедур написаны на языках Bash, C++
- Файл glade скомпилирован в бинарный файл Графическая часть, фронт
- Файл css скомпилирован в бинарный файл Стили виджетов GTK
- /usr/share/ubl-settings-datetime/images/{*.png,*.svg} Элементы изображений
- /usr/share/ubl-settings-datetime/locale -> /usr/share/locale Локализация En/Ru
-
ТЕХНИЧЕСКОЕ ЗАДАНИЕ:
- Ярлык (desktop-файл):
- Type: Application
- Exec: ubl-settings-datetime
- Categories: X-UBL-SettingsManager;X-UBL-SystemSettings
- Главное окно:
- Требования к внешнему виду:
- Адаптивный (резиновый) дизайн.
- Наличие элементов интерфейса:
- Статических - не меняют свою ширину при изменении размеров окна или родительского элемента.
- Динамических - меняют свою ширину при изменении размеров окна или родительского элемента. Обычно занимают пространство от края до края окна или родительского элемента, либо пространство от рядом расположенного элемента до до края окна или родительского элемента.
- Минимальный размер окна до прекращения масштабирования 800 на 600 пикселей.
- Шапка в стиле приложений GTK3 с содержимым:
- Иконка приложения. Статический элемент. Выравнивание по левому краю.
- Кнопка с выпадающим списком "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). Статический элемент. Выравнивание по левому краю.
- Заголовок окна, название приложения. Выравнивание по центру между элементами.
- Кнопка с выпадающим списком "Сохранить" -> ("Сохранить глобальную конфигурацию, Сохранить локальную конфигурацию"). Статический элемент. Выравнивание по правому краю.
- Кнопка с иконкой с выпадающим списком -> "Справка, О приложении". Статический элемент. Выравнивание по правому краю.
- Стандартные элементы окна, кнопки "Свернуть, Минимизировать/На весь экран, Закрыть"
- В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением. Статические элементы. Выравнивание по левому краю.
- Срока уведомления, представляющая собой полосу с инфографикой строки уведомлений. Динамический элемент. От края до края окна по горизонтали.
- Рабочая область.
- Требования к "Рабочей области". Динамический элемент. От края до края по горизонтали и вертикали окна. Выводятся группы настроек запуска:
- Блок с заголовком "Текущие дата и время". Динамический элемент. От края до края окна по горизонтали.
- лейбл "Время". Статический элемент. Выравнивание по левому краю.
- счётчик от 00 до 23 (часы). Статический элемент. Выравнивание по левому краю.
- лейбл ":" (разделитель). Статический элемент. Выравнивание по левому краю.
- счётчик от 00 до 59 (минуты). Статический элемент. Выравнивание по левому краю.
- лейбл "Дата". Статический элемент. Выравнивание по левому краю.
- поле ввода. Ввод даты в формате ДД.ММ.ГГГГ Статический элемент. Выравнивание по левому краю.
- кнопка с иконкой календаря. Вызов объекта датапикер (визуальное представление выбора даты). Статический элемент. Выравнивание по левому краю.
- кнопка "Синхронизировать". Синхронизация выставленных даты и времени с часами и датой системы. Неактивно, если выбраны значения "По умолчанию, DHCP, Вручную" чекбокса в блоке "Синхронизация через NTP". Динамический элемент. Выравнивание по левому краю. Делит пространство в равных долях с соседними элементами.
- кнопка "Синхронизировать аппаратное время". Синхронизация даты и времени с временем BIOS рабочей станции. Динамический элемент. Выравнивание по левому краю. Делит пространство в равных долях с соседними элементами.
- Блок с заголовком "Синхронизация через NTP". Динамический элемент. От края до края окна по горизонтали.
- комбобокс с вариантами выбора сервера: "Остановлено, По умолчанию, DHCP, Вручную". При выборе "По умолчанию", второе поле для ввода вручную становится заблокированным для манипуляций - текст введённого поля серый. При выборе "По умолчанию" в конфигурационный файл передаются значения: "NTPSERVERS=default". Статический элемент. Выравнивание по левому краю.
- поле ввода для ручного указания серверов. Неактивно, если выбраны значения "Отключено, Остановлено, По умолчанию, DHCP" комбобокса в блоке "Синхронизация через NTP". Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами.
- Блок с заголовком "Часовой пояс". Динамический элемент. От края до края окна по горизонтали.
- лейбл "Синхронизация аппаратного времени:". Статический элемент. Выравнивание по левому краю.
- комбокс с вариантами "Локальное время, Время по UTC". Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами.
- лейбл "Регион:". Статический элемент. Выравнивание по левому краю.
- комбобокс. Локализованный перечень регионов. Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами.
- лейбл "Зона:". Статический элемент. Выравнивание по левому краю.
- комбобокс. Перечень городов с поправкой на часовой пояс. Например, "(UTC +06) Омск". Перечень регионов, локализация стандартными средствами. Динамический элемент. Выравнивание по левому краю. Делит пространство с соседними элементами.
- Блок с заголовком "Текущие дата и время". Динамический элемент. От края до края окна по горизонтали.
- Требования к внешнему виду:
- Ярлык (desktop-файл):
-
ОСОБЕННОСТИ
- При загрузке утилиты по умолчанию загружаются данные из локального конфигурационного файла (выполняются команды блоков "Чтение значений: из локального конфигурационного файла").
- Функции записи в локальный конфигурационный файл и чтения-записи в глобальный конфигурационный файл должны проходить процедуру повышения привилегий прав пользователя через polkit.
- Кнопка "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). При нажатии на кнопку происходит открытие меню с пунктами: "Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию". Загрузка текущей и глобальной конфигурации в системе через скрипт ubconfig (выполняются команды блоков "Чтение значений: из локального конфигурационного файла"), загрузка конфигурации из файла настроек ОС ublinux.ini (выполняются команды блоков "Чтение значений: из глобального конфигурационного файла").
- Кнопка "Сохранить" -> ("Cохранить конфигурацию, Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию"). Сохраняет текущие настройки через скрипт ubconfig (выполняются команды блоков "Установить значение: в локальный конфигурационный файл") и в конфигурационный файл настроек ОС ublinux.ini (выполняются команды блоков "Установить значение: в глобальный конфигурационный файл"). При выборе пунктов "Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию" происходит отдельное сохранение настроек.
- Строка уведомлений. Цвет в зависимости от сигнала:
- песочный, пиктограмма "Птичка", сообщения об удачных загрузках или сохранениях конфигураций системы.
- красный, пиктограмма "Восклицательный знак", сообщения об ошибках при сохранении, загрузке параметров конфигурации, при ошибках в работе программы.
- Окно с выводом информации о программе:
- Заголовок окна по локализованному названию утилиты
- Версия берётся из main.cpp глобальной переменной в исходника: UBAPP_VERSION
- Копирайты, порядок:
- Иконка приложения
- Название утилиты
- Версия программы
- Название утилиты, локализованное
- Ссылка "Домашняя страница проекта" на https://ublinux.ru/
- Copyright (c) 2023 - UBSoft Software LLC
-
КОМАНДЫ
- Текущие дата и время
- Чтение значения:
- через средства функции на языке Си
- Установить значение:
- счётчики часы и минуты:
date +%T -s "h:m:sec"(кнопка "Синхронизировать") - дата:
date +%Y%m%d -s "2000:06:14"(кнопка "Синхронизировать")
- счётчики часы и минуты:
- Синхронизировать аппаратное время:
- Установить значение:
hwclock --systohc(кнопка "Синхронизировать аппаратное время")
- Чтение значения:
- Синхронизация через NTP
- Чтение значения:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get network NTPSERVERS - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get network NTPSERVERS
- из локального конфигурационного файла:
- Установить значение:
- "Остановлено"
в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set network NTPSERVERS=stopв глобальный конфигурационный файл:/usr/bin/ubconfig --target global set network NTPSERVERS=stop - "По умолчанию"
в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set network NTPSERVERS=defaultв глобальный конфигурационный файл:/usr/bin/ubconfig --target global set network NTPSERVERS=default - "DHCP"
в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set network NTPSERVERS=dhcpв глобальный конфигурационный файл:/usr/bin/ubconfig --target global set network NTPSERVERS=dhcp - "Вручную"
в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set network NTPSERVERS=$VALUEв глобальный конфигурационный файл:/usr/bin/ubconfig --target global set network NTPSERVERS=$VALUEгде $VALUE - перечень серверов, полученных из поля в блоке "Синхронизация через NTP", разделённых "," или ";".
- "Остановлено"
в локальный конфигурационный файл:
- Проверка запущенных процессов синхронизации (systemd-timesyncd, ntpd, chronyd) и остановка этих сервисов сервисов, осуществляется выполнением команды
/usr/bin/ubconfig remove network NTPSERVERSпри выборе опции "Остановлено" из выпадающего списка блока "Синхронизация через NTP"
- Чтение значения:
- Часовой пояс
- Синхронизация аппаратного времени:
- Чтение значений:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get clock HWCLOCK_SYNC - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC
- из локального конфигурационного файла:
- Установить значение:
- "Локальное время"
в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=localtimeв глобальный конфигурационный файл:/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=localtime - "Время по UTC"
в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utcв глобальный конфигурационный файл:/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=utc
- "Локальное время"
в локальный конфигурационный файл:
- Чтение значений:
- Комбобокс "Регион", "Зона":
- Чтение значений:
- из локального конфигурационного файла:
/usr/bin/ubconfig --default --source system get clock ZONE - из глобального конфигурационного файла:
/usr/bin/ubconfig --default --source global get clock ZONE
- из локального конфигурационного файла:
- Установить значение:
- в локальный конфигурационный файл:
/usr/bin/ubconfig --target system set clock ZONE=$VALUE - в глобальный конфигурационный файл:
/usr/bin/ubconfig --target global set clock ZONE=$VALUEгде $VALUE - сложение срок-значений из комбобокса "Регион" и "Зона" через символ "/", например "Asia/Omsk".
- в локальный конфигурационный файл:
- Чтение значений:
- Синхронизация аппаратного времени:
- Текущие дата и время
-
ПРИБЛИЗИТЕЛЬНЫЙ МАКЕТ ПРИЛОЖЕНИЯ.
