blinkr 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1aea80c9c477eab4ce09539b9b697ef2401a33b0
4
- data.tar.gz: 7d57e314a280981c97c9829f975bd138ba65302d
3
+ metadata.gz: 54dd678842389391ab5a75a1c3b24fc1498e4c34
4
+ data.tar.gz: c69c3d35db9d2198ded5eeea890bac39151d4eec
5
5
  SHA512:
6
- metadata.gz: d00baebd8c848e05d7501cc7fda16f79fc36ff98fdeb587850cfff6fe7c78f4b1c2e5f755223e18f5ce2f1196bcc2ae82900e772ac857d23750996fb59d698d6
7
- data.tar.gz: 60701213a46677ac5bb75701ec7a09f4f9a0b9bc03fead126eb3296a2c8eb1b924548376f8a6fb48f394ea8c5d1b2becfe82afb7fb08eb271e45be095ee028f7
6
+ metadata.gz: 60ec55073e024c042f2bb2981b779d915edffe746460f8e3715f7ff664e187f41a1924b2f2e79b49e95a4758ce32f4420027d208945356413e7975628fa5a03f
7
+ data.tar.gz: 42df2a58c03eaa041bfd887c13fb7271166b67c0311c52bfb74988a8ccb6a6d92ab6ccb7512334f7b0d3ef4a819652d8a1972e18143d0bc209c6ca55002d696b
@@ -2,8 +2,19 @@ doctype html
2
2
  html[ng-app="blinkr"]
3
3
  head
4
4
  meta[http-equiv="Content-Type" content="text/html; charset=UTF-8"]
5
- link[href="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet"]
5
+ link[href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"]
6
6
  link[href="http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css" rel="stylesheet"]
7
+ script[src="https://code.jquery.com/jquery-2.1.4.js"]
8
+ script[src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"]
9
+ script[src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.js"]
10
+ /script[src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.5/angular.min.js"]
11
+ /script[src="https://code.jquery.com/jquery-2.1.4.min.js"]
12
+ /script[src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"]
13
+
14
+ /script[src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.4/ui-bootstrap.min.js"]
15
+ /script[src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.4/ui-bootstrap.js"]
16
+ /script[src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.4/ui-bootstrap-tpls.min.js"]
17
+ /script[src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.4/ui-bootstrap-tpls.js"]
7
18
  title
8
19
  | Blinkr
9
20
  meta[content="width=device-width, initial-scale=1" name="viewport"]
@@ -73,7 +84,14 @@ html[ng-app="blinkr"]
73
84
  | {{key}}
74
85
  .label.label-default
75
86
  | {{value.count}}
76
- .page[ng-repeat="(url,page) in report.pages | showPage:filters"]
87
+ .text-center
88
+ button.btn.btn-default.btn-lg[ng-disabled="currentPage == 0" ng-click="currentPage = currentPage - 1"] Previous
89
+ '
90
+ {{currentPage + 1}} / {{numberOfPages()}}
91
+ button.btn.btn-default.btn-lg[ng-disabled="currentPage >= numberOfPages() - 1" ng-click="currentPage = currentPage + 1"] Next
92
+ br
93
+ br
94
+ .page[ng-repeat="page in report.pages | showPage:filters | startFrom:currentPage * limitSize | limitTo:limitSize"]
77
95
  div[class="panel panel-{{page.max_severity}}"]
78
96
  .panel-heading
79
97
  .panel-title
@@ -81,12 +99,12 @@ html[ng-app="blinkr"]
81
99
  li
82
100
  a>[data-toggle="collapse" href="#"]
83
101
  i.fa.fa-caret-square-o-right
84
- | {{url}} ({{page.errors.length}} total errors)
102
+ | {{page.url}} ({{page.errors.length}} total errors)
85
103
  li
86
- a[href="{{url}}" target="_blank"]
104
+ a[href="{{page.url}}" target="_blank"]
87
105
  i.fa.fa-external-link
88
106
  li
89
- a[href="{{url}}" target="_blank"]
107
+ a[href="{{page.url}}" target="_blank"]
90
108
  i.fa.fa-file-code-o
91
109
  .panel-body.collapse.panel-collapse
92
110
  ul
@@ -96,13 +114,10 @@ html[ng-app="blinkr"]
96
114
  | {{page_error.code}} {{page_error.message}}
97
115
  div
98
116
  ' {{page_error.title}}
99
- a[href="{{page_error.title}}" target="_blank"]
117
+ a[href="{{page_error.title}}" target="_blank" ng-if="page_error.title.startsWith('http')"]
100
118
  i.fa.fa-external-link
101
119
  pre
102
120
  | {{page_error.snippet}}
103
- script[src="http://code.jquery.com/jquery-2.1.4.min.js"]
104
- script[src="http://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"]
105
- script[src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"]
106
121
  javascript:
107
122
  var blinkr = angular.module('blinkr', []);
108
123
  blinkr.factory('report', function reportFactory() {
@@ -113,7 +128,10 @@ html[ng-app="blinkr"]
113
128
  $scope.report = report;
114
129
  $scope.filters = {severities: {}, categories: {}, types: {}};
115
130
  $scope.report = report;
116
- $scope.numPages = Object.keys(report.pages).length;
131
+ $scope.numPages = report.pages.length;
132
+ $scope.filteredNumPages = 0;
133
+ $scope.currentPage = 0;
134
+ $scope.limitSize = 25;
117
135
  window.scope = $scope;
118
136
 
119
137
  Object.keys($scope.report.severity).forEach(function (s) {
@@ -127,8 +145,19 @@ html[ng-app="blinkr"]
127
145
  Object.keys($scope.report.type).forEach(function (t) {
128
146
  $scope.filters.types[t] = {enabled: false, count: report.type[t].count};
129
147
  });
148
+
149
+ $scope.numberOfPages = function () {
150
+ return Math.ceil($scope.filteredNumPages / $scope.limitSize);
151
+ }
130
152
  }]);
131
153
 
154
+ blinkr.filter('startFrom', function () {
155
+ return function (input, start) {
156
+ start = +start; //parse to int
157
+ return input.slice(start);
158
+ }
159
+ });
160
+
132
161
  blinkr.filter('displayError', function () {
133
162
  return function (errors, filters) {
134
163
  var returned_errors = [];
@@ -144,15 +173,17 @@ html[ng-app="blinkr"]
144
173
 
145
174
  blinkr.filter('showPage', function () {
146
175
  return function (all_pages, filters) {
147
- var pages = {};
148
- Object.keys(all_pages).forEach(function (url) {
149
- var page = all_pages[url];
150
- page.errors.forEach(function (error) {
151
- if (showError(error, filters)) {
152
- pages[url] = all_pages[url];
153
- }
154
- });
176
+ var pages = [];
177
+ all_pages.forEach(function (page) {
178
+ if ($.arrayIntersect(enabledFilters(filters, 'categories'), page.categories).length > 0) {
179
+ pages.push(page);
180
+ } else if ($.arrayIntersect(enabledFilters(filters, 'types'), page.types).length > 0) {
181
+ pages.push(page);
182
+ } else if ($.arrayIntersect(enabledFilters(filters, 'severities'), page.severities).length > 0) {
183
+ pages.push(page);
184
+ }
155
185
  });
186
+ scope.filteredNumPages = pages.length;
156
187
  return pages;
157
188
  }
158
189
  });
@@ -212,3 +243,9 @@ html[ng-app="blinkr"]
212
243
  angular.element(document).ready(function () {
213
244
  panelBind();
214
245
  });
246
+
247
+ $.arrayIntersect = function (a, b) {
248
+ return $.grep(a, function (i) {
249
+ return $.inArray(i, b) > -1;
250
+ });
251
+ };
@@ -22,21 +22,32 @@ module Blinkr
22
22
  @context.severity = {}
23
23
  @context.category = {}
24
24
  @context.type = {}
25
- @context.pages.each do |_, page|
25
+ @context.pages.each do |url, page|
26
+ page.url = url
26
27
  page.max_severity = ::Blinkr::SEVERITY.first # :success
28
+ page.severities = []
29
+ page.categories = []
30
+ page.types = []
27
31
  page.errors.each do |error|
28
32
  raise "#{error.severity} not a valid severity. Must be one of #{::Blinkr::SEVERITY.join(',')}" unless ::Blinkr::SEVERITY.include? error.severity
29
33
  raise "#{error.category} must be specified." if error.category.nil?
30
34
  @context.total += 1
31
35
  @context.severity[error.severity] ||= OpenStruct.new({:count => 0})
32
36
  @context.severity[error.severity].count += 1
37
+ page.severities << error.severity
33
38
  page.max_severity = error.severity if ::Blinkr::SEVERITY.index(error.severity) > ::Blinkr::SEVERITY.index(page.max_severity)
34
39
  @context.category[error.category] ||= OpenStruct.new({:count => 0})
35
40
  @context.category[error.category].count += 1
41
+ page.categories << error.category
36
42
  @context.type[error.type] ||= OpenStruct.new({:count => 0})
37
43
  @context.type[error.type].count += 1
44
+ page.types << error.type
38
45
  end
46
+ page.severities.uniq!
47
+ page.categories.uniq!
48
+ page.types.uniq!
39
49
  end
50
+ @context.pages = @context.pages.values
40
51
  File.open(@config.report, 'w') do |file|
41
52
  file.write(Slim::Template.new(TMPL).render(OpenStruct.new({:blinkr => @context, :engine => @engine,
42
53
  :errors => @context.to_json})))
@@ -1,4 +1,4 @@
1
1
  module Blinkr
2
- VERSION='0.3.6'
2
+ VERSION='0.3.7'
3
3
  end
4
4
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blinkr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.6
4
+ version: 0.3.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Muir