az-digital / az_quickstart

UArizona's web content management system built with Drupal 10.
https://quickstart.arizona.edu
GNU General Public License v2.0
30 stars 20 forks source link

Make it easier to embed Request for Information (RFI) forms within content. #3660

Open trackleft opened 2 months ago

trackleft commented 2 months ago

Motivation

Many colleges use Slate to help them gather information about their prospective students using embedded RFI Forms.

Is your feature request related to a problem? Please describe.

At the moment, embedding RFI forms within content is cumbersome and not user-friendly. This makes it difficult for content editors and administrators to incorporate forms seamlessly into their pages.

Proposed Resolution

Describe the solution you'd like

A user-friendly interface that allows easy embedding of RFI forms into content and managing them.

Describe alternatives you've considered

Using third-party embed codes or custom HTML blocks, which are less intuitive for non-technical users.

Roles and Permissions considerations

A clear and concise description of how each of the following roles would be impacted by this change:

Additional context

image

Added to page by embedding a Flexible Block .

image

Full HTML (Requires special permission)

image
trackleft commented 2 months ago

At the moment, the workaround is to create a flexible block. add a full HTML paragraph, Add the RFI embed HTML to the Full HTML paragraph, Embed the flexible block in the page you want the RFI to appear on.

camikazegreen commented 1 month ago

Here is a similar example for embedding from Form Assembly (Trellis):

with additional info here: https://help.formassembly.com/help/javascript-form-publishing

ewlyman commented 1 month ago

tl;dr: Suggest creating new QS paragraph type for script embeds, enabling Paragraphs Library and creating a supporting module with documentation and UI elements. Also, Slate forms break views that use Drupal AJAX in filters if they are on the same page.

online.arizona.edu uses embedded custom blocks referenced from fields in custom content types.

Embedded paragraphs is the preferred method in QS2, but normally these need to be re-created for each page. We can get around this by enabling Paragraphs Library, and presenting the paragraph creation form separately from the node creation from with a custom AZQS module.

Slate forms will break views that use Drupal AJAX for filters if they are embedded on the same page, so we probably want to document this for content editors/admins.

djcelaya commented 4 weeks ago

@trackleft Would it be OK if I repurpose this issue to also include an RFI integration with Trellis? I imagine the implementation may be similar for both systems....or at least the user-facing requirements would probably be the same. Perhaps the actually loading of the Slate/Trellis form happens differently but is hidden from the site builder.

djcelaya commented 4 weeks ago

An eventual need has arisen in the College of Health Sciences (COHS) regarding an RFI solution for “professional” academic programs. Professional programs, like the COHS’s MPAP and DPT, are not eligible for use in Slate but will find their RFI needs met by the Trellis team. Thus, we are interested in exploring a QS2-centric solution that handles the heavy lifting of embedding a form/RFI into a QS2 site. We would like to make this as simple as possible for non-technical site builders and are envisioning a block type or something similar that will accept perhaps a form ID, and will then contain appropriate logic to retrieve, build, and load the form in a controlled fashion. I think a block type may be the most appropriate as it can then be added to a region, paragraph, or page depending on the site’s design needs.

In addition to this site building experience improvement, we are hoping this can be implemented in a way that reduces collisions with other JS-powered features that may already be present on the site.

It seems likely that the form’s construction will still take place within its respective platform—Slate or Trellis—and the site builder will still be responsible for interacting with those organizations to produce their form ID/embed code/connecting key.

In our initial meeting with the Trellis team, we also discovered the FormAssembly module but have not done any further research into how this could inform the solution. FormAssembly is SalesForce’s form mechanism I believe, so this could impact or alter the Trellis side of things.

trackleft commented 4 weeks ago

@trackleft Would it be OK if I repurpose this issue to also include an RFI integration with Trellis? I imagine the implementation may be similar for both systems....or at least the user-facing requirements would probably be the same. Perhaps the actually loading of the Slate/Trellis form happens differently but is hidden from the site builder.

Yes, that makes sense to me.

joeparsons commented 4 weeks ago

Potentially related issue: #2693

djcelaya commented 3 weeks ago

Example form from Kara for testing: https://forms-a.trellis.arizona.edu/181?tfa_4=70152000001AJzRAAW (does not create data in production environment)

djcelaya commented 3 weeks ago

Per the AZ Digital discussion on 10/11, we should consider doing this as a media type rather than a block type (see Google Calendar embed support issue). We believe this approach may have significant advantages over the former approach due to how media is loaded and managed in Drupal...more investigation is likely needed though.

ewlyman commented 3 weeks ago

Question: does the Media Remote module enable sites building embedded forms locally (based on referenced JS), or does it assume iframes, or can it do both?