-
-
{{ $options.i18n.deployJobLabel }}
-
-
-
-
{{ $options.i18n.rootDirLabel }}
-
-
- /{{ deployment.rootDirectory || 'public' }}
-
+ {{ $options.i18n.error }}
+
+
+ {{ $options.i18n.activeState }}
+
+
+ {{ $options.i18n.stoppedState }}
+
+
+
+
+
-
-
{{ $options.i18n.filesLabel }}
-
-
- {{ deployment.fileCount }}
-
-
-
-
{{ $options.i18n.sizeLabel }}
-
-
+
+
+
+ {{ $options.i18n.deployJobLabel }}:
+
+ {{ deployment.ciBuildId }}
+
+
+
+
+
+ {{ formattedRootDirectory }}
+ ·
+
+ {{ deployment.fileCount }} {{ $options.i18n.filesLabel }}
+ ·
+
+
+ {{ deployment.sizeLabel }}
-
-
-
-
{{ $options.i18n.lastUpdatedLabel }}
-
-
-
-
-
-
-
- {{ $options.i18n.expiresAtLabel }}
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ {{ $options.i18n.createdLabel }}
+
+
+
+
+ ·
+
+ {{ $options.i18n.lastUpdatedLabel }}
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ $options.i18n.deleteScheduledAtLabel }}
-
-
-
-
-
-
-
-
- {{ $options.i18n.deleteBtnLabel }}
-
-
- {{ $options.i18n.restoreBtnLabel }}
-
-
+
+
+
+
+ {{ $options.i18n.expiresAtLabel }}
+
+
+ {{ $options.i18n.neverExpires }}
+
-
-
diff --git a/app/assets/javascripts/invite_members/components/members_token_select.vue b/app/assets/javascripts/invite_members/components/members_token_select.vue
index ebf0650f7d4..9adc67e22f5 100644
--- a/app/assets/javascripts/invite_members/components/members_token_select.vue
+++ b/app/assets/javascripts/invite_members/components/members_token_select.vue
@@ -4,7 +4,8 @@ import { debounce, isEmpty } from 'lodash';
import { __ } from '~/locale';
import { getUsers } from '~/rest_api';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
-import { memberName } from '../utils/member_utils';
+import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
+import { memberName, searchUsers } from '../utils/member_utils';
import {
SEARCH_DELAY,
USERS_FILTER_ALL,
@@ -22,6 +23,8 @@ export default {
GlIcon,
GlSprintf,
},
+ mixins: [glFeatureFlagsMixin()],
+ inject: ['searchUrl'],
props: {
placeholder: {
type: String,
@@ -133,6 +136,9 @@ export default {
}));
},
retrieveUsersRequest() {
+ if (this.glFeatures.newImplementationOfInviteMembersSearch) {
+ return searchUsers(this.searchUrl, this.query);
+ }
return getUsers(this.query, this.queryOptions);
},
retrieveUsers: debounce(async function debouncedRetrieveUsers() {
diff --git a/app/assets/javascripts/invite_members/init_invite_members_modal.js b/app/assets/javascripts/invite_members/init_invite_members_modal.js
index 1b7568b7f3c..e55d8aa930d 100644
--- a/app/assets/javascripts/invite_members/init_invite_members_modal.js
+++ b/app/assets/javascripts/invite_members/init_invite_members_modal.js
@@ -29,6 +29,7 @@ export default (function initInviteMembersModal() {
hasGitlabSubscription: parseBoolean(el.dataset.hasGitlabSubscription),
addSeatsHref: el.dataset.addSeatsHref,
hasBsoEnabled: parseBoolean(el.dataset.hasBsoFeatureEnabled),
+ searchUrl: el.dataset.searchUrl,
},
render: (createElement) =>
createElement(InviteMembersModal, {
diff --git a/app/assets/javascripts/invite_members/utils/member_utils.js b/app/assets/javascripts/invite_members/utils/member_utils.js
index 7998cb69445..25dbc102e38 100644
--- a/app/assets/javascripts/invite_members/utils/member_utils.js
+++ b/app/assets/javascripts/invite_members/utils/member_utils.js
@@ -1,8 +1,20 @@
+import { DEFAULT_PER_PAGE } from '~/api';
+import axios from '~/lib/utils/axios_utils';
+
export function memberName(member) {
// user defined tokens(invites by email) will have email in `name` and will not contain `username`
return member.username || member.name;
}
+export function searchUsers(url, search) {
+ return axios.get(url, {
+ params: {
+ search,
+ per_page: DEFAULT_PER_PAGE,
+ },
+ });
+}
+
export function triggerExternalAlert() {
return false;
}
diff --git a/app/assets/javascripts/super_sidebar/components/global_search/command_palette/constants.js b/app/assets/javascripts/super_sidebar/components/global_search/command_palette/constants.js
index 3f76dbcd3d7..2eaab26da75 100644
--- a/app/assets/javascripts/super_sidebar/components/global_search/command_palette/constants.js
+++ b/app/assets/javascripts/super_sidebar/components/global_search/command_palette/constants.js
@@ -23,11 +23,11 @@ export const TRACKING_HANDLE_LABEL_MAP = {
export const COMMON_HANDLES = [COMMAND_HANDLE, USER_HANDLE, PROJECT_HANDLE, PATH_HANDLE];
export const SEARCH_SCOPE_PLACEHOLDER = {
- [COMMAND_HANDLE]: s__('CommandPalette|command'),
- [USER_HANDLE]: s__('CommandPalette|user (enter at least 3 chars)'),
- [PROJECT_HANDLE]: s__('CommandPalette|project (enter at least 3 chars)'),
+ [COMMAND_HANDLE]: s__('CommandPalette|Search for a page or action'),
+ [USER_HANDLE]: s__('CommandPalette|Search by username (minimum 3 characters)'),
+ [PROJECT_HANDLE]: s__('CommandPalette|Search by project (minimum 3 characters)'),
[ISSUE_HANDLE]: s__('CommandPalette|issue (enter at least 3 chars)'),
- [PATH_HANDLE]: s__('CommandPalette|go to project file'),
+ [PATH_HANDLE]: s__('CommandPalette|Search by filename'),
};
export const SEARCH_SCOPE = {
diff --git a/app/assets/javascripts/work_items/components/design_management/design_preview/close_button.vue b/app/assets/javascripts/work_items/components/design_management/design_preview/close_button.vue
index af2d684e45b..cc5a01f8aa5 100644
--- a/app/assets/javascripts/work_items/components/design_management/design_preview/close_button.vue
+++ b/app/assets/javascripts/work_items/components/design_management/design_preview/close_button.vue
@@ -18,7 +18,10 @@ export default {
class="gl-mx-3"
icon="close"
category="tertiary"
- :to="$options.ROUTES.workItem"
+ :to="{
+ name: $options.ROUTES.workItem,
+ query: $route.query,
+ }"
/>