docker-compose.yml 修正

このコミットが含まれているのは:
nakazawakan 2021-10-15 15:31:02 +09:00
コミット 2ea3f3d85c
272個のファイルの変更51257行の追加6672行の削除

15
backend/.vscode/launch.json vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,15 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9003
}
]
}

ファイルの表示

@ -0,0 +1,101 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Child;
use App\Models\FatherRelation;
use App\Models\MeetingApprovals;
class ChildrenController extends Controller {
public function login () {}
public function registerTemporary () {}
public function registerMain () {}
public function checkTel () {}
public function list () {
// 親一覧の取得に成功
if ($result = Child::orderBy('created_at', 'desc')->get()->toArray()) {
return ['status_code' => 200, 'params' => $result];
}
// 親一覧の取得に失敗
return ['status_code' => 400];
}
public function listOfFather (Request $r) {
$result = [];
$child_select = ['id', 'image', 'last_name', 'first_name'];
if ($list = FatherRelation::where('father_id', $r->father_id)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $l) {
$result[] = Child::select($child_select)->find($l['father_id']);
}
return ['status_code' => 200, 'params' => $result];
}
return ['status_code' => 400];
}
public function listOfMeeting (Request $r) {
$result = [];
$child_select = ['id', 'image', 'last_name', 'first_name'];
if ($list = MeetingApprovals::where('meeting_id', $r->meeting_id)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $l) {
$result[] = Child::select($child_select)->find($l['id']);
}
return ['status_code' => 200, 'params' => $result];
}
return ['status_code' => 400];
}
public function listOfMeetingNotifyUnapprovel () {}
public function listOfMeetingNotifyApprovel () {}
public function detail (Request $r, $child_id) {
$result = [];
$child_select = ['email', 'tel', 'last_name', 'first_name', 'image', 'company'];
$father_relation_select = ['hire_at'];
// 親詳細の取得に成功
if ($list = Child::where('id', $child_id)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = Child::select($child_select)->find($l['id']);
if (isset($r->father_id)) {
$result[$i]['father_relation'] = FatherRelation::select($father_relation_select)->where('father_id', $r->father_id)->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 親詳細の取得に失敗
return ['status_code' => 400];
}
public function updateImage ($child_id) {}
public function updateProfile ($child_id) {}
public function updatePassword ($child_id) {}
public function delete ($child_id) {
// 削除成功
if (Child::where('id', $child_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,38 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Log;
use App\Models\Contacts;
class ContactsController extends Controller {
public function register (Request $r) {
$validate = Validator::make($r->all(), [
'email' => 'required|max:255|email',
'message' => 'required|max:1000'
]);
if ($validate->fails()) {
return ['status_code' => 422, 'error_messages' => $validate->errors()];
}
$insert = [
'email' => $r->email,
'message' => $r->message,
];
try {
Contacts::create($insert);
} catch (\Throwable $e) {
// 失敗
Log::critical($e->getMessage());
return ['status_code' => 400, 'error_messages' => 'お問い合わせの送信に失敗しました。'];
}
// 成功
return ['status_code' => 200, 'params' => $insert];
}
}

ファイルの表示

@ -0,0 +1,19 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\EmailActivation;
class EmailActivationsController extends Controller {
public function deleteRelationFather ($father_id) {
// 削除成功
if (EmailActivation::where('father_id', $father_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,62 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\FatherRelation;
class FatherRelationsController extends Controller {
public function register (Request $r) {
if (!isset($r->child_id) || !isset($r->father_id) || !isset($r->hire_at)) {
return ['status_code' => 400, 'success_messages' => '子の登録に失敗しました。'];
}
$insert = [
'father_id' => $r->father_id,
'child_id' => $r->child_id,
'hire_at' => date('Y-m-d H:i:s', strtotime($r->hire_at))
];
if (FatherRelation::create($insert)) {
return ['status_code' => 200, 'success_messages' => '子の登録に成功しました。'];
}
return ['status_code' => 400, 'success_messages' => '子の登録に失敗しました。'];
}
public function updateHireDate (Request $r, $child_id) {
if (!isset($child_id) || !isset($r->father_id) || !isset($r->hire_at)) {
return ['status_code' => 400, 'success_messages' => '子の入社日の更新に失敗しました。'];
}
$update = ['hire_at' => date('Y-m-d H:i:s', strtotime($r->hire_at))];
if (FatherRelation::where('father_id', $r->father_id)->where('child_id', $child_id)->update($update)) {
return ['status_code' => 200, 'success_messages' => '子の入社日の更新に成功しました。'];
}
return ['status_code' => 400, 'success_messages' => '子の入社日の更新に失敗しました。'];
}
public function deleteRelationFather ($father_id) {
// 削除成功
if (FatherRelation::where('father_id', $father_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
public function deleteRelationChild ($child_id) {
// 削除成功
if (FatherRelation::where('child_id', $child_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -2,19 +2,84 @@
namespace App\Http\Controllers\Api;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Validator;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
class FathersController {
public $error = [];
use App\Models\Father;
use App\Models\FatherRelation;
class FathersController extends Controller {
public function login () {}
public function registerTemporary () {}
public function registerMain () {}
public function list () {
$result = [];
$father_select = ['id', 'company', 'image'];
$father_relation_select = ['created_at'];
// 親一覧の取得に成功
if ($list = DB::table('fathers')->orderBy('created_at', 'desc')->get()->toArray()) return ['status_code' => 200, 'params' => $list];
if ($list = Father::select($father_select)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['relation'] = FatherRelation::select($father_relation_select)->where('father_id', $l['id'])->first();
}
return ['status_code' => 200, 'params' => $result];
}
// 親一覧の取得に失敗
return ['status_code' => 400];
}
public function listOfChild (Request $r) {
$result = [];
$father_select = ['id', 'company', 'image'];
// 親一覧の取得に成功
if ($list = FatherRelation::where('child_id', $r->child_id)->orderBy('created_at', 'desc')->get()->toArray()) {
$result = [];
foreach ($list as $l) {
$result[] = Father::select($father_select)->find($l['father_id']);
}
return ['status_code' => 200, 'params' => $result];
}
// 親一覧の取得に失敗
return ['status_code' => 400];
}
public function detail ($father_id) {
$father_select = ['id', 'email', 'company', 'image', 'tel'];
// 親詳細の取得に成功
if ($result = Father::select($father_select)->where('id', $father_id)->orderBy('created_at', 'desc')->get()->toArray()) {
return ['status_code' => 200, 'params' => $result];
}
// 親詳細の取得に失敗
return ['status_code' => 400];
}
public function updateImage ($father_id) {}
public function updateProfile ($father_id) {}
public function updatePassword ($father_id) {}
public function delete ($father_id) {
// 削除成功
if (Father::where('id', $father_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
public function checkEmail () {}
}

ファイルの表示

@ -0,0 +1,46 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\LoginLimits;
class LoginLimitsController extends Controller {
public function countFailure (Request $r) {
// user_agentがなければ、エラーを出します。
if (!isset($r->user_agent)) {
return ['status_code' => 400, 'error_messages' => 'ユーザーエイジェントを読めません。'];
}
// 受取
if ($get = LoginLimits::where('user_agent', $r->user_agent)->first()) {
// 失敗数は10以上だと、エラーを出します。以内の場合、失敗数を増えます。
if ($get->fail_number >= 10) {
return ['status_code' => 400, 'error_messages' => 'ログインに失敗しました。10回連続で失敗すると、一定期間ログインできなくなります。'];
}
else {
$update = ['fail_number' => $get->fail_number+1];
LoginLimits::where('user_agent', $r->user_agent)->update($update);
}
}
else {
// まだこのuser_agentがなければ、追加します。
$create = ['user_agent' => $r->user_agent, 'fail_number' => 1];
LoginLimits::create($create);
}
return ['status' => 200];
}
public function delete (Request $r) {
// 削除成功
if (LoginLimits::where('user_agent', $r->user_agent)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,74 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Child;
use App\Models\Meeting;
use App\Models\MeetingApprovals;
class MeetingApprovalsController extends Controller {
public function register (Request $r) {}
public function registerOfApproval (Request $r) {}
public function listChildrenOfMeeting (Request $r) {}
public function listChildrenOfApprovel (Request $r) {
$meeting_select = ['id', 'child_id', 'approval_at'];
$child_select = ['id', 'image', 'last_name', 'first_name'];
// meeting_idでミーティングの許可があれば
if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNotNull('approval_at')->get()) {
// 子を付いてみて。child_idがなければ、すぐ400になります。
foreach ($params as $p) {
if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) {
return ['status' => 400];
}
}
return ['status' => 200, 'params' => $params];
}
// エラーの場合
return ['status' => 400];
}
public function listChildrenOfUnapprovel (Request $r) {
$meeting_select = ['id', 'child_id', 'approval_at'];
$child_select = ['id', 'image', 'last_name', 'first_name'];
// meeting_idでミーティングの許可がなければ
if ($params = MeetingApprovals::select($meeting_select)->where('meeting_id', $r->meeting_id)->whereNull('approval_at')->get()) {
// 子を付いてみて。child_idがなければ、すぐ400になります。
foreach ($params as $p) {
if (!$p->child_id = Child::select($child_select)->where('id', $p->child_id)->first()) {
return ['status' => 400];
}
}
return ['status' => 200, 'params' => $params];
}
// エラーの場合
return ['status' => 400];
}
public function deleteRelationMeeting ($meeting_id) {
// 削除成功
if (MeetingApprovals::where('meeting_id', $meeting_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
public function deleteRelationChild ($child_id) {
// 削除成功
if (MeetingApprovals::where('child_id', $child_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,46 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Models\MeetingImage;
class MeetingImagesController extends Controller {
public function register (Request $r) {
foreach ($r->all() as $i) {
$validate = Validator::make($i, ['image' => 'file|max:1024|mimes:jpg,png,gif']);
}
$validate->after(function ($validate) {
if (count($r->image) > 10) {
$validate->errors()->add('count', '10枚以上登録できません。');
}
});
if ($validate->fails()) {
return ['status_code' => 422, 'error_messages' => $validate->errors()];
}
$create = ['meeting_id' => $meeting_id, 'image' => $image];
foreach ($r->images as $image) {
if (!MeetingImage::create($create)) {
return ['status_code' => 400];
}
}
return ['status_code' => 200];
}
public function deleteRelationMeeting ($meeting_id) {
// 削除成功
if (MeetingImage::where('meeting_id', $meeting_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,426 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use App\Models\Meeting;
use App\Models\MeetingImage;
use App\Models\MeetingApprovals;
use App\Models\Child;
use App\Models\Father;
class MeetingsController extends Controller {
public function register (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400, 'error_messages' => 'ミーティングの登録に失敗しました。'];
}
$validate = Validator::make($r->all(), [
'title' => 'required|max:100',
'text' => 'required|max:2000',
'memo' => 'max:2000',
'pdf' => 'mimes:pdf'
]);
if ($validate->fails()) {
return ['status_code' => 422, 'error_messages' => $validate->errors()];
}
$create = [
'father_id' => $r->father_id,
'title' => $r->title,
'text' => $r->text,
'memo' => $r->memo,
'pdf' => $r->pdf
];
if (Child::create($create)) {
return ['status_code' => 200, 'success_messages' => 'ミーティングの登録に成功しました。'];
}
return ['status_code' => 400, 'error_messages' => 'ミーティングの登録に失敗しました。'];
}
public function registerFavorite (Request $r) {
if (!isset($r->meeting_id) || !isset($r->is_favorite) || $r->is_favorite > 1) {
return ['status_code' => 400];
}
$update = ['is_favorite' => $r->is_favorite];
if (Meeting::where('id', $r->meeting_id)->update($update)) {
return ['status_code' => 200];
}
return ['status_code' => 400];
}
public function list () {
// TODOadminsのみ
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->orderBy('created_at', 'desc')->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('approval_at', 'desc')->get();
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfApprovalOfChild (Request $r) {
if (!isset($r->child_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at'];
// 取得に成功
if ($approval = MeetingApprovals::where('child_id', $r->child_id)->whereNotNull('approval_at')->orderBy('updated_at', 'desc')->get()) {
foreach ($approval as $a) {
if ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
}
return ['status_code' => 200, 'params' => $result];
}
}
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfNonApprovalOfChild (Request $r) {
if (!isset($r->child_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at'];
// 取得に成功
if ($approval = MeetingApprovals::where('child_id', $r->child_id)->whereNull('approval_at')->orderBy('approval_at', 'asc')->get()) {
foreach ($approval as $a) {
if ($list = Meeting::select($meeting_select)->where('id', $a->meeting_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_images'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['fathers'] = Father::select($father_select)->where('id', $l['father_id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l['id'])->orderBy('approval_at', 'asc')->get();
}
return ['status_code' => 200, 'params' => $result];
}
}
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfCompleteOfFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
if (count($result[$i]['approvals']) == 0) {
unset($result[$i]);
continue;
}
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfIncompleteOfFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
if (count($result[$i]['approvals']) > 1) {
unset($result[$i]);
continue;
}
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfFavoriteofFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at', 'is_favorite'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 1)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function listOfNonFavoriteofFather (Request $r) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at', 'is_favorite'];
$meeting_approvals_select = ['child_id', 'approval_at'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('is_favorite', 0)->get()->toArray()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->orderBy('updated_at', 'desc')->get();
foreach ($result[$i]['approvals'] as $ii => $ra) {
$result[$i]['approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfApprovalOfChild (Request $r) {
if (!isset($r->child_id) || !isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at as date'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['father'] = Father::select($father_select)->where('id', $l['father_id'])->first();
$result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNotNull('approval_at')->get();
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfNonApprovalOfChild (Request $r) {
if (!isset($r->child_id) || !isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$father_select = ['image', 'company'];
$meeting_approvals_select = ['approval_at as date'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['father'] = Father::select($father_select)->where('id', $l['father_id'])->first();
$result[$i]['approval'] = MeetingApprovals::select($meeting_approvals_select)->where('child_id', $r->child_id)->whereNull('approval_at')->get();
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfCompleteofFather (Request $r) {
if (!isset($r->father_id) || !isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$meeting_approvals_select = ['approval_at', 'child_id'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNull('approval_at')->get();
foreach ($result[$i]['meeting_approvals'] as $ii => $ra) {
$result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function searchOfIncompleteofFather (Request $r) {
if (!isset($r->father_id) || !isset($r->keyword)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'updated_at'];
$meeting_images_select = ['image'];
$meeting_approvals_select = ['approval_at', 'child_id'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('father_id', $r->father_id)->where('title', 'LIKE', '%'.$r->keyword.'%')->orWhere('text', 'LIKE', '%'.$r->keyword.'%')->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNotNull('approval_at')->get();
foreach ($result[$i]['meeting_approvals'] as $ii => $ra) {
$result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function detail (Request $r, $meeting_id) {
if (!isset($r->father_id)) {
return ['status_code' => 400];
}
$result = [];
$meeting_select = ['id', 'father_id', 'title', 'text', 'memo', 'pdf', 'updated_at'];
$meeting_images_select = ['image'];
$meeting_approvals_select = ['approval_at', 'child_id'];
$child_select = ['image'];
// 取得に成功
if ($list = Meeting::select($meeting_select)->where('id', $meeting_id)->where('father_id', $r->father_id)->get()) {
foreach ($list as $i => $l) {
$result[] = $l;
$result[$i]['meeting_image'] = MeetingImage::select($meeting_images_select)->where('meeting_id', $l['id'])->get();
$result[$i]['meeting_approvals'] = MeetingApprovals::select($meeting_approvals_select)->where('meeting_id', $l['id'])->whereNotNull('approval_at')->get();
foreach ($result[$i]['meeting_approvals'] as $ii => $ra) {
$result[$i]['meeting_approvals'][$ii]['child'] = Child::select($child_select)->where('id', $result[$i]['meeting_approvals'][$ii]['child_id'])->first();
}
}
return ['status_code' => 200, 'params' => $result];
}
// 取得に失敗
return ['status_code' => 400];
}
public function delete ($meeting_id) {
// 削除成功
if (Meetings::where('meeting_id', $meeting_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
public function deleteRelationFather ($father_id) {
// 削除成功
if (Meetings::where('father_id', $father_id)->delete()) {
return ['status_code' => 200];
}
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -0,0 +1,18 @@
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\TelActivation;
class TelActivationsController extends Controller {
public function deleteRelationChild ($child_id) {
// 削除成功
if (TelActivation::where('child_id', $child_id)->delete()) return ['status_code' => 200];
// 削除失敗
return ['status_code' => 400];
}
}

ファイルの表示

@ -8,4 +8,5 @@ use Illuminate\Database\Eloquent\Model;
class Child extends Model
{
use HasFactory;
protected $fillable = ['father_id', 'title', 'text', 'memo', 'pdf'];
}

ファイルの表示

@ -8,4 +8,5 @@ use Illuminate\Database\Eloquent\Model;
class Contacts extends Model
{
use HasFactory;
protected $fillable = ['email', 'message'];
}

ファイルの表示

@ -8,4 +8,5 @@ use Illuminate\Database\Eloquent\Model;
class FatherRelation extends Model
{
use HasFactory;
protected $fillable = ['father_id', 'child_id', 'hire_at'];
}

ファイルの表示

@ -8,4 +8,5 @@ use Illuminate\Database\Eloquent\Model;
class LoginLimits extends Model
{
use HasFactory;
protected $fillable = ['user_agent', 'fail_number'];
}

ファイルの表示

@ -8,4 +8,5 @@ use Illuminate\Database\Eloquent\Model;
class MeetingImage extends Model
{
use HasFactory;
protected $fillable = ['meeting_id', 'image'];
}

ファイルの表示

@ -8,4 +8,5 @@ use Illuminate\Database\Eloquent\Model;
class TelActivation extends Model
{
use HasFactory;
protected $fillable = ['tel', 'token'];
}

ファイルの表示

@ -28,6 +28,7 @@ class ChildFactory extends Factory
];
return [
'identity' => $this->faker->text(20),
'email' => $this->faker->email,
'tel' => $tel[rand(0, 2)],
'tel_verified_at' => $this->faker->dateTime,

ファイルの表示

@ -15,6 +15,7 @@ class CreateChildrenTable extends Migration
{
Schema::create('children', function (Blueprint $table) {
$table->id();
$table->string('identity', 20);
$table->string('email', 72)->unique();
$table->string('tel', 11)->unique();
$table->dateTime('tel_verified_at');

26224
backend/package-lock.json generated

ファイル差分が大きすぎるため省略します 差分を読み込み

ファイルの表示

@ -20,7 +20,6 @@
"@material-ui/lab": "^5.0.0-alpha.40",
"@material-ui/styles": "^5.0.0-beta.1",
"@material-ui/utils": "^5.0.0-beta.0",
"@mui/icons-material": "^5.0.1",
"@testing-library/jest-dom": "^5.14.1",
"apexcharts": "^3.27.3",
"change-case": "^4.1.2",
@ -41,10 +40,12 @@
"react-helmet-async": "^1.0.9",
"react-image-crop-component": "^1.1.2",
"react-paginate": "^7.1.3",
"react-router-dom": "^6.0.0-beta.0",
"react-router": "^5.2.1",
"react-router-dom": "^5.3.0",
"react-scripts": "4.0.0",
"react-select": "^4.3.1",
"react-simple-star-rating": "^3.0.0",
"react-validation": "^3.0.7",
"simplebar": "^5.3.5",
"simplebar-react": "^2.3.5",
"web-vitals": "^2.1.0",

バイナリファイルは表示されません。

バイナリファイルは表示されません。

3
backend/public/assets/css/style.css vendored ノーマルファイル

長すぎる行があるためファイル差分は表示されません

1
backend/public/assets/css/style.css.map ノーマルファイル

長すぎる行があるためファイル差分は表示されません

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/MuseoSans/MuseoSans-Black.ttf ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/MuseoSans/MuseoSans-Black.woff ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/MuseoSans/MuseoSans-Black.woff2 ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Bold.eot ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Bold.woff ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Bold.woff2 ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Medium.eot ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Medium.woff ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Medium.woff2 ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Regular.eot ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/assets/fonts/YakuHanJP/YakuHanJP-Regular.woff ノーマルファイル

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリファイルは表示されません。

バイナリ
backend/public/assets/img/avatar/avatar-sample01@2x.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 11 KiB

バイナリ
backend/public/assets/img/avatar/avatar-sample02@2x.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 12 KiB

バイナリ
backend/public/assets/img/avatar/avatar-sample03@2x.png ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 14 KiB

バイナリ
backend/public/assets/img/avatar/avatar-sample04.jpg ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 161 KiB

3
backend/public/assets/img/common/logo.svg ノーマルファイル
ファイルの表示

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="37.2" height="18.1" viewBox="0 0 37.2 18.1">
<path id="パス_19" data-name="パス 19" d="M-5.18-1.16V.22H-2.6a13.709,13.709,0,0,1-.08-1.74V-12.96c0-.74.02-1.14.06-1.66-.46.04-.82.06-1.68.06H-15.66c-.8,0-1.22-.02-1.7-.06a13.282,13.282,0,0,1,.08,1.68V-1.48A13.365,13.365,0,0,1-17.36.24h2.58v-1.4Zm0-2.28h-9.6V-12.3h9.6ZM17.3-13.5a13.374,13.374,0,0,0-1.78-3.16l-1.46.54A14.931,14.931,0,0,1,15.34-14H5.06a12.709,12.709,0,0,1-2.58-.14v2.6a17.73,17.73,0,0,1,2.56-.1H13.8v8.72H4.7a12.375,12.375,0,0,1-2.5-.14V-.48a16.555,16.555,0,0,1,2.46-.1l9.12.02V.64h2.68a12.486,12.486,0,0,1-.1-2.04V-13.12Zm2.54-.92a11.133,11.133,0,0,0-1.76-3.04l-1.42.56a13.528,13.528,0,0,1,1.72,3.1Z" transform="translate(17.36 17.46)" fill="#fff"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 774 B

バイナリ
backend/public/assets/img/common/white-bg.jpg ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 3.6 KiB

バイナリ
backend/public/assets/img/dummy/post-dummy01.jpg ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 372 KiB

バイナリ
backend/public/assets/img/dummy/post-dummy02.jpg ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 519 KiB

バイナリ
backend/public/assets/img/dummy/post-dummy03.jpg ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 209 KiB

バイナリ
backend/public/assets/img/dummy/post-dummy04.jpg ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 635 KiB

バイナリ
backend/public/assets/img/dummy/post-dummy05.jpg ノーマルファイル

バイナリファイルは表示されません。

変更後

幅:  |  高さ:  |  サイズ: 178 KiB

180
backend/public/assets/img/dummy/sample.pdf ノーマルファイル

長すぎる行があるためファイル差分は表示されません

バイナリ
backend/public/assets/img/icon/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="22.742" height="19.855" viewBox="0 0 22.742 19.855"><g fill="none" stroke="#080808" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" data-name="Icon feather-alert-triangle" transform="translate(0.777 0.75)"><path d="M11.188,5.322,2.6,19.659A2.028,2.028,0,0,0,4.334,22.7H21.51a2.028,2.028,0,0,0,1.734-3.042L14.656,5.322a2.028,2.028,0,0,0-3.468,0Z" data-name="パス 3" transform="translate(-2.328 -4.346)"/><path d="M18,13.5v6.91" data-name="パス 4" transform="translate(-7.406 -8.547)"/><path d="M18,25.5h0" data-name="パス 5" transform="translate(-7.406 -11.2)"/></g></svg>

変更後

幅:  |  高さ:  |  サイズ: 642 B

17
backend/public/assets/img/icon/building.svg ノーマルファイル
ファイルの表示

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 22 22" style="enable-background:new 0 0 22 22;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D0D0D0;}
</style>
<path class="st0" d="M19.3,19.8h-0.8V1.9c0-0.5-0.4-0.9-0.9-0.9c0,0,0,0,0,0H4.4c-0.5,0-0.9,0.4-0.9,0.9v17.9H2.7
c-0.3,0-0.5,0.2-0.5,0.5c0,0,0,0,0,0V21h17.6v-0.8C19.8,20,19.6,19.8,19.3,19.8z M7.2,3.9c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0,0h1.6
c0.3,0,0.5,0.2,0.5,0.5c0,0,0,0,0,0v1.6C9.7,5.8,9.5,6,9.3,6h0H7.7C7.4,6,7.2,5.8,7.2,5.5v0L7.2,3.9z M7.2,7.7
c0-0.3,0.2-0.5,0.5-0.5c0,0,0,0,0,0h1.6c0.3,0,0.5,0.2,0.5,0.5v0v1.6c0,0.3-0.2,0.5-0.5,0.5H7.7c-0.3,0-0.5-0.2-0.5-0.5L7.2,7.7z
M9.3,13.5H7.7c-0.3,0-0.5-0.2-0.5-0.5v-1.6c0-0.3,0.2-0.5,0.5-0.5h1.6c0.3,0,0.5,0.2,0.5,0.5V13C9.7,13.3,9.5,13.5,9.3,13.5z
M12.3,19.8H9.7v-3.3c0-0.3,0.2-0.5,0.5-0.5h1.6c0.3,0,0.5,0.2,0.5,0.5V19.8z M14.8,13c0,0.3-0.2,0.5-0.5,0.5h-1.6
c-0.3,0-0.5-0.2-0.5-0.5v-1.6c0-0.3,0.2-0.5,0.5-0.5h1.6c0.3,0,0.5,0.2,0.5,0.5L14.8,13z M14.8,9.3c0,0.3-0.2,0.5-0.5,0.5h-1.6
c-0.3,0-0.5-0.2-0.5-0.5V7.7c0-0.3,0.2-0.5,0.5-0.5h1.6c0.3,0,0.5,0.2,0.5,0.5L14.8,9.3z M14.8,5.5c0,0.3-0.2,0.5-0.5,0.5h-1.6
c-0.3,0-0.5-0.2-0.5-0.5V3.9c0-0.3,0.2-0.5,0.5-0.5h1.6c0.3,0,0.5,0.2,0.5,0.5L14.8,5.5z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.4 KiB

12
backend/public/assets/img/icon/calendar.svg ノーマルファイル
ファイルの表示

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 22 22" style="enable-background:new 0 0 22 22;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D0D0D0;}
</style>
<path class="st0" d="M8.3,8.8h2.2V11H8.3V8.8z M11.5,8.8h2.2V11h-2.2L11.5,8.8z M14.8,8.8H17V11h-2.2L14.8,8.8z M5,15.4h2.2v2.2H5
V15.4z M8.3,15.4h2.2v2.2H8.3L8.3,15.4z M11.5,15.4h2.2v2.2h-2.2L11.5,15.4z M8.3,12.1h2.2v2.2H8.3V12.1z M11.5,12.1h2.2v2.2h-2.2
L11.5,12.1z M14.8,12.1H17v2.2h-2.2L14.8,12.1z M5,12.1h2.2v2.2H5L5,12.1z M17,2.3v1.1h-2.2V2.3H7.2v1.1H5V2.3H2.8v17.4h16.3V2.3
C19.2,2.3,17,2.3,17,2.3z M18.1,18.6H3.9v-12h14.2L18.1,18.6z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 857 B

1
backend/public/assets/img/icon/camera.svg ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24.095" height="19.987" viewBox="0 0 24.095 19.987"><g fill="none" stroke="#080808" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" data-name="Icon feather-camera" transform="translate(0.75 0.75)"><path d="M24.095,20.933a2.054,2.054,0,0,1-2.054,2.054H3.554A2.054,2.054,0,0,1,1.5,20.933V9.635A2.054,2.054,0,0,1,3.554,7.581H7.662L9.716,4.5h6.162l2.054,3.081h4.108a2.054,2.054,0,0,1,2.054,2.054Z" data-name="パス 1" transform="translate(-1.5 -4.5)"/><path d="M20.216,17.608A4.108,4.108,0,1,1,16.108,13.5,4.108,4.108,0,0,1,20.216,17.608Z" data-name="パス 2" transform="translate(-4.811 -7.338)"/></g></svg>

変更後

幅:  |  高さ:  |  サイズ: 671 B

ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="15.141" height="11.595" viewBox="0 0 15.141 11.595"><path fill="#fff" d="M25.5,13.563l-1.237-1.273a.266.266,0,0,0-.2-.084h0a.255.255,0,0,0-.2.084l-8.578,8.641L12.164,17.81a.272.272,0,0,0-.394,0l-1.252,1.252a.28.28,0,0,0,0,.4L14.456,23.4a1.245,1.245,0,0,0,.823.4,1.3,1.3,0,0,0,.816-.387H16.1l9.4-9.45A.3.3,0,0,0,25.5,13.563Z" data-name="Icon ionic-ios-checkmark" transform="translate(-10.434 -12.206)"/></svg>

変更後

幅:  |  高さ:  |  サイズ: 455 B

15
backend/public/assets/img/icon/list-black.svg ノーマルファイル
ファイルの表示

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<g transform="translate(-4.5 -7.313)">
<path d="M9.8,19.3c0,0.8-0.6,1.4-1.4,1.4c-0.8,0-1.4-0.6-1.4-1.4c0-0.8,0.6-1.4,1.4-1.4S9.8,18.6,9.8,19.3L9.8,19.3z"/>
<path d="M9.8,13.2c0,0.8-0.6,1.4-1.4,1.4c-0.8,0-1.4-0.6-1.4-1.4c0-0.8,0.6-1.4,1.4-1.4h0C9.2,11.8,9.8,12.4,9.8,13.2z"/>
<path d="M9.8,25.4c0,0.8-0.6,1.4-1.4,1.4c-0.8,0-1.4-0.6-1.4-1.4c0-0.8,0.6-1.4,1.4-1.4S9.8,24.7,9.8,25.4L9.8,25.4z"/>
<path d="M25.2,18.5H13.3c-0.4,0-0.8,0.4-0.8,0.8s0.4,0.8,0.8,0.8c0,0,0,0,0,0h11.9c0.4,0,0.8-0.4,0.8-0.8
C26,18.9,25.6,18.5,25.2,18.5C25.2,18.5,25.2,18.5,25.2,18.5z"/>
<path d="M25.2,24.7H13.3c-0.4,0-0.8,0.4-0.8,0.8c0,0.4,0.4,0.8,0.8,0.8c0,0,0,0,0,0h11.9c0.4,0,0.8-0.4,0.8-0.8
C26,25,25.6,24.7,25.2,24.7z"/>
<path d="M13.3,14h11.9c0.4,0,0.8-0.4,0.8-0.8s-0.4-0.8-0.8-0.8H13.3c-0.4,0-0.8,0.4-0.8,0.8S12.9,14,13.3,14z"/>
</g>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.2 KiB

19
backend/public/assets/img/icon/list-gray.svg ノーマルファイル
ファイルの表示

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
</style>
<g transform="translate(-4.5 -7.313)">
<path class="st0" d="M9.8,19.3c0,0.8-0.6,1.4-1.4,1.4c-0.8,0-1.4-0.6-1.4-1.4s0.6-1.4,1.4-1.4S9.8,18.6,9.8,19.3L9.8,19.3z"/>
<path class="st0" d="M9.8,13.2c0,0.8-0.6,1.4-1.4,1.4C7.6,14.6,7,14,7,13.2c0-0.8,0.6-1.4,1.4-1.4l0,0C9.2,11.8,9.8,12.4,9.8,13.2z
"/>
<path class="st0" d="M9.8,25.4c0,0.8-0.6,1.4-1.4,1.4c-0.8,0-1.4-0.6-1.4-1.4S7.6,24,8.4,24S9.8,24.7,9.8,25.4L9.8,25.4z"/>
<path class="st0" d="M25.2,18.5H13.3c-0.4,0-0.8,0.4-0.8,0.8s0.4,0.8,0.8,0.8l0,0h11.9c0.4,0,0.8-0.4,0.8-0.8S25.6,18.5,25.2,18.5
L25.2,18.5z"/>
<path class="st0" d="M25.2,24.7H13.3c-0.4,0-0.8,0.4-0.8,0.8s0.4,0.8,0.8,0.8l0,0h11.9c0.4,0,0.8-0.4,0.8-0.8
C26,25,25.6,24.7,25.2,24.7z"/>
<path class="st0" d="M13.3,14h11.9c0.4,0,0.8-0.4,0.8-0.8s-0.4-0.8-0.8-0.8H13.3c-0.4,0-0.8,0.4-0.8,0.8S12.9,14,13.3,14z"/>
</g>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.2 KiB

ファイルの表示

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F0DE00;}
</style>
<g transform="translate(-4.5 -7.313)">
<path class="st0" d="M9.8,19.3c0,0.8-0.6,1.4-1.4,1.4c-0.8,0-1.4-0.6-1.4-1.4s0.6-1.4,1.4-1.4S9.8,18.6,9.8,19.3L9.8,19.3z"/>
<path class="st0" d="M9.8,13.2c0,0.8-0.6,1.4-1.4,1.4C7.6,14.6,7,14,7,13.2s0.6-1.4,1.4-1.4l0,0C9.2,11.8,9.8,12.4,9.8,13.2z"/>
<path class="st0" d="M9.8,25.4c0,0.8-0.6,1.4-1.4,1.4c-0.8,0-1.4-0.6-1.4-1.4S7.6,24,8.4,24S9.8,24.7,9.8,25.4L9.8,25.4z"/>
<path class="st0" d="M25.2,18.5H13.3c-0.4,0-0.8,0.4-0.8,0.8s0.4,0.8,0.8,0.8l0,0h11.9c0.4,0,0.8-0.4,0.8-0.8S25.6,18.5,25.2,18.5
L25.2,18.5z"/>
<path class="st0" d="M25.2,24.7H13.3c-0.4,0-0.8,0.4-0.8,0.8s0.4,0.8,0.8,0.8l0,0h11.9c0.4,0,0.8-0.4,0.8-0.8
C26,25,25.6,24.7,25.2,24.7z"/>
<path class="st0" d="M13.3,14h11.9c0.4,0,0.8-0.4,0.8-0.8s-0.4-0.8-0.8-0.8H13.3c-0.4,0-0.8,0.4-0.8,0.8S12.9,14,13.3,14z"/>
</g>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.2 KiB

ファイルの表示

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<g transform="translate(-3.375 -5.625)">
<path d="M18.1,23.2c-0.4,0-0.7,0.3-0.7,0.7c0,0.5-0.4,0.9-0.9,0.9h-9c-0.5,0-0.9-0.4-0.9-0.9V11.3c0-0.5,0.4-0.9,0.9-0.9h9
c0.5,0,0.9,0.4,0.9,0.9c0,0.4,0.3,0.7,0.7,0.7c0.4,0,0.7-0.3,0.7-0.7l0,0c0-1.2-1-2.2-2.2-2.2l0,0h-9c-1.2,0-2.2,1-2.2,2.2l0,0
v12.6c0,1.2,1,2.2,2.2,2.2h9c1.2,0,2.2-1,2.2-2.2C18.8,23.6,18.5,23.2,18.1,23.2z"/>
<path d="M21,12.9c-0.1-0.1-0.3-0.2-0.5-0.2s-0.4,0.1-0.5,0.2c-0.3,0.3-0.3,0.7,0,1l0,0l3.2,3.1H10.8c-0.4,0-0.7,0.3-0.7,0.7
s0.3,0.7,0.7,0.7l0,0h12.4l-3.1,3.1c-0.3,0.3-0.3,0.7,0,1l0,0c0.1,0.1,0.3,0.2,0.5,0.2s0.4-0.1,0.5-0.2l4-4c0.4-0.4,0.4-1,0.1-1.3
c0,0,0,0-0.1-0.1L21,12.9z"/>
</g>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1016 B

ファイルの表示

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
</style>
<g transform="translate(-3.375 -5.625)">
<path class="st0" d="M18.1,23.2c-0.4,0-0.7,0.3-0.7,0.7c0,0.5-0.4,0.9-0.9,0.9h-9c-0.5,0-0.9-0.4-0.9-0.9V11.3
c0-0.5,0.4-0.9,0.9-0.9h9c0.5,0,0.9,0.4,0.9,0.9c0,0.4,0.3,0.7,0.7,0.7c0.4,0,0.7-0.3,0.7-0.7c0,0,0,0,0,0c0-1.2-1-2.2-2.2-2.2l0,0
h-9c-1.2,0-2.2,1-2.2,2.2l0,0v12.6c0,1.2,1,2.2,2.2,2.2h9c1.2,0,2.2-1,2.2-2.2C18.8,23.6,18.5,23.2,18.1,23.2z"/>
<path class="st0" d="M21,12.9c-0.1-0.1-0.3-0.2-0.5-0.2c-0.2,0-0.4,0.1-0.5,0.2c-0.3,0.3-0.3,0.7,0,1c0,0,0,0,0,0l3.2,3.1H10.8
c-0.4,0-0.7,0.3-0.7,0.7s0.3,0.7,0.7,0.7c0,0,0,0,0,0h12.4l-3.1,3.1c-0.3,0.3-0.3,0.7,0,1l0,0c0.1,0.1,0.3,0.2,0.5,0.2
c0.2,0,0.4-0.1,0.5-0.2l4-4c0.4-0.4,0.4-1,0.1-1.3c0,0,0,0-0.1-0.1L21,12.9z"/>
</g>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.1 KiB

ファイルの表示

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F0DE00;}
</style>
<g transform="translate(-3.375 -5.625)">
<path class="st0" d="M18.1,23.2c-0.4,0-0.7,0.3-0.7,0.7c0,0.5-0.4,0.9-0.9,0.9h-9c-0.5,0-0.9-0.4-0.9-0.9V11.3
c0-0.5,0.4-0.9,0.9-0.9h9c0.5,0,0.9,0.4,0.9,0.9c0,0.4,0.3,0.7,0.7,0.7c0.4,0,0.7-0.3,0.7-0.7l0,0c0-1.2-1-2.2-2.2-2.2l0,0h-9
c-1.2,0-2.2,1-2.2,2.2l0,0v12.6c0,1.2,1,2.2,2.2,2.2h9c1.2,0,2.2-1,2.2-2.2C18.8,23.6,18.5,23.2,18.1,23.2z"/>
<path class="st0" d="M21,12.9c-0.1-0.1-0.3-0.2-0.5-0.2s-0.4,0.1-0.5,0.2c-0.3,0.3-0.3,0.7,0,1l0,0l3.2,3.1H10.8
c-0.4,0-0.7,0.3-0.7,0.7s0.3,0.7,0.7,0.7l0,0h12.4l-3.1,3.1c-0.3,0.3-0.3,0.7,0,1l0,0c0.1,0.1,0.3,0.2,0.5,0.2s0.4-0.1,0.5-0.2l4-4
c0.4-0.4,0.4-1,0.1-1.3c0,0,0,0-0.1-0.1L21,12.9z"/>
</g>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.1 KiB

10
backend/public/assets/img/icon/mail.svg ノーマルファイル
ファイルの表示

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 22 22" style="enable-background:new 0 0 22 22;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D0D0D0;}
</style>
<path class="st0" d="M18,4H4C3,4,2.2,4.8,2.2,5.7l0,10.5C2.2,17.2,3,18,4,18H18c1,0,1.8-0.8,1.8-1.8V5.7C19.8,4.8,19,4,18,4z
M18,7.5l-7,4.4L4,7.5V5.7l7,4.4l7-4.4V7.5z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 582 B

ファイルの表示

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<path d="M16,10.8c1.6,0,2.9-1.4,2.9-3s-1.4-2.9-3-2.9C14.3,5,13,6.3,13,7.9S14.4,10.8,16,10.8z M8,10.8c1.6,0,2.9-1.4,2.9-3
s-1.4-2.9-3-2.9C6.3,5,5,6.3,5,7.9S6.4,10.8,8,10.8z M8,13c-2.3,0-7,1.1-7,3.4V19h14.1v-2.6C15.1,14.1,10.4,13,8,13L8,13z M16,13.5
c-0.3,0-0.6,0-0.9,0c1,0.5,1.7,1.7,1.6,2.8v2.6H23v-2.6C23,14.1,18.3,13.5,16,13.5L16,13.5z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 701 B

ファイルの表示

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
</style>
<path class="st0" d="M16,10.8c1.6,0,2.9-1.4,2.9-3c0-1.6-1.4-2.9-3-2.9C14.3,5,13,6.3,13,7.9C13,9.5,14.4,10.8,16,10.8z M8,10.8
c1.6,0,2.9-1.4,2.9-3c0-1.6-1.4-2.9-3-2.9C6.3,5,5,6.3,5,7.9C5,9.5,6.4,10.8,8,10.8z M8,13c-2.3,0-7,1.1-7,3.4v2.6h14.1v-2.6
C15.1,14.1,10.4,13,8,13L8,13z M16,13.5c-0.3,0-0.6,0-0.9,0c1,0.5,1.7,1.7,1.6,2.8v2.6H23v-2.6C23,14.1,18.3,13.5,16,13.5L16,13.5z"
/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 793 B

ファイルの表示

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F0DE00;}
</style>
<path class="st0" d="M16,10.8c1.6,0,2.9-1.4,2.9-3s-1.4-2.9-3-2.9C14.3,5,13,6.3,13,7.9S14.4,10.8,16,10.8z M8,10.8
c1.6,0,2.9-1.4,2.9-3s-1.4-2.9-3-2.9C6.3,5,5,6.3,5,7.9S6.4,10.8,8,10.8z M8,13c-2.3,0-7,1.1-7,3.4V19h14.1v-2.6
C15.1,14.1,10.4,13,8,13L8,13z M16,13.5c-0.3,0-0.6,0-0.9,0c1,0.5,1.7,1.7,1.6,2.8v2.6H23v-2.6C23,14.1,18.3,13.5,16,13.5L16,13.5z"
/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 769 B

11
backend/public/assets/img/icon/phone.svg ノーマルファイル
ファイルの表示

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 22 22" style="enable-background:new 0 0 22 22;" xml:space="preserve">
<style type="text/css">
.st0{fill:#D0D0D0;}
</style>
<path class="st0" d="M19.1,3.1l-3.6-0.8c-0.4-0.1-0.8,0.1-0.9,0.5L13,6.6c-0.1,0.3,0,0.7,0.2,1l2.1,1.7c-1.3,2.7-3.4,4.8-6.1,6.1
l-1.7-2.1c-0.2-0.3-0.6-0.4-1-0.2l-3.8,1.7c-0.4,0.2-0.6,0.6-0.5,0.9l0.8,3.6c0.1,0.4,0.4,0.6,0.8,0.6c8.8,0,15.9-7.1,15.9-15.9
c0,0,0,0,0,0C19.8,3.5,19.5,3.1,19.1,3.1z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 709 B

1
backend/public/assets/img/icon/plus01.svg ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="13.692" height="13.692" viewBox="0 0 13.692 13.692"><g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" data-name="Icon feather-plus" transform="translate(-0.555 -3.708)"><path d="M18,7.5V19.192" data-name="パス 12" transform="translate(-10.599 -2.792)"/><path d="M7.5,18H19.192" data-name="パス 13" transform="translate(-5.945 -7.446)"/></g></svg>

変更後

幅:  |  高さ:  |  サイズ: 440 B

1
backend/public/assets/img/icon/plus02.svg ノーマルファイル
ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="19.092" height="19.092" viewBox="0 0 19.092 19.092"><g fill="none" stroke="#000" stroke-linecap="round" stroke-linejoin="round" stroke-width="3" data-name="Icon feather-plus" transform="translate(9.546 -15.91) rotate(45)"><path d="M18,7.5v21" data-name="パス 14"/><path d="M7.5,18h21" data-name="パス 15"/></g></svg>

変更後

幅:  |  高さ:  |  サイズ: 367 B

ファイルの表示

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<path d="M20.9,19.7l-5.1-5.1c2.5-3.1,1.9-7.7-1.2-10.1S7,2.6,4.5,5.7s-1.9,7.7,1.2,10.1c2.7,2.1,6.4,2.1,9-0.1l5,5.1
c0.3,0.3,0.8,0.3,1.1,0C21.1,20.5,21.2,20.1,20.9,19.7z M10.1,15.8c-3.1,0-5.7-2.6-5.7-5.7C4.4,7,7,4.4,10.1,4.4s5.7,2.6,5.7,5.7
c0,1.5-0.6,3-1.7,4C13.1,15.2,11.6,15.8,10.1,15.8z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 653 B

ファイルの表示

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
</style>
<path class="st0" d="M20.9,19.7l-5.1-5.1c2.5-3.1,1.9-7.7-1.2-10.1S7,2.6,4.5,5.7s-1.9,7.7,1.2,10.1c2.7,2.1,6.4,2.1,9-0.1l5,5.1
c0.3,0.3,0.8,0.3,1.1,0C21.1,20.5,21.2,20.1,20.9,19.7z M10.1,15.8c-3.1,0-5.7-2.6-5.7-5.7C4.4,7,7,4.4,10.1,4.4
c3.1,0,5.7,2.6,5.7,5.7c0,1.5-0.6,3-1.7,4C13.1,15.2,11.6,15.8,10.1,15.8z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 725 B

ファイルの表示

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F0DE00;}
</style>
<path class="st0" d="M20.9,19.7l-5.1-5.1c2.5-3.1,1.9-7.7-1.2-10.1S7,2.6,4.5,5.7s-1.9,7.7,1.2,10.1c2.7,2.1,6.4,2.1,9-0.1l5,5.1
c0.3,0.3,0.8,0.3,1.1,0C21.1,20.5,21.2,20.1,20.9,19.7z M10.1,15.8c-3.1,0-5.7-2.6-5.7-5.7C4.4,7,7,4.4,10.1,4.4s5.7,2.6,5.7,5.7
c0,1.5-0.6,3-1.7,4C13.1,15.2,11.6,15.8,10.1,15.8z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 719 B

ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32.5" height="30.25" viewBox="0 0 32.5 30.25"><path fill="#fff" stroke="#d0d0d0" stroke-width="1" d="M32.555,13.5H22.212L19.069,4.12a1.139,1.139,0,0,0-2.138,0L13.788,13.5H3.375A1.128,1.128,0,0,0,2.25,14.625a.827.827,0,0,0,.021.19,1.081,1.081,0,0,0,.471.795l8.5,5.991L7.98,31.085a1.128,1.128,0,0,0,.387,1.266A1.088,1.088,0,0,0,9,32.625a1.378,1.378,0,0,0,.7-.253L18,26.459l8.3,5.913a1.318,1.318,0,0,0,.7.253,1.01,1.01,0,0,0,.626-.274,1.114,1.114,0,0,0,.387-1.266L24.75,21.6l8.43-6.047.2-.176a1.18,1.18,0,0,0,.366-.752A1.191,1.191,0,0,0,32.555,13.5Z" data-name="Icon ionic-ios-star-outline" transform="translate(-1.75 -2.875)"/></svg>

変更後

幅:  |  高さ:  |  サイズ: 678 B

ファイルの表示

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#CCCCCC;}
</style>
<path id="Icon_ionic-ios-star-outline" class="st0" d="M21.9,9h-7.1l-2.1-6.3c-0.2-0.4-0.6-0.6-1-0.4c-0.2,0.1-0.4,0.3-0.4,0.4
L9.1,9H2C1.6,9,1.2,9.3,1.2,9.7v0.1c0,0.2,0.2,0.4,0.4,0.5l5.8,4l-2.2,6.3c-0.1,0.3,0,0.6,0.3,0.9c0.1,0.2,0.3,0.2,0.4,0.3
c0.2,0,0.4-0.1,0.4-0.2l5.6-3.9l5.6,3.9c0.2,0.1,0.3,0.2,0.4,0.2s0.3-0.1,0.4-0.2c0.3-0.2,0.4-0.5,0.3-0.9l-2.2-6.3l5.7-4l0.2-0.1
c0.3-0.3,0.4-0.4,0.4-0.6C22.7,9.3,22.3,9,21.9,9z M15.8,13.4c-0.4,0.4-0.7,1-0.4,1.5l1.4,4.1c0,0.1,0,0.2-0.1,0.3
c-0.1,0-0.1,0-0.2,0l-3.7-2.6c-0.3-0.2-0.5-0.3-0.8-0.3s-0.5,0.1-0.8,0.3l-3.8,2.5c-0.1,0.1-0.2,0-0.3,0c0-0.1-0.1-0.1,0-0.2
l1.4-4.1c0.2-0.5,0-1.2-0.5-1.5l-3.8-2.7c-0.1-0.1-0.1-0.2,0-0.3c0-0.1,0.1-0.1,0.2-0.1h4.7c0.5,0,1.1-0.4,1.3-0.9l1.4-4.2
c0-0.1,0.2-0.2,0.3-0.1c0.1,0,0.1,0.1,0.1,0.1l1.3,4.1c0.2,0.5,0.7,0.9,1.3,0.9h4.6c0.1,0,0.2,0.1,0.2,0.2c0,0.1,0,0.1-0.1,0.2
L15.8,13.4z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 1.2 KiB

ファイルの表示

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="31.5" height="29.25" viewBox="0 0 31.5 29.25"><path fill="#f0de00" d="M32.555,13.5H22.212L19.069,4.12a1.139,1.139,0,0,0-2.138,0L13.788,13.5H3.375A1.128,1.128,0,0,0,2.25,14.625a.827.827,0,0,0,.021.19,1.081,1.081,0,0,0,.471.795l8.5,5.991L7.98,31.085a1.128,1.128,0,0,0,.387,1.266A1.088,1.088,0,0,0,9,32.625a1.378,1.378,0,0,0,.7-.253L18,26.459l8.3,5.913a1.318,1.318,0,0,0,.7.253,1.01,1.01,0,0,0,.626-.274,1.114,1.114,0,0,0,.387-1.266L24.75,21.6l8.43-6.047.2-.176a1.18,1.18,0,0,0,.366-.752A1.191,1.191,0,0,0,32.555,13.5Z" data-name="Icon ionic-ios-star-outline" transform="translate(-2.25 -3.375)"/></svg>

変更後

幅:  |  高さ:  |  サイズ: 647 B

ファイルの表示

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 25.4.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="レイヤー_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px"
y="0px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
<style type="text/css">
.st0{fill:#F0DE00;}
</style>
<path id="Icon_ionic-ios-star-outline" class="st0" d="M21.9,9h-7.1l-2.1-6.3c-0.2-0.4-0.6-0.6-1-0.4c-0.2,0.1-0.4,0.3-0.4,0.4
L9.1,9H2C1.6,9,1.2,9.3,1.2,9.7v0.1c0,0.2,0.2,0.4,0.4,0.5l5.8,4l-2.2,6.3c-0.1,0.3,0,0.6,0.3,0.9c0.1,0.2,0.3,0.2,0.4,0.3
c0.2,0,0.4-0.1,0.4-0.2l5.6-3.9l5.6,3.9c0.2,0.1,0.3,0.2,0.4,0.2s0.3-0.1,0.4-0.2c0.3-0.2,0.4-0.5,0.3-0.9l-2.2-6.3l5.7-4l0.2-0.1
c0.3-0.3,0.4-0.4,0.4-0.6C22.7,9.3,22.3,9,21.9,9z"/>
</svg>

変更後

幅:  |  高さ:  |  サイズ: 837 B

バイナリ
backend/public/assets/js/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

61
backend/public/assets/js/app.js vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,61 @@
/*
* app.js
*/
// tab change(add class)
$(".tab-label").on("click",function(){
var $th = $(this).index();
$(".tab-label").removeClass("is-active");
$(".meeting-content-wrap").removeClass("is-active");
$(this).addClass("is-active");
$(".meeting-content-wrap").eq($th).addClass("is-active");
});
// tab change(link of a tag)
$('.meeting-member-link').on('click', function(e){
e.stopPropagation();
e.preventDefault();
location.href = $(this).attr('data-url');
})
// favorite btn
$(function () {
$(".like-icon").click(function () {
var clazz = $(this).attr('class').replace(/\bicon-star(Fill)?\b/, function (_, p1) {
return "icon-star".concat(p1 ? '' : 'Fill');
});
$(this).attr('class', clazz);
});
});
// modal tab change
$(function() {
let tabs = $(".modal-tab-label");
$(".modal-tab-label").on("click", function() {
$(".is-active").removeClass("is-active");
$(this).addClass("is-active");
const index = tabs.index(this);
$(".modal-content").removeClass("is-active").eq(index).addClass("is-active");
})
});
// 「全員に送信」のチェックボックス
$(function() {
$('#allmember_send').on('click', function() {
$("input[name='chk[]']").prop('checked', this.checked);
});
$("input[name='chk[]']").on('click', function() {
if ($('.checkbox-wrap :checked').length == $('.checkbox-wrap :input').length) {
$('#allmember_send').prop('checked', true);
} else {
$('#allmember_send').prop('checked', false);
}
});
});
// object-fit for IE
$(function () {
objectFitImages();
});

バイナリ
backend/public/assets/js/lib/.DS_Store vendored ノーマルファイル

バイナリファイルは表示されません。

10364
backend/public/assets/js/lib/jquery-3.3.1.min.js vendored ノーマルファイル

ファイル差分が大きすぎるため省略します 差分を読み込み

2
backend/public/assets/js/ofi.min.js vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,2 @@
/*! npm.im/object-fit-images 3.2.4 */
var objectFitImages=function(){"use strict";function t(t,e){return"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='"+t+"' height='"+e+"'%3E%3C/svg%3E"}function e(t){if(t.srcset&&!p&&window.picturefill){var e=window.picturefill._;t[e.ns]&&t[e.ns].evaled||e.fillImg(t,{reselect:!0}),t[e.ns].curSrc||(t[e.ns].supported=!1,e.fillImg(t,{reselect:!0})),t.currentSrc=t[e.ns].curSrc||t.src}}function i(t){for(var e,i=getComputedStyle(t).fontFamily,r={};null!==(e=u.exec(i));)r[e[1]]=e[2];return r}function r(e,i,r){var n=t(i||1,r||0);b.call(e,"src")!==n&&h.call(e,"src",n)}function n(t,e){t.naturalWidth?e(t):setTimeout(n,100,t,e)}function c(t){var c=i(t),o=t[l];if(c["object-fit"]=c["object-fit"]||"fill",!o.img){if("fill"===c["object-fit"])return;if(!o.skipTest&&f&&!c["object-position"])return}if(!o.img){o.img=new Image(t.width,t.height),o.img.srcset=b.call(t,"data-ofi-srcset")||t.srcset,o.img.src=b.call(t,"data-ofi-src")||t.src,h.call(t,"data-ofi-src",t.src),t.srcset&&h.call(t,"data-ofi-srcset",t.srcset),r(t,t.naturalWidth||t.width,t.naturalHeight||t.height),t.srcset&&(t.srcset="");try{s(t)}catch(t){window.console&&console.warn("https://bit.ly/ofi-old-browser")}}e(o.img),t.style.backgroundImage='url("'+(o.img.currentSrc||o.img.src).replace(/"/g,'\\"')+'")',t.style.backgroundPosition=c["object-position"]||"center",t.style.backgroundRepeat="no-repeat",t.style.backgroundOrigin="content-box",/scale-down/.test(c["object-fit"])?n(o.img,function(){o.img.naturalWidth>t.width||o.img.naturalHeight>t.height?t.style.backgroundSize="contain":t.style.backgroundSize="auto"}):t.style.backgroundSize=c["object-fit"].replace("none","auto").replace("fill","100% 100%"),n(o.img,function(e){r(t,e.naturalWidth,e.naturalHeight)})}function s(t){var e={get:function(e){return t[l].img[e?e:"src"]},set:function(e,i){return t[l].img[i?i:"src"]=e,h.call(t,"data-ofi-"+i,e),c(t),e}};Object.defineProperty(t,"src",e),Object.defineProperty(t,"currentSrc",{get:function(){return e.get("currentSrc")}}),Object.defineProperty(t,"srcset",{get:function(){return e.get("srcset")},set:function(t){return e.set(t,"srcset")}})}function o(){function t(t,e){return t[l]&&t[l].img&&("src"===e||"srcset"===e)?t[l].img:t}d||(HTMLImageElement.prototype.getAttribute=function(e){return b.call(t(this,e),e)},HTMLImageElement.prototype.setAttribute=function(e,i){return h.call(t(this,e),e,String(i))})}function a(t,e){var i=!y&&!t;if(e=e||{},t=t||"img",d&&!e.skipTest||!m)return!1;"img"===t?t=document.getElementsByTagName("img"):"string"==typeof t?t=document.querySelectorAll(t):"length"in t||(t=[t]);for(var r=0;r<t.length;r++)t[r][l]=t[r][l]||{skipTest:e.skipTest},c(t[r]);i&&(document.body.addEventListener("load",function(t){"IMG"===t.target.tagName&&a(t.target,{skipTest:e.skipTest})},!0),y=!0,t="img"),e.watchMQ&&window.addEventListener("resize",a.bind(null,t,{skipTest:e.skipTest}))}var l="fregante:object-fit-images",u=/(object-fit|object-position)\s*:\s*([-.\w\s%]+)/g,g="undefined"==typeof Image?{style:{"object-position":1}}:new Image,f="object-fit"in g.style,d="object-position"in g.style,m="background-size"in g.style,p="string"==typeof g.currentSrc,b=g.getAttribute,h=g.setAttribute,y=!1;return a.supportsObjectFit=f,a.supportsObjectPosition=d,o(),a}();

17
backend/public/assets/js/profile.js vendored ノーマルファイル
ファイルの表示

@ -0,0 +1,17 @@
/*
* profile.js
*/
// サムネイル画像表示
const target = document.getElementById('profile-file');
window.addEventListener('DOMContentLoaded', function() {
target.addEventListener('change', function (e) {
const file = e.target.files[0]
const reader = new FileReader();
reader.onload = function (e) {
const img = document.getElementById("profile-file-preview")
img.src = e.target.result;
}
reader.readAsDataURL(file);
}, false);
}, false);

ファイル差分が大きすぎるため省略します 差分を読み込み

バイナリ
backend/public/fonts/GenJyuuGothic-P-Bold.ttf ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/fonts/GenJyuuGothic-P-Bold.woff ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/fonts/GenJyuuGothic-P-Bold.woff2 ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/fonts/GenJyuuGothic-P-Regular.ttf ノーマルファイル

バイナリファイルは表示されません。

バイナリ
backend/public/fonts/GenJyuuGothic-P-Regular.woff ノーマルファイル

バイナリファイルは表示されません。

変更されたファイルが多すぎるため、一部のファイルは表示されません さらに表示