@kineticdata/react
Version:
A React library for the Kinetic Platform
114 lines (113 loc) • 2.74 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.IndexJobTable = void 0;
var _react = _interopRequireDefault(require("react"));
var _apis = require("../../../apis");
var _Table = require("../../table/Table");
var _helpers = require("../../../helpers");
var clientSide = (0, _helpers.defineFilter)(true).equals('status', 'status').between('startedAt', 'minStartedAt', 'maxStartedAt').end();
var indexJobStatuses = ['Running', 'Paused'];
var dataSource = function dataSource(_ref) {
var formSlug = _ref.formSlug,
kappSlug = _ref.kappSlug,
_ref$completed = _ref.completed,
completed = _ref$completed === void 0 ? false : _ref$completed;
return {
fn: function fn() {
return (0, _apis.fetchBackgroundJobs)({
formSlug: formSlug,
kappSlug: kappSlug,
completed: completed
});
},
clientSide: clientSide,
params: function params() {
return [];
},
transform: function transform(result) {
return {
data: result.backgroundJobs
};
}
};
};
var filters = function filters() {
return function () {
return [{
name: 'status',
label: 'Status',
type: 'select',
options: indexJobStatuses.map(function (el) {
return {
value: el,
label: el
};
})
}, {
name: 'minStartedAt',
label: 'Start',
type: 'date'
}, {
name: 'maxStartedAt',
label: 'End',
type: 'date'
}];
};
};
var columns = [{
value: 'content',
title: 'Content',
components: {
BodyCell: function BodyCell(props) {
return /*#__PURE__*/_react["default"].createElement("td", null, JSON.stringify(props.value));
}
},
sortable: false,
filterable: false
}, {
value: 'hung',
title: 'Hung?'
}, {
value: 'id',
title: 'Job ID'
}, {
value: 'message',
title: 'Message'
}, {
value: 'parent',
title: 'Parent'
}, {
value: 'parentType',
title: 'Parent Type'
}, {
value: 'progress',
title: 'Progress',
components: {
BodyCell: function BodyCell(props) {
return /*#__PURE__*/_react["default"].createElement("td", null, "".concat(props.value));
}
}
}, {
value: 'startedAt',
title: 'Started At'
}, {
value: 'startedBy',
title: 'Started By'
}, {
value: 'status',
title: 'Status'
}, {
value: 'type',
title: 'Type'
}];
var IndexJobTable = exports.IndexJobTable = (0, _Table.generateTable)({
tableOptions: ['formSlug', 'kappSlug', 'completed'],
dataSource: dataSource,
columns: columns,
filters: filters,
sortable: false
});
IndexJobTable.displayName = 'IndexJobTable';