diff options
author | Peter Grassberger <petertheone@gmail.com> | 2016-07-17 20:31:04 (GMT) |
---|---|---|
committer | Peter Grassberger <petertheone@gmail.com> | 2016-07-17 20:31:04 (GMT) |
commit | 10793b9fec7dde0fbb005c70923f96975c8ffcc2 (patch) | |
tree | 7211e74690c299d610cf0ff3664f3bbaa288ff6c /www/js/importer.js | |
parent | 49aab5316d471542677f6be931da7c2ad14c3ef8 (diff) |
restructure socketlist, still in broken state.
Diffstat (limited to 'www/js/importer.js')
-rw-r--r-- | www/js/importer.js | 109 |
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() { |