/******************************************************************************* * Copyright (c) 2016 AT&T Intellectual Property. All rights reserved. *******************************************************************************/ function getCommand() { if(typeof String.prototype.trim !== 'function') { String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }; } var cmds = []; cmds = document.querySelector("#command_field").value.split(" "); var cleanCmd = ""; if (document.querySelector("#details_img").getAttribute("class") == "selected") cleanCmd += "set details=true "; for (var i = 0; i < cmds.length;i++) { var trimmed = cmds[i].trim(); if (trimmed != "") cleanCmd += trimmed + " "; } return cleanCmd.trim(); } function moveCommandToDiv() { var textInput = document.querySelector("#command_field"); var content = document.createTextNode(textInput.value); var parContent = document.createElement("p"); var consoleDiv = document.querySelector("#console_area"); var commandCount = consoleDiv.querySelectorAll(".command").length; parContent.setAttribute("class", "command"); parContent.appendChild(content); consoleDiv.appendChild(parContent); textInput.value = ""; } function printResponse(response) { var parContent = document.createElement("p"); parContent.setAttribute("class", "response"); var preTag = document.createElement("pre"); parContent.appendChild(preTag); var content = document.createTextNode(response); preTag.appendChild(content); var consoleDiv = document.querySelector("#console_area"); consoleDiv.appendChild(parContent); consoleDiv.scrollTop = consoleDiv.scrollHeight; } function clearHistory() { var consoleDiv = document.querySelector("#console_area"); var curr; while (curr=consoleDiv.firstChild) { consoleDiv.removeChild(curr); } document.querySelector("#command_field").value = ""; currentCmd = 0; } function buttonChangeFontSize(direction) { var slider = document.querySelector("#text_size_slider"); var currentSize = parseInt(slider.value); var newSize; if (direction == "inc") { newSize = currentSize + 10; } else { newSize = currentSize - 10; } if (newSize > slider.max) newSize = parseInt(slider.max); if (newSize < slider.min) newSize = parseInt(slider.min); slider.value = newSize; changeFontSize(newSize); } function changeFontSize(size) { var consoleDiv = document.querySelector("#console_area"); consoleDiv.style.fontSize = size + "%"; } function handleDivHiding(id, img) { var options_link = document.querySelector("#options_link"); var divHeight = toggleVisibility(document.querySelector("#"+id)); if (id == 'options') { if (options_link.getAttribute("class") == "open") { changeImg(document.querySelector("#options_img"), "../../theme/options_down.png"); options_link.setAttribute("class", "closed"); } else { changeImg(document.querySelector("#options_img"), "../../theme/options_up.png"); options_link.setAttribute("class", "open"); } moveToggleImg(options_link, divHeight); } else { //id=text_slider selectOption(img,divHeight); } } function selectOption(img, divHeight) { var options_link = document.querySelector("#options_link"); var anySelected; if (img.getAttribute("class") != "selected") { anySelected = document.querySelectorAll(".selected").length>0; if (anySelected == false) divHeight += 4; img.setAttribute("class", "selected"); } else { img.setAttribute("class", ""); anySelected = document.querySelectorAll(".selected").length>0; if (anySelected == false) divHeight -= 4; } moveToggleImg(options_link, divHeight); } function toggleVisibility(element) { var divHeight; if(element.style.display == 'block') { divHeight = 0 - element.clientHeight; element.style.display = 'none'; } else { element.style.display = 'block'; divHeight = element.clientHeight; } return divHeight; } function moveToggleImg(element, height) { var curTop = (element.style.top == "" ? 0 : parseInt(element.style.top)); element.style.top = curTop + height; } function changeImg(img, loc) { img.src = loc; } var currentCmd = 0; function keyPressed() { document.querySelector("#command_field").onkeyup=function(e) { if (!e) e = window.event; var keyCode = e.which || e.keyCode; if (keyCode == 38 || keyCode == 40 || keyCode == 13 || keyCode == 27) { var cmdHistoryList = document.querySelectorAll(".command"); switch (keyCode) { case 13: // press enter if (getCommand().toLowerCase()=="clear") { clearHistory(); } else { currentCmd = cmdHistoryList.length + 1; document.querySelector("#submit").click(); } break; case 27: //press escape currentCmd = cmdHistoryList.length; document.querySelector("#command_field").value = ""; break; case 38: // press arrow up if (currentCmd != 0) currentCmd -= 1; if (cmdHistoryList.length != 0) document.querySelector("#command_field").value = cmdHistoryList[currentCmd].innerHTML; break; case 40: // press arrow down var cmdText = ""; currentCmd = (currentCmd == cmdHistoryList.length) ? currentCmd : currentCmd + 1; if (currentCmd < cmdHistoryList.length) cmdText = cmdHistoryList[currentCmd].innerHTML; document.querySelector("#command_field").value = cmdText; break; } } } } function saveToFile() { var commands = document.querySelectorAll(".command"); var responses = document.querySelectorAll(".response"); var textToWrite = ""; for (var i = 0; i < commands.length; i++) { textToWrite += "> " + commands[i].innerHTML + "\r\n"; textToWrite += prettyResponse(responses[i].firstChild.innerHTML); } var ie = navigator.userAgent.match(/MSIE\s([\d.]+)/); var ie11 = navigator.userAgent.match(/Trident\/7.0/) && navigator.userAgent.match(/rv:11/); var ieVer=(ie ? ie[1] : (ie11 ? 11 : -1)); // if (ie && ieVer<10) { // console.log("No blobs on IE ver<10"); // return; // } var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'}); var fileName = "AAFcommands.log"; if (ieVer >= 10) { // window.navigator.msSaveBlob(textFileAsBlob, fileName); window.navigator.msSaveOrOpenBlob(textFileAsBlob, fileName); } else { var downloadLink = document.createElement("a"); downloadLink.download = fileName; downloadLink.innerHTML = "Download File"; if (window.webkitURL != null) { // Chrome allows the link to be clicked // without actually adding it to the DOM. downloadLink.href = window.webkitURL.createObjectURL(textFileAsBlob); } else { // Firefox requires the link to be added to the DOM // before it can be clicked. downloadLink.href = window.URL.createObjectURL(textFileAsBlob); downloadLink.onclick = destroyClickedElement; downloadLink.style.display = "none"; document.body.appendChild(downloadLink); } downloadLink.click(); } } function prettyResponse(response) { var lines = response.split('\n'); var cleanResponse = ""; for (var i=0; i < lines.length; i++) { cleanResponse += lines[i] + "\r\n"; } cleanResponse = cleanResponse.replace(/(<)/g,"<").replace(/(>)/g,">"); return cleanResponse; } function destroyClickedElement(event){ document.body.removeChild(event.target); } function fakePlaceholder() { document.querySelector("#command_field").setAttribute("value", "Type your AAFCLI commands here"); } function maximizeConsole(img) { var footer = document.querySelector("#footer"); var console_area = document.querySelector("#console_area"); var content = document.querySelector("#content"); var input_area = document.querySelector("#input_area"); var help_msg = document.querySelector("#help_msg"); var console_space = document.documentElement.clientHeight; console_space -= input_area.outerHeight; console_space -= help_msg.outerHeight; var height = getStyle(console_area,'paddingTop') + getStyle(console_area,'paddingBottom'); console_space -= height; if (content.getAttribute("class") != "maximized") { content.setAttribute("class", "maximized"); footer.style.display="none"; console_area.style.resize="none"; console_area.style.height=console_space.toString()+"px"; } else { content.removeAttribute("class"); footer.style.display=""; console_area.style.resize="vertical"; console_area.style.height="300px"; } selectOption(img,0); }