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.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +58 -0
- data/Rakefile +40 -0
- data/app/assets/javascripts/base.js +228 -0
- data/app/assets/javascripts/gutter/application.js +18 -0
- data/app/assets/javascripts/gutter/bootstrap.js +1726 -0
- data/app/assets/javascripts/gutter/dashboard.js +512 -0
- data/app/assets/javascripts/gutter/gutter.js +2 -0
- data/app/assets/javascripts/gutter/odometer.js +2 -0
- data/app/assets/stylesheets/gutter/bootstrap-responsive.min.css +12 -0
- data/app/assets/stylesheets/gutter/bootstrap.min.css +3647 -0
- data/app/assets/stylesheets/gutter/font-awesome/css/archive/font-awesome-ie7.css +1203 -0
- data/app/assets/stylesheets/gutter/font-awesome/css/archive/font-awesome-ie7.min.css +384 -0
- data/app/assets/stylesheets/gutter/font-awesome/css/archive/font-awesome.css +1479 -0
- data/app/assets/stylesheets/gutter/font-awesome/css/font-awesome.min.css +403 -0
- data/app/assets/stylesheets/gutter/font-awesome/font/FontAwesome.otf +0 -0
- data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.eot +0 -0
- data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.svg +399 -0
- data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.ttf +0 -0
- data/app/assets/stylesheets/gutter/font-awesome/font/fontawesome-webfont.woff +0 -0
- data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.eot +0 -0
- data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.svg +958 -0
- data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.ttf +0 -0
- data/app/assets/stylesheets/gutter/font/OpenSans-Regular-webfont.woff +0 -0
- data/app/assets/stylesheets/gutter/odometer.css +94 -0
- data/app/assets/stylesheets/gutter/pages/dashboard.css +357 -0
- data/app/assets/stylesheets/gutter/style.css +1335 -0
- data/app/controllers/gutter/application_controller.rb +4 -0
- data/app/controllers/gutter/gutter_controller.rb +28 -0
- data/app/helpers/gutter/application_helper.rb +4 -0
- data/app/helpers/gutter/gutter_helper.rb +148 -0
- data/app/views/gutter/gutter/index.html.erb +476 -0
- data/app/views/layouts/gutter/application.html.erb +29 -0
- data/config/routes.rb +4 -0
- data/lib/gutter.rb +4 -0
- data/lib/gutter/engine.rb +5 -0
- data/lib/gutter/version.rb +3 -0
- data/lib/tasks/gutter_tasks.rake +4 -0
- data/test/dummy/-version}] +0 -0
- data/test/dummy/README.rdoc +261 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +15 -0
- data/test/dummy/app/assets/stylesheets/application.css +13 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +59 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +37 -0
- data/test/dummy/config/environments/production.rb +67 -0
- data/test/dummy/config/environments/test.rb +37 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +15 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +4 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/log/development.log +68803 -0
- data/test/dummy/plain +1 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +25 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/dummy/tmp/cache/assets/C0F/230/sprockets%2Fe235290a73e0368353a12d52b4008880 +0 -0
- data/test/dummy/tmp/cache/assets/C10/200/sprockets%2F014c132130107a064cf1462b567f7996 +0 -0
- data/test/dummy/tmp/cache/assets/C1F/600/sprockets%2Ff6315a5472f4449974300a605b9307b6 +0 -0
- data/test/dummy/tmp/cache/assets/C29/C60/sprockets%2F60d27d33199c6c58260750985a00c589 +0 -0
- data/test/dummy/tmp/cache/assets/C2F/0D0/sprockets%2F9755059392092185dd2fd9a3472f5722 +0 -0
- data/test/dummy/tmp/cache/assets/C37/2D0/sprockets%2F814be07a2034dfd2254d166408000707 +0 -0
- data/test/dummy/tmp/cache/assets/C46/130/sprockets%2F876c2751f8181102c232a2849f0b43f1 +0 -0
- data/test/dummy/tmp/cache/assets/C4D/710/sprockets%2Fa50630663d18903094ff074c24039ff5 +0 -0
- data/test/dummy/tmp/cache/assets/C50/330/sprockets%2Fb50529295251120a96c04ba84676f9b8 +0 -0
- data/test/dummy/tmp/cache/assets/C5A/C60/sprockets%2Fd2e3dc7116846175bf63872e05444289 +0 -0
- data/test/dummy/tmp/cache/assets/C5D/510/sprockets%2F699511812376f70b70225799b77ecb4a +0 -0
- data/test/dummy/tmp/cache/assets/C62/340/sprockets%2F685468f90cd007509b87023fe53548f6 +0 -0
- data/test/dummy/tmp/cache/assets/C65/1A0/sprockets%2Fce80371336a1f2115b407060fa36624b +0 -0
- data/test/dummy/tmp/cache/assets/C65/870/sprockets%2F88d9680a907f3345596d0e71e69a1625 +0 -0
- data/test/dummy/tmp/cache/assets/C72/230/sprockets%2F02127f6a1704f956f0380622a18aa3d9 +0 -0
- data/test/dummy/tmp/cache/assets/C72/8A0/sprockets%2F9af3a44690e2503492e1d5a43016085b +0 -0
- data/test/dummy/tmp/cache/assets/C7B/160/sprockets%2F20b082505bb2eb8c31f979180385736c +0 -0
- data/test/dummy/tmp/cache/assets/C80/580/sprockets%2F884728b425edf02184c5abc660547163 +0 -0
- data/test/dummy/tmp/cache/assets/C84/D10/sprockets%2F04b1c499392c09e64e01ce5620966b49 +0 -0
- data/test/dummy/tmp/cache/assets/C86/ED0/sprockets%2F448f1cd3609483a3b4c1231e8494c985 +0 -0
- data/test/dummy/tmp/cache/assets/C87/200/sprockets%2F93e306c2913ab04984def9297462108d +0 -0
- data/test/dummy/tmp/cache/assets/C89/180/sprockets%2F13dd63a30f961887bb06389378833b5b +0 -0
- data/test/dummy/tmp/cache/assets/C8B/C30/sprockets%2F22476c169944fa06b7aaa08b88906839 +0 -0
- data/test/dummy/tmp/cache/assets/C99/6D0/sprockets%2Fd06185ff5de8f46176799a9b61648160 +0 -0
- data/test/dummy/tmp/cache/assets/CA3/960/sprockets%2F410c27fc287714811417e074c32dae5c +0 -0
- data/test/dummy/tmp/cache/assets/CA4/740/sprockets%2F44b9704319c995f5d33a13c235af22a0 +0 -0
- data/test/dummy/tmp/cache/assets/CA5/8A0/sprockets%2F60dae2c244014fc89264159f3d1052d7 +0 -0
- data/test/dummy/tmp/cache/assets/CA6/B10/sprockets%2F7a1f934840fbe5c20475b5177f040b15 +0 -0
- data/test/dummy/tmp/cache/assets/CA8/020/sprockets%2F22272da364674547025cfa718a9a32cf +0 -0
- data/test/dummy/tmp/cache/assets/CA8/9B0/sprockets%2F308d9364105b79f083d0ba4d06b6436d +0 -0
- data/test/dummy/tmp/cache/assets/CAB/9E0/sprockets%2Fa99ca5b056b04732410c439ce865d760 +0 -0
- data/test/dummy/tmp/cache/assets/CB0/510/sprockets%2F55c71fa75f40008a4fa3807c8662385c +0 -0
- data/test/dummy/tmp/cache/assets/CB1/370/sprockets%2F37594dc21e68305891632b01ffb2eb49 +0 -0
- data/test/dummy/tmp/cache/assets/CB3/3C0/sprockets%2F75d6b40181d32bf26f34676cbe814494 +0 -0
- data/test/dummy/tmp/cache/assets/CB8/830/sprockets%2Fde2ff94651818674052c63136ab9d54d +0 -0
- data/test/dummy/tmp/cache/assets/CBA/C40/sprockets%2F865e6f3c235f4a88006a9649616dbc06 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/260/sprockets%2F79da0de746521480455e65683df4be53 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/410/sprockets%2F9d2d200a8ede615f6187d94934c62627 +0 -0
- data/test/dummy/tmp/cache/assets/CBB/DB0/sprockets%2F384981bb74dece48d02624553e617e83 +0 -0
- data/test/dummy/tmp/cache/assets/CBD/A30/sprockets%2F943d0159eee3634ec448b6c098b45079 +0 -0
- data/test/dummy/tmp/cache/assets/CBE/F70/sprockets%2F664f0c2e6be06256d516965d5572e8e5 +0 -0
- data/test/dummy/tmp/cache/assets/CC0/DD0/sprockets%2F36c97b1ccd2cd9b455887578b8821108 +0 -0
- data/test/dummy/tmp/cache/assets/CC2/070/sprockets%2F7925984f3e398b2325c27466caaed772 +0 -0
- data/test/dummy/tmp/cache/assets/CC2/390/sprockets%2Fb4b02574362368489699c5fec248ab8d +0 -0
- data/test/dummy/tmp/cache/assets/CC3/E00/sprockets%2Fb1580a7235647fc541e89fc418479fe6 +0 -0
- data/test/dummy/tmp/cache/assets/CC4/C90/sprockets%2Fd7626eb467d298f1698303704a9feb55 +0 -0
- data/test/dummy/tmp/cache/assets/CCA/4D0/sprockets%2Fcd64342c823cf657989ea194759d265e +0 -0
- data/test/dummy/tmp/cache/assets/CCE/BE0/sprockets%2Ffea718309b57fa3ff13b288887099669 +0 -0
- data/test/dummy/tmp/cache/assets/CCF/1C0/sprockets%2F85e27c4ccfb28f57998026a654644f89 +0 -0
- data/test/dummy/tmp/cache/assets/CD2/380/sprockets%2F7182431dc52391d415b27bcf20d94aa8 +0 -0
- data/test/dummy/tmp/cache/assets/CD5/9B0/sprockets%2F427511319aada8b2bf069b58906b504e +0 -0
- data/test/dummy/tmp/cache/assets/CD6/9B0/sprockets%2F5d453b0c85629d2982c030e084abd24e +0 -0
- data/test/dummy/tmp/cache/assets/CDA/CC0/sprockets%2F2d36fe07a11e546f4f2057ec42d01975 +0 -0
- data/test/dummy/tmp/cache/assets/CDC/5C0/sprockets%2Fb5a92f7a15c1604d83f97e418242e60a +0 -0
- data/test/dummy/tmp/cache/assets/CDE/C90/sprockets%2Fac188cb77c378d6aa11c101b88392765 +0 -0
- data/test/dummy/tmp/cache/assets/CDF/AC0/sprockets%2Ff35824c8b6661c6bf9520de114c4e038 +0 -0
- data/test/dummy/tmp/cache/assets/CE1/CA0/sprockets%2F44949ccf3c4d522859c1a4a516b2990b +0 -0
- data/test/dummy/tmp/cache/assets/CE2/690/sprockets%2F09f229a496db3c1dd79e17d24821180f +0 -0
- data/test/dummy/tmp/cache/assets/CE3/8D0/sprockets%2F96a042cd2446c12b6a9f95bd9773a076 +0 -0
- data/test/dummy/tmp/cache/assets/CE3/8F0/sprockets%2Fa423a9ce56e4c7f202f6583384a2f375 +0 -0
- data/test/dummy/tmp/cache/assets/CE4/470/sprockets%2Fb02a979ae3ecc608b2d25182e7834883 +0 -0
- data/test/dummy/tmp/cache/assets/CE5/540/sprockets%2F7b046c9f357854421afd13859ba02f8e +0 -0
- data/test/dummy/tmp/cache/assets/CE6/260/sprockets%2F435678e2ae094e5830358a9eb11f7c2e +0 -0
- data/test/dummy/tmp/cache/assets/CE6/C20/sprockets%2Fad7105d14f2e08c67c2914f868fc2970 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/810/sprockets%2Fa51abc8a79a9b2537e248911665d5f19 +0 -0
- data/test/dummy/tmp/cache/assets/CE7/EA0/sprockets%2F30722195fc547f326f2e5257a54ceee8 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/4A0/sprockets%2F129c884f2be4f1615bec65709935dd05 +0 -0
- data/test/dummy/tmp/cache/assets/CE8/660/sprockets%2F011f5b365a97afde492263b2d529b989 +0 -0
- data/test/dummy/tmp/cache/assets/CEA/110/sprockets%2F61964b4862f6dc8930f311af66d6a84b +0 -0
- data/test/dummy/tmp/cache/assets/CF1/320/sprockets%2F53e57e472039b8de942f7f132b8b098f +0 -0
- data/test/dummy/tmp/cache/assets/CF1/490/sprockets%2Fd72384993e511934e71d19cde88da17d +0 -0
- data/test/dummy/tmp/cache/assets/CF5/260/sprockets%2F1a8b5ca173638a60a5a34330bce530f5 +0 -0
- data/test/dummy/tmp/cache/assets/CF7/B60/sprockets%2Fe39a1b9531c33dd2b2e2f8223320a6e0 +0 -0
- data/test/dummy/tmp/cache/assets/CF8/0F0/sprockets%2F1ab9e9914c115a74bec77796596e93b8 +0 -0
- data/test/dummy/tmp/cache/assets/CFD/0C0/sprockets%2F69d1826e5df7d7e0901980c49c979ae5 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/150/sprockets%2F454f6e9228995d7097ce715ed13feb95 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/240/sprockets%2F64f388105986c6b7cb9795ff7d30ee90 +0 -0
- data/test/dummy/tmp/cache/assets/CFE/880/sprockets%2F130a631c8dd033d7cdc7167b42fb2095 +0 -0
- data/test/dummy/tmp/cache/assets/CFF/2E0/sprockets%2Fa424f4a76604a80cc8f14dca3006b791 +0 -0
- data/test/dummy/tmp/cache/assets/D00/000/sprockets%2Fd96f55595f346cb60cb721b30dc220a0 +0 -0
- data/test/dummy/tmp/cache/assets/D05/980/sprockets%2Fff0d95b28cd3841c307318a6321c3df2 +0 -0
- data/test/dummy/tmp/cache/assets/D06/500/sprockets%2F9c4124aebf4c4555552b43c93a018cf4 +0 -0
- data/test/dummy/tmp/cache/assets/D07/610/sprockets%2F581daf5ef5107402dec463707a223af9 +0 -0
- data/test/dummy/tmp/cache/assets/D07/E80/sprockets%2F9b0f31e35a2141b594e3eed543dc7174 +0 -0
- data/test/dummy/tmp/cache/assets/D08/AA0/sprockets%2Fc5dc62c650a9c855965601ce31e1a06d +0 -0
- data/test/dummy/tmp/cache/assets/D09/A70/sprockets%2F0633defe1740a45ef30f85172f2172df +0 -0
- data/test/dummy/tmp/cache/assets/D0A/D80/sprockets%2F607b2af13fb941c1196cb093cd6e4881 +0 -0
- data/test/dummy/tmp/cache/assets/D0B/DA0/sprockets%2F30d1963f5ace216f47fb170131df81f9 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/730/sprockets%2F2e63f21ba951e5e5b84670220f0ff2e9 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/BA0/sprockets%2F08e9ee505a554e9d3e0bb3fc96523022 +0 -0
- data/test/dummy/tmp/cache/assets/D0C/E20/sprockets%2F7c7c0244b33b6df3c44179be9d22a259 +0 -0
- data/test/dummy/tmp/cache/assets/D11/A80/sprockets%2F6fe649a19180291b3187bd0a2d896cbc +0 -0
- data/test/dummy/tmp/cache/assets/D12/A10/sprockets%2Fa74f0ead865c1781953d0ff40090d76d +0 -0
- data/test/dummy/tmp/cache/assets/D14/EE0/sprockets%2F1881c04e0d2ea6915c4b4fc7b584f649 +0 -0
- data/test/dummy/tmp/cache/assets/D15/2C0/sprockets%2F43a086426cee4a2aafe5d991992e2816 +0 -0
- data/test/dummy/tmp/cache/assets/D15/9E0/sprockets%2F6eeff9405c4f8216a7e14e174d9f6001 +0 -0
- data/test/dummy/tmp/cache/assets/D15/C00/sprockets%2F6a6253c58e31f8e59d0de53255ea62d5 +0 -0
- data/test/dummy/tmp/cache/assets/D16/230/sprockets%2Ff48e5dea249ff033738f1f822c3337e0 +0 -0
- data/test/dummy/tmp/cache/assets/D1A/A20/sprockets%2F5c4d61c3376080dddedb319799e9d613 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/630/sprockets%2F9bf2cfa5d34c327c03796b8946d935c2 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/7A0/sprockets%2F3b13121e46c0a04a3c17427bdbbb85b4 +0 -0
- data/test/dummy/tmp/cache/assets/D1B/D80/sprockets%2F613c5b5186e4dc6dc5875c9652c24dd7 +0 -0
- data/test/dummy/tmp/cache/assets/D1E/E50/sprockets%2Ff4fb783105bdd65392f3567b841f4fd7 +0 -0
- data/test/dummy/tmp/cache/assets/D23/2D0/sprockets%2Fe8984f7c23d8a9d23f7bd07e3862e037 +0 -0
- data/test/dummy/tmp/cache/assets/D27/0B0/sprockets%2Fda1064a1c1679e19cb7a40f4a304b4d3 +0 -0
- data/test/dummy/tmp/cache/assets/D28/830/sprockets%2F97a8d51d3554eb01c02342a24efe0a3c +0 -0
- data/test/dummy/tmp/cache/assets/D28/DC0/sprockets%2F8e5a6fcdb5c823616c8996734c7da873 +0 -0
- data/test/dummy/tmp/cache/assets/D2A/250/sprockets%2F4c3b6f7de8c6ed856f9c40617588911e +0 -0
- data/test/dummy/tmp/cache/assets/D2B/A80/sprockets%2Ff43c20cdb36ce7edca1609300862046b +0 -0
- data/test/dummy/tmp/cache/assets/D30/060/sprockets%2F46f5ab9946171d1bb0d4dc1d35510a6e +0 -0
- data/test/dummy/tmp/cache/assets/D32/D10/sprockets%2Fb2f54606c3d212e5cea02b9b88490fc0 +0 -0
- data/test/dummy/tmp/cache/assets/D34/160/sprockets%2F53ea14edc816eb782774d2a101cad096 +0 -0
- data/test/dummy/tmp/cache/assets/D35/B30/sprockets%2F2fdd1b87e220f90505cf6d0f7373e02a +0 -0
- data/test/dummy/tmp/cache/assets/D37/6E0/sprockets%2Fb45fed0679012aaf91c4f36a08a4294c +0 -0
- data/test/dummy/tmp/cache/assets/D37/B40/sprockets%2Feb3217413f27f423c855cfc25affb460 +0 -0
- data/test/dummy/tmp/cache/assets/D38/D90/sprockets%2Fa7974e36f7152e3d0e0227dadfe54b11 +0 -0
- data/test/dummy/tmp/cache/assets/D39/7F0/sprockets%2Fb83f84e0ff47c5ea4ba1e8b042649013 +0 -0
- data/test/dummy/tmp/cache/assets/D3C/110/sprockets%2F843b92604362095bb0e69c90af2cedce +0 -0
- data/test/dummy/tmp/cache/assets/D3D/AE0/sprockets%2Fa446178197fb5aac557517b3a4aa7f6b +0 -0
- data/test/dummy/tmp/cache/assets/D3E/910/sprockets%2F922c9dffef01a035565919f0fb5cb702 +0 -0
- data/test/dummy/tmp/cache/assets/D3F/B10/sprockets%2Fb297607f301f8ddaa2238cc925f80f6a +0 -0
- data/test/dummy/tmp/cache/assets/D40/050/sprockets%2F88e0e3c625bd66fe51d1822d28af2d80 +0 -0
- data/test/dummy/tmp/cache/assets/D42/020/sprockets%2Fff66c71248d0f2672f93273ecba353ea +0 -0
- data/test/dummy/tmp/cache/assets/D42/B80/sprockets%2Fcfb9f1eec464f256284ebe1f36233317 +0 -0
- data/test/dummy/tmp/cache/assets/D43/180/sprockets%2F45bc45aac3d7f422fc46f8d422464e78 +0 -0
- data/test/dummy/tmp/cache/assets/D45/E90/sprockets%2Faec58a429ded259be31756b92ff15613 +0 -0
- data/test/dummy/tmp/cache/assets/D46/590/sprockets%2F55f507a58768d425dd4a627e40a7aefc +0 -0
- data/test/dummy/tmp/cache/assets/D46/B50/sprockets%2F10d770caa62701b52de688e97ee73d8e +0 -0
- data/test/dummy/tmp/cache/assets/D47/3B0/sprockets%2F97bb04754ad9d9ece853080b2aa925f7 +0 -0
- data/test/dummy/tmp/cache/assets/D48/570/sprockets%2Fa4eea835a9f6ce9660a507db3798027b +0 -0
- data/test/dummy/tmp/cache/assets/D48/FC0/sprockets%2F47cf2e58f56acbe7238b29631aac1779 +0 -0
- data/test/dummy/tmp/cache/assets/D4C/E70/sprockets%2F17678645a655cdf95b204e86dda4d8ca +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/190/sprockets%2Fadcc2e8b83fe4792f917447c86a44c80 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/190/sprockets%2Fe68d3a8389e75eacdbd8983c09e19010 +0 -0
- data/test/dummy/tmp/cache/assets/D4F/950/sprockets%2Ff8b1e4a369d77442fe6bc39508e3e09e +0 -0
- data/test/dummy/tmp/cache/assets/D51/100/sprockets%2F571715ceabc7e33e66f846b456ef75d6 +0 -0
- data/test/dummy/tmp/cache/assets/D52/520/sprockets%2F68d5c86f6c9ea8fd1085f18449ae0d51 +0 -0
- data/test/dummy/tmp/cache/assets/D54/840/sprockets%2F2aafcd340835ca3bc69ed700b1c45501 +0 -0
- data/test/dummy/tmp/cache/assets/D59/400/sprockets%2Ff619d3fd22ddaac2f92a28fb40200720 +0 -0
- data/test/dummy/tmp/cache/assets/D5C/940/sprockets%2F6c29bc6eeefc3667299df20792e844e7 +0 -0
- data/test/dummy/tmp/cache/assets/D5F/C50/sprockets%2F4ec20042f390ae48d7b5a3cfec5141e4 +0 -0
- data/test/dummy/tmp/cache/assets/D62/F50/sprockets%2F66002908f508efb50b9c4cba2a5a6bf3 +0 -0
- data/test/dummy/tmp/cache/assets/D63/0D0/sprockets%2F323add23ad8d005af95bdb5095bd7725 +0 -0
- data/test/dummy/tmp/cache/assets/D63/A70/sprockets%2Fca01340b98e0b682d267ba1fd15bfe67 +0 -0
- data/test/dummy/tmp/cache/assets/D64/2F0/sprockets%2F341b06b57bb1fb630df8c1bef327b793 +0 -0
- data/test/dummy/tmp/cache/assets/D65/190/sprockets%2F75aad633ccedab73c51274a3391a8d74 +0 -0
- data/test/dummy/tmp/cache/assets/D68/F60/sprockets%2Fb057c6f6087cfc735b5a4c23a128bce5 +0 -0
- data/test/dummy/tmp/cache/assets/D6C/3B0/sprockets%2F45d5b58136f21d7df8c0dfb726e2e1c1 +0 -0
- data/test/dummy/tmp/cache/assets/D6E/620/sprockets%2F31eddf4853c19ed403d0f147be92df26 +0 -0
- data/test/dummy/tmp/cache/assets/D6F/1A0/sprockets%2Fe3d23db8d63093ae39833afcf34e31e6 +0 -0
- data/test/dummy/tmp/cache/assets/D6F/380/sprockets%2Fe5be640cc42df8c6a6049a790cf523c6 +0 -0
- data/test/dummy/tmp/cache/assets/D70/940/sprockets%2F5e653ff1a51de6c26d6e3abc92b76327 +0 -0
- data/test/dummy/tmp/cache/assets/D70/E80/sprockets%2F3a249d9c51393ce16d2640d9bbce3f7d +0 -0
- data/test/dummy/tmp/cache/assets/D71/910/sprockets%2F69527a4f2a5d2a2c0fe195f9f62d5b4c +0 -0
- data/test/dummy/tmp/cache/assets/D72/760/sprockets%2F9b3e9ea2de2065ac138b6363f7f890ac +0 -0
- data/test/dummy/tmp/cache/assets/D72/EF0/sprockets%2Ffc3f19c479f22a4d85c564ea13e51c8a +0 -0
- data/test/dummy/tmp/cache/assets/D75/D00/sprockets%2F03a8fbb049950569d4d87dab629dea5b +0 -0
- data/test/dummy/tmp/cache/assets/D76/0D0/sprockets%2F676ec207d3fead338ded78c856066a0b +0 -0
- data/test/dummy/tmp/cache/assets/D76/8E0/sprockets%2F10a7936c71ad9dff761d2d46d7eeb058 +0 -0
- data/test/dummy/tmp/cache/assets/D77/080/sprockets%2F43ff65dd091c2c6cf48cc646034d68cf +0 -0
- data/test/dummy/tmp/cache/assets/D77/6F0/sprockets%2Ffe6fcab6288ae589c13237e96b060cf2 +0 -0
- data/test/dummy/tmp/cache/assets/D77/900/sprockets%2F77e6b4eb7e3b05edf1650af6681676ad +0 -0
- data/test/dummy/tmp/cache/assets/D77/980/sprockets%2Fce065901d3959c67bec634eeb4e8fe10 +0 -0
- data/test/dummy/tmp/cache/assets/D78/660/sprockets%2Ffbaccc52e4e5859e6a0e1967f20627e6 +0 -0
- data/test/dummy/tmp/cache/assets/D78/770/sprockets%2F5dd67434b177d5b4efe2936efda284e0 +0 -0
- data/test/dummy/tmp/cache/assets/D78/A80/sprockets%2F238267f61c90e8b48ee46f4bf8a2c2db +0 -0
- data/test/dummy/tmp/cache/assets/D7B/770/sprockets%2Fb0c04ed32d0faa65210c0d52749fab0c +0 -0
- data/test/dummy/tmp/cache/assets/D7C/990/sprockets%2F22a69dc590f2f6eda8b7afe666c51890 +0 -0
- data/test/dummy/tmp/cache/assets/D7D/A50/sprockets%2F88d515afd730fef79c65550aa66ad68c +0 -0
- data/test/dummy/tmp/cache/assets/D7F/6A0/sprockets%2F3d99d4017a9f81fddcf380295a7b68cd +0 -0
- data/test/dummy/tmp/cache/assets/D80/D50/sprockets%2Fe86788cdff3e66bab07c115c91f8f624 +0 -0
- data/test/dummy/tmp/cache/assets/D81/B80/sprockets%2F6c3ca820fdd948e17a374d395c868fdd +0 -0
- data/test/dummy/tmp/cache/assets/D83/920/sprockets%2Fa4353a2776cfb78269d7fbff5e99c23b +0 -0
- data/test/dummy/tmp/cache/assets/D85/CA0/sprockets%2F03a58eb49cba3223f94c243aad1ad4a4 +0 -0
- data/test/dummy/tmp/cache/assets/D86/D80/sprockets%2F001c46974abf20cf3af4f01c61cf53ac +0 -0
- data/test/dummy/tmp/cache/assets/D8A/990/sprockets%2Fed89f0e69fb99fca78140bc4589465ca +0 -0
- data/test/dummy/tmp/cache/assets/D8C/610/sprockets%2F319bdc365f809d7e37fa8afd964659df +0 -0
- data/test/dummy/tmp/cache/assets/D8E/8B0/sprockets%2F6f0dd508157f0efd0aa6a1d7fca14902 +0 -0
- data/test/dummy/tmp/cache/assets/D8F/E30/sprockets%2F06fd1ba6b3ff60b75692a211c38a5afc +0 -0
- data/test/dummy/tmp/cache/assets/D8F/FD0/sprockets%2F285135cf1a8e04aacb4578c2dc6c3bc3 +0 -0
- data/test/dummy/tmp/cache/assets/D93/D50/sprockets%2Fba7262b8f2e69471fcd0287aae33ad0a +0 -0
- data/test/dummy/tmp/cache/assets/D95/1E0/sprockets%2F3a3eb981006b45a2cbe6f5a7bb47d95a +0 -0
- data/test/dummy/tmp/cache/assets/D95/5A0/sprockets%2F378dfc7f79f6c9e8f6bc0339d6965bc5 +0 -0
- data/test/dummy/tmp/cache/assets/D98/720/sprockets%2F2434ea0068e2695cbda673bacd54ddd7 +0 -0
- data/test/dummy/tmp/cache/assets/D9A/C20/sprockets%2F26067ec4dfe2554edc3d8f0fb340c54b +0 -0
- data/test/dummy/tmp/cache/assets/D9B/930/sprockets%2Fb681f3ffcd05af4603f0cc61abf29855 +0 -0
- data/test/dummy/tmp/cache/assets/D9D/C10/sprockets%2F60a29e756d0233a7de2ae66a7e6e7adc +0 -0
- data/test/dummy/tmp/cache/assets/D9F/EC0/sprockets%2F3f2504f96d16dca528633ff3eac07cfd +0 -0
- data/test/dummy/tmp/cache/assets/DA0/1D0/sprockets%2F8bfdcf3c0d64c1e1afc1e119c6693559 +0 -0
- data/test/dummy/tmp/cache/assets/DA1/810/sprockets%2F05650792d7f6ba6cb751dfad824f6acd +0 -0
- data/test/dummy/tmp/cache/assets/DA2/BA0/sprockets%2F9a568ad7ba24d4750ff257aef4ef054b +0 -0
- data/test/dummy/tmp/cache/assets/DA6/180/sprockets%2F323ef4f0c03fadb6488f17a46ff7e94b +0 -0
- data/test/dummy/tmp/cache/assets/DA7/120/sprockets%2Fbe8125168aeec567a27f3057bd6ebff7 +0 -0
- data/test/dummy/tmp/cache/assets/DA7/F70/sprockets%2F27a40d69eee047cb6fdfe6bf96028b61 +0 -0
- data/test/dummy/tmp/cache/assets/DAC/110/sprockets%2F6258f6e1e529d7e09e24c07fbbecdd93 +0 -0
- data/test/dummy/tmp/cache/assets/DAC/2C0/sprockets%2F3806cf983e7fe8daa4cf83e6a007dd28 +0 -0
- data/test/dummy/tmp/cache/assets/DAE/AF0/sprockets%2Fea723747dced4e7c5937af13b48c97eb +0 -0
- data/test/dummy/tmp/cache/assets/DB0/710/sprockets%2F3cef41ed9a7c6f52fae191d84783e5d7 +0 -0
- data/test/dummy/tmp/cache/assets/DBC/540/sprockets%2F86f6c9053499a920f48c7f5addfee7ed +0 -0
- data/test/dummy/tmp/cache/assets/DC0/770/sprockets%2Fa359adf42a317c4a5edce04902bc5dc7 +0 -0
- data/test/dummy/tmp/cache/assets/DC2/380/sprockets%2Ff4a7fc0145cc1dabcf19de1649392a2b +0 -0
- data/test/dummy/tmp/cache/assets/DC2/C50/sprockets%2F8e4dfd4afa600c1b2087bc8eb272e26b +0 -0
- data/test/dummy/tmp/cache/assets/DC3/130/sprockets%2F0672e7e19aa9f9d3020b292eadafb1eb +0 -0
- data/test/dummy/tmp/cache/assets/DC3/700/sprockets%2F0d2f8e4ddd72d14f6ad338b3a9b05cc1 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/4B0/sprockets%2F44e6f9eaba33fcb43a434d80ef8ac073 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/B60/sprockets%2F9bd8be564a3ad9f68a7105b0cda4ef11 +0 -0
- data/test/dummy/tmp/cache/assets/DC9/B30/sprockets%2Ffaa921fa9eaed21d4826a9d661b9dd10 +0 -0
- data/test/dummy/tmp/cache/assets/DCB/A70/sprockets%2F6fcd98bbdab531575399a42ae1ded2d0 +0 -0
- data/test/dummy/tmp/cache/assets/DCD/140/sprockets%2F83c3caad52462c9fcfacf32c3fd27944 +0 -0
- data/test/dummy/tmp/cache/assets/DCF/1F0/sprockets%2F42c410adb8a2cfdfb21e01f003dc30aa +0 -0
- data/test/dummy/tmp/cache/assets/DCF/250/sprockets%2F2d76775ea0f52a5e3d1c86c2dfba0ff8 +0 -0
- data/test/dummy/tmp/cache/assets/DD1/8C0/sprockets%2F84bff024614f1e15fa0d77fd1ff7dd7b +0 -0
- data/test/dummy/tmp/cache/assets/DD2/280/sprockets%2Fe1f8c863bf2d18e0a2bd7be69a2b9e36 +0 -0
- data/test/dummy/tmp/cache/assets/DD2/710/sprockets%2F8628d8ed90ded6b0e0eb755a78acac24 +0 -0
- data/test/dummy/tmp/cache/assets/DD3/630/sprockets%2Ffe6d0ef414fe3382a471e3faf7e4dd63 +0 -0
- data/test/dummy/tmp/cache/assets/DD4/0A0/sprockets%2Fe6bb2a5ff873cf3158ed0ac4b3f86f09 +0 -0
- data/test/dummy/tmp/cache/assets/DD4/130/sprockets%2Fb0ef8baf598339a286cd0df63ac7b83b +0 -0
- data/test/dummy/tmp/cache/assets/DD4/CB0/sprockets%2F2fb64db80b4dc8ee8fcfc16f4270e473 +0 -0
- data/test/dummy/tmp/cache/assets/DD6/C30/sprockets%2Fff35f1f235d08836d5c2b7fa55bfef5b +0 -0
- data/test/dummy/tmp/cache/assets/DD8/B90/sprockets%2F7ae70acd3b6ebb964d280f97cfb4955c +0 -0
- data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/DDC/E10/sprockets%2F61ce8847c7f5d1d08edfea0d146df5e8 +0 -0
- data/test/dummy/tmp/cache/assets/DE0/170/sprockets%2F9a9b79ff56fdcebe5486f0e367c411bb +0 -0
- data/test/dummy/tmp/cache/assets/DE2/260/sprockets%2Ff8f896defc5e94cfa30e2f5515db7c08 +0 -0
- data/test/dummy/tmp/cache/assets/DE3/300/sprockets%2Fc53d49c8920d7b95a7ed8ff4ea6ea6e4 +0 -0
- data/test/dummy/tmp/cache/assets/DE7/630/sprockets%2F5f3ce8dffadfd5990f5e44c68d9425e1 +0 -0
- data/test/dummy/tmp/cache/assets/DEC/BA0/sprockets%2Ff6bec7e8e869ef7749d660d45bba7ca7 +0 -0
- data/test/dummy/tmp/cache/assets/DED/550/sprockets%2F6b111cf52f042fe47ebd8baa81dab53e +0 -0
- data/test/dummy/tmp/cache/assets/DEE/540/sprockets%2F8bad16d64dbacd8bc46b2c145d0ce318 +0 -0
- data/test/dummy/tmp/cache/assets/DF2/E40/sprockets%2F102f882bdb07bebda9a4db5b4c2b48d8 +0 -0
- data/test/dummy/tmp/cache/assets/DF3/A30/sprockets%2F03dd29ddb09be1c8aee5db733b4d047c +0 -0
- data/test/dummy/tmp/cache/assets/DFA/AA0/sprockets%2F0bdf9202bafff6fe48cf8a300a5393ed +0 -0
- data/test/dummy/tmp/cache/assets/DFD/420/sprockets%2F5128ab1ee04279ebee5edbfed9182ab6 +0 -0
- data/test/dummy/tmp/cache/assets/E00/AB0/sprockets%2F997319d32bcaccfbce780f3ccc8a27f0 +0 -0
- data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/E04/A10/sprockets%2Fe97eabd6255d0ef5f9b0ccb3c292f2d9 +0 -0
- data/test/dummy/tmp/cache/assets/E07/6F0/sprockets%2F5b96fbbf00d6ae89b172aecc79a7a95e +0 -0
- data/test/dummy/tmp/cache/assets/E13/B00/sprockets%2Fc2f4bc4b6df7022fbe7a0cb00a3afd45 +0 -0
- data/test/dummy/tmp/cache/assets/E16/F80/sprockets%2F9ede6a58cd5c1fff42e8c5cf4563d7f6 +0 -0
- data/test/dummy/tmp/cache/assets/E1C/060/sprockets%2F2497df812be0edad860cecbb200ba4fd +0 -0
- data/test/dummy/tmp/cache/assets/E23/040/sprockets%2Faf3f9526dc1358bb0c06ffabba0feb67 +0 -0
- data/test/dummy/tmp/cache/assets/E25/470/sprockets%2F550ad2a5de4f1715af8df2afe15fb1fe +0 -0
- data/test/dummy/tmp/cache/assets/E33/430/sprockets%2Fbcdf44f9c1fbd5cf69b77801af27aa5d +0 -0
- data/test/dummy/tmp/cache/assets/E54/3F0/sprockets%2Fcb7e21a767fc3d2ac45f8bc4dc1dce4a +0 -0
- data/test/dummy/tmp/cache/assets/E5B/510/sprockets%2F1fa4efe0ab3f55fef3f67483b3eac6ba +0 -0
- data/test/dummy/tmp/cache/assets/E5E/2B0/sprockets%2F6eb5aba2f6fa8a56fe6da1d77bbea970 +0 -0
- data/test/dummy/tmp/cache/assets/E90/F00/sprockets%2Fc1ab3aec41ccae8fa8ee48b1f85d89ec +0 -0
- data/test/dummy/tmp/cache/assets/E9A/140/sprockets%2Faf8b05634ecfcdeb876bdf0de4b79ffc +0 -0
- data/test/dummy/tmp/cache/assets/E9B/570/sprockets%2F07f6b4f95754ee6e8da8deb7cbacdadd +0 -0
- data/test/dummy/tmp/cache/assets/EA4/AD0/sprockets%2Fcbe751f1bc0a3ab64e3eac8e80abaead +0 -0
- data/test/dummy/tmp/pids/server.pid +1 -0
- data/test/functional/gutter/gutter_controller_test.rb +11 -0
- data/test/gutter_test.rb +7 -0
- data/test/integration/navigation_test.rb +10 -0
- data/test/test_helper.rb +15 -0
- data/test/unit/helpers/gutter/gutter_helper_test.rb +6 -0
- 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
|
+
};
|