UNPKG

@choerodon/master

Version:
449 lines (370 loc) 15.3 kB
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } import { useLocalStore } from 'mobx-react-lite'; import queryString from 'query-string'; import { axios } from "../../../../../.."; import HeaderStore from "../../../../../stores/c7n/HeaderStore"; import MenuStore from "../../../../../stores/c7n/MenuStore"; import moment from 'moment'; import { getRandomBackground } from "../../../util"; import findFirstLeafMenu from "../../../../util/findFirstLeafMenu"; import { historyPushMenu } from "../../../../../../utils"; import get from 'lodash/get'; export default function useStore(AppState, history) { return useLocalStore(function () { return { starProjectsList: [], pagination: { page: 1, size: 10, total: 0 }, recentProjects: [], get getRecentProjects() { return this.recentProjects; }, setRecentProjects: function setRecentProjects(data) { this.recentProjects = data; }, allProjectsParams: '', get getAllProjectsParams() { return this.allProjectsParams; }, setAllProjectsParams: function setAllProjectsParams(data) { this.allProjectsParams = data; }, get getPagination() { return this.pagination; }, setPagination: function setPagination(data) { this.pagination = data; }, get getStarProjectsList() { return this.starProjectsList; }, setStarProjectsList: function setStarProjectsList(data) { this.starProjectsList = data; }, projectLoading: true, get getProjectLoading() { return this.projectLoading; }, allProjects: [], get getAllProjects() { return this.allProjects; }, setAllProjects: function setAllProjects(data) { this.allProjects = data; }, axiosGetRecentProjects: function axiosGetRecentProjects() { var _this = this; axios.get("/iam/choerodon/v1/organizations/".concat(AppState.currentMenuType.organizationId, "/projects/latest_visit"), { enabledCancelCache: false, enabledCancelRoute: false }).then(function (res) { _this.setRecentProjects(res); }); }, axiosGetProjects: function axiosGetProjects() { var _this2 = this; var _this$getPagination = this.getPagination, page = _this$getPagination.page, size = _this$getPagination.size; this.projectLoading = true; var hasOrgId = queryString.parse(history.location.search).organizationId; axios.get(hasOrgId ? "/iam/choerodon/v1/organizations/".concat(hasOrgId, "/users/").concat(AppState.getUserId, "/projects/paging?page=").concat(page, "&size=").concat(size).concat(this.getAllProjectsParams && "&params=".concat(this.getAllProjectsParams)) : '').then(function (res) { var tempContent = get(res, 'content') ? res.content.map(function (r) { var unix = String(moment(r.creationDate).unix()); r.background = getRandomBackground(unix.substring(unix.length - 3)); return r; }) : []; _this2.setAllProjects(tempContent); _this2.setPagination({ page: res === null || res === void 0 ? void 0 : res.pageNum, size: res === null || res === void 0 ? void 0 : res.size, total: res === null || res === void 0 ? void 0 : res.totalElements }); _this2.projectLoading = false; }); }, canCreate: false, get getCanCreate() { return this.canCreate; }, setCanCreate: function setCanCreate(flag) { this.canCreate = flag; }, checkCreate: function checkCreate(organizationId) { var _this3 = this; return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { var res; return regeneratorRuntime.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: if (!organizationId) { _context.next = 11; break; } _context.prev = 1; _context.next = 4; return axios.get("iam/choerodon/v1/organizations/".concat(organizationId, "/projects/check_enable_create")); case 4: res = _context.sent; _this3.setCanCreate(res && !res.failed); _context.next = 11; break; case 8: _context.prev = 8; _context.t0 = _context["catch"](1); _this3.setCanCreate(false); case 11: case "end": return _context.stop(); } } }, _callee, null, [[1, 8]]); }))(); }, handleClickProject: function handleClickProject(data) { var id = data.id, name = data.name, organizationId = data.organizationId, category = data.category; var type = 'project'; HeaderStore.setRecentItem(data); MenuStore.loadMenuData({ type: type, id: id }, false).then(function (menus) { var route = ''; var path; var domain; if (menus.length) { var _findFirstLeafMenu = findFirstLeafMenu(menus[0]), menuRoute = _findFirstLeafMenu.route, menuDomain = _findFirstLeafMenu.domain; route = menuRoute; domain = menuDomain; } // if (route) { path = "".concat(route, "?type=").concat(type, "&id=").concat(id, "&name=").concat(encodeURIComponent(name)).concat(category ? "&category=".concat(category) : ''); if (String(organizationId)) { path += "&organizationId=".concat(organizationId); } // } if (path) { historyPushMenu(history, path, domain); } // AppState.getProjects(); }); }, deleteStar: function deleteStar(data) { var orgId = AppState.currentMenuType.organizationId; return orgId && axios["delete"]("/iam/choerodon/v1/organizations/".concat(orgId, "/star_projects?project_id=").concat(data.id)); }, starProject: function starProject(data) { var orgId = AppState.currentMenuType.organizationId; return orgId && axios.post("/iam/choerodon/v1/organizations/".concat(orgId, "/star_projects"), { projectId: data.id }); }, handleChangeStarProjects: function handleChangeStarProjects(data) { var origin = this.getStarProjectsList; if (data.starFlag) { origin.unshift(data); this.setStarProjectsList(origin); } else { var index = origin.findIndex(function (i) { return String(i.id) === String(data.id); }); origin.splice(index, 1); this.setStarProjectsList(origin); } }, handleStarProject: function handleStarProject(data) { var _this4 = this; // eslint-disable-next-line no-async-promise-executor return new Promise( /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(resolve) { return regeneratorRuntime.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: if (!data.starFlag) { _context2.next = 12; break; } _context2.prev = 1; _context2.next = 4; return _this4.deleteStar(data); case 4: data.starFlag = false; _this4.setRecentProjects(_this4.recentProjects.map(function (i) { if (String(i.projectDTO.id) === String(data.id)) { i.projectDTO.starFlag = false; } return i; })); _context2.next = 10; break; case 8: _context2.prev = 8; _context2.t0 = _context2["catch"](1); case 10: _context2.next = 21; break; case 12: _context2.prev = 12; _context2.next = 15; return _this4.starProject(data); case 15: data.starFlag = true; _this4.setRecentProjects(_this4.recentProjects.map(function (i) { if (String(i.projectDTO.id) === String(data.id)) { i.projectDTO.starFlag = true; } return i; })); // eslint-disable-next-line no-empty _context2.next = 21; break; case 19: _context2.prev = 19; _context2.t1 = _context2["catch"](12); case 21: resolve(); case 22: case "end": return _context2.stop(); } } }, _callee2, null, [[1, 8], [12, 19]]); })); return function (_x) { return _ref.apply(this, arguments); }; }()); }, axiosGetStarProjects: function axiosGetStarProjects() { var _this5 = this; var orgId = AppState.currentMenuType.organizationId; if (orgId) { axios.get("/iam/choerodon/v1/organizations/".concat(orgId, "/star_projects"), { enabledCancelCache: false, enabledCancelRoute: false }).then(function (res) { _this5.setStarProjectsList(get(res, 'length') ? res.map(function (r) { r.background = getRandomBackground(); return r; }) : []); }); } }, changeStarProjectPos: function changeStarProjectPos(arr) { var orgId = AppState.currentMenuType.organizationId; if (orgId) { try { var res = axios.put("/iam/choerodon/v1/organizations/".concat(orgId, "/star_projects"), JSON.stringify(arr)); if (res && res.failed) { return res; } } catch (error) { throw new Error(error); } } return false; }, retryProjectSaga: function retryProjectSaga(projectId, sagaInstanceIds) { return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() { var res; return regeneratorRuntime.wrap(function _callee3$(_context3) { while (1) { switch (_context3.prev = _context3.next) { case 0: _context3.prev = 0; _context3.next = 3; return axios.put("/hagd/v1/sagas/projects/".concat(projectId, "/tasks/instances/retry"), sagaInstanceIds); case 3: res = _context3.sent; if (!(res && res.failed)) { _context3.next = 6; break; } return _context3.abrupt("return", false); case 6: return _context3.abrupt("return", true); case 9: _context3.prev = 9; _context3.t0 = _context3["catch"](0); throw new Error(_context3.t0); case 12: case "end": return _context3.stop(); } } }, _callee3, null, [[0, 9]]); }))(); }, deleteProject: function deleteProject(projectId) { return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() { var res; return regeneratorRuntime.wrap(function _callee4$(_context4) { while (1) { switch (_context4.prev = _context4.next) { case 0: _context4.prev = 0; _context4.next = 3; return axios["delete"]("/iam/choerodon/v1/projects/".concat(projectId)); case 3: res = _context4.sent; if (!(res && res.failed)) { _context4.next = 6; break; } return _context4.abrupt("return", false); case 6: return _context4.abrupt("return", true); case 9: _context4.prev = 9; _context4.t0 = _context4["catch"](0); throw new Error(_context4.t0); case 12: case "end": return _context4.stop(); } } }, _callee4, null, [[0, 9]]); }))(); }, handleEnable: function handleEnable(_ref2) { return _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() { var organizationId, projectId, type, res; return regeneratorRuntime.wrap(function _callee5$(_context5) { while (1) { switch (_context5.prev = _context5.next) { case 0: organizationId = _ref2.organizationId, projectId = _ref2.projectId, type = _ref2.type; _context5.prev = 1; _context5.next = 4; return axios.put("/iam/choerodon/v1/organizations/".concat(organizationId, "/projects/").concat(projectId, "/").concat(type)); case 4: res = _context5.sent; if (!(res && res.failed)) { _context5.next = 7; break; } return _context5.abrupt("return", false); case 7: return _context5.abrupt("return", true); case 10: _context5.prev = 10; _context5.t0 = _context5["catch"](1); throw new Error(_context5.t0); case 13: case "end": return _context5.stop(); } } }, _callee5, null, [[1, 10]]); }))(); } }; }); }