From 5c061e4f66192ce53816c25e5f6c2c550b832608 Mon Sep 17 00:00:00 2001 From: dragon1211 Date: Wed, 3 Nov 2021 17:47:21 +0900 Subject: [PATCH] bugfixed admin-meeting-edit-approval --- backend/public/js/app.js | 152 ++++++++++++++++---- backend/resources/js/admin/meeting/edit.jsx | 86 ++++++++--- 2 files changed, 193 insertions(+), 45 deletions(-) diff --git a/backend/public/js/app.js b/backend/public/js/app.js index 99202155..7184576a 100644 --- a/backend/public/js/app.js +++ b/backend/public/js/app.js @@ -37798,6 +37798,12 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var react_toastify_dist_ReactToastify_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-toastify/dist/ReactToastify.css */ "./node_modules/react-toastify/dist/ReactToastify.css"); /* harmony import */ var _component_alert__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../component/alert */ "./resources/js/component/alert.jsx"); /* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-runtime */ "./node_modules/react/jsx-runtime.js"); +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } @@ -37866,47 +37872,77 @@ var MeetingEdit = function MeetingEdit(props) { approval_list = _useState12[0], setApproval = _useState12[1]; - var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ + var _useState13 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), + _useState14 = _slicedToArray(_useState13, 2), + children_list = _useState14[0], + setChildren = _useState14[1]; + + var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ title: '', text: '', memo: '', pdf: '', image: '' }), - _useState14 = _slicedToArray(_useState13, 2), - _422errors = _useState14[0], - set422Errors = _useState14[1]; - - var _useState15 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState16 = _slicedToArray(_useState15, 2), - _400error = _useState16[0], - set400Error = _useState16[1]; + _422errors = _useState16[0], + set422Errors = _useState16[1]; var _useState17 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState18 = _slicedToArray(_useState17, 2), - _success = _useState18[0], - setSuccess = _useState18[1]; + _400error = _useState18[0], + set400Error = _useState18[1]; - var _useState19 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), + var _useState19 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''), _useState20 = _slicedToArray(_useState19, 2), - loaded = _useState20[0], - setLoaded = _useState20[1]; + _success = _useState20[0], + setSuccess = _useState20[1]; var _useState21 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState22 = _slicedToArray(_useState21, 2), - submit = _useState22[0], - setSubmit = _useState22[1]; + loaded = _useState22[0], + setLoaded = _useState22[1]; var _useState23 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false), _useState24 = _slicedToArray(_useState23, 2), - check_radio = _useState24[0], - setCheckRadio = _useState24[1]; + submit = _useState24[0], + setSubmit = _useState24[1]; - var _useState25 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), + var _useState25 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null), _useState26 = _slicedToArray(_useState25, 2), - selectedIndex = _useState26[0], - setSelectedIndex = _useState26[1]; + check_radio = _useState26[0], + setCheckRadio = _useState26[1]; + var _useState27 = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]), + _useState28 = _slicedToArray(_useState27, 2), + children_temp = _useState28[0], + setChildrenTemp = _useState28[1]; + + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { + if (!loaded) return; //if dont load data + + var list = []; + + if (check_radio == "false") { + //send all children + list = _toConsumableArray(children_temp); + + for (var i = 0; i < list.length; i++) { + list[i].checked = true; + } + } else if (check_radio == "true") { + //send pickup + list = _toConsumableArray(children_temp); + + for (var i = 0; i < list.length; i++) { + if (approval_list.findIndex(function (ele) { + return ele.child_id == list[i].child_id; + }) >= 0) list[i].checked = true;else list[i].checked = false; + } + } + + setChildrenTemp(list); + }, [check_radio]); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () { var _props$match$params; @@ -37916,7 +37952,7 @@ var MeetingEdit = function MeetingEdit(props) { console.log(response.data.params); if (response.data.status_code == 200) { - var _response$data$params, _response$data$params2, _response$data$params3, _response$data$params4, _response$data$params5, _response$data$params6; + var _response$data$params, _response$data$params2, _response$data$params3, _response$data$params4, _response$data$params5, _response$data$params6, _response$data$params7, _response$data$params8; setTitle((_response$data$params = response.data.params) === null || _response$data$params === void 0 ? void 0 : _response$data$params.title); setMemo((_response$data$params2 = response.data.params) === null || _response$data$params2 === void 0 ? void 0 : _response$data$params2.memo); @@ -37924,6 +37960,19 @@ var MeetingEdit = function MeetingEdit(props) { setMeetingImages((_response$data$params4 = response.data.params) === null || _response$data$params4 === void 0 ? void 0 : _response$data$params4.meeting_image); setApproval((_response$data$params5 = response.data.params) === null || _response$data$params5 === void 0 ? void 0 : _response$data$params5.approval); setPdf((_response$data$params6 = response.data.params) === null || _response$data$params6 === void 0 ? void 0 : _response$data$params6.pdf); + setChildren((_response$data$params7 = response.data.params) === null || _response$data$params7 === void 0 ? void 0 : _response$data$params7.children); + + var list = _toConsumableArray((_response$data$params8 = response.data.params) === null || _response$data$params8 === void 0 ? void 0 : _response$data$params8.children); + + var arr = []; + + for (var i = 0; i < list.length; i++) { + arr.push(_objectSpread(_objectSpread({}, list[i]), {}, { + checked: false + })); + } + + setChildrenTemp(arr); } else if (response.data.status_code == 400) {//TODO } }); @@ -37938,6 +37987,45 @@ var MeetingEdit = function MeetingEdit(props) { pdf: '', image: '' }); + var approval_registerIndexes = []; + var approval_deleteIndexes = []; + + var _loop = function _loop(i) { + if (children_temp[i].checked) { + if (approval_list.findIndex(function (ele) { + return ele.child_id == children_temp[i].child_id; + }) < 0) approval_registerIndexes.push(children_temp[i].child_id); + } + }; + + for (var i = 0; i < children_temp.length; i++) { + _loop(i); + } + + var _loop2 = function _loop2(_i2) { + if (children_temp.findIndex(function (ele) { + return ele.checked && ele.child_id == approval_list[_i2].child_id; + }) < 0) approval_deleteIndexes.push(approval_list[_i2].child_id); + }; + + for (var _i2 = 0; _i2 < approval_list.length; _i2++) { + _loop2(_i2); + } + + console.log(approval_registerIndexes, approval_deleteIndexes); + var formdata = new FormData(); + formdata.append('children', JSON.stringify(approval_registerIndexes)); + axios__WEBPACK_IMPORTED_MODULE_1___default().post('/api/admin/meeting/approvals/register', formdata, { + params: { + meeting_id: props.match.params.meeting_id + } + }); + axios__WEBPACK_IMPORTED_MODULE_1___default().delete('/api/admin/meeting/approvals/delete', { + params: { + children: approval_deleteIndexes, + meeting_id: props.match.params.meeting_id + } + }); try { var _props$match$params2; @@ -38009,7 +38097,6 @@ var MeetingEdit = function MeetingEdit(props) { var reader = new FileReader(); var _file = e.target.files[0]; if (!_file) return; - console.log(_file.name); reader.readAsDataURL(_file); reader.onloadend = function () { @@ -38037,8 +38124,11 @@ var MeetingEdit = function MeetingEdit(props) { }); }; - var handleApproval = function handleApproval(e) { - console.log(e.target.value); + var handleCheck = function handleCheck(e, index) { + var list = _toConsumableArray(children_temp); + + list[index].checked = e.target.checked; + setChildrenTemp(list); }; var notify_delete = function notify_delete() { @@ -38266,8 +38356,8 @@ var MeetingEdit = function MeetingEdit(props) { })] }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { - className: "checkbox-wrap edit-bg ".concat((approval_list.length == 0 || check_radio != "true") && 'd-none'), - children: approval_list === null || approval_list === void 0 ? void 0 : approval_list.map(function (item, k) { + className: "checkbox-wrap edit-bg ".concat(check_radio != "true" && 'd-none'), + children: children_list.length != 0 ? children_temp === null || children_temp === void 0 ? void 0 : children_temp.map(function (item, k) { return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("div", { className: "checkbox", children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)("label", { @@ -38276,10 +38366,16 @@ var MeetingEdit = function MeetingEdit(props) { className: "boolean optional", type: "checkbox", id: "user_name".concat(k), - onChange: handleApproval - }), "".concat(item.child.first_name, " ").concat(item.child.last_name)] + checked: item.checked, + onChange: function onChange(e) { + return handleCheck(e, k); + } + }), "".concat(item.first_name, " ").concat(item.last_name)] }) }, k); + }) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)("p", { + className: "text-center", + children: "\u5B50\u306F\u3042\u308A\u307E\u305B\u3093\u3002" }) }), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_material_ui_lab__WEBPACK_IMPORTED_MODULE_10__.default, { type: "submit", diff --git a/backend/resources/js/admin/meeting/edit.jsx b/backend/resources/js/admin/meeting/edit.jsx index b5d98d0e..547425cf 100644 --- a/backend/resources/js/admin/meeting/edit.jsx +++ b/backend/resources/js/admin/meeting/edit.jsx @@ -21,6 +21,7 @@ const MeetingEdit = (props) => { const [pdf, setPdf] = useState(''); const [meeting_image, setMeetingImages] = useState([]); const [approval_list, setApproval] = useState([]); + const [children_list, setChildren] = useState([]); const [_422errors, set422Errors] = useState({title:'', text:'', memo:'', pdf:'', image:''}) const [_400error, set400Error] = useState(''); @@ -29,8 +30,28 @@ const MeetingEdit = (props) => { const [loaded, setLoaded] = useState(false); const [submit, setSubmit] = useState(false); - const [check_radio, setCheckRadio] = useState(false); - const [selectedIndex, setSelectedIndex] = useState([]); + const [check_radio, setCheckRadio] = useState(null); + const [children_temp, setChildrenTemp] = useState([]); + + + useEffect(()=>{ + if(!loaded) return; //if dont load data + var list = []; + if(check_radio=="false"){ //send all children + list = [...children_temp]; + for(var i=0; iele.child_id == list[i].child_id) >= 0) + list[i].checked = true; + else list[i].checked = false; + } + } + setChildrenTemp(list); + },[check_radio]) useEffect(() => { @@ -46,6 +67,13 @@ const MeetingEdit = (props) => { setMeetingImages(response.data.params?.meeting_image); setApproval(response.data.params?.approval); setPdf(response.data.params?.pdf); + setChildren(response.data.params?.children); + var list = [...response.data.params?.children]; + var arr = []; + for(var i=0; i { const handleSubmit = (e) => { e.preventDefault(); set422Errors({title:'',memo:'',text:'',pdf:'',image:''}); + + var approval_registerIndexes = []; + var approval_deleteIndexes = []; + for(let i=0; iele.child_id == children_temp[i].child_id) < 0) + approval_registerIndexes.push(children_temp[i].child_id); + } + } + for(let i=0; i ele.checked && ele.child_id == approval_list[i].child_id) < 0) + approval_deleteIndexes.push(approval_list[i].child_id); + } + console.log(approval_registerIndexes, approval_deleteIndexes); + + const formdata = new FormData(); + formdata.append('children', JSON.stringify(approval_registerIndexes)); + axios.post('/api/admin/meeting/approvals/register',formdata, {params:{meeting_id: props.match.params.meeting_id}}) + axios.delete('/api/admin/meeting/approvals/delete',{params:{children: approval_deleteIndexes, meeting_id: props.match.params.meeting_id}}) + try { const request = { title: title, text: text, memo: memo, pdf: pdf }; setSubmit(true); @@ -101,7 +149,6 @@ const MeetingEdit = (props) => { let reader = new FileReader(); let _file = e.target.files[0]; if(!_file) return; - console.log(_file.name); reader.readAsDataURL(_file); reader.onloadend = () => { setPdf(reader.result); @@ -118,8 +165,10 @@ const MeetingEdit = (props) => { }) } - const handleApproval = (e) => { - console.log(e.target.value); + const handleCheck = (e, index) => { + var list = [...children_temp]; + list[index].checked = e.target.checked; + setChildrenTemp(list); } @@ -279,19 +328,22 @@ const MeetingEdit = (props) => { -
+
{ - approval_list?.map((item, k)=> -
- -
- ) + children_list.length != 0 ? + children_temp?.map((item, k)=> +
+ +
+ ) + :

子はありません。

}