summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHunternif <hunternif@gmail.com>2019-05-08 00:14:26 +0700
committerHunternif <hunternif@gmail.com>2019-05-08 00:14:26 +0700
commitc8aeb7e0b12be55a233ef13d0bf9a0eacb7a1464 (patch)
tree95a11eae3bd3427243f0cca26430dfde4b8307bc
parentde87b632c9858a5348d3132f2a15c5e6aeddfdba (diff)
client: pass query to post page and metric sorter
-rw-r--r--client/js/controllers/post_main_controller.js11
-rw-r--r--client/js/controls/metric_header_control.js11
-rw-r--r--client/js/views/posts_header_view.js5
3 files changed, 12 insertions, 15 deletions
diff --git a/client/js/controllers/post_main_controller.js b/client/js/controllers/post_main_controller.js
index 1f802c6..38e1a42 100644
--- a/client/js/controllers/post_main_controller.js
+++ b/client/js/controllers/post_main_controller.js
@@ -24,17 +24,6 @@ class PostMainController extends BasePostController {
PostList.getAround(ctx.parameters.id, query),
]).then(responses => {
const [post, aroundResponse] = responses;
-
- // remove junk from query, but save it into history so that it can
- // be still accessed after history navigation / page refresh
- if (parameters.query || parameters.metrics) {
- ctx.state.parameters = parameters;
- const url = editMode ?
- uri.formatClientLink('post', ctx.parameters.id, 'edit') :
- uri.formatClientLink('post', ctx.parameters.id);
- router.replace(url, ctx.state, false);
- }
-
this._post = post;
this._view = new PostMainView({
post: post,
diff --git a/client/js/controls/metric_header_control.js b/client/js/controls/metric_header_control.js
index 9f62e1f..6a70b5b 100644
--- a/client/js/controls/metric_header_control.js
+++ b/client/js/controls/metric_header_control.js
@@ -25,7 +25,7 @@ class MetricHeaderControl extends events.EventTarget {
this._ctx.allMetrics = response.results;
this._addSelectedMetrics(ctx.parameters.metrics);
this._installMetrics(response.results);
- this._refreshStartSortingBtn();
+ this._refreshStartSortingButton();
});
}
@@ -66,15 +66,20 @@ class MetricHeaderControl extends events.EventTarget {
metrics: this._selectedMetrics
.map(m => m.tag.names[0]).join(' '),
});
- this._refreshStartSortingBtn();
+ this._refreshStartSortingButton();
this.dispatchEvent(new CustomEvent('submit'));
}
- _refreshStartSortingBtn() {
+ _refreshStartSortingButton() {
let btn = this._hostNode.querySelector('a.sorting');
btn.hidden = !this._selectedMetrics.length;
btn.setAttribute('href', views.getMetricSorterUrl('random', this._ctx.parameters));
}
+
+ refreshQuery(query) {
+ this._ctx.parameters.query = query;
+ this._refreshStartSortingButton();
+ }
}
module.exports = MetricHeaderControl;
diff --git a/client/js/views/posts_header_view.js b/client/js/views/posts_header_view.js
index 86c6998..d8a87ea 100644
--- a/client/js/views/posts_header_view.js
+++ b/client/js/views/posts_header_view.js
@@ -221,7 +221,7 @@ class PostsHeaderView extends events.EventTarget {
} else if (ctx.parameters.relations && this._bulkAddRelationEditor) {
this._openBulkEditor(this._bulkAddRelationEditor);
}
- if (ctx.parameters.metrics) {
+ if (ctx.parameters.metrics && this._metricsBlockNode) {
this._toggleMetricsBlock(true);
}
}
@@ -364,6 +364,9 @@ class PostsHeaderView extends events.EventTarget {
_evtFormSubmit(e) {
e.preventDefault();
this._navigate();
+ if (this._metricControl) {
+ this._metricControl.refreshQuery(this._queryInputNode.value);
+ }
}
_evtRandomizeButtonClick(e) {
e.preventDefault();