Resolve "View labels when editing labels in sidebar and board sidebar"
This commit is contained in:
		
							parent
							
								
									8cce96b189
								
							
						
					
					
						commit
						c352f695d7
					
				|  | @ -30,10 +30,10 @@ export default class IssuableContext { | ||||||
|         const $selectbox = $block.find('.selectbox'); |         const $selectbox = $block.find('.selectbox'); | ||||||
|         if ($selectbox.is(':visible')) { |         if ($selectbox.is(':visible')) { | ||||||
|           $selectbox.hide(); |           $selectbox.hide(); | ||||||
|           $block.find('.value').show(); |           $block.find('.value:not(.dont-hide)').show(); | ||||||
|         } else { |         } else { | ||||||
|           $selectbox.show(); |           $selectbox.show(); | ||||||
|           $block.find('.value').hide(); |           $block.find('.value:not(.dont-hide)').hide(); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         if ($selectbox.is(':visible')) { |         if ($selectbox.is(':visible')) { | ||||||
|  |  | ||||||
|  | @ -16,7 +16,7 @@ | ||||||
| .nav-header-btn { | .nav-header-btn { | ||||||
|   padding: 10px $gl-sidebar-padding; |   padding: 10px $gl-sidebar-padding; | ||||||
|   color: inherit; |   color: inherit; | ||||||
|   transition-duration: .3s; |   transition-duration: 0.3s; | ||||||
|   position: absolute; |   position: absolute; | ||||||
|   top: 0; |   top: 0; | ||||||
|   cursor: pointer; |   cursor: pointer; | ||||||
|  | @ -137,6 +137,12 @@ | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | .issuable-sidebar .labels { | ||||||
|  |   .value.dont-hide ~ .selectbox { | ||||||
|  |     padding-top: $gl-padding-8; | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| .pikaday-container { | .pikaday-container { | ||||||
|   .pika-single { |   .pika-single { | ||||||
|     margin-top: 2px; |     margin-top: 2px; | ||||||
|  | @ -151,4 +157,3 @@ | ||||||
| .sidebar-collapsed-icon .sidebar-collapsed-value { | .sidebar-collapsed-icon .sidebar-collapsed-value { | ||||||
|   font-size: 12px; |   font-size: 12px; | ||||||
| } | } | ||||||
| 
 |  | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
|     - if can_admin_issue? |     - if can_admin_issue? | ||||||
|       = icon("spinner spin", class: "block-loading") |       = icon("spinner spin", class: "block-loading") | ||||||
|       = link_to "Edit", "#", class: "js-sidebar-dropdown-toggle edit-link pull-right" |       = link_to "Edit", "#", class: "js-sidebar-dropdown-toggle edit-link pull-right" | ||||||
|   .value.issuable-show-labels |   .value.issuable-show-labels.dont-hide | ||||||
|     %span.no-value{ "v-if" => "issue.labels && issue.labels.length === 0" } |     %span.no-value{ "v-if" => "issue.labels && issue.labels.length === 0" } | ||||||
|       None |       None | ||||||
|     %a{ href: "#", |     %a{ href: "#", | ||||||
|  |  | ||||||
|  | @ -96,7 +96,7 @@ | ||||||
|             = icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true') |             = icon('spinner spin', class: 'hidden block-loading', 'aria-hidden': 'true') | ||||||
|             - if can_edit_issuable |             - if can_edit_issuable | ||||||
|               = link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link pull-right' |               = link_to _('Edit'), '#', class: 'js-sidebar-dropdown-toggle edit-link pull-right' | ||||||
|           .value.issuable-show-labels.hide-collapsed{ class: ("has-labels" if selected_labels.any?) } |           .value.issuable-show-labels.dont-hide.hide-collapsed{ class: ("has-labels" if selected_labels.any?) } | ||||||
|             - if selected_labels.any? |             - if selected_labels.any? | ||||||
|               - selected_labels.each do |label| |               - selected_labels.each do |label| | ||||||
|                 = link_to_label(label, subject: issuable.project, type: issuable.to_ability_name) |                 = link_to_label(label, subject: issuable.project, type: issuable.to_ability_name) | ||||||
|  |  | ||||||
|  | @ -0,0 +1,5 @@ | ||||||
|  | --- | ||||||
|  | title: Keep current labels visible when editing them in the sidebar | ||||||
|  | merge_request: | ||||||
|  | author: | ||||||
|  | type: changed | ||||||
|  | @ -237,6 +237,22 @@ describe 'Issue Boards', :js do | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   context 'labels' do |   context 'labels' do | ||||||
|  |     it 'shows current labels when editing' do | ||||||
|  |       click_card(card) | ||||||
|  | 
 | ||||||
|  |       page.within('.labels') do | ||||||
|  |         click_link 'Edit' | ||||||
|  | 
 | ||||||
|  |         wait_for_requests | ||||||
|  | 
 | ||||||
|  |         page.within('.value') do | ||||||
|  |           expect(page).to have_selector('.label', count: 2) | ||||||
|  |           expect(page).to have_content(development.title) | ||||||
|  |           expect(page).to have_content(stretch.title) | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|     it 'adds a single label' do |     it 'adds a single label' do | ||||||
|       click_card(card) |       click_card(card) | ||||||
| 
 | 
 | ||||||
|  | @ -296,7 +312,9 @@ describe 'Issue Boards', :js do | ||||||
| 
 | 
 | ||||||
|         wait_for_requests |         wait_for_requests | ||||||
| 
 | 
 | ||||||
|  |         within('.dropdown-menu-labels') do | ||||||
|           click_link stretch.title |           click_link stretch.title | ||||||
|  |         end | ||||||
| 
 | 
 | ||||||
|         wait_for_requests |         wait_for_requests | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -5,9 +5,9 @@ feature 'Issue Sidebar' do | ||||||
| 
 | 
 | ||||||
|   let(:group) { create(:group, :nested) } |   let(:group) { create(:group, :nested) } | ||||||
|   let(:project) { create(:project, :public, namespace: group) } |   let(:project) { create(:project, :public, namespace: group) } | ||||||
|   let(:issue) { create(:issue, project: project) } |  | ||||||
|   let!(:user) { create(:user)} |   let!(:user) { create(:user)} | ||||||
|   let!(:label) { create(:label, project: project, title: 'bug') } |   let!(:label) { create(:label, project: project, title: 'bug') } | ||||||
|  |   let(:issue) { create(:labeled_issue, project: project, labels: [label]) } | ||||||
|   let!(:xss_label) { create(:label, project: project, title: '<script>alert("xss");</script>') } |   let!(:xss_label) { create(:label, project: project, title: '<script>alert("xss");</script>') } | ||||||
| 
 | 
 | ||||||
|   before do |   before do | ||||||
|  | @ -112,11 +112,18 @@ feature 'Issue Sidebar' do | ||||||
| 
 | 
 | ||||||
|     context 'editing issue labels', :js do |     context 'editing issue labels', :js do | ||||||
|       before do |       before do | ||||||
|  |         issue.update_attributes(labels: [label]) | ||||||
|         page.within('.block.labels') do |         page.within('.block.labels') do | ||||||
|           find('.edit-link').click |           find('.edit-link').click | ||||||
|         end |         end | ||||||
|       end |       end | ||||||
| 
 | 
 | ||||||
|  |       it 'shows the current set of labels' do | ||||||
|  |         page.within('.issuable-show-labels') do | ||||||
|  |           expect(page).to have_content label.title | ||||||
|  |         end | ||||||
|  |       end | ||||||
|  | 
 | ||||||
|       it 'shows option to create a project label' do |       it 'shows option to create a project label' do | ||||||
|         page.within('.block.labels') do |         page.within('.block.labels') do | ||||||
|           expect(page).to have_content 'Create project' |           expect(page).to have_content 'Create project' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue