Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Ext.Window in Container Viewport (https://javascript.ru/forum/extjs/54541-ext-window-container-viewport.html)

potkin 21.03.2015 22:27

Ext.Window in Container Viewport
 
В ExtJS 5.х наблюдаются глюки.
Например, окошко расположенное в контейнере "Viewport" нельзя приблизить к левой и верхней панели!
Вот только полюбуйтесь:
http://jsfiddle.net/esklad24/cty45rkq/1/

Попробуйте приблизить окошко к левой панели типа "accordion" или к верхнему ТулБару - не получится! Окошко отскакивает на длину == ширине левой панели и высоте верхнего Тулбара!
Это пипец какой-то!

novikov 22.03.2015 13:08

А должно быть так?

http://jsfiddle.net/odibo/haqLyuou/1/

potkin 22.03.2015 18:09

novikov,
Скролинга нет!
Если пользователь с планшета заходит с разрешением 800*600, то должен быть обязательно скролинг. А его нет.
В ExtJS 4.07 скролинг работает. Пример (лень править левую панель)
http://jsfiddle.net/esklad24/gcuu8wv6/

novikov 22.03.2015 20:20

Мда, дела...

potkin 22.03.2015 21:22

Этот глюк наблюдается с версии ExtJS выше 4.07
Может Вы в курсе: если на форуме Сенчи написать, может поставят на исправление?

novikov 23.03.2015 08:05

Да, можно запостить сюда:
http://www.sencha.com/forum/forumdis...130-Ext-5-Bugs
Нужно учесть правила:
http://www.sencha.com/forum/showthre...o-Report-A-Bug
и дать ссылки на пример.
Если повезёт, исправят в следующем обновлении или подскажут, как делать.

potkin 26.03.2015 00:28

novikov,
Написал в форуме Сенчи и уже ответили. Вот тут:
http://www.sencha.com/forum/showthre...nel.&p=1093416

Вот только я не понял про версию "5.1.1" что он имел в виду ...

novikov 26.03.2015 11:59

"Ночная сборка" - это самый последний вариант библиотеки. Они же постоянно фиксят баги. Эта версию, кажется, могут получить обладатели платной версии.

Pavel M. 26.03.2015 16:49

Цитата:

Сообщение от potkin
Попробуйте приблизить окошко к левой панели типа "accordion" или к верхнему ТулБару - не получится! Окошко отскакивает на длину == ширине левой панели и высоте верхнего Тулбара!
Это пипец какой-то!

можно отключить
constrainHeader: true,
constrain: true,

и добавить свои ограничения

win.on('move', function (win, x, y) {
        if (y < 0 || x < 0) {
            win.setPosition(x < 0 ? 0 : x, y < 0 ? 0 : y);              
        }
});


http://jsfiddle.net/cty45rkq/2/

potkin 26.03.2015 19:21

Pavel M.,
Круто! Спасибо!

П.С. Но я считаю, что это баг в ExtJS, который надо исправить.

potkin 27.03.2015 00:02

Всё равно глюки...
Попробуйте развернуть Окно на весь экран (((

Pavel M. 27.03.2015 12:11

Цитата:

Сообщение от potkin (Сообщение 363490)
Всё равно глюки...
Попробуйте развернуть Окно на весь экран (((

можно и это поправить самому
добавить обработчики

win.on('maximize', function () {
     win.setPosition(0, 0);              
});
win.on('restore', function () {
     win.setPosition(0, 0);              
});

http://jsfiddle.net/cty45rkq/4/

bastrakov 27.03.2015 16:35

буквально сегодня накатил на 5.0.1 - 5.1.0.
не ну так-то почти все заработало, только поправил листенеры селектов для комбо. но окно что-то как-то жутко глючит на краях экрана, да.
так-то у меня изначально защита была от ухода за пределы и фикс размеров, поэтому и не заметил сразу.

ну посмотрим как жить будет.

potkin 28.03.2015 13:25

Pavel M.,
Да уж ...
Раз такая пьянка пошла, то можете помочь ещё с одни событием:
При изменение размеров браузера, максимизированное окно не меняет размер. Можно как-то изменять размер максимизированно окна?

novikov 29.03.2015 12:40

Цитата:

Сообщение от potkin (Сообщение 363664)
Pavel M.,
Да уж ...
Раз такая пьянка пошла, то можете помочь ещё с одни событием:
При изменение размеров браузера, максимизированное окно не меняет размер. Можно как-то изменять размер максимизированно окна?

Похожий баг:
http://www.sencha.com/forum/showthre...ized-collapsed

Обходной манёвр:

Ext.application({
    name : 'Fiddle',

    launch : function() {
        Ext.widget({
            xtype: 'viewport',
            renderTo: Ext.getBody(),
            layout: 'border',
            items: [
                {
                    xtype: 'panel',
                    region: 'west',
                    title: 'Menu',
                    width: 100,
                    frame: true
                },
                {
                    xtype: 'panel',
                    region: 'center',
                    items: [
                        {
                            xtype: 'window',
                            title: 'I am a maximized window',
                            autoShow: true,
                            width: 350, 
                            height: 250,
                            maximizable: true,
                            resizable: true,
                            maximized: true,
                            contrain: true,
                            constrainHeader: true
                        }
                    ],
                    listeners: { // <--- здесь
                        resize: function(panel) {
                            panel.down('window').doLayout();
                        }
                    }
                }
           ]
        });
    }
});


https://fiddle.sencha.com/#fiddle/kfd

bastrakov 30.03.2015 08:34

Цитата:

Сообщение от potkin (Сообщение 363664)
Pavel M.,
При изменение размеров браузера, максимизированное окно не меняет размер. Можно как-то изменять размер максимизированно окна?

похоже на какой-то хак.
а зачем менять размер окна в зависимости от размера системного окна?
окно размером в браузер - это вьюпорт.


Часовой пояс GMT +3, время: 18:29.