UNPKG

cluedin-widget

Version:
560 lines (439 loc) • 18.4 kB
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([[5],{ /***/ 1889: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // EXTERNAL MODULE: ./core/helpers/request.js var request = __webpack_require__(21); // CONCATENATED MODULE: ./core/modules/development/viewModel.js var toVM = function toVM(projectsData) { return projectsData.map(function (projectData) { var name = projectData.name, id = projectData.id, rowCount = projectData.rowCount, created = projectData.created, modified = projectData.modified, _projectData$importOp = projectData.importOptionMetadata, importOptionMetadata = _projectData$importOp === void 0 ? [] : _projectData$importOp; var fileSource = importOptionMetadata && importOptionMetadata[0] && importOptionMetadata[0].fileSource || null; return { name: name, id: id, rowCount: rowCount, created: created, modified: modified, fileSource: fileSource // ...rest, }; }); }; /* harmony default export */ var viewModel = (null); // CONCATENATED MODULE: ./core/modules/development/data.js /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return data_getCleaningProjects; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return data_saveCleaningProjects; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return data_createCleanProjects; }); var data_getCleaningProjects = function getCleaningProjects() { return Object(request["a" /* apiRequest */])('GET', 'api/v1/clean/getprojects').then(request["e" /* getBody */]).then(function (resp) { return toVM(resp); }); }; var data_saveCleaningProjects = function saveCleaningProjects(projectId) { return Object(request["a" /* apiRequest */])('POST', "api/v1/clean/saveproject?projectId=".concat(projectId)); }; var data_createCleanProjects = function createCleanProjects(payload) { return Object(request["a" /* apiRequest */])('POST', 'api/v1/clean/createprojects', payload); }; /* harmony default export */ var data = ({ getCleaningProjects: data_getCleaningProjects, saveCleaningProjects: data_saveCleaningProjects, createCleanProjects: data_createCleanProjects }); /***/ }), /***/ 2331: /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/classCallCheck.js var classCallCheck = __webpack_require__(12); var classCallCheck_default = /*#__PURE__*/__webpack_require__.n(classCallCheck); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/createClass.js var createClass = __webpack_require__(13); var createClass_default = /*#__PURE__*/__webpack_require__.n(createClass); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js var possibleConstructorReturn = __webpack_require__(14); var possibleConstructorReturn_default = /*#__PURE__*/__webpack_require__.n(possibleConstructorReturn); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/getPrototypeOf.js var getPrototypeOf = __webpack_require__(15); var getPrototypeOf_default = /*#__PURE__*/__webpack_require__.n(getPrototypeOf); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inherits.js var inherits = __webpack_require__(16); var inherits_default = /*#__PURE__*/__webpack_require__.n(inherits); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/assertThisInitialized.js var assertThisInitialized = __webpack_require__(27); var assertThisInitialized_default = /*#__PURE__*/__webpack_require__.n(assertThisInitialized); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js var defineProperty = __webpack_require__(3); var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js var taggedTemplateLiteral = __webpack_require__(7); var taggedTemplateLiteral_default = /*#__PURE__*/__webpack_require__.n(taggedTemplateLiteral); // EXTERNAL MODULE: ./node_modules/react/index.js var react = __webpack_require__(0); var react_default = /*#__PURE__*/__webpack_require__.n(react); // EXTERNAL MODULE: ./node_modules/react-redux/es/index.js + 18 modules var es = __webpack_require__(8); // EXTERNAL MODULE: ./node_modules/styled-components/dist/styled-components.browser.es.js var styled_components_browser_es = __webpack_require__(5); // EXTERNAL MODULE: ./node_modules/uxi/Alert/index.js var Alert = __webpack_require__(24); var Alert_default = /*#__PURE__*/__webpack_require__.n(Alert); // EXTERNAL MODULE: ./node_modules/uxi/DataGrid/index.js var DataGrid = __webpack_require__(144); var DataGrid_default = /*#__PURE__*/__webpack_require__.n(DataGrid); // EXTERNAL MODULE: ./node_modules/uxi/Layout/Flex.js var Flex = __webpack_require__(54); // EXTERNAL MODULE: ./node_modules/uxi/Widget/Widget.js var Widget = __webpack_require__(918); var Widget_default = /*#__PURE__*/__webpack_require__.n(Widget); // EXTERNAL MODULE: ./node_modules/uxi/Icons/index.js var Icons = __webpack_require__(9); // EXTERNAL MODULE: ./node_modules/uxi/Button/index.js var Button = __webpack_require__(18); var Button_default = /*#__PURE__*/__webpack_require__.n(Button); // EXTERNAL MODULE: ./core/modules/development/data.js + 1 modules var development_data = __webpack_require__(1889); // EXTERNAL MODULE: ./core/modules/core/components/composites/PageLoader.js var PageLoader = __webpack_require__(38); // EXTERNAL MODULE: ./core/modules/development/components/containers/DevPageWrapper.js var DevPageWrapper = __webpack_require__(573); // EXTERNAL MODULE: ./node_modules/moment/moment.js var moment = __webpack_require__(10); var moment_default = /*#__PURE__*/__webpack_require__.n(moment); // EXTERNAL MODULE: ./node_modules/uxi-business/userMessage/actions.js var actions = __webpack_require__(138); // CONCATENATED MODULE: ./core/modules/development/components/containers/CommitProjectButton.js var CommitProjectButton_CommitProjectButton = /*#__PURE__*/ function (_Component) { inherits_default()(CommitProjectButton, _Component); function CommitProjectButton(props) { var _this; classCallCheck_default()(this, CommitProjectButton); _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(CommitProjectButton).call(this, props)); defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "handleSaveRequest", function () { var _this$props = _this.props, project = _this$props.project, onSaveSuccess = _this$props.onSaveSuccess, onSaveError = _this$props.onSaveError; Object(development_data["c" /* saveCleaningProjects */])(project.id).catch(function (unexpecteError) { onSaveError(); _this.setState({ saved: false, isSaving: false, errorSaving: unexpecteError || true }); }).then(function (res) { var nextState = {}; if (res.status === 200) { nextState = { saved: true, isSaving: false, errorSaving: false }; } else { nextState = { saved: false, isSaving: false, errorSaving: true }; } onSaveSuccess(); _this.setState(nextState); }).catch(function (unexpecteError) { onSaveError(); _this.setState({ saved: false, isSaving: false, errorSaving: unexpecteError || true }); }); _this.setState({ isSaving: true }); }); _this.state = { isSaving: false, saved: false, errorSaving: false }; return _this; } createClass_default()(CommitProjectButton, [{ key: "render", value: function render() { var isSaving = this.state.isSaving; return react_default.a.createElement(Button["Button"], { loading: isSaving, text: "Commit", disabled: isSaving, onClick: this.handleSaveRequest }); } }]); return CommitProjectButton; }(react["Component"]); var mapStateToProps = function mapStateToProps() { return {}; }; var CommitProjectButton_mapDispatchToProps = function mapDispatchToProps(dispatch) { return { onSaveSuccess: function onSaveSuccess() { return dispatch(Object(actions["showSuccess"])({ message: 'Your changes have been saved on the server! It will take a bit of time to process. We will notify you once it is done.' })); }, onSaveError: function onSaveError() { return dispatch(Object(actions["showError"])({ message: 'An error occurred while attempting to save your changes. Try again in a few seconds. If the issue persists, please contact our support (support@cluedin.com)' })); } }; }; /* harmony default export */ var containers_CommitProjectButton = (Object(es["connect"])(mapStateToProps, CommitProjectButton_mapDispatchToProps)(CommitProjectButton_CommitProjectButton)); // EXTERNAL MODULE: ./core/config/index.js + 4 modules var config = __webpack_require__(11); // CONCATENATED MODULE: ./core/modules/development/properties.js var cluedInCleanUrl = config["j" /* url */].cluedInCleanUrl; var properties_NameWithLink = function NameWithLink(_ref) { var _ref$entity = _ref.entity, entity = _ref$entity === void 0 ? {} : _ref$entity; return react_default.a.createElement("a", { target: "_blank", rel: "noopener noreferrer", href: "".concat(cluedInCleanUrl, "project?project=").concat(entity.id) }, entity.name); }; var properties_DateFromNow = function DateFromNow(_ref2) { var _ref2$value = _ref2.value, value = _ref2$value === void 0 ? Date.now() : _ref2$value; return moment_default()(value).fromNow(); }; var projectDataGridPropertiesModel = [{ property: 'name', displayName: 'Name', isComputed: true, Component: properties_NameWithLink }, { property: 'rowCount', displayName: 'Rows count' }, { property: 'created', displayName: 'Created', Component: properties_DateFromNow }, { property: 'modified', displayName: 'Modified', Component: properties_DateFromNow }, { property: 'fileSource', displayName: 'Source file' }, { property: 'Action', displayName: '', isComputed: true, Component: function Component(_ref3) { var entity = _ref3.entity; return react_default.a.createElement("div", null, react_default.a.createElement(containers_CommitProjectButton, { project: entity })); } }]; /* harmony default export */ var properties = (null); // CONCATENATED MODULE: ./core/modules/development/config.js var createCleanProjectsPayload = { entityTypes: ['/Organization', '/Person', '/Infrastructure/Contact', '/Sales/Lead'], SkipMin: 20, SkipMax: 100, TakeMin: 20, TakeMax: 100 }; /* harmony default export */ var development_config = ({ createCleanProjectsPayload: createCleanProjectsPayload }); // EXTERNAL MODULE: ./core/modules/core/actions.js var core_actions = __webpack_require__(60); // CONCATENATED MODULE: ./core/modules/development/components/pages/CleaningProjectPage.js function _templateObject() { var data = taggedTemplateLiteral_default()(["\n thead td:nth-of-type(6) {\n width: 130px;\n text-align:right;\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var DataGridWrapper = styled_components_browser_es["default"].div(_templateObject()); var CleaningProjectPage_CleaningProjectsPage = /*#__PURE__*/ function (_Component) { inherits_default()(CleaningProjectsPage, _Component); function CleaningProjectsPage(props) { var _this; classCallCheck_default()(this, CleaningProjectsPage); _this = possibleConstructorReturn_default()(this, getPrototypeOf_default()(CleaningProjectsPage).call(this, props)); defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "handleProjectsCreation", function () { var _this$props = _this.props, onCreateSuccess = _this$props.onCreateSuccess, onCreateError = _this$props.onCreateError; _this.setState({ createFetching: true, createDone: false, createError: false }); Object(development_data["a" /* createCleanProjects */])(createCleanProjectsPayload).then(function () { _this.setState({ createFetching: false, createError: false, createDone: true }); onCreateSuccess(); setTimeout(function () { window.location.reload(); }, 1000); }).catch(function (err) { _this.setState({ createFetching: false, createError: err || true, createDone: false }); onCreateError(); console.log('Error while creating cleaning projects:'); // eslint-disable-line no-console console.log(err); // eslint-disable-line no-console }); }); _this.state = { fetching: false, invalid: false, projects: null, createFetching: false, createError: false, createDone: false }; _this.handleProjectsCreation = _this.handleProjectsCreation.bind(assertThisInitialized_default()(assertThisInitialized_default()(_this))); return _this; } createClass_default()(CleaningProjectsPage, [{ key: "componentDidMount", value: function componentDidMount() { var _this2 = this; Object(development_data["b" /* getCleaningProjects */])().then(function (projects) { _this2.setState({ loading: false, invalid: false, projects: projects }); }).catch(function (err) { _this2.setState({ invalid: err || true, projects: null, loading: false }); }); this.setState({ loading: true }); } }, { key: "render", value: function render() { var _this$state = this.state, loading = _this$state.loading, invalid = _this$state.invalid, projects = _this$state.projects, createFetching = _this$state.createFetching; if (loading) { return react_default.a.createElement(PageLoader["a" /* default */], null); } if (invalid || !projects) { return react_default.a.createElement(Flex["Flex"], { style: { width: '100%', height: '100%', padding: '32px' } }, react_default.a.createElement(Alert_default.a, { type: "danger" }, react_default.a.createElement("div", null, react_default.a.createElement("div", null, "An error occurred while retrieving your cleaning projects."), react_default.a.createElement("div", null, "We apologize for the inconvenience, try reloading the page"), react_default.a.createElement("div", null, "If the issue persists, contact our ", react_default.a.createElement("a", { href: "mailto:support@cluedin.com" }, "support"), " for immediate assistance.")))); } if (projects && projects.length === 0) { return react_default.a.createElement(Flex["Flex"], { style: { width: '100%', height: '100%', padding: '32px', flexDirection: 'column' } }, react_default.a.createElement(Alert_default.a, { style: { minWidth: '500px' } }, react_default.a.createElement("div", null, react_default.a.createElement("div", null, "0 cleaning project found."))), react_default.a.createElement("div", { style: { marginTop: '14px' } }, react_default.a.createElement(Button_default.a, { disabled: createFetching, loading: createFetching, icon: react_default.a.createElement(Icons["Add"], null), text: "Create CluedIn Clean Projects", onClick: this.handleProjectsCreation, type: "primary" }))); } return react_default.a.createElement(DevPageWrapper["a" /* default */], null, react_default.a.createElement("div", { style: { padding: '16px' } }, react_default.a.createElement(Widget_default.a, { title: 'CluedIn Clean projects', menu: react_default.a.createElement(Flex["Flex"], { style: { height: '100%', paddingRight: '16px' } }, react_default.a.createElement(Button_default.a, { disabled: createFetching, loading: createFetching, icon: react_default.a.createElement(Icons["Add"], null), text: "Create CluedIn Clean Projects", onClick: this.handleProjectsCreation, type: "primary" })) }, react_default.a.createElement(DataGridWrapper, null, react_default.a.createElement(DataGrid_default.a, { data: projects, properties: projectDataGridPropertiesModel }))))); } }]); return CleaningProjectsPage; }(react["Component"]); var CleaningProjectPage_mapStateToProps = function mapStateToProps() { return {}; }; var CleaningProjectPage_mapDispatchToProps = function mapDispatchToProps(dispatch) { return { onCreateSuccess: function onCreateSuccess() { return dispatch(Object(core_actions["c" /* shouldShowAlert */])({ description: 'Projects creation request successful. We will reload the page to get our the new projects.', type: 'success' })); }, onCreateError: function onCreateError() { return dispatch(Object(core_actions["c" /* shouldShowAlert */])({ description: 'An error occurred while attempting to create projects. Try again in a few seconds. If the issue persists, please contact our support (support@cluedin.com)', type: 'error' })); } }; }; /* harmony default export */ var CleaningProjectPage = __webpack_exports__["default"] = (Object(es["connect"])(CleaningProjectPage_mapStateToProps, CleaningProjectPage_mapDispatchToProps)(CleaningProjectPage_CleaningProjectsPage)); /***/ }) }]);