feat(plugins/discussions): add plugin_discussions_categories and plugin_discussions_categories_limit support (#751) [skip ci]

This commit is contained in:
Simon Lecoq
2022-01-09 19:53:48 +01:00
committed by GitHub
parent 5907c356f8
commit 2123056288
3 changed files with 18 additions and 4 deletions

View File

@@ -7,8 +7,9 @@
return null return null
//Load inputs //Load inputs
imports.metadata.plugins.discussions.inputs({data, account, q}) const {categories:_categories, "categories.limit":_categories_limit} = imports.metadata.plugins.discussions.inputs({data, account, q})
const discussions = {categories:{}, upvotes:{discussions:0, comments:0}} const discussions = {categories:{}, upvotes:{discussions:0, comments:0}}
discussions.display = {categories:_categories ? {limit:_categories_limit || Infinity} : null}
//Fetch general statistics //Fetch general statistics
const stats = Object.fromEntries(Object.entries((await graphql(queries.discussions.statistics({login}))).user).map(([key, value]) => [key, value.totalCount])) const stats = Object.fromEntries(Object.entries((await graphql(queries.discussions.statistics({login}))).user).map(([key, value]) => [key, value.totalCount]))

View File

@@ -11,4 +11,17 @@ inputs:
plugin_discussions: plugin_discussions:
description: GitHub discussions metrics description: GitHub discussions metrics
type: boolean type: boolean
default: no default: no
# Display discussion categories you have taken part in
plugin_discussions_categories:
description: Display discussion categories
type: boolean
default: yes
# Maximum number of categories to display (note that these are sorted desc)
# Set to 0 to disable limitations
plugin_discussions_categories_limit:
description: Number of discussion categories to display
type: number
default: 0

View File

@@ -40,11 +40,11 @@
</div> </div>
</section> </section>
</div> </div>
<% if (Object.keys(plugins.discussions.categories.stats).length) { %> <% if ((plugins.discussions.display.categories)&&(Object.keys(plugins.discussions.categories.stats).length)) { %>
<div class="row fill-width"> <div class="row fill-width">
<section> <section>
<div class="field wrap"> <div class="field wrap">
<% for (const [category, posts] of Object.entries(plugins.discussions.categories.stats)) { %> <% for (const [category, posts] of Object.entries(plugins.discussions.categories.stats).slice(0, plugins.discussions.display.categories.limit)) { %>
<div class="label label-flex"><%= category %> <div class="label-right"><%= posts %></div> </div> <div class="label label-flex"><%= category %> <div class="label-right"><%= posts %></div> </div>
<% } %> <% } %>
</div> </div>