@banch0u/core-project-test-repository 2.1.4 → 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -457,6 +457,35 @@ export var LogOutIcon = function LogOutIcon() {
457
457
  fill: "#F50B0B"
458
458
  }))));
459
459
  };
460
+ export var ChangePasswordIcon = function ChangePasswordIcon() {
461
+ return /*#__PURE__*/React.createElement("svg", {
462
+ width: "24",
463
+ height: "24",
464
+ viewBox: "0 0 24 24",
465
+ fill: "none",
466
+ xmlns: "http://www.w3.org/2000/svg"
467
+ }, /*#__PURE__*/React.createElement("path", {
468
+ d: "M19.79 14.9298C17.73 16.9798 14.78 17.6098 12.19 16.7998L7.48002 21.4998C7.14002 21.8498 6.47002 22.0598 5.99002 21.9898L3.81002 21.6898C3.09002 21.5898 2.42002 20.9098 2.31002 20.1898L2.01002 18.0098C1.94002 17.5298 2.17002 16.8598 2.50002 16.5198L7.20002 11.8198C6.40002 9.21982 7.02002 6.26982 9.08002 4.21982C12.03 1.26982 16.82 1.26982 19.78 4.21982C22.74 7.16982 22.74 11.9798 19.79 14.9298Z",
469
+ stroke: "#292D32",
470
+ strokeWidth: "1.5",
471
+ strokeMiterlimit: "10",
472
+ strokeLinecap: "round",
473
+ strokeLinejoin: "round"
474
+ }), /*#__PURE__*/React.createElement("path", {
475
+ d: "M6.89001 17.4902L9.19001 19.7902",
476
+ stroke: "#292D32",
477
+ strokeWidth: "1.5",
478
+ strokeMiterlimit: "10",
479
+ strokeLinecap: "round",
480
+ strokeLinejoin: "round"
481
+ }), /*#__PURE__*/React.createElement("path", {
482
+ d: "M14.5 11C15.3284 11 16 10.3284 16 9.5C16 8.67157 15.3284 8 14.5 8C13.6716 8 13 8.67157 13 9.5C13 10.3284 13.6716 11 14.5 11Z",
483
+ stroke: "#292D32",
484
+ strokeWidth: "1.5",
485
+ strokeLinecap: "round",
486
+ strokeLinejoin: "round"
487
+ }));
488
+ };
460
489
  export var ExportIcon = function ExportIcon() {
461
490
  return /*#__PURE__*/React.createElement("svg", {
462
491
  width: "24",
@@ -93,7 +93,7 @@ var Filter = function Filter(_ref) {
93
93
  , {
94
94
  size: "sm",
95
95
  onChange: function onChange(value) {
96
- if (col.dataIndex === "topic") {
96
+ if (col.dataIndex === "topic" || col.dataIndex === "contractTypeId" || col.dataIndex === "contractType") {
97
97
  setSelectedTopic(value);
98
98
  }
99
99
  }
@@ -1,15 +1,16 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import React, { useEffect, useState, useRef } from "react";
3
- import { Badge, Dropdown, Tooltip } from "antd";
3
+ import { Badge, Dropdown, Tooltip, Modal, Form, Input } from "antd";
4
4
  import { SunOutlined } from "@ant-design/icons";
5
5
  import style from "./index.module.scss";
6
6
  import { useDispatch, useSelector } from "react-redux";
7
- import { getProfileInfo, scopes } from "../../store/slices/auth";
8
- import { LogOutIcon, MoonIcon, NotificationBell, SettingsCogIcon } from "../../assets/icons";
7
+ import { changePassword, getProfileInfo, scopes } from "../../store/slices/auth";
8
+ import { ChangePasswordIcon, LogOutIcon, MoonIcon, NotificationBell, SettingsCogIcon } from "../../assets/icons";
9
9
  import { getNotifications } from "../../store/slices/notification";
10
10
  import NotificationDropdown from "../NotificationDropdown";
11
11
  import { Link, useNavigate } from "react-router-dom";
12
12
  import { LOGIN_PATH } from "../../utils/path";
13
+ import Button from "../Button";
13
14
  var ProfileOptions = function ProfileOptions() {
14
15
  var _profileInfo$name;
15
16
  var dispatch = useDispatch();
@@ -44,8 +45,16 @@ var ProfileOptions = function ProfileOptions() {
44
45
  _useState8 = _slicedToArray(_useState7, 2),
45
46
  theme = _useState8[0],
46
47
  setTheme = _useState8[1];
47
- var dropdownRef = useRef(null); // for click outside
48
+ var dropdownRef = useRef(null);
48
49
 
50
+ // 🔥 Password modal state
51
+ var _useState9 = useState(false),
52
+ _useState10 = _slicedToArray(_useState9, 2),
53
+ isPasswordModalOpen = _useState10[0],
54
+ setPasswordModalOpen = _useState10[1];
55
+ var _Form$useForm = Form.useForm(),
56
+ _Form$useForm2 = _slicedToArray(_Form$useForm, 1),
57
+ form = _Form$useForm2[0];
49
58
  useEffect(function () {
50
59
  dispatch(scopes());
51
60
  dispatch(getProfileInfo());
@@ -102,6 +111,35 @@ var ProfileOptions = function ProfileOptions() {
102
111
  className: style.icon_overlay
103
112
  }, /*#__PURE__*/React.createElement(NotificationBell, null)));
104
113
  };
114
+
115
+ // --------------------------
116
+ // 🔥 PASSWORD MODAL LOGIC
117
+ // --------------------------
118
+ var openPasswordModal = function openPasswordModal() {
119
+ setPasswordModalOpen(true);
120
+ };
121
+ var closePasswordModal = function closePasswordModal() {
122
+ form.resetFields();
123
+ setPasswordModalOpen(false);
124
+ };
125
+ var handlePasswordSubmit = function handlePasswordSubmit() {
126
+ form.validateFields().then(function (values) {
127
+ var data = {
128
+ currentPassword: values.currentPassword,
129
+ newPassword: values.newPassword
130
+ };
131
+ dispatch(changePassword(data)).unwrap().then(function (res) {
132
+ // 🔥 If backend returned 204 No Content → logout
133
+ if ((res === null || res === void 0 ? void 0 : res.status) === 204) {
134
+ closePasswordModal();
135
+ handleLogout();
136
+ }
137
+ })["catch"](function () {});
138
+ })["catch"](function () {});
139
+ };
140
+
141
+ // --------------------------
142
+
105
143
  return /*#__PURE__*/React.createElement("div", {
106
144
  className: style.profile
107
145
  }, /*#__PURE__*/React.createElement(Dropdown, {
@@ -161,10 +199,112 @@ var ProfileOptions = function ProfileOptions() {
161
199
  className: style.menuItem,
162
200
  to: "".concat(rootUrl, "/settings")
163
201
  }, /*#__PURE__*/React.createElement(SettingsCogIcon, null), /*#__PURE__*/React.createElement("span", null, "T\u0259nziml\u0259m\u0259l\u0259r")), /*#__PURE__*/React.createElement("div", {
202
+ className: style.menuItem,
203
+ onClick: openPasswordModal
204
+ }, /*#__PURE__*/React.createElement(ChangePasswordIcon, null), /*#__PURE__*/React.createElement("span", null, "\u015Eifr\u0259ni d\u0259yi\u015F")), /*#__PURE__*/React.createElement("div", {
164
205
  className: style.menuItem,
165
206
  onClick: handleLogout
166
207
  }, /*#__PURE__*/React.createElement(LogOutIcon, null), /*#__PURE__*/React.createElement("span", {
167
208
  className: style.logoutText
168
- }, "\xC7\u0131x\u0131\u015F et")))));
209
+ }, "\xC7\u0131x\u0131\u015F et")))), /*#__PURE__*/React.createElement(Modal, {
210
+ open: isPasswordModalOpen,
211
+ onCancel: closePasswordModal,
212
+ footer: null,
213
+ centered: true,
214
+ title: "\u015Eifr\u0259ni d\u0259yi\u015F"
215
+ }, /*#__PURE__*/React.createElement(Form, {
216
+ form: form,
217
+ layout: "vertical"
218
+ }, /*#__PURE__*/React.createElement(Form.Item, {
219
+ label: "K\xF6hn\u0259 \u015Fifr\u0259",
220
+ name: "currentPassword",
221
+ rules: [{
222
+ required: true,
223
+ message: ""
224
+ }]
225
+ }, /*#__PURE__*/React.createElement(Input.Password, {
226
+ style: {
227
+ height: "48px"
228
+ }
229
+ })), /*#__PURE__*/React.createElement(Form.Item, {
230
+ label: "Yeni \u015Fifr\u0259",
231
+ name: "newPassword",
232
+ rules: [{
233
+ required: true,
234
+ message: ""
235
+ }, function (_ref) {
236
+ var getFieldValue = _ref.getFieldValue;
237
+ return {
238
+ validator: function validator(_, value) {
239
+ if (!value) return Promise.resolve();
240
+ var errors = [];
241
+ if (value.length < 8) {
242
+ errors.push("Şifrə ən azı 8 simvoldan ibarət olmalıdır");
243
+ }
244
+ if (!/[A-Z]/.test(value)) {
245
+ errors.push("Şifrə ən azı bir böyük hərf daxil etməlidir");
246
+ }
247
+ if (!/[a-z]/.test(value)) {
248
+ errors.push("Şifrə ən azı bir kiçik hərf daxil etməlidir");
249
+ }
250
+ if (!/[0-9]/.test(value)) {
251
+ errors.push("Şifrə ən azı bir rəqəm daxil etməlidir");
252
+ }
253
+ if (!/[!@#$%^&*]/.test(value)) {
254
+ errors.push("Şifrə ən azı bir xüsusi simvol daxil etməlidir (!@#$%^&*)");
255
+ }
256
+ if (value && getFieldValue("currentPassword") === value) {
257
+ errors.push("Yeni şifrə köhnə şifrə ilə eyni ola bilməz!");
258
+ }
259
+
260
+ // 🔥 Return each message as its own Error → AntD shows them line by line
261
+ return errors.length ? Promise.reject(errors.map(function (msg) {
262
+ return new Error(msg);
263
+ })) : Promise.resolve();
264
+ }
265
+ };
266
+ }]
267
+ }, /*#__PURE__*/React.createElement(Input.Password, {
268
+ style: {
269
+ height: "48px"
270
+ }
271
+ })), /*#__PURE__*/React.createElement(Form.Item, {
272
+ label: "Yeni \u015Fifr\u0259nin t\u0259sdiqi",
273
+ name: "confirmPassword",
274
+ dependencies: ["newPassword"],
275
+ rules: [{
276
+ required: true,
277
+ message: ""
278
+ }, function (_ref2) {
279
+ var getFieldValue = _ref2.getFieldValue;
280
+ return {
281
+ validator: function validator(_, value) {
282
+ if (!value || getFieldValue("newPassword") === value) {
283
+ return Promise.resolve();
284
+ }
285
+ return Promise.reject("Şifrələr uyğun deyil!");
286
+ }
287
+ };
288
+ }]
289
+ }, /*#__PURE__*/React.createElement(Input.Password, {
290
+ style: {
291
+ height: "48px"
292
+ }
293
+ })), /*#__PURE__*/React.createElement("div", {
294
+ style: {
295
+ display: "flex",
296
+ justifyContent: "flex-end",
297
+ gap: "10px",
298
+ marginTop: "20px"
299
+ }
300
+ }, /*#__PURE__*/React.createElement(Button, {
301
+ className: style.cancelBtn,
302
+ onClick: closePasswordModal,
303
+ color: "white"
304
+ }, "Geri"), /*#__PURE__*/React.createElement(Button, {
305
+ className: style.confirmBtn,
306
+ onClick: handlePasswordSubmit,
307
+ color: "green"
308
+ }, "T\u0259sdiql\u0259")))));
169
309
  };
170
310
  export default ProfileOptions;
@@ -231,9 +231,7 @@
231
231
  position: absolute;
232
232
  top: 100%;
233
233
  right: -1px;
234
- width: 300px;
235
- max-width: 300px;
236
- min-width: 300px;
234
+ left: -1px;
237
235
  border-right: 1px solid var(--blue);
238
236
  border-left: 1px solid var(--blue);
239
237
  border-bottom: 1px solid var(--blue);
@@ -6,10 +6,7 @@
6
6
  align-items: center;
7
7
  justify-content: space-between;
8
8
  padding: 0 17px;
9
- z-index: 1;
9
+ z-index: 3;
10
10
  position: relative;
11
11
  overflow: visible; // ✅ allows dropdowns to escape
12
- // z-index: 10;
13
- }
14
- .header {
15
12
  }
@@ -5,7 +5,7 @@ import style from "./index.module.scss";
5
5
  import { Layout, Menu, Input } from "antd";
6
6
  import { QUESTIONNAIRES_ACADEMIC_DEGREES, QUESTIONNAIRES_APPLICATION_FORMS, QUESTIONNAIRES_AREAS, QUESTIONNAIRES_BRANDS, QUESTIONNAIRES_CATEGORIES, QUESTIONNAIRES_CHASSIS_TYPES, QUESTIONNAIRES_CHEMICALS, QUESTIONNAIRES_COLORS, QUESTIONNAIRES_COMPANIES, QUESTIONNAIRES_CONTRACTCURRENCIES, QUESTIONNAIRES_CONTRACTTYPES, QUESTIONNAIRES_CONTRAGENTTYPES, QUESTIONNAIRES_COUNTRIES, QUESTIONNAIRES_CRUSH_REASONS, QUESTIONNAIRES_DETAIL_PARTS, QUESTIONNAIRES_DISABILITY_STATUSES, QUESTIONNAIRES_DOCUMENT_RECIEVE_METHODS, QUESTIONNAIRES_DOCUMENT_TYPES, QUESTIONNAIRES_DOCUMENT_WHOM, QUESTIONNAIRES_DRIVING_CATEGORIES, QUESTIONNAIRES_EDUCATION_INSTITUTIONS, QUESTIONNAIRES_EDUCATION_LEVELS, QUESTIONNAIRES_EDUCATION_PAYMENTS, QUESTIONNAIRES_EMPLOYEE_CONFIGURATIONS, QUESTIONNAIRES_ENGINE_TYPES, QUESTIONNAIRES_EXECUTION_RULES, QUESTIONNAIRES_EXTRA_SERVICES, QUESTIONNAIRES_FUEL_TYPES, QUESTIONNAIRES_GEARBOX_TYPES, QUESTIONNAIRES_GENERAL_STRUCTURE_STATUSES, QUESTIONNAIRES_GENERAL_STRUCTURE_TYPES, QUESTIONNAIRES_HALLS, QUESTIONNAIRES_HONORARY_TITLES, QUESTIONNAIRES_INSURANCE_TYPES, QUESTIONNAIRES_ISSUED_AUTHORITIES, QUESTIONNAIRES_MARGIN_NOTE_TEXTS, QUESTIONNAIRES_MEASUREMENT_TYPES, QUESTIONNAIRES_MILITARY_CATEGORIES, QUESTIONNAIRES_MILITARY_GROUPS, QUESTIONNAIRES_MILITARY_RANKS, QUESTIONNAIRES_MILITARY_STAFFS, QUESTIONNAIRES_MODELS, QUESTIONNAIRES_OIL_FIELDS, QUESTIONNAIRES_ORDERS, QUESTIONNAIRES_ORGANIZATIONS, QUESTIONNAIRES_OWNERSHIP_TYPES, QUESTIONNAIRES_PENALTY_TYPES, QUESTIONNAIRES_POSITIONS, QUESTIONNAIRES_REPAIR_TYPES, QUESTIONNAIRES_REPAIRMENT_WORK_TYPES,
7
7
  // QUESTIONNAIRES_REGIONS,
8
- QUESTIONNAIRES_REPRIMAND_TYPES, QUESTIONNAIRES_SPECIAL_DAYS, QUESTIONNAIRES_SPECIALIZATIONS, QUESTIONNAIRES_STRUCTURES, QUESTIONNAIRES_SUBTOPIC, QUESTIONNAIRES_TOPIC, QUESTIONNAIRES_TRANSMITTER_TYPES, QUESTIONNAIRES_VEHICLE_CATEGORIES, QUESTIONNAIRES_VEHICLE_GROUPS, QUESTIONNAIRES_VEHICLE_TYPES, QUESTIONNAIRES_WAR_PARTICIPANTS, QUESTIONNAIRES_WORK_MODES, QUESTIONNAIRES_WORK_SCHEDULES, QUESTIONNAIRES_OWNERS, QUESTIONNAIRES_CONTRACTTOPICS, QUESTIONNAIRES_CONTRACTTYPESSUBTYPES } from "../../utils/path";
8
+ QUESTIONNAIRES_REPRIMAND_TYPES, QUESTIONNAIRES_SPECIAL_DAYS, QUESTIONNAIRES_SPECIALIZATIONS, QUESTIONNAIRES_STRUCTURES, QUESTIONNAIRES_SUBTOPIC, QUESTIONNAIRES_TOPIC, QUESTIONNAIRES_TRANSMITTER_TYPES, QUESTIONNAIRES_VEHICLE_CATEGORIES, QUESTIONNAIRES_VEHICLE_GROUPS, QUESTIONNAIRES_VEHICLE_TYPES, QUESTIONNAIRES_WAR_PARTICIPANTS, QUESTIONNAIRES_WORK_MODES, QUESTIONNAIRES_WORK_SCHEDULES, QUESTIONNAIRES_OWNERS, QUESTIONNAIRES_CONTRACTTOPICS, QUESTIONNAIRES_CONTRACTTYPESSUBTYPES, QUESTIONNAIRES_DEFAULTAGREEMENTPLANS } from "../../utils/path";
9
9
  import { SearchIcon } from "../../assets/icons";
10
10
  var Sider = Layout.Sider;
11
11
  var SubMenu = Menu.SubMenu;
@@ -292,8 +292,16 @@ var QuestionnairesSidebar = function QuestionnairesSidebar(_ref) {
292
292
  //delete the "/" at the start of string
293
293
  label: "Müqavilə alt növü",
294
294
  link: QUESTIONNAIRES_CONTRACTTYPESSUBTYPES
295
- }
295
+ },
296
296
  // ---- generated sidebar item by questionnaireGenerator: ContractTypesSubtypes ----
297
+
298
+ {
299
+ key: "defaultagreementplans",
300
+ //delete the "/" at the start of string
301
+ label: "Şablon razılaşma sxemi",
302
+ link: QUESTIONNAIRES_DEFAULTAGREEMENTPLANS
303
+ }
304
+ // ---- generated sidebar item by questionnaireGenerator: DefaultAgreementPlans ----
297
305
  ];
298
306
  var sortedItems = items.sort(function (a, b) {
299
307
  return a.label.localeCompare(b.label);
@@ -0,0 +1,46 @@
1
+ import * as React from "react";
2
+ import style from "../Questionnaires.module.scss";
3
+ import { setDeleteModalVisible } from "../../../store/slices/global";
4
+ import { DeleteIconQ, EditIcon } from "../../../assets/icons";
5
+ export var getStreetColumns = function getStreetColumns(onEditClick, onDelete, dispatch, innerW) {
6
+ return [{
7
+ title: "№",
8
+ dataIndex: "num",
9
+ showCheckbox: false,
10
+ ellipsis: true,
11
+ width: 35
12
+ }, {
13
+ title: "Məsul şəxs",
14
+ dataIndex: "responsiblePerson",
15
+ width: innerW,
16
+ disabled: true,
17
+ ellipsis: true
18
+ }, {
19
+ title: "Qrup №",
20
+ dataIndex: "rank",
21
+ width: innerW,
22
+ disabled: true,
23
+ ellipsis: true
24
+ }, {
25
+ title: "",
26
+ key: "actions",
27
+ showCheckbox: false,
28
+ width: 80,
29
+ render: function render(data) {
30
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
31
+ className: style.number
32
+ }, /*#__PURE__*/React.createElement("div", {
33
+ className: style.actions
34
+ }, /*#__PURE__*/React.createElement("div", {
35
+ onClick: function onClick() {
36
+ return onEditClick(data);
37
+ }
38
+ }, /*#__PURE__*/React.createElement(EditIcon, null)), /*#__PURE__*/React.createElement("div", {
39
+ onClick: function onClick() {
40
+ onDelete(data === null || data === void 0 ? void 0 : data.id);
41
+ dispatch(setDeleteModalVisible(true));
42
+ }
43
+ }, /*#__PURE__*/React.createElement(DeleteIconQ, null)))));
44
+ }
45
+ }];
46
+ };
@@ -0,0 +1,301 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
5
+ import React from "react";
6
+ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
7
+ import Cookies from "js-cookie";
8
+ import style from "../Questionnaires.module.scss";
9
+ import { Form, Layout, Select as AntdSelect } from "antd";
10
+ import { PlusIcon } from "../../../assets/icons";
11
+ import FormModal from "../../../components/FormModal";
12
+ import { useDispatch, useSelector } from "react-redux";
13
+ import Delete from "../../../components/Delete/Delete";
14
+ import DeleteModal from "../../../components/DeleteModal/DeleteModal";
15
+ import Success from "../../../components/Success/Success";
16
+ import { setDeleteModalVisible, setViewModalVisible } from "../../../store/slices/global";
17
+ import ViewModal from "../../../components/ViewModal";
18
+ import { getStreetColumns } from "./constant";
19
+ import Pagination from "../../../components/Pagination";
20
+ import ColSort from "../../../components/ColSort";
21
+ import { setPaginationLength } from "../../../helpers/paginationLength";
22
+ import Button from "../../../components/Button";
23
+ import Loading from "../../../components/Loading";
24
+ import Table from "../../../components/Table";
25
+ import Filter from "../../../components/Filter";
26
+ import { addDefaultAgreementPlans, deleteDefaultAgreementPlans, editDefaultAgreementPlans, getDefaultAgreementPlans, getDefaultAgreementPlansAll } from "../../../store/slices/questionnaire";
27
+ import { getExecutiveMembersAll } from "../../../store/slices/employees";
28
+ import Select from "../../../components/Select";
29
+ import Input from "../../../components/Input";
30
+ var Content = Layout.Content;
31
+ var Item = Form.Item;
32
+ var Option = AntdSelect.Option;
33
+ var QuestionnairesDefaultAgreementPlansContent = function QuestionnairesDefaultAgreementPlansContent() {
34
+ var _useState = useState(null),
35
+ _useState2 = _slicedToArray(_useState, 2),
36
+ innerW = _useState2[0],
37
+ setInnerW = _useState2[1];
38
+ var ref = useRef();
39
+ var dispatch = useDispatch();
40
+ var _useState3 = useState(0),
41
+ _useState4 = _slicedToArray(_useState3, 2),
42
+ id = _useState4[0],
43
+ setId = _useState4[1];
44
+ var _useState5 = useState(1),
45
+ _useState6 = _slicedToArray(_useState5, 2),
46
+ page = _useState6[0],
47
+ setPage = _useState6[1];
48
+ var _useState7 = useState(Cookies.get("pagination-size-questionnaire-defaultagreementplans") ? JSON.parse(Cookies.get("pagination-size-questionnaire-defaultagreementplans")) : 20),
49
+ _useState8 = _slicedToArray(_useState7, 2),
50
+ size = _useState8[0],
51
+ setSize = _useState8[1];
52
+ var _useState9 = useState({
53
+ name: ""
54
+ }),
55
+ _useState10 = _slicedToArray(_useState9, 2),
56
+ query = _useState10[0],
57
+ setQuery = _useState10[1];
58
+ var _useSelector = useSelector(function (state) {
59
+ return state.global;
60
+ }),
61
+ loading = _useSelector.loading,
62
+ DefaultAgreementPlansRender = _useSelector.DefaultAgreementPlansRender;
63
+ var DefaultAgreementPlans = useSelector(function (state) {
64
+ return state.questionnaire.defaultAgreementPlans;
65
+ });
66
+ var DefaultAgreementPlansAll = useSelector(function (state) {
67
+ return state.questionnaire.defaultAgreementPlansAll;
68
+ });
69
+ var executiveMemmbersAll = useSelector(function (state) {
70
+ return state.employees.executiveMembersAll;
71
+ });
72
+
73
+ // ⭐ NEW — store current editing record (not inside modal)
74
+ var _useState11 = useState(null),
75
+ _useState12 = _slicedToArray(_useState11, 2),
76
+ editingRecord = _useState12[0],
77
+ setEditingRecord = _useState12[1];
78
+ var paginationLength = setPaginationLength(DefaultAgreementPlans === null || DefaultAgreementPlans === void 0 ? void 0 : DefaultAgreementPlans.count, DefaultAgreementPlans === null || DefaultAgreementPlans === void 0 ? void 0 : DefaultAgreementPlans.size);
79
+ var onSubmit = useCallback(/*#__PURE__*/function () {
80
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(data) {
81
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
82
+ while (1) switch (_context.prev = _context.next) {
83
+ case 0:
84
+ dispatch(addDefaultAgreementPlans(data));
85
+ setEditingRecord(null);
86
+ case 2:
87
+ case "end":
88
+ return _context.stop();
89
+ }
90
+ }, _callee);
91
+ }));
92
+ return function (_x) {
93
+ return _ref.apply(this, arguments);
94
+ };
95
+ }(), [dispatch]);
96
+ var onEdit = useCallback(function (id, record) {
97
+ var data = {
98
+ id: id,
99
+ name: record === null || record === void 0 ? void 0 : record.name
100
+ };
101
+ dispatch(editDefaultAgreementPlans(data));
102
+ setEditingRecord(null);
103
+ }, [dispatch]);
104
+ var closeOnViewModal = useCallback(function () {
105
+ dispatch(setViewModalVisible(false));
106
+ }, [dispatch]);
107
+ var onClickModal = function onClickModal() {
108
+ var _ref$current;
109
+ setEditingRecord(null); // RESET
110
+ ref === null || ref === void 0 || (_ref$current = ref.current) === null || _ref$current === void 0 || _ref$current.open();
111
+ };
112
+ var onEditClick = useCallback(function (data) {
113
+ var _ref$current2;
114
+ setEditingRecord(data); // ⭐ store editing record
115
+ ref === null || ref === void 0 || (_ref$current2 = ref.current) === null || _ref$current2 === void 0 || _ref$current2.setEdit(data); // keep existing modal functionality
116
+ }, []);
117
+ var onDelete = useCallback(function (id) {
118
+ setId(id);
119
+ }, []);
120
+ var handleColumnToggle = function handleColumnToggle(checked, dataIndex) {
121
+ setSelectedColumns(function (prevSelected) {
122
+ if (checked) {
123
+ return [].concat(_toConsumableArray(prevSelected), [dataIndex]);
124
+ } else {
125
+ return prevSelected.filter(function (col) {
126
+ return col !== dataIndex;
127
+ });
128
+ }
129
+ });
130
+ };
131
+ var data = [];
132
+ if (DefaultAgreementPlans !== null && DefaultAgreementPlans !== void 0 && DefaultAgreementPlans.items) {
133
+ var _DefaultAgreementPlan;
134
+ data = DefaultAgreementPlans === null || DefaultAgreementPlans === void 0 || (_DefaultAgreementPlan = DefaultAgreementPlans.items) === null || _DefaultAgreementPlan === void 0 ? void 0 : _DefaultAgreementPlan.map(function (dataObj, i) {
135
+ var _dataObj$responsibleP;
136
+ return {
137
+ num: (DefaultAgreementPlans === null || DefaultAgreementPlans === void 0 ? void 0 : DefaultAgreementPlans.size) * (DefaultAgreementPlans === null || DefaultAgreementPlans === void 0 ? void 0 : DefaultAgreementPlans.page) + i + 1 - (DefaultAgreementPlans === null || DefaultAgreementPlans === void 0 ? void 0 : DefaultAgreementPlans.size),
138
+ id: dataObj === null || dataObj === void 0 ? void 0 : dataObj.id,
139
+ responsiblePerson: dataObj === null || dataObj === void 0 ? void 0 : dataObj.responsiblePerson.fullName,
140
+ responsiblePersonId: dataObj === null || dataObj === void 0 || (_dataObj$responsibleP = dataObj.responsiblePerson) === null || _dataObj$responsibleP === void 0 ? void 0 : _dataObj$responsibleP.id,
141
+ rank: dataObj === null || dataObj === void 0 ? void 0 : dataObj.rank,
142
+ className: "rowClassName1"
143
+ };
144
+ });
145
+ }
146
+ var columns = useMemo(function () {
147
+ return getStreetColumns(onEditClick, onDelete, dispatch);
148
+ }, [onEditClick, onDelete, dispatch]);
149
+ var _useState13 = useState(columns.map(function (col) {
150
+ return col.dataIndex;
151
+ })),
152
+ _useState14 = _slicedToArray(_useState13, 2),
153
+ selectedColumns = _useState14[0],
154
+ setSelectedColumns = _useState14[1];
155
+ useEffect(function () {
156
+ if (window.innerWidth >= 1900) {
157
+ setInnerW(210);
158
+ } else {
159
+ setInnerW(155);
160
+ }
161
+ var data = {
162
+ page: page,
163
+ size: size,
164
+ query: query,
165
+ visibility: "nondeleted"
166
+ };
167
+ dispatch(getDefaultAgreementPlans(data));
168
+ dispatch(getDefaultAgreementPlansAll("onlyactive"));
169
+ }, [dispatch, page, DefaultAgreementPlansRender, query, size]);
170
+ useEffect(function () {
171
+ dispatch(getExecutiveMembersAll());
172
+ }, [dispatch]);
173
+ var updateSize = function updateSize(newSize) {
174
+ setSize(newSize);
175
+ Cookies.set("pagination-size-questionnaire-defaultagreementplans", JSON.stringify(newSize), {
176
+ expires: 7
177
+ });
178
+ };
179
+ var assignedIds = useMemo(function () {
180
+ return DefaultAgreementPlansAll === null || DefaultAgreementPlansAll === void 0 ? void 0 : DefaultAgreementPlansAll.map(function (item) {
181
+ var _item$responsiblePers;
182
+ return (_item$responsiblePers = item.responsiblePerson) === null || _item$responsiblePers === void 0 ? void 0 : _item$responsiblePers.id;
183
+ });
184
+ }, [DefaultAgreementPlansAll]);
185
+
186
+ // ⭐ UPDATED — correct filtering with edit support
187
+ var availableExecutiveMembers = useMemo(function () {
188
+ return executiveMemmbersAll === null || executiveMemmbersAll === void 0 ? void 0 : executiveMemmbersAll.filter(function (person) {
189
+ if (editingRecord && person.id === editingRecord.responsiblePersonId) {
190
+ return true; // allow current person
191
+ }
192
+ return !(assignedIds !== null && assignedIds !== void 0 && assignedIds.includes(person.id));
193
+ });
194
+ }, [executiveMemmbersAll, assignedIds, editingRecord]);
195
+ return /*#__PURE__*/React.createElement(React.Fragment, null, loading ? /*#__PURE__*/React.createElement(Loading, null) : null, /*#__PURE__*/React.createElement(Layout, {
196
+ className: style.layout
197
+ }, /*#__PURE__*/React.createElement(Content, {
198
+ className: style.content
199
+ }, /*#__PURE__*/React.createElement("header", {
200
+ className: style.header
201
+ }, /*#__PURE__*/React.createElement(Button, {
202
+ onClick: onClickModal,
203
+ color: "green"
204
+ }, /*#__PURE__*/React.createElement(PlusIcon, null), " Soraq\xE7a \u0259lav\u0259 et"), /*#__PURE__*/React.createElement(Filter, {
205
+ columns: columns,
206
+ selectedColumns: selectedColumns,
207
+ setQuery: setQuery,
208
+ disabledElementCount: 3,
209
+ setPage: setPage
210
+ }))), /*#__PURE__*/React.createElement(Layout, {
211
+ className: style.layout1
212
+ }, /*#__PURE__*/React.createElement(Content, {
213
+ className: style.content
214
+ }, /*#__PURE__*/React.createElement("div", {
215
+ className: style.table_header
216
+ }, /*#__PURE__*/React.createElement("h2", null, "\u015Eablon raz\u0131la\u015Fma sxemi"), /*#__PURE__*/React.createElement("div", {
217
+ className: style.buttons
218
+ }, /*#__PURE__*/React.createElement(ColSort, {
219
+ columns: columns,
220
+ selectedColumns: selectedColumns,
221
+ handleColumnToggle: handleColumnToggle
222
+ }))), /*#__PURE__*/React.createElement("div", {
223
+ className: "bigTable"
224
+ }, /*#__PURE__*/React.createElement(Table, {
225
+ selectedColumns: selectedColumns,
226
+ innerW: innerW,
227
+ dataSource: data,
228
+ columns: columns,
229
+ disableDrag: true
230
+ })), /*#__PURE__*/React.createElement("div", {
231
+ className: style.pagination
232
+ }, /*#__PURE__*/React.createElement(Pagination, {
233
+ size: size,
234
+ setSize: updateSize,
235
+ total: paginationLength,
236
+ page: page,
237
+ onChange: setPage
238
+ })), /*#__PURE__*/React.createElement(FormModal, {
239
+ ref: ref,
240
+ width: 454,
241
+ title: "Yeni soraqça yaratma",
242
+ titleEdit: "Soraqça redaktə etmə",
243
+ okText: "Yadda saxla",
244
+ cancelText: "Bağla",
245
+ onSubmit: onSubmit,
246
+ onEdit: onEdit,
247
+ className: "absolute",
248
+ centered: false
249
+ }, /*#__PURE__*/React.createElement(Item, {
250
+ rules: [{
251
+ required: true,
252
+ message: ""
253
+ }],
254
+ name: "responsiblePersonId",
255
+ label: "Məsul şəxs"
256
+ }, /*#__PURE__*/React.createElement(Select, null, availableExecutiveMembers === null || availableExecutiveMembers === void 0 ? void 0 : availableExecutiveMembers.map(function (item) {
257
+ return /*#__PURE__*/React.createElement(Option, {
258
+ key: item.id,
259
+ value: item.id
260
+ }, item.text);
261
+ }))), /*#__PURE__*/React.createElement(Item, {
262
+ name: "rank",
263
+ label: "Qrup \u2116",
264
+ rules: [{
265
+ required: true,
266
+ message: ""
267
+ }, {
268
+ validator: function validator(_, value) {
269
+ if (!value) return Promise.resolve();
270
+ var numericValue = Number(value);
271
+ if (numericValue !== 1) return Promise.resolve();
272
+ var existsRank1 = DefaultAgreementPlansAll === null || DefaultAgreementPlansAll === void 0 ? void 0 : DefaultAgreementPlansAll.some(function (item) {
273
+ return item.rank === 1 && (!editingRecord || item.id !== editingRecord.id);
274
+ });
275
+ return existsRank1 ? Promise.reject("Yalnız bir qrup 1 ola bilər!") : Promise.resolve();
276
+ }
277
+ }]
278
+ }, /*#__PURE__*/React.createElement(Input, {
279
+ type: "number"
280
+ }))), /*#__PURE__*/React.createElement(DeleteModal, {
281
+ onCancel: function onCancel() {
282
+ return dispatch(setDeleteModalVisible(false));
283
+ },
284
+ width: 280
285
+ }, /*#__PURE__*/React.createElement(Delete, {
286
+ onDelete: function onDelete() {
287
+ return dispatch(deleteDefaultAgreementPlans(id));
288
+ },
289
+ onCancel: function onCancel() {
290
+ return dispatch(setDeleteModalVisible(false));
291
+ },
292
+ value: "Soraqçanı"
293
+ })), /*#__PURE__*/React.createElement(ViewModal, {
294
+ onCancel: closeOnViewModal,
295
+ width: 695
296
+ }, /*#__PURE__*/React.createElement(Success, {
297
+ onClick: closeOnViewModal,
298
+ value: "Soraqça"
299
+ }))))));
300
+ };
301
+ export default QuestionnairesDefaultAgreementPlansContent;
@@ -4,6 +4,9 @@ import QuestionnairesContractTopicsContent from "../pages/Questionnnaires/Questi
4
4
  // ---- generated import by questionnaireGenerator: ContractTypesSubtypes ----
5
5
  import QuestionnairesContractTypesSubtypesContent from "../pages/Questionnnaires/QuestionnairesContractTypesSubtypesContent";
6
6
 
7
+ // ---- generated import by questionnaireGenerator: DefaultAgreementPlans ----
8
+ import QuestionnairesDefaultAgreementPlansContent from "../pages/Questionnnaires/QuestionnairesDefaultAgreementPlansContent";
9
+
7
10
  // ---- generated import by questionnaireGenerator: Owners ----
8
11
  import QuestionnairesOwnersContent from "../pages/Questionnnaires/QuestionnairesOwnersContent";
9
12
  import React from "react";
@@ -24,7 +27,7 @@ import QuestionnairesMarginNoteTextsContent from "../pages/Questionnnaires/Quest
24
27
  import QuestionnairesBrandsContent from "../pages/Questionnnaires/QuestionnairesBrandsContent";
25
28
  import QuestionnairesChassisTypesContent from "../pages/Questionnnaires/QuestionnairesChassisTypesContent";
26
29
  import QuestionnairesColorsContent from "../pages/Questionnnaires/QuestionnairesColorsContent";
27
- import { QUESTIONNAIRES_TOPIC, QUESTIONNAIRES_SUBTOPIC, QUESTIONNAIRES_EXECUTION_RULES, QUESTIONNAIRES_DOCUMENT_RECIEVE_METHODS, QUESTIONNAIRES_DOCUMENT_TYPES, QUESTIONNAIRES_COUNTRIES, QUESTIONNAIRES_ORGANIZATIONS, QUESTIONNAIRES_STRUCTURES, QUESTIONNAIRES_APPLICATION_FORMS, QUESTIONNAIRES_DOCUMENT_WHOM, QUESTIONNAIRES_MARGIN_NOTE_TEXTS, QUESTIONNAIRES_BRANDS, QUESTIONNAIRES_CHASSIS_TYPES, QUESTIONNAIRES_COLORS, QUESTIONNAIRES_ENGINE_TYPES, QUESTIONNAIRES_GEARBOX_TYPES, QUESTIONNAIRES_ISSUED_AUTHORITIES, QUESTIONNAIRES_MODELS, QUESTIONNAIRES_OWNERSHIP_TYPES, QUESTIONNAIRES_TRANSMITTER_TYPES, QUESTIONNAIRES_VEHICLE_TYPES, QUESTIONNAIRES_ACADEMIC_DEGREES, QUESTIONNAIRES_DISABILITY_STATUSES, QUESTIONNAIRES_HONORARY_TITLES, QUESTIONNAIRES_MILITARY_STAFFS, QUESTIONNAIRES_MILITARY_CATEGORIES, QUESTIONNAIRES_MILITARY_RANKS, QUESTIONNAIRES_MILITARY_GROUPS, QUESTIONNAIRES_GENERAL_STRUCTURE_STATUSES, QUESTIONNAIRES_WORK_SCHEDULES, QUESTIONNAIRES_SPECIALIZATIONS, QUESTIONNAIRES_WAR_PARTICIPANTS, QUESTIONNAIRES_GENERAL_STRUCTURE_TYPES, QUESTIONNAIRES_EDUCATION_INSTITUTIONS, QUESTIONNAIRES_EDUCATION_PAYMENTS, QUESTIONNAIRES_EDUCATION_LEVELS, QUESTIONNAIRES_REPRIMAND_TYPES, QUESTIONNAIRES_SPECIAL_DAYS, QUESTIONNAIRES_CATEGORIES, QUESTIONNAIRES_REGIONS, QUESTIONNAIRES_AREAS, QUESTIONNAIRES_COMPANIES, QUESTIONNAIRES_POSITIONS, QUESTIONNAIRES_HALLS, QUESTIONNAIRES_DRIVING_CATEGORIES, QUESTIONNAIRES_EMPLOYEE_CONFIGURATIONS, QUESTIONNAIRES_CONTRAGENTTYPES, QUESTIONNAIRES_CONTRACTTYPES, QUESTIONNAIRES_CONTRACTCURRENCIES, QUESTIONNAIRES_ORDERS, QUESTIONNAIRES_WORK_MODES, QUESTIONNAIRES_VEHICLE_CATEGORIES, QUESTIONNAIRES_CHEMICALS, QUESTIONNAIRES_REPAIR_TYPES, QUESTIONNAIRES_DETAIL_PARTS, QUESTIONNAIRES_MEASUREMENT_TYPES, QUESTIONNAIRES_REPAIRMENT_WORK_TYPES, QUESTIONNAIRES_PENALTY_TYPES, QUESTIONNAIRES_CRUSH_REASONS, QUESTIONNAIRES_INSURANCE_TYPES, QUESTIONNAIRES_EXTRA_SERVICES, QUESTIONNAIRES_FUEL_TYPES, QUESTIONNAIRES_OIL_FIELDS, QUESTIONNAIRES_VEHICLE_GROUPS, QUESTIONNAIRES_OWNERS, QUESTIONNAIRES_CONTRACTTOPICS, QUESTIONNAIRES_CONTRACTTYPESSUBTYPES } from "../utils/path";
30
+ import { QUESTIONNAIRES_TOPIC, QUESTIONNAIRES_SUBTOPIC, QUESTIONNAIRES_EXECUTION_RULES, QUESTIONNAIRES_DOCUMENT_RECIEVE_METHODS, QUESTIONNAIRES_DOCUMENT_TYPES, QUESTIONNAIRES_COUNTRIES, QUESTIONNAIRES_ORGANIZATIONS, QUESTIONNAIRES_STRUCTURES, QUESTIONNAIRES_APPLICATION_FORMS, QUESTIONNAIRES_DOCUMENT_WHOM, QUESTIONNAIRES_MARGIN_NOTE_TEXTS, QUESTIONNAIRES_BRANDS, QUESTIONNAIRES_CHASSIS_TYPES, QUESTIONNAIRES_COLORS, QUESTIONNAIRES_ENGINE_TYPES, QUESTIONNAIRES_GEARBOX_TYPES, QUESTIONNAIRES_ISSUED_AUTHORITIES, QUESTIONNAIRES_MODELS, QUESTIONNAIRES_OWNERSHIP_TYPES, QUESTIONNAIRES_TRANSMITTER_TYPES, QUESTIONNAIRES_VEHICLE_TYPES, QUESTIONNAIRES_ACADEMIC_DEGREES, QUESTIONNAIRES_DISABILITY_STATUSES, QUESTIONNAIRES_HONORARY_TITLES, QUESTIONNAIRES_MILITARY_STAFFS, QUESTIONNAIRES_MILITARY_CATEGORIES, QUESTIONNAIRES_MILITARY_RANKS, QUESTIONNAIRES_MILITARY_GROUPS, QUESTIONNAIRES_GENERAL_STRUCTURE_STATUSES, QUESTIONNAIRES_WORK_SCHEDULES, QUESTIONNAIRES_SPECIALIZATIONS, QUESTIONNAIRES_WAR_PARTICIPANTS, QUESTIONNAIRES_GENERAL_STRUCTURE_TYPES, QUESTIONNAIRES_EDUCATION_INSTITUTIONS, QUESTIONNAIRES_EDUCATION_PAYMENTS, QUESTIONNAIRES_EDUCATION_LEVELS, QUESTIONNAIRES_REPRIMAND_TYPES, QUESTIONNAIRES_SPECIAL_DAYS, QUESTIONNAIRES_CATEGORIES, QUESTIONNAIRES_REGIONS, QUESTIONNAIRES_AREAS, QUESTIONNAIRES_COMPANIES, QUESTIONNAIRES_POSITIONS, QUESTIONNAIRES_HALLS, QUESTIONNAIRES_DRIVING_CATEGORIES, QUESTIONNAIRES_EMPLOYEE_CONFIGURATIONS, QUESTIONNAIRES_CONTRAGENTTYPES, QUESTIONNAIRES_CONTRACTTYPES, QUESTIONNAIRES_CONTRACTCURRENCIES, QUESTIONNAIRES_ORDERS, QUESTIONNAIRES_WORK_MODES, QUESTIONNAIRES_VEHICLE_CATEGORIES, QUESTIONNAIRES_CHEMICALS, QUESTIONNAIRES_REPAIR_TYPES, QUESTIONNAIRES_DETAIL_PARTS, QUESTIONNAIRES_MEASUREMENT_TYPES, QUESTIONNAIRES_REPAIRMENT_WORK_TYPES, QUESTIONNAIRES_PENALTY_TYPES, QUESTIONNAIRES_CRUSH_REASONS, QUESTIONNAIRES_INSURANCE_TYPES, QUESTIONNAIRES_EXTRA_SERVICES, QUESTIONNAIRES_FUEL_TYPES, QUESTIONNAIRES_OIL_FIELDS, QUESTIONNAIRES_VEHICLE_GROUPS, QUESTIONNAIRES_OWNERS, QUESTIONNAIRES_CONTRACTTOPICS, QUESTIONNAIRES_CONTRACTTYPESSUBTYPES, QUESTIONNAIRES_DEFAULTAGREEMENTPLANS } from "../utils/path";
28
31
  import QuestionnairesEngineTypesContent from "../pages/Questionnnaires/QuestionnairesEngineTypesContent";
29
32
  import QuestionnairesGearboxTypesContent from "../pages/Questionnnaires/QuestionnairesGearboxTypesContent";
30
33
  import QuestionnairesModelsContent from "../pages/Questionnnaires/QuestionnairesModelsContent";
@@ -285,5 +288,8 @@ export var questionnairesRoutes = function questionnairesRoutes(allowed) {
285
288
  }), /*#__PURE__*/React.createElement(Route, {
286
289
  path: QUESTIONNAIRES_CONTRACTTYPESSUBTYPES,
287
290
  element: /*#__PURE__*/React.createElement(QuestionnairesContractTypesSubtypesContent, null)
291
+ }), /*#__PURE__*/React.createElement(Route, {
292
+ path: QUESTIONNAIRES_DEFAULTAGREEMENTPLANS,
293
+ element: /*#__PURE__*/React.createElement(QuestionnairesDefaultAgreementPlansContent, null)
288
294
  })));
289
295
  };