-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
executable file
·62 lines (49 loc) · 1.54 KB
/
script.js
File metadata and controls
executable file
·62 lines (49 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Code goes here
(function() {
var app = angular.module("githubViewer", []);
var MainController = function($scope, github, $interval, $log,
$anchorScroll, $location) {
$scope.search = function(username) {
$log.info("Searching for " + username);
github.getUser(username).then(onUserComplete, onSearchError);
if (countdownInterval) {
$interval.cancel(countdownInterval);
}
$scope.countdown = null;
};
var onUserComplete = function(data) {
$scope.user = data;
$scope.error = "";
github.getRepos($scope.user).then(onReposComplete, onReposError);
};
var onSearchError = function(reason) {
$scope.error = "Could not fetch the user";
$scope.user = null;
};
var onReposComplete = function(data) {
$scope.repos = data;
$scope.error = "";
$location.hash("userDetails");
$anchorScroll();
};
var onReposError = function(reason) {
$scope.error = "Could not fetch the data";
};
var decrementCountdown = function() {
$scope.countdown -= 1;
if ($scope.countdown < 1) {
$scope.search($scope.username);
}
};
var countdownInterval = null;
var startCountdown = function() {
countdownInterval = $interval(decrementCountdown, 1000, $scope.countdown);
};
$scope.username = "angular";
$scope.message = "Github Viewer";
$scope.repoSortOrder = "-stargazers_count";
$scope.countdown = 2;
startCountdown();
};
app.controller("MainController", MainController);
}());