Commit c1d1204a authored by Rik de Groot's avatar Rik de Groot

fix: respect data-attribute 'skip-users' in user_selects

* Respect parameters of each individual select,
  instead of the global.
* Update skipped users in approver search when removed from default approvers.
parent d0755dbe
...@@ -5,6 +5,10 @@ v 8.11.0 (unreleased) ...@@ -5,6 +5,10 @@ v 8.11.0 (unreleased)
- Change LdapGroupSyncWorker to use new LDAP group sync classes - Change LdapGroupSyncWorker to use new LDAP group sync classes
- [Elastic][Fix] Commit search breaks for some URLs on gitlab-ce project - [Elastic][Fix] Commit search breaks for some URLs on gitlab-ce project
v 8.10.4 (unreleased)
- Fix available users in userselect dropdown when there is more than one userselect on the page (Rik de Groot). !604
- Fix updating skipped approvers in search list on removal (Rik de Groot). !604
v 8.10.3 v 8.10.3
- Fix regression in Git Annex permission check. !599 - Fix regression in Git Annex permission check. !599
- [Elastic] Fix commit search for some URLs. !605 - [Elastic] Fix commit search for some URLs. !605
......
(function() { (function() {
$(function() { $(function() {
$(".approver-list").on("click", ".project-approvers .btn-remove", function() { $(".approver-list").on("click", ".project-approvers .btn-remove", function() {
$(this).closest("li").remove(); var removeElement = $(this).closest("li");
var approverId = parseInt(removeElement.attr("id").replace("user_",""));
var approverIds = $("input#merge_request_approver_ids");
var skipUsers = approverIds.data("skip-users") || [];
var approverIndex = skipUsers.indexOf(approverId);
removeElement.remove();
if(approverIndex > -1) {
approverIds.data("skip-users", skipUsers.splice(approverIndex, 1));
}
return false; return false;
}); });
$("form.merge-request-form").submit(function() { $("form.merge-request-form").submit(function() {
......
...@@ -13,14 +13,15 @@ ...@@ -13,14 +13,15 @@
} }
$('.js-user-search').each((function(_this) { $('.js-user-search').each((function(_this) {
return function(i, dropdown) { return function(i, dropdown) {
var options = {};
var $block, $collapsedSidebar, $dropdown, $loading, $selectbox, $value, abilityName, assignTo, assigneeTemplate, collapsedAssigneeTemplate, defaultLabel, firstUser, issueURL, selectedId, showAnyUser, showNullUser; var $block, $collapsedSidebar, $dropdown, $loading, $selectbox, $value, abilityName, assignTo, assigneeTemplate, collapsedAssigneeTemplate, defaultLabel, firstUser, issueURL, selectedId, showAnyUser, showNullUser;
$dropdown = $(dropdown); $dropdown = $(dropdown);
_this.projectId = $dropdown.data('project-id'); options.projectId = $dropdown.data('project-id');
_this.showCurrentUser = $dropdown.data('current-user'); options.showCurrentUser = $dropdown.data('current-user');
showNullUser = $dropdown.data('null-user'); showNullUser = $dropdown.data('null-user');
showAnyUser = $dropdown.data('any-user'); showAnyUser = $dropdown.data('any-user');
firstUser = $dropdown.data('first-user'); firstUser = $dropdown.data('first-user');
_this.authorId = $dropdown.data('author-id'); options.authorId = $dropdown.data('author-id');
selectedId = $dropdown.data('selected'); selectedId = $dropdown.data('selected');
defaultLabel = $dropdown.data('default-label'); defaultLabel = $dropdown.data('default-label');
issueURL = $dropdown.data('issueUpdate'); issueURL = $dropdown.data('issueUpdate');
...@@ -75,7 +76,7 @@ ...@@ -75,7 +76,7 @@
data: function(term, callback) { data: function(term, callback) {
var isAuthorFilter; var isAuthorFilter;
isAuthorFilter = $('.js-author-search'); isAuthorFilter = $('.js-author-search');
return _this.users(term, function(users) { return _this.users(term, options, function(users) {
var anyUser, index, j, len, name, obj, showDivider; var anyUser, index, j, len, name, obj, showDivider;
if (term.length === 0) { if (term.length === 0) {
showDivider = 0; showDivider = 0;
...@@ -185,13 +186,14 @@ ...@@ -185,13 +186,14 @@
$('.ajax-users-select').each((function(_this) { $('.ajax-users-select').each((function(_this) {
return function(i, select) { return function(i, select) {
var firstUser, showAnyUser, showEmailUser, showNullUser; var firstUser, showAnyUser, showEmailUser, showNullUser;
_this.skipLdap = $(select).hasClass('skip_ldap'); var options = {};
_this.projectId = $(select).data('project-id'); options.skipLdap = $(select).hasClass('skip_ldap');
_this.groupId = $(select).data('group-id'); options.projectId = $(select).data('project-id');
_this.showCurrentUser = $(select).data('current-user'); options.groupId = $(select).data('group-id');
_this.pushCodeToProtectedBranches = $(select).data('push-code-to-protected-branches'); options.showCurrentUser = $(select).data('current-user');
_this.authorId = $(select).data('author-id'); options.pushCodeToProtectedBranches = $(select).data('push-code-to-protected-branches');
_this.skipUsers = $(select).data('skip-users'); options.authorId = $(select).data('author-id');
options.skipUsers = $(select).data('skip-users');
showNullUser = $(select).data('null-user'); showNullUser = $(select).data('null-user');
showAnyUser = $(select).data('any-user'); showAnyUser = $(select).data('any-user');
showEmailUser = $(select).data('email-user'); showEmailUser = $(select).data('email-user');
...@@ -201,7 +203,7 @@ ...@@ -201,7 +203,7 @@
multiple: $(select).hasClass('multiselect'), multiple: $(select).hasClass('multiselect'),
minimumInputLength: 0, minimumInputLength: 0,
query: function(query) { query: function(query) {
return _this.users(query.term, function(users) { return _this.users(query.term, options, function(users) {
var anyUser, data, emailUser, index, j, len, name, nullUser, obj, ref; var anyUser, data, emailUser, index, j, len, name, nullUser, obj, ref;
data = { data = {
results: users results: users
...@@ -311,7 +313,7 @@ ...@@ -311,7 +313,7 @@
}); });
}; };
UsersSelect.prototype.users = function(query, callback) { UsersSelect.prototype.users = function(query, options, callback) {
var url; var url;
url = this.buildUrl(this.usersPath); url = this.buildUrl(this.usersPath);
return $.ajax({ return $.ajax({
...@@ -320,13 +322,13 @@ ...@@ -320,13 +322,13 @@
search: query, search: query,
per_page: 20, per_page: 20,
active: true, active: true,
project_id: this.projectId, project_id: options.projectId || null,
group_id: this.groupId, group_id: options.groupId || null,
skip_ldap: this.skipLdap, skip_ldap: options.skipLdap || null,
current_user: this.showCurrentUser, current_user: options.showCurrentUser || null,
push_code_to_protected_branches: this.pushCodeToProtectedBranches, push_code_to_protected_branches: options.pushCodeToProtectedBranches || null,
author_id: this.authorId, author_id: options.authorId || null,
skip_users: this.skipUsers skip_users: options.skipUsers || null
}, },
dataType: "json" dataType: "json"
}).done(function(users) { }).done(function(users) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment