| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- /**
- * 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);
- });
|