UNPKG

catreact

Version:

Catavolt Core React Components

86 lines (85 loc) 5.85 kB
/** * Created by rburson on 3/18/16. */ "use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; var React = require('react'); var catreact_1 = require('./../catreact'); var catavolt_sdk_1 = require('catavolt-sdk'); /** * Renders a Details Panel, styled by CSS */ exports.CvDetailsPanel = React.createClass({ mixins: [catreact_1.CvBaseMixin], render: function () { var _this = this; return React.createElement(catreact_1.CvDetailsPane, __assign({}, this.props, {detailsRenderer: function (cvContext, record, detailsCallback) { var detailsContext = cvContext.scopeCtx.scopeObj; return (React.createElement(catreact_1.CvRecord, {entityRec: record, renderer: function (cvContext) { return (React.createElement("div", {className: "cv-detail-container"}, (function () { var cancelButtonText = detailsContext.detailsDef.cancelButtonText; var commitButtonText = detailsContext.detailsDef.commitButtonText; if (detailsContext.detailsDef.editable) { if (detailsContext.isReadMode) { return React.createElement("div", {className: "text-right"}, React.createElement("button", {className: "btn btn-default", onClick: _this._refresh.bind(_this, detailsCallback)}, React.createElement("span", {className: "glyphicon glyphicon-refresh", "aria-hidden": "true"})), React.createElement("button", {className: "btn btn-default", onClick: _this._openWriteMode.bind(_this, detailsCallback)}, React.createElement("span", {className: "glyphicon glyphicon-edit", "aria-hidden": "true"}))); } else if (detailsContext.isWriteMode) { return React.createElement("div", {className: "text-right"}, React.createElement("button", {className: "btn btn-default", onClick: _this._openReadMode.bind(_this, detailsCallback)}, cancelButtonText ? React.createElement("span", {style: { marginRight: '10px' }}, cancelButtonText) : null, React.createElement("span", {className: "glyphicon glyphicon-remove", "aria-hidden": "true"})), React.createElement("button", {className: "btn btn-default", onClick: _this._save.bind(_this, detailsCallback)}, commitButtonText ? React.createElement("span", {style: { marginRight: '10px' }}, commitButtonText) : null, React.createElement("span", {className: "glyphicon glyphicon-ok", "aria-hidden": "true"}))); } } })(), React.createElement("table", {className: "table table-striped"}, React.createElement("tbody", null, _this._layoutDetailsPane(detailsContext, record, detailsCallback))))); }})); }})); }, _isSectionTitleDef: function (row) { return (row.length > 1) && row[0].values[0] instanceof catavolt_sdk_1.LabelCellValueDef && row[1].values[0] instanceof catavolt_sdk_1.LabelCellValueDef; }, _layoutDetailsPane: function (detailsContext, record, detailsCallback) { var _this = this; var renderedDetailRows = []; if (detailsContext) { detailsContext.detailsDef.rows.forEach(function (cellDefRow, index) { var c1 = cellDefRow.length > 0 ? cellDefRow[0].values[0] : null; var c2 = cellDefRow.length > 1 ? cellDefRow[1].values[0] : null; if (_this._isSectionTitleDef(cellDefRow)) { renderedDetailRows.push(React.createElement(catreact_1.CvDataAnno, {entityRec: record, paneContext: detailsContext, wrapperElem: "tr", wrapperElemProps: { className: "cv-cell-def-title-row", key: { index: index } }}, React.createElement(catreact_1.CvCellValueDef, {detailsContext: detailsContext, detailsCallback: detailsCallback, cellValueDef: c1, wrapperElem: "td", wrapperElemProps: { className: 'cv-cell-def-title-col' }}), React.createElement(catreact_1.CvCellValueDef, {detailsContext: detailsContext, detailsCallback: detailsCallback, cellValueDef: c2, wrapperElem: "td", wrapperElemProps: { className: 'cv-cell-def-title-col' }}))); } else { renderedDetailRows.push(React.createElement(catreact_1.CvDataAnno, {entityRec: record, paneContext: detailsContext, wrapperElem: "tr", wrapperElemProps: { className: "cv-cell-def-row", key: { index: index } }}, (function () { return cellDefRow.map(function (cellDef) { var c1 = cellDef.values.length > 0 ? cellDef.values[0] : null; var c2 = cellDef.values.length > 1 ? cellDef.values[1] : null; return [c1, c2].map(function (cellValueDef) { return React.createElement(catreact_1.CvCellValueDef, {detailsContext: detailsContext, detailsCallback: detailsCallback, cellValueDef: cellValueDef, wrapperElem: "td", wrapperElemProps: { className: 'cv-cell-def-col' }}); }); }); })())); } }); } return renderedDetailRows; }, _openWriteMode: function (detailsCallback) { detailsCallback.openWriteMode(function (success, error) { }); }, _openReadMode: function (detailsCallback) { detailsCallback.openReadMode(function (success, error) { }); }, _refresh: function (detailsCallback) { detailsCallback.refresh(); }, _save: function (detailsCallback) { detailsCallback.saveChanges(function (success, error) { }); } });