2 * Copyright 2016 Alexandre Terrasa <alexandre@moz-code.org>.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 angular
.module('catalog', [])
22 .config(function($stateProvider
, $locationProvider
) {
26 controller
: 'CatalogCtrl',
28 templateUrl
: 'views/catalog/index.html',
30 packages
: function(Catalog
, $q
, $stateParams
, $state
) {
32 var page
= $stateParams
.p ? $stateParams
.p
: 1;
33 var limit
= $stateParams
.n ? $stateParams
.n
: 10;
34 Catalog
.packages(page
, limit
, d
.resolve
,
36 $state
.go('404', null, { location
: false })
40 tags
: function(Catalog
, $q
, $state
) {
42 Catalog
.tags(d
.resolve
,
44 $state
.go('404', null, { location
: false })
48 stats
: function(Catalog
, $q
, $state
) {
50 Catalog
.stats(d
.resolve
,
52 $state
.go('404', null, { location
: false })
60 url
: '/person/:id?p1&n1&p2&n2',
61 controller
: 'PersonCtrl',
63 templateUrl
: 'views/catalog/person.html',
65 person
: function(Catalog
, $q
, $stateParams
, $state
) {
67 Catalog
.person($stateParams
.id
, d
.resolve
,
69 $state
.go('404', null, { location
: false })
73 maintaining
: function(Catalog
, $q
, $stateParams
, $state
) {
75 var p1
= $stateParams
.p2 ? $stateParams
.p1
: 1;
76 var n1
= $stateParams
.n2 ? $stateParams
.n1
: 10;
77 Catalog
.personMaintaining($stateParams
.id
, p1
, n1
, d
.resolve
,
79 $state
.go('404', null, { location
: false })
83 contributing
: function(Catalog
, $q
, $stateParams
, $state
) {
85 var p2
= $stateParams
.p2 ? $stateParams
.p2
: 1;
86 var n2
= $stateParams
.n2 ? $stateParams
.n2
: 10;
87 Catalog
.personContributing($stateParams
.id
, p2
, n2
, d
.resolve
,
89 $state
.go('404', null, { location
: false })
98 controller
: 'TagCtrl',
100 templateUrl
: 'views/catalog/tag.html',
102 tag
: function(Catalog
, $q
, $stateParams
, $state
) {
104 var page
= $stateParams
.p ? $stateParams
.p
: 1;
105 var limit
= $stateParams
.l ? $stateParams
.l
: 10;
106 Catalog
.tag($stateParams
.id
, page
, limit
, d
.resolve
,
108 $state
.go('404', null, { location
: false })
118 .factory('Catalog', [ '$http', function($http
) {
120 stats
: function(cb
, cbErr
) {
121 $http
.get('/api/catalog/stats')
125 packages
: function(p
, l
, cb
, cbErr
) {
126 $http
.get('/api/catalog/packages?p=' + p
+ '&l=' + l
)
130 tags
: function(cb
, cbErr
) {
131 $http
.get('/api/catalog/tags')
135 person
: function(id
, cb
, cbErr
) {
136 $http
.get('/api/catalog/person/' + id
)
140 personMaintaining
: function(id
, p
, l
, cb
, cbErr
) {
141 $http
.get('/api/catalog/person/' + id
+ '/maintaining?p=' + p
+ '&l=' + l
)
145 personContributing
: function(id
, p
, l
, cb
, cbErr
) {
146 $http
.get('/api/catalog/person/' + id
+ '/contributing?p=' + p
+ '&l=' + l
)
150 tag
: function(id
, p
, l
, cb
, cbErr
) {
151 $http
.get('/api/catalog/tag/' + id
+ '?p=' + p
+ '&l=' + l
)
160 .controller('CatalogCtrl', function($scope
, $state
, packages
, tags
, stats
) {
162 vm
.packages
= packages
;
165 $scope
.$
on('change-page', function(e
, page
, limit
) {
166 $state
.go('catalog', {p
: page
, l
: limit
});
170 .controller('PersonCtrl', function($scope
, $state
, $stateParams
, person
, maintaining
, contributing
) {
173 vm
.maintaining
= maintaining
;
174 vm
.contributing
= contributing
;
176 var p1
= $stateParams
.p1 ? $stateParams
.p1
: 1;
177 var l1
= $stateParams
.l1 ? $stateParams
.l1
: 10;
178 var p2
= $stateParams
.p2 ? $stateParams
.p2
: 1;
179 var l2
= $stateParams
.l2 ? $stateParams
.l2
: 10;
181 $scope
.$
on('change-page1', function(e
, page
, limit
) {
182 $state
.go('person', {id
: $stateParams
.id
, p1
: page
, l1
: limit
, p2
: p2
, l2
: l2
});
185 $scope
.$
on('change-page2', function(e
, page
, limit
) {
186 $state
.go('person', {id
: $stateParams
.id
, p1
: p1
, l1
: l1
, p2
: page
, l2
: limit
});
190 .controller('TagCtrl', function($state
, $scope
, tag
) {
193 $scope
.$
on('change-page', function(e
, page
, limit
) {
194 $state
.go('tag', {id
: vm
.tag
.tag
, p
: page
, l
: limit
});