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
dbeb67fa
Commit
dbeb67fa
authored
Feb 22, 2018
by
George Tsiolis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move RecentSearchesDropdownContent vue component
parent
27a77b8b
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
114 additions
and
5 deletions
+114
-5
app/assets/javascripts/filtered_search/components/recent_searches_dropdown_content.vue
...ed_search/components/recent_searches_dropdown_content.vue
+104
-0
app/assets/javascripts/filtered_search/recent_searches_root.js
...ssets/javascripts/filtered_search/recent_searches_root.js
+2
-2
ee/changelogs/unreleased/refactor-move-filtered-search-vue-component.yml
...nreleased/refactor-move-filtered-search-vue-component.yml
+5
-0
spec/features/issues/filtered_search/recent_searches_spec.rb
spec/features/issues/filtered_search/recent_searches_spec.rb
+2
-2
spec/javascripts/filtered_search/components/recent_searches_dropdown_content_spec.js
...earch/components/recent_searches_dropdown_content_spec.js
+1
-1
No files found.
app/assets/javascripts/filtered_search/components/recent_searches_dropdown_content.
js
→
app/assets/javascripts/filtered_search/components/recent_searches_dropdown_content.
vue
View file @
dbeb67fa
<
script
>
import
eventHub
from
'
../event_hub
'
;
import
FilteredSearchTokenizer
from
'
../filtered_search_tokenizer
'
;
export
default
{
name
:
'
RecentSearchesDropdownContent
'
,
props
:
{
items
:
{
type
:
Array
,
...
...
@@ -19,7 +19,6 @@ export default {
required
:
true
,
},
},
computed
:
{
processedItems
()
{
return
this
.
items
.
map
((
item
)
=>
{
...
...
@@ -42,7 +41,6 @@ export default {
return
this
.
items
.
length
>
0
;
},
},
methods
:
{
onItemActivated
(
text
)
{
eventHub
.
$emit
(
'
recentSearchesItemSelected
'
,
text
);
...
...
@@ -54,49 +52,53 @@ export default {
eventHub
.
$emit
(
'
requestClearRecentSearches
'
);
},
},
template
:
`
<div>
<div
v-if="!isLocalStorageAvailable"
class="dropdown-info-note">
This feature requires local storage to be enabled
</div>
<ul v-else-if="hasItems">
<li
v-for="(item, index) in processedItems"
:key="index">
<button
type="button"
class="filtered-search-history-dropdown-item"
@click="onItemActivated(item.text)">
<span>
<span
v-for="(token, tokenIndex) in item.tokens"
class="filtered-search-history-dropdown-token">
<span class="name">{{ token.prefix }}</span><span class="value">{{ token.suffix }}</span>
</span>
</span>
<span class="filtered-search-history-dropdown-search-token">
{{ item.searchToken }}
};
</
script
>
<
template
>
<div>
<div
v-if=
"!isLocalStorageAvailable"
class=
"dropdown-info-note"
>
This feature requires local storage to be enabled
</div>
<ul
v-else-if=
"hasItems"
>
<li
v-for=
"(item, index) in processedItems"
:key=
"`processed-items-$
{index}`"
>
<button
type=
"button"
class=
"filtered-search-history-dropdown-item"
@
click=
"onItemActivated(item.text)"
>
<span>
<span
class=
"filtered-search-history-dropdown-token"
v-for=
"(token, index) in item.tokens"
:key=
"`dropdown-token-$
{index}`"
>
<span
class=
"name"
>
{{
token
.
prefix
}}
</span>
<span
class=
"value"
>
{{
token
.
suffix
}}
</span>
</span>
</button>
</li>
<li class="divider"></li>
<li>
<button
type="button"
class="filtered-search-history-clear-button"
@click="onRequestClearRecentSearches($event)">
Clear recent searches
</button>
</li>
</ul>
<div
v-else
class="dropdown-info-note">
You don't have any recent searches
</div>
</span>
<span
class=
"filtered-search-history-dropdown-search-token"
>
{{
item
.
searchToken
}}
</span>
</button>
</li>
<li
class=
"divider"
></li>
<li>
<button
type=
"button"
class=
"filtered-search-history-clear-button"
@
click=
"onRequestClearRecentSearches($event)"
>
Clear recent searches
</button>
</li>
</ul>
<div
v-else
class=
"dropdown-info-note"
>
You don't have any recent searches
</div>
`
,
};
</div>
</
template
>
app/assets/javascripts/filtered_search/recent_searches_root.js
View file @
dbeb67fa
import
Vue
from
'
vue
'
;
import
RecentSearchesDropdownContent
from
'
./components/recent_searches_dropdown_content
'
;
import
RecentSearchesDropdownContent
from
'
./components/recent_searches_dropdown_content
.vue
'
;
import
eventHub
from
'
./event_hub
'
;
class
RecentSearchesRoot
{
...
...
@@ -33,7 +33,7 @@ class RecentSearchesRoot {
this
.
vm
=
new
Vue
({
el
:
this
.
wrapperElement
,
components
:
{
'
recent-searches-dropdown-content
'
:
RecentSearchesDropdownContent
,
RecentSearchesDropdownContent
,
},
data
()
{
return
state
;
},
template
:
`
...
...
ee/changelogs/unreleased/refactor-move-filtered-search-vue-component.yml
0 → 100644
View file @
dbeb67fa
---
title
:
Move RecentSearchesDropdownContent vue component
merge_request
:
16951
author
:
George Tsiolis
type
:
performance
spec/features/issues/filtered_search/recent_searches_spec.rb
View file @
dbeb67fa
...
...
@@ -39,8 +39,8 @@ describe 'Recent searches', :js do
items
=
all
(
'.filtered-search-history-dropdown-item'
,
visible:
false
,
count:
2
)
expect
(
items
[
0
].
text
).
to
eq
(
'label:~qux garply'
)
expect
(
items
[
1
].
text
).
to
eq
(
'label:~foo bar'
)
expect
(
items
[
0
].
text
).
to
eq
(
'label:
~qux garply'
)
expect
(
items
[
1
].
text
).
to
eq
(
'label:
~foo bar'
)
end
it
'saved recent searches are restored last on the list'
do
...
...
spec/javascripts/filtered_search/components/recent_searches_dropdown_content_spec.js
View file @
dbeb67fa
import
Vue
from
'
vue
'
;
import
eventHub
from
'
~/filtered_search/event_hub
'
;
import
RecentSearchesDropdownContent
from
'
~/filtered_search/components/recent_searches_dropdown_content
'
;
import
RecentSearchesDropdownContent
from
'
~/filtered_search/components/recent_searches_dropdown_content
.vue
'
;
import
FilteredSearchTokenKeys
from
'
~/filtered_search/filtered_search_token_keys
'
;
const
createComponent
=
(
propsData
)
=>
{
...
...
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