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.
MiraMaX166 af3dac0be0
fix template and pdf-file in project ubl-settings-datetime
3 years ago
..
layout fix template and pdf-file in project ubl-settings-datetime 3 years ago
pdf fix template and pdf-file in project ubl-settings-datetime 3 years ago
pic fix menu 3 years ago
README.md fix readme in project ubl-settings-datetime 3 years ago

README.md

ТЕХНИЧЕСКОЕ ЗАДАНИЕ на разработку утилиты ubl-settings-datetime

  1. ОПИСАНИЕ: Графическое средство настройки даты и времени в ОС UBLinux

  2. ЭТАПЫ И СРОКИ СОЗДАНИЯ ПРИЛОЖЕНИЯ: Общий срок работ по созданию приложения составляет N дней:

    • N дня - макет и дизайн приложения и его утверждение
    • N дней - разработка приложения
    • N дня - тестирование приложения и исправление ошибок

    Перечень этапов разработки приложения:

    • Разработка макета и дизайна приложения, самостоятельно
    • Утверждение и доработка макета, самостоятельно
    • Создание работающего интерфейса, включая полную разработку действующих ярлыков, кнопок и т.д., самостоятельно
    • Проектирование алгоритма работы приложения, самостоятельно
    • Написание работающего кода приложения, включая полноценно работающие элементы графического интерфейса, а также перевод (поддержка локализации En, Ru), самостоятельно
    • Тестирование и исправление ошибок, самостоятельно
    • Публикация
  3. ТЕХНОЛОГИЧЕСКИЕ ТРЕБОВАНИЯ:

    1. Приложение разрабатывается под нужды операционной системы UBLinux
    2. Использование фирменного логотипа компании
    3. Название приложения, техническое: ubl-settings-datetime
    4. Название приложения, публичное: Дата и время
    5. Стек технологий:
    • Язык программирования: Bash или C++
    • Приложение для разработки графического интерфейса: Glade 3
    • Графические библиотеки: GTK3
    • Операционная система разработки: UBLinux DB
    1. Структура:
    • /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
  4. ТЕХНИЧЕСКОЕ ЗАДАНИЕ:

    1. Ярлык (desktop-файл):
    2. Type: Application
    3. Exec: ubl-settings-datetime
    4. Categories: X-UBL-SettingsManager;X-UBL-SystemSettings
    5. Главное окно:
    6. Требования к внешнему виду:
      • Адаптивный (резиновый) дизайн.
      • Минимальный размер окна до прекращения масштабирования 800 на 600 пикселей.
      • Шапка в стиле приложений GTK3 с содержимым:
      • Кнопка с выпадающим списком "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию")
      • Заголовок окна, название приложения
      • Кнопка с выпадающим списком "Сохранить" -> ("Сохранить глобальную конфигурацию, Сохранить локальную конфигурацию")
      • Кнопка с иконкой с выпадающим списком -> "Справка, О приложении"
      • Стандартные элементы окна, кнопки "Свернуть, Минимизировать/На весь экран, Закрыть"
      • В верхней части крупный логотип утилиты, с права от него краткое описание утилиты. Фон заполнен изображением.
      • Срока уведомления, представляющая собой полосу с инфографикой строки уведомлений.
      • Рабочая область.
    7. Требования к "Рабочей области". Выводятся группы настроек запуска:
      1. Блок с заголовком "Текущие дата и время"
      • лейбл "Время".
      • счётчик от 00 до 23 (часы).
      • лейбл ":" (разделитель).
      • счётчик от 00 до 59 (минуты).
      • лейбл "Дата".
      • поле ввода. Ввод даты в формате ДД.ММ.ГГГГ
      • кнопка с иконкой календаря. Вызов объекта датапикер (визуальное представление выбора даты).
      • кнопка "Синхронизировать". Синхронизация выставленных даты и времени с часами и датой системы. Неактивно, если выбраны значения "По умолчанию, DHCP, Вручную" чекбокса в блоке "Синхронизация через NTP".
      • кнопка "Синхронизировать аппаратное время". Синхронизация даты и времени с временем BIOS рабочей станции.
      1. Блок с заголовком "Синхронизация через NTP"
      • комбобокс с вариантами выбора сервера: "Остановлено, По умолчанию, DHCP, Вручную". При выборе "По умолчанию", второе поле для ввода вручную становится заблокированным для манипуляций - текст введённого поля серый. Содержание поля - ответ полученный на запрос "ubconfig --source=default get NTPSERVERS_DEFAULT". При выборе "По умолчанию» в конфигурационный файл передаются значения: "NTPSERVERS=default".
      • поле ввода для ручного указания серверов. Неактивно, если выбраны значения "Отключено, Остановлено, По умолчанию, DHCP" комбобокса в блоке "Синхронизация через NTP".
      1. Блок с заголовком "Часовой пояс".
      • лейбл "Синхронизация аппаратного времени:"
      • комбокс с вариантами "Локальное время, Время по UTC"
      • вложенный блок с заголовком "Часовой пояс".
      • блок с заголовком "Синхронизация через NTP"
      • лейбл "Регион:".
      • комбобокс. Локализованный перечень регионов.
      • лейбл "Зона:".
      • комбобокс. Перечень городов с поправкой на часовой пояс. Например, "(UTC +06) Омск". Перечень регионов, локализация стандартными средствами.
  5. ОСОБЕННОСТИ

    1. При загрузке утилиты по умолчанию загружаются данные из локального конфигурационного файла.
    2. Функции записи в локальный конфигурационный файл и чтения-записи в глобальный конфигурационный файл должны проходить процедуру повышения привилегий прав пользователя через pcexec.
    3. Кнопка "Загрузить" -> ("Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию"). При нажатии на кнопку происходит открытие меню с пунктами: "Загрузить глобальную конфигурацию, Загрузить локальную конфигурацию". Загрузка текущей и глобальной конфигурации в системе через скрипт ubconfig (команда get local), загрузка конфигурации из файла настроек ОС ublinux.ini (команда get global).
    4. Кнопка "Сохранить" -> ("Cохранить конфигурацию, Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию"). Сохраняет текущие настройки через скрипт ubconfig (команда set local) и в конфигурационный файл настроек ОС ublinux.ini (команда set global). При выборе пунктов "Сохранить в глобальную конфигурацию, Сохранить в локальную конфигурацию" происходит отдельное сохранение настроек.
    5. Строка уведомлений. Цвет в зависимости от сигнала:
    • песочный, пиктограмма "Птичка", сообщения об удачных загрузках или сохранениях конфигураций системы.
    • красный, пиктограмма "Восклицательный знак", сообщения об ошибках при сохранении, загрузке параметров конфигурации, при ошибках в работе программы.
    1. Окно с выводом информации о программе:
    • Заголовок окна по локализованному названию утилиты
    • Версия берётся из main.cpp глобальной переменной в исходника: UBAPP_VERSION
    • Копирайты, порядок:
      • Иконка приложения
      • Название утилиты
      • Версия программы
      • Название утилиты локализованное
      • Ссылка "Домашняя страница проекта" на https://ublinux.ru/
      • Copyright (c) 2023 - UBSoft Software LLC
  6. КОМАНДЫ

    1. Задать время: date +%T -s "h:m:sec" (кнопка "Синхронизировать")
    2. Задать дату: date +%Y%m%d -s "2000:06:14" (кнопка "Синхронизировать")
    3. Синхронизировать аппаратное время: hwclock --systohc (кнопка "Синхронизировать аппаратное время")
    4. Проверка запущенных процессов синхронизации, например, pidof -q systemd-timesyncd ntpd chronyd.
    5. Остановка сервисов:
    6. SEL_SERVICE=\"systemd-timesyncd\"; systemctl --quiet is-active ${SEL_SERVICE}.service &>/dev/null && systemctl stop ${SEL_SERVICE}.service; SEL_SERVICE=\"ntpd\"; systemctl --quiet is-active ${SEL_SERVICE}.service &>/dev/null && systemctl stop ${SEL_SERVICE}.service || pkill -9 ${SEL_SERVICE}; SEL_SERVICE=\"ntpdate\"; systemctl --quiet is-active ${SEL_SERVICE}.service &>/dev/null && systemctl stop ${SEL_SERVICE}.service || pkill -9 ${SEL_SERVICE}; SEL_SERVICE=\"chronyd\"; systemctl --quiet is-active ${SEL_SERVICE}.service &>/dev/null && systemctl stop ${SEL_SERVICE}.service || pkill -9 ${SEL_SERVICE}; SEL_SERVICE=\"openntpd\"; systemctl --quiet is-active ${SEL_SERVICE}.service &>/dev/null && systemctl stop ${SEL_SERVICE}.service || pkill -9 ntpd; SEL_SERVICE=\"ptp4l\"; systemctl --quiet is-active ${SEL_SERVICE}.service &>/dev/null && systemctl stop ${SEL_SERVICE}.service || pkill -9 ${SEL_SERVICE}; SEL_SERVICE=\"phc2sys\"; systemctl --quiet is-active ${SEL_SERVICE}.service &>/dev/null && systemctl stop ${SEL_SERVICE}.service || pkill -9 ${SEL_SERVICE}
    7. Установка часового пояса: ln -s /usr/share/zoneinfo/ && ln -s /usr/share/zoneinfo/REGION/ZONE (комбобокс "Регион", "Зона")
    8. Команды записи в конфигурационный файл:
    9. Получить статус синхронизации NTP: /usr/bin/ubconfig get network NTPSERVERS
    10. Задать значение NTPSERVERS:
      • Если выбран по умолчанию: /usr/bin/ubconfig set network NTPSERVERS=default
      • Если выбран dhcp: /usr/bin/ubconfig set network NTPSERVERS=dhcp
      • Если выбран вручную: /usr/bin/ubconfig set network NTPSERVERS=АДРЕСА ИЗ ПОЛЯ
    11. Получить текущую временную зону: /usr/bin/ubconfig get clock ZONE
    12. Задать временную зону: /usr/bin/ubconfig set clock ZONE=REGION/ZONE
    13. Отключить синхронизацию NTP: /usr/bin/ubconfig remove network NTPSERVERS
  7. ПРИБЛИЗИТЕЛЬНЫЙ МАКЕТ ПРИЛОЖЕНИЯ.

    1. Главное окно