diff options
Diffstat (limited to 'www/js')
-rw-r--r-- | www/js/musicpools.js | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/www/js/musicpools.js b/www/js/musicpools.js index 1c968f9..cfaec13 100644 --- a/www/js/musicpools.js +++ b/www/js/musicpools.js @@ -22,8 +22,77 @@ 'use strict'; +var rivendell = null; +var musicpools = null; + function musicpools_init() { + rivendell = new Rivendell.Rivendell(auth_username, auth_token, '/rd-bin/rdxport.cgi'); + rivendell.setListDropboxesEndpoint('/rh-bin/listdropboxes.cgi'); + musicpools = new Musicpools(); } function musicpools_cleanup() { + rivendell = null; } + +// this and jinglegroups are basicly the same +var Musicpools = function() { + // todo: get current Pool Id from session like shows? + this.currentPoolId = null; + this.musicpools = []; + this.fetch(); +}; + +Musicpools.prototype.fetch = function() { + var self = this; + + rivendell.listDropboxes(function(groupsXml, status, req) { + self.musicpools = []; + + var dbs = $(groupsXml).find("dropboxList").children(); + dbs.each(function(index, groupXml) { + if ($('type', groupXml).text() !== 'musicpool') { + return true; // continue + } + + var musicpool = 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() + ); + + self.musicpools.push(musicpool); + }); + + self.updateSelector(); + }); +}; + +Musicpools.prototype.updateSelector = function() { + $('#musicpool-selector').find('option').remove(); + + // todo: add from list + this.musicpools.each(function(index, musicpool) { + var name = musicpool.title + ' (' + musicpool.clock + ')'; + $('#musicpool-selector').append($('<option>').attr('value', musicpool.title).text(name)); + }); + +}; + +// this and jinglegroup are basicly the same thing +var Musicpool = function(title, clock, groupName, description, lowcart, highcart, normlevel, trimlevel) { + this.title = title; + this.clock = clock; + + this.groupName = groupName; + this.description = description; + this.lowcart = lowcart; + this.highcart = highcart; + this.normlevel = normlevel; + this.trimlevel = trimlevel; +}; |