X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=js%2Fkivi.CustomerVendor.js;h=59c07354edf70ab6df6d9f6823df01bf57b5ecc7;hb=8cfebdfabd53d6234392298fa3f76ada02dbc845;hp=371434c21793a69a47006df1e41ac0889485ddc1;hpb=4cb3a9081f02797bedd522b0f01539a0d9c0b3b3;p=kivitendo-erp.git diff --git a/js/kivi.CustomerVendor.js b/js/kivi.CustomerVendor.js index 371434c21..59c07354e 100644 --- a/js/kivi.CustomerVendor.js +++ b/js/kivi.CustomerVendor.js @@ -1,6 +1,6 @@ -namespace('kivi.CustomerVendor', function() { +namespace('kivi.CustomerVendor', function(ns) { - this.selectShipto = function() { + this.selectShipto = function(params) { var shiptoId = $('#shipto_shipto_id').val(); if( shiptoId ) { @@ -11,12 +11,18 @@ namespace('kivi.CustomerVendor', function() { $(document.getElementById('shipto_'+ key)).val(data[key]); $('#action_delete_shipto').show(); + + if( params.onFormSet ) + params.onFormSet(); }); } else { $('#shipto :input').not(':button, :submit, :reset, :hidden').val(''); $('#action_delete_shipto').hide(); + + if( params.onFormSet ) + params.onFormSet(); } }; @@ -35,62 +41,116 @@ namespace('kivi.CustomerVendor', function() { } }; - this.selectContact = function() { + this.selectContact = function(params) { var contactId = $('#contact_cp_id').val(); - if( contactId ) { - var url = 'controller.pl?action=CustomerVendor/ajaj_get_contact&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&contact_id='+ contactId; + var url = 'controller.pl?action=CustomerVendor/ajaj_get_contact&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&contact_id='+ contactId; - $.getJSON(url, function(data) { - var contact = data.contact; - for(var key in contact) - $(document.getElementById('contact_'+ key)).val(contact[key]); + $.getJSON(url, function(data) { + var contact = data.contact; + for(var key in contact) + $(document.getElementById('contact_'+ key)).val(contact[key]) - var cvars = data.contact_cvars; - for(var key in cvars) - $(document.getElementById('contact_cvar_'+ key)).val(cvars[key]); + var cvars = data.contact_cvars; + for(var key in cvars) + $(document.getElementById('contact_cvars_'+ key)).val(cvars[key]); + if ( contactId ) $('#action_delete_contact').show(); - }); - } - else { - $('#contacts :input').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected'); + else + $('#action_delete_contact').hide(); - $('#action_delete_contact').hide(); - } + if ( params.onFormSet ) + params.onFormSet(); + }); $('#contact_cp_title_select, #contact_cp_abteilung_select').val(''); }; - - this.showMap = function(prefix) { - var searchStmts = [ - '#street', - ', ', - '#zipcode', - ' ', - '#city', - ', ', - '#country' - ]; - - var searchString = ""; - - for(var i in searchStmts) { - var stmt = searchStmts[i]; - if( stmt.charAt(0) == '#' ) { - var val = $('#'+ prefix + stmt.substring(1)).val(); - if( val ) - searchString += val; + var mapSearchStmts = [ + '#street', + ', ', + '#zipcode', + ' ', + '#city', + ', ', + '#country' + ]; + + this.MapWidget = function(prefix) + { + var $mapSearchElements = []; + var $widgetWrapper; + + var init = function() { + if( $mapSearchElements.length > 0 ) + return; + + for(var i in mapSearchStmts) { + var stmt = mapSearchStmts[i]; + if( stmt.charAt(0) == '#' ) { + var $elem = $('#'+ prefix + stmt.substring(1)); + if( $elem ) + $mapSearchElements.push($elem); + } } - else - searchString += stmt; - } + }; + + var isNotEmpty = function() { + for(var i in $mapSearchElements) + if( ($mapSearchElements[i].attr('id') != prefix + 'country') && ($mapSearchElements[i].val() == '') ) + return false; + return true; + }; + + var showMap = function() { + var searchString = ""; + + for(var i in mapSearchStmts) { + var stmt = mapSearchStmts[i]; + if( stmt.charAt(0) == '#' ) { + var val = $('#'+ prefix + stmt.substring(1)).val(); + if( val ) + searchString += val; + } + else + searchString += stmt; + } + + var url = 'https://maps.google.com/maps?q='+ encodeURIComponent(searchString); + + window.open(url, '_blank'); + window.focus(); + }; + + var render = function(widgetWrapper) { + init(); - var url = 'https://maps.google.com/maps?q='+ encodeURIComponent(searchString); + $widgetWrapper = $(widgetWrapper); + + $widgetWrapper + .html(''+ kivi.t8(') + .click(function() { + showMap(); + }); + for(var i in $mapSearchElements) + $mapSearchElements[i].keyup(function() { + testInputs(); + }); + this.testInputs(); + }; + + var testInputs = function() { + init(); + + if( isNotEmpty() ) + $widgetWrapper.show(); + else + $widgetWrapper.hide(); + }; - window.open(url, '_blank'); - window.focus(); + this.render = render; + this.testInputs = testInputs; }; this.showHistoryWindow = function(id) {