diff --git a/README.md b/README.md index e02a252..388cd13 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,8 @@ http://www.google.com/design/spec/components/data-tables.html - align-rule - column-definition - column-filter - - excludeFromColumnSelector + - exclude-from-column-selector + - hide-column-by-default [Row attributes (`mdt-row`)](#data-row-attributes) - table-row-id @@ -238,6 +239,8 @@ Html support is available for `mdt-row`, see more: [Custom cell content (`mdt-cu |:white_check_mark:| | placeholderText | Text | optional, placeholder which will show up as a default text (available only for `chips` and `dropdown` filter types | |:white_check_mark:| | filterType | Text | optional, defines the type of the filter you want to use. Available options are: `chips`, `checkbox`, `dropdown`. If you don't specify it, the default will be `chips` | |:white_check_mark:| exclude-from-column-selector | | Boolean | optional, excludes the column from the column selection feature | +|:white_check_mark:| hide-column-by-default | | Boolean | optional, make column unselected by default in the column selection panel | + > When filters are applied to the columns, a third parameter will be applied to the `mdt-row-paginator` callback function. # Data-Row attributes diff --git a/app/modules/main/directives/header/mdtColumnDirective.js b/app/modules/main/directives/header/mdtColumnDirective.js index a4aeaf4..a707976 100644 --- a/app/modules/main/directives/header/mdtColumnDirective.js +++ b/app/modules/main/directives/header/mdtColumnDirective.js @@ -39,7 +39,7 @@ * * @param {boolean=} excludeFromColumnSelector disables the column selection for the applied column for the column select feature. * - * @param {boolean=} columnSelectorExcludeDefault sets the target column as unselected for the column select feature. + * @param {boolean=} hideColumnByDefault sets the target column as unselected for the column select feature. * * @example *
diff --git a/app/modules/main/features/ColumnSelectorFeature/ColumnSelectorFeature.js b/app/modules/main/features/ColumnSelectorFeature/ColumnSelectorFeature.js
index bcee5cf..7b62737 100644
--- a/app/modules/main/features/ColumnSelectorFeature/ColumnSelectorFeature.js
+++ b/app/modules/main/features/ColumnSelectorFeature/ColumnSelectorFeature.js
@@ -12,7 +12,7 @@
          *
          * @param cellDataToStore
          */
-        service.appendHeaderCellData = function(cellDataToStore, columnSelectorFeature, isColumnExcludedFromColumnSelector, isColumnUnselectedFromColumnSelector) {
+        service.appendHeaderCellData = function(cellDataToStore, columnSelectorFeature, isColumnExcludedFromColumnSelector, hideColumnByDefault) {
             if(!columnSelectorFeature.isEnabled){
                 return;
             }
@@ -25,10 +25,10 @@
                 cellDataToStore.columnSelectorFeature.isExcluded = false;
             }
 
-            if(isColumnUnselectedFromColumnSelector){
-                cellDataToStore.columnSelectorFeature.isUnchecked = true;
+            if(hideColumnByDefault){
+                cellDataToStore.columnSelectorFeature.isHidden = true;
             }else{
-                cellDataToStore.columnSelectorFeature.isUnchecked = false;
+                cellDataToStore.columnSelectorFeature.isHidden = false;
             }
         };
 
@@ -62,7 +62,7 @@
         service.initFeatureHeaderValues = function(headerRowsData, columnSelectorFeature){
             if(columnSelectorFeature && columnSelectorFeature.isEnabled){
                 _.each(headerRowsData, function(item){
-                    item.columnSelectorFeature.isVisible = !item.columnSelectorFeature.isUnchecked;
+                    item.columnSelectorFeature.isVisible = !item.columnSelectorFeature.isHidden;
                 });
             }
         };
diff --git a/bower.json b/bower.json
index 78391fe..63cc3da 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,6 @@
 {
   "name": "md-data-table",
-  "version": "2.1.0",
+  "version": "2.2.0",
   "homepage": "https://github.com/iamisti/mdDataTable",
   "author":"Istvan Fodor ",
   "main": [
diff --git a/dist/md-data-table.js b/dist/md-data-table.js
index 1899916..e7cbf0d 100644
--- a/dist/md-data-table.js
+++ b/dist/md-data-table.js
@@ -1172,6 +1172,8 @@
      *
      * @param {boolean=} excludeFromColumnSelector disables the column selection for the applied column for the column select feature.
      *
+     * @param {boolean=} hideColumnByDefault sets the target column as unselected for the column select feature.
+     *
      * @example
      * 
      *  
@@ -1200,7 +1202,8 @@
                 columnDefinition: '@',
                 columnSort: '=?',
                 columnFilter: '=?',
-                excludeFromColumnSelector: '=?'
+                excludeFromColumnSelector: '=?',
+                hideColumnByDefault: '=?'
             },
             require: ['^mdtTable'],
             link: function ($scope, element, attrs, ctrl, transclude) {
@@ -1217,7 +1220,7 @@
 
                     ColumnFilterFeature.appendHeaderCellData($scope, cellDataToStore, mdtTableCtrl.dataStorage);
                     ColumnSortFeature.appendHeaderCellData(cellDataToStore, $scope.columnSort);
-                    ColumnSelectorFeature.appendHeaderCellData(cellDataToStore, mdtTableCtrl.columnSelectorFeature, $scope.excludeFromColumnSelector);
+                    ColumnSelectorFeature.appendHeaderCellData(cellDataToStore, mdtTableCtrl.columnSelectorFeature, $scope.excludeFromColumnSelector, $scope.hideColumnByDefault);
 
                     mdtTableCtrl.dataStorage.addHeaderCellData(cellDataToStore);
                 });
@@ -1374,7 +1377,7 @@
                         });
 
                     }else{
-                        element[0].append(val);
+                        element.append(val);
                     }
 
                 }, false);
@@ -1655,7 +1658,7 @@
         };
 
         /**
-         * Set the position of the column filter panel. It's required to attach it to the outer container
+         * Set the position of the column filter panel. It's required to attach it to the outer container 
          * of the component because otherwise some parts of the panel can became partially or fully hidden
          * (e.g.: when table has only one row to show)
          */
@@ -1666,13 +1669,13 @@
                 top: elementPosition.top + 60,
                 left: elementPosition.left
             };
-
+            
             element.css('position', 'absolute');
             element.detach().appendTo('body');
 
             element.css({
-                top: targetMetrics.top + 'px',
-                left: targetMetrics.left + 'px',
+                top: targetMetrics.top + 'px', 
+                left: targetMetrics.left + 'px', 
                 position:'absolute'
             });
         }
@@ -1696,7 +1699,7 @@
          *
          * @param cellDataToStore
          */
-        service.appendHeaderCellData = function(cellDataToStore, columnSelectorFeature, isColumnExcludedFromColumnSelector) {
+        service.appendHeaderCellData = function(cellDataToStore, columnSelectorFeature, isColumnExcludedFromColumnSelector, hideColumnByDefault) {
             if(!columnSelectorFeature.isEnabled){
                 return;
             }
@@ -1708,6 +1711,12 @@
             }else{
                 cellDataToStore.columnSelectorFeature.isExcluded = false;
             }
+
+            if(hideColumnByDefault){
+                cellDataToStore.columnSelectorFeature.isHidden = true;
+            }else{
+                cellDataToStore.columnSelectorFeature.isHidden = false;
+            }
         };
 
         /**
@@ -1740,7 +1749,7 @@
         service.initFeatureHeaderValues = function(headerRowsData, columnSelectorFeature){
             if(columnSelectorFeature && columnSelectorFeature.isEnabled){
                 _.each(headerRowsData, function(item){
-                    item.columnSelectorFeature.isVisible =true;
+                    item.columnSelectorFeature.isVisible = !item.columnSelectorFeature.isHidden;
                 });
             }
         };
@@ -2243,6 +2252,7 @@
 
                 $scope.headerRowsData = _.map($scope.dataStorage.header, function(item){
                     //excluded content should also be in, since we use the index of the array to apply the changes. Do not exclude them.
+
                     return {
                         columnName: item.columnName,
                         isVisible: item.columnSelectorFeature.isVisible,
diff --git a/docs/js/docs-setup.js b/docs/js/docs-setup.js
index e35368a..98e1ba6 100644
--- a/docs/js/docs-setup.js
+++ b/docs/js/docs-setup.js
@@ -19,7 +19,7 @@ NG_DOCS={
       "type": "directive",
       "moduleName": "mdtColumn",
       "shortDescription": "Representing a header column cell which should be placed inside mdt-header-row element directive.",
-      "keywords": "activate affect align align-rule alignrule api applied array assignable cell cells checkbox chips clicking column column-definition columndefinition columnfilter columnselectorexcludedefault columnsort comparator compare compared content ctrl data default defines directive disables display displays don dropdown element excludefromcolumnselector false feature filter filtertype function gross header hover icon inside left mdt-header-row mdtcolumn mdttable ng-repeat object objects optional options order parameters passed placeholder placeholdertext price product products promise properties provided representing required resolves result return reverse rotate row select selected selection sets settings sort sorted sorting strings target text tooltip transforms true type types unselected user values valuesprovidercallback valuestransformercallback visually"
+      "keywords": "activate affect align align-rule alignrule api applied array assignable cell cells checkbox chips clicking column column-definition columndefinition columnfilter columnsort comparator compare compared content ctrl data default defines directive disables display displays don dropdown element excludefromcolumnselector false feature filter filtertype function gross header hidecolumnbydefault hover icon inside left mdt-header-row mdtcolumn mdttable ng-repeat object objects optional options order parameters passed placeholder placeholdertext price product products promise properties provided representing required resolves result return reverse rotate row select selected selection sets settings sort sorted sorting strings target text tooltip transforms true type types unselected user values valuesprovidercallback valuestransformercallback visually"
     },
     {
       "section": "api",
diff --git a/docs/partials/api/mdtColumn.html b/docs/partials/api/mdtColumn.html
index 2db287d..bc30bc6 100644
--- a/docs/partials/api/mdtColumn.html
+++ b/docs/partials/api/mdtColumn.html
@@ -16,7 +16,7 @@ 

Usage

[column-filter="{object}"] [column-definition="{string}"] [exclude-from-column-selector="{boolean}"] - [column-selector-exclude-default="{boolean}"]> + [hide-column-by-default="{boolean}"]> </mdt-column>

Parameters

ParamTypeDetails
alignRule
(optional)
string

align cell content. This settings will have affect on each data cells in the same column (e.g. every x.th cell in every row).

@@ -42,7 +42,7 @@

Parameters

string

displays a tooltip on hover.

excludeFromColumnSelector
(optional)
boolean

disables the column selection for the applied column for the column select feature.

-
columnSelectorExcludeDefault
(optional)
boolean

sets the target column as unselected for the column select feature.

+
hideColumnByDefault
(optional)
boolean

sets the target column as unselected for the column select feature.

Example

diff --git a/package.json b/package.json
index 5f98668..2bf1455 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "md-data-table",
-  "version": "2.1.0",
+  "version": "2.2.0",
   "author": "Istvan Fodor ",
   "registry": "github",
   "repository": {