plugin.js 4.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. window.addPowrPlugin = function(editor, appslug){
  2. editor.focus();
  3. editor.fire( 'saveSnapshot' );
  4. if( !editor.document.$.getElementById('powr-js') ){ //If powr js hasn't been added, add to head
  5. var s = document.createElement("script");
  6. s.type = "text/javascript";
  7. s.src = "https://www.powr.io/powr.js?platform=ckeditor";
  8. s.id = 'powr-js';
  9. editor.document.$.head.append(s);
  10. }
  11. var unique_label = 'xxxxxxxx_'.replace(/[x]/g, function(c) {
  12. var r = (Math.random() * 16) | 0,
  13. v = c == 'x' ? r : (r & 0x3) | 0x8;
  14. return v.toString(16);
  15. }) + new Date().getTime();
  16. var html_value = '<div class="powr-'+appslug+'" id="'+unique_label+'"></div>';
  17. var newElement = CKEDITOR.dom.element.createFromHtml( html_value, editor.document );
  18. editor.insertElement( newElement );
  19. editor.fire( 'saveSnapshot' );
  20. }
  21. CKEDITOR.plugins.add( 'powrsocialfeed', {
  22. icons: 'socialfeed',
  23. init: function( editor ) {
  24. editor.ui.addButton( 'socialfeed', {
  25. label: 'Insert POWr Social Feed',
  26. command: 'insertpowrsocialfeed',
  27. toolbar: 'insert'
  28. });
  29. editor.addCommand("insertpowrsocialfeed", { // create named command
  30. exec: function(editor) {
  31. window.addPowrPlugin(editor, 'social-feed');
  32. }
  33. });
  34. editor.ui.addRichCombo( 'powrdropdown', {
  35. label: '+ POWr',
  36. title: 'Insert POWr Plugin',
  37. toolbar: 'insert',
  38. panel: {
  39. multiSelect: false,
  40. attributes: { 'aria-label': 'Insert POWr Plugin' },
  41. css: CKEDITOR.skin.getPath( 'editor' )
  42. },
  43. init: function() {
  44. this.startGroup( 'Popular' ); this.add( 'form-builder', 'Form Builder' ); this.add( 'social-feed', 'Social Feed' ); this.add( 'popup', 'Popup' ); this.add( 'countdown-timer', 'Countdown Timer' ); this.add( 'media-gallery', 'Media Gallery' ); this.add( 'multi-slider', 'Multi Slider' ); this.add( 'social-media-icons', 'Social Media Icons' ); this.add( 'paypal-button', 'Paypal Button' ); this.add( 'price-table', 'Price Table' ); this.add( 'chat', 'Chat' ); this.add( 'comments', 'Comments' ); this.startGroup( 'Forms and Surveys' ); this.add( 'contact-form', 'Contact Form' ); this.add( 'form-builder', 'Form Builder' ); this.add( 'mailing-list', 'Mailing List' ); this.add( 'order-form', 'Order Form' ); this.add( 'poll', 'Poll' ); this.add( 'survey', 'Survey' ); this.startGroup( 'Galleries and Sliders' ); this.add( 'banner-slider', 'Banner Slider' ); this.add( 'event-gallery', 'Event Gallery' ); this.add( 'event-slider', 'Event Slider' ); this.add( 'flickr-gallery', 'Flickr Gallery' ); this.add( 'image-slider', 'Image Slider' ); this.add( 'media-gallery', 'Media Gallery' ); this.add( 'microblog', 'Microblog' ); this.add( 'multi-slider', 'Multi Slider' ); this.add( 'photo-gallery', 'Photo Gallery' ); this.add( 'video-gallery', 'Video Gallery' ); this.add( 'video-slider', 'Video Slider' ); this.add( 'vimeo-gallery', 'Vimeo Gallery' ); this.add( 'youtube-gallery', 'Youtube Gallery' ); this.startGroup( 'Social' ); this.add( 'chat', 'Chat' ); this.add( 'comments', 'Comments' ); this.add( 'facebook-feed', 'Facebook Feed' ); this.add( 'instagram-feed', 'Instagram Feed' ); this.add( 'pinterest-feed', 'Pinterest Feed' ); this.add( 'reviews', 'Reviews' ); this.add( 'rss-feed', 'RSS Feed' ); this.add( 'social-feed', 'Social Feed' ); this.add( 'social-media-icons', 'Social Media Icons' ); this.add( 'tumblr-feed', 'Tumblr Feed' ); this.add( 'twitter-feed', 'Twitter Feed' ); this.startGroup( 'eCommerce' ); this.add( 'ecommerce', 'Ecommerce' ); this.add( 'digital-download', 'Digital Download' ); this.add( 'paypal-button', 'Paypal Button' ); this.add( 'plan-comparison', 'Plan Comparison' ); this.add( 'price-table', 'Price Table' ); this.startGroup( 'Miscellaneous' ); this.add( 'about-us', 'About Us' ); this.add( 'button', 'Button' ); this.add( 'booking', 'Booking' ); this.add( 'countdown-timer', 'Countdown Timer' ); this.add( 'count-up-timer', 'Count Up Timer' ); this.add( 'faq', 'FAQ' ); this.add( 'graph', 'Graph' ); this.add( 'hit-counter', 'Hit Counter' ); this.add( 'holiday-countdown', 'Holiday Countdown' ); this.add( 'job-board', 'Job Board' ); this.add( 'map', 'Map' ); this.add( 'menu', 'Menu' ); this.add( 'music-player', 'Music Player' ); this.add( 'notification-bar', 'Notification Bar' ); this.add( 'popup', 'Popup' ); this.add( 'resume', 'Resume' ); this.add( 'scroll-to-top', 'Scroll To Top' ); this.add( 'tabs', 'Tabs' ); this.add( 'weather', 'Weather' );
  45. },
  46. onClick: function( value ) {
  47. window.addPowrPlugin(editor, value);
  48. }
  49. });
  50. }
  51. });