Browse Source

Shop basket progress

Vova Tkach 5 years ago
parent
commit
ccc653b5a5
2 changed files with 68 additions and 30 deletions
  1. 34 15
      assets/template/scripts_js_file.go
  2. 34 15
      hosts/localhost/template/scripts.js

+ 34 - 15
assets/template/scripts_js_file.go

@@ -27,7 +27,26 @@ var VarScriptsJsFile = []byte(`(function(window, $) {
 			});
 		};
 
-		function ShopSetBasketNavBtnProductsCount(value) {
+		function ShopBasketBlockObject(object) {
+			if(object && !$(object).hasClass('click-blocked')) {
+				$(object).addClass('click-blocked');
+			}
+		};
+
+		function ShopBasketUnBlockObject(object) {
+			if(object && $(object).hasClass('click-blocked')) {
+				$(object).removeClass('click-blocked');
+			}
+		};
+
+		function ShopBasketObjectIsNotBlocked(object) {
+			if(!object) {
+				return false;
+			}
+			return !$(object).hasClass('click-blocked');
+		};
+
+		function ShopBasketSetNavBtnProductsCount(value) {
 			$('#basket-nav-btn .badge').html(value);
 		};
 
@@ -61,7 +80,7 @@ var VarScriptsJsFile = []byte(`(function(window, $) {
 
 		function ShopBasketAjaxUpdateCount() {
 			ShopBasketAjaxGetCount(function(count) {
-				ShopSetBasketNavBtnProductsCount(count);
+				ShopBasketSetNavBtnProductsCount(count);
 			});
 		};
 
@@ -87,57 +106,57 @@ var VarScriptsJsFile = []byte(`(function(window, $) {
 		// Public
 		return {
 			ShopBasketOpen: function(object) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 
-					// ShopSetBasketNavBtnProductsCount(0);
+					// ShopBasketSetNavBtnProductsCount(0);
 					// console.log('ShopOpenBasket', object);
 
-					$(object).removeClass('click-blocked');
+					ShopBasketUnBlockObject(object);
 				}
 				return false;
 			},
 
 			ShopBasketProductPlus: function(object, product_id) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 					ShopBasketAjaxCommand('plus', product_id, function(data) {
 						// console.log('success', data, product_id);
 					}, function(xhr, status, error) {
 						// console.log('fail', xhr, status, error, product_id);
 					}, function() {
 						ShopBasketAjaxUpdateCount();
-						$(object).removeClass('click-blocked');
+						ShopBasketUnBlockObject(object);
 					});
 				}
 				return false;
 			},
 
 			ShopBasketProductMinus: function(object, product_id) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 					ShopBasketAjaxCommand('minus', product_id, function(data) {
 						// console.log('success', data, product_id);
 					}, function(xhr, status, error) {
 						// console.log('fail', xhr, status, error, product_id);
 					}, function() {
 						ShopBasketAjaxUpdateCount();
-						$(object).removeClass('click-blocked');
+						ShopBasketUnBlockObject(object);
 					});
 				}
 				return false;
 			},
 
 			ShopBasketProductRemove: function(object, product_id) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 					ShopBasketAjaxCommand('remove', product_id, function(data) {
 						// console.log('success', data, product_id);
 					}, function(xhr, status, error) {
 						// console.log('fail', xhr, status, error, product_id);
 					}, function() {
 						ShopBasketAjaxUpdateCount();
-						$(object).removeClass('click-blocked');
+						ShopBasketUnBlockObject(object);
 					});
 				}
 				return false;

+ 34 - 15
hosts/localhost/template/scripts.js

@@ -25,7 +25,26 @@
 			});
 		};
 
-		function ShopSetBasketNavBtnProductsCount(value) {
+		function ShopBasketBlockObject(object) {
+			if(object && !$(object).hasClass('click-blocked')) {
+				$(object).addClass('click-blocked');
+			}
+		};
+
+		function ShopBasketUnBlockObject(object) {
+			if(object && $(object).hasClass('click-blocked')) {
+				$(object).removeClass('click-blocked');
+			}
+		};
+
+		function ShopBasketObjectIsNotBlocked(object) {
+			if(!object) {
+				return false;
+			}
+			return !$(object).hasClass('click-blocked');
+		};
+
+		function ShopBasketSetNavBtnProductsCount(value) {
 			$('#basket-nav-btn .badge').html(value);
 		};
 
@@ -59,7 +78,7 @@
 
 		function ShopBasketAjaxUpdateCount() {
 			ShopBasketAjaxGetCount(function(count) {
-				ShopSetBasketNavBtnProductsCount(count);
+				ShopBasketSetNavBtnProductsCount(count);
 			});
 		};
 
@@ -85,57 +104,57 @@
 		// Public
 		return {
 			ShopBasketOpen: function(object) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 
-					// ShopSetBasketNavBtnProductsCount(0);
+					// ShopBasketSetNavBtnProductsCount(0);
 					// console.log('ShopOpenBasket', object);
 
-					$(object).removeClass('click-blocked');
+					ShopBasketUnBlockObject(object);
 				}
 				return false;
 			},
 
 			ShopBasketProductPlus: function(object, product_id) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 					ShopBasketAjaxCommand('plus', product_id, function(data) {
 						// console.log('success', data, product_id);
 					}, function(xhr, status, error) {
 						// console.log('fail', xhr, status, error, product_id);
 					}, function() {
 						ShopBasketAjaxUpdateCount();
-						$(object).removeClass('click-blocked');
+						ShopBasketUnBlockObject(object);
 					});
 				}
 				return false;
 			},
 
 			ShopBasketProductMinus: function(object, product_id) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 					ShopBasketAjaxCommand('minus', product_id, function(data) {
 						// console.log('success', data, product_id);
 					}, function(xhr, status, error) {
 						// console.log('fail', xhr, status, error, product_id);
 					}, function() {
 						ShopBasketAjaxUpdateCount();
-						$(object).removeClass('click-blocked');
+						ShopBasketUnBlockObject(object);
 					});
 				}
 				return false;
 			},
 
 			ShopBasketProductRemove: function(object, product_id) {
-				if(!$(object).hasClass('click-blocked')) {
-					$(object).addClass('click-blocked');
+				if(ShopBasketObjectIsNotBlocked(object)) {
+					ShopBasketBlockObject(object);
 					ShopBasketAjaxCommand('remove', product_id, function(data) {
 						// console.log('success', data, product_id);
 					}, function(xhr, status, error) {
 						// console.log('fail', xhr, status, error, product_id);
 					}, function() {
 						ShopBasketAjaxUpdateCount();
-						$(object).removeClass('click-blocked');
+						ShopBasketUnBlockObject(object);
 					});
 				}
 				return false;