Index: chrome_release_test_status/war/registerfeature.jsp |
=================================================================== |
--- chrome_release_test_status/war/registerfeature.jsp (revision 0) |
+++ chrome_release_test_status/war/registerfeature.jsp (revision 0) |
@@ -0,0 +1,330 @@ |
+<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
+<%@ page import="java.util.List" %> |
+<%@ page import="java.util.ArrayList" %> |
+<%@ page import="javax.jdo.PersistenceManager" %> |
+<%@ page import="com.google.appengine.api.users.User" %> |
+<%@ page import="com.google.appengine.api.users.UserService" %> |
+<%@ page import="com.google.appengine.api.users.UserServiceFactory" %> |
+<%@ page import="mydemo.MstoneInfo" %> |
+<%@ page import="mydemo.BuildInfo" %> |
+<%@ page import="mydemo.TestStatus" %> |
+<%@ page import="mydemo.RegisterFeature" %> |
+<%@ page import="mydemo.PMF" %> |
+ |
+<HTML> |
+<script> |
+var g_rowNo = 0; |
+function addRow() { |
+ var template = document.getElementById('rowTemplate'); |
+ var newRow = template.cloneNode(true); |
+ document.getElementById('mainForm').insertBefore(newRow, document.getElementById('beforeThisRow')); |
+} |
+ |
+window.onload = function() { |
+ addRow(); |
+ addRow(); |
+} |
+ |
+function SelectMstone(selected_val, sibling) { |
+ if (selected_val == "New mile stone") |
+ { |
+ var div, br |
+ br = document.createElement("BR"); |
+ div = document.createElement("DIV"); |
+ text = document.createTextNode("Enter New Mstone Number: "); |
+ div.appendChild(text); |
+ |
+ var tbox; |
+ tbox=document.createElement('input'); |
+ tbox.type = 'text'; |
+ tbox.name = 'mstone_number'; |
+ div.appendChild(tbox); |
+ sibling.parentNode.appendChild(div); |
+ } |
+} |
+ |
+</script> |
+ |
+ |
+<script> |
+ |
+var DDSPEED = 10; |
+var DDTIMER = 15; |
+ |
+// main function to handle the mouse events // |
+function ddMenu(id,d){ |
+ var h = document.getElementById(id + '-ddheader'); |
+ var c = document.getElementById(id + '-ddcontent'); |
+ clearInterval(c.timer); |
+ if(d == 1){ |
+ clearTimeout(h.timer); |
+ if(c.maxh && c.maxh <= c.offsetHeight){return} |
+ else if(!c.maxh){ |
+ c.style.display = 'block'; |
+ c.style.height = 'auto'; |
+ c.maxh = c.offsetHeight; |
+ c.style.height = '0px'; |
+ } |
+ c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER); |
+ }else{ |
+ h.timer = setTimeout(function(){ddCollapse(c)},50); |
+ } |
+} |
+ |
+// collapse the menu // |
+function ddCollapse(c){ |
+ c.timer = setInterval(function(){ddSlide(c,-1)},DDTIMER); |
+} |
+ |
+// cancel the collapse if a user rolls over the dropdown // |
+function cancelHide(id){ |
+ var h = document.getElementById(id + '-ddheader'); |
+ var c = document.getElementById(id + '-ddcontent'); |
+ clearTimeout(h.timer); |
+ clearInterval(c.timer); |
+ if(c.offsetHeight < c.maxh){ |
+ c.timer = setInterval(function(){ddSlide(c,1)},DDTIMER); |
+ } |
+} |
+ |
+// incrementally expand/contract the dropdown and change the opacity // |
+function ddSlide(c,d){ |
+ var currh = c.offsetHeight; |
+ var dist; |
+ if(d == 1){ |
+ dist = (Math.round((c.maxh - currh) / DDSPEED)); |
+ }else{ |
+ dist = (Math.round(currh / DDSPEED)); |
+ } |
+ if(dist <= 1 && d == 1){ |
+ dist = 1; |
+ } |
+ c.style.height = currh + (dist * d) + 'px'; |
+ c.style.opacity = currh / c.maxh; |
+ c.style.filter = 'alpha(opacity=' + (currh * 100 / c.maxh) + ')'; |
+ if((currh < 2 && d != 1) || (currh > (c.maxh - 2) && d == 1)){ |
+ clearInterval(c.timer); |
+ } |
+} |
+ |
+</script> |
+ |
+<style> |
+.menu{ |
+ width:717px; |
+ height:65px; |
+ |
+} |
+.links div{ |
+ float:left;} |
+.dropdown { |
+ |
+ background:9966ff; |
+color:#eee; |
+ border-left:1px solid #fff; |
+ font-family:BOOK ANTIQUA; |
+ font-size:14px; |
+ margin: 0; |
+ padding:0px;} |
+ |
+.dropdown dt:hover { |
+ background:9999ff;} |
+ |
+.dropdown dd { |
+ position:absolute; |
+ overflow:hidden; |
+ display:none; |
+ background:9966ff; |
+ |
+ margin:0 0 0 20px; |
+ border-left:2px solid #620000; |
+ border-right:2px solid #620000} |
+ |
+.dropdown ul { |
+ width:100px; |
+ list-style:none; |
+ margin:0; |
+ padding: 0; |
+ z-index:900;} |
+.dropdown li { |
+ display:block; |
+ width: 100px; |
+ margin: 0; |
+ padding: 5px; |
+ border-bottom:2px solid #620000;} |
+.dropdown li a{ |
+ float:none; |
+ width:auto; |
+ padding: 0; |
+ width:100px} |
+ |
+.dropdown a:hover { |
+ color:#FFFF00;} |
+ |
+a{ |
+ color:blue; |
+ font-family:BOOK ANTIQUA; |
+ font-size:15px; |
+ text-decoration: none; |
+ padding-left:23px; |
+ padding-right:23px; |
+} |
+a:hover { |
+background:9999ff; |
+color:#000 |
+} |
+</style> |
+ |
+<body> |
+<div align=center class="headerMembers"> |
+<!-- menu starts here --> |
+<div class="menu"> |
+<div class="links"> |
+<body> |
+<H2 align=center><font color="background:9900CC"> Chrome Release testing dashboard </font></h2> |
+<div> |
+<br> |
+</div> |
+<div> |
+ <dl class="dropdown"> |
+ <dt id="one-ddheader" onmouseover="ddMenu('one',1)" onmouseout="ddMenu('one',-1)"><a>Register new feature</a></dt> |
+ <dd id="one-ddcontent" onmouseover="cancelHide('one')" onmouseout="ddMenu('one',-1)"> |
+ <ul> |
+ <li><a href="registerfeature.jsp">Chrome</a></li> |
+ <li><a href="">Chrome Frame</a></li> |
+ </ul> |
+ </dd> |
+ </dl> |
+</div> |
+ |
+ |
+<div> |
+ <dl class="dropdown"> |
+ <dt id="two-ddheader" onmouseover="ddMenu('two',1)" onmouseout="ddMenu('two',-1)"><a>Submit Status</a></dt> |
+ <dd id="two-ddcontent" onmouseover="cancelHide('two')" onmouseout="ddMenu('two',-1)"> |
+ <ul> |
+ <li><a href="SubmitStatus-Windows.jsp">Windows</a></li> |
+ <li><a href="SubmitStatus-Mac.jsp">Mac</a></li> |
+ <li><a href="SubmitStatus-Linux.jsp">Linux</a></li> |
+ <li><a href="">Chrome Frame </a></li> |
+ </ul> |
+ </dd> |
+ </dl> |
+</div> |
+ |
+<div> |
+ <dl class="dropdown"> |
+ <dt id="three-ddheader" onmouseover="ddMenu('three',1)" onmouseout="ddMenu('three',-1)"><a>View Status</a></dt> |
+ <dd id="three-ddcontent" onmouseover="cancelHide('three')" onmouseout="ddMenu('three',-1)"> |
+ <ul> |
+ <li><a href="TestingStatus-query.jsp">Windows</a></li> |
+ <li><a href="TestingStatus-query-Mac.jsp">Mac</a></li> |
+ <li><a href="TestingStatus-query-Linux.jsp">Linux</a></li> |
+ <li><a href="">Chrome Frame </a></li> |
+ </ul> |
+ </dd> |
+ </dl> |
+</div> |
+ |
+<div> |
+ <dl class="dropdown"> |
+ <dt id="four-ddheader" onmouseover="ddMenu('four',1)" onmouseout="ddMenu('four',-1)"><a>Release Blockers</a></dt> |
+ <dd id="four-ddcontent" onmouseover="cancelHide('four')" onmouseout="ddMenu('four',-1)"> |
+ <ul> |
+ <li><a href="Release-blockers.jsp?channel=Dev">Dev</a></li> |
+ <li><a href="Release-blockers.jsp?channel=Beta">Beta</a></li> |
+ <li><a href="Release-blockers.jsp?channel=Stable">Stable</a></li> |
+ <li><a href="">ChromeFrame-Dev</a></li> |
+ <li><a href="">ChromeFrame-Beta</a></li> |
+ </ul> |
+ </dd> |
+ </dl> |
+</div> |
+<div style="background:9966ff;border-left:1px solid #fff;"><a href="calendar.jsp">Calendar</a></div> |
+ |
+</body> |
+</div> |
+</div> |
+</div> |
+</html> |
+ |
+<BODY style="background:CCCCFF;font-family:BOOK ANTIQUA"> |
+ |
+<div style="position:relative; width:100%; height:20px"></div> |
+<div align=center > |
+<form id='mainForm' action="/reg" method="post"> |
+ |
+ <div style="display:none" > |
+ <div id='rowTemplate' > |
+ <br> |
+<table> |
+<div id='hide-me'> |
+<tr> |
+<td><b>Feature Name</b></td><td><b>Related Docs</b></td><td><b>Notes for QA: </b></td><td><b>Feature Type:</b></td><td><b>Mile Stone:</td> |
+</tr> |
+</div> |
+ <tr> |
+ <td><input type='text' name="feature_name"></input></td> |
+ <td><input type='text' name="related_docs"></input></td> |
+ <td><input type='text' name="notes"></input></td> |
+ <td><div><select name="feature_type"> |
+<option value="Backend" selected>Backend |
+<option value="Frontend">Frontend |
+<option value="Compat">Compat |
+<option value="Not Known">Unknown |
+</select></div> |
+</td> |
+ |
+<td> |
+ |
+ |
+ |
+ |
+ |
+ |
+<% |
+ PersistenceManager pm1 = PMF.get().getPersistenceManager(); |
+ String query1 = "select from " + MstoneInfo.class.getName(); |
+ List<MstoneInfo> mstone_val = (List<MstoneInfo>) pm1.newQuery(query1).execute(); |
+ if (mstone_val.isEmpty()) { %> |
+ <select name="mstone" onChange="SelectMstone(this.options[selectedIndex].text, this);"> |
+<option value="Pick a mstone" selected>Pick a mile stone |
+ <option value="New mstone">New mile stone |
+ </select> |
+ |
+ <% } |
+else { |
+ %> |
+ |
+ |
+ |
+ <select name="mstone" onChange="SelectMstone(this.options[selectedIndex].text, this);"> |
+ <option value="Pick a mstone" selected>Pick a mile stone |
+ <% for (MstoneInfo mstone : mstone_val) { %> |
+ <option value=<%= mstone.getMileStone() %>><%= mstone.getMileStone() %> |
+ <% } %> |
+ <option value="New mstone">New mile stone |
+ </select> |
+ |
+<% |
+ } |
+ pm1.close(); |
+%> |
+</td> |
+</tr> |
+</table> |
+ |
+ |
+ </div> |
+ </div> |
+ |
+ <div id='beforeThisRow1' ></div> |
+ <div id='beforeThisRow'></div> |
+ <br> |
+ <div align=center> <a href="javascript:addRow()">Click to submit more features for testing</a> <div> <br> |
+ <div align=center><input type="submit" value="Submit for testing" /></div> |
+ |
+ </form> |
+ </div> |
+ </body> |
+</html> |