-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathTask1.html
More file actions
161 lines (131 loc) · 4.64 KB
/
Task1.html
File metadata and controls
161 lines (131 loc) · 4.64 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
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<script type="application/javascript" src="https://rawgit.com/abdmob/x2js/master/xml2json.min.js" charset="UTF-8"></script>
<meta charset="utf-8">
<title>Parse XML</title>
</head>
<body data-ng-app="parseXmlApp">
<h2>Parsing XML Data(Task 1)</h2>
<div data-ng-controller="myController"><ol><li ng-repeat="todo in todos">{{todo.badges}}</div>
<div class="text-center">
<!-- items being paged -->
<div ng-repeat="item in vm.todos">Item {{item}}</div>
<!-- pager -->
<ul ng-if="vm.pager.pages.length" class="pagination">
<li ng-class="{disabled:vm.pager.currentPage === 1}">
<a ng-click="vm.setPage(1)">First</a>
</li>
<li ng-class="{disabled:vm.pager.currentPage === 1}">
<a ng-click="vm.setPage(vm.pager.currentPage - 1)">Previous</a>
</li>
<li ng-repeat="page in vm.pager.pages" ng-class="{active:vm.pager.currentPage === page}">
<a ng-click="vm.setPage(page)">{{page}}</a>
</li>
<li ng-class="{disabled:vm.pager.currentPage === vm.pager.totalPages}">
<a ng-click="vm.setPage(vm.pager.currentPage + 1)">Next</a>
</li>
<li ng-class="{disabled:vm.pager.currentPage === vm.pager.totalPages}">
<a ng-click="vm.setPage(vm.pager.totalPages)">Last</a>
</li>
</ul>
</div>
<!-- JavaScript -->
<script>
var myApp = angular.module('parseXmlApp',[]);
myApp.factory('myFactory',function($http){
var factory = [];
factory.getTodos = function(){
return $http.get("file:///C:/Users/admin/Desktop/Xobin/dumplist/Badges.xml"
);
}
/* console.log("hi"); */
return factory;
/* console.log("XML" +factory); */
});
/* Conversion of XML to JSON */
myApp.controller('myController',function($scope,myFactory){
$scope.todos = [];
loadTodos();
/* console.log("hi2"); */
function loadTodos(){
var x2js = new X2JS();
myFactory.getTodos().success(function(data){
xmlJson = x2js.xml_str2json(data);
/* console.log("JSON" + xmlJson); */
$scope.todos =xmlJson;
});
}
/* service definition */
function PagerService() {
var service = {};
service.GetPager = GetPager;
return service;
/* service implementation */
function GetPager(totalItems, currentPage, pageSize) {
/* default to first page */
currentPage = currentPage || 1;
/* default page size is 10 */
pageSize = pageSize || 10;
/* calculate total pages */
var totalPages = Math.ceil(totalItems / pageSize);
var startPage, endPage;
if (totalPages <= 10) {
/* less than 10 total pages so show all */
startPage = 1;
endPage = totalPages;
} else {
/* more than 10 total pages so calculate start and end pages */
if (currentPage <= 6) {
startPage = 1;
endPage = 10;
} else if (currentPage + 4 >= totalPages) {
startPage = totalPages - 9;
endPage = totalPages;
} else {
startPage = currentPage - 5;
endPage = currentPage + 4;
}
}
/* calculate start and end item indexes */
var startIndex = (currentPage - 1) * pageSize;
var endIndex = Math.min(startIndex + pageSize - 1, totalItems - 1);
/* create an array of pages to ng-repeat in the pager control */
var pages = _.range(startPage, endPage + 1);
/* return object with all pager properties required by the view */
return {
totalItems: totalItems,
currentPage: currentPage,
pageSize: pageSize,
totalPages: totalPages,
startPage: startPage,
endPage: endPage,
startIndex: startIndex,
endIndex: endIndex,
pages: pages
};
}
}
var vm = this;
vm.dummyItems = "";
vm.pager = {};
vm.setPage = setPage;
initController();
function initController() {
/* initialize to page 1 */
vm.setPage(1);
}
function setPage(page) {
if (page < 1 || page > vm.pager.totalPages) {
return;
}
/* get pager object from service */
vm.pager = PagerService.GetPager(vm.dummyItems.length, page);
/* get current page of items */
vm.items = vm.dummyItems.slice(vm.pager.startIndex, vm.pager.endIndex + 1);
}
});
</script>
</body>
</html>