cobweb 0.0.38 → 0.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+