~liuyq0307/linaro-android-frontend/fix-878832

« back to all changes in this revision

Viewing changes to static/buildDetails.js

  • Committer: Yongqin Liu
  • Date: 2011-10-27 08:23:34 UTC
  • Revision ID: yongqin.liu@linaro.org-20111027082334-k5c8wo2b2wobjiyr
show multiple lava-job for the build of android.
1. need to change the format of lava-job-info
2. need to add a retest button to resubmit the test job and change the content of the lava-job-info

Show diffs side-by-side

added added

removed removed

Lines of Context:
90
90
            );
91
91
        }
92
92
        newNode.appendChild(linkNode);
93
 
        Y.one("#testresults").get('childNodes').remove();
94
 
        Y.one("#testresults").appendChild(newNode);
 
93
        Y.one("#testresult").get('childNodes').remove();
 
94
        Y.one("#testresult").appendChild(newNode);
95
95
    }
96
96
 
97
97
    function receivedLavaJobInfo (e, response) {
98
 
        var job_info = Y.JSON.parse(response.responseText);
99
 
        var job_info_json_url = job_info.lava_url + 'scheduler/job/' + job_info.job_id;
 
98
        var jobs_info = Y.JSON.parse(response.responseText);
 
99
        var job_info;
 
100
       
 
101
        if (jobs_info.job_id){
 
102
            job_info = jobs_info;
 
103
        }else{
 
104
            //TODO: need to be the latest
 
105
            job_info = jobs_info[0];
 
106
        }
 
107
 
 
108
        var listjob_id = job_info.job_id;
 
109
        var listjob_lavaurl = job_info.lava_url;
 
110
        
 
111
        testlist(listjob_id, jobs_info);
 
112
        
 
113
        var job_info_json_url = listjob_lavaurl + 'scheduler/job/' + listjob_id;
 
114
        refreshTestResult(job_info_json_url);
 
115
        
 
116
    }
 
117
 
 
118
    function refreshTestResult(job_info_json_url){
100
119
        Y.jsonp(
101
120
            job_info_json_url + '/json?callback={callback}', 
102
121
            {
106
125
                }
107
126
            }
108
127
        );
 
128
    } 
 
129
 
 
130
   function testlist (cur_job_id, jobs_info) {
 
131
       if (jobs_info.job_id){
 
132
           jobs_info = [jobs_info];
 
133
       }
 
134
       var lavajobNode = Y.Node.create('<span/>');
 
135
       for (var i = 0; i < jobs_info.length; i++) {
 
136
          var node = Y.Node.create('<span />');
 
137
          var job_id = jobs_info[i].job_id;
 
138
          var lava_url = jobs_info[i].lava_url;
 
139
          node.setAttribute('id', 'lavajob-link-' + i.toString());
 
140
          node.setAttribute('lavaurl', lava_url );
 
141
          node.setAttribute('jobid', job_id );
 
142
          modifyJobLinkNode(node, cur_job_id);
 
143
          lavajobNode.append(node);
 
144
          lavajobNode.append(document.createTextNode(' '));
 
145
       }
 
146
       Y.one("#testlist").get('childNodes').remove();
 
147
       Y.one("#testlist").appendChild(lavajobNode.get('childNodes'));
 
148
    }
 
149
    function refreshTestList(cur_job_id){
 
150
        var nodeList = Y.one("#testlist");        
 
151
        if (!nodeList.hasChildNodes()) {
 
152
            return;
 
153
        }
 
154
        var childrenList = nodeList.get('children');
 
155
        for (var index =0; index<childrenList.size(); index++){
 
156
            var one_node = childrenList.item(index);
 
157
            modifyJobLinkNode(one_node, cur_job_id);
 
158
        }
 
159
    }
 
160
    function modifyJobLinkNode(one_node, cur_job_id){
 
161
        Y.one(one_node).get('childNodes').remove();
 
162
        var lava_url = Y.one(one_node).getAttribute('lavaurl');
 
163
        var job_id = Y.one(one_node).getAttribute('jobid');
 
164
        if (job_id != cur_job_id){
 
165
            var linkNode = Y.Node.create('<a/>');
 
166
            var job_url = lava_url + 'scheduler/job/' + job_id;
 
167
        linkNode.setAttribute('href', '#');
 
168
            linkNode.setContent(job_id.toString());
 
169
            Y.one(one_node).appendChild(linkNode);
 
170
 
 
171
        linkNode.on('click',  function (e) {
 
172
            refreshTestList(job_id);
 
173
            refreshTestResult(job_url);
 
174
            return false;
 
175
                });
 
176
        }else{
 
177
            Y.one(one_node).append(job_id.toString());
 
178
        }
109
179
    }
110
180
 
111
181
    var element_mapping = {
143
213
        return Y.Node.create('<a>complete output</a>').setAttribute(
144
214
          'href', results.buildUrl + '/consoleText');
145
215
      },
146
 
      testresults: function (results) {
 
216
      testresult: function (results) {
147
217
          if (results.artifacts.length) {
148
218
              for (var i = 0; i < results.artifacts.length; i++) {
149
219
                  var artifact = results.artifacts[i];