2012-04-30 4 views
2

Я пытаюсь найти способ подтянуть ссылку на вложение, которое может иметь история пользователя, но я не мог понять, как это сделать. Поскольку у меня есть это, единственное, что я получаю в этом столбце, это «[Object Object]», когда пользовательская история имеет вложение.Ссылка на приложение

Там, кажется, не так много на захвате вложений, если кто-то может пролить свет или указать мне в правильном направлении, я бы, конечно же, его оценил!

<html> 
<head> 
    <title>Table</title> 
    <meta name="Name" content="App Example: Table" /> 
    <meta name="Version" content="2010.4" /> 
    <meta name="Vendor" content="Rally Software" /> 
    <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.24/sdk.js?loginKey=bignumber"></script> 
    <script type="text/javascript"> 

    function tableExample() { 
     var rallyDataSource = new rally.sdk.data.RallyDataSource('12345', '12345',  'True', 'True'); 
     function itemQuery() { 
     var queryObject = { 
      key: 'stories', 
      type: 'HierarchicalRequirement', 
      fetch: 'FormattedID,Name,ScheduleState,Description,Attachments', 
      query: '(Name contains "release")' 
     }; 
     rallyDataSource.findAll(queryObject, populateTable); 
     } 

     function populateTable(results) { 
     var tableDiv = document.getElementById('aDiv'); 
     var config = { columns: 
      [{key: 'FormattedID', header: 'Formatted ID', width: 100}, 
      {key: 'Name', width: 400}, 
      {key: 'ScheduleState', header: 'Schedule State', width: 200}, 
      {key: 'Description', width: 800}, 
      {key: 'Attachments', header: 'Attachment Link', width: 200}]}; 
     var table = new rally.sdk.ui.Table(config); 

    table.addRows(results.stories); 
     table.display(tableDiv); 

     }; 
     itemQuery(); 
    } 

    rally.addOnLoad(tableExample); 
    </script> 
</head> 
<body> 
    <div id="aDiv"></div> 
</body> 
</html> 

ответ

1

я в том числе слегка модифицированную версию образца App, что делает некоторые пост-обработки, чтобы вытащить идентификатор объекта каждого вложения и капли его в некоторых HTML-ссылки, которые обновляются в соответствующем столбце таблицы.

 <html> 
     <head> 
      <title>Table</title> 
      <meta name="Name" content="App Example: Stories with Attachments" /> 
      <meta name="Version" content="2010.4" /> 
      <meta name="Vendor" content="Rally Software" /> 
      <script type="text/javascript" src="https://rally1.rallydev.com/apps/1.29/sdk.js"></script> 
      <script type="text/javascript"> 

      var table = null; 

      function tableExample() { 
       var rallyDataSource = new rally.sdk.data.RallyDataSource('__WORKSPACE_OID__', 
                        '__PROJECT_OID__', 
                        '__PROJECT_SCOPING_UP__', 
                        '__PROJECT_SCOPING_DOWN__'); 
       function itemQuery() { 
       var queryObject = { 
        key: 'stories', 
        type: 'HierarchicalRequirement', 
        fetch: 'FormattedID,Name,ScheduleState,Description,Attachments,ObjectID' 
        // query: '(Name contains "release")' 
       }; 
       rallyDataSource.findAll(queryObject, populateTable); 
       } 

       function populateTable(results) { 

        if (table) { 
         table.destroy(); 
        } 

       var tableDiv = document.getElementById('aDiv'); 

       var config = { 'columnKeys' : ['FormattedID', 'Name', 'ScheduleState', 'Attachments'], 
           'columnHeaders' : ['FormattedID', 'Name', 'ScheduleState', 'Attachments'], 
           'columnWidths' : ['100px',  '400px', '85px',   '300px'] 
           }; 
       table = new rally.sdk.ui.Table(config); 
       table.addRows(results.stories); 

       for (i=0;i<results.stories.length;i++) { 

        myStory = results.stories[i]; 
        myAttachments = results.stories[i].Attachments; 

        myAttachmentHTML = ""; 
        for (j=0;j<myAttachments.length;j++) { 
         myAttachmentOID = myAttachments[j].ObjectID; 
         myAttachmentName = myAttachments[j].Name; 
         myAttachmentURL = "https://rally1.rallydev.com/slm/attachment/"+ 
           myAttachmentOID + "/" + myAttachmentName; 

         myAttachmentHTML += "<div><a href='" + myAttachmentURL + "'>" + 
           myAttachmentName + "</a></div>"; 

        } 
        table.setCell(i, 3, myAttachmentHTML); 
       } 
       table.display(tableDiv); 

       }; 
       itemQuery(); 
      } 

      rally.addOnLoad(tableExample); 
      </script> 
     </head> 
     <body> 
      <div id="aDiv"></div> 
     </body> 
     </html> 
+0

Вы потрясающий! Спасибо, спасибо. –

+0

Я должен указать, что этот метод: rally.sdk.util.Context.getServerInfo(). GetSlmUrl() - более элегантный и поддерживаемый способ захватить URL самого сервера Rally, в отличие от жесткого кодирования, как в пример, который я опубликовал ... –

Смежные вопросы