diff --git a/src/actions/MenuActions.js b/src/actions/MenuActions.js index 7e0114194..d6979b542 100644 --- a/src/actions/MenuActions.js +++ b/src/actions/MenuActions.js @@ -117,11 +117,11 @@ export function getWindowBreadcrumb(id){ // UTILITIES -export function flattenLastElem(node) { +export function flattenLastElem(node, prop = "children") { let result = []; - if(!!node.children){ - node.children.map(child => { + if(!!node[prop]){ + node[prop].map(child => { const flat = flattenLastElem(child); if(typeof flat === "object"){ diff --git a/src/assets/css/font-meta.css b/src/assets/css/font-meta.css index 384fa3257..be7adb07c 100644 --- a/src/assets/css/font-meta.css +++ b/src/assets/css/font-meta.css @@ -179,3 +179,12 @@ .meta-icon-collapse:before { content: "\55"; } +.meta-icon-package:before { + content: "\56"; +} +.meta-icon-palette:before { + content: "\57"; +} +.meta-icon-product:before { + content: "\58"; +} diff --git a/src/assets/css/fonts/meta.eot b/src/assets/css/fonts/meta.eot index f938321c4..25ef0e1eb 100644 Binary files a/src/assets/css/fonts/meta.eot and b/src/assets/css/fonts/meta.eot differ diff --git a/src/assets/css/fonts/meta.svg b/src/assets/css/fonts/meta.svg index 2c66867cd..a8b39966f 100644 --- a/src/assets/css/fonts/meta.svg +++ b/src/assets/css/fonts/meta.svg @@ -54,4 +54,7 @@ + + + diff --git a/src/assets/css/fonts/meta.ttf b/src/assets/css/fonts/meta.ttf index 3729c56d7..1dbd455c1 100644 Binary files a/src/assets/css/fonts/meta.ttf and b/src/assets/css/fonts/meta.ttf differ diff --git a/src/assets/css/fonts/meta.woff b/src/assets/css/fonts/meta.woff index 9a1e75ca5..965f7d7d1 100644 Binary files a/src/assets/css/fonts/meta.woff and b/src/assets/css/fonts/meta.woff differ diff --git a/src/assets/css/styles.css b/src/assets/css/styles.css index 65339c038..9f73fb0a0 100644 --- a/src/assets/css/styles.css +++ b/src/assets/css/styles.css @@ -803,4 +803,3 @@ td.pulse-off input { font-size: .75rem; color: $brand-font-color-weak; } - diff --git a/src/assets/css/table.css b/src/assets/css/table.css index 038897d3d..53eb6ae25 100644 --- a/src/assets/css/table.css +++ b/src/assets/css/table.css @@ -252,3 +252,8 @@ th { .pagination-link { text-decoration: underline; } + +.table.table-bordered-vertically td.indent { + min-width:0; + border-right:0; +} diff --git a/src/components/table/Table.js b/src/components/table/Table.js index e2350ee55..20392d872 100644 --- a/src/components/table/Table.js +++ b/src/components/table/Table.js @@ -64,15 +64,9 @@ class Table extends Component { } } - changeListenOnTrue = () => { + changeListen = (listenOnKeys) => { this.setState(Object.assign({}, this.state, { - listenOnKeys: true - })) - } - - changeListenOnFalse = () => { - this.setState(Object.assign({}, this.state, { - listenOnKeys: false + listenOnKeys: !!listenOnKeys })) } @@ -417,6 +411,7 @@ class Table extends Component { const key = keys[i]; const index = keyProperty ? keyProperty : "rowId"; const included = item[key].includedDocuments; + ret.push( -1} onDoubleClick={() => onDoubleClick && onDoubleClick(item[key][index])} - onMouseDown={(e) => this.handleClick(e, item[key][index])} + handleClick={(e) => this.handleClick(e, item[key][index])} onContextMenu={(e) => this.handleRightClick(e, item[key][index])} - changeListenOnTrue={() => this.changeListenOnTrue()} - changeListenOnFalse={() => this.changeListenOnFalse()} + changeListenOnTrue={() => this.changeListen(true)} + changeListenOnFalse={() => this.changeListen(false)} newRow={i === keys.length-1 ? newRow : false} /> ); diff --git a/src/components/table/TableHeader.js b/src/components/table/TableHeader.js index 9e07710bb..d28eeefd4 100644 --- a/src/components/table/TableHeader.js +++ b/src/components/table/TableHeader.js @@ -55,6 +55,9 @@ class TableHeader extends Component { const {cols, mainTable} = this.props; return ( + {this.renderCols(cols, mainTable)} ) diff --git a/src/components/table/TableItem.js b/src/components/table/TableItem.js index fcd219126..eea44c694 100644 --- a/src/components/table/TableItem.js +++ b/src/components/table/TableItem.js @@ -127,9 +127,10 @@ class TableItem extends Component { const { isSelected, fields, selectedProducts, onContextMenu, rowId, cols, onMouseDown, onDoubleClick, included, tabid, type, docId, - tabIndex, mainTable, entity, readonly + tabIndex, mainTable, entity, readonly, indent } = this.props; + const huType = findRowByPropName(fields, "HU_UnitType").value; return ( + + {huType == "LU" && } + {huType == "TU" && } + {huType == "V" && } + {this.renderCells(cols, fields)} ); } } -// {included && included.map((item, index) => -// -// )} - TableItem.propTypes = { dispatch: PropTypes.func.isRequired }; diff --git a/src/components/table/TableItemWrapper.js b/src/components/table/TableItemWrapper.js index 8d19ae36a..482748a05 100644 --- a/src/components/table/TableItemWrapper.js +++ b/src/components/table/TableItemWrapper.js @@ -1,10 +1,44 @@ import React, { Component, PropTypes } from 'react'; import TableItem from './TableItem'; +import update from 'react-addons-update'; + +import {flattenLastElem} from '../../actions/MenuActions'; class TableItemWrapper extends Component { constructor(props){ super(props); + + this.state = { + rows: [] + } + } + + componentDidMount(){ + const {item} = this.props; + this.setState(Object.assign({}, this.state, { + rows: this.mapIncluded(item) + })) + } + + mapIncluded = (node, indent) => { + let ind = indent ? indent : 0; + let result = []; + + const nodeCopy = Object.assign({}, node, { + indent: ind + }); + + result = result.concat([nodeCopy]); + + if(node.includedDocuments){ + node.includedDocuments.map(item => { + result = result.concat(this.mapIncluded(item, ind + 1)) + }) + } + + return result; } + render() { const { included, item, entity, tabid, cols, type, docId, isSelected, onDoubleClick, @@ -12,27 +46,33 @@ class TableItemWrapper extends Component { newRow, tabIndex, readonly, mainTable } = this.props; + const {rows} = this.state; + return ( - onDoubleClick && onDoubleClick()} - onMouseDown={(e) => handleClick && handleClick(e)} - onContextMenu={(e) => handleRightClick && handleRightClick(e)} - changeListenOnTrue={() => changeListenOnTrue && changeListenOnTrue()} - changeListenOnFalse={() => changeListenOnFalse && changeListenOnFalse()} - newRow={newRow} - /> + {rows.map((item, index) => + onDoubleClick && onDoubleClick()} + onMouseDown={(e) => handleClick && handleClick(e)} + onContextMenu={(e) => handleRightClick && handleRightClick(e)} + changeListenOnTrue={() => changeListenOnTrue && changeListenOnTrue()} + changeListenOnFalse={() => changeListenOnFalse && changeListenOnFalse()} + newRow={newRow} + isSelected={isSelected} + key={index} + indent={item.indent} + /> + )} ); }