Files
edx-platform/cms/static/js/views/previous_video_upload.js
Greg Price 61cb51596d Add front end for Studio video upload feature
Co-authored-by: Chris <crodriguez@edx.org>
Co-authored-by: Mark Hoeber <hoeber@edx.org>
2014-12-15 13:09:59 -05:00

72 lines
3.0 KiB
JavaScript

define(
["gettext", "js/utils/date_utils", "js/views/baseview"],
function(gettext, DateUtils, BaseView) {
"use strict";
var statusDisplayStrings = {
// Translators: This is the status of an active video upload
UPLOADING: gettext("Uploading"),
// Translators: This is the status for a video that the servers
// are currently processing
IN_PROGRESS: gettext("In Progress"),
// Translators: This is the status for a video that the servers
// have successfully processed
COMPLETE: gettext("Complete"),
// Translators: This is the status for a video that the servers
// have failed to process
FAILED: gettext("Failed"),
// Translators: This is the status for a video for which an invalid
// processing token was provided in the course settings
INVALID_TOKEN: gettext("Invalid Token"),
// Translators: This is the status for a video that is in an unknown
// state
UNKNOWN: gettext("Unknown")
};
var statusMap = {
"upload": statusDisplayStrings.UPLOADING,
"ingest": statusDisplayStrings.IN_PROGRESS,
"transcode_queue": statusDisplayStrings.IN_PROGRESS,
"transcode_active": statusDisplayStrings.IN_PROGRESS,
"file_delivered": statusDisplayStrings.COMPLETE,
"file_complete": statusDisplayStrings.COMPLETE,
"file_corrupt": statusDisplayStrings.FAILED,
"pipeline_error": statusDisplayStrings.FAILED,
"invalid_token": statusDisplayStrings.INVALID_TOKEN
};
var PreviousVideoUploadView = BaseView.extend({
tagName: "tr",
initialize: function() {
this.template = this.loadTemplate("previous-video-upload");
},
renderDuration: function(seconds) {
var minutes = Math.floor(seconds/ 60);
var seconds = Math.floor(seconds - minutes * 60);
return minutes + ":" + (seconds < 10 ? "0" : "") + seconds;
},
render: function() {
var duration = this.model.get("duration");
var renderedAttributes = {
// Translators: This is listed as the duration for a video
// that has not yet reached the point in its processing by
// the servers where its duration is determined.
duration: duration > 0 ? this.renderDuration(duration) : gettext("Pending"),
created: DateUtils.renderDate(this.model.get("created")),
status: statusMap[this.model.get("status")] || statusDisplayStrings.UNKNOWN
};
this.$el.html(
this.template(_.extend({}, this.model.attributes, renderedAttributes))
);
return this;
}
});
return PreviousVideoUploadView;
}
);