Index: chrome_release_test_status/war/SubmitStatus-Mac.jsp |
=================================================================== |
--- chrome_release_test_status/war/SubmitStatus-Mac.jsp (revision 0) |
+++ chrome_release_test_status/war/SubmitStatus-Mac.jsp (revision 0) |
@@ -0,0 +1,503 @@ |
+<%@ 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.BuildInfo" %> |
+<%@ page import="mydemo.MacTestStatus" %> |
+<%@ page import="mydemo.RegisterFeature" %> |
+<%@ page import="mydemo.PMF" %> |
+ |
+<html> |
+<Head> |
+ |
+<style type="text/css"> |
+body |
+{ |
+background-color:#d0e4fe; |
+} |
+ |
+ |
+</style> |
+<style> |
+ |
+ |
+ul#list-nav li { |
+display:inline; |
+} |
+ |
+ul#list-nav li a { |
+text-decoration:none; |
+padding:5px 5px 5px 5px; |
+background:9966ff; |
+color:#eee; |
+float:left; |
+text-align:center; |
+border-left:1px solid #fff; |
+} |
+ |
+ul#list-nav li a:hover { |
+background:9999ff; |
+color:#000 |
+} |
+ |
+ |
+</style> |
+<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)},100); |
+ } |
+} |
+ |
+// 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 dt { |
+ |
+ cursor:pointer;} |
+.dropdown dd { |
+ position:absolute; |
+ overflow:hidden; |
+ display:none; |
+ background:9966ff; |
+ z-index:1000; |
+ opacity:.5; |
+ 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> |
+ <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"> |
+ |
+<script language="JavaScript"> |
+var g_rowNo = 0; |
+function addRow(selected_val) { |
+ |
+if (selected_val == "New Build") |
+ { |
+ var div, br |
+ br = document.createElement("BR"); |
+ div = document.createElement("DIV"); |
+ text = document.createTextNode("Enter New Build Number: "); |
+ div.appendChild(text); |
+ |
+ var tbox; |
+ tbox=document.createElement('input'); |
+ tbox.type = 'text'; |
+ tbox.name = 'build_number'; |
+ div.appendChild(tbox); |
+ document.getElementById('mainForm1').insertBefore(div, document.getElementById('beforeThisRow')); |
+ } else{ |
+ var s = "/UpdateStatus-Mac.jsp?buildn=" + selected_val ; |
+ window.location= s; |
+ |
+ } |
+} |
+ |
+function showXP(){ |
+ document.getElementById('xp_status').style.display="block"; |
+ } |
+</script> |
+<div style="position:relative; width:100%; height:20px"></div> |
+ <form id='mainForm1' action="/statusmac" method="post" align=center> |
+<% |
+ PersistenceManager pm = PMF.get().getPersistenceManager(); |
+ String query = "select from " + RegisterFeature.class.getName() + " where feature_type=='Backend'"; |
+ List<RegisterFeature> reg_feature = (List<RegisterFeature>) pm.newQuery(query).execute(); |
+ List<String> select = new ArrayList<String>(); |
+ |
+ if (reg_feature.isEmpty()) { %> |
+<p>The guestbook has no messages.</p> |
+<% } |
+ |
+else { |
+ %> |
+ |
+ <br> |
+<% |
+ PersistenceManager pm1 = PMF.get().getPersistenceManager(); |
+ String query1 = "select from " + BuildInfo.class.getName(); |
+ List<BuildInfo> build_val = (List<BuildInfo>) pm1.newQuery(query1).execute(); |
+ if (build_val.isEmpty()) { %> |
+ <select name="buildn" onChange="addRow(this.options[selectedIndex].text);"> |
+<option value="Pick a build" selected>Pick a build |
+ <option value="New Build">New Build |
+ </select> |
+ |
+ <% } |
+else { |
+ %> |
+ |
+ |
+ |
+<b>Pick a build:</b> <select name="buildn" onChange="addRow(this.options[selectedIndex].text);"> |
+<% if(request.getParameter("update")!=null) { %> |
+<option value=<%= request.getParameter("update") %> selected><%= request.getParameter("update") %> |
+ <% for (BuildInfo g : build_val) { %> |
+ <option value=<%= g.getBuildNumber() %>><%= g.getBuildNumber() %> |
+ <% } %> |
+ <option value="New Build">New Build |
+ </select> |
+<% } else{%> |
+ <option value="Pick a build" selected>Pick a build |
+ <% for (BuildInfo g : build_val) { %> |
+ <option value=<%= g.getBuildNumber() %>><%= g.getBuildNumber() %> |
+ <% } %> |
+ <option value="New Build">New Build |
+ </select> |
+ |
+<% |
+} |
+ } |
+ pm1.close(); |
+%> |
+ |
+ |
+ |
+ |
+<div id='beforeThisRow'></div> |
+ |
+<table align=center><tr> |
+<td style="width:100px"><B>Pick Configurations: </b></td> |
+<td> |
+<select name="test_type_lp"> |
+<option value="Leopard">Leopard |
+<option value="Leopard-FullPass">FullPass |
+<option value="Leopard-BAT">BAT |
+</select> |
+</td> |
+<td> |
+<select name="test_type_slp"> |
+<option value="SnowLeopard">SnowLeopard |
+<option value="SnowLeopard-FullPass">FullPass |
+<option value="SnowLeopard-BAT">BAT |
+</select> |
+</td> |
+ |
+</tr> |
+ |
+<tr><td> <b> Tester Name: </b><input type='text' name="user_name"></td></tr> |
+</table> |
+<hr> |
+<br> |
+ |
+<% |
+ PersistenceManager pm_fe = PMF.get().getPersistenceManager(); |
+ String query_fe = "select from " + RegisterFeature.class.getName() + " where feature_type=='Frontend'"; |
+ List<RegisterFeature> reg_feature1 = (List<RegisterFeature>) pm_fe.newQuery(query_fe).execute(); |
+%> |
+ |
+<table align=center > |
+<tr><td><b><H3><br>Frontend Features:</H3></b></td></tr> |
+<tr class="padding"><td><b>Featurename</b></td><td align=center><b>Leopard</b></td><td align=center><b>Snow Leopard</b></td><td align=center><b>Comments/Bugs</b></td> |
+ <% for (RegisterFeature g : reg_feature1) { |
+ if (!(g.getFeatureName().equals(""))) {%> |
+ <tr class="padding"> |
+ |
+ <td> <input type="text" name="feature_name" value='<%= g.getFeatureName() %>'></td> |
+ |
+ |
+<td id="gp_status" ><select name="test_status_lp"> |
+<option value="Not Started" selected>Not Started |
+<option value="InProgress">InProgress |
+<option value="Buggy">Buggy |
+<option value="Finished">Finished |
+</select> |
+</td> |
+ |
+ |
+ |
+<td ><select name="test_status_slp"> |
+<option value="Not Started" selected>Not Started |
+<option value="InProgress">InProgress |
+<option value="Buggy">Buggy |
+<option value="Finished">Finished |
+</select> |
+</td> |
+ |
+ |
+ |
+ |
+ |
+<td><input type='text' name="notes"></td> |
+</tr> |
+ |
+<% |
+ } |
+ } |
+ pm_fe.close(); |
+%> |
+</table> |
+ |
+<table align=center > |
+<tr><td><b><H3>Backend Features:</H3></b></td></tr> |
+<tr class="padding"><td><b>Featurename</b></td><td align=center><b>Leopard</b></td><td align=center><b>Snow Leopard</b></td><td align=center><b>Comments/Bugs</b></td> |
+ <% for (RegisterFeature g : reg_feature) { |
+ if (!(g.getFeatureName().equals(""))) {%> |
+ <tr class="padding"> |
+ |
+ <td> <input type="text" name="feature_name" value='<%= g.getFeatureName() %>'></td> |
+ |
+<td id="lp_status" ><select name="test_status_lp"> |
+<option value="Not Started" selected>Not Started |
+<option value="InProgress">InProgress |
+<option value="Buggy">Buggy |
+<option value="Finished">Finished |
+</select> |
+</td> |
+ |
+<td ><select name="test_status_slp"> |
+<option value="Not Started" selected>Not Started |
+<option value="InProgress">InProgress |
+<option value="Buggy">Buggy |
+<option value="Finished">Finished |
+</select> |
+</td> |
+ |
+<td><input type='text' name="notes"></td> |
+</tr> |
+ |
+<% |
+ } |
+ } |
+ } |
+ pm.close(); |
+%> |
+</table> |
+ |
+ |
+ |
+<% |
+ PersistenceManager pm_compat = PMF.get().getPersistenceManager(); |
+ String query_compat = "select from " + RegisterFeature.class.getName() + " where feature_type=='Compat'"; |
+ List<RegisterFeature> reg_feature_compat = (List<RegisterFeature>) pm_compat.newQuery(query_compat).execute(); |
+%> |
+ |
+<table align=center > |
+<tr><td><b><H3><br>Compatibility:</H3></b></td></tr> |
+<tr class="padding"><td><b>Featurename</b></td><td align=center><b>Leopard</b></td><td align=center><b>Snow Leopard</b></td>><td align=center><b>Comments/Bugs</b></td> |
+ <% for (RegisterFeature g : reg_feature_compat) { |
+ if (!(g.getFeatureName().equals(""))) {%> |
+ <tr class="padding"> |
+ |
+ <td> <input type="text" name="feature_name" value='<%= g.getFeatureName() %>'></td> |
+ |
+ |
+<td id="lp_status" ><select name="test_status_lp"> |
+<option value="Not Started" selected>Not Started |
+<option value="InProgress">InProgress |
+<option value="Buggy">Buggy |
+<option value="Finished">Finished |
+</select> |
+</td> |
+ |
+ |
+ |
+<td ><select name="test_status_slp"> |
+<option value="Not Started" selected>Not Started |
+<option value="InProgress">InProgress |
+<option value="Buggy">Buggy |
+<option value="Finished">Finished |
+</select> |
+</td> |
+ |
+<td><input type='text' name="notes"></td> |
+</tr> |
+ |
+<% |
+ } |
+ } |
+ pm_compat.close(); |
+ |
+%> |
+</table> |
+ |
+<br> |
+<div align=center><input type="submit" value="Submit Status" /></div> |
+</form> |
+ |
+</body> |
+</html> |