Skip to content

Commit

Permalink
Altered javascript to support new packet-based saving.
Browse files Browse the repository at this point in the history
  • Loading branch information
aduston committed Oct 21, 2010
1 parent 93bb4e2 commit 3872857
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 7 deletions.
1 change: 1 addition & 0 deletions apps/widget/rpc.py
Expand Up @@ -111,6 +111,7 @@ def finished_subtitles(self, request, video_id, packets, language_code=None):

Action.create_caption_handler(last_version)
return { "response" : "ok",
"last_saved_packet": last_version.last_saved_packet,
"drop_down_contents" :
self._drop_down_contents(request.user, video) }

Expand Down
9 changes: 9 additions & 0 deletions media/js/widget/subtitle/editablecaption.js
Expand Up @@ -191,6 +191,15 @@ mirosubs.subtitle.EditableCaption.prototype.changed_ =
new mirosubs.subtitle.EditableCaption.ChangeEvent(
timesFirstAssigned));
};
mirosubs.subtitle.EditableCaption.toJsonArray = function(editableCaptions) {
return goog.array.map(arr, function(editableCaption) {
return editableCaption.json;
});
};

/**
* @constructor
*/
mirosubs.subtitle.EditableCaption.ChangeEvent = function(timesFirstAssigned) {
this.type = mirosubs.subtitle.EditableCaption.CHANGE;
this.timesFirstAssigned = timesFirstAssigned;
Expand Down
27 changes: 20 additions & 7 deletions media/js/widget/subtitle/msservermodel.js
Expand Up @@ -39,6 +39,8 @@ mirosubs.subtitle.MSServerModel = function(videoID, videoURL, language) {
this.language_ = language;
this.initialized_ = false;
this.finished_ = false;
this.unsavedPackets_ = [];
this.packetNo_ = 1;
};
goog.inherits(mirosubs.subtitle.MSServerModel, goog.Disposable);

Expand Down Expand Up @@ -137,23 +139,34 @@ mirosubs.subtitle.MSServerModel.prototype.saveImpl_ = function() {
// this should never happen.
alert('Problem saving subtitles. Response: ' +
result['response']);
else
this.registerSavedPackets_(result['last_saved_packet']);
});
};

mirosubs.subtitle.MSServerModel.prototype.registerSavedPackets_ = function(lastSavedPacketNo) {
var saved = goog.array.filter(
this.unsavedPackets_,
function(p) { return p['packet_no'] < lastSavedPacketNo; });
for (var i = 0; i < saved.length; i++)
goog.array.remove(unsavedPackets_, saved[i]);
};

mirosubs.subtitle.MSServerModel.prototype.makeSaveArgs_ = function() {
var work = this.unitOfWork_.getWork();
this.unitOfWork_.clear();
var toJsonCaptions = function(arr) {
return goog.array.map(arr, function(editableCaption) {
return editableCaption.json;
});
var packet = {
'packet_no': this.packetNo_,
'deleted': toJsonCaptions(work.deleted),
'inserted': toJsonCaptions(work.neu),
'updated': toJsonCaptions(work.updated)
};
this.packetNo_++;
this.unsavedPackets_.push(packet);
return {
'video_id': this.videoID_,
'language_code': this.language_,
'deleted': toJsonCaptions(work.deleted),
'inserted': toJsonCaptions(work.neu),
'updated': toJsonCaptions(work.updated)
'packets': this.unsavedPackets_
};
};

Expand Down

0 comments on commit 3872857

Please sign in to comment.