Fix FE conflicts
This commit is contained in:
parent
dde9b6698b
commit
4b1d580a84
12 changed files with 1 additions and 358 deletions
|
@ -1,42 +0,0 @@
|
||||||
import Vue from 'vue';
|
|
||||||
import stopwatchSvg from 'icons/_icon_stopwatch.svg';
|
|
||||||
|
|
||||||
require('../../../lib/utils/pretty_time');
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
Vue.component('time-tracking-collapsed-state', {
|
|
||||||
name: 'time-tracking-collapsed-state',
|
|
||||||
props: [
|
|
||||||
'showComparisonState',
|
|
||||||
'showSpentOnlyState',
|
|
||||||
'showEstimateOnlyState',
|
|
||||||
'showNoTimeTrackingState',
|
|
||||||
'timeSpentHumanReadable',
|
|
||||||
'timeEstimateHumanReadable',
|
|
||||||
],
|
|
||||||
methods: {
|
|
||||||
abbreviateTime(timeStr) {
|
|
||||||
return gl.utils.prettyTime.abbreviateTime(timeStr);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
template: `
|
|
||||||
<div class='sidebar-collapsed-icon'>
|
|
||||||
${stopwatchSvg}
|
|
||||||
<div class='time-tracking-collapsed-summary'>
|
|
||||||
<div class='compare' v-if='showComparisonState'>
|
|
||||||
<span>{{ abbreviateTime(timeSpentHumanReadable) }} / {{ abbreviateTime(timeEstimateHumanReadable) }}</span>
|
|
||||||
</div>
|
|
||||||
<div class='estimate-only' v-if='showEstimateOnlyState'>
|
|
||||||
<span class='bold'>-- / {{ abbreviateTime(timeEstimateHumanReadable) }}</span>
|
|
||||||
</div>
|
|
||||||
<div class='spend-only' v-if='showSpentOnlyState'>
|
|
||||||
<span class='bold'>{{ abbreviateTime(timeSpentHumanReadable) }} / --</span>
|
|
||||||
</div>
|
|
||||||
<div class='no-tracking' v-if='showNoTimeTrackingState'>
|
|
||||||
<span class='no-value'>None</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
});
|
|
||||||
})();
|
|
|
@ -1,70 +0,0 @@
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
require('../../../lib/utils/pretty_time');
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
const prettyTime = gl.utils.prettyTime;
|
|
||||||
|
|
||||||
Vue.component('time-tracking-comparison-pane', {
|
|
||||||
name: 'time-tracking-comparison-pane',
|
|
||||||
props: [
|
|
||||||
'timeSpent',
|
|
||||||
'timeEstimate',
|
|
||||||
'timeSpentHumanReadable',
|
|
||||||
'timeEstimateHumanReadable',
|
|
||||||
],
|
|
||||||
computed: {
|
|
||||||
parsedRemaining() {
|
|
||||||
const diffSeconds = this.timeEstimate - this.timeSpent;
|
|
||||||
return prettyTime.parseSeconds(diffSeconds);
|
|
||||||
},
|
|
||||||
timeRemainingHumanReadable() {
|
|
||||||
return prettyTime.stringifyTime(this.parsedRemaining);
|
|
||||||
},
|
|
||||||
timeRemainingTooltip() {
|
|
||||||
const prefix = this.timeRemainingMinutes < 0 ? 'Over by' : 'Time remaining:';
|
|
||||||
return `${prefix} ${this.timeRemainingHumanReadable}`;
|
|
||||||
},
|
|
||||||
/* Diff values for comparison meter */
|
|
||||||
timeRemainingMinutes() {
|
|
||||||
return this.timeEstimate - this.timeSpent;
|
|
||||||
},
|
|
||||||
timeRemainingPercent() {
|
|
||||||
return `${Math.floor((this.timeSpent / this.timeEstimate) * 100)}%`;
|
|
||||||
},
|
|
||||||
timeRemainingStatusClass() {
|
|
||||||
return this.timeEstimate >= this.timeSpent ? 'within_estimate' : 'over_estimate';
|
|
||||||
},
|
|
||||||
/* Parsed time values */
|
|
||||||
parsedEstimate() {
|
|
||||||
return prettyTime.parseSeconds(this.timeEstimate);
|
|
||||||
},
|
|
||||||
parsedSpent() {
|
|
||||||
return prettyTime.parseSeconds(this.timeSpent);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
template: `
|
|
||||||
<div class='time-tracking-comparison-pane'>
|
|
||||||
<div class='compare-meter' data-toggle='tooltip' data-placement='top' role='timeRemainingDisplay'
|
|
||||||
:aria-valuenow='timeRemainingTooltip'
|
|
||||||
:title='timeRemainingTooltip'
|
|
||||||
:data-original-title='timeRemainingTooltip'
|
|
||||||
:class='timeRemainingStatusClass'>
|
|
||||||
<div class='meter-container' role='timeSpentPercent' :aria-valuenow='timeRemainingPercent'>
|
|
||||||
<div :style='{ width: timeRemainingPercent }' class='meter-fill'></div>
|
|
||||||
</div>
|
|
||||||
<div class='compare-display-container'>
|
|
||||||
<div class='compare-display pull-left'>
|
|
||||||
<span class='compare-label'>Spent</span>
|
|
||||||
<span class='compare-value spent'>{{ timeSpentHumanReadable }}</span>
|
|
||||||
</div>
|
|
||||||
<div class='compare-display estimated pull-right'>
|
|
||||||
<span class='compare-label'>Est</span>
|
|
||||||
<span class='compare-value'>{{ timeEstimateHumanReadable }}</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
});
|
|
||||||
})();
|
|
|
@ -1,14 +0,0 @@
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
Vue.component('time-tracking-estimate-only-pane', {
|
|
||||||
name: 'time-tracking-estimate-only-pane',
|
|
||||||
props: ['timeEstimateHumanReadable'],
|
|
||||||
template: `
|
|
||||||
<div class='time-tracking-estimate-only-pane'>
|
|
||||||
<span class='bold'>Estimated:</span>
|
|
||||||
{{ timeEstimateHumanReadable }}
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
});
|
|
||||||
})();
|
|
|
@ -1,25 +0,0 @@
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
Vue.component('time-tracking-help-state', {
|
|
||||||
name: 'time-tracking-help-state',
|
|
||||||
props: ['docsUrl'],
|
|
||||||
template: `
|
|
||||||
<div class='time-tracking-help-state'>
|
|
||||||
<div class='time-tracking-info'>
|
|
||||||
<h4>Track time with slash commands</h4>
|
|
||||||
<p>Slash commands can be used in the issues description and comment boxes.</p>
|
|
||||||
<p>
|
|
||||||
<code>/estimate</code>
|
|
||||||
will update the estimated time with the latest command.
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<code>/spend</code>
|
|
||||||
will update the sum of the time spent.
|
|
||||||
</p>
|
|
||||||
<a class='btn btn-default learn-more-button' :href='docsUrl'>Learn more</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
});
|
|
||||||
})();
|
|
|
@ -1,14 +0,0 @@
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
Vue.component('time-tracking-spent-only-pane', {
|
|
||||||
name: 'time-tracking-spent-only-pane',
|
|
||||||
props: ['timeSpentHumanReadable'],
|
|
||||||
template: `
|
|
||||||
<div class='time-tracking-spend-only-pane'>
|
|
||||||
<span class='bold'>Spent:</span>
|
|
||||||
{{ timeSpentHumanReadable }}
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
});
|
|
||||||
})();
|
|
|
@ -1,117 +0,0 @@
|
||||||
import Vue from 'vue';
|
|
||||||
|
|
||||||
require('./help_state');
|
|
||||||
require('./collapsed_state');
|
|
||||||
require('./spent_only_pane');
|
|
||||||
require('./no_tracking_pane');
|
|
||||||
require('./estimate_only_pane');
|
|
||||||
require('./comparison_pane');
|
|
||||||
|
|
||||||
(() => {
|
|
||||||
Vue.component('issuable-time-tracker', {
|
|
||||||
name: 'issuable-time-tracker',
|
|
||||||
props: [
|
|
||||||
'time_estimate',
|
|
||||||
'time_spent',
|
|
||||||
'human_time_estimate',
|
|
||||||
'human_time_spent',
|
|
||||||
'docsUrl',
|
|
||||||
],
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
showHelp: false,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
timeSpent() {
|
|
||||||
return this.time_spent;
|
|
||||||
},
|
|
||||||
timeEstimate() {
|
|
||||||
return this.time_estimate;
|
|
||||||
},
|
|
||||||
timeEstimateHumanReadable() {
|
|
||||||
return this.human_time_estimate;
|
|
||||||
},
|
|
||||||
timeSpentHumanReadable() {
|
|
||||||
return this.human_time_spent;
|
|
||||||
},
|
|
||||||
hasTimeSpent() {
|
|
||||||
return !!this.timeSpent;
|
|
||||||
},
|
|
||||||
hasTimeEstimate() {
|
|
||||||
return !!this.timeEstimate;
|
|
||||||
},
|
|
||||||
showComparisonState() {
|
|
||||||
return this.hasTimeEstimate && this.hasTimeSpent;
|
|
||||||
},
|
|
||||||
showEstimateOnlyState() {
|
|
||||||
return this.hasTimeEstimate && !this.hasTimeSpent;
|
|
||||||
},
|
|
||||||
showSpentOnlyState() {
|
|
||||||
return this.hasTimeSpent && !this.hasTimeEstimate;
|
|
||||||
},
|
|
||||||
showNoTimeTrackingState() {
|
|
||||||
return !this.hasTimeEstimate && !this.hasTimeSpent;
|
|
||||||
},
|
|
||||||
showHelpState() {
|
|
||||||
return !!this.showHelp;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
toggleHelpState(show) {
|
|
||||||
this.showHelp = show;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
template: `
|
|
||||||
<div class='time_tracker time-tracking-component-wrap' v-cloak>
|
|
||||||
<time-tracking-collapsed-state
|
|
||||||
:show-comparison-state='showComparisonState'
|
|
||||||
:show-help-state='showHelpState'
|
|
||||||
:show-spent-only-state='showSpentOnlyState'
|
|
||||||
:show-estimate-only-state='showEstimateOnlyState'
|
|
||||||
:time-spent-human-readable='timeSpentHumanReadable'
|
|
||||||
:time-estimate-human-readable='timeEstimateHumanReadable'>
|
|
||||||
</time-tracking-collapsed-state>
|
|
||||||
<div class='title hide-collapsed'>
|
|
||||||
Time tracking
|
|
||||||
<div class='help-button pull-right'
|
|
||||||
v-if='!showHelpState'
|
|
||||||
@click='toggleHelpState(true)'>
|
|
||||||
<i class='fa fa-question-circle' aria-hidden='true'></i>
|
|
||||||
</div>
|
|
||||||
<div class='close-help-button pull-right'
|
|
||||||
v-if='showHelpState'
|
|
||||||
@click='toggleHelpState(false)'>
|
|
||||||
<i class='fa fa-close' aria-hidden='true'></i>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class='time-tracking-content hide-collapsed'>
|
|
||||||
<time-tracking-estimate-only-pane
|
|
||||||
v-if='showEstimateOnlyState'
|
|
||||||
:time-estimate-human-readable='timeEstimateHumanReadable'>
|
|
||||||
</time-tracking-estimate-only-pane>
|
|
||||||
<time-tracking-spent-only-pane
|
|
||||||
v-if='showSpentOnlyState'
|
|
||||||
:time-spent-human-readable='timeSpentHumanReadable'>
|
|
||||||
</time-tracking-spent-only-pane>
|
|
||||||
<time-tracking-no-tracking-pane
|
|
||||||
v-if='showNoTimeTrackingState'>
|
|
||||||
</time-tracking-no-tracking-pane>
|
|
||||||
<time-tracking-comparison-pane
|
|
||||||
v-if='showComparisonState'
|
|
||||||
:time-estimate='timeEstimate'
|
|
||||||
:time-spent='timeSpent'
|
|
||||||
:time-spent-human-readable='timeSpentHumanReadable'
|
|
||||||
:time-estimate-human-readable='timeEstimateHumanReadable'>
|
|
||||||
</time-tracking-comparison-pane>
|
|
||||||
<transition name='help-state-toggle'>
|
|
||||||
<time-tracking-help-state
|
|
||||||
v-if='showHelpState'
|
|
||||||
:docs-url='docsUrl'>
|
|
||||||
</time-tracking-help-state>
|
|
||||||
</transition>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
`,
|
|
||||||
});
|
|
||||||
})();
|
|
|
@ -31,27 +31,8 @@
|
||||||
toggleLabel(selected, $el) {
|
toggleLabel(selected, $el) {
|
||||||
return $el.text();
|
return $el.text();
|
||||||
},
|
},
|
||||||
<<<<<<< HEAD
|
|
||||||
clicked: (selected, $link) => {
|
|
||||||
this.formSubmit(null, $link);
|
|
||||||
=======
|
|
||||||
clicked: (options) => {
|
clicked: (options) => {
|
||||||
const $link = options.$el;
|
this.formSubmit(null, options.$el);
|
||||||
|
|
||||||
if (!$link.data('revert')) {
|
|
||||||
this.formSubmit(null, $link);
|
|
||||||
} else {
|
|
||||||
const { $memberListItem, $toggle, $dateInput } = this.getMemberListItems($link);
|
|
||||||
|
|
||||||
$toggle.disable();
|
|
||||||
$dateInput.disable();
|
|
||||||
|
|
||||||
this.overrideLdap($memberListItem, $link.data('endpoint'), false).fail(() => {
|
|
||||||
$toggle.enable();
|
|
||||||
$dateInput.enable();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
>>>>>>> b0a2435... Merge branch 'multiple_assignees_review_upstream' into ee_master
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -121,30 +121,10 @@
|
||||||
return $value.css('display', '');
|
return $value.css('display', '');
|
||||||
},
|
},
|
||||||
vue: $dropdown.hasClass('js-issue-board-sidebar'),
|
vue: $dropdown.hasClass('js-issue-board-sidebar'),
|
||||||
<<<<<<< HEAD
|
|
||||||
clicked: function(selected, $el, e) {
|
|
||||||
=======
|
|
||||||
hideRow: function(milestone) {
|
|
||||||
if ($('html').hasClass('issue-boards-page') && !$dropdown.hasClass('js-issue-board-sidebar') &&
|
|
||||||
!$dropdown.closest('.add-issues-modal').length && gl.issueBoards.BoardsStore.state.currentBoard.milestone) {
|
|
||||||
return milestone !== gl.issueBoards.BoardsStore.state.currentBoard.milestone.title;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
},
|
|
||||||
isSelectable: function() {
|
|
||||||
if ($('html').hasClass('issue-boards-page') && !$dropdown.hasClass('js-issue-board-sidebar') &&
|
|
||||||
!$dropdown.closest('.add-issues-modal').length && gl.issueBoards.BoardsStore.state.currentBoard.milestone_id) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
},
|
|
||||||
clicked: function(options) {
|
clicked: function(options) {
|
||||||
const { $el, e } = options;
|
const { $el, e } = options;
|
||||||
let selected = options.selectedObj;
|
let selected = options.selectedObj;
|
||||||
|
|
||||||
>>>>>>> b0a2435... Merge branch 'multiple_assignees_review_upstream' into ee_master
|
|
||||||
var data, isIssueIndex, isMRIndex, page, boardsStore;
|
var data, isIssueIndex, isMRIndex, page, boardsStore;
|
||||||
page = $('body').data('page');
|
page = $('body').data('page');
|
||||||
isIssueIndex = page === 'projects:issues:index';
|
isIssueIndex = page === 'projects:issues:index';
|
||||||
|
|
|
@ -320,11 +320,6 @@ import eventHub from './sidebar/event_hub';
|
||||||
$value.css('display', '');
|
$value.css('display', '');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
<<<<<<< HEAD
|
|
||||||
vue: $dropdown.hasClass('js-issue-board-sidebar'),
|
|
||||||
clicked: function(user, $el, e) {
|
|
||||||
var isIssueIndex, isMRIndex, page, selected, isSelecting;
|
|
||||||
=======
|
|
||||||
multiSelect: $dropdown.hasClass('js-multiselect'),
|
multiSelect: $dropdown.hasClass('js-multiselect'),
|
||||||
inputMeta: $dropdown.data('input-meta'),
|
inputMeta: $dropdown.data('input-meta'),
|
||||||
clicked: function(options) {
|
clicked: function(options) {
|
||||||
|
@ -390,7 +385,6 @@ import eventHub from './sidebar/event_hub';
|
||||||
}
|
}
|
||||||
|
|
||||||
var isIssueIndex, isMRIndex, page, selected;
|
var isIssueIndex, isMRIndex, page, selected;
|
||||||
>>>>>>> b0a2435... Merge branch 'multiple_assignees_review_upstream' into ee_master
|
|
||||||
page = $('body').data('page');
|
page = $('body').data('page');
|
||||||
isIssueIndex = page === 'projects:issues:index';
|
isIssueIndex = page === 'projects:issues:index';
|
||||||
isMRIndex = (page === page && page === 'projects:merge_requests:index');
|
isMRIndex = (page === page && page === 'projects:merge_requests:index');
|
||||||
|
@ -411,24 +405,7 @@ import eventHub from './sidebar/event_hub';
|
||||||
return Issuable.filterResults($dropdown.closest('form'));
|
return Issuable.filterResults($dropdown.closest('form'));
|
||||||
} else if ($dropdown.hasClass('js-filter-submit')) {
|
} else if ($dropdown.hasClass('js-filter-submit')) {
|
||||||
return $dropdown.closest('form').submit();
|
return $dropdown.closest('form').submit();
|
||||||
<<<<<<< HEAD
|
|
||||||
} else if ($dropdown.hasClass('js-issue-board-sidebar')) {
|
|
||||||
if (user.id && isSelecting) {
|
|
||||||
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 {
|
|
||||||
=======
|
|
||||||
} else if (!$dropdown.hasClass('js-multiselect')) {
|
} else if (!$dropdown.hasClass('js-multiselect')) {
|
||||||
>>>>>>> b0a2435... Merge branch 'multiple_assignees_review_upstream' into ee_master
|
|
||||||
selected = $dropdown.closest('.selectbox').find("input[name='" + ($dropdown.data('field-name')) + "']").val();
|
selected = $dropdown.closest('.selectbox').find("input[name='" + ($dropdown.data('field-name')) + "']").val();
|
||||||
return assignTo(selected);
|
return assignTo(selected);
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,11 +16,7 @@
|
||||||
"v-if" => "issue.assignees",
|
"v-if" => "issue.assignees",
|
||||||
"v-for" => "assignee in issue.assignees" }
|
"v-for" => "assignee in issue.assignees" }
|
||||||
.dropdown
|
.dropdown
|
||||||
<<<<<<< HEAD
|
|
||||||
%button.dropdown-menu-toggle.js-user-search.js-author-search.js-issue-board-sidebar{ type: "button", data: { toggle: "dropdown", field_name: "issue[assignee_id]", first_user: (current_user.username if current_user), current_user: "true", project_id: @project.id, null_user: "true", null_user_default: "true" },
|
|
||||||
=======
|
|
||||||
%button.dropdown-menu-toggle.js-user-search.js-author-search.js-multiselect.js-save-user-data.js-issue-board-sidebar{ type: "button", ref: "assigneeDropdown", data: { toggle: "dropdown", field_name: "issue[assignee_ids][]", first_user: (current_user.username if current_user), current_user: "true", project_id: @project.id, null_user: "true", multi_select: "true", dropdown: { header: 'Assignee(s)'} },
|
%button.dropdown-menu-toggle.js-user-search.js-author-search.js-multiselect.js-save-user-data.js-issue-board-sidebar{ type: "button", ref: "assigneeDropdown", data: { toggle: "dropdown", field_name: "issue[assignee_ids][]", first_user: (current_user.username if current_user), current_user: "true", project_id: @project.id, null_user: "true", multi_select: "true", dropdown: { header: 'Assignee(s)'} },
|
||||||
>>>>>>> b0a2435... Merge branch 'multiple_assignees_review_upstream' into ee_master
|
|
||||||
":data-issuable-id" => "issue.id",
|
":data-issuable-id" => "issue.id",
|
||||||
":data-selected" => "assigneeId",
|
":data-selected" => "assigneeId",
|
||||||
":data-issue-update" => "'#{namespace_project_issues_path(@project.namespace, @project)}/' + issue.id + '.json'" }
|
":data-issue-update" => "'#{namespace_project_issues_path(@project.namespace, @project)}/' + issue.id + '.json'" }
|
||||||
|
|
|
@ -130,11 +130,7 @@
|
||||||
- field_name = "update[assignee_id]"
|
- field_name = "update[assignee_id]"
|
||||||
|
|
||||||
= dropdown_tag("Assignee", options: { toggle_class: "js-user-search js-update-assignee js-filter-submit js-filter-bulk-update", title: "Assign to", filter: true, dropdown_class: "dropdown-menu-user dropdown-menu-selectable",
|
= dropdown_tag("Assignee", options: { toggle_class: "js-user-search js-update-assignee js-filter-submit js-filter-bulk-update", title: "Assign to", filter: true, dropdown_class: "dropdown-menu-user dropdown-menu-selectable",
|
||||||
<<<<<<< HEAD
|
|
||||||
placeholder: "Search authors", data: { first_user: (current_user.username if current_user), null_user: true, current_user: true, project_id: @project.id, field_name: "update[assignee_id]", default_label: "Assignee" } })
|
|
||||||
=======
|
|
||||||
placeholder: "Search authors", data: { first_user: (current_user.username if current_user), null_user: true, current_user: true, project_id: @project.id, field_name: field_name } })
|
placeholder: "Search authors", data: { first_user: (current_user.username if current_user), null_user: true, current_user: true, project_id: @project.id, field_name: field_name } })
|
||||||
>>>>>>> b0a2435... Merge branch 'multiple_assignees_review_upstream' into ee_master
|
|
||||||
.filter-item.inline
|
.filter-item.inline
|
||||||
= dropdown_tag("Milestone", options: { title: "Assign milestone", toggle_class: 'js-milestone-select js-extra-options js-filter-submit js-filter-bulk-update', filter: true, dropdown_class: "dropdown-menu-selectable dropdown-menu-milestone", placeholder: "Search milestones", data: { show_no: true, field_name: "update[milestone_id]", project_id: @project.id, milestones: namespace_project_milestones_path(@project.namespace, @project, :json), use_id: true, default_label: "Milestone" } })
|
= dropdown_tag("Milestone", options: { title: "Assign milestone", toggle_class: 'js-milestone-select js-extra-options js-filter-submit js-filter-bulk-update', filter: true, dropdown_class: "dropdown-menu-selectable dropdown-menu-milestone", placeholder: "Search milestones", data: { show_no: true, field_name: "update[milestone_id]", project_id: @project.id, milestones: namespace_project_milestones_path(@project.namespace, @project, :json), use_id: true, default_label: "Milestone" } })
|
||||||
.filter-item.inline.labels-filter
|
.filter-item.inline.labels-filter
|
||||||
|
|
|
@ -50,13 +50,8 @@
|
||||||
assign yourself
|
assign yourself
|
||||||
|
|
||||||
.selectbox.hide-collapsed
|
.selectbox.hide-collapsed
|
||||||
<<<<<<< HEAD
|
|
||||||
= f.hidden_field 'assignee_id', value: issuable.assignee_id, id: 'issue_assignee_id'
|
|
||||||
= dropdown_tag('Select assignee', options: { toggle_class: 'js-user-search js-author-search', title: 'Assign to', filter: true, dropdown_class: 'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author', placeholder: 'Search users', data: { first_user: (current_user.username if current_user), current_user: true, project_id: (@project.id if @project), author_id: issuable.author_id, field_name: "#{issuable.to_ability_name}[assignee_id]", issue_update: issuable_json_path(issuable), ability_name: issuable.to_ability_name, null_user: true, null_user_default: true, selected: issuable.assignee_id } })
|
|
||||||
=======
|
|
||||||
- issuable.assignees.each do |assignee|
|
- issuable.assignees.each do |assignee|
|
||||||
= hidden_field_tag "#{issuable.to_ability_name}[assignee_ids][]", assignee.id, id: nil
|
= hidden_field_tag "#{issuable.to_ability_name}[assignee_ids][]", assignee.id, id: nil
|
||||||
>>>>>>> b0a2435... Merge branch 'multiple_assignees_review_upstream' into ee_master
|
|
||||||
|
|
||||||
- options = { toggle_class: 'js-user-search js-author-search', title: 'Assign to', filter: true, dropdown_class: 'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author', placeholder: 'Search users', data: { first_user: (current_user.username if current_user), current_user: true, project_id: (@project.id if @project), author_id: issuable.author_id, field_name: "#{issuable.to_ability_name}[assignee_id]", issue_update: issuable_json_path(issuable), ability_name: issuable.to_ability_name, null_user: true } }
|
- options = { toggle_class: 'js-user-search js-author-search', title: 'Assign to', filter: true, dropdown_class: 'dropdown-menu-user dropdown-menu-selectable dropdown-menu-author', placeholder: 'Search users', data: { first_user: (current_user.username if current_user), current_user: true, project_id: (@project.id if @project), author_id: issuable.author_id, field_name: "#{issuable.to_ability_name}[assignee_id]", issue_update: issuable_json_path(issuable), ability_name: issuable.to_ability_name, null_user: true } }
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue