| <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() | |
|                     }) | |
|             }, | |
| 
 | |
|             fetch() { | |
|                 axios.get('/api/bucket/', { | |
|                     params: { | |
|                         visiblity: this.props.visiblity | |
|                     } | |
|                 }).then((response) => { | |
|                     this.state.buckets = response.data.data | |
|                     this.update() | |
|                 }) | |
|             } | |
|         } | |
| 
 | |
|     </script> | |
| </app-buckets> |