Form builder stores the current editing state in a session based storage on the server-side (ctools_object_cache). If the form changes (multiple users, using the non-form_builder interface, …) the editing states are not cleared. This means that users that have edited the form via form_builder will not see the changes until they hit "Cancel" in form_builder. Simply clearing the cache as proposed in #2034543: Form cache delete on node save should remove all cache entries for that form doesn't cut it either since we can't just simply throw away the user's work.

This issue is about finding and implementing a sensible solution for that.

Original issue

Steps to reproduce:
1. Add a new component via node/*/webform/components
2. Click the formbuilder tab
3. Component doesn't show up

OR
1. Edit an existing component via node/*/webform/components
2. Click the formbuilder tab
3. Component doesn't update

OR
1. Delete an existing component via node/*/webform/components
2. Click the formbuilder tab
3. Component still exists

Comments

apmsooner created an issue. See original summary.

apmsooner’s picture

Priority: Normal » Major

Also adding that modifying the components at all via formbuilder wipes out any changes from the components section outside of formbuilder. So, if you were to manually add an additional component via node/*/webform/components and save, you will see the new component in that section. If you then navigate to node/*/webform where formbuilder renders, not only do you not see the added component, saving that form will wipe it out from the normal components admin section.

torotil’s picture

Title: Adding/editing/deleting a webform component outside of formbuilder doesn't update formbuilder » Detect edit conflicts
Version: 7.x-1.17 » 7.x-1.x-dev
Component: Webform Itegration » Form Builder Core
Category: Bug report » Feature request
Issue summary: View changes

Yes, that's an issue. Basically the same things apply when two users edit the webform at the same time. With the standard webform interface and the form_builder interface you need only one. See #1911248: Add abilitaty for admins to bypass the Form Builder interface to access advanced Webform component settings.

So this is more about adding a "edit conflict detection" than about an actual bug. This is a complex topic. Feel free to provide patches.

For the while: After you make changes to the webform in node/*/webform/components you need to hit cancel on the webform to load the changes.