// Global variables var allCoverages = new Array(); var allSchedules = new Array(); var allKeyedComments = new Array(); var editLinked = 0; var adminOption = null; // Initialized function initAdmin() { editLinked = 0; } // Select all edits for a given satellite/date function selectAll(satidx,dateidx) { var trs=getTRs(satidx,dateidx); for (var i=0; i'; html+=''; for (var key in allCoverages) { if (key==coverage) continue; html+=''; } html+=''; coverageElem.innerHTML=html; // Edit schedule var scheduleElem=document.getElementById('schedule_'+rowref); var schedule=scheduleElem.innerHTML; var thisVal=allSchedules[schedule]; var html =''; scheduleElem.innerHTML=html; // SPECIAL CASE: If type is HRIT, the some comments look like // ingestor "problems." Allow these to be edited var typeElem=document.getElementById('timeinfo_'+rowref); var typeparts=typeElem.innerHTML; var parts=typeparts.split('|'); var type='ERROR'; if (parts.length==2) type=parts[1]; // Do NOT allow comment editing if it is a linked row if (trElem.mclinked!=1 || type=='HRIT') { // Edit comment var i=1; var commentElem; var comment; while (commentElem=document.getElementById('comment_'+rowref+'_'+i)) { i++; comment=commentElem.innerHTML; comment=comment.replace(/&/,"&"); var html =''; commentElem.innerHTML=html; } // Edit keyed comment var i=1; var kCommentElem; var kComment; while (kCommentElem=document.getElementById('kcomment_'+rowref+'_'+i)) { i++; kComment=kCommentElem.innerHTML; kComment=kComment.replace(/&/,"&"); var thisVal=allKeyedComments[kComment]; var html =''; kCommentElem.innerHTML=html; } } // Add new comments var newrow = createRow(satidx,dateidx,timeidx,typeidx,cmtspan,clsname); newrow.id='row_'+rowref+'_add'; var html ='New comment'; html+=' • '; html+='New keyed comment'; newrow.childNodes[3].innerHTML=html; var afterElem = getLastRow(rowref); insertAfter(tbodyElem, newrow, afterElem); } // Create edit elements for a given day comment function editDayComment(satidx,dateidx,cmtidx) { var rowref=satidx+'_'+dateidx+'_'+cmtidx; // Change Edit to Save/Delete var editElem=document.getElementById('edit_day_click_'+rowref); var html ='Save'; html+=' • '; html+='Delete'; editElem.innerHTML=html; // Edit start date var sdateElem=document.getElementById('edit_day_sdate_'+rowref); var sdate=sdateElem.innerHTML; var html =' '; html+=' '; sdateElem.innerHTML=html; // Edit start time var stimeElem=document.getElementById('edit_day_stime_'+rowref); var stime=stimeElem.innerHTML; var html =' '; html+=' '; stimeElem.innerHTML=html; // Edit end date var edateElem=document.getElementById('edit_day_edate_'+rowref); var edate=edateElem.innerHTML; var html =' '; html+=' '; edateElem.innerHTML=html; // Edit end time var etimeElem=document.getElementById('edit_day_etime_'+rowref); var etime=etimeElem.innerHTML; var html =' '; html+=' '; etimeElem.innerHTML=html; // Edit comment var commentElem=document.getElementById('edit_day_comment_'+rowref); var comment=commentElem.innerHTML; var html =''; html+=' '; commentElem.innerHTML=html; } // Manage row linking for editing function checkLink(checked,satidx,dateidx,timeidx,typeidx) { var rowref=satidx+'_'+dateidx+'_'+timeidx+'_'+typeidx; var trs = getTRs(satidx,dateidx,timeidx,typeidx); for (var i=0; i_ // tr: stars tr____(_) var tbody = document.getElementById('body_'+satidx+'_'+dateidx); if (!tbody) return; var trs = tbody.getElementsByTagName("tr"); var checkString = '_'+satidx+'_'+dateidx+'_'; if (timeidx!=null) checkString += timeidx+'_'; if (typeidx!=null) checkString += typeidx; var checkRE = new RegExp(checkString); var trarray = new Array(); for (var i=0; i'; newrow.childNodes[3].innerHTML+=html; } // Create edit element for keyed comments function newKComment(satidx,dateidx,timeidx,typeidx,cmtspan,clsname) { var rowref=satidx+'_'+dateidx+'_'+timeidx+'_'+typeidx; var tbodyElem=document.getElementById('body_'+satidx+'_'+dateidx); var d = new Date(); var newid='row_'+rowref+'_'+d.getTime()+'_new_kcomment'; var newrow = createRow(satidx,dateidx,timeidx,typeidx,cmtspan,clsname); newrow.id=newid; newrow.childNodes[3].innerHTML=''; tbodyElem.insertBefore(newrow, getLastRow(rowref)); var html =''; newrow.childNodes[3].innerHTML+=html; } // Create a new TR/TD element with the given properties function createRow(satidx,dateidx,timeidx,typeidx,cmtspan,clsname) { var rowref=satidx+'_'+dateidx+'_'+timeidx+'_'+typeidx; var spacetd1 = document.createElement("td"); spacetd1.className='f_time'; var spacetd2 = document.createElement("td"); spacetd2.className='f_fulltime'; var spacetd3 = document.createElement("td"); var newtd = document.createElement("td"); newtd.colSpan=cmtspan; newtd.innerHTML='ERROR'; var newtr = document.createElement("tr"); newtr.className=clsname; newtr.id='ERROR_'+rowref; newtr.appendChild(spacetd1); newtr.appendChild(spacetd2); newtr.appendChild(spacetd3); newtr.appendChild(newtd); return(newtr); } // Get the last row element of the given rowref function getLastRow(rowref) { var lastElem; // Do we already have the "new" row? if (lastElem=document.getElementById('row_'+rowref+'_add')) return(lastElem); // Are there any keyed comments? if (lastElem=document.getElementById('row_'+rowref+'_kcomment')) return(lastElem); // Are there any typed comments? if (lastElem=document.getElementById('row_'+rowref+'_comment')) return(lastElem); lastElem=document.getElementById('row_'+rowref); return(lastElem); } // Get list of coverages from database function getAllCoverages() { var vars=new Array(); vars.push('field=coverage'); runAJAX('jslists.php',vars,'eval'); } // Get list of schedules from database function getAllSchedules() { var vars=new Array(); vars.push('field=schedule'); runAJAX('jslists.php',vars,'eval'); } // Get list of keyed comments from database function getAllKeyedComments() { var vars=new Array(); vars.push('field=comment'); runAJAX('jslists.php',vars,'eval'); } // Get list of GVAR band info from SATBAND function getAllBandInfo() { var vars=new Array(); vars.push('field=band'); runAJAX('jslists.php',vars,'eval'); } // Should we act as though we are Admin? function lightAdmin() { selected('menu_admin'); document.getElementById('menu_admin').style.color='red'; } function unlightAdmin() { unselected('menu_admin'); unhilite('menu_admin'); document.getElementById('menu_admin').style.color='black'; hideElem('debug'); } function showAdminMenu() { var adminMenu=document.createElement("div"); adminMenu.id='menu_admin_options'; adminMenu.className='menuadmin'; adminMenu.style.top='1.5em'; adminMenu.style.borderLeft='1px solid black'; var html ='') kCommentElem.style.display='none'; else kCommentElem.innerHTML=text; } } // Need these later on var trs = getTRs(satidx,dateidx); var html=''; // Unedit new comments var rowRegExpNC = new RegExp('row_'+rowref+'_\\d+_new_comment'); for (var i=0; i'; } trs[i].style.display='none'; } } // Unedit new keyed comments var rowRegExpNKC = new RegExp('row_'+rowref+'_\\d+_new_kcomment'); for (var i=0; i'; } trs[i].style.display='none'; } } // Hide the "New" rows as well var newAddElem=document.getElementById('row_'+rowref+'_add'); if (newAddElem!=null) newAddElem.style.display='none'; // Return the text to add to each linked row return(html); } function doDelete(satidx,dateidx,timeidx,typeidx) { var rowInfo=getRowInfo(satidx,dateidx,timeidx,typeidx); rowInfo['linked']=getRowLinks(satidx,dateidx,timeidx,typeidx); rowInfo['satidx']=satidx; rowInfo['dateidx']=dateidx; rowInfo['timeidx']=timeidx; rowInfo['typeidx']=typeidx; records=rowInfo['linked'].length+1; var string='Delete record?'; if (records>1) string='Delete '+records+' linked records?'; if (confirm(string)) sendAdmin(rowInfo,'delete'); } function doneDelete(satidx,dateidx,timeidx,typeidx) { var rowref=satidx+'_'+dateidx+'_'+timeidx+'_'+typeidx; var trElem=document.getElementById('row_'+rowref); var trs = getTRs(satidx,dateidx); // Hide all rows, including linked if (trElem.mclinked==1) { editLinked=0; for (var i=0; i