Здравствуйте! В данный момент пытаюсь воплотить свои идеи в ПО контроллера, а точнее в homeui. Постараюсь кратко описать идею, дабы был контекст: хотел воплотить возможность сохранения набора топиков в разделе “История”, чтобы можно было потом какой-то набор переменных восстановить и не пришлось бы заново искать переменные из общего списка и добавлять их n-ое кол-во раз. Сохранение определенного набора топиков таким образом я прозвал “шаблоном”. У меня есть небольшой структурный макет, чтобы было понятно, что я хочу сделать со стороны самого UI чисто схематически (там еще находится поле для ввода имени шаблона, но забыл зафиксировать на макете):
Вопрос возникает по программной части, т.к я пытаюсь внести свои изменения и понять структуру, связи, API и т.д т.п, но являюсь начинающим разработчиком в данном направлении. Вопрос: каким образом Angular web-приложение считывает данные с файла /etc/wb-webui.conf
и как я могу воспользоваться данным API?
Поясню, откуда взялся вопрос: если я правильно понимаю, данный конфигурационный файл хранит “настройки” пользователя, такие как дашборды и виджеты, и я хотел туда добавить ключ (json-поле), отвечающий за хранение описанных ранее шаблонов, но в целом не понимаю, каким образом веб-приложение может получать и записывать туда данные.
Хоть я и имею представление о том, как работает mqtt (pub/sub), постепенно разбираюсь в angularjs и понимаю, что существует wb-mqtt-confed
, я не могу увидеть api, которое можно бы было использовать для взаимодействия с конфигурационным файлом в коде самого веб-приложения, скорее всего, вследствие моей неопытности и неполного понимания.
Если нужны какие-либо детали еще, то обязательно приведу
Приложение:
- За основу беру релиз wb-2504
- Приведу фрагмент html кода, который я написал в
homeui/frontend/app/views/history.html
, пока, собственно, без изменения controller’а (внутри angular) и подобного (нефинальная версия):
<!-- Templates html container -->
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<select
class="form-control"
ng-model="$ctrl.selectedTemplate"
ng-options="template.name for template in $ctrl.templates track by template.name"
ng-change="$ctrl.applyTemplate()"
>
<option value="" translate>{{ 'history.labels.choose_template' }}</option>
</select>
</div>
<button
class="btn btn-primary"
ng-click="$ctrl.applyTemplate()"
ng-disabled="!$ctrl.selectedTemplate"
translate
>
{{ 'history.buttons.applyTemplate' }}
</button>
<button
class="btn btn-danger"
ng-click="$ctrl.deleteTemplate()"
ng-disabled="!$ctrl.selectedTemplate"
translate
>
{{ 'history.buttons.deleteTemplate' }}
</button>
<button
class="btn btn-warning"
ng-click="$ctrl.updateTemplate()"
ng-disabled="!$ctrl.selectedTemplate"
translate
>
{{ 'history.buttons.updateTemplate' }}
</button>
<div class="form-group">
<input
type="text"
class="form-control"
ng-model="$ctrl.newTemplateName"
placeholder="{{ 'history.labels.new_template' | translate }}"
/>
</div>
<button
class="btn btn-success"
ng-click="$ctrl.saveTemplate()"
ng-disabled="!$ctrl.selectedControls.length || !$ctrl.newTemplateName"
translate
>
{{ 'history.buttons.saveTemplate' }}
</button>
</div>
</div>