integration/js/edition.js
author Anthony Ly <anthonyly.com@gmail.com>
Tue, 25 Jun 2013 10:46:21 +0200
changeset 164 0af17a6cce42
parent 136 ac4dc3d6400b
permissions -rw-r--r--
nl2br on slideshow row description
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
     1
$(function(){
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
     2
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
     3
    var myMedia = undefined,
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
     4
        currentChapter = undefined,
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
     5
        currentAnnotation = undefined,
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
     6
        currentSlider = undefined,
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
     7
        secMiniChapter = 10,
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
     8
        lengthStringDiapo = 40;
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
     9
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    10
/* Colors */
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    11
    var annotationsColors = {
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    12
        'video' : '#BE4477',
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    13
        'text' : '#5E90CB',
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    14
        'slideshow' : '#F69058',
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    15
        'audio' : '#63BE6C',
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    16
        'links' : '#8985BB'
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    17
        },
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    18
        colorsRangeIndex = 0,
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    19
        colorsRange = [
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    20
            '#FF6138', '#FFFF9D', '#BEEB9F', '#79BD8F',  '#00A388',
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    21
             '#1695A3', '#ACF0F2', '#F3FFE2', '#EB7F00', '#FF8000',
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    22
             '#FFD933', '#CCCC52', '#8FB359', '#FFD393', '#F54F29'
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    23
        ];
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    24
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    25
    function getRandomColor(){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    26
        return colorsRange[(colorsRangeIndex<colorsRange.length) ? colorsRangeIndex++ : (colorsRangeIndex=0)];
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    27
    }
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
    28
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    29
    function getTemplate(idTpl){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    30
        return $('#templates').find(idTpl).html();
84
9f481f896e60 save project beta
Anthony Ly <anthonyly.com@gmail.com>
parents: 83
diff changeset
    31
    }
9f481f896e60 save project beta
Anthony Ly <anthonyly.com@gmail.com>
parents: 83
diff changeset
    32
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    33
    myProject.onLoad(function() {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    34
        myProject.regenerateTags = true;
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    35
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    36
        $(".project-title").text(myProject.title);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    37
        $('.project-title-nav').text(myProject.title);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    38
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    39
        myMedia = myProject.getCurrentMedia();
84
9f481f896e60 save project beta
Anthony Ly <anthonyly.com@gmail.com>
parents: 83
diff changeset
    40
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    41
        //load Chapitre
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    42
        var anntypes = myProject.getAnnotationTypes().searchByTitle("chapitrage");
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    43
        if (!anntypes.length) {
110
ebbb23d32748 Corrected creation of annotation types in empty project
veltr
parents: 107
diff changeset
    44
            chapterAnnType = new IriSP.Model.AnnotationType(false, myProject);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    45
            chapterAnnType.title = "chapitrage";
110
ebbb23d32748 Corrected creation of annotation types in empty project
veltr
parents: 107
diff changeset
    46
            myProject.getAnnotationTypes().push(chapterAnnType);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    47
        } else {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    48
            chapterAnnType = anntypes[0];
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    49
        }
121
b7ab06d7ec3e Correct list bug on empty projects
veltr
parents: 116
diff changeset
    50
        
b7ab06d7ec3e Correct list bug on empty projects
veltr
parents: 116
diff changeset
    51
        chapterAnnType.media = myMedia;
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
    52
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    53
        chapters = chapterAnnType.getAnnotations();
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    54
        if(!chapters.length){
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    55
            var dataChapter = {
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    56
                title : '',
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    57
                begin : 0,
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    58
                end : myMedia.duration,
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    59
                description : '',
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    60
                keywords : []
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    61
            };
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    62
            newChapter(dataChapter, true);
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    63
        }
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    64
        $.each(chapters, function(k, v){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    65
            v.color = getRandomColor();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    66
        });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    67
        renderChapter();
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
    68
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    69
        //load Annotations
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    70
        var anntypes = myProject.getAnnotationTypes().searchByTitle("annotations");
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    71
        if (!anntypes.length) {
110
ebbb23d32748 Corrected creation of annotation types in empty project
veltr
parents: 107
diff changeset
    72
            annotationsAnnType = new IriSP.Model.AnnotationType(false, myProject);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    73
            annotationsAnnType.title = "annotations";
110
ebbb23d32748 Corrected creation of annotation types in empty project
veltr
parents: 107
diff changeset
    74
            myProject.getAnnotationTypes().push(annotationsAnnType);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    75
        } else {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    76
            annotationsAnnType = anntypes[0];
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    77
        }
121
b7ab06d7ec3e Correct list bug on empty projects
veltr
parents: 116
diff changeset
    78
        
b7ab06d7ec3e Correct list bug on empty projects
veltr
parents: 116
diff changeset
    79
        annotationsAnnType.media = myMedia;
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    80
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    81
        annotations = annotationsAnnType.getAnnotations();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    82
        $.each(annotations, function(k, v){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    83
            var type = v.content.mimetype.split('-');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    84
            type = type[type.length-1]
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    85
            v.type = type;
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
    86
            v.color = annotationsColors[type];
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    87
        });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    88
        renderAnnotation();
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
    89
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
    90
        //player
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    91
        IriSP.htmlPlayer(
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    92
            myMedia,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    93
            $(".main-video"),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    94
            {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    95
                width: 460,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    96
                height: 345,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    97
                controls: true,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    98
                autostart: true,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
    99
                url_transform: function(src) {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   100
                    return [{
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   101
                        type: "video/mp4",
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   102
                        src: src.replace(/\.[\d\w]+$/,'.mp4').replace('rtmp://media.iri.centrepompidou.fr/ddc_player', 'http://media.iri.centrepompidou.fr')
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   103
                    }, {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   104
                        type: "video/webm",
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   105
                        src: src.replace(/\.[\d\w]+$/,'.webm').replace('rtmp://media.iri.centrepompidou.fr/ddc_player', 'http://media.iri.centrepompidou.fr')
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   106
                    }];
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   107
                }
54
2a7064b70693 webm/mp4 fallback
veltr
parents: 51
diff changeset
   108
            }
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   109
        );
16
c66274d0d850 url plugins on html
Anthony Ly <anthonyly.com@gmail.com>
parents: 9
diff changeset
   110
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   111
        myMedia.on("timeupdate", function(t) {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   112
            //curseur chapitre
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   113
            var wContainer = $('.chapitre-cut-wrap').width() - 1,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   114
                pos = wContainer * t / myMedia.duration,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   115
                btnCutChapter = $('.btn-cut-chapter'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   116
                wBtnCutChapter = btnCutChapter.outerWidth();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   117
            
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   118
            $(".indicateur-chapter, .indicateur-annotation").css("left",pos);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   119
            if(pos+wBtnCutChapter>wContainer){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   120
                btnCutChapter.css("left",(pos - wBtnCutChapter));
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   121
            }else{
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   122
                btnCutChapter.css("left",pos);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   123
            }
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   124
            $('.info-time').text(t);
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   125
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   126
            //display annotations
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   127
            refreshAnnotationDisplay(t);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   128
        });//timeupdate
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   129
        
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   130
    });//myProject.onLoad
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   131
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   132
/* Display annotation in timeline */
16
c66274d0d850 url plugins on html
Anthony Ly <anthonyly.com@gmail.com>
parents: 9
diff changeset
   133
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   134
    //hover
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   135
    $(document).on('mouseover', '.timeline-annotations .annotation, #list-annotations-rows tr, .item-display-annotation' , function(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   136
        if(!$(this).hasClass('shadow')) {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   137
            var idAnnotation = $(this).attr('data-id');
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   138
            $('#tab-annotation-'+idAnnotation+', #annotation-timeline-'+idAnnotation+', #row-list-annotation-'+idAnnotation+', #item-current-annotation-'+idAnnotation).addClass('shadow');
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   139
        }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   140
    });
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   141
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   142
    $(document).on('mouseover', '.chapter-segment, .row-list-chapter' , function(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   143
        if(!$(this).hasClass('shadow')) {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   144
            var idChapter = $(this).attr('data-id');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   145
            $('#row-list-chapter-'+idChapter+', #'+idChapter+', #form-chapter-edit-'+idChapter).addClass('shadow');
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   146
        }
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   147
    });
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   148
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   149
    $(document).on('mouseout', '.shadow' , function(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   150
        $('.shadow').removeClass('shadow');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   151
    });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   152
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   153
    $(document).on('click', '.annotation, .item-display-annotation', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   154
        e.preventDefault();
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   155
        var idAnnotation = $(this).attr('data-id'),
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   156
            annotation = _.find(annotations, function(c){ return c.id == idAnnotation; });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   157
        myMedia.setCurrentTime(annotation.begin);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   158
        if($('#tab-annotation-'+idAnnotation).length){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   159
            $('a[href=#tab-annotation-'+idAnnotation+']').tab('show');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   160
        }else{
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   161
            openTab(annotation.type, annotation);
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   162
        }
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   163
    });
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   164
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   165
    function refreshAnnotationDisplay(t){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   166
        var currentAnnotationsDisplay = new Array();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   167
        $.each(annotations, function(k, v){
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   168
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   169
            if(v.begin <= t && v.end >= t){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   170
                currentAnnotationsDisplay.push(v.id);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   171
                if(!$('#item-current-annotation-'+v.id).length){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   172
                    var itemAnnotation = getTemplate('#tpl-item-annotation-display');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   173
                    v.iconTab = getIcon(v.type);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   174
                    itemAnnotation = Mustache.render(itemAnnotation, v);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   175
                    $('.list-current-annotations').append(itemAnnotation)
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   176
                }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   177
            }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   178
        });
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   179
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   180
        $.each($('.list-current-annotations li'), function(k, v){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   181
            var idAnnotation = $(this).attr('data-id'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   182
                annotationDisplayView = $('.annotation-display-view');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   183
            if($.inArray(idAnnotation, currentAnnotationsDisplay)<0){//il ne doit plus être affiché
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   184
                $('#item-current-annotation-'+idAnnotation).remove();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   185
                if(annotationDisplayView.attr('data-id') == idAnnotation && annotationDisplayView.is(":visible")){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   186
                    annotationDisplayView.hide();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   187
                }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   188
            }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   189
        });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   190
        if(currentAnnotation !== undefined){ 
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   191
            showCurrentAnnotationInTimeline(currentAnnotation.id);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   192
        }
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   193
    }
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   194
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   195
    function showCurrentAnnotationInTimeline(idAnnotation){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   196
        $('.annotation').removeClass('editing');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   197
        $('#annotation-timeline-'+idAnnotation).addClass('editing');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   198
    }
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   199
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   200
    $('.list-current-annotations').on('click', 'a', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   201
        e.preventDefault();
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   202
    });
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   203
    
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   204
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   205
/*  Modal */
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   206
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   207
    //confirmation suppression
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   208
    $("#modal-confirm").on('click', '#btn-delete-modal', function(e){
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   209
        
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   210
        var typeDelete = $(this).attr('data-type-delete'),
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   211
            idAnnotation = $(this).attr('data-id');
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   212
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   213
        if(typeDelete == 'chapter' || typeDelete == 'annotation'){
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   214
            e.preventDefault();
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   215
            if(typeDelete == 'chapter') deleteChapter(idAnnotation);
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   216
            if(typeDelete == 'annotation') deleteAnnotation(idAnnotation);
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   217
        }
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   218
    });
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   219
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   220
/* Title project */
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   221
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   222
    $(document).on('click', '.project-title-editor i, .project-title', function () {
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
   223
        
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   224
        var html = myProject.title;
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   225
        var input = $('<input type="text" />');
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   226
        input.val(html);
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   227
        $('.project-title').replaceWith(input);
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   228
        input.focus().keypress(function(e){
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   229
            code = (e.keyCode ? e.keyCode : e.which);
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   230
            if (code == 13) $(this).blur();
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   231
        });
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   232
    });
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   233
    $(document).on('blur', '.project-title-editor input', function(){
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   234
        var newTitle = $(this).val();
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   235
        myProject.title = newTitle;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   236
        $(this).replaceWith('<span class="project-title">'+newTitle+'</span></td>');
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   237
        $('.project-title-nav').text(newTitle);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   238
        disabledPreview();
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   239
    });
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   240
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   241
164
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   242
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   243
/*  Chapter */
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   244
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   245
    //edit
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   246
    $('.list-chapter-wrap').on('click', '.btn-edit-chapter', function(e){
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   247
        e.preventDefault();
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   248
        var idChapter = $(this).attr('data-chapter-id');
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   249
        loadFormChapter(idChapter);
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   250
    });
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   251
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   252
    $('.chapter-widget-info').on('keyup', 'input[name=title], textarea', function(e){
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   253
        var name = $(this).attr('name'),
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   254
            value = $(this).val();
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   255
        currentChapter[name] = value;
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   256
        if(name == 'title'){
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   257
            var idChapter = $(this).parents('form').attr('data-chapter-id');
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   258
            $('.chapter-segments').find('#'+idChapter).text(value);
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   259
            $('#row-list-chapter-'+idChapter).find('td:first').text(value);
95
5f42ac58d262 update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 94
diff changeset
   260
            $(this).parents('form').find('.btn-delete-chapter').attr('data-title', value);
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   261
        }
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   262
        disabledPreview();
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   263
    });
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   264
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   265
    //form chapter
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   266
    $('.chapter-segments').on('click', 'li', function(){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   267
        var idChapter = $(this).attr('id');
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   268
        loadFormChapter(idChapter);
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   269
    });
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   270
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   271
    function loadFormChapter(idChapter){
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   272
        currentChapter = _.find(chapters, function(c){ return c.id == idChapter; });
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   273
        var chapterWrap = $('.chapter-widget-info'),
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   274
            indexChapter = _.indexOf(chapters, currentChapter),
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   275
            beginTangle = (indexChapter>0) ? true : false,
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   276
            endTangle = (indexChapter<(chapters.length-1)) ? true : false;
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   277
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   278
        currentChapter.beginTangle = beginTangle;
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   279
        currentChapter.endTangle = endTangle;
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   280
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   281
        var tpl = getTemplate('#tpl-chapter-edit');
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   282
            tpl = Mustache.render(tpl, currentChapter);
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   283
            chapterWrap.empty().append(tpl);
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   284
            chapterWrap.find('.tag-it').tagit(tagitParam);
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   285
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   286
        myMedia.setCurrentTime(currentChapter.begin);
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   287
    }
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   288
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   289
    //close chapter form
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   290
    $(document).on('click', '.btn-ok-chapter', function(e){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   291
        e.preventDefault();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   292
        $('.form-chapter-edit').remove();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   293
    });
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   294
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   295
    //delete chapter
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   296
    $(document).on('click', '.btn-delete-chapter', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   297
        e.preventDefault();
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   298
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   299
        if(chapters.length == 1){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   300
            $('#modal-alert .alert-message').hide();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   301
            $('#modal-alert #alert-chapter-number').show();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   302
            $('#modal-alert').modal('show');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   303
            return;
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   304
        }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   305
        var idChapter = $(this).attr('data-chapter-id'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   306
            btnDeleteModal = $("#modal-confirm #btn-delete-modal");
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   307
        btnDeleteModal.attr('data-type-delete', 'chapter');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   308
        btnDeleteModal.attr('data-id', idChapter);
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   309
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   310
        var titleMedia = $(this).attr('data-title'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   311
            urlDelete = $(this).attr('href');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   312
        $("#modal-confirm #btn-delete-modal").attr('href', urlDelete).focus();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   313
        $("#modal-confirm .modal-body").find('.titleMedia').text(titleMedia);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   314
        $("#modal-confirm").modal('show');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   315
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   316
    });
102
172abe53cf6c update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 101
diff changeset
   317
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   318
    function deleteChapter(idChapter){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   319
        
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   320
        $("#modal-confirm").modal('hide');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   321
        var chapter = _.find(chapters, function(c){ return c.id == idChapter; }),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   322
            indexChapter = _.indexOf(chapters, chapter),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   323
            chapterModify;
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   324
        if(indexChapter == 0){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   325
            chapterModify = chapters[1];
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   326
            chapterModify.setBegin(0);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   327
        }else{
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   328
            chapterModify = chapters[indexChapter-1];
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   329
            //var newEnd = new IriSP.Model.Time(chapter.end)
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   330
            chapterModify.setEnd(chapter.end);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   331
        }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   332
        chapters.removeId(idChapter);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   333
        myProject.getAnnotations().removeId(idChapter, true);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   334
        renderChapter();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   335
        //si le formulaire est visible
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   336
        if($('#form-chapter-edit-'+idChapter).length){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   337
            $('#form-chapter-edit-'+idChapter).remove();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   338
        }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   339
        disabledPreview();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   340
    }
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   341
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   342
    //new chapter
55
cedadc7d039a modal delete in html title update
Anthony Ly <anthonyly.com@gmail.com>
parents: 54
diff changeset
   343
    function newChapter(dataChapter, render){
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   344
        var chapter = new IriSP.Model.Annotation(false, myProject);
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   345
            chapter.setMedia(myMedia.id);
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   346
            chapter.setBegin(dataChapter.begin);
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   347
            chapter.setEnd(dataChapter.end);
84
9f481f896e60 save project beta
Anthony Ly <anthonyly.com@gmail.com>
parents: 83
diff changeset
   348
            chapter.setAnnotationType(chapterAnnType.id);
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   349
            chapter.title = dataChapter.title;
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   350
            chapter.description = dataChapter.description;
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   351
            chapter.keywords = dataChapter.keywords;
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   352
            chapter.color = getRandomColor();
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   353
    
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   354
        chapters.push(chapter);
88
c91124908cd1 Modified Edition to add remove annotations to the project
veltr
parents: 86
diff changeset
   355
        myProject.getAnnotations().push(chapter);
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   356
        renderChapter();
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   357
        loadFormChapter(chapter.id);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   358
        disabledPreview();
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   359
        $('.chapter-title').focus();
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   360
    }
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   361
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   362
    $('.chapter-widget').on('click', '.btn-cut-chapter', function(e){
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   363
        e.preventDefault();
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   364
        var begin = myMedia.currentTime,
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   365
            end = organizeNewChapter(myMedia.currentTime);
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   366
        if(!end){
102
172abe53cf6c update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 101
diff changeset
   367
            $('#modal-alert .alert-message').hide();
172abe53cf6c update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 101
diff changeset
   368
            $('#modal-alert #alert-chapter-duration').show();
172abe53cf6c update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 101
diff changeset
   369
            $('#modal-alert #alert-chapter-duration strong').text(secMiniChapter);
172abe53cf6c update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 101
diff changeset
   370
            $('#modal-alert').modal('show');
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   371
            return;
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   372
        }
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   373
        var dataChapter = {
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   374
            title : '',
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   375
            begin : begin,
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   376
            end : end,
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   377
            description : '',
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   378
            keywords : []
95
5f42ac58d262 update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 94
diff changeset
   379
        };
21
abd04f346dbe delete row on enter key press in modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 18
diff changeset
   380
55
cedadc7d039a modal delete in html title update
Anthony Ly <anthonyly.com@gmail.com>
parents: 54
diff changeset
   381
        newChapter(dataChapter, true);
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   382
    });
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   383
    
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   384
    function organizeNewChapter(beginNew){
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   385
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   386
        var returnEnd = false;
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   387
        $.each(chapters, function(k, v){
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   388
            var begin = v.begin,
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   389
                end = v.end;
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   390
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   391
            if(beginNew>=begin && beginNew<=end && end-beginNew>secMiniChapter*1000 && beginNew-begin>secMiniChapter*1000){
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   392
                returnEnd = new IriSP.Model.Time(end);
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   393
                v.setEnd(beginNew); 
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   394
            }
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   395
        });
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   396
 
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   397
        return returnEnd;
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   398
    }
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   399
    
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   400
    function renderChapter(){
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   401
        var chapterSegmentWrap = $('.chapter-segments'),
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   402
            wChapterSegmentWrap = chapterSegmentWrap.width(),
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   403
            chapterList = $('.list-chapter-rows-wrap');
21
abd04f346dbe delete row on enter key press in modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 18
diff changeset
   404
88
c91124908cd1 Modified Edition to add remove annotations to the project
veltr
parents: 86
diff changeset
   405
        chapters = chapters.sortBy(function(c){
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   406
            return c.begin;
21
abd04f346dbe delete row on enter key press in modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 18
diff changeset
   407
        });
18
16b482c153fd update spin url pages
Anthony Ly <anthonyly.com@gmail.com>
parents: 16
diff changeset
   408
21
abd04f346dbe delete row on enter key press in modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 18
diff changeset
   409
        chapterSegmentWrap.empty();
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   410
        chapterList.empty();
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   411
       
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   412
            $.each(chapters, function(k, v){
21
abd04f346dbe delete row on enter key press in modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 18
diff changeset
   413
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   414
                //segments
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   415
                var width = v.getDuration() * wChapterSegmentWrap / myMedia.duration,
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   416
                    left = v.begin * wChapterSegmentWrap / myMedia.duration,
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   417
                    segment = $('<li>'+v.title+'</li>').css({
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   418
                        left : left,
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   419
                        width : width,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   420
                        backgroundColor : v.color
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   421
                    }).attr('id', v.id)
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   422
                    .attr('data-id', v.id)
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   423
                    .addClass('chapter-segment');
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   424
        
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   425
                chapterSegmentWrap.append(segment);
28
a0a048ff33a1 chapter tangle
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   426
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   427
                //liste
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   428
                var tplChapterRow = getTemplate('#tpl-chapter-row');
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   429
                tplChapterRow = Mustache.render(tplChapterRow, v);
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   430
                chapterList.append(tplChapterRow);
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   431
            });
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   432
     
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   433
    }//renderChapter()
21
abd04f346dbe delete row on enter key press in modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 18
diff changeset
   434
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   435
/* Annotation */    
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   436
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   437
    function newAnnotation(dataAnnotation){
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   438
        var annotation = new IriSP.Model.Annotation(false, myProject);
84
9f481f896e60 save project beta
Anthony Ly <anthonyly.com@gmail.com>
parents: 83
diff changeset
   439
            annotation.setAnnotationType(annotationsAnnType.id);
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   440
            annotation.setMedia(myMedia.id);
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   441
            annotation.setBegin(dataAnnotation.begin);
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   442
            annotation.setEnd(dataAnnotation.end);
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   443
            annotation.title = dataAnnotation.title;
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   444
            annotation.description = dataAnnotation.description;
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   445
            annotation.type = dataAnnotation.type;
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   446
            annotation.color = annotationsColors[dataAnnotation.type];
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   447
            annotation.keywords = dataAnnotation.keywords;
42
95e64fb6730f modal delete url
Anthony Ly <anthonyly.com@gmail.com>
parents: 38
diff changeset
   448
            annotation.content = getContentAnnotationByType(dataAnnotation.type);
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   449
88
c91124908cd1 Modified Edition to add remove annotations to the project
veltr
parents: 86
diff changeset
   450
        myProject.getAnnotations().push(annotation);
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   451
        annotations.push(annotation);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   452
        disabledPreview();
134
0282cb8db314 color button new annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 125
diff changeset
   453
        refreshAnnotationDisplay(myMedia.getCurrentTime());
35
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   454
        return annotation;
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   455
    }
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   456
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   457
    //annotation content data init
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   458
    function getContentAnnotationByType(type){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   459
        var content;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   460
        switch(type){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   461
            case 'audio':
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   462
                content = {
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   463
                    mimetype : "application/x-ldt-audio",
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   464
                    url : "",
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   465
                    embedcode : ""
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   466
                };
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   467
                break;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   468
            case 'video':
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   469
                content = {
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   470
                    mimetype : "application/x-ldt-video",
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   471
                    url : "",
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   472
                    embedcode : ""
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   473
                };
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   474
                break;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   475
            case 'text': 
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   476
                content = {
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   477
                    mimetype : "application/x-ldt-text",
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   478
                    markup : "html",
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   479
                    text : ""
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   480
                };
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   481
                break;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   482
            case 'links': 
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   483
                content = {
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   484
                    mimetype : "application/x-ldt-links",
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   485
                    links : []
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   486
                };
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   487
                break;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   488
            case 'slideshow': 
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   489
                content = {
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   490
                    mimetype : "application/x-ldt-slideshow",
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   491
                    slideduration : 3000,
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   492
                    autostart : false,
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   493
                    images : []
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   494
                };
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   495
                break;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   496
        }
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   497
        return content;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   498
    }
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   499
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   500
    function renderAnnotation(){
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
   501
        
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   502
        var timeline = $('.timeline-annotations'),
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   503
            wTimeline = timeline.width(),
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   504
            annotationList = $('#list-annotations-rows');
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   505
88
c91124908cd1 Modified Edition to add remove annotations to the project
veltr
parents: 86
diff changeset
   506
        annotations = annotations.sortBy(function(c){
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   507
            return c.begin;
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   508
        });
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   509
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   510
        timeline.empty().append('<li>');
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   511
        annotationList.empty();
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   512
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   513
        $.each(annotations, function(k, v){
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   514
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   515
            //timeline
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   516
            var width = Math.floor(v.getDuration() * wTimeline / myMedia.duration),
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   517
                left = Math.floor(v.begin * wTimeline / myMedia.duration),
93
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   518
                dataAnntim = {
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   519
                    left : left,
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   520
                    width : width,
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   521
                    color : v.color,
95
5f42ac58d262 update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 94
diff changeset
   522
                    id : v.id,
5f42ac58d262 update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 94
diff changeset
   523
                    title : v.title
93
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   524
                },
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   525
                segment = getTemplate('#tpl-annotation-in-timeline');
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   526
                segment = Mustache.render(segment, dataAnntim);
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   527
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   528
            var isInTimeline = false;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   529
            $.each(timeline.find('li'), function(a, b){
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   530
                if(isInTimeline) return;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   531
                var row = $(this);
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   532
                if(row.children().length){
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   533
                    var canBeInRow = true;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   534
                    $.each(row.find('.annotation'), function(c, d){
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   535
                        var oAL = parseInt($(d).css('left')),
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   536
                            oAR = oAL + $(d).width(),
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   537
                            segmentR = left + width;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   538
                        if(oAL<=left && oAR>=left || oAL<=segmentR && oAR>= segmentR){
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   539
                            canBeInRow = false;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   540
                        }
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   541
                    });
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   542
                    if(canBeInRow){
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   543
                        row.append(segment);
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   544
                        isInTimeline = true;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   545
                    }
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   546
                }else{
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   547
                    row.append(segment);
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   548
                    isInTimeline = true;
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   549
                }
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   550
            });
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   551
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   552
            if(!isInTimeline){
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   553
                timeline.append('<li>');
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   554
                timeline.find('li:last-child').append(segment);
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   555
            }
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   556
            
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   557
            //liste
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   558
                v.iconTab = getIcon(v.type);
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   559
                var tplAnnotationRow = getTemplate('#tpl-list-annotation-row');
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   560
                tplAnnotationRow = Mustache.render(tplAnnotationRow, v);
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   561
                annotationList.append(tplAnnotationRow);
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   562
        });
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   563
    }//renderAnnotation
22
0e02c3a28491 chapter widget
Anthony Ly <anthonyly.com@gmail.com>
parents: 21
diff changeset
   564
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   565
    //edit annotation
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   566
    $('#list-annotations').on('click', 'a.btn-edit-annotation', function(e){
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   567
        e.preventDefault();
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
   568
        
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   569
        var idAnnotation = $(this).attr('data-id');
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   570
        //si il est déjà ouvert
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   571
        if($('#tab-annotation-'+idAnnotation).length){
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   572
            $('a[href=#tab-annotation-'+idAnnotation+']').tab('show');
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   573
        }else{
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   574
            var data = _.find(annotations, function(c){ return c.id == idAnnotation; });
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   575
            openTab(data.type, data);
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   576
        } 
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   577
    });
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   578
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   579
    $('.tab-content').on('keyup', '.form-info-general-annotation input[name=title], .form-info-general-annotation textarea', function(e){
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   580
        var name = $(this).attr('name'),
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   581
            value = $(this).val();
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   582
        currentAnnotation[name] = value;
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   583
        if(name == 'title'){
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   584
            var idAnnotation = $(this).parents('form').attr('data-id');
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   585
            $('#onglet-title-'+idAnnotation).text(value);
89
99d281de4f31 disabled sélect on pagination modal bibliothèque
Anthony Ly <anthonyly.com@gmail.com>
parents: 88
diff changeset
   586
            $(this).parents('form').find('.btn-delete-annotation').attr('data-title', value);
101
e40637c085b0 chapter min duration
Anthony Ly <anthonyly.com@gmail.com>
parents: 95
diff changeset
   587
            $('#annotation-timeline-'+ idAnnotation).attr('title', value);
95
5f42ac58d262 update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 94
diff changeset
   588
            $('#annotation-timeline-'+ idAnnotation+' span').text(value);
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   589
        }
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   590
        disabledPreview();
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   591
    });
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   592
35
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   593
    //delete annotation
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   594
    $(document).on('click','.btn-delete-annotation', function(e){
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   595
        e.preventDefault();
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
   596
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   597
        var idAnnotation = $(this).attr('data-id'),
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   598
            btnDeleteModal = $("#modal-confirm #btn-delete-modal");
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   599
        btnDeleteModal.attr('data-type-delete', 'annotation');
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   600
        btnDeleteModal.attr('data-id', idAnnotation);
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   601
    });
35
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   602
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   603
    function deleteAnnotation(idAnnotation){
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
   604
        
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   605
        $("#modal-confirm").modal('hide');
88
c91124908cd1 Modified Edition to add remove annotations to the project
veltr
parents: 86
diff changeset
   606
        annotations.removeId(idAnnotation);
c91124908cd1 Modified Edition to add remove annotations to the project
veltr
parents: 86
diff changeset
   607
        myProject.getAnnotations().removeId(idAnnotation, true);
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   608
        closeTab(idAnnotation);
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   609
        renderAnnotation();
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   610
        disabledPreview();
134
0282cb8db314 color button new annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 125
diff changeset
   611
        refreshAnnotationDisplay(myMedia.getCurrentTime());
74
22aca5b735a2 edit and preview buttons on project div home page
Anthony Ly <anthonyly.com@gmail.com>
parents: 70
diff changeset
   612
    }
35
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   613
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   614
/* Tab */
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   615
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   616
    $('#onglet-annotations').on('click', 'a', function(e){
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   617
        e.preventDefault();
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   618
        $(this).tab('show');
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   619
    });
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   620
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   621
    //open tab
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   622
    $(document).on('click', '.open-tab', function(e){
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   623
        e.preventDefault();
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   624
        var type = $(this).attr('data-type');
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   625
        openTab(type);
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   626
    });
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   627
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   628
    function openTab(type, data){
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
   629
        
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   630
        var dataView, isNew = false;
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   631
        if(_.isUndefined(data)){//new
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   632
            var currentTimePlusUnMin = 60 * 1000 + myMedia.currentTime,
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   633
                endAnnotation = (currentTimePlusUnMin<myMedia.duration) ? currentTimePlusUnMin : myMedia.duration;
35
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   634
            var dataAnnotation = {
70
2542e988f80c no-prevent class on bibliotheque
Anthony Ly <anthonyly.com@gmail.com>
parents: 62
diff changeset
   635
                title : '',
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   636
                begin : myMedia.currentTime,
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   637
                end : endAnnotation,
70
2542e988f80c no-prevent class on bibliotheque
Anthony Ly <anthonyly.com@gmail.com>
parents: 62
diff changeset
   638
                description : '',
35
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   639
                type : type,
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   640
                keywords : []
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   641
            };
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   642
            dataView = newAnnotation(dataAnnotation);
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   643
            renderAnnotation();
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   644
            isNew = true;
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   645
        }else{//edition
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   646
            dataView = data;
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   647
        }
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   648
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   649
        var idAnnotation = dataView.id,
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   650
            tabContent = $('<div class="tab-pane" id="tab-annotation-'+idAnnotation+'"></div>'),
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   651
            iconTab;
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   652
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   653
        currentAnnotation = _.find(annotations, function(c){ return c.id == idAnnotation; });
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   654
        showCurrentAnnotationInTimeline(idAnnotation);
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   655
            //head commun à tous
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   656
            var tplHead = getTemplate('#tpl-head');
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   657
            var output = Mustache.render(tplHead, dataView);
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   658
            $(tabContent).append(output);
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   659
            $(tabContent).find(".slider-duration").slider(configSlider(dataView));
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
   660
            currentSlider = $(tabContent).find(".slider-duration");
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   661
            $(tabContent).find(".ui-slider-range.ui-widget-header.ui-corner-all").css('background', dataView.color);
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   662
            $(tabContent).find('.tag-it').tagit(tagitParam);
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   663
            
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   664
            //type
49
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   665
            var viewType = {
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   666
                id : idAnnotation,
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   667
                content : dataView.content
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   668
            };
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   669
            var tpl = getTemplate('#tpl-'+type);
49
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   670
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   671
            tpl = Mustache.render(tpl, viewType);
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   672
            $(tabContent).append(tpl);
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   673
            $('.tab-content').append(tabContent);
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   674
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   675
            //data by type
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   676
            switch(type){
48
827066f875c7 annotation links
Anthony Ly <anthonyly.com@gmail.com>
parents: 42
diff changeset
   677
                case 'audio':
35
6eb0de10e9f8 delete / edit / new annotation head
Anthony Ly <anthonyly.com@gmail.com>
parents: 34
diff changeset
   678
                    break;
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   679
                case 'video':
93
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   680
                    var labelModify = $(tabContent).find('.label-modify-video'),
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   681
                        labelAdd = $(tabContent).find('.label-add-video');
49
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   682
                    if(viewType.content.url != ""){
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   683
                        var videoWrap = $(tabContent).find('.annotation-video-content');
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   684
                        renderVideoInfo(videoWrap, viewType.content);
93
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   685
                        labelModify.show();
102
172abe53cf6c update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 101
diff changeset
   686
93
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   687
                    }else{
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   688
                        labelAdd.show();
49
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   689
                    }
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   690
                    break;
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   691
                case 'text': 
38
0e6e631718ee scrollbar modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 36
diff changeset
   692
                    var cledit = $(tabContent).find('.wysiwyg').cleditor(wysiwygConfig)[0];
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   693
                    break;
42
95e64fb6730f modal delete url
Anthony Ly <anthonyly.com@gmail.com>
parents: 38
diff changeset
   694
                case 'links': 
49
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   695
                    var tbody = $(tabContent).find('tbody.links-rows'),
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   696
                        links = viewType.content.links;
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   697
                    if(links.length){
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   698
                        $.each(links, function(k,v){
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   699
                            addLinkRow(tbody, v);
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   700
                        });
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   701
                    }else{//il n'y a pas de lien on en ajoute 1
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   702
                        addLinkRow(tbody);
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   703
                    }
38
0e6e631718ee scrollbar modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 36
diff changeset
   704
                    break;
49
06627f23df42 show data annotations on tab open
Anthony Ly <anthonyly.com@gmail.com>
parents: 48
diff changeset
   705
42
95e64fb6730f modal delete url
Anthony Ly <anthonyly.com@gmail.com>
parents: 38
diff changeset
   706
                case 'slideshow': 
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   707
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
   708
                    $(tabContent).find('.number-spin').val(dataView.content.slideduration/1000);
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   709
                    $(tabContent).find('.number-spin').spin(spinParam);
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   710
                    $(tabContent).find('.ui-sortable').sortable({
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   711
                        start: function (event, ui) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   712
                            $(ui.item).data("startindex", ui.item.index());
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   713
                        },
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   714
                        stop : function(event, ui){
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   715
                            disabledBtnSortable($(this));
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   716
                        },
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   717
                        update : function(event, ui){
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   718
                            var oldIndex = ui.item.data("startindex"),
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   719
                                newIndex = ui.item.index();
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   720
                            currentAnnotation.content.images.move(oldIndex, newIndex);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   721
                        },
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   722
                    });
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   723
                    var slideshow = $(tabContent).find('#slideshow-'+idAnnotation),
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   724
                        images = viewType.content.images;
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   725
                    if(images.length){
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   726
                        $.each(images, function(k,v){
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   727
                            addImageToSlideshow(slideshow, v);
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   728
                        });
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   729
                    }
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   730
                    break;
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   731
            }
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   732
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   733
            dataView.iconTab = getIcon(type);
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   734
            var tplOnglet = getTemplate('#tpl-onglet');
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   735
            var onglet = Mustache.render(tplOnglet, dataView);
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   736
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   737
            $(".nav-tabs li:last-child").after(onglet);
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   738
            $('a[href=#tab-annotation-'+idAnnotation+']').tab('show');
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   739
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   740
            if(isNew){$(tabContent).find('.head-title').focus();}
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   741
  
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   742
    }//openTab
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   743
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   744
    function getIcon(type){
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   745
        var icon;
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   746
        switch(type){
48
827066f875c7 annotation links
Anthony Ly <anthonyly.com@gmail.com>
parents: 42
diff changeset
   747
            case 'audio': icon = 'volume-up';
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   748
                break;
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   749
            case 'video': icon = 'film';
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   750
                break;
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   751
            case 'text': icon = 'align-left';
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   752
                break;
38
0e6e631718ee scrollbar modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 36
diff changeset
   753
            case 'html': icon = 'code';
0e6e631718ee scrollbar modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 36
diff changeset
   754
                break;
42
95e64fb6730f modal delete url
Anthony Ly <anthonyly.com@gmail.com>
parents: 38
diff changeset
   755
            case 'links': icon = 'link';
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   756
                break;
42
95e64fb6730f modal delete url
Anthony Ly <anthonyly.com@gmail.com>
parents: 38
diff changeset
   757
            case 'slideshow': icon = 'picture';
36
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   758
                break;
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   759
        }
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   760
        return icon;
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   761
    }
4c2428524c22 annotation display view
Anthony Ly <anthonyly.com@gmail.com>
parents: 35
diff changeset
   762
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   763
    //define currentAnnotation by open tab
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   764
    $('#onglet-annotations').on('show', 'a[data-toggle="annotation"]', function (e) {
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   765
        var idAnnotation = $(e.target).attr('data-id');
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   766
        currentAnnotation = _.find(annotations, function(c){ return c.id == idAnnotation; });
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
   767
        currentSlider = $('#tab-annotation-'+idAnnotation).find(".slider-duration");
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   768
        showCurrentAnnotationInTimeline(idAnnotation);
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   769
    });
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   770
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   771
    //refresh annotation data view when back on annotation list tab
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   772
    $('#onglet-annotations').on('show', 'a[data-toggle="list-annotations"]', function (e) {
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   773
        currentAnnotation = undefined;
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   774
        renderAnnotation();
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   775
    });
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   776
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   777
    //close tab
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   778
    function closeTab(idAnnotation){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   779
        $('#onglet-'+idAnnotation).remove();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   780
        $('.tab-content #tab-annotation-'+idAnnotation).remove();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   781
        $('#tab-list-annotation').tab('show');
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   782
    }
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   783
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   784
    $('#onglet-annotations').on('click', 'span.close-tab', function(e){
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   785
        e.preventDefault();e.stopPropagation();
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   786
        var idAnnotation = $(this).parents('a').attr('data-id');
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   787
        closeTab(idAnnotation);
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   788
    });
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   789
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   790
    $('.tab-content').on('click', '.btn-save-annotation', function(e){
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   791
        e.preventDefault();
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   792
        var idAnnotation = $(this).attr('data-id');
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   793
        closeTab(idAnnotation);
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   794
    });
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
   795
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   796
/* Video */
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
   797
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   798
    function renderVideoInfo(videoWrap, dataVideo){
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   799
        var tplVideo = getTemplate('#tpl-video-row');
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   800
        tplVideo = Mustache.render(tplVideo, dataVideo);
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   801
        
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   802
        videoWrap.empty().append(tplVideo);
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   803
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   804
        videoWrap = videoWrap.find(".video-container");
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   805
        getVideoPlayer(dataVideo.url, videoWrap);
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   806
    }
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   807
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   808
    //select video on modal
89
99d281de4f31 disabled sélect on pagination modal bibliothèque
Anthony Ly <anthonyly.com@gmail.com>
parents: 88
diff changeset
   809
    $('.popup').on('click', '.bibliotheque-video a:not(.pagination a)', function(e){
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   810
        e.preventDefault();
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   811
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   812
        var url = $(this).attr('data-url'),
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   813
            title = $(this).attr('data-title'),
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   814
            description = $(this).attr('data-description');
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   815
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   816
        currentAnnotation.content.url = url;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   817
        currentAnnotation.content.title = title;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   818
        currentAnnotation.content.description = description;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   819
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   820
        $('.popup').modal('hide');
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   821
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   822
        var videoWrap = $('#tab-annotation-'+currentAnnotation.id).find('.annotation-video-content');
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   823
        renderVideoInfo(videoWrap, currentAnnotation.content);
93
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   824
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   825
        var labelModify = $('#tab-annotation-'+currentAnnotation.id).find('.label-modify-video'),
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   826
            labelAdd = $('#tab-annotation-'+currentAnnotation.id).find('.label-add-video');
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   827
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   828
        labelModify.show();
69d52a7b1b8a update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 89
diff changeset
   829
        labelAdd.hide();
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   830
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   831
        disabledPreview();
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   832
    });
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   833
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   834
/* Slideshow */
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   835
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   836
    //select image on modal 
89
99d281de4f31 disabled sélect on pagination modal bibliothèque
Anthony Ly <anthonyly.com@gmail.com>
parents: 88
diff changeset
   837
    $('.popup').on('click', '.bibliotheque-image a:not(.pagination a)', function(e){
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   838
        e.preventDefault();
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   839
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   840
        var url = $(this).attr('data-url'),
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   841
            title = $(this).attr('data-title'),
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   842
            description = $(this).attr('data-description'),
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   843
            image = {
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   844
                id : currentAnnotation.id,
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   845
                url : url,
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   846
                title : title,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   847
                description : description
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   848
            };
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   849
        currentAnnotation.content.images.push(image);
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   850
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   851
        var listSlideshow = $('#slideshow-'+currentAnnotation.id);
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   852
        addImageToSlideshow(listSlideshow, image);
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   853
        $('.popup').modal('hide'); 
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   854
        disabledPreview();
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   855
    });
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   856
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   857
    function addImageToSlideshow(slideshow, dataView){
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   858
        var tplDiapo = getTemplate('#tpl-slideshow-row');
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   859
        dataView.limitLength = function(){
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   860
            return function(text, render) {
164
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   861
          
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   862
                var renderText = nl2br(render(text));
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   863
                if(renderText.length > lengthStringDiapo){
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   864
                    return renderText.substr(0,lengthStringDiapo) + '...';
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   865
                }else{
164
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   866
                    return renderText;
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   867
                }
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   868
            }
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   869
        }
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   870
        tplDiapo = Mustache.render(tplDiapo, dataView);
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   871
        slideshow.append(tplDiapo);
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   872
        disabledBtnSortable(slideshow);
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   873
    };
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   874
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   875
    //edit 
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   876
    $('.tab-content').on('click', '.title-slideshow-row, .description-slideshow-row', function(){
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   877
        if($(this).find('input').length) return;
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   878
        var index = $(this).parents('.row-image-slideshow').index(),
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
   879
            inputType = $(this).attr('data-input'),
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
   880
            name = $(this).attr('data-name'),
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   881
            input = $('<'+inputType+'>').attr('name', name),
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   882
            html = currentAnnotation.content.images[index][name];
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   883
        input.val(html);
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   884
        $(this).find('span').replaceWith(input);
164
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   885
        if(name == 'title'){
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   886
            input.focus().keypress(function(e){
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   887
                code = (e.keyCode ? e.keyCode : e.which);
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   888
                if (code == 13) $(this).blur();
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   889
            });
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   890
        }
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   891
    });
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   892
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   893
    $(document).on('blur', '.title-slideshow-row input, .description-slideshow-row textarea', function(){
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   894
        var newValue = $(this).val(),
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   895
            name = $(this).attr('name'),
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   896
            indexRow = $(this).parents('.row-image-slideshow').index();
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
   897
        currentAnnotation.content.images[indexRow][name] = newValue;
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   898
        if(newValue.length>lengthStringDiapo){
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   899
            newValue = newValue.substr(0,lengthStringDiapo) + '...';
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   900
        }
164
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
   901
        newValue = nl2br(newValue, true)
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   902
        var span = $('<span>').html(newValue);
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
   903
        $(this).replaceWith(span);
136
ac4dc3d6400b update slideshow row
Anthony Ly <anthonyly.com@gmail.com>
parents: 134
diff changeset
   904
        
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   905
        disabledPreview();
79
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   906
    });
5dfa74fcec4b show current annotation edit in timeline
Anthony Ly <anthonyly.com@gmail.com>
parents: 74
diff changeset
   907
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   908
    //button up / down
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   909
    $(document).on('click', '.ui-sortable .btn-sort', function(e){
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   910
        e.preventDefault();
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   911
        var row = $(this).parents('tr.row-image-slideshow'),
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   912
            oldIndex = row.index(),
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   913
            listSlideshow = $(this).parents('.list-image-slideshow');
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   914
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   915
        if($(this).hasClass('down'))
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   916
            row.insertAfter(row.next());
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   917
        else if($(this).hasClass('up'))
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   918
            row.insertBefore(row.prev());
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   919
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   920
        var newIndex = row.index();
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   921
        currentAnnotation.content.images.move(oldIndex, newIndex);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   922
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   923
        disabledBtnSortable(listSlideshow);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   924
        disabledPreview();
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   925
    });
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   926
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   927
    function disabledBtnSortable(listSlideshow){
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   928
        listSlideshow.find('.btn-sort.disabled').removeClass('disabled');
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   929
        listSlideshow.find('tr.row-image-slideshow:first-child').find('.btn-sort.up').addClass('disabled');
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   930
        listSlideshow.find('tr.row-image-slideshow:last-child').find('.btn-sort.down').addClass('disabled');
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   931
    }
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   932
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   933
    //delete image on slideshow
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   934
    $('.tab-content').on('click','.btn-delete-image', function(e){
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   935
        e.preventDefault();
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
   936
        var rowImage = $(this).parents('tr.row-image-slideshow'),
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   937
            index = rowImage.index();
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   938
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   939
        rowImage.remove();
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   940
        currentAnnotation.content.images.splice(index, 1);
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   941
        disabledPreview();
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   942
    });
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
   943
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   944
/* Links */
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   945
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   946
    //add
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   947
    function addLinkRow(tbody, dataView){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   948
        var tplLinkRow = getTemplate('#tpl-links-row');
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   949
        var output = Mustache.render(tplLinkRow, dataView);
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   950
        tbody.append(output);
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   951
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   952
    }
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   953
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   954
    $('.tab-content').on('click', '.add-link', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   955
        e.preventDefault();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   956
        var tbody = $(this).parents('tfoot').siblings('tbody');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   957
        addLinkRow(tbody);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   958
    });
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   959
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   960
    //delete
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   961
    $('.tab-content').on('click', '.delete-link', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   962
        e.preventDefault();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   963
        var row = $(this).parents('tr'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   964
            tbody = $(this).parents('tbody');
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
   965
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   966
        row.remove();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   967
        updateLinks(tbody);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   968
    });
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   969
    
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   970
    //edit
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   971
    $('.tab-content').on('keyup', '.links-rows input', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   972
        var tbody = $(this).parents('.links-rows');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   973
        updateLinks(tbody);   
48
827066f875c7 annotation links
Anthony Ly <anthonyly.com@gmail.com>
parents: 42
diff changeset
   974
    });
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   975
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   976
    function updateLinks(tbody){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   977
        links = new Array();
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
   978
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   979
        $.each(tbody.find('tr'), function(k, v){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   980
            var urlLink = $(v).find('.url-link').val(),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   981
                titleLink = $(v).find('.title-link').val(),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   982
                link = {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   983
                    url : urlLink,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   984
                    title : titleLink
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   985
                };
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   986
                links.push(link);
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   987
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   988
        });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   989
        currentAnnotation.content.links = links;
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
   990
        disabledPreview();
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
   991
    }
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   992
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   993
    $('.tab-content').on('focus', '.url-link', function(){
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   994
        var td = $(this).parents('td');
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   995
        if(td.hasClass('error')) {
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   996
            td.removeClass('error');
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   997
            td.find('.help-inline').hide();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
   998
        }
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
   999
    });
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1000
    
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1001
    $('.tab-content').on('blur', '.url-link', function(){
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1002
        var url = $(this).val(),
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1003
            td = $(this).parents('td');
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1004
        if(!isValidLink(url)){
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1005
            td.addClass('error');
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1006
            td.find('.help-inline').show();
111
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1007
        }
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1008
    });
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1009
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1010
    function isValidLink(url){
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1011
        return /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/.test(url);
c0e4d761bcb6 add chapter if new project
Anthony Ly <anthonyly.com@gmail.com>
parents: 110
diff changeset
  1012
    }
51
c7ece022eca8 template slideshow
Anthony Ly <anthonyly.com@gmail.com>
parents: 49
diff changeset
  1013
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1014
    //autostart
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1015
    $('.tab-content').on('click', '.btn-autostart', function(){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1016
        var autostart = $(this).attr('data-autostart');
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1017
        if(autostart == "true"){ autostart = true;}
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1018
        else {autostart = false;}
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1019
        disabledPreview();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1020
        currentAnnotation.content.autostart = autostart;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1021
    });
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1022
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1023
    //duration
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
  1024
    $('.tab-content').on('change keyup', '.config-slideshow input[name=duration]', function(){
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1025
        var value = $(this).val();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1026
        if(!isNaN(value)){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1027
            disabledPreview();
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1028
            currentAnnotation.content.slideduration = value * 1000;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1029
        }
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1030
    });
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1031
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1032
/* Audio */
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1033
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1034
    $('.tab-content').on('keyup', '.annotation-audio-content input, .annotation-audio-content textarea', function(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1035
        var name = $(this).attr('name'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1036
            value = $(this).val();
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1037
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1038
        currentAnnotation.content[name] = value;
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1039
        disabledPreview();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1040
    });
95
5f42ac58d262 update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 94
diff changeset
  1041
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1042
/* Save project */
84
9f481f896e60 save project beta
Anthony Ly <anthonyly.com@gmail.com>
parents: 83
diff changeset
  1043
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1044
    $('.btn-save-project').bind('click', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1045
        e.preventDefault();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1046
        if($(this).hasClass('disabled')) return;
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
  1047
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1048
        showAlertByClassName('save-load');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1049
        var that = this;
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1050
        $(this).addClass('disabled');
83
8f954a0d6031 edit title and descripttion video
Anthony Ly <anthonyly.com@gmail.com>
parents: 79
diff changeset
  1051
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1052
        console.log(myProject.serialize());
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
  1053
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1054
        $.ajax({
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1055
            type: "POST",
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1056
            url: urlSaveProject,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1057
            data: myProject.serialize(),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1058
            contentType: "application/cinelab",
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1059
            headers: {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1060
                "X-CSRFToken": tokenSaveProject
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1061
            },
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1062
            success: function(data, status, request){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1063
                showAlertByClassName('save-ok');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1064
                $('.btn-apercu-projet').removeClass('disabled');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1065
                console.log('data : ', data);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1066
                console.log('status : ', status);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1067
                console.log('request : ', request);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1068
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1069
            },
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1070
            error: function(jqXHR, textStatus, errorThrown){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1071
                showAlertByClassName('save-error');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1072
                //alert(gettext("Server error\nYour hashcut couldn't be published"));
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1073
            },
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1074
            complete : function(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1075
                $(that).removeClass('disabled');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1076
            }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1077
        });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1078
    });
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
  1079
    
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1080
    //disabled preview
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1081
    function disabledPreview(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1082
        if(!$('.btn-apercu-projet').hasClass('disabled'))$('.btn-apercu-projet').addClass('disabled');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1083
    }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1084
    $(document).on('click', '.btn-apercu-projet.disabled', function(e){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1085
        e.preventDefault();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1086
    });
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
  1087
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1088
    //alert save info
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1089
    $('.alert').bind('close', function (e) {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1090
        e.preventDefault();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1091
        $(this).hide();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1092
    });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1093
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1094
    function showAlertByClassName(className){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1095
        $('.alert').hide();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1096
        $('.'+className).show();
38
0e6e631718ee scrollbar modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 36
diff changeset
  1097
    }
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1098
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1099
/* Config */
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1100
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1101
    //tagit
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1102
    function onTagItChange(e, ui) {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1103
        var tagitType = $(this).attr('data-type'), 
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1104
            value = $(this).val();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1105
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1106
        disabledPreview();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1108
        if(tagitType == 'chapter'){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1109
            var idChapter = $(this).parents('form').attr('data-chapter-id');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1110
            currentChapter.keywords = value.split(',');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1111
            $('#row-list-chapter-'+idChapter).find('.list-chapter-tags').text(value);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1112
        }else{
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1113
            currentAnnotation.keywords = value.split(',');
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1114
        }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1115
    }
6
547b3ddedf7f organisation des fichiers
Anthony Ly <anthonyly.com@gmail.com>
parents:
diff changeset
  1116
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1117
    var tagitParam = {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1118
        allowSpaces: true,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1119
        afterTagRemoved : onTagItChange,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1120
        afterTagAdded : onTagItChange
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1121
    }
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
  1122
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1123
    //CLEditor (wysiwyg) http://premiumsoftware.net/cleditor/docs/GettingStarted.html#optionalParameters
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1124
    var wysiwygConfig = {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1125
        width:        450, 
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1126
        height:       250, 
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1127
        controls:     "bold italic underline strikethrough | font size " +
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1128
                        "style | color highlight removeformat | bullets numbering | source",
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1129
        fonts:        "Arial,Arial Black,Comic Sans MS,Courier New,Narrow,Garamond," +
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1130
                        "Georgia,Impact,Sans Serif,Serif,Tahoma,Trebuchet MS,Verdana",
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1131
        sizes:        "1,2,3,4,5,6,7",
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1132
        styles:       [["Paragraph", "<p>"], ["Header 2", "<h2>"],
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1133
                        ["Header 3", "<h3>"],  ["Header 4","<h4>"],  ["Header 5","<h5>"],
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1134
                        ["Header 6","<h6>"]],
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1135
        docType:      '<!DOCTYPE HTML>',
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1136
        bodyStyle:    "margin:0; font-family: 'Helvetica Neue',​Helvetica,​Arial,​sans-serif;",
124
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1137
        updateTextArea : updateWysiwigText,
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1138
        updateFrame: updateWysiwigText
34
e3a17ec94cd8 edition annotation first part
Anthony Ly <anthonyly.com@gmail.com>
parents: 28
diff changeset
  1139
    };
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1140
124
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1141
    function updateWysiwigText(text){
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1142
        disabledPreview();
125
eb327c2595db text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 124
diff changeset
  1143
        currentAnnotation.content.markup = "html";
124
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1144
        currentAnnotation.content.text = text;
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1145
        return text;
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1146
    }
271d3c41f007 text editor define markup to html
Anthony Ly <anthonyly.com@gmail.com>
parents: 121
diff changeset
  1147
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1148
    //slider
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1149
    function configSlider(data){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1150
        return {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1151
            range: true,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1152
            values: [ data.begin.milliseconds, data.end.milliseconds ],
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1153
            min: 0,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1154
            max: myMedia.duration.milliseconds,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1155
            slide: function( event, ui ) {
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1156
                
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1157
                data.setBegin(ui.values[0]);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1158
                data.setEnd(ui.values[1]);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1159
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1160
                var idSlider = $(this).attr('data-id'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1161
                    wTimeline = $('.timeline-annotations').width(),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1162
                    annotationTimeline = $('#annotation-timeline-'+ data.id),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1163
                    width = Math.floor(data.getDuration() * wTimeline / myMedia.duration),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1164
                    left = Math.floor(data.begin * wTimeline / myMedia.duration);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1165
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1166
                $( '#'+ idSlider +'-begin span' ).html(data.begin.toString());
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1167
                $( '#'+ idSlider +'-begin span' ).attr('data-milliseconds', data.begin);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1168
                $( '#'+ idSlider +'-duration' ).html(data.getDuration().toString());
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1169
                $( '#'+ idSlider +'-end span' ).html(data.end.toString());
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1170
                $( '#'+ idSlider +'-end span' ).attr('data-milliseconds', data.end);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1171
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1172
                annotationTimeline.css({
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1173
                    left : left,
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1174
                    width :width
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1175
                });
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1176
            },
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1177
            start : function(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1178
                var idSlider = $(this).attr('data-id'),
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1179
                    annotationTimeline = $('#annotation-timeline-'+ data.id);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1180
                annotationTimeline.css('z-index',100);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1181
                disabledPreview();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1182
            },
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1183
            stop : function(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1184
                renderAnnotation();
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1185
                refreshAnnotationDisplay(myMedia.getCurrentTime());
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1186
            }
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1187
        };
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1188
    }
9
e3d551eda5a6 ajout de common.js
Anthony Ly <anthonyly.com@gmail.com>
parents: 6
diff changeset
  1189
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1190
    //unload
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1191
    $(window).on("beforeunload", onLeave);
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1192
    function onLeave(){
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1193
        if($('.btn-apercu-projet').hasClass('disabled')) return "You have unsaved changes";
42
95e64fb6730f modal delete url
Anthony Ly <anthonyly.com@gmail.com>
parents: 38
diff changeset
  1194
    }
38
0e6e631718ee scrollbar modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 36
diff changeset
  1195
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1196
/* Tangles */
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1197
    var tangleMsPerPixel = 100,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1198
        activeTangle,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1199
        tangleStartX,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1200
        tangleStartVal,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1201
        tangleHasMoved;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1202
    
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1203
    $(document)
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1204
        .mousemove(function(evt) {
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1205
            if (activeTangle) {
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1206
                tangleHasMoved = true;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1207
                var newval = new IriSP.Model.Time(tangleMsPerPixel * (evt.pageX - tangleStartX) + tangleStartVal);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1208
                activeTangle.trigger("valuechange", newval);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1209
                return false;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1210
            }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1211
        })
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1212
        .mouseup(function() {
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1213
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1214
            if (activeTangle) {
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1215
                if(activeTangle.hasClass('slider-tangle')){//annotation
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1216
                    renderAnnotation();
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1217
                    refreshAnnotationDisplay(myMedia.getCurrentTime());
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1218
                }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1219
                $(".time-tangle").removeClass("active deactivate");
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1220
                activeTangle = undefined;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1221
            }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1222
        });
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1223
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1224
    //chapters
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1225
    $('.chapter-widget-info').on('mousedown', '.time-tangle', function(evt){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1226
        activeTangle = $(this);
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1227
        activeTangle.addClass("active");
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1228
        tangleStartVal = +activeTangle.attr("data-milliseconds");
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1229
        tangleStartX = evt.pageX;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1230
        tangleHasMoved = false;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1231
        $(this).parents('td').siblings('td').find(".time-tangle").addClass("deactivate");
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1232
        return false;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1233
    });
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1234
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1235
    function updateRenderChapter(chapterData){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1236
        var segment = $('.chapter-segments li#'+chapterData.id),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1237
            wChapterSegmentWrap = $('.chapter-segments').width(),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1238
            wSegmentNew = chapterData.getDuration() * wChapterSegmentWrap / myMedia.duration,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1239
            lSegmentNew = chapterData.begin * wChapterSegmentWrap / myMedia.duration,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1240
            row = $('#row-list-chapter-'+chapterData.id),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1241
            form = ($('#form-chapter-edit-'+chapterData.id).length) ? $('#form-chapter-edit-'+chapterData.id) : false;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1242
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1243
        segment.css({
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1244
            width : wSegmentNew,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1245
            left : lSegmentNew
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1246
        });
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1247
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1248
        row.find('.begin').text(chapterData.begin);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1249
        console.log(chapterData.getDuration())
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1250
        row.find('.duration').text(chapterData.getDuration());
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1251
        row.find('.end').text(chapterData.end);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1252
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1253
        if(form){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1254
            form.find('.begin').text(chapterData.begin);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1255
            form.find('.begin').attr('data-milliseconds',chapterData.begin);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1256
            form.find('.duration').text(chapterData.getDuration());
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1257
            form.find('.end').text(chapterData.end);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1258
            form.find('.end').attr('data-milliseconds',chapterData.end);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1259
        }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1260
    }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1261
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1262
    function updateChapterDuration(val, chapterBefore, chapterAfter){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1263
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1264
        if (val<=chapterAfter.end && val>=chapterBefore.begin && chapterAfter.end-val>secMiniChapter*1000 && val-chapterBefore.begin>secMiniChapter*1000) {
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1265
            disabledPreview();
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1266
            chapterAfter.setBegin(val);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1267
            chapterBefore.setEnd(val);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1268
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1269
            updateRenderChapter(chapterAfter);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1270
            updateRenderChapter(chapterBefore);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1271
        }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1272
    }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1273
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1274
    $('.chapter-widget-info').on('valuechange', '.tangle-start', function(evt, val){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1275
        var indexChapter = _.indexOf(chapters, currentChapter);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1276
        if(indexChapter == 0 || chapters.length<=1) return;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1277
        
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1278
        var chapterBefore = chapters[indexChapter-1],
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1279
            chapterAfter = currentChapter;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1280
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1281
        updateChapterDuration(val, chapterBefore, chapterAfter);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1282
    });
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1283
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1284
    $('.chapter-widget-info').on('valuechange', '.tangle-end', function(evt, val){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1285
        var indexChapter = _.indexOf(chapters, currentChapter);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1286
        if(indexChapter == chapters.length-1 || chapters.length<=1) return;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1287
        
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1288
        var chapterAfter = chapters[indexChapter+1],
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1289
            chapterBefore = currentChapter;
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1290
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1291
            updateChapterDuration(val, chapterBefore, chapterAfter);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1292
    });
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1293
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1294
    //annotations
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1295
    $('.tab-content').on('mousedown', '.time-tangle', function(evt){
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1296
        activeTangle = $(this);
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1297
        activeTangle.addClass("active");
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1298
        tangleStartVal = +activeTangle.attr("data-milliseconds");
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1299
        tangleStartX = evt.pageX;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1300
        tangleHasMoved = false;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1301
        $(this).parents('td').siblings('td').find(".time-tangle").addClass("deactivate");
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1302
        return false;
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1303
    });
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1304
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1305
    $('.tab-content').on('valuechange', '.tangle-start', function(evt, val){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1306
        var max = currentSlider.slider('values')[1],
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1307
            min = 0,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1308
            beginOrEnd = 'begin';
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1309
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1310
        updateAnnotationDuration(val, min, max, beginOrEnd);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1311
    });
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1312
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1313
    $('.tab-content').on('valuechange', '.tangle-end', function(evt, val){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1314
        var max = myMedia.duration,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1315
            min = currentSlider.slider('values')[0],
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1316
            beginOrEnd = 'end';
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1317
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1318
        updateAnnotationDuration(val, min, max, beginOrEnd);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1319
    });
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1320
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1321
    function updateAnnotationDuration(val, min, max, beginOrEnd){
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1322
        var idAnnotation = currentAnnotation.id,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1323
            tabAnnotation = $('#tab-annotation-'+idAnnotation),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1324
            spanTangleStart = tabAnnotation.find('.tangle-start'),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1325
            spanTangleEnd = tabAnnotation.find('.tangle-end'),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1326
            spanDuration = tabAnnotation.find('#'+idAnnotation+'-duration');
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1327
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1328
        if(val<max && val>min){
107
f354d24e08ca disabled preview
Anthony Ly <anthonyly.com@gmail.com>
parents: 105
diff changeset
  1329
            disabledPreview();
105
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1330
            if(beginOrEnd == 'begin'){currentAnnotation.setBegin(val);}
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1331
            if(beginOrEnd == 'end'){currentAnnotation.setEnd(val);}
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1332
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1333
            spanTangleStart.html(currentAnnotation.begin.toString());
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1334
            spanTangleStart.attr('data-milliseconds', currentAnnotation.begin);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1335
            spanDuration.html(currentAnnotation.getDuration().toString());
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1336
            spanTangleEnd.html(currentAnnotation.end.toString());
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1337
            spanTangleEnd.attr('data-milliseconds', currentAnnotation.end);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1338
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1339
            var wTimeline = $('.timeline-annotations').width(),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1340
            annotationTimeline = $('#annotation-timeline-'+ idAnnotation),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1341
            width = Math.floor(currentAnnotation.getDuration() * wTimeline / myMedia.duration),
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1342
            left = Math.floor(currentAnnotation.begin * wTimeline / myMedia.duration);
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1343
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1344
            annotationTimeline.css({
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1345
                left : left,
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1346
                width :width
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1347
            });
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1348
            currentSlider.slider('values', [currentAnnotation.begin, currentAnnotation.end])
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1349
        }
8645721dd9fc tangle on annotation
Anthony Ly <anthonyly.com@gmail.com>
parents: 102
diff changeset
  1350
    }
21
abd04f346dbe delete row on enter key press in modal
Anthony Ly <anthonyly.com@gmail.com>
parents: 18
diff changeset
  1351
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1352
});//ready
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1353
116
fedc0d054b55 cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 115
diff changeset
  1354
/* Utilitys */
115
9144b17b390e cleaning project
Anthony Ly <anthonyly.com@gmail.com>
parents: 111
diff changeset
  1355
164
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
  1356
function nl2br (str) {   
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
  1357
    var breakTag = '<br />';    
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
  1358
    return (str + '').replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '$1'+ breakTag +'$2');
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
  1359
}
0af17a6cce42 nl2br on slideshow row description
Anthony Ly <anthonyly.com@gmail.com>
parents: 136
diff changeset
  1360
    
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1361
Array.prototype.move = function (old_index, new_index) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1362
    if (new_index >= this.length) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1363
        var k = new_index - this.length;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1364
        while ((k--) + 1) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1365
            this.push(undefined);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1366
        }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1367
    }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1368
    this.splice(new_index, 0, this.splice(old_index, 1)[0]);
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
  1369
    return this; 
58
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1370
};
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1371
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1372
function getVideoPlayer(src, videoWrap){
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1373
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1374
    var youtubeTemplate = _.template(
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1375
        '<iframe width="<%- width %>" height="<%- height %>" src="http://www.youtube.com/embed/<%- ytid %>?rel=0&autoplay=<%- autoplay %>" frameborder="0"></iframe>'
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1376
    );
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1377
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1378
    var htmlTemplate = _.template(
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1379
        '<<%- type %> width="<%- width %>" controls="true" autoplay="<%- autoplay %>" src="<%- src %>"/>'
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1380
    );
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1381
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1382
    var mediaW = 460,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1383
        mediaH = 345,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1384
        autoplay = false;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1385
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1386
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1387
    if (/^(https?:\/\/)?(www\.)?youtu\.?be/.test(src)) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1388
        var urlparts = src.split(/[?&]/g),
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1389
            ytid = "",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1390
            vtest = /^v=/;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1391
        urlparts.slice(1).forEach(function(p) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1392
            if (/^v=/.test(p)) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1393
                ytid = p.replace(vtest,"");
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1394
            }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1395
        });
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1396
        if (!ytid) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1397
            ytid = (urlparts[0].match(/[^\/]+$/) || [""])[0];
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1398
        }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1399
        videoWrap.html(youtubeTemplate({
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1400
            ytid: ytid,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1401
            width: mediaW,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1402
            height: mediaH,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1403
            autoplay: autoplay
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1404
        }));
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1405
        return;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1406
    }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1407
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1408
    if (/^(https?:\/\/)?(www\.)?vimeo/.test(src)) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1409
        $.ajax({
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1410
            url: "http://vimeo.com/api/oembed.json",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1411
            dataType: "jsonp",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1412
            data: {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1413
                width: mediaW,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1414
                height: mediaH,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1415
                url: src,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1416
                autoplay: autoplay,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1417
                color: "be4477",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1418
                portrait: false,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1419
                title: false,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1420
                byline: false
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1421
            },
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1422
            success: function(data) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1423
                videoWrap.html(data.html);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1424
            }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1425
        });
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1426
        return;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1427
    }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1428
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1429
    if (/^(https?:\/\/)?(www\.)?dailymotion/.test(src)) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1430
        $.ajax({
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1431
            url: "http://www.dailymotion.com/services/oembed",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1432
            dataType: "jsonp",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1433
            data: {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1434
                format: "json",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1435
                maxwidth: mediaW,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1436
                maxheight: mediaH,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1437
                url: src
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1438
            },
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1439
            success: function(data) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1440
                videoWrap.html(data.html);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1441
            }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1442
        });
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1443
        return;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1444
    }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1445
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1446
    if (/^(https?:\/\/)?(www\.)?soundcloud\.com/.test(src)) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1447
        $.ajax({
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1448
            url: "http://soundcloud.com/oembed",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1449
            dataType: "jsonp",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1450
            data: {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1451
                format: "js",
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1452
                show_comments: false,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1453
                auto_play: autoplay,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1454
                show_artwork: false,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1455
                url: src,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1456
                color: "63be6c"
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1457
            },
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1458
            success: function(data) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1459
                videoWrap.html(data.html);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1460
            }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1461
        });
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1462
        return;
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1463
    }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1464
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1465
    var extension = (src.match(/\.([\d\w]+)$/) || ["",""])[1],
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1466
        mimetype = 'video' + "/" + extension,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1467
        fallbacks = { "video/webm": "mp4", "video/mp4": "webm" },
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1468
        canPlay = document.createElement("video").canPlayType(mimetype);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1469
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1470
    if (!canPlay) {
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1471
        src = src.replace(/\.[\d\w]+$/,"." + fallbacks[mimetype]);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1472
    }
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1473
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1474
    console.log(mimetype, canPlay, src);
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1475
    
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1476
    videoWrap.html(htmlTemplate({
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1477
        type: 'video',
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1478
        src: src,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1479
        width: mediaW,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1480
        height: mediaH,
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1481
        autoplay: "" + autoplay
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1482
    }));
9e14b6f964fe update edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 55
diff changeset
  1483
                
62
42919bf5d4e1 template in edition
Anthony Ly <anthonyly.com@gmail.com>
parents: 58
diff changeset
  1484
}//getVideoPlayer