Tag creation for approved users
This commit is contained in:
102
obje.html.l
102
obje.html.l
@@ -147,7 +147,7 @@
|
||||
</div>
|
||||
<div style="display:inline-block;vertical-align:top;width:49%;">
|
||||
<h2>Tags</h2>
|
||||
<div style="position:relative;width:80%;" class="tagbox" data-formid="editform" data-formparaminputid="objtagsparam">
|
||||
<div style="position:relative;width:80%;" class="tagbox" data-formid="editform" data-formparaminputid="objtagsparam" data-unknowntags="">
|
||||
<p{% if tagcount > 0 then %} style="visibility:hidden;"{% end %}>Enter tags...</p>
|
||||
{% for _, tag in pairs(tags) do %}
|
||||
<div class="tag tc{{ tag.category }}" data-tagid="{{ tag.id }}">{{ Escapes.htmlescape(tag.name) }}</div>
|
||||
@@ -175,15 +175,28 @@
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<div id="newtagsform" class="hidden">
|
||||
<p>There are unknown tags in your submission. Please assign them categories.</p>
|
||||
|
||||
<table>{% --[[
|
||||
<select style="border: 0;"><option value="a">A</option><option value="b">B</option></select>
|
||||
]] %}</table>
|
||||
|
||||
<button>Submit</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
{% if BigGlobe.cfg.enable18plus then %}
|
||||
function upd(over18) {
|
||||
document.querySelector(".tagbox").setAttribute("data-over18", +over18 != -1)
|
||||
}
|
||||
var activeo18 = "-1"
|
||||
var activeo18
|
||||
if(window.localStorage.getItem("o18")) {
|
||||
activeo18 = window.localStorage.getItem("o18")
|
||||
}
|
||||
if(!activeo18 || activeo18 == 1) {
|
||||
activeo18 = 0; // Make "Show 18+", not "Only 18+"
|
||||
}
|
||||
upd(activeo18)
|
||||
document.querySelector("ul.over18 input[type=\"radio\"][value=\"" + activeo18 + "\"]").checked = true
|
||||
{% end %}
|
||||
@@ -330,13 +343,92 @@
|
||||
xhr.send(formData)
|
||||
}
|
||||
|
||||
function fixnewtags(afterfunc) {
|
||||
var newtagsform = document.querySelector("div#newtagsform")
|
||||
var tbl = newtagsform.querySelector("table")
|
||||
|
||||
var newTags = document.querySelectorAll("div.tagbox div.tag.tcNew")
|
||||
|
||||
for(var i = 0; i < newTags.length; i++) {
|
||||
var row = tbl.insertRow(-1)
|
||||
|
||||
var sel = document.createElement("select")
|
||||
{% for tc = 1, #BigGlobe.cfg.tc do if BigGlobe.cfg.tc[tc].name ~= "" then %}
|
||||
{
|
||||
var opt = document.createElement("option")
|
||||
opt.textContent = "{{ Escapes.htmlescape(BigGlobe.cfg.tc[tc].name) }}"
|
||||
opt.value = {{ tc - 1 }}
|
||||
sel.appendChild(opt)
|
||||
}
|
||||
{% end end %}
|
||||
|
||||
var adult = document.createElement("input")
|
||||
adult.type = "checkbox"
|
||||
adult.checked = false
|
||||
adult.id = "boobietc" + i
|
||||
|
||||
var adultLbl = document.createElement("label")
|
||||
adultLbl.htmlFor = adult.id
|
||||
adultLbl.textContent = "18+"
|
||||
|
||||
row.insertCell(-1).appendChild(sel)
|
||||
row.insertCell(-1).textContent = newTags[i].textContent
|
||||
|
||||
var c = row.insertCell(-1)
|
||||
c.appendChild(adult)
|
||||
c.appendChild(adultLbl)
|
||||
}
|
||||
|
||||
newtagsform.classList.toggle("hidden")
|
||||
|
||||
var btn = newtagsform.querySelector("button")
|
||||
|
||||
btn.onclick = function() {
|
||||
btn.toggleAttribute("disabled")
|
||||
|
||||
var xhr = new XMLHttpRequest()
|
||||
xhr.open("POST", "/addtags", true)
|
||||
|
||||
var formData = new FormData()
|
||||
formData.append("csrf", document.querySelector("[name='csrf']").value)
|
||||
|
||||
for(var i = 0; i < newTags.length; i++) {
|
||||
formData.append("name[]", tbl.rows[i].cells[1].textContent)
|
||||
formData.append("tc[]", tbl.rows[i].cells[0].querySelector("select").value)
|
||||
formData.append("adult[]", tbl.rows[i].cells[2].querySelector("input").checked ? "1" : "0")
|
||||
}
|
||||
|
||||
xhr.onreadystatechange = function() {
|
||||
if(xhr.readyState == XMLHttpRequest.DONE && xhr.status == 200) {
|
||||
var resp = xhr.responseText.split(",")
|
||||
|
||||
// Set data-tagids so they object may be updated with the new tags
|
||||
for(var i = 0; i < newTags.length; i++) {
|
||||
newTags[i].setAttribute("data-tagid", resp[i])
|
||||
}
|
||||
|
||||
tagbox_updateformdata()
|
||||
|
||||
afterfunc()
|
||||
}
|
||||
}
|
||||
|
||||
xhr.send(formData);
|
||||
}
|
||||
}
|
||||
|
||||
document.getElementById("editform").addEventListener("submit", function(ev) {
|
||||
ev.preventDefault()
|
||||
|
||||
files = Array.from(document.querySelectorAll("input[type='file']"))
|
||||
files.pop() // don't count empty input
|
||||
files.pop() // don't count empty input box
|
||||
|
||||
doremoves()
|
||||
var newTags = document.querySelectorAll("div.tagbox div.tag.tcNew")
|
||||
if(newTags.length != 0) {
|
||||
fixnewtags(doremoves)
|
||||
} else {
|
||||
doremoves()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
<script src="/static/tagbox.js"></script>
|
||||
@@ -348,4 +440,4 @@
|
||||
{% end %}
|
||||
{% end %}
|
||||
|
||||
{# base.inc
|
||||
{# base.inc
|
||||
|
||||
Reference in New Issue
Block a user