diff options
Diffstat (limited to 'www/js/rivendell.rh.js')
-rw-r--r-- | www/js/rivendell.rh.js | 67 |
1 files changed, 65 insertions, 2 deletions
diff --git a/www/js/rivendell.rh.js b/www/js/rivendell.rh.js index dfcadcd..fdacd85 100644 --- a/www/js/rivendell.rh.js +++ b/www/js/rivendell.rh.js @@ -22,6 +22,8 @@ 'use strict'; +var Rivendell = Rivendell || {}; + Rivendell.Rivendell.prototype.setListDropboxesEndpoint = function(listDropboxesEndpoint) { this.listDropboxesEndpoint = listDropboxesEndpoint; }; @@ -32,9 +34,11 @@ Rivendell.Rivendell.prototype.setMusicgridEndpoint = function(musicgridEndpoint) Rivendell.Rivendell.prototype.listDropboxes = function(type, success) { var command = { LOGIN_NAME: this.username, - PASSWORD: this.token, - TYPE: type + PASSWORD: this.token }; + if (type !== null) { + command.TYPE = type; + } return $.post(this.listDropboxesEndpoint, command, success, 'xml'); }; @@ -67,3 +71,62 @@ Rivendell.Rivendell.prototype.setMusicgrid = function(dow, hour, name, success) }; return $.post(this.musicgridEndpoint, command, success, "xml"); }; + +Rivendell.GroupList = function(rivendell, type) { + this.rivendell = rivendell; + + this.type = type; + + this.groups = []; +}; + +Rivendell.GroupList.prototype.fetch = function(success) { + this.groups = []; + + var self = this; + this.rivendell.listDropboxes(this.type, function(groupsXml, status, req) { + var dbs = $('dropboxList', groupsXml).children(); + dbs.each(function(index, groupXml) { + switch ($('type', groupXml).text()) { + case 'show': + // todo + break; + case 'jingle': + var group = new JingleGroup( + $('jingle-title', groupXml).text(), + $('group', groupXml).text(), + $('group-description', groupXml).text(), + $('group-low-cart', groupXml).text(), + $('group-high-cart', groupXml).text(), + $('normalization-level', groupXml).text(), + $('autotrim-level', groupXml).text() + ); + break; + case 'musicpool': + var group = new Musicpool( + $('musicpool-title', groupXml).text(), + $('musicpool-clock', groupXml).text(), + $('group', groupXml).text(), + $('group-description', groupXml).text(), + $('group-low-cart', groupXml).text(), + $('group-high-cart', groupXml).text(), + $('normalization-level', groupXml).text(), + $('autotrim-level', groupXml).text() + ); + break; + } + + self.groups.push(group); + }); + + if (success) { + success(); + } + }); +}; + +Rivendell.GroupList.prototype.destroy = function() { + $(this.groups).each(function(index, group) { + group.destroy(); + }); +}; |