inject.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. CKEDITOR.dialog.add( 'injectDialog', function( editor ) {
  2. return {
  3. title: 'Вставка Inject',
  4. minWidth: 400,
  5. minHeight: 200,
  6. contents: [
  7. {
  8. id: 'tab-basic',
  9. label: 'Базовые',
  10. elements: [
  11. {
  12. type: 'text',
  13. id: 'url',
  14. label: 'Вставьте ссылку',
  15. validate: CKEDITOR.dialog.validate.notEmpty( "Поле для ссылки не должно быть пустым" ),
  16. setup: function( element ) {
  17. this.setValue( element.getAttribute( "url" ) );
  18. },
  19. commit: function( element ) {
  20. element.setText( this.getValue() );
  21. }
  22. },
  23. {
  24. type: 'radio',
  25. id: 'orientation',
  26. label: 'Выбрать',
  27. items: [ [ 'Маленький', '1' ], [ 'Большой', '2' ], [ 'Узкий', '3' ] ],
  28. 'default': '1',
  29. setup: function( element ) {
  30. this.setValue( element.getAttribute( "type" ) );
  31. },
  32. commit: function( element ) {
  33. element.setAttribute( "orientation", this.getValue() );
  34. }
  35. }
  36. ]
  37. },
  38. ],
  39. onShow: function() {
  40. var selection = editor.getSelection();
  41. var element = selection.getStartElement();
  42. if ( !element || !element.hasClass('insinject') ) {
  43. element = editor.document.createElement( 'inject' );
  44. this.insertMode = true;
  45. }
  46. else
  47. this.insertMode = false;
  48. this.element = element;
  49. if ( !this.insertMode )
  50. this.setupContent( this.element );
  51. },
  52. onOk: function() {
  53. var dialog = this;
  54. var inject = editor.document.createElement( 'div' );
  55. inject.setAttribute('class', 'insinject');
  56. inject.setAttribute( 'type', dialog.getValueOf('tab-basic', 'orientation') );
  57. inject.setAttribute( 'url', dialog.getValueOf( 'tab-basic', 'url' ) );
  58. inject.setHtml('  ');
  59. editor.insertElement( inject );
  60. }
  61. };
  62. });