summaryrefslogtreecommitdiff
path: root/www/js/importer.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/importer.js')
-rw-r--r--www/js/importer.js109
1 files changed, 58 insertions, 51 deletions
diff --git a/www/js/importer.js b/www/js/importer.js
index 6579d4e..eacfd57 100644
--- a/www/js/importer.js
+++ b/www/js/importer.js
@@ -31,6 +31,7 @@ Rdxport.Importer = function(username, token, rhimpordEndpoint) {
this.$el = $('#uploadModal');
this.listWebSocket = null;
+ this.sessions = [];
this.uploads = [];
this.initListWebSocket();
@@ -69,58 +70,50 @@ Rdxport.Importer.prototype.initListWebSocket = function() {
PASSWORD: importer.token
};
this.send(JSON.stringify(sendOptions));
- var self = this;
- setInterval(function() {
- self.send(JSON.stringify(sendOptions));
- }, 3 * 1000);
};
this.listWebSocket.onmessage = function(event) {
var data = $.parseJSON(event.data);
- if (data.TYPE.toLowerCase() === Rdxport.Importer.TYPE_LIST) {
- $.each(data.SESSIONS, function(id, reference) {
- if (importer.getUploadById(id) !== null) {
- return true; //continue;
- }
- var reference = reference.split('/');
- var groupName = reference[0];
- var cartNumber = reference[1];
- var filename = reference[2];
-
- var groupViews = null;
- switch (router.activeRoute) {
- default:
- //fallthrough
- case 'shows':
- if (showListView) {
- groupViews = showListView.showViews;
- }
- case 'jingles':
- if (jingleGroupListView) {
- groupViews = jingleGroupListView.jingleGroupViews;
- }
- case 'musicpools':
- if (musicpoolsView) {
- groupViews = musicpoolsView.musicpoolViews;
- }
- }
+ console.log(data);
+ if (data.TYPE.toLowerCase() !== Rdxport.Importer.TYPE_LIST) {
+ return;
+ }
- var groupView = groupViews.find(function (element) {
- return element.model.groupName === groupName;
- });
+ $.each(data.SESSIONS_ADDED, function(id, reference) {
+ self.sessions[id] = reference;
+ });
+ $.each(data.SESSIONS_REMOVED, function(id, reference) {
+ delete self.sessions[id];
+ });
+ console.log('sessions');
+ console.log(self.sessions);
+ };
+};
- if (!groupView) {
- return true; //continue;
- }
+Rdxport.Importer.prototype.syncUploads = function(route, groupView, done) {
+ console.log('syncUploads');
- var group = groupView.model;
+ var sessions = this.sessions.filter(function(reference) {
+ var reference = reference.split('/');
+ return route === reference[0] && groupView.model.groupName === reference[1];
+ });
- var upload = new Rdxport.Upload('/' + filename, group, groupView, cartNumber, cartNumber, null);
- upload.reconnect(id, reference);
- self.uploads.push(upload);
- });
+ var self = this;
+ $.each(sessions, function(id, reference) {
+ if (importer.getUploadById(id) !== null) {
+ return true; //continue;
}
- };
+ var reference = reference.split('/');
+ var cartNumber = reference[2];
+ var filename = reference[3];
+ var group = groupView.model;
+ var upload = new Rdxport.Upload('/' + filename, group, groupView, cartNumber, cartNumber, null);
+ upload.reconnect(id, reference);
+ self.uploads.push(upload);
+ });
+ if (done) {
+ done();
+ }
};
Rdxport.Importer.prototype.resetModal = function() {
@@ -245,10 +238,11 @@ Rdxport.Importer.prototype.isUploading = function() {
return $result;
};
-Rdxport.Importer.prototype.closeAllUploads = function() {
+Rdxport.Importer.prototype.closeAllUploads = function(silent) {
+ silent = silent || false;
$.each(this.uploads, function(index, upload) {
if (upload) {
- upload.close();
+ upload.close(silent);
}
});
};
@@ -449,6 +443,17 @@ Rdxport.Upload.prototype.import = function() {
this.webSocket.onmessage = function(event) { self.onmessage(event) };
this.webSocket.onopen = function() {
+ var reference = '';
+ if (self.group instanceof Rdxport.Show) {
+ reference += 'shows/';
+ } else if (self.group instanceof Rdxport.JingleGroup) {
+ reference += 'jingles/';
+ } else if (self.group instanceof Rdxport.Musicpool) {
+ reference += 'musicpools/';
+ }
+ reference += self.group.groupName + '/';
+ reference += self.cartNumber ? self.cartNumber + '/' : '/';
+ reference += self.filename;
var sendOptions = {
COMMAND: Rdxport.Importer.CMD_NEW,
LOGIN_NAME: importer.username,
@@ -458,16 +463,15 @@ Rdxport.Upload.prototype.import = function() {
CHANNELS: 2,
NORMALIZATION_LEVEL: self.group.normlevel,
AUTOTRIM_LEVEL: self.group.trimlevel,
- USE_METADATA: self.useMetadata
- };
+ USE_METADATA: self.useMetadata,
+ REFERENCE_ID: reference
+ };
if (self.group instanceof Rdxport.Show) {
sendOptions.SHOW_ID = self.group.id;
}
if (self.cartNumber) {
- sendOptions.REFERENCE_ID = self.group.groupName + '/' + self.cartNumber + '/' + self.filename;
sendOptions.CART_NUMBER = parseInt(self.cartNumber);
} else if (self.group instanceof Rdxport.Musicpool) {
- sendOptions.REFERENCE_ID = self.group.groupName + '/' + self.filename;
sendOptions.MUSIC_POOL_GROUP = self.group.groupName;
}
console.log(sendOptions);
@@ -496,10 +500,13 @@ Rdxport.Upload.prototype.reconnect = function(id, reference) {
};
};
-Rdxport.Upload.prototype.close = function() {
+Rdxport.Upload.prototype.close = function(silent) {
+ silent = silent || false;
this.webSocket.close();
importer.removeUpload(this);
- this.group.fetchCarts();
+ if (!silent) {
+ this.group.fetchCarts();
+ }
};
Rdxport.Upload.prototype.cancel = function() {