Closed
Bug 201651
Opened 21 years ago
Closed 20 years ago
Go.com SMS page uses HTML-style comments in Javascript
Categories
(Tech Evangelism Graveyard :: English US, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: chris_vella, Unassigned)
References
()
Details
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312 Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3) Gecko/20030312 <html xmlns:gomobile> <head> <style> <!-- gomobile\:combobox {behavior: url(combobox.htc); } --> </style> <title>My go</title> <link rel=stylesheet href="./go_style.css" type="text/css"> <script> function displayError(errormsg){ alert(errormsg); } function popupAd(){ var current_banner = "smartsim"; var allcookies = document.cookie; var cookiename = "banner="; var pos = allcookies.indexOf(cookiename); if (pos != -1){ <!-- user has banner cookie --> var start = pos + cookiename.length; var end = allcookies.indexOf(";",start); if (end == -1){ end = allcookies.length; } var value_string = allcookies.substring(start,end); if (value_string != current_banner){ <!-- need to change banner --> var nextyear = new Date(); nextyear.setFullYear(nextyear.getFullYear() + 1); document.cookie = "banner=" + current_banner + "; expires=" + nextyear.toGMTString(); window.open("./popup.html","mygo","toolbar=no,width=200,height=300"); } else{ <!-- do nothing as there is the current banner --> } } else{ <!-- user has no banner cookie --> var nextyear = new Date(); nextyear.setFullYear(nextyear.getFullYear() + 1); document.cookie = "banner=" + current_banner + "; expires=" + nextyear.toGMTString(); window.open("./popup.html","advert","toolbar=no,width=200,height=300"); } } function setwarning(checkbox){ var nextyear = new Date(); nextyear.setFullYear(nextyear.getFullYear() + 1); if (checkbox.checked){ document.cookie = checkbox.name + "=" + "true" + "; expires=" + nextyear.toGMTString(); } else{ document.cookie = checkbox.name + "=" + "false" + "; expires=" + nextyear.toGMTString(); } } function setCheck(checkbox){ var cookiename = checkbox.name + "="; var value; var allcookies = document.cookie; var pos = allcookies.indexOf(cookiename); if (pos != -1){ var start = pos + cookiename.length; var end = allcookies.indexOf(";",start); if (end == -1){ end = allcookies.length; } var value_string = allcookies.substring(start,end); if (value_string == "true"){ value = true; } else{ value = false; } } else{ value = true; } document.all[checkbox.name].checked = value; return value; } </script> </head> <BODY bgcolor="#006ABD" marginheight=0 marginwidth=0 topmargin=0 leftmargin=0> <script language="JavaScript1.2"> popupAd(); </script> <TABLE bgcolor="#008AF7" width=602 HEIGHT=100% align=left cellspacing=0 cellpadding=0 border=0> <tr><td height=1></td> <td rowspan=500 bgcolor="#999999" width=1><img src="./images/dummy.gif" width=1></td></tr> <tr><td height=1> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td> <!-- LEFT COLUMN STARTS HERE --> <table cellpadding=0 cellspacing=2 border=0 width=190> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100%> <!-- Portlet header starts here --> <tr> <td width=1><img src=./images/underwater_skin/portlet_header_left.gif border=0></td> <td width=170 background=./images/underwater_skin/portlet_header_title_back.gif><p class="underwater-portlet-header">go F1</p></td> <td width=1><img src=./images/underwater_skin/portlet_header_title_right.gif border=0></td> <td width=20% background=./images/underwater_skin/portlet_header_back.gif><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><a href="./servlet/windowcontrol?portletid=10&act=MOVEDOWN&col=0"><img src=./images/underwater_skin/portlet_minimise_button.gif border=0 alt="Move window down"></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=10&act=CLOSE&col=0"><img src=./images/underwater_skin/portlet_close_button.gif border=0 alt="Close window"></a></td> <td width=1><img src=./images/underwater_skin/portlet_header_right.gif border=0></td> </tr> <!-- Portlet header ends here --> <!-- Portlet middle starts here --> <form name="f1form" action="./servlet/formula1" method="post"> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td background=./images/underwater_skin/portlet_outline_left.gif ><img src="./images/dummy.gif" width=4 height=1 border=0></td> <td width=100% background=./images/underwater_skin/portlet_back.jpg > <table cellpadding=2 cellspacing=0 border=0 align=center width=100%> <tr> <td colspan=2> <p class="mygo-text">I want to receive Formula 1 notifications. <input class="transparent" type=checkbox name="Formula1" onClick="updateSubscription()"></p></td> </tr> <tr> <td colspan=2><img src="./images/dummy.gif" width=4 height=5></td> </tr> <tr> <td colspan=2 align=center><a href="http://www.go.com.mt/go_f1.html" target="NEW"><img border=0 src="./images/go_f1_small.gif"> </a></td> </tr> <tr> <td colspan=2 align=center><img border=0 src="./images/win_prizes_small.gif"></td> </tr> <!-- <tr> <td colspan="2"><p class="mygo-text"><i>each <a href="http://www.go.com.mt/go_f1.html" target="NEW">go F1</a> message is charged 5c.</i></p></td> </tr> --> </tr> </table> </td> <td background=./images/underwater_skin/portlet_outline_right.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> </tr> </table> </td> </tr> <script language="javascript"> function updateSubscription(){ document.f1form.submit(); } </script> </form> <!-- Portlet middle ends here --> <!-- Portlet footer starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src=./images/underwater_skin/portlet_corner_left.gif border=0></td> <td background=./images/underwater_skin/portlet_outline_bottom.gif> <img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src=./images/underwater_skin/portlet_corner_right.gif border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> </table> </td> </tr> <tr><td><img src="./images/dummy.gif" height="4"/></td></tr> <!-- <tr> <td align=center> <a href="javascript:changeParent('./control_panel.jsp');" ><img border=1 src="./images/valentine_skin_banner.gif"></a> <script> function changeParent(a){ parent.parent.window.location = a; } </script> </td> </tr> <tr><td><img src="./images/dummy.gif" height="2"/></td></tr> --> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100%> <!-- Portlet header starts here --> <tr> <td width=1><img src=./images/underwater_skin/portlet_header_left.gif border=0></td> <td width=170 background=./images/underwater_skin/portlet_header_title_back.gif ><p class="underwater-portlet-header">account</p></td> <td width=1><img src=./images/underwater_skin/portlet_header_title_right.gif border=0></td> <td width=20% background=./images/underwater_skin/portlet_header_back.gif><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><a href="./servlet/windowcontrol?portletid=6&act=MOVEUP&col=0"><img src=./images/underwater_skin/portlet_maximise_button.gif border=0i alt="Move window up"></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=6&act=CLOSE&col=0"><img src=./images/underwater_skin/portlet_close_button.gif border=0 alt="Close window"></a></td> <td width=1><img src=./images/underwater_skin/portlet_header_right.gif border=0></td> </tr> <!-- Portlet header ends here --> <!-- Portlet middle starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td background=./images/underwater_skin/portlet_outline_left.gif ><img src="./images/dummy.gif" width=4 height=1 border=0></td> <td width=100% background=./images/underwater_skin/portlet_back.jpg > <!-- content starts here --> <table cellpadding=0 cellspacing=2 border=0 align=center> <tr> <td colspan=2> <input class="transparent" width=90 type="button" value=" Check Balance " onClick="checkbalance()"> </td> </tr> <tr></tr> <tr> <td colspan=2> <input class="transparent" width=90 type="button" value="Ready to go Topup" onClick="topupYourAccount()"> </td> </tr> <tr> <td height=57><br/><center><img src=./images/readytogo_small.gif align=center ></center></td> </tr> </table> <!-- content ends here --> </td> <td background=./images/underwater_skin/portlet_outline_right.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> </tr> </table> </td> </tr> <!-- Portlet middle ends here --> <!-- Portlet footer starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src=./images/underwater_skin/portlet_corner_left.gif border=0></td> <td background=./images/underwater_skin/portlet_outline_bottom.gif> <img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src=./images/underwater_skin/portlet_corner_right.gif border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> </table> <script language="javascript"> function checkbalance(){ window.open("./servlet/account?action=getbalance","balance","toolbar=no,width=400,height=175"); } function topupYourAccount() { parent.parent.location = "https://commerce.go.com.mt/mygotopup/internet_topup_11.jsp?msisdn=79251114&sid=S4i44noijjE8pIn62KHcMV5pQgg%3D"; } </script> </td> </tr> <tr><td><img src="./images/dummy.gif" height="4"/></td></tr> <!-- --> </table> <!-- LEFT COLUMN ENDS HERE --> </td> <td> <!-- RIGHT COLUMN STARTS HERE --> <table cellpadding=0 cellspacing=2 border=0 width=407> <tr> <td> <SCRIPT LANGUAGE="JavaScript1.2" SRC="./phonebook_script.jsp"></SCRIPT> <script language="JavaScript1.2"> loadPhonebook(); </script> <!-- web sms --> <table cellpadding=0 cellspacing=0 border=0 width=100%> <!-- Portlet header starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <td align=right width=1><img src=./images/underwater_skin/portlet_header_left.gif border=0></td> <td width=100 background=./images/underwater_skin/portlet_header_title_back.gif><p class="underwater-portlet-header">Web-to-SMS</p></td> <td width=1><img src=./images/underwater_skin/portlet_header_title_right.gif border=0></td> <td width=250 background=./images/underwater_skin/portlet_header_back.gif><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><a href="./servlet/windowcontrol?portletid=1&act=MOVEDOWN&col=1"><img src=./images/underwater_skin/portlet_minimise_button.gif border=0 alt="Move window down"></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=1&act=CLOSE&col=1"><img src=./images/underwater_skin/portlet_close_button.gif border=0 alt="Close window"></a></td> <td width=1><img src=./images/underwater_skin/portlet_header_right.gif border=0></td> </table></td> </tr> <!-- Portlet header ends here --> <!-- Portlet middle starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td background=./images/underwater_skin/portlet_outline_left.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> <td width=100% background=./images/underwater_skin/portlet_back.jpg> <table cellpadding=4 cellspacing=0 border=0> <tr><td width=1000> <p class="mygo-text"> <form name="smsform" action="./servlet/groupsms" method="post" onSubmit="return checksmsform();"> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td colspan=2> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td colspan=2> <img src="./images/dummy.gif" height=2></td> <td rowspan=2> <a class="normal-link" href="javascript:showphonebook();"><img src="./images/phonebook_icon.gif" border=0/></a> </td> </tr> <tr> <td><p class="mygo-text">recipients: </p></td> <td> <gomobile:COMBOBOX size="37" name="phone_entries"> <option> <option>Papa <option>Maxine <option>Kevin <option>Ian <option>Gordon <option>Anne-Marie <option>Mariella <option>Richard <option>giselle <option>Elaine <option>Charmaine <option>Ray <option>Jdoughty <option>CharlesPis <option>Miriam <option>Stephanie <option>Nadia <option>JohnSult <option>cvell <option>Pa </gomobile:COMBOBOX> </td> </tr></table> </td> </tr> <tr> <td colspan=2><p class="mygo-small-text"><a href="javascript:showoperators();">Prefix</a> international numbers eg 0044774848779 or click the phonebook icon</p></td> </tr> <tr> <td colspan=2> <p class="mygo-text">message: <br> <textarea rows="3" cols="43" name="smsInput" wrap onFocus="updateChars(this);" onKeyUp="updateChars(this);"></textarea> </td> </tr> <tr><td> <select class="websms" name="message_template" width="10" onchange="appendTemplate()"> <option value="" selected> Message Templates - Personalise them through the phonebook <option value="Please call">Please call <option value="I will be late">I will be late <option value="I am at work">I am at work </select> </td></tr> <tr> <td colspan=2> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td> <p class="mygo-text">characters left: <input readonly name="count" type="text" size=10 value="420 (0 SMS)"></p> </td> <td> <div STYLE="visibility: hidden" id="msgpreview"><a href="javascript:previewmessage();" class="normal-link">Preview</a></div> </td> <td align="right"><input class="transparent" type="button" value="send SMS" onClick="submitsmsform()"></td> </tr> </table> </td> </tr> <tr> <td colspan=2> <p class="mygo-text">Total remaining Free go to go SMSs:6</p> </td> </tr> </table> </form> </p> </td></tr> </table> </td> <td background=./images/underwater_skin/portlet_outline_right.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> </tr> </table> </td> </tr> <!-- Portlet middle ends here --> <!-- Portlet footer starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src=./images/underwater_skin/portlet_corner_left.gif border=0></td> <td background=./images/underwater_skin/portlet_outline_bottom.gif> <img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src=./images/underwater_skin/portlet_corner_right.gif border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> </table> <script language="Javascript1.2"> function work(){ document.smsform.smsPrefix.value = document.smsform.smsPrefix.options[document.smsform.smsPrefix.selectedIndex].value; } function submitsmsform(){ if (checksmsform()){ document.smsform.submit(); } } function checksmsform(){ splitSMS(document.smsform.smsInput.value); var splitresult = splitSMS2(document.smsform.smsInput.value); var sms = splitresult.length; if (sms > 4){ alert("Your message cannot exceed 4 SMS."); return; } var stfreesms = 6; var freesms = 6; var numlist = null; for (t = 0; t < document.smsform.elements.length;t++){ if (document.smsform.elements[t].name == "phone_entries"){ numlist = document.smsform.elements[t].value; } } if (numlist.length == 0){ alert("Phone list cannot be empty."); return false; } if (document.smsform.smsInput.value.length == 0){ alert("Message cannot be empty"); return false; } if (document.smsform.smsInput.value.indexOf("[-------NAME-------]") != -1) { document.smsform.action="./servlet/templatessms"; } if (document.smsform.smsInput.value.indexOf("[-----SURNAME------]") != -1) { document.smsform.action="./servlet/templatessms"; } if (document.smsform.smsInput.value.indexOf("[-----SHORTAME-----]") != -1) { document.smsform.action="./servlet/templatessms"; } if (document.smsform.smsInput.value.indexOf("[------NUMBER------]") != -1) { document.smsform.action="./servlet/templatessms"; } var result = numlist.split(/\s*,\s*/); var charged = 0; var numlister = ""; <!-- max recipients check --> if (result.length > 1){ alert("Please upgrade to group sms usage to submit multiple sms"); return false; } <!-- max recipients check --> for (i = 0; i < result.length; i++){ if (result[i].length > 0){ var matchpbe = null; if (result[i].match(/^[0-9]{8,15}$/) == null){ var pbe = getPhoneBookEntryById(result[i]); if (pbe == null){ alert(result[i] + " is an invalid number. Numbers must be between 8 to 15 digits long."); return false; } else{ matchpbe = pbe.msisdn; } } else{ matchpbe = result[i]; } <!--alert(matchpbe);--> if (matchpbe.match(/^(356)?79/) != null){ <!-- go number --> if (matchpbe.match(/^(356)?79\d{6}$/) == null){ alert("Not a valid go mobile number."); return false; } <!--freesms -= 1;--> freesms -= sms; } else{ <!--charged += 1;--> charged += sms; } numlister += matchpbe + ","; } <!--alert("next " + i);--> } var numresults = numlister.split(","); var dupnum = checkduplicates(numresults); if ( dupnum != null){ alert(dupnum + " is repeated."); return false; } document.smsform.elements[0].value = numlister; <!--alert("OK - " + numlister);--> if (freesms < 0){ charged = charged - freesms; } if ((charged > 0) && (sms > 1)){ return confirm("This is a concatenated message. You will be charged for " + charged + " SMS. You will receive no delivery receipts. Send them anyway?"); } else if (charged > 0){ return confirm("You will be charged for " + charged + " SMS. You will receive no delivery receipts. Send them anyway?"); } else if (sms > 1){ var rmsms = stfreesms - freesms; return confirm("This is a concatenated message. You will consume " + rmsms + " free sms. Send them anyway?"); } return true; } function checkduplicates(numresults){ numresults.sort(); for (nl = 0;nl < (numresults.length - 1);){ if (compareit(numresults[nl],numresults[nl + 1])){ return numresults[nl]; } nl++; } return null; } function compareit(num1,num2){ if (num1 == num2){ return true; } return (("356" + num1) == num2) || (("356" + num2) == num1); } function showphonebook(){ var wind = window.open("./phonebook_main.html","phonebook","width=670,height=600,scrollbars"); wind.focus(); } function showoperators(){ var wind = window.open("./operators.jsp","operators","width=670,height=600,scrollbars"); wind.focus(); } function splitSMS2(message){ var tempmatch = message.match(/\[NAME\]/); if (tempmatch != null){ message = message.replace(/\[NAME\]/g,"[-------NAME-------]"); } tempmatch = message.match(/\[SURNAME\]/); if (tempmatch != null){ message = message.replace(/\[SURNAME\]/g,"[-----SURNAME------]"); } tempmatch = message.match(/\[SHORTNAME\]/); if (tempmatch != null){ message = message.replace(/\[SHORTNAME\]/g,"[-----SHORTAME-----]"); } tempmatch = message.match(/\[NUMBER\]/); if (tempmatch != null){ message = message.replace(/\[NUMBER\]/g,"[------NUMBER------]"); } var array = new Array(); var splitresult = new Object(); if (message.length == 0){ var x = document.all.msgpreview; if (x != null){ x.style.visibility = 'hidden'; } array[0] = message; splitresult.length = 0; splitresult.sms = array; return splitresult; } if (message.length <= 140){ var x = document.all.msgpreview; if (x != null){ x.style.visibility = 'hidden'; } array[0] = message; splitresult.length = 1; splitresult.sms = array; return splitresult; } var x = document.all.msgpreview; x.style.visibility = 'visible'; var reg = /\s|(\S+)/g; var arr = message.match(reg); var curmsg = ""; var numsms = 0; for (i = 0;i < arr.length;i++){ var nexttoken = arr[i]; if ((curmsg.length + nexttoken.length) <= 136){ curmsg = curmsg + nexttoken; } else{ if (curmsg.length > 0){ <!--alert(curmsg);--> array[numsms] = curmsg; numsms++; } curmsg = ""; while (nexttoken.length > 136){ <!--alert(nexttoken.substring(0,136));--> array[numsms] = nexttoken.substring(0,136); nexttoken = nexttoken.substring(136,nexttoken.length); numsms++; } if (nexttoken.length > 0){ curmsg = curmsg + nexttoken; } } } if (curmsg.length > 0){ <!--alert(curmsg);--> array[numsms] = curmsg; numsms++; } splitresult.length = numsms; splitresult.sms = array; return splitresult; } function splitSMS(message){ var messages = message.split(/ /); var currentmessagesize = 0; var curmsg = ""; var numsms = 0; if (message.length > 0){ for (i = 0;i < messages.length;i++){ if ( (currentmessagesize + messages[i].length) < 140){ currentmessagesize = currentmessagesize + messages[i].length + 1; curmsg = curmsg + messages[i] + " "; } else if ( (currentmessagesize + messages[i].length) == 140){ currentmessagesize = currentmessagesize + messages[i].length; curmsg = curmsg + messages[i]; } else{ if (currentmessagesize > 0){ <!--alert(curmsg);--> curmsg = ""; numsms++; } currentmessagesize = 0; while (messages[i].length > 140){ <!--alert(messages[i].substring(0,140));--> messages[i] = messages[i].substring(140,messages[i].length); numsms++; } if (messages[i].length > 0){ curmsg = curmsg + messages[i] + " "; } } } if (curmsg.length > 0){ <!--alert(curmsg);--> numsms++; } } return numsms; } function previewmessage(){ var splitresult = splitSMS2(document.all.smsInput.value); var previewstring = ""; for (i = 0; i < splitresult.sms.length; i++){ var mno = i + 1; previewstring += mno + "/" + splitresult.sms.length + " \r\n" + splitresult.sms[i] + "\r\n\r\n"; } alert(previewstring); } function updateChars(textarea){ val = textarea.value; var tempmatch = val.match(/\[NAME\]/); if (tempmatch != null){ val = val.replace(/\[NAME\]/g,"[-------NAME-------]"); textarea.value = val; } tempmatch = val.match(/\[SURNAME\]/); if (tempmatch != null){ val = val.replace(/\[SURNAME\]/g,"[-----SURNAME------]"); textarea.value = val; } tempmatch = val.match(/\[SHORTNAME\]/); if (tempmatch != null){ val = val.replace(/\[SHORTNAME\]/g,"[-----SHORTAME-----]"); textarea.value = val; } tempmatch = val.match(/\[NUMBER\]/); if (tempmatch != null){ val = val.replace(/\[NUMBER\]/g,"[------NUMBER------]"); textarea.value = val; } if (val.length > 420) { alert('Sorry, you have exceeded the limit of 420 characters'); textarea.value = val.substring(0,420); textarea.focus() } document.all.smsform.count.value=420-parseInt(val.length); splitsms = splitSMS2(textarea.value); document.all.smsform.count.value = document.all.smsform.count.value + ' (' + splitsms.length + ' SMS)'; } function appendTemplate() { var mess = document.smsform.smsInput.value; document.smsform.smsInput.value = mess + document.smsform.message_template.value; document.smsform.smsInput.focus(); } </script> <!-- web sms --> </td> </tr> <tr><td><img src="./images/dummy.gif" height="4"/></td></tr> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=395 background="./images/underwater_skin/portlet_back.jpg" > <!-- Portlet footer starts here --> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src="./images/underwater_skin/portlet_corner_left_top.gif" border=0></td> <td background="./images/underwater_skin/portlet_outline_top.gif"><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src="./images/underwater_skin/portlet_corner_right_top.gif" border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> <!-- Portlet middle starts here --> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td background="./images/underwater_skin/portlet_outline_left.gif"><img src="./images/dummy.gif" width=4 height=1 border=0></td> <td width=100% background=./images/underwater_skin/portlet_back.jpg align=center> <a href="http://shop.di-ve.com" target="NEW"><img border=0 width=395 src="./images/dive_shop.gif"/></a></td> <td background="./images/underwater_skin/portlet_outline_right.gif"><img src="./images/dummy.gif" width=4 height=1 border=0></td> </tr> </table> </td> </tr> <!-- Portlet middle ends here --> <!-- Portlet footer starts here --> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src="./images/underwater_skin/portlet_corner_left.gif" border=0></td> <td background="./images/underwater_skin/portlet_outline_bottom.gif"><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src="./images/underwater_skin/portlet_corner_right.gif" border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> </table> </td> </tr> <tr><td><img src="./images/dummy.gif" height="4"/></td></tr> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100%> <!-- Portlet header starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <td width=1><img src=./images/underwater_skin/portlet_header_left.gif border=0></td> <td width=180 background=./images/underwater_skin/portlet_header_title_back.gif><p class="underwater-portlet-header">IOD online</p></td> <td width=1><img src=./images/underwater_skin/portlet_header_title_right.gif border=0></td> <td width=300 background=./images/underwater_skin/portlet_header_back.gif><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><a href="./servlet/windowcontrol?portletid=2&act=MOVEDOWN&col=1"><img src=./images/underwater_skin/portlet_minimise_button.gif border=0 alt="Move window down"></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=2&act=MOVEUP&col=1"><img src=./images/underwater_skin/portlet_maximise_button.gif border=0 alt="Move window up"></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=2&act=CLOSE&col=1"><img src=./images/underwater_skin/portlet_close_button.gif border=0 alt="Close window"></a></td> <td width=1><img src=./images/underwater_skin/portlet_header_right.gif border=0></td> </table></td> </tr> <!-- Portlet header ends here --> <!-- Portlet middle starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td background=./images/underwater_skin/portlet_outline_left.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> <td width=100% background=./images/underwater_skin/portlet_back.jpg> <table cellpadding=4 cellspacing=0 border=0> <tr> <td width=1000> <script language="JavaScript1.2"> /* Cross browser marquee script- ゥ Dynamic Drive (www.dynamicdrive.com) For full source code, installation instructions, 100's more DHTML scripts, and Terms Of Use, visit dynamicdrive.com */ var text="sss"; //Specify the marquee's width (in pixels) var marqueewidth=350 //Specify the marquee's height (in pixels, pertains only to NS) var marqueeheight=10 //Specify the marquee's scroll speed (larger is faster) var speed=3 //Specify the marquee contents var marqueecontents="<a href='http://www.di-ve.com' target='DIVE'><img border=0 src=./images/dive.gif></a> <b class=normal><a href=javascript:category='news';text='94836:1';sendasSMS(category,text)>Feast of Our Lady of Sorrows</a> <a href=javascript:category='news';text='94410:1';sendasSMS(category,text)>AirMalta flight delayed</a> <a href=javascript:category='news';text='94409:1';sendasSMS(category,text)>UV Index up</a> <a href=javascript:category='news';text='94402:1';sendasSMS(category,text)>MEPA grants aid for balconies</a> <a href=javascript:category='news';text='94312:1';sendasSMS(category,text)>EFA says election is crucial</a> </b> <a href='http://www.di-ve.com' target='DIVE'><img border=0 src=./images/dive.gif></a>" // if (document.all) document.write('<marquee scrollAmount='+speed+' style="width:'+marqueewidth+'">'+marqueecontents+'</marquee>') function regenerate(){ window.location.reload() } function regenerate2(){ if (document.layers){ setTimeout("window.onresize=regenerate",450) intializemarquee() } setCheck(document.all['iod_warn']); } function intializemarquee(){ document.cmarquee01.document.cmarquee02.document.write('<nobr>'+marqueecontents+'</nobr>') document.cmarquee01.document.cmarquee02.document.close() thelength=document.cmarquee01.document.cmarquee02.document.width scrollit() } function scrollit(){ if (document.cmarquee01.document.cmarquee02.left>=thelength*(-1)){ document.cmarquee01.document.cmarquee02.left-=speed setTimeout("scrollit()",100) } else{ document.cmarquee01.document.cmarquee02.left=marqueewidth scrollit() } } function sendasSMS(c,a){ var showit = setCheck(document.all['iod_warn']); if (showit){ if (confirm("Receive more detail through an SMS? This is charged at 2c.")){ document.location='./servlet/iod?csmid='+ c + ':' + a ; } } else{ document.location='./servlet/iod?csmid='+ c + ':' + a ; } } function openit(item){ if (item == "business"){ var items = "<a href=javascript:category='news';text='94142:1';sendasSMS(category,text)>Wall Street flat at open</a><br/><a href=javascript:category='news';text='94137:1';sendasSMS(category,text)>Bank of England holds rates</a><br/><a href=javascript:category='news';text='94136:1';sendasSMS(category,text)>European bourses slide again</a><br/><a href=javascript:category='news';text='94119:1';sendasSMS(category,text)>Nokia to cut over 10% of staff</a><br/>"; document.all['iodarea'].innerHTML="<p class='mygo-text'>" + items + "<a href='javascript:closeit()'>close</a></p>"; } else if (item == "lotto"){ document.all['iodarea'].innerHTML="<p class='mygo-text'><a href=javascript:category='lotto';text='" + "94898:1" + "';sendasSMS(category,text)>Lotto</a> (Fri, Apr 11)<br/><a href=javascript:category='super5';text='" + "93379:1" + "';sendasSMS(category,text)>Super5</a> (Wed, Apr 9)<br/><a href='javascript:closeit()'>close</a></p>"; } else if (item == "horoscope"){ horoscopes = new Array("aries","taurus","gemini","cancer","leo","virgo","libra","scorpio","sagitarius","capricorn","aquarius","pisces"); var hrs = "<table>"; for (r = 0; r < 3; r++ ){ hrs += "<tr>"; for (c = 0; c < 4; c++){ hrs += "<td align=center><a class='normal-link' href=javascript:category='horoscope';text='" + "94719:1" + ":" + horoscopes[(r * 4) + c] + "';sendasSMS(category,text)>"; hrs += horoscopes[(r * 4) + c]; hrs += "</a></td>"; } hrs += "</tr>"; } hrs += "</table>"; document.all['iodarea'].innerHTML= "<p class='mygo-text'>" + hrs + "<a href='javascript:closeit()'>close</a>" + "</p>"; } else if (item == 'weather'){ document.all['iodarea'].innerHTML= "<p class='mygo-text'>" + "<a class='normal-link' href=javascript:category='weather';text='" + "94714:1" + "';sendasSMS(category,text)>Weather</a>" + " (Fri, Apr 11, 08:53) " + "<br/><a href='javascript:closeit()'>close</a>" + "</p>"; } else if (item == 'pharmacies'){ pharmacies = new Array(); var combo = "pharmacy open next sunday at:<table>"; combo += "<tr>" combo += "<td><select name='phselect'>"; for (p = 0; p < pharmacies.length; p++){ combo += "<option value='" + pharmacies[p] + "'>" + pharmacies[p]; } combo += "</select></td>"; combo += "<td><input type=button class='light-blue' onClick='phdeliver()' value='OK'/></td>"; combo += "</tr>"; combo += "<tr><td><p class='mygo-text'><a href='javascript:closeit();'>close</a></p></td></tr>"; combo += "</table>"; document.all['iodarea'].innerHTML= "<p class='mygo-text'>" + combo + "</p>"; } } function phdeliver(){ var c = "pharmacies"; var a = "null" + ":" + document.all['phselect'].value; sendasSMS(c,a); } function closeit(){ document.all['iodarea'].innerHTML=""; } window.onload=regenerate2; </script> </td> </tr> <tr><td width=1000> <p class="mygo-text"> <a href="#" onClick="openit('business')" >Business</a> | <a href="#" onClick="openit('lotto')">Lotto</a> | <a href="#" onClick="openit('horoscope')">Horoscope</a> | <a href=javascript:category='joke';text='94724:1';sendasSMS(category,text)>Joke</a> | <a href="#" onClick="openit('weather')">Weather</a> | <a href="#" onClick="openit('pharmacies')">Pharmacies</a> </p> </td></tr> <tr> <td width=1000> <div id="iodarea"> </div> </td> </tr> <tr> <td width=1000 align="bottom"> <p class="mygo-text"><i>warn me before receiving a charged iod sms</i><input class="transparent" onClick="setwarning(this)" type=checkbox name="iod_warn"/></p> </td> </tr> </table> </td> <td background=./images/underwater_skin/portlet_outline_right.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> </tr> </table> </td> </tr> <!-- Portlet middle ends here --> <!-- Portlet footer starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src=./images/underwater_skin/portlet_corner_left.gif border=0></td> <td background=./images/underwater_skin/portlet_outline_bottom.gif> <img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src=./images/underwater_skin/portlet_corner_right.gif border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> </table> </td> </tr> <tr><td><img src="./images/dummy.gif" height="4"/></td></tr> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100%> <!-- Portlet header starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <td width=1><img src=./images/underwater_skin/portlet_header_left.gif border=0></td> <td width=170 background=./images/underwater_skin/portlet_header_title_back.gif><p class="underwater-portlet-header">Mobile E-mail</p></td> <td width=1><img src=./images/underwater_skin/portlet_header_title_right.gif border=0></td> <td width=200 background=./images/underwater_skin/portlet_header_back.gif><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><a href="./servlet/windowcontrol?portletid=3&act=MOVEDOWN&col=1"><img src=./images/underwater_skin/portlet_minimise_button.gif alt="Move winow down" border=0></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=3&act=MOVEUP&col=1"><img src=./images/underwater_skin/portlet_maximise_button.gif border=0 alt="Move window up"></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=3&act=CLOSE&col=1"><img src=./images/underwater_skin/portlet_close_button.gif border=0 alt="Close window"></a></td> <td width=1><img src=./images/underwater_skin/portlet_header_right.gif border=0></td> </table></td> </tr> <!-- Portlet header ends here --> <!-- Portlet middle starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td background=./images/underwater_skin/portlet_outline_left.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> <td width=100% background=./images/underwater_skin/portlet_back.jpg> <table cellpadding=4 cellspacing=0 border=0 width="100%"> <tr><td width=1000> <p class="mygo-text"> <form name="emailform" action="./servlet/email" method="get"> <table cellpadding=0 cellspacing=1 border=0> <tr> <td align=center><p class="mygo-text">E-mail address</p></td> <td align=right><p class="mygo-text">Notify?</p></td> <td rowspan=100 align=right> <table> <tr><td> <input class="transparent" type="button" value="define filters " onClick="emailgo('rules')"> </td></tr> <tr><td> <input class="transparent" type="button" value="set signature" onClick="emailgo('signature')"> </td></tr> </table> </td> </tr> <tr> <td> <a class="normal-link" href="./servlet/email?action=0" target=_top>vellach@maltanet.net </a>: </td> <td align=center> <input class="transparent" tabindex=1 name="vellach@maltanet.net" type=checkbox checked onClick="emailgo('update_status');"> </td> </tr> <tr> <td> <a class="normal-link" href="./servlet/email?action=1" target=_top>Click here to set-up mailbox 2 </a>: </td> <td align=center> <input class="transparent" tabindex=1 name="" disabled type=checkbox> </td> </tr> <tr> <td> <a class="normal-link" href="./servlet/email?action=2" target=_top>Click here to set-up mailbox 3 </a>: </td> <td align=center> <input class="transparent" tabindex=1 name="" disabled type=checkbox> </td> </tr> </table> <input type=hidden name="action"> <input type=hidden name="emailcount" value="3"/> </form> </p> </td></tr> <tr> <td colspan=2><p class="mygo-text"><i>each <a href="../smart_sim_email_faqs.html" target="NEW">email notification</a> is charged at 2c.</i></p></td> </tr> </table> </td> <td background=./images/underwater_skin/portlet_outline_right.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> </tr> </table> </td> </tr> <!-- Portlet middle ends here --> <!-- Portlet footer starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src=./images/underwater_skin/portlet_corner_left.gif border=0></td> <td background=./images/underwater_skin/portlet_outline_bottom.gif> <img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src=./images/underwater_skin/portlet_corner_right.gif border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> </table> <script> function emailgo(act){ if (act=='rules'){ var count = document.emailform.emailcount.value; if (count == 0){ alert("Defining rules requires that you have at least one email."); return; } window.open("./email_suite/rules.html","email","resizable=yes,scrollbars=yes,width=550,height=450"); return; } else if (act=='signature') { //parent.parent.window.location = "./servlet/email?action=" + act; parent.parent.window.location = "./email_suite/signature.jsp"; return; } document.emailform.action.value=act; document.emailform.submit(); } </script> </td> </tr> <tr><td><img src="./images/dummy.gif" height="4"/></td></tr> <tr> <td> <table cellpadding=0 cellspacing=0 border=0 width=100% align=center> <!-- Portlet header starts here --> <tr> <td width=1><img src=./images/underwater_skin/portlet_header_left.gif align=middle border=0></td> <td width=146 background=./images/underwater_skin/portlet_header_title_back.gif><p class="underwater-portlet-header">go Chat</p></td> <td width=1><img src=./images/underwater_skin/portlet_header_title_right.gif border=0></td> <td width=250 background=./images/underwater_skin/portlet_header_back.gif ><img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><a href="./servlet/windowcontrol?portletid=7&act=MOVEUP&col=1"><img src=./images/underwater_skin/portlet_maximise_button.gif border=0 alt="Move window up"></a></td> <td width=1><a href="./servlet/windowcontrol?portletid=7&act=CLOSE&col=1"><img src=./images/underwater_skin/portlet_close_button.gif border=0 alt="Close window"></a></td> <td width=1><img src=./images/underwater_skin/portlet_header_right.gif border=0></td> </tr> <!-- Portlet header ends here --> <!-- Portlet middle starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td background=./images/underwater_skin/portlet_outline_left.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> <td width=99% background=./images/underwater_skin/portlet_back.jpg> <form name="gochatform" method="post" action="./servlet/chat" onSubmit="return checkchatform();"> <table cellpadding=0 cellspacing=5 border=0 > <tr> <td colspan=2> <textarea name="textareas" rows=3 cols=37></textarea> </td> </tr> <tr> <td colspan=2> <select name="actioncommand" onChange="changeCommand()"> <option value="commands">Commands <option value="join">Join room <option value="send">Send message <option value="exit">Exit room <option value="help">Help <option value="listr">List rooms <option value="listrn">List rooms with new users <option value="lista">List users in any room <option value="changenick">Change nickname <option value="privatemsg">Private message <!-- <option value="ignore">Ignore user --> <!-- <option value="unignore">Unignore user --> <!-- <option value="ignorelist">Show ignore list --> <option value="finduser">Find user <option value="invisible">Set user invisible <option value="visible">Set user visible <option value="topic">Show the room topic <option value="invite">Invite user <option value="kick">Kick user <!-- <option value="ban">Ban user --> <!-- <option value="unban">Unban user --> <!-- <option value="kb">Kick and ban user --> <!-- <option value="banlist">Show ban list --> <option value="settopic">Set the room topic <option value="makeprivate">Make room private <option value="makepublic">Make room public <option value="setop">Set user as operator <option value="remop">Remove operator privileges of user <option value="su">Make SuperUser </select> <input class="transparent" size=30 type="submit" value="go chat"> </td> </tr> <tr> <td><p class="mygo-text">Command</p></td><td><input type=text name=command size=30></td> </tr> <tr> <td><p class="mygo-text">Syntax</p></td><td><div id="sy"></div></td> </tr> <tr> <td><p class="mygo-text">Example</p></td><td><div id="ex"></div></td> </tr> <tr> <td colspan=2><p class="mygo-text"><i>warn me before sending a charged <a href="./help.html#14" target="NEW" >go chat</a> sms</i><input class="transparent" onClick="setwarning(this)" type=checkbox name="chat_warn"/></p></td> </tr> </table> </form> <script language="JavaScript1.2"> setHistory(); setCheck(document.all['chat_warn']); function checkchatform(){ if (document.gochatform.command.value.length > 150){ alert("go chat command cannot be greater than 150 charachters"); return false; } if (document.gochatform.command.value.length == 0){ alert("go chat command cannot be empty"); return false; } var showit = setCheck(document.all['chat_warn']); if (showit){ return confirm("Each go chat command is charged at 2c. Continue?"); } else{ return true; } } function checkCommandLength(){ if (document.gochatform.command.value.length > 150){ alert("go chat command cannot be greater than 150 charachters"); } else{ document.gochatform.submit(); } } function setHistory(){ document.gochatform.textareas.value=''; } function changeCommand(){ var actioncommand = document.gochatform.actioncommand.options[document.gochatform.actioncommand.selectedIndex].value; var command = ""; var syntax = ""; var example = ""; if (actioncommand != "commands"){ if (actioncommand == "join"){ command = "/join"; syntax = "/join <roomname> <nickname>"; example = "/join movies Trinity"; } if (actioncommand == "send"){ command = "" syntax = "<message>"; example = "Hi, how do you do?"; } else if (actioncommand == "exit"){ command = "/exit"; syntax = "/exit [message]"; example = "/exit I知 going to sleep."; } else if (actioncommand == "help"){ command = "/help"; syntax = "/help"; example = "/help"; } else if (actioncommand == "listr"){ command = "/lr"; syntax = "/lr [search string]"; example = "/lr s"; } else if (actioncommand == "listrn"){ command = "/lrn"; syntax = "/lrn [search string]"; example = "/lrn fun"; } else if (actioncommand == "lista"){ command = "/lu"; syntax = "/lu [<roomname>]"; example = "/lu #music"; } else if (actioncommand == "changenick"){ command = "/nick"; syntax = "/nick <new nickname>"; example = "/nick cartman"; } else if (actioncommand == "privatemsg"){ command = "/msg"; syntax = "/msg <nickname> <message>"; example = "/msg Paula My mobile number is 79XXXXXX."; } else if (actioncommand == "ignore"){ command = "/ignore"; syntax = "/ignore <nickname|79XXXXXX>"; example = "/ignore Piero"; } else if (actioncommand == "unignore"){ command = "/unignore"; syntax = "/unignore <nickname|79XXXXXX>"; example = "/unignore Piero"; } else if (actioncommand == "ignorelist"){ command = "/ignorelist"; syntax = "/ignorelist"; example = "/ignorelist"; } else if (actioncommand == "finduser"){ command = "/find"; syntax = "/find <nickname>"; example = "/find Piero"; } else if (actioncommand == "visible"){ command = "/visible"; syntax = "/visible"; example = "/visible"; } else if (actioncommand == "invisible"){ command = "/invisible"; syntax = "/invisible"; example = "/invisible"; } else if (actioncommand == "topic"){ command = "/topic"; syntax = "/topic"; example = "/topic"; } else if (actioncommand == "invite"){ command = "/invite"; syntax = "/invite (<79XXXXXX>|<nick>)+"; example = "/invite 79xxxxxx 79yyyyyy"; } else if (actioncommand == "kick"){ command = "/kick"; syntax = "/kick <nickname>"; example = "/kick Chaos"; } else if (actioncommand == "ban"){ command = "/ban"; syntax = "/ban <nickname|79XXXXXX>"; example = "/ban Chaos"; } else if (actioncommand == "unban"){ command = "/unban"; syntax = "/unban <nickname|79XXXXXX>"; example = "/unban Chaos"; } else if (actioncommand == "kb"){ command = "/kb"; syntax = "/kb <nickname|79XXXXXX>"; example = "/kb Chaos"; } else if (actioncommand == "banlist"){ command = "/banlist"; syntax = "/banlist"; example = "/banlist"; } else if (actioncommand == "settopic"){ command = "/topic"; syntax = "/topic <topic>"; example = "/topic Meeting tonight @ Paceville"; } else if (actioncommand == "makeprivate"){ command = "/pr"; syntax = "/pr"; example = "/pr"; } else if (actioncommand == "makepublic"){ command = "/pu"; syntax = "/pu"; example = "/pu"; } else if (actioncommand == "setop"){ command = "/op"; syntax = "/op <nickname>"; example = "/op Neo"; } else if (actioncommand == "remop"){ command = "/deop"; syntax = "/deop <nickname>"; example = "/deop Neo"; } else if (actioncommand == "su"){ command = "/su"; syntax = "/su <nickname>"; example = "/su Jones"; } document.gochatform.command.value = command; <!-- document.gochatform.syntax.value = syntax; --> document.all["sy"].innerHTML = "<p class=mygo-text>" + syntax + "</p>"; <!-- document.gochatform.example.value = example; --> document.all["ex"].innerHTML = "<p class=mygo-text>" + example + "</p>"; } } </script> </td> <td background=./images/underwater_skin/portlet_outline_right.gif><img src="./images/dummy.gif" width=4 height=1 border=0></td> </tr> </table> </td> </tr> <!-- Portlet middle ends here --> <!-- Portlet footer starts here --> <tr> <td colspan=8> <table cellpadding=0 cellspacing=0 border=0 width=100%> <tr> <td width=1><img src=./images/underwater_skin/portlet_corner_left.gif border=0></td> <td background=./images/underwater_skin/portlet_outline_bottom.gif> <img src="./images/dummy.gif" width=20 height=1 border=0></td> <td width=1><img src=./images/underwater_skin/portlet_corner_right.gif border=0></td> </tr> </table> </td> </tr> <!-- Portlet footer ends here --> </table> </td> </tr> <tr><td><img src="./images/dummy.gif" height="4"/></td></tr> </table> <!-- RIGHT COLUMN ENDS HERE --> </td> </tr> <tr><td height=99%><img border=0 align=middle src="./images/dummy.gif"></td></tr> </TABLE> </BODY> </HTML> Reproducible: Always Steps to Reproduce: 1. Subscribe to mygo (need a go mobile phone) 2. Try to send SMS. Actual Results: No SMS is sent, no. of remaining chars is not updated. Expected Results: Update the chars left as I type and send SMS when I press the send SMS button. Thwn write groupsms submitted for delivery.
Comment 1•21 years ago
|
||
The page is using HTML-style comments (<!-- -->) instead of JS-style (//) which is causing a bunch of syntax errors. Over to Tech Evangelism.
Assignee: asa → susiew
Severity: normal → major
Status: UNCONFIRMED → NEW
Component: Browser-General → US General
Ever confirmed: true
Product: Browser → Tech Evangelism
QA Contact: asa → zach
Summary: characters left windows is not updated as I type sms. Nothing happens when I press the Send SMS button. → Go.com SMS page uses HTML-style comments in Javascript
Version: Trunk → unspecified
Comment 3•21 years ago
|
||
tech evang june 2003 reorg
Assignee: susiew → english-us
QA Contact: zach → english-us
Updated•9 years ago
|
Product: Tech Evangelism → Tech Evangelism Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•