我制作了一个附加组件,这是一个自定义字段。 字段中文本的样式根据问题的属性而变化。 我检查文本在.java文件中应该采用哪种样式,然后将名为$ indicator的变量中的html类传递给速度模板:
#if( ${value} )
<span class="$indicator">${value}</span>
#end
它适用于所有地方,但在小工具中。当我将此字段添加到显示仪表板中的问题的表时,html代码是正确的,但它没有找到css资源。这是因为小工具位于iframe中。 如何让iframe引用样式表?
答案 0 :(得分:2)
您没有确切说明您使用的是哪个小工具,但请尝试在<web-resource>
模块中添加以下内容:
<context>jira.webresources:issue-table</context>
以上内容至少适用于JIRA 6.1 +中的“分配给我”,“过滤结果”,“进行中”,“投票”和“观看”。
如果这不起作用,您也可以尝试:
<context>com.atlassian.jira.gadgets:common-lite</context>
如果该常规上下文不起作用,您可以查找您尝试使用的特定小工具#requireContext
'的确切上下文,然后确保您的网络资源列在其中上下文。您可以通过查看小工具的XML然后搜索#requireContext
来解决这个问题。 (您可以在$ JIRA_DATA / plugins / .osgi-plugins / transformed-plugins / jira-gadgets-plugin - * .jar中找到小工具XML)
答案 1 :(得分:0)
从JIRA 7开始,斯科特达德利的答案已不再适用。 @Override
public void onCreate()
{
super.onCreate();
mTimer = new Timer();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId)
{
mTimer.schedule(mTimerTask, 1000, 5000);
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent)
{
return null;
}
TimerTask mTimerTask = new TimerTask()
{
@Override
public void run()
{
System.out.println("timer task run");
}
};
@Override
public void onTaskRemoved(Intent rootIntent)
{
System.out.println("onTaskRemoved");
Intent restartServiceIntent = new Intent(getApplicationContext(), this.getClass());
restartServiceIntent.setPackage(getPackageName());
PendingIntent restartServicePendingIntent = PendingIntent.getService(getApplicationContext(), 1, restartServiceIntent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmService = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
alarmService.set(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + 1000, restartServicePendingIntent);
super.onTaskRemoved(rootIntent);
}
}
已替换为此小工具的Atlassian来源中的#requireContext
。
因为它影响了我们的插件,我创建了一个Improvement Request以使其再次成为可能