blob: 43589ee8e1e7e0c7f85c7aa2eeeb0f4ef0091624 [file] [log] [blame]
Valentin Valchev2144f3c2012-04-25 12:24:38 +00001/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18var findField = false;
19var findButton = false;
20var findTable = false;
21var findTableBody = false;
22var findTableTemplate = false;
23var dupsTable = false;
24var dupsTableBody = false;
25var dupsTableTemplate = false;
26var statline = false;
27
Felix Meschberger29e5e672014-02-20 10:35:24 +000028function linkBundle(bnd) { return '<a href="{0}/bundles/{1}">{2} ({3})</a>'.msgFormat(appRoot, bnd.bid, bnd.bsn, bnd.bid) }
29function uses(uses) {
30 var result = "";
31 if (uses) {
32 resul = "<table>";
33 for(var i in uses) {
34 result += "<tr><td>";
35 result += linkBundle(uses[i]);
36 result += "</td><td>";
37 if (uses[i].ver) {
38 result += uses[i].ver;
39 } else {
40 result += "&mdash;";
41 }
42 result += "</td></tr>";
43 }
44 result += "</table>";
45 }
46 return result;
47}
Valentin Valchev2144f3c2012-04-25 12:24:38 +000048
49$(function() {
50 findField = $('#findField');
51 statline = $('.statline');
52
53 findTable = $('#findTable').tablesorter({
54 headers:{
55 1:{sorter: false},
56 3:{sorter: false}
57 },
58 textExtraction:mixedLinksExtraction
59 });
60 findTableBody = findTable.find('tbody');
61 findTableTemplate = findTableBody.find('tr').clone();
62 findTableBody.empty();
63
64 dupsTable = $('#dupsTable');
65 dupsTableBody = dupsTable.find('tbody');
66 dupsTableTemplate = dupsTableBody.find('tr').clone();
67
68 $('#findButton').click(function() {
69 if(!findField.val()) {
70 findField.addClass('ui-state-error');
71 } else {
72 findField.removeClass('ui-state-error');
73
74 $.post(pluginRoot, { 'action': 'deps', 'plugin.find' : findField.val() }, function(response) {
75 dupsTable.addClass('ui-helper-hidden')
76 findTable.removeClass('ui-helper-hidden');
77 findTableBody.empty();
78 if (response.packages) for(var i in response.packages) {
79 var pkg = response.packages[i];
80 if (pkg.exporters) for(var i in pkg.exporters) {
81 var exp = pkg.exporters[i];
82 var tr = findTableTemplate.clone()
83 .find('td.pkg').text(pkg.name).end()
84 .find('td.ver').text(exp.version).end()
Felix Meschberger29e5e672014-02-20 10:35:24 +000085 .find('td.bnd').html(linkBundle(exp)).end()
86 .find('td.use').html(uses(exp.importers)).end()
Valentin Valchev2144f3c2012-04-25 12:24:38 +000087 .appendTo(findTableBody);
88 if (response.maven && response.maven[exp.bid]) {
89 var mvn = response.maven[exp.bid];
90 mvn['scope'] = 'provided';
91 var txt = ''; for (var p in mvn) {
92 txt += '\t<' + p + '>' + mvn[p] + '</' + p + '>\n';
93 }
94 tr.find('td.mvn').text('<dependency>\n' + txt + '</dependency>');
95 }
96 } else {
97 var tr = findTableTemplate.clone()
98 .find('td.pkg').text(pkg.name).end()
99 .appendTo(findTableBody);
100 }
101 }
102 statline.text(i18n.statusFind.msgFormat(response.packages ? response.packages.length : 0));
103 findTable.trigger('update').trigger('applyWidgets')
104 }, 'json');
105 }
106 return false;
107 });
108
109 $('#findDups').click(function() {
110 $.post(pluginRoot, { 'action': 'dups' }, function(response) {
111 findTable.addClass('ui-helper-hidden');
112 dupsTable.removeClass('ui-helper-hidden')
113 dupsTableBody.empty();
114 if (response) for(var i in response) {
115 var pkg = response[i];
116 if (pkg.entries) for (var i in pkg.entries) {
117 var exp = pkg.entries[i];
118 var td = dupsTableTemplate.clone()
119 .find('td.pkg').text(pkg.name).end()
120 .find('td.ver').text(exp.version).end()
121 .find('td.exp').html(linkBundle(exp)).end();
122 if (exp.importers) {
Felix Meschberger29e5e672014-02-20 10:35:24 +0000123 td.find('td.imp').html(uses(exp.importers));
Valentin Valchev2144f3c2012-04-25 12:24:38 +0000124 }
125 if (i==0) {
126 td.find('td.pkg').attr('rowspan', pkg.entries.length);
127 } else {
128 td.find('td.pkg').remove();
129 }
130 td.appendTo(dupsTableBody);
131 }
132 }
133 statline.text(i18n.statusDups.msgFormat(response ? response.length : 0));
134 }, 'json');
135
136 return false;
137 });
138
139})