Передача ключа API через Confluence HTML для стандартных отчетов
Мне удалось заставить код API Java работать для диаграмм Iteration TreeGrid и Iteration Burndown / Release Burnup. Мы пытались заставить это работать на Confluence, и есть проблемы, пытающиеся передать только iframes, и у ИТ есть проблемы с некоторыми из вариантов обхода. Мы смогли получить некоторое подобие для работы через скрипт ниже. Фактически, Iteration TreeGrid работает успешно каждый раз, но в большинстве случаев стандартные отчеты просто представляют экран входа в Rally. Это не согласуется, и иногда это работает для меня в Chrome, но не в Firefox/IE и т. Д. Мы прикрепили API к пути страницы слияния, если он введен по ссылке, а также к тому, что в сценарии. Существует ли другой способ передачи ключа для стандартного отчета, который можно создать?
Спасибо! отметка
enter code here
{} HTML
<script type="text/javascript">
var field = 'apiKey';
var url = window.location.href;
if(
(url.indexOf('?' + field + '=') != -1) ||
(url.indexOf('&' + field + '=') != -1)
){
//alert("**** 001");
} else {
var myURL = document.location;
if(window.location.href.indexOf('?') > 0){
document.location = myURL + "&apiKey=_1OS4fhAQBi101VTZ4PytkQXb9jYEt0qYx79WXJacc";
} else {
document.location = myURL + "?apiKey=_1OS4fhAQBi101VTZ4PytkQXb9jYEt0qYx79WXJacc";
}
}
</script>
<div id="div-iterationburndown"></div>
<script type="text/javascript">
Rally.onReady(function() {
Ext.create("Ext.Container", {
context: {},
items: [{
xtype: "rallystandardreport",
width: 750,
height: 500,
reportConfig: {
report: "IterationBurndown",
iteration: "April",
subchart: "hide",
title: "Iteration Burndown"
},
project: "https://rally1.rallydev.com/slm/webservice/v2.0/project/51186094804",
projectScopeUp: !1,
projectScopeDown: !0
}],
renderTo: Ext.get("div-iterationburndown")
});
Rally.launchApp('CustomApp', {
name: "iterationburndown",
parentRepos: ""
});
});
</script>
<div id="div-releaseburnup"></div>
<script type="text/javascript">
Rally.onReady(function() {
Ext.create("Ext.Container", {
context: {},
items: [{
xtype: "rallystandardreport",
width: 750,
height: 500,
reportConfig: {
report: "ReleaseBurnup",
subchart: "hide",
title: "Release Burnup"
},
project: "https://rally1.rallydev.com/slm/webservice/v2.0/project/51186094804",
projectScopeUp: !1,
projectScopeDown: !0
}],
renderTo: Ext.get("div-releaseburnup")
});
Rally.launchApp('CustomApp', {
name: "releaseburnup",
parentRepos: ""
});
});
</script>
<div id="div-RallyGrid" style="border-width:5px 5px 5px 5px;width:300px;height:150px;"></div>
<script type="text/javascript">
Rally.onReady(function() {
Ext.create("Rally.data.wsapi.TreeStoreBuilder").build({
models: ["userstory"],
autoLoad: !0,
context: {
workspace: "https://rally1.rallydev.com/slm/webservice/v2.0/workspace/50876644101",
project: "https://rally1.rallydev.com/slm/webservice/v2.0/project/50891172431"
},
enableHierarchy: !0,
filters: [{
property: "Iteration.Name",
operator: "=",
value: "April"
}, {
property: "Project.Name",
operator: "=",
value: "Harrier"
}]
}).then({
success: function(store) {
Ext.create("Ext.Container", {
width: 1e3,
height: 1e3,
border: 5,
items: [{
xtype: "rallytreegrid",
columnCfgs: ["DisplayColor", "Name", "ScheduleState", "Blocked", "TaskEstimateTotal", "TaskRemainingTotal", "Owner", "Notes"],
store: store
}],
renderTo: Ext.get("div-RallyGrid")
})
}
});
Rally.launchApp('CustomApp', {
name: "RallyGrid",
parentRepos: ""
});
});
</script>
{html}
2 ответа
Хорошие новости! Компонент StandardReport в AppSDK 2.1 и вспомогательный сервис A1 Analytics теперь полностью поддерживают ключи Api, поэтому вы сможете сделать это довольно легко.
Несколько полезных ссылок:
Компонент StandardReport: https://help.rallydev.com/apps/2.1/doc/
Внешнее внедрение приложений: https://help.rallydev.com/apps/2.1/doc/
Компонент StandardReport в AppSDK2 является оболочкой для аналитического сервиса первого поколения, предшествующего ApiKey. Это та же аналитическая служба, которая предоставляет вам отчеты на странице Отчеты> Отчеты. Эти отчеты также были доступны через компонент StandardReport в AppSDK1.
ApiKey не поддерживается в диаграммах первого поколения. AppSDK2 поддерживает ApiKey, как описано в руководстве по встраиванию приложений. Приложения AppSDK2 можно аутентифицировать с помощью ApiKey. Но если приложение AppSDK2 использует компонент StandardReport, аналитическая служба, стоящая за отчетом, предложит вам войти в систему - она не работает с ApiKey. В вашем сценарии это, к сожалению, не соответствует цели встраивания отчета в другой веб-контент для просмотра заинтересованными сторонами, которые могут не обязательно иметь учетные данные Rally.
Я подозреваю, что если кажется, что это иногда срабатывает, возможно, это потому, что вы уже вошли в Rally на другой вкладке того же окна браузера. Если вы откроете новое окно в режиме инкогнито, вам будет предложено войти в систему.