Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 2024-06-12 08:05:58 +0000 #7835

Merged
merged 119 commits into from
Jun 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
5cc2b9f
メンターのダッシュボードページのブックマーク部分をReactコンポーネントに置換
ham-cap Dec 5, 2023
2ca1582
Bookmark.jsxを追加
ham-cap Dec 7, 2023
8c83c1d
BookmarksInDashboardとBookmarkを関数コンポーネント化
ham-cap Dec 7, 2023
1f5b5c8
メンターのダッシュボードのブックマーク一覧をReact化
ham-cap Dec 16, 2023
24a8c05
アドバイザーのダッシュボード内のブックマーク一覧を従来のviewからReactコンポーネントへ差し替えた
ham-cap Dec 16, 2023
0140767
rebaseのコンフリクト解消1
ham-cap Feb 10, 2024
259ec3c
不要な行を削除
ham-cap Dec 16, 2023
73806b3
current_userのブックマークを取得するAPIの返り値にkaminariで分割されていない状態のブックマークのデータを追加した
ham-cap Dec 17, 2023
048f337
一部のJSX要素のclassをclassNameに変更・不要な行を削除
ham-cap Dec 17, 2023
0a7c0a4
ダッシュボード上ではsummaryの表示は不要のため削除
ham-cap Dec 17, 2023
1e83ea6
編集ボタンと削除ボタンに正しくスタイルが適用されていなかったためclass名を修正した
ham-cap Dec 20, 2023
7970a28
ブックマークの削除時にトーストを表示するようにした
ham-cap Dec 23, 2023
cadda2a
rebaseのコンフリクト解消2
ham-cap Feb 10, 2024
b3ddfce
不要なファイルを削除
ham-cap Dec 24, 2023
ce6c4e8
rebaseのコンフリクト解消3
ham-cap Feb 10, 2024
9ff73e9
rebaseのコンフリクト解消4
ham-cap Feb 10, 2024
d874079
ブックマーク一覧のReact化に伴い不要となったため削除した
ham-cap Jan 6, 2024
124ed1a
ブックマーク取得のAPIを叩く際にページの指定をしないように修正
ham-cap Jan 7, 2024
b68a399
rebaseのコンフリクト解消5
ham-cap Feb 10, 2024
09e4a8a
bookmarksコントローラーのdestroyアクションは使用しなくなったためroutesから削除
ham-cap Jan 7, 2024
8300fe3
rebaseのコンフリクト解消6
ham-cap Feb 11, 2024
32c2e08
Sassの重複箇所を@mixinにまとめた
ham-cap Jan 20, 2024
62ee108
rebaseのコンフリクト解消7
ham-cap Feb 11, 2024
1bcec94
rebaseのコンフリクト解消8
ham-cap Feb 11, 2024
49b750b
home_testを修正
ham-cap Jan 20, 2024
b6f1fd7
相談部屋のリンクが複数ありCapybaraがエラーを吐くためhome_testを再度修正
ham-cap Jan 20, 2024
c08fbfe
home_testを再度修正
ham-cap Jan 20, 2024
0045409
メンター用ダッシュボードのViewファイル内のクラス名をタイポしていたため修正
ham-cap Jan 21, 2024
2204019
ブックマークが0件の時にカードを非表示にする方法を変更
ham-cap Jan 21, 2024
ab47c57
BookmarksInDashboardのレンダリング時にreact-railsを使わずにJavaScriptでマウントするように変更した
ham-cap Jan 29, 2024
510224b
ページのレンダリング時にブックマークが0件の場合はDOM要素を削除するように修正
ham-cap Jan 29, 2024
34bdfa8
不要な条件分岐を削除
ham-cap Jan 30, 2024
1d21429
コンポーネントをマウントするdiv要素のidをより具体的な名称に変更
ham-cap Jan 31, 2024
98ac6ba
Sassの不要な記述を削除
ham-cap Jan 31, 2024
e6da497
rebaseのコンフリクト解消9
ham-cap Feb 11, 2024
75f1f51
コンポーネント内のdivの階層構造を変更
ham-cap Jan 31, 2024
0637fe3
home_testへの変更は誤りだったため修正
ham-cap Jan 31, 2024
10128e1
BookmarksInDashboardをマウントするコードの重複を無くした
ham-cap Feb 6, 2024
22e13d4
不要なpropsを削除
ham-cap Mar 18, 2024
c1c1084
コンポーネントの呼び出しをreact_componentヘルパーを使 用した方法に変更
ham-cap May 24, 2024
46acf15
bookmarks-in-dashboard.jsを削除
ham-cap May 24, 2024
28b87e6
slim-lintの指摘事項を修正
ham-cap May 24, 2024
6c1b0c1
VueからHTMLに移行(メモあり)
nishitatsu-dev Mar 29, 2024
c80d398
メモ削除、APIの表示エラー対応
nishitatsu-dev Apr 10, 2024
247562f
link_toの書き方を他と統一(カッコを削除)。authorを修正
nishitatsu-dev May 21, 2024
c02cdef
api関連の「ファイル」と「ルーティング」を削除。authorを修正
nishitatsu-dev May 21, 2024
ebf2ad7
初期データの通知数を100件以上にした
unikounio Apr 23, 2024
649a02c
未読通知の取得数制限を削除
unikounio Apr 23, 2024
0f082cb
退会申請用のルーティングを設定した
masyuko0222 Apr 11, 2024
ccaa4e9
アドバイザーのダッシュボードに、退会申請フォームのための導線を作った
masyuko0222 Apr 11, 2024
25dc37a
退会申請のモデルを作成した
masyuko0222 Apr 15, 2024
58e4ed0
日本語訳を追加した
masyuko0222 Apr 17, 2024
fb67b51
新規退会申請のViewを作成した
masyuko0222 Apr 15, 2024
a6ccf47
申請者の名前、メアド、退会をさせるアカウントの名前で検証を行い、検証が通ったらUserと紐づける
masyuko0222 Apr 15, 2024
0c57371
View上で「退会させたいアカウント」をプルダウンで選択できるように、渡すデータを取得するメソッドを定義した
masyuko0222 Apr 15, 2024
898d1a2
コントローラのnewとcreateアクションを作成
masyuko0222 Apr 17, 2024
39178c3
退会申請完了後のViewを作成した
masyuko0222 Apr 17, 2024
db6fc8b
コントローラのshowアクションを作成
masyuko0222 Apr 17, 2024
1c5bcdb
退会申請フォームのデザインと、それに合わせて同じデザインのページの整理を行った
machida Apr 18, 2024
7ca1c0f
ボタンの文言を動詞に変更
machida Apr 18, 2024
f1fc782
disableだとフォーム送信ができないので、readonlyにした。
masyuko0222 Apr 18, 2024
567fd75
メールのViewを作成した
masyuko0222 Apr 18, 2024
bc3e77e
create成功後にメールが届くようにした
masyuko0222 Apr 18, 2024
e2662ae
readonly に disabledと同じスタイルを適用
machida Apr 19, 2024
ca4a373
退会申請完了ページのデザイン調整、全てのthanksメールの調整、自動送信メールの文言調整、退会申請完了メールのデザイン調整
machida Apr 20, 2024
986bd6e
eslint指摘修正
masyuko0222 Apr 22, 2024
7a3be13
デザイン変更によって落ちるようになったテストを修正
masyuko0222 Apr 22, 2024
a96330d
システムテストを書いた
masyuko0222 Apr 22, 2024
78c8bb1
自社ユーザーが0人でも退会申請フォームにアクセスできるようにした
masyuko0222 Apr 23, 2024
3aa2a09
ログインしていても「ログインをすると~」が表示されてしまっていた箇所を直した
masyuko0222 Apr 24, 2024
0d6cb53
文言をフォーム画面に合わせた。
masyuko0222 Apr 24, 2024
7ecb294
他のコントローラと同様に、redirectは処理の最後に移動した。
masyuko0222 Apr 24, 2024
bc6c77e
ルーティングをRESTFULにした
masyuko0222 May 14, 2024
fbc06fa
冗長なカラムがあったので、モデルを正規化した
masyuko0222 May 14, 2024
b805bb2
他のテストに合わせて、ファイル名を複数形にした
masyuko0222 May 15, 2024
efaffc0
target_userは一意にした
masyuko0222 May 15, 2024
2caa38a
validationを付けた
masyuko0222 May 20, 2024
0d5a5de
複雑になってきて構造が分かりづらかったので、newページViewの何か所かをパーシャルに変更した
masyuko0222 May 20, 2024
e8a5989
DRYと可読性上げるためにformページViewの何か所かをパーシャルに変更した
masyuko0222 May 20, 2024
c50b20c
ログインの条件分岐をDRYにした
masyuko0222 May 20, 2024
b4bcfce
細かくパーシャルに分けすぎていたので、戻した
masyuko0222 May 22, 2024
b189894
冗長だったり複雑になりつつあったのでパーシャルに移動した
masyuko0222 May 22, 2024
9c3959a
メールアドレスは関連付けられているuserから取得するように。ゆうてどっちでもいいと思う
masyuko0222 May 22, 2024
44136e9
パーシャル使いすぎていたので、冗長な箇所だけをパーシャルにrenderするようにした
masyuko0222 May 24, 2024
6eb721a
外部キー制約がぬけていたので付けた
masyuko0222 May 24, 2024
4154f25
Whyが気になるところにコメントをするようにした
masyuko0222 May 24, 2024
fd05e8f
ログイン必須にしたので、会社名もユーザーから取得できるため、カラム削除した
masyuko0222 May 27, 2024
e91373d
ログイン必須になったのでViewの条件分岐を削除した
masyuko0222 May 27, 2024
14ae0fe
不要なバリデーションを消した
masyuko0222 May 28, 2024
4310b51
見る箇所が多くて混乱するので一旦パーシャル削除しつつ、変更したモデルに合わせて出力するようにした
masyuko0222 May 28, 2024
d773fd7
仕様変わったので一旦削除。
masyuko0222 May 28, 2024
7f1dcb2
カラムにないものはtagヘルパーを利用。翻訳消したのでテキストはベタ打ち
masyuko0222 May 28, 2024
402a242
new→create→showがうまくいくようにした。メール送信と翻訳はまだ
masyuko0222 May 28, 2024
c87391e
メールビューも翻訳ファイル削除・カラム変更に伴って修正した
masyuko0222 May 28, 2024
8cc545c
冗長でもないのでパーシャルに分けるのやめた
masyuko0222 May 28, 2024
5a34381
申請者以外がshowにアクセスしようとしたとき、エラー文言を出す
masyuko0222 May 28, 2024
07a1f23
仕様変更によるコード修正に伴い、テストも修正。
masyuko0222 May 28, 2024
3144ec0
複雑なデータ取得ではないため、Viewで直接取得するようにした
masyuko0222 May 28, 2024
734c8a6
翻訳ファイル追加
masyuko0222 May 28, 2024
00f477d
テスト直しわすれていたので修正
masyuko0222 May 29, 2024
a4e3ff7
rubocop, lint修正
masyuko0222 May 29, 2024
eec8042
タイポしてたので修正
masyuko0222 May 31, 2024
fe6e7a6
メソッドではアンダーバーがあるので、テストも合わせた。
masyuko0222 May 31, 2024
0870c2c
colleguesだけで同僚という意味なので、変数名変えた
masyuko0222 May 31, 2024
890bebc
シンプルで直感的にわかりやすいメソッド名にした
masyuko0222 May 31, 2024
be49330
仕様変更前につけてて、変更後に削除し忘れていたので消した
masyuko0222 Jun 3, 2024
75e729e
nilを返すとwhereとかでエラーが起こるので、空のActiveRecord_Relationを返すように
masyuko0222 Jun 6, 2024
1bf4592
translateメソッドだと可読性低くなるので、human_attribute_nameを使うようにした。
masyuko0222 Jun 6, 2024
0a86c4a
Merge pull request #7640 from fjordllc/feature/request_colleague_reti…
komagata Jun 7, 2024
2d65d71
Merge pull request #7726 from fjordllc/bug/unread-notifications-only-…
komagata Jun 7, 2024
d567790
Merge pull request #7161 from fjordllc/feature/change-bookmark-list-i…
komagata Jun 7, 2024
1bf80e9
Merge pull request #7651 from fjordllc/feature/rewrite-external-entri…
komagata Jun 7, 2024
25b4548
メールshow画面の翻訳がバグっていたのでなおした
masyuko0222 Jun 7, 2024
e1ed472
Merge pull request #7839 from fjordllc/fix/request_retirement
komagata Jun 10, 2024
eb95e9f
ユーザーの数字ボックスの並びのロジックを変更
machida Jun 11, 2024
616e56a
:cop:
machida Jun 11, 2024
9b6ae4d
Merge pull request #7845 from fjordllc/counts-size
machida Jun 11, 2024
4feb1d3
研修ページの調整
machida Jun 11, 2024
1f58b78
Merge pull request #7846 from fjordllc/pt
machida Jun 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/controllers/api/bookmarks_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ def index
per = params[:per] || PAGER_NUMBER
bookmarks = Bookmark.where(user: current_user).order(created_at: :desc).preload(bookmarkable: :user)
@bookmarks = Kaminari.paginate_array(bookmarks).page(params[:page]).per(per)
@unpaged_bookmarks = bookmarks
return unless params[:bookmarkable_id] && params[:bookmarkable_type]

@bookmarks = Bookmark.where(
Expand Down
7 changes: 0 additions & 7 deletions app/controllers/api/external_entries_controller.rb

This file was deleted.

5 changes: 0 additions & 5 deletions app/controllers/current_user/bookmarks_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,4 @@ class CurrentUser::BookmarksController < ApplicationController
def index
@user = current_user
end

def destroy
Bookmark.find(params[:id]).destroy
redirect_to root_path, notice: 'Bookmarkを削除しました。'
end
end
4 changes: 3 additions & 1 deletion app/controllers/external_entries_controller.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# frozen_string_literal: true

class ExternalEntriesController < ApplicationController
def index; end
def index
@external_entries = ExternalEntry.with_avatar.order(published_at: :desc).page(params[:page])
end
end
5 changes: 3 additions & 2 deletions app/controllers/home_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,11 @@ def display_dashboard
@completed_learnings = current_user.learnings.where(status: 3).includes(:practice).order(updated_at: :desc)
@inactive_students = User.with_attached_avatar.inactive_students_and_trainees.order(last_activity_at: :desc)
@job_seeking_users = User.with_attached_avatar.job_seeking.includes(:reports, :products, :works, :course, :company)
@collegue_trainees = current_user.collegue_trainees&.with_attached_avatar&.includes(:reports, :products, :comments)
collegue_trainees_reports = Report.with_avatar.where(wip: false).where(user: current_user.collegue_trainees&.with_attached_avatar)
@collegue_trainees = current_user.collegue_trainees.with_attached_avatar.includes(:reports, :products, :comments)
collegue_trainees_reports = Report.with_avatar.where(wip: false).where(user: current_user.collegue_trainees.with_attached_avatar)
@collegue_trainees_recent_reports = collegue_trainees_reports.order(reported_on: :desc).limit(10)
@recent_reports = Report.with_avatar.where(wip: false).order(reported_on: :desc, created_at: :desc).limit(10)
@collegues = current_user.collegues_other_than_self
end

def display_events_on_dashboard
Expand Down
44 changes: 44 additions & 0 deletions app/controllers/request_retirements_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# frozen_string_literal: true

class RequestRetirementsController < ApplicationController
before_action :set_request_retirement, only: %i[show]
before_action :deny_not_requester, only: %i[show]

def new
@request_retirement = RequestRetirement.new
end

def show; end

def create
@request_retirement = RequestRetirement.new(request_retirement_params)
@request_retirement.user = current_user
@request_retirement.target_user = User.find(request_retirement_params[:target_user_id])

if @request_retirement.save
UserMailer.request_retirement(@request_retirement).deliver_now
redirect_to request_retirement_url(@request_retirement)
else
render :new, status: :unprocessable_entity
end
end

private

def set_request_retirement
@request_retirement = RequestRetirement.find(params[:id])
end

def request_retirement_params
params.require(:request_retirement)
.permit(:target_user_id,
:reason,
:keep_data)
end

def deny_not_requester
return if @request_retirement.user == current_user

redirect_to root_path, alert: '退会申請をしたユーザーのみが閲覧可能です'
end
end
153 changes: 153 additions & 0 deletions app/javascript/components/BookmarksInDashboard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import React, { useState } from 'react'
import useSWR, { useSWRConfig } from 'swr'
import fetcher from '../fetcher'
import Bootcamp from '../bootcamp'
import UserIcon from './UserIcon'
import { toast } from '../toast_react'

export default function BookmarksInDashboard() {
const [editable, setEditable] = useState(false)
const per = 5
const bookmarksUrl = `/api/bookmarks.json?&per=${per}`

const { data, error } = useSWR(bookmarksUrl, fetcher)
if (error) return <>エラーが発生しました。</>
if (!data) return <>ロード中…</>

if (data.unpagedBookmarks.length === 0) {
const bookmarksDomNode = document.getElementById('bookmarks-in-dashboard')
bookmarksDomNode.classList.add('hidden')
}

return (
<div className="a-card">
<header className="card-header is-sm">
<h2 className="card-header__title">最新のブックマーク</h2>
<div className="card-header__action">
<EditButton editable={editable} setEditable={setEditable} />
<span></span>
</div>
</header>
<hr className="a-border-tint" />
<div className="card-list">
{data.bookmarks.map((bookmark) => {
return (
<Bookmark
key={bookmark.id}
bookmark={bookmark}
editable={editable}
bookmarksUrl={bookmarksUrl}
/>
)
})}
</div>
<footer className="card-footer">
<div className="card-footer__footer-link">
<a
href={`current_user/bookmarks`}
className="card-footer__footer-text-link">
全てのブックマーク({data.unpagedBookmarks.length})
</a>
</div>
</footer>
</div>
)
}

const EditButton = ({ editable, setEditable }) => {
return (
<>
<label
className="a-form-label is-sm is-inline spec-bookmark-edit"
htmlFor="card-list-tools__action">
編集
</label>
<label className="a-on-off-checkbox is-sm">
<input
id="card-list-tools__action"
name="card-list-tools__action"
type="checkbox"
onChange={() => setEditable(!editable)}
checked={editable}
/>
<span id="spec-edit-mode" />
</label>
</>
)
}

const Bookmark = ({ bookmark, editable, bookmarksUrl }) => {
const date = bookmark.reported_on || bookmark.created_at
const createdAt = Bootcamp.iso8601ToFullTime(date)
const { mutate } = useSWRConfig()
const afterDelete = (id) => {
Bootcamp.delete(`/api/bookmarks/${id}.json`)
.then((_response) => {
mutate(bookmarksUrl)
toast('Bookmarkを削除しました。')
})
.catch((error) => {
console.warn(error)
})
}

return (
<div className={'card-list-item is-' + bookmark.bookmark_class_name}>
<div className="card-list-item__inner">
{bookmark.modelName === 'Talk' ? (
<div className="card-list-item__user">
<UserIcon user={bookmark.user} blockClassSuffix="card-list-item" />
</div>
) : (
<div className="card-list-item__label">{bookmark.modelNameI18n}</div>
)}
<div className="card-list-item__rows">
<div className="card-list-item__row">
<div className="card-list-item-title">
<div className="card-list-item-title__title">
<a
href={bookmark.url}
className="card-list-item-title__link a-text-link">
{bookmark.title}
</a>
</div>
</div>
</div>
{bookmark.modelName !== 'Talk' && (
<div>
<div className="card-list-item__row">
<div className="card-list-item-meta">
<div className="card-list-item-meta__item">
<a href={bookmark.authorUrl} className="a-user-name">
{bookmark.authorLoginName}({bookmark.authorNameKana})
</a>
</div>
<div className="card-list-item-meta__item">
<time className="a-meta" dateTime={bookmark.updated_at}>
{createdAt}
</time>
</div>
</div>
</div>
</div>
)}
</div>
{editable && (
<DeleteButton id={bookmark.id} afterDelete={afterDelete} />
)}
</div>
</div>
)
}

const DeleteButton = ({ id, afterDelete }) => {
return (
<div className="card-list-item__option">
<div
className="card-list-item__option js-bookmark-delete-button a-button is-sm is-primary"
onClick={() => afterDelete(id)}>
削除
</div>
</div>
)
}
16 changes: 4 additions & 12 deletions app/javascript/components/Reports.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -136,19 +136,11 @@ const NoReports = ({ unchecked }) => {
</p>
</>
) : (
<div className="card-list a-card">
<div className="card-body">
<div className="card__description">
<div className="o-empty-message">
<div className="o-empty-message__icon">
<i className="fa-regular fa-sad-tear" />
</div>
<p className="o-empty-message__text">
日報はまだありません。
</p>
</div>
</div>
<div className="o-empty-message">
<div className="o-empty-message__icon">
<i className="fa-regular fa-sad-tear" />
</div>
<p className="o-empty-message__text">日報はまだありません。</p>
</div>
)}
</div>
Expand Down
90 changes: 0 additions & 90 deletions app/javascript/components/external-entries.vue

This file was deleted.

Loading
Loading