129 lignes
5,6 Kio
HTML
129 lignes
5,6 Kio
HTML
{{ extends "layouts/index_admin" }}
|
|
{{ import "layouts/partials/helpers/errors" }}
|
|
{{ import "layouts/partials/helpers/flags" }}
|
|
{{block title()}}{{ T("torrent_edit_panel") }}{{end}}
|
|
{{ block content_body()}}
|
|
<div class="results box">
|
|
<h3 id="torrents">{{ T("torrent_edit_panel") }}</h3>
|
|
<form style="text-align:left;padding-left:10px;padding-right:10px;" enctype="multipart/form-data" role="upload" method="POST">
|
|
<div class="form-group">
|
|
<label for="name">{{ T("name")}}</label>
|
|
<input type="text" name="name" class="form-input up-input" placeholder="{{ T(" file_name ")}}" value="{{Form.Name}}" required/>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="c">{{ T("category")}}</label>
|
|
<select name="c" class="form-input up-input">
|
|
<option value="">{{ T("select_a_torrent_category")}}</option>
|
|
{{ range _, cat := GetCategories(false, true) }}
|
|
<option value="{{ cat.ID }}" {{if Form.Category == cat.ID }}selected{{end}}>{{ T(cat.Name) }}</option>
|
|
{{ end }}
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="language">{{ T("torrent_language") }}</label>
|
|
<div name="language" class="form-input language">
|
|
{{ yield flagList(languages=GetTorrentLanguages(), selected=Form.Languages) }}
|
|
</div>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="Status">{{ T("torrent_status")}}</label>
|
|
<select name="status" class="form-input up-input">
|
|
<option value="5" {{if Form.Status == 5}}selected{{end}}>{{ T("torrent_status_blocked") }}</option>
|
|
<option value="1" {{if Form.Status == 1}}selected{{end}}>{{ T("torrent_status_normal")}}</option>
|
|
<option value="2" {{if Form.Status == 2}}selected{{end}}>{{ T("torrent_status_remake")}}</option>
|
|
<option value="3" {{if Form.Status == 3}}selected{{end}}>{{ T("trusted")}}</option>
|
|
<option value="4" {{if Form.Status == 4}}selected{{end}}>A+</option>
|
|
</select>
|
|
</div>
|
|
<p>
|
|
<input type="checkbox" value="true" name="hidden" id="hidden" {{ if Form.Hidden }}checked{{end}}/>
|
|
<label for="hidden">{{ T("upload_as_anon")}}</label>
|
|
</p>
|
|
<div class="form-group">
|
|
<label for="website_link">{{ T("website_link")}}</label>
|
|
<input name="website_link" id="website_link" class="form-input up-input" type="text" value="{{Form.WebsiteLink}}">
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="desc">{{ T("torrent_description")}}</label>
|
|
<p class="help-block">{{ T("description_markdown_notice")}}</p>
|
|
<textarea name="desc" id="desc" class="form-input up-input" rows="10">{{Form.Description}}</textarea>
|
|
</div>
|
|
<h3>{{ T("torrent_tags")}}</h3>
|
|
<span id="tags_list"></span>
|
|
<a id="tagPopup" href="#" class="add-tag">{{ T("add") }}</a> <a id="tagPopup" href="/mod/tags/delete?id={{ Form.ID }}" class="form-input btn-red">{{ T("delete_all") }}</a>
|
|
<input type="hidden" name="tags" id="tags" value="{{ Form.Tags }}">
|
|
{{ yield errors(name="tags")}}
|
|
<button type="submit" class="form-input up-input btn-green">{{ T("save_changes")}}</button>
|
|
</form>
|
|
</div>
|
|
{{ include "layouts/partials/modal_tags" }}
|
|
{{end}}
|
|
{{ block footer_js()}}
|
|
<script type="text/javascript" src="/js/translation.js?v={{ Config.Version}}{{ Config.Build }}"></script>
|
|
<script type="text/javascript" src="/js/template.js?v={{ Config.Version}}{{ Config.Build }}"></script>
|
|
<script type="text/javascript" src="/js/modal.js?v={{ Config.Version}}{{ Config.Build }}"></script>
|
|
<script type="text/javascript" src="/js/simplemde.min.js?v={{ Config.Version}}{{ Config.Build }}"></script>
|
|
<script type="text/javascript">
|
|
// {{ range _, type := Config.Torrents.Tags.Types }}
|
|
T.Add("tagtype_{{ type }}", '{{ T("tagtype_" + type) }}')
|
|
// {{ end }}
|
|
|
|
Templates.Add("tag", function(tag) {
|
|
return `<span data-name="` + tag.type + `_` + tag.tag + `" class="tag accepted" title="Tag: ` + tag.type + `({{ T("accepted") }} )">
|
|
<span class="tag-text votable">
|
|
` + T.r("tagtype_" + tag.type) + `: ` + tag.tag + `
|
|
</span>
|
|
</span>`
|
|
})
|
|
|
|
// Modal initialization
|
|
Modal.Init({
|
|
elements: document.getElementsByClassName("modal"),
|
|
// order of apparition of the modals
|
|
button: "#tagPopup"
|
|
});
|
|
var tags = []
|
|
document.querySelector("#modal_tag_form form").addEventListener("submit", function(e) {
|
|
var form = e.target
|
|
var newTag = {type: form.querySelector("select#type").value, tag: form.querySelector("input#tag").value}
|
|
|
|
var replaced = false
|
|
var len = tags.length
|
|
for(var i = 0; i < len; i++) {
|
|
if (tags[i].type == newTag.type) {
|
|
var oldTag = document.querySelector("span[data-name='"+ tags[i].type + "_" + tags[i].tag + "']")
|
|
oldTag.parentElement.removeChild(oldTag)
|
|
tags[i] = newTag
|
|
replaced = true
|
|
break
|
|
}
|
|
}
|
|
if (!replaced) tags.push(newTag)
|
|
var tagHTml = Templates.Render("tag", newTag)
|
|
document.getElementById("tags_list").innerHTML += tagHTml
|
|
document.getElementById("tags").value = JSON.stringify(tags)
|
|
Modal.CloseActive()
|
|
e.preventDefault()
|
|
})
|
|
function renderTagsJSON() {
|
|
tagsIn = document.getElementById("tags").value
|
|
if (tagsIn == "") return
|
|
var jsonFromTags = JSON.parse(tagsIn)
|
|
if (jsonFromTags instanceof Array) {
|
|
for (var i = 0; i < jsonFromTags.length; i++) {
|
|
tags.push(jsonFromTags[i])
|
|
var tagHTml = Templates.Render("tag", jsonFromTags[i])
|
|
document.getElementById("tags_list").innerHTML += tagHTml
|
|
}
|
|
}
|
|
}
|
|
renderTagsJSON()
|
|
</script>
|
|
<script type="text/javascript">
|
|
new SimpleMDE({
|
|
element: document.getElementById("desc"),
|
|
spellChecker: false,
|
|
showIcons: ["strikethrough", "code", "table", "horizontal-rule"]
|
|
});
|
|
</script>
|
|
{{end}}
|