管理画面でタグを追加・編集ができるようにしましょう
Description / 説明
- 管理画面でデータを変更できるようにしましょう
- [ ] タグの有効無効切り替え
- [ ] 問題(task_id)へのタグ付与/削除
- [ ] 問題(task_id)の追加またはインポート(ボタンを押したら、AtcoderProblemsのAPIから新しいのを取得、みたいな)
Motivation / 動機
- 本運用では、タスクの追加やタグの付与の運用をどうするかそろそろ考えたい
- 開発効率を考えた時にそろそろ欲しい
Other notes / その他
- mantainance/ ・・以下は、ADMIN権限があるユーザしかアクセスできない
- tags
- / タグ一覧の表示(テーブル型)
- /{tag_id} タグの属性を修正できる
- tasks
- / タスク一覧の表示(テーブル型)
- ソート機能が欲しい?
- 表示していないタグと、表示されるタグとどちらも表示すると良さそう。
- インポートボタンはこの画面に用意する?
- /{task_id} 問題の編集ができる。主に難易度・タグの付与ができる。(一般ユーザに表示されないタグも付与できる)
- / タスク一覧の表示(テーブル型)
- tags
ありがとうございます!!
アプリでデータの更新・修正ができるようにしたいですね!!!
@KATO-Hiro Othersに管理画面のイメージを書きました。 最初はこんな感じでいかがでしょうか?
(Othersに想定仕様を書くのはいかがでしょうか?)
@prettyhappycatty 管理画面のイメージを用意していただき、ありがとうございます!!!
adminアカウントのみに制限する意図をより明確にするために、(protected)/mantainanceか(auth)/mantainanceのようなディレクトリを用意するのはいかがでしょうか? (フレームワークの機能で、(xxx)の内容はURLに表示されませんが、他のページとは明確に区別することができるようです)
もう一つ考えているのは、既存の問題ページやタグページでadminアカウントのみ編集ボタンを表示・押すことができるようにするという方法です。例えば、Trelloのように編集用のボタンを押すと更新用の画面出てきて、入力後に元のページが操作できるイメージです。
メリット: 現在用意しているページをそのまま利用できるメリットはありそうです。 デメリット: 複数のページに分散されるため、一括管理にはやや向いていない? + 既存のUIがやや複雑になる可能性がある。
Othersの想定仕様、とてもいいですね!!
@KATO-Hiro カッコ便利ですね!! カッコをつけると権限がかかってしまうわけではなく、管理用の見た目だけで、処理は必要という認識で大丈夫でしょうか。
既存の問題ページやタグページでadminアカウントのみ編集ボタンを表示・押すことができるようにするという方法です。
明確にメンテナンス用のページであることがわかる方が良いと思います。 自分のだけに影響があるページと、全体に影響があるページが近くにあると間違えそうです、、、
また、ページをそのまま利用、という点では、Componentに入っている内容が、ある程度共通化した内容なのかなと考えています。似たUIをいくつも書かずに実装できるのではと思って見ています。
@prettyhappycatty
カッコをつけると権限がかかってしまうわけではなく、管理用の見た目だけで、処理は必要という認識で大丈夫でしょうか。
おっしゃる通りです。
明確にメンテナンス用のページであることがわかる方が良いと思います。 操作ミスを防ぐ観点からも、admin(メンテナンス)ページを用意したほうが良さそうですね.
例えば、(admin)/mantainanceとすると、admin権限であることを明示的に示せるようと思いますが、いかがでしょうか?
Componentに入っている内容が、ある程度共通化した内容なのかなと考えています。似たUIをいくつも書かずに実装できるのではと思って見ています。
なるべく抽象化・共通化しているつもりですので、ほぼそのまま流用できるといいなと思っています。
- サイドバーを実装しようとしたコード
- 現在利用しているUIコンポーネントだと、折りたたみがサポートされていないため導入を一旦pending
<!-- See: -->
<!-- https://github.com/themesberg/flowbite-svelte-admin-dashboard/blob/main/src/routes/(sidebar)/%2Blayout.svelte -->
<!-- <div class="overflow-hidden md:flex">
<Sidebar {isAdmin} />
<div class="relative h-full w-full overflow-auto">
</div>
</div> -->