UI Feature ideas

Hello,
I have been testing with genieacs for some time.
I found some features that could improve the genieacs ui.
1.) Costume Dropdowns, with administrator defined values or values from a list provided by the CPE.
2.) Costume Links with parameters from the device, for e.g. jumping into the line-debug-page or costumer infromations.
3.) Informationmarkers for text. So that the administrator can add (long/multiline) text to the different functions in the UI. e.g. what does a value mean or what possible values the service technician can expect in a field.
4.) Costume action buttons, which would set a list of parameters on the cpe or run a provision script once. (like the summon button) e.g. activating static IPv6 which are 3 different steps including an database lookup.

1 Like

This is already possible. Please review genieacs-gui/config/parameters_edit.yml

1 Like

I am running the new UI version from 1.2, I should have mentioned that in the first post.
I have checked the source code and there is only a select option if the value is from type boolean.

About 2
I have created a branch, that allows to ad dynamic links with the device ID, it is based on the device link component:

For static links, it is already possible to add them to genieacs
e.g.

- href: '"https://forum.genieacs.com"'
  innerHTML: "'Forum'"
  type: "'a'"
  target: "'_blank'"

That can also be useful in some cases.

Is it possible to add dynamic links with the external IP address (WAN IP)? Like:

- href: VirtualParameters.RouterIP
  innerHTML: "'Access to RouterIP'"
  type: "'a'"
  target: "'_blank'"

Hi,
Iā€™m really eager to find out an answer to this question.
I have done some research myself about the ui.index types in Device Listing page. There should not be a problem to add custom type i.e. write some method somewhere that would generate html for some custom param type? I would like to generate a hyperlink (link) based on virtual parameter value. I canā€™t find where this could be done and I spent hours already. For example, where is the code that generates the html for ā€˜device-linkā€™ tag?
Iā€™m not sure if all node.js / ruby projects are usually obfuscated but entry bar could probably be set little lower for other developers to join more easily since this is an open source project after all. Sorry for hard comment but I just needed to say this.

Regards

This is possible. But due to a defect with v1.2.7 (and I presume earlier versions), its not working right now. When v1.2.8 is released, here is the syntax to use:

- element: "'a[href=https://' || VirtualParameters.RouterIP || ']'"
  label: "'Router IP'"
  parameter: VirtualParameters.RouterIP
  type: "'container'"
  components:
  - type: "'parameter'"

2 Likes

The updated syntax for this with v1.2.8 is as follows:

- label: "'Router IP'"
  parameter: VirtualParameters.RouterIP
  type: "'container'"
  components:
    - type: "'parameter'"
  element:
    tag: "'a'"
    attributes:
      href: "'https://' || VirtualParameters.RouterIP"
1 Like

Would it be possible to have same link on Device Overview page? This syntax worked on Listing Devices page (Devices tab) but does not on a single device page.

Thank you

@snes1234 this works like this

- type: "'parameter-list'"
  parameters:
    - label: "'Device-Details'"
      parameter: DeviceID.SerialNumber
      type: "'container'"
      components:
        - type: "'parameter'"
      element:
        tag: "'a'"
        attributes:
          href: "'https://more-details-here/' || DeviceID.SerialNumber"
2 Likes

What about ā€œstatic contentā€ ? @JonasGhost mentioned InformationMarkers which very likely means the same.
We would like to add additional content to the device-page, too. Using data from the data-model is a requirement, too. So static content ist not the right word probably.
(Basic) HTML should be allowed to style it.

There is the long-text type, but this does not work here. The text is truncated and the use of variables/parameters and/or HTML is not possible.

I have created a small script to analyse the ui log files.
It will output a JSON String, with the information, which user had created how many log messages and interacted with which devices. It also shows, with how many devices a user has interacted.

{
    "me": {
        "c": 29589,
        "messages": {
            "Count devices": 23589,
            "Count faults": 170,
            "Query faults": 1485,
            "Query devices": 2988,
            "Delete faults": 15,
            "Commit tasks": 449,
            "Query faults (CSV)": 4,
            "Query devices (CSV)": 6,
            "Update tags": 393,
            "Count presets": 39,
            "Query presets": 71,
            "Query provisions": 70,
            "Count provisions": 25,
            "Put provisions": 8,
            "Log in": 101,
            "Count files": 9,
            "Query files": 68,
            "Upload files": 1,
            "Put presets": 3,
            "Query config": 6,
            "Count virtualParameters": 12,
            "Query virtualParameters": 22,
            "Put virtualParameters": 4,
            "Query device (CSV)": 3,
            "Put config": 26,
            "Delete config": 12,
            "Count users": 3,
            "Query users": 4,
            "Query permissions": 2,
            "Put users": 1
        },
        "devices": {
            "082697-VMG4005%2DB50A-S200YXXXXXXXX": 3,
            "00040E-FRITZ%21Box-XXXXXXXX": 1,
            "4CC53E-DX3301%2DT0-S200YXXXXXXXX": 71,
..........

        },
        "devCount": 235
    }
}

Hi @akcoder

The same dropdown mentioned for v1.2.8, is possible?

iā€™ve found a dropdown code that is used at Admin > File > New popup dialog

but i donā€™t know how to make the same at device page as described from the topic author.