if (typeof Service == 'undefined') { Service = {}; } Service.errorModal = function (errorCode) { var content = $('
Przepraszamy, wystąpił błąd. Spróbuj ponownie później.
').appendTo(content); if (errorCode) { $('').text('Kod błędu: ' + errorCode).appendTo(content); } W3Modal.dialog('Błąd', content) } Service.SendPost = function (_url, _params) { if (typeof _params == 'undefined') _params = {}; var form = $('
'); for (var i in _params) { $('').appendTo(form); } $('').appendTo(form); form.appendTo($('body')); form.submit(); } Service.ajaxLoader = { show: function (msg) { var msg = msg ? msg : 'Proszę czekać...'; W3Modal.dialog(msg, null, { alert: false, modal: true }); W3Modal.ajaxLoader(); }, hide: function () { $('#w3modal').modal('hide'); //setTimeout(function(){W3Modal.kill();}, 1000); } } Service.WYSWIGEditor = function (element, adminMode, extConfig, toolbarMode) { var twitterButton = function (context) { var ui = $.summernote.ui; var button = ui.button({ contents: '', tooltip: 'Twitter', click: function () { var link = window.prompt("Twitter: wklej adres URL ", ""); if (link) { if (/twitter\.com.*?\/status\//.test(link)) { context.invoke('editor.insertText', '[twitter-tweet]' + link + '[/twitter-tweet]'); } else { alert('Błędny adres URL') } } } }); return button.render(); // return button as jquery object } var twitterVideoButton = function (context) { var ui = $.summernote.ui; var button = ui.button({ contents: '', tooltip: 'Twitter', click: function () { var link = window.prompt("Twitter video: wklej adres URL ", ""); if (link) { if (/twitter\.com.*?\/status\//.test(link)) { context.invoke('editor.insertText', '[twitter-video]' + link + '[/twitter-video]'); } else { alert('Błędny adres URL') } } } }); return button.render(); // return button as jquery object } var galleryButton = function (context) { var ui = $.summernote.ui; var button = ui.button({ contents: '', tooltip: 'Galeria', click: function () { context.invoke('editor.insertText', '[gallery]'); } }); return button.render(); // return button as jquery object } var instagramButton = function (context) { var ui = $.summernote.ui; var button = ui.button({ contents: '', tooltip: 'Instagram', click: function () { var link = window.prompt("Instagram: wklej adres URL ", ""); if (link) { if (/www\.instagram\.com\/p\/.*?\//.test(link)) { context.invoke('editor.insertText', '[instagram]' + link + '[/instagram]'); } else { alert('Błędny adres URL') } } } }); return button.render(); // return button as jquery object } var facebookButton = function (context) { var ui = $.summernote.ui; var button = ui.button({ contents: '', tooltip: 'Facebook', click: function () { var link = window.prompt("Facebook: wklej adres URL posta", ""); if (link) { if (/www\.facebook\.com\/.*?\/posts\/\d+/.test(link)) { context.invoke('editor.insertText', '[facebook]' + link + '[/facebook]'); } else { alert('Błędny adres URL') } } } }); return button.render(); // return button as jquery object } var blockQuote = function (context) { var ui = $.summernote.ui; var button = ui.button({ contents: '', tooltip: 'Cytat', click: function () { //context.invoke('editor.formatBlock', 'Blockquote'); const range = context.invoke('editor.createRange'); range.pasteHTML('' + range.toString() + ''); } }); return button.render(); } var internalLinkButton = function (context) { var ui = $.summernote.ui; var button = ui.button({ contents: '', tooltip: 'Salon24', click: function () { var link = window.prompt("Link do notki w salonie", ""); if (link) { // if (/twitter\.com.*?\/status\//.test(link)) { context.invoke('editor.insertText', '[salon24]' + link + '[/salon24]'); //} // else { // alert('Błędny adres URL') // } } } }); return button.render(); // return button as jquery object } var buttons = { twitter: twitterButton, twitterVideo: twitterVideoButton, blockquote: blockQuote, galleryButton: galleryButton, instagram: instagramButton, facebook: facebookButton, salon24: internalLinkButton } var toolbar = [ // [groupName, [list of button]] ['style', ['style', 'bold', 'italic', 'underline', 'clear']], ['font', ['strikethrough', 'superscript', 'subscript']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video', 'blockquote', 'galleryButton']], ['embeds', ['twitter', 'twitterVideo', 'instagram', 'facebook', 'salon24']], ['undo', ['undo', 'redo']], ['fullscreen', ['fullscreen']] ]; if (toolbarMode) { switch (toolbarMode) { case 2: toolbar = [ ['style', ['style', 'bold', 'italic', 'underline', 'clear']], ['font', ['strikethrough', 'superscript', 'subscript']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video', 'blockquote']], ['embeds', ['twitter', 'twitterVideo', 'instagram', 'facebook']], ['undo', ['undo', 'redo']], ['fullscreen', ['fullscreen']] ]; break; } } if (adminMode) { toolbar.push(['codeview', ['iframe', 'specialchars', 'codeview']]); } var config = { lang: 'pl-PL', styleTags: ['p', 'h2', 'h3'], toolbar: toolbar, buttons: buttons, popatmouse: false, linkTargetBlank: true, tooltip: true, followingToolbar: true, callbacks: { onImageUpload: function (images) { data = new FormData(); data.append("mphoto", images[0]); url = "/mphoto-upload-json/1"; $.ajax({ data: data, type: "POST", url: url, cache: false, contentType: false, processData: false, success: function (response) { var url = new w3media.m.image(response.data.Md5, { width: (extConfig && extConfig.ImageDefaultWidth ? extConfig.ImageDefaultWidth : 860) }).url(response.data._domain); var image = $('').attr('src', url); editor.summernote("insertNode", image[0]); if (extConfig && extConfig.uploadPhotoCallback) { extConfig.uploadPhotoCallback(image); } } }); }, onImageLinkInsert: function (url) { if (extConfig && extConfig.uploadPhotoCallback) { var image = $('').attr('src', url); editor.summernote("insertNode", image[0]); if (extConfig && extConfig.uploadPhotoCallback) { extConfig.uploadPhotoCallback(image); } } }, onDialogShown: function () { $('.link-dialog .note-link-url').attr('placeholder', 'Tu wklej adres URL').focus(); $('.modal-body .note-image-url').focus(); $('.modal-body .note-video-url').focus(); setTimeout(function () { if ($('.link-dialog .note-link-url').val() == $('.link-dialog .note-link-text').val()) { $('.link-dialog .note-link-url').val(''); } }, 100) }, onPaste: function (e) { var bufferText = ((e.originalEvent || e).clipboardData || window.clipboardData).getData('Text'); e.preventDefault(); document.execCommand('insertText', false, bufferText); } }, popover: { image: [ ['custom', ['imageAttributes', 'captionIt']], ['imagesize', ['imageSize100', 'imageSize50', 'imageSize25']], ['float', ['floatLeft', 'floatRight', 'floatNone']], ['remove', ['removeMedia']] ] }, captionIt: { icon: '', figureClass: 'a-figure', figcaptionClass: 'a-figcapture', captionText: 'podpis' } } $.extend(config, extConfig); $.extend(true, $.summernote.lang, { 'pl-PL': { style: { p: 'domyślny', h2: 'podtytuł', h3: 'śródtytuł' }, } }); //$.summernote.dom.emptyPara = '
', dlatego że osadzane są blokowe