Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ip address - interface assignment section - object selector - usability adjustments #12751

Closed
ITJamie opened this issue May 29, 2023 · 14 comments · Fixed by #14387
Closed

ip address - interface assignment section - object selector - usability adjustments #12751

ITJamie opened this issue May 29, 2023 · 14 comments · Fixed by #14387
Assignees
Labels
status: accepted This issue has been accepted for implementation type: feature Introduction of new functionality to the application

Comments

@ITJamie
Copy link
Contributor

ITJamie commented May 29, 2023

NetBox version

v3.5.2

Feature type

Change to existing functionality

Proposed functionality

re the change in #10757.

There are a few changes that could make this more usable / less cumbersome (as mentioned in #12669 )

1: display the name of the device/vm along with the interface name in the list. this would remove some confusion as to what device/interface pair is currently assigned. it would also make directly selecting a new interface from the list (it is a dropdown selection box after all) easier
2: when clicking the "Open Selector" box:

  • if the interface assignment option is "Device" the selector should pre-open with device selector enabled (or a default saved filter of "device search" or similar enabled)
  • if the interface assignment option is "Virtual Machine" the selector should pre-open with Virtual Machine selector enabled (or a default saved filter of "virtual machine search" or similar enabled)
  • if a device / vm interface is already assigned, that device/vm should be filtered to automatically (allows for easy re-assignment to a different interface on the same device/vm)

3: in the selector view, the related device/virtual machine name should be displayed with each interface name in the interface list. by default it
4: consider not having any interfaces returned until a user triggers a search, otherwise there are objects to select at random and it can cause confusion (like thinking these are interfaces from the device of the existing assigned interface)

Use case

re the above:
1: we have seen a user change an assignment from eth0 to eth1 in the dropdown list without using the selector, however this ending up being eth1 on a different device, it is not possible to tell from this viewpoint what device an interface is assigned to, but its possible to search for interfaces without using the new selector modal. simply combining the device/vm name with the interface name would solve this.
2: preselecting device / virtual machine filters removes a click and confusion with the new selector
3: the list of interfaces returned does not show the name of the related device/vm. if your searching based on a filter like virtual chassis or similar you will get a list of interfaces likely with matching names, but no idea which device they relate to.
4: having objects show up for assignment without any search criteria is a bit odd

Database changes

No response

External dependencies

No response

@ITJamie ITJamie added the type: feature Introduction of new functionality to the application label May 29, 2023
@ITJamie ITJamie changed the title ip address - interface assignment section - usability adjustments ip address - interface assignment section - object selector - usability adjustments May 29, 2023
@c-mege
Copy link

c-mege commented Jun 1, 2023

+1, the new ui is a huge loss of time compared to the previous one. The process of attributing an IP adress to an interface was

  1. select device
  2. select interface
    done

it's now

  1. open search tool
  2. click on device filter
  3. search device
  4. click elsewhere to see "search" button
  5. clic the "search" button
  6. select interface
    done

That's 4 steps more, if you can do something it would be great,
Have a nice day

@DanSheps
Copy link
Member

DanSheps commented Jun 5, 2023

I don't see aadding the device back as a step forward to be honest. However, one option might be to find a way to incorporate device information into the display name for interfaces (this would also fix some other issues with things like vlans if we included some limited parent information).

This still leaves searching an issue. Perhaps depending on the model, have some "default" forms pre-populated might be helpful.

@mgob
Copy link

mgob commented Jun 8, 2023

I don't see aadding the device back as a step forward to be honest.

This is a confusing take, no, it's not a step forward but, the current implementation is a step backwards and having a popup will never be a step forward for covering two fields. So, probably should just get back to baseline and then figure out a forward plan.

Rollback #10757 OR make it only applicable to editing an already assigned device/interface which is probably what should have happened in the first place.

@ITJamie
Copy link
Contributor Author

ITJamie commented Jun 8, 2023

I disagree with rolling back. the popup has search advantages, it just needs to be utilised better with better defaults/context

@mgob
Copy link

mgob commented Jun 8, 2023

I've had to rewrite this a few times, I guess what my complaint is.

Is that for new assignment this feels like it should have been in a Beta, not in a main release as it is very broken / confusing / laggy.

@DanSheps
Copy link
Member

DanSheps commented Jun 12, 2023

Is that for new assignment this feels like it should have been in a Beta, not in a main release as it is very broken / confusing / laggy.

It was in the beta: beta1 and beta2

From beta1:

  • 10054 - Introduce advanced object selector for UI forms

From beta2:

  • 12146 - Do not display object selector for disabled fields

It was available for comment on, and we did get some feedback. Yes it was only added to IP Address form recently, but that is to fix another problem

Is that for new assignment this feels like it should have been in a Beta, not in a main release as it is very broken / confusing / laggy

100%, I think some sane defaults will go a long way to helping out

@jeremystretch
Copy link
Member

Is that for new assignment this feels like it should have been in a Beta

As @DanSheps points out, this was in the beta. We run a month-long public beta period prior to each minor release specifically to gather feedback on changes such as this one. Unfortunately we can only act on the feedback of people who opt to participate.

@ITJamie
Copy link
Contributor Author

ITJamie commented Jun 12, 2023

Just to clarify, Im 100% for keeping the selector, just with some sane context additions to make it quicker to use

@kkthxbye-code
Copy link
Contributor

How about trying out the following two changes:

  1. Pre-select the filters that the selector replaced. So if device was present as a filter, have that be auto-selected like Saved Filter and Search are now.
  2. Auto-search after selecting something.

This would cut down interactions for interface assignment to:

  1. Click selector button
  2. Select device
  3. Click interface

@v0tti
Copy link
Contributor

v0tti commented Jun 28, 2023

How about trying out the following two changes:

  1. Pre-select the filters that the selector replaced. So if device was present as a filter, have that be auto-selected like Saved Filter and Search are now.
  2. Auto-search after selecting something.

I think these changes would greatly improve the workflow.

Another thing that would help is making the selector button more visible. Users in my team did not recognize it as a button at first.

Also, if I might add this here: The UI of the overlay seems a bit out of place. Especially the list of selectable fields seems "broken" as it misses rounded corners and margins that seem to be used in other UI elements. Maybe there is room for improvement here as well.

@kkthxbye-code
Copy link
Contributor

kkthxbye-code commented Jun 28, 2023

I looked at it a little, but unfortunately it will require a fair bit of rewriting to get it to display a preset list of fields, as it currently just hardcoded with a magic number to show the first two fields of the form.

        {% for field in form.visible_fields %}
          <div class="collapse{% if forloop.counter < 3 %} show{% endif %}" id="selector{{ forloop.counter }}">{% render_field field %}</div>
        {% endfor %}

I'll try to get a PoC working, it should be doable.

@ITJamie
Copy link
Contributor Author

ITJamie commented Jun 28, 2023

I have made progress re item 1 on my list.

It shows the device name after the interface name in the dropdown list on the ip assignment interface field.
I will extend that a bit more and open a pr if this issue gets approved (or should i create specific issues for each pr?)

@kkthxbye-code kkthxbye-code self-assigned this Jul 27, 2023
@kkthxbye-code kkthxbye-code added the status: accepted This issue has been accepted for implementation label Jul 27, 2023
@kkthxbye-code kkthxbye-code removed their assignment Sep 7, 2023
@kkthxbye-code kkthxbye-code added status: needs owner This issue is tentatively accepted pending a volunteer committed to its implementation and removed status: accepted This issue has been accepted for implementation labels Sep 7, 2023
@kkthxbye-code
Copy link
Contributor

kkthxbye-code commented Nov 30, 2023

I have a PR ready, please assign this to me.

Changes: develop...kkthxbye-code:12751-usability-improvements

  • Adds preselected filter fields (think device filter being pre-selected for an Interface selector field).
  • Auto-updates the search results on selection instead of requiring pressing search (this is already the case for the search field). The search button can maybe just be removed.

This wont solve all the issues, it's still confusing for users that clicking the filter without using the selector shows all objects, but I thinks it's a net improvement that saves several clicks.

Before:

  • Click selector
  • Click device in the list of filters to the left
  • Select device to filter
  • Click search
  • Choose interface

After:

  • Click selector
  • Select device to filter
  • Choose interface

@abhi1693 abhi1693 added status: accepted This issue has been accepted for implementation and removed status: needs owner This issue is tentatively accepted pending a volunteer committed to its implementation labels Nov 30, 2023
jeremystretch added a commit that referenced this issue Dec 15, 2023
* Usability improvements for object selector:
* Adds preselected filters
* Applies the filter on selection instead of requiring the search button to be pushed

* Declare selector_fields on base form class

---------

Co-authored-by: Jeremy Stretch <jstretch@netboxlabs.com>
@jeremystretch
Copy link
Member

While PR #14387 does not address every suggestion proposed in this FR, it makes several improvements. The original FR is too broad to be actionable as a single task, so if there are additional improvements anyone would like to propose, please open one or more new issues to do so. (When submitting a new feature request, please be sure to explain your proposed changes in great detail and to clearly capture your use case.)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: accepted This issue has been accepted for implementation type: feature Introduction of new functionality to the application
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants