////////////////////////////////////////////////////////////////////////////// // // Scholar_Ingester_Interface_SelectItems // ////////////////////////////////////////////////////////////////////////////// // Class to interface with the browser when ingesting data var Scholar_Ingester_Interface_SelectItems = function() {} ////////////////////////////////////////////////////////////////////////////// // // Public Scholar_Ingester_Interface_SelectItems methods // ////////////////////////////////////////////////////////////////////////////// /* * Initialize some variables and prepare event listeners for when chrome is done * loading */ Scholar_Ingester_Interface_SelectItems.init = function() { this.io = window.arguments[0]; this.Scholar_Ingester_Interface = window.arguments[1]; var listbox = document.getElementById("scholar-selectitems-links"); for(i in this.io.dataIn) { // we could use a tree for this if we wanted to var itemNode = document.createElement("listitem"); itemNode.setAttribute("type", "checkbox"); itemNode.setAttribute("value", i); itemNode.setAttribute("label", this.io.dataIn[i]); itemNode.setAttribute("checked", false); listbox.appendChild(itemNode); } } Scholar_Ingester_Interface_SelectItems.acceptSelection = function() { var listbox = document.getElementById("scholar-selectitems-links"); var returnObject = false; this.io.dataOut = new Object(); // collect scrapeURLList from listbox for(var i=0; i<listbox.childNodes.length; i++) { var itemNode = listbox.childNodes[i]; if(itemNode.getAttribute("checked") == "true") { this.io.dataOut[itemNode.getAttribute("value")] = itemNode.getAttribute("label"); returnObject = true; } } // What a hack! this makes code down the road much easier because otherwise // an empty array is true but empty and we can't figure that out, because // there's no length if(!returnObject) { this.io.dataOut = null; } }