在Jira中加载小工具中的资源

时间:2014-10-09 13:59:57

标签: css jira velocity jira-plugin

我制作了一个附加组件,这是一个自定义字段。 字段中文本的样式根据问题的属性而变化。 我检查文本在.java文件中应该采用哪种样式,然后将名为$ indicator的变量中的html类传递给速度模板:

#if( ${value} )
    <span class="$indicator">${value}</span>
#end

它适用于所有地方,但在小工具中。当我将此字段添加到显示仪表板中的问题的表时,html代码是正确的,但它没有找到css资源。这是因为小工具位于iframe中。 如何让iframe引用样式表?

2 个答案:

答案 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以使其再次成为可能