~launchpad-pqm/launchpad/devel

« back to all changes in this revision

Viewing changes to lib/lp/registry/javascript/distroseries.js

Sort packagesets.

Show diffs side-by-side

added added

removed removed

Lines of Context:
813
813
Y.extend(SelectWidget, FormRowWidget, {
814
814
 
815
815
    /**
816
 
     * Add a choice to the picker.
817
 
     *
818
 
     * @method add_choice
819
 
     */
820
 
    add_choice: function(choice) {
821
 
        var select = this.init_select();
822
 
        var option = Y.Node.create("<option />");
823
 
        option.set("value", choice.value)
824
 
                .set("text", choice.text)
825
 
                .setData("data", choice.data);
826
 
        select.append(option);
827
 
    },
828
 
 
829
 
    /**
830
816
     * Choose a size for the select control based on the number of
831
817
     * choices, up to an optional maximum size.
832
818
     *
936
922
    },
937
923
 
938
924
    /**
939
 
     * Initialise the picket's select node.
 
925
     * Initialise the picker's select node.
940
926
     *
941
927
     * @method init_select
942
928
     */
954
940
        return select;
955
941
    },
956
942
 
 
943
    _sorted_position: function(choice) {
 
944
        var options = [];
 
945
        this.fieldNode.all("option").each(
 
946
            function(node) {
 
947
                options.push(node.get('text'));
 
948
            }
 
949
        );
 
950
        options.push(choice);
 
951
        return options.sort().indexOf(choice);
 
952
    },
 
953
 
 
954
    /**
 
955
     * Add a choice to the picker.
 
956
     *
 
957
     * @method add_choice
 
958
     */
 
959
    add_choice: function(choice) {
 
960
        var select = this.init_select();
 
961
        var option = Y.Node.create("<option />");
 
962
        option.set("value", choice.value)
 
963
                .set("text", choice.text)
 
964
                .setData("data", choice.data);
 
965
        var options = select.all('option');
 
966
        if (options.isEmpty()) {
 
967
            select.append(option);
 
968
        }
 
969
        else {
 
970
            var pos = this._sorted_position(choice.text);
 
971
            if (pos === 0) {
 
972
                select.prepend(option);
 
973
            }
 
974
            else {
 
975
                select.insertBefore(option, options.item(pos));
 
976
            }
 
977
        }
 
978
    },
 
979
 
957
980
    /**
958
981
     * Add choices (a set of packagesets) to the picker.
959
982
     *