~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/bugs/templates/bugtask-macros-tableview.pt

  • Committer: Launchpad Patch Queue Manager
  • Date: 2011-12-09 09:23:38 UTC
  • mfrom: (14333.2.13 history-model)
  • Revision ID: launchpad@pqm.canonical.com-20111209092338-se7u5l0skqzaes1v
[r=jcsackett][bug=295214, 894836,
 898200] Keep sort button ob bug listing pages in sync with the
 displayed data

Show diffs side-by-side

added added

removed removed

Lines of Context:
658
658
    LPS.use('lp.bugs.buglisting', 'lp.ordering', 'lp.buglisting_utils',
659
659
      function(Y) {
660
660
        Y.on('domready', function() {
661
 
            var navigator = Y.lp.bugs.buglisting.BugListingNavigator
662
 
            .from_page();
 
661
            var navigator = Y.lp.bugs.buglisting.ListingNavigator.from_page();
663
662
            if (Y.Lang.isNull(navigator)){
664
663
              return;
665
664
            }
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';
673
671
            }
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;
678
 
                }
679
 
            });
680
 
            if (unknown_sort_key) {
681
 
                active_sort_key = 'importance';
682
 
            }
683
672
            var orderby = new Y.lp.ordering.OrderByBar({
684
673
                srcNode: Y.one('#bugs-orderby'),
685
 
                sort_keys: sort_keys,
 
674
                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
                    ['tag', 'Bug Tags']
 
687
                ],
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);
693
695
            });
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
698
 
                    // key.
699
 
                    if (Y.Object.hasKey(e.newVal, 'batch_key')) {
700
 
                        Y.lp.buglisting_utils.update_sort_button_visibility(
701
 
                            orderby,
702
 
                            e.newVal
703
 
                        );
704
 
                    }
705
 
                 }
706
 
            );
 
698
                     Y.lp.buglisting_utils.update_sort_button_visibility(
 
699
                         orderby, e.newVal);
 
700
                });
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,
710
 
                model: model
 
704
                model: navigator.get('model')
711
705
            });
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'));
715
709
            });
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);
724
 
            }
725
710
            Y.lp.buglisting_utils.update_sort_button_visibility(
726
 
                 orderby, field_visibility);
 
711
                 orderby, navigator.get('model').get_field_visibility());
727
712
        });
728
713
    });
729
714
  </script>