/** * Created by nik on 01.10.15. * location.reload(); * $window.location.reload(); */ var i = false; var angular; app.controller('PulseCtrl', function ($scope, $http, /*$cookies,*/ $modal) { $scope.mngEl = true; $scope.mngImg = true; getUserAndLot(); // Записываем в $scop открывшего страницу и лот getLog(); $scope.upBid = function (bidForm) { if (bidForm.chkbox === true && $scope.data.leftTimeStop !== 'Торги закінчені!' && $scope.data.last_user !== $scope.data.member_user_id) { var urlId = window.location.search; var dataPUT = {}; dataPUT.last_user = $scope.data.member_user_id; dataPUT.price_in = $scope.data.next_price; $scope.mngEl = false; $scope.mngImg = false; setTimeout(function () { return $scope.mngImg = true }, 2000); $http({ method: 'PUT', url: '/auction/' + urlId.substring(4), data: dataPUT }).then( function successClbck(data) { //---------------------------------------------------- if (~!['1', '2', '3'].indexOf(data.data)) { setTimeout(function () { var content; switch (data.data) { case '1': content = 'Ваша цінова пропозиція прийнята'; break; case '2': content = 'Ваша цінова пропозиція є найвищою, Ви не можете запропонувати наступну'; break; case '3': content = 'Запропонована Вами цінова пропозиція вже не є актуальною'; break } $modal({ title: 'Повідомлення', content: content, show: true, templateUrl: '../modal.tpl.html' }); }, 100); } //---------------------------------------------------- }); angular.element(document.querySelector("#chkbx")).attr("checked", false); bidForm.chkbox = false; delete $scope.data.leftTimeStop; delete $scope.data.last_user; // Делаем ставку отправляя только пользователя и лот } else { $modal({ title: 'Повідомлення', content: 'Заборонено робити кілька ставок поспіль, чи без підтвердження!', show: true, templateUrl: '../modal.tpl.html' }); bidForm.chkbox = false; delete $scope.data.leftTimeStop; delete $scope.data.last_user; angular.element(document.querySelector("#chkbx")).attr("checked", false); } }; function getUserAndLot() { // получаем основные данные $http({ method: 'GET', url: '/auction/' + window.location.search }).then( function successClbck(data) { $scope.type_id = true; data = data.data[0]; $scope.user_role = data.user_role; $scope.member_user_id = data.member_user_id; $scope.pulse = new Date(data.current_time * 1000); //---------------------------------------------------- if (data.type_id === 2) $scope.type_id = false; // определяем тип торгов, если 2 убираем видимость "Зміна ціни" if (data.status === 1) { $scope.date_stop_show = false; $scope.left_time_stop = false; $scope.left_time_start = true; $scope.control = false; $scope.bid_stop = false; } // State view 2 - Bidding; else if (data.status === 2) { $scope.status = 2; $scope.left_time_start = false; $scope.date_stop_show = true; $scope.left_time_stop = true; $scope.control = true; $scope.bid_stop = false; } // State view 3 - Post bidding +++++ else if (data.status === 3 || data.status === 4) { $scope.date_stop_show = true; $scope.left_time_stop = false; $scope.control = false; $scope.bid_stop = true; $scope.mngEl = true; } data.timeRich = getTimeRemaining(data.time); data.next_price = data.next_price === data.step_money ? data.start_price : data.next_price; // логика отключает removeClass('disabled') у кнопки если цикл уже раз пройден chkbx if (i !== true) angular.element(document.querySelector("#chkbx #submit")).removeClass('disabled'); i = true; $scope.data = data; setTimeout(function () { $scope.$apply(); }, 100); //---------------------------------------------------- }, function errorClbck(data, status, headers, config) { }); } function getLog() { // получаем лог $http({ method: 'GET', url: '/trade' + window.location.search }).then(function (data) { $scope.logBid = data.data; setTimeout(function () { $scope.$apply(); }, 100); }); } setInterval(function () { getUserAndLot(); getLog(); }, 5000); $scope.$watch('logBid', function () { setTimeout(function () { if ($scope.logBid[0] && ($scope.logBid[0].user_id !== $scope.data.member_user_id)) { $scope.mngEl = true; } else if ($scope.logBid[0] && ($scope.logBid[0].user_id === $scope.data.member_user_id)) { $scope.mngEl = false; } }, 100); }); function getTimeRemaining(t) { var seconds = Math.floor(t % 60); var minutes = Math.floor((t / 60) % 60); var hours = Math.floor((t / (60 * 60)) % 24); var regexp = /^\d$/; hours = regexp.test(hours) === true ? '0' + hours : hours; minutes = regexp.test(minutes) === true ? '0' + minutes : minutes; seconds = regexp.test(seconds) === true ? '0' + seconds : seconds; return hours + ':' + minutes + ':' + seconds; } setInterval(function () { if ($scope.data.time > 0) { //var time = $scope.data.time $scope.data.time--; $scope.data.timeRich = getTimeRemaining($scope.data.time); $scope.$apply(); } }, 1000); });