Initial Commit
This commit is contained in:
107
web/revslider/assets/js/revslider.js
Normal file
107
web/revslider/assets/js/revslider.js
Normal file
@@ -0,0 +1,107 @@
|
||||
if (!String.prototype.endsWith) {
|
||||
String.prototype.endsWith = function(searchString, position) {
|
||||
var subjectString = this.toString();
|
||||
if (typeof position !== 'number' || !isFinite(position)
|
||||
|| Math.floor(position) !== position || position > subjectString.length) {
|
||||
position = subjectString.length;
|
||||
}
|
||||
position -= searchString.length;
|
||||
var lastIndex = subjectString.indexOf(searchString, position);
|
||||
return lastIndex !== -1 && lastIndex === position;
|
||||
};
|
||||
}
|
||||
|
||||
jQuery.getRevsliderScripts = function(arr, path) {
|
||||
var _arr = jQuery.map(arr, function(scr) {
|
||||
return jQuery.getScript( (path||"") + scr );
|
||||
});
|
||||
|
||||
_arr.push(jQuery.Deferred(function( deferred ){
|
||||
jQuery( deferred.resolve );
|
||||
}));
|
||||
|
||||
return jQuery.when.apply(jQuery, _arr);
|
||||
}
|
||||
|
||||
var Revslider = new function() {
|
||||
|
||||
var t = this;
|
||||
var cssSelector = '.revslider';
|
||||
var apiUrl = 'index.php?c=embed';
|
||||
var loadedAssets = [];
|
||||
|
||||
t.init = function() {
|
||||
if (jQuery('#revslider_script').length) {
|
||||
apiUrl = jQuery('#revslider_script').attr('src').replace('assets/js/revslider.js', '') + apiUrl;
|
||||
}
|
||||
|
||||
if (typeof punchgs != 'undefined')
|
||||
loadedAssets.push('jquery.themepunch.tools.min.js');
|
||||
if (typeof jQuery().revolution != 'undefined')
|
||||
loadedAssets.push('jquery.themepunch.revolution.min.js');
|
||||
if (typeof document.styleSheets != "undefined") {
|
||||
for (var i = 0; i < document.styleSheets.length; i++) {
|
||||
if (document.styleSheets[i].href && document.styleSheets[i].href.indexOf('settings.css') != -1) {
|
||||
loadedAssets.push('settings.css');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
initSliders();
|
||||
}
|
||||
|
||||
var initSliders = function() {
|
||||
jQuery(cssSelector).each(function(key, item) {
|
||||
loadSlider(item, key);
|
||||
});
|
||||
}
|
||||
|
||||
var loadSlider = function(placeholder, key, loaded) {
|
||||
var slider = jQuery(placeholder);
|
||||
jQuery.ajax({
|
||||
type: 'post',
|
||||
url: slider.data('api_url') ? slider.data('api_url') : apiUrl,
|
||||
dataType: 'json',
|
||||
data: {
|
||||
alias: slider.data('alias'),
|
||||
key: key
|
||||
},
|
||||
success: function(response) {
|
||||
var content = '',
|
||||
revsliderScripts = [];
|
||||
|
||||
if (typeof response.assets != 'undefined') {
|
||||
for (var i = 0; i < response.assets.length; i++) {
|
||||
if (loadedAssets.indexOf(response.assets[i].file) == -1) {
|
||||
if ( response.assets[i].file.endsWith('.js') ) {
|
||||
revsliderScripts.push(response.assets[i].file);
|
||||
} else {
|
||||
loadedAssets.push(response.assets[i].file);
|
||||
content += response.assets[i].include;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeof response.slider != 'undefined') {
|
||||
content += response.slider;
|
||||
}
|
||||
|
||||
jQuery.getRevsliderScripts(revsliderScripts).done(function() {
|
||||
slider.html(content);
|
||||
}).fail(function(xhr, error) {
|
||||
console.log('Revslider scripts load error:', error);
|
||||
if (xhr.status == 200) {
|
||||
slider.html(content);
|
||||
eval(xhr.responseText);
|
||||
} else {
|
||||
slider.remove();
|
||||
};
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
jQuery(document).ready(Revslider.init);
|
||||
Reference in New Issue
Block a user