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.
|
|
3 years ago | |
|---|---|---|
| .. | ||
| layout | 3 years ago | |
| 3 years ago | ||
| pic | 3 years ago | |
| README.md | 3 years ago | |
README.md
ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку утилиты ubl-settings-datetime
-
ОПИСАНИЕ: Графическое средство настройки даты и времени в ОС UBLinux
-
ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ: Общий срок работ по созданию приложения составляет N дней:
- N дня - макет и дизайн приложения и его утверждение
- N дней - разработка приложения
- N дня - тестирование приложения и исправление ошибок
Перечень этапов разработки приложения:
- Разработка макета и дизайна приложения, самостоятельно
- Утверждение и доработка макета, самостоятельно
- Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д., самостоятельно
- Проектирование алгоритма работы приложения, самостоятельно
- Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
- Тестирование и исправление ошибок, самостоятельно
- Публикация
-
ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:
- Приложение разрабатывается под нужды операционной системы 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"
- вложенный блок с заголовком "Часовой пояс".
- блок с заголовком "Синхронизация через NTP"
- лейбл "Регион:".
- комбобокс. Локализованный перечень регионов.
- лейбл "Зона:".
- комбобокс. Перечень городов с поправкой на часовой пояс. Например, "(UTC +06) Омск". Перечень регионов, локализация стандартными средствами.
-
ОСОБЕННОСТИ
- При загрузке утилиты по умолчанию загружаются данные из локального конфигурационного файла (выполняются команды блоков "Чтение значений: из локального конфигурационного файла").
- Функции записи в локальный конфигурационный файл и чтения-записи в глобальный конфигурационный файл должны проходить процедуру повышения привилегий прав пользователя через 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 --source system get network NTPSERVERS - из глобального конфигурационного файла:
/usr/bin/ubconfig --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 --source system get clock HWCLOCK_SYNC - из глобального конфигурационного файла:
/usr/bin/ubconfig --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 --source system get clock ZONE - из глобального конфигурационного файла:
/usr/bin/ubconfig --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".
-
ПРИБЛИЗИТЕЛЬНЫЙ МАКЕТ ПРИЛОЖЕНИЯ.
