crea/integration/metadataplayer/MusitagAnnotator.js
author ymh <ymh.work@gmail.com>
Mon, 29 Jul 2024 23:18:55 +0200
changeset 131 2a18dfe8bfc0
parent 62 c56d8f2447a2
permissions -rw-r--r--
last change before install
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     1
IriSP.Widgets.MusitagAnnotator = function(player, config) {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     2
    IriSP.Widgets.Widget.call(this, player, config);
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     3
};
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     4
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     5
IriSP.Widgets.MusitagAnnotator.prototype = new IriSP.Widgets.Widget();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     6
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     7
IriSP.Widgets.MusitagAnnotator.prototype.defaults = {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     8
    min_left: -90,
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
     9
    max_right: 900,
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    10
    width: 870,
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    11
    record_swf: "",
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    12
    show_play_arrow: false,
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    13
    api_serializer: "ldt_annotate",
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    14
    api_endpoint_template: "",
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    15
    api_method: "PUT",
40
02960e91525d JS corrections
veltr
parents: 38
diff changeset
    16
    close_widget_timeout: 4000,
02960e91525d JS corrections
veltr
parents: 38
diff changeset
    17
    annotation_type: "contributions",
54
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    18
    creator_name: "musitag",
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    19
    emoticons: [
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    20
        { tag: "happy", name: "content"},
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    21
        { tag: "unhappy", name: "mécontent"},
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    22
        { tag: "laughing", name: "rigolard"},
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    23
        { tag: "surprised", name: "étonné"}
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    24
    ],
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    25
    colors: [
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    26
        { tag: "red", name: "rouge"},
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    27
        { tag: "yellow", name: "jaune"},
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    28
        { tag: "green", name: "vert"},
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    29
        { tag: "blue", name: "bleu"}
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    30
    ],
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    31
};
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    32
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    33
IriSP.Widgets.MusitagAnnotator.prototype.template =
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    34
    '<div class="Musitag-Annotator-PositionBar"></div><div class="Musitag-Annotator-Main">'
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    35
    + '<div class="Musitag-Annotator-MainScreen">'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    36
    + '<div class="Musitag-Annotator-section"><h2>1</h2>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    37
    + '    <h3>Choisis<br />une couleur</h3>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    38
    + '    <div class="Musitag-Annotator-selector">'
54
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    39
    + '{{#colors}}'
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    40
    + '        <div class="Musitag-container-80 Musitag-Annotator-tagInSelector" title="{{name}}">'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    41
    + '            <div class="Musitag-shadow"></div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    42
    + '            <div class="Musitag-color"></div>'
54
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    43
    + '            <div class="Musitag-color Musitag-{{tag}}"></div>'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    44
    + '        </div>'
54
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    45
    + '{{/colors}}'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    46
    + '    </div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    47
    + '</div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    48
    + '<div class="Musitag-Annotator-separator"></div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    49
    + '<div class="Musitag-Annotator-section">'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    50
    + '    <h2>2</h2>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    51
    + '    <h3>Choisis<br />une émotion</h3>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    52
    + '    <div class="Musitag-Annotator-selector">'
54
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    53
    + '{{#emoticons}}'
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    54
    + '        <div class="Musitag-container-80 Musitag-Annotator-tagInSelector" title="{{name}}">'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    55
    + '            <div class="Musitag-shadow"></div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    56
    + '            <div class="Musitag-color"></div>'
54
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    57
    + '            <div class="Musitag-emoticon Musitag-{{tag}}"></div>'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    58
    + '        </div>'
54
402fad4d9495 Added logos
veltr
parents: 45
diff changeset
    59
    + '{{/emoticons}}'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    60
    + '    </div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    61
    + '</div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    62
    + '<div class="Musitag-Annotator-separator"></div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    63
    + '<div class="Musitag-Annotator-section">'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    64
    + '    <h2>3</h2>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    65
    + '    <h3>Enregistre<br />ta voix</h3>'
13
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    66
    + '    <div class="Musitag-Annotator-record">'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    67
    
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    68
    + '    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="220" height="160" id="record_mic" align="middle">'
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    69
    + '        <param name="movie" value="{{record_swf}}" />'
13
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    70
    + '        <param name="quality" value="high" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    71
    + '        <param name="bgcolor" value="#ffffff" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    72
    + '        <param name="play" value="true" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    73
    + '        <param name="loop" value="true" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    74
    + '        <param name="wmode" value="transparent" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    75
    + '        <param name="scale" value="showall" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    76
    + '        <param name="menu" value="true" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    77
    + '        <param name="devicefont" value="false" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    78
    + '        <param name="salign" value="" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    79
    + '        <param name="allowScriptAccess" value="always" />'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    80
    + '        <param name="allowFullScreen" value="true" />'
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    81
    + '        <param name="flashvars" value="playVisible={{show_play_arrow}}">'
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    82
    + '        <embed src="{{record_swf}}"" quality="high" bgcolor="#ffffff"'
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    83
    + '             width="220" height="160" name="ExternalInterfaceExample" align="middle"'
13
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    84
    + '             play="true" loop="false" quality="high" allowScriptAccess="always" '
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    85
    + '             type="application/x-shockwave-flash" allowFullScreen="true" wmode="transparent" '
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
    86
    + '             flashvars="playVisible={{show_play_arrow}}"'
13
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    87
    + '             pluginspage="http://www.macromedia.com/go/getflashplayer">'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    88
    + '        </embed>'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    89
    + '    </object>'
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    90
    
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    91
    
692a26b5274b Metadataplayer changes
veltr
parents: 10
diff changeset
    92
    +'</div>'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    93
    + '</div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    94
    + '<div class="Musitag-Annotator-separator"></div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    95
    + '<div class="Musitag-Annotator-section">'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    96
    + '    <h2>4</h2>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    97
    + '    <h3>Envoie<br />ton Musitag</h3>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    98
    + '    <div class="Musitag-Annotator-Note">'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
    99
    + '        <div class="Musitag-container-80 Musitag-Annotator-tagInSend">'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   100
    + '            <div class="Musitag-shadow"></div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   101
    + '            <div class="Musitag-color"></div>'
10
84fc62839751 changed size of embedded microphone
veltr
parents: 2
diff changeset
   102
    + '            <div class="Musitag-emoticon"></div>'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   103
    + '        </div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   104
    + '    </div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   105
    + '</div>'
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   106
    + '<div class="Musitag-Annotator-close"></div>'
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   107
    + '</div><div class="Musitag-Annotator-EndScreen Musitag-Annotator-TextMessage">Ton Musitag a bien été enregistré :-)</div>'
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   108
    + '<div class="Musitag-Annotator-ErrorScreen Musitag-Annotator-TextMessage">Nous n\'avons pas réussi à envoyer ton Musitag :-(</div>'
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   109
    + '<div class="Musitag-Annotator-WaitScreen Musitag-Annotator-TextMessage">Nous sommes en train d\'envoyer ton Musitag</div>'
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   110
    + '</div></div>';
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   111
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   112
IriSP.Widgets.MusitagAnnotator.prototype.draw = function() {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   113
    this.renderTemplate();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   114
    this.position_bar = this.$.find(".Musitag-Annotator-PositionBar");
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   115
    this.position_bar.hide();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   116
    this.position_width = this.position_bar.outerWidth();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   117
    this.main_div = this.$.find(".Musitag-Annotator-Main");
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   118
    this.$.hide();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   119
    this.main_width = this.main_div.outerWidth();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   120
    this.bindPopcorn("timeupdate","onTimeupdate");
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   121
    this.bindPopcorn("IriSP.MusitagAnnotator.hide","hide");
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   122
    this.bindPopcorn("IriSP.MusitagAnnotator.show","show");
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   123
    this.recorder = this.$.find("embed")[0];
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   124
    
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   125
    var _this = this;
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   126
    
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   127
    this.$.find('.Musitag-Annotator-tagInSelector').click(function() {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   128
        var _class = IriSP.jQuery(this).children(':last-child').attr('class'),
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   129
            _classes = _class.split(' '),
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   130
            _type = _classes[0].replace(/^\w+-/,""),
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   131
            _value = _classes[1].replace(/^\w+-/,"");
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   132
        _this.annotation[_type] = _value;
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   133
        _this.checkAnnotation();
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   134
        IriSP.jQuery('.Musitag-Annotator-tagInSend .' + _classes[0]).attr('class',_class);
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   135
        IriSP.jQuery(this).siblings().removeClass('down')
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   136
            .children(':last-child').css('opacity',.35);
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   137
        IriSP.jQuery(this).addClass('down')
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   138
            .children(':last-child').css('opacity',1);
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   139
    });
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   140
    
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   141
    this.$.find('.Musitag-Annotator-close').click(function() {
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   142
        _this.recorder.stopRecord();
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   143
        _this.hide();
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   144
    });
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   145
    
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   146
    this.$.find('.Musitag-Annotator-Note').click(function() {
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   147
        if (_this.checkAnnotation) {
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   148
            _this.recorder.stopRecord();
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   149
            _this.sendAnnotation();
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   150
        }
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   151
    });
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   152
    
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   153
    window.setAudioUrl = function(_url) {
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   154
        _this.annotation.audio_url = _url;
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   155
    }
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   156
}
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   157
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   158
IriSP.Widgets.MusitagAnnotator.prototype.onTimeupdate = function() {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   159
    var _x = Math.floor(this.width * this.player.popcorn.currentTime() / this.source.getDuration().getSeconds());
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   160
    this.position_bar.css("margin-left", (_x - this.position_width / 2)+"px");
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   161
    this.main_div.css("margin-left",Math.max(this.min_left, Math.min(this.max_right - this.main_width, _x - this.main_width / 2))+"px");
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   162
}
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   163
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   164
IriSP.Widgets.MusitagAnnotator.prototype.checkAnnotation = function() {
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   165
    var _res = this.annotation.emoticon && this.annotation.color;
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   166
    this.$.find('.Musitag-Annotator-Note').css("opacity", _res ? 1 : .5);
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   167
    return _res;
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   168
}
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   169
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   170
IriSP.Widgets.MusitagAnnotator.prototype.showScreen = function(_screenName) {
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   171
    this.$.find('.Musitag-Annotator-' + _screenName + 'Screen').show()
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   172
        .siblings().hide();
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   173
}
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   174
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   175
IriSP.Widgets.MusitagAnnotator.prototype.show = function() {
45
203991e94842 JS corrections
veltr
parents: 40
diff changeset
   176
    if (!this.player.popcorn.media.paused) {
203991e94842 JS corrections
veltr
parents: 40
diff changeset
   177
        this.player.popcorn.pause();
203991e94842 JS corrections
veltr
parents: 40
diff changeset
   178
    }
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   179
    this.$.show();
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   180
    this.showScreen('Main');
10
84fc62839751 changed size of embedded microphone
veltr
parents: 2
diff changeset
   181
    this.$.find('.Musitag-Annotator-tagInSelector').removeClass("down");
84fc62839751 changed size of embedded microphone
veltr
parents: 2
diff changeset
   182
    this.$.find(".Musitag-Annotator-tagInSend .Musitag-color").attr("class","Musitag-color");
84fc62839751 changed size of embedded microphone
veltr
parents: 2
diff changeset
   183
    this.$.find(".Musitag-Annotator-tagInSend .Musitag-emoticon").attr("class","Musitag-emoticon hidden");
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   184
    this.annotation = {
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   185
        timecode: Math.floor(this.player.popcorn.currentTime() * 1000),
15
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   186
        audio_url: false,
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   187
        emoticon: false,
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   188
        color: false
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   189
    };
f1d070549d94 Added audio information to test data
veltr
parents: 13
diff changeset
   190
    this.checkAnnotation();
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   191
    this.position_bar.slideDown(200);
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   192
}
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   193
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   194
IriSP.Widgets.MusitagAnnotator.prototype.hide = function() {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   195
    var _this = this;
45
203991e94842 JS corrections
veltr
parents: 40
diff changeset
   196
    this.player.popcorn.trigger("IriSP.MusitagAndYou.show");
2
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   197
    this.position_bar.slideUp(200, function() {
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   198
        _this.$.hide();
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   199
    });
44deeff592e2 Added metadataplayer, "widgetized" the interface
veltr
parents:
diff changeset
   200
}
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   201
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   202
IriSP.Widgets.MusitagAnnotator.prototype.sendAnnotation = function() {
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   203
    var _exportedAnnotations = new IriSP.Model.List(this.player.sourceManager);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   204
        _export = this.player.sourceManager.newLocalSource({serializer: IriSP.serializers[this.api_serializer]}),
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   205
        _annotation = new IriSP.Model.Annotation(false, _export),
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   206
        _annotationTypes = this.source.getAnnotationTypes().searchByTitle(this.annotation_type),
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   207
        _annotationType = (_annotationTypes.length ? _annotationTypes[0] : new IriSP.Model.AnnotationType(false, _export)),
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   208
        _color = new IriSP.Model.Tag(false, _export),
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   209
        _emoticon = new IriSP.Model.Tag(false, _export),
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   210
        _url = Mustache.to_html(this.api_endpoint_template, {id: this.source.projectId});
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   211
    
40
02960e91525d JS corrections
veltr
parents: 38
diff changeset
   212
    if (!_annotationTypes.length) {
02960e91525d JS corrections
veltr
parents: 38
diff changeset
   213
        _annotationType.dont_send_id = true;
02960e91525d JS corrections
veltr
parents: 38
diff changeset
   214
    }
02960e91525d JS corrections
veltr
parents: 38
diff changeset
   215
    
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   216
    _color.title = this.annotation.color;
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   217
    _emoticon.title = this.annotation.emoticon;
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   218
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   219
    _annotationType.title = this.annotation_type;
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   220
    _annotation.setBegin(this.annotation.timecode);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   221
    _annotation.setEnd(this.annotation.timecode);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   222
    _annotation.setMedia(this.source.currentMedia.id);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   223
    _annotation.setAnnotationType(_annotationType.id);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   224
    _annotation.created = new Date();
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   225
    _annotation.description = this.annotation.color + " " + this.annotation.emoticon;
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   226
    _annotation.setTags([_color.id, _emoticon.id]);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   227
    
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   228
    if (this.annotation.audio_url) {
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   229
        _annotation.audio = {
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   230
            src: "mic",
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   231
            mimetype: "audio/mp3",
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   232
            href: this.annotation.audio_url
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   233
        };
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   234
    }
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   235
    
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   236
    _export.creator = this.creator_name;
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   237
    _export.created = new Date();
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   238
    _exportedAnnotations.push(_annotation);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   239
    _export.addList("annotation",_exportedAnnotations);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   240
    
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   241
    var _this = this;
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   242
    IriSP.jQuery.ajax({
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   243
        url: _url,
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   244
        type: this.api_method,
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   245
        contentType: 'application/json',
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   246
        data: _export.serialize(),
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   247
        success: function(_data) {
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   248
            _this.showScreen('End');
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   249
            window.setTimeout(_this.functionWrapper("hide"),_this.close_widget_timeout);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   250
            _export.getAnnotations().removeElement(_annotation, true);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   251
            _export.deSerialize(_data);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   252
            _this.source.merge(_export);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   253
            _this.player.popcorn.trigger("IriSP.MusitagAnnotations.redraw");
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   254
        },
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   255
        error: function(_xhr, _error, _thrown) {
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   256
            IriSP.log("Error when sending annotation", _thrown);
62
c56d8f2447a2 Corrected empty project bug
veltr
parents: 54
diff changeset
   257
            _export.getAnnotations().removeElement(_annotation, true);
38
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   258
            _this.showScreen('Error');
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   259
            window.setTimeout(function(){
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   260
                _this.showScreen("Main");
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   261
            },
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   262
            _this.close_widget_timeout);
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   263
        }
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   264
    });
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   265
    this.showScreen('Wait');
f19428838d3b Added Annotation pushing
veltr
parents: 15
diff changeset
   266
}