2016-04-17 6 views
1

Я хочу создать приложение, отображающее следующую доску. sample boardПостроить «сюжетную карту с выпуском как плавание» - как бороться с релизом?

Поэтому я создаю пользовательские приложения html, здесь приведен исходный код.

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title>StoryMap</title> 
 

 
    <script type="text/javascript" src="/apps/2.0/sdk-debug.js"></script> 
 

 
    <script type="text/javascript"> 
 
     Rally.onReady(function() { 
 
       Ext.define('mycardcolumnheader', { 
 
    extend: Rally.ui.cardboard.ColumnHeader, 
 
    alias: 'widget.mycardcolumnheader', 
 

 
}); 
 

 
Ext.define('CustomApp', { 
 
    extend: 'Rally.app.App', 
 
    componentCls: 'app', 
 
    launch: function() { 
 

 
     //Fetch tree of items 
 
    // a) starting from item type in picker 
 
    // b) subject to a filter 
 

 
    //The number of columns is related to the number of lowest level PI type items that are found 
 
    //The header must show the top level (from the picker) and all the children 
 
    //The user stories are shown in a vertical line below 
 
    //Might want to introduce the concept of timebox in the vertical direction (for user stories) 
 
    //The cards for the PIs should show the progress bars 
 

 
    var ch = Ext.create('Ext.Container', { 
 
    }); 
 

 
    var dTab = Ext.create('Ext.Container', { 
 
     items: [{ 
 
      xtype: 'rallycardboard', 
 
      types: ['HierarchicalRequirement'], 
 
//    columnConfig: { xtype: 'mycardcolumn', displayField: 'feat', valueField: 'fest' }, 
 
//    attribute: 'ScheduleState' 
 
      attribute: 'Feature', 
 
      rowConfig: { field: 'Release', sortDirection: 'ASC' }, 
 
      enableDragAndDrop: true 
 
     }] 
 
     }); 
 

 
    this.add(dTab); 
 

 
    } 
 
}); 
 

 

 
      Rally.launchApp('CustomApp', { 
 
       name:"StoryMap", 
 
      parentRepos:"" 
 
      }); 
 

 
     }); 
 
    </script> 
 

 

 

 
    <style type="text/css"> 
 
     .app { 
 
    /* Add app styles here */ 
 
} 
 

 
    </style> 
 
</head> 
 
<body> 
 
</body> 
 
</html>

Это очень похоже на то, что я хочу, но все еще есть небольшая ошибка, я не знаю, как это исправить. ошибка в том, что если я выберу родительский проект, на доске появится тот же выпуск на несколько плавающих пловцов. Вот пример. real case example

это, вероятно, потому, что у каждого проекта ралли есть своя версия, и приложение недостаточно умное, чтобы распознать, что все они логически одинаковы.
Если вы создаете Release 1 на уровне родительского проекта и каскадируете Release в дочерние проекты, Rally фактически создает 3 выпуска ... 1 для каждого проекта. Наше приложение, как известно, знает, что если имя выпуска, дата начала и конечные даты совпадают, их следует рассматривать как один выпуск. Похоже, что в приложении нет этой логики.

Но как это исправить? кто-нибудь может взглянуть?

ответ

0

Это своего рода ожидаемое поведение, в основном из-за того, что мы никогда не строили способность платы «ведро» подобных выпусков в свои строки или столбцы.

Вы, вероятно, нужно переопределить метод isMatchingRecord на Rally.ui.cardboard.row.Row, чтобы иметь возможность ведро строки:

//add this at the top of your app 
Ext.define('Rally.ui.cardboard.row.RowFix', { 
    override: 'Rally.ui.cardboard.row.Row', 

    isMatchingRecord: function(record) { 
     return this.callParent(arguments) || 
      this.getValue().Name === (record.get('Release') && record.get('Release').Name); 
    } 
}); 
+0

Да, это группа то же имя выпуск в один ряд. Но одна маленькая вещь: если пользовательская история не была запланирована в какой-либо выпуск, то потеряла строку под названием «NONE», можете ли вы изменить этот метод, чтобы добавить строку NONE назад? –

+0

Я обновил фрагмент кода выше и, похоже, работал для меня ... –