kopia lustrzana https://github.com/wagtail/wagtail
Add openModal method to ChooserFactory
rodzic
87cb57362f
commit
d56c25704b
|
@ -134,6 +134,7 @@ export class Chooser {
|
|||
|
||||
export class ChooserFactory {
|
||||
widgetClass = Chooser;
|
||||
chooserModalClass = ChooserModal;
|
||||
|
||||
constructor(html, idPattern, opts = {}) {
|
||||
this.html = html;
|
||||
|
@ -150,4 +151,23 @@ export class ChooserFactory {
|
|||
chooser.setState(initialState);
|
||||
return chooser;
|
||||
}
|
||||
|
||||
getModalOptions() {
|
||||
return null;
|
||||
}
|
||||
|
||||
openModal(callback, customOptions) {
|
||||
if (!this.modal) {
|
||||
if (!this.opts.modalUrl) {
|
||||
throw new Error(
|
||||
'ChooserFactory must be passed a modalUrl option if openModal is used',
|
||||
);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line new-cap
|
||||
this.modal = new this.chooserModalClass(this.opts.modalUrl);
|
||||
}
|
||||
const options = { ...this.getModalOptions(), ...customOptions };
|
||||
this.modal.open(options, callback);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -45,6 +45,18 @@ window.PageChooser = PageChooser;
|
|||
|
||||
class PageChooserFactory extends ChooserFactory {
|
||||
widgetClass = PageChooser;
|
||||
// eslint-disable-next-line no-undef
|
||||
chooserModalClass = PageChooserModal;
|
||||
|
||||
getModalOptions() {
|
||||
return {
|
||||
modelNames: this.opts.modelNames,
|
||||
targetPages: this.opts.targetPages,
|
||||
matchSubclass: this.opts.matchSubclass,
|
||||
canChooseRoot: this.opts.canChooseRoot,
|
||||
userPerms: this.opts.userPerms,
|
||||
};
|
||||
}
|
||||
}
|
||||
window.PageChooserFactory = PageChooserFactory;
|
||||
|
||||
|
|
|
@ -8,6 +8,8 @@ window.DocumentChooser = DocumentChooser;
|
|||
|
||||
class DocumentChooserFactory extends ChooserFactory {
|
||||
widgetClass = DocumentChooser;
|
||||
// eslint-disable-next-line no-undef
|
||||
chooserModalClass = DocumentChooserModal;
|
||||
}
|
||||
window.DocumentChooserFactory = DocumentChooserFactory;
|
||||
|
||||
|
|
|
@ -38,6 +38,8 @@ window.ImageChooser = ImageChooser;
|
|||
|
||||
class ImageChooserFactory extends ChooserFactory {
|
||||
widgetClass = ImageChooser;
|
||||
// eslint-disable-next-line no-undef
|
||||
chooserModalClass = ImageChooserModal;
|
||||
}
|
||||
window.ImageChooserFactory = ImageChooserFactory;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ window.SnippetChooser = SnippetChooser;
|
|||
|
||||
class SnippetChooserFactory extends ChooserFactory {
|
||||
widgetClass = SnippetChooser;
|
||||
chooserModalClass = SnippetChooserModal;
|
||||
}
|
||||
window.SnippetChooserFactory = SnippetChooserFactory;
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue