[dw-free] Revamp /update
[commit: http://hg.dwscoalition.org/dw-free/rev/7f6e577ec7c3]
http://bugs.dwscoalition.org/show_bug.cgi?id=2524
Icon browser icon show in upload order.
Patch by
fu.
Files modified:
http://bugs.dwscoalition.org/show_bug.cgi?id=2524
Icon browser icon show in upload order.
Patch by
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Files modified:
- htdocs/js/jquery.iconselector.js
- htdocs/tools/endpoints/getuserpics.bml
- views/dev/tests/iconselector.js
-------------------------------------------------------------------------------- diff -r cf3b5f17e1f8 -r 7f6e577ec7c3 htdocs/js/jquery.iconselector.js --- a/htdocs/js/jquery.iconselector.js Tue Nov 29 21:23:34 2011 +0800 +++ b/htdocs/js/jquery.iconselector.js Tue Nov 29 22:02:20 2011 +0800 @@ -208,7 +208,9 @@ var $iconslist = $("<ul id='iconselector_icons_list'></ul>"); - $.each(data.pics, function(id, icon) { + var pics = data.pics; + $.each(data.ids, function(index,id) { + var icon = pics[id]; var idstring = "iconselector_item_"+id; var $img = $("<img />").attr( { src: icon.url, alt: icon.alt, height: icon.height, width: icon.width } ).wrap("<div class='icon_image'></div>").parent(); diff -r cf3b5f17e1f8 -r 7f6e577ec7c3 htdocs/tools/endpoints/getuserpics.bml --- a/htdocs/tools/endpoints/getuserpics.bml Tue Nov 29 21:23:34 2011 +0800 +++ b/htdocs/tools/endpoints/getuserpics.bml Tue Nov 29 22:02:20 2011 +0800 @@ -50,7 +50,7 @@ }; } - $upics{ids} = [keys %{$upics{pics}}]; + $upics{ids} = [sort { $a <=> $b } keys %{$upics{pics}}]; sleep 1 if $LJ::IS_DEV_SERVER; return JSON::objToJson(\%upics); diff -r cf3b5f17e1f8 -r 7f6e577ec7c3 views/dev/tests/iconselector.js --- a/views/dev/tests/iconselector.js Tue Nov 29 21:23:34 2011 +0800 +++ b/views/dev/tests/iconselector.js Tue Nov 29 22:02:20 2011 +0800 @@ -10,31 +10,41 @@ }); module( "jquery" ); -test( "initialize iconselector", 4, function() { +test( "initialize iconselector", 6, function() { // setup callback var server = sinon.sandbox.useFakeServer(); var icons = { "pics": {}, - "ids" : [] + "ids" : [ 1, 5 ] }; var data = [ { + "id" : 5, + "url" : "/img/search.gif", + "state" : "A", + "width" : 16, + "height" : 16, + "alt" : "search", + "comment" : "from repo", + "keywords": [ "search" ] + }, + { "id" : 1, "url" : "/img/ajax-loader.gif", "state" : "A", "width" : 16, "height" : 16, "alt" : "swirling loading icon", - "comment": "by ...", + "comment": "from repo", "keywords": ["loading", "animated"] } ]; var keywords = [ "" ]; + icons.ids = [ 1, 5 ]; for ( var i = 0; i < data.length; i++ ) { var icon = data[i]; icons.pics[icon.id] = icon; - icons.ids.push( icon.id ) for ( var k = 0; k < icon.keywords.length; k++ ) { keywords.push(icon.keywords[k]); @@ -63,6 +73,12 @@ $("#browse-icons").click(); server.respond(); + // check the icon order + var $li = $("#iconselector_icons li"); + $.each(icons.ids, function(index,id) { + equals($li.eq(index).attr("id"), "iconselector_item_"+id, "matches expected order") + }) + $("#iconselector_icons .keyword:contains('animated')").click(); equals( $select.val(), "", "one click doesn't do anything"); --------------------------------------------------------------------------------