diff --git a/assets/javascripts/discourse/connectors/user-activity-bottom/solved-list.hbs b/assets/javascripts/discourse/connectors/user-activity-bottom/solved-list.hbs new file mode 100644 index 0000000..1423762 --- /dev/null +++ b/assets/javascripts/discourse/connectors/user-activity-bottom/solved-list.hbs @@ -0,0 +1,3 @@ +{{#link-to 'userActivity.solved'}} + {{i18n 'solved.title'}} +{{/link-to}} diff --git a/assets/javascripts/discourse/connectors/user-summary-stat/solved-count.hbs b/assets/javascripts/discourse/connectors/user-summary-stat/solved-count.hbs new file mode 100644 index 0000000..1113352 --- /dev/null +++ b/assets/javascripts/discourse/connectors/user-summary-stat/solved-count.hbs @@ -0,0 +1,3 @@ +{{#link-to 'userActivity.solved'}} + {{user-stat value=model.solved_count label="solved.solution_summary"}} +{{/link-to}} diff --git a/assets/javascripts/discourse/routes/user-activity-solved.js.es6 b/assets/javascripts/discourse/routes/user-activity-solved.js.es6 new file mode 100644 index 0000000..1a9198a --- /dev/null +++ b/assets/javascripts/discourse/routes/user-activity-solved.js.es6 @@ -0,0 +1,6 @@ +import UserActivityStreamRoute from "discourse/routes/user-activity-stream"; + +export default UserActivityStreamRoute.extend({ + userActionType: 15, + noContentHelpKey: "solved.no_solutions" +}); diff --git a/assets/javascripts/discourse/solved-route-map.js.es6 b/assets/javascripts/discourse/solved-route-map.js.es6 new file mode 100644 index 0000000..523e615 --- /dev/null +++ b/assets/javascripts/discourse/solved-route-map.js.es6 @@ -0,0 +1,6 @@ +export default { + resource: 'user.userActivity', + map() { + this.route('solved'); + } +}; diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index ce22902..652b645 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -1,11 +1,15 @@ en: js: solved: + title: "Solved" allow_accepted_answers: "Allow topic owner and staff to mark a reply as the solution" accept_answer: "This reply solves the problem" has_accepted_answer: "This topic has a solution" unaccept_answer: "This reply no longer solves the problem" accepted_answer: "Solution" solution: "Solution" + solution_summary: + one: "solution " + other: "solutions " accepted_html: " Solved by {{username}} in post #{{post_number}}" accepted_notification: "
{{username}} {{description}}
" diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml index ce4e25f..787b6dc 100644 --- a/config/locales/server.en.yml +++ b/config/locales/server.en.yml @@ -7,3 +7,7 @@ en: title: "Accepted solutions" xaxis: "Day" yaxis: "Total" + solved: + no_solutions: + self: "You have no accepted solutions yet." + others: "No accepted solutions." diff --git a/plugin.rb b/plugin.rb index c282f10..9a048bd 100644 --- a/plugin.rb +++ b/plugin.rb @@ -9,6 +9,44 @@ register_asset 'stylesheets/solutions.scss' after_initialize do + # we got to do a one time upgrade + if defined?(UserAction::SOLVED) + unless $redis.get('solved_already_upgraded') + unless UserAction.where(action_type: UserAction::SOLVED).exists? + Rails.logger.info("Upgrading storage for solved") + sql =<