bwt-datatable icon indicating copy to clipboard operation
bwt-datatable copied to clipboard

Select/Deselect All checkbox broken

Open Tri-Vi opened this issue 7 years ago • 4 comments

Problem: Select All checkbox functionality is currently not working. Does any one experience with this issue? Is there a way to fix this issue?

Tri-Vi avatar Nov 20 '18 20:11 Tri-Vi

@Tri-Vi Hi. Can you show me how you use a table? It looks like you have problems with implementation or with ids. If we are using same id few times all checkboxes could be selected/deselected

dhrytsenko avatar Mar 27 '19 19:03 dhrytsenko

@dhrytsenko: I think I figured out why the selectAll checkBox does not toggle all other checkboxes.

This is the toggleAll function from bower_components/btw-datatable/bwt-datatable.html

toggleAll: function(){
     // Modified Code
     var allChecked = this._allChecked();
     this.data.forEach(function(item){
	if(allChecked){
		this.deselect(item);
	}else{
		this.select(item);
	}
     }.bind(this));

     // Original Code
     // var triggeredEvent = this._fireCustomEvent(this, "toggle-all", {});
     // if(triggeredEvent.defaultPrevented){
     // 	var allChecked = this._allChecked();
     // 	this.data.forEach(function(item){
     // 		if(allChecked){
     // 			this.deselect(item);
     // 		}else{
     // 			this.select(item);
     // 		}
     // 	}.bind(this));
     // }
}

the triggeredEvent does not get called so I removed that customEvent and use the code inside the if function.

Tri-Vi avatar Mar 27 '19 19:03 Tri-Vi

@Tri-Vi could you show me implementation of your table? It should work good without those changes from your side

dhrytsenko avatar Apr 02 '19 16:04 dhrytsenko

@dhrytsenko : FYI

<paper-datatable-card
      id="datatableCard"
      progress
      _sort-direction="DESC"
      _sort-property="stateChanged"
      header="Reports"
      data-source="{{dataSource}}"
      id-property="report_id">

      <div slot="toolbar-main">
        <paper-button alt="Filter" on-tap="toggleFilter">
          <iron-icon icon="filter-list"></iron-icon>
          Filter
        </paper-button>
      </div>
      <template is="dom-if" if="[[showFilter]]">
        <reports-filter style="width: 100%" query-params="{{queryParams}}">
        </reports-filter>
      </template>

      <paper-datatable
        id="datatable"
        on-sort="sort"
        selectable
        multi-selection>
        <paper-datatable-column
          sortable
          header="O P"
          type="Object"
          format-value="[[_displayP]]"
          data-sortcolumn="order.p.name"
          property="order">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Institution"
          type="Object"
          data-sortcolumn="order.institution.name"
          format-value="[[_displayInstitution]]"
          property="order">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Pa Id "
          type="Object"
          data-sortcolumn="order.pa.id"
          format-value="[[_displayPa]]"
          property="order">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Sample ID"
          type="Object"
          data-sortcolumn="order.sample.id"
          format-value="[[_displaySample]]"
          property="order">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Test"
          type="Object"
          data-sortcolumn="order.test.name"
          format-value="[[_displayTest]]"
          property="order">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Request"
          type="Object"
          data-sortcolumn="order.request.name"
          format-value="[[_displayRequest]]"
          property="order">
        </paper-datatable-column>
        <paper-datatable-column
          header="Indication(s)"
          data-sortcolumn="order.indications"
          property="order">
          <template>
            <span style="text-transform: capitalize">[[_displayIndication(value)]]</span>
          </template>
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Report Id"
          type="Object"
          format-value="[[_displayReport]]"
          property="report">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          sorted
          sort-direction="desc"
          header="Report Date"
          format-value="[[_displayDate]]"
          property="stateChanged">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Latest Report"
          type="Boolean"
          property="isLatest">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Report Status"
          type="Object"
          format-value="[[_displayReportStatus]]"
          data-sortcolumn="status"
          property="status">
        </paper-datatable-column>

        <paper-datatable-column
          sortable
          header="Report Type"
          type="String"
          property="type">
        </paper-datatable-column>
        <paper-datatable-column
          sortable
          header="Report State"
          type="String"
          property="state">
        </paper-datatable-column>
      </paper-datatable>
    </paper-datatable-card>

Tri-Vi avatar Apr 02 '19 16:04 Tri-Vi