diff options
Diffstat (limited to 'applications/luci-app-example')
14 files changed, 629 insertions, 0 deletions
diff --git a/applications/luci-app-example/Makefile b/applications/luci-app-example/Makefile new file mode 100644 index 0000000000..70834ad909 --- /dev/null +++ b/applications/luci-app-example/Makefile @@ -0,0 +1,11 @@ +# See /LICENSE for more information. +# This is free software, licensed under the GNU General Public License v2. + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI example app for js based luci +LUCI_DEPENDS:=+luci-base + +include ../../luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/applications/luci-app-example/README.md b/applications/luci-app-example/README.md new file mode 100644 index 0000000000..379bb7e032 --- /dev/null +++ b/applications/luci-app-example/README.md @@ -0,0 +1,11 @@ +# Example app for js based Luci + +This app is meant to be a kind of template, example or starting point for developing new luci apps. + +It provides two pages in the admin backend. One is based on a view with a form and makes use of internal models. The other one uses the `E()`-method to create more flexibel pages. + +The view based page is used to modify the example configuration. + +The html view page just shows the configured values. + +The configuration is stored in `/etc/config/example`. diff --git a/applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js b/applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js new file mode 100644 index 0000000000..75fa3c3079 --- /dev/null +++ b/applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js @@ -0,0 +1,36 @@ +'use strict'; +'require view'; +'require form'; + +return view.extend({ + render: function() { + var m, s, o; + + m = new form.Map('example', _('Example Form'), + _('Example Form Configuration.')); + + s = m.section(form.TypedSection, 'first', _('first section')); + s.anonymous = true; + + s.option(form.Value, 'first_option', _('First Option'), + _('Input for the first option')); + + s = m.section(form.TypedSection, 'second', _('second section')); + s.anonymous = true; + + o = s.option(form.Flag, 'flag', _('Flag Option'), + _('A boolean option')); + o.default = '1'; + o.rmempty = false; + + o = s.option(form.ListValue, 'select', _('Select Option'), + _('A select option')); + o.placeholder = 'placeholder'; + o.value('key1', 'value1'); + o.value('key2', 'value2'); + o.rmempty = false; + o.editable = true; + + return m.render(); + }, +}); diff --git a/applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js b/applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js new file mode 100644 index 0000000000..feae899a17 --- /dev/null +++ b/applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js @@ -0,0 +1,30 @@ +'use strict'; +'require uci'; +'require view'; + +return view.extend({ + handleSaveApply: null, + handleSave: null, + handleReset: null, + load: function() { + return Promise.all([ + uci.load('example') + ]); + }, + render: function(data) { + var body = E([ + E('h2', _('Example HTML Page')) + ]); + var sections = uci.sections('example'); + var listContainer = E('div'); + var list = E('ul'); + list.appendChild(E('li', { 'class': 'css-class' }, ['First Option in first section: ', E('em', {}, [sections[0].first_option])])); + list.appendChild(E('li', { 'class': 'css-class' }, ['Flag in second section: ', E('em', {}, [sections[1].flag])])); + list.appendChild(E('li', { 'class': 'css-class' }, ['Select in second section: ', E('em', {}, [sections[1].select])])); + listContainer.appendChild(list); + body.appendChild(listContainer); + console.log(sections); + return body; + } + }); + diff --git a/applications/luci-app-example/po/de/example.po b/applications/luci-app-example/po/de/example.po new file mode 100644 index 0000000000..c3c8a955df --- /dev/null +++ b/applications/luci-app-example/po/de/example.po @@ -0,0 +1,75 @@ +# +# Translators: +# Andi Bräu <freifunk@andi95.de>, 2021 +# +msgid "" +msgstr "" +"PO-Revision-Date: 2021-10-26 12:53+0000\n" +"Last-Translator: Paul Spooren <mail@aparcar.org>\n" +"Language-Team: German <https://hosted.weblate.org/projects/openwrt/" +"luciapplicationsexample/de/>\n" +"Language: de\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.9-dev\n" +"Content-Transfer-Encoding: 8bit\n" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:22 +msgid "A boolean option" +msgstr "Eine boolsche Option" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:27 +msgid "A select option" +msgstr "Eine Auswahloption" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:3 +msgid "Example" +msgstr "Beispiel" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:9 +msgid "Example Form" +msgstr "Beispielformular" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:10 +msgid "Example Form Configuration." +msgstr "Beispielformularkonfiguration." + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js:16 +msgid "Example HTML Page" +msgstr "Beispiel-HTML-Seite" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:15 +msgid "First Option" +msgstr "Erste Option" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:21 +msgid "Flag Option" +msgstr "Kennzeichenoption" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:14 +msgid "Form View" +msgstr "Formularansicht" + +#: applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json:3 +msgid "Grant UCI access to LuCI app ecample" +msgstr "UCI-Zugriff für LuCI Beispielanwendung gewähren" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:23 +msgid "HTML Page" +msgstr "HTML Seite" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:16 +msgid "Input for the first option" +msgstr "Eingabe für die erste Option" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:26 +msgid "Select Option" +msgstr "Auswahloption" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:12 +msgid "first section" +msgstr "Erste Sektion" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:18 +msgid "second section" +msgstr "Zweite Sektion" diff --git a/applications/luci-app-example/po/en/example.po b/applications/luci-app-example/po/en/example.po new file mode 100644 index 0000000000..abce20de3f --- /dev/null +++ b/applications/luci-app-example/po/en/example.po @@ -0,0 +1,62 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:22 +msgid "A boolean option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:27 +msgid "A select option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:3 +msgid "Example" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:9 +msgid "Example Form" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:10 +msgid "Example Form Configuration." +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js:16 +msgid "Example HTML Page" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:15 +msgid "First Option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:21 +msgid "Flag Option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:14 +msgid "Form View" +msgstr "" + +#: applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json:3 +msgid "Grant UCI access to LuCI app ecample" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:23 +msgid "HTML Page" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:16 +msgid "Input for the first option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:26 +msgid "Select Option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:12 +msgid "first section" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:18 +msgid "second section" +msgstr "" diff --git a/applications/luci-app-example/po/es/example.po b/applications/luci-app-example/po/es/example.po new file mode 100644 index 0000000000..42fccd2f62 --- /dev/null +++ b/applications/luci-app-example/po/es/example.po @@ -0,0 +1,72 @@ +msgid "" +msgstr "" +"PO-Revision-Date: 2021-10-27 18:57+0000\n" +"Last-Translator: Franco Castillo <castillofrancodamian@gmail.com>\n" +"Language-Team: Spanish <https://hosted.weblate.org/projects/openwrt/" +"luciapplicationsexample/es/>\n" +"Language: es\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.9-dev\n" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:22 +msgid "A boolean option" +msgstr "Una opción booleana" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:27 +msgid "A select option" +msgstr "Una opción de selección" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:3 +msgid "Example" +msgstr "Ejemplo" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:9 +msgid "Example Form" +msgstr "Formulario de ejemplo" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:10 +msgid "Example Form Configuration." +msgstr "Ejemplo de configuración de formulario." + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js:16 +msgid "Example HTML Page" +msgstr "Ejemplo de página HTML" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:15 +msgid "First Option" +msgstr "Primera opción" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:21 +#, fuzzy +msgid "Flag Option" +msgstr "Opción de indicador" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:14 +msgid "Form View" +msgstr "Vista de formulario" + +#: applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json:3 +msgid "Grant UCI access to LuCI app ecample" +msgstr "Otorgar acceso UCI a la app Ejemplo de LuCI" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:23 +msgid "HTML Page" +msgstr "Página HTML" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:16 +msgid "Input for the first option" +msgstr "Entrada para la primera opción" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:26 +msgid "Select Option" +msgstr "Seleccionar opción" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:12 +msgid "first section" +msgstr "primera sección" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:18 +msgid "second section" +msgstr "segunda sección" diff --git a/applications/luci-app-example/po/fr/example.po b/applications/luci-app-example/po/fr/example.po new file mode 100644 index 0000000000..6e930da6de --- /dev/null +++ b/applications/luci-app-example/po/fr/example.po @@ -0,0 +1,71 @@ +msgid "" +msgstr "" +"PO-Revision-Date: 2022-02-04 18:56+0000\n" +"Last-Translator: ButterflyOfFire <ButterflyOfFire@protonmail.com>\n" +"Language-Team: French <https://hosted.weblate.org/projects/openwrt/" +"luciapplicationsexample/fr/>\n" +"Language: fr\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.11-dev\n" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:22 +msgid "A boolean option" +msgstr "Option booléenne" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:27 +msgid "A select option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:3 +msgid "Example" +msgstr "Exemple" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:9 +msgid "Example Form" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:10 +msgid "Example Form Configuration." +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js:16 +msgid "Example HTML Page" +msgstr "Exemple de page HTML" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:15 +msgid "First Option" +msgstr "Première option" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:21 +msgid "Flag Option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:14 +msgid "Form View" +msgstr "" + +#: applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json:3 +msgid "Grant UCI access to LuCI app ecample" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:23 +msgid "HTML Page" +msgstr "Page HTML" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:16 +msgid "Input for the first option" +msgstr "Entrée pour la première option" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:26 +msgid "Select Option" +msgstr "Option de sélection" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:12 +msgid "first section" +msgstr "Première section" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:18 +msgid "second section" +msgstr "Deuxième section" diff --git a/applications/luci-app-example/po/nb-NO/example.po b/applications/luci-app-example/po/nb-NO/example.po new file mode 100644 index 0000000000..14952e3fdf --- /dev/null +++ b/applications/luci-app-example/po/nb-NO/example.po @@ -0,0 +1,65 @@ +msgid "" +msgstr "" +"Language: nb_NO\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:22 +msgid "A boolean option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:27 +msgid "A select option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:3 +msgid "Example" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:9 +msgid "Example Form" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:10 +msgid "Example Form Configuration." +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js:16 +msgid "Example HTML Page" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:15 +msgid "First Option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:21 +msgid "Flag Option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:14 +msgid "Form View" +msgstr "" + +#: applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json:3 +msgid "Grant UCI access to LuCI app ecample" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:23 +msgid "HTML Page" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:16 +msgid "Input for the first option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:26 +msgid "Select Option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:12 +msgid "first section" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:18 +msgid "second section" +msgstr "" diff --git a/applications/luci-app-example/po/templates/example.pot b/applications/luci-app-example/po/templates/example.pot new file mode 100644 index 0000000000..51365eaa56 --- /dev/null +++ b/applications/luci-app-example/po/templates/example.pot @@ -0,0 +1,62 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:22 +msgid "A boolean option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:27 +msgid "A select option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:3 +msgid "Example" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:9 +msgid "Example Form" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:10 +msgid "Example Form Configuration." +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js:16 +msgid "Example HTML Page" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:15 +msgid "First Option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:21 +msgid "Flag Option" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:14 +msgid "Form View" +msgstr "" + +#: applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json:3 +msgid "Grant UCI access to LuCI app ecample" +msgstr "" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:23 +msgid "HTML Page" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:16 +msgid "Input for the first option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:26 +msgid "Select Option" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:12 +msgid "first section" +msgstr "" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:18 +msgid "second section" +msgstr "" diff --git a/applications/luci-app-example/po/zh-Hans/example.po b/applications/luci-app-example/po/zh-Hans/example.po new file mode 100644 index 0000000000..2c79914262 --- /dev/null +++ b/applications/luci-app-example/po/zh-Hans/example.po @@ -0,0 +1,71 @@ +msgid "" +msgstr "" +"PO-Revision-Date: 2021-10-26 12:53+0000\n" +"Last-Translator: Eric <spice2wolf@gmail.com>\n" +"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/" +"openwrt/luciapplicationsexample/zh_Hans/>\n" +"Language: zh-Hans\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 4.9-dev\n" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:22 +msgid "A boolean option" +msgstr "布尔选项" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:27 +msgid "A select option" +msgstr "选择选项" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:3 +msgid "Example" +msgstr "示例" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:9 +msgid "Example Form" +msgstr "示例表单" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:10 +msgid "Example Form Configuration." +msgstr "示例表单配置。" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/htmlview.js:16 +msgid "Example HTML Page" +msgstr "示例 HTML 页面" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:15 +msgid "First Option" +msgstr "第一个选项" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:21 +msgid "Flag Option" +msgstr "标记选项" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:14 +msgid "Form View" +msgstr "表单视图" + +#: applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json:3 +msgid "Grant UCI access to LuCI app ecample" +msgstr "授予 LuCI app example UCI 访问权限" + +#: applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json:23 +msgid "HTML Page" +msgstr "HTML 页面" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:16 +msgid "Input for the first option" +msgstr "第一个选项的输入" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:26 +msgid "Select Option" +msgstr "选择选项" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:12 +msgid "first section" +msgstr "第一部分" + +#: applications/luci-app-example/htdocs/luci-static/resources/view/example/form.js:18 +msgid "second section" +msgstr "第二部分" diff --git a/applications/luci-app-example/root/etc/uci-defaults/80_example b/applications/luci-app-example/root/etc/uci-defaults/80_example new file mode 100644 index 0000000000..529e6b0bd4 --- /dev/null +++ b/applications/luci-app-example/root/etc/uci-defaults/80_example @@ -0,0 +1,8 @@ +#!/bin/sh + +touch /etc/config/example +uci set example.first=first +uci set example.second=second +uci commit + +return 0 diff --git a/applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json b/applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json new file mode 100644 index 0000000000..7b4772328a --- /dev/null +++ b/applications/luci-app-example/root/usr/share/luci/menu.d/luci-app-example.json @@ -0,0 +1,30 @@ +{ + "admin/example/": { + "title": "Example", + "order": 60, + "action": { + "type": "firstchild" + }, + "depends": { + "acl": [ "luci-app-example" ] + } + }, + + "admin/example/form": { + "title": "Form View", + "order": 1, + "action": { + "type": "view", + "path": "example/form" + } + }, + + "admin/example/html": { + "title": "HTML Page", + "order": 2, + "action": { + "type": "view", + "path": "example/htmlview" + } + } +} diff --git a/applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json b/applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json new file mode 100644 index 0000000000..998cb4b0e1 --- /dev/null +++ b/applications/luci-app-example/root/usr/share/rpcd/acl.d/luci-app-example.json @@ -0,0 +1,25 @@ +{ + "luci-app-example": { + "description": "Grant UCI access to LuCI app ecample", + "read": { + "ubus": { + "uci": [ + "get" + ] + }, + "uci": [ + "example" + ] + }, + "write": { + "ubus": { + "uci": [ + "set", "commit" + ] + }, + "uci": [ + "example" + ] + } + } +} |