Karten-Icon nur anzeigen, wenn eine Adresse angegeben ist
[kivitendo-erp.git] / js / kivi.CustomerVendor.js
1 namespace('kivi.CustomerVendor', function(ns) {
2
3   var kivi = namespace('kivi');
4
5   this.selectShipto = function(params) {
6     var shiptoId = $('#shipto_shipto_id').val();
7
8     if( shiptoId ) {
9       var url = 'controller.pl?action=CustomerVendor/ajaj_get_shipto&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&shipto_id='+ shiptoId;
10
11       $.getJSON(url, function(data) {
12         for(var key in data)
13           $(document.getElementById('shipto_'+ key)).val(data[key]);
14
15         $('#action_delete_shipto').show();
16
17         if( params.onFormSet )
18           params.onFormSet();
19       });
20     }
21     else {
22       $('#shipto :input').not(':button, :submit, :reset, :hidden').val('');
23
24       $('#action_delete_shipto').hide();
25
26       if( params.onFormSet )
27         params.onFormSet();
28     }
29   };
30
31   this.selectDelivery = function(fromDate, toDate) {
32     var deliveryId = $('#delivery_id').val();
33
34     if( !deliveryId )
35       $("#delivery").empty();
36     else {
37       var url = 'controller.pl?action=CustomerVendor/get_delivery&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&shipto_id='+ $('#delivery_id').val();
38
39       if( fromDate && toDate )
40         url += '&delivery_from='+ fromDate +'&delivery_to='+ toDate;
41
42       $('#delivery').load(url);
43     }
44   };
45
46   this.selectContact = function(params) {
47     var contactId = $('#contact_cp_id').val();
48
49     if( contactId ) {
50       var url = 'controller.pl?action=CustomerVendor/ajaj_get_contact&id='+ $('#cv_id').val() +'&db='+ $('#db').val() +'&contact_id='+ contactId;
51
52       $.getJSON(url, function(data) {
53         var contact = data.contact;
54         for(var key in contact)
55           $(document.getElementById('contact_'+ key)).val(contact[key])
56
57         var cvars = data.contact_cvars;
58         for(var key in cvars)
59           $(document.getElementById('contact_cvar_'+ key)).val(cvars[key]);
60
61         $('#action_delete_contact').show();
62
63         if( params.onFormSet )
64           params.onFormSet();
65       });
66     }
67     else {
68       $('#contacts :input').not(':button, :submit, :reset, :hidden').val('').removeAttr('checked').removeAttr('selected');
69
70       $('#action_delete_contact').hide();
71
72       if( params.onFormSet )
73         params.onFormSet();
74     }
75
76     $('#contact_cp_title_select, #contact_cp_abteilung_select').val('');
77   };
78
79   var mapSearchStmts = [
80     '#street',
81     ', ',
82     '#zipcode',
83     ' ',
84     '#city',
85     ', ',
86     '#country'
87   ];
88
89   this.showMapWidget = function(prefix, widgetWrapper) {
90     var result = {
91     };
92
93     $(function(){
94
95       widgetWrapper = $(widgetWrapper);
96
97       var mapSearchElements = [];
98       for(var i in mapSearchStmts) {
99         var stmt = mapSearchStmts[i];
100         if( stmt.charAt(0) == '#' ) {
101           var elem = $('#'+ prefix + stmt.substring(1));
102           if( elem )
103             mapSearchElements.push(elem);
104         }
105       }
106
107       var isNotEmpty = function() {
108         for(var i in mapSearchElements)
109           if( mapSearchElements[i].val() == '' )
110             return false;
111         return true;
112       };
113
114       widgetWrapper
115         .html('<img src="image/map.png" alt="'+ kivi.t8("Map") +'" title="'+ kivi.t8("Map") +'" />')
116         .click(function(){
117           ns.showMap(prefix);
118         });
119
120       var testInputs = function() {
121         if( isNotEmpty() )
122           widgetWrapper.show();
123         else
124           widgetWrapper.hide();
125       };
126
127       result.testInputs = testInputs;
128
129       $(mapSearchElements)
130         .map(function() {
131           return this.toArray();
132         })
133         .keyup(testInputs)
134
135       if( !isNotEmpty() )
136         widgetWrapper.hide();
137
138     });
139
140     return result;
141   };
142
143   this.showMap = function(prefix) {
144     var searchString = "";
145
146     for(var i in mapSearchStmts) {
147       var stmt = mapSearchStmts[i];
148       if( stmt.charAt(0) == '#' ) {
149         var val = $('#'+ prefix + stmt.substring(1)).val();
150         if( val )
151           searchString += val;
152       }
153       else
154         searchString += stmt;
155     }
156
157     var url = 'https://maps.google.com/maps?q='+ encodeURIComponent(searchString);
158
159     window.open(url, '_blank');
160     window.focus();
161   };
162
163   this.showHistoryWindow = function(id) {
164     var xPos = (screen.width - 800) / 2;
165     var yPos = (screen.height - 500) / 2;
166     var parm = "left="+ xPos +",top="+ yPos +",width=800,height=500,status=yes,scrollbars=yes";
167     var url = "common.pl?INPUT_ENCODING=UTF-8&action=show_history&longdescription=&input_name="+ encodeURIComponent(id);
168     window.open(url, "_new_generic", parm);
169   };
170 });