PATH:
home
/
letacommog
/
letaweb
/
scripts
; (function() { var contentButtons = "bold italic underline | bullist numlist | code | outdent indent | justifyleft justifycenter justifyright | link unlink lioniteimages | pastetext pasteword | styleselect | savebutton"; var listButtons = "bold italic underline | code | link | pasteword | styleselect | savebutton"; var editor = { config: { menubar: false, plugins: ["image link code"], inline: true, saveEl: null, style_formats_merge: true, style_formats: [{ "title": "Code Block", block: "pre", classes: 'prettyprint' }], setup: function(ed) { function stateToggle() { var self = this; editor.saveEl = this; ed.on('nodeChange', function() { self.disabled(!ed.isDirty()); }); } ed.addButton('savebutton', { text: 'Save', icon: 'save', onclick: function() { editor.saveContent(ed); editor.saveEl.disabled(true); }, onPostRender: stateToggle }); } }, saveContent: function(editor) { var block = $('#' + editor.id).parents('.block'); var params = this.prepareData(block); params['content'] = editor.getContent(); $.post('user/templates/saveblock', params, function(response) { if (response != '') { block.attr('attr-content', response); } }); editor.isNotDirty = true; }, init: function() { this.addEditors('.block'); this.galleryManager('.block'); this.manageSections(); this.sorting(); this.headerInteractions(); }, headerInteractions: function() { var self = this; var block = $('#product-header,#showcase'); var params = this.prepareData(block); var galleryParams = $.extend({}, params); var uploader = block.find('.change-background'); params['featured'] = 1; /*uploader.ajaxUpload('user/files/uploadimage', params, { add: function(e, data) { $('<span class="loader"><em>0</em>%</span>').prependTo(uploader); data.submit(); }, progressall: function(e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); var loader = block.find('.loader'); loader.find('em').html(progress); }, done: function(e, data) { var response = data.result; block.find('.loader').remove(); if (response.success) { block.addClass('hasimage'); for (var i in response['files']) { var file = response['files'][i]; block.css('background-image', "url(" + file['full_src'] + ")"); } } if (response.content_id) { block.attr('attr-content', response.content_id); data['content_id'] = response.content_id; params['content_id'] = response.content_id; } } });*/ if ($('#product-header .screenshots').length == 1) { galleryParams['featured'] = 0; galleryParams['header'] = 1; var upload = $('#product-header .screenshots .upload'); $(upload).ajaxUpload('user/files/uploadimage', galleryParams, { add: function(e, data) { var button = $(this).parents('.upload:first'); var pos = button.attr('attr-pos'); if (typeof(pos) != 'undefined' && pos != '') { galleryParams['position'] = pos; } var img = button.parent().find('img'); if (img.length == 1) { galleryParams['id'] = img.attr('attr-id'); } else { galleryParams['id'] = ''; } button.data('html', button.find('b').html()) button.find('b').html('0%'); data.submit(); }, progressall: function(e, data) { var button = $(this).parents('.upload:first'); var progress = parseInt(data.loaded / data.total * 100, 10); button.find('b').html(progress + '%'); }, done: function(e, data) { var button = $(this).parents('.upload:first'); var response = data.result; button.find('b').html(button.data('html')); if (response.success) { for (var i in response['files']) { var file = response['files'][i]; if (upload.is('li')) { var image = $(file['html']).insertBefore(button); image.find('.remove').click(function() { self.removeImage(this); }); } else { var img = button.parent().find('img'); if (img.length == 1) { img.attr('src', file['full_src']); } else { $('<img src="' + file['full_src'] + '" />').appendTo(button.parent()); } } } } if (response.content_id) { block.attr('attr-content', response.content_id); data['content_id'] = response.content_id; galleryParams['content_id'] = response.content_id; } } }); } $('#product-header .screenshots .remove').click(function() { self.removeImage(this); }); }, manageSections: function() { var params = {}; var productId = $("input[name='product_id']").val(); if (typeof(productId) != 'undefined') { params['product_id'] = productId; } params['uri'] = $("input[name='page_uri']").val(); this.blockEvents($('.block'), params); var self = this; $('#block-preview .actions .arrows a').click(function() { var arrows = $(this).parent(); var focus = parseInt(arrows.attr('attr-focus'), 10); var scroller = $('#block-preview .scroller-width'); var total = scroller.find('.block').length; var ind = $(this).is('.left') ? (focus == 1 ? total : focus - 1) : (focus == total ? 1 : focus + 1); arrows.attr('attr-focus', ind); scroller.scrollTo(scroller.find('.block').eq(ind - 1), 300); }); $('#block-preview .actions .pick-block').click(function() { var ind = parseInt($('#block-preview .arrows').attr('attr-focus'), 10) - 1; var block = $('#block-preview .block').eq(ind); var blockId = block.attr('attr-block'); params['block_id'] = blockId; $('#block-preview .scroller').append('<span class="spinner dark-spin"></span>'); $.post('user/templates/addblock', params, function(response) { if (response.block_id != null) { block.attr('attr-block', response.block_id); } block.attr('attr-position', $('.block').length).insertBefore('#block-preview'); if (response.content_id) { block.attr('attr-content', response.content_id); } var tempId = 'temp' + $('.block').length; block.attr('id', tempId); self.blockEvents(block, params); self.addEditors('#' + tempId); self.galleryManager('#' + tempId); $('#block-preview').hide().insertAfter('#footer'); self.saveOrder(params); }, 'json'); }); $("#block-preview .actions .close").click(function() { $('#block-preview').hide().appendTo('body'); }); }, blockEvents: function(block, params) { $(block).find('.remove-block').click(function() { $(this).parent().find('.warning').show(); }); $(block).find('.warning .confirm-remove').click(function() { var block = $(this).parents('.block'); params['block_id'] = block.attr('attr-block'); $.post('user/templates/removeblock', params); block.slideUp(function() { $(this).remove(); }); }); $(block).find('.warning .cancel').click(function() { $(this).parents('.warning').hide(); }); $(block).find('.add-block').click(function() { var block = $(this).parents('.block'); var preview = $('#block-preview').show(); preview.insertAfter(block); var container = preview.find('.scroller'); container.html('<span class="spinner dark-spin"></span>'); var params = { store_id: $("input[name='store_id']").val() }; if ($('#app-profile').length == 1) { params['marketplace'] = 1; } var productId = $("input[name='product_id']").val(); if (typeof(productId) != 'undefined') { params['product_id'] = productId; } $.get('user/templates/pickblock', params, function(response) { container.html(response); }); $('body').scrollTo('#block-preview', 300, { offset: { top: -150, left: 0 } }); }); }, saveOrder: function(params) { var order = []; $('.block').each(function() { var position = $(this).attr('attr-position'); if (typeof(position) != 'undefined' && position != '') { order.push($(this).attr('attr-block')); } }); params['order'] = order; $.post('user/templates/setorder', params); }, prepareData: function(block) { var params = {}; var id = block.attr('attr-content'); if (!block.is('#footer')) { params['uri'] = $("input[name='page_uri']").val(); } if (id != '') { params['content_id'] = id; } else { if ($("input[name='store_id']").length == 1) { params['store_id'] = $("input[name='store_id']").val(); } var bId = params['block_id'] = block.attr('attr-block'); var productId = $("input[name='product_id']").val(); if (typeof(productId) != 'undefined' && productId != '' && bId != 8) { params['product_id'] = productId; } } return params; }, addEditors: function(context) { this.editContentBlocks(context + ' .content'); this.editListItems(context + ' .list'); this.editTitles(context); var self = this; $(context).find('.player-wrapper .button').click(function(e) { self.saveVideo(this); }); }, editTitles: function(context) { var self = this; $(context).find('> h2,.width > h2').click(function() { if (!$(this).is('.editing')) { $(this).addClass('editing') $(this).html('<input type="text" value="' + $(this).text() + '" />') $(this).find('input').blur(function(e) { self.saveTitle(this); })[0].focus(); } }); }, saveTitle: function(el) { var title = $(el).val(); var params = this.prepareData($(el).parents('.block:first')); params['title'] = title; $(el).parent().html(title).removeClass('editing'); $.post('user/templates/saveblock', params, function(response) { if (response != '') { block.attr('attr-content', response); } }); }, editListItems: function(selector) { var options = { toolbar: listButtons, selector: selector }; $.extend(options, this.config); tinymce.init(options); }, editContentBlocks: function(selector) { var options = { toolbar: contentButtons, selector: selector }; $.extend(options, this.config); tinymce.init(options); }, galleryManager: function(selector) { var self = this; $(selector).each(function() { var context = this; $(context).find('.gallery .upload').each(function() { var block = $(this).parents('.block:first'); var params = self.prepareData(block); var uploader = $(this); $(this).ajaxUpload('user/files/uploadimage', params, { add: function(e, data) { var gallery = $(uploader).parents('.gallery:first'); if (gallery.find('.thumbs').length > 0 && gallery.find('.thumbs').is(':visible')) { $('<li class="loader"><em>0</em><small>%</small><span class="progress"><span class="bar"></span></span></li>').appendTo('.gallery .thumbs'); } else { var loader = $(uploader).find('.fileinput-button i'); loader.attr('class', 'spinner dark-spin'); } data.submit(); }, progressall: function(e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); var loader = $('.gallery .thumbs .loader'); loader.find('em').html(progress); loader.find('.bar').css('width', progress + '%'); }, done: function(e, data) { var response = data.result; var loader = $('.gallery ul .loader'); if (loader.length > 0) { loader.remove(); } else { loader = $(uploader).find('.fileinput-button i'); loader.attr('class', 'icon-camera-2'); } if (response.success) { var gallery = $(uploader).parents('.gallery:first'); var thumbs = gallery.find('.thumbs'); var images = gallery.find('.main-display ul'); var count = thumbs.length > 0 ? thumbs.find('li').length : images.find('li').length; for (var i in response['files']) { var file = response['files'][i]; if (thumbs.length > 0 && thumbs.is(':visible')) { var image = $(file.html).appendTo(thumbs); } else { var image = $(file.html); } var big = false; if (images.length > 0) { var big = image.clone(); big.html(big.find('a').html().replace('-thumb', '') + '<em class="remove icon-trash"></em>'); big.addClass('viewing'); $(big).appendTo(images); if (images.find('li').length > 1) { gallery.addClass('show-arrows'); } if (gallery.parents('.grid-gallery:first').length == 0) { Store.slide(gallery, images.find('li').length - 1); } } else if (thumbs.length > 0 && count == 0) { image.find('img').attr('src', file['full_src']); } image.find('.remove').click(function() { self.removeImage(this); }); if (big) { big.find('.remove').click(function() { self.removeImage(this); }); } } } if (response.content_id) { block.attr('attr-content', response.content_id); params['content_id'] = response.content_id; } } }); }); $(context).find('.gallery .remove').click(function() { self.removeImage(this); }); $(context).find('.screenshot').each(function() { var block = $(this).parents('.block:first'); var params = self.prepareData(block); var img = $(this).find('img'); if (img.length == 1) { params['id'] = img.attr('attr-id'); } var container = $(this); $(this).ajaxUpload('user/files/uploadimage', params, { add: function(e, data) { $(container).find('.fileinput-button').append('<span class="file-progress"><span class="bg"></span><span class="size"></span></span>'); data.submit(); }, progressall: function(e, data) { var progress = parseInt(data.loaded / data.total * 100, 10); var bar = $(container).find('.file-progress'); bar.find('.size').html(Math.round(data.loaded / 1024) + 'kb / ' + Math.round(data.total / 1024) + 'kb'); bar.find('.bg').css('width', progress + '%'); }, done: function(e, data) { var response = data.result; container.find('.file-progress').remove(); if (response.success) { if (img.length == 0) { var file = response['files'][0]; img = $('<img src="' + file['full_src'] + '" attr-id="' + file['id'] + '" />').appendTo(container); params['id'] = file['id']; } else { var file = response['files'][0]; img.attr('src', file['full_src']); } } else { var errors = ''; for (var i in response.errors) { var error = response.errors[i]; if (errors != '') { errors += '<br />'; } errors += error; } var el = $('<span class="error-message">' + errors + '</span>').appendTo(container); window.setTimeout(function() { el.fadeOut(300, function() { el.remove() }); }, 3000); } if (response.content_id) { block.attr('attr-content', response.content_id); params['content_id'] = response.content_id; } } }); }); var setFeaturedImage = function(gallery) { var i = 1; $(gallery).find('li img').each(function() { var img = $(this); if (img.parents('li:first').is('.video-link')) { return false; } if (i == 1) { img.attr('src', img.attr('src').replace('-thumb', '')); } else if (img.attr('src').indexOf('-thumb') == -1) { var parts = img.attr('src').split('.'); var ext = parts[parts.length - 1]; img.attr('src', img.attr('src').replace('.' + ext, '-thumb.' + ext)); } i++; }); }; if ($(context).find('.gallery .thumbs').length > 0) { var dragContainer = $('<ul class="gallery thumbs drag-container"></ul>').appendTo(context); $(context).find('.gallery .thumbs').sortable({ placeholder: "gallery-placeholder", helper: "clone", appendTo: dragContainer, start: function(e, ui) { $(this).addClass('noclick'); $(this).parents('.block').css('position', 'static'); }, stop: function(e, ui) { e.stopPropagation(); var order = []; var i = 1; var gallery = $(ui.item).parents('.gallery:first'); gallery.find('.thumbs li').each(function() { order.push($(this).attr('attr-id')); i++; }); if (gallery.parents('.description').length > 0) { setFeaturedImage(gallery); } else if (gallery.parents('.big-gallery').length > 0) { var ul = gallery.find('.main-display ul'); for (var i in order) { var id = order[i]; ul.find("li[attr-id='" + id + "']").appendTo(ul); } } var params = self.prepareData($(this).parents('.block:first')); params['order'] = order; $.post('user/files/imagesort', params); $(this).removeClass('noclick'); $(this).parents('.block').css('position', ''); } }); $(context).find('.gallery .set-video .edit').click(function() { $(this).parent().addClass('editing'); }); $(context).find('.gallery .set-video .save').click(function() { $(this).parents('.set-video').removeClass('editing'); var url = $(this).parent().find("input[name='video_url']").val(); var gallery = $(this).parents('.gallery:first'); var params = self.prepareData($(this).parents('.block:first')); params['video_url'] = url; $.post('user/templates/addvideo', params, function(response) { if (response.html) { var item = $(response.html).appendTo(gallery.find('ul')); item.find('.remove').click(function(e) { self.removeImage(this); }); if (gallery.parents('.block').is('.big-gallery')) { if (item.find('img').length > 1) { item.find('img').eq(0).remove(); item.each(function() { if (!$(this).parent().is('.thumbs')) { $(this).find('a').not('.remove').addClass('video').click(function(e) { e.preventDefault(); Store.playVideo(this); }); } else {} }); } Store.slide(gallery, gallery.find('.main-display li').length - 1); } } }, 'json'); }); } }); }, removeImage: function(el) { var li = $(el).parents('li:first'); var gallery = li.parents('.gallery:first'); var id = li.attr('attr-id'); var params = { id: id }; $.post('user/files/removeimage', params); if (gallery.length == 1) { if (gallery.parents('.description').length > 0) { var active = gallery.find('.slide-pager .active'); var prev = active.prev(); if (prev.length == 1) { prev.addClass('active'); } else { active.next().addClass('active'); } active.remove(); } else if (gallery.parents('.big-gallery').length > 0) { var image = gallery.find(".main-display li[attr-id='" + id + "']"); var ind = gallery.find('.main-display li').index(image); image.remove(); Store.slide(gallery, ind - 1); if (gallery.find('.main-display li').length > 1) { gallery.addClass('show-arrows'); } else { gallery.removeClass('show-arrows'); } } } li.remove(); }, sorting: function() { var self = this; var params = {}; var productId = $("input[name='product_id']").val(); if (typeof(productId) != 'undefined') { params['product_id'] = productId; } params['uri'] = $("input[name='page_uri']").val(); $(".blocks").sortable({ placeholder: "sortable-placeholder width", handle: ".sort", stop: function(e, ui) { self.saveOrder(params); } }); }, saveVideo: function(button) { var form = $(button).parents('.set-video:first'); var url = $(form).find("input[name='video_url']").val(); if (url == '') { return false; } button = $(button); var block = $(form).parents('.block:first'); button.data('html', button.html()).width(button.width()).html('<span class="spinner"></span>'); var self = this; var params = self.prepareData(block); params['video_url'] = url; $.post('user/templates/saveblock', params, function(response) { button.html(button.data('html')); if (response != '') { block.attr('attr-content', response); } url = self.parseVideoUrl(url); if (url != '') { $('.player').html('<iframe src="' + url + '" width="480" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'); } }); }, parseVideoUrl: function(url) { if (url.indexOf('youtube.com') != -1 || url.indexOf('youtu.be') != -1) { if (url.indexOf('/embed') == -1) { if (url.indexOf('youtu.be') != -1) { var parts = url.split('youtu.be/'); var videoId = parts[1]; } else { var parts = url.split('?')[1].split('&'); for (var key in parts) { var part = parts[key]; var keyVal = part.split('='); if (keyVal[0] == 'v') { var videoId = keyVal[1]; } } } url = 'http://www.youtube.com/embed/' + videoId; } } else if (url.indexOf('vimeo.com') != -1) { var videoId = url.split('vimeo.com/')[1]; url = 'http://player.vimeo.com/video/' + videoId; } url = document.location.protocol ? url.replace('http:', 'https:') : url.replace('https:', 'http:'); return url; } }; $(document).ready(function() { editor.init(); }); })();
[+]
..
[+]
sample_images
[-] ssultils.js
[edit]
[-] dialog.js
[edit]
[-] colorpicker.js
[edit]
[-] script.js
[edit]
[+]
libraries
[-] ui.dbfilter-editing.js
[edit]
[-] stgrid.js
[edit]
[-] ui.category-editing.js
[edit]
[-] forms.js
[edit]
[-] player.swf
[edit]
[-] language.js
[edit]
[-] im.js
[edit]
[-] terms_en.js
[edit]
[-] skinutils.js
[edit]
[-] create_page.js
[edit]
[-] ihover.js
[edit]
[-] builder.js
[edit]
[-] ui.tab-content.js
[edit]
[-] admin.js
[edit]
[-] ui.tab-editing.js
[edit]
[-] login.js
[edit]
[-] popup.js
[edit]
[-] ecommerce.js
[edit]
[-] stEditor.js
[edit]
[-] colorutils.js
[edit]
[-] livedemo.js
[edit]
[-] palette.js
[edit]
[+]
editor