Merge branch 'backend' of https://github.com/nakazawakan/kikikanri into p_account

このコミットが含まれているのは:
dragon1211 2021-11-13 20:17:23 +09:00
コミット 9ac9560627
11個のファイルの変更118行の追加70行の削除

ファイルの表示

@ -11,7 +11,7 @@ trait AuthorizationTrait {
$loginpage = $viewpath.'/'.($this->getGuard() == 'admins' ? 'login' : 'auth'); $loginpage = $viewpath.'/'.($this->getGuard() == 'admins' ? 'login' : 'auth');
if (Session::has($this->getGuard())) { if (Session::has($this->getGuard())) {
return redirect($viewpath.'/meeting'); return redirect(request()->route()->action['prefix'].'/meeting');
} }
return view($loginpage); return view($loginpage);

ファイルの表示

@ -69,7 +69,7 @@ class ChildrenController extends Controller {
$message = 'KIKI承知システムの招待URLが届きました。 $message = 'KIKI承知システムの招待URLが届きました。
▼招待URLはコチラ ▼招待URLはコチラ
https://kikikan.jp/c-account/register/'.$token.' '.url('/').'/c-account/register/'.$token.'
KIKI承知システムを使って「聞いてない」「言ってない」などの問題を解決しよう。'; KIKI承知システムを使って「聞いてない」「言ってない」などの問題を解決しよう。';
\Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($message)); \Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($message));
@ -208,7 +208,7 @@ KIKI承知システムを使って「聞いてない」「言ってない
$message = 'パスワード再発行用URLです。 $message = 'パスワード再発行用URLです。
有効期限は8時間以内です。 有効期限は8時間以内です。
https://kikikan.jp/c-account/forgot-password/reset/'.$token; '.url('/').'/c-account/forgot-password/reset/'.$token;
\Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($message)); \Notification::route('nexmo', '81'.substr($r->tel, 1))->notify(new SmsNotification($message));
} catch (\Throwable $e) { } catch (\Throwable $e) {
// 失敗 // 失敗
@ -398,6 +398,12 @@ https://kikikan.jp/c-account/forgot-password/reset/'.$token;
]; ];
Child::where('id', (int)$child_id)->update($update); Child::where('id', (int)$child_id)->update($update);
$get = Child::where('id', (int)$child_id)->first();
$login_user_datum = $get->toArray();
unset($login_user_datum['password']);
// セッションに保存する
session()->put('children', $login_user_datum);
} catch (\Throwable $e) { } catch (\Throwable $e) {
// 失敗 // 失敗
Log::critical($e->getMessage()); Log::critical($e->getMessage());

ファイルの表示

@ -336,6 +336,12 @@ class FathersController extends Controller {
]; ];
Father::where('id', (int)$father_id)->update($update); Father::where('id', (int)$father_id)->update($update);
$get = Father::where('id', (int)$father_id)->first();
$login_user_datum = $get->toArray();
unset($login_user_datum['password']);
// セッションに保存する
session()->put('fathers', $login_user_datum);
} catch (\Throwable $e) { } catch (\Throwable $e) {
// 親プロフィール画像のアップロードに失敗 // 親プロフィール画像のアップロードに失敗
Log::critical($e->getMessage()); Log::critical($e->getMessage());

ファイルの表示

@ -13,11 +13,19 @@ use App\Models\FatherRelation;
class MeetingApprovalsController extends Controller { class MeetingApprovalsController extends Controller {
public function countNonApproval (Request $r) { public function countNonApproval (Request $r) {
return $r->count; return MeetingApprovals::where('child_id', session()->get('children')['id'])->whereNull('approval_at')->count();
} }
public function countIncomplete (Request $r) { public function countIncomplete (Request $r) {
return $r->count; $count = 0;
if (null !== ($list = Meeting::select('id')->where('father_id', (int)session()->get('fathers')['id'])->get())) {
foreach ($list as $i => $l) {
$count += MeetingApprovals::where('meeting_id', (int)$l->id)->whereNull('approval_at')->count();
}
}
return $count;
} }
public function register (Request $r) { public function register (Request $r) {

ファイルの表示

@ -236,16 +236,15 @@ class MeetingsController extends Controller {
return ['status_code' => 400]; return ['status_code' => 400];
} }
foreach ($list as $i => $l) { foreach ($list as $i => $l) {
if (null !== ($l->approval = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', (int)$l->id)->first())) { if (null !== ($l->approval = MeetingApprovals::select($meeting_approvals_select)->whereNotNull('approval_at')->where('meeting_id', (int)$l->id)->get())) {
if (null === ($l->approval->child = Child::select($child_select)->where('id', (int)$l->approval->child_id)->first())) { foreach ($l->approval as $ii => $ll) {
$l->approval->child = new \stdClass(); if (null === ($ll->child = Child::select($child_select)->where('id', (int)$ll->child_id)->first())) {
$ll->child = [];
}
} }
$result[] = $l;
} }
else {
$l->approval = new \stdClass();
$l->approval->child = new \stdClass();
}
$result[] = $l;
} }
return ['status_code' => 200, 'params' => $result]; return ['status_code' => 200, 'params' => $result];
@ -267,17 +266,15 @@ class MeetingsController extends Controller {
} }
foreach ($list as $i => $l) { foreach ($list as $i => $l) {
if (null !== ($l->approval = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', (int)$l->id)->first())) { if (null !== ($l->approval = MeetingApprovals::select($meeting_approvals_select)->whereNull('approval_at')->where('meeting_id', (int)$l->id)->get())) {
if (null === ($l->approval->child = Child::select($child_select)->where('id', (int)$l->approval->child_id)->first())) { foreach ($l->approval as $ii => $ll) {
$l->approval->child = new \stdClass(); if (null === ($ll->child = Child::select($child_select)->where('id', (int)$ll->child_id)->first())) {
$ll->child = [];
}
} }
}
else {
$l->approval = new \stdClass();
$l->approval->child = new \stdClass();
}
$result[] = $l; $result[] = $l;
}
} }
return ['status_code' => 200, 'params' => $result]; return ['status_code' => 200, 'params' => $result];

ファイルの表示

@ -21,11 +21,10 @@ class NoticeIncomplete
$response = $next($request); $response = $next($request);
$count = 0; $count = 0;
if (null === ($list = Meeting::select('id')->where('father_id', (int)session()->get('fathers')['id'])->get())) { if (null !== ($list = Meeting::select('id')->where('father_id', (int)session()->get('fathers')['id'])->get())) {
return ['status_code' => 400]; foreach ($list as $i => $l) {
} $count += MeetingApprovals::where('meeting_id', (int)$l->id)->whereNull('approval_at')->count();
foreach ($list as $i => $l) { }
$count += MeetingApprovals::where('meeting_id', (int)$l->id)->whereNull('approval_at')->count();
} }
$content = json_decode($response->content(), true); $content = json_decode($response->content(), true);

ファイルの表示

@ -42663,15 +42663,34 @@ __webpack_require__.r(__webpack_exports__);
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ }); /* harmony export */ });
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js"); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "./node_modules/react/index.js");
/* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router-dom */ "./node_modules/react-router/esm/react-router.js");
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js");
var Notification = function Notification(_ref) { var Notification = function Notification(_ref) {
var notice = _ref.notice; var notice = _ref.notice;
var history = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_2__.useHistory)();
var handleClick = function handleClick() {
var navbar_list = document.getElementsByClassName("mypage-nav-list__item");
for (var i = 0; i < navbar_list.length; i++) {
navbar_list[i].classList.remove('nav-active');
}
document.getElementsByClassName("-meeting")[0].classList.add('nav-active');
history.push({
pathname: "/c-account/meeting/",
state: {}
});
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
className: "p-notification", className: "p-notification",
onClick: handleClick,
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
className: "p-notification-icon", className: "p-notification-icon",
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
@ -43563,8 +43582,9 @@ var Profile = function Profile() {
switch (response.data.status_code) { switch (response.data.status_code) {
case 200: case 200:
{ {
setImage(reader.result); // setImage(reader.result);
setSuccessUpdateImage(response.data.success_messages); setSuccessUpdateImage(response.data.success_messages);
window.location.reload(true);
break; break;
} }
@ -44612,6 +44632,17 @@ function Side() {
}); });
}; };
var handleSelected = function handleSelected(id) {
var navbar_list = document.getElementsByClassName("mypage-nav-list__item");
for (var i = 0; i < navbar_list.length; i++) {
navbar_list[i].classList.remove('nav-active');
}
document.getElementsByClassName(id)[0].classList.add('nav-active');
setSelected(id);
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("div", {
className: "l-side", className: "l-side",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("div", {
@ -44628,10 +44659,9 @@ function Side() {
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("ul", { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("ul", {
className: "mypage-nav-list", className: "mypage-nav-list",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", { children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", {
className: "mypage-nav-list__item -meeting ".concat((selected == 'meeting' || selected == '' && document.getElementById('c_router').value == 'meeting') && "nav-active"), className: "mypage-nav-list__item -meeting ".concat(selected == '' && document.getElementById('c_router').value == 'meeting' && "nav-active"),
onClick: function onClick(e) { onClick: function onClick(e) {
e.preventDefault(); return handleSelected("-meeting");
setSelected('meeting');
}, },
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, {
className: "mypage-nav-list__link", className: "mypage-nav-list__link",
@ -44643,10 +44673,9 @@ function Side() {
})] })]
}) })
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", { }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", {
className: "mypage-nav-list__item -search ".concat((selected == 'search' || selected == '' && document.getElementById('c_router').value == 'search') && "nav-active"), className: "mypage-nav-list__item -search ".concat(selected == '' && document.getElementById('c_router').value == 'search' && "nav-active"),
onClick: function onClick(e) { onClick: function onClick(e) {
e.preventDefault(); return handleSelected("-search");
setSelected('search');
}, },
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, {
className: "mypage-nav-list__link", className: "mypage-nav-list__link",
@ -44658,10 +44687,9 @@ function Side() {
})] })]
}) })
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", { }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", {
className: "mypage-nav-list__item -parentinfo ".concat((selected == 'parent' || selected == '' && document.getElementById('c_router').value == 'parent') && "nav-active"), className: "mypage-nav-list__item -parentinfo ".concat(selected == '' && document.getElementById('c_router').value == 'parent' && "nav-active"),
onClick: function onClick(e) { onClick: function onClick(e) {
e.preventDefault(); return handleSelected("-parentinfo");
setSelected('parent');
}, },
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, {
className: "mypage-nav-list__link", className: "mypage-nav-list__link",
@ -44673,10 +44701,9 @@ function Side() {
})] })]
}) })
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", { }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", {
className: "mypage-nav-list__item -profile ".concat((selected == 'profile' || selected == '' && document.getElementById('c_router').value == 'profile') && "nav-active"), className: "mypage-nav-list__item -profile ".concat(selected == '' && document.getElementById('c_router').value == 'profile' && "nav-active"),
onClick: function onClick(e) { onClick: function onClick(e) {
e.preventDefault(); return handleSelected("-profile");
setSelected('profile');
}, },
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)(react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link, {
className: "user-icon mypage-nav-list__link", className: "user-icon mypage-nav-list__link",
@ -44694,10 +44721,9 @@ function Side() {
})] })]
}) })
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", { }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)("li", {
className: "mypage-nav-list__item -logout ".concat(selected == 'logout' && "nav-active"), className: "mypage-nav-list__item -logout ".concat(selected == '-logout' && "nav-active"),
onClick: function onClick(e) { onClick: function onClick(e) {
e.preventDefault(); return handleSelected("-logout");
setSelected('logout');
}, },
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("a", { children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxs)("a", {
className: "mypage-nav-list__link", className: "mypage-nav-list__link",

ファイルの表示

@ -1,9 +1,20 @@
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { useHistory, Link } from 'react-router-dom';
const Notification = ({ notice }) => { const Notification = ({ notice }) => {
const history = useHistory();
const handleClick = () => {
var navbar_list = document.getElementsByClassName("mypage-nav-list__item");
for(let i=0; i<navbar_list.length; i++)
navbar_list[i].classList.remove('nav-active');
document.getElementsByClassName("-meeting")[0].classList.add('nav-active');
history.push({ pathname: `/c-account/meeting/`, state: {}});
}
return ( return (
<div className="p-notification"> <div className="p-notification" onClick={handleClick}>
<div className="p-notification-icon"> <div className="p-notification-icon">
<div className="p-notification-icon-wrap"> <div className="p-notification-icon-wrap">
{ {

ファイルの表示

@ -57,8 +57,9 @@ const Profile = () => {
handleNotice(response.data.notice); handleNotice(response.data.notice);
switch(response.data.status_code){ switch(response.data.status_code){
case 200: { case 200: {
setImage(reader.result); // setImage(reader.result);
setSuccessUpdateImage(response.data.success_messages); setSuccessUpdateImage(response.data.success_messages);
window.location.reload(true);
break; break;
} }
case 400: set400Error(response.data.error_messages); break; case 400: set400Error(response.data.error_messages); break;

ファイルの表示

@ -11,6 +11,14 @@ export default function Side() {
.then(() => location.href = '/c-account/login') .then(() => location.href = '/c-account/login')
} }
const handleSelected = (id) => {
var navbar_list = document.getElementsByClassName("mypage-nav-list__item");
for(let i=0; i<navbar_list.length; i++)
navbar_list[i].classList.remove('nav-active');
document.getElementsByClassName(id)[0].classList.add('nav-active');
setSelected(id);
}
return ( return (
<div className="l-side"> <div className="l-side">
<div className="l-side-logo"> <div className="l-side-logo">
@ -19,42 +27,30 @@ export default function Side() {
<nav className="mypage-nav"> <nav className="mypage-nav">
<ul className="mypage-nav-list"> <ul className="mypage-nav-list">
<li <li
className={`mypage-nav-list__item -meeting ${(selected == 'meeting' || (selected == '' && document.getElementById('c_router').value == 'meeting')) && "nav-active"}`} className={`mypage-nav-list__item -meeting ${(selected == '' && document.getElementById('c_router').value == 'meeting') && "nav-active"}`}
onClick={e => { onClick={e => handleSelected("-meeting")}>
e.preventDefault();
setSelected('meeting');
}}>
<Link className='mypage-nav-list__link' to='/c-account/meeting'> <Link className='mypage-nav-list__link' to='/c-account/meeting'>
<i className="icon meeting"></i> <i className="icon meeting"></i>
<span>ミーティング</span> <span>ミーティング</span>
</Link> </Link>
</li> </li>
<li className={`mypage-nav-list__item -search ${ (selected == 'search' || (selected == '' && document.getElementById('c_router').value == 'search')) && "nav-active"}`} <li className={`mypage-nav-list__item -search ${ (selected == '' && document.getElementById('c_router').value == 'search') && "nav-active"}`}
onClick={e => { onClick={e => handleSelected("-search")}>
e.preventDefault();
setSelected('search');
}}>
<Link className='mypage-nav-list__link' to='/c-account/search'> <Link className='mypage-nav-list__link' to='/c-account/search'>
<i className="icon search"></i> <i className="icon search"></i>
<span>検索</span> <span>検索</span>
</Link> </Link>
</li> </li>
<li className={`mypage-nav-list__item -parentinfo ${ (selected == 'parent' || (selected == '' && document.getElementById('c_router').value == 'parent')) && "nav-active"}`} <li className={`mypage-nav-list__item -parentinfo ${ (selected == '' && document.getElementById('c_router').value == 'parent') && "nav-active"}`}
onClick={e => { onClick={e => handleSelected("-parentinfo")}>
e.preventDefault();
setSelected('parent');
}}>
<Link className='mypage-nav-list__link' to='/c-account/parent'> <Link className='mypage-nav-list__link' to='/c-account/parent'>
<i className="icon parents"></i> <i className="icon parents"></i>
<span>親情報</span> <span>親情報</span>
</Link> </Link>
</li> </li>
<li className={`mypage-nav-list__item -profile ${ (selected == 'profile' || (selected == '' && document.getElementById('c_router').value == 'profile')) && "nav-active"}`} <li className={`mypage-nav-list__item -profile ${ (selected == '' && document.getElementById('c_router').value == 'profile') && "nav-active"}`}
onClick={e => { onClick={e => handleSelected("-profile")}>
e.preventDefault();
setSelected('profile');
}}>
<Link className='user-icon mypage-nav-list__link' to='/c-account/profile'> <Link className='user-icon mypage-nav-list__link' to='/c-account/profile'>
<figure> <figure>
<div className="prof-wrap"> <div className="prof-wrap">
@ -64,11 +60,8 @@ export default function Side() {
<span>プロフィール</span> <span>プロフィール</span>
</Link> </Link>
</li> </li>
<li className={`mypage-nav-list__item -logout ${(selected == 'logout') && "nav-active"}`} <li className={`mypage-nav-list__item -logout ${(selected == '-logout') && "nav-active"}`}
onClick={e => { onClick={e => handleSelected("-logout")}>
e.preventDefault();
setSelected('logout');
}}>
<a className="mypage-nav-list__link" onClick={handleLogout}> <a className="mypage-nav-list__link" onClick={handleLogout}>
<i className="icon log-out"></i><span>ログアウト</span> <i className="icon log-out"></i><span>ログアウト</span>

ファイルの表示

@ -84,6 +84,7 @@ Route::group(['prefix' => 'fathers'], function () {
Route::put('/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage'); Route::put('/updateImage/{father_id}', '\App\Http\Controllers\Api\FathersController@updateImage');
Route::put('/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile'); Route::put('/updateProfile/{father_id}', '\App\Http\Controllers\Api\FathersController@updateProfile');
Route::delete('/withdrawal', '\App\Http\Controllers\Api\FathersController@withdrawal'); Route::delete('/withdrawal', '\App\Http\Controllers\Api\FathersController@withdrawal');
Route::get('/detail/{father_id}', '\App\Http\Controllers\Api\FathersController@detail');
// ChildrenController // ChildrenController
Route::group(['prefix' => 'children'], function () { Route::group(['prefix' => 'children'], function () {