Merge branch 'develop' into feature/RA-22-add-sites

This commit is contained in:
ostertun
2020-10-05 17:31:12 +02:00
10 changed files with 661 additions and 592 deletions

View File

@@ -1,9 +1,9 @@
<?php <?php
header('Content-Type: text/javascript'); header('Content-Type: text/javascript');
require_once(__DIR__ . '/../../server/config.php'); require_once(__DIR__ . '/../../server/config.php');
?> ?>
var loaderCount = 2; var loaderCount = 2;
@@ -29,17 +29,17 @@ $(window).on('load',function(){
$(document).ready(function(){ $(document).ready(function(){
'use strict' 'use strict'
var isAJAX = false; //Enables or disable AJAX page transitions and loading. var isAJAX = false; //Enables or disable AJAX page transitions and loading.
var isDevelopment = false; // Enables development mode. Clean cache & Stops BG & Highlights from changing defaults. var isDevelopment = false; // Enables development mode. Clean cache & Stops BG & Highlights from changing defaults.
function init_template(){ function init_template(){
//ADD YOUR CUSTOM JAVASCRIPT CODES HERE! //ADD YOUR CUSTOM JAVASCRIPT CODES HERE!
//Do not put inside HTML files. //Do not put inside HTML files.
//The init_template() function will be triggered when pages open. //The init_template() function will be triggered when pages open.
//Generating Dynamic Styles to decrease CSS size and execute faster loading times. //Generating Dynamic Styles to decrease CSS size and execute faster loading times.
var colorsArray = [ var colorsArray = [
//colors must be in HEX format. //colors must be in HEX format.
@@ -93,24 +93,24 @@ $(document).ready(function(){
["skype","#12A5F4"], ["skype","#12A5F4"],
["instagram","#e1306c"] ["instagram","#e1306c"]
]; ];
//Back Button Scroll Stop //Back Button Scroll Stop
//if ('scrollRestoration' in history) {history.scrollRestoration = 'manual';} //if ('scrollRestoration' in history) {history.scrollRestoration = 'manual';}
//Disable Page Jump on Empty Links. //Disable Page Jump on Empty Links.
$('a').on('click', function(){var attrs = $(this).attr('href'); if(attrs === '#'){return false;}}); $('a').on('click', function(){var attrs = $(this).attr('href'); if(attrs === '#'){return false;}});
//Adding Background for Gradient //Adding Background for Gradient
if(!$('.menu-hider').length){$('#page').append('<div class="menu-hider"><div>');} if(!$('.menu-hider').length){$('#page').append('<div class="menu-hider"><div>');}
/*Menu Extender Function*/ /*Menu Extender Function*/
$.fn.showMenu = function() {$(this).addClass('menu-active'); $('#footer-bar').addClass('footer-menu-hidden');setTimeout(function(){$('.menu-hider').addClass('menu-active');},250);$('body').addClass('modal-open')}; $.fn.showMenu = function() {$(this).addClass('menu-active'); $('#footer-bar').addClass('footer-menu-hidden');setTimeout(function(){$('.menu-hider').addClass('menu-active');},250);$('body').addClass('modal-open')};
$.fn.hideMenu = function() {$(this).removeClass('menu-active'); $('#footer-bar').removeClass('footer-menu-hidden');$('.menu-hider').removeClass('menu-active menu-active-clear');$('body').removeClass('modal-open')}; $.fn.hideMenu = function() {$(this).removeClass('menu-active'); $('#footer-bar').removeClass('footer-menu-hidden');$('.menu-hider').removeClass('menu-active menu-active-clear');$('body').removeClass('modal-open')};
//Add your programatically triggered menus here //Add your programatically triggered menus here
//Menu Required Variables //Menu Required Variables
var menu = $('.menu'), var menu = $('.menu'),
body = $('body'), body = $('body'),
@@ -123,21 +123,21 @@ $(document).ready(function(){
pageContent = $('.page-content'), pageContent = $('.page-content'),
headerAndContent = $('.header, .page-content, #footer-bar'), headerAndContent = $('.header, .page-content, #footer-bar'),
menuDeployer = $('a[data-menu]'); menuDeployer = $('a[data-menu]');
//Menu System //Menu System
menu.each(function(){ menu.each(function(){
var menuHeight = $(this).data('menu-height'); var menuHeight = $(this).data('menu-height');
var menuWidth = $(this).data('menu-width'); var menuWidth = $(this).data('menu-width');
var menuActive = $(this).data('menu-active'); var menuActive = $(this).data('menu-active');
if($(this).hasClass('menu-box-right')){$(this).css("width",menuWidth);} if($(this).hasClass('menu-box-right')){$(this).css("width",menuWidth);}
if($(this).hasClass('menu-box-left')){$(this).css("width",menuWidth);} if($(this).hasClass('menu-box-left')){$(this).css("width",menuWidth);}
if($(this).hasClass('menu-box-bottom')){$(this).css("height",menuHeight);} if($(this).hasClass('menu-box-bottom')){$(this).css("height",menuHeight);}
if($(this).hasClass('menu-box-top')){$(this).css("height",menuHeight);} if($(this).hasClass('menu-box-top')){$(this).css("height",menuHeight);}
if($(this).hasClass('menu-box-modal')){$(this).css({"height":menuHeight, "width":menuWidth});} if($(this).hasClass('menu-box-modal')){$(this).css({"height":menuHeight, "width":menuWidth});}
}); });
//Menu Deploy Click //Menu Deploy Click
menuDeployer.on('click',function(){ menuDeployer.on('click',function(){
menu.removeClass('menu-active'); menu.removeClass('menu-active');
menuHider.addClass('menu-active'); menuHider.addClass('menu-active');
@@ -147,23 +147,23 @@ $(document).ready(function(){
var menuWidth = menuID.data('menu-width'); var menuWidth = menuID.data('menu-width');
var menuHeight = menuID.data('menu-height'); var menuHeight = menuID.data('menu-height');
$('body').addClass('modal-open'); $('body').addClass('modal-open');
if(menuID.hasClass('menu-header-clear')){menuHider.addClass('menu-active-clear');} if(menuID.hasClass('menu-header-clear')){menuHider.addClass('menu-active-clear');}
function menuActivate(){menuID = 'menu-active' ? menuID.addClass('menu-active') : menuID.removeClass('menu-active');} function menuActivate(){menuID = 'menu-active' ? menuID.addClass('menu-active') : menuID.removeClass('menu-active');}
if(menuID.hasClass('menu-box-bottom')){$('#footer-bar').addClass('footer-menu-hidden');} if(menuID.hasClass('menu-box-bottom')){$('#footer-bar').addClass('footer-menu-hidden');}
if(menuEffect === "menu-parallax"){ if(menuEffect === "menu-parallax"){
if(menuID.hasClass('menu-box-bottom')){headerAndContent.css("transform", "translateY("+(menuHeight/5)*(-1)+"px)");} if(menuID.hasClass('menu-box-bottom')){headerAndContent.css("transform", "translateY("+(menuHeight/5)*(-1)+"px)");}
if(menuID.hasClass('menu-box-top')){headerAndContent.css("transform", "translateY("+(menuHeight/5)+"px)");} if(menuID.hasClass('menu-box-top')){headerAndContent.css("transform", "translateY("+(menuHeight/5)+"px)");}
if(menuID.hasClass('menu-box-left')){headerAndContent.css("transform", "translateX("+(menuWidth/5)+"px)");} if(menuID.hasClass('menu-box-left')){headerAndContent.css("transform", "translateX("+(menuWidth/5)+"px)");}
if(menuID.hasClass('menu-box-right')){headerAndContent.css("transform", "translateX("+(menuWidth/5)*(-1)+"px)");} if(menuID.hasClass('menu-box-right')){headerAndContent.css("transform", "translateX("+(menuWidth/5)*(-1)+"px)");}
} }
if(menuEffect === "menu-push"){ if(menuEffect === "menu-push"){
if(menuID.hasClass('menu-box-bottom')){headerAndContent.css("transform", "translateY("+(menuHeight)*(-1)+"px)");} if(menuID.hasClass('menu-box-bottom')){headerAndContent.css("transform", "translateY("+(menuHeight)*(-1)+"px)");}
if(menuID.hasClass('menu-box-top')){headerAndContent.css("transform", "translateY("+(menuHeight)+"px)");} if(menuID.hasClass('menu-box-top')){headerAndContent.css("transform", "translateY("+(menuHeight)+"px)");}
if(menuID.hasClass('menu-box-left')){headerAndContent.css("transform", "translateX("+(menuWidth)+"px)");} if(menuID.hasClass('menu-box-left')){headerAndContent.css("transform", "translateX("+(menuWidth)+"px)");}
if(menuID.hasClass('menu-box-right')){headerAndContent.css("transform", "translateX("+(menuWidth)*(-1)+"px)");} if(menuID.hasClass('menu-box-right')){headerAndContent.css("transform", "translateX("+(menuWidth)*(-1)+"px)");}
} }
if(menuEffect === "menu-push-full"){ if(menuEffect === "menu-push-full"){
if(menuID.hasClass('menu-box-left')){headerAndContent.css("transform", "translateX(100%)");} if(menuID.hasClass('menu-box-left')){headerAndContent.css("transform", "translateX(100%)");}
if(menuID.hasClass('menu-box-right')){headerAndContent.css("transform", "translateX(-100%)");} if(menuID.hasClass('menu-box-right')){headerAndContent.css("transform", "translateX(-100%)");}
} }
menuActivate(); menuActivate();
@@ -204,13 +204,13 @@ $(document).ready(function(){
setTimeout(function(){ setTimeout(function(){
if($('body').hasClass('detect-theme')){$('body').removeClass('detect-theme');} if($('body').hasClass('detect-theme')){$('body').removeClass('detect-theme');}
if($('body').hasClass('theme-light')){ if($('body').hasClass('theme-light')){
eraseCookie('sticky_dark_mode'); eraseCookie('sticky_dark_mode');
darkSwitch.prop('checked', false); darkSwitch.prop('checked', false);
createCookie('sticky_light_mode', true, 1); createCookie('sticky_light_mode', true, 1);
} }
if($('body').hasClass('theme-dark')){ if($('body').hasClass('theme-dark')){
eraseCookie('sticky_light_mode'); eraseCookie('sticky_light_mode');
darkSwitch.prop('checked', true); darkSwitch.prop('checked', true);
createCookie('sticky_dark_mode', true, 1); createCookie('sticky_dark_mode', true, 1);
} }
},150); },150);
@@ -222,7 +222,7 @@ $(document).ready(function(){
//Auto Dark Mode //Auto Dark Mode
function activateDarkMode(){$('body').removeClass('theme-light').addClass('theme-dark'); $('#dark-mode-detected').removeClass('disabled'); eraseCookie('sticky_light_mode'); createCookie('sticky_dark_mode', true, 1);} function activateDarkMode(){$('body').removeClass('theme-light').addClass('theme-dark'); $('#dark-mode-detected').removeClass('disabled'); eraseCookie('sticky_light_mode'); createCookie('sticky_dark_mode', true, 1);}
function activateLightMode(){$('body').removeClass('theme-dark').addClass('theme-light'); $('#dark-mode-detected').removeClass('disabled'); eraseCookie('sticky_dark_mode'); createCookie('sticky_light_mode', true, 1);} function activateLightMode(){$('body').removeClass('theme-dark').addClass('theme-light'); $('#dark-mode-detected').removeClass('disabled'); eraseCookie('sticky_dark_mode'); createCookie('sticky_light_mode', true, 1);}
function activateNoPreference(){$('#manual-mode-detected').removeClass('disabled');} function activateNoPreference(){$('#manual-mode-detected').removeClass('disabled');}
function setColorScheme() { function setColorScheme() {
const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches const isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches
@@ -244,19 +244,19 @@ $(document).ready(function(){
$('.footer-bar-2 .active-nav, .footer-bar-4 .active-nav, .footer-bar-5 .active-nav').append('<strong></strong>') $('.footer-bar-2 .active-nav, .footer-bar-4 .active-nav, .footer-bar-5 .active-nav').append('<strong></strong>')
} }
} }
//Back Button in Header //Back Button in Header
var backButton = $('.back-button, [data-back-button]'); var backButton = $('.back-button, [data-back-button]');
backButton.on('click', function() { backButton.on('click', function() {
window.history.go(-1); window.history.go(-1);
//return false; //return false;
}); });
//Copyright Year //Copyright Year
var copyrightYear = $('.copyright-year, #copyright-year'); var copyrightYear = $('.copyright-year, #copyright-year');
var dteNow = new Date(); var intYear = dteNow.getFullYear(); var dteNow = new Date(); var intYear = dteNow.getFullYear();
copyrightYear.html(intYear); copyrightYear.html(intYear);
//Back to top Badge //Back to top Badge
var backToTop = $('.back-to-top, [data-back-to-top], .back-to-top-badge, .back-to-top-icon'), var backToTop = $('.back-to-top, [data-back-to-top], .back-to-top-badge, .back-to-top-icon'),
backToTopBadge = $('.back-to-top-badge, .back-to-top-icon'); backToTopBadge = $('.back-to-top-badge, .back-to-top-icon');
@@ -293,7 +293,7 @@ $(document).ready(function(){
show_back_to_top_badge(); show_back_to_top_badge();
show_scroll_ad(); show_scroll_ad();
$('.header-auto-show').addClass('header-active'); $('.header-auto-show').addClass('header-active');
} }
if (footer_reached == true){ if (footer_reached == true){
hide_back_to_top_badge(); hide_back_to_top_badge();
hide_scroll_ad(); hide_scroll_ad();
@@ -333,10 +333,10 @@ $(document).ready(function(){
if(tab.length){activate_tabs()} if(tab.length){activate_tabs()}
//Text Resizer //Text Resizer
$(".text-size-increase").click(function() {$(".text-size-changer *").css("font-size","+=1");}); $(".text-size-increase").click(function() {$(".text-size-changer *").css("font-size","+=1");});
$(".text-size-decrease").click(function() {$(".text-size-changer *").css("font-size","-=1");}); $(".text-size-decrease").click(function() {$(".text-size-changer *").css("font-size","-=1");});
$(".text-size-default").click(function() {$(".text-size-changer *").css("font-size", "");}); $(".text-size-default").click(function() {$(".text-size-changer *").css("font-size", "");});
//Search Menu Functions //Search Menu Functions
function search_menu(){ function search_menu(){
$('[data-search]').on('keyup', function() { $('[data-search]').on('keyup', function() {
@@ -387,15 +387,15 @@ $(document).ready(function(){
//Owl Carousel Sliders //Owl Carousel Sliders
setTimeout(function(){ setTimeout(function(){
$('.user-slider').owlCarousel({loop:false, margin:20, nav:false, lazyLoad:true, items:1, autoplay: false, dots:false, autoplayTimeout:4000}); $('.user-slider').owlCarousel({loop:false, margin:20, nav:false, lazyLoad:true, items:1, autoplay: false, dots:false, autoplayTimeout:4000});
$('.single-slider').owlCarousel({loop:true, margin:20, nav:false, lazyLoad:true, items:1, autoplay: true, autoplayTimeout:4000}); $('.single-slider').owlCarousel({loop:true, margin:20, nav:false, lazyLoad:true, items:1, autoplay: true, autoplayTimeout:4000});
$('.cover-slider').owlCarousel({loop:true, margin:0, nav:false, lazyLoad:true, items:1, autoplay: true, autoplayTimeout:6000}); $('.cover-slider').owlCarousel({loop:true, margin:0, nav:false, lazyLoad:true, items:1, autoplay: true, autoplayTimeout:6000});
$('.double-slider').owlCarousel({loop:true, margin:20, nav:false, lazyLoad:false, items:2, autoplay: true, autoplayTimeout:4000}); $('.double-slider').owlCarousel({loop:true, margin:20, nav:false, lazyLoad:false, items:2, autoplay: true, autoplayTimeout:4000});
$('.task-slider').owlCarousel({loop:true, margin:20, nav:false, stagePadding:50, lazyLoad:true, items:2, autoplay: false, autoplayTimeout:4000}); $('.task-slider').owlCarousel({loop:true, margin:20, nav:false, stagePadding:50, lazyLoad:true, items:2, autoplay: false, autoplayTimeout:4000});
$('.next-slide, .next-slide-arrow, .next-slide-text, .cover-next').on('click',function(){$(this).parent().find('.owl-carousel').trigger('next.owl.carousel');}); $('.next-slide, .next-slide-arrow, .next-slide-text, .cover-next').on('click',function(){$(this).parent().find('.owl-carousel').trigger('next.owl.carousel');});
$('.prev-slide, .prev-slide-arrow, .prev-slide-text, .cover-prev').on('click',function(){$(this).parent().find('.owl-carousel').trigger('prev.owl.carousel');}); $('.prev-slide, .prev-slide-arrow, .prev-slide-text, .cover-prev').on('click',function(){$(this).parent().find('.owl-carousel').trigger('prev.owl.carousel');});
$('.next-slide-user').on('click',function(){$(this).closest('.owl-carousel').trigger('next.owl.carousel');}); $('.next-slide-user').on('click',function(){$(this).closest('.owl-carousel').trigger('next.owl.carousel');});
$('.prev-slide-user').on('click',function(){$(this).closest('.owl-carousel').trigger('prev.owl.carousel');}); $('.prev-slide-user').on('click',function(){$(this).closest('.owl-carousel').trigger('prev.owl.carousel');});
},10); },10);
setTimeout(function(){ setTimeout(function(){
$('.owl-prev, .owl-next').addClass('bg-highlight'); $('.owl-prev, .owl-next').addClass('bg-highlight');
@@ -428,20 +428,20 @@ $(document).ready(function(){
//Toast, Snackbars and Notifications //Toast, Snackbars and Notifications
$('[data-toast]').on('click',function(){ $('[data-toast]').on('click',function(){
$('.toast, .snackbar-toast, .notification').toast('hide'); $('.toast, .snackbar-toast, .notification').toast('hide');
$('#'+$(this).data('toast')).toast('show'); $('#'+$(this).data('toast')).toast('show');
return false; return false;
}); });
$('[data-dismiss]').on('click',function(){ $('[data-dismiss]').on('click',function(){
var thisData = $(this).data('dismiss'); var thisData = $(this).data('dismiss');
$('#'+thisData).toast('hide'); $('#'+thisData).toast('hide');
}); });
//Tooltips //Tooltips
$(function () { $(function () {
$('[data-toggle="tooltip"]').tooltip() $('[data-toggle="tooltip"]').tooltip()
}) })
//Cancel Collapse Jump on Click //Cancel Collapse Jump on Click
if($('[data-toggle="collapse"]').length){ if($('[data-toggle="collapse"]').length){
$('[data-toggle="collapse"]').on('click',function(e){ $('[data-toggle="collapse"]').on('click',function(e){
@@ -467,10 +467,10 @@ $(document).ready(function(){
$('#'+thisID).prop('checked', false); $('#'+thisID).prop('checked', false);
} else { } else {
$('#'+thisID).prop('checked', true); $('#'+thisID).prop('checked', true);
} }
}) })
//Working Hours //Working Hours
var businessHours = $('.business-hours'); var businessHours = $('.business-hours');
function activate_business_hours(){ function activate_business_hours(){
if(businessHours.length){ if(businessHours.length){
@@ -501,7 +501,7 @@ $(document).ready(function(){
}, },
openClass:"bg-green1-dark is-business-opened", openClass:"bg-green1-dark is-business-opened",
closedClass:"bg-red2-dark is-business-closed" closedClass:"bg-red2-dark is-business-closed"
}); });
if(businessHours.hasClass('is-business-opened')){ if(businessHours.hasClass('is-business-opened')){
$('.show-business-opened').removeClass('disabled'); $('.show-business-opened').removeClass('disabled');
$('.show-business-closed').addClass('disabled'); $('.show-business-closed').addClass('disabled');
@@ -540,7 +540,7 @@ $(document).ready(function(){
})(document, window.navigator, "standalone") })(document, window.navigator, "standalone")
} }
ath(); ath();
//Add to Home Banners //Add to Home Banners
$('.simulate-android-badge').on('click',function(){$('.add-to-home').removeClass('add-to-home-ios').addClass('add-to-home-visible add-to-home-android');}); $('.simulate-android-badge').on('click',function(){$('.add-to-home').removeClass('add-to-home-ios').addClass('add-to-home-visible add-to-home-android');});
$('.simulate-iphone-badge').on('click',function(){$('.add-to-home').removeClass('add-to-home-android').addClass('add-to-home-visible add-to-home-ios');}); $('.simulate-iphone-badge').on('click',function(){$('.add-to-home').removeClass('add-to-home-android').addClass('add-to-home-visible add-to-home-ios');});
@@ -549,16 +549,16 @@ $(document).ready(function(){
$('.simulate-ios-banner').on('click',function(){$('#menu-install-pwa-ios, .menu-hider').addClass('menu-active')}) $('.simulate-ios-banner').on('click',function(){$('#menu-install-pwa-ios, .menu-hider').addClass('menu-active')})
//Extending Card Features //Extending Card Features
function card_extender(){ function card_extender(){
/*Set Page Content to Min 100vh*/ /*Set Page Content to Min 100vh*/
if($('.is-on-homescreen').length){ if($('.is-on-homescreen').length){
var windowHeight = screen.height; var windowHeight = screen.height;
$('.page-content, #page').css('min-height', windowHeight); $('.page-content, #page').css('min-height', windowHeight);
} }
if(!$('.is-on-homescreen').length){ if(!$('.is-on-homescreen').length){
var windowHeight = window.innerHeight var windowHeight = window.innerHeight
$('.page-content, #page').css('min-height', windowHeight); $('.page-content, #page').css('min-height', windowHeight);
} }
$('[data-card-height]').each(function(){ $('[data-card-height]').each(function(){
var cardHeight = $(this).data('card-height'); var cardHeight = $(this).data('card-height');
@@ -567,8 +567,8 @@ $(document).ready(function(){
$(this).css('height', cardHeight); $(this).css('height', cardHeight);
if(cardHeight == "cover"){ if(cardHeight == "cover"){
if(header.length && menuFooter.length){ if(header.length && menuFooter.length){
$(this).css('height', windowHeight -headerHeight - footerHeight) $(this).css('height', windowHeight -headerHeight - footerHeight)
$('.map-full, .map-full iframe').css('height', windowHeight - headerHeight - footerHeight +14) $('.map-full, .map-full iframe').css('height', windowHeight - headerHeight - footerHeight +14)
} else { } else {
$(this).css('height', windowHeight) $(this).css('height', windowHeight)
$('.map-full, .map-full iframe').css('height', windowHeight) $('.map-full, .map-full iframe').css('height', windowHeight)
@@ -581,20 +581,20 @@ $(document).ready(function(){
$(window).resize(function(){ $(window).resize(function(){
card_extender(); card_extender();
}); });
//Show Map //Show Map
$('.show-map, .hide-map').on('click',function(){ $('.show-map, .hide-map').on('click',function(){
$('.map-full .caption').toggleClass('deactivate-map'); $('.map-full .caption').toggleClass('deactivate-map');
$('.map-but-1, .map-but-2').toggleClass('deactivate-map'); $('.map-but-1, .map-but-2').toggleClass('deactivate-map');
$('.map-full .hide-map').toggleClass('activate-map'); $('.map-full .hide-map').toggleClass('activate-map');
}); });
//Card Hovers //Card Hovers
$('.card-scale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-scale-image');}); $('.card-scale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-scale-image');});
$('.card-grayscale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-grayscale-image');}); $('.card-grayscale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-grayscale-image');});
$('.card-rotate').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-rotate-image');}); $('.card-rotate').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-rotate-image');});
$('.card-blur').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-blur-image');}); $('.card-blur').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('card-blur-image');});
$('.card-hide').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('.card-center, .card-bottom, .card-top, .card-overlay').toggleClass('card-hide-image');}); $('.card-hide').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('.card-center, .card-bottom, .card-top, .card-overlay').toggleClass('card-hide-image');});
@@ -605,7 +605,7 @@ $(document).ready(function(){
var readingSeconds = readingWords % 60 var readingSeconds = readingWords % 60
$('.reading-progress-words').append(readingWords); $('.reading-progress-words').append(readingWords);
$('.reading-progress-time').append(readingMinutes + ':' + readingSeconds); $('.reading-progress-time').append(readingMinutes + ':' + readingSeconds);
}); });
//Timed Ads //Timed Ads
if($('[data-auto-show-ad]').length){ if($('[data-auto-show-ad]').length){
@@ -614,7 +614,7 @@ $(document).ready(function(){
$('[data-auto-show-ad]').trigger('click'); $('[data-auto-show-ad]').trigger('click');
},time*1000); },time*1000);
} }
$('[data-timed-ad]').on('click', function(){ $('[data-timed-ad]').on('click', function(){
var counter = $(this).data('timed-ad'); var counter = $(this).data('timed-ad');
var adwin = $('#'+$(this).data('menu')); var adwin = $('#'+$(this).data('menu'));
menuHider.addClass('no-click'); menuHider.addClass('no-click');
@@ -686,10 +686,10 @@ $(document).ready(function(){
}) })
//Caption Hovers //Caption Hovers
$('.caption-scale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-scale-image');}); $('.caption-scale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-scale-image');});
$('.caption-grayscale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-grayscale-image');}); $('.caption-grayscale').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-grayscale-image');});
$('.caption-rotate').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-rotate-image');}); $('.caption-rotate').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-rotate-image');});
$('.caption-blur').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-blur-image');}); $('.caption-blur').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('img').toggleClass('caption-blur-image');});
$('.caption-hide').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('.caption-center, .caption-bottom, .caption-top, .caption-overlay').toggleClass('caption-hide-image');}); $('.caption-hide').unbind().bind('mouseenter mouseleave touchstart touchend',function(){$(this).find('.caption-center, .caption-bottom, .caption-top, .caption-overlay').toggleClass('caption-hide-image');});
//File Upload //File Upload
@@ -733,8 +733,8 @@ $(document).ready(function(){
//Age Verification //Age Verification
var checkAge = $('.check-age'); var checkAge = $('.check-age');
function activate_age_checker(){ function activate_age_checker(){
console.log('active'); log('active');
$(".check-age").on('click',function(){ $(".check-age").on('click',function(){
var dateBirghtDay = $("#date-birth-day").val(); var dateBirghtDay = $("#date-birth-day").val();
var dateBirthMonth = $("#date-birth-month").val(); var dateBirthMonth = $("#date-birth-month").val();
var dateBirthYear = $("#date-birth-year").val(); var dateBirthYear = $("#date-birth-year").val();
@@ -747,7 +747,7 @@ $(document).ready(function(){
setDate.setFullYear(mydate.getFullYear() + age, dateBirthMonth-1, dateBirghtDay); setDate.setFullYear(mydate.getFullYear() + age, dateBirthMonth-1, dateBirghtDay);
if ((currdate - setDate) > 0){ if ((currdate - setDate) > 0){
console.log("above 18"); log("above 18");
$('#menu-age').removeClass('menu-active') $('#menu-age').removeClass('menu-active')
$('#menu-age-okay').addClass('menu-active'); $('#menu-age-okay').addClass('menu-active');
}else{ }else{
@@ -756,7 +756,7 @@ $(document).ready(function(){
} }
return true; return true;
}); });
} }
if(checkAge.length){activate_age_checker();} if(checkAge.length){activate_age_checker();}
@@ -816,11 +816,11 @@ $(document).ready(function(){
var spanValue = $(this).parent().find('span').text(); var spanValue = $(this).parent().find('span').text();
if($(this).val() != spanValue && $(this).val() != ""){ if($(this).val() != spanValue && $(this).val() != ""){
$(this).parent().find('span').addClass('input-style-1-active').removeClass('input-style-1-inactive'); $(this).parent().find('span').addClass('input-style-1-active').removeClass('input-style-1-inactive');
} }
if($(this).val() === ""){ if($(this).val() === ""){
$(this).parent().find('span').removeClass('input-style-1-inactive input-style-1-active'); $(this).parent().find('span').removeClass('input-style-1-inactive input-style-1-active');
} }
}); });
$('.input-required input, .input-required select, .input-required textarea').on('focusout',function(){ $('.input-required input, .input-required select, .input-required textarea').on('focusout',function(){
var spanValue = $(this).parent().find('span').text(); var spanValue = $(this).parent().find('span').text();
if($(this).val() === ""){ if($(this).val() === ""){
@@ -833,17 +833,17 @@ $(document).ready(function(){
if(getValue === "default"){ if(getValue === "default"){
$(this).parent().find('em').html(invalidIcon) $(this).parent().find('em').html(invalidIcon)
$(this).parent().find('span').removeClass('input-style-1-inactive input-style-1-active'); $(this).parent().find('span').removeClass('input-style-1-inactive input-style-1-active');
} }
if(getValue != "default"){ if(getValue != "default"){
$(this).parent().find('em').html(validIcon) $(this).parent().find('em').html(validIcon)
} }
}); });
$('.input-required input[type="email"]').on('focusout',function(){if (emailValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}}); $('.input-required input[type="email"]').on('focusout',function(){if (emailValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}});
$('.input-required input[type="tel"]').on('focusout',function(){if (phoneValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}}); $('.input-required input[type="tel"]').on('focusout',function(){if (phoneValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}});
$('.input-required input[type="password"]').on('focusout',function(){if (passwordValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}}); $('.input-required input[type="password"]').on('focusout',function(){if (passwordValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}});
$('.input-required input[type="url"]').on('focusout',function(){if (urlValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}}); $('.input-required input[type="url"]').on('focusout',function(){if (urlValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}});
$('.input-required input[type="name"]').on('focusout',function(){if (nameValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}}); $('.input-required input[type="name"]').on('focusout',function(){if (nameValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}});
$('.input-required textarea').on('focusout',function(){if (textareaValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}}); $('.input-required textarea').on('focusout',function(){if (textareaValidator.test($(this).val())){$(this).parent().find('em').html(validIcon);}else{if($(this).val() === ""){$(this).parent().find('em').html("(required)");}else{$(this).parent().find('em').html(invalidIcon);}}});
//Set Today Date to Date Inputs //Set Today Date to Date Inputs
Date.prototype.toDateInputValue = (function() { Date.prototype.toDateInputValue = (function() {
@@ -880,7 +880,7 @@ $(document).ready(function(){
$('.online-message').addClass('online-message-active'); $('.online-message').addClass('online-message-active');
$('.offline-message').removeClass('offline-message-active'); $('.offline-message').removeClass('offline-message-active');
setTimeout(function(){$('.online-message').removeClass('online-message-active');},2000); setTimeout(function(){$('.online-message').removeClass('online-message-active');},2000);
} }
$('.simulate-offline').on('click',function(){isOffline();}) $('.simulate-offline').on('click',function(){isOffline();})
$('.simulate-online').on('click',function(){isOnline();}) $('.simulate-online').on('click',function(){isOnline();})
@@ -889,11 +889,11 @@ $(document).ready(function(){
function updateOnlineStatus(event) { function updateOnlineStatus(event) {
var condition = navigator.onLine ? "online" : "offline"; var condition = navigator.onLine ? "online" : "offline";
isOnline(); isOnline();
console.log( 'Connection: Online'); log( 'Connection: Online');
} }
function updateOfflineStatus(event) { function updateOfflineStatus(event) {
isOffline(); isOffline();
console.log( 'Connection: Offline'); log( 'Connection: Offline');
} }
window.addEventListener('online', updateOnlineStatus); window.addEventListener('online', updateOnlineStatus);
window.addEventListener('offline', updateOfflineStatus); window.addEventListener('offline', updateOfflineStatus);
@@ -901,14 +901,14 @@ $(document).ready(function(){
//QR Generator //QR Generator
var generateQR = $('.generate-qr-result, .generate-qr-auto'); var generateQR = $('.generate-qr-result, .generate-qr-auto');
function activate_qr_generator(){ function activate_qr_generator(){
//QR Code Generator //QR Code Generator
var qr_auto_link = window.location.href; var qr_auto_link = window.location.href;
var qr_api_address = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data='; var qr_api_address = 'https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=';
$('.generate-qr-auto').attr('src', qr_api_address+qr_auto_link) $('.generate-qr-auto').attr('src', qr_api_address+qr_auto_link)
$('.generate-qr-button').on('click',function(){ $('.generate-qr-button').on('click',function(){
if($(this).parent().find('.fa').hasClass('fa-exclamation-triangle')){ if($(this).parent().find('.fa').hasClass('fa-exclamation-triangle')){
console.log('Invalid URL'); log('Invalid URL');
} else { } else {
var get_qr_url = $('.generate-qr-input').val(); var get_qr_url = $('.generate-qr-input').val();
if(!get_qr_url == ''){ if(!get_qr_url == ''){
@@ -960,10 +960,10 @@ $(document).ready(function(){
}); });
//Filterable //Filterable
if($('.gallery-filter').length > 0){$('.gallery-filter').filterizr(); $('.gallery-filter-active').addClass('color-highlight');} if($('.gallery-filter').length > 0){$('.gallery-filter').filterizr(); $('.gallery-filter-active').addClass('color-highlight');}
$('.gallery-filter-controls li').on('click',function(){ $('.gallery-filter-controls li').on('click',function(){
$('.gallery-filter-controls li').removeClass('gallery-filter-active color-highlight'); $('.gallery-filter-controls li').removeClass('gallery-filter-active color-highlight');
$(this).addClass('gallery-filter-active color-highlight'); $(this).addClass('gallery-filter-active color-highlight');
}); });
//Gallery Views // Added in 2.0 //Gallery Views // Added in 2.0
@@ -982,7 +982,7 @@ $(document).ready(function(){
galleryViewControls.removeClass('color-highlight'); galleryViewControls.removeClass('color-highlight');
$(this).addClass('color-highlight'); $(this).addClass('color-highlight');
galleryViews.removeClass().addClass('gallery-views gallery-view-2'); galleryViews.removeClass().addClass('gallery-views gallery-view-2');
}); });
galleryView3.on('click',function(){ galleryView3.on('click',function(){
galleryViewControls.removeClass('color-highlight'); galleryViewControls.removeClass('color-highlight');
$(this).addClass('color-highlight'); $(this).addClass('color-highlight');
@@ -1064,7 +1064,7 @@ $(document).ready(function(){
}) })
}); });
//Charts //Charts
if($('.chart').length > 0){ if($('.chart').length > 0){
var loadJS = function(url, implementationCode, location){ var loadJS = function(url, implementationCode, location){
@@ -1075,7 +1075,7 @@ $(document).ready(function(){
location.appendChild(scriptTag); location.appendChild(scriptTag);
}; };
var call_charts_to_page = function(){ var call_charts_to_page = function(){
var walletChart = $('#wallet-chart'); var walletChart = $('#wallet-chart');
var pieChart = $('#pie-chart'); var pieChart = $('#pie-chart');
var doughnutChart = $('#doughnut-chart'); var doughnutChart = $('#doughnut-chart');
@@ -1100,9 +1100,9 @@ $(document).ready(function(){
legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},}, legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},
tooltips:{enabled:true}, animation:{duration:1500} tooltips:{enabled:true}, animation:{duration:1500}
} }
}); });
} }
if(pieChart.length){ if(pieChart.length){
var pieDemoChart = new Chart(pieChart, { var pieDemoChart = new Chart(pieChart, {
type: 'pie', type: 'pie',
@@ -1119,7 +1119,7 @@ $(document).ready(function(){
legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},}, legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},
tooltips:{enabled:true}, animation:{duration:1500} tooltips:{enabled:true}, animation:{duration:1500}
} }
}); });
} }
if(doughnutChart.length){ if(doughnutChart.length){
@@ -1138,7 +1138,7 @@ $(document).ready(function(){
legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},}, legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},
tooltips:{enabled:true}, animation:{duration:1500}, layout:{ padding: {bottom: 30}} tooltips:{enabled:true}, animation:{duration:1500}, layout:{ padding: {bottom: 30}}
} }
}); });
} }
if(polarChart.length){ if(polarChart.length){
@@ -1157,7 +1157,7 @@ $(document).ready(function(){
legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},}, legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},
tooltips:{enabled:true}, animation:{duration:1500}, layout:{ padding: {bottom: 30}} tooltips:{enabled:true}, animation:{duration:1500}, layout:{ padding: {bottom: 30}}
} }
}); });
} }
if (verticalChart.length){ if (verticalChart.length){
@@ -1182,7 +1182,7 @@ $(document).ready(function(){
legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},}, legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},
title: {display: false} title: {display: false}
} }
}); });
} }
if(horizontalChart.length){ if(horizontalChart.length){
@@ -1206,7 +1206,7 @@ $(document).ready(function(){
legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},}, legend: {display: true, position:'bottom', labels:{fontSize:13, padding:15,boxWidth:12},},
title: {display: false} title: {display: false}
} }
}); });
} }
if(lineChart.length){ if(lineChart.length){
@@ -1214,11 +1214,11 @@ $(document).ready(function(){
type: 'line', type: 'line',
data: { data: {
labels: [2000,2005,2010,2015,2010], labels: [2000,2005,2010,2015,2010],
datasets: [{ datasets: [{
data: [500,400,300,200,300], data: [500,400,300,200,300],
label: "Desktop Web", label: "Desktop Web",
borderColor: "#D8334A" borderColor: "#D8334A"
}, { }, {
data: [0,100,300,400,500], data: [0,100,300,400,500],
label: "Mobile Web", label: "Mobile Web",
borderColor: "#4A89DC" borderColor: "#4A89DC"
@@ -1234,11 +1234,11 @@ $(document).ready(function(){
} }
} }
loadJS('<?php echo SERVER_ADDR; ?>/client/scripts/charts.js', call_charts_to_page, document.body); loadJS('<?php echo SERVER_ADDR; ?>/client/scripts/charts.js', call_charts_to_page, document.body);
} }
//Local Error Message //Local Error Message
if (window.location.protocol === "file:"){$('a').on('mouseover',function(){console.log("You are seeing these errors because your file is on your local computer. For real life simulations please use a Live Server or a Local Server such as AMPPS or WAMPP or simulate a Live Preview using a Code Editor like http://brackets.io (it's 100% free) - PWA functions and AJAX Page Transitions will only work in these scenarios.");});} if (window.location.protocol === "file:"){$('a').on('mouseover',function(){log("You are seeing these errors because your file is on your local computer. For real life simulations please use a Live Server or a Local Server such as AMPPS or WAMPP or simulate a Live Preview using a Code Editor like http://brackets.io (it's 100% free) - PWA functions and AJAX Page Transitions will only work in these scenarios.");});}
//Style Generator //Style Generator
@@ -1248,21 +1248,21 @@ $(document).ready(function(){
//HEX to RGBA Converter //HEX to RGBA Converter
function HEXtoRGBA(hex){ function HEXtoRGBA(hex){
var c; var c;
if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){ if(/^#([A-Fa-f0-9]{3}){1,2}$/.test(hex)){
c= hex.substring(1).split(''); c= hex.substring(1).split('');
if(c.length== 3){c= [c[0], c[0], c[1], c[1], c[2], c[2]];} if(c.length== 3){c= [c[0], c[0], c[1], c[1], c[2], c[2]];}
c= '0x'+c.join(''); c= '0x'+c.join('');
return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',0.3)'; return 'rgba('+[(c>>16)&255, (c>>8)&255, c&255].join(',')+',0.3)';
} }
} }
function highlight_colors(){ function highlight_colors(){
var bodyColor = readCookie('sticky-color-scheme') var bodyColor = readCookie('sticky-color-scheme')
if(bodyColor == undefined){var bodyColor = $('body').data('highlight');} if(bodyColor == undefined){var bodyColor = $('body').data('highlight');}
var bodyBackground = readCookie('sticky-bg-scheme') var bodyBackground = readCookie('sticky-bg-scheme')
if(bodyBackground == undefined){var bodyBackground = $('body').data('background');} if(bodyBackground == undefined){var bodyBackground = $('body').data('background');}
var data = colorsArray.map(colorsArray => colorsArray[0]); var data = colorsArray.map(colorsArray => colorsArray[0]);
if (data.indexOf(bodyColor) > -1) { if (data.indexOf(bodyColor) > -1) {
var highlightLocated = data.indexOf(bodyColor) var highlightLocated = data.indexOf(bodyColor)
@@ -1282,7 +1282,7 @@ $(document).ready(function(){
$('.generated-background').append(bodyBG); $('.generated-background').append(bodyBG);
} }
} }
} }
highlight_colors(); highlight_colors();
//Change Highlight //Change Highlight
@@ -1306,7 +1306,7 @@ $(document).ready(function(){
$('body').append('<style class="generated-highlight"></style>') $('body').append('<style class="generated-highlight"></style>')
$('.generated-highlight').append(highlightColor, highlightBg, highlightNav, highlightBorder); $('.generated-highlight').append(highlightColor, highlightBg, highlightNav, highlightBorder);
} }
}); });
//Change Background //Change Background
$('[data-change-background]').on('click',function(changeColor){ $('[data-change-background]').on('click',function(changeColor){
@@ -1322,15 +1322,15 @@ $(document).ready(function(){
}); });
if (!generatedStyles.length){ if (!generatedStyles.length){
$('body').append('<style class="generated-styles"></style>'); $('body').append('<style class="generated-styles"></style>');
$('.generated-styles').append('/*Generated using JS for lower CSS file Size, Easier Editing & Faster Loading*/'); $('.generated-styles').append('/*Generated using JS for lower CSS file Size, Easier Editing & Faster Loading*/');
colorsArray.forEach(function (colorValue) {$('.generated-styles').append('.bg-'+colorValue[0]+'-light{ background-color: '+colorValue[1]+'!important; color:#FFFFFF!important;} .bg-'+colorValue[0]+'-light i, .bg-'+colorValue[0]+'-dark i{color:#FFFFFF;} .bg-'+colorValue[0]+'-dark{ background-color: '+colorValue[2]+'!important; color:#FFFFFF!important;} .border-'+colorValue[0]+'-light{ border-color:'+colorValue[1]+'!important;} .border-'+colorValue[0]+'-dark{ border-color:'+colorValue[2]+'!important;} .color-'+colorValue[0]+'-light{ color: '+colorValue[1]+'!important;} .color-'+colorValue[0]+'-dark{ color: '+colorValue[2]+'!important;}');}); colorsArray.forEach(function (colorValue) {$('.generated-styles').append('.bg-'+colorValue[0]+'-light{ background-color: '+colorValue[1]+'!important; color:#FFFFFF!important;} .bg-'+colorValue[0]+'-light i, .bg-'+colorValue[0]+'-dark i{color:#FFFFFF;} .bg-'+colorValue[0]+'-dark{ background-color: '+colorValue[2]+'!important; color:#FFFFFF!important;} .border-'+colorValue[0]+'-light{ border-color:'+colorValue[1]+'!important;} .border-'+colorValue[0]+'-dark{ border-color:'+colorValue[2]+'!important;} .color-'+colorValue[0]+'-light{ color: '+colorValue[1]+'!important;} .color-'+colorValue[0]+'-dark{ color: '+colorValue[2]+'!important;}');});
colorsArray.forEach(function (colorFadeValue) {$('.generated-styles').append('.bg-fade-'+colorFadeValue[0]+'-light{ background-color: '+ HEXtoRGBA(colorFadeValue[1]) + '!important; color:#FFFFFF;} .bg-fade-'+colorFadeValue[0]+'-light i, .bg-'+colorFadeValue[0]+'-dark i{color:#FFFFFF;} .bg-fade-'+colorFadeValue[0]+'-dark{ background-color: '+HEXtoRGBA(colorFadeValue[2])+'!important; color:#FFFFFF;} .border-fade-'+colorFadeValue[0]+'-light{ border-color:'+HEXtoRGBA(colorFadeValue[1])+'!important;} .border-fade-'+colorFadeValue[0]+'-dark{ border-color:'+HEXtoRGBA(colorFadeValue[2])+'!important;} .color-fade-'+colorFadeValue[0]+'-light{ color: '+HEXtoRGBA(colorFadeValue[1])+'!important;} .color-fade-'+colorFadeValue[0]+'-dark{ color: '+HEXtoRGBA(colorFadeValue[2])+'!important;}');}); colorsArray.forEach(function (colorFadeValue) {$('.generated-styles').append('.bg-fade-'+colorFadeValue[0]+'-light{ background-color: '+ HEXtoRGBA(colorFadeValue[1]) + '!important; color:#FFFFFF;} .bg-fade-'+colorFadeValue[0]+'-light i, .bg-'+colorFadeValue[0]+'-dark i{color:#FFFFFF;} .bg-fade-'+colorFadeValue[0]+'-dark{ background-color: '+HEXtoRGBA(colorFadeValue[2])+'!important; color:#FFFFFF;} .border-fade-'+colorFadeValue[0]+'-light{ border-color:'+HEXtoRGBA(colorFadeValue[1])+'!important;} .border-fade-'+colorFadeValue[0]+'-dark{ border-color:'+HEXtoRGBA(colorFadeValue[2])+'!important;} .color-fade-'+colorFadeValue[0]+'-light{ color: '+HEXtoRGBA(colorFadeValue[1])+'!important;} .color-fade-'+colorFadeValue[0]+'-dark{ color: '+HEXtoRGBA(colorFadeValue[2])+'!important;}');});
colorsArray.forEach(function (gradientValue) {$('.generated-styles').append('.bg-gradient-'+gradientValue[0]+'{background-image: linear-gradient(to bottom, '+gradientValue[1]+' 0, '+gradientValue[2]+' 100%)}')}); colorsArray.forEach(function (gradientValue) {$('.generated-styles').append('.bg-gradient-'+gradientValue[0]+'{background-image: linear-gradient(to bottom, '+gradientValue[1]+' 0, '+gradientValue[2]+' 100%)}')});
socialColorArray.forEach(function (socialColorValue) {$('.generated-styles').append('.bg-'+socialColorValue[0]+'{background-color:'+socialColorValue[1]+'!important; color:#FFFFFF;} .color-'+socialColorValue[0]+'{color:'+socialColorValue[1]+'!important;}')}); socialColorArray.forEach(function (socialColorValue) {$('.generated-styles').append('.bg-'+socialColorValue[0]+'{background-color:'+socialColorValue[1]+'!important; color:#FFFFFF;} .color-'+socialColorValue[0]+'{color:'+socialColorValue[1]+'!important;}')});
colorsArray.forEach(function (gradientBodyValue) {$('.generated-styles').append('.body-'+gradientBodyValue[0]+'{background-image: linear-gradient(to bottom, '+gradientBodyValue[1]+' 0, '+gradientBodyValue[3]+' 100%)}')}); colorsArray.forEach(function (gradientBodyValue) {$('.generated-styles').append('.body-'+gradientBodyValue[0]+'{background-image: linear-gradient(to bottom, '+gradientBodyValue[1]+' 0, '+gradientBodyValue[3]+' 100%)}')});
} }
function welcomeOk() { function welcomeOk() {
createCookie('sticky_welcome_banner', true, 1); createCookie('sticky_welcome_banner', true, 1);
$('#menu-welcome').hideMenu(); $('#menu-welcome').hideMenu();
@@ -1344,16 +1344,16 @@ $(document).ready(function(){
} }
$('#menu-welcome-a-okay').click(welcomeOk); $('#menu-welcome-a-okay').click(welcomeOk);
showWelcome(); showWelcome();
initRegatten(); initRegatten();
hideLoader(); hideLoader();
} }
//Activating all the plugins //Activating all the plugins
setTimeout(init_template, 0); setTimeout(init_template, 0);
//Activate AJAX Transitions //Activate AJAX Transitions
if(isAJAX === true){ if(isAJAX === true){
$(function(){ $(function(){
'use strict'; 'use strict';
@@ -1361,7 +1361,7 @@ $(document).ready(function(){
prefetch: true, prefetch: true,
prefetchOn: 'mouseover', prefetchOn: 'mouseover',
cacheLength: 100, cacheLength: 100,
scroll: true, scroll: true,
blacklist: '.default-link', blacklist: '.default-link',
forms: 'contactForm', forms: 'contactForm',
onStart: { onStart: {
@@ -1378,7 +1378,7 @@ $(document).ready(function(){
render: function ($container, $newContent) { render: function ($container, $newContent) {
$container.removeClass('is-exiting');// Remove your CSS animation reversing class $container.removeClass('is-exiting');// Remove your CSS animation reversing class
$container.html($newContent);// Inject the new content $container.html($newContent);// Inject the new content
setTimeout(init_template, 0)//Timeout required to properly initiate all JS Functions. setTimeout(init_template, 0)//Timeout required to properly initiate all JS Functions.
$('#preloader').removeClass('preloader-hide'); $('#preloader').removeClass('preloader-hide');
} }
}, },
@@ -1406,5 +1406,5 @@ $(document).ready(function(){
caches.delete(cacheName); caches.delete(cacheName);
}); });
}); });
} }
}); });

View File

@@ -20,11 +20,11 @@ var getJSON = function(url, callback) {
callback(xhr.status, xhr.response); callback(xhr.status, xhr.response);
}; };
xhr.ontimeout = function () { xhr.ontimeout = function () {
console.log("getJSON: timeout"); log("getJSON: timeout");
callback(0, null); callback(0, null);
} }
xhr.onerror = function () { xhr.onerror = function () {
console.log("getJSON: error"); log("getJSON: error");
callback(0, null); callback(0, null);
} }
if (USER_ID != null) { if (USER_ID != null) {
@@ -76,7 +76,7 @@ function dbGetData(table, id = null) {
if (code == 200) { if (code == 200) {
resolve(data.data); resolve(data.data);
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); log("Something went wrong (HTTP " + code + ")");
fail(strings.error_network, 5000); fail(strings.error_network, 5000);
resolve([]); resolve([]);
} }
@@ -86,7 +86,7 @@ function dbGetData(table, id = null) {
if (code == 200) { if (code == 200) {
resolve(data.data); resolve(data.data);
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); log("Something went wrong (HTTP " + code + ")");
fail(strings.error_network, 5000); fail(strings.error_network, 5000);
resolve(null); resolve(null);
} }
@@ -108,7 +108,7 @@ function dbGetDataIndex(table, indexName, value) {
if (code == 200) { if (code == 200) {
resolve(data.data); resolve(data.data);
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); log("Something went wrong (HTTP " + code + ")");
fail(strings.error_network, 5000); fail(strings.error_network, 5000);
resolve([]); resolve([]);
} }
@@ -483,358 +483,262 @@ function sync() {
if (!canUseLocalDB) return false; if (!canUseLocalDB) return false;
if (syncInProgress > 0) return false; if (syncInProgress > 0) return false;
return new Promise(function(resolve) { var now = Math.floor(Date.now() / 1000);
var now = Math.floor(Date.now() / 1000);
db.transaction('update_times').objectStore('update_times').getAll().onsuccess = function (event) { db.transaction('update_times').objectStore('update_times').getAll().onsuccess = function (event) {
var localTimes = {}; var localTimes = {};
event.target.result.forEach(function (entry) { event.target.result.forEach(function (entry) {
localTimes[entry['table']] = entry['time']; localTimes[entry['table']] = entry['time'];
}); });
syncInProgress = 11; syncInProgress = 11;
var syncOkay = true; var syncOkay = true;
console.log("Sync Start"); log("Sync Start");
$('#i-sync').addClass('fa-spin'); $('#i-sync').addClass('fa-spin');
var interval = window.setInterval(function () { var interval = window.setInterval(function () {
if (syncInProgress <= 0) { if (syncInProgress <= 0) {
window.clearInterval(interval); window.clearInterval(interval);
if (syncOkay) { if (syncOkay) {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times'); var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'last_sync', time: now }); osUpdateTimes.put({ table: 'last_sync', time: now });
}
console.log("Sync Stop");
setTimeout(function(){
$('#i-sync').removeClass('fa-spin');
}, 500);
if (typeof onAfterSync === 'function') {
onAfterSync();
}
runPageScript();
resolve();
} }
}, 100); log("Sync Stop");
setTimeout(function(){
$('#i-sync').removeClass('fa-spin');
}, 500);
getJSON(QUERY_URL + 'get_update_time', function (code, serverTimes) { if (typeof onAfterSync === 'function') {
if (code == 200) { onAfterSync();
}
removeSyncInfoToPreloader();
runPageScript();
}
}, 100);
// CLUBS getJSON(QUERY_URL + 'get_update_time', function (code, serverTimes) {
if (localTimes['clubs'] < serverTimes['clubs']) { if (code == 200) {
getJSON(QUERY_URL + 'get_clubs?changed-after=' + localTimes['clubs'], function (code, data) {
if (code == 200) {
var os = db.transaction('clubs', 'readwrite').objectStore('clubs');
console.log(data);
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'clubs', time: serverTimes['clubs'] });
syncInProgress --;
}
};
} else {
console.log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
}
});
} else {
syncInProgress --;
}
// BOATS // CLUBS
if (localTimes['boats'] < serverTimes['boats']) { if (localTimes['clubs'] < serverTimes['clubs']) {
getJSON(QUERY_URL + 'get_boats?changed-after=' + localTimes['boats'], function (code, data) { getJSON(QUERY_URL + 'get_clubs?changed-after=' + localTimes['clubs'], function (code, data) {
if (code == 200) { if (code == 200) {
var os = db.transaction('boats', 'readwrite').objectStore('boats'); var os = db.transaction('clubs', 'readwrite').objectStore('clubs');
console.log(data); data.data.forEach(function (entry) {
data.data.forEach(function (entry) { os.put(entry);
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'boats', time: serverTimes['boats'] });
syncInProgress --;
}
};
} else {
console.log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
}
});
} else {
syncInProgress --;
}
// SAILORS
if (localTimes['sailors'] < serverTimes['sailors']) {
getJSON(QUERY_URL + 'get_sailors?changed-after=' + localTimes['sailors'], function (code, data) {
if (code == 200) {
var os = db.transaction('sailors', 'readwrite').objectStore('sailors');
console.log(data);
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'sailors', time: serverTimes['sailors'] });
syncInProgress --;
}
};
} else {
console.log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
}
});
} else {
syncInProgress --;
}
// REGATTAS
if (localTimes['regattas'] < serverTimes['regattas']) {
getJSON(QUERY_URL + 'get_regattas?changed-after=' + localTimes['regattas'], function (code, data) {
if (code == 200) {
var os = db.transaction('regattas', 'readwrite').objectStore('regattas');
console.log(data);
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = async function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
// update years
var regattas = await dbGetData('regattas');
var years = {};
for (id in regattas) {
var entry = regattas[id];
var date = parseDate(entry['date']);
var y = date.getFullYear();
years[y] = y;
}
var osYears = db.transaction('years', 'readwrite').objectStore('years');
osYears.clear().onsuccess = function (event) {
for (var y in years) {
osYears.put({ year: y });
}
}
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'regattas', time: serverTimes['regattas'] });
syncInProgress --;
}
};
} else {
console.log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
}
});
} else {
syncInProgress --;
}
// RESULTS
if (localTimes['results'] < serverTimes['results']) {
getJSON(QUERY_URL + 'get_results?changed-after=' + localTimes['results'], function (code, data) {
if (code == 200) {
var os = db.transaction('results', 'readwrite').objectStore('results');
console.log(data);
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'results', time: serverTimes['results'] });
syncInProgress --;
}
};
} else {
console.log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
}
});
} else {
syncInProgress --;
}
// PLANNINGS
if (localTimes['plannings'] < serverTimes['plannings']) {
getJSON(QUERY_URL + 'get_plannings?changed-after=' + localTimes['plannings'], function (code, data) {
if (code == 200) {
var os = db.transaction('plannings', 'readwrite').objectStore('plannings');
console.log(data);
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'plannings', time: serverTimes['plannings'] });
syncInProgress --;
}
};
} else {
console.log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
}
});
} else {
syncInProgress --;
}
if (isLoggedIn()) {
// TRIM_BOATS
if (localTimes['trim_boats'] < serverTimes['trim_boats']) {
getJSON(QUERY_URL + 'get_trim_boats?changed-after=' + localTimes['trim_boats'], function (code, data) {
if (code == 200) {
var os = db.transaction('trim_boats', 'readwrite').objectStore('trim_boats');
console.log(data);
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'trim_boats', time: serverTimes['trim_boats'] });
syncInProgress --;
}
};
} else {
console.log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
}
}); });
} else { os.openCursor().onsuccess = function (event) {
syncInProgress --; var cursor = event.target.result;
} if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
// TRIM_USERS os.delete(cursor.key);
if (localTimes['trim_users'] < serverTimes['trim_users']) { }
getJSON(QUERY_URL + 'get_trim_users?changed-after=' + localTimes['trim_users'], function (code, data) { cursor.continue();
if (code == 200) {
var os = db.transaction('trim_users', 'readwrite').objectStore('trim_users');
console.log(data);
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'trim_users', time: serverTimes['trim_users'] });
syncInProgress --;
}
};
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
syncOkay = false; osUpdateTimes.put({ table: 'clubs', time: serverTimes['clubs'] });
syncInProgress --; syncInProgress --;
log('clubs synced, remaining:', syncInProgress);
} }
}); };
} else { } else {
log("clubs: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --; syncInProgress --;
log('clubs failed, remaining:', syncInProgress);
} }
});
} else {
syncInProgress --;
}
// TRIM_TRIMS // BOATS
if (localTimes['trim_trims'] < serverTimes['trim_trims']) { if (localTimes['boats'] < serverTimes['boats']) {
getJSON(QUERY_URL + 'get_trim_trims?changed-after=' + localTimes['trim_trims'], function (code, data) { getJSON(QUERY_URL + 'get_boats?changed-after=' + localTimes['boats'], function (code, data) {
if (code == 200) { if (code == 200) {
var os = db.transaction('trim_trims', 'readwrite').objectStore('trim_trims'); var os = db.transaction('boats', 'readwrite').objectStore('boats');
console.log(data); data.data.forEach(function (entry) {
data.data.forEach(function (entry) { os.put(entry);
os.put(entry); });
}); os.openCursor().onsuccess = function (event) {
os.openCursor().onsuccess = function (event) { var cursor = event.target.result;
var cursor = event.target.result; if (cursor) {
if (cursor) { if (!data.keys.includes(parseInt(cursor.key))) {
if (!data.keys.includes(parseInt(cursor.key))) { os.delete(cursor.key);
os.delete(cursor.key); }
} cursor.continue();
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'trim_trims', time: serverTimes['trim_trims'] });
syncInProgress --;
}
};
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
syncOkay = false; osUpdateTimes.put({ table: 'boats', time: serverTimes['boats'] });
syncInProgress --; syncInProgress --;
log('boats synced, remaining:', syncInProgress);
} }
}); };
} else { } else {
log("boats: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --; syncInProgress --;
log('boats failed, remaining:', syncInProgress);
} }
});
} else {
syncInProgress --;
}
} else { // SAILORS
syncInProgress -= 3; if (localTimes['sailors'] < serverTimes['sailors']) {
} getJSON(QUERY_URL + 'get_sailors?changed-after=' + localTimes['sailors'], function (code, data) {
if (code == 200) {
var os = db.transaction('sailors', 'readwrite').objectStore('sailors');
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'sailors', time: serverTimes['sailors'] });
syncInProgress --;
log('sailors synced, remaining:', syncInProgress);
}
};
} else {
log("sailors: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('sailors failed, remaining:', syncInProgress);
}
});
} else {
syncInProgress --;
}
// NEWS // REGATTAS
if (localTimes['news'] < serverTimes['news']) { if (localTimes['regattas'] < serverTimes['regattas']) {
getJSON(QUERY_URL + 'get_news?changed-after=' + localTimes['news'], function (code, data) { getJSON(QUERY_URL + 'get_regattas?changed-after=' + localTimes['regattas'], function (code, data) {
if (code == 200) {
var os = db.transaction('regattas', 'readwrite').objectStore('regattas');
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = async function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
// update years
var regattas = await dbGetData('regattas');
var years = {};
for (id in regattas) {
var entry = regattas[id];
var date = parseDate(entry['date']);
var y = date.getFullYear();
years[y] = y;
}
var osYears = db.transaction('years', 'readwrite').objectStore('years');
osYears.clear().onsuccess = function (event) {
for (var y in years) {
osYears.put({ year: y });
}
}
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'regattas', time: serverTimes['regattas'] });
syncInProgress --;
log('regattas synced, remaining:', syncInProgress);
}
};
} else {
log("regattas: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('regattas failed, remaining:', syncInProgress);
}
});
} else {
syncInProgress --;
}
// RESULTS
if (localTimes['results'] < serverTimes['results']) {
getJSON(QUERY_URL + 'get_results?changed-after=' + localTimes['results'], function (code, data) {
if (code == 200) {
var os = db.transaction('results', 'readwrite').objectStore('results');
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'results', time: serverTimes['results'] });
syncInProgress --;
log('results synced, remaining:', syncInProgress);
}
};
} else {
log("results: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('results failed, remaining:', syncInProgress);
}
});
} else {
syncInProgress --;
}
// PLANNINGS
if (localTimes['plannings'] < serverTimes['plannings']) {
getJSON(QUERY_URL + 'get_plannings?changed-after=' + localTimes['plannings'], function (code, data) {
if (code == 200) {
var os = db.transaction('plannings', 'readwrite').objectStore('plannings');
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'plannings', time: serverTimes['plannings'] });
syncInProgress --;
log('plannings synced, remaining:', syncInProgress);
}
};
} else {
log("plannings: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('plannings failed, remaining:', syncInProgress);
}
});
} else {
syncInProgress --;
}
if (isLoggedIn()) {
// TRIM_BOATS
if (localTimes['trim_boats'] < serverTimes['trim_boats']) {
getJSON(QUERY_URL + 'get_trim_boats?changed-after=' + localTimes['trim_boats'], function (code, data) {
if (code == 200) { if (code == 200) {
var os = db.transaction('news', 'readwrite').objectStore('news'); var os = db.transaction('trim_boats', 'readwrite').objectStore('trim_boats');
console.log(data);
data.data.forEach(function (entry) { data.data.forEach(function (entry) {
os.put(entry); os.put(entry);
}); });
@@ -847,26 +751,27 @@ function sync() {
cursor.continue(); cursor.continue();
} else { } else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times'); var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'news', time: serverTimes['news'] }); osUpdateTimes.put({ table: 'trim_boats', time: serverTimes['trim_boats'] });
syncInProgress --; syncInProgress --;
log('trim_boats synced, remaining:', syncInProgress);
} }
}; };
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); log("trim_boats: Something went wrong (HTTP " + code + ")");
syncOkay = false; syncOkay = false;
syncInProgress --; syncInProgress --;
log('trim_boats failed, remaining:', syncInProgress);
} }
}); });
} else { } else {
syncInProgress --; syncInProgress --;
} }
// USERS // TRIM_USERS
if (localTimes['users'] < serverTimes['users']) { if (localTimes['trim_users'] < serverTimes['trim_users']) {
getJSON(QUERY_URL + 'get_users?changed-after=' + localTimes['users'], function (code, data) { getJSON(QUERY_URL + 'get_trim_users?changed-after=' + localTimes['trim_users'], function (code, data) {
if (code == 200) { if (code == 200) {
var os = db.transaction('users', 'readwrite').objectStore('users'); var os = db.transaction('trim_users', 'readwrite').objectStore('trim_users');
console.log(data);
data.data.forEach(function (entry) { data.data.forEach(function (entry) {
os.put(entry); os.put(entry);
}); });
@@ -879,14 +784,49 @@ function sync() {
cursor.continue(); cursor.continue();
} else { } else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times'); var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'users', time: serverTimes['users'] }); osUpdateTimes.put({ table: 'trim_users', time: serverTimes['trim_users'] });
syncInProgress --; syncInProgress --;
log('trim_users synced, remaining:', syncInProgress);
} }
}; };
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); log("trim_users: Something went wrong (HTTP " + code + ")");
syncOkay = false; syncOkay = false;
syncInProgress --; syncInProgress --;
log('trim_users failed, remaining:', syncInProgress);
}
});
} else {
syncInProgress --;
}
// TRIM_TRIMS
if (localTimes['trim_trims'] < serverTimes['trim_trims']) {
getJSON(QUERY_URL + 'get_trim_trims?changed-after=' + localTimes['trim_trims'], function (code, data) {
if (code == 200) {
var os = db.transaction('trim_trims', 'readwrite').objectStore('trim_trims');
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'trim_trims', time: serverTimes['trim_trims'] });
syncInProgress --;
log('trim_trims synced, remaining:', syncInProgress);
}
};
} else {
log("trim_trims: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('trim_trims failed, remaining:', syncInProgress);
} }
}); });
} else { } else {
@@ -894,13 +834,82 @@ function sync() {
} }
} else { } else {
console.log("Something went wrong (HTTP " + code + ")"); syncInProgress -= 3;
syncOkay = false;
syncInProgress = 0;
} }
});
}; // NEWS
}); if (localTimes['news'] < serverTimes['news']) {
getJSON(QUERY_URL + 'get_news?changed-after=' + localTimes['news'], function (code, data) {
if (code == 200) {
var os = db.transaction('news', 'readwrite').objectStore('news');
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'news', time: serverTimes['news'] });
syncInProgress --;
log('news synced, remaining:', syncInProgress);
}
};
} else {
log("news: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('news failed, remaining:', syncInProgress);
}
});
} else {
syncInProgress --;
}
// USERS
if (localTimes['users'] < serverTimes['users']) {
getJSON(QUERY_URL + 'get_users?changed-after=' + localTimes['users'], function (code, data) {
if (code == 200) {
var os = db.transaction('users', 'readwrite').objectStore('users');
data.data.forEach(function (entry) {
os.put(entry);
});
os.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
if (!data.keys.includes(parseInt(cursor.key))) {
os.delete(cursor.key);
}
cursor.continue();
} else {
var osUpdateTimes = db.transaction('update_times', 'readwrite').objectStore('update_times');
osUpdateTimes.put({ table: 'users', time: serverTimes['users'] });
syncInProgress --;
log('users synced, remaining:', syncInProgress);
}
};
} else {
log("users: Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress --;
log('users failed, remaining:', syncInProgress);
}
});
} else {
syncInProgress --;
}
} else {
log("Something went wrong (HTTP " + code + ")");
syncOkay = false;
syncInProgress = 0;
}
});
};
} }
function checkSync() { function checkSync() {
@@ -919,12 +928,12 @@ function initDatabase() {
if (window.indexedDB) { if (window.indexedDB) {
var request = window.indexedDB.open('regatten_app_db_' + BOATCLASS, DB_VERSION); var request = window.indexedDB.open('regatten_app_db_' + BOATCLASS, DB_VERSION);
request.onerror = function (event) { request.onerror = function (event) {
console.log("Cannot open DB: " + event.target.errorCode); log("Cannot open DB: " + event.target);
runPageScript(); runPageScript();
}; };
request.onsuccess = function (event) { request.onsuccess = function (event) {
console.log("Database loaded"); log("Database loaded");
db = event.target.result; db = event.target.result;
db.onversionchange = function (event) { db.onversionchange = function (event) {
@@ -937,7 +946,7 @@ function initDatabase() {
} }
db.onerror = function (event) { db.onerror = function (event) {
console.log("DB Error: " + event.target.errorCode); log("DB Error: " + event.target);
}; };
canUseLocalDB = true; canUseLocalDB = true;
@@ -949,6 +958,7 @@ function initDatabase() {
if (lastSync > 0) { if (lastSync > 0) {
runPageScript(); runPageScript();
} else { } else {
addSyncInfoToPreloader();
db.transaction('update_times', 'readwrite').objectStore('update_times').put({ table: 'loggedin', status: isLoggedIn() }); db.transaction('update_times', 'readwrite').objectStore('update_times').put({ table: 'loggedin', status: isLoggedIn() });
} }
}; };
@@ -967,10 +977,10 @@ function initDatabase() {
var oldVersion = event.oldVersion; var oldVersion = event.oldVersion;
var newVersion = event.newVersion; var newVersion = event.newVersion;
console.log("Datenbank Version Upgrade von " + oldVersion + " auf " + newVersion); log("Datenbank Version Upgrade von " + oldVersion + " auf " + newVersion);
if ((oldVersion < 1) && (newVersion >= 1)) { if ((oldVersion < 1) && (newVersion >= 1)) {
console.log('to version 1'); log('to version 1');
var osClubs = db.createObjectStore('clubs', { keyPath: 'id' }); var osClubs = db.createObjectStore('clubs', { keyPath: 'id' });
var osBoats = db.createObjectStore('boats', { keyPath: 'id' }); var osBoats = db.createObjectStore('boats', { keyPath: 'id' });
var osSailors = db.createObjectStore('sailors', { keyPath: 'id' }); var osSailors = db.createObjectStore('sailors', { keyPath: 'id' });
@@ -999,7 +1009,7 @@ function initDatabase() {
} }
if ((oldVersion < 2) && (newVersion >= 2)) { if ((oldVersion < 2) && (newVersion >= 2)) {
console.log('to version 2'); log('to version 2');
var osUsers = db.createObjectStore('users', { keyPath: 'id' }); var osUsers = db.createObjectStore('users', { keyPath: 'id' });
osUsers.createIndex('username', 'username', { unique: true }); osUsers.createIndex('username', 'username', { unique: true });
var osUpdateTimes = upgradeTransaction.objectStore('update_times'); var osUpdateTimes = upgradeTransaction.objectStore('update_times');
@@ -1007,25 +1017,25 @@ function initDatabase() {
} }
if ((oldVersion < 3) && (newVersion >= 3)) { if ((oldVersion < 3) && (newVersion >= 3)) {
console.log('to version 3'); log('to version 3');
var osYears = db.createObjectStore('years', { keyPath: 'year' }); var osYears = db.createObjectStore('years', { keyPath: 'year' });
var osUpdateTimes = upgradeTransaction.objectStore('update_times'); var osUpdateTimes = upgradeTransaction.objectStore('update_times');
osUpdateTimes.put({ table: 'regattas', time: 0 }); osUpdateTimes.put({ table: 'regattas', time: 0 });
} }
if ((oldVersion < 4) && (newVersion >= 4)) { if ((oldVersion < 4) && (newVersion >= 4)) {
console.log('to version 4'); log('to version 4');
var osUpdateTimes = upgradeTransaction.objectStore('update_times'); var osUpdateTimes = upgradeTransaction.objectStore('update_times');
osUpdateTimes.add({ table: 'loggedin', status: isLoggedIn() }); osUpdateTimes.add({ table: 'loggedin', status: isLoggedIn() });
} }
if ((oldVersion < 5) && (newVersion >= 5)) { if ((oldVersion < 5) && (newVersion >= 5)) {
console.log('to version 5'); log('to version 5');
var osPushes = db.createObjectStore('settings', { keyPath: 'key' }); var osPushes = db.createObjectStore('settings', { keyPath: 'key' });
} }
if ((oldVersion < 6) && (newVersion >= 6)) { if ((oldVersion < 6) && (newVersion >= 6)) {
console.log('to version 6'); log('to version 6');
var osNews = db.createObjectStore('news', { keyPath: 'id' }); var osNews = db.createObjectStore('news', { keyPath: 'id' });
var osUpdateTimes = upgradeTransaction.objectStore('update_times'); var osUpdateTimes = upgradeTransaction.objectStore('update_times');
osUpdateTimes.add({ table: 'news', time: 0 }); osUpdateTimes.add({ table: 'news', time: 0 });
@@ -1055,7 +1065,24 @@ function resetDb() {
osUpdateTimes.put({ table: 'trim_trims', time: 0 }); osUpdateTimes.put({ table: 'trim_trims', time: 0 });
osUpdateTimes.put({ table: 'news', time: 0 }); osUpdateTimes.put({ table: 'news', time: 0 });
osUpdateTimes.put({ table: 'users', time: 0 }); osUpdateTimes.put({ table: 'users', time: 0 });
console.log('DB update times reset'); log('DB update times reset');
hideLoader(); hideLoader();
} }
} }
function addSyncInfoToPreloader() {
var preloader = document.getElementById('preloader');
var div = document.createElement('div');
div.id = 'preloader-sync-info';
div.classList = 'rounded-s shadow-m bg-highlight m-3 p-3';
div.style.position = 'fixed';
div.style.top = 0;
div.style.left = 0;
div.style.right = 0;
div.innerHTML = '<h2 class="color-white">Datenbank SYNC</h2><p class="mb-0 color-white">Um Dir alle n&ouml;tigen Informationen anzeigen zu k&ouml;nnen, m&uuml;ssen wir die Datenbank synchronisieren.<br>Dies kann einen Moment dauern. Bitte habe etwas Geduld. Beim n&auml;chsten &Ouml;ffnen geht es schneller.</p>';
preloader.appendChild(div);
}
function removeSyncInfoToPreloader() {
$('#preloader-sync-info').remove();
}

View File

@@ -1038,7 +1038,7 @@ var mobileConsole = (function () {
function isRepeat(message, method) { function isRepeat(message, method) {
return (history.output.prevMsg === message && history.output.prevMethod === method) && (typeof message !== 'object') && (method !== 'trace') && (method !== 'group') && (method !== 'groupCollapsed') && (method !== 'groupEnd'); return (history.output.prevMsg === message && history.output.prevMethod === method) && (typeof message !== 'object') && (method !== 'trace') && (method !== 'group') && (method !== 'groupCollapsed') && (method !== 'groupEnd');
} }
function newConsole() { function newConsole2() {
try { try {
//get arguments, set vars //get arguments, set vars
var method = arguments[0], className, isHTMLElement, var method = arguments[0], className, isHTMLElement,
@@ -1195,11 +1195,7 @@ var mobileConsole = (function () {
} }
//scroll //scroll
consoleElement.toggleScroll(); consoleElement.toggleScroll();
//==========================================================
//make sure we still call the original method, if applicable (not window.onerror)
if (typeof arguments[1].original === 'function') {
arguments[1].original.apply(console, arguments[1].originalArguments);
}
} catch (e) { } catch (e) {
//not logging. why? throw error //not logging. why? throw error
if (options.browserinfo.isMobile) { alert(e); } if (options.browserinfo.isMobile) { alert(e); }
@@ -1211,6 +1207,37 @@ var mobileConsole = (function () {
} }
} }
function newConsole() {
if (typeof arguments[1].newMessage === 'object') {
var args = arguments[1].newMessage.slice();
var argString = [];
for (var i in args) {
if (typeof args[i] === 'object') {
if (argString.length > 0) {
arguments[1].newMessage = argString.join(' ');
newConsole2(...arguments);
argString = [];
}
arguments[1].newMessage = args[i];
newConsole2(...arguments);
} else {
argString.push(args[i]);
}
}
if (argString.length > 0) {
arguments[1].newMessage = argString.join(' ');
newConsole2(...arguments);
argString = [];
}
} else {
newConsole2(...arguments);
}
//==========================================================
//make sure we still call the original method, if applicable (not window.onerror)
if (typeof arguments[1].original === 'function') {
arguments[1].original.apply(console, arguments[1].originalArguments);
}
}
function interceptConsole(method) { function interceptConsole(method) {
var original = console ? console[method] : missingMethod(), i, stackTraceOrig; var original = console ? console[method] : missingMethod(), i, stackTraceOrig;
if (!console) { console = {}; } //create empty console if we have no console (IE?) if (!console) { console = {}; } //create empty console if we have no console (IE?)
@@ -1218,7 +1245,7 @@ var mobileConsole = (function () {
var args = Array.prototype.slice.call(arguments); var args = Array.prototype.slice.call(arguments);
args.original = original; args.original = original;
args.originalArguments = arguments; args.originalArguments = arguments;
args.newMessage = (method === 'assert') ? [args[0], args[1]] : args[0]; //args.newMessage = (method === 'assert') ? [args[0], args[1]] : args[0];
//create an Error and get its stack trace and format it //create an Error and get its stack trace and format it
try { throw new Error(); } catch (e) { stackTraceOrig = e.stack; } try { throw new Error(); } catch (e) { stackTraceOrig = e.stack; }
args.newStackTrace = formatStackTrace(args.newStackTrace, stackTraceOrig); args.newStackTrace = formatStackTrace(args.newStackTrace, stackTraceOrig);
@@ -1241,6 +1268,12 @@ var mobileConsole = (function () {
return; return;
} }
//Handle the new console logging //Handle the new console logging
args.newMessage = [];
var i = 0;
while (typeof args[i] !== 'undefined') {
args.newMessage.push(args[i]);
i ++;
}
newConsole(method, args); newConsole(method, args);
}; };
} }

View File

@@ -35,7 +35,7 @@ $(document).ready(function(){
//Enabling dismiss button //Enabling dismiss button
setTimeout(function(){ setTimeout(function(){
$('.pwa-dismiss').on('click',function(){ $('.pwa-dismiss').on('click',function(){
console.log('User Closed Add to Home / PWA Prompt') log('User Closed Add to Home / PWA Prompt')
createCookie('Sticky_pwa_rejected_install', true, 1); createCookie('Sticky_pwa_rejected_install', true, 1);
$('body').find('#menu-install-pwa-android, #menu-install-pwa-ios, .menu-hider').removeClass('menu-active'); $('body').find('#menu-install-pwa-android, #menu-install-pwa-ios, .menu-hider').removeClass('menu-active');
}); });
@@ -52,18 +52,16 @@ $(document).ready(function(){
//Firing PWA prompts for specific versions and when not on home screen. //Firing PWA prompts for specific versions and when not on home screen.
if (isMobile.Android()) { if (isMobile.Android()) {
console.log('Android Detected'); log('Android Detected');
function showInstallPromotion(){ function showInstallPromotion(){
if($('#menu-install-pwa-android, .add-to-home').length){ if($('#menu-install-pwa-android, .add-to-home').length){
console.log('Triggering PWA Menu for Android'); log('Triggering PWA Menu for Android');
if (!readCookie('Sticky_pwa_rejected_install')) { if (!readCookie('Sticky_pwa_rejected_install')) {
setTimeout(function(){ setTimeout(function(){
$('.add-to-home').addClass('add-to-home-visible add-to-home-android'); $('.add-to-home').addClass('add-to-home-visible add-to-home-android');
$('#menu-install-pwa-android, .menu-hider').addClass('menu-active') $('#menu-install-pwa-android, .menu-hider').addClass('menu-active')
},3000); },3000);
} }
} else {
console.log('The div #menu-install-pwa-android was not found. Please add this div to show the install window')
} }
} }
let deferredPrompt; let deferredPrompt;
@@ -82,9 +80,9 @@ $(document).ready(function(){
deferredPrompt.userChoice deferredPrompt.userChoice
.then((choiceResult) => { .then((choiceResult) => {
if (choiceResult.outcome === 'accepted') { if (choiceResult.outcome === 'accepted') {
console.log('User accepted the A2HS prompt'); log('User accepted the A2HS prompt');
} else { } else {
console.log('User dismissed the A2HS prompt'); log('User dismissed the A2HS prompt');
} }
deferredPrompt = null; deferredPrompt = null;
}); });
@@ -96,11 +94,11 @@ $(document).ready(function(){
if (isMobile.iOS()) { if (isMobile.iOS()) {
if(!isInWebAppiOS){ if(!isInWebAppiOS){
console.log('iOS Detected'); log('iOS Detected');
if($('#menu-install-pwa-ios, .add-to-home').length){ if($('#menu-install-pwa-ios, .add-to-home').length){
if (!readCookie('Sticky_pwa_rejected_install')) { if (!readCookie('Sticky_pwa_rejected_install')) {
function triggerPwaInstallIos() { function triggerPwaInstallIos() {
console.log('Triggering PWA / Add to Home Screen Menu for iOS'); log('Triggering PWA / Add to Home Screen Menu for iOS');
setTimeout(function(){ setTimeout(function(){
$('.add-to-home').addClass('add-to-home-visible add-to-home-ios'); $('.add-to-home').addClass('add-to-home-visible add-to-home-ios');
$('#menu-install-pwa-ios, .menu-hider').addClass('menu-active'); $('#menu-install-pwa-ios, .menu-hider').addClass('menu-active');
@@ -113,8 +111,6 @@ $(document).ready(function(){
triggerPwaInstallIos(); triggerPwaInstallIos();
} }
}; };
} else {
console.log('The div #menu-install-pwa-ios was not found. Please add this div to show the install window')
} }
} }
} }
@@ -138,7 +134,7 @@ $(document).ready(function(){
var counter = 3; var counter = 3;
var interval = setInterval(function() { var interval = setInterval(function() {
counter--; counter--;
console.log(counter); log(counter);
$('.page-update').html('Aktuallisierung in ... '+ counter + ' Sekunden'); $('.page-update').html('Aktuallisierung in ... '+ counter + ' Sekunden');
if (counter == 0) { if (counter == 0) {
clearInterval(interval); clearInterval(interval);
@@ -146,7 +142,7 @@ $(document).ready(function(){
} }
}, 1000); }, 1000);
caches.delete('workbox-runtime').then(function() { caches.delete('workbox-runtime').then(function() {
console.log('Content Updated - Cache Removed!'); log('Content Updated - Cache Removed!');
}); });
//localStorage.clear(); //localStorage.clear();
sessionStorage.clear() sessionStorage.clear()
@@ -171,7 +167,7 @@ $(document).ready(function(){
//console.log(' Checking PWA Content for updates...\n PWA Server Version: ' + onlineVersionNumber + '\n' + ' PWA Cached Version: ' + localVersionNumber); //console.log(' Checking PWA Content for updates...\n PWA Server Version: ' + onlineVersionNumber + '\n' + ' PWA Cached Version: ' + localVersionNumber);
if(onlineVersionNumber != localVersionNumber && onlineVersionNumber != "Connection Offline. Waiting to Reconect"){ if(onlineVersionNumber != localVersionNumber && onlineVersionNumber != "Connection Offline. Waiting to Reconect"){
updateModal(); updateModal();
console.log('New Version of Content Available. Refreshing. On Desktop Browsers a manual refresh maybe required.') log('New Version of Content Available. Refreshing. On Desktop Browsers a manual refresh maybe required.')
setTimeout(function(){ setTimeout(function(){
$('body').find('#menu-update').addClass('menu-active'); $('body').find('#menu-update').addClass('menu-active');
$('.menu-hider').addClass('menu-active-no-click'); $('.menu-hider').addClass('menu-active-no-click');
@@ -246,13 +242,13 @@ $(document).ready(function(){
function updateOnlineStatus(event) { function updateOnlineStatus(event) {
var condition = navigator.onLine ? "online" : "offline"; var condition = navigator.onLine ? "online" : "offline";
isOnline(); isOnline();
console.log( 'Connection: Online'); log( 'Connection: Online');
$("a").off( "click", returnFalse ); $("a").off( "click", returnFalse );
} }
function updateOfflineStatus(event) { function updateOfflineStatus(event) {
isOffline(); isOffline();
$("a").on( "click", returnFalse ); $("a").on( "click", returnFalse );
console.log( 'Connection: Offline'); log( 'Connection: Offline');
} }
window.addEventListener('online', updateOnlineStatus); window.addEventListener('online', updateOnlineStatus);
window.addEventListener('offline', updateOfflineStatus); window.addEventListener('offline', updateOfflineStatus);

View File

@@ -13,6 +13,19 @@ const YOUTH_AGE = '<?php echo $_CLASS['youth-age']; ?>';
const YOUTH_GERMAN_NAME = '<?php echo $_CLASS['youth-german-name']; ?>'; const YOUTH_GERMAN_NAME = '<?php echo $_CLASS['youth-german-name']; ?>';
const PUSH_SERVER_KEY = '<?php echo PUSH_SERVER_KEY; ?>'; const PUSH_SERVER_KEY = '<?php echo PUSH_SERVER_KEY; ?>';
function log() {
var now = new Date();
var hour = now.getHours().toString();
var min = now.getMinutes().toString();
var sec = now.getSeconds().toString();
var millis = now.getMilliseconds().toString();
hour = (hour.length < 2 ? '0' + hour : hour);
min = (min.length < 2 ? '0' + min : min);
sec = (sec.length < 2 ? '0' + sec : sec);
while (millis.length < 3) millis = '0' + millis;
console.log('[' + hour + ':' + min + ':' + sec + '.' + millis + ']', ...arguments);
}
var randomId = function() { return '_' + Math.random().toString(36).substr(2, 9); } var randomId = function() { return '_' + Math.random().toString(36).substr(2, 9); }
var badges = { var badges = {
@@ -140,8 +153,8 @@ var login = function() {
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um Dich anzumelden'); toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um Dich anzumelden');
$('#menu-login').hideMenu(); $('#menu-login').hideMenu();
} else { } else {
console.log('Login: unbekannter Fehler', status, error); log('Login: unbekannter Fehler', status, error);
console.log(xhr); log(xhr);
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000); toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
} }
hideLoader(); hideLoader();
@@ -173,7 +186,7 @@ var logout = function() {
hash: localStorage.getItem('auth_hash') hash: localStorage.getItem('auth_hash')
} }
if ((auth.id === null) || (auth.hash === null)) { if ((auth.id === null) || (auth.hash === null)) {
console.log('Not logged in'); log('Not logged in');
logoutClearStorage(); logoutClearStorage();
return; return;
} }
@@ -185,14 +198,14 @@ var logout = function() {
}, },
error: function (xhr, status, error) { error: function (xhr, status, error) {
if (xhr.status == 401) { if (xhr.status == 401) {
console.log('Not logged in'); log('Not logged in');
logoutClearStorage(); logoutClearStorage();
} else if (xhr.status == 0) { } else if (xhr.status == 0) {
console.log('Could not delete auth from server'); log('Could not delete auth from server');
logoutClearStorage(); logoutClearStorage();
} else { } else {
console.log('Logout: unbekannter Fehler', status, error); log('Logout: unbekannter Fehler', status, error);
console.log(xhr); log(xhr);
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000); toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
hideLoader(); hideLoader();
} }
@@ -209,12 +222,12 @@ function deleteDb() {
showLoader(); showLoader();
var request = window.indexedDB.deleteDatabase('regatten_app_db_' + BOATCLASS); var request = window.indexedDB.deleteDatabase('regatten_app_db_' + BOATCLASS);
request.onerror = function (event) { request.onerror = function (event) {
console.log('Cannot delete DB: ', event.target.errorCode); log('Cannot delete DB: ', event.target.errorCode);
toastError('Beim Löschen der Datenbank ist ein Fehler aufgetreten.<br>Bitte melde diesen Fehler. (Dev-Menu => Problem melden)', 5000); toastError('Beim Löschen der Datenbank ist ein Fehler aufgetreten.<br>Bitte melde diesen Fehler. (Dev-Menu => Problem melden)', 5000);
hideLoader(); hideLoader();
} }
request.onsuccess = function (event) { request.onsuccess = function (event) {
console.log('DB deleted'); log('DB deleted');
toastInfo('Die Datenbank wurde gelöscht. Die Seite lädt in wenigen Sekunden neu und erstellt damit eine neue Datenbank.', 10000); toastInfo('Die Datenbank wurde gelöscht. Die Seite lädt in wenigen Sekunden neu und erstellt damit eine neue Datenbank.', 10000);
hideLoader(); hideLoader();
setTimeout(function(){ location.reload(); }, 3000); setTimeout(function(){ location.reload(); }, 3000);
@@ -228,13 +241,13 @@ function deleteCache() {
$('#menu-developer').hideMenu(); $('#menu-developer').hideMenu();
navigator.serviceWorker.getRegistrations().then(function (registrations) { navigator.serviceWorker.getRegistrations().then(function (registrations) {
for (let registration of registrations) { for (let registration of registrations) {
console.log('Unregister sW:', registration); log('Unregister sW:', registration);
registration.unregister(); registration.unregister();
} }
}); });
caches.keys().then((keyList) => { caches.keys().then((keyList) => {
return Promise.all(keyList.map((key) => { return Promise.all(keyList.map((key) => {
console.log('Cache deleted:', key); log('Cache deleted:', key);
return caches.delete(key); return caches.delete(key);
})); }));
}); });
@@ -260,7 +273,7 @@ function urlB64ToUint8Array(base64String) {
} }
function pushesSubscribe() { function pushesSubscribe() {
console.log('Subscribing'); log('Subscribing');
const applicationServerKey = urlB64ToUint8Array(PUSH_SERVER_KEY); const applicationServerKey = urlB64ToUint8Array(PUSH_SERVER_KEY);
swRegistration.pushManager.subscribe({ swRegistration.pushManager.subscribe({
userVisibleOnly: true, userVisibleOnly: true,
@@ -272,14 +285,14 @@ function pushesSubscribe() {
updatePushBadge(); updatePushBadge();
}) })
.catch(function(err) { .catch(function(err) {
console.log('Failed to subscribe the user: ', err); log('Failed to subscribe the user: ', err);
toastError('Da ist leider etwas schief gelaufen. Bitte stelle sicher, dass Du mit dem Internet verbunden bist und versuche es erneut.', 5000); toastError('Da ist leider etwas schief gelaufen. Bitte stelle sicher, dass Du mit dem Internet verbunden bist und versuche es erneut.', 5000);
pushesUnSubscribe(true); pushesUnSubscribe(true);
}); });
} }
function pushesUnSubscribe(silent = false) { function pushesUnSubscribe(silent = false) {
console.log('Unsubscribing'); log('Unsubscribing');
swRegistration.pushManager.getSubscription() swRegistration.pushManager.getSubscription()
.then(function(subscription) { .then(function(subscription) {
if (subscription) { if (subscription) {
@@ -291,7 +304,7 @@ function pushesUnSubscribe(silent = false) {
} }
}) })
.catch(function(error) { .catch(function(error) {
console.log('Error unsubscribing', error); log('Error unsubscribing', error);
$('#menu-pushes').hideMenu(); $('#menu-pushes').hideMenu();
if (!silent) toastError('Da ist leider etwas schief gelaufen. Bitte versuche es erneut oder wende Dich an unseren Support.', 5000); if (!silent) toastError('Da ist leider etwas schief gelaufen. Bitte versuche es erneut oder wende Dich an unseren Support.', 5000);
updatePushBadge(); updatePushBadge();
@@ -300,7 +313,7 @@ function pushesUnSubscribe(silent = false) {
} }
function pushesUpdateServerSubscription(subscription, enabled) { function pushesUpdateServerSubscription(subscription, enabled) {
console.log('updateServer', enabled, subscription); log('updateServer', enabled, subscription);
$.ajax({ $.ajax({
url: QUERY_URL + (enabled ? 'add' : 'remove') + '_subscription', url: QUERY_URL + (enabled ? 'add' : 'remove') + '_subscription',
type: 'POST', type: 'POST',

View File

@@ -21,8 +21,8 @@ async function onEditBoatnameClick() {
if (xhr.status == 0) { if (xhr.status == 0) {
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um den Bootsnamen zu bearbeiten'); toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um den Bootsnamen zu bearbeiten');
} else { } else {
console.log('EditBoatname: unbekannter Fehler', status, error); log('EditBoatname: unbekannter Fehler', status, error);
console.log(xhr); log(xhr);
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000); toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
} }
hideLoader(); hideLoader();
@@ -47,9 +47,9 @@ async function onEditBoatnameClick() {
async function onListClicked(id) { async function onListClicked(id) {
var boat = await dbGetData('boats', id); var boat = await dbGetData('boats', id);
$('#menu-boat').find('.menu-title').find('p').text(boat.sailnumber); $('#menu-boat').find('.menu-title').find('p').text(boat.sailnumber);
// Edit Boatname // Edit Boatname
$('#button-editboatname').attr('data-boat-id', boat.id); $('#button-editboatname').attr('data-boat-id', boat.id);
$('#menu-editboatname').find('.menu-title').find('p').text(boat.sailnumber); $('#menu-editboatname').find('.menu-title').find('p').text(boat.sailnumber);
@@ -63,7 +63,7 @@ async function onListClicked(id) {
$('#input-editboatname').val(boat.name); $('#input-editboatname').val(boat.name);
} }
$('#input-editboatname').trigger('focusin').trigger('focusout'); $('#input-editboatname').trigger('focusin').trigger('focusout');
// club website // club website
var clubwebsite = ''; var clubwebsite = '';
if (boat['club'] != null) { if (boat['club'] != null) {
@@ -76,7 +76,7 @@ async function onListClicked(id) {
} else { } else {
$('#menu-item-clubwebsite').hide(); $('#menu-item-clubwebsite').hide();
} }
$('#menu-boat').showMenu(); $('#menu-boat').showMenu();
$('#menu-boat').scrollTop(0); $('#menu-boat').scrollTop(0);
} }
@@ -89,19 +89,19 @@ function pageChange() {
async function drawList() { async function drawList() {
window.setTimeout(function () { window.setTimeout(function () {
var list = ''; var list = '';
if (displayed.length > 0) { if (displayed.length > 0) {
var offset = (page - 1) * showCount; var offset = (page - 1) * showCount;
var count = (page == pageCount ? (displayed.length % showCount) : showCount); var count = (page == pageCount ? (displayed.length % showCount) : showCount);
if (count == 0) count = showCount; if (count == 0) count = showCount;
for (i = 0; i < count; i ++) { for (i = 0; i < count; i ++) {
list += displayed[i + offset]; list += displayed[i + offset];
} }
} else { } else {
list = '<div><div>Keine Ergebnisse, die der Suche entsprechen</div></div>'; list = '<div><div>Keine Ergebnisse, die der Suche entsprechen</div></div>';
} }
$('#div-list').html(list); $('#div-list').html(list);
}, 0); }, 0);
} }
@@ -135,9 +135,9 @@ var siteScript = async function() {
$('#menu-item-boatname').click(function(){ $('#menu-boat').hideMenu(); $('#menu-editboatname').showMenu(); }); $('#menu-item-boatname').click(function(){ $('#menu-boat').hideMenu(); $('#menu-editboatname').showMenu(); });
$('#button-editboatname').click(onEditBoatnameClick); $('#button-editboatname').click(onEditBoatnameClick);
} }
var results = await dbGetData('boats'); var results = await dbGetData('boats');
var count = results.length; var count = results.length;
if (count > 0) { if (count > 0) {
if (count == 1) { if (count == 1) {
@@ -147,51 +147,51 @@ var siteScript = async function() {
} }
$('#div-list').show(); $('#div-list').show();
$('#input-search').parent().show(); $('#input-search').parent().show();
results.sort(function (a, b) { results.sort(function (a, b) {
return a.sailnumber.localeCompare(b.sailnumber); return a.sailnumber.localeCompare(b.sailnumber);
}); });
rows = []; rows = [];
for (id in results) { for (id in results) {
var entry = results[id]; var entry = results[id];
var club = null; var club = null;
if (entry['club'] != null) if (entry['club'] != null)
club = await dbGetData('clubs', entry['club']); club = await dbGetData('clubs', entry['club']);
var row = { keywords: [], content: '' }; var row = { keywords: [], content: '' };
row.keywords.push(entry['sailnumber']); row.keywords.push(entry['sailnumber']);
if (entry['name'] != '') row.keywords.push(entry['name']); if (entry['name'] != '') row.keywords.push(entry['name']);
if (club != null) row.keywords.push(club['kurz'], club['name']); if (club != null) row.keywords.push(club['kurz'], club['name']);
row.content += '<div onclick="onListClicked(' + entry['id'] + ');">'; row.content += '<div onclick="onListClicked(' + entry['id'] + ');">';
// ZEILE 1 // ZEILE 1
// Sailnumber // Sailnumber
row.content += '<div><b>' + entry['sailnumber'] + '</b></div>'; row.content += '<div><b>' + entry['sailnumber'] + '</b></div>';
// ZEILE 2 // ZEILE 2
row.content += '<div>'; row.content += '<div>';
// Name // Name
row.content += '<div>' + entry['name'] + '</div>'; row.content += '<div>' + entry['name'] + '</div>';
// Club // Club
row.content += '<div>' + ((club != null) ? club['kurz'] : '') + '</div>'; row.content += '<div>' + ((club != null) ? club['kurz'] : '') + '</div>';
row.content += '</div></div>'; row.content += '</div></div>';
rows.push(row); rows.push(row);
} }
reSearch(); reSearch();
} else { } else {
$('#p-count').html('Keine Boote gefunden!'); $('#p-count').html('Keine Boote gefunden!');
$('#div-list').hide(); $('#div-list').hide();
$('#input-search').parent().hide(); $('#input-search').parent().hide();
} }
hideLoader(); hideLoader();
} }

View File

@@ -23,8 +23,8 @@ function sendMessage() {
if (xhr.status == 0) { if (xhr.status == 0) {
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um eine Nachricht zu versenden'); toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um eine Nachricht zu versenden');
} else { } else {
console.log('Contact: unbekannter Fehler', status, error); log('Contact: unbekannter Fehler', status, error);
console.log(xhr); log(xhr);
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000); toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
} }
hideLoader(); hideLoader();

View File

@@ -50,7 +50,7 @@ var siteScript = async function() {
// Your next // Your next
var planningsDB = await dbGetDataIndex('plannings', 'user', user.id); var planningsDB = await dbGetDataIndex('plannings', 'user', user.id);
var minDate = getToday(); var minDate = getToday();
minDate.setDate(minDate.getDate() - 1); minDate.setDate(minDate.getDate());
var maxDate = getToday(); var maxDate = getToday();
maxDate.setDate(maxDate.getDate() + 28); maxDate.setDate(maxDate.getDate() + 28);
var regattas = await dbGetRegattasRange(minDate, maxDate); var regattas = await dbGetRegattasRange(minDate, maxDate);
@@ -166,7 +166,7 @@ var siteScript = async function() {
// Next // Next
var minDate = getToday(); var minDate = getToday();
minDate.setDate(minDate.getDate() - 1); minDate.setDate(minDate.getDate());
var maxDate = getToday(); var maxDate = getToday();
maxDate.setDate(maxDate.getDate() + 14); maxDate.setDate(maxDate.getDate() + 14);
var regattas = await dbGetRegattasRange(minDate, maxDate); var regattas = await dbGetRegattasRange(minDate, maxDate);

View File

@@ -21,8 +21,8 @@ async function onEditYearClick() {
if (xhr.status == 0) { if (xhr.status == 0) {
toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um den Jahrgang zu bearbeiten'); toastError('Du bist momentan offline.<br>Stelle eine Internetverbindung her, um den Jahrgang zu bearbeiten');
} else { } else {
console.log('EditYear: unbekannter Fehler', status, error); log('EditYear: unbekannter Fehler', status, error);
console.log(xhr); log(xhr);
toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000); toastError('Ein unbekannter Fehler ist aufgetreten. Bitte versuche es noch einmal', 5000);
} }
hideLoader(); hideLoader();
@@ -47,9 +47,9 @@ async function onEditYearClick() {
async function onListClicked(id) { async function onListClicked(id) {
var sailor = await dbGetData('sailors', id); var sailor = await dbGetData('sailors', id);
$('#menu-sailor').find('.menu-title').find('p').text(sailor.name); $('#menu-sailor').find('.menu-title').find('p').text(sailor.name);
// Edit Year // Edit Year
$('#button-edityear').attr('data-sailor-id', sailor.id); $('#button-edityear').attr('data-sailor-id', sailor.id);
$('#menu-edityear').find('.menu-title').find('p').text(sailor.name); $('#menu-edityear').find('.menu-title').find('p').text(sailor.name);
@@ -63,7 +63,7 @@ async function onListClicked(id) {
$('#input-edityear').val(sailor.year); $('#input-edityear').val(sailor.year);
} }
$('#input-edityear').trigger('focusin').trigger('focusout'); $('#input-edityear').trigger('focusin').trigger('focusout');
// club website // club website
var clubwebsite = ''; var clubwebsite = '';
if (sailor['club'] != null) { if (sailor['club'] != null) {
@@ -76,7 +76,7 @@ async function onListClicked(id) {
} else { } else {
$('#menu-item-clubwebsite').hide(); $('#menu-item-clubwebsite').hide();
} }
$('#menu-sailor').showMenu(); $('#menu-sailor').showMenu();
$('#menu-sailor').scrollTop(0); $('#menu-sailor').scrollTop(0);
} }
@@ -89,19 +89,19 @@ function pageChange() {
async function drawList() { async function drawList() {
window.setTimeout(function () { window.setTimeout(function () {
var list = ''; var list = '';
if (displayed.length > 0) { if (displayed.length > 0) {
var offset = (page - 1) * showCount; var offset = (page - 1) * showCount;
var count = (page == pageCount ? (displayed.length % showCount) : showCount); var count = (page == pageCount ? (displayed.length % showCount) : showCount);
if (count == 0) count = showCount; if (count == 0) count = showCount;
for (i = 0; i < count; i ++) { for (i = 0; i < count; i ++) {
list += displayed[i + offset]; list += displayed[i + offset];
} }
} else { } else {
list = '<div><div>Keine Ergebnisse, die der Suche entsprechen</div></div>'; list = '<div><div>Keine Ergebnisse, die der Suche entsprechen</div></div>';
} }
$('#div-list').html(list); $('#div-list').html(list);
}, 0); }, 0);
} }
@@ -135,9 +135,9 @@ var siteScript = async function() {
$('#menu-item-year').click(function(){ $('#menu-sailor').hideMenu(); $('#menu-edityear').showMenu(); }); $('#menu-item-year').click(function(){ $('#menu-sailor').hideMenu(); $('#menu-edityear').showMenu(); });
$('#button-edityear').click(onEditYearClick); $('#button-edityear').click(onEditYearClick);
} }
var results = await dbGetData('sailors'); var results = await dbGetData('sailors');
var count = results.length; var count = results.length;
if (count > 0) { if (count > 0) {
if (count == 1) { if (count == 1) {
@@ -147,51 +147,51 @@ var siteScript = async function() {
} }
$('#div-list').show(); $('#div-list').show();
$('#input-search').parent().show(); $('#input-search').parent().show();
results.sort(function (a, b) { results.sort(function (a, b) {
return a.name.localeCompare(b.name); return a.name.localeCompare(b.name);
}); });
rows = []; rows = [];
for (id in results) { for (id in results) {
var entry = results[id]; var entry = results[id];
var club = null; var club = null;
if (entry['club'] != null) if (entry['club'] != null)
club = await dbGetData('clubs', entry['club']); club = await dbGetData('clubs', entry['club']);
var row = { keywords: [], content: '' }; var row = { keywords: [], content: '' };
row.keywords.push(entry['name']); row.keywords.push(entry['name']);
if (entry['year'] != null) row.keywords.push(entry['year']); if (entry['year'] != null) row.keywords.push(entry['year']);
if (club != null) row.keywords.push(club['kurz'], club['name']); if (club != null) row.keywords.push(club['kurz'], club['name']);
row.content += '<div onclick="onListClicked(' + entry['id'] + ');">'; row.content += '<div onclick="onListClicked(' + entry['id'] + ');">';
// ZEILE 1 // ZEILE 1
// Name // Name
row.content += '<div><b>' + entry['name'] + '</b></div>'; row.content += '<div><b>' + entry['name'] + '</b></div>';
// ZEILE 2 // ZEILE 2
row.content += '<div>'; row.content += '<div>';
// Year // Year
row.content += '<div>' + ((entry['year'] != null) ? (entry['year']) : '') + '</div>'; row.content += '<div>' + ((entry['year'] != null) ? (entry['year']) : '') + '</div>';
// Club // Club
row.content += '<div>' + ((club != null) ? club['kurz'] : '') + '</div>'; row.content += '<div>' + ((club != null) ? club['kurz'] : '') + '</div>';
row.content += '</div></div>'; row.content += '</div></div>';
rows.push(row); rows.push(row);
} }
reSearch(); reSearch();
} else { } else {
$('#p-count').html('Keine Segler gefunden!'); $('#p-count').html('Keine Segler gefunden!');
$('#div-list').hide(); $('#div-list').hide();
$('#input-search').parent().hide(); $('#input-search').parent().hide();
} }
hideLoader(); hideLoader();
} }

View File

@@ -1,5 +1,5 @@
<?php <?php
define('PWA_VERSION', '1.8'); define('PWA_VERSION', '1.9.2');
?> ?>