Create a "mini-browser" UI

Created on 29 May 2024, 9 months ago

Problem/Motivation

Starshot's UI/mockups show a way to apply recipes that are in the local codebase. We need to provide that UI.

Proposed resolution

  1. Create a source plugin where the source is "locally-available recipes"
  2. Create a mini browser that can be embedded into the installer (that is tied to a specific source plugin?)
Feature request
Status

Active

Version

1.0

Component

Code

Created by

🇺🇸United States chrisfromredfin Portland, Maine

Live updates comments and jobs are added and updated live.
  • Starshot blocker

    A potential blocker for Drupal Starshot. More information: http://www.drupal.org/project/starshot

Sign in to follow issues

Merge Requests

Comments & Activities

  • Issue created by @chrisfromredfin
  • 🇺🇸United States chrisfromredfin Portland, Maine
  • 🇺🇸United States chrisfromredfin Portland, Maine

    Yup! The first one is for the "site template" version and the second is for the "feature-based" one - and we're prioritizing the "feature-based" one first.

  • 🇮🇳India Jeya sundhar Coimbatore

    Hi @Ravi Kant,
    Thanks for considering this project. We are going to maintain the theme, so currently, we don't need new maintainers for this theme.

  • 🇮🇳India yash.rode pune

    yash.rode made their first commit to this issue’s fork.

  • Merge request !558Resolve #3450629 "Create a mini browser" → (Open) created by yash.rode
  • Pipeline finished with Failed
    7 months ago
    Total: 420s
    #244106
  • Merge request !559Resolve #3450629 "Mini browser" → (Open) created by yash.rode
  • Pipeline finished with Failed
    7 months ago
    Total: 492s
    #244506
  • Assigned to yash.rode
  • Pipeline finished with Failed
    7 months ago
    Total: 379s
    #245484
  • Pipeline finished with Failed
    7 months ago
    Total: 710s
    #259062
  • Pipeline finished with Failed
    7 months ago
    Total: 277s
    #262343
  • Pipeline finished with Failed
    7 months ago
    Total: 445s
    #262401
  • Pipeline finished with Failed
    7 months ago
    Total: 420s
    #264897
  • Pipeline finished with Failed
    6 months ago
    Total: 405s
    #265945
  • Pipeline finished with Failed
    6 months ago
    Total: 214s
    #266693
  • Pipeline finished with Failed
    6 months ago
    Total: 330s
    #266695
  • Pipeline finished with Failed
    6 months ago
    Total: 405s
    #266706
  • Pipeline finished with Failed
    6 months ago
    Total: 2660s
    #266718
  • Pipeline finished with Failed
    6 months ago
    Total: 473s
    #266760
  • Pipeline finished with Failed
    6 months ago
    Total: 446s
    #266862
  • Pipeline finished with Failed
    6 months ago
    Total: 405s
    #266923
  • Pipeline finished with Failed
    6 months ago
    Total: 660s
    #266935
  • Pipeline finished with Failed
    6 months ago
    Total: 413s
    #266968
  • Pipeline finished with Failed
    6 months ago
    Total: 441s
    #267009
  • Pipeline finished with Failed
    6 months ago
    Total: 547s
    #267197
  • Pipeline finished with Failed
    6 months ago
    Total: 443s
    #268225
  • Pipeline finished with Failed
    6 months ago
    Total: 709s
    #269053
  • Pipeline finished with Success
    6 months ago
    Total: 366s
    #269078
  • Status changed to Needs review 6 months ago
  • Pipeline finished with Failed
    6 months ago
    Total: 550s
    #271403
  • Pipeline finished with Failed
    6 months ago
    Total: 322s
    #271417
  • Pipeline finished with Failed
    6 months ago
    Total: 291s
    #271448
  • Pipeline finished with Failed
    6 months ago
    Total: 338s
    #271453
  • Pipeline finished with Failed
    6 months ago
    Total: 339s
    #271463
  • Pipeline finished with Failed
    6 months ago
    Total: 650s
    #271473
  • Pipeline finished with Failed
    6 months ago
    Total: 452s
    #272514
  • Pipeline finished with Failed
    6 months ago
    #272540
  • Pipeline finished with Failed
    6 months ago
    Total: 473s
    #272620
  • Pipeline finished with Failed
    6 months ago
    Total: 485s
    #273236
  • First commit to issue fork.
  • Pipeline finished with Canceled
    6 months ago
    Total: 259s
    #278330
  • Pipeline finished with Failed
    6 months ago
    Total: 371s
    #278333
  • Pipeline finished with Failed
    6 months ago
    Total: 358s
    #278342
  • Pipeline finished with Canceled
    6 months ago
    Total: 75s
    #278362
  • Pipeline finished with Failed
    6 months ago
    Total: 679s
    #278364
  • Pipeline finished with Success
    6 months ago
    Total: 342s
    #278372
  • 🇺🇸United States phenaproxima Massachusetts

    Gave this a quick manual test. It worked, but there were a few things I noticed:

    • The styling is virtually nonexistent (see screenshot). It can probably be deferred to a follow-up, but it's ugly the way it currently is.
    • There's no text or anything that indicates what this little list of projects is, or what to do with it. Ideally, we'd add a configuration option to the block which allowed us to set some preamble text.
    • If you click to a project's detail page, "back to browse" takes you back to the main project browser, rather than where you were. That's jarring.
    • There's no indication that a project browser is loading in the block's spot. This is something we'd ideally fix for all project browsers; it'd be good to have some sort of throbber there while it loads.

    I think these are all follow-up material, though.

  • Issue was unassigned.
  • Status changed to Postponed: needs info 6 months ago
  • 🇺🇸United States phenaproxima Massachusetts

    Let me preface this comment by saying that nothing I am about to say is meant to impugn any work that was done by Yash, myself, or anyone else who worked on this. My problems here are with the management, not the technical side.

    Having said that...what are we doing here?

    When I manually tested this issue, I saw a small project browser displayed in a block, exactly as promised. So it does what it sets out to do...but how is it useful? What problem is this mini-browser solving?

    I am hard-pressed to figure out what a non-technical user is supposed to make of this thing. They will see several icons, and some words that are most likely meaningless to them. One of those things will be freaking Chaos tools, which should never be seen by a non-technical person under any circumstances.

    I think this was implemented without a clear idea of who it was meant for, or how it would be used, or what the benefit to end users would be. We need to take this back to the drawing board and figure out what we're trying to achieve. This is a case, I think, of incomplete wireframes (Drupal CMS's, to be precise) dictating the implementation, rather than a fully thought-out user experience being brought to life.

    Postponing until we have more info from the UX team.

  • 🇦🇺Australia pameeela

    Agree this should be postponed for now. We may have a need for something along these lines to expose local recipes post-install, but we are best off waiting for wireframes before we continue.

  • 🇺🇸United States chrisfromredfin Portland, Maine

    The main reason for this issue's existence was to support the Starshot wireframes Dries presented, which showed a way to apply recipes during the installer. Since that was abandoned in favor of a post-install recipe-chooser, and that was largely handled in Expose each source plugin at its own dedicated route Active , can this issue be closed? I don't think there's a need for this specifically; or, at best, we re-scope this issue for whatever the next logical choice is for the post-install thing. However, I think that might be handled in Recipes initiative and not here in PB.

  • 🇦🇺Australia pameeela

    Setting this as a target per our discussion earlier. Updated IS with the dashboard design.

  • 🇪🇸Spain penyaskito Seville 💃, Spain 🇪🇸, UTC+2 🇪🇺

    penyaskito changed the visibility of the branch 3450629-create-a-mini-browser to hidden.

  • 🇪🇸Spain penyaskito Seville 💃, Spain 🇪🇸, UTC+2 🇪🇺

    I tried to rebase the latest PR but had no luck, too outdated and I wasn't following that closely.
    My svelte foo is none. But with the available docs for handling svelte in project_browser I got really close.

    I think we still need a block providing a curated set of 3 local recipes to install.
    That block is designed to be on the Welcome dashboard.

    With that block:

    • Should the install happen on the dashboard itself? Not sure.
    • Should it follow the "add to cart" pattern? My guess is not, as you only have 3 recipes to install.

    I think I might be able to give this is a try if someone helps with the rebase, or if I start from scratch a new MR.

  • 🇺🇸United States chrisfromredfin Portland, Maine

    We have designs now of what we're shooting for - we'll see if we can help C with the rebase!

  • Status changed to Needs work 25 days ago
  • First commit to issue fork.
  • Merge request !733Revised mini browser. → (Merged) created by lostcarpark
  • Pipeline finished with Failed
    23 days ago
    Total: 565s
    #424763
  • Pipeline finished with Failed
    23 days ago
    Total: 543s
    #424777
  • Pipeline finished with Failed
    23 days ago
    Total: 588s
    #424782
  • Pipeline finished with Failed
    23 days ago
    Total: 548s
    #424797
  • 🇺🇸United States phenaproxima Massachusetts

    I strongly suggest we hold off on this for a bit.

    I think there are a few blockers we need to resolve. Firstly, we don't want to have the number of projects (and other display options) be global constants; they should be instance-specific. That means we'll need to change some stuff in the Svelte to accommodate that. We also need to ensure filters are handled generically (we're almost there, but Search is still a global thing), so that we can disable filtering in the mini-browser instances.

    These things need to happen (are happening) in other issues.

    Proceed if you want, @lostcarpark, but be aware that this will likely take a while and undergo significant refactoring (possibly a rewrite) once Project Browser's underlying architecture is actually ready for this. We're not there yet. But we will be.

  • Pipeline finished with Failed
    22 days ago
    Total: 609s
    #425285
  • Pipeline finished with Success
    22 days ago
    Total: 489s
    #425293
  • 🇺🇸United States chrisfromredfin Portland, Maine

    There's some work done here- but lots of design questions still need to be answered. Per @phenaproxima in Slack:

    I know that the designs exist, but they haven’t been fully thought through. Example — if you say “only show 3 projects”, that beggars the question of which three projects to show. Just whichever the top three are? By what sort criterion? Can/should they be curated? These decisions need to be made beforehand.

    And if, to continue speculating, the projects can/should be curated — then we have to have infrastructure for that. Source plugins aren’t configurable at all yet. I have no idea how any of that would work for, or be presented to, a site admin. And it’s unclear how _installing_ projects via multiple mini-browsers would work; the Svelte code isn’t ready for that. All of this needs to be sorted out.

  • 🇺🇸United States chrisfromredfin Portland, Maine
  • Pipeline finished with Failed
    10 days ago
    Total: 2368s
    #435999
  • Pipeline finished with Failed
    10 days ago
    Total: 1993s
    #436056
  • Pipeline finished with Failed
    10 days ago
    Total: 1395s
    #436087
  • Pipeline finished with Failed
    10 days ago
    Total: 1166s
    #436219
  • Pipeline finished with Failed
    9 days ago
    Total: 7124s
    #436549
  • 🇺🇸United States phenaproxima Massachusetts

    Discussed this with @lostcarpark in Slack.

    We agreed to reduce the scope of this issue to just:

    • Create a block that exposes a project browser.
    • Allow the block to limit the number of items visible in the project browser, via its configuration.

    All the display stuff will remain unchanged -- projects will still show logos, categories, and all that jazz. The project browsers will show filters, pagination, sorting, and the other chrome. In the interest of not introducing messiness or technical debt (especially now that alpha10 is finally far more cleaned up than it was even a couple of releases ago), we'll deal with those things in follow-up issues, since it does make sense that we'd want to remove the chrome and certain aspects of the projects (like the logos) in some situations.

    How to choose which projects are displayed is also something best handled in its own issue. For now, the mini-browser blocks will just show whatever the full project browser would, just not as much of it.

  • 🇮🇪Ireland lostcarpark

    I think it should be straightforward to strip out the parts that don't fit in the new scope. I will aim to get that done soon.

  • 🇺🇸United States phenaproxima Massachusetts

    As I consider the implementation here, I think we should probably revert all front-end changes and make the sources respect a limit key in their plugin configuration, to limit the number of results.

    Then all the mini_browser block has to do is forward the configuration settings to the source plugin and let it do the right thing. There is some nuance here that's hard to explain...

  • Pipeline finished with Failed
    7 days ago
    Total: 893s
    #438055
  • Pipeline finished with Success
    7 days ago
    Total: 435s
    #438062
  • 🇺🇸United States phenaproxima Massachusetts

    Given that most of the "minification" of the project browser will happen in Allow the frontend code to be initialized with a preconfigured query Active , I think we can tighten the scope here.

    This issue should only expose a block that lets you place a project browser anywhere. It'll be a full-sized project browser, so there's no concept of "mini". The ability to minify it will come later.

  • Pipeline finished with Failed
    7 days ago
    Total: 597s
    #438133
  • Pipeline finished with Failed
    7 days ago
    Total: 526s
    #438187
  • Pipeline finished with Failed
    7 days ago
    Total: 550s
    #438254
  • Pipeline finished with Failed
    7 days ago
    Total: 479s
    #438281
  • 🇮🇪Ireland lostcarpark

    Think I have most of the changes needed done. I'm having a problem with the test (renamed to ProjectBrowserBlockTest), which passes when I run locally, but fails in the CI.

  • Pipeline finished with Failed
    7 days ago
    Total: 572s
    #438298
  • Pipeline finished with Success
    7 days ago
    Total: 456s
    #438304
  • 🇮🇪Ireland lostcarpark

    lostcarpark changed the visibility of the branch 3450629-mini-browser to hidden.

  • 🇮🇪Ireland lostcarpark

    I think I've made the changes suggested by @phenaproxima. Tests are passing, though I think we will need more tests on the browser block.

    Moving to needs review to see what comes out of it.

  • 🇺🇸United States phenaproxima Massachusetts

    This is really close, just a few points of cleanup. We probably also need to add test coverage for the case where the block is referring to a source that has been disabled (it should simply hide the block).

  • Pipeline finished with Canceled
    6 days ago
    Total: 64s
    #438788
  • Pipeline finished with Failed
    6 days ago
    Total: 8670s
    #438791
  • Pipeline finished with Failed
    6 days ago
    Total: 593s
    #439216
  • Pipeline finished with Success
    6 days ago
    Total: 499s
    #439233
  • 🇮🇪Ireland lostcarpark

    I think I've taken care of these now.

  • 🇺🇸United States phenaproxima Massachusetts

    Well this is great! It's tightly scoped, clear as a bell, and has test coverage. I found a couple of minor things and some missing test coverage but this is really not far away from a hearty RTBC.

  • Pipeline finished with Failed
    6 days ago
    Total: 457s
    #439311
  • Pipeline finished with Success
    6 days ago
    Total: 710s
    #439318
  • Pipeline finished with Failed
    5 days ago
    Total: 428s
    #439714
  • Pipeline finished with Success
    5 days ago
    Total: 436s
    #439720
  • 🇮🇪Ireland lostcarpark

    I have added test cases for block access.

    testProjectBrowserBlockAccessWhenDisabled tests the black is initially visible, then updates the project browser settings so no sources are enabled, and verifies block is no longer visible. Is the $this->rebuild() after the settings change correct?

    testProjectBrowserBlockAccessNonPrivileged tests that the block is visible for the admin user, then creates an unprivileged user, and checks it is not visible for them.

  • Pipeline finished with Failed
    5 days ago
    Total: 382s
    #439763
  • Pipeline finished with Failed
    5 days ago
    Total: 257s
    #439770
  • Pipeline finished with Failed
    5 days ago
    Total: 396s
    #439773
  • Pipeline finished with Failed
    5 days ago
    Total: 378s
    #439781
  • Pipeline finished with Failed
    5 days ago
    Total: 520s
    #439794
  • Pipeline finished with Success
    5 days ago
    Total: 402s
    #439871
  • Pipeline finished with Success
    5 days ago
    Total: 433s
    #439909
  • Pipeline finished with Canceled
    5 days ago
    Total: 234s
    #439925
  • Pipeline finished with Success
    5 days ago
    Total: 2376s
    #439929
  • 🇪🇸Spain penyaskito Seville 💃, Spain 🇪🇸, UTC+2 🇪🇺

    Just one question on code review.

    Has test coverage, and tested manually and works like a charm.

  • Pipeline finished with Success
    5 days ago
    Total: 373s
    #440013
  • Pipeline finished with Canceled
    5 days ago
    Total: 194s
    #440022
  • Pipeline finished with Canceled
    5 days ago
    Total: 241s
    #440023
  • Pipeline finished with Failed
    5 days ago
    Total: 260s
    #440024
  • Pipeline finished with Canceled
    5 days ago
    Total: 647s
    #440027
  • Pipeline finished with Success
    5 days ago
    Total: 488s
    #440031
  • Pipeline finished with Failed
    5 days ago
    Total: 396s
    #440037
  • Pipeline finished with Canceled
    5 days ago
    Total: 159s
    #440041
  • Pipeline finished with Failed
    5 days ago
    Total: 429s
    #440044
  • 🇪🇸Spain penyaskito Seville 💃, Spain 🇪🇸, UTC+2 🇪🇺

    Attached screenshot of the preview mode. Before that, the spinning never stopped until refreshing the page.

  • 🇪🇸Spain penyaskito Seville 💃, Spain 🇪🇸, UTC+2 🇪🇺
  • Pipeline finished with Failed
    5 days ago
    Total: 372s
    #440050
  • Pipeline finished with Success
    5 days ago
    Total: 366s
    #440058
  • 🇺🇸United States tim.plunkett Philadelphia

    Saving credit

  • Pipeline finished with Skipped
    5 days ago
    #440111
  • 🇺🇸United States tim.plunkett Philadelphia

    Merged !733 🎉

  • Pipeline finished with Success
    5 days ago
    Total: 452s
    #440105
Production build 0.71.5 2024