Contributing to ISPConfig routing system

Discussion in 'Developers' Forum' started by Finco, Aug 11, 2020.

  1. Finco

    Finco New Member

    I'm not sure if this is the right section for this so please forgive me if it isn't.

    I have 2 questions. The answers to the first will determine if the second question can be asked.

    My Observations:
    I know ISPConfig uses ajax requests for navigation. It also uses sessions to store the Module the user is currently on. This makes it impossible to open ISPConfig on 2 tabs and work on 2 different Modules at the same time.

    It also makes it impossible to copy a URL and paste in a new tab to get the same page.

    My question is this:
    • Is there a particular reason ISPConfig was designed like this. Maybe a technical reason that makes ISPConfig not open to routing contributions?
    • Am I free to work on the routing so that it still uses AJAX but with dynamic URLs.
    The way I have it in mind is that
    • When a user clicks on a Module like sites or clients, JS adds /{modulename} to the URL.
    • When a user clicks on list, /{modulename}/list will be added to the url
    • The same will go for tabs
    • When a user refreshes the page, instead of checking the $_SESSION variable to determine the Module to open, the router checks the URL. When the Module is opened, the JS determines if there's a tab param and load the tab
     
  2. branov

    branov Member

    For me, the current system is URLs/tabs in ISPConfig is perfectly great :) I do not know the reason why it is created like this but its perfect for me.
     
  3. till

    till Super Moderator Staff Member ISPConfig Developer

    This has just historical reasons. At the time we started to write ISPConfig 3.0 from scratch, a technology called frames was commonly used, so the first drafts are using HTML frames. It became obvious during development that Frames were phased out in web development step by step and JS becomes more popular, that's why we basically replaced Frames with JS in the code without having to start from scratch. And That#s why the current implementation basically mimics Frames in JS.

    Using a routing approach is definitely on our roadmap, but we planned to use server-side routing when we do a major overhaul of the way ISPConfig UI is structured code wise. But this is nothing that#s done in the short term, so there might a place for a kind of intermediate solution for implementing routing on the js level in the current UI.

    btw. Moved this into the dev forum.
     
    Finco and Th0m like this.
  4. Th0m

    Th0m ISPConfig Developer ISPConfig Developer

    It would be a 'nice to have'. Maybe for 3.3?
     
  5. Finco

    Finco New Member

    Oh right I remember Frames. It was really trendy then.

    Thank you very much for the brief explanation.
    By the way, I have to say I love ISPConfig codebase. I love the fact that it doesn't use any of the fancy over-hyped Javascript frameworks.

    Okay then, I will work on a temporary routing solution.
     
    till likes this.
  6. Th0m

    Th0m ISPConfig Developer ISPConfig Developer

    You can create a MR on git.ispconfig.org. If you don't have the rights to create your own project, send a email with your username to [email protected]
     
    Finco and ahrasis like this.
  7. Finco

    Finco New Member

    Thank you. I will do this as soon as possible
     
    Th0m likes this.
  8. Th0m

    Th0m ISPConfig Developer ISPConfig Developer

Share This Page