Giter Site home page Giter Site logo

Comments (10)

MWedl avatar MWedl commented on June 12, 2024 1

Implemented in https://github.com/Syslifters/sysreptor/releases/tag/2023.145

For small fields (string, enum, date, CVSS, etc.) drag-and-drop is used for sorting. For large fields (markdown, object, nested list) move-up and move-down buttons are available.

from sysreptor.

MWedl avatar MWedl commented on June 12, 2024

I guess steps is a custom field of type=list.

We can definitely make lists sortable via drag and drop in the UI. I think the sorting better fits into the main editing pane, because

  • we want to keep the finding list clean to have a quick overview (without nested structures)
  • in order to sort lists you need to have the editing lock of a finding. In the sidebar, we cannot guarantee that you have the lock and sorting might fail because another user is currently editing the finding. In the main view, however, you acquire the lock when opening the page and it is guaranteed that you have it while sorting, so there will be no conflicts.

from sysreptor.

GrylledCheez avatar GrylledCheez commented on June 12, 2024

You could implement it so that you can only sort it if it's locked to you. For example, have the user click the finding in the left side. Then it will lock and they can rearrange as desired.

Also, you could make it so double-clicking a finding in the left will un-nest steps. That way it isn't always cluttered.

It could also be an expanding tray that opens to the right so the findings don't jump around on you and both panes are visible.

from sysreptor.

MWedl avatar MWedl commented on June 12, 2024

Only being able to sort fields while having selected a finding might be annoying when you want to sort of other/multiple findings. The finding list items are already quite densely filled with information (title, severity color, status, assignee, lock), so I would prefer not to add and additional expand icon. Double clicking would be a hidden features that you don't see in the UI, i.e. you have to know that it exists in order to use it.

The preferable solution, that integrates best into the current structure and functionality of SysReptor, is sorting in the main panel. It is also easier to handle edge cases like nested lists and makes it clear that you cannot move items between findings.

from sysreptor.

GrylledCheez avatar GrylledCheez commented on June 12, 2024

Skew the scale for a minute.

Pretend you have a finding (or phase) with 10 steps that have 1000 lines each as well as pictures.

How would you suggest we drag and drop?

If we do it like that, you could implement something like... When we grab a step in the main editor UI, each step collapses into the step name. Otherwise you run into the slow/fast elevator problem.

from sysreptor.

GrylledCheez avatar GrylledCheez commented on June 12, 2024

Also, apparently I'm the king of finding edge cases. Like the OSDA KQL template, apropos of nothing...

from sysreptor.

aronmolnar avatar aronmolnar commented on June 12, 2024

@GrylledCheez I see you're talking about a concrete design: The OffSec OSDA design.

To give a bit of context to other readers: You can use SysReptor to do reporting for certifications.
The OSDA design holds an element: a list of objects, consisting of a title and a description. This list is called "steps". You can add as many as you like.

Looks like this:
image

I get your point that drag and drop is not the best solution, because of the height of this element.
Such lists of objects are, however, rather the exception. Usually, lists look like this:

image

Drag & Drop makes more sense there.

The "steps" case, however, is rather an edge case and exists due to the format of the OSDA report.
With SysReptor, you can even have multiple lists of different objects, that do not even have to have a title (to be referenced in the sidebar).

(e.g. many reports contain a list of strings for "affected targets" and a list of strings for "resources")

How would you now define...

  • which of those lists should appear in the sidebar (if any)
  • what text should appear there

For most lists, it does not make sense to appear there.
This is the reason, we will not go for this solution.

I still see however the point that drag&drop is difficult in this specific case.
(Maybe it could be solved to allow drag&drop via grip and also arrows to move it up or down. But this might not work well for smaller list elements.)

image

from sysreptor.

GrylledCheez avatar GrylledCheez commented on June 12, 2024

What if the grab bar collapsed each object with the step name being visible?

from sysreptor.

aronmolnar avatar aronmolnar commented on June 12, 2024

We need a generic solution for this.
Objects in list can consist of anything. The fact that there is a title in this case is coincidence. The object could be a date and an enum field, or even be empty (instead of string and markdown).

from sysreptor.

GrylledCheez avatar GrylledCheez commented on June 12, 2024

Could it be the first line of text in the first text box per element?

from sysreptor.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.