Skip to content

Conversation

@Raptor399
Copy link

Builds on #337, Fixes #81. While I was at it, I also made several enhancements to the user experience:

Implement Copy, Cut, and Paste functionality for the admin panel canvas, along with a graphical overhaul of connection creation. This involves:

  1. Github spec-kit: Integrate spec-kit to keep track of the project's specifications and to supercharge the use of AI helpers
  2. Selection, Navigation & Zoom: Enhancing canvas interactions (Shift+Click, Left-Click Rectangle Drag for selection, Right-Click Drag for panning, UI Buttons for Zoom, Alt-Drag to move terminals).
  3. Clipboard: In-memory storage of serialized module snapshots and internal connections.
  4. Paste Logic: Re-instantiating modules with unique names (Smart Increment), preserving properties, and re-linking internal connections while dropping external ones.
  5. Delete Logic: Deleting selected modules with confirmation dialog.
  6. UX: Keyboard shortcuts (Cmd/Ctrl+C/X/V/Delete) and visual feedback (Toast, Dialog).
  7. Auto-Zoom: Automatically adjusting zoom and pan to fit all modules when a config is loaded.
  8. Connection Overhaul: Drag-to-connect workflow with visual feedback (ghosting incompatible modules, enlarging targets) and new icons (plug/socket seemed most appropriate in this context ;-)).
  9. Dark Mode: Because why not.

I've tried to make the UX be similar to what users know from other apps, as well as make it more obvious to the user what is expected from them when making a connection.

Implementing this revealed some ambiguities that could result in future work:

  1. Interfaces should probably indicate how many connections are allowed (one-to-one, one-to-many), as per One should check the number of connections allowed per interface #158. This UI assumes everything allows "many" right now.
  2. Displaying the interface type doesn't help the user to distinguish multiple connectors. E.g. IsoMux can take two different ISO15118_charger interfaces.

- Using "vue-i18n" as basis.
- Introducing a language selector in the top right of the UI.
- Introducing a locale identifier in the URL, e.g. http://localhost:8080/#/en/connect
- Modifying "update-simulator-data.js" to generate labels and extract English descriptions to English locale files.
- Adding two demo languages German "de" and Chinese (simplified) "zh"

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…ue."

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…lly fixing error "Unsafe call of an `error` typed value".

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…d value." linter error by using safe patterns.

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
… path information."

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…checks

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…t of an error typed value." error

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
This reverts commit 549e176.

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…an error typed value"

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…ess .interface on an `error` typed value." error

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
@Raptor399
Copy link
Author

Most of the 636 issues found by Codacy are the result of it not being fine tuned to this repository. Codacy is inspecting files that are part of the spec-kit tooling, to be specific .github/*, .specify/*, and scripts/generate-speckit-docs.js. If you've set up your editor to understand spec-kit, it'll automatically pick up and use the tooling files.

To combat the issues:

  1. I could fix the tooling findings, but for every newer version of the tooling, those findings would have to fixed again.
  2. I could not commit these files to this repository by adding them to .gitignore. However, they do matter if developers wants to build and implement specs in a similar way. Also, some files matter a lot, e.g. .specify/memory/constitution.md, these should definitely be committed.
  3. We could configure Codacy to ignore certain files and paths. This would be my preference, as Codacy's configuration for this repository could use some fine tuning anyway.

Please let me know what the preferred path forward is. I'll focus on fixing non-tooling files in the mean time.

Also, it would be nice if most of these linting errors would also appear locally (see #341).

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
…rrowing unions.

Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Signed-off-by: Patrick Atoon <patrick.atoon@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Highlight matching terminals when terminal is selected

1 participant