Open
Conversation
Adds a filter which can be used for client-side validation of a shortcode before sending it to the editor. Basic concept for addressing issue #615; for discussion only at this point. (I think this needs some kind of syntactic sugar to help work with it, as the API this exposes doesn't follow any established conventions in the WP universe and isn't self-explanatory at all.)
davisshaver
reviewed
Jun 29, 2017
| var sendToEditor$ = wp.shortcake.hooks.applyFilters( 'shortcode-ui.send_to_editor', okToInsert$, shortcode ); | ||
|
|
||
| // Unless a filter has interfered, resolve the promise, sending the shortcode to the editor. | ||
| setTimeout( function() { okToInsert$.resolve(true); } ); |
Member
There was a problem hiding this comment.
I'm not that familiar with $.Deferred.() and using it with setTimeout(), so let me try parroting this back first. If there's a hook applied, sendToEditor$ could be a rejected promise. Otherwise it should be the value of okToInsert$, which is an unfulfilled promise.
What does the timeout do? Could we set okToInsert$ as a resolved promise up top and remove the timeout portion? Seems like it might be the same result.
Member
|
Re validation, my inclination is that shortcode-level validation would make the most sense and not limit any field-specific use cases. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a filter which can be used for client-side validation of a shortcode before sending it to the editor. Basic concept for addressing issue #615; for discussion only at this point. (I think this needs some
kind of syntactic sugar to help work with it, as the API this exposes doesn't follow any established conventions in the WP universe and isn't self-explanatory at all.)
@pySilver @marcin-lawrowski This seems like the bare minimum to make the use case you described in #615 possible.
Hooking into this and blocking sending the shortcode to the editor would be a matter of returning a rejected promise from that filter, like this:
Any thoughts on making this easier to work with? I like the idea of registering validation methods in the
shortcode_ui_register_for_shortcodefunction, but I'm torn as to whether they belong on the attributes, the shortcode as a whole, or both.