PageSourceSearch

https://www.droz.org/shop/js/customer.js?clientCacheVersion=20250927112400

js droz.org collected 2026-09-24 09:37:35 UTC 5,545 bytes, 177 lines download raw bytes

1var dressOrders = function(root) {
2	var orders = root.querySelector('#orders');
3	if (orders) {
4		[].forEach.call(orders.querySelectorAll('tr.order'), function(order) {
5			order.addEventListener('click', function(event) {
6				var unfold = !order.classList.contains('detailed');
7				var popup = orders.dataset.popup !== undefined && orders.dataset.popup == 'true';
8				[].forEach.call(orders.querySelectorAll('tr.detailed'), function(detailed) {
9					detailed.classList.remove('detailed');
10				});
11				[].forEach.call(orders.querySelectorAll('tr.details'), function(details) {
12					details.parentNode.removeChild(details);
13				});
14				if (unfold || popup) {
15					invokeZord({
16						module: 'Account',
17						action: 'order',
18						code: order.dataset.code,
19						success: function(result) {
20							if (popup) {
21								$.fancybox.open({
22									src: '<div><div id="current" class="payment"><div style="min-width:800px;">' + result + '</div></div></div>',
23									type     : 'inline',
24									autoFocus: false,
25									touch    : false,
26									afterShow: function() {
27										$("div.card.address *.data").prop("disabled", true);
28										$("#comments").prop("disabled", true);
29									}
30								});
31							} else {
32								order.classList.add('detailed');
33								row = root.createElement('tr');
34								row.classList.add('details');
35								cell = root.createElement('td');
36								cell.setAttribute('colspan', order.childElementCount);
37								cell.innerHTML = result;
38								row.appendChild(cell);
39								order.parentNode.insertBefore(row, order.nextElementSibling);
40								dressCurrency(row);
41								$("div.card.address *.data").prop("disabled", true);
42								$("#comments").prop("disabled", true);
43							}
44						}
45					});
46				}
47			});
48		});
49	}
50}
51
52var dressCustomer = function(root) {
53	
54	var getPanel = function() {
55		return getSessionProperty('customer.panel', 'identity');
56	}
57
58	var setPanel = function(panel) {
59		setSessionProperty('customer.panel', panel);
60	}
61
62	var isPanel = function(panel) {
63		return panel == getPanel();
64	}
65
66	var display = function() {
67		[].forEach.call(root.querySelectorAll('td.tab, div.panel'), function(element) {
68			element.classList.remove('current');
69			if (isPanel(element.dataset.panel)) {
70				element.classList.add('current');
71				if (element.classList.contains('panel') && element.querySelectorAll('div.slide').length > 0) {
72					slidePosition(element);
73				}
74			}
75		});
76	};
77	
78	var displayAddress = function(addresses) {
79		var select = root.querySelector('#aliases select');
80		[].forEach.call(addresses.querySelectorAll('div.entry.address'), function(address) {
81			address.style.display = 'none';
82		});
83		var address = document.getElementById('address[' + select.value + ']');
84		if (address) {
85			address.style.display = 'block';
86		}
87	}
88
89	var panels = root.querySelector('#panels');
90	if (panels) {
91		var panel = panels.dataset.panel;
92		if (panels.querySelector('div.panel[data-panel="' + panel + '"]')) {
93			setPanel(panel);
94		}
95	}	
96	var tabs = root.querySelector('#tabs');
97	if (tabs) {
98		[].forEach.call(tabs.querySelectorAll('td.tab'), function(tab) {
99			tab.addEventListener('click', function(event) {
100				setPanel(tab.dataset.panel);
101				display();
102			});
103		});
104	}
105	
106	display();
107	dressOrders(root);
108	
109	var addresses = root.querySelector('#addresses');
110	if (addresses) {
111		[].forEach.call(root.querySelectorAll('div.card.address'), function (address) {
112			bindAddress(address);
113		});
114		displayAddress(addresses);
115		$('#addresses select.data').selectmenu();
116		$('#aliases select').selectmenu({
117			change: function() {
118				displayAddress(addresses);
119			}
120		});
121		root.addEventListener('address', function(event) {
122			var button = event.detail;
123			switch (button.dataset.action) {
124				case 'delete': {
125					var deleted = document.getElementById('address[' + button.dataset.alias + ']');
126					var selected = root.querySelector('#aliases select option[value="' + button.dataset.alias + '"]');
127					deleted.parentNode.removeChild(deleted);
128					selected.parentNode.removeChild(selected);
129					root.querySelector('#aliases select').value = '_create_';
130					$('#aliases select').selectmenu('refresh');
131					displayAddress(addresses);
132					break;
133				}
134				case 'create': {
135					var template = document.getElementById('address[_create_]');
136					var alias = template.querySelector('.data[data-type="alias"]').value
137					var created = template.cloneNode(true);
138					created.id = 'address[' + alias + ']';
139					created.querySelector('.data[data-type="alias"]').value = alias;
140					created.querySelector('tr.alias').style.display = 'none';
141					var selected = root.querySelector('#aliases select option[value="_create_"]');
142					var option = root.createElement('option');
143					option.value = alias;
144					option.appendChild(root.createTextNode(alias));
145					template.parentNode.insertBefore(created, template);
146					selected.parentNode.insertBefore(option, selected);
147					selected.parentNode.value = alias
148					$('#aliases select').selectmenu('refresh');
149					displayAddress(addresses);
150					bindAddress(created);
151					[].forEach.call(template.querySelectorAll('.data'), function(element) {
152						switch (element.dataset.type) {
153							case 'name':
154							case 'email': {
155								element.value = USER[element.dataset.type];
156								break;
157							}
158							case 'confirm': {
159								element.value = USER.email;
160								break;
161							}
162							case 'country': {
163								break;
164							}
165							default: {
166								element.value = '';
167								break;
168							}
169						}
170					});
171				break;
172				}
173			}
174		});
175	}
176	
177}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.