aboutsummaryrefslogtreecommitdiff
path: root/client
diff options
context:
space:
mode:
authorrr-2017-01-03 21:58:32 +0100
committerrr-2017-01-03 21:58:32 +0100
commit58fabc6e3608e29430f45a7bfef6f347b6471c9b (patch)
treefcbe69cd23d4483c2746355acb2142cdb9c3eb03 /client
parent9edaaffec230130566289deb16cc79ee37597a9e (diff)
client/merge: add search button
Diffstat (limited to 'client')
-rw-r--r--client/css/post-detail-view.styl10
-rw-r--r--client/html/post_merge_side.tpl14
-rw-r--r--client/js/views/post_merge_view.js48
3 files changed, 44 insertions, 28 deletions
diff --git a/client/css/post-detail-view.styl b/client/css/post-detail-view.styl
index 32e7497..98c3424 100644
--- a/client/css/post-detail-view.styl
+++ b/client/css/post-detail-view.styl
@@ -14,9 +14,6 @@
.right-post-container
width: 47%
float: right
- input[type=text]
- width: 8em
- margin-top: -2px
.post-mirror
margin-bottom: 1em
&:after
@@ -31,3 +28,10 @@
margin-right: 0.35em
.target-post, .target-post-content
margin: 1em 0
+ header
+ margin-bottom: 1em
+ label
+ display: inline-block
+ margin-top: 2px
+ input[type=text]
+ width: 6em
diff --git a/client/html/post_merge_side.tpl b/client/html/post_merge_side.tpl
index 60cc080..cebc3bb 100644
--- a/client/html/post_merge_side.tpl
+++ b/client/html/post_merge_side.tpl
@@ -1,8 +1,12 @@
-<% if (ctx.editable) { %>
- <p>Post # <input type='text' pattern='^[0-9]+$' value='<%- ctx.post ? ctx.post.id : '' %>'/></p>
-<% } else { %>
- <p>Post # <input type='text' pattern='^[0-9]+$' value='<%- ctx.post ? ctx.post.id : '' %>' readonly/></p>
-<% } %>
+<header>
+ <label for='merge-id-<%- ctx.name %>'>Post #</label>
+ <% if (ctx.editable) { %>
+ <input type='text' id='merge-id-<%-ctx.name %>' pattern='^[0-9]+$' value='<%- ctx.post ? ctx.post.id : '' %>'/>
+ <input type='button' value='Search'/>
+ <% } else { %>
+ <input type='text' id='merge-id-<%-ctx.name %>' pattern='^[0-9]+$' value='<%- ctx.post ? ctx.post.id : '' %>' readonly/>
+ <% } %>
+</header>
<% if (ctx.post) { %>
<div class='post-thumbnail'>
diff --git a/client/js/views/post_merge_view.js b/client/js/views/post_merge_view.js
index fb17527..04ed21d 100644
--- a/client/js/views/post_merge_view.js
+++ b/client/js/views/post_merge_view.js
@@ -53,25 +53,28 @@ class PostMergeView extends events.EventTarget {
}
_refreshLeftSide() {
- views.replaceContent(
- this._leftSideNode,
- sideTemplate(Object.assign({}, this._ctx, {
- post: this._leftPost,
- name: 'left',
- editable: false})));
+ this._refreshSide(this._leftPost, this._leftSideNode, 'left', false);
}
_refreshRightSide() {
+ this._refreshSide(this._rightPost, this._rightSideNode, 'right', true);
+ }
+
+ _refreshSide(post, sideNode, sideName, isEditable) {
views.replaceContent(
- this._rightSideNode,
+ sideNode,
sideTemplate(Object.assign({}, this._ctx, {
- post: this._rightPost,
- name: 'right',
- editable: true})));
+ post: post,
+ name: sideName,
+ editable: isEditable})));
- if (this._targetPostFieldNode) {
- this._targetPostFieldNode.addEventListener(
- 'keydown', e => this._evtTargetPostFieldKeyDown(e));
+ let postIdNode = sideNode.querySelector('input[type=text]');
+ let searchButtonNode = sideNode.querySelector('input[type=button]');
+ if (isEditable) {
+ postIdNode.addEventListener(
+ 'keydown', e => this._evtPostSearchFieldKeyDown(e));
+ searchButtonNode.addEventListener(
+ 'click', e => this._evtPostSearchButtonClick(e, postIdNode));
}
}
@@ -94,7 +97,7 @@ class PostMergeView extends events.EventTarget {
}));
}
- _evtTargetPostFieldKeyDown(e) {
+ _evtPostSearchFieldKeyDown(e) {
const key = e.which;
if (key !== KEY_RETURN) {
return;
@@ -103,7 +106,17 @@ class PostMergeView extends events.EventTarget {
e.preventDefault();
this.dispatchEvent(new CustomEvent('select', {
detail: {
- postId: this._targetPostFieldNode.value,
+ postId: e.target.value,
+ },
+ }));
+ }
+
+ _evtPostSearchButtonClick(e, textNode) {
+ e.target.blur();
+ e.preventDefault();
+ this.dispatchEvent(new CustomEvent('select', {
+ detail: {
+ postId: textNode.value,
},
}));
}
@@ -119,11 +132,6 @@ class PostMergeView extends events.EventTarget {
get _rightSideNode() {
return this._hostNode.querySelector('.right-post-container');
}
-
- get _targetPostFieldNode() {
- return this._formNode.querySelector(
- '.post-mirror input:not([readonly])[type=text]');
- }
}
module.exports = PostMergeView;

© 2015 - 2026 Jakob L. Kreuze