Remove duplicated code
This commit is contained in:
parent
a3eabcc20c
commit
f1f3b31141
3 changed files with 15 additions and 18 deletions
|
@ -53,20 +53,13 @@ class DropdownHint extends gl.FilteredSearchDropdown {
|
|||
}
|
||||
|
||||
renderContent() {
|
||||
const dropdownData = [];
|
||||
|
||||
[].forEach.call(this.input.closest('.filtered-search-box-input-container').querySelectorAll('.dropdown-menu'), (dropdownMenu) => {
|
||||
const { icon, hint, tag, type } = dropdownMenu.dataset;
|
||||
if (icon && hint && tag) {
|
||||
dropdownData.push(
|
||||
Object.assign({
|
||||
icon: `fa-${icon}`,
|
||||
hint,
|
||||
tag: `<${tag}>`,
|
||||
}, type && { type }),
|
||||
);
|
||||
}
|
||||
});
|
||||
const dropdownData = gl.FilteredSearchTokenKeys.get()
|
||||
.map(tokenKey => ({
|
||||
icon: `fa-${tokenKey.icon}`,
|
||||
hint: tokenKey.key,
|
||||
tag: `<${tokenKey.symbol}${tokenKey.key}>`,
|
||||
type: tokenKey.type,
|
||||
}));
|
||||
|
||||
this.droplab.changeHookList(this.hookId, this.dropdown, [Filter], this.config);
|
||||
this.droplab.setData(this.hookId, dropdownData);
|
||||
|
|
|
@ -3,21 +3,25 @@ const tokenKeys = [{
|
|||
type: 'string',
|
||||
param: 'username',
|
||||
symbol: '@',
|
||||
icon: 'pencil',
|
||||
}, {
|
||||
key: 'assignee',
|
||||
type: 'string',
|
||||
param: 'username',
|
||||
symbol: '@',
|
||||
icon: 'user',
|
||||
}, {
|
||||
key: 'milestone',
|
||||
type: 'string',
|
||||
param: 'title',
|
||||
symbol: '%',
|
||||
icon: 'clock-o',
|
||||
}, {
|
||||
key: 'label',
|
||||
type: 'array',
|
||||
param: 'name[]',
|
||||
symbol: '~',
|
||||
icon: 'tag',
|
||||
}];
|
||||
|
||||
const alternativeTokenKeys = [{
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
{{hint}}
|
||||
%span.js-filter-tag.dropdown-light-content
|
||||
{{tag}}
|
||||
#js-dropdown-author.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'pencil', hint: 'author', tag: '@author' } }
|
||||
#js-dropdown-author.filtered-search-input-dropdown-menu.dropdown-menu
|
||||
%ul.filter-dropdown{ data: { dynamic: true, dropdown: true } }
|
||||
%li.filter-dropdown-item
|
||||
%button.btn.btn-link.dropdown-user
|
||||
|
@ -55,7 +55,7 @@
|
|||
{{name}}
|
||||
%span.dropdown-light-content
|
||||
@{{username}}
|
||||
#js-dropdown-assignee.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'user', hint: 'assignee', tag: '@assignee' } }
|
||||
#js-dropdown-assignee.filtered-search-input-dropdown-menu.dropdown-menu
|
||||
%ul{ data: { dropdown: true } }
|
||||
%li.filter-dropdown-item{ data: { value: 'none' } }
|
||||
%button.btn.btn-link
|
||||
|
@ -70,7 +70,7 @@
|
|||
{{name}}
|
||||
%span.dropdown-light-content
|
||||
@{{username}}
|
||||
#js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'clock-o', hint: 'milestone', tag: '%milestone' } }
|
||||
#js-dropdown-milestone.filtered-search-input-dropdown-menu.dropdown-menu
|
||||
%ul{ data: { dropdown: true } }
|
||||
%li.filter-dropdown-item{ data: { value: 'none' } }
|
||||
%button.btn.btn-link
|
||||
|
@ -86,7 +86,7 @@
|
|||
%li.filter-dropdown-item
|
||||
%button.btn.btn-link.js-data-value
|
||||
{{title}}
|
||||
#js-dropdown-label.filtered-search-input-dropdown-menu.dropdown-menu{ data: { icon: 'tag', hint: 'label', tag: '~label', type: 'array' } }
|
||||
#js-dropdown-label.filtered-search-input-dropdown-menu.dropdown-menu
|
||||
%ul{ data: { dropdown: true } }
|
||||
%li.filter-dropdown-item{ data: { value: 'none' } }
|
||||
%button.btn.btn-link
|
||||
|
|
Loading…
Reference in a new issue