cluedin-widget
Version:
560 lines (439 loc) • 18.4 kB
JavaScript
(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));
/***/ })
}]);