src_js/iconolab-bundle/src/components/editor/Comment.vue
author Alexandre Segura <mex.zktk@gmail.com>
Wed, 01 Mar 2017 01:41:20 +0100
changeset 405 6b8a1ae18e91
parent 396 0a4743126d74
child 406 733be8cac793
permissions -rw-r--r--
Introduce meta categories widget.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     1
<template>
405
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
     2
    <div v-on:mouseover="hover = true" v-on:mouseleave="hover = false" class="comment" v-bind:style="{ marginLeft: (level * 15) + 'px' }">
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
     3
        <div class="comment-body">
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
     4
            <strong class="comment-author">{{ username }}</strong>
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
     5
            <div class="comment-content" v-html="commentFormatted"></div>
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
     6
        </div>
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
     7
        <div class="comment-footer">
405
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
     8
            <span v-show="!hover || !allowThread" class="comment-date">{{ dateFormatted }}</span>
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
     9
            <comment-form v-show="hover"
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
    10
                v-if="allowThread"
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
    11
                v-bind:annotation="annotation"
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
    12
                v-bind:reply-to="id"></comment-form>
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    13
        </div>
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    14
    </div>
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    15
</template>
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    16
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    17
<script>
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    18
391
7ab1cc12827e adds handling of rich text (markdown)
duong tam kien <tk@deveha.com>
parents: 323
diff changeset
    19
    import showdown from 'showdown'
7ab1cc12827e adds handling of rich text (markdown)
duong tam kien <tk@deveha.com>
parents: 323
diff changeset
    20
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    21
    const converter = new showdown.Converter({
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    22
        simpleLineBreaks: true
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    23
    })
391
7ab1cc12827e adds handling of rich text (markdown)
duong tam kien <tk@deveha.com>
parents: 323
diff changeset
    24
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    25
    export default {
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    26
        components: ['comment-form'],
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    27
        props: [
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    28
            'id',
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    29
            'level',
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    30
            'comment',
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    31
            'username',
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    32
            'email',
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    33
            'date',
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    34
            'allowThread'
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    35
        ],
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    36
        data() {
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    37
            return {
405
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
    38
                showForm: false,
6b8a1ae18e91 Introduce meta categories widget.
Alexandre Segura <mex.zktk@gmail.com>
parents: 396
diff changeset
    39
                hover: false
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    40
            }
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    41
        },
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    42
        computed: {
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    43
            dateFormatted: function () {
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    44
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    45
                var date = new Date(this.date);
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    46
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    47
                var day = date.getDate();
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    48
                var month = date.getMonth() + 1;
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    49
                var year = date.getFullYear();
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    50
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    51
                return day + '/' + month + '/' + year;
391
7ab1cc12827e adds handling of rich text (markdown)
duong tam kien <tk@deveha.com>
parents: 323
diff changeset
    52
            },
7ab1cc12827e adds handling of rich text (markdown)
duong tam kien <tk@deveha.com>
parents: 323
diff changeset
    53
            commentFormatted: function(){
7ab1cc12827e adds handling of rich text (markdown)
duong tam kien <tk@deveha.com>
parents: 323
diff changeset
    54
              return converter.makeHtml(this.comment);
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    55
            }
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    56
        }
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    57
    }
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    58
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    59
</script>
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    60
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    61
<style scoped>
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    62
.comment {
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    63
    font-size: 12px;
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    64
    padding: 5px 0;
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    65
    border-bottom: 1px solid #ccc;
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    66
}
396
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    67
.comment-author {
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    68
    float: left;
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    69
    margin-right: 4px;
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    70
}
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    71
.comment-date {
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    72
0a4743126d74 Implement replying to comments.
Alexandre Segura <mex.zktk@gmail.com>
parents: 391
diff changeset
    73
}
323
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    74
.comment-footer {
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    75
    margin-top: 5px;
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    76
    color: #ccc;
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    77
}
55c024fc7c60 Roughly implement annotation navigator.
Alexandre Segura <mex.zktk@gmail.com>
parents:
diff changeset
    78
</style>