//portal.js //custom javascript for functionality function validate_hostname() {//required var fieldtext = document.getElementById("order_hostname_input").value; if(! ( /^[a-z0-9]+(-[a-z0-9]+)*([\.][a-z0-9]+(-[a-z0-9]+)*)*$/.test(fieldtext) ) ) { $("#hostnamerequired").css("display", "inline-block"); //document.getElementById("#order_hostname_input").focus();//'firstname' //$(scrollid).scrollTop();//"#firstnamerequired" $('html, body').animate({scrollTop: $("#hostnamerequired").offset().top -100 }, 'slow'); //alert('Illegial hostname format!'); return false; } return true; } function validate_termbox() {//required //here we check term agreement first: if(!document.getElementById('termservicecheckboxclassid').checked) { $("#termservicerequired").show(); return false; }else{ $("#termservicerequired").hide(); } //to prevent double click $('.orderpw_commit').addClass('disabled'); return true; } $('.adduberclient').click(function() { var client_id = prompt("Please enter uber client_id", "1234"); if (client_id != null) { $.ajax({ method: "POST", // url: "https://portalbackend.innoscale.net/uber_clients/add", url: 'https://portalbackend.innoscale.net' + "/uber_clients/add", data: {"uber_client_id":client_id} }) .done(function( data ) { //var ddata; //TODO: set date return result format with error handling fields alert('debug! result:'+data); if( data.search(/error/) != -1 ){//if(ddata['status']=='error'){ alert('Order status :error!, '+data); } if( data.search(/success/)!= -1 ){// if(ddata['status']=='success'){ alert("Uber Client :"+client_id+", added result: "+JSON.stringify(data)); //here we show result order succes info page: //$('#order_submit_form').html(data); //$('.order_commit').click(function() { order_commit_handler($(this)); } ); //$("#order_submit_form").scrollTop(); //TODO: format data for user final page info } }) .fail(function( data ) { alert('Error uber client add! result:'+JSON.stringify(data)); }); } return false; }); //menu $(".menu .menu_link").each(function(i) { if(this.href==document.location.href){ $(this).parent(".menu").addClass("active"); } }); //$( document ).ready(function() {}); //display ssh key textarea $('#orderform').on('click', '#order_sshkey_add', function() { $('#order_sshkey_add_div').toggle(); }); //order_period $('#orderform').on('click','.order_period',function(){ var order_item_l=document.getElementsByClassName('order_period active'); radio_check(false,order_item_l[0].getAttribute('id')); radio_check(true,$(this).attr('id')); }); //location selection $('#orderform').on('click', '.order_location', function() { $('.order_location').addClass('desaturate'); $(this).removeClass('desaturate'); var order_item_l=document.getElementsByClassName('order_location active'); radio_check(false,order_item_l[0].getAttribute('id')); radio_check(true,$(this).attr('id')); }); $('#orderform').on('mouseenter', '.order_location', function () { $(this).removeClass("desaturate"); }); $('#orderform').on('mouseleave', '.order_location', function () { $(this).removeClass("desaturate"); }); /*$('#orderform').on('mouseenter', '.order_location', function () { $(this).removeClass("desaturate"); });*/ $('#orderform').on('mouseleave', '.order_location', function () { if (!$(this).hasClass("active")) { $(this).addClass("desaturate"); } }); //management selection //console.log('11111111'); $('body').on('click', '.order_management', function() { // console.log('123454'); if ($(this).attr("id") == 'order_management_full') { $('#order_management_desc').show(); $('.order_management_desc_monitoring').show(); $('.order_management_desc_reactive').show(); $('.order_management_desc_proactive').show(); $('.order_management_desc_full').show(); $('.order_management_desc_full').removeClass('hidden'); } if ($(this).attr("id") == 'order_management_proactive') { $('#order_management_desc').show(); $('.order_management_desc_info').hide(); $('.order_management_desc_monitoring').show(); $('.order_management_desc_reactive').show(); $('.order_management_desc_proactive').show(); } if ($(this).attr("id") == 'order_management_reactive') { $('#order_management_desc').show(); $('.order_management_desc_info').hide(); $('.order_management_desc_monitoring').show(); $('.order_management_desc_reactive').show(); } if ($(this).attr("id") == 'order_management_monitoring') { $('#order_management_desc').show(); $('.order_management_desc_info').hide(); $('.order_management_desc_monitoring').show(); } if ($(this).attr("id") == 'order_management_none') { $('#order_management_desc').hide(); $('.order_management_desc_info').hide(); } var order_item_l=document.getElementsByClassName('order_management active'); radio_check(false,order_item_l[0].getAttribute('id')); var a_class_name=order_item_l[0].getAttribute('class'); var i_class_name = a_class_name.replace(' active',''); order_item_l[0].setAttribute('class',i_class_name); $(this).toggleClass('active'); radio_check(true,$(this).attr('id')); calc_summary_price(); }); //Summarize function ram_numeric(ram_text){ var ram_val_str = /[0-9]+/.exec(ram_text); var ram_val_dimm = /[MG]B/.exec(ram_text); var ram_val = parseFloat(ram_val_str); if(ram_val_dimm == "GB") ram_val = ram_val * 1024; return ram_val; } $('#orderform').on('click', '.order_resources', function(){ //'change' //get target ram var clicked_ram_input = this.getElementsByClassName('order_resources_radio'); var clicked_ram_text_value = clicked_ram_input[0].getAttribute('value'); if( clicked_ram_text_value == "512MB RAM"){//check for window minimum disk = 30gb //alert("clicked_ram_text_value:" + clicked_ram_text_value + "os_windows active:" + document.getElementsByClassName('order_os_windows active').length); if(document.getElementsByClassName('order_os_windows active').length > 0){ return false; } } //get active ssd var active_order_ssd = document.getElementsByClassName('order_ssd active'); var active_constraints = active_order_ssd[0].getElementsByClassName("ssd_constraints"); var active_constraints_text_value = active_constraints[0].innerHTML; if( ram_numeric( active_constraints_text_value ) > ram_numeric( clicked_ram_text_value ) ){//find max ssd accepted for limit of ram var order_ssd = document.getElementsByClassName('order_ssd'); var ssd_max_index = 0; var ssd_max_avail = 0; for (var i = 0; i < order_ssd.length; i++) { var constraints = order_ssd[i].getElementsByClassName("ssd_constraints"); var constraints_text_value = constraints[0].innerHTML; var constraints_value = ram_numeric(constraints_text_value); if( constraints_value <= ram_numeric( clicked_ram_text_value )){ if( constraints_value >= ssd_max_avail ){ ssd_max_avail = constraints_value; ssd_max_index = i; } } } switch_active_ssd( order_ssd[ssd_max_index] ); // alert("ssd to change to: " + order_ssd[ssd_max_index].getElementsByClassName("ssd_constraints")[0].innerHTML ); } //alert("active_constraints:" + ram_numeric(active_constraints_text_value) +" , clicked_resource_input.value:"+ ram_numeric(clicked_ram_text_value) ); switch_active_ram(this); calc_summary_price(); }); function switch_active_ram( activate_ram ){ var order_resources=document.getElementsByClassName('order_resources active'); radio_check(false,order_resources[0].getAttribute('id')); var a_class_name=order_resources[0].getAttribute('class'); var i_class_name = a_class_name.replace(' active',''); order_resources[0].setAttribute('class',i_class_name); $(activate_ram).toggleClass('active'); radio_check(true, activate_ram.getAttribute('id') ); } function switch_active_ssd( activate_ssd ){ var order_item_l=document.getElementsByClassName('order_ssd active'); radio_check(false,order_item_l[0].getAttribute('id')); var a_class_name=order_item_l[0].getAttribute('class'); var i_class_name = a_class_name.replace(' active',''); order_item_l[0].setAttribute('class',i_class_name); $(activate_ssd).toggleClass('active');// $(this).toggleClass('active'); radio_check(true, $(activate_ssd).attr('id') ); } $('#orderform').on('click', '.order_ssd', function(){ //get active ram var active_order_ram=document.getElementsByClassName('order_resources active'); var active_ram_input = active_order_ram[0].getElementsByClassName('order_resources_radio'); var active_ram_text_value = active_ram_input[0].getAttribute('value'); //get target ssd var clicked_constraints = this.getElementsByClassName("ssd_constraints"); var clicked_constraints_text_value = clicked_constraints[0].innerHTML; if( ram_numeric( clicked_constraints_text_value ) > ram_numeric( active_ram_text_value ) ){//find min ram accepted for limit of ssd var order_ram = document.getElementsByClassName('order_resources'); //first we find maximum ram index exist var ram_min_index = 0; var ram_min_avail = 0; for (var i = 0; i < order_ram.length; i++) { var ram_input = order_ram[i].getElementsByClassName("order_resources_radio"); var ram_input_text_value = ram_input[0].getAttribute('value'); var ram_input_value = ram_numeric(ram_input_text_value); if( ram_input_value >= ram_min_avail ){ ram_min_avail = ram_input_value; ram_min_index = i; } } //here we decrease maximum ram to minimum avail for (var i = 0; i < order_ram.length; i++) { var ram_input = order_ram[i].getElementsByClassName("order_resources_radio"); var ram_input_text_value = ram_input[0].getAttribute('value'); var ram_input_value = ram_numeric(ram_input_text_value); if( ram_input_value >= ram_numeric( clicked_constraints_text_value )){ if( ram_input_value <= ram_min_avail ){ ram_min_avail = ram_input_value; ram_min_index = i; } } } switch_active_ram( order_ram[ram_min_index] ); // alert("ram to change to: " + order_ram[ram_min_index].getElementsByClassName("order_resources_radio")[0].getAttribute('value') ); } //alert("active_ram:" + ram_numeric(active_ram_text_value) +" , clicked_constraints_text_value:"+ ram_numeric(clicked_constraints_text_value) ); switch_active_ssd( this ); calc_summary_price(); }); /*Patch by Bob put instances in one upgrade group*/ $('#orderform').on('click', '.order_instance_type_button', function(){ enable_instance_type(this.id); enable_os('order_os_linux_centos',false); currentid = this.id;//instance_type_id; instance_summary_dsk_class = currentid.replace('order_instance_type_','instance_summary_'); instance_summary_dsk_class = instance_summary_dsk_class + '_dsk'; enable_dsk(instance_summary_dsk_class); calc_summary_price(); }); //os selection function enable_os(os_id,need_grey){ var order_item_l=document.getElementsByClassName('order_os_button active'); radio_check(false,order_item_l[0].getAttribute('id')); var a_class_name=order_item_l[0].getAttribute('class'); var i_class_name = a_class_name.replace(' active',''); order_item_l[0].setAttribute('class',i_class_name); $('#'+os_id).toggleClass('active'); $('.order_os_button').addClass('desaturate'); radio_check(true,os_id); if(need_grey){ $('#'+os_id).removeClass('desaturate'); } if( os_id === 'order_os_windows') { var order_item_l=$('.order_ssd.active'); var activedisksizeid=order_item_l.attr('id'); var diskspace = parseInt(/[0-9]+/.exec(activedisksizeid)); if(diskspace<20){ //required by onapp //here we switch to 30 gb sdd item and disable $('#order_30ssd').click(); $('#order_30ssd').prevAll().addClass('disabled'); } } else { $('#order_30ssd').prevAll().removeClass('disabled'); } } function radio_check(enable,parent_label_id){ var label_src = document.getElementById(parent_label_id); var inputs_src = label_src.getElementsByTagName('input'); var input_src = inputs_src.length ? inputs_src[0] : null; if(enable){ input_src.setAttribute('checked',enable);//true|false } else { input_src.removeAttribute('checked');//true|false } } function enable_instance_type(instance_type_id){ var order_item_l=document.getElementsByClassName('order_instance_type_button active'); radio_check(false,order_item_l[0].getAttribute('id')); var a_class_name=order_item_l[0].getAttribute('class'); var i_class_name = a_class_name.replace(' active',''); order_item_l[0].setAttribute('class',i_class_name); $('#'+instance_type_id).toggleClass('active'); $('.order_instance_type_button').addClass('desaturate'); $('#'+instance_type_id).removeClass('desaturate'); //here we switch input checked attrib to instanse_type_id radio_check(true,instance_type_id); } function enable_dsk(instance_summary_dsk_class){ var order_item_l = document.getElementsByClassName('instance_summary_dsk'); //first hide all: for($i=0;$i