/* * rhwebimport * * Copyright (C) 2014-2016 Christian Pointner * Copyright (C) 2015-2016 Peter Grassberger * * This file is part of rhwebimport. * * rhwebimport is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * rhwebimport is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with rhwebimport. If not, see . */ 'use strict'; var Rivendell = Rivendell || {}; Rivendell.Rivendell.prototype.setListDropboxesEndpoint = function(listDropboxesEndpoint) { this.listDropboxesEndpoint = listDropboxesEndpoint; }; Rivendell.Rivendell.prototype.setMusicgridEndpoint = function(musicgridEndpoint) { this.musicgridEndpoint = musicgridEndpoint; }; Rivendell.Rivendell.prototype.listDropboxes = function(type, success) { var command = { LOGIN_NAME: this.username, PASSWORD: this.token }; if (type !== null) { command.TYPE = type; } return $.post(this.listDropboxesEndpoint, command, success, 'xml'); }; // see: https://github.com/ElvishArtisan/rivendell/pull/73 Rivendell.Rivendell.prototype.addAndEditCut = function(cartNumber, options, success) { options.COMMAND = 10; options.LOGIN_NAME = this.username; options.PASSWORD = this.token; options.CART_NUMBER = cartNumber; return $.post(this.rdxportEndpoint, options, success, "xml"); }; // todo: addAndEditCart Rivendell.Rivendell.prototype.getMusicgrid = function(success) { var command = { LOGIN_NAME: this.username, PASSWORD: this.token }; return $.get(this.musicgridEndpoint, command, success, "xml"); }; Rivendell.Rivendell.prototype.setMusicgrid = function(dow, hour, name, success) { var command = { LOGIN_NAME: this.username, PASSWORD: this.token, DOW: dow, HOUR: hour, NAME: name }; 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(); }); };