Currently, if there is any field of an unsupported field type in the category an article is in, the unsupported field guard prevents it from being published. The only option we're given is to go back, copy the text, and paste it manually into Joomla.
There is a fairly good reason for this. We do not communicate the values for unsupported field types which would make the Joomla API to delete their values. As far as I can tell, the Joomla Web Services API violates RFC 5789 by having PATCH act as a PUT. But I digress.
The way we handle it in Grafida is technically correct, but user-hostile. There are several use cases where this makes no sense.
It would make more sense to update the unsupported field guard to give the user an option:
- Cancel. Go back to the article editor to copy the text manually. Same as the current behavior.
- Publish Anyway. Ignore the unsupported fields, proceeding with publishing.
This is not an unconditional button addition, though. To make it valuable to the user, we need to make it conditional, as well as ensuring that we can convey existing fields' values.
For this to work properly, when creating a local draft from a live article we need to cache the values of all media fields including unsupported ones. This allows us to push those values to the site. Therefore, the Publish Anyway button can be implemented in this case.
For new articles which do not have any values for the unsupported fields we need to evaluate whether the unsupported fields are required (straight up required, or inside a subform field that's itself required). If they're required, we cannot offer the Publish Anyway option (gray it out) notifying the user that some of the unsupported fields are required, therefore Joomla would reject publishing the article.
Finally, we should fully expect an article Publish to fail because of a required field that's not part of what we have in Grafida. It could be that a field was added, renamed, or made required between us last updating the field metadata and the user hitting Publish in Grafida.
Currently, if there is any field of an unsupported field type in the category an article is in, the unsupported field guard prevents it from being published. The only option we're given is to go back, copy the text, and paste it manually into Joomla.
There is a fairly good reason for this. We do not communicate the values for unsupported field types which would make the Joomla API to delete their values. As far as I can tell, the Joomla Web Services API violates RFC 5789 by having PATCH act as a PUT. But I digress.
The way we handle it in Grafida is technically correct, but user-hostile. There are several use cases where this makes no sense.
It would make more sense to update the unsupported field guard to give the user an option:
This is not an unconditional button addition, though. To make it valuable to the user, we need to make it conditional, as well as ensuring that we can convey existing fields' values.
For this to work properly, when creating a local draft from a live article we need to cache the values of all media fields including unsupported ones. This allows us to push those values to the site. Therefore, the Publish Anyway button can be implemented in this case.
For new articles which do not have any values for the unsupported fields we need to evaluate whether the unsupported fields are required (straight up required, or inside a subform field that's itself required). If they're required, we cannot offer the Publish Anyway option (gray it out) notifying the user that some of the unsupported fields are required, therefore Joomla would reject publishing the article.
Finally, we should fully expect an article Publish to fail because of a required field that's not part of what we have in Grafida. It could be that a field was added, renamed, or made required between us last updating the field metadata and the user hitting Publish in Grafida.