Skip to content

Commit 9b772db

Browse files
ernjvrDaanHoogland
authored andcommitted
populate project select when clicked on to display latest project options (#2810)
1 parent c687134 commit 9b772db

File tree

1 file changed

+32
-23
lines changed

1 file changed

+32
-23
lines changed

ui/scripts/ui-custom/projectSelect.js

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,33 +24,35 @@
2424
);
2525
var $label = $('<label>').html(_l('label.project'));
2626

27-
// Get project list
28-
cloudStack.projects.dataProvider({
29-
context: cloudStack.context,
30-
response: {
31-
success: function(args) {
32-
var projects = args.data;
33-
var arrayOfProjs = [];
27+
var populateProjectSelect = function() {
28+
// Get project list
29+
cloudStack.projects.dataProvider({
30+
context: cloudStack.context,
31+
response: {
32+
success: function(args) {
33+
var projects = args.data;
34+
var arrayOfProjs = [];
3435

35-
$(projects).map(function(index, project) {
36-
var proj = {id: _s(project.id), html: _s(project.displaytext ? project.displaytext : project.name)};
37-
arrayOfProjs.push(proj);
38-
});
36+
$(projects).map(function(index, project) {
37+
var proj = {id: _s(project.id), html: _s(project.displaytext ? project.displaytext : project.name)};
38+
arrayOfProjs.push(proj);
39+
});
3940

40-
arrayOfProjs.sort(function(a,b) {
41-
return a.html.localeCompare(b.html);
42-
});
41+
arrayOfProjs.sort(function(a,b) {
42+
return a.html.localeCompare(b.html);
43+
});
4344

44-
$(arrayOfProjs).map(function(index, project) {
45-
var $option = $('<option>').val(_s(project.id));
45+
$(arrayOfProjs).map(function(index, project) {
46+
var $option = $('<option>').val(_s(project.id));
4647

47-
$option.html(_s(project.html));
48-
$option.appendTo($projectSelect);
49-
});
50-
},
51-
error: function() {}
52-
}
53-
});
48+
$option.html(_s(project.html));
49+
$option.appendTo($projectSelect);
50+
});
51+
},
52+
error: function() {}
53+
}
54+
});
55+
}
5456

5557
$projectSwitcher.append($label, $projectSelect);
5658
$projectSwitcher.insertBefore($header.find('.region-switcher'));
@@ -73,5 +75,12 @@
7375
$('#navigation li.dashboard').click();
7476
}
7577
});
78+
79+
$projectSelect.mousedown(function() {
80+
var projectID = $projectSelect.val();
81+
$('.project-switcher option:not(:first)').remove();
82+
populateProjectSelect();
83+
$projectSelect.val(projectID);
84+
});
7685
});
7786
}(jQuery, cloudStack));

0 commit comments

Comments
 (0)