From d62e856fc50e965922c29a15240140a49c4db833 Mon Sep 17 00:00:00 2001 From: Justin DiRose Date: Wed, 3 Jul 2019 10:26:28 -0500 Subject: [PATCH] FEATURE: Tags display on knowledge explorer --- .../components/knowledge-explorer-tag.js.es6 | 13 +++++++++++ .../components/knowledge-explorer-tags.js.es6 | 23 +++++++++++++++++++ .../components/knowledge-explorer-tag.hbs | 9 ++++++++ .../components/knowledge-explorer-tags.hbs | 11 +++++++++ .../templates/knowledge-explorer.hbs | 3 +++ 5 files changed, 59 insertions(+) create mode 100644 assets/javascripts/discourse/components/knowledge-explorer-tag.js.es6 create mode 100644 assets/javascripts/discourse/components/knowledge-explorer-tags.js.es6 create mode 100644 assets/javascripts/discourse/templates/components/knowledge-explorer-tag.hbs create mode 100644 assets/javascripts/discourse/templates/components/knowledge-explorer-tags.hbs diff --git a/assets/javascripts/discourse/components/knowledge-explorer-tag.js.es6 b/assets/javascripts/discourse/components/knowledge-explorer-tag.js.es6 new file mode 100644 index 0000000..744460f --- /dev/null +++ b/assets/javascripts/discourse/components/knowledge-explorer-tag.js.es6 @@ -0,0 +1,13 @@ +import computed from "ember-addons/ember-computed-decorators"; +import DiscourseURL from "discourse/lib/url"; + +export default Ember.Component.extend({ + @computed("category", "tag") + href(category, tag) { + return "/knowledge-explorer"; + }, + + click() { + DiscourseURL.routeTo(this.href, { replaceURL: true }); + } +}); diff --git a/assets/javascripts/discourse/components/knowledge-explorer-tags.js.es6 b/assets/javascripts/discourse/components/knowledge-explorer-tags.js.es6 new file mode 100644 index 0000000..a55a109 --- /dev/null +++ b/assets/javascripts/discourse/components/knowledge-explorer-tags.js.es6 @@ -0,0 +1,23 @@ +import computed from "ember-addons/ember-computed-decorators"; +import { on, observes } from "ember-addons/ember-computed-decorators"; +import { ajax } from "discourse/lib/ajax"; + +function sortAlpha(a, b) { + let aName = a.id.toLowerCase(); + let bName = b.id.toLowerCase(); + return aName < bName ? -1 : aName > bName ? 1 : 0; +} + +function sortCount(a, b) { + let aCount = a.count; + let bCount = b.count; + + return bCount - aCount || a.id.localeCompare(b.id); +} + +let cachedResults = null; +let lastFetchDate = null; + +export default Ember.Component.extend({ + classNames: "knowledge-explorer-tags" +}); diff --git a/assets/javascripts/discourse/templates/components/knowledge-explorer-tag.hbs b/assets/javascripts/discourse/templates/components/knowledge-explorer-tag.hbs new file mode 100644 index 0000000..60dcdad --- /dev/null +++ b/assets/javascripts/discourse/templates/components/knowledge-explorer-tag.hbs @@ -0,0 +1,9 @@ +
+ {{#unless tag.active}} + {{d-icon "plus"}} + {{/unless}} + {{tag.id}} ({{tag.count}}) + {{#if tag.active}} + {{d-icon "times-circle"}} + {{/if}} +
diff --git a/assets/javascripts/discourse/templates/components/knowledge-explorer-tags.hbs b/assets/javascripts/discourse/templates/components/knowledge-explorer-tags.hbs new file mode 100644 index 0000000..e2b2aa9 --- /dev/null +++ b/assets/javascripts/discourse/templates/components/knowledge-explorer-tags.hbs @@ -0,0 +1,11 @@ +{{#each model.tags as |tag|}} + {{knowledge-explorer-tag tag=tag}} +{{/each}} + +{{#if subtags}} + {{#each subtags as |tag|}} + {{knowledge-explorer-tag + tag=tag + subtag=true}} + {{/each}} +{{/if}} diff --git a/assets/javascripts/discourse/templates/knowledge-explorer.hbs b/assets/javascripts/discourse/templates/knowledge-explorer.hbs index 34108a4..d8909f5 100644 --- a/assets/javascripts/discourse/templates/knowledge-explorer.hbs +++ b/assets/javascripts/discourse/templates/knowledge-explorer.hbs @@ -1,3 +1,6 @@
+ {{knowledge-explorer-tags + model=model + searchResults=searchResults}} {{knowledge-explorer-topic-list model=model}}