|
1172 | 1172 | * |
1173 | 1173 | * @param {boolean=} excludeFromColumnSelector disables the column selection for the applied column for the column select feature. |
1174 | 1174 | * |
| 1175 | + * @param {boolean=} hideColumnByDefault sets the target column as unselected for the column select feature. |
| 1176 | + * |
1175 | 1177 | * @example |
1176 | 1178 | * <pre> |
1177 | 1179 | * <mdt-table> |
|
1200 | 1202 | columnDefinition: '@', |
1201 | 1203 | columnSort: '=?', |
1202 | 1204 | columnFilter: '=?', |
1203 | | - excludeFromColumnSelector: '=?' |
| 1205 | + excludeFromColumnSelector: '=?', |
| 1206 | + hideColumnByDefault: '=?' |
1204 | 1207 | }, |
1205 | 1208 | require: ['^mdtTable'], |
1206 | 1209 | link: function ($scope, element, attrs, ctrl, transclude) { |
|
1217 | 1220 |
|
1218 | 1221 | ColumnFilterFeature.appendHeaderCellData($scope, cellDataToStore, mdtTableCtrl.dataStorage); |
1219 | 1222 | ColumnSortFeature.appendHeaderCellData(cellDataToStore, $scope.columnSort); |
1220 | | - ColumnSelectorFeature.appendHeaderCellData(cellDataToStore, mdtTableCtrl.columnSelectorFeature, $scope.excludeFromColumnSelector); |
| 1223 | + ColumnSelectorFeature.appendHeaderCellData(cellDataToStore, mdtTableCtrl.columnSelectorFeature, $scope.excludeFromColumnSelector, $scope.hideColumnByDefault); |
1221 | 1224 |
|
1222 | 1225 | mdtTableCtrl.dataStorage.addHeaderCellData(cellDataToStore); |
1223 | 1226 | }); |
|
1374 | 1377 | }); |
1375 | 1378 |
|
1376 | 1379 | }else{ |
1377 | | - element[0].append(val); |
| 1380 | + element.append(val); |
1378 | 1381 | } |
1379 | 1382 |
|
1380 | 1383 | }, false); |
|
1655 | 1658 | }; |
1656 | 1659 |
|
1657 | 1660 | /** |
1658 | | - * Set the position of the column filter panel. It's required to attach it to the outer container |
| 1661 | + * Set the position of the column filter panel. It's required to attach it to the outer container |
1659 | 1662 | * of the component because otherwise some parts of the panel can became partially or fully hidden |
1660 | 1663 | * (e.g.: when table has only one row to show) |
1661 | 1664 | */ |
|
1666 | 1669 | top: elementPosition.top + 60, |
1667 | 1670 | left: elementPosition.left |
1668 | 1671 | }; |
1669 | | - |
| 1672 | + |
1670 | 1673 | element.css('position', 'absolute'); |
1671 | 1674 | element.detach().appendTo('body'); |
1672 | 1675 |
|
1673 | 1676 | element.css({ |
1674 | | - top: targetMetrics.top + 'px', |
1675 | | - left: targetMetrics.left + 'px', |
| 1677 | + top: targetMetrics.top + 'px', |
| 1678 | + left: targetMetrics.left + 'px', |
1676 | 1679 | position:'absolute' |
1677 | 1680 | }); |
1678 | 1681 | } |
|
1696 | 1699 | * |
1697 | 1700 | * @param cellDataToStore |
1698 | 1701 | */ |
1699 | | - service.appendHeaderCellData = function(cellDataToStore, columnSelectorFeature, isColumnExcludedFromColumnSelector) { |
| 1702 | + service.appendHeaderCellData = function(cellDataToStore, columnSelectorFeature, isColumnExcludedFromColumnSelector, hideColumnByDefault) { |
1700 | 1703 | if(!columnSelectorFeature.isEnabled){ |
1701 | 1704 | return; |
1702 | 1705 | } |
|
1708 | 1711 | }else{ |
1709 | 1712 | cellDataToStore.columnSelectorFeature.isExcluded = false; |
1710 | 1713 | } |
| 1714 | + |
| 1715 | + if(hideColumnByDefault){ |
| 1716 | + cellDataToStore.columnSelectorFeature.isHidden = true; |
| 1717 | + }else{ |
| 1718 | + cellDataToStore.columnSelectorFeature.isHidden = false; |
| 1719 | + } |
1711 | 1720 | }; |
1712 | 1721 |
|
1713 | 1722 | /** |
|
1740 | 1749 | service.initFeatureHeaderValues = function(headerRowsData, columnSelectorFeature){ |
1741 | 1750 | if(columnSelectorFeature && columnSelectorFeature.isEnabled){ |
1742 | 1751 | _.each(headerRowsData, function(item){ |
1743 | | - item.columnSelectorFeature.isVisible =true; |
| 1752 | + item.columnSelectorFeature.isVisible = !item.columnSelectorFeature.isHidden; |
1744 | 1753 | }); |
1745 | 1754 | } |
1746 | 1755 | }; |
|
2243 | 2252 |
|
2244 | 2253 | $scope.headerRowsData = _.map($scope.dataStorage.header, function(item){ |
2245 | 2254 | //excluded content should also be in, since we use the index of the array to apply the changes. Do not exclude them. |
| 2255 | + |
2246 | 2256 | return { |
2247 | 2257 | columnName: item.columnName, |
2248 | 2258 | isVisible: item.columnSelectorFeature.isVisible, |
|
0 commit comments