PATH:
home
/
letacommog
/
letaweb
/
admin
/
modules
/
slick
define(['module/base','module/base_structure'],function(base,base_structure) { return createModuleDefinition([base,base_structure], function($window, pageEdit,pageEdit_layout,pageEdit_ddManager,$q) { this.initializeData = {slide_count:3, settings: {autoplay:false,autoplaySpeed:3000,arrows:true, dots:false,draggable:true,infinite:false,pauseOnHover:true,pauseOnDotsHover:true,rtl:false} }; this.loadElement = function(element) { this._loadElement(element); var slide_count = 0; jQuery(element).children('.slider').children('.slick-list').children('.slick-track').children('.item').each(function(i) { slide_count++; }); this.module_data = this.module_data || {}; this.module_data.slide_count = slide_count; this.module_data.settings = this.module_data.settings || {}; var that = this; this.checkEmptySlide(); }; this.checkEmptySlide = function() { var element = this.getElement(); element.children('.slider').children('.slick-list').children('.slick-track').children('.item').each(function(i) { pageEdit_layout.scanEmptyRow(this); if(jQuery(this).children().length == 0) { var dumprow = pageEdit_layout.create_row_helper(); jQuery(this).append(dumprow); } }); element.children('.slider').children('.slick-list').children('.slick-track').children('.item').children('.'+pageEdit_layout.row_class).each(function(i) { pageEdit_layout.createRow(this); }); try { var currentSlide = element.children('.slider').slick('getSlick'); element.children('.slider').slick('slickSetOption','draggable', false,true); var $slideTrack = currentSlide.$slideTrack; jQuery('[draggable!=true]',$slideTrack).off('dragstart'); } catch(e) { } }; this.getStructure= function() { var s = this._getStructure(); s.slicks = {}; var element = this.getElement(); element = jQuery(element); element.children('.slider').children('.slick-list').children('.slick-track').children('.item').each(function(i) { s.slicks[i] = {index:i}; var zones_structure = pageEdit.getInnerZoneStructure(this); s.slicks[i].rows = zones_structure.rows; }); return s; }; this.getData = function(data) { var t = jQuery(this.getElement()); var slides = []; var that = this; t.children('.slider').children('.slick-list').children('.slick-track').children('.item').each(function(i) { slides[i] = i; }); var data = this.module_data; data.slides = slides; return data; }; this.insert = function(dropInfo) { var insert_point = dropInfo.node; var pos = dropInfo.direction; var insertPlacement = this.createInsertPlacement(insert_point, pos, dropInfo); this.element = insertPlacement; var defered = $q.defer(); var e = this.insertSlider(); this.loadElement(insertPlacement); defered.resolve(e); return defered.promise; }; this.insertSlider = function() { var element = this.getElement(); element = jQuery(element); var data = this.initializeData; var slider = jQuery('<div class="slider items"/>'); element.append(slider); for(var i = 1;i <= data.slide_count;i++) { var item = jQuery('<div class="item"/>'); slider.append(item); var dumprow = pageEdit_layout.create_row_helper(); item.append(dumprow); } slider.slick(data.settings); return element; }; this.addSlide = function() { var t = this.getElement(); var item = jQuery('<div class="item"/>'); t.children('.slider').slick('slickAdd', item); var dumprow = pageEdit_layout.create_row_helper(); item.append(dumprow); }; this.removeSlide = function(index) { var t = this.getElement(); t.children('.slider').slick('slickRemove', index); }; this.playSlick = function(pause) { pause=pause||false; var t = this.getElement(); var slick = t.children('.slider'); if(pause) { slick.slick('slickPause'); } else slick.slick('slickPlay'); }; this.handleDragEvent = function(event, ui) { var element = this.getElement(); var child_drop = false; element.children('.slider').children('.slick-list').children('.slick-track').children('.item').children('.' +pageEdit_layout.row_class).each(function(i) { if(pageEdit_ddManager.inDragHandlerRegion(this)) child_drop = true; }); if(!child_drop) this._handleDragEvent(event, ui); }; this.changeSettings = function(settings,refresh) { var none_boolean_values = {autoplaySpeed:1,speed:1,slidesPerRow:1,slidesToShow:1,slidesToScroll:1}; refresh=refresh||0; var t = this.getElement(); var slick = t.children('.slider'); for(var i in settings) { if(!settings.hasOwnProperty(i)) continue; if(none_boolean_values[i]==1) slick.slick('slickSetOption', i, settings[i],refresh); else slick.slick('slickSetOption', i, settings[i]==1,refresh); } }; this.copyDataTo = function(new_element) { new_element = jQuery(new_element); jQuery('.ww_module_info',new_element).remove(); var id = pageEdit.generateModuleId(); new_element.attr('id',id); var that = this; var items = new_element.children('.slider').children('.slick-list').children('.slick-track').children('.item'); items.children('.'+pageEdit_layout.row_class).each(function() { var moduleObj = pageEdit.getModule(this); if(!moduleObj) return; moduleObj.copyDataTo(this); }); items.unwrap().unwrap(); var slick = this.getElement().children('.slider').slick("getSlick"); new_element.children('.slider').children('.slick-next').remove(); new_element.children('.slider').children('.slick-prev').remove(); var options = {infinite:false,easing:slick.options.easing,autoplaySpeed:slick.options.autoplaySpeed,speed:slick.options.speed,dots:slick.options.dots,fade:slick.options.fade,swipe:slick.options.swipe,autoplay:slick.options.autoplay,arrows:slick.options.arrows,pauseOnHover:slick.options.pauseOnHover,pauseOnDotsHover:slick.options.pauseOnDotsHover,draggable:slick.options.draggable}; new_element.children('.slider').removeClass('slick-initialized').slick(options); this._copyDataTo(new_element); }; this.controller = function($scope, $moduleInstance) { $scope.data.settings = $scope.data.settings || {}; $scope.data.settings.autoplaySpeed = parseInt($scope.data.settings.autoplaySpeed || 3000); $scope.data.settings.speed = parseInt($scope.data.settings.speed || 500); function buildRange(count) { var range = []; for(var i=0;i < count;i++) { range.push(i); } return range; } $scope.data.settings = $scope.data.settings || {}; $scope.data.slides = buildRange($moduleInstance.module_data.slide_count); $scope.deleteTab = function(index) { if($moduleInstance.module_data.slide_count== 1) return; $moduleInstance.removeSlide(index); $moduleInstance.module_data.slide_count--; $scope.data.slides = buildRange($moduleInstance.module_data.slide_count); } $scope.addTab = function() { $moduleInstance.addSlide(); $moduleInstance.module_data.slide_count++; $scope.data.slides = buildRange($moduleInstance.module_data.slide_count); } $scope.changeAutoplay = function() { if($scope.data.settings.autoplay==1) { $moduleInstance.playSlick(); } else $moduleInstance.playSlick(true); $scope.changeSetting(1); } $scope.changeSetting = function(refresh) { refresh=refresh||0; $moduleInstance.module_data.settings = $scope.data.settings; $moduleInstance.changeSettings($moduleInstance.module_data.settings,refresh==1); } }; }) });
[+]
..
[-] backend.js
[edit]
[-] frontend_class.php
[edit]
[-] backend.php
[edit]