imageupload.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /**
  2. * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved.
  3. * For licensing, see LICENSE.md.
  4. */
  5. /**
  6. * @module upload/imageupload
  7. */
  8. import Plugin from '@ckeditor/ckeditor5-core/src/plugin';
  9. import ImageUploadEngine from './imageuploadengine';
  10. import FileDialogButtonView from './ui/filedialogbuttonview';
  11. import imageIcon from '@ckeditor/ckeditor5-core/theme/icons/image.svg';
  12. /**
  13. * Image upload plugin.
  14. * Adds `insertImage` button to UI component factory.
  15. *
  16. * @extends module:core/plugin~Plugin
  17. */
  18. export default class ImageUpload extends Plugin {
  19. /**
  20. * @inheritDoc
  21. */
  22. static get requires() {
  23. return [ ImageUploadEngine ];
  24. }
  25. /**
  26. * @inheritDoc
  27. */
  28. init() {
  29. const editor = this.editor;
  30. const t = editor.t;
  31. editor.ui.componentFactory.add( 'insertImage', ( locale ) => {
  32. const view = new FileDialogButtonView( locale );
  33. view.set( {
  34. label: t( 'Insert image' ),
  35. icon: imageIcon,
  36. tooltip: true,
  37. acceptedType: 'image/*',
  38. allowMultipleFiles: true
  39. } );
  40. view.on( 'done', ( evt, files ) => {
  41. for ( const file of files ) {
  42. editor.execute( 'imageUpload', { file: file } );
  43. }
  44. } );
  45. return view;
  46. } );
  47. }
  48. }