src_js/iconolab-bundle/src/components/editor/CommentList.vue
author Alexandre Segura <mex.zktk@gmail.com>
Mon, 27 Feb 2017 17:50:14 +0100
changeset 396 0a4743126d74
parent 351 2d5557c01f95
child 410 a6db5e626850
permissions -rw-r--r--
Implement replying to comments.

<template>
    <div v-show="annotation" class="wrapper">
        <div v-show="comments.length === 0" class="alert alert-info">Pas de commentaire pour le moment.</div>
        <comment
            v-for="comment in comments"
            v-bind:id="comment.id"
            v-bind:level="comment.level"
            v-bind:comment="comment.comment"
            v-bind:username="comment.user_name"
            v-bind:date="comment.submit_date"
            v-bind:allowThread="comment.allow_thread"></comment>
    </div>
</template>

<script>

    import Comment from './Comment.vue'

    export default {
        props: ['annotation', 'fetch'],
        components: {
            Comment
        },
        data() {
            return {
                'comments': []
            }
        },
        computed: {
            commentsURL: function() {
                return this.fetch.replace(':annotation_guid', this.annotation.annotation_guid);
            }
        },
        watch: {
            annotation: function(annotation) {
                if (annotation) {
                    $.getJSON(this.commentsURL).then((comments) => this.comments = comments);
                } else {
                    this.comments = [];
                }
            }
        }
    }

</script>

<style scoped>
.wrapper {
    max-height: 200px;
    overflow-y: scroll;
}
.alert {
    padding: 10px;
    font-size: 12px;
}
</style>