Графическое средство настройки даты и времени в ОС UBLinux
Графическое средство настройки даты и времени в ОС UBLinux
1. **ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ:**
1. **ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ:**
1. Общий срок работ по созданию приложения составляет N дней:
1. Общий срок работ по созданию приложения составляет N дней:
1. N дня - макет и дизайн приложения и его утверждение
1. N дня - макет и дизайн приложения и его утверждение
1. N дней - разработка приложения
1. N дней - разработка приложения
1. N дня - тестирование приложения и исправление ошибок
1. N дня - тестирование приложения и исправление ошибок
1. Перечень этапов разработки приложения:
1. Перечень этапов разработки приложения:
1. Разработка макета и дизайна приложения, самостоятельно
1. Разработка макета и дизайна приложения, самостоятельно
1. Утверждение и доработка макета, самостоятельно
1. Утверждение и доработка макета, самостоятельно
1. Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д., самостоятельно
1. Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д., самостоятельно
1. Проектирование алгоритма работы приложения, самостоятельно
1. Проектирование алгоритма работы приложения, самостоятельно
1. Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
1. Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
1. Тестирование и исправление ошибок, самостоятельно
1. Тестирование и исправление ошибок, самостоятельно
1. Публикация
1. Публикация
1. **ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:**
1. **ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:**
1. Приложение разрабатывается под нужды операционной системы UBLinux
1. Приложение разрабатывается под нужды операционной системы UBLinux
1. Использование фирменного логотипа компании
1. Использование фирменного логотипа компании
1. Название приложения, техническое: **ubl-settings-datetime**
1. Название приложения, техническое: **ubl-settings-datetime**
1. Название приложения, публичное: **Дата и время**
1. Название приложения, публичное: **Дата и время**
1. Стек технологий:
1. Стек технологий:
1. Язык программирования: Bash или C++
1. Язык программирования: Bash или C++
1. Приложение для разработки графического интерфейса: Glade 3
1. Приложение для разработки графического интерфейса: Glade 3
1. Кнопка с выпадающим списком "Сохранить" -> ("Сохранить глобальную конфигурацию, Сохранить локальную конфигурацию")
1. Кнопка с выпадающим списком "Сохранить" -> ("Сохранить глобальную конфигурацию, Сохранить локальную конфигурацию")
1. Кнопка с иконкой с выпадающим списком -> "Справка, О приложении"
1. Кнопка с иконкой с выпадающим списком -> "Справка, О приложении"
1. Стандартные элементы окна, кнопки "Свернуть, Минимизировать/На весь экран, Закрыть"
1. Стандартные элементы окна, кнопки "Свернуть, Минимизировать/На весь экран, Закрыть"
1. В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением.
1. В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением.
1. Срока уведомления, представляющая собой полосу с инфографикой строки уведомлений.
1. Срока уведомления, представляющая собой полосу с инфографикой строки уведомлений.
1. Рабочая область.
1. Рабочая область.
1. Требования к "Рабочей области". Выводятся группы настроек запуска:
1. Требования к "Рабочей области". Выводятся группы настроек запуска:
1. Блок с заголовком "Текущие дата и время"
1. Блок с заголовком "Текущие дата и время"
1. лейбл "Время".
1. лейбл "Время".
1. счётчик от 00 до 23 (часы).
1. счётчик от 00 до 23 (часы).
1. лейбл ":" (разделитель).
1. лейбл ":" (разделитель).
1. счётчик от 00 до 59 (минуты).
1. счётчик от 00 до 59 (минуты).
1. лейбл "Дата".
1. лейбл "Дата".
1. поле ввода. Ввод даты в формате ДД.ММ.ГГГГ
1. поле ввода. Ввод даты в формате ДД.ММ.ГГГГ
1. кнопка с иконкой календаря. Вызов объекта датапикер (визуальное представление выбора даты).
1. кнопка с иконкой календаря. Вызов объекта датапикер (визуальное представление выбора даты).
1. кнопка "Синхронизировать". Синхронизация выставленных даты и времени с часами и датой системы. Неактивно, если выбраны значения "По умолчанию, DHCP, Вручную" чекбокса в блоке "Синхронизация через NTP".
1. кнопка "Синхронизировать". Синхронизация выставленных даты и времени с часами и датой системы. Неактивно, если выбраны значения "По умолчанию, DHCP, Вручную" чекбокса в блоке "Синхронизация через NTP".
1. кнопка "Синхронизировать аппаратное время". Синхронизация даты и времени с временем BIOS рабочей станции.
1. кнопка "Синхронизировать аппаратное время". Синхронизация даты и времени с временем BIOS рабочей станции.
1. Блок с заголовком "Синхронизация через NTP"
1. Блок с заголовком "Синхронизация через NTP"
1. комбобокс с вариантами выбора сервера: "Остановлено, По умолчанию, DHCP, Вручную". При выборе "По умолчанию", второе поле для ввода вручную становится заблокированным для манипуляций - текст введённого поля серый. При выборе "По умолчанию" в конфигурационный файл передаются значения: "NTPSERVERS=default".
1. комбобокс с вариантами выбора сервера: "Остановлено, По умолчанию, DHCP, Вручную". При выборе "По умолчанию", второе поле для ввода вручную становится заблокированным для манипуляций - текст введённого поля серый. При выборе "По умолчанию" в конфигурационный файл передаются значения: "NTPSERVERS=default".
1. поле ввода для ручного указания серверов. Неактивно, если выбраны значения "Отключено, Остановлено, По умолчанию, DHCP" комбобокса в блоке "Синхронизация через NTP".
1. поле ввода для ручного указания серверов. Неактивно, если выбраны значения "Отключено, Остановлено, По умолчанию, DHCP" комбобокса в блоке "Синхронизация через NTP".
1. Блок с заголовком "Часовой пояс".
1. Блок с заголовком "Часовой пояс".
1. лейбл "Синхронизация аппаратного времени:"
1. лейбл "Синхронизация аппаратного времени:"
1. комбокс с вариантами "Локальное время, Время по UTC"
1. комбокс с вариантами "Локальное время, Время по UTC"
1. вложенный блок с заголовком "Часовой пояс".
1. вложенный блок с заголовком "Часовой пояс".
1. блок с заголовком "Синхронизация через NTP"
1. блок с заголовком "Синхронизация через NTP"
1. лейбл "Регион:".
1. лейбл "Регион:".
1. комбобокс. Локализованный перечень регионов.
1. комбобокс. Локализованный перечень регионов.
1. лейбл "Зона:".
1. лейбл "Зона:".
1. комбобокс. Перечень городов с поправкой на часовой пояс. Например, "(UTC +06) Омск". Перечень регионов, локализация стандартными средствами.
1. комбобокс. Перечень городов с поправкой на часовой пояс. Например, "(UTC +06) Омск". Перечень регионов, локализация стандартными средствами.
1. **ОСОБЕННОСТИ**
1. **ОСОБЕННОСТИ**
1. При загрузке утилиты по умолчанию загружаются данные из локального конфигурационного файла (выполняются команды блоков "Чтение значений: из локального конфигурационного файла").
1. При загрузке утилиты по умолчанию загружаются данные из локального конфигурационного файла (выполняются команды блоков "Чтение значений: из локального конфигурационного файла").
1. Функции записи в локальный конфигурационный файл и чтения-записи в глобальный конфигурационный файл должны проходить процедуру повышения привилегий прав пользователя через polkit.
1. Функции записи в локальный конфигурационный файл и чтения-записи в глобальный конфигурационный файл должны проходить процедуру повышения привилегий прав пользователя через polkit.
1. Кнопка "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). При нажатии на кнопку происходит открытие меню с пунктами: "Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию". Загрузка текущей и глобальной конфигурации в системе через скрипт ubconfig (выполняются команды блоков "Чтение значений: из локального конфигурационного файла"), загрузка конфигурации из файла настроек ОС ublinux.ini (выполняются команды блоков "Чтение значений: из глобального конфигурационного файла").
1. Кнопка "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). При нажатии на кнопку происходит открытие меню с пунктами: "Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию". Загрузка текущей и глобальной конфигурации в системе через скрипт ubconfig (выполняются команды блоков "Чтение значений: из локального конфигурационного файла"), загрузка конфигурации из файла настроек ОС ublinux.ini (выполняются команды блоков "Чтение значений: из глобального конфигурационного файла").
1. Кнопка "Сохранить" -> ("Cохранить конфигурацию, Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию"). Сохраняет текущие настройки через скрипт ubconfig (выполняются команды блоков "Установить значение: в локальный конфигурационный файл") и в конфигурационный файл настроек ОС ublinux.ini (выполняются команды блоков "Установить значение: в глобальный конфигурационный файл"). При выборе пунктов "Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию" происходит отдельное сохранение настроек.
1. Кнопка "Сохранить" -> ("Cохранить конфигурацию, Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию"). Сохраняет текущие настройки через скрипт ubconfig (выполняются команды блоков "Установить значение: в локальный конфигурационный файл") и в конфигурационный файл настроек ОС ublinux.ini (выполняются команды блоков "Установить значение: в глобальный конфигурационный файл"). При выборе пунктов "Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию" происходит отдельное сохранение настроек.
1. Строка уведомлений. Цвет в зависимости от сигнала:
1. Строка уведомлений. Цвет в зависимости от сигнала:
- песочный, пиктограмма "Птичка", сообщения об удачных загрузках или сохранениях конфигураций системы.
- песочный, пиктограмма "Птичка", сообщения об удачных загрузках или сохранениях конфигураций системы.
- красный, пиктограмма "Восклицательный знак", сообщения об ошибках при сохранении, загрузке параметров конфигурации, при ошибках в работе программы.
- красный, пиктограмма "Восклицательный знак", сообщения об ошибках при сохранении, загрузке параметров конфигурации, при ошибках в работе программы.
1. Окно с выводом информации о программе:
1. Окно с выводом информации о программе:
1. Заголовок окна по локализованному названию утилиты
1. Заголовок окна по локализованному названию утилиты
1. Версия берётся из main.cpp глобальной переменной в исходника: UBAPP_VERSION
1. Версия берётся из main.cpp глобальной переменной в исходника: UBAPP_VERSION
1. Копирайты, порядок:
1. Копирайты, порядок:
1. Иконка приложения
1. Иконка приложения
1. Название утилиты
1. Название утилиты
1. Версия программы
1. Версия программы
1. Название утилиты, локализованное
1. Название утилиты, локализованное
1. Ссылка "Домашняя страница проекта" на https://ublinux.ru/
1. Ссылка "Домашняя страница проекта" на https://ublinux.ru/
1. Copyright (c) 2023 - UBSoft Software LLC
1. Copyright (c) 2023 - UBSoft Software LLC
1. **КОМАНДЫ**
1. **КОМАНДЫ**
1. Текущие дата и время
1. Текущие дата и время
1. Чтение значения:
1. Чтение значения:
1. через средства функции на языке Си
1. через средства функции на языке Си
1. Установить значение:
1. Установить значение:
1. счётчики часы и минуты: `date +%T -s "h:m:sec"` (кнопка "Синхронизировать")
1. счётчики часы и минуты: `date +%T -s "h:m:sec"` (кнопка "Синхронизировать")
1. Установить значение: `hwclock --systohc` (кнопка "Синхронизировать аппаратное время")
1. Установить значение: `hwclock --systohc` (кнопка "Синхронизировать аппаратное время")
1. Синхронизация через NTP
1. Синхронизация через NTP
1. Чтение значения:
1. Чтение значения:
1. из локального конфигурационного файла: `/usr/bin/ubconfig --default --source system get network NTPSERVERS`
1. из локального конфигурационного файла: `/usr/bin/ubconfig --default --source system get network NTPSERVERS`
1. из глобального конфигурационного файла: `/usr/bin/ubconfig --default --source global get network NTPSERVERS`
1. из глобального конфигурационного файла: `/usr/bin/ubconfig --default --source global get network NTPSERVERS`
1. Установить значение:
1. Установить значение:
1. "Остановлено"
1. "Остановлено"
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=stop`
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=stop`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=stop`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=stop`
1. "По умолчанию"
1. "По умолчанию"
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=default`
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=default`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=default`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=default`
1. "DHCP"
1. "DHCP"
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=dhcp`
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=dhcp`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=dhcp`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=dhcp`
1. "Вручную"
1. "Вручную"
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=$VALUE`
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set network NTPSERVERS=$VALUE`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=$VALUE`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set network NTPSERVERS=$VALUE`
где $VALUE - перечень серверов, полученных из поля в блоке "Синхронизация через NTP", разделённых "," или ";".
где $VALUE - перечень серверов, полученных из поля в блоке "Синхронизация через NTP", разделённых "," или ";".
1. Проверка запущенных процессов синхронизации (systemd-timesyncd, ntpd, chronyd) и остановка этих сервисов сервисов, осуществляется выполнением команды `/usr/bin/ubconfig remove network NTPSERVERS` при выборе опции "Остановлено" из выпадающего списка блока "Синхронизация через NTP"
1. Проверка запущенных процессов синхронизации (systemd-timesyncd, ntpd, chronyd) и остановка этих сервисов сервисов, осуществляется выполнением команды `/usr/bin/ubconfig remove network NTPSERVERS` при выборе опции "Остановлено" из выпадающего списка блока "Синхронизация через NTP"
1. Часовой пояс
1. Часовой пояс
1. Синхронизация аппаратного времени:
1. Синхронизация аппаратного времени:
1. Чтение значений:
1. Чтение значений:
- из локального конфигурационного файла: `/usr/bin/ubconfig --default --source system get clock HWCLOCK_SYNC`
- из локального конфигурационного файла: `/usr/bin/ubconfig --default --source system get clock HWCLOCK_SYNC`
- из глобального конфигурационного файла: `/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC`
- из глобального конфигурационного файла: `/usr/bin/ubconfig --default --source global get clock HWCLOCK_SYNC`
1. Установить значение:
1. Установить значение:
1. "Локальное время"
1. "Локальное время"
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=localtime`
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=localtime`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=localtime`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=localtime`
1. "Время по UTC"
1. "Время по UTC"
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utc`
в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set clock HWCLOCK_SYNC=utc`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=utc`
в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set clock HWCLOCK_SYNC=utc`
1. Комбобокс "Регион", "Зона":
1. Комбобокс "Регион", "Зона":
1. Чтение значений:
1. Чтение значений:
- из локального конфигурационного файла: `/usr/bin/ubconfig --default --source system get clock ZONE`
- из локального конфигурационного файла: `/usr/bin/ubconfig --default --source system get clock ZONE`
- из глобального конфигурационного файла: `/usr/bin/ubconfig --default --source global get clock ZONE`
- из глобального конфигурационного файла: `/usr/bin/ubconfig --default --source global get clock ZONE`
1. Установить значение:
1. Установить значение:
- в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set clock ZONE=$VALUE`
- в локальный конфигурационный файл: `/usr/bin/ubconfig --target system set clock ZONE=$VALUE`
- в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set clock ZONE=$VALUE`
- в глобальный конфигурационный файл: `/usr/bin/ubconfig --target global set clock ZONE=$VALUE`
где $VALUE - сложение срок-значений из комбобокса "Регион" и "Зона" через символ "/", например "Asia/Omsk".
где $VALUE - сложение срок-значений из комбобокса "Регион" и "Зона" через символ "/", например "Asia/Omsk".