<app-buckets>
|
|
<div class="buckets">
|
|
<div class="grid">
|
|
<div class="col-12 col-md-4 col-xlg-3" each={ bucket in state.buckets }>
|
|
<article class="panel buckets__item">
|
|
<div class="bar">
|
|
<div class="bar__end w-100">
|
|
<button class="button button--transparent" onclick={ (event) => { handleDelete(event, bucket) } }>
|
|
<svg class="icon fill-text-contrast" aria-hidden="true">
|
|
<use xlink:href="/symbol-defs.svg#icon-delete"></use>
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="panel__body">
|
|
<a href="/bucket/{ bucket._id }">
|
|
<h3 class="buckets__title">
|
|
{ bucket.title }
|
|
</h3>
|
|
<div class="content">
|
|
<p>
|
|
{ bucket.description }
|
|
</p>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
</article>
|
|
</div>
|
|
</div>
|
|
<div class="grid">
|
|
<div class="col-12">
|
|
<div class="buckets__more">
|
|
<button type="button" class="button" onclick={ handleClick }>
|
|
More
|
|
<svg class="icon" aria-hidden="true">
|
|
<use xlink:href="/symbol-defs.svg#icon-arrow-down"></use>
|
|
</svg>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script>
|
|
|
|
import axios from 'axios'
|
|
import remove from 'lodash.remove'
|
|
|
|
/**
|
|
*
|
|
*
|
|
*
|
|
* @author Björn Hase
|
|
*
|
|
*/
|
|
|
|
export default {
|
|
|
|
state: {
|
|
buckets: []
|
|
},
|
|
|
|
onBeforeMount() {
|
|
this.fetch()
|
|
},
|
|
|
|
handleClick() {
|
|
|
|
},
|
|
|
|
handleDelete(event, bucket) {
|
|
event.preventDefault()
|
|
|
|
axios.delete('/api/bucket/' + bucket._id)
|
|
.then((response) => {
|
|
|
|
// removing from buckets
|
|
remove(this.state.buckets, function(b) {
|
|
return b._id === bucket._id
|
|
})
|
|
|
|
this.update()
|
|
})
|
|
},
|
|
|
|
/**
|
|
* getting all buckets
|
|
*
|
|
*
|
|
*/
|
|
fetch() {
|
|
axios.get('/api/bucket/', {
|
|
params: {
|
|
visiblity: this.props.visiblity
|
|
}
|
|
}).then((response) => {
|
|
this.state.buckets = response.data.data
|
|
this.update()
|
|
})
|
|
}
|
|
}
|
|
|
|
</script>
|
|
</app-buckets>
|