2017-12-05 17:49:17 +00:00
|
|
|
import ModalSource from './ModalSource';
|
|
|
|
|
|
2018-01-17 09:33:11 +00:00
|
|
|
import { STRINGS } from '../../../config/wagtailConfig';
|
|
|
|
|
|
2017-12-05 17:49:17 +00:00
|
|
|
const $ = global.jQuery;
|
|
|
|
|
|
|
|
|
|
class DocumentSource extends ModalSource {
|
|
|
|
|
constructor(props) {
|
|
|
|
|
super(props);
|
|
|
|
|
this.parseData = this.parseData.bind(this);
|
|
|
|
|
}
|
|
|
|
|
|
2018-01-15 13:27:59 +00:00
|
|
|
parseData(data) {
|
|
|
|
|
this.onConfirm({
|
|
|
|
|
id: data.id,
|
|
|
|
|
url: data.url,
|
2018-01-15 16:56:53 +00:00
|
|
|
}, data.title);
|
2017-12-05 17:49:17 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
componentDidMount() {
|
2018-01-17 09:33:11 +00:00
|
|
|
const { onClose } = this.props;
|
2017-12-05 17:49:17 +00:00
|
|
|
const documentChooser = global.chooserUrls.documentChooser;
|
|
|
|
|
const url = documentChooser;
|
|
|
|
|
|
|
|
|
|
$(document.body).on('hidden.bs.modal', this.onClose);
|
|
|
|
|
|
2017-12-05 17:54:27 +00:00
|
|
|
// eslint-disable-next-line new-cap
|
2017-12-14 03:36:33 +00:00
|
|
|
window.ModalWorkflow({
|
2017-12-05 17:49:17 +00:00
|
|
|
url,
|
|
|
|
|
responses: {
|
|
|
|
|
documentChosen: this.parseData,
|
|
|
|
|
},
|
2018-01-17 09:33:11 +00:00
|
|
|
onError: () => {
|
|
|
|
|
// eslint-disable-next-line no-alert
|
|
|
|
|
window.alert(STRINGS.SERVER_ERROR);
|
|
|
|
|
onClose();
|
|
|
|
|
},
|
2017-12-05 17:49:17 +00:00
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default DocumentSource;
|