Newer
Older
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
angular.module('piwikApp').factory('multisitesDashboardModel', function (piwikApi, $filter) {
var model = {};
model.sites = [];
model.allSites = [];
model.isLoading = false;
model.pageSize = 5;
model.currentPage = 0;
model.totalVisits = 0;
model.totalActions = 0;
model.prettyDate = '';
model.updateWebsitesList = function (processedReport) {
model.allSites = processedReport.reportData;
model.totalVisits = processedReport.reportTotal.nb_visits;
model.totalActions = processedReport.reportTotal.nb_actions;
model.prettyDate = processedReport.prettyDate;
if (!model.allSites || !model.allSites.length) {
return;
}
model.sites = model.allSites;
};
model.getNumberOfFilteredSites = function () {
return model.sites.length;
}
model.getNumberOfFilteredSites = function () {
return model.sites.length;
}
model.getNumberOfPages = function () {
return model.sites.length / model.pageSize - 1;
}
model.getCurrentPagingOffsetStart = function() {
return Math.ceil(model.currentPage * model.pageSize);
}
model.getCurrentPagingOffsetEnd = function() {
var end = model.getCurrentPagingOffsetStart() + parseInt(model.pageSize, 10);
if (end > model.allSites.length) {
end = model.allSites.length
}
return parseInt(end, 10);
}
model.previousPage = function () {
model.currentPage = model.currentPage - 1
};
model.nextPage = function () {
model.currentPage = model.currentPage + 1
};
model.numberOfPages = function () {
return Math.ceil(model.allSites.length / model.pageSize);
};
model.searchSite = function (term) {
model.currentPage = 0;
model.sites = $filter('filter')(model.allSites, term);
}
model.fetchAllSites = function () {
if (model.isLoading) {
piwikApi.abort();
}
model.isLoading = true;
return piwikApi.fetch({
method: 'API.getProcessedReport',
apiModule: 'MultiSites',
apiAction: 'getAll',
hideMetricsDoc: '1',
filter_limit: '-1',
showColumns: 'label,nb_visits,nb_pageviews,visits_evolution,pageviews_evolution,revenue_evolution,nb_actions,revenue',
enhanced: 1
}).then(function (response) {
model.updateWebsitesList(response);
}).finally(function () {
model.isLoading = false;
});
};
return model;
});