gutter 0.0.1

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 (329) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +58 -0
  4. data/Rakefile +40 -0
  5. data/app/assets/javascripts/base.js +228 -0
  6. data/app/assets/javascripts/gutter/application.js +18 -0
  7. data/app/assets/javascripts/gutter/bootstrap.js +1726 -0
  8. data/app/assets/javascripts/gutter/dashboard.js +512 -0
  9. data/app/assets/javascripts/gutter/gutter.js +2 -0
  10. data/app/assets/javascripts/gutter/odometer.js +2 -0
  11. data/app/assets/stylesheets/gutter/bootstrap-responsive.min.css +12 -0
  12. data/app/assets/stylesheets/gutter/bootstrap.min.css +3647 -0
  13. data/app/assets/stylesheets/gutter/font-awesome/css/archive/font-awesome-ie7.css +1203 -0
  14. data/app/assets/stylesheets/gutter/font-awesome/css/archive/font-awesome-ie7.min.css +384 -0
  15. data/app/assets/stylesheets/gutter/font-awesome/css/archive/font-awesome.css +1479 -0
  16. data/app/assets/stylesheets/gutter/font-awesome/css/font-awesome.min.css +403 -0
  17. data/app/assets/stylesheets/gutter/font-awesome/font/FontAwesome.otf +0 -0
  18. data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.eot +0 -0
  19. data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.svg +399 -0
  20. data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.ttf +0 -0
  21. data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.woff +0 -0
  22. data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.eot +0 -0
  23. data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.svg +958 -0
  24. data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.ttf +0 -0
  25. data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.woff +0 -0
  26. data/app/assets/stylesheets/gutter/odometer.css +94 -0
  27. data/app/assets/stylesheets/gutter/pages/dashboard.css +357 -0
  28. data/app/assets/stylesheets/gutter/style.css +1335 -0
  29. data/app/controllers/gutter/application_controller.rb +4 -0
  30. data/app/controllers/gutter/gutter_controller.rb +28 -0
  31. data/app/helpers/gutter/application_helper.rb +4 -0
  32. data/app/helpers/gutter/gutter_helper.rb +148 -0
  33. data/app/views/gutter/gutter/index.html.erb +476 -0
  34. data/app/views/layouts/gutter/application.html.erb +29 -0
  35. data/config/routes.rb +4 -0
  36. data/lib/gutter.rb +4 -0
  37. data/lib/gutter/engine.rb +5 -0
  38. data/lib/gutter/version.rb +3 -0
  39. data/lib/tasks/gutter_tasks.rake +4 -0
  40. data/test/dummy/-version}] +0 -0
  41. data/test/dummy/README.rdoc +261 -0
  42. data/test/dummy/Rakefile +7 -0
  43. data/test/dummy/app/assets/javascripts/application.js +15 -0
  44. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  45. data/test/dummy/app/controllers/application_controller.rb +3 -0
  46. data/test/dummy/app/helpers/application_helper.rb +2 -0
  47. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  48. data/test/dummy/config.ru +4 -0
  49. data/test/dummy/config/application.rb +59 -0
  50. data/test/dummy/config/boot.rb +10 -0
  51. data/test/dummy/config/database.yml +25 -0
  52. data/test/dummy/config/environment.rb +5 -0
  53. data/test/dummy/config/environments/development.rb +37 -0
  54. data/test/dummy/config/environments/production.rb +67 -0
  55. data/test/dummy/config/environments/test.rb +37 -0
  56. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  57. data/test/dummy/config/initializers/inflections.rb +15 -0
  58. data/test/dummy/config/initializers/mime_types.rb +5 -0
  59. data/test/dummy/config/initializers/secret_token.rb +7 -0
  60. data/test/dummy/config/initializers/session_store.rb +8 -0
  61. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  62. data/test/dummy/config/locales/en.yml +5 -0
  63. data/test/dummy/config/routes.rb +4 -0
  64. data/test/dummy/db/development.sqlite3 +0 -0
  65. data/test/dummy/log/development.log +68803 -0
  66. data/test/dummy/plain +1 -0
  67. data/test/dummy/public/404.html +26 -0
  68. data/test/dummy/public/422.html +26 -0
  69. data/test/dummy/public/500.html +25 -0
  70. data/test/dummy/public/favicon.ico +0 -0
  71. data/test/dummy/script/rails +6 -0
  72. data/test/dummy/tmp/cache/assets/C0F/230/sprockets%2Fe235290a73e0368353a12d52b4008880 +0 -0
  73. data/test/dummy/tmp/cache/assets/C10/200/sprockets%2F014c132130107a064cf1462b567f7996 +0 -0
  74. data/test/dummy/tmp/cache/assets/C1F/600/sprockets%2Ff6315a5472f4449974300a605b9307b6 +0 -0
  75. data/test/dummy/tmp/cache/assets/C29/C60/sprockets%2F60d27d33199c6c58260750985a00c589 +0 -0
  76. data/test/dummy/tmp/cache/assets/C2F/0D0/sprockets%2F9755059392092185dd2fd9a3472f5722 +0 -0
  77. data/test/dummy/tmp/cache/assets/C37/2D0/sprockets%2F814be07a2034dfd2254d166408000707 +0 -0
  78. data/test/dummy/tmp/cache/assets/C46/130/sprockets%2F876c2751f8181102c232a2849f0b43f1 +0 -0
  79. data/test/dummy/tmp/cache/assets/C4D/710/sprockets%2Fa50630663d18903094ff074c24039ff5 +0 -0
  80. data/test/dummy/tmp/cache/assets/C50/330/sprockets%2Fb50529295251120a96c04ba84676f9b8 +0 -0
  81. data/test/dummy/tmp/cache/assets/C5A/C60/sprockets%2Fd2e3dc7116846175bf63872e05444289 +0 -0
  82. data/test/dummy/tmp/cache/assets/C5D/510/sprockets%2F699511812376f70b70225799b77ecb4a +0 -0
  83. data/test/dummy/tmp/cache/assets/C62/340/sprockets%2F685468f90cd007509b87023fe53548f6 +0 -0
  84. data/test/dummy/tmp/cache/assets/C65/1A0/sprockets%2Fce80371336a1f2115b407060fa36624b +0 -0
  85. data/test/dummy/tmp/cache/assets/C65/870/sprockets%2F88d9680a907f3345596d0e71e69a1625 +0 -0
  86. data/test/dummy/tmp/cache/assets/C72/230/sprockets%2F02127f6a1704f956f0380622a18aa3d9 +0 -0
  87. data/test/dummy/tmp/cache/assets/C72/8A0/sprockets%2F9af3a44690e2503492e1d5a43016085b +0 -0
  88. data/test/dummy/tmp/cache/assets/C7B/160/sprockets%2F20b082505bb2eb8c31f979180385736c +0 -0
  89. data/test/dummy/tmp/cache/assets/C80/580/sprockets%2F884728b425edf02184c5abc660547163 +0 -0
  90. data/test/dummy/tmp/cache/assets/C84/D10/sprockets%2F04b1c499392c09e64e01ce5620966b49 +0 -0
  91. data/test/dummy/tmp/cache/assets/C86/ED0/sprockets%2F448f1cd3609483a3b4c1231e8494c985 +0 -0
  92. data/test/dummy/tmp/cache/assets/C87/200/sprockets%2F93e306c2913ab04984def9297462108d +0 -0
  93. data/test/dummy/tmp/cache/assets/C89/180/sprockets%2F13dd63a30f961887bb06389378833b5b +0 -0
  94. data/test/dummy/tmp/cache/assets/C8B/C30/sprockets%2F22476c169944fa06b7aaa08b88906839 +0 -0
  95. data/test/dummy/tmp/cache/assets/C99/6D0/sprockets%2Fd06185ff5de8f46176799a9b61648160 +0 -0
  96. data/test/dummy/tmp/cache/assets/CA3/960/sprockets%2F410c27fc287714811417e074c32dae5c +0 -0
  97. data/test/dummy/tmp/cache/assets/CA4/740/sprockets%2F44b9704319c995f5d33a13c235af22a0 +0 -0
  98. data/test/dummy/tmp/cache/assets/CA5/8A0/sprockets%2F60dae2c244014fc89264159f3d1052d7 +0 -0
  99. data/test/dummy/tmp/cache/assets/CA6/B10/sprockets%2F7a1f934840fbe5c20475b5177f040b15 +0 -0
  100. data/test/dummy/tmp/cache/assets/CA8/020/sprockets%2F22272da364674547025cfa718a9a32cf +0 -0
  101. data/test/dummy/tmp/cache/assets/CA8/9B0/sprockets%2F308d9364105b79f083d0ba4d06b6436d +0 -0
  102. data/test/dummy/tmp/cache/assets/CAB/9E0/sprockets%2Fa99ca5b056b04732410c439ce865d760 +0 -0
  103. data/test/dummy/tmp/cache/assets/CB0/510/sprockets%2F55c71fa75f40008a4fa3807c8662385c +0 -0
  104. data/test/dummy/tmp/cache/assets/CB1/370/sprockets%2F37594dc21e68305891632b01ffb2eb49 +0 -0
  105. data/test/dummy/tmp/cache/assets/CB3/3C0/sprockets%2F75d6b40181d32bf26f34676cbe814494 +0 -0
  106. data/test/dummy/tmp/cache/assets/CB8/830/sprockets%2Fde2ff94651818674052c63136ab9d54d +0 -0
  107. data/test/dummy/tmp/cache/assets/CBA/C40/sprockets%2F865e6f3c235f4a88006a9649616dbc06 +0 -0
  108. data/test/dummy/tmp/cache/assets/CBB/260/sprockets%2F79da0de746521480455e65683df4be53 +0 -0
  109. data/test/dummy/tmp/cache/assets/CBB/410/sprockets%2F9d2d200a8ede615f6187d94934c62627 +0 -0
  110. data/test/dummy/tmp/cache/assets/CBB/DB0/sprockets%2F384981bb74dece48d02624553e617e83 +0 -0
  111. data/test/dummy/tmp/cache/assets/CBD/A30/sprockets%2F943d0159eee3634ec448b6c098b45079 +0 -0
  112. data/test/dummy/tmp/cache/assets/CBE/F70/sprockets%2F664f0c2e6be06256d516965d5572e8e5 +0 -0
  113. data/test/dummy/tmp/cache/assets/CC0/DD0/sprockets%2F36c97b1ccd2cd9b455887578b8821108 +0 -0
  114. data/test/dummy/tmp/cache/assets/CC2/070/sprockets%2F7925984f3e398b2325c27466caaed772 +0 -0
  115. data/test/dummy/tmp/cache/assets/CC2/390/sprockets%2Fb4b02574362368489699c5fec248ab8d +0 -0
  116. data/test/dummy/tmp/cache/assets/CC3/E00/sprockets%2Fb1580a7235647fc541e89fc418479fe6 +0 -0
  117. data/test/dummy/tmp/cache/assets/CC4/C90/sprockets%2Fd7626eb467d298f1698303704a9feb55 +0 -0
  118. data/test/dummy/tmp/cache/assets/CCA/4D0/sprockets%2Fcd64342c823cf657989ea194759d265e +0 -0
  119. data/test/dummy/tmp/cache/assets/CCE/BE0/sprockets%2Ffea718309b57fa3ff13b288887099669 +0 -0
  120. data/test/dummy/tmp/cache/assets/CCF/1C0/sprockets%2F85e27c4ccfb28f57998026a654644f89 +0 -0
  121. data/test/dummy/tmp/cache/assets/CD2/380/sprockets%2F7182431dc52391d415b27bcf20d94aa8 +0 -0
  122. data/test/dummy/tmp/cache/assets/CD5/9B0/sprockets%2F427511319aada8b2bf069b58906b504e +0 -0
  123. data/test/dummy/tmp/cache/assets/CD6/9B0/sprockets%2F5d453b0c85629d2982c030e084abd24e +0 -0
  124. data/test/dummy/tmp/cache/assets/CDA/CC0/sprockets%2F2d36fe07a11e546f4f2057ec42d01975 +0 -0
  125. data/test/dummy/tmp/cache/assets/CDC/5C0/sprockets%2Fb5a92f7a15c1604d83f97e418242e60a +0 -0
  126. data/test/dummy/tmp/cache/assets/CDE/C90/sprockets%2Fac188cb77c378d6aa11c101b88392765 +0 -0
  127. data/test/dummy/tmp/cache/assets/CDF/AC0/sprockets%2Ff35824c8b6661c6bf9520de114c4e038 +0 -0
  128. data/test/dummy/tmp/cache/assets/CE1/CA0/sprockets%2F44949ccf3c4d522859c1a4a516b2990b +0 -0
  129. data/test/dummy/tmp/cache/assets/CE2/690/sprockets%2F09f229a496db3c1dd79e17d24821180f +0 -0
  130. data/test/dummy/tmp/cache/assets/CE3/8D0/sprockets%2F96a042cd2446c12b6a9f95bd9773a076 +0 -0
  131. data/test/dummy/tmp/cache/assets/CE3/8F0/sprockets%2Fa423a9ce56e4c7f202f6583384a2f375 +0 -0
  132. data/test/dummy/tmp/cache/assets/CE4/470/sprockets%2Fb02a979ae3ecc608b2d25182e7834883 +0 -0
  133. data/test/dummy/tmp/cache/assets/CE5/540/sprockets%2F7b046c9f357854421afd13859ba02f8e +0 -0
  134. data/test/dummy/tmp/cache/assets/CE6/260/sprockets%2F435678e2ae094e5830358a9eb11f7c2e +0 -0
  135. data/test/dummy/tmp/cache/assets/CE6/C20/sprockets%2Fad7105d14f2e08c67c2914f868fc2970 +0 -0
  136. data/test/dummy/tmp/cache/assets/CE7/810/sprockets%2Fa51abc8a79a9b2537e248911665d5f19 +0 -0
  137. data/test/dummy/tmp/cache/assets/CE7/EA0/sprockets%2F30722195fc547f326f2e5257a54ceee8 +0 -0
  138. data/test/dummy/tmp/cache/assets/CE8/4A0/sprockets%2F129c884f2be4f1615bec65709935dd05 +0 -0
  139. data/test/dummy/tmp/cache/assets/CE8/660/sprockets%2F011f5b365a97afde492263b2d529b989 +0 -0
  140. data/test/dummy/tmp/cache/assets/CEA/110/sprockets%2F61964b4862f6dc8930f311af66d6a84b +0 -0
  141. data/test/dummy/tmp/cache/assets/CF1/320/sprockets%2F53e57e472039b8de942f7f132b8b098f +0 -0
  142. data/test/dummy/tmp/cache/assets/CF1/490/sprockets%2Fd72384993e511934e71d19cde88da17d +0 -0
  143. data/test/dummy/tmp/cache/assets/CF5/260/sprockets%2F1a8b5ca173638a60a5a34330bce530f5 +0 -0
  144. data/test/dummy/tmp/cache/assets/CF7/B60/sprockets%2Fe39a1b9531c33dd2b2e2f8223320a6e0 +0 -0
  145. data/test/dummy/tmp/cache/assets/CF8/0F0/sprockets%2F1ab9e9914c115a74bec77796596e93b8 +0 -0
  146. data/test/dummy/tmp/cache/assets/CFD/0C0/sprockets%2F69d1826e5df7d7e0901980c49c979ae5 +0 -0
  147. data/test/dummy/tmp/cache/assets/CFE/150/sprockets%2F454f6e9228995d7097ce715ed13feb95 +0 -0
  148. data/test/dummy/tmp/cache/assets/CFE/240/sprockets%2F64f388105986c6b7cb9795ff7d30ee90 +0 -0
  149. data/test/dummy/tmp/cache/assets/CFE/880/sprockets%2F130a631c8dd033d7cdc7167b42fb2095 +0 -0
  150. data/test/dummy/tmp/cache/assets/CFF/2E0/sprockets%2Fa424f4a76604a80cc8f14dca3006b791 +0 -0
  151. data/test/dummy/tmp/cache/assets/D00/000/sprockets%2Fd96f55595f346cb60cb721b30dc220a0 +0 -0
  152. data/test/dummy/tmp/cache/assets/D05/980/sprockets%2Fff0d95b28cd3841c307318a6321c3df2 +0 -0
  153. data/test/dummy/tmp/cache/assets/D06/500/sprockets%2F9c4124aebf4c4555552b43c93a018cf4 +0 -0
  154. data/test/dummy/tmp/cache/assets/D07/610/sprockets%2F581daf5ef5107402dec463707a223af9 +0 -0
  155. data/test/dummy/tmp/cache/assets/D07/E80/sprockets%2F9b0f31e35a2141b594e3eed543dc7174 +0 -0
  156. data/test/dummy/tmp/cache/assets/D08/AA0/sprockets%2Fc5dc62c650a9c855965601ce31e1a06d +0 -0
  157. data/test/dummy/tmp/cache/assets/D09/A70/sprockets%2F0633defe1740a45ef30f85172f2172df +0 -0
  158. data/test/dummy/tmp/cache/assets/D0A/D80/sprockets%2F607b2af13fb941c1196cb093cd6e4881 +0 -0
  159. data/test/dummy/tmp/cache/assets/D0B/DA0/sprockets%2F30d1963f5ace216f47fb170131df81f9 +0 -0
  160. data/test/dummy/tmp/cache/assets/D0C/730/sprockets%2F2e63f21ba951e5e5b84670220f0ff2e9 +0 -0
  161. data/test/dummy/tmp/cache/assets/D0C/BA0/sprockets%2F08e9ee505a554e9d3e0bb3fc96523022 +0 -0
  162. data/test/dummy/tmp/cache/assets/D0C/E20/sprockets%2F7c7c0244b33b6df3c44179be9d22a259 +0 -0
  163. data/test/dummy/tmp/cache/assets/D11/A80/sprockets%2F6fe649a19180291b3187bd0a2d896cbc +0 -0
  164. data/test/dummy/tmp/cache/assets/D12/A10/sprockets%2Fa74f0ead865c1781953d0ff40090d76d +0 -0
  165. data/test/dummy/tmp/cache/assets/D14/EE0/sprockets%2F1881c04e0d2ea6915c4b4fc7b584f649 +0 -0
  166. data/test/dummy/tmp/cache/assets/D15/2C0/sprockets%2F43a086426cee4a2aafe5d991992e2816 +0 -0
  167. data/test/dummy/tmp/cache/assets/D15/9E0/sprockets%2F6eeff9405c4f8216a7e14e174d9f6001 +0 -0
  168. data/test/dummy/tmp/cache/assets/D15/C00/sprockets%2F6a6253c58e31f8e59d0de53255ea62d5 +0 -0
  169. data/test/dummy/tmp/cache/assets/D16/230/sprockets%2Ff48e5dea249ff033738f1f822c3337e0 +0 -0
  170. data/test/dummy/tmp/cache/assets/D1A/A20/sprockets%2F5c4d61c3376080dddedb319799e9d613 +0 -0
  171. data/test/dummy/tmp/cache/assets/D1B/630/sprockets%2F9bf2cfa5d34c327c03796b8946d935c2 +0 -0
  172. data/test/dummy/tmp/cache/assets/D1B/7A0/sprockets%2F3b13121e46c0a04a3c17427bdbbb85b4 +0 -0
  173. data/test/dummy/tmp/cache/assets/D1B/D80/sprockets%2F613c5b5186e4dc6dc5875c9652c24dd7 +0 -0
  174. data/test/dummy/tmp/cache/assets/D1E/E50/sprockets%2Ff4fb783105bdd65392f3567b841f4fd7 +0 -0
  175. data/test/dummy/tmp/cache/assets/D23/2D0/sprockets%2Fe8984f7c23d8a9d23f7bd07e3862e037 +0 -0
  176. data/test/dummy/tmp/cache/assets/D27/0B0/sprockets%2Fda1064a1c1679e19cb7a40f4a304b4d3 +0 -0
  177. data/test/dummy/tmp/cache/assets/D28/830/sprockets%2F97a8d51d3554eb01c02342a24efe0a3c +0 -0
  178. data/test/dummy/tmp/cache/assets/D28/DC0/sprockets%2F8e5a6fcdb5c823616c8996734c7da873 +0 -0
  179. data/test/dummy/tmp/cache/assets/D2A/250/sprockets%2F4c3b6f7de8c6ed856f9c40617588911e +0 -0
  180. data/test/dummy/tmp/cache/assets/D2B/A80/sprockets%2Ff43c20cdb36ce7edca1609300862046b +0 -0
  181. data/test/dummy/tmp/cache/assets/D30/060/sprockets%2F46f5ab9946171d1bb0d4dc1d35510a6e +0 -0
  182. data/test/dummy/tmp/cache/assets/D32/D10/sprockets%2Fb2f54606c3d212e5cea02b9b88490fc0 +0 -0
  183. data/test/dummy/tmp/cache/assets/D34/160/sprockets%2F53ea14edc816eb782774d2a101cad096 +0 -0
  184. data/test/dummy/tmp/cache/assets/D35/B30/sprockets%2F2fdd1b87e220f90505cf6d0f7373e02a +0 -0
  185. data/test/dummy/tmp/cache/assets/D37/6E0/sprockets%2Fb45fed0679012aaf91c4f36a08a4294c +0 -0
  186. data/test/dummy/tmp/cache/assets/D37/B40/sprockets%2Feb3217413f27f423c855cfc25affb460 +0 -0
  187. data/test/dummy/tmp/cache/assets/D38/D90/sprockets%2Fa7974e36f7152e3d0e0227dadfe54b11 +0 -0
  188. data/test/dummy/tmp/cache/assets/D39/7F0/sprockets%2Fb83f84e0ff47c5ea4ba1e8b042649013 +0 -0
  189. data/test/dummy/tmp/cache/assets/D3C/110/sprockets%2F843b92604362095bb0e69c90af2cedce +0 -0
  190. data/test/dummy/tmp/cache/assets/D3D/AE0/sprockets%2Fa446178197fb5aac557517b3a4aa7f6b +0 -0
  191. data/test/dummy/tmp/cache/assets/D3E/910/sprockets%2F922c9dffef01a035565919f0fb5cb702 +0 -0
  192. data/test/dummy/tmp/cache/assets/D3F/B10/sprockets%2Fb297607f301f8ddaa2238cc925f80f6a +0 -0
  193. data/test/dummy/tmp/cache/assets/D40/050/sprockets%2F88e0e3c625bd66fe51d1822d28af2d80 +0 -0
  194. data/test/dummy/tmp/cache/assets/D42/020/sprockets%2Fff66c71248d0f2672f93273ecba353ea +0 -0
  195. data/test/dummy/tmp/cache/assets/D42/B80/sprockets%2Fcfb9f1eec464f256284ebe1f36233317 +0 -0
  196. data/test/dummy/tmp/cache/assets/D43/180/sprockets%2F45bc45aac3d7f422fc46f8d422464e78 +0 -0
  197. data/test/dummy/tmp/cache/assets/D45/E90/sprockets%2Faec58a429ded259be31756b92ff15613 +0 -0
  198. data/test/dummy/tmp/cache/assets/D46/590/sprockets%2F55f507a58768d425dd4a627e40a7aefc +0 -0
  199. data/test/dummy/tmp/cache/assets/D46/B50/sprockets%2F10d770caa62701b52de688e97ee73d8e +0 -0
  200. data/test/dummy/tmp/cache/assets/D47/3B0/sprockets%2F97bb04754ad9d9ece853080b2aa925f7 +0 -0
  201. data/test/dummy/tmp/cache/assets/D48/570/sprockets%2Fa4eea835a9f6ce9660a507db3798027b +0 -0
  202. data/test/dummy/tmp/cache/assets/D48/FC0/sprockets%2F47cf2e58f56acbe7238b29631aac1779 +0 -0
  203. data/test/dummy/tmp/cache/assets/D4C/E70/sprockets%2F17678645a655cdf95b204e86dda4d8ca +0 -0
  204. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  205. data/test/dummy/tmp/cache/assets/D4F/190/sprockets%2Fadcc2e8b83fe4792f917447c86a44c80 +0 -0
  206. data/test/dummy/tmp/cache/assets/D4F/190/sprockets%2Fe68d3a8389e75eacdbd8983c09e19010 +0 -0
  207. data/test/dummy/tmp/cache/assets/D4F/950/sprockets%2Ff8b1e4a369d77442fe6bc39508e3e09e +0 -0
  208. data/test/dummy/tmp/cache/assets/D51/100/sprockets%2F571715ceabc7e33e66f846b456ef75d6 +0 -0
  209. data/test/dummy/tmp/cache/assets/D52/520/sprockets%2F68d5c86f6c9ea8fd1085f18449ae0d51 +0 -0
  210. data/test/dummy/tmp/cache/assets/D54/840/sprockets%2F2aafcd340835ca3bc69ed700b1c45501 +0 -0
  211. data/test/dummy/tmp/cache/assets/D59/400/sprockets%2Ff619d3fd22ddaac2f92a28fb40200720 +0 -0
  212. data/test/dummy/tmp/cache/assets/D5C/940/sprockets%2F6c29bc6eeefc3667299df20792e844e7 +0 -0
  213. data/test/dummy/tmp/cache/assets/D5F/C50/sprockets%2F4ec20042f390ae48d7b5a3cfec5141e4 +0 -0
  214. data/test/dummy/tmp/cache/assets/D62/F50/sprockets%2F66002908f508efb50b9c4cba2a5a6bf3 +0 -0
  215. data/test/dummy/tmp/cache/assets/D63/0D0/sprockets%2F323add23ad8d005af95bdb5095bd7725 +0 -0
  216. data/test/dummy/tmp/cache/assets/D63/A70/sprockets%2Fca01340b98e0b682d267ba1fd15bfe67 +0 -0
  217. data/test/dummy/tmp/cache/assets/D64/2F0/sprockets%2F341b06b57bb1fb630df8c1bef327b793 +0 -0
  218. data/test/dummy/tmp/cache/assets/D65/190/sprockets%2F75aad633ccedab73c51274a3391a8d74 +0 -0
  219. data/test/dummy/tmp/cache/assets/D68/F60/sprockets%2Fb057c6f6087cfc735b5a4c23a128bce5 +0 -0
  220. data/test/dummy/tmp/cache/assets/D6C/3B0/sprockets%2F45d5b58136f21d7df8c0dfb726e2e1c1 +0 -0
  221. data/test/dummy/tmp/cache/assets/D6E/620/sprockets%2F31eddf4853c19ed403d0f147be92df26 +0 -0
  222. data/test/dummy/tmp/cache/assets/D6F/1A0/sprockets%2Fe3d23db8d63093ae39833afcf34e31e6 +0 -0
  223. data/test/dummy/tmp/cache/assets/D6F/380/sprockets%2Fe5be640cc42df8c6a6049a790cf523c6 +0 -0
  224. data/test/dummy/tmp/cache/assets/D70/940/sprockets%2F5e653ff1a51de6c26d6e3abc92b76327 +0 -0
  225. data/test/dummy/tmp/cache/assets/D70/E80/sprockets%2F3a249d9c51393ce16d2640d9bbce3f7d +0 -0
  226. data/test/dummy/tmp/cache/assets/D71/910/sprockets%2F69527a4f2a5d2a2c0fe195f9f62d5b4c +0 -0
  227. data/test/dummy/tmp/cache/assets/D72/760/sprockets%2F9b3e9ea2de2065ac138b6363f7f890ac +0 -0
  228. data/test/dummy/tmp/cache/assets/D72/EF0/sprockets%2Ffc3f19c479f22a4d85c564ea13e51c8a +0 -0
  229. data/test/dummy/tmp/cache/assets/D75/D00/sprockets%2F03a8fbb049950569d4d87dab629dea5b +0 -0
  230. data/test/dummy/tmp/cache/assets/D76/0D0/sprockets%2F676ec207d3fead338ded78c856066a0b +0 -0
  231. data/test/dummy/tmp/cache/assets/D76/8E0/sprockets%2F10a7936c71ad9dff761d2d46d7eeb058 +0 -0
  232. data/test/dummy/tmp/cache/assets/D77/080/sprockets%2F43ff65dd091c2c6cf48cc646034d68cf +0 -0
  233. data/test/dummy/tmp/cache/assets/D77/6F0/sprockets%2Ffe6fcab6288ae589c13237e96b060cf2 +0 -0
  234. data/test/dummy/tmp/cache/assets/D77/900/sprockets%2F77e6b4eb7e3b05edf1650af6681676ad +0 -0
  235. data/test/dummy/tmp/cache/assets/D77/980/sprockets%2Fce065901d3959c67bec634eeb4e8fe10 +0 -0
  236. data/test/dummy/tmp/cache/assets/D78/660/sprockets%2Ffbaccc52e4e5859e6a0e1967f20627e6 +0 -0
  237. data/test/dummy/tmp/cache/assets/D78/770/sprockets%2F5dd67434b177d5b4efe2936efda284e0 +0 -0
  238. data/test/dummy/tmp/cache/assets/D78/A80/sprockets%2F238267f61c90e8b48ee46f4bf8a2c2db +0 -0
  239. data/test/dummy/tmp/cache/assets/D7B/770/sprockets%2Fb0c04ed32d0faa65210c0d52749fab0c +0 -0
  240. data/test/dummy/tmp/cache/assets/D7C/990/sprockets%2F22a69dc590f2f6eda8b7afe666c51890 +0 -0
  241. data/test/dummy/tmp/cache/assets/D7D/A50/sprockets%2F88d515afd730fef79c65550aa66ad68c +0 -0
  242. data/test/dummy/tmp/cache/assets/D7F/6A0/sprockets%2F3d99d4017a9f81fddcf380295a7b68cd +0 -0
  243. data/test/dummy/tmp/cache/assets/D80/D50/sprockets%2Fe86788cdff3e66bab07c115c91f8f624 +0 -0
  244. data/test/dummy/tmp/cache/assets/D81/B80/sprockets%2F6c3ca820fdd948e17a374d395c868fdd +0 -0
  245. data/test/dummy/tmp/cache/assets/D83/920/sprockets%2Fa4353a2776cfb78269d7fbff5e99c23b +0 -0
  246. data/test/dummy/tmp/cache/assets/D85/CA0/sprockets%2F03a58eb49cba3223f94c243aad1ad4a4 +0 -0
  247. data/test/dummy/tmp/cache/assets/D86/D80/sprockets%2F001c46974abf20cf3af4f01c61cf53ac +0 -0
  248. data/test/dummy/tmp/cache/assets/D8A/990/sprockets%2Fed89f0e69fb99fca78140bc4589465ca +0 -0
  249. data/test/dummy/tmp/cache/assets/D8C/610/sprockets%2F319bdc365f809d7e37fa8afd964659df +0 -0
  250. data/test/dummy/tmp/cache/assets/D8E/8B0/sprockets%2F6f0dd508157f0efd0aa6a1d7fca14902 +0 -0
  251. data/test/dummy/tmp/cache/assets/D8F/E30/sprockets%2F06fd1ba6b3ff60b75692a211c38a5afc +0 -0
  252. data/test/dummy/tmp/cache/assets/D8F/FD0/sprockets%2F285135cf1a8e04aacb4578c2dc6c3bc3 +0 -0
  253. data/test/dummy/tmp/cache/assets/D93/D50/sprockets%2Fba7262b8f2e69471fcd0287aae33ad0a +0 -0
  254. data/test/dummy/tmp/cache/assets/D95/1E0/sprockets%2F3a3eb981006b45a2cbe6f5a7bb47d95a +0 -0
  255. data/test/dummy/tmp/cache/assets/D95/5A0/sprockets%2F378dfc7f79f6c9e8f6bc0339d6965bc5 +0 -0
  256. data/test/dummy/tmp/cache/assets/D98/720/sprockets%2F2434ea0068e2695cbda673bacd54ddd7 +0 -0
  257. data/test/dummy/tmp/cache/assets/D9A/C20/sprockets%2F26067ec4dfe2554edc3d8f0fb340c54b +0 -0
  258. data/test/dummy/tmp/cache/assets/D9B/930/sprockets%2Fb681f3ffcd05af4603f0cc61abf29855 +0 -0
  259. data/test/dummy/tmp/cache/assets/D9D/C10/sprockets%2F60a29e756d0233a7de2ae66a7e6e7adc +0 -0
  260. data/test/dummy/tmp/cache/assets/D9F/EC0/sprockets%2F3f2504f96d16dca528633ff3eac07cfd +0 -0
  261. data/test/dummy/tmp/cache/assets/DA0/1D0/sprockets%2F8bfdcf3c0d64c1e1afc1e119c6693559 +0 -0
  262. data/test/dummy/tmp/cache/assets/DA1/810/sprockets%2F05650792d7f6ba6cb751dfad824f6acd +0 -0
  263. data/test/dummy/tmp/cache/assets/DA2/BA0/sprockets%2F9a568ad7ba24d4750ff257aef4ef054b +0 -0
  264. data/test/dummy/tmp/cache/assets/DA6/180/sprockets%2F323ef4f0c03fadb6488f17a46ff7e94b +0 -0
  265. data/test/dummy/tmp/cache/assets/DA7/120/sprockets%2Fbe8125168aeec567a27f3057bd6ebff7 +0 -0
  266. data/test/dummy/tmp/cache/assets/DA7/F70/sprockets%2F27a40d69eee047cb6fdfe6bf96028b61 +0 -0
  267. data/test/dummy/tmp/cache/assets/DAC/110/sprockets%2F6258f6e1e529d7e09e24c07fbbecdd93 +0 -0
  268. data/test/dummy/tmp/cache/assets/DAC/2C0/sprockets%2F3806cf983e7fe8daa4cf83e6a007dd28 +0 -0
  269. data/test/dummy/tmp/cache/assets/DAE/AF0/sprockets%2Fea723747dced4e7c5937af13b48c97eb +0 -0
  270. data/test/dummy/tmp/cache/assets/DB0/710/sprockets%2F3cef41ed9a7c6f52fae191d84783e5d7 +0 -0
  271. data/test/dummy/tmp/cache/assets/DBC/540/sprockets%2F86f6c9053499a920f48c7f5addfee7ed +0 -0
  272. data/test/dummy/tmp/cache/assets/DC0/770/sprockets%2Fa359adf42a317c4a5edce04902bc5dc7 +0 -0
  273. data/test/dummy/tmp/cache/assets/DC2/380/sprockets%2Ff4a7fc0145cc1dabcf19de1649392a2b +0 -0
  274. data/test/dummy/tmp/cache/assets/DC2/C50/sprockets%2F8e4dfd4afa600c1b2087bc8eb272e26b +0 -0
  275. data/test/dummy/tmp/cache/assets/DC3/130/sprockets%2F0672e7e19aa9f9d3020b292eadafb1eb +0 -0
  276. data/test/dummy/tmp/cache/assets/DC3/700/sprockets%2F0d2f8e4ddd72d14f6ad338b3a9b05cc1 +0 -0
  277. data/test/dummy/tmp/cache/assets/DC8/4B0/sprockets%2F44e6f9eaba33fcb43a434d80ef8ac073 +0 -0
  278. data/test/dummy/tmp/cache/assets/DC8/B60/sprockets%2F9bd8be564a3ad9f68a7105b0cda4ef11 +0 -0
  279. data/test/dummy/tmp/cache/assets/DC9/B30/sprockets%2Ffaa921fa9eaed21d4826a9d661b9dd10 +0 -0
  280. data/test/dummy/tmp/cache/assets/DCB/A70/sprockets%2F6fcd98bbdab531575399a42ae1ded2d0 +0 -0
  281. data/test/dummy/tmp/cache/assets/DCD/140/sprockets%2F83c3caad52462c9fcfacf32c3fd27944 +0 -0
  282. data/test/dummy/tmp/cache/assets/DCF/1F0/sprockets%2F42c410adb8a2cfdfb21e01f003dc30aa +0 -0
  283. data/test/dummy/tmp/cache/assets/DCF/250/sprockets%2F2d76775ea0f52a5e3d1c86c2dfba0ff8 +0 -0
  284. data/test/dummy/tmp/cache/assets/DD1/8C0/sprockets%2F84bff024614f1e15fa0d77fd1ff7dd7b +0 -0
  285. data/test/dummy/tmp/cache/assets/DD2/280/sprockets%2Fe1f8c863bf2d18e0a2bd7be69a2b9e36 +0 -0
  286. data/test/dummy/tmp/cache/assets/DD2/710/sprockets%2F8628d8ed90ded6b0e0eb755a78acac24 +0 -0
  287. data/test/dummy/tmp/cache/assets/DD3/630/sprockets%2Ffe6d0ef414fe3382a471e3faf7e4dd63 +0 -0
  288. data/test/dummy/tmp/cache/assets/DD4/0A0/sprockets%2Fe6bb2a5ff873cf3158ed0ac4b3f86f09 +0 -0
  289. data/test/dummy/tmp/cache/assets/DD4/130/sprockets%2Fb0ef8baf598339a286cd0df63ac7b83b +0 -0
  290. data/test/dummy/tmp/cache/assets/DD4/CB0/sprockets%2F2fb64db80b4dc8ee8fcfc16f4270e473 +0 -0
  291. data/test/dummy/tmp/cache/assets/DD6/C30/sprockets%2Fff35f1f235d08836d5c2b7fa55bfef5b +0 -0
  292. data/test/dummy/tmp/cache/assets/DD8/B90/sprockets%2F7ae70acd3b6ebb964d280f97cfb4955c +0 -0
  293. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  294. data/test/dummy/tmp/cache/assets/DDC/E10/sprockets%2F61ce8847c7f5d1d08edfea0d146df5e8 +0 -0
  295. data/test/dummy/tmp/cache/assets/DE0/170/sprockets%2F9a9b79ff56fdcebe5486f0e367c411bb +0 -0
  296. data/test/dummy/tmp/cache/assets/DE2/260/sprockets%2Ff8f896defc5e94cfa30e2f5515db7c08 +0 -0
  297. data/test/dummy/tmp/cache/assets/DE3/300/sprockets%2Fc53d49c8920d7b95a7ed8ff4ea6ea6e4 +0 -0
  298. data/test/dummy/tmp/cache/assets/DE7/630/sprockets%2F5f3ce8dffadfd5990f5e44c68d9425e1 +0 -0
  299. data/test/dummy/tmp/cache/assets/DEC/BA0/sprockets%2Ff6bec7e8e869ef7749d660d45bba7ca7 +0 -0
  300. data/test/dummy/tmp/cache/assets/DED/550/sprockets%2F6b111cf52f042fe47ebd8baa81dab53e +0 -0
  301. data/test/dummy/tmp/cache/assets/DEE/540/sprockets%2F8bad16d64dbacd8bc46b2c145d0ce318 +0 -0
  302. data/test/dummy/tmp/cache/assets/DF2/E40/sprockets%2F102f882bdb07bebda9a4db5b4c2b48d8 +0 -0
  303. data/test/dummy/tmp/cache/assets/DF3/A30/sprockets%2F03dd29ddb09be1c8aee5db733b4d047c +0 -0
  304. data/test/dummy/tmp/cache/assets/DFA/AA0/sprockets%2F0bdf9202bafff6fe48cf8a300a5393ed +0 -0
  305. data/test/dummy/tmp/cache/assets/DFD/420/sprockets%2F5128ab1ee04279ebee5edbfed9182ab6 +0 -0
  306. data/test/dummy/tmp/cache/assets/E00/AB0/sprockets%2F997319d32bcaccfbce780f3ccc8a27f0 +0 -0
  307. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  308. data/test/dummy/tmp/cache/assets/E04/A10/sprockets%2Fe97eabd6255d0ef5f9b0ccb3c292f2d9 +0 -0
  309. data/test/dummy/tmp/cache/assets/E07/6F0/sprockets%2F5b96fbbf00d6ae89b172aecc79a7a95e +0 -0
  310. data/test/dummy/tmp/cache/assets/E13/B00/sprockets%2Fc2f4bc4b6df7022fbe7a0cb00a3afd45 +0 -0
  311. data/test/dummy/tmp/cache/assets/E16/F80/sprockets%2F9ede6a58cd5c1fff42e8c5cf4563d7f6 +0 -0
  312. data/test/dummy/tmp/cache/assets/E1C/060/sprockets%2F2497df812be0edad860cecbb200ba4fd +0 -0
  313. data/test/dummy/tmp/cache/assets/E23/040/sprockets%2Faf3f9526dc1358bb0c06ffabba0feb67 +0 -0
  314. data/test/dummy/tmp/cache/assets/E25/470/sprockets%2F550ad2a5de4f1715af8df2afe15fb1fe +0 -0
  315. data/test/dummy/tmp/cache/assets/E33/430/sprockets%2Fbcdf44f9c1fbd5cf69b77801af27aa5d +0 -0
  316. data/test/dummy/tmp/cache/assets/E54/3F0/sprockets%2Fcb7e21a767fc3d2ac45f8bc4dc1dce4a +0 -0
  317. data/test/dummy/tmp/cache/assets/E5B/510/sprockets%2F1fa4efe0ab3f55fef3f67483b3eac6ba +0 -0
  318. data/test/dummy/tmp/cache/assets/E5E/2B0/sprockets%2F6eb5aba2f6fa8a56fe6da1d77bbea970 +0 -0
  319. data/test/dummy/tmp/cache/assets/E90/F00/sprockets%2Fc1ab3aec41ccae8fa8ee48b1f85d89ec +0 -0
  320. data/test/dummy/tmp/cache/assets/E9A/140/sprockets%2Faf8b05634ecfcdeb876bdf0de4b79ffc +0 -0
  321. data/test/dummy/tmp/cache/assets/E9B/570/sprockets%2F07f6b4f95754ee6e8da8deb7cbacdadd +0 -0
  322. data/test/dummy/tmp/cache/assets/EA4/AD0/sprockets%2Fcbe751f1bc0a3ab64e3eac8e80abaead +0 -0
  323. data/test/dummy/tmp/pids/server.pid +1 -0
  324. data/test/functional/gutter/gutter_controller_test.rb +11 -0
  325. data/test/gutter_test.rb +7 -0
  326. data/test/integration/navigation_test.rb +10 -0
  327. data/test/test_helper.rb +15 -0
  328. data/test/unit/helpers/gutter/gutter_helper_test.rb +6 -0
  329. metadata +688 -0
@@ -0,0 +1,512 @@
1
+ // Gets data from provided url and updates DOM element.
2
+ function generate_os_data(url, element) {
3
+ $.get(url, function (data) {
4
+ $(element).text(data[0]);
5
+ }, "json");
6
+ }
7
+
8
+ // If dataTable with provided ID exists, destroy it.
9
+ function destroy_dataTable(table_id) {
10
+ var table = $("#" + table_id);
11
+ var ex = document.getElementById(table_id);
12
+ if ($.fn.DataTable.fnIsDataTable(ex)) {
13
+ table.hide().dataTable().fnClearTable();
14
+ table.dataTable().fnDestroy();
15
+ }
16
+ }
17
+
18
+ //DataTables
19
+ //Sort file size data.
20
+ jQuery.extend(jQuery.fn.dataTableExt.oSort, {
21
+ "file-size-units": {
22
+ K: 1024,
23
+ M: Math.pow(1024, 2),
24
+ G: Math.pow(1024, 3),
25
+ T: Math.pow(1024, 4),
26
+ P: Math.pow(1024, 5),
27
+ E: Math.pow(1024, 6)
28
+ },
29
+
30
+ "file-size-pre": function (a) {
31
+ var x = a.substring(0, a.length - 1);
32
+ var x_unit = a.substring(a.length - 1, a.length);
33
+ if (jQuery.fn.dataTableExt.oSort['file-size-units'][x_unit]) {
34
+ return parseInt(x * jQuery.fn.dataTableExt.oSort['file-size-units'][x_unit], 10);
35
+ }
36
+ else {
37
+ return parseInt(x + x_unit, 10);
38
+ }
39
+ },
40
+
41
+ "file-size-asc": function (a, b) {
42
+ return ((a < b) ? -1 : ((a > b) ? 1 : 0));
43
+ },
44
+
45
+ "file-size-desc": function (a, b) {
46
+ return ((a < b) ? 1 : ((a > b) ? -1 : 0));
47
+ }
48
+ });
49
+
50
+ //DataTables
51
+ //Sort numeric data which has a percent sign with it.
52
+ jQuery.extend(jQuery.fn.dataTableExt.oSort, {
53
+ "percent-pre": function (a) {
54
+ var x = (a === "-") ? 0 : a.replace(/%/, "");
55
+ return parseFloat(x);
56
+ },
57
+
58
+ "percent-asc": function (a, b) {
59
+ return ((a < b) ? -1 : ((a > b) ? 1 : 0));
60
+ },
61
+
62
+ "percent-desc": function (a, b) {
63
+ return ((a < b) ? 1 : ((a > b) ? -1 : 0));
64
+ }
65
+ });
66
+
67
+ //DataTables
68
+ //Sort IP addresses
69
+ jQuery.extend(jQuery.fn.dataTableExt.oSort, {
70
+ "ip-address-pre": function (a) {
71
+ // split the address into octets
72
+ //
73
+ var x = a.split('.');
74
+
75
+ // pad each of the octets to three digits in length
76
+ //
77
+ function zeroPad(num, places) {
78
+ var zero = places - num.toString().length + 1;
79
+ return Array(+(zero > 0 && zero)).join("0") + num;
80
+ }
81
+
82
+ // build the resulting IP
83
+ var r = '';
84
+ for (var i = 0; i < x.length; i++)
85
+ r = r + zeroPad(x[i], 3);
86
+
87
+ // return the formatted IP address
88
+ //
89
+ return r;
90
+ },
91
+
92
+ "ip-address-asc": function (a, b) {
93
+ return ((a < b) ? -1 : ((a > b) ? 1 : 0));
94
+ },
95
+
96
+ "ip-address-desc": function (a, b) {
97
+ return ((a < b) ? 1 : ((a > b) ? -1 : 0));
98
+ }
99
+ });
100
+
101
+ /*******************************
102
+ Data Call Functions
103
+ *******************************/
104
+
105
+ var dashboard = {};
106
+
107
+ dashboard.getPs = function () {
108
+ $.get('/gutter/fetch-data/ps', function (data) {
109
+ destroy_dataTable("ps_dashboard");
110
+ $("#filter-ps").val("").off("keyup");
111
+ _head = data.reverse().pop()
112
+ data.reverse();
113
+ var psTable = $("#ps_dashboard").dataTable({
114
+ aoColumns: $.map(_head, function (element, index) {
115
+ return {sTitle: element}
116
+ }),
117
+ aaData: data,
118
+ bPaginate: true,
119
+ sPaginationType: "full_numbers",
120
+ bFilter: true,
121
+ sDom: "lrtip",
122
+ bAutoWidth: false,
123
+ bInfo: false
124
+ }).fadeIn();
125
+
126
+ $("#filter-ps").on("keyup", function () {
127
+ psTable.fnFilter(this.value);
128
+ });
129
+ }, "json");
130
+ }
131
+
132
+ dashboard.getNetStat = function () {
133
+ $.get('/gutter/fetch-data/netstats', function (data) {
134
+ destroy_dataTable("netstat_dashboard");
135
+
136
+ _head = data.reverse().pop()
137
+ data.reverse();
138
+ $("#netstat_dashboard").dataTable({
139
+ aaData: data,
140
+ aoColumns: $.map(_head, function (element, index) {
141
+ return {sTitle: element}
142
+ }),
143
+ aaSorting: [
144
+ [0, "desc"]
145
+ ],
146
+ iDisplayLength: 5,
147
+ bPaginate: true,
148
+ sPaginationType: "full_numbers",
149
+ bFilter: true,
150
+ sDom: "lrtip",
151
+ bAutoWidth: false,
152
+ bInfo: false
153
+ }).fadeIn();
154
+ }, "json");
155
+ }
156
+
157
+
158
+ dashboard.getUsers = function () {
159
+ $.get('/gutter/fetch-data/users', function (data) {
160
+ destroy_dataTable("users_dashboard");
161
+
162
+ _head = data.reverse().pop()
163
+ data.reverse();
164
+
165
+ $("#users_dashboard").dataTable({
166
+ aaData: data,
167
+ aoColumns: $.map(_head, function (element, index) {
168
+ return {sTitle: element}
169
+ }),
170
+ aaSorting: [
171
+ [0, "desc"]
172
+ ],
173
+ iDisplayLength: 5,
174
+ bPaginate: true,
175
+ sPaginationType: "full_numbers",
176
+ bFilter: false,
177
+ bAutoWidth: false,
178
+ bInfo: false
179
+ }).fadeIn();
180
+ }, "json");
181
+ $("select[name='users_dashboard_length']").val("5");
182
+ }
183
+
184
+ dashboard.getOnline = function () {
185
+ $.get('/gutter/fetch-data/online', function (data) {
186
+ destroy_dataTable("online_dashboard");
187
+
188
+ _head = data.reverse().pop()
189
+ data.reverse();
190
+
191
+ $("#online_dashboard").dataTable({
192
+ aaData: data,
193
+ aoColumns: $.map(_head, function (element, index) {
194
+ return {sTitle: element}
195
+ }),
196
+ aaSorting: [
197
+ [0, "desc"]
198
+ ],
199
+ iDisplayLength: 5,
200
+ bPaginate: true,
201
+ sPaginationType: "full_numbers",
202
+ bFilter: false,
203
+ bAutoWidth: false,
204
+ bInfo: false
205
+ }).fadeIn();
206
+ }, "json");
207
+ $("select[name='online_dashboard_length']").val("5");
208
+ }
209
+
210
+ dashboard.getLastLog = function () {
211
+ $.get('/gutter/fetch-data/last_login', function (data) {
212
+ destroy_dataTable("lastlog_dashboard");
213
+ _head = data.reverse().pop()
214
+ data.reverse();
215
+
216
+ $("#lastlog_dashboard").dataTable({
217
+ aaData: data,
218
+ aoColumns: $.map(_head, function (element, index) {
219
+ return {sTitle: element}
220
+ }),
221
+ aaSorting: [
222
+ [2, "desc"]
223
+ ],
224
+ iDisplayLength: 5,
225
+ bPaginate: true,
226
+ sPaginationType: "full_numbers",
227
+ bFilter: false,
228
+ bAutoWidth: false,
229
+ bInfo: false
230
+ }).fadeIn();
231
+ }, "json");
232
+ $("select[name='lastlog_dashboard_length']").val("5");
233
+ }
234
+
235
+ dashboard.getRam = function () {
236
+ $.get('/gutter/fetch-data/ram', function (data) {
237
+ var ram_total = data[0];
238
+ var ram_used = Math.round((data[1] / ram_total) * 100);
239
+ var ram_free = Math.round((data[2] / ram_total) * 100);
240
+
241
+ $("#ram-total").text(ram_total);
242
+ $("#ram-used").text(data[1]);
243
+ $("#ram-free").text(data[2]);
244
+
245
+ $("#ram-free-per").text(ram_free);
246
+ $("#ram-used-per").text(ram_used);
247
+ }, "json");
248
+ }
249
+
250
+ dashboard.getDf = function () {
251
+ $.get('/gutter/fetch-data/df', function (data) {
252
+ var table = $("#df_dashboard");
253
+ var ex = document.getElementById("df_dashboard");
254
+ if ($.fn.DataTable.fnIsDataTable(ex)) {
255
+ table.hide().dataTable().fnClearTable();
256
+ table.dataTable().fnDestroy();
257
+ }
258
+ _head = data.reverse().pop()
259
+ data.reverse();
260
+ table.dataTable({
261
+ aaData: data,
262
+ aoColumns: $.map(_head, function (element, index) {
263
+ return {sTitle: element}
264
+ }),
265
+ iDisplayLength: 5,
266
+ bPaginate: true,
267
+ bFilter: false,
268
+ bAutoWidth: true,
269
+ bInfo: false
270
+ }).fadeIn();
271
+ }, "json");
272
+ }
273
+
274
+ dashboard.getWhereIs = function () {
275
+ $.get('/gutter/fetch-data/whereis', function (data) {
276
+ var table = $("#whereis_dashboard");
277
+ var ex = document.getElementById("whereis_dashboard");
278
+ if ($.fn.DataTable.fnIsDataTable(ex)) {
279
+ table.hide().dataTable().fnClearTable();
280
+ table.dataTable().fnDestroy();
281
+ }
282
+
283
+ _head = data.reverse().pop()
284
+ data.reverse();
285
+ table.dataTable({
286
+ aaData: data,
287
+ aoColumns: $.map(_head, function (element, index) {
288
+ return {sTitle: element}
289
+ }),
290
+ bPaginate: true,
291
+ iDisplayLength: 6,
292
+ bFilter: false,
293
+ aaSorting: [
294
+ [1, "desc"]
295
+ ],
296
+ bAutoWidth: false,
297
+ bInfo: false
298
+ }).fadeIn();
299
+ }, "json");
300
+ }
301
+ // General Info Area
302
+ dashboard.getOs = function () {
303
+ generate_os_data('/gutter/fetch-data/issue', "#os-info");
304
+ generate_os_data('/gutter/fetch-data/hostname', "#os-hostname");
305
+ generate_os_data('/gutter/fetch-data/time', "#os-time");
306
+ generate_os_data('/gutter/fetch-data/uptime', "#os-uptime");
307
+ }
308
+
309
+ dashboard.getIp = function () {
310
+ $.get('/gutter/fetch-data/ip', function (data) {
311
+ destroy_dataTable("ip_dashboard");
312
+ $("#ip_dashboard").dataTable({
313
+ aaData: data,
314
+ aoColumns: [
315
+ { sTitle: "Interface" },
316
+ { sTitle: "IP" }
317
+ ],
318
+ iDisplayLength: 5,
319
+ bPaginate: true,
320
+ sPaginationType: "two_button",
321
+ bFilter: false,
322
+ bAutoWidth: true,
323
+ bInfo: false
324
+ }).fadeIn();
325
+ }, "json");
326
+ }
327
+
328
+ dashboard.getPing = function () {
329
+ var refreshIcon = $('#refresh-ping .icon-refresh');
330
+ refreshIcon.addClass('icon-spin');
331
+
332
+ $.ajax({
333
+ url: '/gutter/fetch-data/ping',
334
+ cache: false,
335
+ success: function (data) {
336
+ destroy_dataTable("ping_dashboard");
337
+ _head = data.reverse().pop()
338
+ data.reverse();
339
+
340
+ $("#ping_dashboard").dataTable({
341
+ aaData: data,
342
+ aoColumns: $.map(_head, function (element, index) {
343
+ return {sTitle: element}
344
+ }),
345
+ aaSorting: [
346
+ [0, "desc"]
347
+ ],
348
+ bPaginate: true,
349
+ sPaginationType: "full_numbers",
350
+ bFilter: true,
351
+ sDom: "lrtip",
352
+ bAutoWidth: false,
353
+ bInfo: false
354
+ }).fadeIn();
355
+ },
356
+ complete: function () {
357
+ refreshIcon.removeClass('icon-spin');
358
+ }
359
+ });
360
+ }
361
+
362
+ dashboard.getIspeed = function () {
363
+ var rateUpstream = $("#ispeed-rate-upstream");
364
+ var rateDownstream = $("#ispeed-rate-downstream");
365
+ var refreshIcon = $("#refresh-ispeed .icon-refresh");
366
+
367
+ // 0 = KB
368
+ // 1 = MB
369
+ var AS = 0;
370
+ var power = AS + 1;
371
+ var result = { 'upstream': 0, 'downstream': 0};
372
+
373
+ refreshIcon.addClass('icon-spin');
374
+
375
+ $.ajax({
376
+ url: 'sh/speed.php',
377
+ cache: false,
378
+ success: function (data) {
379
+ // round the speed (float to int);
380
+ // dependent on value of AS, calculate speed in MB or KB ps
381
+ result['upstream'] = Math.floor((data['upstream'] / (Math.pow(1024, power))));
382
+ result['downstream'] = Math.floor((data['downstream'] / (Math.pow(1024, power))));
383
+ // update rate of speed on widget
384
+ rateUpstream.text(result['upstream']);
385
+ rateDownstream.text(result['downstream']);
386
+ },
387
+ complete: function () {
388
+ refreshIcon.removeClass('icon-spin');
389
+ }
390
+ });
391
+
392
+ // update unit value in widget
393
+ var leadUpstream = rateUpstream.next(".lead");
394
+ var leadDownstream = rateDownstream.next(".lead");
395
+ leadUpstream.text(AS ? "MB/s" : "KB/s");
396
+ leadDownstream.text(AS ? "MB/s" : "KB/s");
397
+ }
398
+
399
+ dashboard.getLoadAverage = function () {
400
+ $.get('/gutter/fetch-data/load_average', function (data) {
401
+ $("#cpu-1min").text(data[0][0]);
402
+ $("#cpu-5min").text(data[1][0]);
403
+ $("#cpu-15min").text(data[2][0]);
404
+ $("#cpu-1min-per").text(data[0][1]);
405
+ $("#cpu-5min-per").text(data[1][1]);
406
+ $("#cpu-15min-per").text(data[2][1]);
407
+ }, "json");
408
+ generate_os_data('/gutter/fetch-data/numberofcores', "#core-number");
409
+ }
410
+
411
+ dashboard.getDnsmasqLeases = function () {
412
+ $.get("sh/dhcp-leases.php", function (data) {
413
+ var table = $("#dnsmasqleases_dashboard");
414
+ var ex = document.getElementById("dnsmasqleases_dashboard");
415
+ if ($.fn.DataTable.fnIsDataTable(ex)) {
416
+ table.hide().dataTable().fnClearTable();
417
+ table.dataTable().fnDestroy();
418
+ }
419
+
420
+ table.dataTable({
421
+ aaData: data,
422
+ aoColumns: [
423
+ { sTitle: "Expires At" },
424
+ { sTitle: "MAC Address" },
425
+ { sTitle: "IP Address", sType: "ip-address" },
426
+ { sTitle: "Hostname" }
427
+ ],
428
+ bPaginate: false,
429
+ bFilter: false,
430
+ bAutoWidth: true,
431
+ bInfo: false
432
+ }).fadeIn();
433
+ }, "json");
434
+ }
435
+
436
+ dashboard.getBandwidth = function () {
437
+ var refreshIcon = $('#refresh-bandwidth .icon-refresh');
438
+ refreshIcon.addClass('icon-spin');
439
+
440
+ $.ajax({
441
+ url: '/gutter/fetch-data/bandwidth',
442
+ cache: false,
443
+ dataType: 'json',
444
+ success: function (data) {
445
+ $('#bw-tx').text(data.tx);
446
+ $('#bw-rx').text(data.rx);
447
+ },
448
+ complete: function () {
449
+ refreshIcon.removeClass('icon-spin');
450
+ }
451
+ });
452
+
453
+ }
454
+
455
+ dashboard.getSwaps = function () {
456
+ $.get('/gutter/fetch-data/swap', function (data) {
457
+ var table = $("#swap_dashboard");
458
+ var ex = document.getElementById("swap_dashboard");
459
+ if ($.fn.DataTable.fnIsDataTable(ex)) {
460
+ table.hide().dataTable().fnClearTable();
461
+ table.dataTable().fnDestroy();
462
+ }
463
+ _head = data.reverse().pop()
464
+ data.reverse();
465
+
466
+ table.dataTable({
467
+ aaData: data,
468
+ aoColumns: $.map(_head, function (element, index) {
469
+ return {sTitle: element}
470
+ }),
471
+ iDisplayLength: 5,
472
+ bPaginate: true,
473
+ bFilter: false,
474
+ bAutoWidth: true,
475
+ bInfo: false
476
+ }).fadeIn();
477
+
478
+ }, "json");
479
+
480
+ }
481
+
482
+
483
+ /**
484
+ * Refreshes all widgets. Does not call itself recursively.
485
+ */
486
+ dashboard.getAll = function () {
487
+ for (var item in dashboard.fnMap) {
488
+ if (dashboard.fnMap.hasOwnProperty(item) && item !== "all") {
489
+ dashboard.fnMap[item]();
490
+ }
491
+ }
492
+ }
493
+
494
+ dashboard.fnMap = {
495
+ all: dashboard.getAll,
496
+ ram: dashboard.getRam,
497
+ whereis: dashboard.getWhereIs,
498
+ ps: dashboard.getPs,
499
+ df: dashboard.getDf,
500
+ os: dashboard.getOs,
501
+ ping: dashboard.getPing,
502
+ online: dashboard.getOnline,
503
+ netstat: dashboard.getNetStat,
504
+ users: dashboard.getUsers,
505
+ swap: dashboard.getSwaps,
506
+ cpu: dashboard.getLoadAverage,
507
+ bandwidth: dashboard.getBandwidth,
508
+ lastlog: dashboard.getLastLog,
509
+ ip: dashboard.getIp
510
+ // dnsmasqleases: dashboard.getDnsmasqLeases,
511
+ // ispeed: dashboard.getIspeed,
512
+ };