2014-01-08 3 views
1

Используя пример от https://help.rallydev.com/apps/2.0rc2/doc/#!/guide/timebox_filtering для необходимого приложения времени, как мне преобразовать вид карты в сетку?Rally SDK 2 Сетка с фильтрами Timebox

Это базовый код:

Ext.define('Rally.guide.ReleaseFilteredBoard', { 
    extend: 'Rally.app.TimeboxScopedApp', 
    scopeType: 'release', 

    onScopeChange: function(scope) { 
     if(!this.board) { 
      this.board = this.add({ 
       xtype: 'rallycardboard', 
       storeConfig: { 
        filters: [scope.getQueryFilter()] 
       } 
      }); 
     } else { 
      this.board.refresh({ 
       storeConfig: { 
        filters: [scope.getQueryFilter()] 
       } 
      }); 
     } 
    } 
}); 

кажется, что я могу просто изменить xtype к «rallygrid» и на основании документации, он должен работать, но это, кажется, нуждается в модели, определенной, а также - как Я получаю детали модели из области времени для подачи в сетку?

ответ

0

Возможно, вы захотите проверить код примера для Rally.ui.grid.Grid.

Вот краткий пример того, как можно было бы применить Timebox фильтр к сетке:

Ext.define('CustomApp', { 
    extend: 'Rally.app.App', 
    componentCls: 'app', 
    grid: null, 

    launch: function() { 

     var filters = []; 
     var timeboxScope = this.getContext().getTimeboxScope(); 

     if(timeboxScope) { 
      filters.push(timeboxScope.getQueryFilter()); 
     } 

     this.getFilteredStoryModel(filters);    
    }, 

    onTimeboxScopeChange: function(newTimeboxScope) {    
     var newFilters = []; 
     var updatedTimeboxScope = this.getContext().getTimeboxScope(); 
     if (this.grid) { 
      this.grid.destroy(); 
     }     
     if (updatedTimeboxScope) { 
      newFilters.push(newTimeboxScope.getQueryFilter()); 
     } 
     this.getFilteredStoryModel(newFilters); 
    }, 

    getFilteredStoryModel: function(queryFilters) { 
     Rally.data.ModelFactory.getModel({ 
      type: 'UserStory', 
      success: function(model) { 
       this.grid = this.add({ 
        xtype: 'rallygrid', 
        model: model, 
        columnCfgs: [ 
         'FormattedID', 
         'Name', 
         'Owner', 
         'Iteration' 
        ], 
        storeConfig: { 
         filters: queryFilters 
        } 
       }); 
      }, 
      scope: this 
     });     
    } 
}); 

Чтобы показать timebox фильтр, выберите тип фильтра вы хотите, когда первая настройку пользовательских страниц в ралли. Обратный вызов «onTimeboxScopeChange» реагирует на события, вызванные установкой селектора времени и настроенными в самом контейнере пользовательской страницы. Код не требуется для настройки селектора timebox, а вы делаете это с помощью ралли UI при создании новой пользовательской страницы:

New Custom Page

Выберите тип фильтра (Release или итерацию):

Select Filter Type

(1) Обратите внимание, что фильтр отображается в контейнере «Моя новая пользовательская страница». (2) Любое приложение, которое вы добавляете в "Мой Новый пользовательский страницу" будет иметь фильтр timebox доступный/применяется:

Custom Page with Timebox Filter

Добавление пользовательских HTML App:

Add Custom HTML

Вставить в Код и Сохранить:

Paste In HTML/Javascript Code

Итерация фильтруется Сетка:

Iteration-filtered Grid

В качестве альтернативы, если вы не хотите timebox фильтр, который относится ко всему контейнеру Пользовательские страницы, вы можете выбрать для использования Rally.ui.combobox.ReleaseComboBox или Rally.ui.combobox.IterationComboBox

В вашей самой App кода, и управлять фильтрации через обратные вызовы от любого из этих компонентов. Эта фильтрация будет полностью «внутри-приложения» и не будет опираться на компонент Timebox на любой странице.

+0

Отличный пример, спасибо - гораздо яснее теперь, как мне получить фильтр для отображения под этим подходом? –

+0

Ответ отредактирован с помощью скриншотов, показывающих, как настроить фильтр. –

Смежные вопросы