From 4d4afc2f441db92f41a78c122ba381631c948357 Mon Sep 17 00:00:00 2001 From: Caroline Shaw Date: Mon, 28 Nov 2016 09:29:49 -0500 Subject: [PATCH] XHPROF UI Update (#103) Updates to UI for frontend snazziness --- xhprof_html/css/tablesorter.pager.css | 7 +- xhprof_html/css/xhprof.css | 662 ++++++++++++++---- xhprof_html/favicon.ico | Bin 1150 -> 15086 bytes xhprof_html/img/asc.gif | Bin 54 -> 0 bytes xhprof_html/img/asc.svg | 13 + xhprof_html/img/bg.gif | Bin 64 -> 0 bytes xhprof_html/img/bg.svg | 16 + xhprof_html/img/desc.gif | Bin 54 -> 0 bytes xhprof_html/img/desc.svg | 13 + xhprof_html/img/invert-2.png | Bin 4339 -> 0 bytes xhprof_html/img/invert.svg | 18 + xhprof_html/index.php | 54 +- xhprof_lib/display/xhprof.php | 54 +- xhprof_lib/templates/chart.phtml | 68 +- .../templates/diff_run_header_block.phtml | 154 ++-- xhprof_lib/templates/footer.phtml | 1 + xhprof_lib/templates/header.phtml | 49 +- xhprof_lib/templates/profChart.phtml | 4 +- .../templates/single_run_header_block.phtml | 40 +- xhprof_lib/utils/common.php | 48 +- 20 files changed, 843 insertions(+), 358 deletions(-) mode change 100755 => 100644 xhprof_html/favicon.ico delete mode 100755 xhprof_html/img/asc.gif create mode 100644 xhprof_html/img/asc.svg delete mode 100755 xhprof_html/img/bg.gif create mode 100644 xhprof_html/img/bg.svg delete mode 100755 xhprof_html/img/desc.gif create mode 100644 xhprof_html/img/desc.svg delete mode 100644 xhprof_html/img/invert-2.png create mode 100644 xhprof_html/img/invert.svg diff --git a/xhprof_html/css/tablesorter.pager.css b/xhprof_html/css/tablesorter.pager.css index b89d5c9b..7edd3300 100755 --- a/xhprof_html/css/tablesorter.pager.css +++ b/xhprof_html/css/tablesorter.pager.css @@ -21,19 +21,20 @@ div.tablesorterPager input { text-align: center; } table.tablesorter thead tr .header { - background-image: url(../img/bg.gif); + background-image: url(../img/bg.svg); + background-size: 20px 20px; background-position:left center; background-repeat:no-repeat; cursor:pointer; padding-left:55px; } table.tablesorter thead tr .headerSortUp { - background-image: url(../img/asc.gif); + background-image: url(../img/asc.svg); background-repeat:no-repeat; background-position:left center; } table.tablesorter thead tr .headerSortDown { - background-image: url(../img/desc.gif); + background-image: url(../img/desc.svg); background-repeat:no-repeat; background-position:left center; } diff --git a/xhprof_html/css/xhprof.css b/xhprof_html/css/xhprof.css index 8c3ae9a7..af6ec897 100755 --- a/xhprof_html/css/xhprof.css +++ b/xhprof_html/css/xhprof.css @@ -14,142 +14,552 @@ */ td.sorted { - color:#0000FF; -} -td.vbar, th.vbar { - text-align: right; - border-left: - solid 1px #bdc7d8; -} -td.vbbar, th.vbar { - text-align: right; - border-left: - solid 1px #bdc7d8; - color:blue; -} + color: #0000FF; +} + +td.vbar, +th.vbar { + text-align: right; + border-left: solid 1px #ececec; +} + +td.vbbar, +th.vbar { + text-align: right; + border-left: solid 1px #ececec; + color: #1D9DD0; +} + + /* diff reports: display regressions in red */ + td.vrbar { - text-align: right; - border-left:solid 1px #bdc7d8; - color:red; + text-align: right; + border-left: solid 1px #ececec; + color: #E02A57; } + + /* diff reports: display improvements in green */ + td.vgbar { - text-align: right; - border-left: solid 1px #bdc7d8; - color:green; -} -td.vwbar, th.vwbar { - text-align: left; - border-left: solid 1px white; - /* background-color:#b9c9fe; */ -} -td.vwlbar, th.vwlbar { - text-align: left; - border-left: solid 1px white; -} -p.blue { - color:blue + text-align: right; + border-left: solid 1px #bdc7d8; + color: #36D89E; } + +td.vwbar, +th.vwbar { + text-align: left; + border-left: solid 1px #ececec; +} + +td.vwlbar, +th.vwlbar { + text-align: left; + border-left: solid 1px #ececec; +} + +p.blue { + color: blue +} + .bubble { - background-color:#C3D9FF + background-color: #C3D9FF } + ul.xhprof_actions { - float: right; - padding-left: 16px; - list-style-image: none; - list-style-type: none; - margin:10px 10px 10px 3em; - position:relative; + float: right; + padding-left: 16px; + list-style-image: none; + list-style-type: none; + margin: 10px 10px 10px 3em; + position: relative; } + ul.xhprof_actions li { - border-bottom:1px solid #D8DFEA; -} + border-bottom: 1px solid #D8DFEA; +} + ul.xhprof_actions li a:hover { - background:#3B5998 none repeat scroll 0 0; - color:#FFFFFF; -} - /* Styling for New Pages */ - -.dash-header {width:100%;height:100px;background:#e8edff;border: 2px solid #b9c9fe;margin-right:auto;margin-left:auto;} -.search {width:auto;float:right;height:25px;margin-top:10px;margin-right:25px;font-family:"Lucida Grande", Sans-Serif;font-size:13px;} -.link-options {width:auto;float:right;clear:right;height:auto;font-family:"Lucida Grande", Sans-Serif;font-size:13px;margin-right:20px;position:relative;top:45px;} -.link-options a { margin: 0 0.2em; } -h1.xh-title {width:225px;font-family:"Lucida Grande", Sans-Serif;font-size:30px;font-weight:bold;color:#333333;margin-left:20px;} -.form-button {border:1px solid #999999;cursor:pointer;background-color:#b9c9fe;-webkit-border-radius: 4px;-moz-border-radius: 4px;} -.form-button:hover {border:1px solid #999999;cursor:pointer;background-color:#e8edff;-webkit-border-radius: 4px;-moz-border-radius: 4px;} -.runTitle {font-family:"Lucida Grande", Sans-Serif;font-size:18px;margin-left:auto;margin-right:auto;color:#333333;text-align:center;margin-top:25px;border: 2px solid #b9c9fe;padding:4px; word-wrap:break-word;} -#box-table-a {width:100%;font-family: Monospace,"Courier New";font-size:12px;margin:20px auto 45px auto;text-align: left;border-collapse:collapse;} -#box-table-a th {font-size:13px;font-weight:normal;padding: 8px 8px 8px 20px;background-color:#b9c9fe;border-top:4px solid #aabcfe;border-bottom: 1px solid #ffffff;color: #333333;} -#box-table-a td {padding:8px;background:#e8edff;border-bottom:1px solid #ffffff;color:#333333;border-top: 1px solid transparent; max-width:300px; word-wrap:break-word;} -#box-table-a tr:hover td {background:#d0dafd;color:#339;} -#box-table-a, .link-options a:link {color:#0066ff;} -#box-table-a, .link-options a:hover {color:#0066ff;} -#box-table-a, .link-options a:visited {color:#cc0066;} - -#view-center-tables {width:100%;min-height:575px;background-color:#ffffff;border: 1px solid #b9c9fe;margin-right:auto;margin-left:auto;-webkit-border-radius:4px;-moz-border-radius:4px;position:relative;top:30px;} -#view-diff-tables {width:100%;min-height:500px;background-color:#ffffff;border: 1px solid #b9c9fe;margin-right:auto;margin-left:auto;-webkit-border-radius:4px;-moz-border-radius:4px;position:relative;top:30px;} -#run-id-wrapper {width:100%;margin-right:auto;margin-left:auto;height:auto;} -.runid {font-family:Monospace,"Courier New";} -h2.run-details {margin-left:20px;margin-right:20px;font-family:Monospace,"Courier New";font-size:1.125em;color:#333333;} -h2.diff-details {font-family:Monospace,"Courier New";font-size:1.125em;color:#333333;margin:15px 0 0 15px;} + background: #3B5998 none repeat scroll 0 0; + color: #FFFFFF; +} + + +/* Styling for New Pages */ + +body { + font-family: 'Lato', sans-serif; + color: #5A5A5A; + background: #3d4b60; /* Old browsers */ + background: -moz-linear-gradient(top, #3d4b60 0%, #5e598c 100%, #4096ee 100%); /* FF3.6-15 */ + background: -webkit-linear-gradient(top, #3d4b60 0%,#5e598c 100%,#4096ee 100%); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to bottom, #3d4b60 0%,#5e598c 100%,#4096ee 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3d4b60', endColorstr='#4096ee',GradientType=0 ); /* IE6-9 */ +} + +a { + color: #69B0CC; + text-decoration: none; +} + +a:hover{ + text-decoration: underline; +} + +a:visited{ + color: #547E8F; +} + +.container{ + max-width: 1400px; + padding: 20px; + background:#fff; + border-radius: 4px; + margin: 20px auto; + box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); +} + +.dash-header { + width: 100%; + height: 100px; + margin-right: auto; + margin-left: auto; + border-bottom: 1px solid #ECECEC; + padding-bottom:30px; +} + +.xh-title-wrap{ + display: inline-block; +} + +.xh-title { + font-size: 35px; + color: #5A5A5A; + text-decoration: none; + font-weight: 300; +} + +.xh-title:hover{ + text-decoration: none; + color: #7cced6; +} + +.xh-title:after { + content: ''; + display: block; + width: 115px; + height: 5px; + margin-top:2px; + background: #7cced6; /* Old browsers */ + background: -moz-linear-gradient(left, #7cced6 0%, #f47eab 100%, #4096ee 100%); /* FF3.6-15 */ + background: -webkit-linear-gradient(left, #7cced6 0%,#f47eab 100%,#4096ee 100%); /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to right, #7cced6 0%,#f47eab 100%,#4096ee 100%); /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7cced6', endColorstr='#4096ee',GradientType=1 ); /* IE6-9 */ +} + +.search { + width: auto; + float: right; + height: 25px; + margin-top: 10px; + margin-right: 25px; + font-size: 14px; +} + +.link-options { + margin-top:20px; + padding: 10px 0; + font-size: 14px; + text-align: center; +} + +.options-list li{ + list-style: none; + display: inline; + padding: 5px 10px; +} + +.link-options a { + margin: 0 0.2em; +} + +.form-text{ + padding: 9px 15px; + vertical-align: middle; + border-radius: 4px; + border: 1px solid #CED2D4; +} + +.form-button { + border: 1px solid #63b3bb; + cursor: pointer; + color: #fff; + padding: 2px 15px 3px 15px; + background-color: #6dbcc4; + border-radius: 4px; + height:35px; + text-transform: uppercase; +} + +.form-button:hover { + background: #7CCED6; + cursor: pointer; +} + +.form-select{ + height:35px; + border: 1px solid #CED2D4; +} + +.runTitle { + font-size: 30px; + font-weight: 300; + text-transform: capitalize; + margin-top: 25px; + padding: 10px 0; + word-wrap: break-word; +} + +#box-table-a { + width: 100%; + font-size: 14px; + border:1px solid #ececec; + margin: 20px auto 45px auto; + text-align: left; + border-collapse: collapse; +} + +#box-table-a th { + font-size: 14px; + font-weight: normal; + padding: 12px 8px 12px 20px; + background-color: #f6f6f6; + text-transform: uppercase; + border-bottom: 1px solid #ffffff; +} + +#box-table-a td { + padding: 8px; + border-bottom: 1px solid #ECECEC; + border-top: 1px solid transparent; + max-width: 300px; + word-wrap: break-word; +} + +#box-table-a tr:hover td { + background: #F5F5F5; +} + +#view-center-tables { + width: 100%; + min-height: 575px; + background-color: #ffffff; + margin-right: auto; + margin-left: auto; + position: relative; +} + +#view-diff-tables { + width: 100%; + min-height: 500px; + margin-right: auto; + margin-left: auto; + position: relative; + top: 30px; +} + +#run-id-wrapper { + width: 100%; + margin-right: auto; + margin-left: auto; + height: auto; + margin-left:10px; +} + +.runid { + font-family: 'Inconsolata', monospace; +} + +.run-details { + font-size: 1.125em; + font-family: 'Inconsolata', monospace; + margin-bottom: 20px; +} + +h2.diff-details { + font-family: 'Inconsolata', monospace; + font-size: 1.125em; + margin: 15px 0 0 15px; +} + + /*#invert-wrapper{width: 100%;height: auto;} */ -#invert-image{float:left;width:auto;height:80px;} -#link-id{float:left;width:auto;height:80px;margin:0px;padding:0px;} -#diff-graph{width:100%;padding-bottom:10px;float:left; height:auto;padding-top:10px;} -#clear{clear: left;width: 100%;} -a.callgraph:link {margin-left:20px;font-family: "Lucida Grande", Sans-Serif;font-size:1.064em;color:#0066ff;} -a.callgraph:hover {margin-left:20px;font-family: "Lucida Grande", Sans-Serif;font-size:1.064em;color:#0066ff;} -a.callgraph:visited {margin-left:20px;font-family: "Lucida Grande", Sans-Serif;font-size:1.064em;color:#0066ff;} - -#left-col{width:51%;float:left; margin-left:1%; margin-top:15px;} -#right-col{width:45%;float:left;margin-left:2%;margin-top:15px;} - -#box-table-b {width: 100%;font-family:Monospace,"Courier New";font-size:12px;text-align: left;border-collapse: collapse;float:left;} -#box-table-b th {font-size:13px;font-weight:normal;padding: 4px 4px 4px 4px;background-color: #b9c9fe;border-top:4px solid #aabcfe;border-bottom: 1px solid #ffffff;color: #333333;} -#box-table-b td {padding:4px;background:#e8edff;border-bottom: 1px solid #ffffff;color:#333333;border-top: 1px solid transparent;} -#box-table-b tr:hover td {background:#d0dafd;color:#339;} -#box-table-b .link-options a:link {color:#0066ff;} -#box-table-b .link-options a:hover {color:#0066ff;} -#box-table-b .link-options a:visited {color:#cc0066;} - -.box-fix {width: 100%;overflow:auto;} -.box-fix-cr {width:100%;overflow:auto;margin:20px 0 0 0;clear:right;} -.box-tables {width: 100%;font-family: Monospace,"Courier New";font-size:12px;border-collapse:collapse;text-align:left;} -.box-tables th {font-size:13px;font-weight:normal;padding: 4px 4px 4px 4px;background-color:#b9c9fe;border-top: 4px solid #aabcfe;border-bottom: 1px solid #ffffff;color:#333333;} -.box-tables td {padding:4px;background:#e8edff;border-bottom:1px solid #ffffff;color:#333333;border-top:1px solid transparent;} -.box-tables tr:hover td {background: #d0dafd;color:#339;} -.box-tables .link-options a:link {color:#0066ff;} -.box-tables .link-options a:hover {color:#0066ff;} -.box-tables .link-options a:visited {color:#cc0066;} - -.colone {width:30%;height:auto;float:left;margin-left:1%;} -.coltwo {width:36%;height:auto;float:left;margin-left:1%;} -.colthree {width:30%;height:auto;float:left;margin-left:1%;} - -.overall{font-family: "Lucida Grande", Sans-Serif;font-size:1.188em;color:#333333;} -a.invert:link {font-family:"Lucida Grande", Sans-serif;font-size:0.875em;color:#0066ff;} -a.invert:hover {font-family:"Lucida Grande", Sans-serif;font-size:0.875em;color:#0066ff;} -a.invert:visited {font-family:"Lucida Grande", Sans-serif;font-size:0.875em;color:#0066ff;} - -#diff-summary {width:100%;height:auto;float:left;overflow:auto;} -.diff-box {font-family:Monospace,"Courier New";font-size:12px;border-collapse:collapse;text-align:left;} -.diff-box th {font-size:13px;font-weight:normal;padding: 4px 4px 4px 4px;background-color:#aabcfe;border-top: 4px solid #aacdfe;border-bottom: 1px solid #ffffff;color:#333333;} -.diff-box td {padding:3px;background:#e8edff;border-bottom:1px solid #ffffff;color:#333333;border-top:1px solid transparent;} -.diff-box tr:hover td {background: #d0dafd;color:#339;} -.diff-box .link-options a:link {color:#0066ff;} -.diff-box .link-options a:hover {color:#0066ff;} -.diff-box .link-options a:visited {color:#cc0066;} - -.box-fix-small {width:100%;height:120px;overflow:auto;float:left;margin:0;} -.box-fix-small-cl {width:100%; height:120px;overflow:auto;float:left; margin-top:20px;clear:left;} -.box-tables-small {font-family:Monospace,"Courier New";font-size:12px;border-collapse:collapse;text-align:left;width: 100%;} -.box-tables-small th {font-size:13px;font-weight:normal;padding: 4px 4px 4px 4px;background-color:#b9c9fe;border-top: 4px solid #aabcfe;border-bottom: 1px solid #ffffff;color:#333333;} -.box-tables-small td {padding:4px;background:#e8edff;border-bottom:1px solid #ffffff;color:#333333;border-top:1px solid transparent;} -.box-tables-small tr:hover td {background: #d0dafd;color:#339;} -.box-tables-small .link-options a:link {color:#0066ff;} -.box-tables-small .link-options a:hover {color:#0066ff;} -.box-tables-small .link-options a:visited {color:#cc0066;} -.different {font-family:Monospace,"Courier New";font-size:12px;font-weight:bold;} -img{border: none;} -:focus{outline:none;} + +#invert-image { + float: left; + width: auto; + height: 80px; +} + +#link-id { + float: left; + width: auto; + height: 80px; + margin: 0px; + padding: 0px; +} + +#diff-graph { + width: 100%; + padding-bottom: 30px; + float: left; + height: auto; + margin-left: 10px; + padding-top: 10px; +} + +#clear { + clear: left; + width: 100%; +} + +a.callgraph:link { + font-size: 20px; +} + + +#left-col { + width: 51%; + float: left; + margin-left: 1%; + margin-top: 15px; +} + +#right-col { + width: 45%; + float: left; + margin-left: 2%; + margin-top: 15px; +} + +#box-table-b { + width: 100%; + font-size: 14px; + text-align: left; + border-collapse: collapse; + float: left; + border:1px solid #ececec; +} + +#box-table-b th { + font-size: 14px; + font-weight: normal; + padding: 4px 4px 4px 4px; + text-transform: uppercase; + border-bottom: 1px solid #ececec; + background: #f6f6f6; +} + +#box-table-b td { + padding: 6px; + font-family: 'Inconsolata', monospace; + border-bottom: 1px solid #ececec; + border-top: 1px solid transparent; +} + +#box-table-b tr:hover td { + background: #f6f6f6; +} + +#box-table-b .link-options a:link { + color: #0066ff; +} + +#box-table-b .link-options a:hover { + color: #0066ff; +} + +#box-table-b .link-options a:visited { + color: #cc0066; +} + +.box-fix { + width: 100%; + overflow: auto; +} + +.box-fix-cr { + width: 100%; + overflow: auto; + margin: 20px 0 0 0; + clear: right; +} + +.box-tables { + width: 100%; + font-family: 'Inconsolata', monospace; + font-size: 14px; + border-collapse: collapse; + text-align: left; + border: 1px solid #ececec; +} + +.box-table-title{ + background: #f6f6f6; + text-align: center; +} + +.box-tables th { + font-size: 14px; + font-family: 'Lato', sans-serif; + text-transform: uppercase; + font-weight: normal; + padding: 4px 4px 4px 4px; + background: #f6f6f6; + border-bottom: 1px solid #ececec; +} + +.box-tables td { + padding: 6px; + border-bottom: 1px solid #ececec; +} + +.colone { + width: 30%; + height: auto; + float: left; + margin-left: 1%; +} + +.coltwo { + width: 36%; + height: auto; + float: left; + margin-left: 1%; +} + +.colthree { + width: 30%; + height: auto; + float: left; + margin-left: 1%; +} + +.overall { + //font-family: "Lucida Grande", Sans-Serif; + font-size: 1.188em; + color: #333333; +} + +a.invert:link { + //font-family: "Lucida Grande", Sans-serif; + font-size: 0.875em; + color: #0066ff; +} + +a.invert:hover { + //font-family: "Lucida Grande", Sans-serif; + font-size: 0.875em; + color: #0066ff; +} + +a.invert:visited { + //font-family: "Lucida Grande", Sans-serif; + font-size: 0.875em; + color: #0066ff; +} + +#diff-summary { + width: 100%; + height: auto; + float: left; + overflow: auto; +} + +.diff-box { + font-size: 14px; + border-collapse: collapse; + text-align: left; + border: 1px solid #ececec; +} + +.diff-box th { + font-size: 14px; + font-weight: normal; + text-transform: uppercase; + padding: 4px 4px 4px 4px; + background: #f6f6f6; + border-bottom: 1px solid #f6f6f6; +} + +.diff-box td { + padding: 6px; + font-family: 'Inconsolata', monospace; + border-bottom: 1px solid #ffffff; + border-bottom: 1px solid #ececec; +} + +.diff-box tr:hover td { + background: #f6f6f6; +} + +.box-fix-small { + width: 100%; + height: 120px; + overflow: auto; + float: left; + margin: 0; +} + +.box-fix-small-cl { + width: 100%; + height: 120px; + overflow: auto; + float: left; + margin-top: 20px; + clear: left; +} + +.box-tables-small { + border: 1px solid #ececec; + font-size: 14px; + border-collapse: collapse; + text-align: left; + width: 100%; +} + +.box-tables-small th { + font-size: 14px; + text-transform: uppercase; + font-weight: normal; + padding: 4px 4px 4px 4px; + background: #f6f6f6; + border-bottom: 1px solid #ffffff; +} + +.box-tables-small td { + padding: 4px; + font-family: 'Inconsolata', monospace; + border-bottom: 1px solid #f6f6f6; + border-top: 1px solid #f6f6f6; +} + +.box-tables-small tr:hover td { + background: #f6f6f6; +} + +.different { + font-family: 'Inconsolata', monospace; + font-size: 12px; + font-weight: bold; +} + +img { + border: none; +} + +:focus { + outline: none; +} diff --git a/xhprof_html/favicon.ico b/xhprof_html/favicon.ico old mode 100755 new mode 100644 index f596c5d2985cbf203be4eaed0f321642dde2dc66..66811dd15acf3e320ef93525f2dcb20b5754ae8d GIT binary patch literal 15086 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 RAyV;5l!NX;8rrAp{|EHIoo4_5 literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYJy!Te z?3vTjKYaMW2Q%x?fxY%~W=_pqw`OGsh(3Pom^n=D>g5Z%vw>pQu3c06{N|C|>PqEb zv-1?cFIl`O3Z&-ymv@3|s?|R)Dpvfpc4ET%Rpko*7tii1gy}!JICItVQu)7IwrueP zi5*{>vlOJJJk8_4j~_o+ukM{v4&pEAjNW{4dshn~{cj&%G6bsmJ1JA;!{$vJd^R?l zK3-NL|M%>P{f?KmcQq5z4|2o)nc;gu>e@0)?ttidb?zsB{rbg7tp2Ch_IiT!f$+*Q z`M-yDu8ahk3)A0Roi};YrcGWTyr$Fd5VHS4>i+)u!?3;ATB`5|T|Y?e!8vhTLHg?wbROTib4MOoKg?|~8eRW~7q`?v?gq&(DUts( zp{KPHS^tu$)m`tOUDpQTgL7hcpzA-qreZos@8T+xMK;p-#@<* zUR|a3bwQEJx7*jx8Lq9-_&l!w=+}93l8DiNW%tAyu)ii|EdB!w$8#GSCV=?m$)#6WT< LfEc6}qz8lnx0 + + Chevron + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/xhprof_html/img/bg.gif b/xhprof_html/img/bg.gif deleted file mode 100755 index fac668fcf42af844a3af0a239fa638ddbc08443c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64 zcmZ?wbhEHb6lLIKXkcJa);0M5|G(l-7DfgJMg|=QAOOiQFp2l{H=O3Yl~fU8)V1~= QTew|n!uOuePzDBT00piR0RR91 diff --git a/xhprof_html/img/bg.svg b/xhprof_html/img/bg.svg new file mode 100644 index 00000000..56546a61 --- /dev/null +++ b/xhprof_html/img/bg.svg @@ -0,0 +1,16 @@ + + + Chevron + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/xhprof_html/img/desc.gif b/xhprof_html/img/desc.gif deleted file mode 100755 index 3b30b3c58eabdb47a1c420ad03c8e30b966cc858..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54 zcmZ?wbhEHb6lGvxXkcJa);0M5|G(l-7DfgJMg|=QAOOiQF!A>EGoD<#VNP?1QCB1* GgEatI(+xQQ diff --git a/xhprof_html/img/desc.svg b/xhprof_html/img/desc.svg new file mode 100644 index 00000000..426c5bd8 --- /dev/null +++ b/xhprof_html/img/desc.svg @@ -0,0 +1,13 @@ + + + Chevron + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/xhprof_html/img/invert-2.png b/xhprof_html/img/invert-2.png deleted file mode 100644 index eb0ff6ed31ef255db1f2f08ccb626e751ae30cc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4339 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 + + Chevron + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/xhprof_html/index.php b/xhprof_html/index.php index 54195d29..d815e07a 100755 --- a/xhprof_html/index.php +++ b/xhprof_html/index.php @@ -82,7 +82,7 @@ { include ("../xhprof_lib/templates/header.phtml"); displayXHProfReport($xhprof_runs_impl, $params, $source, $run, $wts, - $symbol, $sort, $run1, $run2); + $symbol, $sort, $run1, $run2); }elseif (isset($_GET['geturl'])) { $last = (isset($_GET['last'])) ? $_GET['last'] : 100; @@ -93,11 +93,11 @@ $rs = $xhprof_runs_impl->getUrlStats($criteria); list($header, $body) = showChart($rs, true); $_xh_header .= $header; - + include ("../xhprof_lib/templates/header.phtml"); $rs = $xhprof_runs_impl->getRuns($criteria); include ("../xhprof_lib/templates/emptyBody.phtml"); - + $url = htmlentities($_GET['geturl'], ENT_QUOTES, "UTF-8"); displayRuns($rs, "Runs with URL: $url"); }elseif (isset($_GET['getcurl'])) @@ -107,12 +107,12 @@ $criteria['c_url'] = $_GET['getcurl']; $criteria['limit'] = $last; $criteria['order by'] = 'timestamp'; - + $rs = $xhprof_runs_impl->getUrlStats($criteria); list($header, $body) = showChart($rs, true); $_xh_header .= $header; include ("../xhprof_lib/templates/header.phtml"); - + $url = htmlentities($_GET['getcurl'], ENT_QUOTES, "UTF-8"); $rs = $xhprof_runs_impl->getRuns($criteria); include("../xhprof_lib/templates/emptyBody.phtml"); @@ -121,7 +121,7 @@ { include ("../xhprof_lib/templates/header.phtml"); $days = (int) $_GET['days']; - + switch ($_GET['getruns']) { case "cpu": @@ -134,7 +134,7 @@ $load = "pmu"; break; } - + $criteria['order by'] = $load; $criteria['limit'] = "500"; $criteria['where'] = "DATE_SUB(CURDATE(), INTERVAL $days DAY) <= `timestamp`"; @@ -154,13 +154,13 @@ { $type = 'url'; } - + $criteria['limit'] = $last; $criteria['days'] = $days; $criteria['type'] = $type; $resultSet = $xhprof_runs_impl->getHardHit($criteria); - echo "
Hardest Hit
\n"; + echo "

Hardest Hit

\n"; echo ""; echo "\n"; while ($row = XHProfRuns_Default::getNextAssoc($resultSet)) @@ -170,38 +170,38 @@ echo "\t\n"; } echo "\n"; - echo "
URLHitsTotal Wall TimeAvg Wall Time
{$html['url']}{$row['count']}" . number_format($row['total_wall']) . " ms" . number_format($row['avg_wall']) . " ms
\n"; + echo "\n"; echo << - $(document).ready(function() { - $.tablesorter.addParser({ - id: 'pretty', - is: function(s) { - return false; - }, + $(document).ready(function() { + $.tablesorter.addParser({ + id: 'pretty', + is: function(s) { + return false; + }, format: function(s) { s = s.replace(/ ms/g,""); return s.replace(/,/g,""); - }, - // set type, either numeric or text - type: 'numeric' + }, + // set type, either numeric or text + type: 'numeric' }); - $(function() { - $("table").tablesorter({ - headers: { - 2: { - sorter:'pretty' + $(function() { + $("table").tablesorter({ + headers: { + 2: { + sorter:'pretty' }, 3: { sorter:'pretty' } } - }); + }); }); - }); + }); CODESE; -}else +}else { include ("../xhprof_lib/templates/header.phtml"); $last = (isset($_GET['last'])) ? $_GET['last'] : 25; diff --git a/xhprof_lib/display/xhprof.php b/xhprof_lib/display/xhprof.php index 329149e2..05220167 100644 --- a/xhprof_lib/display/xhprof.php +++ b/xhprof_lib/display/xhprof.php @@ -600,7 +600,7 @@ function profiler_report ($url_params, // lookup function typeahead form - + /** echo @@ -743,7 +743,7 @@ function print_function_info($url_params, $info, $sort, $run1, $run2) { print(""); } else { - print(''); + print(''); } $href = "$base_path/?" . @@ -802,12 +802,12 @@ function print_flat_data($url_params, $title, $flat_data, $sort, $run1, $run2, $ http_build_query(xhprof_array_set($url_params, 'all', 1))); } - + //Find top $n requests $data_copy = $flat_data; $data_copy = _aggregateCalls($data_copy, null, $run2); usort($data_copy, 'sortWT'); - + $iterations = 0; $colors = array('#4572A7', '#AA4643', '#89A54E', '#80699B', '#3D96AE', '#DB843D', '#92A8CD', '#A47D7C', '#B5CA92', '#EAFEBB', '#FEB4B1', '#2B6979', '#E9D6FE', '#FECDA3', '#FED980'); foreach($data_copy as $datapoint) @@ -864,8 +864,8 @@ function full_report($url_params, $symbol_tab, $sort, $run1, $run2, $links) { global $xhprof_runs_impl; include "../xhprof_lib/templates/single_run_header_block.phtml"; } - - + + //echo xhprof_render_actions($links); @@ -873,7 +873,7 @@ function full_report($url_params, $symbol_tab, $sort, $run1, $run2, $links) { foreach ($symbol_tab as $symbol => $info) { $tmp = $info; $tmp["fn"] = $symbol; - + $flat_data[] = $tmp; } usort($flat_data, 'sort_cbk'); @@ -966,8 +966,8 @@ function print_pc_array($url_params, $results, $base_ct, $base_info, $parent, $title .= 's'; } - print(""); - print("
" . $title . "
"); + print(""); + print("" . $title . ""); print(""); $odd_even = 0; @@ -981,7 +981,7 @@ function print_pc_array($url_params, $results, $base_ct, $base_info, $parent, print(''); } else { - print(''); + print(''); } print("" . xhprof_render_link($info["fn"], $href) . ""); @@ -1051,9 +1051,9 @@ function symbol_report($url_params, . http_build_query(xhprof_array_set($base_url_params, 'run', $run2)); print("

$regr_impr summary for $rep_symbol

"); - print('' . "\n"); - print(''); + print('
' . "\n"); + print(''); print(""); print(""); print(""); @@ -1105,7 +1105,7 @@ function symbol_report($url_params, // Exclusive stat for metric $m = "excl_" . $metric; - print(''); + print(''); print(""); print_td_num($symbol_info1[$m], $format_cbk[$m]); print_td_num($symbol_info2[$m], $format_cbk[$m]); @@ -1117,19 +1117,19 @@ function symbol_report($url_params, print('
$rep_symbolRun #$run1Run #$run2
" . str_replace("
", " ", $descriptions[$m]) . "
'); } - print("

"); - print("Parent/Child $regr_impr report for $rep_symbol"); + print("

"); + print("Parent/Child $regr_impr report for $rep_symbol

"); $callgraph_href = "$base_path/callgraph.php?" . http_build_query(xhprof_array_set($url_params, 'func', $rep_symbol)); - print(" [View Callgraph $diff_text]
"); + print(" View Callgraph $diff_text
"); - print("


"); + print("
"); - print('' . "\n"); - print(''); + print('
' . "\n"); + print(''); foreach ($pc_stats as $stat) { $desc = stat_description($stat); @@ -1150,8 +1150,8 @@ function symbol_report($url_params, } print(""); - print(""); print(""); @@ -1171,9 +1171,9 @@ function symbol_report($url_params, } print(""); - print(""); - print(""); + print(""); + print(""); if ($display_calls) { // Call Count @@ -1369,7 +1369,7 @@ function displayXHProfReport($xhprof_runs_impl, $url_params, $source, // $runs_array = explode(",", $run); - if (count($runs_array) == 1) + if (count($runs_array) == 1) { global $run_details; list($xhprof_data, $run_details) = $xhprof_runs_impl->get_run($runs_array[0], diff --git a/xhprof_lib/templates/chart.phtml b/xhprof_lib/templates/chart.phtml index 44a3079b..8e4ab8da 100755 --- a/xhprof_lib/templates/chart.phtml +++ b/xhprof_lib/templates/chart.phtml @@ -5,6 +5,7 @@ chart: { renderTo: 'container', margin: [80, 200, 60, 100], + borderWidth: '0px', zoomType: 'xy', events: { @@ -13,9 +14,9 @@ // find the clicked values and the series var x = e.xAxis[0].value, y = e.yAxis[0].value, - series = this.series[0]; + series = this.series[0]; } - } + } }, credits: { enabled:false @@ -29,48 +30,48 @@ subtitle: { text: 'Source: XH Gui', style: { - margin: '0 0 0 0' // center it + margin: '10px 0 0 0' // center it } }, xAxis: [{ categories: [], - labels: { + labels: { formatter: function() { - var date = (this.value).split(" "); + var date = (this.value).split(" "); return date[0]; }, rotation: -45, align: 'right', } - + }], - + yAxis: [ { // Primary yAxis labels: - { + { formatter: function() { return this.value; }, style: { - color: '#89A54E' + color: '#547E8F' } }, title: { text: 'Peak Memory Usage', style: { - color: '#89A54E' + color: '#547E8F' }, - margin: 80 + margin: 25 }, opposite: true - + }, { // Secondary yAxis title: { text: 'CPU', - margin: 50, + margin: 40, style: { - color: '#4572A7' + color: '#69B0CC' } }, labels: { @@ -78,16 +79,16 @@ return this.value; }, style: { - color: '#4572A7' + color: '#69B0CC' } } - + }, { // Tertiary yAxis title: { text: 'Wall Time (ms)', - margin: 80, + margin: 20, style: { - color: '#AA4643' + color: '#F47EAB' } }, labels: { @@ -95,7 +96,7 @@ return this.value; }, style: { - color: '#AA4643' + color: '#F47EAB' } }, opposite: true, @@ -108,7 +109,7 @@ '': '', '': '' }[this.series.name]; - + return ''+ this.series.name +'

' + this.y +''; } }, @@ -128,38 +129,37 @@ point: { events: { 'click': function() { - - if (this.series.data.length > 1) + + if (this.series.data.length > 1) { var runid = (this.category).split(" "); - document.location = '?run=' + runid[2]; - } + document.location = '?run=' + runid[2]; + } } } } } - }, + }, series: [{ name: 'CPU', - color: '#4572A7', + color: '#69B0CC', type: 'line', yAxis: 1, data: [], - + },{ name: 'Wall Time', type: 'line', - color: '#AA4643', + color: '#F47EAB', yAxis: 2, - data: [] - + data: [] + },{ name: 'Peak Memory Usage', - color: '#89A54E', + color: '#547E8F', type: 'line', - data: [,] + data: [,] }] - }); - + }); }); diff --git a/xhprof_lib/templates/diff_run_header_block.phtml b/xhprof_lib/templates/diff_run_header_block.phtml index 672cf5f2..05cc40b9 100644 --- a/xhprof_lib/templates/diff_run_header_block.phtml +++ b/xhprof_lib/templates/diff_run_header_block.phtml @@ -6,78 +6,78 @@ $href2 = "$base_path/?" . http_build_query(xhprof_array_set($base_url_params, 'run', $run2)); - -print('
'); - print("
"); - print("
"); - print("\"Invert"); - print("
"); - print("
"); - print("
Current Function
"); + print("
"); + print("Current Function"); print("
" - ."Exclusive Metrics $diff_text for Current Function
" + ."Exclusive Metrics $diff_text for Current Function
'; print ""; print ""; print ""; print ""; - - foreach($cookieArr0 as $key=>$value){ + + foreach($cookieArr0 as $key=>$value){ echo ""; - + if(isset($cookieArr1[$key]) && $cookieArr0[$key] == $cookieArr1[$key]){ $class ="normal"; }else{ $class ="different"; - } + } echo ""; echo ""; } print ""; print "
Run One ID:\n$run1Cookie Results
" . $key . "" . chunk_split($value) . "
"; - print ""; - + print ""; + // get diff data from array position 0 - + // $getArr0 = json_decode($xhprof_runs_impl->run_details[0]['get']); print '
'; print ''; print ""; print ""; print ""; - print ""; - - foreach($getArr0 as $key=>$value){ + print ""; + + foreach($getArr0 as $key=>$value){ echo ""; - + if(isset($getArr1[$key]) && ($getArr0[$key] == $getArr1[$key])){ $class ="normal"; }else{ @@ -85,25 +85,25 @@ print('
'); } if (is_array($value)) { - $value = nl2br(str_replace(' ', ' ', print_r($value, true))); + $value = nl2br(str_replace(' ', ' ', print_r($value, true))); } echo "
"; echo ""; } print ""; print "
Run:$run1Get Results
" . $key . "" . chunk_split($value) . "
"; - print "
"; + print ""; - // post diff data from array position 0 + // post diff data from array position 0 // $postArr0 = json_decode($xhprof_runs_impl->run_details[0]['post']); print '
'; print ''; print ""; print ""; print ""; - print ""; - - foreach($postArr0 as $key=>$value){ + print ""; + + foreach($postArr0 as $key=>$value){ echo ""; if(isset($postArr1[$key]) && $postArr0[$key] == $postArr1[$key]){ $class ="normal"; @@ -115,14 +115,14 @@ print('
'); } print "
"; print "
Run:$run1Post Results
"; - print "
"; - - print(''); - - print('
'); - print('
'); + print "
"; + + print('
'); + + print('
'); + print('
'); print(''); - print(""); + print(""); print(''); print(""); print(""); @@ -130,8 +130,8 @@ print('
'); print("
"); print(""); print(''); - print(""); - print ""; + print(""); + print ""; if ($display_calls) { print(''); print(""); @@ -151,28 +151,28 @@ print('
'); print_td_num($totals_2[$m] - $totals_1[$m], $format_cbk[$m], true); print_td_pct($totals_2[$m] - $totals_1[$m], $totals_1[$m], true); print('
'); - } - print ""; - print('
Run One ID: " . xhprof_render_link("$run1", $href1) . "DiffDiff%
Number of Function Calls
'); - print('
'); - - - print('
'); - - - print('
'); + } + print ""; + print(''); + print('
'); + + + print(''); + + + print('
'); print '
'; print ''; print ""; print ""; print ""; - print ""; - // cookie diff data from array position 1 + print ""; + // cookie diff data from array position 1 //$cookieArr1 = json_decode($xhprof_runs_impl->run_details[1]['cookie']); - + foreach($cookieArr1 as $key=>$value){ echo ""; - + if(isset($cookieArr0[$key]) && ($cookieArr1[$key] == $cookieArr0[$key])){ $class ="normal"; }else{ @@ -184,20 +184,20 @@ print('
'); print "
"; print "
Run Two ID:\n$run2Cookie Results
"; print "
"; - - + + print '
'; print ''; print ""; print ""; print ""; print ""; - // get diff data from array position 1 + // get diff data from array position 1 // $getArr1 = json_decode($xhprof_runs_impl->run_details[1]['get']); - + foreach($getArr1 as $key=>$value){ echo ""; - + if(isset($getArr0[$key]) && ($getArr1[$key] == $getArr0[$key])){ $class ="normal"; }else{ @@ -205,7 +205,7 @@ print('
'); } if(is_array($value)) { - $value = nl2br(str_replace(' ', ' ', print_r($value, true))); + $value = nl2br(str_replace(' ', ' ', print_r($value, true))); } echo "
"; echo ""; @@ -213,20 +213,20 @@ print('
'); print "
"; print "
Run:$run2Get Results
" . $key . "" . chunk_split($value) . "
"; print "
"; - - + + print '
'; print ''; print ""; print ""; print ""; - print ""; - // post diff data from array position 1 + print ""; + // post diff data from array position 1 // $postArr1 = json_decode($xhprof_runs_impl->run_details[1]['post']); - + foreach($postArr1 as $key=>$value){ echo ""; - + if($postArr1[$key] == $postArr0[$key]){ $class ="normal"; }else{ @@ -238,6 +238,6 @@ print('
'); ?>
Run:$run2Post Results
-
+
diff --git a/xhprof_lib/templates/footer.phtml b/xhprof_lib/templates/footer.phtml index 691287b6..17c7245b 100755 --- a/xhprof_lib/templates/footer.phtml +++ b/xhprof_lib/templates/footer.phtml @@ -1,2 +1,3 @@ + \ No newline at end of file diff --git a/xhprof_lib/templates/header.phtml b/xhprof_lib/templates/header.phtml index 3cd5bb7f..6067f8c2 100644 --- a/xhprof_lib/templates/header.phtml +++ b/xhprof_lib/templates/header.phtml @@ -4,12 +4,12 @@ XHGui: Hierarchical Profiler Report - + - + - + @@ -25,17 +25,21 @@ if (isset($_xh_header)) ?> +
+
+ XH GUI +
-

XH GUI

-
\ No newline at end of file +
\ No newline at end of file diff --git a/xhprof_lib/templates/profChart.phtml b/xhprof_lib/templates/profChart.phtml index 83228a2a..78785493 100644 --- a/xhprof_lib/templates/profChart.phtml +++ b/xhprof_lib/templates/profChart.phtml @@ -3,7 +3,7 @@ var chart = new Highcharts.Chart({ chart: { renderTo: 'container', - margin: [20, 20, 20, -50], + margin: [50, 20, 20, -50], height: '300' }, credits: { @@ -51,7 +51,7 @@ { return this.name } - + } }, series: [{ diff --git a/xhprof_lib/templates/single_run_header_block.phtml b/xhprof_lib/templates/single_run_header_block.phtml index a98f531c..0ae0f454 100644 --- a/xhprof_lib/templates/single_run_header_block.phtml +++ b/xhprof_lib/templates/single_run_header_block.phtml @@ -2,16 +2,16 @@ $arrayOfTotal = array(); $i=0; foreach ($metrics as $metric) { - + $arrayOfTotal[$i]["label"] = "Display run ". str_replace("
", " ", stat_description($metric)); $arrayOfTotal[$i]["value"] = number_format($totals[$metric]) . " ". $possible_metrics[$metric][1]; - $arrayOfTotal[$i]["metric"] = $possible_metrics[$metric][1]; + $arrayOfTotal[$i]["metric"] = $possible_metrics[$metric][1]; $i++; - } + } if ($display_calls) { $format_total= number_format($totals['ct']); } - + if (!isset($GLOBALS['_xhprof']['serializer']) || strtolower($GLOBALS['_xhprof']['serializer'] == 'php')) { $cookieArr = unserialize($xhprof_runs_impl->run_details['cookie']); $getArr = unserialize($xhprof_runs_impl->run_details['get']); @@ -23,14 +23,14 @@ } //TODO This is lame - global $comparative; + global $comparative; ?> -
+
-

RunID: run_details['id']; ?> against run_details['server name'];?>run_details['url'], ENT_QUOTES, 'UTF-8'); ?>

+

RunID:

run_details['id']; ?> against run_details['server name'];?>run_details['url'], ENT_QUOTES, 'UTF-8'); ?>

View Callgraph
-
+
@@ -57,15 +57,15 @@ - - + +
Number of Function Calls: 
Perform Delta:
- +
@@ -74,11 +74,11 @@ '.print_r($cookieArr, true).''; + // echo '
'.print_r($cookieArr, true).'
'; foreach($cookieArr as $key=>$value){ if (is_array($value)) { - $value = nl2br(str_replace(' ', ' ', print_r($value, true))); + $value = nl2br(str_replace(' ', ' ', print_r($value, true))); } echo "\n"; echo "\t\n"; @@ -99,13 +99,13 @@ '.print_r($getArr, true).''; + // echo '
'.print_r($getArr, true).'
'; foreach($getArr as $key=>$value) - { + { if (is_array($value)) { - $value = nl2br(str_replace(' ', ' ', print_r($value, true))); - } + $value = nl2br(str_replace(' ', ' ', print_r($value, true))); + } echo ""; echo ""; echo ""; @@ -125,12 +125,12 @@ '.print_r($postArr, true).''; + // echo '
'.print_r($postArr, true).'
'; foreach($postArr as $key=>$value){ if (is_array($value)) { - $value = nl2br(str_replace(' ', ' ', print_r($value, true))); - } + $value = nl2br(str_replace(' ', ' ', print_r($value, true))); + } echo ""; echo ""; echo ""; diff --git a/xhprof_lib/utils/common.php b/xhprof_lib/utils/common.php index 607073a5..89be9ade 100644 --- a/xhprof_lib/utils/common.php +++ b/xhprof_lib/utils/common.php @@ -2,7 +2,7 @@ function displayRuns($resultSet, $title = "") { - echo "
$title
\n"; + echo "

$title

\n"; echo "
" . $key . "" . chunk_split($value) . "
" . $key . "" . $value . "
" . $key . "" . $value . "
"; echo "\n"; while ($row = XHProfRuns_Default::getNextAssoc($resultSet)) @@ -19,10 +19,10 @@ function displayRuns($resultSet, $title = "") echo "
TimestampCpuWall TimePeak Memory UsageURLSimplified URL
\n"; echo << -$(document).ready(function() - { - $("#box-table-a").tablesorter( {sortList: []} ); - } +$(document).ready(function() + { + $("#box-table-a").tablesorter( {sortList: []} ); + } ); SORTTABLE; @@ -36,47 +36,47 @@ function printSeconds($time) { $time = $time / 1000; $suffix = "ms"; - + } - + if ($time > 1000) { $time = $time / 1000; $suffix = "s"; } - + if ($time > 60 && $suffix == "s") { $time = $time / 60; $suffix = "minutes!"; } return sprintf("%.4f {$suffix}", $time); - + } - + function showChart($rs, $flip = false) { $dataPoints = ""; - $ids = array(); + $ids = array(); $arCPU = array(); $arWT = array(); $arPEAK = array(); $arIDS = array(); $arDateIDs = array(); - + while($row = XHProfRuns_Default::getNextAssoc($rs)) { - $date[] = "'" . date("Y-m-d", $row['timestamp']) . "'" ; - + $date[] = "'" . date("Y-m-d", $row['timestamp']) . "'" ; + $arCPU[] = $row['cpu']; $arWT[] = $row['wt']; - $arPEAK[] = $row['pmu']; - $arIDS[] = $row['id']; - - $arDateIDs[] = "'" . date("Y-m-d", $row['timestamp']) . "
" . $row['id'] . "'"; + $arPEAK[] = $row['pmu']; + $arIDS[] = $row['id']; + + $arDateIDs[] = "'" . date("Y-m-d", $row['timestamp']) . "
" . $row['id'] . "'"; } $date = $flip ? array_reverse($date) : $date; @@ -85,22 +85,22 @@ function showChart($rs, $flip = false) $arPEAK = $flip ? array_reverse($arPEAK) : $arPEAK; $arIDS = $flip ? array_reverse($arIDS) : $arIDS; $arDateIDs = $flip ? array_reverse($arDateIDs) : $arDateIDs; - + $dateJS = implode(", ", $date); $cpuJS = implode(", ", $arCPU); $wtJS = implode(", ", $arWT); $pmuJS = implode(", ", $arPEAK); $idsJS = implode(", ", $arIDS); $dateidsJS = implode(", ", $arDateIDs); - - + + ob_start(); - require ("../xhprof_lib/templates/chart.phtml"); + require ("../xhprof_lib/templates/chart.phtml"); $stuff = ob_get_contents(); ob_end_clean(); return array($stuff, "
"); } - + function getFilter($filterName) @@ -118,7 +118,7 @@ function getFilter($filterName) } }elseif(isset($_COOKIE[$filterName])) { - $serverFilter = $_COOKIE[$filterName]; + $serverFilter = $_COOKIE[$filterName]; }else { $serverFilter = null;