# HG changeset patch # User Mads Kiilerich # Date 2013-03-07 18:00:28 # Node ID ff3f10a6a2033ed6f0f7e5f48881ea9f8711fcf3 # Parent e1568c0bac1fcc6ae6dd015a3abfe774ebb2fb74 pullrequest: just replace children of other_ref when other_repo changes We were inserting a full select statement as innerHTML of a select and would thus get nested select statements. IE did not render that correctly ... and other browsers did strange things. Instead we now create a in memory DOM object and move the optgroups. After appending children to the selector we have to set selectedIndex on all browsers. diff --git a/rhodecode/public/js/rhodecode.js b/rhodecode/public/js/rhodecode.js --- a/rhodecode/public/js/rhodecode.js +++ b/rhodecode/public/js/rhodecode.js @@ -86,19 +86,6 @@ var prevElementSibling = function( el ) } } -var setSelectValue = function(select, val){ - var selection = YUD.get(select); - - // select element - for(var i=0;i 0){ // children will be popped when appened to other_ref_selector + other_ref_selector.appendChild(new_select.children[0]); + } + // browsers lost track of selected when appendChild was used + other_ref_selector.selectedIndex = new_selectedIndex; + // reset && add the reviewer based on selected repo var _data = other_repos_info[repo_name]; - YUD.get('other_repo_desc').innerHTML = other_repos_info[repo_name]['description']; - YUD.get('other_ref').innerHTML = other_repos_info[repo_name]['revs']; - // select back the revision that was just compared - setSelectValue(YUD.get('other_ref'), rev_data['other_ref']); - // reset && add the reviewer based on selected repo YUD.get('review_members').innerHTML = ''; addReviewMember(_data.user.user_id, _data.user.firstname, _data.user.lastname, _data.user.username, @@ -182,8 +189,6 @@ YUE.on('other_repo', 'change', function(e){ var repo_name = e.currentTarget.value; - // replace the