The experience while navigating throughout the UI of Suse Manager it's not that nice. Whenever we navigate to a new page, the whole page gets refreshed and recreated, even when half of it didn't change a thing, for instance, the menu, topbar, and the notifications WebSocket connection, which in my opinion doesn't provide a smooth experience.

This project has the goal to test out an automatic way to transform the Suse Manager UI into a Single Page Application.

My idea is to have something working with the following workflow:

- Access Suse Manager - nothing changes here, a full render would be done.
- Clicking on a Menu Link: instead of doing a full refresh, we could wrap all the links with a piece of javascript that would make an ajax call in the background with an extra parameter: "URL?noframe=true" and attach the rendered result without the frame to the existing page body. (body.innerHTML = result)

This can be tricky especially when the UI is composed of so many different technologies but seems like an idea worth trying.

Drawbacks

For older parts, this would only work for navigation (page transitions). Old form posts would never work as a SPA in an automated way, but it can be a nice intermediate solution until everything is migrated to react, where we can follow a more SPA development mindset.

Update

I tried to implement a custom solution for this and the first results are promising! The navigation is looking awesome and way more smooth.

Also some libraries to try out:

- https://github.com/liferay/senna.js
- https://github.com/MoOx/pjax
- https://github.com/barbajs/barba
- https://github.com/turbolinks/turbolinks 
- https://github.com/gmrchk/swup

Looking for hackers with the skills:

susemanager ui spacewalk spa frontend reactjs

This project is part of:

Hack Week 18

Activity

  • over 6 years ago: joachimwerner liked this project.
  • over 6 years ago: atgracey liked this project.
  • over 6 years ago: cyntss liked this project.
  • over 6 years ago: cbbayburt liked this project.
  • over 6 years ago: LuNeves liked this project.
  • over 6 years ago: LuNeves added keyword "susemanager" to this project.
  • over 6 years ago: LuNeves added keyword "ui" to this project.
  • over 6 years ago: LuNeves added keyword "spacewalk" to this project.
  • over 6 years ago: LuNeves added keyword "spa" to this project.
  • over 6 years ago: LuNeves added keyword "frontend" to this project.
  • over 6 years ago: LuNeves added keyword "reactjs" to this project.
  • over 6 years ago: LuNeves started this project.
  • over 6 years ago: LuNeves originated this project.

  • Comments

    • LuNeves
      over 6 years ago by LuNeves | Reply

      First tests: https://drive.google.com/file/d/1JyUymKT5YgDhpZRFdicGOiJC7lMtKw-U/view?usp=sharing

    • LuNeves
      over 6 years ago by LuNeves | Reply

      https://github.com/uyuni-project/uyuni/pull/1001

    Similar Projects

    Testing and adding GNU/Linux distributions on Uyuni by juliogonzalezgil

    Join the Gitter channel! https://gitter.im/uyuni-project/hackweek

    Uyuni is a configuration and infrastructure management tool that saves you time and headaches when you have to manage and update tens, hundreds or even thousands of machines. It also manages configuration, can run audits, build image containers, monitor and much more!

    Currently there are a few distributions that are completely untested on Uyuni or SUSE Manager (AFAIK) or just not tested since a long time, and could be interesting knowing how hard would be working with them and, if possible, fix whatever is broken.

    For newcomers, the easiest distributions are those based on DEB or RPM packages. Distributions with other package formats are doable, but will require adapting the Python and Java code to be able to sync and analyze such packages (and if salt does not support those packages, it will need changes as well). So if you want a distribution with other packages, make sure you are comfortable handling such changes.

    No developer experience? No worries! We had non-developers contributors in the past, and we are ready to help as long as you are willing to learn. If you don't want to code at all, you can also help us preparing the documentation after someone else has the initial code ready, or you could also help with testing :-)

    The idea is testing Salt and Salt-ssh clients, but NOT traditional clients, which are deprecated.

    To consider that a distribution has basic support, we should cover at least (points 3-6 are to be tested for both salt minions and salt ssh minions):

    1. Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
    2. Onboarding (salt minion from UI, salt minion from bootstrap scritp, and salt-ssh minion) (this will probably require adding OS to the bootstrap repository creator)
    3. Package management (install, remove, update...)
    4. Patching
    5. Applying any basic salt state (including a formula)
    6. Salt remote commands
    7. Bonus point: Java part for product identification, and monitoring enablement
    8. Bonus point: sumaform enablement (https://github.com/uyuni-project/sumaform)
    9. Bonus point: Documentation (https://github.com/uyuni-project/uyuni-docs)
    10. Bonus point: testsuite enablement (https://github.com/uyuni-project/uyuni/tree/master/testsuite)

    If something is breaking: we can try to fix it, but the main idea is research how supported it is right now. Beyond that it's up to each project member how much to hack :-)

    • If you don't have knowledge about some of the steps: ask the team
    • If you still don't know what to do: switch to another distribution and keep testing.

    This card is for EVERYONE, not just developers. Seriously! We had people from other teams helping that were not developers, and added support for Debian and new SUSE Linux Enterprise and openSUSE Leap versions :-)

    Pending

    In progress

    FUSS

    FUSS is a complete GNU/Linux solution (server, client and desktop/standalone) based on Debian for managing an educational network.

    https://fuss.bz.it/

    Seems to be a Debian 12 derivative, so adding it could be quite easy.

    • [W] Reposync (this will require using spacewalk-common-channels and adding channels to the .ini file)
    • [W] Onboarding (salt minion from UI, salt minion from bootstrap script, and salt-ssh minion) (this will probably require adding OS to the bootstrap repository creator) --> Working for all 3 options (salt minion UI, salt minion bootstrap script and salt-ssh minion from the UI).
    • [W] Package management (install, remove, update...) --> Installing a new package works, needs to test the rest.
    • [I] Patching (if patch information is available, could require writing some code to parse it, but IIRC we have support for Ubuntu already). No patches detected. Do we support patches for Debian at all?
    • [W] Applying any basic salt state (including a formula)


    Bring to Cockpit + System Roles capabilities from YAST by miguelpc

    Bring to Cockpit + System Roles features from YAST

    Cockpit and System Roles have been added to SLES 16 There are several capabilities in YAST that are not yet present in Cockpit and System Roles We will follow the principle of "automate first, UI later" being System Roles the automation component and Cockpit the UI one.

    Goals

    The idea is to implement service configuration in System Roles and then add an UI to manage these in Cockpit. For some capabilities it will be required to have an specific Cockpit Module as they will interact with a reasource already configured.

    Resources

    A plan on capabilities missing and suggested implementation is available here: https://docs.google.com/spreadsheets/d/1ZhX-Ip9MKJNeKSYV3bSZG4Qc5giuY7XSV0U61Ecu9lo/edit

    Linux System Roles: https://linux-system-roles.github.io/


    openQA log viewer by mpagot

    Description

    *** Warning: Are You at Risk for VOMIT? ***

    Do you find yourself staring at a screen, your eyes glossing over as thousands of lines of text scroll by? Do you feel a wave of text-based nausea when someone asks you to "just check the logs"?

    You may be suffering from VOMIT (Verbose Output Mental Irritation Toxicity).

    This dangerous, work-induced ailment is triggered by exposure to an overwhelming quantity of log data, especially from parallel systems. The human brain, not designed to mentally process 12 simultaneous autoinst-log.txt files, enters a state of toxic shock. It rejects the "Verbose Output," making it impossible to find the one critical error line buried in a 50,000-line sea of "INFO: doing a thing."

    Before you're forced to rm -rf /var/log in a fit of desperation, we present the digital antacid.

    No panic: The openQA Log Visualizer (Also known as the "VOMIT-B-Gone 9000")

    This is your web-based hazmat suit for handling toxic log environments. It bravely dives into the chaotic, multi-machine mess of your openQA test runs, finds all the related, verbose logs, and force-feeds them into a parser.

    image

    Goals

    Work on the existing POC openqa-log-visualizer and change it to something usable

    Resources

    openqa-log-visualizer