2015-10-12 109 views
1

我在Sonar中创建了一个自定义小部件来显示特定项目的一些数据。列表中有3个项目,只有其中一个应显示此小部件。如何在SonarQube中设置自定义小部件的范围?

我试着设置Widget Scope @WidgetScope(value = PROJECT)。也试过不设置任何东西,因为默认范围应该是Project

我正在使用v5.1.2 SonarQube。

但它仍然显示在所有项目上有相同的数据。

这里是代码我使用:

import org.sonar.api.web.AbstractRubyTemplate; 
import org.sonar.api.web.Description; 
import org.sonar.api.web.RubyRailsWidget; 
import org.sonar.api.web.UserRole; 
import org.sonar.api.web.WidgetCategory; 
import org.sonar.api.web.WidgetProperties; 
import org.sonar.api.web.WidgetProperty; 
import org.sonar.api.web.WidgetPropertyType; 
import org.sonar.api.web.WidgetScope; 
import org.sonar.api.resources.Project; 
import static org.sonar.api.web.WidgetScope.PROJECT; 


@UserRole(UserRole.USER) 
@Description("An Internal Plugin to display some data in a project") 
@WidgetCategory("some-data Plugin") 
@WidgetScope(value = PROJECT) 
@WidgetProperties({ 
    @WidgetProperty(key = "Index",type=WidgetPropertyType.STRING 
), 
}) 
public class OneMoreRubyWidget extends AbstractRubyTemplate implements RubyRailsWidget { 

    @Override 
    public String getId() { 
    return "SomeData"; 
    } 

    @Override 
    public String getTitle() { 
    return "SomeData"; 
    } 

    protected String getTemplatePath() { 
      return "/example/somedata.html.erb"; 

    } 
} 

有什么办法,我可以从声纳仪表盘拿到“项目名称”,这样我可以在widget为不同的项目返回不同的值?

+0

你能显示somedata.html.erb的代码吗?如果您想在某些条件下隐藏小部件,则必须在此处进行更改。 –

回答

0

最好的办法是在没有相关数据的情况下禁止显示小部件,然后仅存储相关项目的数据。

几个小部件已经有条件显示。看看this Widget Lab widget这使得显示条件。

相关问题