DEV: Add a plugin API for registering a "beforeSave" on the composer
This allows plugins to perform operations before saves occur, and perhaps reject the post.
This commit is contained in:
parent
ee4369f972
commit
c5d03c30ca
|
@ -721,7 +721,9 @@ export default Ember.Controller.extend({
|
|||
})
|
||||
.catch(error => {
|
||||
composer.set("disableDrafts", false);
|
||||
this.appEvents.one("composer:will-open", () => bootbox.alert(error));
|
||||
if (error) {
|
||||
this.appEvents.one("composer:will-open", () => bootbox.alert(error));
|
||||
}
|
||||
});
|
||||
|
||||
if (
|
||||
|
|
|
@ -46,7 +46,7 @@ import { queryRegistry } from "discourse/widgets/widget";
|
|||
import Composer from "discourse/models/composer";
|
||||
|
||||
// If you add any methods to the API ensure you bump up this number
|
||||
const PLUGIN_API_VERSION = "0.8.33";
|
||||
const PLUGIN_API_VERSION = "0.8.34";
|
||||
|
||||
class PluginApi {
|
||||
constructor(version, container) {
|
||||
|
@ -791,7 +791,7 @@ class PluginApi {
|
|||
*
|
||||
* Example:
|
||||
*
|
||||
* modifySelectKit("topic-footer-mobile-dropdown").appendContent(() => [{
|
||||
* api.modifySelectKit("topic-footer-mobile-dropdown").appendContent(() => [{
|
||||
* name: "discourse",
|
||||
* id: 1
|
||||
* }])
|
||||
|
@ -807,7 +807,7 @@ class PluginApi {
|
|||
*
|
||||
* Example:
|
||||
*
|
||||
* addGTMPageChangedCallback( gtmData => gtmData.locale = I18n.currentLocale() )
|
||||
* api.addGTMPageChangedCallback( gtmData => gtmData.locale = I18n.currentLocale() )
|
||||
*
|
||||
*/
|
||||
addGTMPageChangedCallback(fn) {
|
||||
|
@ -821,7 +821,7 @@ class PluginApi {
|
|||
* Example:
|
||||
*
|
||||
* // read /discourse/lib/sharing.js.es6 for options
|
||||
* addSharingSource(options)
|
||||
* api.addSharingSource(options)
|
||||
*
|
||||
*/
|
||||
addSharingSource(options) {
|
||||
|
@ -837,14 +837,28 @@ class PluginApi {
|
|||
*
|
||||
* Example:
|
||||
*
|
||||
* addComposerUploadHandler(["mp4", "mov"], (file, editor) => {
|
||||
* console.log("Handling upload for", file.name);
|
||||
* api.addComposerUploadHandler(["mp4", "mov"], (file, editor) => {
|
||||
* console.log("Handling upload for", file.name);
|
||||
* })
|
||||
*/
|
||||
addComposerUploadHandler(extensions, method) {
|
||||
addComposerUploadHandler(extensions, method);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a "beforeSave" function on the composer. This allows you to
|
||||
* implement custom logic that will happen before the user makes a post.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* api.composerBeforeSave(() => {
|
||||
* console.log("Before saving, do something!");
|
||||
* })
|
||||
*/
|
||||
composerBeforeSave(method) {
|
||||
Composer.reopen({ beforeSave: method });
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a field to draft serializer
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue