658
658
LPS.use('lp.bugs.buglisting', 'lp.ordering', 'lp.buglisting_utils',
660
660
Y.on('domready', function() {
661
var navigator = Y.lp.bugs.buglisting.BugListingNavigator
661
var navigator = Y.lp.bugs.buglisting.ListingNavigator.from_page();
663
662
if (Y.Lang.isNull(navigator)){
666
var sort_keys = LP.cache.sort_keys;
667
665
var active_sort_key = LP.cache.order_by;
668
666
var sort_order = 'asc';
669
667
if (active_sort_key.charAt(0) === '-') {
671
669
1, active_sort_key.length);
672
670
sort_order = 'desc';
674
var unknown_sort_key = true;
675
Y.each(sort_keys, function(sort_key) {
676
if (sort_key[0] === active_sort_key) {
677
unknown_sort_key = false;
680
if (unknown_sort_key) {
681
active_sort_key = 'importance';
683
672
var orderby = new Y.lp.ordering.OrderByBar({
684
673
srcNode: Y.one('#bugs-orderby'),
685
sort_keys: sort_keys,
675
['id', 'Bug number'],
676
['title', 'Bug title'],
677
['importance', 'Importance'],
678
['status', 'Status'],
679
['heat', 'Bug heat'],
680
['reporter', 'Reporter'],
681
['assignee', 'Assignee'],
682
['targetname', 'Package/Project/Series name'],
683
['milestone_name', 'Milestone'],
684
['datecreated', 'Bug age'],
685
['date_last_updated', 'Date bug last updated'],
686
688
active: active_sort_key,
687
689
sort_order: sort_order,
688
690
config_slot: true
691
693
Y.on('orderbybar:sort', function(e) {
692
694
navigator.first_batch(e);
694
var model = navigator.get('model');
695
model.get('history').after(
696
navigator.get('model').get('history').after(
696
697
'change', function(e) {
697
// Only update the sort buttons if we've got a valid batch
699
if (Y.Object.hasKey(e.newVal, 'batch_key')) {
700
Y.lp.buglisting_utils.update_sort_button_visibility(
698
Y.lp.buglisting_utils.update_sort_button_visibility(
707
701
var config_node = orderby.get('config_node');
708
702
var list_util = new Y.lp.buglisting_utils.BugListingConfigUtil({
709
703
srcNode: config_node,
704
model: navigator.get('model')
712
706
list_util.render();
713
707
Y.on('buglisting-config-util:fields-changed', function(e) {
714
708
navigator.change_fields(list_util.get('field_visibility'));
716
var field_visibility =
717
navigator.get('model').get_field_visibility();
718
orderby.always_display = ['title'];
719
// The advanced search page contains sort options that have
720
// no related data fields we can display. If a user has selected
721
// such a sort order, this sort option should always be visible.
722
if (field_visibility['show_' + active_sort_key] === undefined) {
723
orderby.always_display.push(active_sort_key);
725
710
Y.lp.buglisting_utils.update_sort_button_visibility(
726
orderby, field_visibility);
711
orderby, navigator.get('model').get_field_visibility());