Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
interfect
funkwhale
Commits
8ff04736
Verified
Commit
8ff04736
authored
Oct 05, 2018
by
Eliot Berriot
Browse files
Removed unused component
parent
8ca06668
Changes
1
Hide whitespace changes
Inline
Side-by-side
front/src/components/manage/library/RequestsTable.vue
deleted
100644 → 0
View file @
8ca06668
<
template
>
<div>
<div
class=
"ui inline form"
>
<div
class=
"fields"
>
<div
class=
"ui field"
>
<label><translate>
Search
</translate></label>
<input
type=
"text"
v-model=
"search"
:placeholder=
"labels.searchPlaceholder"
/>
</div>
<div
class=
"field"
>
<label><translate>
Ordering
</translate></label>
<select
class=
"ui dropdown"
v-model=
"ordering"
>
<option
v-for=
"option in orderingOptions"
:value=
"option[0]"
>
{{
option
[
1
]
}}
</option>
</select>
</div>
<div
class=
"field"
>
<label><translate>
Ordering direction
</translate></label>
<select
class=
"ui dropdown"
v-model=
"orderingDirection"
>
<option
value=
"+"
><translate>
Ascending
</translate></option>
<option
value=
"-"
><translate>
Descending
</translate></option>
</select>
</div>
<div
class=
"field"
>
<label><translate>
Status
</translate></label>
<select
class=
"ui dropdown"
v-model=
"status"
>
<option
:value=
"null"
><translate>
All
</translate></option>
<option
:value=
"'pending'"
><translate>
Pending
</translate></option>
<option
:value=
"'accepted'"
><translate>
Accepted
</translate></option>
<option
:value=
"'imported'"
><translate>
Imported
</translate></option>
<option
:value=
"'closed'"
><translate>
Closed
</translate></option>
</select>
</div>
</div>
</div>
<div
class=
"dimmable"
>
<div
v-if=
"isLoading"
class=
"ui active inverted dimmer"
>
<div
class=
"ui loader"
></div>
</div>
<action-table
v-if=
"result"
@
action-launched=
"fetchData"
:objects-data=
"result"
:actions=
"actions"
:action-url=
"'manage/requests/import-requests/action/'"
:filters=
"actionFilters"
>
<template
slot=
"header-cells"
>
<th><translate>
User
</translate></th>
<th><translate>
Status
</translate></th>
<th><translate>
Artist
</translate></th>
<th><translate>
Albums
</translate></th>
<th><translate>
Comment
</translate></th>
<th><translate>
Creation date
</translate></th>
<th><translate>
Import date
</translate></th>
<th><translate>
Actions
</translate></th>
</
template
>
<
template
slot=
"row-cells"
slot-scope=
"scope"
>
<td>
{{
scope
.
obj
.
user
.
username
}}
</td>
<td>
<span
class=
"ui green basic label"
v-if=
"scope.obj.status === 'imported'"
><translate>
Imported
</translate></span>
<span
class=
"ui pink basic label"
v-else-if=
"scope.obj.status === 'accepted'"
><translate>
Accepted
</translate></span>
<span
class=
"ui yellow basic label"
v-else-if=
"scope.obj.status === 'pending'"
><translate>
Pending
</translate></span>
<span
class=
"ui red basic label"
v-else-if=
"scope.obj.status === 'closed'"
><translate>
Closed
</translate></span>
</td>
<td>
<span
:title=
"scope.obj.artist_name"
>
{{
scope
.
obj
.
artist_name
|
truncate
(
30
)
}}
</span>
</td>
<td>
<span
v-if=
"scope.obj.albums"
:title=
"scope.obj.albums"
>
{{
scope
.
obj
.
albums
|
truncate
(
30
)
}}
</span>
<template
v-else
><translate>
N/A
</translate></
template
>
</td>
<td>
<span
v-if=
"scope.obj.comment"
:title=
"scope.obj.comment"
>
{{ scope.obj.comment|truncate(30) }}
</span>
<
template
v-else
><translate>
N/A
</translate></
template
>
</td>
<td>
<human-date
:date=
"scope.obj.creation_date"
></human-date>
</td>
<td>
<human-date
v-if=
"scope.obj.imported_date"
:date=
"scope.obj.creation_date"
></human-date>
<
template
v-else
><translate>
N/A
</translate></
template
>
</td>
<td>
<router-link
class=
"ui tiny basic button"
:to=
"{name: 'library.import.launch', query: {request: scope.obj.id}}"
v-if=
"scope.obj.status === 'pending'"
><translate>
Create import
</translate></router-link>
</td>
</template>
</action-table>
</div>
<div>
<pagination
v-if=
"result && result.count > paginateBy"
@
page-changed=
"selectPage"
:compact=
"true"
:current=
"page"
:paginate-by=
"paginateBy"
:total=
"result.count"
></pagination>
<span
v-if=
"result && result.results.length > 0"
>
<translate
:translate-params=
"{start: ((page-1) * paginateBy) + 1, end: ((page-1) * paginateBy) + result.results.length, total: result.count}"
>
Showing results %{ start }-%{ end } on %{ total }
</translate>
</span>
</div>
</div>
</template>
<
script
>
import
axios
from
'
axios
'
import
_
from
'
lodash
'
import
time
from
'
@/utils/time
'
import
Pagination
from
'
@/components/Pagination
'
import
ActionTable
from
'
@/components/common/ActionTable
'
import
OrderingMixin
from
'
@/components/mixins/Ordering
'
export
default
{
mixins
:
[
OrderingMixin
],
props
:
{
filters
:
{
type
:
Object
,
required
:
false
}
},
components
:
{
Pagination
,
ActionTable
},
data
()
{
let
defaultOrdering
=
this
.
getOrderingFromString
(
this
.
defaultOrdering
||
'
-creation_date
'
)
return
{
time
,
isLoading
:
false
,
result
:
null
,
page
:
1
,
paginateBy
:
25
,
search
:
''
,
status
:
null
,
orderingDirection
:
defaultOrdering
.
direction
||
'
+
'
,
ordering
:
defaultOrdering
.
field
,
orderingOptions
:
[
[
'
creation_date
'
,
'
Creation date
'
],
[
'
imported_date
'
,
'
Imported date
'
]
]
}
},
created
()
{
this
.
fetchData
()
},
methods
:
{
fetchData
()
{
let
params
=
_
.
merge
({
'
page
'
:
this
.
page
,
'
page_size
'
:
this
.
paginateBy
,
'
q
'
:
this
.
search
,
'
status
'
:
this
.
status
,
'
ordering
'
:
this
.
getOrderingAsString
()
},
this
.
filters
)
let
self
=
this
self
.
isLoading
=
true
self
.
checked
=
[]
axios
.
get
(
'
/manage/requests/import-requests/
'
,
{
params
:
params
}).
then
((
response
)
=>
{
self
.
result
=
response
.
data
self
.
isLoading
=
false
},
error
=>
{
self
.
isLoading
=
false
self
.
errors
=
error
.
backendErrors
})
},
selectPage
:
function
(
page
)
{
this
.
page
=
page
}
},
computed
:
{
labels
()
{
return
{
searchPlaceholder
:
this
.
$gettext
(
'
Search by artist, username, comment...
'
)
}
},
actionFilters
()
{
var
currentFilters
=
{
q
:
this
.
search
}
if
(
this
.
filters
)
{
return
_
.
merge
(
currentFilters
,
this
.
filters
)
}
else
{
return
currentFilters
}
},
actions
()
{
// somehow, extraction fails otherwise
let
deleteLabel
=
this
.
$gettext
(
'
Delete
'
)
let
markImportedLabel
=
this
.
$gettext
(
'
Mark as imported
'
)
let
markClosedLabel
=
this
.
$gettext
(
'
Mark as closed
'
)
return
[
{
name
:
'
delete
'
,
label
:
deleteLabel
,
isDangerous
:
true
},
{
name
:
'
mark_imported
'
,
label
:
markImportedLabel
,
filterCheckable
:
(
obj
)
=>
{
return
[
'
pending
'
,
'
accepted
'
].
indexOf
(
obj
.
status
)
>
-
1
},
isDangerous
:
true
},
{
name
:
'
mark_closed
'
,
label
:
markClosedLabel
,
filterCheckable
:
(
obj
)
=>
{
return
[
'
pending
'
,
'
accepted
'
].
indexOf
(
obj
.
status
)
>
-
1
},
isDangerous
:
true
}
]
}
},
watch
:
{
search
(
newValue
)
{
this
.
page
=
1
this
.
fetchData
()
},
page
()
{
this
.
fetchData
()
},
ordering
()
{
this
.
page
=
1
this
.
fetchData
()
},
status
()
{
this
.
page
=
1
this
.
fetchData
()
},
orderingDirection
()
{
this
.
page
=
1
this
.
fetchData
()
}
}
}
</
script
>
Write
Preview
Supports
Markdown
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