PageSourceSearch

https://gruponovelec.com/_ui/responsive/common/js/acc.savedcarts.js

js gruponovelec.com collected 2026-09-29 16:06:59 UTC 10,868 bytes, 292 lines download raw bytes

1ACC.savedcarts = {
2
3    _autoload: [
4        ["bindRestoreSavedCartClick", $(".js-restore-saved-cart").length != 0],
5        ["bindDeleteSavedCartLink", $('.js-delete-saved-cart').length != 0],
6        ["bindDeleteConfirmLink", $('.js-savedcart_delete_confirm').length != 0],
7        ["bindSaveCartForm", $(".js-save-cart-link").length != 0 || $(".js-update-saved-cart").length != 0],
8        ["bindUpdateUploadingSavedCarts", $(".js-uploading-saved-carts-update").length != 0]
9    ],
10    
11    $savedCartRestoreBtn: {},
12    $currentCartName: {},
13
14    bindRestoreSavedCartClick: function () {
15        $(".js-restore-saved-cart").click(function (event) {
16                    
17            event.preventDefault();
18            var popupTitle = $(this).data('restore-popup-title');
19            var cartId = $(this).data('savedcart-id');
20            var url = ACC.config.encodedContextPath +'/my-account/saved-carts/'+cartId+'/restore';
21
22            $.get(url).done(function (data) {
23                ACC.colorbox.open(popupTitle, {
24                    html: data,
25                    width: 500,
26                    onComplete: function () {
27                        ACC.common.refreshScreenReaderBuffer();
28                        ACC.savedcarts.bindRestoreModalHandlers();
29                        ACC.savedcarts.bindPostRestoreSavedCartLink();
30                    },
31                    onClosed: function () {
32                        ACC.common.refreshScreenReaderBuffer();
33                    }
34                });
35            });
36        });
37    },
38
39    bindRestoreModalHandlers: function () {
40
41        ACC.savedcarts.$savedCartRestoreBtn= $('.js-save-cart-restore-btn');
42        ACC.savedcarts.$currentCartName= $('.js-current-cart-name');
43
44        $(".js-prevent-save-active-cart").on('change', function (event) {
45            if($(this).prop('checked') === true){
46                ACC.savedcarts.$currentCartName.attr('disabled', 'disabled');
47                ACC.savedcarts.$savedCartRestoreBtn.removeAttr('disabled');
48            } else {
49                ACC.savedcarts.$currentCartName.removeAttr('disabled');
50                var inputVal = ACC.savedcarts.$currentCartName.val();
51                if (inputVal == "" && inputVal.length === 0) {
52                    ACC.savedcarts.$savedCartRestoreBtn.attr('disabled', 'disabled');
53                }
54            }
55        });
56
57        ACC.savedcarts.$currentCartName.on('focus', function (event) {
58            $('.js-restore-current-cart-form').removeClass('has-error');
59            $('.js-restore-error-container').html('');
60        });
61
62        ACC.savedcarts.$currentCartName.on('blur', function (event) {
63            if (this.value == "" && this.value.length === 0) {
64                ACC.savedcarts.$savedCartRestoreBtn.attr('disabled', 'disabled');
65            } else {
66                ACC.savedcarts.$savedCartRestoreBtn.removeAttr('disabled');
67            }
68        });
69    },
70
71    bindPostRestoreSavedCartLink: function () {
72        var keepRestoredCart = true;
73        var preventSaveActiveCart = false;
74
75        $(document).on("click", '.js-keep-restored-cart', function (event) {
76            keepRestoredCart = $(this).prop('checked');
77        });
78
79        $(document).on("click", '.js-prevent-save-active-cart', function (event) {
80            preventSaveActiveCart = $(this).prop('checked');
81        });
82
83        $(document).on("click", '.js-save-cart-restore-btn', function (event) {
84        	
85            event.preventDefault();
86            var cartName = $('#activeCartName').val();
87            var url = $(this).data('restore-url');
88            var postData = {preventSaveActiveCart: preventSaveActiveCart, keepRestoredCart: keepRestoredCart, cartName: cartName};
89            $.post(url, postData).done(function (result, data, status) {
90                if (result == "200") {
91                    var url = ACC.config.encodedContextPath + "/cart"
92                    window.location.replace(url);
93                } else {
94                    var errorMsg = status.responseText.slice(1, -1);
95                    $('.js-restore-current-cart-form').addClass('has-error');
96                    $('.js-restore-error-container').html(errorMsg);
97                    $('.js-savedcart_restore_confirm_modal').colorbox.resize();
98                }
99            });
100        });
101
102        $(document).on("click", '.js-cancel-restore-btn', function (event) {
103            ACC.colorbox.close();
104        });
105    },
106
107    bindDeleteSavedCartLink: function () {
108        $(document).on("click", '.js-delete-saved-cart', function (event) {
109            event.preventDefault();
110            var cartId = $(this).data('savedcart-id');
111            var popupTitle = $(this).data('delete-popup-title');
112
113            ACC.colorbox.open(popupTitle, {
114                inline: true,
115                className: "js-savedcart_delete_confirm_modal",
116                href: "#popup_confirm_savedcart_delete_" + cartId,
117                width: '500px',
118                onComplete: function () {
119                    $(this).colorbox.resize();
120                }
121            });
122        });
123    },
124
125    bindDeleteConfirmLink: function () {
126        $(document).on("click", '.js-savedcart_delete_confirm', function (event) {
127            event.preventDefault();
128            var cartId = $(this).data('savedcart-id');
129            var url = ACC.config.encodedContextPath + '/my-account/saved-carts/' + cartId + '/delete';
130            $.ajax({
131                url: url,
132                type: 'DELETE',
133                success: function (response) {
134                    ACC.colorbox.close();
135                    var url = ACC.config.encodedContextPath + "/my-account/saved-carts"
136                    window.location.replace(url);
137                }
138            });
139        });
140
141        $(document).on("click", '.js-savedcart_delete_confirm_cancel', function (event) {
142            ACC.colorbox.close();
143        });
144    },
145    
146    bindSaveCartForm: function ()
147	{
148    	ACC.savedcarts.charactersLeftInit();
149		var form = $('#saveCartForm');
150		var saveCart = false;
151        var showSaveCartFormCallback = function () {
152        var title = $('#saveCart').data("saveCartTitle");
153          
154            ACC.colorbox.open(title, {
155                href: "#saveCart",
156                inline: true,
157                width: "620px",
158                onOpen: function () {
159                    if ($('#saveCartName').val()) {
160                        ACC.savedcarts.disableSaveCartButton(false);
161                    }
162                },
163                onComplete: function () {
164                    $(this).colorbox.resize();
165                    saveCart = false;
166                },
167                onClosed: function () {
168
169                    if (saveCart) {
170                        form.submit();
171                    }
172                    document.getElementById("saveCartForm").reset();
173                    ACC.savedcarts.disableSaveCartButton(true);
174                    ACC.savedcarts.charactersLeftInit();
175                }
176            });
177        };
178
179        $(document).on("click",".js-save-cart-link, .js-update-saved-cart",function(e){
180            e.preventDefault();
181            ACC.common.checkAuthenticationStatusBeforeAction(showSaveCartFormCallback);
182		});
183		
184		$(document).on("click",'#saveCart #cancelSaveCartButton', function (e) {
185			e.preventDefault();
186			$.colorbox.close();
187		});
188		
189		$('#saveCartName').keyup(function() {		
190			// enable the save cart button
191	 		$('#saveCart #saveCartButton').prop('disabled', this.value.trim() == "" ? true : false);  	
192			// limit the text length 
193            var maxchars = 255;
194			var value=$('#localized_val').attr('value');
195			var tlength = $(this).val().length;
196			remain = maxchars - parseInt(tlength);
197        	$('#remain').text(value+' : '+remain);
198		});
199		
200         $('#saveCartDescription').keyup(function() {
201			var maxchars = 255;
202			var value=$('#localized_val').attr('value');
203			var tlength = $(this).val().length;
204			remain = maxchars - parseInt(tlength);
205        	$('#remainTextArea').text(value+' : '+remain);
206		});
207		
208		$(document).on("click",'#saveCart #saveCartButton', function (e) {
209			e.preventDefault();
210			saveCart = true;
211			$.colorbox.close();
212		});
213	},
214	
215	charactersLeftInit: function() {
216	    $('#remain').text($('#localized_val').attr('value')+' : 255');
217     	$('#remainTextArea').text($('#localized_val').attr('value')+' : 255');
218	},
219	
220	disableSaveCartButton: function(value) {
221		$('#saveCart #saveCartButton').prop('disabled', value);
222	},
223	
224
225	bindUpdateUploadingSavedCarts : function() {
226		var cartIdRowMapping = $(".js-uploading-saved-carts-update").data("idRowMapping");
227		var refresh = $(".js-uploading-saved-carts-update").data("refreshCart");
228		if (cartIdRowMapping && refresh) {
229			var interval = $(".js-uploading-saved-carts-update").data("refreshInterval");
230			var arrCartIdAndRow = cartIdRowMapping.split(',');
231			var mapCartRow = new Object();
232			var cartCodes = [];
233			for (i = 0; i < arrCartIdAndRow.length; i++) {
234				var arrValue = arrCartIdAndRow[i].split(":");
235				if (arrValue != "") {
236					mapCartRow[arrValue[0]] = arrValue[1];
237					cartCodes.push(arrValue[0]);
238				}
239			}
240
241			if (cartCodes.length > 0) {
242				setTimeout(function() {ACC.savedcarts.refreshWorker(cartCodes, mapCartRow, interval)}, interval);
243			}	
244		}
245	},
246	
247
248	refreshWorker : function(cartCodes, mapCartRow, interval) {
249		$.ajax({
250			dataType : "json",
251			url : ACC.config.encodedContextPath	+ '/my-account/saved-carts/uploadingCarts',
252			data : {
253				cartCodes : cartCodes
254			},
255			type : "GET",
256			traditional : true,
257			success : function(data) {
258				if (data != undefined) {
259					var hidden = "hidden";
260					var rowId = "#row-";
261					for (i = 0; i < data.length; i++) {
262						var cart = data[i];
263
264						var index = $.inArray(cart.code, cartCodes);
265						if (index > -1) {
266							cartCodes.splice(index, 1)
267						}	
268						var rowIdIndex = mapCartRow[cart.code]; 
269						if (rowIdIndex != undefined) {
270							var rowSelector = rowId + rowIdIndex;
271							$(rowSelector + " .js-saved-cart-name").removeClass("not-active");
272							$(rowSelector + " .js-saved-cart-date").removeClass("hidden");
273							$(rowSelector + " .js-file-importing").remove();
274							$(rowSelector + " .js-saved-cart-description").text(cart.description);
275							var numberOfItems = cart.entries.length;
276							$(rowSelector + " .js-saved-cart-number-of-items").text(numberOfItems);
277							$(rowSelector + " .js-saved-cart-total").text(cart.totalPrice.formattedValue);
278							if (numberOfItems > 0) {
279								$(rowSelector + " .js-restore-saved-cart").removeClass(hidden);
280							}
281							$(rowSelector + " .js-delete-saved-cart").removeClass(hidden);
282						}
283					}
284				};
285				
286				if (cartCodes.length > 0) {
287					setTimeout(function() {ACC.savedcarts.refreshWorker(cartCodes, mapCartRow, interval)}, interval);
288				}
289			}
290		})
291	}
292}

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.