diff --git a/.gitignore b/.gitignore index 3819313..da39247 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.swp *.swo +backup diff --git a/cats.txt b/cats.txt new file mode 100644 index 0000000..013fcc1 --- /dev/null +++ b/cats.txt @@ -0,0 +1,47 @@ +Audio + Lossless + Lossy + Audiobooks + Other + +Video + Movies 3D + Movies HD + Movies SD + Series HD + Series SD + Clips + Other + +Porn + Movies 3D + Movies HD + Movies SD + Series HD + Series SD + Clips + Pictures + Other + +Games + PC + MAC + iOS + Android + Consoles + Other + +Applications + Windows + Mac + *nix + iOS + Android + Other + +Other + E-Books + Comics + Pictures + Other + diff --git a/settings.json b/settings.json new file mode 100644 index 0000000..dd9b7a3 --- /dev/null +++ b/settings.json @@ -0,0 +1,10 @@ +{ + "categories": { + "audio" : [ "lossless", "lossy", "audiobooks", "other" ], + "video" : [ "movies_3d", "movies_4k", "movies_hd", "movies_sd", "series_hd", "series_sd", "clips", "other" ], + "porn" : [ "movies_3d", "movies_4k", "movies_hd", "movies_sd", "series_hd", "series_sd", "clips", "pictures", "other" ], + "games" : [ "pc", "mac", "ios", "android", "consoles", "other" ], + "applications" : [ "windows", "mac", "unix", "ios", "android", "other" ], + "other" : [ "ebooks", "comics", "pictures", "other" ] + } +} diff --git a/static/css/create.css b/static/css/create.css new file mode 100644 index 0000000..f369a76 --- /dev/null +++ b/static/css/create.css @@ -0,0 +1,140 @@ + +/* Links */ +a, +a:focus, +a:hover { + color: #fff; +} + +/* Custom default button */ +.btn-default, +.btn-default:hover, +.btn-default:focus { + color: #333; + text-shadow: none; /* Prevent inheritence from `body` */ + border: 1px solid #fff; +} + + +/* + * Base structure + */ + +html, +body { + height: 100%; + background-color: #333; +} +body { + color: #fff; + text-align: center; + text-shadow: 0 1px 3px rgba(0,0,0,.5); +} + +/* Extra markup and styles for table-esque vertical and horizontal centering */ +.site-wrapper { + display: table; + width: 100%; + height: 100%; /* For at least Firefox */ + min-height: 100%; + -webkit-box-shadow: inset 0 0 100px rgba(0,0,0,.5); + box-shadow: inset 0 0 100px rgba(0,0,0,.5); +} +.site-wrapper-inner { + /*display: table-cell;*/ + vertical-align: top; +} +.cover-container { + margin-right: auto; + margin-left: auto; +} + +/* Padding for spacing */ +.inner { + padding: 30px; + text-align: center; +} + +.cover { + text-align: left; + vertical-align: inherit; +} + +.createTable { + width: 100%; + table-layout: fixed; + border-collapse: separate; + border-spacing: 10px; +} + +.createTable .labelColumn { + width: 200px; +} + +.labelColumn { + vertical-align: center; +} + +.labelColumn strong:after { + content: ":"; +} + +.row { + margin-bottom: 10px; +} + +.dropdown { + width: 100%; +} + +.btn, .btn-group { + width: 100%; +} + +.btn-group .btn { + width: auto; +} + +.btn.active { + background-color: #D1FED9; + border-color: #8FFFA3; +} + +h2.headline { + width: 100%; + text-align: center; +} + +button .text { + margin-right: 5px; +} + +.btn { + text-align: center; +} + +/* + * Cover + */ + +.cover { + padding: 0 20px; +} +.cover .btn-lg { + padding: 10px 20px; + font-weight: bold; +} + + +/* + * Footer + */ + +.mastfoot { + color: #999; /* IE8 proofing */ + color: rgba(255,255,255,.5); +} + +.dropdown { + display: inline-block; +} diff --git a/static/css/style.css b/static/css/style.css index 2c3df37..e9dd598 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -58,6 +58,14 @@ body { padding: 30px; } +.cover * { + text-align: left; +} + +.dropdown { + display: inline-block; +} + /* * Header diff --git a/static/js/create.js b/static/js/create.js new file mode 100644 index 0000000..49b1131 --- /dev/null +++ b/static/js/create.js @@ -0,0 +1,109 @@ +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(key) + } + sortedCategories.sort() + return sortedCategories +} + +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 = "" + switch(value) { + case "Action": + for(i = 0; i < 10; i++) { + //
  • Action
  • + 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 = "foo" + i + newEntryLink.onclick = function(){ setDropdownButtonText(this.innerHTML, this.parentElement.parentElement.parentElement) } + newEntry.appendChild(newEntryLink) + dropdownToFillUl.appendChild(newEntry) + } + break; + case "Another action": + for(i = 0; i < 10; i++) { + //
  • Action
  • + 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 = "bar" + i + newEntryLink.onclick = function(){ setDropdownButtonText(this.innerHTML, this.parentElement.parentElement.parentElement) } + newEntry.appendChild(newEntryLink) + dropdownToFillUl.appendChild(newEntry) + } + break; + } +} + +function customizeUploadButton() { + $(".tfile").before(''); + $(".tfile").hide(); + $('body').on('click', '#button-file', function() { + $(".tfile").trigger('click'); + }); +} + +function setButtonToFilename(event) { + $("input[name='Datei']").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 = fileName + }); +} + +function setDropdownButtonText(text, dropdownButton) { + var dropdownTextSpan = dropdownButton.getElementsByClassName("text")[0] + dropdownTextSpan.innerHTML = text +} + +customizeUploadButton() diff --git a/static/js/main.js b/static/js/main.js new file mode 100644 index 0000000..0998134 --- /dev/null +++ b/static/js/main.js @@ -0,0 +1,16 @@ +function getLocalString(language, descriptor){ + if(global_strings[language]){ + return global_strings[language][descriptor] || global_strings["english"][descriptor] || descriptor + } else { + return descriptor + } +} + +function getDescriptorByLocalString(language, localString){ + for(string in global_strings[language]){ + if(global_strings[language][string] == localString){ + return string + } + } + return localString +} diff --git a/strings.json b/strings.json new file mode 100644 index 0000000..e77d8c7 --- /dev/null +++ b/strings.json @@ -0,0 +1,40 @@ +{ + "english" : { + "audio" : "Audio", + "lossless" : "Lossless", + "lossy" : "Lossy", + "audiobooks" : "Audiobooks", + "other" : "Other", + "video" : "Video", + "movies_3d" : "Movies 3D", + "movies_4k" : "Movies 4K", + "movies_hd" : "Movies HD", + "movies_sd" : "Movies SD", + "series_hd" : "Series HD", + "series_sd" : "Series SD", + "clips" : "Clips", + "other" : "Other", + "porn" : "Porn", + "pictures" : "Pictures", + "games" : "Games", + "pc" : "PC", + "mac" : "Mac", + "ios" : "iOS", + "android" : "Android", + "consoles" : "Consoles", + "applications" : "Applications", + "windows" : "Windows", + "unix" : "*nix", + "ebooks" : "E-Books", + "comics" : "Comics", + "please_choose" : "Please choose…", + "search" : "Search", + "categories" : "Categories", + "category" : "Category", + "subcategory" : "Subcategory", + "create" : "Create", + "torrent_file" : "Torrent file", + "name" : "Name", + "create_new_torrent" : "Create new torrent" + } +} diff --git a/templates/create.html b/templates/create.html index 22e3c31..dbe3806 100644 --- a/templates/create.html +++ b/templates/create.html @@ -5,5 +5,88 @@ vim: ts=2 noexpandtab {% block title %}{{ super() }} - Create{% endblock%} {% set active_page = "create" %} {% block content %} -

    CREATE

    + + +
    +

    Create new

    + + +
    +
    + Torrent file +
    +
    + +
    +
    +
    +
    + Name +
    +
    + +
    +
    +
    +
    + Categorie +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + Audio-Quality +
    +
    +
    + + + + + +
    +
    +
    + +
    {% endblock content%}