If you like BoxMatrix then please contribute Supportdata-Probes, Firmware-Probes and/or Hardware-Probes (get in touch).
Note that our IRC-Channels moved over to libera.chat, since Freenode turned a community disposal network.

UI-Structure

From BoxMatrix


BoxMatrix >> Webinterface >> UI-Structure @ BoxMatrix   -   IRC-Chat   -   Translate: de es fr it nl pl
News Selectors Models Accessories Components Environment Config Commands System Webif Software Develop Lexicon Community Project Gallery

UI-Structure UI-Modules HTML-Files XML-Files Lua-Scripts Javascript Browser SSI-Files SSI-Directives HTML-Text Event-Text Help-Pages CSS-Files Graphics Research

Info
Structure of the Webinterface as it appears in the Menu and in Contents. Each section will have an article with explanation how it works. This is a difficult task, since nothing changed more with time than the Webinterface.

UI-Structure[edit]

WIP
This is currently being created and is unfinished, come back frequently to see it evolve!
This message will be removed once it's finished.

UI-History[edit]

This section collects methods how to distinguish between the numerous generations of the Webinterface and to detect them.
Note that firmware ranges and generations overlap since AVM did not change the UI for all models simultaneously.
This is work in progress and still partially wrong!

Generation HTML[edit]

Starting with the first known firmware (1.63) AVM used index.html for the Document-Root and home.html for the Overview.
All UI sections are HTML-Files piped through the webcm CGI interpreter to process SSI-Directives.
The request method used is HTTP GET, besides saving changes and file I/O like firmware update which uses HTTP POST.
Two generations of the menu system are used, here called Menu1 and Menu2.
menu1.html / menu1.def were used in firmware 1.63 - 3.37 and are an excellent detector for the Menu1 era.
menu2.html / menu2.def were introduced in firmware 3.23 / 3.24 and are a detector for the start of the Menu2 era.
menu2.html / menu2.def were used until firmware 5.57, overlapping the LUAMIX era.

Generation LUAMIX[edit]

With the introduction of Lua AVM used index.lua for the Document-Root and a bit later home.lua for the Overview.
Some UI sections are Lua-Scripts piped through the luacgi interpreter, some stay HTML-Files piped through webcm.
The request method used is HTTP GET, besides saving changes and file I/O like firmware update which uses HTTP POST.
index.lua was introduced in firmware 4.80 and is an excellent detector for the start of the LUAMIX era.
menu.lua / menu_data.lua were introduced in firmware 4.85 and represent the start of the LuaMenu era.
webcm was used until firmware 7.19 and is an excellent detector for the end of the LUAMIX era.

Generation LUA[edit]

TODO

Generation XHR[edit]

The current Webinterface is pretty complicated. It uses a mix of HTTP GET and POST requests and XML HTTP requests (xhr). Most pages are called by an initial xhr POST to data.lua with arguments naming the page and lang to be requested. The argument xhr=1 marks the request type and xhrId=first marks the initial request for pages which refresh themselves. The response is JSON mostly, sometimes HTML. Subsequent refreshes are xhr GET xhr requests to data.lua or the section specific Lua page, with xhr=1, useajax=1, the page in question and the data to refresh i.e. xhrId=all. The result is JSON.

UI-Sections[edit]

Goto:   Document-Root   -   Overview   -   Internet   -   Telephony   -   Home-Network   -   WLAN   -   Smart-Home   -   DVB-C   -   Diagnostics   -   System   -   Wizards   -   Service   -   Extras

The Section / Page column lists the english name of a menu entry or a tab, sometimes slightly modified to be more self explaining.

Fact-Box