Last active
August 29, 2015 14:23
-
-
Save alexey-sh/7eabcb100041460e88d3 to your computer and use it in GitHub Desktop.
all is clear for me now
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
orders_list_app.constant('User', { | |
auth : ('False' == 'True') ? true : false, | |
contractor : ('' == 'True') ? true : false, | |
user_id : ('False' == 'True') ? None : false | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$scope.go = function(data){ | |
$scope.newOrdersAmount = null; | |
if(!User.auth){ | |
if(data.category_id){ | |
$scope.currentCategory = data.category_id; | |
} else if(data.region_id){ | |
$scope.currentRegion = data.region_id; | |
} | |
} else if(User.auth && !User.contractor){ | |
if(data.category_id){ | |
if($scope.currentCategory){ | |
var currentCategoriesArr = $scope.currentCategory.toString().split(','), | |
index = _.indexOf(currentCategoriesArr, data.category_id.toString()); | |
if(index != -1){ | |
currentCategoriesArr.splice(index, 1); | |
} else { | |
currentCategoriesArr.push(data.category_id); | |
} | |
$scope.currentCategory = currentCategoriesArr.join(','); | |
} else { | |
$scope.currentCategory = data.category_id; | |
} | |
} else if(data.region_id){ | |
$scope.currentRegion = data.region_id; | |
} | |
} else if(User.auth && User.contractor){ | |
if(docCookies.hasItem("filterId_"+User.user_id)){ // удаляем фильтр из куки, если есть | |
docCookies.removeItem("filterId_"+User.user_id); | |
} | |
delete $scope.myOrdersFilter; | |
delete $scope.myOffersFilter; | |
delete $scope.openedOrdersFilter; | |
delete $scope.closedOrdersFilter; | |
delete $scope.currentFilter; | |
delete $scope.currentFilterObject; | |
delete $scope.filterDescription; | |
if(data.only){ | |
$scope.myOrdersFilter = true; | |
$interval.cancel($scope.inervalPromise); | |
$scope.inervalPromise = null; | |
} else if(data.is_published){ | |
$scope.openedOrdersFilter = true; | |
} else if(data.is_closed){ | |
$scope.closedOrdersFilter = true; | |
} else if(data.my_offers){ | |
$scope.myOffersFilter = true; | |
$interval.cancel($scope.inervalPromise); | |
$scope.inervalPromise = null; | |
} | |
} | |
if($scope.currentPage != 1){ // при изменении количества категорий, если мы не на первой странице переходим на неё | |
$scope.currentPage = 1; | |
} | |
$scope.loadOrders(); | |
}; | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function further(){ | |
if(User.auth && User.contractor) { // если мастер | |
if($scope.myOffersFilter){ | |
orders_params.my_offers = true; | |
orders = MyOffers.query(orders_params).$promise, | |
orders_amount = MyOffersNum.query().$promise; | |
$scope.mainTitle = "С моим ответом"; | |
} else { | |
if($scope.currentFilter){ | |
orders_params.filter_id = $scope.currentFilter; | |
orders_num_params.filter_id = $scope.currentFilter; | |
} else if($scope.myOrdersFilter){ | |
orders_params.only = 'my'; | |
orders_num_params.only = 'my'; | |
$scope.mainTitle = "Мои заказы"; | |
} else if($scope.closedOrdersFilter){ | |
orders_params.is_published = false; | |
orders_num_params.is_published = false; | |
$scope.mainTitle = "Закрытые заказы"; | |
} else if($scope.openedOrdersFilter){ | |
orders_params.is_published = true; | |
orders_num_params.is_published = true; | |
$scope.mainTitle = "Открытые заказы"; | |
} else { | |
$scope.mainTitle = "Все заказы"; | |
} | |
orders = Orders.query(orders_params).$promise, | |
orders_amount = OrdersNum.query(orders_num_params).$promise | |
} | |
} else { // для всех остальных | |
if($scope.currentCategory) { | |
if(User.auth){ | |
var arrCategories = $scope.currentCategory.toString().split(','), innerCategoryArr = []; | |
angular.forEach($scope.rootCategories, function(root_category){ | |
angular.forEach(arrCategories, function(currentCategory){ | |
if(root_category.id == currentCategory){ | |
angular.forEach(root_category.categories, function(innerCategory){ | |
innerCategoryArr.push(innerCategory.id); | |
}); | |
} | |
}); | |
}); | |
orders_params.categories_id = innerCategoryArr.join(','); | |
orders_num_params.categories_id = innerCategoryArr.join(','); | |
} else { | |
angular.forEach($scope.rootCategories, function(root_category){ | |
angular.forEach(root_category.categories, function(category){ | |
if(category.id == $scope.currentCategory){ | |
title = "Заказы из категории "+category.title; | |
} | |
}); | |
}); | |
orders_params.categories_id = $scope.currentCategory; | |
orders_num_params.categories_id = $scope.currentCategory; | |
} | |
}; | |
if($scope.currentRegion){ | |
orders_params.region_id = $scope.currentRegion; | |
orders_num_params.region_id = $scope.currentRegion; | |
Regions.query({region_id:$scope.currentRegion}, function(region){ | |
$scope.currentRegionName = region[0].name; | |
if(!title){ | |
if(User.auth){ | |
$scope.mainTitle = 'Заказы, ' + $scope.currentRegionName; | |
} else { | |
$scope.mainTitle = 'Все заказы, ' + $scope.currentRegionName; | |
} | |
} else { | |
$scope.mainTitle = title + ', ' + $scope.currentRegionName; | |
} | |
}); | |
orderQuery(); | |
} else { | |
if(!title){ | |
if(User.auth){ | |
$scope.mainTitle = 'Заказы'; | |
} else { | |
$scope.mainTitle = 'Все заказы'; | |
} | |
} else { | |
$scope.mainTitle = title; | |
} | |
orderQuery(); | |
} | |
} | |
if(first_load){ // подгружаем объемы и собственные заказы только при первой загрузке | |
budgets = Budgets.query().$promise; | |
if(User.auth && !User.contractor){ | |
my_orders = Orders.query({only: "my"}).$promise; | |
} | |
} | |
$q.all([ | |
orders, | |
orders_amount, | |
budgets, | |
my_orders | |
]).then(function(data) { | |
$scope.orders = data[0]; | |
$scope.orders_amount = data[1].amount; | |
if(data[2]){ | |
$scope.budgets = data[2]; | |
} | |
if(data[3]){ | |
$scope.my_orders = data[3]; | |
} | |
if(first_load){ | |
$scope.$emit('pageunload'); | |
} else { | |
$scope.$emit('unload'); | |
} | |
if(!$scope.inervalPromise && !orders_params.my_offers && !orders_params.only){ | |
$scope.inervalPromise = $interval($scope.poll, 5000); | |
} | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment