summaryrefslogtreecommitdiff
path: root/www/js/rivendell.rh.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/rivendell.rh.js')
-rw-r--r--www/js/rivendell.rh.js67
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();
+ });
+};