Pull to refresh

InfoTerminal for DokuWiki

Reading time2 min
Views5.3K
InfoTerminal for DokuWiki – альтернативный интерфейс для популярной и лёгкой вики. В сочетании с DokuWiki это можно назвать системой управления информационным терминалом.

Лого
Смотреть (Лучше в Opera в полноэкранном режиме)
! Вики плохо наполнена — лучше начать с index » wiki » dokuwiki


Как я к этому пришел


Устав от разработки White IDE, я решил отвлечься и попробовать себя в качестве разработчика на собственной системе ещё потестить на юзабильность, добавить фичи.
Давно мне хотелось написать информационный терминал для чтения новостей (толстый клиент), ну что ж вполне подойдет для теста – просто и красиво.
Написание интерфейсов заняло 2 дня неспешной работы. И тут встал вопрос об админке… Писать админку мне очень не хотелось или написать её быстро «чтобы-что-то-было», например наскаффолдить на CakePHP.
DokuWiki со своей структурой хранения данных подошла, как ни есть лучше. Да и много мне не надо было: выдавать список статей и категорий, выдавать статью на чтение. Ещё полдня ушло на копание в API, написание серверного кода, прикручивание местной локали. Дальше пошла отладка, доточка до того вида в котором терминал сейчас есть.

Немного тех. деталей


Приложение разделено на окружение приложения и представление списков и статей. Нужно было максимально обобщить интерфейс приложения, ибо перегружать терминал лишними кнопками не юзабельно. Единый пользовательской интерфейс повлек за собой единый объектный интерфейс для компонентов представления данных.
Для управления представлением используется всего 2 кнопки прокрутка вверх(scrollUp) и прокрутка вниз(scrollDown), как для статьи, так и для списка. Методы scrollXXX возвращают массив с текущей страницей и количеством страниц.
Данные с сервера получаются через единый интерфейс browse() XHRом в json формате. Состоящий из данных и заголовка с указанием какой объект будет представлять данные + заголовок страницы и статус сообщение. browse() обертывается простейшим кэшем на хэш-массивах(cache[page_uri] = json). Дальше мелочи: история, обновление страницы, домой.

Запуск терминала в Opera Kiosk mode


Windows: C:\Program Files\Opera\opera.exe -k -nocontextmenu -nodownload -nokeys -nomaillinks -nomenu -noprint -nosave http:// yourdomain.host/path/to/wiki/terminal
UNIX: opera -k -nocontextmenu -nodownload -nokeys -nomaillinks -nomenu -noprint -nosave http:// yourdomain.host/path/to/wiki/terminal
Мac: Applications/Opera.app/Contents/MacOS/Opera -k -nocontextmenu -nodownload -nokeys -nomaillinks -nomenu -noprint -nosave http:// yourdomain.host/path/to/wiki/terminal

! после http:// стоит пробел, чтобы хабр не съедал ссылки в коде
Подробнее о Kiosk mode www.opera.com/support/mastering/kiosk

Где это найти

Точилось специально под Opera для применения в «Kiosk mode», но и в других браузерах работает.

! В демке сломаны imgs
Tags:
Hubs:
Total votes 17: ↑11 and ↓6+5
Comments17

Articles