Stops triggering board sidebar when clicking avatar

This commit is contained in:
Phil Hughes 2017-03-27 19:07:44 +01:00
parent ad831ace7e
commit 6765a4e4d3
3 changed files with 23 additions and 6 deletions

View File

@ -50,9 +50,7 @@ export default {
this.showDetail = false; this.showDetail = false;
}, },
showIssue(e) { showIssue(e) {
const targetTagName = e.target.tagName.toLowerCase(); if (e.target.classList.contains('js-no-trigger')) return;
if (targetTagName === 'a' || targetTagName === 'button') return;
if (this.showDetail) { if (this.showDetail) {
this.showDetail = false; this.showDetail = false;

View File

@ -84,20 +84,20 @@ import eventHub from '../eventhub';
#{{ issue.id }} #{{ issue.id }}
</span> </span>
<a <a
class="card-assignee has-tooltip" class="card-assignee has-tooltip js-no-trigger"
:href="rootPath + issue.assignee.username" :href="rootPath + issue.assignee.username"
:title="'Assigned to ' + issue.assignee.name" :title="'Assigned to ' + issue.assignee.name"
v-if="issue.assignee" v-if="issue.assignee"
data-container="body"> data-container="body">
<img <img
class="avatar avatar-inline s20" class="avatar avatar-inline s20 js-no-trigger"
:src="issue.assignee.avatar" :src="issue.assignee.avatar"
width="20" width="20"
height="20" height="20"
:alt="'Avatar for ' + issue.assignee.name" /> :alt="'Avatar for ' + issue.assignee.name" />
</a> </a>
<button <button
class="label color-label has-tooltip" class="label color-label has-tooltip js-no-trigger"
v-for="label in issue.labels" v-for="label in issue.labels"
type="button" type="button"
v-if="showLabel(label)" v-if="showLabel(label)"

View File

@ -1,10 +1,12 @@
/* global List */ /* global List */
/* global ListUser */
/* global ListLabel */ /* global ListLabel */
/* global listObj */ /* global listObj */
/* global boardsMockInterceptor */ /* global boardsMockInterceptor */
/* global BoardService */ /* global BoardService */
import Vue from 'vue'; import Vue from 'vue';
import '~/boards/models/user';
require('~/boards/models/list'); require('~/boards/models/list');
require('~/boards/models/label'); require('~/boards/models/label');
@ -130,6 +132,23 @@ describe('Issue card', () => {
expect(gl.issueBoards.BoardsStore.detail.issue).toEqual({}); expect(gl.issueBoards.BoardsStore.detail.issue).toEqual({});
}); });
it('does not set detail issue if img is clicked', (done) => {
vm.issue.assignee = new ListUser({
id: 1,
name: 'testing 123',
username: 'test',
avatar: 'test_image',
});
Vue.nextTick(() => {
triggerEvent('mouseup', vm.$el.querySelector('img'));
expect(gl.issueBoards.BoardsStore.detail.issue).toEqual({});
done();
});
});
it('does not set detail issue if showDetail is false after mouseup', () => { it('does not set detail issue if showDetail is false after mouseup', () => {
triggerEvent('mouseup'); triggerEvent('mouseup');