Новая версия ExtJS 3.3

    Это наиболее полное обновление за последнее время. Большинство изменений коснулись повышению стабильности и скорости работы. Были добавлены три новых компонента и произведено более 200 мелких исправлений. Разработчики уверяют, что полностью сохранилась обратная совместимость с предыдущими версиями и большинство уже написанных Вами приложений не требуют изменений.

    PivotGrid

    PivotGrid — это новый инструмент для отображения обобщённых данных в понятном формате. Вот тут можно посмотреть его в действии.

    PivotGrid

    Calendar Components

    Компонент календаря позволит Вам отображать события за день, неделю и месяц. Смотрите сами.

    Calendar Components

    ActionColumn

    Это новый тип столбца в Grid, в который можно помещать иконки и вешать на них любые функции. Вот тут можно посмотреть пример.

    ActionColumn

    И ещё

    • Более 200 исправлений и улучшений;
    • Обновился Air Pack для работы с Adobe AIR;
    • Немножко обновилась документация.
    Новый релиз можно скачать тут.
    Share post

    Comments 55

      0
      Интересно, миграция с 2.3 на 3.3 много геморроя вызовет?
        +1
        Смотря какие компоненты использовали, но в любом случае 2.3 и 3.3 — две большие разницы, наверное без вызова не обойдетесь.
          –1
          Логику менять вряд ли придется, но если проект большой, то повозитесь. Но лучше придерживаться правила, если что-то работает, то ломать ради обновления без потребности в новых плюшках — не стоит.
            +1
            Отвалятся некоторые мелочи, иногда критические. В общем, надо пробовать. Мы с 2.2 на 3.2 перешли, почти месяц вычищали глюки, но ничего мегаглобального
            +2
            Плюшки от рафаэля то появились уже? А то вроде как в сенче обещали векторы, а пока я вижу все тот же extJS.
              0
              Печально, что даже древнюю багу с этим не исправили…
                0
                Monkey Patching — наше все.
                  0
                  А в чем бага?
                    0
                    Там есть красивый баг, дважды кликнуть по строке, чтобы открыть редактор. Затем не закрывая редактор — поизменяйте размеры колонок…
                  0
                  Большинство изменений коснулись повышению стабильности и скорости работы

                  И ActionColumn, Вах молодцы.
                    0
                    круть, Air тоже обновился!
                      0
                      Ох и сырой же pivot…
                        0
                        Кстати, и притормаживает…
                        0
                        Если я не ошибаюсь эти компоненты по крайней мере Pivot и Calendar точно были в версии 3.2, а ActionColumn был в расширениях.
                          0
                          Пивота в 3.2 не было
                            0
                            Не было.
                              0
                              ммм действительно нету(( блин где же я его видел?
                                0
                                в бете 3.3?
                              +2
                              Когда уже сделают полноценный grid с блэкджеком и многоуровневыми заголовками, с фиксированными столбцами, с редактируемыми ячейками, с деревом и группированием, с бесстраничной прокруткой (как в dojo), и чтобы всё это было в одном компоненте, а не в нескольких несовместимых между собой плагинах и view, которые хороши только для красивых примеров, а в RL приходится сочинять громоздкие велосипеды, которые перестают работать после очередного обновления.
                                0
                                И ещё хочу нативную интеграцию с Zend Framework (опять же, как в dojo :)
                                0
                                > полностью сохранилась обратная совместимость с предыдущими версиями и большинство уже написанных Вами приложений не требуют изменений.

                                противоречит друг другу :)
                                  0
                                  Врут. Уже начиная с Ext.onReady сталкиваюсь с несовместимостями.
                                    0
                                    О, не заметил вашего поста. Я вообще в прострации сижу. Как-то непонятно работает Ext.onReady.
                                    А они даже не удосужились по ходу объяснить в чем прикол.
                                      0
                                      Удосужились. Ищите в форуме. Если кратко, вызов extjs надо размещать между head
                                        0
                                        Я уже это понял.
                                        На форуме? Почему на форуме я это должен искать? Вы вообще можете объяснить почему такие важные вещи надо искать на форуме?
                                          0
                                          Потому-что этот проект так работает. Форум у них является центральной точкой коммунити, где можно получить ответы на все вопросы. В частности вопрос с onready был решен на форуме чуть ли не в первые минуты после релиза ;-)
                                            0
                                            Я не посещаю форум extjs. Но не в этом дело, дело в том что это фундаментальная конструкция и имеет место быть в change log.
                                              0
                                              Хотя нет конечно, я посещаю форум, достаточно часто, но через гугл, а гугл, когда я искал, не нашел на форуме того что мне нужно. Видимо я был невнимателен, но про change log все равно мнения не изменил.
                                      0
                                      Так написано в официальном пресс-релизе ;)
                                      +1
                                      Я не совсем понял условия лицензирования этой библиотеки. Как я понимаю для коммерческого использование не под GPLv3 надо платить за лицензию? Или эти ограничения накалываются только на саму библиотеку, а не на то, что было создао при помощи этой библиотеки?
                                        0
                                        Если вы собираетесь делать коммерческое приложение и не будете распространять его исходники, то вы должны купить лицензию на текущую линейку продуктов extjs, например на 3.х
                                          0
                                          тогда такой вопрос — каким образом можно не распространять исходники — они же все в браузере :D Так же, в GPLv2 исходники нужно было давать только тем кому я продаю/даю в пользование, в GPLv3 все так же?
                                            0
                                            А как же backend? Вы ведь всё равно будете использовать backend, например на php. И вы его тоже будете распространять?
                                              0
                                              А это уже не часть того продукта. Backend это просто API в моем случае.
                                                0
                                                Еще, как например в моем случае, да и вообще во многих других, системы бывают закрытыми частично. Т.е. доступ только авторизованным пользователям. В этом случае кто угодно уже не может скачать исходники.
                                                  0
                                                  А кому угодно и не надо их скачивать. Согласно лицензии я должен дать доступ или обязаться дать доступ к исходникам только своим пользователям, а не всем на лево и на право.
                                                    0
                                                    эээ… Ну в таком случае все таки backend тоже относится к части продукта… Серверная часть все таки тоже часть приложения… У меня еще например БД есть…
                                        0
                                        Супер, обновления это всегда хорошо, особенно если это касается скорости работы, особенно если это extjs.
                                          0
                                          недавно мне приходила рассылка Sencha, так там именно для Sencha была анонсирована такая возможность, как использование associations в модели, чего на мой взгляд очень ext-у не хватает, даже расстроился слегка, когда увидел новый релиз и не увидел этой возможности
                                            0
                                            У меня такое чувство, что все обещанные «вкусности» они берегут до 4.0 версии
                                            0
                                            Пытался подрубить сейчас новую версию к прожекту… В общем нифига не получилось. Какая-то непонятная проблема с Ext.onReady… Работает уж точно не так как в 3.1…
                                              0
                                              Не пойму, что за нахер.

                                              Ext.onReady срабатывает до того как все скрипты были загружены… :( пипец какой-то… Паника паника… :)
                                                0
                                                Вы как малый ребенок. Вопросы задаете в хабре а не на оффоруме, где они уже разжеваны.
                                                  0
                                                  Я даже обсуждать это не буду, просто спрошу — Где вы вопрос видели?
                                              0
                                              Показали бы замеры скорости, раз уж
                                              Большинство изменений коснулись повышению стабильности и скорости работы

                                              а то как-то голословно.
                                                0
                                                Разобрался в чем проблема была с Ext.onReady… Так уж повелось что в проекте над которым я работаю, все скрипты подключались непосредственно в body, в extjs 3.3 почему-то Ext.onReady срабатывает непосредственно в момент загрузки данного скрипта, а не всей страницы в целом, если же поместить блок со скриптами в head, то вроде бы все нормально.
                                                В 3.1 соответсвенно, такой проблемы не было…
                                                  0
                                                  я никак не могу добиться от сенчи одной функциональности( разговор идет за компонент grid ). даже не знаю, по факту мне нужно показывать разные иконки в зависимости от значения в Store

                                                  Например:

                                                  есть Store:

                                                  var oReasonStore = new Ext.data.JsonStore({
                                                  autoLoad: true,
                                                  url: '/doRemote/',
                                                  baseParams: {'_command': 'remoteGetReason'},
                                                  root: 'data',
                                                  fields: [
                                                  {name: 'rsn_id'},
                                                  {name: 'rsn_code'},
                                                  {name: 'rsn_descr'},
                                                  {name: 'rsn_image'},
                                                  ]
                                                  })

                                                  //// Есть грид:

                                                  var oReasonGrid = new Ext.grid.GridPanel({
                                                  store: oReasonStore,
                                                  sortable: true,
                                                  columns: [
                                                  {dataIndex: ''rsn_code', header: 'Статус Код', sortable: true },
                                                  {dataIndex: ''rsn_descr', header: 'Статус Наименование', sortable: true },
                                                  {dataIndex: ''rsn_image', header: 'Статус Картинка', sortable: true }
                                                  ]
                                                  })

                                                  Как мне заставить чтоб в rsn_image поставилась нужная картинка?

                                                  Сразу скажу любителям — я хочу нормальный способ, вариант через renderer не интересует( return — имхо не кашерно совсем так делать ((( ), также не интересует вариант через css классы ( так как их до этого нужно создать для каждой картинки отдельный класс — у меня в иконках хочется видеть тип файла — у меня иконок примерно 50-60 на каждый тип файла), оптимально было бы динамическое изменение параметра icon, но так нельзя ((((

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

                                                  Я даже наверно погорячился и согласен на вариант с рендерер, если только можно будет ставить тултип тоже помимо картинки.

                                                  Спасибо простите что запостил сюда.
                                                    0
                                                    Предлагаю всё-таки использовать render вот по такому алгоритму:
                                                    1. В rsn_image вы помещаете имя картинки.
                                                    2. Далее добавляете вызов рендера:
                                                    {dataIndex: ''rsn_image', header: 'Статус Картинка', sortable: true, renderer: renderIcon}
                                                    3. И создаёте функцию рендера:
                                                    function renderIcon(val) {
                                                    return '<img src="' + val + '">';
                                                    }

                                                      0
                                                      а тултипы как сделать то? вот ведь вопрос.
                                                        0
                                                        см. ниже… :)
                                                      0
                                                      ActionColumn… Там конечно action лишний, но почти то что нужно
                                                        0
                                                        хотя там не совсем очевидно как без css поменять иконку…
                                                        0
                                                        renderer: function(val, meta, rc) {
                                                                 return "<img src='"+ rc.get('icon') +".png' ext:qtip='"+ rc.get('tooltip') +"' />";
                                                        }
                                                        
                                                        0
                                                        блин я же думал об этом. но я думал мне еще нуджно было что-то пускануть чтоб оно заработаЛо)
                                                          0
                                                          Для того чтобы парсился аттрибут ext:qtip, надо вот это
                                                          Ext.QuickTips.init();

                                                        Only users with full accounts can post comments. Log in, please.