From cc72c4839c50ed5a135ff47243998420296b57f1 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sat, 17 Mar 2018 14:44:22 +0100 Subject: [PATCH 01/10] app/models/Data/RequestMeta.php: add uri field. --- app/models/Data/RequestMeta.php | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/app/models/Data/RequestMeta.php b/app/models/Data/RequestMeta.php index e4ce3af..808025d 100644 --- a/app/models/Data/RequestMeta.php +++ b/app/models/Data/RequestMeta.php @@ -18,6 +18,13 @@ class RequestMeta extends Model */ protected $callbackid; + /** + * HTTP Request Uri + * + * @var string + */ + protected $uri; + /** * * @var string @@ -65,6 +72,24 @@ class RequestMeta extends Model return $this; } + /** + * @return string + */ + public function getUri() + { + return $this->uri; + } + + /** + * @param string $uri + * @return RequestMeta + */ + public function setUri($uri) + { + $this->uri = (string) $uri; + return $this; + } + /** * Method to set the value of field Timestamp * From be1ef1b86d0db3c02a7dc358a02d4c997bca5e07 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sat, 17 Mar 2018 14:44:58 +0100 Subject: [PATCH 02/10] app/controllers/CallbackController.php: in endpointAction() save request uri. --- app/controllers/CallbackController.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/CallbackController.php b/app/controllers/CallbackController.php index 3b4341f..02692f3 100644 --- a/app/controllers/CallbackController.php +++ b/app/controllers/CallbackController.php @@ -136,6 +136,8 @@ class CallbackController extends ControllerBase $meta = new Model\Data\RequestMeta(); $meta->Callback = $callback; $meta->RequestObject = $request; + $meta->setUri($this->request->getServer('REQUEST_URI')); + $result = $meta->save(); if ($result == false) { var_dump($meta->getMessages()); From 9851b05af3b073d5abd278c944fce51f99936d5e Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 11:43:29 +0100 Subject: [PATCH 03/10] app/assets/less/components/request-item.less: adding "request-list-item-header-uri". --- app/assets/less/components/request-item.less | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/app/assets/less/components/request-item.less b/app/assets/less/components/request-item.less index 8231834..f988b62 100644 --- a/app/assets/less/components/request-item.less +++ b/app/assets/less/components/request-item.less @@ -36,12 +36,21 @@ } &-index { + display: inline-block; + width: 5%; + } + + &-uri { + display: inline-block; + width: 40%; + } + + &-size { display: inline-block; width: 10%; } &-type, - &-size, &-timestamp { display: inline-block; width: 20%; From 28215d03037858ec469659b7fde59ecf84c4bf27 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 11:45:07 +0100 Subject: [PATCH 04/10] app/views/callback/show.volt: add uri to list header. --- app/views/callback/show.volt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/views/callback/show.volt b/app/views/callback/show.volt index 2462b3e..468c9ad 100644 --- a/app/views/callback/show.volt +++ b/app/views/callback/show.volt @@ -18,6 +18,10 @@ #{{ index + 1 }} + + {{ icon('android-locate') }} {{ req.getUri() }} + + {{ icon('android-time') }} {{ req.getTimestamp() }} From 8778f64d96e269ae5ca8f08e2dfa01e9c2ec895d Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 11:46:51 +0100 Subject: [PATCH 05/10] app/views/callback/show.volt: remove index number from list headers. --- app/assets/less/components/request-item.less | 7 +------ app/views/callback/show.volt | 4 ---- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/app/assets/less/components/request-item.less b/app/assets/less/components/request-item.less index f988b62..72b2772 100644 --- a/app/assets/less/components/request-item.less +++ b/app/assets/less/components/request-item.less @@ -35,14 +35,9 @@ } } - &-index { - display: inline-block; - width: 5%; - } - &-uri { display: inline-block; - width: 40%; + width: 45%; } &-size { diff --git a/app/views/callback/show.volt b/app/views/callback/show.volt index 468c9ad..6b776d8 100644 --- a/app/views/callback/show.volt +++ b/app/views/callback/show.volt @@ -14,10 +14,6 @@ data-toggle="collapse" data-parent="#request-log" aria-expanded="true" aria-controls="request{{ index }}"> - - #{{ index + 1 }} - - {{ icon('android-locate') }} {{ req.getUri() }} From 8635eb2a1d007b1266a4a54f517f51b529eab7aa Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 12:12:16 +0100 Subject: [PATCH 06/10] adding app/library/ViewHelper/UrlStyle.php --- app/library/ViewHelper/UrlStyle.php | 69 +++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 app/library/ViewHelper/UrlStyle.php diff --git a/app/library/ViewHelper/UrlStyle.php b/app/library/ViewHelper/UrlStyle.php new file mode 100644 index 0000000..de358d4 --- /dev/null +++ b/app/library/ViewHelper/UrlStyle.php @@ -0,0 +1,69 @@ + tags with class names. + * + * classes/parts are: + * scheme + * host + * port + * path + * query + * fragment + * + * @package ViewHelper + */ +class UrlStyle extends AbstractHelper +{ + /** + * Prefix (or namespace) for css classes. + * + * @var string + */ + protected $_classPrefix = 'url-'; + + public function urlStyle($url) + { + $parts = parse_url($url); + + if ($parts === null) { + return $url; + } + + $xhtml = ''; + + if (isset($parts['scheme'])) { + $xhtml .= $this->_htmlElement('scheme', $parts['scheme'] . '://'); + } + + if (isset($parts['host'])) { + $xhtml .= $this->_htmlElement('host', $parts['host']); + } + + if (isset($parts['port'])) { + $xhtml .= $this->_htmlElement('port', ':' . $parts['port']); + } + + $xhtml .= $this->_htmlElement('path', $parts['path']); + + if (isset($parts['query'])) { + $xhtml .= $this->_htmlElement('query', '?' . $parts['query']); + } + + if (isset($parts['fragment'])) { + $xhtml .= $this->_htmlElement('fragment', '#' . $parts['fragment']); + } + + return $xhtml; + } + + protected function _htmlElement($class, $content) + { + $class = $this->_classPrefix . $class; + return '' . $content . ''; + } +} From f7ac58ea44789ece3eb8c7027167ec574979fe39 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 12:17:42 +0100 Subject: [PATCH 07/10] adding app/assets/less/components/url.less --- app/assets/less/application.less | 1 + app/assets/less/components/url.less | 8 ++++++++ 2 files changed, 9 insertions(+) create mode 100644 app/assets/less/components/url.less diff --git a/app/assets/less/application.less b/app/assets/less/application.less index d01dfa6..850a879 100644 --- a/app/assets/less/application.less +++ b/app/assets/less/application.less @@ -28,6 +28,7 @@ @import "layout/footer"; // Components +@import "components/url"; @import "components/icon"; @import "components/button"; @import "components/badge"; diff --git a/app/assets/less/components/url.less b/app/assets/less/components/url.less new file mode 100644 index 0000000..9006d2c --- /dev/null +++ b/app/assets/less/components/url.less @@ -0,0 +1,8 @@ + +.url { + + &-query, + &-fragment { + color: #9c9c9c; + } +} From 51a2675366f5054aa1d16a387457bc7b87745c45 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 12:18:13 +0100 Subject: [PATCH 08/10] app/views/callback/show.volt: use UrlStyle Helper. --- app/views/callback/show.volt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/callback/show.volt b/app/views/callback/show.volt index 6b776d8..9096754 100644 --- a/app/views/callback/show.volt +++ b/app/views/callback/show.volt @@ -15,7 +15,7 @@ aria-expanded="true" aria-controls="request{{ index }}"> - {{ icon('android-locate') }} {{ req.getUri() }} + {{ icon('android-locate') }} {{ urlStyle(req.getUri()) }} From 0aa1107797bd0f52a9797f2df5c4971ec04f800c Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 12:33:55 +0100 Subject: [PATCH 09/10] app/models/Data/RequestMeta.php: adding getUriQuery() --- app/models/Data/RequestMeta.php | 43 +++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/app/models/Data/RequestMeta.php b/app/models/Data/RequestMeta.php index 808025d..df164fa 100644 --- a/app/models/Data/RequestMeta.php +++ b/app/models/Data/RequestMeta.php @@ -25,6 +25,13 @@ class RequestMeta extends Model */ protected $uri; + /** + * Cached query parameters from request uri. + * + * @var array|null + */ + protected $_uri_query = null; + /** * * @var string @@ -72,6 +79,19 @@ class RequestMeta extends Model return $this; } + /** + * @param string $uri + * @return RequestMeta + */ + public function setUri($uri) + { + $this->uri = (string) $uri; + + // New uri string, invalidate query. + $this->_uri_query = null; + return $this; + } + /** * @return string */ @@ -81,15 +101,28 @@ class RequestMeta extends Model } /** - * @param string $uri - * @return RequestMeta + * @return array */ - public function setUri($uri) + public function getUriQuery() { - $this->uri = (string) $uri; - return $this; + if ($this->_uri_query === null) { + + $query = (string) parse_url($this->getUri(), PHP_URL_QUERY); + + $ret = array(); + foreach(explode('&', $query) as $v) { + @list($k, $v) = explode('=', $v, 2); + if (strlen($k) > 0) { + $ret[$k] = $v; + } + } + $this->_uri_query = $ret; + } + + return $this->_uri_query; } + /** * Method to set the value of field Timestamp * From 80b0cd9063c63ea509bff646a8ab5b2f0ac0fca0 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Sun, 18 Mar 2018 12:47:23 +0100 Subject: [PATCH 10/10] app/views/callback/show.volt: show query parameters in detail view. --- app/views/callback/show.volt | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/views/callback/show.volt b/app/views/callback/show.volt index 9096754..afa613a 100644 --- a/app/views/callback/show.volt +++ b/app/views/callback/show.volt @@ -36,6 +36,33 @@
+ {% if req.getUriQuery()|length > 0 %} + + + +
+ + + + + + + {% for key, val in req.getUriQuery() %} + + + + + {% endfor %} + +
KeyValue
{{ key|e }}{{ val|e }}
+
+ + {% endif %} +