summaryrefslogtreecommitdiff
path: root/js/shows.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/shows.js')
-rw-r--r--js/shows.js129
1 files changed, 129 insertions, 0 deletions
diff --git a/js/shows.js b/js/shows.js
new file mode 100644
index 0000000..47d6d5c
--- /dev/null
+++ b/js/shows.js
@@ -0,0 +1,129 @@
+ var shows_currentid;
+ var shows_list = [];
+ var shows_current;
+ var shows_group_carts = [];
+ var shows_log_carts = [];
+
+ function shows_udpateCartListing() {
+ $('#show-carts tbody').find('tr').remove();
+ $('#show-info-dumper').text(
+ 'Current Show:\n' + JSON.stringify(shows_current, null, ' ') +
+ '\n\nGroup Carts:\n' + JSON.stringify(shows_group_carts, null, ' ') +
+ '\n\nLog Carts:\n' + JSON.stringify(shows_log_carts, null, ' ')
+ );
+
+ }
+
+ function shows_updateGroupCartList(data, status, req) {
+ shows_group_carts = [];
+ $('#show-carts').find('tr:gt(0)').remove();
+ var cartlist = $(data).find("cartList");
+ var carts = cartlist.children();
+ carts.each(function() {
+ var cut = $(this).find("cutList").get(0);
+ cart = {
+ number: $(this).find('number').text(),
+ title: $(this).find('title').text(),
+ length: $(cut).find('length').text(),
+ imported: new Date($(cut).find('originDatetime').text()),
+ playcnt: new Date($(cut).find('playCounter').text()),
+ lastplayed: new Date($(cut).find('lastPlayDatetime').text()),
+ };
+ shows_group_carts.push(cart);
+ }
+ );
+ }
+
+ function shows_updateLogCartList(data, status, req) {
+ shows_log_carts = [];
+ var loglist = $(data).find("logList");
+ var loglines = loglist.children();
+ loglines.each(function() {
+ var number = $(this).find('cartNumber').text();
+ if(number >= shows_current.group.lowcart && number <= shows_current.group.highcart) {
+ shows_log_carts.push(number);
+ }
+ }
+ );
+ }
+
+ function shows_showSelected() {
+ shows_currentid = $('#show-selector option:selected').attr('value');
+ sessionStorage.setItem("shows_currentid", shows_currentid);
+ shows_current = $.grep(shows_list, function(elem) { return elem.id == shows_currentid; })[0];
+
+ if(shows_current) {
+ $('#show-title').text(shows_current.title);
+ $('#show-dow').text(weekday[shows_current.dow]);
+ $('#show-rhythm').text(shows_current.rhythm);
+ $('#show-starttime').text(shows_current.starttime);
+ $('#show-length').text(shows_current.length + ' Min.');
+
+ shows_log_carts = [];
+ data = { COMMAND: 22, LOGIN_NAME: auth_username, PASSWORD: auth_token, NAME: shows_current.log };
+ lcd = $.post("/rd-bin/rdxport.cgi", data, shows_updateLogCartList, "xml");
+
+ shows_group_carts = [];
+ data = { COMMAND: 6, LOGIN_NAME: auth_username, PASSWORD: auth_token, GROUP_NAME: shows_current.group.name, INCLUDE_CUTS: 1 };
+ gcd = $.post("/rd-bin/rdxport.cgi", data, shows_updateGroupCartList, "xml");
+
+ $.when(lcd, gcd).done(
+ function(lcres, gcres) {
+ if(lcres[1] == 'success' && gcres[1] == 'success') {
+ shows_udpateCartListing();
+ }
+ }
+ );
+ }
+ }
+
+ function shows_updateList(data, status, req) {
+ shows_list = [];
+ $('#show-selector').find('option').remove();
+ var dblist = $(data).find("dropboxList");
+ var dbs = dblist.children();
+ dbs.each(function() {
+ type = $(this).find('type').text();
+ if(type == 'show') {
+ var show = {
+ id: $(this).find('showid').text(),
+ title: $(this).find('show-title').text(),
+ dow: $(this).find('show-dayofweek').text(),
+ rhythm: $(this).find('show-rhythm').text(),
+ starttime: $(this).find('show-starttime').text(),
+ length: $(this).find('show-length').text(),
+ group: {
+ name: $(this).find('group').text(),
+ lowcart: $(this).find('group-low-cart').text(),
+ highcart: $(this).find('group-high-cart').text(),
+ },
+ log: $(this).find('log').text(),
+ normlevel: $(this).find('normalization-level').text(),
+ trimlevel: $(this).find('autotrim-level').text(),
+ }
+
+ var name = show.title + ' (' + show.rhythm + ', ' + weekday[show.dow] + ', ' + show.starttime + ', ' + show.length + ' Min.)';
+ $('#show-selector').append($('<option>').attr('value',show.id).text(name));
+
+ shows_list.push(show);
+ }
+ }
+ );
+ $('#show-selector').val(shows_currentid);
+ shows_showSelected();
+ }
+
+ function shows_init() {
+ shows_currentid = sessionStorage.getItem("shows_currentid");
+ shows_list = [];
+ data = { LOGIN_NAME: auth_username, PASSWORD: auth_token };
+ $.post("/listdropboxes.cgi", data, shows_updateList, "xml")
+ }
+
+ function shows_cleanup() {
+ sessionStorage.removeItem("shows_currentid");
+ delete shows_currentid;
+ shows_list = [];
+ shows_group_carts = [];
+ shows_log_carts = [];
+ }