CodeForPhilly / CodeForPhilly/stately

Feature: Form designer

Offen
#28 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
Vorherrschende Sprache
Python
Sterne
22
Forks
5
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Using this issue to jot down ideas about the form designer. We could try to reuse dobt's form designer ... but if we _didn't_....

We could use [dragula](https://bevacqua.github.io/dragula/) and HTML5's [contenteditable](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/contenteditable), and simply serialize the DOM.

So there'd be a form area, and a way to add fields to it. Adding an `` would actually add a `

`. The `
` would have dragula enabled on it. Dragging it around simply rearranges it in the DOM. The `` and description `

` would have `contenteditable="true"`, letting the user directly edit their contents (which also just updates the DOM).

"Saving" the form would be a matter of exporting `formArea.innerHTML`. Sure, we could serialize it into JSON if we want to, but there may be an advantage to simply storing the HTML. For instance, you could very easily customize it to infinity. We'd just need a way to associate the fields with the data, but that shouldn't be too hard; just require that each field has a `` and use an underscorified_version_of_the_label as the field name.

Sounds like fun!

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Es werden keine Dateien, Tests oder Einstiegspunkte genannt. Beginne damit, den vorgeschlagenen Formularbereich, das dragula-Verhalten, die contenteditable-Bezeichnungen und -Beschreibungen sowie den Export von formArea.innerHTML in einen konkreten Umfang zu überführen; zum Abschluss sollten ein abgestimmtes Design und ein definiertes Persistenzformat gehören.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript
Bereich
frontend
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.