-
Notifications
You must be signed in to change notification settings - Fork 198
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace removes valid dropdown property #767
Comments
Reproduction for this one available on feature branch. |
Removed from ready; made spring cleaning candiate. |
Root CauseThis behavior is actually consistent to the rules we defined:
As opposed to the unlink-apply behavior which does not know about default values and only applies:
Because the source field is of type "hidden", it will always be the default and will be overwritten by the new default during the upgrade. Solution SketchHere are my Ideas on how to solve this: 1️⃣ The new Template does not define a defaultThis allows us to keep our rules consistent, but is not necessarily intuitive for template designers. This also requires the user to manually select a type on a new template, which is not desirable. 2️⃣ Ditch the "default value changed" checkThis solves the issue, but makes upgrade paths for all Templates more tedious for the user, as they have to check if values they never touched changed. 3️⃣ Add edge case for hidden values.Basically the same we already have for Currently, my favorites are 1️⃣ and 3️⃣ , with slight preference towards 1️⃣. It keeps a consistent behavior no matter what Input type you have. |
I'm gravitating heavily towards 3️⃣. It will enable the use case described without any negative impact on existing user journeys. We could in the future fine tune this, i.e. not take new defaults in any case if the binding type changes (I'm not certain on this at this stage though). Option 1️⃣ has the grave disadvantage you mentioned:
Let's discuss in sync in a few minutes.. |
Sync Summary: We want to do a modified 2️⃣
This helps us keep the "no surprises" design principle while Upgrading, as discussed with 2 examples: Hidden -> Dropdown
Dropdown -> Dropdown
|
I added the implementation on top of your branch here: #796 |
Hi @marstamm and @nikku, with modified 2️⃣, could you confirm that all data in fields is preserved for the user? For example, they were using the older "REST Bearer Token Auth" template. Now we are asking them to unlink older template and replace with new REST template. After they replace, all their data in the fields remains the same and they are not required to make any edits/adjustments. Thanks. |
This is exactly what should be the case. Everything else is a bug that we have to fix. Replace should always upgrade gracefully, no surprises. |
Ok perfect, thank you for clarifying @nikku! |
Not sure what is happening in the app. All dependencies upgraded this works end-to-end in the create-append anything extension demo: It also worked during a local integration test. |
Let's assume this is fixed and continue our investigation on https://github.com/camunda/web-modeler/pull/2598. Happy to check that out tomorrow. |
Describe the Bug
As I upgrade a task from one template to the other a valid property gets removed unintentionally, despite the fact it should be kept according to our good practices (
unlink + apply new template
shall always be equivalent toreplace (with new template)
).Steps to Reproduce
REST Connector Template
basic
in the original template)Expected Behavior
Environment
The text was updated successfully, but these errors were encountered: