From 63fb99dd8633333d6284803d04809a93cccb0913 Mon Sep 17 00:00:00 2001 From: ubikfsabbe Date: Fri, 23 Oct 2015 18:35:23 +0200 Subject: [PATCH 01/96] Initial release for report dashboard --- .gitignore | 3 + bin/report-template/README.TXT | 336 + bin/report-template/content/css/dashboard.css | 32 + bin/report-template/content/css/jquery-ui.css | 1225 ++ .../content/css/jquery-ui.structure.css | 833 + .../content/css/jquery-ui.theme.css | 410 + bin/report-template/content/css/legends.css | 46 + bin/report-template/content/js/curvedLines.js | 482 + .../content/js/dashboard-commons.js | 43 + .../content/js/dashboard.js.fmkr | 107 + .../content/js/graphes.js.fmkr | 1386 ++ bin/report-template/content/js/hashtable.js | 402 + bin/report-template/content/js/jquery-ui.js | 16617 ++++++++++++++++ .../content/js/jquery.cookie.js | 117 + .../content/js/jquery.flot.axislabels.js | 466 + .../js/jquery.numberformatter-1.2.3.min.js | 1 + bin/report-template/content/js/pace.min.js | 2 + .../content/pages/OverTime.html.fmkr | 324 + .../content/pages/ResponseTimes.html.fmkr | 397 + .../content/pages/Throughput.html.fmkr | 395 + .../content/pages/icon-apache.png | Bin 0 -> 1728 bytes bin/report-template/index.html.fmkr | 286 + bin/report-template/sbadmin2-1.0.7/LICENSE | 202 + bin/report-template/sbadmin2-1.0.7/README.md | 27 + bin/report-template/sbadmin2-1.0.7/bower.json | 41 + .../bootstrap-social/.bower.json | 25 + .../bootstrap-social/.editorconfig | 11 + .../bootstrap-social/.gitignore | 2 + .../bootstrap-social/README.md | 58 + .../bootstrap-social/bootstrap-social.css | 101 + .../bootstrap-social/bootstrap-social.less | 114 + .../bootstrap-social/bootstrap-social.scss | 114 + .../bootstrap-social/bower.json | 14 + .../bower_components/bootstrap/.bower.json | 48 + .../bower_components/bootstrap/Gruntfile.js | 511 + .../bower_components/bootstrap/LICENSE | 21 + .../bower_components/bootstrap/README.md | 134 + .../bower_components/bootstrap/bower.json | 39 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 20127 bytes .../fonts/glyphicons-halflings-regular.svg | 288 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 45404 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 23424 bytes .../fonts/glyphicons-halflings-regular.woff2 | Bin 0 -> 18028 bytes .../bootstrap/grunt/.jshintrc | 7 + .../bootstrap/grunt/bs-commonjs-generator.js | 23 + .../grunt/bs-glyphicons-data-generator.js | 41 + .../bootstrap/grunt/bs-lessdoc-parser.js | 238 + .../bootstrap/grunt/bs-raw-files-generator.js | 46 + .../bootstrap/grunt/configBridge.json | 46 + .../bootstrap/grunt/sauce_browsers.yml | 82 + .../bower_components/bootstrap/js/.jscsrc | 36 + .../bower_components/bootstrap/js/.jshintrc | 15 + .../bower_components/bootstrap/js/affix.js | 162 + .../bower_components/bootstrap/js/alert.js | 94 + .../bower_components/bootstrap/js/button.js | 116 + .../bower_components/bootstrap/js/carousel.js | 237 + .../bower_components/bootstrap/js/collapse.js | 211 + .../bower_components/bootstrap/js/dropdown.js | 161 + .../bower_components/bootstrap/js/modal.js | 339 + .../bower_components/bootstrap/js/popover.js | 108 + .../bootstrap/js/scrollspy.js | 172 + .../bower_components/bootstrap/js/tab.js | 153 + .../bower_components/bootstrap/js/tooltip.js | 476 + .../bootstrap/js/transition.js | 59 + .../bootstrap/less/.csscomb.json | 304 + .../bootstrap/less/.csslintrc | 19 + .../bootstrap/less/alerts.less | 73 + .../bootstrap/less/badges.less | 66 + .../bootstrap/less/bootstrap.less | 50 + .../bootstrap/less/breadcrumbs.less | 26 + .../bootstrap/less/button-groups.less | 243 + .../bootstrap/less/buttons.less | 160 + .../bootstrap/less/carousel.less | 269 + .../bootstrap/less/close.less | 34 + .../bower_components/bootstrap/less/code.less | 69 + .../bootstrap/less/component-animations.less | 33 + .../bootstrap/less/dropdowns.less | 214 + .../bootstrap/less/forms.less | 574 + .../bootstrap/less/glyphicons.less | 305 + .../bower_components/bootstrap/less/grid.less | 84 + .../bootstrap/less/input-groups.less | 166 + .../bootstrap/less/jumbotron.less | 50 + .../bootstrap/less/labels.less | 64 + .../bootstrap/less/list-group.less | 124 + .../bootstrap/less/media.less | 61 + .../bootstrap/less/mixins.less | 39 + .../bootstrap/less/mixins/alerts.less | 14 + .../less/mixins/background-variant.less | 8 + .../bootstrap/less/mixins/border-radius.less | 18 + .../bootstrap/less/mixins/buttons.less | 52 + .../bootstrap/less/mixins/center-block.less | 7 + .../bootstrap/less/mixins/clearfix.less | 22 + .../bootstrap/less/mixins/forms.less | 85 + .../bootstrap/less/mixins/gradients.less | 59 + .../bootstrap/less/mixins/grid-framework.less | 91 + .../bootstrap/less/mixins/grid.less | 122 + .../bootstrap/less/mixins/hide-text.less | 21 + .../bootstrap/less/mixins/image.less | 33 + .../bootstrap/less/mixins/labels.less | 12 + .../bootstrap/less/mixins/list-group.less | 29 + .../bootstrap/less/mixins/nav-divider.less | 10 + .../less/mixins/nav-vertical-align.less | 9 + .../bootstrap/less/mixins/opacity.less | 8 + .../bootstrap/less/mixins/pagination.less | 23 + .../bootstrap/less/mixins/panels.less | 24 + .../bootstrap/less/mixins/progress-bar.less | 10 + .../bootstrap/less/mixins/reset-filter.less | 8 + .../bootstrap/less/mixins/resize.less | 6 + .../less/mixins/responsive-visibility.less | 15 + .../bootstrap/less/mixins/size.less | 10 + .../bootstrap/less/mixins/tab-focus.less | 9 + .../bootstrap/less/mixins/table-row.less | 28 + .../bootstrap/less/mixins/text-emphasis.less | 8 + .../bootstrap/less/mixins/text-overflow.less | 8 + .../less/mixins/vendor-prefixes.less | 227 + .../bootstrap/less/modals.less | 150 + .../bootstrap/less/navbar.less | 660 + .../bower_components/bootstrap/less/navs.less | 242 + .../bootstrap/less/normalize.less | 427 + .../bootstrap/less/pager.less | 54 + .../bootstrap/less/pagination.less | 88 + .../bootstrap/less/panels.less | 265 + .../bootstrap/less/popovers.less | 135 + .../bootstrap/less/print.less | 107 + .../bootstrap/less/progress-bars.less | 87 + .../bootstrap/less/responsive-embed.less | 35 + .../bootstrap/less/responsive-utilities.less | 194 + .../bootstrap/less/scaffolding.less | 162 + .../bootstrap/less/tables.less | 234 + .../bootstrap/less/theme.less | 273 + .../bootstrap/less/thumbnails.less | 36 + .../bootstrap/less/tooltip.less | 102 + .../bower_components/bootstrap/less/type.less | 302 + .../bootstrap/less/utilities.less | 55 + .../bootstrap/less/variables.less | 861 + .../bootstrap/less/wells.less | 29 + .../bower_components/bootstrap/package.js | 22 + .../bower_components/bootstrap/package.json | 93 + .../datatables-plugins/.bower.json | 14 + .../datatables-plugins/README.md | 21 + .../datatables-plugins/api/average().js | 32 + .../api/column().title().js | 21 + .../api/columns().order().js | 46 + .../api/fnAddDataAndDisplay.js | 63 + .../datatables-plugins/api/fnAddTr.js | 74 + .../api/fnColumnIndexToVisible.js | 33 + .../datatables-plugins/api/fnDataUpdate.js | 25 + .../datatables-plugins/api/fnDisplayRow.js | 46 + .../datatables-plugins/api/fnDisplayStart.js | 32 + .../datatables-plugins/api/fnFakeRowspan.js | 66 + .../datatables-plugins/api/fnFilterAll.js | 39 + .../datatables-plugins/api/fnFilterClear.js | 63 + .../api/fnFilterOnReturn.js | 36 + .../api/fnFindCellRowIndexes.js | 55 + .../api/fnFindCellRowNodes.js | 55 + .../datatables-plugins/api/fnGetAdjacentTr.js | 55 + .../datatables-plugins/api/fnGetColumnData.js | 83 + .../api/fnGetColumnIndex.js | 31 + .../api/fnGetHiddenNodes.js | 43 + .../datatables-plugins/api/fnGetTd.js | 59 + .../datatables-plugins/api/fnGetTds.js | 65 + .../datatables-plugins/api/fnLengthChange.js | 48 + .../datatables-plugins/api/fnMultiFilter.js | 63 + .../datatables-plugins/api/fnPagingInfo.js | 39 + .../api/fnProcessingIndicator.js | 26 + .../datatables-plugins/api/fnReloadAjax.js | 102 + .../api/fnSetFilteringDelay.js | 51 + .../datatables-plugins/api/fnSortNeutral.js | 36 + .../api/fnStandingRedraw.js | 35 + .../api/fnVisibleToColumnIndex.js | 33 + .../datatables-plugins/api/index.html | 36 + .../api/page.jumpToData().js | 38 + .../datatables-plugins/api/sum().js | 36 + .../dataTables.alphabetSearch.css | 39 + .../dataTables.alphabetSearch.js | 162 + .../dataTables.alphabetSearch.min.js | 8 + .../lengthLinks/dataTables.lengthLinks.css | 4 + .../lengthLinks/dataTables.lengthLinks.js | 90 + .../lengthLinks/dataTables.lengthLinks.min.js | 6 + .../dataTables.searchHighlight.css | 6 + .../dataTables.searchHighlight.js | 67 + .../dataTables.searchHighlight.min.js | 5 + .../datatables-plugins/filtering/index.html | 77 + .../row-based/TableTools.ShowSelectedOnly.js | 168 + .../filtering/row-based/range_dates.js | 51 + .../filtering/row-based/range_numbers.js | 46 + .../filtering/type-based/accent-neutralise.js | 64 + .../filtering/type-based/html.js | 38 + .../filtering/type-based/phoneNumber.js | 31 + .../datatables-plugins/i18n/Afrikaans.lang | 30 + .../datatables-plugins/i18n/Albanian.lang | 30 + .../datatables-plugins/i18n/Arabic.lang | 24 + .../datatables-plugins/i18n/Azerbaijan.lang | 30 + .../datatables-plugins/i18n/Bangla.lang | 24 + .../datatables-plugins/i18n/Belarusian.lang | 27 + .../datatables-plugins/i18n/Bulgarian.lang | 24 + .../datatables-plugins/i18n/Catalan.lang | 24 + .../i18n/Chinese-traditional.lang | 24 + .../datatables-plugins/i18n/Chinese.lang | 31 + .../datatables-plugins/i18n/Croatian.lang | 30 + .../datatables-plugins/i18n/Czech.lang | 24 + .../datatables-plugins/i18n/Danish.lang | 24 + .../datatables-plugins/i18n/Dutch.lang | 26 + .../datatables-plugins/i18n/English.lang | 30 + .../datatables-plugins/i18n/Estonian.lang | 23 + .../datatables-plugins/i18n/Filipino.lang | 24 + .../datatables-plugins/i18n/Finnish.lang | 24 + .../datatables-plugins/i18n/French.lang | 29 + .../datatables-plugins/i18n/Galician.lang | 31 + .../datatables-plugins/i18n/Georgian.lang | 23 + .../datatables-plugins/i18n/German.lang | 30 + .../datatables-plugins/i18n/Greek.lang | 24 + .../datatables-plugins/i18n/Gujarati.lang | 30 + .../datatables-plugins/i18n/Hebrew.lang | 24 + .../datatables-plugins/i18n/Hindi.lang | 24 + .../datatables-plugins/i18n/Hungarian.lang | 30 + .../datatables-plugins/i18n/Icelandic.lang | 30 + .../i18n/Indonesian-Alternative.lang | 24 + .../datatables-plugins/i18n/Indonesian.lang | 24 + .../datatables-plugins/i18n/Irish.lang | 24 + .../datatables-plugins/i18n/Italian.lang | 30 + .../datatables-plugins/i18n/Japanese.lang | 24 + .../datatables-plugins/i18n/Korean.lang | 30 + .../datatables-plugins/i18n/Latvian.lang | 24 + .../datatables-plugins/i18n/Lithuanian.lang | 24 + .../datatables-plugins/i18n/Macedonian.lang | 26 + .../datatables-plugins/i18n/Malay.lang | 30 + .../datatables-plugins/i18n/Norwegian.lang | 24 + .../datatables-plugins/i18n/Persian.lang | 24 + .../datatables-plugins/i18n/Polish.lang | 31 + .../i18n/Portuguese-Brasil.lang | 30 + .../datatables-plugins/i18n/Portuguese.lang | 24 + .../datatables-plugins/i18n/Romanian.lang | 24 + .../datatables-plugins/i18n/Russian.lang | 30 + .../datatables-plugins/i18n/Serbian.lang | 24 + .../datatables-plugins/i18n/Slovak.lang | 30 + .../datatables-plugins/i18n/Slovenian.lang | 30 + .../datatables-plugins/i18n/Spanish.lang | 31 + .../datatables-plugins/i18n/Swahili.lang | 30 + .../datatables-plugins/i18n/Swedish.lang | 30 + .../datatables-plugins/i18n/Tamil.lang | 30 + .../datatables-plugins/i18n/Thai.lang | 24 + .../datatables-plugins/i18n/Turkish.lang | 24 + .../datatables-plugins/i18n/Ukranian.lang | 28 + .../datatables-plugins/i18n/Urdu.lang | 24 + .../datatables-plugins/i18n/Uzbek.lang | 29 + .../datatables-plugins/i18n/Vietnamese.lang | 24 + .../datatables-plugins/i18n/index.html | 33 + .../bootstrap/1/dataTables.bootstrap.css | 28 + .../bootstrap/1/dataTables.bootstrap.js | 150 + .../bootstrap/2/dataTables.bootstrap.css | 226 + .../bootstrap/2/dataTables.bootstrap.js | 162 + .../bootstrap/2/dataTables.bootstrap.min.js | 8 + .../integration/bootstrap/2/index.html | 442 + .../bootstrap/3/dataTables.bootstrap.css | 314 + .../bootstrap/3/dataTables.bootstrap.js | 186 + .../bootstrap/3/dataTables.bootstrap.min.js | 8 + .../integration/bootstrap/3/index.html | 442 + .../integration/bootstrap/images/sort_asc.png | Bin 0 -> 160 bytes .../bootstrap/images/sort_asc_disabled.png | Bin 0 -> 148 bytes .../bootstrap/images/sort_both.png | Bin 0 -> 201 bytes .../bootstrap/images/sort_desc.png | Bin 0 -> 158 bytes .../bootstrap/images/sort_desc_disabled.png | Bin 0 -> 146 bytes .../integration/font-awesome/bootstrap.html | 511 + .../font-awesome/dataTables.fontAwesome.css | 156 + .../integration/font-awesome/datatables.html | 519 + .../integration/font-awesome/foundation.html | 511 + .../foundation/dataTables.foundation.css | 216 + .../foundation/dataTables.foundation.js | 180 + .../foundation/dataTables.foundation.min.js | 8 + .../foundation/images/sort_asc.png | Bin 0 -> 160 bytes .../foundation/images/sort_asc_disabled.png | Bin 0 -> 148 bytes .../foundation/images/sort_both.png | Bin 0 -> 201 bytes .../foundation/images/sort_desc.png | Bin 0 -> 158 bytes .../foundation/images/sort_desc_disabled.png | Bin 0 -> 146 bytes .../integration/foundation/index.html | 445 + .../jqueryui/dataTables.jqueryui.css | 414 + .../jqueryui/dataTables.jqueryui.js | 156 + .../jqueryui/dataTables.jqueryui.min.js | 9 + .../jqueryui/dataTables.jqueryui.scss | 523 + .../integration/jqueryui/index.html | 443 + .../datatables-plugins/make.sh | 26 + .../datatables-plugins/pagination/ellipses.js | 160 + .../datatables-plugins/pagination/extjs.js | 137 + .../pagination/four_button.js | 110 + .../datatables-plugins/pagination/index.html | 33 + .../datatables-plugins/pagination/input.js | 220 + .../jPaginator/dataTables.jPaginator.js | 76 + .../pagination/scrolling.js | 130 + .../datatables-plugins/pagination/select.js | 97 + .../datatables-plugins/sorting/.DS_Store | Bin 0 -> 6148 bytes .../datatables-plugins/sorting/alt-string.js | 30 + .../datatables-plugins/sorting/anti-the.js | 31 + .../sorting/chinese-string.js | 30 + .../datatables-plugins/sorting/currency.js | 36 + .../custom-data-source/dom-checkbox.js | 15 + .../sorting/custom-data-source/dom-select.js | 16 + .../sorting/custom-data-source/dom-text.js | 16 + .../sorting/date-dd-MMM-yyyy.js | 63 + .../datatables-plugins/sorting/date-de.js | 110 + .../datatables-plugins/sorting/date-eu.js | 69 + .../datatables-plugins/sorting/date-euro.js | 48 + .../datatables-plugins/sorting/date-uk.js | 42 + .../sorting/datetime-moment.js | 41 + .../datatables-plugins/sorting/datetime-us.js | 86 + .../datatables-plugins/sorting/enum.js | 37 + .../datatables-plugins/sorting/file-size.js | 37 + .../sorting/formatted-numbers.js | 40 + .../datatables-plugins/sorting/index.html | 84 + .../datatables-plugins/sorting/ip-address.js | 44 + .../datatables-plugins/sorting/monthYear.js | 36 + .../datatables-plugins/sorting/natural.js | 90 + .../datatables-plugins/sorting/num-html.js | 38 + .../sorting/numeric-comma.js | 37 + .../datatables-plugins/sorting/percent.js | 34 + .../datatables-plugins/sorting/persian.js | 59 + .../datatables-plugins/sorting/scientific.js | 29 + .../datatables-plugins/sorting/signed-num.js | 30 + .../sorting/stringMonthYear.js | 51 + .../datatables-plugins/sorting/time.js | 56 + .../sorting/title-numeric.js | 40 + .../sorting/title-string.js | 36 + .../sorting/turkish-string.js | 33 + .../type-detection/currency.js | 40 + .../type-detection/date-uk.js | 19 + .../type-detection/file-size.js | 36 + .../type-detection/formatted-num.js | 27 + .../type-detection/index.html | 30 + .../type-detection/ip-address.js | 18 + .../type-detection/num-html.js | 56 + .../type-detection/numeric-comma.js | 40 + .../datatables-responsive/.bower.json | 22 + .../datatables-responsive/.gitignore | 1 + .../datatables-responsive/License.txt | 20 + .../datatables-responsive/Readme.md | 0 .../datatables-responsive/bower.json | 12 + .../css/dataTables.responsive.css | 106 + .../css/dataTables.responsive.scss | 149 + .../docs/api/responsive.index().xml | 34 + .../docs/api/responsive.rebuild().xml | 30 + .../docs/api/responsive.recalc().xml | 38 + .../docs/option/responsive.breakpoints.xml | 74 + .../option/responsive.details.renderer.xml | 65 + .../docs/option/responsive.details.target.xml | 64 + .../docs/option/responsive.details.type.xml | 47 + .../docs/option/responsive.details.xml | 53 + .../docs/option/responsive.xml | 49 + .../datatables-responsive/examples/.DS_Store | Bin 0 -> 6148 bytes .../examples/child-rows/column-control.xml | 38 + .../examples/child-rows/custom-renderer.xml | 50 + .../child-rows/disable-child-rows.xml | 28 + .../examples/child-rows/index.xml | 20 + .../examples/child-rows/right-column.xml | 38 + .../examples/child-rows/whole-row-control.xml | 39 + .../examples/display-control/auto.xml | 26 + .../examples/display-control/classes.xml | 86 + .../examples/display-control/fixedHeader.xml | 31 + .../examples/display-control/index.xml | 17 + .../examples/display-control/init-classes.xml | 65 + .../datatables-responsive/examples/index.xml | 12 + .../examples/initialisation/.DS_Store | Bin 0 -> 6148 bytes .../examples/initialisation/ajax.xml | 36 + .../examples/initialisation/className.xml | 26 + .../examples/initialisation/default.xml | 30 + .../examples/initialisation/index.xml | 18 + .../examples/initialisation/new.xml | 30 + .../examples/initialisation/option.xml | 30 + .../examples/styling/bootstrap.xml | 33 + .../examples/styling/compact.xml | 29 + .../examples/styling/foundation.xml | 29 + .../examples/styling/index.xml | 12 + .../examples/styling/scrolling.xml | 33 + .../js/dataTables.responsive.js | 864 + .../datatables-responsive/make.sh | 31 + .../bower_components/datatables/.bower.json | 42 + .../datatables/Contributing.md | 18 + .../bower_components/datatables/Readme.md | 53 + .../bower_components/datatables/bower.json | 32 + .../bower_components/datatables/license.txt | 20 + .../media/css/dataTables.bootstrap.css | 167 + .../media/css/dataTables.bootstrap.min.css | 1 + .../media/css/dataTables.foundation.css | 104 + .../media/css/dataTables.foundation.min.css | 1 + .../media/css/dataTables.jqueryui.css | 473 + .../media/css/dataTables.jqueryui.min.css | 1 + .../media/css/jquery.dataTables.css | 450 + .../media/css/jquery.dataTables.min.css | 1 + .../css/jquery.dataTables_themeroller.css | 416 + .../datatables/media/images/Sorting icons.psd | Bin 0 -> 27490 bytes .../datatables/media/images/favicon.ico | Bin 0 -> 894 bytes .../datatables/media/images/sort_asc.png | Bin 0 -> 160 bytes .../media/images/sort_asc_disabled.png | Bin 0 -> 148 bytes .../datatables/media/images/sort_both.png | Bin 0 -> 201 bytes .../datatables/media/images/sort_desc.png | Bin 0 -> 158 bytes .../media/images/sort_desc_disabled.png | Bin 0 -> 146 bytes .../media/js/dataTables.bootstrap.js | 206 + .../media/js/dataTables.bootstrap.min.js | 8 + .../media/js/dataTables.foundation.js | 146 + .../media/js/dataTables.foundation.min.js | 7 + .../media/js/dataTables.jqueryui.js | 156 + .../media/js/dataTables.jqueryui.min.js | 9 + .../datatables/media/js/jquery.dataTables.js | 15129 ++++++++++++++ .../media/js/jquery.dataTables.min.js | 163 + .../datatables/media/js/jquery.js | 5 + .../flot-axislabels/.bower.json | 14 + .../flot-axislabels/README.md | 102 + .../flot-axislabels/jquery.flot.axislabels.js | 466 + .../bower_components/flot.tooltip/.bower.json | 24 + .../bower_components/flot.tooltip/bower.json | 13 + .../flot.tooltip/js/excanvas.min.js | 1 + .../flot.tooltip/js/jquery.flot.js | 3168 +++ .../flot.tooltip/js/jquery.flot.tooltip.js | 490 + .../js/jquery.flot.tooltip.min.js | 12 + .../js/jquery.flot.tooltip.source.js | 479 + .../bower_components/flot/.bower.json | 19 + .../bower_components/flot/.gitignore | 3 + .../bower_components/flot/.travis.yml | 3 + .../bower_components/flot/API.md | 1498 ++ .../bower_components/flot/CONTRIBUTING.md | 98 + .../bower_components/flot/FAQ.md | 75 + .../bower_components/flot/LICENSE.txt | 22 + .../bower_components/flot/Makefile | 12 + .../bower_components/flot/NEWS.md | 1026 + .../bower_components/flot/PLUGINS.md | 143 + .../bower_components/flot/README.md | 110 + .../bower_components/flot/component.json | 8 + .../bower_components/flot/excanvas.js | 1428 ++ .../bower_components/flot/excanvas.min.js | 1 + .../bower_components/flot/flot.jquery.json | 27 + .../flot/jquery.colorhelpers.js | 180 + .../flot/jquery.flot.canvas.js | 345 + .../flot/jquery.flot.categories.js | 190 + .../flot/jquery.flot.crosshair.js | 176 + .../flot/jquery.flot.errorbars.js | 353 + .../flot/jquery.flot.fillbetween.js | 226 + .../flot/jquery.flot.image.js | 241 + .../bower_components/flot/jquery.flot.js | 3168 +++ .../flot/jquery.flot.navigate.js | 346 + .../bower_components/flot/jquery.flot.pie.js | 820 + .../flot/jquery.flot.resize.js | 59 + .../flot/jquery.flot.selection.js | 360 + .../flot/jquery.flot.stack.js | 188 + .../flot/jquery.flot.symbol.js | 71 + .../flot/jquery.flot.threshold.js | 142 + .../bower_components/flot/jquery.flot.time.js | 432 + .../bower_components/flot/jquery.js | 9472 +++++++++ .../bower_components/flot/package.json | 11 + .../bower_components/font-awesome/.bower.json | 36 + .../bower_components/font-awesome/.gitignore | 32 + .../bower_components/font-awesome/.npmignore | 42 + .../bower_components/font-awesome/bower.json | 23 + .../font-awesome/css/font-awesome.css | 1672 ++ .../font-awesome/css/font-awesome.min.css | 4 + .../font-awesome/fonts/FontAwesome.otf | Bin 0 -> 85908 bytes .../fonts/fontawesome-webfont.eot | Bin 0 -> 56006 bytes .../fonts/fontawesome-webfont.svg | 520 + .../fonts/fontawesome-webfont.ttf | Bin 0 -> 112160 bytes .../fonts/fontawesome-webfont.woff | Bin 0 -> 65452 bytes .../font-awesome/less/bordered-pulled.less | 16 + .../font-awesome/less/core.less | 11 + .../font-awesome/less/extras.less | 2 + .../font-awesome/less/fixed-width.less | 6 + .../font-awesome/less/font-awesome.less | 17 + .../font-awesome/less/icons.less | 552 + .../font-awesome/less/larger.less | 13 + .../font-awesome/less/list.less | 19 + .../font-awesome/less/mixins.less | 25 + .../font-awesome/less/path.less | 14 + .../font-awesome/less/rotated-flipped.less | 20 + .../font-awesome/less/spinning.less | 29 + .../font-awesome/less/stacked.less | 20 + .../font-awesome/less/variables.less | 561 + .../font-awesome/scss/_bordered-pulled.scss | 16 + .../font-awesome/scss/_core.scss | 11 + .../font-awesome/scss/_extras.scss | 44 + .../font-awesome/scss/_fixed-width.scss | 6 + .../font-awesome/scss/_icons.scss | 552 + .../font-awesome/scss/_larger.scss | 13 + .../font-awesome/scss/_list.scss | 19 + .../font-awesome/scss/_mixins.scss | 25 + .../font-awesome/scss/_path.scss | 14 + .../font-awesome/scss/_rotated-flipped.scss | 20 + .../font-awesome/scss/_spinning.scss | 29 + .../font-awesome/scss/_stacked.scss | 20 + .../font-awesome/scss/_variables.scss | 561 + .../font-awesome/scss/font-awesome.scss | 17 + .../bower_components/holderjs/.bower.json | 15 + .../bower_components/holderjs/.gitattributes | 2 + .../bower_components/holderjs/.gitignore | 2 + .../bower_components/holderjs/.jshintrc | 11 + .../bower_components/holderjs/README.md | 310 + .../bower_components/holderjs/bower.json | 4 + .../bower_components/holderjs/composer.json | 34 + .../bower_components/holderjs/gulpfile.js | 63 + .../bower_components/holderjs/holder.js | 12 + .../bower_components/holderjs/package.json | 42 + .../bower_components/holderjs/src/augment.js | 33 + .../bower_components/holderjs/src/holder.js | 1533 ++ .../holderjs/src/ondomready.js | 160 + .../holderjs/src/polyfills.js | 259 + .../bower_components/holderjs/test/.gitignore | 6 + .../bower_components/holderjs/test/image.jpg | Bin 0 -> 27016 bytes .../bower_components/holderjs/test/index.html | 215 + .../bower_components/jquery/.bower.json | 37 + .../bower_components/jquery/MIT-LICENSE.txt | 21 + .../bower_components/jquery/bower.json | 27 + .../bower_components/jquery/src/ajax.js | 786 + .../bower_components/jquery/src/ajax/jsonp.js | 89 + .../bower_components/jquery/src/ajax/load.js | 75 + .../jquery/src/ajax/parseJSON.js | 13 + .../jquery/src/ajax/parseXML.js | 28 + .../jquery/src/ajax/script.js | 64 + .../jquery/src/ajax/var/nonce.js | 5 + .../jquery/src/ajax/var/rquery.js | 3 + .../bower_components/jquery/src/ajax/xhr.js | 136 + .../bower_components/jquery/src/attributes.js | 11 + .../jquery/src/attributes/attr.js | 141 + .../jquery/src/attributes/classes.js | 158 + .../jquery/src/attributes/prop.js | 94 + .../jquery/src/attributes/support.js | 35 + .../jquery/src/attributes/val.js | 161 + .../bower_components/jquery/src/callbacks.js | 205 + .../bower_components/jquery/src/core.js | 497 + .../jquery/src/core/access.js | 60 + .../bower_components/jquery/src/core/init.js | 123 + .../jquery/src/core/parseHTML.js | 39 + .../bower_components/jquery/src/core/ready.js | 97 + .../jquery/src/core/var/rsingleTag.js | 4 + .../bower_components/jquery/src/css.js | 450 + .../jquery/src/css/addGetHookIf.js | 22 + .../bower_components/jquery/src/css/curCSS.js | 57 + .../jquery/src/css/defaultDisplay.js | 70 + .../jquery/src/css/hiddenVisibleSelectors.js | 15 + .../jquery/src/css/support.js | 96 + .../bower_components/jquery/src/css/swap.js | 28 + .../jquery/src/css/var/cssExpand.js | 3 + .../jquery/src/css/var/getStyles.js | 12 + .../jquery/src/css/var/isHidden.js | 13 + .../jquery/src/css/var/rmargin.js | 3 + .../jquery/src/css/var/rnumnonpx.js | 5 + .../bower_components/jquery/src/data.js | 178 + .../bower_components/jquery/src/data/Data.js | 181 + .../jquery/src/data/accepts.js | 20 + .../jquery/src/data/var/data_priv.js | 5 + .../jquery/src/data/var/data_user.js | 5 + .../bower_components/jquery/src/deferred.js | 149 + .../bower_components/jquery/src/deprecated.js | 13 + .../bower_components/jquery/src/dimensions.js | 50 + .../bower_components/jquery/src/effects.js | 648 + .../jquery/src/effects/Tween.js | 114 + .../jquery/src/effects/animatedSelector.js | 13 + .../bower_components/jquery/src/event.js | 868 + .../bower_components/jquery/src/event/ajax.js | 13 + .../jquery/src/event/alias.js | 39 + .../jquery/src/event/support.js | 9 + .../jquery/src/exports/amd.js | 24 + .../jquery/src/exports/global.js | 32 + .../bower_components/jquery/src/intro.js | 44 + .../bower_components/jquery/src/jquery.js | 37 + .../jquery/src/manipulation.js | 580 + .../jquery/src/manipulation/_evalUrl.js | 18 + .../jquery/src/manipulation/support.js | 32 + .../src/manipulation/var/rcheckableType.js | 3 + .../bower_components/jquery/src/offset.js | 207 + .../bower_components/jquery/src/outro.js | 1 + .../bower_components/jquery/src/queue.js | 142 + .../jquery/src/queue/delay.js | 22 + .../jquery/src/selector-native.js | 172 + .../jquery/src/selector-sizzle.js | 14 + .../bower_components/jquery/src/selector.js | 1 + .../bower_components/jquery/src/serialize.js | 111 + .../bower_components/jquery/src/traversing.js | 199 + .../jquery/src/traversing/findFilter.js | 100 + .../src/traversing/var/rneedsContext.js | 6 + .../bower_components/jquery/src/var/arr.js | 3 + .../jquery/src/var/class2type.js | 4 + .../bower_components/jquery/src/var/concat.js | 5 + .../bower_components/jquery/src/var/hasOwn.js | 5 + .../jquery/src/var/indexOf.js | 5 + .../bower_components/jquery/src/var/pnum.js | 3 + .../bower_components/jquery/src/var/push.js | 5 + .../jquery/src/var/rnotwhite.js | 3 + .../bower_components/jquery/src/var/slice.js | 5 + .../jquery/src/var/strundefined.js | 3 + .../jquery/src/var/support.js | 4 + .../jquery/src/var/toString.js | 5 + .../bower_components/jquery/src/wrap.js | 79 + .../bower_components/metisMenu/.bower.json | 45 + .../bower_components/metisMenu/Gruntfile.js | 65 + .../bower_components/metisMenu/LICENSE | 20 + .../bower_components/metisMenu/README.md | 113 + .../bower_components/metisMenu/bower.json | 35 + .../bower_components/metisMenu/package.json | 41 + .../metisMenu/src/metisMenu.css | 56 + .../metisMenu/src/metisMenu.js | 112 + .../bower_components/mocha/.bower.json | 30 + .../bower_components/mocha/History.md | 654 + .../bower_components/mocha/LICENSE | 22 + .../bower_components/mocha/Readme.md | 172 + .../bower_components/mocha/bower.json | 20 + .../bower_components/mocha/media/logo.svg | 8 + .../bower_components/mocha/mocha.css | 270 + .../bower_components/mocha/mocha.js | 5812 ++++++ .../bower_components/morrisjs/.bower.json | 30 + .../bower_components/morrisjs/.gitignore | 6 + .../bower_components/morrisjs/.travis.yml | 19 + .../bower_components/morrisjs/Gruntfile.js | 90 + .../bower_components/morrisjs/README.md | 234 + .../bower_components/morrisjs/bower.json | 20 + .../morrisjs/bower.travis.json | 20 + .../morrisjs/examples/_template.html | 18 + .../morrisjs/examples/area-as-line.html | 31 + .../morrisjs/examples/area.html | 34 + .../morrisjs/examples/bar-colors.html | 44 + .../morrisjs/examples/bar-no-axes.html | 31 + .../morrisjs/examples/bar.html | 32 + .../morrisjs/examples/days.html | 37 + .../examples/decimal-custom-hover.html | 37 + .../examples/diagonal-xlabels-bar.html | 38 + .../morrisjs/examples/diagonal-xlabels.html | 38 + .../morrisjs/examples/donut-colors.html | 38 + .../morrisjs/examples/donut-formatter.html | 27 + .../morrisjs/examples/donut.html | 29 + .../morrisjs/examples/dst.html | 30 + .../morrisjs/examples/events.html | 57 + .../morrisjs/examples/goals.html | 33 + .../morrisjs/examples/lib/example.css | 13 + .../morrisjs/examples/lib/example.js | 4 + .../morrisjs/examples/months-no-smooth.html | 38 + .../morrisjs/examples/negative.html | 36 + .../morrisjs/examples/no-grid.html | 38 + .../morrisjs/examples/non-continuous.html | 42 + .../morrisjs/examples/non-date.html | 37 + .../morrisjs/examples/quarters.html | 54 + .../morrisjs/examples/resize.html | 42 + .../morrisjs/examples/stacked_bars.html | 31 + .../morrisjs/examples/timestamps.html | 38 + .../morrisjs/examples/updating.html | 49 + .../morrisjs/examples/weeks.html | 53 + .../morrisjs/examples/years.html | 37 + .../morrisjs/less/morris.core.less | 27 + .../morrisjs/lib/morris.area.coffee | 66 + .../morrisjs/lib/morris.bar.coffee | 208 + .../morrisjs/lib/morris.coffee | 43 + .../morrisjs/lib/morris.donut.coffee | 213 + .../morrisjs/lib/morris.grid.coffee | 499 + .../morrisjs/lib/morris.hover.coffee | 44 + .../morrisjs/lib/morris.line.coffee | 405 + .../bower_components/morrisjs/morris.css | 2 + .../bower_components/morrisjs/morris.js | 1892 ++ .../bower_components/morrisjs/morris.min.js | 7 + .../bower_components/morrisjs/package.json | 36 + .../morrisjs/spec/lib/area/area_spec.coffee | 60 + .../morrisjs/spec/lib/bar/bar_spec.coffee | 127 + .../morrisjs/spec/lib/bar/colours.coffee | 36 + .../morrisjs/spec/lib/commas_spec.coffee | 38 + .../morrisjs/spec/lib/donut/donut_spec.coffee | 76 + .../spec/lib/grid/auto_grid_lines_spec.coffee | 25 + .../spec/lib/grid/set_data_spec.coffee | 208 + .../spec/lib/grid/y_label_format_spec.coffee | 15 + .../morrisjs/spec/lib/hover_spec.coffee | 64 + .../spec/lib/label_series_spec.coffee | 186 + .../morrisjs/spec/lib/line/line_spec.coffee | 211 + .../morrisjs/spec/lib/pad_spec.coffee | 17 + .../morrisjs/spec/lib/parse_time_spec.coffee | 35 + .../bower_components/morrisjs/spec/specs.html | 34 + .../morrisjs/spec/support/placeholder.coffee | 6 + .../morrisjs/spec/viz/examples.js | 56 + .../morrisjs/spec/viz/exemplary/area0.png | Bin 0 -> 18402 bytes .../morrisjs/spec/viz/exemplary/bar0.png | Bin 0 -> 6936 bytes .../morrisjs/spec/viz/exemplary/line0.png | Bin 0 -> 22812 bytes .../spec/viz/exemplary/stacked_bar0.png | Bin 0 -> 5859 bytes .../bower_components/morrisjs/spec/viz/run.sh | 32 + .../morrisjs/spec/viz/test.html | 34 + .../morrisjs/spec/viz/visual_specs.js | 66 + .../bower_components/raphael/.bower.json | 29 + .../bower_components/raphael/bower.json | 19 + .../bower_components/raphael/dev/amdDev.js | 6 + .../bower_components/raphael/dev/index.js | 8 + .../bower_components/raphael/dev/require.js | 2053 ++ .../bower_components/raphael/license.txt | 21 + .../bower_components/raphael/raphael-min.js | 11 + .../bower_components/raphael/raphael.js | 8239 ++++++++ .../sbadmin2-1.0.7/less/mixins.less | 1 + .../sbadmin2-1.0.7/less/sb-admin-2.less | 366 + .../sbadmin2-1.0.7/less/variables.less | 14 + bin/user.properties | 77 + build.properties | 24 +- build.xml | 9 + eclipse.classpath | 3 + src/core/org/apache/jmeter/JMeter.java | 50 +- .../report/config/ConfigurationException.java | 60 + .../report/config/ConvertException.java | 59 + .../jmeter/report/config/Converters.java | 95 + .../report/config/GraphConfiguration.java | 181 + .../config/ReportGeneratorConfiguration.java | 544 + .../jmeter/report/config/StringConverter.java | 40 + .../report/core/AbstractSampleWriter.java | 143 + .../report/core/ArgumentNullException.java | 68 + .../core/ControllerSamplePredicate.java | 45 + .../apache/jmeter/report/core/CsvFile.java | 61 + .../jmeter/report/core/CsvSampleReader.java | 363 + .../jmeter/report/core/CsvSampleWriter.java | 142 + .../jmeter/report/core/DataContext.java | 31 + .../apache/jmeter/report/core/JsonUtil.java | 69 + .../org/apache/jmeter/report/core/Sample.java | 417 + .../jmeter/report/core/SampleBuilder.java | 115 + .../jmeter/report/core/SampleComparator.java | 67 + .../jmeter/report/core/SampleException.java | 69 + .../report/core/SampleMetaDataParser.java | 39 + .../jmeter/report/core/SampleMetadata.java | 166 + .../jmeter/report/core/SamplePredicate.java | 36 + .../jmeter/report/core/SampleSelector.java | 38 + .../jmeter/report/core/SampleWriter.java | 45 + .../apache/jmeter/report/core/TimeHelper.java | 128 + .../report/dashboard/GenerationException.java | 60 + .../report/dashboard/ReportGenerator.java | 386 + .../report/dashboard/TemplateVisitor.java | 126 + .../processor/AbstractAggregatorFactory.java | 77 + .../processor/AbstractSampleConsumer.java | 259 + .../processor/AbstractSampleProcessor.java | 94 + .../processor/AbstractSummaryConsumer.java | 35 + .../jmeter/report/processor/Aggregator.java | 54 + .../report/processor/AggregatorFactory.java | 51 + .../processor/ApdexSummaryConsumer.java | 269 + .../report/processor/ApdexThresholdsInfo.java | 67 + .../report/processor/ChannelContext.java | 30 + .../processor/ErrorsSummaryConsumer.java | 211 + .../processor/ExternalSampleSorter.java | 664 + .../processor/FieldSampleComparator.java | 59 + .../report/processor/FilterConsumer.java | 114 + .../apache/jmeter/report/processor/Job.java | 56 + .../report/processor/MeanAggregator.java | 63 + .../processor/MeanAggregatorFactory.java | 35 + .../processor/MedianAggregatorFactory.java | 37 + .../processor/NormalizerSampleConsumer.java | 91 + .../processor/PercentileAggregator.java | 73 + .../processor/RequestsSummaryConsumer.java | 103 + .../report/processor/SampleConsumer.java | 90 + .../report/processor/SampleContext.java | 82 + .../report/processor/SampleIndexer.java | 46 + .../report/processor/SampleProcessor.java | 74 + .../report/processor/SampleProducer.java | 68 + .../jmeter/report/processor/SampleSource.java | 381 + .../SampleSourceChannelAttributes.java | 30 + .../processor/SampleWriterConsumer.java | 118 + .../processor/StatisticsSummaryConsumer.java | 425 + .../report/processor/SumAggregator.java | 64 + .../processor/SumAggregatorFactory.java | 35 + .../report/processor/TaggerConsumer.java | 131 + .../report/processor/ThresholdSelector.java | 37 + .../report/processor/TimeRateAggregator.java | 80 + .../processor/TimeRateAggregatorFactory.java | 58 + .../graph/AbstractGraphConsumer.java | 583 + .../graph/AbstractOverTimeGraphConsumer.java | 110 + .../AbstractVersusRequestsGraphConsumer.java | 367 + .../processor/graph/CodeSeriesSelector.java | 44 + .../processor/graph/CountValueSelector.java | 37 + .../graph/ElapsedTimeValueSelector.java | 37 + .../processor/graph/GraphConsumerResult.java | 131 + .../processor/graph/GraphKeysSelector.java | 30 + .../processor/graph/GraphSeriesSelector.java | 30 + .../processor/graph/GraphValueSelector.java | 43 + .../report/processor/graph/GroupData.java | 70 + .../report/processor/graph/GroupInfo.java | 101 + .../processor/graph/IndexedNameSelector.java | 64 + .../processor/graph/LatencyValueSelector.java | 37 + .../processor/graph/NameSeriesSelector.java | 43 + .../report/processor/graph/SeriesData.java | 114 + .../processor/graph/StaticSeriesSelector.java | 64 + .../processor/graph/StatusSeriesSelector.java | 86 + .../graph/TimeStampKeysSelector.java | 87 + .../impl/ActiveThreadsGraphConsumer.java | 87 + .../impl/BytesThroughputGraphConsumer.java | 105 + .../impl/CodesPerSecondGraphConsumer.java | 82 + .../impl/HitsPerSecondGraphConsumer.java | 99 + .../impl/LatencyOverTimeGraphConsumer.java | 66 + .../impl/LatencyVSRequestGraphConsumer.java | 72 + ...ResponseTimeDistributionGraphConsumer.java | 145 + .../ResponseTimeOverTimeGraphConsumer.java | 67 + .../ResponseTimePerSampleGraphConsumer.java | 114 + .../ResponseTimePercentilesGraphConsumer.java | 96 + .../ResponseTimeVSRequestGraphConsumer.java | 74 + .../graph/impl/TimeVSThreadGraphConsumer.java | 75 + .../TransactionsPerSecondGraphConsumer.java | 101 + 785 files changed, 147148 insertions(+), 16 deletions(-) create mode 100644 bin/report-template/README.TXT create mode 100644 bin/report-template/content/css/dashboard.css create mode 100644 bin/report-template/content/css/jquery-ui.css create mode 100644 bin/report-template/content/css/jquery-ui.structure.css create mode 100644 bin/report-template/content/css/jquery-ui.theme.css create mode 100644 bin/report-template/content/css/legends.css create mode 100644 bin/report-template/content/js/curvedLines.js create mode 100644 bin/report-template/content/js/dashboard-commons.js create mode 100644 bin/report-template/content/js/dashboard.js.fmkr create mode 100644 bin/report-template/content/js/graphes.js.fmkr create mode 100644 bin/report-template/content/js/hashtable.js create mode 100644 bin/report-template/content/js/jquery-ui.js create mode 100644 bin/report-template/content/js/jquery.cookie.js create mode 100644 bin/report-template/content/js/jquery.flot.axislabels.js create mode 100644 bin/report-template/content/js/jquery.numberformatter-1.2.3.min.js create mode 100644 bin/report-template/content/js/pace.min.js create mode 100644 bin/report-template/content/pages/OverTime.html.fmkr create mode 100644 bin/report-template/content/pages/ResponseTimes.html.fmkr create mode 100644 bin/report-template/content/pages/Throughput.html.fmkr create mode 100644 bin/report-template/content/pages/icon-apache.png create mode 100644 bin/report-template/index.html.fmkr create mode 100644 bin/report-template/sbadmin2-1.0.7/LICENSE create mode 100644 bin/report-template/sbadmin2-1.0.7/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/.editorconfig create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/.gitignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/bootstrap-social.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/bootstrap-social.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/bootstrap-social.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap-social/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/Gruntfile.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/LICENSE create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/fonts/glyphicons-halflings-regular.eot create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/fonts/glyphicons-halflings-regular.svg create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/fonts/glyphicons-halflings-regular.ttf create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/fonts/glyphicons-halflings-regular.woff2 create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/grunt/.jshintrc create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/grunt/bs-commonjs-generator.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/grunt/bs-glyphicons-data-generator.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/grunt/bs-lessdoc-parser.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/grunt/bs-raw-files-generator.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/grunt/configBridge.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/grunt/sauce_browsers.yml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/.jscsrc create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/.jshintrc create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/affix.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/alert.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/button.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/carousel.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/collapse.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/dropdown.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/modal.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/popover.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/scrollspy.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/tab.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/tooltip.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/js/transition.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/.csscomb.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/.csslintrc create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/alerts.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/badges.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/bootstrap.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/breadcrumbs.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/button-groups.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/buttons.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/carousel.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/close.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/code.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/component-animations.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/dropdowns.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/forms.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/glyphicons.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/grid.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/input-groups.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/jumbotron.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/labels.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/list-group.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/media.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/alerts.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/background-variant.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/border-radius.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/buttons.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/center-block.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/clearfix.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/forms.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/gradients.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/grid-framework.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/grid.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/hide-text.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/image.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/labels.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/list-group.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/nav-divider.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/nav-vertical-align.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/opacity.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/pagination.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/panels.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/progress-bar.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/reset-filter.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/resize.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/responsive-visibility.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/size.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/tab-focus.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/table-row.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/text-emphasis.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/text-overflow.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/mixins/vendor-prefixes.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/modals.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/navbar.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/navs.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/normalize.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/pager.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/pagination.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/panels.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/popovers.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/print.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/progress-bars.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/responsive-embed.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/responsive-utilities.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/scaffolding.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/tables.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/theme.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/thumbnails.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/tooltip.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/type.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/utilities.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/variables.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/less/wells.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/package.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/bootstrap/package.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/average().js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/column().title().js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/columns().order().js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnAddDataAndDisplay.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnAddTr.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnColumnIndexToVisible.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnDataUpdate.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnDisplayRow.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnDisplayStart.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnFakeRowspan.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnFilterAll.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnFilterClear.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnFilterOnReturn.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnFindCellRowIndexes.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnFindCellRowNodes.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnGetAdjacentTr.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnGetColumnData.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnGetColumnIndex.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnGetHiddenNodes.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnGetTd.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnGetTds.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnLengthChange.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnMultiFilter.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnPagingInfo.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnProcessingIndicator.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnReloadAjax.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnSetFilteringDelay.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnSortNeutral.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnStandingRedraw.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/fnVisibleToColumnIndex.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/page.jumpToData().js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/api/sum().js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/alphabetSearch/dataTables.alphabetSearch.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/alphabetSearch/dataTables.alphabetSearch.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/alphabetSearch/dataTables.alphabetSearch.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/lengthLinks/dataTables.lengthLinks.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/lengthLinks/dataTables.lengthLinks.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/lengthLinks/dataTables.lengthLinks.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/searchHighlight/dataTables.searchHighlight.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/searchHighlight/dataTables.searchHighlight.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/features/searchHighlight/dataTables.searchHighlight.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/filtering/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/filtering/row-based/TableTools.ShowSelectedOnly.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/filtering/row-based/range_dates.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/filtering/row-based/range_numbers.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/filtering/type-based/accent-neutralise.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/filtering/type-based/html.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/filtering/type-based/phoneNumber.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Afrikaans.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Albanian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Arabic.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Azerbaijan.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Bangla.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Belarusian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Bulgarian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Catalan.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Chinese-traditional.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Chinese.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Croatian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Czech.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Danish.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Dutch.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/English.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Estonian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Filipino.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Finnish.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/French.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Galician.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Georgian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/German.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Greek.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Gujarati.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Hebrew.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Hindi.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Hungarian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Icelandic.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Indonesian-Alternative.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Indonesian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Irish.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Italian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Japanese.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Korean.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Latvian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Lithuanian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Macedonian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Malay.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Norwegian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Persian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Polish.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Portuguese-Brasil.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Portuguese.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Romanian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Russian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Serbian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Slovak.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Slovenian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Spanish.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Swahili.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Swedish.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Tamil.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Thai.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Turkish.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Ukranian.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Urdu.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Uzbek.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/Vietnamese.lang create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/i18n/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/1/dataTables.bootstrap.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/1/dataTables.bootstrap.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/2/dataTables.bootstrap.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/2/dataTables.bootstrap.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/2/dataTables.bootstrap.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/2/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/3/dataTables.bootstrap.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/3/dataTables.bootstrap.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/3/dataTables.bootstrap.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/3/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/images/sort_asc.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/images/sort_asc_disabled.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/images/sort_both.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/images/sort_desc.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/bootstrap/images/sort_desc_disabled.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/font-awesome/bootstrap.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/font-awesome/dataTables.fontAwesome.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/font-awesome/datatables.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/font-awesome/foundation.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/dataTables.foundation.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/dataTables.foundation.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/dataTables.foundation.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/images/sort_asc.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/images/sort_asc_disabled.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/images/sort_both.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/images/sort_desc.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/images/sort_desc_disabled.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/foundation/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/jqueryui/dataTables.jqueryui.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/jqueryui/dataTables.jqueryui.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/jqueryui/dataTables.jqueryui.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/jqueryui/dataTables.jqueryui.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/integration/jqueryui/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/make.sh create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/ellipses.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/extjs.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/four_button.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/input.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/jPaginator/dataTables.jPaginator.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/scrolling.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/pagination/select.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/.DS_Store create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/alt-string.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/anti-the.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/chinese-string.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/currency.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/custom-data-source/dom-checkbox.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/custom-data-source/dom-select.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/custom-data-source/dom-text.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/date-dd-MMM-yyyy.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/date-de.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/date-eu.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/date-euro.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/date-uk.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/datetime-moment.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/datetime-us.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/enum.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/file-size.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/formatted-numbers.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/ip-address.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/monthYear.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/natural.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/num-html.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/numeric-comma.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/percent.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/persian.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/scientific.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/signed-num.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/stringMonthYear.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/time.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/title-numeric.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/title-string.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/sorting/turkish-string.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/currency.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/date-uk.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/file-size.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/formatted-num.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/ip-address.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/num-html.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-plugins/type-detection/numeric-comma.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/.gitignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/License.txt create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/Readme.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/css/dataTables.responsive.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/css/dataTables.responsive.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/api/responsive.index().xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/api/responsive.rebuild().xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/api/responsive.recalc().xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/option/responsive.breakpoints.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/option/responsive.details.renderer.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/option/responsive.details.target.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/option/responsive.details.type.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/option/responsive.details.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/docs/option/responsive.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/.DS_Store create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/child-rows/column-control.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/child-rows/custom-renderer.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/child-rows/disable-child-rows.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/child-rows/index.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/child-rows/right-column.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/child-rows/whole-row-control.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/display-control/auto.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/display-control/classes.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/display-control/fixedHeader.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/display-control/index.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/display-control/init-classes.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/index.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/initialisation/.DS_Store create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/initialisation/ajax.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/initialisation/className.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/initialisation/default.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/initialisation/index.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/initialisation/new.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/initialisation/option.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/styling/bootstrap.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/styling/compact.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/styling/foundation.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/styling/index.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/examples/styling/scrolling.xml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/js/dataTables.responsive.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables-responsive/make.sh create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/Contributing.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/Readme.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/license.txt create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/dataTables.bootstrap.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/dataTables.bootstrap.min.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/dataTables.foundation.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/dataTables.foundation.min.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/dataTables.jqueryui.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/dataTables.jqueryui.min.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/jquery.dataTables.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/jquery.dataTables.min.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/css/jquery.dataTables_themeroller.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/images/Sorting icons.psd create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/images/favicon.ico create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/images/sort_asc.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/images/sort_asc_disabled.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/images/sort_both.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/images/sort_desc.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/images/sort_desc_disabled.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/dataTables.bootstrap.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/dataTables.bootstrap.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/dataTables.foundation.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/dataTables.foundation.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/dataTables.jqueryui.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/dataTables.jqueryui.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/jquery.dataTables.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/jquery.dataTables.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/datatables/media/js/jquery.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot-axislabels/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot-axislabels/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot-axislabels/jquery.flot.axislabels.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip/js/excanvas.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip/js/jquery.flot.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip/js/jquery.flot.tooltip.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip/js/jquery.flot.tooltip.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot.tooltip/js/jquery.flot.tooltip.source.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/.gitignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/.travis.yml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/API.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/CONTRIBUTING.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/FAQ.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/LICENSE.txt create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/Makefile create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/NEWS.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/PLUGINS.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/component.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/excanvas.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/excanvas.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/flot.jquery.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.colorhelpers.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.canvas.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.categories.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.crosshair.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.errorbars.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.fillbetween.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.image.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.navigate.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.pie.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.resize.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.selection.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.stack.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.symbol.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.threshold.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.flot.time.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/jquery.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/flot/package.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/.gitignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/.npmignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/css/font-awesome.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/css/font-awesome.min.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/fonts/FontAwesome.otf create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.eot create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.svg create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.ttf create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/fonts/fontawesome-webfont.woff create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/bordered-pulled.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/core.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/extras.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/fixed-width.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/font-awesome.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/icons.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/larger.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/list.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/mixins.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/path.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/rotated-flipped.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/spinning.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/stacked.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/less/variables.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_bordered-pulled.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_core.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_extras.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_fixed-width.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_icons.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_larger.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_list.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_mixins.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_path.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_rotated-flipped.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_spinning.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_stacked.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/_variables.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/font-awesome/scss/font-awesome.scss create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/.gitattributes create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/.gitignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/.jshintrc create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/composer.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/gulpfile.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/holder.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/package.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/src/augment.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/src/holder.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/src/ondomready.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/src/polyfills.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/test/.gitignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/test/image.jpg create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/holderjs/test/index.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/MIT-LICENSE.txt create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/jsonp.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/load.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/parseJSON.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/parseXML.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/script.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/var/nonce.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/var/rquery.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/ajax/xhr.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/attributes.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/attributes/attr.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/attributes/classes.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/attributes/prop.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/attributes/support.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/attributes/val.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/callbacks.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/core.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/core/access.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/core/init.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/core/parseHTML.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/core/ready.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/core/var/rsingleTag.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/addGetHookIf.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/curCSS.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/defaultDisplay.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/hiddenVisibleSelectors.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/support.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/swap.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/var/cssExpand.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/var/getStyles.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/var/isHidden.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/var/rmargin.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/css/var/rnumnonpx.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/data.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/data/Data.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/data/accepts.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/data/var/data_priv.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/data/var/data_user.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/deferred.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/deprecated.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/dimensions.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/effects.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/effects/Tween.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/effects/animatedSelector.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/event.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/event/ajax.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/event/alias.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/event/support.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/exports/amd.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/exports/global.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/intro.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/jquery.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/manipulation.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/manipulation/_evalUrl.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/manipulation/support.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/manipulation/var/rcheckableType.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/offset.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/outro.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/queue.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/queue/delay.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/selector-native.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/selector-sizzle.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/selector.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/serialize.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/traversing.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/traversing/findFilter.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/traversing/var/rneedsContext.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/arr.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/class2type.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/concat.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/hasOwn.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/indexOf.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/pnum.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/push.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/rnotwhite.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/slice.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/strundefined.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/support.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/var/toString.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/jquery/src/wrap.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/Gruntfile.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/LICENSE create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/package.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/src/metisMenu.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/metisMenu/src/metisMenu.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/History.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/LICENSE create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/Readme.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/media/logo.svg create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/mocha.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/mocha/mocha.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/.gitignore create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/.travis.yml create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/Gruntfile.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/README.md create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/bower.travis.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/_template.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/area-as-line.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/area.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/bar-colors.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/bar-no-axes.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/bar.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/days.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/decimal-custom-hover.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/diagonal-xlabels-bar.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/diagonal-xlabels.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/donut-colors.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/donut-formatter.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/donut.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/dst.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/events.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/goals.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/lib/example.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/lib/example.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/months-no-smooth.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/negative.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/no-grid.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/non-continuous.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/non-date.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/quarters.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/resize.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/stacked_bars.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/timestamps.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/updating.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/weeks.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/examples/years.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/less/morris.core.less create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/lib/morris.area.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/lib/morris.bar.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/lib/morris.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/lib/morris.donut.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/lib/morris.grid.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/lib/morris.hover.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/lib/morris.line.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/morris.css create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/morris.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/morris.min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/package.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/area/area_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/bar/bar_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/bar/colours.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/commas_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/donut/donut_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/grid/auto_grid_lines_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/grid/set_data_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/grid/y_label_format_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/hover_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/label_series_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/line/line_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/pad_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/lib/parse_time_spec.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/specs.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/support/placeholder.coffee create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/examples.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/exemplary/area0.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/exemplary/bar0.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/exemplary/line0.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/exemplary/stacked_bar0.png create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/run.sh create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/test.html create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/morrisjs/spec/viz/visual_specs.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/.bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/bower.json create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/dev/amdDev.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/dev/index.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/dev/require.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/license.txt create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/raphael-min.js create mode 100644 bin/report-template/sbadmin2-1.0.7/bower_components/raphael/raphael.js create mode 100644 bin/report-template/sbadmin2-1.0.7/less/mixins.less create mode 100644 bin/report-template/sbadmin2-1.0.7/less/sb-admin-2.less create mode 100644 bin/report-template/sbadmin2-1.0.7/less/variables.less create mode 100644 src/core/org/apache/jmeter/report/config/ConfigurationException.java create mode 100644 src/core/org/apache/jmeter/report/config/ConvertException.java create mode 100644 src/core/org/apache/jmeter/report/config/Converters.java create mode 100644 src/core/org/apache/jmeter/report/config/GraphConfiguration.java create mode 100644 src/core/org/apache/jmeter/report/config/ReportGeneratorConfiguration.java create mode 100644 src/core/org/apache/jmeter/report/config/StringConverter.java create mode 100644 src/core/org/apache/jmeter/report/core/AbstractSampleWriter.java create mode 100644 src/core/org/apache/jmeter/report/core/ArgumentNullException.java create mode 100644 src/core/org/apache/jmeter/report/core/ControllerSamplePredicate.java create mode 100644 src/core/org/apache/jmeter/report/core/CsvFile.java create mode 100644 src/core/org/apache/jmeter/report/core/CsvSampleReader.java create mode 100644 src/core/org/apache/jmeter/report/core/CsvSampleWriter.java create mode 100644 src/core/org/apache/jmeter/report/core/DataContext.java create mode 100644 src/core/org/apache/jmeter/report/core/JsonUtil.java create mode 100644 src/core/org/apache/jmeter/report/core/Sample.java create mode 100644 src/core/org/apache/jmeter/report/core/SampleBuilder.java create mode 100644 src/core/org/apache/jmeter/report/core/SampleComparator.java create mode 100644 src/core/org/apache/jmeter/report/core/SampleException.java create mode 100644 src/core/org/apache/jmeter/report/core/SampleMetaDataParser.java create mode 100644 src/core/org/apache/jmeter/report/core/SampleMetadata.java create mode 100644 src/core/org/apache/jmeter/report/core/SamplePredicate.java create mode 100644 src/core/org/apache/jmeter/report/core/SampleSelector.java create mode 100644 src/core/org/apache/jmeter/report/core/SampleWriter.java create mode 100644 src/core/org/apache/jmeter/report/core/TimeHelper.java create mode 100644 src/core/org/apache/jmeter/report/dashboard/GenerationException.java create mode 100644 src/core/org/apache/jmeter/report/dashboard/ReportGenerator.java create mode 100644 src/core/org/apache/jmeter/report/dashboard/TemplateVisitor.java create mode 100644 src/core/org/apache/jmeter/report/processor/AbstractAggregatorFactory.java create mode 100644 src/core/org/apache/jmeter/report/processor/AbstractSampleConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/AbstractSampleProcessor.java create mode 100644 src/core/org/apache/jmeter/report/processor/AbstractSummaryConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/Aggregator.java create mode 100644 src/core/org/apache/jmeter/report/processor/AggregatorFactory.java create mode 100644 src/core/org/apache/jmeter/report/processor/ApdexSummaryConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/ApdexThresholdsInfo.java create mode 100644 src/core/org/apache/jmeter/report/processor/ChannelContext.java create mode 100644 src/core/org/apache/jmeter/report/processor/ErrorsSummaryConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/ExternalSampleSorter.java create mode 100644 src/core/org/apache/jmeter/report/processor/FieldSampleComparator.java create mode 100644 src/core/org/apache/jmeter/report/processor/FilterConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/Job.java create mode 100644 src/core/org/apache/jmeter/report/processor/MeanAggregator.java create mode 100644 src/core/org/apache/jmeter/report/processor/MeanAggregatorFactory.java create mode 100644 src/core/org/apache/jmeter/report/processor/MedianAggregatorFactory.java create mode 100644 src/core/org/apache/jmeter/report/processor/NormalizerSampleConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/PercentileAggregator.java create mode 100644 src/core/org/apache/jmeter/report/processor/RequestsSummaryConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleContext.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleIndexer.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleProcessor.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleProducer.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleSource.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleSourceChannelAttributes.java create mode 100644 src/core/org/apache/jmeter/report/processor/SampleWriterConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/StatisticsSummaryConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/SumAggregator.java create mode 100644 src/core/org/apache/jmeter/report/processor/SumAggregatorFactory.java create mode 100644 src/core/org/apache/jmeter/report/processor/TaggerConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/ThresholdSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/TimeRateAggregator.java create mode 100644 src/core/org/apache/jmeter/report/processor/TimeRateAggregatorFactory.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/AbstractGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/AbstractOverTimeGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/AbstractVersusRequestsGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/CodeSeriesSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/CountValueSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/ElapsedTimeValueSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/GraphConsumerResult.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/GraphKeysSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/GraphSeriesSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/GraphValueSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/GroupData.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/GroupInfo.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/IndexedNameSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/LatencyValueSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/NameSeriesSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/SeriesData.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/StaticSeriesSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/StatusSeriesSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/TimeStampKeysSelector.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/ActiveThreadsGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/BytesThroughputGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/CodesPerSecondGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/HitsPerSecondGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/LatencyOverTimeGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/LatencyVSRequestGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeDistributionGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeOverTimeGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimePerSampleGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimePercentilesGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/ResponseTimeVSRequestGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/TimeVSThreadGraphConsumer.java create mode 100644 src/core/org/apache/jmeter/report/processor/graph/impl/TransactionsPerSecondGraphConsumer.java diff --git a/.gitignore b/.gitignore index 85adb0899c3..b6b10ac1560 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,6 @@ jmeter-fb.* # ignore jar's in lib/ /lib/**/*.jar + +# ignore default report output directory +/bin/report-output diff --git a/bin/report-template/README.TXT b/bin/report-template/README.TXT new file mode 100644 index 00000000000..9993efb8c2c --- /dev/null +++ b/bin/report-template/README.TXT @@ -0,0 +1,336 @@ +content + css + -dashboard.css : modifie quelques attributs des tableaux de la page dashboard + -legends.css : définie le format des légendes des graphiques + -jquery-ui.css : version 1.11.4 + -jquery-ui.structure.css : version 1.11.4 + -jquery-ui.theme.css : version 1.11.4 + js + - curvedLines.js : version 1.1.1 , sert à modifier l'apparence des courbes pour qu'elles s'arrondissent + - Dashboard.js : Fichier javascript nécessaire à la création de la page "index.html", génére les tableaux et graphiques de cette page + - graphes.js : fichier principale, c'est le fichier qui permet de générer les graphes des trois pages : OverTime.html, ResponseTime.html et Throughput.html + - hashtable.js : version 3.0 A standalone implementation of hash table in JavaScript. + - jquery-ui.js : version 1.11.4 + - jquery.cookie.js : 1.4.1 + - jquery.flot.axislabels.js : version 2.0.1 , affiche le nom des axes sur les graphiques + - jquery.numberformatter-1.2.3.min.js : 1.2.4 , permet de convertir les timestamp en date + + pages + - OverTime.fmkr : Modèle qui va générer la page OverTime.html + - ResponseTimes.fmkr : Modèle qui va générer la page ResponseTimes.html + - Throughput.fmkr : Modèle qui va générer la page Throughput.html + +sbadmin2-1.0.7 + ./bower_components + ./flot + ./jquery.flot.pie.js : version 0.8.3 : Patch de ce fichier car il y avait un problème sous mac avec firefox avec la version de la release sbadmin + +responseTimePercentileGrapher.values +{ + "Click Order" :{ + "label": "Click Order", + "data": [[0, 4000], [ 3, 6000 ] , [ 4, 12055] , [8 , 14000], [ 10 , 15000] , [ 50, 16000] , [93, 20000] , [ 100 , 33000]] , + "curvedLines": {"apply": true, "tension": 1}, + "threshold" : { "below": 0, "color": "none" } + }, + "CreationAccount" :{ + "label": "CreationAccount", + "data": [[0, 5000], [ 3, 6500 ] , [ 4, 13555] , [8 , 15500], [ 10 , 16500] , [ 50, 18500] , [93, 22500] , [ 100 , 35500]] , + "curvedLines": {"apply": true, "tension": 1}, + "threshold" : { "below": 0, "color": "none" } + }, + "Captcha" :{ + "label": "Captcha", + "data": [[0, 3000], [ 3, 4000 ] , [ 4, 10055] , [8 , 12000], [ 10 , 13000] , [ 50, 14000] , [93, 18000] , [ 100 , 29000]] , + "curvedLines": {"apply": true, "tension": 1}, + "threshold" : { "below": 0, "color": "none" } + } +} +responseTimePercentileGrapher.minX=0 +responseTimePercentileGrapher.maxX=400000 + +responseTimeDistributionGrapher.values +{ + "AccountCreationProcess": { + "label": "AccountCreationProcess", + "data": [ + [ + 0, + 3 + ], + [ + 1000, + 6 + ], + [ + 2000, + 5 + ], + [ + 3000, + 2 + ], + [ + 4000, + 8 + ] + ] + }, + "CreerCompte ": { + "label": "CreerCompte ", + "data": [ + [ + 0, + 4 + ], + [ + 1000, + 5 + ], + [ + 2000, + 9 + ], + [ + 3000, + 2 + ], + [ + 4000, + 8 + ] + ] + } +} +responseTimeDistributionGrapher.granularity + +activeThreadsOverTimeGrapher.values +{ + "AccountCreation-ip-10-33-183-4" : { + "label": "AccountCreation-ip-10-33-183-4", + "data": [ [ 720000, 0 ], [ 1440000, 200 ], [ 2160000, 900 ], [ 2880000, 900 ], [ 3600000, 900 ], [ 4320000, 900 ], [ 5040000, 900 ], [ 5760000, 900 ], [ 6480000, 900 ], [ 7200000, 0 ] ] + }, + "AccountCreation-ip-10-72-129-224" : { + "label": "AccountCreation-ip-10-72-129-224", + "data": [ [ 720000, 8 ], [ 1440000, 3 ], [ 2160000, 6 ], [ 2880000, 5], [ 3600000, 6 ], [ 4320000,7 ], [ 5040000, 5], [ 5760000, 6 ], [ 6480000, 5 ], [ 7200000, 4 ] ] + }, + "Order-ip-10-33-183-4" : { + "label": "Order-ip-10-33-183-4", + "data": [ [ 720000, 6 ], [ 1440000, 4 ], [ 2160000, 5 ], [ 2880000, 6 ], [ 3600000, 4 ], [ 4320000, 5 ], [ 5040000, 6 ], [ 5760000, 5 ], [ 6480000, 4 ], [ 7200000, 5 ] ] + } +} +activeThreadsOverTimeGrapher.minX +activeThreadsOverTimeGrapher.maxX +activeThreadsOverTimeGrapher.minY +activeThreadsOverTimeGrapher.maxY +activeThreadsOverTimeGrapher.granularity + +responseTimePerSampleGrapher.values + var data = { + "Temps moyen" : { + "label": "Temps moyen", "data": [[1682.3, 0], [168.95, 1],[1703, 2],[1874, 3],[1945, 4], [385, 5], [1525, 6]] + }, + "Temps médian" : { + "label": "Temps médian", "data": [[1582.3, 0], [128.95, 1],[1603, 2],[1774, 3],[1645, 4], [185, 5], [1225, 6]] + } + } +responseTimePerSampleGrapher.sampleNames + var ticks = [[0, "s0-0000-login"], [1, "s01-0100-FormulaireRechercheClients"], [2, "s01-0200-RechercheClients"], [3, "s01-0300-SelectionClient"], [4, "s01-0400-TraitementLocal"], [5, "s01-0500-AjouterPrestation"], [6, "s01-0600-AjouterAffutagePatin"]]; + +responseTimePerSampleGrapher.maxX + +timeVsThreadsGrapher.values +{ + "creerCompte " : { + "label": "creerCompte ", + "data": [ [ 604, 0 ], [ 604, 19000 ], [ 1530, 17400 ], [ 2500, 16146 ], [ 2900, 17000 ], [ 2900, 0 ] ], + "color": "red", + "points": { + "show": true + } + }, + "Moyenne creerCompte" : { + "label": "Moyenne creerCompte", + "data": [ [ 2750, 16146 ] ], + "color": "red" , + "points": { + "show": true, + "symbol": "triangle" + } + }, + "captcha " : { + "label": "captcha ", + "data": [ [ 75, 0 ], [ 75, 11000 ], [ 150, 10000 ], [ 250, 8900 ], [ 280, 11500 ], [ 302, 11650 ], [ 330, 9300 ], [ 400, 12100 ], [ 550, 11550 ], [ 650, 12000 ], [ 750, 10000 ], [ 880, 13400 ], [ 1000, 11536 ], [ 1150, 10215 ], [ 1200, 12000 ], [ 1300, 11300 ], [ 1350, 8956 ], [ 1375, 9845 ], [ 1400, 10000 ], [ 1600, 11452 ], [ 1700, 11254 ], [ 1800, 12457 ], [ 2400, 9000 ], [ 2600,9500 ], [ 2750, 10000 ], [ 2850, 11478 ], [ 3024, 0 ] ], + "color": "green", + "points": { + "show": true + } + }, + "Moyenne captcha" : { + "label" : "Moyenne captcha", + "data": [[ 2820, 10000]], + "color": "green", + "points": { + "show": true, + "symbol": "triangle" + } + } +} +timeVsThreadsGrapher.minX +timeVsThreadsGrapher.maxX +timeVsThreadsGrapher.minY +timeVsThreadsGrapher.maxY + +bytesThroughputOverTimeGrapher.values +{ + "Bytes received per second" : { + "label": "Bytes received per second", + "data": [ [ 355000, 0 ], [ 400000, 54000000 ], [ 400000, 74000000 ], [ 410000, 72000000 ], [ 420000, 70000000 ], [ 430000, 65000000 ], [ 445000, 54000000 ], [ 451000, 70000000 ], [ 460000, 71000000 ], [ 470000, 78000000 ], [ 490000, 69000000 ], [ 510000, 64000000 ], [ 530000, 62000000 ], [ 570000, 60000000 ], [ 580000, 55000000 ], [ 590000, 54000000 ], [ 620000, 58000000 ], [ 640000, 60000000 ], [ 660000, 62000000 ], [ 670000, 65000000 ], [ 680000, 66000000 ], [ 700000, 69000000 ], [ 710000, 71000000 ], [ 720000, 72000000 ], [ 740000, 65000000 ], [ 860000, 44000000 ], [ 900000, 72 ] ] + }, + "Bytes sent per second" : { + "label": "Bytes sent per second", + "data": [ [ 355000, 10 ], [ 400000, 10 ], [ 400000, 10 ], [ 410000, 10 ], [ 420000, 10 ], [ 430000, 10 ], [ 445000, 10 ], [ 451000, 10 ], [ 460000, 10 ], [ 470000, 10 ], [ 490000, 10 ], [ 510000, 10 ], [ 530000, 10 ], [ 570000, 10 ], [ 580000, 10 ], [ 590000, 10 ], [ 620000, 10 ], [ 640000, 10 ], [ 660000, 10 ], [ 670000, 10 ], [ 680000, 10 ], [ 700000, 10 ], [ 710000, 10 ], [ 720000, 10 ], [ 740000, 10 ], [ 860000, 10 ], [ 900000, 72 ] ] } +} +bytesThroughputOverTimeGrapher.minX +bytesThroughputOverTimeGrapher.maxX +bytesThroughputOverTimeGrapher.minY +bytesThroughputOverTimeGrapher.maxY +bytesThroughputOverTimeGrapher.granularity + +responseTimeOverTimeGrapher.values +{ + "Creer Compte":{ + "label": "Creer Compte", + "data": [ [ 355000, 0 ], [ 400000, 3000 ], [ 400000, 17000 ], [ 470000, 16000 ], [ 500000, 15500 ], [ 600000, 16000 ], [ 650000, 14900 ], [ 700000, 17000 ], [ 800000, 14500 ], [ 800000, 2000 ], [ 900000, 0 ] ] }, + "Captcha" : { + "label": "Captcha", + "data": [ [ 355000, 10 ], [ 400000, 10 ], [ 400000, 10 ], [ 410000, 10 ], [ 420000, 10 ], [ 430000, 10 ], [ 445000, 10 ], [ 451000, 10 ], [ 460000, 10 ], [ 470000, 10 ], [ 490000, 10 ], [ 510000, 10 ], [ 530000, 10 ], [ 570000, 10 ], [ 580000, 10 ], [ 590000, 10 ], [ 620000, 10 ], [ 640000, 10 ], [ 660000, 10 ], [ 670000, 10 ], [ 680000, 10 ], [ 700000, 10 ], [ 710000, 10 ], [ 720000, 10 ], [ 740000, 10 ], [ 860000, 10 ], [ 900000, 72 ] ] }, + "AccountCreationProcess" : { + "label": "AccountCreationProcess", + "data": [ [ 355000, 10 ], [ 400000, 1000 ], [ 400000, 5000 ], [ 410000, 6000 ], [ 420000, 5693 ], [ 430000, 5263 ], [ 445000, 5742 ], [ 451000, 5461 ], [ 460000, 5869 ], [ 470000, 5436 ], [ 490000, 5032 ], [ 510000, 5821 ], [ 530000, 5463 ], [ 570000, 5789 ], [ 580000, 5321 ], [ 590000, 5456 ], [ 620000, 5864 ], [ 640000, 5412 ], [ 660000, 5369 ], [ 670000, 5693 ], [ 680000, 5465 ], [ 700000, 5555 ], [ 710000, 5444 ], [ 720000, 5333 ], [ 740000, 5999 ], [ 860000, 10 ], [ 900000, 0 ] ] } +} +responseTimeOverTimeGrapher.minX +responseTimeOverTimeGrapher.maxY +responseTimeOverTimeGrapher.minY +responseTimeOverTimeGrapher.maxY +responseTimeOverTimeGrapher.granularity + +latencyOverTimeGrapher.values +{ + "Creer Compte " : { + "label": "Creer Compte ", + "data": [ [ 355000, 0 ], [ 400000, 200 ], [ 400000, 6300 ], [ 470000, 6200 ], [ 500000, 5800 ], [ 600000, 5850 ], [ 650000, 5750 ], [ 700000, 6400 ], [ 800000, 6800 ], [ 800000, 200 ], [ 900000, 0 ] ] + }, + "Captcha " : { + "label": "Captcha ", + "data": [ [ 355000, 10 ], [ 400000, 10 ], [ 400000, 10 ], [ 410000, 10 ], [ 420000, 10 ], [ 430000, 10 ], [ 445000, 10 ], [ 451000, 10 ], [ 460000, 10 ], [ 470000, 10 ], [ 490000, 10 ], [ 510000, 10 ], [ 530000, 10 ], [ 570000, 10 ], [ 580000, 10 ], [ 590000, 10 ], [ 620000, 10 ], [ 640000, 10 ], [ 660000, 10 ], [ 670000, 10 ], [ 680000, 10 ], [ 700000, 10 ], [ 710000, 10 ], [ 720000, 10 ], [ 740000, 10 ], [ 860000, 10 ], [ 900000, 72 ] ] + }, + "AccountCreationProcess " : { + "label": "AccountCreationProcess ", + "data": [ [ 355000, 10 ], [ 400000, 500 ], [ 400000, 2500 ], [ 410000,3000 ], [ 420000, 2880 ], [ 430000, 2880 ], [ 445000, 2786 ], [ 451000, 2750 ], [ 460000, 2950 ], [ 470000, 2786 ], [ 490000, 2516 ], [ 510000, 2460 ], [ 530000, 2730 ], [ 570000, 2890 ], [ 580000, 2700 ], [ 590000, 2994 ], [ 620000, 2892 ], [ 640000, 2745 ], [ 660000, 2658 ], [ 670000, 2846 ], [ 680000, 2745], [ 700000, 2800 ], [ 710000, 2750 ], [ 720000, 2650 ], [ 740000, 3000 ],[ 760000, 2680 ], [ 780000, 2680 ], [ 860000, 10 ], [ 900000, 0 ] ] + } +} +latencyOverTimeGrapher.minX +latencyOverTimeGrapher.maxX +latencyOverTimeGrapher.minY +latencyOverTimeGrapher.maxY +latencyOverTimeGrapher.granularity + +responseTimeVsRequestGrapher.values +{ + "Successes " : { + "label": "Successes ", + "data": [ [ 33, 250 ], [ 75, 235 ], [ 115, 245 ], [ 125, 230 ], [ 150, 1000 ], [ 160, 179 ], [ 165, 200 ], [ 168, 163 ], [ 174, 169 ], [ 170, 180 ], [ 180, 167 ], [ 190, 160 ], [ 185, 162 ], [ 160, 177 ], [ 161, 173 ], [ 164, 171 ], [ 160, 180 ], [ 159, 177 ], [ 161, 176 ], [ 165, 173 ], [ 168, 170 ], [ 167, 169 ], [ 169, 169 ], [ 165, 170 ], [ 165, 168 ], [ 162, 170 ], [ 165, 170 ] ], + "color": "blue" + }, + "Failures " : { + "label": "Failures ", + "data": [ [ 33, 3 ], [ 200, 235 ], [ 164, 245 ], [ 89, 230 ]], + "color": "red" + } +} +responseTimeVsRequestGrapher.minX +responseTimeVsRequestGrapher.maxX +responseTimeVsRequestGrapher.minY +responseTimeVsRequestGrapher.maxY + +latencyVsRequestGrapher.values +{ + "Successes" : { + "label": "Successes", + "data": [ [ 33, 250 ], [ 75, 235 ], [ 115, 245 ], [ 125, 230 ], [ 150, 1000 ], [ 160, 179 ], [ 165, 200 ], [ 168, 163 ], [ 174, 169 ], [ 170, 180 ], [ 180, 167 ], [ 190, 160 ], [ 185, 162 ], [ 160, 177 ], [ 161, 173 ], [ 164, 171 ], [ 160, 180 ], [ 159, 177 ], [ 161, 176 ], [ 165, 173 ], [ 168, 170 ], [ 167, 169 ], [ 169, 169 ], [ 165, 170 ], [ 165, 168 ], [ 162, 170 ], [ 165, 170 ] ], + "color": "blue" + }, + + "Failures" : { + "label": "Failures", + "data": [ [ 33, 3 ], [ 200, 235 ], [ 164, 245 ], [ 89, 230 ]], + "color": "red" + } +} +latencyVsRequestGrapher.minX +latencyVsRequestGrapher.maxX +latencyVsRequestGrapher.minY +latencyVsRequestGrapher.maxY + +hitsPerSecondGrapher.values +{ + "ServerHitsperSecond":{ + "label": "ServerHitsperSecond", + "data": [ [ 510000, 0 ], [ 525000, 25 ], [ 540000, 38 ], [ 555000, 50 ], [ 570000, 100 ], [ 585000, 135 ], [ 600000, 140 ], [ 615000, 135 ], [ 630000, 132 ], [ 645000, 137 ], [ 660000, 133 ], [ 675000, 133 ], [ 690000, 136 ], [ 705000, 134 ], [ 720000, 130 ], [ 735000, 129 ], [ 750000, 134 ], [ 765000, 135 ], [ 780000, 134 ], [ 795000, 138 ], [ 810000, 139 ], [ 825000, 134 ], [ 840000, 130 ], [ 855000, 132 ], [ 870000, 134 ], [ 885000, 136 ], [ 900000, 10 ] ] + } +} +hitsPerSecondGrapher.minX +hitsPerSecondGrapher.maxX +hitsPerSecondGrapher.minY +hitsPerSecondGrapher.maxY +hitsPerSecondGrapher.granularity + +codesPerSecondGrapher.values +{ + "200" : { + "label": "200", + "data": [ [ 510000, 0 ], [ 525000, 25 ], [ 540000, 38 ], [ 555000, 50 ], [ 570000, 100 ], [ 585000, 135 ], [ 600000, 140 ], [ 615000, 135 ], [ 630000, 132 ], [ 645000, 137 ], [ 660000, 133 ], [ 675000, 133 ], [ 690000, 136 ], [ 705000, 134 ], [ 720000, 130 ], [ 735000, 129 ], [ 750000, 134 ], [ 765000, 135 ], [ 780000, 134 ], [ 795000, 138 ], [ 810000, 139 ], [ 825000, 134 ], [ 840000, 130 ], [ 855000, 132 ], [ 870000, 134 ], [ 885000, 136 ], [ 900000, 10 ] ] }, + "206" : { + "label": "206", + "data": [ [ 525000, 0 ], [ 525000, 5 ], [ 540000, 5 ], [ 555000, 4 ], [ 570000, 6 ], [ 585000, 5 ], [ 600000, 5 ], [ 615000, 4 ], [ 630000, 4 ], [ 645000, 6 ], [ 660000, 5 ], [ 675000, 6 ], [ 690000, 6 ], [ 705000, 5 ], [ 720000, 6 ], [ 735000, 4 ], [ 750000, 5 ], [ 765000, 6 ], [ 780000, 4 ], [ 795000, 5 ], [ 810000, 6 ], [ 825000, 5 ], [ 840000, 4 ], [ 855000, 6 ], [ 870000, 5 ], [ 885000, 5 ], [ 885000, 0 ] ] }, + "Non HTTP response code" : { + "label": "Non HTTP response code", + "data": [ [ 750000, 0 ],[ 750000, 2 ] ] + } +} +codesPerSecondGrapher.minX +codesPerSecondGrapher.maxX +codesPerSecondGrapher.minY +codesPerSecondGrapher.maxY +codesPerSecondGrapher.granularity + +transactionPerSecondGrapher.values +{ + "creerCompte-failure": { + "label": "creerCompte-failure", + "data": [ [ 510000, 0 ], [ 525000, 15 ], [ 540000, 25 ], [ 555000, 28 ], [ 570000, 30 ], [ 585000, 35 ], [ 600000, 40 ], [ 615000, 35 ], [ 630000, 32 ], [ 645000, 37 ], [ 660000, 33 ], [ 675000, 33 ], [ 690000, 36 ], [ 705000, 34 ], [ 720000, 34 ], [ 735000, 33 ], [ 750000, 34 ], [ 765000, 35 ], [ 780000, 34 ], [ 795000, 38 ], [ 810000, 39 ], [ 825000, 34 ], [ 840000, 32 ], [ 855000,32 ], [ 870000, 34 ], [ 885000, 36 ], [ 900000, 10 ] ] + }, + "creerCompte-success" : { + "label": "creerCompte-success", + "data": [ [ 500000, 0 ], [ 525000, 25 ], [ 540000, 25 ], [ 555000, 24 ], [ 570000, 26 ], [ 585000, 25 ], [ 600000, 25 ], [ 615000, 24 ], [ 630000, 24 ], [ 645000, 26 ], [ 660000, 25 ], [ 675000, 26 ], [ 690000, 26 ], [ 705000, 25 ], [ 720000, 26 ], [ 735000, 24 ], [ 750000, 25 ], [ 765000, 26 ], [ 780000, 24 ], [ 795000, 25 ], [ 810000, 26 ], [ 825000, 25 ], [ 840000, 24 ], [ 855000, 26 ], [ 870000, 25 ], [ 885000, 25 ], [ 900000, 0 ] ] + }, + "captcha-success": { + "label": "captcha-success", + "data": [ [ 500000, 0 ], [ 525000, 15 ], [ 540000, 15 ], [ 555000, 14 ], [ 570000, 16 ], [ 585000, 15 ], [ 600000, 15 ], [ 615000, 14 ], [ 630000, 14 ], [ 645000, 16 ], [ 660000, 15 ], [ 675000, 16 ], [ 690000, 16 ], [ 705000, 15 ], [ 720000, 16 ], [ 735000, 14 ], [ 750000, 15 ], [ 765000, 16 ], [ 780000, 14 ], [ 795000, 15 ], [ 810000, 16 ], [ 825000, 15 ], [ 840000, 14 ], [ 855000, 16 ], [ 870000, 15 ], [ 885000, 15 ], [ 905000,0 ] ] + }, + "AccountCreationProcess-failure": { + "label": "AccountCreationProcess-failure", + "data": [ [ 500000, 0 ], [ 525000, 35 ], [ 540000, 35 ], [ 555000, 34 ], [ 570000, 36 ], [ 585000, 35 ], [ 600000, 35 ], [ 615000, 34 ], [ 630000, 34 ], [ 645000, 36 ], [ 660000, 35 ], [ 675000, 36 ], [ 690000, 36 ], [ 705000, 35 ], [ 720000, 36 ], [ 735000, 34 ], [ 750000, 35 ], [ 765000, 36 ], [ 780000, 34 ], [ 795000, 35 ], [ 810000, 36 ], [ 825000, 35 ], [ 840000, 34 ], [ 855000, 36 ], [ 870000, 35 ], [ 885000, 35 ], [ 900000, 0 ] ] + }, + "AccountCreationProcess-success": { + "label": "AccountCreationProcess-success", + "data": [ [ 500000, 0 ], [ 525000, 24 ], [ 540000, 23 ], [ 555000,26 ], [ 570000, 22 ], [ 585000, 23 ], [ 600000, 24 ], [ 615000, 21 ], [ 630000, 25], [ 645000, 22 ], [ 660000, 24 ], [ 675000, 23 ], [ 690000, 25 ], [ 705000, 23 ], [ 720000, 24 ], [ 735000, 23 ], [ 750000,22 ], [ 765000, 26 ], [ 780000, 24 ], [ 795000, 24 ], [ 810000, 22 ], [ 825000, 27 ], [ 840000, 22 ], [ 855000, 23 ], [ 870000, 24 ], [ 885000, 26 ], [ 905000, 0 ] ] + } + ... +} +transactionPerSecondGrapher.minX +transactionPerSecondGrapher.maxX +transactionPerSecondGrapher.minY +transactionPerSecondGrapher.maxY +transactionPerSecondGrapher.granularity diff --git a/bin/report-template/content/css/dashboard.css b/bin/report-template/content/css/dashboard.css new file mode 100644 index 00000000000..8efd1498ce0 --- /dev/null +++ b/bin/report-template/content/css/dashboard.css @@ -0,0 +1,32 @@ +#stats td, th +{ + + width: 9%;//140px; + height: 30px; +} +#stats td +{ + text-align: center; +} +#stats th +{ + font-weight:bold; +} +.blue +{ + background-color: #dff0d8; +} +#errors td, th +{ + text-align: center; + width: 400px; + height: 30px; +} +#errors td +{ + +} +#errors th +{ + font-weight:bold; +} \ No newline at end of file diff --git a/bin/report-template/content/css/jquery-ui.css b/bin/report-template/content/css/jquery-ui.css new file mode 100644 index 00000000000..0c0a2936a2e --- /dev/null +++ b/bin/report-template/content/css/jquery-ui.css @@ -0,0 +1,1225 @@ +/*! jQuery UI - v1.11.4 - 2015-03-11 +* http://jqueryui.com +* Includes: core.css, accordion.css, autocomplete.css, button.css, datepicker.css, dialog.css, draggable.css, menu.css, progressbar.css, resizable.css, selectable.css, selectmenu.css, slider.css, sortable.css, spinner.css, tabs.css, tooltip.css, theme.css +* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px +* Copyright 2015 jQuery Foundation and other contributors; Licensed MIT */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-clearfix { + min-height: 0; /* support: IE7 */ +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; +} + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + min-height: 0; /* support: IE7 */ + font-size: 100%; +} +.ui-accordion .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-icons .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-header .ui-accordion-header-icon { + position: absolute; + left: .5em; + top: 50%; + margin-top: -8px; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-button { + display: inline-block; + position: relative; + padding: 0; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + overflow: visible; /* removes extra width in IE */ +} +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2.2em; +} +/* button elements seem to need a little more width */ +button.ui-button-icon-only { + width: 2.4em; +} +.ui-button-icons-only { + width: 3.4em; +} +button.ui-button-icons-only { + width: 3.7em; +} + +/* button text element */ +.ui-button .ui-button-text { + display: block; + line-height: normal; +} +.ui-button-text-only .ui-button-text { + padding: .4em 1em; +} +.ui-button-icon-only .ui-button-text, +.ui-button-icons-only .ui-button-text { + padding: .4em; + text-indent: -9999999px; +} +.ui-button-text-icon-primary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 1em .4em 2.1em; +} +.ui-button-text-icon-secondary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 2.1em .4em 1em; +} +.ui-button-text-icons .ui-button-text { + padding-left: 2.1em; + padding-right: 2.1em; +} +/* no icon support for input elements, provide padding by default */ +input.ui-button { + padding: .4em 1em; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon, +.ui-button-text-icon-primary .ui-icon, +.ui-button-text-icon-secondary .ui-icon, +.ui-button-text-icons .ui-icon, +.ui-button-icons-only .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; +} +.ui-button-icon-only .ui-icon { + left: 50%; + margin-left: -8px; +} +.ui-button-text-icon-primary .ui-button-icon-primary, +.ui-button-text-icons .ui-button-icon-primary, +.ui-button-icons-only .ui-button-icon-primary { + left: .5em; +} +.ui-button-text-icon-secondary .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary, +.ui-button-icons-only .ui-button-icon-secondary { + right: .5em; +} + +/* button sets */ +.ui-buttonset { + margin-right: 7px; +} +.ui-buttonset .ui-button { + margin-left: 0; + margin-right: -.3em; +} + +/* workarounds */ +/* reset extra padding in Firefox, see h5bp.com/l */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} +.ui-dialog { + overflow: hidden; + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-se { + width: 12px; + height: 12px; + right: -5px; + bottom: -5px; + background-position: 16px 16px; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: none; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + position: relative; + margin: 0; + padding: 3px 1em 3px .4em; + cursor: pointer; + min-height: 0; /* support: IE7 */ + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); + height: 100%; + filter: alpha(opacity=25); /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + /* Support: IE7 */ + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-button { + display: inline-block; + overflow: hidden; + position: relative; + text-decoration: none; + cursor: pointer; +} +.ui-selectmenu-button span.ui-icon { + right: 0.5em; + left: auto; + margin-top: -8px; + position: absolute; + top: 50%; +} +.ui-selectmenu-button span.ui-selectmenu-text { + text-align: left; + padding: 0.4em 2.1em 0.4em 1em; + display: block; + line-height: 1.4; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; + -ms-touch-action: none; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* support: IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 22px; +} +.ui-spinner-button { + width: 16px; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top: none; + border-bottom: none; + border-right: none; +} +/* vertically center icon */ +.ui-spinner .ui-icon { + position: absolute; + margin-top: -8px; + top: 50%; + left: 0; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} + +/* TR overrides */ +.ui-spinner .ui-icon-triangle-1-s { + /* need to fix icons sprite */ + background-position: -65px -16px; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; + -webkit-box-shadow: 0 0 5px #aaa; + box-shadow: 0 0 5px #aaa; +} +body .ui-tooltip { + border-width: 2px; +} + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1.1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1em; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #eeeeee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #e78f08; + background: #f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x; + color: #ffffff; + font-weight: bold; +} +.ui-widget-header a { + color: #ffffff; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #cccccc; + background: #f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x; + font-weight: bold; + color: #1c94c4; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + color: #1c94c4; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #fbcb09; + background: #fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x; + font-weight: bold; + color: #c77405; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited { + color: #c77405; + text-decoration: none; +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #fbd850; + background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; + font-weight: bold; + color: #eb8f00; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #eb8f00; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #fed22f; + background: #ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x; + color: #363636; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat; + color: #ffffff; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #ffffff; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #ffffff; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-default .ui-icon { + background-image: url("images/ui-icons_ef8c08_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon { + background-image: url("images/ui-icons_ef8c08_256x240.png"); +} +.ui-state-active .ui-icon { + background-image: url("images/ui-icons_ef8c08_256x240.png"); +} +.ui-state-highlight .ui-icon { + background-image: url("images/ui-icons_228ef1_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_ffd27a_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 4px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #666666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat; + opacity: .5; + filter: Alpha(Opacity=50); /* support: IE8 */ +} +.ui-widget-shadow { + margin: -5px 0 0 -5px; + padding: 5px; + background: #000000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x; + opacity: .2; + filter: Alpha(Opacity=20); /* support: IE8 */ + border-radius: 5px; +} diff --git a/bin/report-template/content/css/jquery-ui.structure.css b/bin/report-template/content/css/jquery-ui.structure.css new file mode 100644 index 00000000000..270264a51db --- /dev/null +++ b/bin/report-template/content/css/jquery-ui.structure.css @@ -0,0 +1,833 @@ +/*! + * jQuery UI CSS Framework 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-clearfix { + min-height: 0; /* support: IE7 */ +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; +} + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + min-height: 0; /* support: IE7 */ + font-size: 100%; +} +.ui-accordion .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-icons .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-header .ui-accordion-header-icon { + position: absolute; + left: .5em; + top: 50%; + margin-top: -8px; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} +.ui-button { + display: inline-block; + position: relative; + padding: 0; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + overflow: visible; /* removes extra width in IE */ +} +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2.2em; +} +/* button elements seem to need a little more width */ +button.ui-button-icon-only { + width: 2.4em; +} +.ui-button-icons-only { + width: 3.4em; +} +button.ui-button-icons-only { + width: 3.7em; +} + +/* button text element */ +.ui-button .ui-button-text { + display: block; + line-height: normal; +} +.ui-button-text-only .ui-button-text { + padding: .4em 1em; +} +.ui-button-icon-only .ui-button-text, +.ui-button-icons-only .ui-button-text { + padding: .4em; + text-indent: -9999999px; +} +.ui-button-text-icon-primary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 1em .4em 2.1em; +} +.ui-button-text-icon-secondary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 2.1em .4em 1em; +} +.ui-button-text-icons .ui-button-text { + padding-left: 2.1em; + padding-right: 2.1em; +} +/* no icon support for input elements, provide padding by default */ +input.ui-button { + padding: .4em 1em; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon, +.ui-button-text-icon-primary .ui-icon, +.ui-button-text-icon-secondary .ui-icon, +.ui-button-text-icons .ui-icon, +.ui-button-icons-only .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; +} +.ui-button-icon-only .ui-icon { + left: 50%; + margin-left: -8px; +} +.ui-button-text-icon-primary .ui-button-icon-primary, +.ui-button-text-icons .ui-button-icon-primary, +.ui-button-icons-only .ui-button-icon-primary { + left: .5em; +} +.ui-button-text-icon-secondary .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary, +.ui-button-icons-only .ui-button-icon-secondary { + right: .5em; +} + +/* button sets */ +.ui-buttonset { + margin-right: 7px; +} +.ui-buttonset .ui-button { + margin-left: 0; + margin-right: -.3em; +} + +/* workarounds */ +/* reset extra padding in Firefox, see h5bp.com/l */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} +.ui-dialog { + overflow: hidden; + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-se { + width: 12px; + height: 12px; + right: -5px; + bottom: -5px; + background-position: 16px 16px; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-menu { + list-style: none; + padding: 0; + margin: 0; + display: block; + outline: none; +} +.ui-menu .ui-menu { + position: absolute; +} +.ui-menu .ui-menu-item { + position: relative; + margin: 0; + padding: 3px 1em 3px .4em; + cursor: pointer; + min-height: 0; /* support: IE7 */ + /* support: IE10, see #8844 */ + list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"); +} +.ui-menu .ui-menu-divider { + margin: 5px 0; + height: 0; + font-size: 0; + line-height: 0; + border-width: 1px 0 0 0; +} +.ui-menu .ui-state-focus, +.ui-menu .ui-state-active { + margin: -1px; +} + +/* icon support */ +.ui-menu-icons { + position: relative; +} +.ui-menu-icons .ui-menu-item { + padding-left: 2em; +} + +/* left-aligned */ +.ui-menu .ui-icon { + position: absolute; + top: 0; + bottom: 0; + left: .2em; + margin: auto 0; +} + +/* right-aligned */ +.ui-menu .ui-menu-icon { + left: auto; + right: 0; +} +.ui-progressbar { + height: 2em; + text-align: left; + overflow: hidden; +} +.ui-progressbar .ui-progressbar-value { + margin: -1px; + height: 100%; +} +.ui-progressbar .ui-progressbar-overlay { + background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw=="); + height: 100%; + filter: alpha(opacity=25); /* support: IE8 */ + opacity: 0.25; +} +.ui-progressbar-indeterminate .ui-progressbar-value { + background-image: none; +} +.ui-resizable { + position: relative; +} +.ui-resizable-handle { + position: absolute; + font-size: 0.1px; + display: block; + -ms-touch-action: none; + touch-action: none; +} +.ui-resizable-disabled .ui-resizable-handle, +.ui-resizable-autohide .ui-resizable-handle { + display: none; +} +.ui-resizable-n { + cursor: n-resize; + height: 7px; + width: 100%; + top: -5px; + left: 0; +} +.ui-resizable-s { + cursor: s-resize; + height: 7px; + width: 100%; + bottom: -5px; + left: 0; +} +.ui-resizable-e { + cursor: e-resize; + width: 7px; + right: -5px; + top: 0; + height: 100%; +} +.ui-resizable-w { + cursor: w-resize; + width: 7px; + left: -5px; + top: 0; + height: 100%; +} +.ui-resizable-se { + cursor: se-resize; + width: 12px; + height: 12px; + right: 1px; + bottom: 1px; +} +.ui-resizable-sw { + cursor: sw-resize; + width: 9px; + height: 9px; + left: -5px; + bottom: -5px; +} +.ui-resizable-nw { + cursor: nw-resize; + width: 9px; + height: 9px; + left: -5px; + top: -5px; +} +.ui-resizable-ne { + cursor: ne-resize; + width: 9px; + height: 9px; + right: -5px; + top: -5px; +} +.ui-selectable { + -ms-touch-action: none; + touch-action: none; +} +.ui-selectable-helper { + position: absolute; + z-index: 100; + border: 1px dotted black; +} +.ui-selectmenu-menu { + padding: 0; + margin: 0; + position: absolute; + top: 0; + left: 0; + display: none; +} +.ui-selectmenu-menu .ui-menu { + overflow: auto; + /* Support: IE7 */ + overflow-x: hidden; + padding-bottom: 1px; +} +.ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup { + font-size: 1em; + font-weight: bold; + line-height: 1.5; + padding: 2px 0.4em; + margin: 0.5em 0 0 0; + height: auto; + border: 0; +} +.ui-selectmenu-open { + display: block; +} +.ui-selectmenu-button { + display: inline-block; + overflow: hidden; + position: relative; + text-decoration: none; + cursor: pointer; +} +.ui-selectmenu-button span.ui-icon { + right: 0.5em; + left: auto; + margin-top: -8px; + position: absolute; + top: 50%; +} +.ui-selectmenu-button span.ui-selectmenu-text { + text-align: left; + padding: 0.4em 2.1em 0.4em 1em; + display: block; + line-height: 1.4; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.ui-slider { + position: relative; + text-align: left; +} +.ui-slider .ui-slider-handle { + position: absolute; + z-index: 2; + width: 1.2em; + height: 1.2em; + cursor: default; + -ms-touch-action: none; + touch-action: none; +} +.ui-slider .ui-slider-range { + position: absolute; + z-index: 1; + font-size: .7em; + display: block; + border: 0; + background-position: 0 0; +} + +/* support: IE8 - See #6727 */ +.ui-slider.ui-state-disabled .ui-slider-handle, +.ui-slider.ui-state-disabled .ui-slider-range { + filter: inherit; +} + +.ui-slider-horizontal { + height: .8em; +} +.ui-slider-horizontal .ui-slider-handle { + top: -.3em; + margin-left: -.6em; +} +.ui-slider-horizontal .ui-slider-range { + top: 0; + height: 100%; +} +.ui-slider-horizontal .ui-slider-range-min { + left: 0; +} +.ui-slider-horizontal .ui-slider-range-max { + right: 0; +} + +.ui-slider-vertical { + width: .8em; + height: 100px; +} +.ui-slider-vertical .ui-slider-handle { + left: -.3em; + margin-left: 0; + margin-bottom: -.6em; +} +.ui-slider-vertical .ui-slider-range { + left: 0; + width: 100%; +} +.ui-slider-vertical .ui-slider-range-min { + bottom: 0; +} +.ui-slider-vertical .ui-slider-range-max { + top: 0; +} +.ui-sortable-handle { + -ms-touch-action: none; + touch-action: none; +} +.ui-spinner { + position: relative; + display: inline-block; + overflow: hidden; + padding: 0; + vertical-align: middle; +} +.ui-spinner-input { + border: none; + background: none; + color: inherit; + padding: 0; + margin: .2em 0; + vertical-align: middle; + margin-left: .4em; + margin-right: 22px; +} +.ui-spinner-button { + width: 16px; + height: 50%; + font-size: .5em; + padding: 0; + margin: 0; + text-align: center; + position: absolute; + cursor: default; + display: block; + overflow: hidden; + right: 0; +} +/* more specificity required here to override default borders */ +.ui-spinner a.ui-spinner-button { + border-top: none; + border-bottom: none; + border-right: none; +} +/* vertically center icon */ +.ui-spinner .ui-icon { + position: absolute; + margin-top: -8px; + top: 50%; + left: 0; +} +.ui-spinner-up { + top: 0; +} +.ui-spinner-down { + bottom: 0; +} + +/* TR overrides */ +.ui-spinner .ui-icon-triangle-1-s { + /* need to fix icons sprite */ + background-position: -65px -16px; +} +.ui-tabs { + position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ + padding: .2em; +} +.ui-tabs .ui-tabs-nav { + margin: 0; + padding: .2em .2em 0; +} +.ui-tabs .ui-tabs-nav li { + list-style: none; + float: left; + position: relative; + top: 0; + margin: 1px .2em 0 0; + border-bottom-width: 0; + padding: 0; + white-space: nowrap; +} +.ui-tabs .ui-tabs-nav .ui-tabs-anchor { + float: left; + padding: .5em 1em; + text-decoration: none; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active { + margin-bottom: -1px; + padding-bottom: 1px; +} +.ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor, +.ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor { + cursor: text; +} +.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor { + cursor: pointer; +} +.ui-tabs .ui-tabs-panel { + display: block; + border-width: 0; + padding: 1em 1.4em; + background: none; +} +.ui-tooltip { + padding: 8px; + position: absolute; + z-index: 9999; + max-width: 300px; + -webkit-box-shadow: 0 0 5px #aaa; + box-shadow: 0 0 5px #aaa; +} +body .ui-tooltip { + border-width: 2px; +} diff --git a/bin/report-template/content/css/jquery-ui.theme.css b/bin/report-template/content/css/jquery-ui.theme.css new file mode 100644 index 00000000000..c7c20284421 --- /dev/null +++ b/bin/report-template/content/css/jquery-ui.theme.css @@ -0,0 +1,410 @@ +/*! + * jQuery UI CSS Framework 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CTahoma%2CVerdana%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=f6a828&bgTextureHeader=gloss_wave&bgImgOpacityHeader=35&borderColorHeader=e78f08&fcHeader=ffffff&iconColorHeader=ffffff&bgColorContent=eeeeee&bgTextureContent=highlight_soft&bgImgOpacityContent=100&borderColorContent=dddddd&fcContent=333333&iconColorContent=222222&bgColorDefault=f6f6f6&bgTextureDefault=glass&bgImgOpacityDefault=100&borderColorDefault=cccccc&fcDefault=1c94c4&iconColorDefault=ef8c08&bgColorHover=fdf5ce&bgTextureHover=glass&bgImgOpacityHover=100&borderColorHover=fbcb09&fcHover=c77405&iconColorHover=ef8c08&bgColorActive=ffffff&bgTextureActive=glass&bgImgOpacityActive=65&borderColorActive=fbd850&fcActive=eb8f00&iconColorActive=ef8c08&bgColorHighlight=ffe45c&bgTextureHighlight=highlight_soft&bgImgOpacityHighlight=75&borderColorHighlight=fed22f&fcHighlight=363636&iconColorHighlight=228ef1&bgColorError=b81900&bgTextureError=diagonals_thick&bgImgOpacityError=18&borderColorError=cd0a0a&fcError=ffffff&iconColorError=ffd27a&bgColorOverlay=666666&bgTextureOverlay=diagonals_thick&bgImgOpacityOverlay=20&opacityOverlay=50&bgColorShadow=000000&bgTextureShadow=flat&bgImgOpacityShadow=10&opacityShadow=20&thicknessShadow=5px&offsetTopShadow=-5px&offsetLeftShadow=-5px&cornerRadiusShadow=5px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1.1em; +} +.ui-widget .ui-widget { + font-size: 1em; +} +.ui-widget input, +.ui-widget select, +.ui-widget textarea, +.ui-widget button { + font-family: Trebuchet MS,Tahoma,Verdana,Arial,sans-serif; + font-size: 1em; +} +.ui-widget-content { + border: 1px solid #dddddd; + background: #eeeeee url("images/ui-bg_highlight-soft_100_eeeeee_1x100.png") 50% top repeat-x; + color: #333333; +} +.ui-widget-content a { + color: #333333; +} +.ui-widget-header { + border: 1px solid #e78f08; + background: #f6a828 url("images/ui-bg_gloss-wave_35_f6a828_500x100.png") 50% 50% repeat-x; + color: #ffffff; + font-weight: bold; +} +.ui-widget-header a { + color: #ffffff; +} + +/* Interaction states +----------------------------------*/ +.ui-state-default, +.ui-widget-content .ui-state-default, +.ui-widget-header .ui-state-default { + border: 1px solid #cccccc; + background: #f6f6f6 url("images/ui-bg_glass_100_f6f6f6_1x400.png") 50% 50% repeat-x; + font-weight: bold; + color: #1c94c4; +} +.ui-state-default a, +.ui-state-default a:link, +.ui-state-default a:visited { + color: #1c94c4; + text-decoration: none; +} +.ui-state-hover, +.ui-widget-content .ui-state-hover, +.ui-widget-header .ui-state-hover, +.ui-state-focus, +.ui-widget-content .ui-state-focus, +.ui-widget-header .ui-state-focus { + border: 1px solid #fbcb09; + background: #fdf5ce url("images/ui-bg_glass_100_fdf5ce_1x400.png") 50% 50% repeat-x; + font-weight: bold; + color: #c77405; +} +.ui-state-hover a, +.ui-state-hover a:hover, +.ui-state-hover a:link, +.ui-state-hover a:visited, +.ui-state-focus a, +.ui-state-focus a:hover, +.ui-state-focus a:link, +.ui-state-focus a:visited { + color: #c77405; + text-decoration: none; +} +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active { + border: 1px solid #fbd850; + background: #ffffff url("images/ui-bg_glass_65_ffffff_1x400.png") 50% 50% repeat-x; + font-weight: bold; + color: #eb8f00; +} +.ui-state-active a, +.ui-state-active a:link, +.ui-state-active a:visited { + color: #eb8f00; + text-decoration: none; +} + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, +.ui-widget-content .ui-state-highlight, +.ui-widget-header .ui-state-highlight { + border: 1px solid #fed22f; + background: #ffe45c url("images/ui-bg_highlight-soft_75_ffe45c_1x100.png") 50% top repeat-x; + color: #363636; +} +.ui-state-highlight a, +.ui-widget-content .ui-state-highlight a, +.ui-widget-header .ui-state-highlight a { + color: #363636; +} +.ui-state-error, +.ui-widget-content .ui-state-error, +.ui-widget-header .ui-state-error { + border: 1px solid #cd0a0a; + background: #b81900 url("images/ui-bg_diagonals-thick_18_b81900_40x40.png") 50% 50% repeat; + color: #ffffff; +} +.ui-state-error a, +.ui-widget-content .ui-state-error a, +.ui-widget-header .ui-state-error a { + color: #ffffff; +} +.ui-state-error-text, +.ui-widget-content .ui-state-error-text, +.ui-widget-header .ui-state-error-text { + color: #ffffff; +} +.ui-priority-primary, +.ui-widget-content .ui-priority-primary, +.ui-widget-header .ui-priority-primary { + font-weight: bold; +} +.ui-priority-secondary, +.ui-widget-content .ui-priority-secondary, +.ui-widget-header .ui-priority-secondary { + opacity: .7; + filter:Alpha(Opacity=70); /* support: IE8 */ + font-weight: normal; +} +.ui-state-disabled, +.ui-widget-content .ui-state-disabled, +.ui-widget-header .ui-state-disabled { + opacity: .35; + filter:Alpha(Opacity=35); /* support: IE8 */ + background-image: none; +} +.ui-state-disabled .ui-icon { + filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */ +} + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + width: 16px; + height: 16px; +} +.ui-icon, +.ui-widget-content .ui-icon { + background-image: url("images/ui-icons_222222_256x240.png"); +} +.ui-widget-header .ui-icon { + background-image: url("images/ui-icons_ffffff_256x240.png"); +} +.ui-state-default .ui-icon { + background-image: url("images/ui-icons_ef8c08_256x240.png"); +} +.ui-state-hover .ui-icon, +.ui-state-focus .ui-icon { + background-image: url("images/ui-icons_ef8c08_256x240.png"); +} +.ui-state-active .ui-icon { + background-image: url("images/ui-icons_ef8c08_256x240.png"); +} +.ui-state-highlight .ui-icon { + background-image: url("images/ui-icons_228ef1_256x240.png"); +} +.ui-state-error .ui-icon, +.ui-state-error-text .ui-icon { + background-image: url("images/ui-icons_ffd27a_256x240.png"); +} + +/* positioning */ +.ui-icon-blank { background-position: 16px 16px; } +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-on { background-position: -96px -144px; } +.ui-icon-radio-off { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-all, +.ui-corner-top, +.ui-corner-left, +.ui-corner-tl { + border-top-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-top, +.ui-corner-right, +.ui-corner-tr { + border-top-right-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-left, +.ui-corner-bl { + border-bottom-left-radius: 4px; +} +.ui-corner-all, +.ui-corner-bottom, +.ui-corner-right, +.ui-corner-br { + border-bottom-right-radius: 4px; +} + +/* Overlays */ +.ui-widget-overlay { + background: #666666 url("images/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat; + opacity: .5; + filter: Alpha(Opacity=50); /* support: IE8 */ +} +.ui-widget-shadow { + margin: -5px 0 0 -5px; + padding: 5px; + background: #000000 url("images/ui-bg_flat_10_000000_40x100.png") 50% 50% repeat-x; + opacity: .2; + filter: Alpha(Opacity=20); /* support: IE8 */ + border-radius: 5px; +} diff --git a/bin/report-template/content/css/legends.css b/bin/report-template/content/css/legends.css new file mode 100644 index 00000000000..0bd27f760cb --- /dev/null +++ b/bin/report-template/content/css/legends.css @@ -0,0 +1,46 @@ +.legend { + margin-left: -40px; + font-size: 12px; + display: inline; + font-family: 'Open Sans'; + font-weight: bold; +} + +.panel-footer +{ + + +} + +.subLegend +{ + +} + +.legend li > div { + display: inline-block; + margin-right: 3px; + margin-left: 5px; +} + +.legend li label { + margin-left: 1px; + margin-right: 10px; + color: black; + font-family: Open sans; + /*width: 200px;*/ +} +li +{ + list-style-type:none; + display: inline-block; +} + +.nav-third-level +{ + font-size: 12px; +} + +.legend-disabled { + border-color: #818181 !important; +} \ No newline at end of file diff --git a/bin/report-template/content/js/curvedLines.js b/bin/report-template/content/js/curvedLines.js new file mode 100644 index 00000000000..c44eddb17e2 --- /dev/null +++ b/bin/report-template/content/js/curvedLines.js @@ -0,0 +1,482 @@ +/* The MIT License + + Copyright (c) 2011 by Michael Zinsmaier and nergal.dev + Copyright (c) 2012 by Thomas Ritou + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +/* +____________________________________________________ + + what it is: + ____________________________________________________ + + curvedLines is a plugin for flot, that tries to display lines in a smoother way. + This is achieved through adding of more data points. The plugin is a data processor and can thus be used + in combination with standard line / point rendering options. + + => 1) with large data sets you may get trouble + => 2) if you want to display the points too, you have to plot them as 2nd data series over the lines + => 3) consecutive x data points are not allowed to have the same value + + Feel free to further improve the code + + ____________________________________________________ + + how to use it: + ____________________________________________________ + + var d1 = [[5,5],[7,3],[9,12]]; + + var options = { series: { curvedLines: { active: true }}}; + + $.plot($("#placeholder"), [{data: d1, lines: { show: true}, curvedLines: {apply: true}}], options); + + _____________________________________________________ + + options: + _____________________________________________________ + + active: bool true => plugin can be used + apply: bool true => series will be drawn as curved line + monotonicFit: bool true => uses monotone cubic interpolation (preserve monotonicity) + tension: int defines the tension parameter of the hermite spline interpolation (no effect if monotonicFit is set) + nrSplinePoints: int defines the number of sample points (of the spline) in between two consecutive points + + deprecated options from flot prior to 1.0.0: + ------------------------------------------------ + legacyOverride bool true => use old default + OR + legacyOverride optionArray + { + fit: bool true => forces the max,mins of the curve to be on the datapoints + curvePointFactor int defines how many "virtual" points are used per "real" data point to + emulate the curvedLines (points total = real points * curvePointFactor) + fitPointDist: int defines the x axis distance of the additional two points that are used + } to enforce the min max condition. + */ + +/* + * v0.1 initial commit + * v0.15 negative values should work now (outcommented a negative -> 0 hook hope it does no harm) + * v0.2 added fill option (thanks to monemihir) and multi axis support (thanks to soewono effendi) + * v0.3 improved saddle handling and added basic handling of Dates + * v0.4 rewritten fill option (thomas ritou) mostly from original flot code (now fill between points rather than to graph bottom), corrected fill Opacity bug + * v0.5 rewritten instead of implementing a own draw function CurvedLines is now based on the processDatapoints flot hook (credits go to thomas ritou). + * This change breakes existing code however CurvedLines are now just many tiny straight lines to flot and therefore all flot lines options (like gradient fill, + * shadow) are now supported out of the box + * v0.6 flot 0.8 compatibility and some bug fixes + * v0.6.x changed versioning schema + * + * v1.0.0 API Break marked existing implementation/options as deprecated + * v1.1.0 added the new curved line calculations based on hermite splines + * v1.1.1 added a rough parameter check to make sure the new options are used + */ + +(function($) { + + var options = { + series : { + curvedLines : { + active : false, + apply : false, + monotonicFit : false, + tension : 0.5, + nrSplinePoints : 20, + legacyOverride : undefined + } + } + }; + + function init(plot) { + + plot.hooks.processOptions.push(processOptions); + + //if the plugin is active register processDatapoints method + function processOptions(plot, options) { + if (options.series.curvedLines.active) { + plot.hooks.processDatapoints.unshift(processDatapoints); + } + } + + //only if the plugin is active + function processDatapoints(plot, series, datapoints) { + var nrPoints = datapoints.points.length / datapoints.pointsize; + var EPSILON = 0.005; + + //detects missplaced legacy parameters (prior v1.x.x) in the options object + //this can happen if somebody upgrades to v1.x.x without adjusting the parameters or uses old examples + var invalidLegacyOptions = hasInvalidParameters(series.curvedLines); + + if (!invalidLegacyOptions && series.curvedLines.apply == true && series.originSeries === undefined && nrPoints > (1 + EPSILON)) { + if (series.lines.fill) { + + var pointsTop = calculateCurvePoints(datapoints, series.curvedLines, 1); + var pointsBottom = calculateCurvePoints(datapoints, series.curvedLines, 2); + //flot makes sure for us that we've got a second y point if fill is true ! + + //Merge top and bottom curve + datapoints.pointsize = 3; + datapoints.points = []; + var j = 0; + var k = 0; + var i = 0; + var ps = 2; + while (i < pointsTop.length || j < pointsBottom.length) { + if (pointsTop[i] == pointsBottom[j]) { + datapoints.points[k] = pointsTop[i]; + datapoints.points[k + 1] = pointsTop[i + 1]; + datapoints.points[k + 2] = pointsBottom[j + 1]; + j += ps; + i += ps; + + } else if (pointsTop[i] < pointsBottom[j]) { + datapoints.points[k] = pointsTop[i]; + datapoints.points[k + 1] = pointsTop[i + 1]; + datapoints.points[k + 2] = k > 0 ? datapoints.points[k - 1] : null; + i += ps; + } else { + datapoints.points[k] = pointsBottom[j]; + datapoints.points[k + 1] = k > 1 ? datapoints.points[k - 2] : null; + datapoints.points[k + 2] = pointsBottom[j + 1]; + j += ps; + } + k += 3; + } + } else if (series.lines.lineWidth > 0) { + datapoints.points = calculateCurvePoints(datapoints, series.curvedLines, 1); + datapoints.pointsize = 2; + } + } + } + + function calculateCurvePoints(datapoints, curvedLinesOptions, yPos) { + if ( typeof curvedLinesOptions.legacyOverride != 'undefined' && curvedLinesOptions.legacyOverride != false) { + var defaultOptions = { + fit : false, + curvePointFactor : 20, + fitPointDist : undefined + }; + var legacyOptions = jQuery.extend(defaultOptions, curvedLinesOptions.legacyOverride); + return calculateLegacyCurvePoints(datapoints, legacyOptions, yPos); + } + + return calculateSplineCurvePoints(datapoints, curvedLinesOptions, yPos); + } + + function calculateSplineCurvePoints(datapoints, curvedLinesOptions, yPos) { + var points = datapoints.points; + var ps = datapoints.pointsize; + + //create interpolant fuction + var splines = createHermiteSplines(datapoints, curvedLinesOptions, yPos); + var result = []; + + //sample the function + // (the result is intependent from the input data => + // it is ok to alter the input after this method) + var j = 0; + for (var i = 0; i < points.length - ps; i += ps) { + var curX = i; + var curY = i + yPos; + + var xStart = points[curX]; + var xEnd = points[curX + ps]; + var xStep = (xEnd - xStart) / Number(curvedLinesOptions.nrSplinePoints); + + //add point + result.push(points[curX]); + result.push(points[curY]); + + //add curve point + for (var x = (xStart += xStep); x < xEnd; x += xStep) { + result.push(x); + result.push(splines[j](x)); + } + + j++; + } + + //add last point + result.push(points[points.length - ps]); + result.push(points[points.length - ps + yPos]); + + return result; + } + + + + // Creates an array of splines, one for each segment of the original curve. Algorithm based on the wikipedia articles: + // + // http://de.wikipedia.org/w/index.php?title=Kubisch_Hermitescher_Spline&oldid=130168003 and + // http://en.wikipedia.org/w/index.php?title=Monotone_cubic_interpolation&oldid=622341725 and the description of Fritsch-Carlson from + // http://math.stackexchange.com/questions/45218/implementation-of-monotone-cubic-interpolation + // for a detailed description see https://github.com/MichaelZinsmaier/CurvedLines/docu + function createHermiteSplines(datapoints, curvedLinesOptions, yPos) { + var points = datapoints.points; + var ps = datapoints.pointsize; + + // preparation get length (x_{k+1} - x_k) and slope s=(p_{k+1} - p_k) / (x_{k+1} - x_k) of the segments + var segmentLengths = []; + var segmentSlopes = []; + + for (var i = 0; i < points.length - ps; i += ps) { + var curX = i; + var curY = i + yPos; + var dx = points[curX + ps] - points[curX]; + var dy = points[curY + ps] - points[curY]; + + segmentLengths.push(dx); + segmentSlopes.push(dy / dx); + } + + //get the values for the desired gradients m_k for all points k + //depending on the used method the formula is different + var gradients = [segmentSlopes[0]]; + if (curvedLinesOptions.monotonicFit) { + // Fritsch Carlson + for (var i = 1; i < segmentLengths.length; i++) { + var slope = segmentSlopes[i]; + var prev_slope = segmentSlopes[i - 1]; + if (slope * prev_slope <= 0) { // sign(prev_slope) != sign(slpe) + gradients.push(0); + } else { + var length = segmentLengths[i]; + var prev_length = segmentLengths[i - 1]; + var common = length + prev_length; + //m = 3 (prev_length + length) / ((2 length + prev_length) / prev_slope + (length + 2 prev_length) / slope) + gradients.push(3 * common / ((common + length) / prev_slope + (common + prev_length) / slope)); + } + } + } else { + // Cardinal spline with t € [0,1] + // Catmull-Rom for t = 0 + for (var i = ps; i < points.length - ps; i += ps) { + var curX = i; + var curY = i + yPos; + gradients.push(Number(curvedLinesOptions.tension) * (points[curY + ps] - points[curY - ps]) / (points[curX + ps] - points[curX - ps])); + } + } + gradients.push(segmentSlopes[segmentSlopes.length - 1]); + + //get the two major coefficients (c'_{oef1} and c'_{oef2}) for each segment spline + var coefs1 = []; + var coefs2 = []; + for (i = 0; i < segmentLengths.length; i++) { + var m_k = gradients[i]; + var m_k_plus = gradients[i + 1]; + var slope = segmentSlopes[i]; + var invLength = 1 / segmentLengths[i]; + var common = m_k + m_k_plus - slope - slope; + + coefs1.push(common * invLength * invLength); + coefs2.push((slope - common - m_k) * invLength); + } + + //create functions with from the coefficients and capture the parameters + var ret = []; + for (var i = 0; i < segmentLengths.length; i ++) { + var spline = function (x_k, coef1, coef2, coef3, coef4) { + // spline for a segment + return function (x) { + var diff = x - x_k; + var diffSq = diff * diff; + return coef1 * diff * diffSq + coef2 * diffSq + coef3 * diff + coef4; + }; + }; + + ret.push(spline(points[i * ps], coefs1[i], coefs2[i], gradients[i], points[i * ps + yPos])); + } + + return ret; + }; + + //no real idea whats going on here code mainly from https://code.google.com/p/flot/issues/detail?id=226 + //if fit option is selected additional datapoints get inserted before the curve calculations in nergal.dev s code. + function calculateLegacyCurvePoints(datapoints, curvedLinesOptions, yPos) { + + var points = datapoints.points; + var ps = datapoints.pointsize; + var num = Number(curvedLinesOptions.curvePointFactor) * (points.length / ps); + + var xdata = new Array; + var ydata = new Array; + + var curX = -1; + var curY = -1; + var j = 0; + + if (curvedLinesOptions.fit) { + //insert a point before and after the "real" data point to force the line + //to have a max,min at the data point. + + var fpDist; + if ( typeof curvedLinesOptions.fitPointDist == 'undefined') { + //estimate it + var minX = points[0]; + var maxX = points[points.length - ps]; + fpDist = (maxX - minX) / (500 * 100); + //x range / (estimated pixel length of placeholder * factor) + } else { + //use user defined value + fpDist = Number(curvedLinesOptions.fitPointDist); + } + + for (var i = 0; i < points.length; i += ps) { + + var frontX; + var backX; + curX = i; + curY = i + yPos; + + //add point X s + frontX = points[curX] - fpDist; + backX = points[curX] + fpDist; + + var factor = 2; + while (frontX == points[curX] || backX == points[curX]) { + //inside the ulp + frontX = points[curX] - (fpDist * factor); + backX = points[curX] + (fpDist * factor); + factor++; + } + + //add curve points + xdata[j] = frontX; + ydata[j] = points[curY]; + j++; + + xdata[j] = points[curX]; + ydata[j] = points[curY]; + j++; + + xdata[j] = backX; + ydata[j] = points[curY]; + j++; + } + } else { + //just use the datapoints + for (var i = 0; i < points.length; i += ps) { + curX = i; + curY = i + yPos; + + xdata[j] = points[curX]; + ydata[j] = points[curY]; + j++; + } + } + + var n = xdata.length; + + var y2 = new Array(); + var delta = new Array(); + y2[0] = 0; + y2[n - 1] = 0; + delta[0] = 0; + + for (var i = 1; i < n - 1; ++i) { + var d = (xdata[i + 1] - xdata[i - 1]); + if (d == 0) { + //point before current point and after current point need some space in between + return []; + } + + var s = (xdata[i] - xdata[i - 1]) / d; + var p = s * y2[i - 1] + 2; + y2[i] = (s - 1) / p; + delta[i] = (ydata[i + 1] - ydata[i]) / (xdata[i + 1] - xdata[i]) - (ydata[i] - ydata[i - 1]) / (xdata[i] - xdata[i - 1]); + delta[i] = (6 * delta[i] / (xdata[i + 1] - xdata[i - 1]) - s * delta[i - 1]) / p; + } + + for (var j = n - 2; j >= 0; --j) { + y2[j] = y2[j] * y2[j + 1] + delta[j]; + } + + // xmax - xmin / #points + var step = (xdata[n - 1] - xdata[0]) / (num - 1); + + var xnew = new Array; + var ynew = new Array; + var result = new Array; + + xnew[0] = xdata[0]; + ynew[0] = ydata[0]; + + result.push(xnew[0]); + result.push(ynew[0]); + + for ( j = 1; j < num; ++j) { + //new x point (sampling point for the created curve) + xnew[j] = xnew[0] + j * step; + + var max = n - 1; + var min = 0; + + while (max - min > 1) { + var k = Math.round((max + min) / 2); + if (xdata[k] > xnew[j]) { + max = k; + } else { + min = k; + } + } + + //found point one to the left and one to the right of generated new point + var h = (xdata[max] - xdata[min]); + + if (h == 0) { + //similar to above two points from original x data need some space between them + return []; + } + + var a = (xdata[max] - xnew[j]) / h; + var b = (xnew[j] - xdata[min]) / h; + + ynew[j] = a * ydata[min] + b * ydata[max] + ((a * a * a - a) * y2[min] + (b * b * b - b) * y2[max]) * (h * h) / 6; + + result.push(xnew[j]); + result.push(ynew[j]); + } + + return result; + } + + function hasInvalidParameters(curvedLinesOptions) { + if (typeof curvedLinesOptions.fit != 'undefined' || + typeof curvedLinesOptions.curvePointFactor != 'undefined' || + typeof curvedLinesOptions.fitPointDist != 'undefined') { + throw new Error("CurvedLines detected illegal parameters. The CurvedLines API changed with version 1.0.0 please check the options object."); + return true; + } + return false; + } + + + }//end init + + + $.plot.plugins.push({ + init : init, + options : options, + name : 'curvedLines', + version : '1.1.1' + }); + +})(jQuery); diff --git a/bin/report-template/content/js/dashboard-commons.js b/bin/report-template/content/js/dashboard-commons.js new file mode 100644 index 00000000000..138052c8b4f --- /dev/null +++ b/bin/report-template/content/js/dashboard-commons.js @@ -0,0 +1,43 @@ +function formatDuration(duration) { + var type = $.type(duration); + if (type === "string") + return duration; + + var days = Math.floor(duration / 86400000); // 1000 * 60 * 60 * 24 = 1 day + duration %= 8640000; + + var hours = Math.floor(duration / 3600000); // 1000 * 60 *60 = 1 hour + duration %= 3600000; + + var minutes = Math.floor(duration / 60000); // 1000 * 60 = 1 minute + duration %= 60000; + + var seconds = Math.floor(duration / 1000); // 1 second + duration %= 1000; + + var formatArray = []; + if (days > 0) + formatArray.push(days + " day(s)"); + + if (hours > 0) + formatArray.push(hours + " hour(s)"); + + if (minutes > 0) + formatArray.push(minutes + " min"); + + if (seconds > 0) + formatArray.push(seconds + " sec"); + + if (duration > 0) + formatArray.push(duration + " ms"); + + return formatArray.join(" "); +} + +function getElapsedTimeLabel(duration) { + return "Elapsed Time (granularity: " + formatDuration(duration) + ")"; +} + +function compareByXCoordinate(coordA, coordB){ + return coordB[0] - coord1[0]; +} \ No newline at end of file diff --git a/bin/report-template/content/js/dashboard.js.fmkr b/bin/report-template/content/js/dashboard.js.fmkr new file mode 100644 index 00000000000..4a079172998 --- /dev/null +++ b/bin/report-template/content/js/dashboard.js.fmkr @@ -0,0 +1,107 @@ +$(document).ready(function() { + var offset = 0; + plot(); + + function plot() { + var dataSets = { + "KO": { + "label": "KO", + "data": ${requestsSummary.KoPercent?c}, + "color": "red" + }, + "OK": { + "label": "OK", + "data": ${requestsSummary.OkPercent?c}, + "color": "#ddf2da" + } + }; + var data = []; + + for(var i in dataSets) { + data.push(dataSets[i]); + } + + $.plot($("#flot-requests-summary"), data, + { + series: { + pie: { + show: true, + radius: 1, + label: { + show: true, + radius: 3/4, + formatter: function(label, series){ + return '
'+label+'
'+Math.round(series.percent)+'%
'; + }, + background: { + opacity: 0.5, + color: '#000' + } + } + } + }, + legend: { + show: true + } + }); + } +}); + +$(function(){ + + var dApdex = ${apdexSummary.values}; + + var dStats = ${statisticsSummary.values}; + + var dErrors = ${errorsSummary.values}; + + createTable(dApdex, "Apdex"); + createTable(dStats, "Statistics"); + createTable(dErrors, "Errors"); + +}); + + +function createTable(data, id) { + var d = data; + var nbl =0; + var tableRef = document.getElementById(id); + for(var i in d){ + var nouvelleLigne = tableRef.insertRow(nbl); + + $(tableRef.rows[0]).css("font-weight", "bold"); + $(tableRef.rows[0]).css("font-size", "16px"); + $(tableRef.rows[0]).css("font-family", "Arial"); + + var c = 0; + for(var j in d[i]){ + var firstRow = tableRef.rows[0]; + var cell = firstRow.insertCell(c); + cell.innerHTML = j; + c++; + //alert(d[i][j]); + } + nbl++; + break; + } + var b = true; + for(var i in d){ + var nouvelleLigne = tableRef.insertRow(nbl); + var c = 0; + for(var j in d[i]){ + var firstRow = tableRef.rows[nbl]; + + var cell = firstRow.insertCell(c); + cell.innerHTML = d[i][j]; + c++; + } + + if (b){ + $(tableRef.rows[nbl]).addClass("blue"); + b=false; + } else { + b=true; + } + nbl++; + } +} \ No newline at end of file diff --git a/bin/report-template/content/js/graphes.js.fmkr b/bin/report-template/content/js/graphes.js.fmkr new file mode 100644 index 00000000000..863899b98b3 --- /dev/null +++ b/bin/report-template/content/js/graphes.js.fmkr @@ -0,0 +1,1386 @@ +$(document).ready(function() { + var offset = 0; + $(".click-title").mouseenter( function( e){ + e.preventDefault(); + this.style.cursor="pointer"; + }); + $(".click-title").mousedown( function(event){ + event.preventDefault(); + }); + + try { + bbq(); + } catch (e) { + } + try { + btot(); + } catch (e) { + } + try { + rtp(); + } catch (e) { + } + $(".portlet-header").css("cursor", "auto"); +}); + +var b1 = false; +var b2 = false; +var b3 = false; +var b4 = false; +var b5 = false; +var b6 = false; +var b7 = false; +var b8 = false; +var b9 = false; +var b10 = false; +var b11 = false; +var chiffre = 0; + +//Response times percentiles +function rtp(bool, below) { + var data = ${responseTimePercentiles.values}; + var options = { + series: { + points: { show: false } + }, + legend: { + noColumns: 2, + show: true, + container: '#legendResponseTimePercentiles' + }, + xaxis: { + min: ${responseTimePercentiles.minX?c}, + max: ${responseTimePercentiles.maxX?c}, + tickDecimals: 1, + axisLabel: "Percentiles", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${responseTimePercentiles.minY?c}, + max: ${responseTimePercentiles.maxY?c}, + axisLabel: "Percentile value in ms", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x.2 was %y" + }, + selection: { mode: "x" }, + stack: true + }; + + var placeholder = $("#flot-response-times-percentiles"); + + var i = 0; + $.each(data, function(key, val) { + val.color = i; + ++i; + }); + + var choiceContainer = $("#choicesResponseTimePercentiles"); + if ( bool == false ){ + plotAccordingToChoices(); + } else { + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + plotAccordingToChoices(); + $('#bodyPercentiles .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + var datasets = []; + var i = 0; + choiceContainer.find("input:checked").each(function () { + var key = $(this).attr("name"); + if (key == data[key].label){ + datasets.push(data[key]); + datasets[i].threshold.below=chiffre; + datasets[i].threshold.color=$("#slider-vertical").children("div").css("background-color"); + i++; + } + }); + + $.plot(placeholder, datasets, options); + $("#collapseResponseTimePercentiles #legendResponseTimePercentiles").children().css("border", "1px solid #888888"); + } +} + +// Response time distribution +function rtd(bool) { + var data = ${responseTimeDistribution.values}; + var options = { + legend: { noColumns: 2,show: true, container: '#legendResponseTimeDistribution' }, + xaxis:{ + axisLabel: "Response times in ms", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + axisLabel: "Number of responses", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + bars : { + show: true, + barWidth: ${responseTimeDistribution.granularity?c} + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y" + } + }; + + var i = 0; + var choiceContainer = $("#choicesResponseTimeDistribution"); + if (bool == false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + plotAccordingToChoices(); + $('#footerRTD .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-response-time-distribution"), prepareData( data, choiceContainer), options); + } +}; + +// Active Threads Over Time +function tsot(bool) { + var data = ${activeThreadsOverTime.values}; + var xaxisLabel = getElapsedTimeLabel(${activeThreadsOverTime.granularity?c}); + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${activeThreadsOverTime.minX?c}, + max: ${activeThreadsOverTime.maxX?c}, + mode: "time", + timeformat: "%H:%M:%S", + axisLabel: xaxisLabel, + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${activeThreadsOverTime.minY?c}, + max: ${activeThreadsOverTime.maxY?c}, + axisLabel: "Number of active threads", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20 + }, + legend: { + noColumns: 6, + show: true, + container: '#legendActiveThreadsOverTime' + }, + selection: { + mode: "x" + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + // hard-code color indices to prevent them from shifting as + // countries are turned on/off + var i = 0; + $.each(data, function(key, val) { + val.color = i; + ++i; + }); + + var choiceContainer = $("#choicesActiveThreadsOverTime"); + if( bool == false ) { + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + plotAccordingToChoices(); + $('#footerTSOT .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flotActiveThreadsOverTime"), prepareData( data, choiceContainer), options); + } +}; + +// Response Time Per Sample +function hb(bool) { + var ticks = ${responseTimePerSample.sampleNames}; + var dataSet = ${responseTimePerSample.values}; + + var options = { + series: { + bars: { + show: true + } + }, + bars: { + align: "center", + barWidth: 0.5, + horizontal: true, + fillColor: { colors: [{ opacity: 0.5 }, { opacity: 1}] }, + lineWidth: 1 + }, + xaxis: { + max: ${responseTimePerSample.maxX?c}, + axisLabel: "Response Time in ms", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + tickColor: "white", + tickFormatter: function (v, axis) { + return $.formatNumber(v, { format: "#,###", locale: "us" }); + }, + color: "black" + }, + yaxis: { + tickColor: "white", + ticks: ticks, + color: "black" + }, + legend: { + noColumns: 0, + labelBoxBorderColor: "#858585", + container: '#legendHorizontalBar' + }, + grid: { + hoverable: true, + borderWidth: 2, + backgroundColor: { colors: ["white", "white"] } + } + }; + + + // hard-code color indices to prevent them from shifting as + // countries are turned on/off + + var choiceContainer = $("#choicesResponseTimePerSample"); + if (bool == false){ + plotAccordingToChoices(); + } else { + createLegend(dataSet, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + plotAccordingToChoices(); + $('#footerRTPS .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-horizontal-bar"), prepareData( dataSet, choiceContainer), options); + } + + var previousPoint = null, previousLabel = null; + + $.fn.UseTooltip = function () { + $(this).bind("plothover", function (event, pos, item) { + if (item) { + if ((previousLabel != item.series.label) || + (previousPoint != item.dataIndex)) { + previousPoint = item.dataIndex; + previousLabel = item.series.label; + $("#tooltip").remove(); + + var x = item.datapoint[0]; + var y = item.datapoint[1]; + + var color = item.series.color; + + showTooltip(item.pageX, + item.pageY, + color, + "" + item.series.label + "
" + item.series.yaxis.ticks[y].label + + " : " + $.formatNumber(x, { format: "#,###", locale: "us" }) + " ms"); + } + } else { + $("#tooltip").remove(); + previousPoint = null; + } + }); + }; + + function showTooltip(x, y, color, contents) { + $('
' + contents + '
').css({ + position: 'absolute', + display: 'none', + top: y - 10, + left: x + 10, + border: '2px solid ' + color, + padding: '3px', + 'font-size': '9px', + 'border-radius': '5px', + 'background-color': '#fff', + 'font-family': 'Verdana, Arial, Helvetica, Tahoma, sans-serif', + opacity: 0.9 + }).appendTo("body").fadeIn(200); + } + + $("#flot-horizontal-bar").UseTooltip(); +}; + + +// Times vs threads +function tvt(bool){ + var data = ${timeVsThreads.values}; + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${timeVsThreads.minX?c}, + max: ${timeVsThreads.maxX?c}, + axisLabel: "Number of active threads", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${timeVsThreads.minY?c}, + max: ${timeVsThreads.maxY?c}, + axisLabel: "Average response times in ms", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20 + }, + + legend: { noColumns: 2,show: true, container: '#legendTimeVsThreads' }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x.2 was %y.2", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + var i = 0; + + var choiceContainer = $("#choicesTimeVsThreads"); + if(bool == false){ + plotAccordingToChoices(); + }else{ + + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + + plotAccordingToChoices(); + + $('#footerTVT .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-times-vs-threads"), prepareData( data, choiceContainer), options); + } +}; + + +//Bytes throughput Over Time +function btot(bool) { + var data = ${bytesThroughputOverTime.values}; + var xaxisLabel = getElapsedTimeLabel(${bytesThroughputOverTime.granularity?c}); + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${bytesThroughputOverTime.minX?c}, + max: ${bytesThroughputOverTime.maxX?c}, + mode: "time", + timeformat: "%H:%M:%S", + axisLabel: xaxisLabel , + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${bytesThroughputOverTime.minY?c}, + max: ${bytesThroughputOverTime.maxY?c}, + axisLabel: "Bytes/sec", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + legend: { + noColumns: 2, + show: true, + container: '#legendBytesThroughputOverTime' + }, + selection: { + mode: "x" + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + // hard-code color indices to prevent them from shifting as + // countries are turned on/off + var i = 0; + $.each(data, function(key, val) { + val.color = i; + ++i; + }); + + var choiceContainer = $("#choicesBytesThroughputOverTime"); + if( bool == false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + plotAccordingToChoices(); + $('#footerBytes .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-line-chart"), prepareData( data, choiceContainer), options); + } +} + +//Response Time Over Time +function rtot(bool) { + + var data = ${responseTimesOverTime.values}; + var xaxisLabel = getElapsedTimeLabel(${responseTimesOverTime.granularity?c}); + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${responseTimesOverTime.minX?c}, + max: ${responseTimesOverTime.maxX?c}, + mode: "time", + timeformat: "%H:%M:%S", + axisLabel: xaxisLabel, + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${responseTimesOverTime.minY?c}, + max: ${responseTimesOverTime.maxY?c}, + axisLabel: "Response time in ms", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + legend: { + noColumns: 2, + show: true, + container: '#legendResponseTimesOverTime' + }, + selection: { + mode: "x" + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + // hard-code color indices to prevent them from shifting as + // countries are turned on/off + var i = 0; + $.each(data, function(key, val) { + val.color = i; + ++i; + }); + + var choiceContainer = $("#choicesResponseTimesOverTime"); + if( bool == false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + + plotAccordingToChoices(); + + $('#footerRTOT .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-Response-Time-Over-Time"), prepareData(data, choiceContainer), options); + } +}; + +//Latencies Over Time +function lot(bool) { + var data = ${latenciesOverTime.values}; + var xaxisLabel = getElapsedTimeLabel(${latenciesOverTime.granularity?c}); + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${latenciesOverTime.minX?c}, + max: ${latenciesOverTime.maxX?c}, + mode: "time", + timeformat: "%H:%M:%S", + axisLabel: xaxisLabel, + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${latenciesOverTime.minY?c}, + max: ${latenciesOverTime.maxY?c}, + axisLabel: "Response latencies in ms", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + legend: { + noColumns: 2, + show: true, + container: '#legendLatenciesOverTime' + }, + selection: { + mode: "x" + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + // hard-code color indices to prevent them from shifting as + // countries are turned on/off + var i = 0; + $.each(data, function(key, val) { + val.color = i; + ++i; + }); + + // insert checkboxes + var choiceContainer = $("#choicesLatenciesOverTime"); + if( bool == false ) { + plotAccordingToChoices(); + }else { + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + + plotAccordingToChoices(); + $('#footerLatencies .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-latencies-over-time"), prepareData( data, choiceContainer), options); + } +}; + +//Response Time vs Request +function rtvr(bool) { + var data = ${responseTimeVsRequest.values}; + + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min : ${responseTimeVsRequest.minX?c}, + max : ${responseTimeVsRequest.maxX?c}, + axisLabel: "Global number of requests per second", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min : ${responseTimeVsRequest.minY?c}, + max : ${responseTimeVsRequest.maxY?c}, + axisLabel: "Median Response Time", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + legend: { + noColumns: 2, + show: true, + container: '#legendResponseTimeVsRequest' + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + var choiceContainer = $("#choicesResponseTimeVsRequest"); + if ( bool == false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + + plotAccordingToChoices(); + $('#footerRTVR .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-response-time-vs-request"), prepareData( data, choiceContainer), options); + } +}; + + +//Latency vs Request +function lvr(bool) { + var data = ${latencyVsRequest.values}; + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min : ${latencyVsRequest.minX?c}, + max : ${latencyVsRequest.maxX?c}, + axisLabel: "Global number of requests per second", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min : ${latencyVsRequest.minY?c}, + max : ${latencyVsRequest.maxY?c}, + axisLabel: "Median Latency", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + } + , + legend: { noColumns: 2,show: true, container: '#legendLatencyVsRequest' }, + + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + var choiceContainer = $("#choicesLatencyVsRequest"); + if(bool == false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + + plotAccordingToChoices(); + $('#footerLatency .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flot-latency-vs-request"), prepareData( data, choiceContainer), options); + } +}; + + +//Hits per second +function bbq(bool) { + $("#flot-hits-per-second").mousemove(function(e){ + e.preventDefault(); + }); + + var data = ${hitsPerSecond.values}; + var datasets = []; + var xaxisLabel = getElapsedTimeLabel(${hitsPerSecond.granularity?c}); + + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${hitsPerSecond.minX?c}, + max: ${hitsPerSecond.maxX?c}, + mode: "time", + timeformat: "%H:%M:%S", + axisLabel: xaxisLabel, + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${hitsPerSecond.minY?c}, + max: ${hitsPerSecond.maxY?c}, + axisLabel: "Number of hits / sec", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, } + , + legend: { noColumns: 2,show: true, container: '#legendHitsPerSecond' }, + selection: { mode: "xy" }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y.2" + } + }; + + var optionsMin = { + series: { + lines: { show: true, lineWidth: 1 }, + shadowSize: 0 + }, + xaxis: { + mode: "time", + timeformat: "%H:%M:%S", + }, + yaxis: { + min: 0, + }, + grid: { + color: "#999" + }, + selection: { + mode: "xy" + } + }; + + $("#flot-hits-per-second").mousedown(function(e){ + e.preventDefault(); + }); + + var choiceContainer = $("#choicesHitsPerSecond"); + if (bool ==false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + + plotAccordingToChoices(); + $("#flot-hits-per-second").bind("mousedown", function() { return false; }); + $("#overview").bind("mousedown", function() { return false; }); + // now connect the two + $("#flot-hits-per-second").bind("plotselected", function (event, ranges) { + // clamp the zooming to prevent eternal zoom + if (ranges.xaxis.to - ranges.xaxis.from < 0.00001) { + ranges.xaxis.to = ranges.xaxis.from + 0.00001; + } + if (ranges.yaxis.to - ranges.yaxis.from < 0.00001) { + ranges.yaxis.to = ranges.yaxis.from + 0.00001; + } + // do the zooming + plot = $.plot($("#flot-hits-per-second"), datasets, + $.extend(true, {}, options, { + xaxis: { min: ranges.xaxis.from, max: ranges.xaxis.to }, + yaxis: { min: ranges.yaxis.from, max: ranges.yaxis.to } + })); + + // don't fire event on the overview to prevent eternal loop + }); + $("#overview").bind("plotselected", function (event, ranges) { + plot.setSelection(ranges); + }); + $('#footerHitsPerSecond .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + datasets = prepareData(data, choiceContainer); + plot = $.plot($("#flot-hits-per-second"), datasets, options); + // setup overview + var overview = $.plot($("#overview"), datasets, optionsMin ); + } +} + + +//Hits codes per second +function hcps(bool) { + var data = ${codesPerSecond.values}; + var xaxisLabel = getElapsedTimeLabel(${codesPerSecond.granularity?c}); + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${codesPerSecond.minX?c}, + max: ${codesPerSecond.maxX?c}, + mode: "time", + timeformat: "%H:%M:%S", + axisLabel: xaxisLabel, + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${codesPerSecond.minY?c}, + max: ${codesPerSecond.maxY?c}, + axisLabel: "Number of responses/sec", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + legend: { + noColumns: 2, + show: true, + container: '#legendCodesPerSecond' + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y.2", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + // hard-code color indices to prevent them from shifting as + // countries are turned on/off + var i = 0; + $.each(data, function(key, val) { + val.color = i; + ++i; + }); + + var choiceContainer = $("#choicesCodesPerSecond"); + if( bool == false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + + plotAccordingToChoices(); + $('#footerCodesPerSecond .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + function plotAccordingToChoices() { + $.plot($("#flotCodesPerSecond"), prepareData( data, choiceContainer), options); + } +}; + + +//Transactions per second +function tps(bool) { + var data = ${transactionsPerSecond.values}; + var xaxisLabel = getElapsedTimeLabel(${transactionsPerSecond.granularity?c}); + var options = { + series: { + lines: { + show: true + }, + points: { + show: true + } + }, + xaxis: { + min: ${transactionsPerSecond.minX?c}, + max: ${transactionsPerSecond.maxX?c}, + mode: "time", + timeformat: "%H:%M:%S", + axisLabel: xaxisLabel, + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, + }, + yaxis: { + min: ${transactionsPerSecond.minY?c}, + max: ${transactionsPerSecond.maxY?c}, + axisLabel: "Number of transactions / sec", + axisLabelUseCanvas: true, + axisLabelFontSizePixels: 12, + axisLabelFontFamily: 'Verdana, Arial', + axisLabelPadding: 20, } + , + legend: { + noColumns: 2, + show: true, + container: '#legendTransactionsPerSecond' + }, + grid: { + hoverable: true //IMPORTANT! this is needed for tooltip to work + }, + tooltip: true, + tooltipOpts: { + content: "%s for %x was %y", + onHover: function(flotItem, $tooltipEl) { + } + } + }; + + // hard-code color indices to prevent them from shifting as + // countries are turned on/off + var i = 0; + $.each(data, function(key, val) { + val.color = i; + ++i; + }); + + var choiceContainer = $("#choicesTransactionsPerSecond"); + if( bool == false){ + plotAccordingToChoices(); + }else{ + createLegend(data, choiceContainer); + choiceContainer.find("input").click(plotAccordingToChoices); + plotAccordingToChoices(); + $('#footerTransactions .legendColorBox > div').each(function(i){ + $(this).clone().prependTo(choiceContainer.find("li").eq(i)); + }); + } + + function plotAccordingToChoices() { + $.plot($("#flot-transactions-per-second"), prepareData( data, choiceContainer), options); + } +}; + +//collapse +$(function() { + $('.collapse').on('shown.bs.collapse', function(){ + $(this).parent().find(".fa-chevron-down").removeClass("fa-chevron-down").addClass("fa-chevron-up"); + if (this.id == "bodyResponseTimeOver") { + if ( b6 == false ) { + rtot(); + } + b6 = true; + document.location.href="#ResponseTimesOverTime"; + } else if (this.id == "bodyLantencies") { + if ( b5 == false ) { + lot(); + } + b5 = true; + document.location.href="#LatenciesOverTimes"; + } else if (this.id == "bodyRTD") { + if ( b1 == false ) { + rtd(); + } + b1 = true; + document.location.href="#ResponseTimeDistribution" ; + } else if (this.id == "bodyTSOT") { + if ( b2 == false ) { + tsot(); + } + b2 = true; + document.location.href="#ThreadsStateOverTime"; + } else if (this.id == "bodyRTPS") { + if ( b3 == false ) { + hb(); + } + b3 = true; + document.location.href="#ResponseTimePerSample" ; + } else if (this.id == "bodyTVT") { + if ( b4 == false ) { + tvt(); + } + b4 = true; + document.location.href="#TimeVsThreads" ; + } else if (this.id == "bodyCodesPerSecond") { + if ( b7 == false ) { + hcps(); + } + b7 = true; + document.location.href="#codesPerSecond"; + } else if (this.id == "bodyTransactionspersecond") { + if ( b8 == false ) { + tps(); + } + b8 = true; + document.location.href="#TransactionsPerSecond"; + } else if (this.id == "bodyResponseTimeVsRequest") { + if ( b9 == false ) { + rtvr(); + } + b9 = true; + document.location.href="#ResponseTimeVsRequest"; + } else if (this.id == "bodylatency") { + if ( b10 == false ) { + lvr(); + } + b10 = true; + document.location.href="#LatencyVsRequest"; + } + }).on('hidden.bs.collapse', function(){ + $(this).parent().find(".fa-chevron-up").removeClass("fa-chevron-up").addClass("fa-chevron-down"); + var d = $(this); + }); +}); + +$(function() { + $(".glyphicon").mousedown( function(event){ + var tmp = $('.in:not(ul)'); + tmp.parent().parent().parent().find(".fa-chevron-up").removeClass("fa-chevron-down").addClass("fa-chevron-down"); + tmp.removeClass("in"); + tmp.addClass("out"); + }); +}); + +//cookies +$(function() { + //createCookie('ppkcookie','testcookie',7) + var currentPage=""; + var v = $("#graphContainer").sortable({ + revert: false, + axis: 'y', + forcePlaceholderSize : true, + placeholder : 'col-lg-12 portlet ui-state-highlight', + update: function (e, ui) { + var order = foo.sortable("toArray").join(); + var currentLocation = document.location.href; + currentLocation = currentLocation.substring(currentLocation.lastIndexOf( "/" )+1 ); + if (currentLocation.lastIndexOf( "#" ) != -1) { + currentLocation = currentLocation.substring(0 , currentLocation.lastIndexOf( "#" ) ); + } + currentPage = currentLocation; + if (typeof(Storage) != "undefined") { + // Store + localStorage.setItem(currentPage+"", order); + } + reOrderList(); + }, + handle: ".glyphicon" + }); + var foo = $("#graphContainer"); + //order = $.cookie("sortableOrder"); + //order = readCookie("sortableOrder"); + var order = null; + var currentLocation = document.location.href; + currentLocation = currentLocation.substring(currentLocation.lastIndexOf( "/" )+1); + if (currentLocation.lastIndexOf( "#" ) != -1) { + currentLocation = currentLocation.substring(0 , currentLocation.lastIndexOf( "#" )); + } + currentPage = currentLocation; + if (typeof(Storage) != "undefined") { + order = localStorage.getItem(currentPage+""); + } + if (order) { + $(order.split(',')).each(function (i, id) { + //appending the element with the ID given id should move each element to the end of the + // list one after another, and at the end, the order should be restored. + $("#" + id).appendTo(foo); + }); + } + $( ".portlet" ).disableSelection(); + reOrderList(); +}); + +//uncheck all box +function uncheckAll(id){ + var placeholder = document.getElementById(id); + + var cases = $(placeholder).find(':checkbox'); // on cherche les checkbox qui d�pendent de la liste 'cases' + + cases.attr('checked', false);// on coche les cases + $(cases).parent().children().children().addClass("legend-disabled"); + if ( id == "choicesBytesThroughputOverTime"){ + var choiceContainer = $("#choicesBytesThroughputOverTime"); + btot(false); + } else if(id == "choicesResponseTimesOverTime"){ + var choiceContainer = $("#choicesResponseTimesOverTime"); + rtot(false); + } else if ( id == "choicesLatenciesOverTime"){ + var choiceContainer = $("#choicesLatenciesOverTime"); + lot(false); + } else if ( id == "choicesResponseTimePercentiles"){ + var choiceContainer = $("#choicesResponseTimePercentiles"); + rtp(false); + } else if(id == "choicesThreadsStateOverTime"){ + var choiceContainer = $("#choicesThreadsStateOverTime"); + tsot(false); + } else if ( id == "choicesTimeVsThreads"){ + var choiceContainer = $("#choicesTimeVsThreads"); + tvt(false); + } else if ( id == "choicesResponseTimeDistribution"){ + var choiceContainer = $("#choicesResponseTimeDistribution"); + rtd(false); + } else if ( id == "choicesResponseTimePerSample"){ + var choiceContainer = $("#choicesResponseTimePerSample"); + hb(false); + } else if ( id == "choicesHitsPerSecond"){ + var choiceContainer = $("#choicesHitsPerSecond"); + bbq(false); + } else if(id == "choiceseCodesPerSecond"){ + var choiceContainer = $("#choicesCodesPerSecond"); + hcps(false); + } else if ( id == "choicesTransactionsPerSecond"){ + var choiceContainer = $("#choicesTransactionsPerSecond"); + tps(false); + } else if ( id == "choicesResponseTimeVsRequest"){ + var choiceContainer = $("#choicesResponseTimeVsRequest"); + rtvr(false); + } else if ( id == "choicesLatencyVsRequest"){ + var choiceContainer = $("#choicesLatencyVsRequest"); + lvr(false); + } + choiceContainer.find("label").each(function(){ + this.style.color = "#818181"; + }); +} + +//check all box +function checkAll(id){ + var placeholder = document.getElementById(id); + placeholder.style.color = "black"; + var cases2 = $(placeholder).find(':not(checked)'); // on cherche les checkbox qui dépendent de la liste 'cases' + console.log(cases2); + cases2.prop('checked', true);// on coche les cases + $(cases2).parent().children().children().removeClass("legend-disabled"); + if (id == "choicesBytesThroughputOverTime"){ + var choiceContainer = $("#choicesBytesThroughputOverTime"); + btot(false); + } else if(id == "choicesResponseTimesOverTime"){ + var choiceContainer = $("#choicesResponseTimesOverTime"); + rtot(false); + } else if ( id == "choicesLatenciesOverTime"){ + var choiceContainer = $("#choicesLatenciesOverTime"); + lot(false); + } else if ( id == "choicesResponseTimePercentiles"){ + var choiceContainer = $("#choicesResponseTimePercentiles"); + rtp(false); + } else if(id == "choicesThreadsStateOverTime"){ + var choiceContainer = $("#choicesThreadsStateOverTime"); + tsot(false); + } else if ( id == "choicesTimeVsThreads"){ + var choiceContainer = $("#choicesTimeVsThreads"); + tvt(false); + } else if ( id == "choicesResponseTimeDistribution"){ + var choiceContainer = $("#choicesResponseTimeDistribution"); + rtd(false); + } else if ( id == "choicesResponseTimePerSample"){ + var choiceContainer = $("#choicesResponseTimePerSample"); + hb(false); + } else if ( id == "choicesHitsPerSecond"){ + var choiceContainer = $("#choicesHitsPerSecond"); + bbq(false); + } else if(id == "choicesCodesPerSecond"){ + var choiceContainer = $("#choicesCodesPerSecond"); + hcps(false); + } else if ( id == "choicesTransactionsPerSecond"){ + var choiceContainer = $("#choicesTransactionsPerSecond"); + tps(false); + } else if ( id == "choicesResponseTimeVsRequest"){ + var choiceContainer = $("#choicesResponseTimeVsRequest"); + rtvr(false); + } else if ( id == "choicesLatencyVsRequest"){ + var choiceContainer = $("#choicesLatencyVsRequest"); + lvr(false); + } + choiceContainer.find("label").each(function(){ + this.style.color = "black"; + }); +} + +function reOrderList(){ + //parcours des li dans le menu + var ul = document.getElementById("submenu").getElementsByTagName("li"); ; + var i=0; + var a; + for( i=0; i').appendTo(choiceContainer); + + $('').appendTo(li); + $('