2013-08-19 99 views
0

Rally percent done by story count and plan estimate color coding algorithm相关,但在这里询问未答复的部分。拉力赛完成百分比组件

SDK 2.0中的Percent Done ui component根据rally使用的算法(它仅基于百分比的颜色代码)不着色。有没有什么方法可以提供颜色编码功能或渲染功能来改变这个功能与拉力赛的阵容?谢谢!

[编辑] - 试图重写现有的功能,而不使用百分比进行生成UI组件

Ext.define('Custom.PercentDone', { 
    requires: ['Rally.ui.renderer.template.progressbar.PortfolioItemPercentDoneTemplate', 'Rally.util.HealthColorCalculator'], 
    extend : 'Rally.ui.PercentDone', 
    alias : 'widget.cpercentdone', 


    config: { 
     record: null 
    }, 

    constructor: function(config) { 
     this.initConfig(config); 
     config = this.config; 
     this.renderTpl = Ext.create('Custom.renderer.template.progressbar.PercentDoneTemplate', { 
      calculateColorFn: Ext.bind(function(recordData) { 
       console.log('called my custom coloring fn'); 
       var colorObject = Rally.util.HealthColorCalculator.calculateHealthColorForPortfolioItemData(config.record, config.percentDoneName); 
       return colorObject.hex; 
      }, this) 
     }); 
     this.renderData = config; 
     this.mergeConfig(config); 
     this.callParent([this.config]); 
    } 
}); 

App.down('#subContainer').add({ 
    xtype: 'cpercentdone', 
    record: item, 
    useStoryCount: !App.estimate 
}); 

我不能完全得到正常的工作记录 - 我想传递的信息, calculateHealthColorForPortfolioItemData函数,但我不能完全弄清楚什么参数正在传递和在哪里,所以我不知道该设置什么和在哪里。

我也尝试使用Ext.override:

  var percentDone = Ext.create('Rally.ui.PercentDone', { 
       record: item, 
       percentDoneName: 'PercentDoneByStoryCount' 
      }); 
      var tpl = percentDone.renderTpl; 
      tpl.calculateColorFn = function(recordData) { 
       var colorObject = Rally.util.HealthColorCalculator.calculateHealthColorForPortfolioItemData(percentDone.record, percentDone.percentDoneName); 
       return colorObject.hex; 
      }; 

      Ext.override(percentDone, { 
       renderTpl: tpl 
      }); 
      App.down('#subContainer').add(percentDone); 
+0

在SDK中的代码应该是一样的代码在生产中。 (他们共享相同的代码)是否存在一种情况,其中一种颜色与另一种颜色不同? 这就是说,你可以使组件颜色的酒吧,但是你喜欢。 –

+0

已完成百分比的UI组件仅使用百分比来确定颜色,而许多拉力赛应用中使用的组件使用其他数据(如开始和结束日期)来确定它是否正在进行,完成,距离完成还有多远,等等。你如何使组件颜色成为你想要的颜色?我一直没有找到方法 –

回答

0

做组件的百分比决定了它会是什么颜色以同样的方式,因为我们在生产汽车拉力赛做(因为SDK和督促共享相同码)。如果您查看组件使用的模板(found here),您可以看到它使用了HealthColorCalculator。

如果要更改组件颜色的提示,您可以使用Ext Override和更改类的功能来计算颜色的方式,只要你喜欢

+0

明白了。并不明白。它如何以相同的方式计算颜色,使用相同的算法,只需要一个百分比的数字而没有记录上的信息(但着色算法依赖于许多不同的信息,其中之一是PERCENTCOMPLETE)?再看看这个算法,当仅提供percentComplete时(事实上它需要一个配置对象),似乎没有特殊情况。对不起,我知道你知道所有这些,我不明白他们是如何没有记录与完成百分比ui cmp相关联时。 –

+1

你检查了这一行模板调用[calculateHealthColorForPortfolioItemData](https://prod.help.help.rallydev.com/apps/2.0rc1/doc/source/HealthColorCalculator.html#Rally-util-HealthColorCalculator-method-calculateHealthColorForPortfolioItemData) ? 如果你看它有模板中的整个记录​​。该模板通过记录来计算哪个抓取字段。 (或者至少我是这样读的) 不用担心寻求帮助。确切地理解你想要弄清楚的东西可能是一个挑战,所以有时需要一些尝试。 –

+0

啊是的,我确实看到了这个功能,但是我忘记了它将日期的默认设置为今天,如果它们没有提供。我现在看到它。谢谢! –