Виджет Rallycombobox отсутствует записи в раскрывающемся списке
Приложение создает выпадающий список (который прекрасно работает). Затем приложение генерирует набор тестов на основе выбранной версии.
Сейчас я вижу, что Rallycombobox'testset 'всегда содержит только одну запись... хотя я ожидаю 3-4 записи. В журналах консоли я вижу, что отфильтрованная запись набора тестов верна (правильное количество наборов тестов). Но пользовательский интерфейс выпадающего набора тестов показывает только одну запись. Кто-нибудь знает почему? Спасибо!
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function() {
this._createReleaseComboBoxe();
},
//A)make a release combobox
_createReleaseComboBoxe: function(){
//this container would contain release and testset dropdown boxes.
this.comboboxContainer = Ext.create('Ext.container.Container',{
layout : {
type:'hbox',
align:'stretch'
}
});
this.releaseComboBox = Ext.widget('rallyreleasecombobox',{
width: 250,
autoSelect: true,
listeners: {
ready: function(combobox){
console.log('selected release ',this.releaseComboBox.getRecord().get('Name'));
this._createTestSetComboBox();
},
select: function(combobox){
console.log('selected release ',this.releaseComboBox.getRecord().get('Name'));
this._createTestSetComboBox();
},
scope: this
}
});
this.comboboxContainer.add(this.releaseComboBox);
this.add(this.comboboxContainer);
},
//B)make a testset drop down - filtered by selected release
//B1) make a store
_createTestSetComboBox: function(){
if(this.testsetbox){
this.comboboxContainer.remove(this.testsetbox);
}
this.testsetbox = Ext.widget('rallycombobox', {
width: 250,
storeConfig: {
autoLoad: true,
model: 'TestSet',
filters:[{
property: 'Release',
operator: '=',
value: this.releaseComboBox.getRecord().get('_ref')
}]
},
listeners: {
ready: function(combobox){
console.log('total number of testsets found: ',this.testsetbox.getStore().getTotalCount());
this.testsetbox.getStore().each(function(record){
console.log(record.get('Name'));
});
// this._else();
},
select: function(combobox){
console.log('total number of testsets found: ',this.testsetbox.getStore().getTotalCount());
this.testsetbox.getStore().each(function(record){
console.log(record.get('Name'));
});
},
scope: this
}
});
this.comboboxContainer.add(this.testsetbox);
}
});
HTTP GET-запрос, который отправляется:
https://rally1.rallydev.com/slm/webservice/v2.0/TestSet?start=1&pagesize=200&query=(Release%20%3D%20%22%2Frelease%2F61143217251%22)&fetch=ObjectID%2CObjectUUID%2CVersionId%2CDescription%2CDisplayColor%2CExpedite%2CFormattedID%2CLatestDiscussionAgeInMinutes%2CName%2CNotes%2CReady%2CScheduleState%2CScheduleStatePrefix%2CTaskActualTotal%2CTaskEstimateTotal%2CTaskRemainingTotal%2CBlocked%2CBlockedReason%2CDefectStatus%2CDragAndDropRank%2CLastBuild%2CPassingTestCaseCount%2CPlanEstimate%2CTaskStatus%2CTestCaseCount%2CTestCaseStatus%2CCreationDate%2CSubscription%2CWorkspace%2CLastUpdateDate%2COwner%2CProject%2CRevisionHistory%2CAcceptedDate%2CBlocker%2CIteration%2CLastRun%2CRelease&includePermissions=true&compact=true&project=%2Fproject%2F12148936254&projectScopeUp=false&projectScopeDown=true
вот ответ, который я вижу в сетевом трафике. (я вижу некоторые странные символы там):
{"QueryResult": {"TotalResultCount": 2, "StartIndex": 1, "PageSize": 200, "Results": [{"_ref": "/ testset / 62681964594", "_refObjectUUID": "253b02c2-0018- 4ea1-9c5b-04b23e83c73f "," _refObjectName ":" xxxx "," _p ":" 7 "," CreationDate ":" 2016-09-09T15: 57: 28.479Z "," _CreatedAt ":" 9 сентября 2016", "ObjectID": 62681964594, "ObjectUUID": "253b02c2-0018-4ea1-9c5b-04b23e83c73f", "VersionId": "1901", "Subscription": {"_ref": "/subscription/183584369", "_refObjectUUID": "55f700e3-c985-44d2-b855-f39de255bd25", "_refObjectName": "xxxx xxxx, Inc. - xxxx", "_p": "7", "CreationDate": "2008-09-02T18:57:01.000Z", "_CreatedAt": " 2 сентября 2008 г. ", "ObjectID": 183584369, "ObjectUUID": "55f700e3-c985-44d2-b855-f39de255bd25", "VersionId": "51", "Name": "xxxx xxxx, Inc. - xxxx", "_type": "Subscription"}, "Workspace": {"_ref": "/workspace/11012665496", "_refObjectUUID": "74d703e2-8386-48a8-8a9e-3f4163be0870", _refObjectName": "xxxx", "_p": "0", "CreationDate": "2013-03-18T19:15:46.626Z", "_CreatedAt": " 18 марта 2013", "ObjectID": 11012665496, "ObjectUUID": "74d703e2-8386-48a8-8a9e-3f4163be0870", "VersionId": "11", "Subscription": {"_ref": "/subscription/183584369"}, "Description": "xxxx", "Name": "xxxx", "Notes": "", "Owner": {"_ref": "/user/183584660", "_refObjectUUID": "54cd9208-3337-4d5f-ae18-f006d563d03c", "_refObjectName": "Amy Ulug", "_p": "0", "ObjectID": 183584660, "_type": "User"}, "_type": "Workspace"}, "Description": "", "DisplayColor": "#848689", "Expedite": false, "FormattedID": "TS841", "LastUpdateDate": "2017-01-24T21:57:26.349Z", "LatestDiscussionAgeInMinutes": null, "Name": "xxxx", "Notes": "", "Owner": null, "Project": {"_ref": "/project/12148936254", "_refObjectUUID": "dfae7c8c-3d31-43b6-b80f-d29e30fa18dd", "_refObjectName" ": "NII", "_p": "0", "CreationDate": "2013-05-30T08:31:47.313Z", "_CreatedAt": " 30 мая 2013", "ObjectID": 12148936254, "ObjectUUID": "dfae7c8c-3d31-43b6-b80f-d29e30fa18dd", "VersionId": "60", "Subscription": {"_ref": "/subscription/183584369"}, "Description": "(was NAR)", "Name": "NII", "Notes": "", "Owner": {"_ref": "/user/183584660"}, "RevisionHistory": {"_ref": "/revisionhistory/12148936255", "_refObjectUUID": "cdc6c0fa-418a-402e-b495-22f10d12483f", "_p": "7", "CreationDate": "2013-05-30T08:31:47.313Z", "_CreatedAt": " май 30, 2013", "ObjectID": 12148936255, "ObjectUUID": "cdc6c0fa-418a-402e-b495-22f10d12483f", "VersionId": "1", "Subscription": {"_ref": "/subscription/183584369"}, "Workspace": {"_ref": "/workspace/11012665496"}, "_type": "RevisionHistory"}, "Workspace": {"_ref": "/workspace/11012665496"}, "_type": " Проект "}," Готово ": false, "RevisionHistory": {"_ref": "/revisionhistory/62681964605", "_refObjectUUID": "ce39b25d-9831-4930-a112-abb80cec0631", "_p": "7", "CreationDate": "2016-09-09T15:57:28.479Z", "_CreatedAt": "9 сентября 2016 года", "ObjectID": 62681964605, "ObjectUUID": "ce39b25d-9831-4930-a112-abb80cec0631", "VersionId": "1", "Subscription": {"_ref": "/subscription/183584369"}, "Workspace": {"_ref": "/workspace/11012665496"}, "_type": "RevisionHistory"}, "AcceptedDate": null, "Blocker": null, "ScheduleState": "In-Progress", "ScheduleStatePrefix": "P", "TaskActualTotal": 0.0, "TaskEstimateTotal": 0.0, "TaskRemainingTotal": 0.0, "Blocked": false, "BlockedReason": null, "DefectStatus": "SOME_CLOSED", "DragAndDropRank": ",~g}7%@{P]?S??{S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! "," Итерация ": {"_ref": "/iteration/61479322083", "_refObjectUUID": "a6ccc8a6-20b8-4789-8166-a01c34c29a7b", "_refObjectName": "IP-адрес до PI14", "_p": "7", "CreationDate": "2016-08-22T20:59:46.660Z", "_CreatedAt": "22 августа 2016 г.", "ObjectID": 61479322083, "ObjectUUID": "a6ccc8a6-20b8-4789-8166-a01c34c29a7b", "VersionId": "1", "Subscription": {"_ref": "/subscription/183584369"}, "Workspace": {"_ref": "/workspace/11012665496"}, "Name": "IP до-PI14", " Примечания ":" ", PlanEstimate": 7.0, "Project": {"_ref": "/project/12148936254"}, "RevisionHistory": {"_ref": "/revisionhistory/61479322085", "_refObjectUUID": "0ecbd8a8-b4ba-4cc7-8ea1-0e4b863e1ddd", "_p": "7", "CreationDate": "2016-08-22T20:59:46.661Z", "_CreatedAt": "22 августа 2016", "ObjectID": 61479322085, "ObjectUUID": "0ecbd8a8-b4ba-4cc7-8ea1-0e4b863e1ddd ", "VersionId": "1", "Subscription": {"_ref": "/subscription/183584369"}, "Workspace": {"_ref": "/workspace/11012665496"}, "_type": "RevisionHistory"}, "TaskActualTotal": 0.0, "TaskEstimateTotal": 15.0, "TaskRemainingTotal": 0.0, "_type": "Iteration"}, "LastBuild": "RC4", "LastRun": "2016-12-06T09:00:00.000Z", "PassingTestCaseCount": 490, "PlanEstimate": null, "Release": {"_ref": "/release/51258917569", "_refObjectUUID": "fab69c95-af3d-4299-80c6-6eee63922afd", "_refObjectName": "xxxx", "_p": "7", "CreationDate": "2016-02-12T19:40:05.721Z", "_CreatedAt": " 12 февраля 2016 г. ", "ObjectID": 51258917569, "ObjectUUID": "fab69c95-af3d-4299-80c6-6eee63922afd", "VersionId": "6", "Subscription": {"_ref": "/subscription/183584369"}, " Рабочая область ": {"_ref": "/ workspace / 11012665496"}, "Name": "xxxx", "Notes": "$$$ # 2016-12-28 # PI_14 data # 0-4-12-4-20 -400-416-0-1-0-0-1-0-20-0-5-12-4-21-400-436 ## 11615-11702-11995-12128 # 9623-10346-10378-10685- 10725-10726-11537-11586-11589-11592-11595-11608 # 10403-10412-10575-10715 ## 11827 ###$$$ # 2017-1-9 # NII1.10 # 0-4-11-4 -19-380-396-0-1-1-0-2-0-30-0-5-12-4-21-380-426 ## 11615-11702-11995-12128 # 9623-10346-10378- 10685-10725-10726-11586-11589-11592-11595-11608 # 10403-10412-10575-10715 ## 11827 # 11537 ##"," PlanEstimate ": 101.5," Project ": {" _ref ":" / project / 12148936254 "}," RevisionHistory ": {" _ref ":" / revisionhistory / 51258917571 "," _refObjectUUID ":" e6c06886-87a5-4085-b3a3-e3711fbc762f "," _p ":" 7 "," Create "2016-02-12T19:40:05.723Z", "_CreatedAt": " 12 февраля 2016 г. ", "ObjectID": 51258917571, "ObjectUUID": "e6c06886-87a5-4085-b3a3-e3711fbc762f", "VersionId": "1", "Subscription": {"_ref": "/subscription/183584369"}, "Workspace": {"_ref": "/workspace/11012665496"}, "_type": "RevisionHistory"}, "TaskActualTotal": 130.0, "TaskEstimateTotal": 1339.0, "TaskRemainingTotal": 137.0, "_type": "Release"}, "TaskStatus": "NONE", "TestCaseCount": 637, "TestCaseStatus": "ALL_RUN_SOME_NOT_PASSING", "_type": "TestSet"}, {"_ref": "/testset/62682068436", "_refObjectUUID": "cba56f1f-6631- 8329-fa1320310f10", "_refObjectName": "xxxx", "_p": "7", "CreationDate": "2016-09-09T15:58:03.873Z", "_CreatedAt": " 9 сентября 2016 г. ", "ObjectID": 62682068436, "ObjectUUID": "cba56f1f-6631-462b-8329-fa1320310f10", "VersionId": "1904", "Subscription": {"_ref": "/subscription/183584369"}, " Рабочая область ": {"_ref": "/workspace/11012665496"}, "Description": "", "DisplayColor": "#848689", "Expedite": false, "FormattedID": "TS842", "LastUpdateDate": "2017-01-27T07:45:26.507Z", "LatestDiscussionAgeInMinutes": null, "Name": "xxxx", "Notes": "", "Owner": null, "Project": {"_ref": "/project/12148936254"}, "Ready": false, "RevisionHistory": {"_ref": "/revisionhistory/62682068438", "_refObjectUUID": "69e21793-be97-4b5a-88bc-8ea3755fc732", "_p": "7" "CreationDate": "2016-09-09T15:58:03.874Z", "_CreatedAt": "9 сентября 2016 года", "ObjectID": 62682068438, "ObjectUUID": "69e21793-be97-4b5a-88bc-8ea3755fc732", "VersionId": "1", "Subscription": {"_ref": "/subscription/183584369"}, "Рабочая область": {"_ref": "/workspace/11012665496"}, "_type": "RevisionHistory"}, "AcceptedDate": null, "Blocker": null, "ScheduleState": "In-Progress", "ScheduleStatePrefix": "P", "TaskActualTotal": 0.0, "TaskEstimateTotal": 0.0, "TaskRemainingTotal": 0.0, "Blocked": false, "BlockedReason": null, "DefectStatus": "SOME_CLOSED", "DragAndDropRank": ",~fjfT@{P]?S??{S!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!", "Iteration": {"_ref": "/iteration/61479322083"}, "LastBuild": "RC4", "LastRun": "2016-11-29T19:01:00.000Z", "PassingTestCaseCount": 351, "PlanEstimate": null, "Release": {"_ref": "/release/51258917569"}, "TaskStatus": "NONE", "TestCaseCount": 616, "TestCaseStatus": "ALL_RUN_SOME_NOT_PASSING", "_type": "TestSet"}]}}
1 ответ
Я поэкспериментировал с вашим примером и немного обновил его - мне кажется, это работает:
Ext.define('CustomApp', {
extend: 'Rally.app.TimeboxScopedApp',
componentCls: 'app',
scopeType: 'release',
onScopeChange: function(scope) {
this._createTestSetComboBox();
},
_createTestSetComboBox: function () {
if (this.testsetbox) {
this.testsetbox.destroy();
}
this.testsetbox = this.add({
xtype: 'rallyartifactsearchcombobox',
width: 250,
allowNoEntry: false,
allowClear: false,
storeConfig: {
models: ['testset'],
filters: [this.getContext().getTimeboxScope().getQueryFilter()]
},
listeners: {
ready: function (combobox) {
console.log('total number of testsets found: ', this.testsetbox.getStore().getTotalCount());
this.testsetbox.getStore().each(function (record) {
console.log(record.get('Name'));
});
// this._else();
},
select: function (combobox) {
console.log('total number of testsets found: ', this.testsetbox.getStore().getTotalCount());
this.testsetbox.getStore().each(function (record) {
console.log(record.get('Name'));
});
},
scope: this
}
});
}
});
Основное изменение заключается в том, что я обновил ваше приложение, чтобы оно использовало TimeboxScopedApp для автоматической работы со сборщиком релизов. И я использую ArtifactSearchComboBox, а не просто стандартный ComboBox. Такое ощущение, что в том, что ты делал, была небольшая ошибка - я просто не уверен, что это было.
Не возражаете? Это было бы предпочтительнее, чем понижение версии SDK до 2.0rc1, так как это очень ранняя предварительная версия и на данный момент считается неподдерживаемой.