From 895fd41f3912c869a47af4251cc48849dcc074b2 Mon Sep 17 00:00:00 2001 From: Justin DiRose Date: Fri, 12 Jun 2020 12:55:10 -0500 Subject: [PATCH] FEATURE: Swap to raw for topic list (#6) In order to get access to other topic list status icons (i.e. solved), we must use raw templates. --- ...om-discourse-discourse-master--rubocop-yml | 153 +----------------- .../knowledge-explorer-topic-link.js.es6 | 6 - .../knowledge-explorer-topic-list.js.es6 | 14 ++ .../models/knowledge-explorer.js.es6 | 15 +- .../knowledge-explorer-topic-link.hbs | 1 - .../knowledge-explorer-topic-list.hbs | 21 +-- .../knowledge-explorer-topic-link.hbr | 1 + .../knowledge-explorer-topic-list-item.hbr | 15 ++ .../common/knowledge-explorer.scss | 7 +- 9 files changed, 45 insertions(+), 188 deletions(-) delete mode 100644 assets/javascripts/discourse/components/knowledge-explorer-topic-link.js.es6 delete mode 100644 assets/javascripts/discourse/templates/components/knowledge-explorer-topic-link.hbs create mode 100644 assets/javascripts/discourse/templates/knowledge-explorer-topic-link.hbr create mode 100644 assets/javascripts/discourse/templates/knowledge-explorer-topic-list-item.hbr diff --git a/.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml b/.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml index 0a15cd9..d46296c 100644 --- a/.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml +++ b/.rubocop-https---raw-githubusercontent-com-discourse-discourse-master--rubocop-yml @@ -1,151 +1,2 @@ -require: - - rubocop-discourse - -AllCops: - TargetRubyVersion: 2.4 - DisabledByDefault: true - Exclude: - - "db/schema.rb" - - "bundle/**/*" - - "vendor/**/*" - - "node_modules/**/*" - - "public/**/*" - - "plugins/**/gems/**/*" - -# Prefer &&/|| over and/or. -Style/AndOr: - Enabled: true - -Style/FrozenStringLiteralComment: - Enabled: true - -# Do not use braces for hash literals when they are the last argument of a -# method call. -Style/BracesAroundHashParameters: - Enabled: true - -# Align `when` with `case`. -Layout/CaseIndentation: - Enabled: true - -# Align comments with method definitions. -Layout/CommentIndentation: - Enabled: true - -# No extra empty lines. -Layout/EmptyLines: - Enabled: true - -# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }. -Style/HashSyntax: - Enabled: true - -# Two spaces, no tabs (for indentation). -Layout/IndentationWidth: - Enabled: true - -Layout/SpaceAfterColon: - Enabled: true - -Layout/SpaceAfterComma: - Enabled: true - -Layout/SpaceAroundEqualsInParameterDefault: - Enabled: true - -Layout/SpaceAroundKeyword: - Enabled: true - -Layout/SpaceAroundOperators: - Enabled: true - -Layout/SpaceBeforeFirstArg: - Enabled: true - -# Defining a method with parameters needs parentheses. -Style/MethodDefParentheses: - Enabled: true - -# Use `foo {}` not `foo{}`. -Layout/SpaceBeforeBlockBraces: - Enabled: true - -# Use `foo { bar }` not `foo {bar}`. -Layout/SpaceInsideBlockBraces: - Enabled: true - -# Use `{ a: 1 }` not `{a:1}`. -Layout/SpaceInsideHashLiteralBraces: - Enabled: true - -Layout/SpaceInsideParens: - Enabled: true - -# Detect hard tabs, no hard tabs. -Layout/Tab: - Enabled: true - -# Blank lines should not have any spaces. -Layout/TrailingEmptyLines: - Enabled: true - -# No trailing whitespace. -Layout/TrailingWhitespace: - Enabled: true - -Lint/Debugger: - Enabled: true - -Layout/BlockAlignment: - Enabled: true - -# Align `end` with the matching keyword or starting expression except for -# assignments, where it should be aligned with the LHS. -Layout/EndAlignment: - Enabled: true - EnforcedStyleAlignWith: variable - -# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg. -Lint/RequireParentheses: - Enabled: true - -Lint/ShadowingOuterLocalVariable: - Enabled: true - -Layout/MultilineMethodCallIndentation: - Enabled: true - EnforcedStyle: indented - -Layout/HashAlignment: - Enabled: true - -Bundler/OrderedGems: - Enabled: false - -Style/SingleLineMethods: - Enabled: true - -Style/Semicolon: - Enabled: true - AllowAsExpressionSeparator: true - -Style/RedundantReturn: - Enabled: true - -DiscourseCops/NoChdir: - Enabled: true - Exclude: - - 'spec/**/*' # Specs are run sequentially, so chdir can be used - - 'plugins/*/spec/**/*' - -DiscourseCops/NoURIEscapeEncode: - Enabled: true - -Style/GlobalVars: - Enabled: true - Severity: warning - Exclude: - - 'lib/tasks/**/*' - - 'script/**/*' - - 'spec/**/*.rb' - - 'plugins/*/spec/**/*' +inherit_gem: + rubocop-discourse: default.yml diff --git a/assets/javascripts/discourse/components/knowledge-explorer-topic-link.js.es6 b/assets/javascripts/discourse/components/knowledge-explorer-topic-link.js.es6 deleted file mode 100644 index cc00a52..0000000 --- a/assets/javascripts/discourse/components/knowledge-explorer-topic-link.js.es6 +++ /dev/null @@ -1,6 +0,0 @@ -export default Ember.Component.extend({ - click() { - this.selectTopic(this.topic.id); - return false; - } -}); diff --git a/assets/javascripts/discourse/components/knowledge-explorer-topic-list.js.es6 b/assets/javascripts/discourse/components/knowledge-explorer-topic-list.js.es6 index 354d7c4..0abf7ff 100644 --- a/assets/javascripts/discourse/components/knowledge-explorer-topic-list.js.es6 +++ b/assets/javascripts/discourse/components/knowledge-explorer-topic-list.js.es6 @@ -12,6 +12,20 @@ export default Ember.Component.extend({ return order === "activity"; }, + // need to handle clicks here since links are in a raw view + didInsertElement() { + const topicLinks = this.element.getElementsByClassName( + "knowledge-explorer-topic-link" + ); + + for (let i = 0, max = topicLinks.length; i < max; i++) { + topicLinks[i].addEventListener("click", e => { + const topicId = e.target.dataset.topicId; + this.selectTopic(topicId); + }); + } + }, + actions: { sortListActivity() { this.sortBy("activity"); diff --git a/assets/javascripts/discourse/models/knowledge-explorer.js.es6 b/assets/javascripts/discourse/models/knowledge-explorer.js.es6 index 1b89484..3a967e7 100644 --- a/assets/javascripts/discourse/models/knowledge-explorer.js.es6 +++ b/assets/javascripts/discourse/models/knowledge-explorer.js.es6 @@ -25,14 +25,15 @@ export default { return data; }); }); - } - else { + } else { promise = promise.then(data => { - data.topics.topic_list.topics = data.topics.topic_list.topics.map(topic => { - topic = Topic.create(topic); - return topic; - }); - return data; + data.topics.topic_list.topics = data.topics.topic_list.topics.map( + topic => { + topic = Topic.create(topic); + return topic; + } + ); + return data; }); } diff --git a/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-link.hbs b/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-link.hbs deleted file mode 100644 index 82d6760..0000000 --- a/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-link.hbs +++ /dev/null @@ -1 +0,0 @@ -{{topic.title}} diff --git a/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs b/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs index 46b8fbd..7da7af3 100644 --- a/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs +++ b/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs @@ -24,26 +24,7 @@ {{#each topics as |topic|}} - - - - {{topic-status topic=topic}} - {{knowledge-explorer-topic-link - topic=topic - selectTopic=selectTopic - }} - - - {{category-link topic.category}} - {{#each topic.tags as |tag|}} - {{tag}} - {{/each}} - - - - {{format-date topic.bumped_at format="tiny" noTitle="true"}} - - + {{raw "knowledge-explorer-topic-list-item" topic=topic}} {{/each}} diff --git a/assets/javascripts/discourse/templates/knowledge-explorer-topic-link.hbr b/assets/javascripts/discourse/templates/knowledge-explorer-topic-link.hbr new file mode 100644 index 0000000..e472330 --- /dev/null +++ b/assets/javascripts/discourse/templates/knowledge-explorer-topic-link.hbr @@ -0,0 +1 @@ +{{{topic.fancyTitle}}} diff --git a/assets/javascripts/discourse/templates/knowledge-explorer-topic-list-item.hbr b/assets/javascripts/discourse/templates/knowledge-explorer-topic-list-item.hbr new file mode 100644 index 0000000..5beb93a --- /dev/null +++ b/assets/javascripts/discourse/templates/knowledge-explorer-topic-list-item.hbr @@ -0,0 +1,15 @@ + + + + {{~raw "topic-status" topic=topic}} + {{~raw "knowledge-explorer-topic-link" topic=topic}} + + + {{category-link topic.category}} + {{discourse-tags topic mode="list"}} + + + + {{format-date topic.bumped_at format="tiny" noTitle="true"}} + + diff --git a/assets/stylesheets/common/knowledge-explorer.scss b/assets/stylesheets/common/knowledge-explorer.scss index c80ad69..1f96208 100644 --- a/assets/stylesheets/common/knowledge-explorer.scss +++ b/assets/stylesheets/common/knowledge-explorer.scss @@ -132,13 +132,14 @@ max-width: 30vw; } + .discourse-tags { + font-weight: normal; + font-size: $font-down-1; + } .knowledge-explorer-topic-link { color: $tertiary; cursor: pointer; } - .discourse-tag { - padding-right: 5px; - } } .knowledge-explorer-topic { display: flex;