Migrate GlDropdown in app/assets/javascripts/projects/settings/components/access_dropdown.vue

The issue originated from this discussion, it might be a good idea to give that a read first.

Proposal

Apply these changes to app/assets/javascripts/projects/settings/components/access_dropdown.vue (or, duplicate the component and keep the needed functionality):

  • Migrate from GlDropdown to the new GlCollapsibleListbox
  • Add a property to enable/disable multiple selection (should be disabled for free plans)
  • Current implementation sends a query for deploy keys, add a property to disable any usage of deploy keys (we might want to think it through to check other solutions)
  • Add type: accessType to selected items.