Gazelle/static/functions/multiformat_uploader.js
2013-09-05 08:00:49 +00:00

120 lines
3.3 KiB
JavaScript

var buttonCount;
var MAX_EXTRAS = 5;
var FORMATS = [ 'MP3', 'FLAC', 'AAC', 'AC3', 'DTS' ];
var BITRATES = [ '192', 'APS (VBR)', 'V2 (VBR)', 'V1 (VBR)', '256', 'APX (VBR)', 'V0 (VBR)', '320', 'Lossless', '24bit Lossless'];
function initMultiButtons() {
if (!$('#add_format')) {
return;
}
buttonCount = 1;
$('#add_format').click(function () {
createRow();
});
$('#remove_format').click(function () {
removeRow();
});
}
function createRow() {
if (buttonCount >= 1) {
$("#remove_format").show();
}
if (buttonCount == MAX_EXTRAS) {
$("#add_format").hide();
}
var after = buttonCount > 1 ? "#extra_format_row_" + (buttonCount - 1) : '#placeholder_row_top';
var master = $(document.createElement("tr")).attr({
id:'extra_format_row_' + buttonCount
}).insertAfter(after);
$(document.createElement("td")).addClass('label').html("Extra format " + buttonCount + ":").appendTo(master);
var row = $(document.createElement("td")).appendTo(master);
addFile(row);
addFormats(row);
addBitrates(row);
addReleaseDescription(row);
$("#post").val("Upload torrents");
buttonCount++;
}
function addFile(row) {
var id = buttonCount;
$(document.createElement("input")).attr({
id:"extra_file_" + buttonCount,
type:'file',
name:"extra_file_" + buttonCount,
size:'30'
}).appendTo(row);
}
function addFormats(row) {
$(document.createElement("span")).html("    Format: ").appendTo(row);
$(document.createElement("select")).attr({
id:"format_" + buttonCount,
name:'extra_format[]'
}).html(createDropDownOptions(FORMATS)).appendTo(row);
}
function addBitrates(row) {
$(document.createElement("span")).html("    Bitrate: ").appendTo(row);
$(document.createElement("select")).attr({
id:"bitrate_" + buttonCount,
name:'extra_bitrate[]'
}).html(createDropDownOptions(BITRATES)).appendTo(row);
/*change(
function () {
var id = $(this).attr('id');
if ($(this).val() == 'Other') {
$(this).after(
'<span id="other_bitrate_span_' + id
+ '" class=""> <input type="text" name="extra_other_bitrate[]" size="5" id="other_bitrate_' + id
+ '"><input type="checkbox" id="vbr_' + id + '" name="extra_vbr[]"><label for="vbr_' + id
+ '"> (VBR)</label> </span>');
} else {
$("#other_bitrate_span_" + id).remove();
}
});*/
}
function addReleaseDescription(row) {
var id = buttonCount;
var desc_row = $(document.createElement("tr")).attr({ id:"desc_row"}).css('cursor', 'pointer').appendTo(row);
$(document.createElement("a")).html("&nbsp;&nbsp;[Add Release Description]").css('marginLeft', '-5px').appendTo(desc_row).click(function () {
$("#extra_release_desc_" + id).toggle(300);
});
$(document.createElement("textarea")).attr({
id:"extra_release_desc_" + id,
name:"extra_release_desc[]",
cols:60,
rows:4,
style:'display:none; margin-left: 5px; margin-top: 10px; margin-bottom: 10px;'
}).appendTo(desc_row);
}
function createDropDownOptions(array) {
s = "<option value='0'>---</option>";
for (var i in array) {
s += ("<option value=\"" + array[i] + "\">" + array[i] + "</option>");
}
return s;
}
function removeRow() {
if (buttonCount > 1) {
$("#placeholder_row_bottom").prev().remove();
$("#add_format").show();
buttonCount--;
$("#post").val("Upload torrents");
}
if (buttonCount == 1) {
$("#remove_format").hide();
$("#post").val("Upload torrent");
}
}
$(document).ready(initMultiButtons);