if (/\/support\/tickets\/\d*/.test(window.location.pathname)) {
console.log(jQuery('.item-name').text())
const itemName = "Ringteam Inventory"
const rawDataFieldName = "Raw_data"
if (jQuery('.item-name').text() === itemName) {
jQuery('.redactor_box').hide()
jQuery('.control-group').hide()
const commentNative = jQuery('.redactor_editor p')
console.log('ELEM PROBING')
const rawDataElem = jQuery(`[for=${rawDataFieldName}]`).parent()
const rawDataText = rawDataElem.find("pre").text()
const rawData = JSON.parse(rawDataText)
console.log(rawData)
console.log('rendering items for requester')
renderItemList(rawData)
const replyTable = createReplyTable(rawData)
jQuery('.redactor_box').parent().append(replyTable)
function createReplyTable(data){
const table = document.createElement("table")
rawData.forEach(item => {
const row = document.createElement("tr")
row.id = item.asset_tag
const itemName = document.createElement("td")
itemName.innerHTML = item.display_name
itemName.style.fontWeight = "bold"
itemName.style.margin = "5px"
itemName.style.textAlign = "right"
const isConfirmed = document.createElement("td")
const checkbox = document.createElement("input")
checkbox.type = "checkbox"
checkbox.id = "check_" + item.asset_tag
checkbox.onchange = function(){ renderController() }
const label = document.createElement("label")
label.htmlFor = "check_" + item.asset_tag
label.innerHTML = "Confirm"
label.style.margin = "5px"
label.style.display = "inline"
isConfirmed.appendChild(label)
isConfirmed.appendChild(checkbox)
const comment = document.createElement("td")
const commentInput = document.createElement("textarea")
commentInput.id = "comment_" + item.asset_tag
commentInput.style.marginLeft = "10px"
commentInput.onkeyup = function(){ renderController() }
comment.appendChild(commentInput)
row.appendChild(itemName)
row.appendChild(isConfirmed)
row.appendChild(comment)
table.appendChild(row)
})
return table
}
function renderItemList(itemList){
var parsedItems = []
itemList.forEach(item => {
var text = `Display name: ${item.display_name}
Asset type: ${item.asset_type}
Asset tag: ${item.asset_tag}
Serial number: ${item.serial_number}
Finance name: ${item.finance_name}
`
parsedItems.push(text)
})
rawDataElem.html(parsedItems.join("
"))
}
function renderController(){
var replyData = []
rawData.forEach(item => {
var replyItem = item
replyItem.is_confirmed = document.getElementById("check_" + item.asset_tag).checked
replyItem.comment = document.getElementById("comment_" + item.asset_tag).value
replyData.push(replyItem)
})
commentNative.html(JSON.stringify(replyData))
}
}
}