dynamicweb/datacenterlight/static/datacenterlight/js/main.js

195 lines
5.9 KiB
JavaScript
Raw Normal View History

(function($) {
"use strict"; // Start of use strict
/* ---------------------------------------------
Scripts initialization
--------------------------------------------- */
var cardPricing = {
'cpu': {
'id': 'coreValue',
'value': 1,
'min': 1,
'max': 48,
'interval': 1
},
'ram': {
'id': 'ramValue',
'value': 2,
'min': 2,
'max': 200,
'interval': 1
},
'storage': {
'id': 'storageValue',
'value': 10,
'min': 10,
'max': 2000,
'interval': 10
}
2017-07-27 19:34:23 +00:00
};
$(window).load(function() {
});
$(document).ready(function() {
verifiedUrl();
_navScroll();
_initScroll();
_initNavUrl();
_initPricing();
ajaxForms();
});
$(window).resize(function() {
2017-05-18 05:13:00 +00:00
});
/* ---------------------------------------------
Nav panel classic
--------------------------------------------- */
if (window.matchMedia("(min-width: 767px)").matches) {
$('ul.nav li.dropdown').hover(function() {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn(500);
}, function() {
$(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut(500);
});
} else {
/* the viewport is less than 400 pixels wide */
2017-05-18 05:13:00 +00:00
}
function _initScroll() {
$(window).scroll(function() {
_navScroll();
});
2017-05-23 17:06:48 +00:00
}
function _navScroll() {
if ($(window).scrollTop() > 10) {
$(".navbar").removeClass("navbar-transparent");
$(".navbar-default .btn-link").css("color", "#777");
$(".dropdown-menu").removeClass("navbar-transparent");
$(".dropdown-menu > li > a").css("color", "#777");
} else {
$(".navbar").addClass("navbar-transparent");
$(".navbar-default .btn-link").css("color", "#fff");
$(".dropdown-menu").addClass("navbar-transparent");
$(".dropdown-menu > li > a").css("color", "#fff");
}
}
2017-05-23 17:06:48 +00:00
function _initNavUrl() {
$('.url-init').each(function(idx, el) {
var $this = $(el);
var currentPath = window.location.pathname;
var thisPaths = $this.attr('href').split('#')
if ($this.hasClass('dropdown-toggle') && window.matchMedia("(max-width: 767px)").matches) {
$this.removeClass('url-init');
$this.attr('href', '');
} else if ($('#'+thisPaths[1]).length) {
$this.removeClass('url-init').addClass('url');
$this.attr('href', '#' + thisPaths[1]);
} else {
$this.removeClass('url-init');
}
});
$('.url').click(function(event) {
event.preventDefault();
var href = $(this).attr('href');
$('.navbar-collapse').removeClass('in');
$('.navbar-collapse').addClass('collapsing');
2017-07-29 13:07:56 +00:00
if ($(href).length) {
$('html, body').animate({
scrollTop: $(href).offset().top
}, 1000);
}
});
}
function verifiedUrl() {
if (window.location.href.indexOf('#success') > -1) {
form_success();
}
}
function _initPricing() {
_fetchPricing();
$('.fa-minus-circle.left').click(function(event) {
var data = $(this).data('minus');
if (cardPricing[data].value > cardPricing[data].min) {
cardPricing[data].value = Number(cardPricing[data].value) - cardPricing[data].interval;
}
_fetchPricing();
});
$('.fa-plus-circle.right').click(function(event) {
var data = $(this).data('plus');
if (cardPricing[data].value < cardPricing[data].max) {
cardPricing[data].value = Number(cardPricing[data].value) + cardPricing[data].interval;
}
_fetchPricing();
});
$('.input-price').change(function() {
var data = $(this).attr("name");
cardPricing[data].value = $('input[name=' + data + ']').val();
_fetchPricing();
});
}
function _fetchPricing() {
Object.keys(cardPricing).map(function(element) {
//$('#'+cardPricing[element].id).val(cardPricing[element].value);
$('input[name=' + element + ']').val(cardPricing[element].value);
});
_calcPricing();
}
function _calcPricing() {
var total = (cardPricing['cpu'].value * 5) + (2 * cardPricing['ram'].value) + (0.6 * cardPricing['storage'].value);
total = parseFloat(total.toFixed(2));
$("#total").text(total);
$('input[name=total]').val(total);
}
function form_success() {
$('#sucessModal').modal('show');
}
function _calculate(numbers, price) {
$('#valueTotal').text(numbers * price * 31);
}
function ajaxForms() {
$('body').on('submit', '.ajax-form', function(e){
e.preventDefault();
var $form = $(this);
$form.find('[type=submit]').addClass('sending');
$.ajax({
url: $form.attr('action'),
type: $form.attr('method'),
data: $form.serialize(),
success: function(response) {
var responseContain = $($form.attr('data-response'));
responseContain.html(response);
$form.find('[type=submit]').removeClass('sending');
},
error: function() {
$form.find('[type=submit]').removeClass('sending');
$form.find('.form-error').removeClass('hide');
}
});
})
}
})(jQuery);