polls.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. CKEDITOR.dialog.add( 'pollsDialog', function( editor ) {
  2. return {
  3. title: 'Вставка Опроса',
  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: 'Вставьте ссылку https://www.amic.ru/inquirer/nnn, nnn - код опроса,<br> url можно взять в разделе опросов',
  15. validate: CKEDITOR.dialog.validate.notEmpty( "Поле для ссылки не должно быть пустым вида https://www.amic.ru/inquirer/nnn/" ),
  16. setup: function( element ) {
  17. //his.setValue( 'hhhh' );
  18. this.setValue( element.getAttribute( "url" ) );
  19. console.log( element );
  20. },
  21. commit: function( element ) {
  22. element.setText( this.getValue() );
  23. }
  24. },
  25. {
  26. type: 'radio',
  27. id: 'type',
  28. label: 'Выбрать',
  29. items: [ [ 'Вариант тортик', '1' ], [ 'Вариант - бублик', '2' ], [ 'Вариант - столбцы', '3' ] ],
  30. 'default': '1',
  31. setup: function( element ) {
  32. console.log(element.getAttribute( "type" ));
  33. this.setValue( element.getAttribute( "type" ) );
  34. },
  35. commit: function( element ) {
  36. element.setAttribute( "type", this.getValue() );
  37. }
  38. }
  39. ]
  40. },
  41. ],
  42. onShow: function() {
  43. var selection = editor.getSelection();
  44. var element = selection.getStartElement();
  45. // if ( element )
  46. // element = element.getAttribute( 'url' );
  47. //console.log($(element).attr('id'));
  48. if ( !element || $(element).attr('id') != 'widgetpolls' ) {
  49. element = editor.document.createElement( 'polls' );
  50. this.insertMode = true;
  51. }
  52. else
  53. this.insertMode = false;
  54. this.element = element;
  55. // console.log(element);
  56. // console.log(selection);
  57. if ( !this.insertMode )
  58. this.setupContent( this.element );
  59. },
  60. onOk: function() {
  61. var dialog = this;
  62. var polls = editor.document.createElement( 'div' );
  63. polls.setAttribute('id', 'widgetpolls');
  64. polls.setAttribute( 'type', dialog.getValueOf('tab-basic', 'type') );
  65. polls.setAttribute( 'url', dialog.getValueOf( 'tab-basic', 'url' ) );
  66. polls.setHtml('&nbsp;&nbsp;');
  67. //this.commitContent( polls );
  68. editor.insertElement( polls );
  69. }
  70. };
  71. });