Bug 36298: In patrons search fix road type with authorized value
[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.authorised_value] = r.lib;
11             return map;
12         }, {});
13
14         function member_display_address_style_us(data, line_break, include_li) {
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] : data.street_type;
21                     }
22                     address += include_li ? '<li class="patronaddress1">' : '';
23                     address += escape_str(data.street_number) + ' ' + escape_str(data.address) + ' ' + escape_str(roadtype_desc);
24                     address += include_li ? '</li>' : '';
25                 }
26             }
27             if ( data.address2 ) {
28                 address += include_li ? '<li class="patronaddress2">' : ' ';
29                 address += escape_str(data.address2);
30                 address += include_li ? '</li>' : '';
31             }
32             if ( data.city || data.postal_code || data.state || data.country ) {
33                 address += include_li ? '<li class="patroncity">' : ' ';
34                 address += escape_str(data.city);
35                 if ( data.state ) {
36                     if ( data.city ) {
37                         address += ', ';
38                     }
39                     address += escape_str(data.state);
40                 }
41                 if ( data.postal_code ) {
42                     address += " " + escape_str(data.postal_code);
43                 }
44                 if ( data.country ) {
45                     if ( data.postal_code || data.state || data.city ) {
46                         address += ', ';
47                     }
48                     address += escape_str(data.country)
49                 }
50                 address += include_li ? '</li>' : '';
51             }
52
53             return address;
54         }
55
56         function member_display_address_style_de(data, line_break, include_li) {
57             let address = "";
58             if ( data.address || data.address2 ) {
59                 if ( data.address ) {
60                     let roadtype_desc = '';
61                     if ( data.street_type ) {
62                         roadtype_desc = roadtypes_map[data.street_type] ? roadtypes_map[data.street_type] : data.street_type;
63                     }
64                     address += include_li ? '<li class="patronaddress1">' : ' ';
65                     address += escape_str(data.address) + ' ' + escape_str(roadtype_desc) + ' ' + escape_str(data.street_number);
66                     address += include_li ? '</li>' : '';
67                 }
68             }
69             if ( data.address2 ) {
70                 address += include_li ? '<li class="patronaddress2">' : ' ';
71                 address += escape_str(data.address2);
72                 address += include_li ? '</li>' : '';
73             }
74             if ( data.city || data.postal_code || data.state || data.country ) {
75                 address += include_li ? '<li class="patroncity">' : ' ';
76                 address += escape_str(data.postal_code) + ' ' + escape_str(data.city);
77                 address += data.state   ? line_break + escape_str(data.state)   : '';
78                 address += data.country ? line_break + escape_str(data.country) : '';
79                 address += include_li ? '</li>' : '';
80             }
81
82             return address;
83         }
84
85         function member_display_address_style_fr(data, line_break, include_li) {
86             let address = "";
87             if ( data.address || data.address2 ) {
88                 if ( data.address ) {
89                     let roadtype_desc = '';
90                     if ( data.street_type ) {
91                         roadtype_desc = roadtypes_map[data.street_type] ? roadtypes_map[data.street_type] : data.street_type;
92                     }
93                     address += include_li ? '<li class="patronaddress1">' : '';
94                     address += escape_str(data.street_number) + ' ' + escape_str(roadtype_desc) + ' ' + escape_str(data.address);
95                     address += include_li ? '</li>' : '';
96                 }
97             }
98             if ( data.address2 ) {
99                 address += include_li ? '<li class="patronaddress2">' : ' ';
100                 address += escape_str(data.address2);
101                 address += include_li ? '</li>' : '';
102             }
103             if ( data.city || data.postal_code || data.state || data.country ) {
104                 address += include_li ? '<li class="patroncity">' : ' ';
105                 address += escape_str(data.postal_code) + ' ' + escape_str(data.city);
106                 address += data.state   ? line_break + escape_str(data.state)   : '';
107                 address += data.country ? line_break + escape_str(data.country) : '';
108                 address += include_li ? '</li>' : '';
109             }
110
111             return address;
112         }
113
114         window.$format_address = function(data, options) {
115             let line_break = options && options.no_line_break ? ' ' : '<br/>';
116             let include_li = options && options.include_li;
117             [%~ IF Koha.Preference( 'AddressFormat' ) ~%]
118                 return member_display_address_style_[% Koha.Preference( 'AddressFormat' ) | html %](data, line_break, include_li);
119             [%~ ELSE ~%]
120                 return member_display_address_style_us(data, line_break, include_li);
121             [%~ END ~%]
122         }
123
124     })();
125 </script>
126 <!-- / js-patron-format-address.inc -->