integration/js/editor.js
author veltr
Mon, 29 Oct 2012 18:11:09 +0100
changeset 26 7c394ea40f28
parent 25 eea45f9b124b
parent 24 1fbf7d835dc2
child 27 b2d068afdbd8
permissions -rw-r--r--
Merge with 1fbf7d835dc2bbe1caed72774d4aaa247d944090
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     1
IriSP.Hashcut = function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     2
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     3
    /* Load Media List */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     4
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     5
    var directory = new IriSP.Model.Directory(),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     6
        project = directory.remoteSource({
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     7
            url: "data/bpidata.json",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     8
            serializer: IriSP.serializers.medialist
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
     9
        }),
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    10
        mashup = new IriSP.Model.Mashup(false, project),
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    11
        mediatemplate = '<li class="item-video" data-media-id="{{id}}"><img src="{{thumbnail}}" alt="{{title}}" />'
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    12
            + '<span class="video-info"><span class="title-video">{{title}}</span><span class="author">{{description}}</span>'
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    13
            + '<span class="time-length">Durée : <span>{{duration}}</span></span></span></li>',
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    14
        segmenttemplate = '<li class="item-video" data-segment-id="{{id}}"><img src="{{annotation.thumbnail}}" alt="{{media_title}}" />'
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    15
            + '<span class="video-info"><span class="title-video">{{media_title}}</span>'
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    16
            + '<span class="subtitle">{{title}}</span><span class="duration">{{begin}} - {{end}} ({{duration}})</span>'
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    17
            + '<ul class="tools"><li><a class="edit" href="#"></a></li><li><a class="bottom" href="#"></a></li>'
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    18
            + '<li><a class="top" href="#"></a></li><li><a class="delete" href="#"></a></li></ul></span></li>';
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    19
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    20
    /* Fill left column with Media List */
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    21
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    22
    project.onLoad(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    23
        var html = '';
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    24
        project.getMedias().forEach(function(_m) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    25
            html += Mustache.to_html(mediatemplate, _m);
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
    26
        });
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    27
        $(".col-left .list-video").html(html);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    28
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    29
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    30
    /* Search Media with left column form */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    31
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    32
    $(".col-left input").on("keyup change input paste", function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    33
        var val = $(this).val();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    34
        if (val) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    35
            var find = IriSP.Model.regexpFromTextOrArray(val, true),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    36
                replace = IriSP.Model.regexpFromTextOrArray(val, false);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    37
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    38
        $(".col-left .item-video").each(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    39
            var li = $(this),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    40
                title = $(this).find(".title-video"),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    41
                titletext = title.text();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    42
            if (val && find.test(titletext)) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    43
                title.html(titletext.replace(replace, '<span style="background: yellow;">$1</span>'));
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    44
                li.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    45
            } else {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    46
                title.text(titletext);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    47
                if (val) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    48
                    li.hide();
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
    49
                } else {
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    50
                    li.show();
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
    51
                }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    52
            }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    53
        })
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    54
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    55
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    56
    /* Fill right column when mashup is updated */
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    57
   
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    58
    function fillRightColumn() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    59
        var html = '';
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    60
        mashup.segments.forEach(function(_s) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    61
            html += Mustache.to_html(segmenttemplate, _s);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    62
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    63
        $(".col-right .list-video").html(html);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    64
    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    65
    
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    66
    mashup.on("add-segments",fillRightColumn);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
    67
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    68
    /* Slider */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    69
   
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
    70
    var timeSlider = $(".Ldt-Slider"),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
    71
        slidersRange = 920;
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    72
    timeSlider.slider({
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    73
        range: "min",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    74
        value: 0,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    75
        min: 0,
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
    76
        max: slidersRange,
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    77
        slide: function(event, ui) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
    78
            if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
    79
                var t = currentMedia.duration * ui.value / slidersRange;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
    80
                currentMedia.setCurrentTime(t);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
    81
            }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    82
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    83
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    84
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    85
    var timeSliderHandle = timeSlider.find('.ui-slider-handle'),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    86
        timeSliderMaximized = false,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    87
        timeSliderTimeoutId = false,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    88
        timeSliderMinimizedHeight = 4,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    89
        timeSliderMaximizedHeight = 10,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    90
        timeSliderTimeoutDuration = 1500,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    91
        timeTooltip = $(".Ldt-Slider-Time");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    92
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    93
    timeSlider.css(calculateSliderCss(timeSliderMinimizedHeight));
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    94
    timeSliderHandle.css(calculateHandleCss(timeSliderMinimizedHeight));
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    95
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    96
    function timeSliderMouseOver() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    97
        if (timeSliderTimeoutId) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    98
            window.clearTimeout(timeSliderTimeoutId);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
    99
            timeSliderTimeoutId = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   100
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   101
        if (!timeSliderMaximized) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   102
           timeSliderAnimateToHeight(timeSliderMaximizedHeight);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   103
           timeSliderMaximized = true;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   104
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   105
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   106
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   107
    function timeSliderMouseOut() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   108
        timeTooltip.hide();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   109
        if (timeSliderTimeoutId) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   110
            clearTimeout(timeSliderTimeoutId);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   111
            timeSliderTimeoutId = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   112
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   113
        timeSliderTimeoutId = setTimeout(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   114
            if (timeSliderMaximized) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   115
                timeSliderAnimateToHeight(timeSliderMinimizedHeight);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   116
                timeSliderMaximized = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   117
            }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   118
            timeSliderTimeoutId = false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   119
        }, timeSliderTimeoutDuration);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   120
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   121
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   122
    timeSlider
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   123
        .mouseover(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   124
            timeTooltip.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   125
            timeSliderMouseOver();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   126
        })
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   127
        .mouseout(timeSliderMouseOut)
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   128
        .mousemove(function(_e) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   129
            var _x = _e.pageX - timeSlider.offset().left,
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   130
                _t = new IriSP.Model.Time(
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   131
                    currentMedia ? currentMedia.duration * _x / timeSlider.width() : 0
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   132
                );
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   133
            timeTooltip.text(_t.toString()).css("left",_x);
15
56937307d7f4 cleaning css
veltr
parents: 13
diff changeset
   134
        });
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   135
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   136
    $(".Ldt-Ctrl").mouseover(timeSliderMouseOver).mouseout(timeSliderMouseOut);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   137
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   138
    function timeSliderAnimateToHeight(_height) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   139
        timeSlider.stop().animate(
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   140
            calculateSliderCss(_height),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   141
            500,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   142
            function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   143
                IriSP.jQuery(this).css("overflow","visible");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   144
            });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   145
        timeSliderHandle.stop().animate(
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   146
            calculateHandleCss(_height),
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   147
            500,
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   148
            function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   149
                IriSP.jQuery(this).css("overflow","visible");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   150
            });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   151
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   152
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   153
    function calculateSliderCss(_size) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   154
        return {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   155
            height: _size + "px",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   156
            "margin-top": (timeSliderMinimizedHeight - _size) + "px"
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   157
        };
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   158
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   159
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   160
    function calculateHandleCss(_size) {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   161
        return {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   162
            height: (2 + _size) + "px",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   163
            width: (2 + _size) + "px",
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   164
            "margin-left": -Math.ceil(2 + _size / 2) + "px" 
18
c85b323f5174 Modifications to home
veltr
parents: 15
diff changeset
   165
        }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   166
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   167
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   168
    /* Controller Widget */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   169
   
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   170
    var volBlock = $(".Ldt-Ctrl-Volume-Control");
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   171
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   172
    $('.Ldt-Ctrl-Sound')
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   173
        .click(function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   174
            if (currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   175
                currentMedia.setMuted(!currentMedia.getMuted());
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   176
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   177
        })
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   178
        .mouseover(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   179
            volBlock.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   180
        })
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   181
        .mouseout(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   182
            volBlock.hide();
18
c85b323f5174 Modifications to home
veltr
parents: 15
diff changeset
   183
        });
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   184
    volBlock.mouseover(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   185
        volBlock.show();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   186
    }).mouseout(function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   187
        volBlock.hide();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   188
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   189
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   190
    var volBar = $(".Ldt-Ctrl-Volume-Bar");
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   191
    
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   192
    function ctrlVolumeUpdater() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   193
        if (currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   194
            var _muted = currentMedia.getMuted(),
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   195
                _vol = currentMedia.getVolume();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   196
            if (_vol === false) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   197
                _vol = .5;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   198
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   199
            var _soundCtl = $(".Ldt-Ctrl-Sound");
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   200
            _soundCtl.removeClass("Ldt-Ctrl-Sound-Mute Ldt-Ctrl-Sound-Half Ldt-Ctrl-Sound-Full");
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   201
            if (_muted) {        
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   202
                _soundCtl.attr("title", "Activer le son")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   203
                    .addClass("Ldt-Ctrl-Sound-Mute");    
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   204
            } else {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   205
                _soundCtl.attr("title", "Couper le son")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   206
                    .addClass(_vol < .5 ? "Ldt-Ctrl-Sound-Half" : "Ldt-Ctrl-Sound-Full" )
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   207
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   208
            volBar.slider("value", _muted ? 0 : 100 * _vol);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   209
            volBar.attr("title",'Volume : ' + Math.floor(100 * _vol) + '%');
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   210
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   211
    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   212
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   213
    volBar.slider({
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   214
        slide: function(event, ui) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   215
            if (currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   216
                currentMedia.setVolume(ui.value / 100);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   217
            }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   218
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   219
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   220
    
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   221
    $(".Ldt-Ctrl-Play").click(function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   222
        if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   223
            if (currentMedia.getPaused()) {        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   224
                currentMedia.play();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   225
            } else {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   226
                currentMedia.pause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   227
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   228
        }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   229
    });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   230
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   231
    $(".Ldt-Ctrl-SetIn").click(function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   232
        if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   233
            currentMedia.currentSegment.setBegin(currentMedia.getCurrentTime());
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   234
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   235
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   236
    $(".Ldt-Ctrl-SetOut").click(function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   237
        if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   238
            currentMedia.currentSegment.setEnd(currentMedia.getCurrentTime());
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   239
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   240
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   241
    
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   242
    /* Slice Widget */
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   243
   
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   244
    var sliceSlider = $(".Ldt-Slice"),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   245
        sliceStartTime;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   246
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   247
    sliceSlider.slider({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   248
        range: true,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   249
        values: [0, slidersRange],
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   250
        min: 0,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   251
        max: slidersRange,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   252
        start: function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   253
            if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   254
                if (!currentMedia.getPaused()) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   255
                    currentMedia.pause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   256
                }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   257
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   258
        },
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   259
        slide: function(event, ui) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   260
            if (currentMedia && currentMedia.currentSegment) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   261
                var t = currentMedia.duration * ui.value / slidersRange;
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   262
                if (ui.value === ui.values[0]) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   263
                    currentMedia.currentSegment.setBegin(t);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   264
                } else {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   265
                    currentMedia.currentSegment.setEnd(t);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   266
                }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   267
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   268
        }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   269
    });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   270
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   271
    sliceSlider.find(".ui-slider-handle:first")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   272
        .addClass("Ldt-Slice-left-handle")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   273
        .click(function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   274
            if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   275
                currentMedia.setCurrentTime(currentMedia.currentSegment.begin);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   276
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   277
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   278
    sliceSlider.find(".ui-slider-handle:last")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   279
        .addClass("Ldt-Slice-right-handle")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   280
        .click(function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   281
            if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   282
                currentMedia.setCurrentTime(currentMedia.currentSegment.end);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   283
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   284
        });
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   285
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   286
    /* UI Events */
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   287
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   288
    function onCurrentMediaPlay() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   289
        $(".Ldt-Ctrl-Play")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   290
            .attr("title", "Pause")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   291
            .removeClass("Ldt-Ctrl-Play-PlayState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   292
            .addClass("Ldt-Ctrl-Play-PauseState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   293
    }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   294
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   295
    function onCurrentMediaPause() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   296
        $(".Ldt-Ctrl-Play")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   297
            .attr("title", "Lecture")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   298
            .removeClass("Ldt-Ctrl-Play-PauseState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   299
            .addClass("Ldt-Ctrl-Play-PlayState")
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   300
    }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   301
    
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   302
    function onCurrentMediaTimeupdate(_time) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   303
        $(".Ldt-Ctrl-Time-Elapsed").text(_time.toString());
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   304
        timeSlider.slider("value",slidersRange * _time / currentMedia.duration);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   305
    }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   306
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   307
    /* Set current Media */
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   308
   
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   309
    var currentMedia;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   310
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   311
    function updateSliderAndTangles() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   312
        if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   313
            var start = currentMedia.currentSegment.begin,
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   314
                end = currentMedia.currentSegment.end,
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   315
                dur = currentMedia.currentSegment.getDuration(),
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   316
                f = slidersRange / currentMedia.duration;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   317
            sliceSlider.slider( "values", [ f * start, f * end ] );
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   318
            $(".tangle-start").text(start.toString()).attr("data-milliseconds",start.milliseconds);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   319
            $(".tangle-end").text(end.toString()).attr("data-milliseconds",end.milliseconds);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   320
            $(".tangle-duration").text(dur.toString()).attr("data-milliseconds",dur.milliseconds);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   321
            $(".segment-info .pointer").css("left",(parseFloat($(".Ldt-Slice-left-handle").css("left")) + parseFloat($(".Ldt-Slice-right-handle").css("left")))/2)
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   322
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   323
    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   324
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   325
    function setMedia(mediaid) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   326
        $(".col-left .item-video").removeClass("active");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   327
        $(".tutorial").hide();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   328
        $("video").hide();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   329
        if (currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   330
            currentMedia.pause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   331
        }
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   332
        currentMedia = project.getElement(mediaid);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   333
        if (currentMedia.elementType == "media") {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   334
            $(".col-left .item-video[data-media-id='" + mediaid + "']").addClass("active");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   335
            showSegmentation();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   336
            var currentvideo = $('#video_' + mediaid);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   337
            if (!currentvideo.length) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   338
                addMediaPlayer(currentMedia);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   339
                currentvideo = $('#video_' + mediaid);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   340
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   341
            $(".tab-media-title").text(currentMedia.title);
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   342
            if (!currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   343
                currentMedia.currentSegment = new IriSP.Model.Annotation(false, project);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   344
                currentMedia.currentSegment.setMedia(currentMedia.id);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   345
                currentMedia.currentSegment.setBegin(0);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   346
                currentMedia.currentSegment.setEnd(currentMedia.duration);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   347
                currentMedia.currentSegment.thumbnail = currentMedia.thumbnail;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   348
                currentMedia.currentSegment.title = "Segment sans titre";
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   349
                currentMedia.currentSegment.description = "Extrait de « " + currentMedia.title + " »";
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   350
                currentMedia.currentSegment.on("change-begin", function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   351
                    if (currentMedia && currentMedia.currentSegment === this) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   352
                        currentMedia.setCurrentTime(this.begin);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   353
                        updateSliderAndTangles();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   354
                    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   355
                });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   356
                currentMedia.currentSegment.on("change-end", function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   357
                    if (currentMedia && currentMedia.currentSegment === this) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   358
                        currentMedia.setCurrentTime(this.end);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   359
                        updateSliderAndTangles();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   360
                    }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   361
                });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   362
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   363
            updateSliderAndTangles();
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   364
        }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   365
        currentvideo.show();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   366
        $(".Ldt-Ctrl-Time-Total").text(currentMedia.duration.toString());
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   367
        $("#segment-title").val(currentMedia.currentSegment.title);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   368
        $("#segment-description").text(currentMedia.currentSegment.description);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   369
        // TODO: Do something with the tags !
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   370
        onCurrentMediaTimeupdate(currentMedia.getCurrentTime());
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   371
        onCurrentMediaPause();
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   372
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   373
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   374
    function addMediaPlayer(media) {
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   375
        var videoid = "video_" + media.id,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   376
            videoEl = $('<video>'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   377
            width = $(".video").width(),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   378
            height = $(".video").height(),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   379
            mp4_file = media.video.replace(/\.webm$/i,'.mp4'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   380
            webm_file = media.video.replace(/\.mp4$/i,'.webm'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   381
            mp4_src = $('<source>'),
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   382
            webm_src = $('<source>');
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   383
        mp4_src.attr({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   384
            src: mp4_file,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   385
            type: "video/mp4"
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   386
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   387
        webm_src.attr({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   388
            src: webm_file,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   389
            type: "video/webm"
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   390
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   391
        videoEl.attr({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   392
            id : videoid,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   393
            width : width,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   394
            height : height
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   395
        }).css({
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   396
            position : "absolute",
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   397
            left: 0,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   398
            top: 0,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   399
            width : width,
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   400
            height : height
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   401
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   402
        videoEl.append(mp4_src).append(webm_src);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   403
        $(".video").append(videoEl);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   404
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   405
        var popcorn = Popcorn("#" + videoid);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   406
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   407
        // Binding functions to Popcorn
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   408
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   409
        media.on("setcurrenttime", function(_milliseconds) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   410
            popcorn.currentTime(_milliseconds / 1000);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   411
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   412
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   413
        media.on("setvolume", function(_vol) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   414
            popcorn.volume(_vol);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   415
            media.volume = _vol;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   416
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   417
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   418
        media.on("setmuted", function(_muted) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   419
            popcorn.muted(_muted);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   420
            media.muted = _muted;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   421
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   422
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   423
        media.on("setplay", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   424
            popcorn.play();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   425
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   426
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   427
        media.on("setpause", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   428
            popcorn.pause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   429
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   430
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   431
        // Binding Popcorn events to media
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   432
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   433
        function getVolume() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   434
            media.muted = popcorn.muted();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   435
            media.volume = popcorn.volume();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   436
        }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   437
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   438
        popcorn.on("loadedmetadata", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   439
            getVolume();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   440
            media.trigger("loadedmetadata");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   441
            media.trigger("volumechange");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   442
        })
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   443
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   444
        popcorn.on("timeupdate", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   445
            media.trigger("timeupdate", new IriSP.Model.Time(1000*popcorn.currentTime()));
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   446
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   447
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   448
        popcorn.on("volumechange", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   449
            getVolume();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   450
            media.trigger("volumechange");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   451
        })
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   452
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   453
        popcorn.on("play", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   454
            media.trigger("play");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   455
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   456
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   457
        popcorn.on("pause", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   458
            media.trigger("pause");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   459
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   460
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   461
        popcorn.on("seeked", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   462
            media.trigger("seeked");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   463
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   464
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   465
        // Binding UI Events to Media
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   466
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   467
        media.on("play", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   468
            if (media === currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   469
                onCurrentMediaPlay();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   470
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   471
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   472
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   473
        media.on("pause", function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   474
            if (media === currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   475
                onCurrentMediaPause();
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   476
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   477
        });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   478
        
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   479
        media.on("timeupdate", function(_time) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   480
            if (media === currentMedia) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   481
                onCurrentMediaTimeupdate(_time);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   482
            }
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   483
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   484
        
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   485
        media.on("volumechange", function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   486
            if (media === currentMedia) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   487
                ctrlVolumeUpdater();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   488
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   489
        })
18
c85b323f5174 Modifications to home
veltr
parents: 15
diff changeset
   490
        
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
   491
    }
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   492
    
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   493
    /* Segment Form interaction */
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   494
   
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   495
    $("#segment-title").on("keyup change input paste", function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   496
        if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   497
            currentMedia.currentSegment.title = $(this).val();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   498
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   499
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   500
    $("#segment-description").on("keyup change input paste", function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   501
        if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   502
            currentMedia.currentSegment.title = $(this).val();
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   503
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   504
    });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   505
    $("#segment-form").submit(function() {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   506
        mashup.addSegment(currentMedia.currentSegment);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   507
        currentMedia.currentSegment = undefined;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   508
    })
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   509
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   510
    /* Click on media items */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   511
   
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   512
    $(".col-left").on("click", ".item-video", function() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   513
        setMedia($(this).attr("data-media-id"));
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   514
    });
12
8a8b6097d382 Starting 'editorjs' branch
veltr
parents:
diff changeset
   515
    
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   516
    /* Click on Tabs */
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   517
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   518
    function showSegmentation() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   519
        $(".col-middle").removeClass("empty-mode pvw-mode").addClass("segment-mode");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   520
        return false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   521
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   522
    function showPreview() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   523
        $(".col-middle").removeClass("empty-mode segment-mode").addClass("pvw-mode");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   524
        return false;
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   525
    }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   526
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   527
    $(".tab-pvw").click(showPreview);
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   528
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   529
    function disableMoveItemVideo() {
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   530
        $(".organize-segments .top, .organize-segments .bottom").removeClass("disable");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   531
        $(".organize-segments .item-video:last-child .bottom, .organize-segments .item-video:first-child .top").addClass("disable");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   532
    }
24
1fbf7d835dc2 - update segment and bg video list
Anthony Ly <anthonyly.com@gmail.com>
parents: 23
diff changeset
   533
    disableMoveItemVideo();
22
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   534
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   535
    $(".organize-segments").sortable({
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   536
        stop : function(){
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   537
            disableMoveItemVideo();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   538
        }
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   539
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   540
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   541
    $(".organize-segments .top").click(function(e){
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   542
        var currentItem = $(this).parents(".item-video");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   543
        currentItem.insertBefore(currentItem.prev());
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   544
        disableMoveItemVideo();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   545
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   546
    
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   547
    $(".organize-segments .bottom").click(function(e){
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   548
        var currentItem = $(this).parents(".item-video");
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   549
        currentItem.insertAfter(currentItem.next());
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   550
        disableMoveItemVideo();
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   551
    });
bd904d592881 Started player integration
veltr
parents: 18
diff changeset
   552
    
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   553
    /* Tangles */
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   554
    var tangleMsPerPixel = 100,
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   555
        activeTangle,
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   556
        tangleStartX,
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   557
        tangleStartVal,
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   558
        tangleHasMoved;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   559
    
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   560
    $(".time-tangle").mousedown(function(evt) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   561
        activeTangle = $(this);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   562
        activeTangle.addClass("active");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   563
        tangleStartVal = +activeTangle.attr("data-milliseconds");
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   564
        tangleStartX = evt.pageX;
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   565
        tangleHasMoved = false;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   566
        $(this).siblings(".time-tangle").addClass("deactivate");
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   567
        return false;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   568
    });
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   569
    $(document)
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   570
        .mousemove(function(evt) {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   571
            if (activeTangle) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   572
                tangleHasMoved = true;
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   573
                var newval = new IriSP.Model.Time(tangleMsPerPixel * (evt.pageX - tangleStartX) + tangleStartVal);
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   574
                activeTangle.trigger("valuechange", newval);
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   575
                return false;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   576
            }
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   577
        })
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   578
        .mouseup(function() {
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   579
            if (activeTangle) {
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   580
                $(".time-tangle").removeClass("active deactivate");
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   581
                activeTangle = undefined;
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   582
            }
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   583
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   584
        
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   585
    $(".tangle-start")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   586
        .mouseup(function(evt) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   587
            if (!tangleHasMoved && currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   588
                currentMedia.setCurrentTime(currentMedia.currentSegment.begin);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   589
            }
23
c9dc489913af Work on video loading - Commit before weekend
veltr
parents: 22
diff changeset
   590
        })
25
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   591
        .on("valuechange", function(evt, val) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   592
            if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   593
                currentMedia.currentSegment.setBegin(val);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   594
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   595
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   596
    $(".tangle-end")
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   597
        .mouseup(function(evt) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   598
            if (!tangleHasMoved && currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   599
                currentMedia.setCurrentTime(currentMedia.currentSegment.end);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   600
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   601
        })
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   602
        .on("valuechange", function(evt, val) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   603
            if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   604
                currentMedia.currentSegment.setEnd(val);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   605
            }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   606
        });
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   607
    $(".tangle-duration").on("valuechange", function(evt, val) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   608
        if (currentMedia && currentMedia.currentSegment) {
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   609
            currentMedia.currentSegment.setDuration(val);
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   610
        }
eea45f9b124b commit before merge
veltr
parents: 23
diff changeset
   611
    });
13
42c59d09670e display media list
veltr
parents: 12
diff changeset
   612
}
42c59d09670e display media list
veltr
parents: 12
diff changeset
   613
42c59d09670e display media list
veltr
parents: 12
diff changeset
   614
$(function() {
42c59d09670e display media list
veltr
parents: 12
diff changeset
   615
    var hashcut = new IriSP.Hashcut();
12
8a8b6097d382 Starting 'editorjs' branch
veltr
parents:
diff changeset
   616
});