Discourse Retort

ありがとうございます。これは、絵文字ピッカーの位置決めに使用しているライブラリ「popper」の仕様によるものです。popper の使用法を更新して、この問題を修正しました。

「いいね!」 4

まず、このプラグインを引き受けてくれた @angus に心から感謝します🙏 私たちにとって、これは長らくお気に入りのプラグインでした。

最新版にアップデートしましたが、PM(プライベートメッセージ)が機能しなくなったようです。

Uncaught TypeError: Cannot read property 'map' of undefined
    at _retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:57
    at _application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82147
    at Array.map (<anonymous>)
    at h (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82146)
    at i.html (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:78359)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82625)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82345)
    at s (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20534)
    at t.exports (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20521)
    at e (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:19890)
_retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:368 Uncaught TypeError: Cannot read property 'toString' of undefined
    at t.disabledFor (_retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:368)
    at _retort-2c5f89abb14744b92588a2ea05689cf5f5fe97d5b9094543abfacf0b1281182f.js:51
    at _application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82147
    at Array.map (<anonymous>)
    at h (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82146)
    at i.html (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:78359)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82625)
    at i.value (_application-95c62ce5b40d9a86771813c87729bec8a97a85040e9142c1de823499c05122ad.js:82345)
    at s (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20534)
    at t.exports (_vendor-66c7c54e4c3d88ab9a314688832cc04210ab4ae3401f48fb186a7134473d0d0a.js:20521)
「いいね!」 1

ありがとうございます。本日、lodash を削除する PR が取り込まれ、別の非推奨事項が解消されました。

現在は対応済みです:

更新の上、進捗をご報告ください。

「いいね!」 8

今はうまくいっているようです。ありがとうございます! :smile:

見た目を少し良くするために、この CSS を適用しました。

デスクトップ

.emoji-picker.has-limited-set img.emoji {
    width: 40px !important;
    height: 40px !important;
}

.post-retort {
    margin: 0px 2px;
}

.emoji-picker.has-limited-set .limited-emoji-set {
    flex-wrap: wrap;
}

.emoji-picker {
    min-height: 80px;
    max-width: 400px;
}

モバイル

.emoji-picker.has-limited-set .limited-emoji-set {
    flex-wrap: wrap !important;
}

.emoji-picker {
    min-width: 100% !important;
}

「いいね!」 4

プラグインを更新するために Discourse を再構築しました。しかし、プラグインのアイコンがなくなり、すべてのテーマコンポーネントも消えてしまいました。これが関連しているかはわかりませんが、ブラウザのコンソールに以下のメッセージが表示されています。

追記:Retort を無効化したらすべてのテーマコンポーネントが戻ってきたので、どうやら関連しているようです。

「いいね!」 2

私のサイトではこのエラーを頻繁に目にしており、時間が経つとサイト全体が非常に遅くなったり、反応が悪くなったりします。

セーフモードでは問題なく、サイトは高速でレスポンシブです。

Google Chrome の使用状況: バージョン 85.0.4183.83 (公式ビルド) (64 ビット)

エラー内容:

Uncaught TypeError: Cannot read property 'map' of undefined
    at retort-11c49191cf3e1f7f570d8808ade67b5d7fcfdfe612b792c49f064baacdebadc7.js:1
    at application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1
    at Array.map (<anonymous>)
    at h (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at i.html (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at i.value (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at i.value (application-acabe31b416e73071c4f82b77bdadcf4a5fc525109638830baeeacd14e3a3656.js:1)
    at s (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)
    at t.exports (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)
    at e (vendor-bf8061112a1b547c1b596d16d89c9a42af976a43984f9eacd40a8c690c0f30b2.js:1)



 if (!v.default.disabledFor(e))
                    return v.default.storeWidget(r),
                    o.retorts.map(function(e) {   <<<<< ここにエラーが発生します
                        var t = e.usernames
                          , i = e.emoji;
                        return r.attach("retort-toggle", {
                            post: o,
                            usernames: t,
                            emoji: i
                        })

いくつかの CSS の問題と、それらを個人利用のためにどのように解決したか

デスクトップ

最初のものはそれほど問題というわけではありませんが、問題になる可能性があります。投稿にこれほど多くのリポートが寄せられることはめったにありませんが、8 を超えると「投稿コントロール」が崩れてしまうことを知っておくべきです。
screenshot-vapingcommunity.co.uk-2020.09.08-20_46_47

これがリポート 8 件の場合です。見た目も問題ありません。
screenshot-vapingcommunity.co.uk-2020.09.08-20_47_53

デスクトップで使用した CSS

.post-retort {
	margin: 0px 2px;
	border: 1px solid #333;
	border-radius: 5px;
	padding: 3px;
	background-color: #666;
}

スマートフォン: iPhone SE Gen1

モバイル

現時点で、少なくとも小さな画面を使用している場合、投稿コントロールが崩れないリポートの最大数は 1 です。

リポートが 1 つ以上あると、投稿コントロールが画面外に移動してしまいます。

これが CSS を変更した後の見た目です。

モバイル用 CSS

.post-retort {
	border: 1px solid #333;
	border-radius: 5px;
	padding: 3px;
	background-color: #666;
	margin: 2px 2px;
	float: none;
}

上記のモバイル用 CSS を使用すれば、デスクトップでもモバイルと同じ見た目を実現できます。これにより、リポートが投稿コントロールの上に表示されます。

screenshot-vapingcommunity.co.uk-2020.09.08-21_03_13

このプラグインは大変気に入っており、当フォーラムでも頻繁に利用されています。@angus さんが引き受けてくださり、ありがとうございます :+1:

「いいね!」 5

同じエラーが発生しています。テーマコンポーネントは正常に動作していますが、JS が破損しているためリトートピッカーはどこにも表示されません。

Discourse を 2.5.1 に更新し、その後初めてこのプラグインをインストールしました。

「いいね!」 4

wait load は使用できません

「いいね!」 2

私はなぜかアプリを再ビルドすることで、本日の問題が解決しました。
あなた側でも試してみてください。

私も安定版(2.5.1)を使用しています。

「いいね!」 1

はい、GitHub の問題トラッカーで問題を報告したところ、翌日には修正されました。とても素晴らしいですね :slight_smile:

「いいね!」 2

皆さん、こんにちは!このプラグインは気に入っているのですが、最後のアップデート以降、コミュニティフォーラム で中性の黄色い絵文字の代わりに白い肌の絵文字が表示されるようになりました。

設定は変更していません。現在の設定は以下の通りです:

これは想定された動作でしょうか?変更は可能でしょうか?

ありがとうございます!!

「いいね!」 3

こんにちは、皆さん。
Discourse は初心者です。GitHub のソースコードを使用して Discourse をインストールし、すでにオンラインで動作しています。
本日、retort をインストールしました。管理画面の「プラグイン」セクションで、新しくインストールされた retort が表示され、有効化されていることを確認できました。

新しいトピックを投稿し、別のアカウントでそのトピックを確認したところ、新しい retort プラグインを使用できることを期待していましたが、期待していたボタンが表示されません…

再び管理画面に戻り、プラグインのオプションがマニュアルに記載されている通り設定されていることを確認しました。以下の画像をご覧ください。

ここでは 1 つの画像しか投稿できないため、3 つの画像を 1 つにまとめています。

お手数ですが、何が問題なのか教えていただけないでしょうか。ご提案いただければ幸いです。何卒よろしくお願い申し上げます。

「いいね!」 1

それは想定外ですね。週末に確認します。

@kchang Webコンソールを開いて(https://kb.mailster.co/how-can-i-open-the-browsers-console/)、このプラグインや他のプラグイン、テーマから例外が発生していないか確認してください。コンソールに表示された赤い行をここにコピー&ペーストしてください(長い場合は「詳細を隠す」タブに隠してください)。

「いいね!」 2

こんにちは @angus さん、
ご返信ありがとうございます。コンソールにいくつかの赤いラインが表示されているのを見つけました。Opera で投稿にアクセスするたびに以下のような画面になります。

どうやら私の環境の「import」部分に問題があるようです。Discourse は Docker ではなくソースコードからインストールしており、新しいプラグインはいつも discourse/plugins に配置しています。これまでに他の 2 つのプラグインは正常にインストールできました。retort も同じ方法でインストールするのが適切だったのかはわかりません。

ちなみに、以前は npm で @popperjs/core をインストールしていましたが、なぜこのエラーが発生したのか理由がわかりません。

よろしくお願いいたします。

「いいね!」 1

そのインポートは、このプラグインが少し前に更新されたきっかけとなった emoji-picker のリファクタリングの一部として追加されたものです(上記参照)。Discourse には約 1 ヶ月前に追加されました。そのエラーが発生している場合は、Discourse の古いバージョンを実行していることを意味します。おそらく、stable ブランチを実行されているのでしょう。

このプラグインは .discourse_compatibility ファイルを介して stable もサポートしていますが、Docker を使用していない場合は、rake タスク plugin:pull_compatible_all を使用してプラグインをインストールする必要があります。これにより、stable 用の正しいバージョンのプラグインが取得されます。

これが本番環境であり、Discourse に比較的新しい場合は、Docker を使用することを強くお勧めします。Docker は、環境に合わせた正しいプラグインバージョンの取得など、Discourse 環境の管理に関するいくつかの側面を処理するため、これによりトラブルに巻き込まれる可能性を回避できます。

「いいね!」 4

こんにちは。以前、絵文字の使用が制限されていました。少し前のアップデートで、プラグインが機能するように絵文字の制限を解除する必要がありました。

「いいね!」 1

@angus さん、本当にありがとうございます。おっしゃる通り、現在は Discourse の安定ブランチにあります。互換性のある Retort のバージョンを取得するために、rake タスクを実行します。ドメイン名を取得した後、より便利な方法として Docker イメージを使用する予定です。:grinning:

更新:
rake plugin:pull_compatible_all を実行しましたが、どうやら私の Discourse の安定バージョンがあまりにも古いようです。そこで、Discourse の最新バージョンをプルしました。これですべてがスムーズに動作するようになりました:grin:

親切なサポートを再度ありがとうございます:smiley:

「いいね!」 2

Discourse のデフォルトテーマでは、モバイルビューで返信ボタンが「いいね」や共有などの他の下部ツールバーアイコンから分離され、反論アイコンが下に押しやられてしまい、非常に見栄えが悪くなります。
このデザインの問題を修正するために、テーマに追加した以下の CSS を使用しています。参考になれば幸いです。

.mobile-view {
    
    .topic-post nav.post-controls .actions button.reply {
        margin: inherit;
        margin-left: 10px;
    }
    
    nav.post-controls .actions {
        text-align: right;
        float: right;
        display: inline-block;
    }
    
    .topic-post nav.post-controls .actions .double-button {
        display: inline-flex;
    }
    
    .post-menu-area {
        margin: 0;
        padding-top: 15px;
    }
}
「いいね!」 3

素晴らしい、ありがとう :slightly_smiling_face:

デバッグのサポートが必要だったり、問題の原因がわかるようでしたら、お知らせください。

「いいね!」 1