Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
7706a86d
Commit
7706a86d
authored
May 03, 2017
by
Clement Ho
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Resolve FE conflicts
parent
07175a5f
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
140 additions
and
381 deletions
+140
-381
app/assets/javascripts/boards/components/board_sidebar.js
app/assets/javascripts/boards/components/board_sidebar.js
+54
-109
app/assets/javascripts/boards/components/issue_card_inner.js
app/assets/javascripts/boards/components/issue_card_inner.js
+79
-182
app/assets/javascripts/boards/components/new_list_dropdown.js
...assets/javascripts/boards/components/new_list_dropdown.js
+3
-16
app/assets/javascripts/users_select.js
app/assets/javascripts/users_select.js
+0
-42
app/assets/stylesheets/pages/boards.scss
app/assets/stylesheets/pages/boards.scss
+0
-7
app/assets/stylesheets/pages/issuable.scss
app/assets/stylesheets/pages/issuable.scss
+2
-10
app/views/shared/issuable/_sidebar.html.haml
app/views/shared/issuable/_sidebar.html.haml
+1
-6
config/webpack.config.js
config/webpack.config.js
+1
-9
No files found.
app/assets/javascripts/boards/components/board_sidebar.js
View file @
7706a86d
...
...
@@ -18,48 +18,6 @@ const Store = gl.issueBoards.BoardsStore;
window
.
gl
=
window
.
gl
||
{};
window
.
gl
.
issueBoards
=
window
.
gl
.
issueBoards
||
{};
<<<<<<<
HEAD
gl
.
issueBoards
.
BoardSidebar
=
Vue
.
extend
({
props
:
{
currentUser
:
Object
},
data
()
{
return
{
detail
:
Store
.
detail
,
issue
:
{},
list
:
{},
loadingAssignees
:
false
,
};
},
computed
:
{
showSidebar
()
{
return
Object
.
keys
(
this
.
issue
).
length
;
}
},
watch
:
{
detail
:
{
handler
()
{
if
(
this
.
issue
.
id
!==
this
.
detail
.
issue
.
id
)
{
$
(
'
.js-issue-board-sidebar
'
,
this
.
$el
).
each
((
i
,
el
)
=>
{
$
(
el
).
data
(
'
glDropdown
'
).
clearMenu
();
});
}
this
.
issue
=
this
.
detail
.
issue
;
this
.
list
=
this
.
detail
.
list
;
this
.
$nextTick
(()
=>
{
this
.
endpoint
=
this
.
$refs
.
assigneeDropdown
.
dataset
.
issueUpdate
;
});
},
deep
:
true
},
issue
()
{
if
(
this
.
showSidebar
)
{
this
.
$nextTick
(()
=>
{
$
(
'
.right-sidebar
'
).
getNiceScroll
(
0
).
doScrollTop
(
0
,
0
);
$
(
'
.right-sidebar
'
).
getNiceScroll
().
resize
();
=======
gl
.
issueBoards
.
BoardSidebar
=
Vue
.
extend
({
props
:
{
currentUser
:
Object
...
...
@@ -69,6 +27,7 @@ gl.issueBoards.BoardSidebar = Vue.extend({
detail
:
Store
.
detail
,
issue
:
{},
list
:
{},
loadingAssignees
:
false
,
};
},
computed
:
{
...
...
@@ -82,78 +41,18 @@ gl.issueBoards.BoardSidebar = Vue.extend({
if
(
this
.
issue
.
id
!==
this
.
detail
.
issue
.
id
)
{
$
(
'
.js-issue-board-sidebar
'
,
this
.
$el
).
each
((
i
,
el
)
=>
{
$
(
el
).
data
(
'
glDropdown
'
).
clearMenu
();
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
});
}
this
.
issue
=
this
.
detail
.
issue
;
this
.
list
=
this
.
detail
.
list
;
},
deep
:
true
},
<<<<<<<
HEAD
methods
:
{
closeSidebar
()
{
this
.
detail
.
issue
=
{};
},
assignSelf
()
{
// Notify gl dropdown that we are now assigning to current user
this
.
$refs
.
assigneeBlock
.
dispatchEvent
(
new
Event
(
'
assignYourself
'
));
this
.
addAssignee
(
this
.
currentUser
);
this
.
saveAssignees
();
},
removeAssignee
(
a
)
{
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
removeAssignee
(
a
);
},
addAssignee
(
a
)
{
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
addAssignee
(
a
);
},
removeAllAssignees
()
{
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
removeAllAssignees
();
},
saveAssignees
()
{
this
.
loadingAssignees
=
true
;
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
update
(
this
.
endpoint
)
.
then
(()
=>
{
this
.
loadingAssignees
=
false
;
})
.
catch
(()
=>
{
this
.
loadingAssignees
=
false
;
return
new
Flash
(
'
An error occurred while saving assignees
'
);
});
this
.
$nextTick
(()
=>
{
this
.
endpoint
=
this
.
$refs
.
assigneeDropdown
.
dataset
.
issueUpdate
;
});
},
deep
:
true
},
created
()
{
// Get events from glDropdown
eventHub
.
$on
(
'
sidebar.removeAssignee
'
,
this
.
removeAssignee
);
eventHub
.
$on
(
'
sidebar.addAssignee
'
,
this
.
addAssignee
);
eventHub
.
$on
(
'
sidebar.removeAllAssignees
'
,
this
.
removeAllAssignees
);
eventHub
.
$on
(
'
sidebar.saveAssignees
'
,
this
.
saveAssignees
);
},
beforeDestroy
()
{
eventHub
.
$off
(
'
sidebar.removeAssignee
'
,
this
.
removeAssignee
);
eventHub
.
$off
(
'
sidebar.addAssignee
'
,
this
.
addAssignee
);
eventHub
.
$off
(
'
sidebar.removeAllAssignees
'
,
this
.
removeAllAssignees
);
eventHub
.
$off
(
'
sidebar.saveAssignees
'
,
this
.
saveAssignees
);
},
mounted
()
{
new
IssuableContext
(
this
.
currentUser
);
new
MilestoneSelect
();
new
gl
.
DueDateSelectors
();
new
LabelsSelect
();
new
Sidebar
();
gl
.
Subscription
.
bindAll
(
'
.subscription
'
);
},
components
:
{
removeBtn
:
gl
.
issueBoards
.
RemoveIssueBtn
,
'
assignee-title
'
:
AssigneeTitle
,
assignees
:
Assignees
,
},
});
})();
=======
issue
()
{
if
(
this
.
showSidebar
)
{
this
.
$nextTick
(()
=>
{
...
...
@@ -161,12 +60,57 @@ gl.issueBoards.BoardSidebar = Vue.extend({
$
(
'
.right-sidebar
'
).
getNiceScroll
().
resize
();
});
}
}
this
.
issue
=
this
.
detail
.
issue
;
this
.
list
=
this
.
detail
.
list
;
},
deep
:
true
},
methods
:
{
closeSidebar
()
{
this
.
detail
.
issue
=
{};
}
},
assignSelf
()
{
// Notify gl dropdown that we are now assigning to current user
this
.
$refs
.
assigneeBlock
.
dispatchEvent
(
new
Event
(
'
assignYourself
'
));
this
.
addAssignee
(
this
.
currentUser
);
this
.
saveAssignees
();
},
removeAssignee
(
a
)
{
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
removeAssignee
(
a
);
},
addAssignee
(
a
)
{
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
addAssignee
(
a
);
},
removeAllAssignees
()
{
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
removeAllAssignees
();
},
saveAssignees
()
{
this
.
loadingAssignees
=
true
;
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
update
(
this
.
endpoint
)
.
then
(()
=>
{
this
.
loadingAssignees
=
false
;
})
.
catch
(()
=>
{
this
.
loadingAssignees
=
false
;
return
new
Flash
(
'
An error occurred while saving assignees
'
);
});
},
},
created
()
{
// Get events from glDropdown
eventHub
.
$on
(
'
sidebar.removeAssignee
'
,
this
.
removeAssignee
);
eventHub
.
$on
(
'
sidebar.addAssignee
'
,
this
.
addAssignee
);
eventHub
.
$on
(
'
sidebar.removeAllAssignees
'
,
this
.
removeAllAssignees
);
eventHub
.
$on
(
'
sidebar.saveAssignees
'
,
this
.
saveAssignees
);
},
beforeDestroy
()
{
eventHub
.
$off
(
'
sidebar.removeAssignee
'
,
this
.
removeAssignee
);
eventHub
.
$off
(
'
sidebar.addAssignee
'
,
this
.
addAssignee
);
eventHub
.
$off
(
'
sidebar.removeAllAssignees
'
,
this
.
removeAllAssignees
);
eventHub
.
$off
(
'
sidebar.saveAssignees
'
,
this
.
saveAssignees
);
},
mounted
()
{
new
IssuableContext
(
this
.
currentUser
);
...
...
@@ -178,6 +122,7 @@ gl.issueBoards.BoardSidebar = Vue.extend({
},
components
:
{
removeBtn
:
gl
.
issueBoards
.
RemoveIssueBtn
,
'
assignee-title
'
:
AssigneeTitle
,
assignees
:
Assignees
,
},
});
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
app/assets/javascripts/boards/components/issue_card_inner.js
View file @
7706a86d
...
...
@@ -6,96 +6,6 @@ const Store = gl.issueBoards.BoardsStore;
window
.
gl
=
window
.
gl
||
{};
window
.
gl
.
issueBoards
=
window
.
gl
.
issueBoards
||
{};
<<<<<<<
HEAD
gl
.
issueBoards
.
IssueCardInner
=
Vue
.
extend
({
props
:
{
issue
:
{
type
:
Object
,
required
:
true
,
},
issueLinkBase
:
{
type
:
String
,
required
:
true
,
},
list
:
{
type
:
Object
,
required
:
false
,
default
:
()
=>
({}),
},
rootPath
:
{
type
:
String
,
required
:
true
,
},
updateFilters
:
{
type
:
Boolean
,
required
:
false
,
default
:
false
,
},
},
data
()
{
return
{
limitBeforeCounter
:
3
,
maxRender
:
4
,
maxCounter
:
99
,
};
},
computed
:
{
numberOverLimit
()
{
return
this
.
issue
.
assignees
.
length
-
this
.
limitBeforeCounter
;
},
assigneeCounterTooltip
()
{
return
`
${
this
.
assigneeCounterLabel
}
more`
;
},
assigneeCounterLabel
()
{
if
(
this
.
numberOverLimit
>
this
.
maxCounter
)
{
return
`
${
this
.
maxCounter
}
+`
;
}
return
`+
${
this
.
numberOverLimit
}
`
;
},
shouldRenderCounter
()
{
if
(
this
.
issue
.
assignees
.
length
<=
this
.
maxRender
)
{
return
false
;
}
return
this
.
issue
.
assignees
.
length
>
this
.
numberOverLimit
;
},
cardUrl
()
{
return
`
${
this
.
issueLinkBase
}
/
${
this
.
issue
.
id
}
`
;
},
issueId
()
{
return
`#
${
this
.
issue
.
id
}
`
;
},
showLabelFooter
()
{
return
this
.
issue
.
labels
.
find
(
l
=>
this
.
showLabel
(
l
))
!==
undefined
;
},
},
methods
:
{
isIndexLessThanlimit
(
index
)
{
return
index
<
this
.
limitBeforeCounter
;
},
shouldRenderAssignee
(
index
)
{
// Eg. maxRender is 4,
// Render up to all 4 assignees if there are only 4 assigness
// Otherwise render up to the limitBeforeCounter
if
(
this
.
issue
.
assignees
.
length
<=
this
.
maxRender
)
{
return
index
<
this
.
maxRender
;
}
return
index
<
this
.
limitBeforeCounter
;
},
assigneeUrl
(
assignee
)
{
return
`
${
this
.
rootPath
}${
assignee
.
username
}
`
;
},
assigneeUrlTitle
(
assignee
)
{
return
`Assigned to
${
assignee
.
name
}
`
;
},
avatarUrlTitle
(
assignee
)
{
return
`Avatar for
${
assignee
.
name
}
`
;
},
showLabel
(
label
)
{
if
(
!
this
.
list
)
return
true
;
=======
gl
.
issueBoards
.
IssueCardInner
=
Vue
.
extend
({
props
:
{
issue
:
{
...
...
@@ -121,18 +31,36 @@ gl.issueBoards.IssueCardInner = Vue.extend({
default
:
false
,
},
},
data
()
{
return
{
limitBeforeCounter
:
3
,
maxRender
:
4
,
maxCounter
:
99
,
};
},
computed
:
{
cardUrl
()
{
return
`
${
this
.
issueLinkBase
}
/
${
this
.
issue
.
id
}
`
;
numberOverLimit
()
{
return
this
.
issue
.
assignees
.
length
-
this
.
limitBeforeCounter
;
},
assignee
Url
()
{
return
`
${
this
.
rootPath
}${
this
.
issue
.
assignee
.
username
}
`
;
assignee
CounterTooltip
()
{
return
`
${
this
.
assigneeCounterLabel
}
more
`
;
},
assigneeUrlTitle
()
{
return
`Assigned to
${
this
.
issue
.
assignee
.
name
}
`
;
assigneeCounterLabel
()
{
if
(
this
.
numberOverLimit
>
this
.
maxCounter
)
{
return
`
${
this
.
maxCounter
}
+`
;
}
return
`+
${
this
.
numberOverLimit
}
`
;
},
avatarUrlTitle
()
{
return
`Avatar for
${
this
.
issue
.
assignee
.
name
}
`
;
shouldRenderCounter
()
{
if
(
this
.
issue
.
assignees
.
length
<=
this
.
maxRender
)
{
return
false
;
}
return
this
.
issue
.
assignees
.
length
>
this
.
numberOverLimit
;
},
cardUrl
()
{
return
`
${
this
.
issueLinkBase
}
/
${
this
.
issue
.
id
}
`
;
},
issueId
()
{
return
`#
${
this
.
issue
.
id
}
`
;
...
...
@@ -142,9 +70,30 @@ gl.issueBoards.IssueCardInner = Vue.extend({
},
},
methods
:
{
isIndexLessThanlimit
(
index
)
{
return
index
<
this
.
limitBeforeCounter
;
},
shouldRenderAssignee
(
index
)
{
// Eg. maxRender is 4,
// Render up to all 4 assignees if there are only 4 assigness
// Otherwise render up to the limitBeforeCounter
if
(
this
.
issue
.
assignees
.
length
<=
this
.
maxRender
)
{
return
index
<
this
.
maxRender
;
}
return
index
<
this
.
limitBeforeCounter
;
},
assigneeUrl
(
assignee
)
{
return
`
${
this
.
rootPath
}${
assignee
.
username
}
`
;
},
assigneeUrlTitle
(
assignee
)
{
return
`Assigned to
${
assignee
.
name
}
`
;
},
avatarUrlTitle
(
assignee
)
{
return
`Avatar for
${
assignee
.
name
}
`
;
},
showLabel
(
label
)
{
if
(
!
this
.
list
)
return
true
;
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
return
!
this
.
list
.
label
||
label
.
id
!==
this
.
list
.
label
.
id
;
},
...
...
@@ -175,71 +124,6 @@ gl.issueBoards.IssueCardInner = Vue.extend({
color
:
label
.
textColor
,
};
},
<<<<<<<
HEAD
template
:
`
<div>
<div class="card-header">
<h4 class="card-title">
<i
class="fa fa-eye-slash confidential-icon"
v-if="issue.confidential"
aria-hidden="true"
/>
<a
class="js-no-trigger"
:href="cardUrl"
:title="issue.title">{{ issue.title }}</a>
<span
class="card-number"
v-if="issue.id"
>
{{ issueId }}
</span>
</h4>
<div class="card-assignee">
<a
class="has-tooltip js-no-trigger"
:href="assigneeUrl(assignee)"
:title="assigneeUrlTitle(assignee)"
v-for="(assignee, index) in issue.assignees"
v-if="shouldRenderAssignee(index)"
data-container="body"
data-placement="bottom"
>
<img
class="avatar avatar-inline s20"
:src="assignee.avatarUrl"
width="20"
height="20"
:alt="avatarUrlTitle(assignee)"
/>
</a>
<span
class="avatar-counter has-tooltip"
:title="assigneeCounterTooltip"
v-if="shouldRenderCounter"
>
{{ assigneeCounterLabel }}
</span>
</div>
</div>
<div
class="card-footer"
v-if="showLabelFooter"
>
<button
class="label color-label has-tooltip"
v-for="label in issue.labels"
type="button"
v-if="showLabel(label)"
@click="filterByLabel(label, $event)"
:style="labelStyle(label)"
:title="label.description"
data-container="body">
{{ label.title }}
</button>
</div>
=======
},
template
:
`
<div>
...
...
@@ -261,25 +145,39 @@ gl.issueBoards.IssueCardInner = Vue.extend({
{{ issueId }}
</span>
</h4>
<
a
class
=
"
card-assignee has-tooltip js-no-trigger
"
:
href
=
"
assigneeUrl
"
:
title
=
"
assigneeUrlTitle
"
v
-
if
=
"
issue.assignee
"
data
-
container
=
"
body
"
>
<
img
class
=
"
avatar avatar-inline s20 js-no-trigger
"
:
src
=
"
issue.assignee.avatar
"
width
=
"
20
"
height
=
"
20
"
:
alt
=
"
avatarUrlTitle
"
/>
<
/a
>
<div class="card-assignee">
<a
class="has-tooltip js-no-trigger"
:href="assigneeUrl(assignee)"
:title="assigneeUrlTitle(assignee)"
v-for="(assignee, index) in issue.assignees"
v-if="shouldRenderAssignee(index)"
data-container="body"
data-placement="bottom"
>
<img
class="avatar avatar-inline s20"
:src="assignee.avatarUrl"
width="20"
height="20"
:alt="avatarUrlTitle(assignee)"
/>
</a>
<span
class="avatar-counter has-tooltip"
:title="assigneeCounterTooltip"
v-if="shouldRenderCounter"
>
{{ assigneeCounterLabel }}
</span>
</div>
</div>
<
div
class
=
"
card-footer
"
v
-
if
=
"
showLabelFooter
"
>
<div
class="card-footer"
v-if="showLabelFooter"
>
<button
class
=
"
label color-label has-tooltip
js-no-trigger
"
class="label color-label has-tooltip"
v-for="label in issue.labels"
type="button"
v-if="showLabel(label)"
...
...
@@ -289,7 +187,6 @@ gl.issueBoards.IssueCardInner = Vue.extend({
data-container="body">
{{ label.title }}
</button>
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
</div>
</div>
`
,
...
...
app/assets/javascripts/boards/components/new_list_dropdown.js
View file @
7706a86d
...
...
@@ -44,20 +44,6 @@ gl.issueBoards.newListDropdownInit = () => {
style
:
`background-color:
${
label
.
color
}
`
});
<<<<<<<
HEAD
return
$li
.
append
(
$a
.
prepend
(
$labelColor
));
},
search
:
{
fields
:
[
'
title
'
]
},
filterable
:
true
,
selectable
:
true
,
multiSelect
:
true
,
clicked
(
options
)
{
const
{
e
}
=
options
;
const
label
=
options
.
selectedObj
;
e
.
preventDefault
();
=======
return
$li
.
append
(
$a
.
prepend
(
$labelColor
));
},
search
:
{
...
...
@@ -66,9 +52,10 @@ gl.issueBoards.newListDropdownInit = () => {
filterable
:
true
,
selectable
:
true
,
multiSelect
:
true
,
clicked
(
label
,
$el
,
e
)
{
clicked
(
options
)
{
const
{
e
}
=
options
;
const
label
=
options
.
selectedObj
;
e
.
preventDefault
();
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
if
(
!
Store
.
findList
(
'
title
'
,
label
.
title
))
{
Store
.
new
({
...
...
app/assets/javascripts/users_select.js
View file @
7706a86d
/* eslint-disable func-names, space-before-function-paren, one-var, no-var, prefer-rest-params, wrap-iife, quotes, max-len, one-var-declaration-per-line, vars-on-top, prefer-arrow-callback, consistent-return, comma-dangle, object-shorthand, no-shadow, no-unused-vars, no-else-return, no-self-compare, prefer-template, no-unused-expressions, no-lonely-if, yoda, prefer-spread, no-void, camelcase, no-param-reassign */
/* global Issuable */
<<<<<<<
HEAD
import
eventHub
from
'
./sidebar/event_hub
'
;
=======
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
(
function
()
{
var
bind
=
function
(
fn
,
me
)
{
return
function
()
{
return
fn
.
apply
(
me
,
arguments
);
};
},
slice
=
[].
slice
;
...
...
@@ -56,7 +53,6 @@ import eventHub from './sidebar/event_hub';
$collapsedSidebar
=
$block
.
find
(
'
.sidebar-collapsed-user
'
);
$loading
=
$block
.
find
(
'
.block-loading
'
).
fadeOut
();
<<<<<<<
HEAD
const
assignYourself
=
function
()
{
const
unassignedSelected
=
$dropdown
.
closest
(
'
.selectbox
'
)
.
find
(
`input[name='
${
$dropdown
.
data
(
'
field-name
'
)}
'][value=0]`
);
...
...
@@ -119,35 +115,14 @@ import eventHub from './sidebar/event_hub';
}
else
{
return
`
${
firstUser
.
name
}
+
${
selectedUsers
.
length
-
1
}
more`
;
}
=======
var
updateIssueBoardsIssue
=
function
()
{
$loading
.
removeClass
(
'
hidden
'
).
fadeIn
();
gl
.
issueBoards
.
BoardsStore
.
detail
.
issue
.
update
(
$dropdown
.
attr
(
'
data-issue-update
'
))
.
then
(
function
()
{
$loading
.
fadeOut
();
})
.
catch
(
function
()
{
$loading
.
fadeOut
();
});
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
};
$
(
'
.assign-to-me-link
'
).
on
(
'
click
'
,
(
e
)
=>
{
e
.
preventDefault
();
$
(
e
.
currentTarget
).
hide
();
<<<<<<<
HEAD
if
(
$dropdown
.
data
(
'
multiSelect
'
))
{
assignYourself
();
=======
if
(
$dropdown
.
hasClass
(
'
js-issue-board-sidebar
'
))
{
gl
.
issueBoards
.
boardStoreIssueSet
(
'
assignee
'
,
new
ListUser
({
id
:
_this
.
currentUser
.
id
,
username
:
_this
.
currentUser
.
username
,
name
:
_this
.
currentUser
.
name
,
avatar_url
:
_this
.
currentUser
.
avatar_url
}));
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
const
currentUserInfo
=
$dropdown
.
data
(
'
currentUserInfo
'
);
$dropdown
.
find
(
'
.dropdown-toggle-text
'
).
text
(
getMultiSelectDropdownTitle
(
currentUserInfo
)).
removeClass
(
'
is-default
'
);
...
...
@@ -429,24 +404,7 @@ import eventHub from './sidebar/event_hub';
return
Issuable
.
filterResults
(
$dropdown
.
closest
(
'
form
'
));
}
else
if
(
$dropdown
.
hasClass
(
'
js-filter-submit
'
))
{
return
$dropdown
.
closest
(
'
form
'
).
submit
();
<<<<<<<
HEAD
}
else
if
(
!
$dropdown
.
hasClass
(
'
js-multiselect
'
))
{
=======
}
else
if
(
$dropdown
.
hasClass
(
'
js-issue-board-sidebar
'
))
{
if
(
user
.
id
)
{
gl
.
issueBoards
.
boardStoreIssueSet
(
'
assignee
'
,
new
ListUser
({
id
:
user
.
id
,
username
:
user
.
username
,
name
:
user
.
name
,
avatar_url
:
user
.
avatar_url
}));
}
else
{
gl
.
issueBoards
.
boardStoreIssueDelete
(
'
assignee
'
);
}
updateIssueBoardsIssue
();
}
else
{
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
selected
=
$dropdown
.
closest
(
'
.selectbox
'
).
find
(
"
input[name='
"
+
(
$dropdown
.
data
(
'
field-name
'
))
+
"
']
"
).
val
();
return
assignTo
(
selected
);
}
...
...
app/assets/stylesheets/pages/boards.scss
View file @
7706a86d
...
...
@@ -274,7 +274,6 @@
min-height
:
20px
;
.card-assignee
{
<<<<<<<
HEAD
display
:
flex
;
justify-content
:
flex-end
;
position
:
absolute
;
...
...
@@ -338,12 +337,6 @@
}
}
}
=======
margin-left
:
auto
;
margin-right
:
5px
;
padding-left
:
10px
;
height
:
20px
;
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
}
.avatar
{
...
...
app/assets/stylesheets/pages/issuable.scss
View file @
7706a86d
...
...
@@ -215,17 +215,10 @@
}
}
<<<<<<<
HEAD
.assign-yourself
.btn-link
{
padding-left
:
0
;
}
.bold
{
font-weight
:
600
;
}
=======
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
.light
{
font-weight
:
normal
;
}
...
...
@@ -316,13 +309,12 @@
margin-top
:
0
;
}
<<<<<<<
HEAD
.sidebar-avatar-counter
{
padding-top
:
2px
;
=======
}
.todo-undone
{
color
:
$gl-link-color
;
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
}
.author
{
...
...
app/views/shared/issuable/_sidebar.html.haml
View file @
7706a86d
...
...
@@ -3,13 +3,8 @@
=
page_specific_javascript_bundle_tag
(
'common_vue'
)
=
page_specific_javascript_bundle_tag
(
'sidebar'
)
<
<<<<<<
HEAD
%aside
.right-sidebar.js-right-sidebar
{
data:
{
"offset-top"
=>
"101"
,
"spy"
=>
"affix"
},
class:
sidebar_gutter_collapsed_class
,
'aria-live'
=>
'polite'
}
.issuable-sidebar
{
data:
{
endpoint:
"#{issuable_json_path(issuable)}"
}
}
==
=====
%aside
.right-sidebar.js-right-sidebar
{
data:
{
"offset-top"
=>
"102"
,
"spy"
=>
"affix"
},
class:
sidebar_gutter_collapsed_class
,
'aria-live'
=>
'polite'
}
.issuable-sidebar
>
>>>>>> ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
.issuable-sidebar
{
data:
{
endpoint:
"#{issuable_json_path(issuable)}"
}
}
-
can_edit_issuable
=
can?
(
current_user
,
:"admin_
#{
issuable
.
to_ability_name
}
"
,
@project
)
.block.issuable-sidebar-header
-
if
current_user
...
...
config/webpack.config.js
View file @
7706a86d
...
...
@@ -35,13 +35,8 @@ var config = {
group
:
'
./group.js
'
,
groups_list
:
'
./groups_list.js
'
,
issues
:
'
./issues/issues_bundle.js
'
,
<<<<<<<
HEAD
sidebar
:
'
./sidebar/sidebar_bundle.js
'
,
=======
issuable
:
'
./issuable/issuable_bundle.js
'
,
issue_show
:
'
./issue_show/index.js
'
,
main
:
'
./main.js
'
,
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
merge_conflicts
:
'
./merge_conflicts/merge_conflicts_bundle.js
'
,
merge_request_widget
:
'
./merge_request_widget/ci_bundle.js
'
,
mr_widget_ee
:
'
./merge_request_widget/widget_bundle.js
'
,
...
...
@@ -53,6 +48,7 @@ var config = {
profile
:
'
./profile/profile_bundle.js
'
,
protected_branches
:
'
./protected_branches/protected_branches_bundle.js
'
,
protected_tags
:
'
./protected_tags
'
,
sidebar
:
'
./sidebar/sidebar_bundle.js
'
,
snippet
:
'
./snippet/snippet_bundle.js
'
,
sketch_viewer
:
'
./blob/sketch_viewer.js
'
,
stl_viewer
:
'
./blob/stl_viewer.js
'
,
...
...
@@ -127,12 +123,8 @@ var config = {
'
diff_notes
'
,
'
environments
'
,
'
environments_folder
'
,
<<<<<<<
HEAD
'
sidebar
'
,
=======
'
issuable
'
,
'
issue_show
'
,
>>>>>>>
ebe5fef5b52c6561be470e7f0b2a173d81bc64c0
'
merge_conflicts
'
,
'
notebook_viewer
'
,
'
pdf_viewer
'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment