diff options
author | PeterTheOne <petertheone@gmail.com> | 2016-01-28 17:15:10 (GMT) |
---|---|---|
committer | PeterTheOne <petertheone@gmail.com> | 2016-01-28 17:15:10 (GMT) |
commit | c84b446a7ace4f672e6cd0b4679df3e614bd2f70 (patch) | |
tree | 4d63b70ab5ea3649ec2f5032e9a326fb7390dc7a /www/js/rivendell.rh.js | |
parent | 34316ee23f6fd1b13b03209ade06027aa6ba2ca2 (diff) |
combine JingleGroupList and Musicpools to GroupList class
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(); + }); +}; |