From 220369a65a9d41946d19cb1e9435a4b2a6574b7b Mon Sep 17 00:00:00 2001 From: Isaac Janzen Date: Mon, 18 Dec 2023 10:58:56 -0700 Subject: [PATCH] lint --- .eslintrc | 8 -- .eslintrc.cjs | 1 + .prettierrc | 17 --- .prettierrc.cjs | 1 + .streerc | 2 + .template-lintrc.cjs | 1 + .template-lintrc.js | 4 - .../discourse/components/kanban/card.gjs | 133 +++++++++--------- .../discourse/components/kanban/controls.gjs | 40 +++--- .../components/kanban/copy-link-button.gjs | 24 ++-- .../discourse/components/kanban/list.gjs | 23 ++- .../components/kanban/modal/options.gjs | 132 ++++++++--------- .../discourse/components/kanban/nav.gjs | 24 ++-- .../discourse/components/kanban/wrapper.gjs | 9 +- .../discovery-list-area/kanban-board.gjs | 2 +- .../initialize-discourse-kanban.js | 7 +- .../discourse/services/kanban-manager.js | 8 +- 17 files changed, 202 insertions(+), 234 deletions(-) delete mode 100644 .eslintrc create mode 100644 .eslintrc.cjs delete mode 100644 .prettierrc create mode 100644 .prettierrc.cjs create mode 100644 .streerc create mode 100644 .template-lintrc.cjs delete mode 100644 .template-lintrc.js diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 3118ddb..0000000 --- a/.eslintrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "eslint-config-discourse", - "ignorePatterns": ["javascripts/vendor/*"], - "globals": { - "settings": "readonly", - "themePrefix": "readonly" - } -} diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 0000000..1e0f0f5 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1 @@ +module.exports = require("@discourse/lint-configs/eslint-theme"); diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 8a1423e..0000000 --- a/.prettierrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "plugins": ["prettier-plugin-ember-template-tag"], - "overrides": [ - { - "files": "*.gjs", - "options": { - "parser": "ember-template-tag" - } - }, - { - "files": "*.gts", - "options": { - "parser": "ember-template-tag" - } - } - ] -} diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..df3d063 --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1 @@ +module.exports = require("@discourse/lint-configs/prettier"); \ No newline at end of file diff --git a/.streerc b/.streerc new file mode 100644 index 0000000..88c0133 --- /dev/null +++ b/.streerc @@ -0,0 +1,2 @@ +--print-width=100 +--plugins=plugin/trailing_comma,plugin/disable_auto_ternary \ No newline at end of file diff --git a/.template-lintrc.cjs b/.template-lintrc.cjs new file mode 100644 index 0000000..5355ea0 --- /dev/null +++ b/.template-lintrc.cjs @@ -0,0 +1 @@ +module.exports = require("@discourse/lint-configs/template-lint"); diff --git a/.template-lintrc.js b/.template-lintrc.js deleted file mode 100644 index a558b8e..0000000 --- a/.template-lintrc.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - plugins: ["ember-template-lint-plugin-discourse"], - extends: "discourse:recommended", -}; diff --git a/javascripts/discourse/components/kanban/card.gjs b/javascripts/discourse/components/kanban/card.gjs index d972742..eec9ced 100644 --- a/javascripts/discourse/components/kanban/card.gjs +++ b/javascripts/discourse/components/kanban/card.gjs @@ -1,22 +1,75 @@ import Component from "@glimmer/component"; -import i18n from "discourse-common/helpers/i18n"; -import eq from "truth-helpers/helpers/eq"; -import renderTag from "discourse/lib/render-tag"; -import TopicStatus from "discourse/components/topic-status"; -import { renderAvatar } from "discourse/helpers/user-avatar"; -import { htmlSafe } from "@ember/template"; -import icon from "discourse-common/helpers/d-icon"; -import PluginOutlet from "discourse/components/plugin-outlet"; -import { hash } from "@ember/helper"; -import { getOwner } from "@ember/application"; -import concatClass from "discourse/helpers/concat-class"; import { tracked } from "@glimmer/tracking"; -import { action } from "@ember/object"; +import { getOwner } from "@ember/application"; +import { hash } from "@ember/helper"; import { on } from "@ember/modifier"; +import { action } from "@ember/object"; import { inject as service } from "@ember/service"; +import { htmlSafe } from "@ember/template"; +import PluginOutlet from "discourse/components/plugin-outlet"; +import TopicStatus from "discourse/components/topic-status"; +import concatClass from "discourse/helpers/concat-class"; +import { renderAvatar } from "discourse/helpers/user-avatar"; +import renderTag from "discourse/lib/render-tag"; +import icon from "discourse-common/helpers/d-icon"; import not from "truth-helpers/helpers/not"; export default class KanbanCard extends Component { + @service kanbanManager; + + @tracked dragging; + + // TODO - FIX THIS ONCE CORE EXPORTS IT PROPERLY + formatDate = getOwner(this).resolveRegistration("helper:format-date"); + categoryBadge = getOwner(this).resolveRegistration("helper:category-badge"); + + @action + dragStart(event) { + this.dragging = true; + this.args.setDragData({ topic: this.args.topic }); + event.dataTransfer.dropEffect = "move"; + event.stopPropagation(); + } + + @action + dragEnd(event) { + this.dragging = false; + event.stopPropagation(); + } + + get showTags() { + return settings.show_tags && this.tags.length; + } + + get cardStyle() { + return settings.card_style; + } + + get tags() { + const definitionTags = this.args.definition.params.tags || []; + const discoveryTag = this.kanbanManager.discoveryTag?.id; + const listTags = [...definitionTags, discoveryTag]; + + return this.args.topic.tags + .reject((t) => listTags?.includes(t)) + .map((t) => renderTag(t)); + } + + get showCategory() { + const definitionCategory = this.args.definition.params.category; + const discoveryCategory = this.kanbanManager.discoveryCategory; + return !(definitionCategory || discoveryCategory); + } + + get showDetailed() { + return this.cardStyle === "detailed"; + } + + get lastPoster() { + return this.args.topic.posters.find((poster) => + poster.extras?.includes("latest") + ); + } - - @service kanbanManager; - - @tracked dragging; - - // TODO - FIX THIS ONCE CORE EXPORTS IT PROPERLY - formatDate = getOwner(this).resolveRegistration("helper:format-date"); - categoryBadge = getOwner(this).resolveRegistration("helper:category-badge"); - - @action - dragStart(event) { - this.dragging = true; - this.args.setDragData({ topic: this.args.topic }); - event.dataTransfer.dropEffect = "move"; - event.stopPropagation(); - } - - @action - dragEnd(event) { - this.dragging = false; - event.stopPropagation(); - } - - get showTags() { - return settings.show_tags && this.tags.length; - } - - get cardStyle() { - return settings.card_style; - } - - get tags() { - const definitionTags = this.args.definition.params.tags || []; - const discoveryTag = this.kanbanManager.discoveryTag?.id; - const listTags = [...definitionTags, discoveryTag]; - - return this.args.topic.tags - .reject((t) => listTags?.includes(t)) - .map((t) => renderTag(t)); - } - - get showCategory() { - const definitionCategory = this.args.definition.params.category; - const discoveryCategory = this.kanbanManager.discoveryCategory; - return !(definitionCategory || discoveryCategory); - } - - get showDetailed() { - return this.cardStyle === "detailed"; - } - - get lastPoster() { - return this.args.topic.posters.find((poster) => - poster.extras?.includes("latest") - ); - } } diff --git a/javascripts/discourse/components/kanban/controls.gjs b/javascripts/discourse/components/kanban/controls.gjs index f4fa970..6ec2103 100644 --- a/javascripts/discourse/components/kanban/controls.gjs +++ b/javascripts/discourse/components/kanban/controls.gjs @@ -1,15 +1,29 @@ -import DButton from "discourse/components/d-button"; -import CopyLinkButton from "./copy-link-button"; -import DMenu from "float-kit/components/d-menu"; import Component from "@glimmer/component"; -import KanbanOptionsModal from "./modal/options"; -import { inject as service } from "@ember/service"; +import { fn } from "@ember/helper"; import { action } from "@ember/object"; +import { inject as service } from "@ember/service"; +import DButton from "discourse/components/d-button"; import bodyClass from "discourse/helpers/body-class"; -import { fn } from "@ember/helper"; import i18n from "discourse-common/helpers/i18n"; +import DMenu from "float-kit/components/d-menu"; +import CopyLinkButton from "./copy-link-button"; +import KanbanOptionsModal from "./modal/options"; export default class KanbanControls extends Component { + @service modal; + @service kanbanManager; + + @action + toggleFullscreen() { + this.kanbanManager.fullscreen = !this.kanbanManager.fullscreen; + } + + @action + openSettings(menu) { + this.modal.show(KanbanOptionsModal); + menu.close(); + } +