pyc-website
main website for pyc inc.
git clone https://9o.is/git/pyc-website.git
FindAtm.js
(4741B)
1 angular.module("FindAtm", ['Forms', 'ngAlert', 'AtmHelper', 'Variables'])
2
3 .controller('NearAtmNotifyAlert', ['$scope', '$controller', function($scope, $controller) {
4 $controller('AlertCtrl', {$scope: $scope});
5
6 $scope.$on('alertNearAtm', function(event, alert) {
7 $scope.addAlert(alert);
8 });
9 }])
10
11
12 .controller('FindAtmCtrl', ['$scope', '$timeout', '$location', '$anchorScroll', '$controller', '$rootScope', function($scope, $timeout, $location, $anchorScroll, $controller, $rootScope) {
13 $controller('LoadedFormCtrl', {$scope: $scope, $controller: $controller});
14 $controller('AtmHelperFuncs', {$scope: $scope});
15 $controller('VariablesCtrl', {$scope: $scope});
16
17 $scope.init('FindAtm', 'init', function() {
18
19 $scope.markers = angular.copy($scope.model);
20 $scope.featuredMarker = $scope.markers[0];
21 $scope.currentMarker = $scope.featuredMarker;
22 $scope.model = {};
23 /*
24 $scope.map.center = {
25 latitude: $scope.featuredMarker.loc.latitude,
26 longitude: $scope.featuredMarker.loc.longitude
27 };
28 */
29 setDynamicMarkers();
30 $scope.mapLoaded = true;
31 });
32
33 $scope.nonfound = false;
34
35 $scope.mapExpanded = window.innerWidth < $scope.screen_xs;
36
37 $scope.expandMap = function() {
38 $scope.mapExpanded = true;
39 $location.hash("locations");
40 $anchorScroll();
41 };
42
43 $scope.zoomIn = function() {
44 $scope.map.zoom = $scope.map.zoom + 1;
45 };
46
47 $scope.zoomOut = function() {
48 $scope.map.zoom = $scope.map.zoom - 1;
49 };
50
51 $scope.search = function() {
52 var success = function(alert) {
53 $scope.nonfound = false;
54
55 if(alert.data) {
56 $scope.markers = angular.copy(alert.data);
57 $scope.currentMarker = $scope.markers[0];
58 $scope.map.center = angular.copy($scope.currentMarker.loc);
59 setDynamicMarkers();
60 }
61 };
62
63 var failure = function(alert) {
64 $scope.nonfound = true;
65
66 if(alert.data.loc) {
67 $scope.map.center = alert.data.loc;
68 }
69 };
70
71 $scope.submit('FindAtm', 'submit', success, failure);
72 };
73
74 $scope.markers = [];
75 $scope.featuredMarker = {};
76
77 var setDynamicMarkers = function() { $timeout(function() {
78 var dynamicMarkers = $scope.markers;
79
80 _.each(dynamicMarkers, function(marker) {
81 marker.closeClick = function() {
82 marker.showWindow = false;
83 $scope.currentMarker = null;
84 $scope.$apply();
85 };
86 marker.onClicked = function() {
87 $scope.onMarkerClicked(marker);
88 };
89 });
90
91 $scope.map.dynamicMarkers = dynamicMarkers;
92 google.maps.event.trigger(mapObj, 'resize');
93 }, 2000); };
94
95 /** Google Map Object */
96 var mapObj = null;
97
98 $scope.map = {
99 center: {
100 latitude: 40.752867,
101 longitude: -73.984452
102 },
103 zoom: 12,
104 dynamicMarkers: [],
105 markers: {
106 fit: false
107 },
108 icon: "https://s3.amazonaws.com/assets-pyc/blue_marker2.png",
109 events: {
110 tilesloaded: function (map) {
111 $scope.$apply(function () {
112 mapObj = map;
113 });
114 }/*,
115 resize: function (map) {
116 $scope.$apply(function () {
117
118 // pan view on resize (markers were added to map)
119 if(window.innerWidth >= screen_md) {
120 map.panBy(-150,-150);
121 } else if(window.innerWidth >= $scope.screen_xs) {
122 map.panBy(0,-250);
123 } else {
124 map.panBy(0,-40);
125 }
126 });
127 }*/
128 },
129 infoWindow: {
130 options: {
131 pixelOffset: { 'width': 0, 'height': -44 }
132 }
133 }
134 };
135
136 $scope.currentMarker = {};
137
138 $scope.onMarkerClicked = function(marker) {
139 if ($scope.currentMarker) {
140 $scope.currentMarker.closeClick();
141 }
142 $scope.currentMarker = marker;
143 marker.showWindow = true;
144 $scope.$apply();
145 };
146
147
148 $scope.searchPlaceholder = function() {
149
150 if($scope.currentMarker) {
151 var marker = $scope.currentMarker;
152 return marker.address + ", " + marker.city + ", " + marker.state;
153 }
154
155 return "Search address, business name ... ";
156 };
157
158 $scope.notification = {};
159
160 $scope.notifyEmail = function() {
161 var success = function(alert) {
162 $scope.notify_loading = false;
163 $rootScope.$broadcast('alertNearAtm', alert);
164 $scope.notification = {};
165 };
166
167 var failure = function(alert) {
168 $scope.notify_loading = false;
169 $rootScope.$broadcast('alertNearAtm', alert);
170 };
171
172 $scope.notify_loading = true;
173 $scope.submit('FindAtm', 'notifyEmail', success, failure, $scope.notification, $scope.notify_loading);
174 };
175
176
177 // set the map open
178 $scope.mapExpanded = true;
179
180 }])
181
182 .controller('AtmProfileCtrl', ['$scope', '$controller', function($scope, $controller) {
183 $controller('LoadedFormCtrl', {$scope: $scope, $controller: $controller});
184 $controller('AtmHelperFuncs', {$scope: $scope});
185
186 $scope.init('AtmProfile', 'init');
187 }]);