拉力百分比完成ui组件

时间:2013-08-19 15:47:10

标签: javascript rally appsdk2

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);

1 个答案:

答案 0 :(得分:0)

完成百分比组件以与生产中的Rally相同的方式确定它的颜色(因为SDK和prod共享相同的代码)。如果查看组件使用的模板(found here),您可以看到它使用了HealthColorCalculator。

如果您想更改组件为工具提示着色的方式,您可以使用Ext Override并更改该类的功能以计算您喜欢的颜色