cobweb 0.0.38 → 0.0.39

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. data/README.textile +1 -1
  2. data/lib/cobweb.rb +3 -1
  3. data/lib/cobweb_crawler.rb +98 -100
  4. data/lib/crawl_job.rb +3 -4
  5. data/lib/server.rb +98 -0
  6. data/lib/stats.rb +141 -64
  7. data/public/css/accordion.css +45 -0
  8. data/public/css/custom.css +13 -0
  9. data/public/css/datatable.css +189 -0
  10. data/public/css/datepicker.css +171 -0
  11. data/public/css/form-buttons.css +180 -0
  12. data/public/css/forms.css +489 -0
  13. data/public/css/jquery.fancybox-1.3.4.css +282 -0
  14. data/public/css/jquery.treeview.css +103 -0
  15. data/public/css/link-buttons.css +187 -0
  16. data/public/css/login.css +110 -0
  17. data/public/css/menu.css +156 -0
  18. data/public/css/messages.css +58 -0
  19. data/public/css/modalbox.css +63 -0
  20. data/public/css/statics.css +57 -0
  21. data/public/css/style.css +497 -0
  22. data/public/css/style_text.css +128 -0
  23. data/public/css/tabs.css +58 -0
  24. data/public/css/wysiwyg-editor.css +18 -0
  25. data/public/css/wysiwyg.css +149 -0
  26. data/public/css/wysiwyg.modal.css +69 -0
  27. data/public/gfx/back-menu.gif +0 -0
  28. data/public/gfx/back-submenu.gif +0 -0
  29. data/public/gfx/background.gif +0 -0
  30. data/public/gfx/box-hide.png +0 -0
  31. data/public/gfx/box-search.png +0 -0
  32. data/public/gfx/box-title.gif +0 -0
  33. data/public/gfx/code.gif +0 -0
  34. data/public/gfx/datepicker-arrows.gif +0 -0
  35. data/public/gfx/fancybox/blank.gif +0 -0
  36. data/public/gfx/fancybox/fancy_close.png +0 -0
  37. data/public/gfx/fancybox/fancy_loading.png +0 -0
  38. data/public/gfx/fancybox/fancy_nav_left.png +0 -0
  39. data/public/gfx/fancybox/fancy_nav_right.png +0 -0
  40. data/public/gfx/fancybox/fancy_title_left.png +0 -0
  41. data/public/gfx/fancybox/fancy_title_main.png +0 -0
  42. data/public/gfx/fancybox/fancy_title_over.png +0 -0
  43. data/public/gfx/fancybox/fancy_title_right.png +0 -0
  44. data/public/gfx/fancybox/fancybox-x.png +0 -0
  45. data/public/gfx/fancybox/fancybox.png +0 -0
  46. data/public/gfx/forms/date-next.gif +0 -0
  47. data/public/gfx/forms/date-prev.gif +0 -0
  48. data/public/gfx/forms/forms-checkbox.gif +0 -0
  49. data/public/gfx/forms/forms-date.gif +0 -0
  50. data/public/gfx/forms/forms-file.gif +0 -0
  51. data/public/gfx/forms/forms-input-big.gif +0 -0
  52. data/public/gfx/forms/forms-input-medium.gif +0 -0
  53. data/public/gfx/forms/forms-input-small.gif +0 -0
  54. data/public/gfx/forms/forms-input-xl.gif +0 -0
  55. data/public/gfx/forms/forms-radio.gif +0 -0
  56. data/public/gfx/forms/forms-selectbox-small.gif +0 -0
  57. data/public/gfx/forms/forms-selectbox.gif +0 -0
  58. data/public/gfx/forms/forms-textarea-big.gif +0 -0
  59. data/public/gfx/forms/forms-textarea-medium.gif +0 -0
  60. data/public/gfx/forms/forms-textarea-small.gif +0 -0
  61. data/public/gfx/forms/forms-textarea-xl.gif +0 -0
  62. data/public/gfx/icon-delete.png +0 -0
  63. data/public/gfx/icon-edit.png +0 -0
  64. data/public/gfx/icon-home.gif +0 -0
  65. data/public/gfx/img-delete.png +0 -0
  66. data/public/gfx/img-hover.png +0 -0
  67. data/public/gfx/img-zoom.png +0 -0
  68. data/public/gfx/jquery.wysiwyg.gif +0 -0
  69. data/public/gfx/label-icons.gif +0 -0
  70. data/public/gfx/label.gif +0 -0
  71. data/public/gfx/li-down.gif +0 -0
  72. data/public/gfx/li.gif +0 -0
  73. data/public/gfx/link-button-big.gif +0 -0
  74. data/public/gfx/link-button-medium.gif +0 -0
  75. data/public/gfx/link-button.gif +0 -0
  76. data/public/gfx/loading-2.gif +0 -0
  77. data/public/gfx/loading.gif +0 -0
  78. data/public/gfx/logo.png +0 -0
  79. data/public/gfx/modal-title.gif +0 -0
  80. data/public/gfx/photos/00.jpg +0 -0
  81. data/public/gfx/photos/01.jpg +0 -0
  82. data/public/gfx/photos/01xl.jpg +0 -0
  83. data/public/gfx/photos/02.jpg +0 -0
  84. data/public/gfx/photos/02xl.jpg +0 -0
  85. data/public/gfx/photos/03.jpg +0 -0
  86. data/public/gfx/photos/03xl.jpg +0 -0
  87. data/public/gfx/photos/04.jpg +0 -0
  88. data/public/gfx/photos/04xl.jpg +0 -0
  89. data/public/gfx/photos/05.jpg +0 -0
  90. data/public/gfx/photos/05xl.jpg +0 -0
  91. data/public/gfx/photos/06.jpg +0 -0
  92. data/public/gfx/photos/06xl.jpg +0 -0
  93. data/public/gfx/photos/07.jpg +0 -0
  94. data/public/gfx/photos/07xl.jpg +0 -0
  95. data/public/gfx/photos/08.jpg +0 -0
  96. data/public/gfx/photos/08xl.jpg +0 -0
  97. data/public/gfx/photos/09.jpg +0 -0
  98. data/public/gfx/photos/09xl.jpg +0 -0
  99. data/public/gfx/photos/10.jpg +0 -0
  100. data/public/gfx/photos/10xl.jpg +0 -0
  101. data/public/gfx/photos/11.jpg +0 -0
  102. data/public/gfx/photos/11xl.jpg +0 -0
  103. data/public/gfx/photos/12.jpg +0 -0
  104. data/public/gfx/photos/12xl.jpg +0 -0
  105. data/public/gfx/photos/13.jpg +0 -0
  106. data/public/gfx/photos/13xl.jpg +0 -0
  107. data/public/gfx/photos/14.jpg +0 -0
  108. data/public/gfx/photos/14xl.jpg +0 -0
  109. data/public/gfx/photos/15.jpg +0 -0
  110. data/public/gfx/photos/15xl.jpg +0 -0
  111. data/public/gfx/search-button.gif +0 -0
  112. data/public/gfx/search-input.gif +0 -0
  113. data/public/gfx/slider-button.gif +0 -0
  114. data/public/gfx/system-messages.gif +0 -0
  115. data/public/gfx/table-asc-arrow.gif +0 -0
  116. data/public/gfx/table-desc-arrow.gif +0 -0
  117. data/public/gfx/table-first.gif +0 -0
  118. data/public/gfx/table-last.gif +0 -0
  119. data/public/gfx/table-next.gif +0 -0
  120. data/public/gfx/table-number.gif +0 -0
  121. data/public/gfx/table-prev.gif +0 -0
  122. data/public/gfx/table-rows.gif +0 -0
  123. data/public/gfx/table-search.gif +0 -0
  124. data/public/gfx/table-thead.gif +0 -0
  125. data/public/gfx/tooltip.gif +0 -0
  126. data/public/gfx/treeview/ajax-loader.gif +0 -0
  127. data/public/gfx/treeview/file.gif +0 -0
  128. data/public/gfx/treeview/folder-closed.gif +0 -0
  129. data/public/gfx/treeview/folder.gif +0 -0
  130. data/public/gfx/treeview/minus.gif +0 -0
  131. data/public/gfx/treeview/plus.gif +0 -0
  132. data/public/gfx/treeview/treeview-default-line.gif +0 -0
  133. data/public/gfx/treeview/treeview-default.gif +0 -0
  134. data/public/js/controls/wysiwyg.image.js +284 -0
  135. data/public/js/controls/wysiwyg.link.js +210 -0
  136. data/public/js/controls/wysiwyg.table.js +151 -0
  137. data/public/js/customInput.jquery.js +68 -0
  138. data/public/js/excanvas.min.js +1 -0
  139. data/public/js/hoverIntent.js +84 -0
  140. data/public/js/inline.js +392 -0
  141. data/public/js/jquery-1.7.1.min.js +4 -0
  142. data/public/js/jquery-ui-select.js +522 -0
  143. data/public/js/jquery-ui-timepicker-addon.js +1299 -0
  144. data/public/js/jquery-ui.js +791 -0
  145. data/public/js/jquery.dataTables.js +7440 -0
  146. data/public/js/jquery.fancybox-1.3.4.js +1156 -0
  147. data/public/js/jquery.filestyle.mini.js +2 -0
  148. data/public/js/jquery.flot.js +2600 -0
  149. data/public/js/jquery.flot.resize.min.js +60 -0
  150. data/public/js/jquery.graphtable-0.2.js +179 -0
  151. data/public/js/jquery.tipsy.js +104 -0
  152. data/public/js/jquery.treeview.js +256 -0
  153. data/public/js/jquery.wysiwyg.js +2454 -0
  154. data/public/js/plugins/wysiwyg.rmFormat.js +348 -0
  155. data/public/js/superfish.js +121 -0
  156. data/public/js/supersubs.js +90 -0
  157. data/views/home.haml +54 -0
  158. data/views/layout.haml +89 -0
  159. data/views/statistics.haml +251 -71
  160. metadata +175 -22
@@ -0,0 +1,90 @@
1
+
2
+ /*
3
+ * Supersubs v0.2b - jQuery plugin
4
+ * Copyright (c) 2008 Joel Birch
5
+ *
6
+ * Dual licensed under the MIT and GPL licenses:
7
+ * http://www.opensource.org/licenses/mit-license.php
8
+ * http://www.gnu.org/licenses/gpl.html
9
+ *
10
+ *
11
+ * This plugin automatically adjusts submenu widths of suckerfish-style menus to that of
12
+ * their longest list item children. If you use this, please expect bugs and report them
13
+ * to the jQuery Google Group with the word 'Superfish' in the subject line.
14
+ *
15
+ */
16
+
17
+ ;(function($){ // $ will refer to jQuery within this closure
18
+
19
+ $.fn.supersubs = function(options){
20
+ var opts = $.extend({}, $.fn.supersubs.defaults, options);
21
+ // return original object to support chaining
22
+ return this.each(function() {
23
+ // cache selections
24
+ var $$ = $(this);
25
+ // support metadata
26
+ var o = $.meta ? $.extend({}, opts, $$.data()) : opts;
27
+ // get the font size of menu.
28
+ // .css('fontSize') returns various results cross-browser, so measure an em dash instead
29
+ var fontsize = $('<li id="menu-fontsize">&#8212;</li>').css({
30
+ 'padding' : 0,
31
+ 'position' : 'absolute',
32
+ 'top' : '-999em',
33
+ 'width' : 'auto'
34
+ }).appendTo($$).width(); //clientWidth is faster, but was incorrect here
35
+ // remove em dash
36
+ $('#menu-fontsize').remove();
37
+ // cache all ul elements
38
+ $ULs = $$.find('ul');
39
+ // loop through each ul in menu
40
+ $ULs.each(function(i) {
41
+ // cache this ul
42
+ var $ul = $ULs.eq(i);
43
+ // get all (li) children of this ul
44
+ var $LIs = $ul.children();
45
+ // get all anchor grand-children
46
+ var $As = $LIs.children('a');
47
+ // force content to one line and save current float property
48
+ var liFloat = $LIs.css('white-space','nowrap').css('float');
49
+ // remove width restrictions and floats so elements remain vertically stacked
50
+ var emWidth = $ul.add($LIs).add($As).css({
51
+ 'float' : 'none',
52
+ 'width' : 'auto'
53
+ })
54
+ // this ul will now be shrink-wrapped to longest li due to position:absolute
55
+ // so save its width as ems. Clientwidth is 2 times faster than .width() - thanks Dan Switzer
56
+ .end().end()[0].clientWidth / fontsize;
57
+ // add more width to ensure lines don't turn over at certain sizes in various browsers
58
+ emWidth += o.extraWidth;
59
+ // restrict to at least minWidth and at most maxWidth
60
+ if (emWidth > o.maxWidth) { emWidth = o.maxWidth; }
61
+ else if (emWidth < o.minWidth) { emWidth = o.minWidth; }
62
+ emWidth += 'em';
63
+ // set ul to width in ems
64
+ $ul.css('width',emWidth);
65
+ // restore li floats to avoid IE bugs
66
+ // set li width to full width of this ul
67
+ // revert white-space to normal
68
+ $LIs.css({
69
+ 'float' : liFloat,
70
+ 'width' : '100%',
71
+ 'white-space' : 'normal'
72
+ })
73
+ // update offset position of descendant ul to reflect new width of parent
74
+ .each(function(){
75
+ var $childUl = $('>ul',this);
76
+ var offsetDirection = $childUl.css('left')!==undefined ? 'left' : 'right';
77
+ $childUl.css(offsetDirection,emWidth);
78
+ });
79
+ });
80
+
81
+ });
82
+ };
83
+ // expose defaults
84
+ $.fn.supersubs.defaults = {
85
+ minWidth : 9, // requires em unit.
86
+ maxWidth : 25, // requires em unit.
87
+ extraWidth : 0 // extra width can ensure lines don't sometimes turn over due to slight browser differences in how they round-off values
88
+ };
89
+
90
+ })(jQuery); // plugin code ends
data/views/home.haml ADDED
@@ -0,0 +1,54 @@
1
+ .section
2
+ .full
3
+ .box
4
+ .title
5
+ %h2 Cobweb Statistics
6
+ %span.hide
7
+ .content
8
+ .caption Totals for the last 30 mins
9
+ %table.statics{:style => "width : 100%;"}
10
+ %thead
11
+ %tr
12
+ %th
13
+ - counter = 0
14
+ - @crawls.each do |crawl|
15
+ %th{:style => "color : #{@colors[counter]};"}= crawl[:crawl_details][:base_url]
16
+ - counter = counter += 1
17
+ - counter = 0 if counter > (@colors.length-1)
18
+
19
+ %tbody
20
+ - (1..30).each do |minutes|
21
+ - date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
22
+ %tr
23
+ %th= minutes
24
+ - @crawls.each do |crawl|
25
+ - if crawl[:minute_totals][date].nil?
26
+ %td
27
+ - else
28
+ %td= crawl[:minute_totals][date]
29
+ .section
30
+ .full
31
+ .box
32
+ .title
33
+ %h2 Running Crawls
34
+ %span.hide
35
+ .content
36
+ - if @crawls.empty?
37
+ No crawls running just now
38
+ - else
39
+ %table.all{:border => "0", :cellpadding => "0", :cellspacing => "0"}
40
+ %thead
41
+ %tr
42
+ %th Base URL
43
+ %th Total Pages
44
+ %th Total Assets
45
+ %th Queued Objects
46
+ %tbody
47
+ - @crawls.each do |crawl|
48
+ %tr
49
+ %td
50
+ %a{:href => "/statistics/#{crawl[:crawl_details][:crawl_id]}"}= crawl[:crawl_details][:base_url]
51
+ %td= crawl[:statistics][:page_count]
52
+ %td= crawl[:statistics][:asset_count]
53
+ %td= crawl[:statistics][:queue_counter]
54
+
data/views/layout.haml ADDED
@@ -0,0 +1,89 @@
1
+ !!!
2
+ %html{:lang => "en", "xml:lang" => "en", :xmlns => "http://www.w3.org/1999/xhtml"}
3
+ %head
4
+ %meta{:content => "text/html;charset=utf-8", "http-equiv" => "Content-Type"}/
5
+ %title Cobweb Statistics
6
+ :css
7
+ @import url("/css/style.css");
8
+ @import url('/css/style_text.css');
9
+ @import url('/css/form-buttons.css');
10
+ @import url('/css/link-buttons.css');
11
+ @import url('/css/menu.css');
12
+ @import url('/css/statics.css');
13
+ @import url('/css/messages.css');
14
+ @import url('/css/datatable.css');
15
+ @import url('/css/accordion.css');
16
+ @import url('/css/tabs.css');
17
+ @import url('/css/forms.css');
18
+ @import url('/css/datepicker.css');
19
+ @import url('/css/modalbox.css');
20
+ @import url('/css/jquery.fancybox-1.3.4.css');
21
+ @import url('/css/jquery.treeview.css');
22
+ @import url('/css/wysiwyg.css');
23
+ @import url('/css/wysiwyg.modal.css');
24
+ @import url('/css/wysiwyg-editor.css');
25
+ @import url("/css/custom.css");
26
+ %script{:src => "/js/jquery-1.7.1.min.js", :type => "text/javascript"}
27
+ %body
28
+ .container
29
+ .logo-labels
30
+ %h1
31
+ %a{:href => "#"} CleanDream
32
+ %ul.hidden
33
+ %li
34
+ %a{:href => "#"}
35
+ %span Settings
36
+ %li.usermessage
37
+ %a{:href => "#"}
38
+ %span 1 new message
39
+ %li.logout
40
+ %a{:href => "#"}
41
+ %span Logout
42
+ .menu-search
43
+ %ul
44
+ %li.current
45
+ %a{:href => "/"} Dashboard
46
+ %li.current
47
+ %a{:href => "https://github.com/stewartmckee/cobweb/blob/master/README.textile"} Readme
48
+ %li.current
49
+ %a{:href => "http://travis-ci.org/#!/stewartmckee/cobweb"} Test Results
50
+ .breadcrumbs.hidden
51
+ %ul
52
+ %li.home
53
+ %a{:href => "#"}
54
+ %li.break »
55
+ %li
56
+ %a{:href => "#"} Menu item
57
+ %li.break »
58
+ %li
59
+ %a{:href => "#"} Menu item
60
+ = yield
61
+
62
+ .footer
63
+ .split
64
+ © Copyright
65
+ %a{:href => "http://www.activeinformationdesign.com"} activeinformationdesign.com
66
+ .split.right
67
+ Powered by
68
+ %a{:href => "http://github.com/stewartmckee/cobweb", :target => "_blank"} Cobweb
69
+ %script{:src => "/js/superfish.js", :type => "text/javascript"}
70
+ %script{:src => "/js/supersubs.js", :type => "text/javascript"}
71
+ %script{:src => "/js/hoverIntent.js", :type => "text/javascript"}
72
+ %script{:src => "/js/jquery.flot.js", :type => "text/javascript"}
73
+ %script{:src => "/js/jquery.graphtable-0.2.js", :type => "text/javascript"}
74
+ %script{:src => "/js/jquery.flot.resize.min.js", :type => "text/javascript"}
75
+ %script{:src => "/js/jquery-ui.js", :type => "text/javascript"}
76
+ %script{:src => "/js/jquery-ui-select.js", :type => "text/javascript"}
77
+ %script{:src => "/js/customInput.jquery.js", :type => "text/javascript"}
78
+ %script{:src => "/js/jquery.dataTables.js", :type => "text/javascript"}
79
+ %script{:src => "/js/jquery.fancybox-1.3.4.js", :type => "text/javascript"}
80
+ %script{:src => "/js/jquery.filestyle.mini.js", :type => "text/javascript"}
81
+ %script{:src => "/js/jquery-ui-timepicker-addon.js", :type => "text/javascript"}
82
+ %script{:src => "/js/jquery.treeview.js", :type => "text/javascript"}
83
+ %script{:src => "/js/jquery.tipsy.js", :type => "text/javascript"}
84
+ %script{:src => "/js/jquery.wysiwyg.js", :type => "text/javascript"}
85
+ %script{:src => "/js/plugins/wysiwyg.rmFormat.js", :type => "text/javascript"}
86
+ %script{:src => "/js/controls/wysiwyg.image.js", :type => "text/javascript"}
87
+ %script{:src => "/js/controls/wysiwyg.link.js", :type => "text/javascript"}
88
+ %script{:src => "/js/controls/wysiwyg.table.js", :type => "text/javascript"}
89
+ %script{:src => "/js/inline.js", :type => "text/javascript"}
@@ -1,71 +1,251 @@
1
- %h1 Cobweb Statistics
2
-
3
- %h4= @status
4
-
5
- %table
6
- %tr
7
- %th Page Count
8
- %th Asset Count
9
- %th Redirect Count
10
- %tr
11
- %td= @statistics[:page_count]
12
- %td= @statistics[:asset_count]
13
- %td= @statistics[:total_redirects]
14
-
15
- %table
16
- %tr
17
- %th Total Page Size
18
- %th Total Asset Size
19
- %tr
20
- %td= @statistics[:page_size]
21
- %td= @statistics[:asset_size]
22
-
23
- %table
24
- %tr
25
- %th Crawled
26
- %th Queued
27
- %tr
28
- %td= @statistics[:crawl_counter]
29
- %td= @statistics[:queue_counter]
30
-
31
-
32
- %table
33
- %tr
34
- %th{:colspan => 2} Response Times
35
- %tr
36
- %th Average
37
- %td= @statistics[:average_response_time]
38
- %tr
39
- %th Maximum
40
- %td= @statistics[:maximum_response_time]
41
- %tr
42
- %th Minimum
43
- %td= @statistics[:minimum_response_time]
44
-
45
- %table
46
- %tr
47
- %th{:colspan => 2} Content Sizes
48
- %tr
49
- %th Average
50
- %td= @statistics[:average_length]
51
- %tr
52
- %th Maximum
53
- %td= @statistics[:maximum_length]
54
- %tr
55
- %th Minimum
56
- %td= @statistics[:minimum_length]
57
- %tr
58
- %th Total
59
- %td= @statistics[:total_length]
60
-
61
- %table
62
- - @statistics[:mime_counts].keys.each do |mime_type|
63
- %tr
64
- %td= mime_type
65
- %td= @statistics[:mime_counts][mime_type]
66
-
67
- %table
68
- - @statistics[:status_counts].keys.each do |status|
69
- %tr
70
- %td= status
71
- %td= @statistics[:status_counts][status]
1
+
2
+ .section
3
+ .big
4
+ .box
5
+ .title
6
+ %h2 Status
7
+ %span.hide
8
+ .content
9
+ = @crawl[:statistics][:current_status]
10
+ .small
11
+ .box
12
+ .title
13
+ %h2 Queues
14
+ %span.hide
15
+ .content
16
+ %table
17
+ %thead
18
+ %tr
19
+ %th Crawled
20
+ %th Queued
21
+ %tbody
22
+ %tr
23
+ %td= @crawl[:statistics][:crawl_counter]
24
+ %td= @crawl[:statistics][:queue_counter]
25
+
26
+ .section
27
+ .big
28
+ .box
29
+ .title
30
+ %h2 Pages and Assets
31
+ %span.hide
32
+ .content
33
+ .caption Counts of assets and pages that have been crawled
34
+ %table.statics{:style => "width : 100%;"}
35
+ %thead
36
+ %tr
37
+ %th
38
+ %th{:style => "color: #00366f;"} Pages
39
+ %th{:style => "color: #006ba0;"} Assets
40
+
41
+ %tbody
42
+ - (1..30).each do |minutes|
43
+ - date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
44
+ %tr
45
+ %th= minutes
46
+ %td= @crawl[:pages_count][date]
47
+ %td= @crawl[:assets_count][date]
48
+ .small
49
+ .box
50
+ .title
51
+ %h2 Totals
52
+ %span.hide
53
+ .content
54
+ .caption Totals for crawl
55
+ %table{:style => "width : 100%;"}
56
+ %thead
57
+ %tr
58
+ %th
59
+ %th{:style => "color: #00366f;"} Pages
60
+ %th{:style => "color: #006ba0;"} Assets
61
+
62
+ %tbody
63
+ %tr
64
+ %th Count
65
+ %td= @crawl[:statistics][:page_count]
66
+ %td= @crawl[:statistics][:asset_count]
67
+ %tr
68
+ %th Size
69
+ %td= @crawl[:statistics][:page_size].to_i.to_human
70
+ %td= @crawl[:statistics][:asset_size].to_i.to_human
71
+
72
+
73
+ .section
74
+ .medium
75
+ .box
76
+ .title
77
+ %h2 Status counts
78
+ %span.hide
79
+ .content
80
+ .caption Status codes returned per minute
81
+ %table.statics{:style => "width : 100%;"}
82
+ %thead
83
+ %tr
84
+ %th
85
+ %th{:style => "color: #00366f;"} 200
86
+ %th{:style => "color: #006ba0;"} 400
87
+ %th{:style => "color: #0486D6;"} 500
88
+
89
+ %tbody
90
+ - (1..30).each do |minutes|
91
+ - date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
92
+ %tr
93
+ %th= minutes
94
+ %td= @crawl[:status_200_count][date]
95
+ %td= @crawl[:status_400_count][date]
96
+ %td= @crawl[:status_500_count][date]
97
+
98
+
99
+ .medium
100
+ .box
101
+ .title
102
+ %h2 Mime counts
103
+ %span.hide
104
+ .content
105
+ .caption Mime types processed per minute
106
+ %table.statics{:style => "width : 100%;"}
107
+ %thead
108
+ %tr
109
+ %th
110
+ %th{:style => "color: #00366f;"} Text
111
+ %th{:style => "color: #006ba0;"} Image
112
+ %th{:style => "color: #0486D6;"} Application
113
+
114
+ %tbody
115
+ - (1..30).each do |minutes|
116
+ - date = (DateTime.now - (minutes/1440.0)).strftime("%Y-%m-%d %H:%M").to_sym
117
+ %tr
118
+ %th= minutes
119
+ %td= @crawl[:mime_text_count][date]
120
+ %td= @crawl[:mime_image_count][date]
121
+ %td= @crawl[:mime_application_count][date]
122
+
123
+
124
+ .section
125
+ .medium
126
+ .box
127
+ .title
128
+ %h2 Status counts
129
+ %span.hide
130
+ .content
131
+ .caption Total status codes returned
132
+ %table{:style => "width : 100%;"}
133
+ %thead
134
+ %tr
135
+ %th Status code
136
+ %th Count
137
+
138
+ %tbody
139
+ - @crawl[:statistics][:status_counts].keys.each do |status|
140
+ - unless status.nil? || status == ""
141
+ %tr
142
+ %td= status
143
+ %td= @crawl[:statistics][:status_counts][status]
144
+
145
+ .medium
146
+ .box
147
+ .title
148
+ %h2 Mime type counts
149
+ %span.hide
150
+ .content
151
+ .caption Total mime-types returned
152
+ %table{:style => "width : 100%;"}
153
+ %thead
154
+ %tr
155
+ %th Mime-type
156
+ %th Count
157
+
158
+ %tbody
159
+ - @crawl[:statistics][:mime_counts].keys.each do |mime_type|
160
+ %tr
161
+ %td= mime_type
162
+ %td= @crawl[:statistics][:mime_counts][mime_type]
163
+
164
+
165
+
166
+
167
+
168
+ .section
169
+ .small
170
+ .box
171
+ .title
172
+ %h2 Counts
173
+ %span.hide
174
+ .content
175
+ %table
176
+ %thead
177
+ %tr
178
+ %th Page Count
179
+ %th Asset Count
180
+ %th Redirect Count
181
+ %tbody
182
+ %tr
183
+ %td= @crawl[:statistics][:page_count]
184
+ %td= @crawl[:statistics][:asset_count]
185
+ %td= @crawl[:statistics][:total_redirects]
186
+
187
+ .small
188
+ .box
189
+ .title
190
+ %h2 Total Sizes
191
+ %span.hide
192
+ .content
193
+ %table
194
+ %thead
195
+ %tr
196
+ %th Total Page Size
197
+ %th Total Asset Size
198
+ %tbody
199
+ %tr
200
+ %td= @crawl[:statistics][:page_size].to_i.to_human
201
+ %td= @crawl[:statistics][:asset_size].to_i.to_human
202
+
203
+
204
+ .section
205
+ .medium
206
+ .box
207
+ .title
208
+ %h2 Response Times
209
+ %span.hide
210
+ .content
211
+ %table
212
+ %thead
213
+ %tr
214
+ %th
215
+ %th{:colspan => 2} milliseconds
216
+ %tbody
217
+ %tr
218
+ %th Average
219
+ %td= @crawl[:statistics][:average_response_time]
220
+ %tr
221
+ %th Maximum
222
+ %td= @crawl[:statistics][:maximum_response_time]
223
+ %tr
224
+ %th Minimum
225
+ %td= @crawl[:statistics][:minimum_response_time]
226
+
227
+ .medium
228
+ .box
229
+ .title
230
+ %h2 Content Sizes
231
+ %span.hide
232
+ .content
233
+ %table
234
+ %thead
235
+ %tr
236
+ %th
237
+ %th{:colspan => 2} Content Sizes
238
+ %tbody
239
+ %tr
240
+ %th Average
241
+ %td= @crawl[:statistics][:average_length].to_i.to_human
242
+ %tr
243
+ %th Maximum
244
+ %td= @crawl[:statistics][:maximum_length].to_i.to_human
245
+ %tr
246
+ %th Minimum
247
+ %td= @crawl[:statistics][:minimum_length].to_i.to_human
248
+ %tr
249
+ %th Total
250
+ %td= @crawl[:statistics][:total_length].to_i.to_human
251
+