telerik / kendo-ui-core

An HTML5, jQuery-based widget library for building modern web apps.
http://www.telerik.com/kendo-ui
Other
2.54k stars 1.91k forks source link

Spreadsheet range sort doesn't move disabled cell state [fix included]. #3432

Open chriseaton opened 7 years ago

chriseaton commented 7 years ago

Bug report

Initial forum post here.

When certain cells are disabled within a sheet, and those cells sit in a filter, sorting the filter applies the sort, but the disabled state cell stays in its absolute location, rather than following the cell that was sorted.

Fix Below

Reproduction of the problem

See dojo here: https://dojo.telerik.com/OdORurud/4 You can see I've disabled the top 2 cells in the ID column, now apply a sort from the filter menu. Notice the enable state doesn't follow the cell it was applied on, instead, it stays where it was initially loaded.

Current behavior

The enable state stays in its original loaded position.

Expected/desired behavior

The enable state should follow the cell contents it was applied to.

Environment

Fix

The fix is to change the property bag's "sortable" property on the 'enable' object to "true" instead of "false".

File: kendo.spreadsheet.js AMD Module: spreadsheet/propertybag Class: kendo.spreadsheet.PropertyBag

Change:

{
   property: Property,
   name: 'enable',
   value: null,
   sortable: false,
   serializable: true
}

To:

{
   property: Property,
   name: 'enable',
   value: null,
   sortable: true,
   serializable: true
}
mishoo commented 7 years ago

I'm not sure we should allow sorting a range that contains disabled cells? Checked Google Sheets and it shows a warning, but it allows me to proceed. The protection attribute remains in place (it doesn't move along with the data).

chriseaton commented 7 years ago

I can understand that perspective if you're comparing a cell's read-only state to Excel or Sheet's "sheet and range protection" feature. I don't necessarily see them as the same because, although they provide a similar end effect, the "protection" feature of those tools are applied on a sheet or range level, not per-cell.

Even if you discard my comparison, and want to treat them as the same feature, I would suggest this is an opportunity to provide a better UX than either Excel or Sheets - you will find articles on the web noting this as a limitation of that software (not a feature). The cost of doing better is just switching a boolean from false to true.

zdravkov commented 4 years ago

also reported in ticket: 1443185

martintabakov commented 1 year ago

Also reported in #1604299