You found a bug! We've classified it as
EXTJS-15459
.
We encourage you to continue the discussion and to find an acceptable workaround while we work on a permanent fix.
-
Ext JS Premium Member
Ext.ux.BoxReorderer on Accordion in Container with fixed height and autoScroll
It`s not possible to sort accordion-items in a list-style when the containing panel is fixed height, if no height is set it works fine.
In my Application i have something similar (way more complex) within a Tab that is within a border-layout , broke it down in the fiddle without all my stuff to make it easier to see/debug, and here also found that it must be related to the fact that there is a height set there.
Failure occurs when the list is scrolled down about the height of the current Browser`s Window, above this fold everything is fine.
See a fiddle here, this still can be reproduced with latest ExtJs 5, just change the Library in the Fiddle.
https://fiddle.sencha.com/#fiddle/b3v
Any help what to change would be great.
There are some notes in the fiddle, too.
Thanks,
Alex
-
Thanks for the report! I have opened a bug in our bug tracker.
-
Ext JS Premium Member
Thanks,
b.t.w., i found the same issue/bug on the tab-reorderer happen.
After nearly 2 days I found a (probably quite ugly) solution for my scenarios by replacing big parts of of the BoxReorderer Code - nearly a whole rewrite.
There were issues in the mentioned getNewIndex function (getBox -> getLocalX/Y fits better) and some more ... can't remember all changes right now.
Also the scrolling went a bit crazy in longer lists / tab panels with many tabs. Fixed this by putting an own implementation of the autoScroll function into the DD created by the BoxReorderer.
Alex
-
Sencha User
Does anyone have a solution for this? It's still happening in version 6.2.1
-
Sencha User
This error occurs by cachedViewportSize.
My override in Ext 6.2.0 (directly to BoxReorderer)
Code:
Ext.define('Ext.override.ux.BoxReorderer', {
override: 'Ext.ux.BoxReorderer',
onDrag: function(e) {
var me = this,
newIndex;
me.cachedViewportSize[me.dim] = 9999; // !!! Hack
newIndex = me.getNewIndex(e.getPoint());
if ((newIndex !== undefined)) {
me.reorderer.fireEvent('Drag', me, me.container, me.dragCmp, me.startIndex, me.curIndex);
me.doSwap(newIndex);
}
}
});
or basically fixing, this thread (DD.override) is useful.
https://www.sencha.com/forum/showthr...el-with-scroll