diff --git a/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6 b/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6
index c57afe2..5e67833 100644
--- a/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6
+++ b/assets/javascripts/discourse/initializers/extend-for-solved-button.js.es6
@@ -44,12 +44,31 @@ export default {
});
PostMenuView.registerButton(function(visibleButtons){
- if (this.get('post.can_accept_answer')) {
- visibleButtons.splice(0,0,new Button('acceptAnswer', 'accepted_answer.accept_answer', 'check-square-o', {className: 'unaccepted'}));
+ var position = 0;
+
+ var canAccept = this.get('post.can_accept_answer');
+ var canUnaccept = this.get('post.can_unaccept_answer');
+ var accepted = this.get('post.accepted_answer');
+ var isOp = Discourse.User.currentProp("id") !== this.get('post.topic.user_id');
+
+ if (canAccept && !isOp) {
+ // first hidden position
+ if (this.get('collapsed')) { return; }
+ position = visibleButtons.length - 2;
}
- if (this.get('post.can_unaccept_answer')) {
- visibleButtons.splice(0,0,new Button('unacceptAnswer', 'accepted_answer.unaccept_answer', 'check-square', {className: 'accepted'}));
+ if (canAccept) {
+ visibleButtons.splice(position,0,new Button('acceptAnswer', 'accepted_answer.accept_answer', 'check-square-o', {className: 'unaccepted'}));
}
+ if (canUnaccept || accepted) {
+ var locale = canUnaccept ? 'accepted_answer.unaccept_answer' : 'accepted_answer.accepted_answer';
+ visibleButtons.splice(position,0,new Button(
+ 'unacceptAnswer',
+ locale,
+ 'check-square',
+ {className: 'accepted'})
+ );
+ }
+
});
PostMenuView.reopen({
@@ -58,6 +77,8 @@ export default {
}.observes('post.accepted_answer'),
clickUnacceptAnswer: function(){
+ if (!this.get('post.can_unaccept_answer')) { return; }
+
this.set('post.can_accept_answer', true);
this.set('post.can_unaccept_answer', false);
this.set('post.accepted_answer', false);
diff --git a/assets/stylesheets/solutions.scss b/assets/stylesheets/solutions.scss
index 5c7544f..469246a 100644
--- a/assets/stylesheets/solutions.scss
+++ b/assets/stylesheets/solutions.scss
@@ -2,8 +2,9 @@
color: green;
}
+// you can style accepted answers however your want
.topic-post.accepted-answer .topic-body {
- background-color: #E9FFE0;
+// background-color: #E9FFE0;
}
.cooked .solved {
diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml
index 5396f49..98f6094 100644
--- a/config/locales/client.en.yml
+++ b/config/locales/client.en.yml
@@ -4,4 +4,5 @@ en:
allow_accepted_answers: "Allow users to accept answers"
accept_answer: "Accept answer"
unaccept_answer: "Unaccept answer"
+ accepted_answer: "Accepted answer"
accepted_html: " Solved by {{username}} in post #{{post_number}}"