Bug 16522: (follow-up) MARC display templates and get_marc_host fixes
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / includes / js-patron-format-address.inc
1 <!-- js-patron-format-address.inc -->
2 [% USE raw %]
3 [% USE To %]
4 [% USE AuthorisedValues %]
5 <script>
6     (function() {
7
8         const roadtypes = [% To.json(AuthorisedValues.Get('ROADTYPE')) | $raw %];
9         let roadtypes_map = roadtypes.reduce((map, r) => {
10             map[r.street_type] = r;
11             return map;
12         }, {});
13
14         function member_display_address_style_us(data, line_break) {
15             let address = "";
16             if ( data.address || data.address2 ) {
17                 if ( data.address ) {
18                     let roadtype_desc = '';
19                     if ( data.street_type ) {
20                         roadtype_desc = roadtypes_map[data.street_type] ? roadtypes_map[data.street_type].street_type : data.street_type;
21                     }
22                     address += '<li class="patronaddress1">' + escape_str(data.street_number) + ' ' + escape_str(data.address) + ' ' + escape_str(roadtype_desc) + '</li>';
23                 }
24             }
25             if ( data.address2 ) {
26                 address += '<li class="patronaddress2">' + escape_str(data.address2) + '</li>'
27             }
28             if ( data.city || data.postal_code || data.state || data.country ) {
29                 address += '<li class="patroncity">' + escape_str(data.city);
30                 if ( data.state ) {
31                     if ( data.city ) {
32                         address += ', ';
33                     }
34                     address += escape_str(data.city);
35                 }
36                 if ( data.postal_code ) {
37                     address += " " + escape_str(data.postal_code);
38                 }
39                 if ( data.country ) {
40                     if ( data.postal_code || data.state || data.city ) {
41                         address += ', ';
42                     }
43                     address += escape_str(data.country)
44                 }
45                 address += '</li>'
46             }
47
48             return address;
49         }
50
51         function member_display_address_style_de(data, line_break) {
52             let address = "";
53             if ( data.address || data.address2 ) {
54                 if ( data.address ) {
55                     let roadtype_desc = '';
56                     if ( data.street_type ) {
57                         roadtype_desc = roadtypes_map[data.street_type] ? roadtypes_map[data.street_type].street_type : data.street_type;
58                     }
59                     address += '<li class="patronaddress1">' + escape_str(data.address) + ' ' + escape_str(roadtype_desc) + escape_str(data.street_number) + '</li>';
60                 }
61             }
62             if ( data.address2 ) {
63                 address += '<li class="patronaddress2">' + escape_str(data.address2) + '</li>'
64             }
65             if ( data.city || data.postal_code || data.state || data.country ) {
66                 address += '<li class="patroncity">';
67                 address += escape_str(data.postal_code) + ' ' + escape_str(data.city);
68                 address += data.state   ? line_break + escape_str(data.state)   : '';
69                 address += data.country ? line_break + escape_str(data.country) : '';
70                 address += '</li>'
71             }
72
73             return address;
74         }
75
76         function member_display_address_style_fr(data, line_break) {
77             let address = "";
78             if ( data.address || data.address2 ) {
79                 if ( data.address ) {
80                     let roadtype_desc = '';
81                     if ( data.street_type ) {
82                         roadtype_desc = roadtypes_map[data.street_type] ? roadtypes_map[data.street_type].street_type : data.street_type;
83                     }
84                     address += '<li class="patronaddress1">' + escape_str(data.street_number) + ' ' + escape_str(roadtype_desc) + escape_str(data.address) + '</li>';
85                 }
86             }
87             if ( data.address2 ) {
88                 address += '<li class="patronaddress2">' + escape_str(data.address2) + '</li>'
89             }
90             if ( data.city || data.postal_code || data.state || data.country ) {
91                 address += '<li class="patroncity">';
92                 address += escape_str(data.postal_code) + ' ' + escape_str(data.city);
93                 address += data.state   ? line_break + escape_str(data.state)   : '';
94                 address += data.country ? line_break + escape_str(data.country) : '';
95                 address += '</li>'
96             }
97
98             return address;
99         }
100
101         window.$format_address = function(data, options) {
102             let line_break = options && options.no_line_break ? ' ' : '<br/>';
103             [%~ IF Koha.Preference( 'AddressFormat' ) ~%]
104                 return member_display_address_style_[% Koha.Preference( 'AddressFormat' ) | html %](data, line_break);
105             [%~ ELSE ~%]
106                 return member_display_address_style_us(data, line_break);
107             [%~ END ~%]
108         }
109
110     })();
111 </script>
112 <!-- / js-patron-format-address.inc -->