window.onload = function () { $('.dropdown li > a').click(function(e){ setDropdownButtonText(this.innerHTML, this.parentElement.parentElement.parentElement) //set the display-text to the selected value fillDropdownByValue(this.innerHTML, $(".dropdown")["1"]) }); customizeUploadButton() } //function fillDropdownByValue(value, dropdownToFill) { // dropdownToFill.getElementsByClassName("text")[0].innerHTML = "Subcategory" // var dropdownToFillUl = dropdownToFill.getElementsByClassName("dropdown-menu")[0] // dropdownToFillUl.innerHTML = "" // // subCategory = getDescriptorByLocalString("english", value) // catList = document.getElementById("subcategory_list") // catList.innerHTML = "" // categories = global_categories[subCategory].sort() // for(var key in categories) { // var newEntry = document.createElement("li") // var newEntryLink = document.createElement("a") // newEntry.setAttribute("role", "presentation") // newEntryLink.setAttribute("role", "menuitem") // newEntryLink.tabIndex = -1 // newEntryLink.href = "#" // newEntryLink.innerHTML = getLocalString("english", categories[key]) // newEntryLink.onclick = function(){ setDropdownButtonText(this.innerHTML, this.parentElement.parentElement.parentElement) } // newEntry.appendChild(newEntryLink) // dropdownToFillUl.appendChild(newEntry) // } //} function setDropdownButtonText(text, dropdownButton) { var dropdownTextSpan = dropdownButton.getElementsByClassName("text")[0] dropdownTextSpan.innerHTML = text } function sortCategories(categories) { var sortedCategories = [] for(var key in categories) { sortedCategories.push(categories[key]) } sortedCategories.sort() return sortedCategories } // Fill a defined dropdown with values. // These values will be generated out of the categories.json function fillDropdownByValue(value, dropdownToFill) { dropdownToFill.getElementsByTagName("button")[0].disabled = false dropdownToFill.getElementsByClassName("text")[0].innerHTML = "Subcategorie" var dropdownToFillUl = dropdownToFill.getElementsByClassName("dropdown-menu")[0] dropdownToFillUl.innerHTML = "" valueDescriptor = getDescriptorByLocalString("english", value) subcategories = global_categories[valueDescriptor] subcategories = sortCategories(subcategories) for(subcategoryIndex in subcategories) { subcategoryLocalString = getLocalString("english", subcategories[subcategoryIndex]) var newEntry = document.createElement("li") var newEntryLink = document.createElement("a") newEntry.setAttribute("role", "presentation") newEntryLink.setAttribute("role", "menuitem") newEntryLink.tabIndex = -1 newEntryLink.href = "#" newEntryLink.innerHTML = subcategoryLocalString newEntryLink.onclick = function(){ setDropdownButtonText(this.innerHTML, this.parentElement.parentElement.parentElement) } newEntry.appendChild(newEntryLink) dropdownToFillUl.appendChild(newEntry) } } // Hides the default browser-upload-form and replaces it by an button function customizeUploadButton() { $(".tfile").before(''); $(".tfile").hide(); $('body').on('click', '#button-file', function() { $(".tfile").trigger('click'); }); } // This sets the Uploadbutton to the filename of the uploaded file function setButtonToFilename(event) { $("input[name='torrentFile']").each(function() { var fileName = $(this).val().split('/').pop().split('\\').pop(); console.log(event["target"]); targetInput = event["target"] button = targetInput.previousSibling.getElementsByClassName("text")[0] button.innerHTML = chunk(fileName, 40) }); } // Sets the text of a given dropdown-button to a given value function setDropdownButtonText(text, dropdownButton) { var dropdownTextSpan = dropdownButton.getElementsByClassName("text")[0] dropdownTextSpan.innerHTML = text } function chunk(string, n) { var ret = ""; for(var i=0, len=string.length; i < len; i += n) { if(i==0) { ret = string.substr(i, n) } else { ret += "
" + string.substr(i, n) } } return ret };