symbiont 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/.travis.yml +14 -0
- data/HISTORY.md +6 -0
- data/README.md +1 -1
- data/app/Gemfile +4 -0
- data/app/app.rb +167 -0
- data/app/config/database.rb +9 -0
- data/app/models/plan.rb +10 -0
- data/app/models/product.rb +10 -0
- data/app/models/study.rb +11 -0
- data/app/models/user.rb +13 -0
- data/app/public/css/style.css +138 -0
- data/app/views/create_plan.erb +21 -0
- data/app/views/create_product.erb +15 -0
- data/app/views/create_study.erb +24 -0
- data/app/views/create_user.erb +60 -0
- data/app/views/db_plans.erb +31 -0
- data/app/views/db_products.erb +29 -0
- data/app/views/db_studies.erb +33 -0
- data/app/views/db_users.erb +23 -0
- data/app/views/entity_list.erb +10 -0
- data/app/views/index.erb +7 -0
- data/app/views/layout.erb +39 -0
- data/app/views/login_page.erb +17 -0
- data/app/views/success_1.erb +2 -0
- data/app/views/success_2.erb +2 -0
- data/app/views/test_database.erb +13 -0
- data/app/views/test_events.erb +44 -0
- data/app/views/test_page.erb +164 -0
- data/lib/symbiont.rb +3 -0
- data/lib/symbiont/enclosers.rb +17 -0
- data/lib/symbiont/evaluators.rb +17 -0
- data/lib/symbiont/platform_watir/platform_object.rb +22 -2
- data/lib/symbiont/version.rb +1 -1
- data/lib/symbiont/web_objects/_common.rb +36 -1
- data/lib/symbiont/web_objects/table.rb +9 -0
- data/lib/symbiont/web_objects/table_row.rb +9 -0
- data/spec/symbiont/enclosers_spec.rb +5 -0
- data/spec/symbiont/evaluators_spec.rb +24 -0
- data/spec/symbiont/web_object_spec.rb +60 -2
- data/spec/symbiont/web_objects/table_row_spec.rb +9 -0
- data/spec/symbiont/web_objects/table_spec.rb +8 -0
- data/specs/button.feature +2 -0
- data/specs/definitions/pages.rb +17 -0
- data/specs/evaluators.feature +5 -0
- data/specs/events.feature +19 -0
- data/specs/link.feature +2 -0
- data/specs/support/test_steps/action_steps_buttons.rb +2 -0
- data/specs/support/test_steps/action_steps_evaluators.rb +3 -0
- data/specs/support/test_steps/action_steps_events.rb +40 -0
- data/specs/support/test_steps/action_steps_links.rb +2 -0
- data/specs/support/test_steps/action_steps_navigate.rb +4 -0
- data/specs/support/test_steps/action_steps_webobjects.rb +25 -0
- data/specs/web_object.feature +11 -0
- data/symbiont.gemspec +3 -3
- metadata +47 -13
@@ -0,0 +1,24 @@
|
|
1
|
+
<section id="create_study">
|
2
|
+
<span id="navigate"><a href="entity_list">Back to List</a> | <a href="test_database">Logout</a></span></p>
|
3
|
+
<form id="studyFormID" clas="studyFormClass" name="studyFormName" method="post" action="/create_study">
|
4
|
+
<p><label id="lbl_studyName" class="Fld" for="studyName">Study Name:</label><br />
|
5
|
+
<input id="studyName" name="studyName" class="Fld" size="40" type="text"/></p>
|
6
|
+
|
7
|
+
<p><label id="lbl_studyProtocol" class="Fld" for="studyProtocol">Protocol:</label><br />
|
8
|
+
<input id="studyProtocol" name="studyProtocol" class="Fld" size="40" type="text"/></p>
|
9
|
+
|
10
|
+
<p><label id="lbl_studyProduct" class="Fld" for="studyProduct">Product:</label><br />
|
11
|
+
<select id="studyProduct" name="studyProduct">
|
12
|
+
<option value="blank"></option>
|
13
|
+
<% @products = Product.all %>
|
14
|
+
<% @products.each do |product| %>
|
15
|
+
<option value="<%= product.name %>"><%= product.name %></option>
|
16
|
+
<% end %>
|
17
|
+
</select>
|
18
|
+
|
19
|
+
<p><label id="lbl_studyPhase" class="Fld" for="studyPhase">Phase:</label><br />
|
20
|
+
<input id="studyPhase" name="studyPhase" class="Fld" size="40" type="text"/></p>
|
21
|
+
|
22
|
+
<p><input id="btnSubmit" name="btnSubmit" class="btn" type="submit" value="Create Study"></p>
|
23
|
+
</form>
|
24
|
+
</section>
|
@@ -0,0 +1,60 @@
|
|
1
|
+
<script>
|
2
|
+
function showPasswordFields() {
|
3
|
+
document.getElementById('password_area').style.display = '';
|
4
|
+
document.getElementById('SetPasswordLink').style.display = 'none';
|
5
|
+
}
|
6
|
+
|
7
|
+
function showCapabilities() {
|
8
|
+
document.getElementById('capabilities_area').style.display = '';
|
9
|
+
document.getElementById('RevealCapabilities').style.display = 'none';
|
10
|
+
}
|
11
|
+
</script>
|
12
|
+
|
13
|
+
<section id="create_user">
|
14
|
+
<span id="navigate"><a href="entity_list">Back to List</a> | <a href="test_database">Logout</a></span></p>
|
15
|
+
<form id="userFormID" class="userFormClass" name="userFormName" method="post" action="/create_user">
|
16
|
+
<p><label id="lbl_loginName" class="Fld" for="loginName">Login Name:</label><br />
|
17
|
+
<input id="loginName" name="loginName" class="Fld" size="40" type="text"/></p>
|
18
|
+
|
19
|
+
<p><label id="lbl_firstName" class="Fld" for="firstName">First Name:</label><br />
|
20
|
+
<input id="firstName" name="firstName" class="Fld" size="40" type="text"/></p>
|
21
|
+
|
22
|
+
<p><label id="lbl_lastName" class="Fld" for="lastName">Last Name:</label><br />
|
23
|
+
<input id="lastName" name="lastName" class="Fld" size="40" type="text"/></p>
|
24
|
+
|
25
|
+
<p><label id="lbl_level" class="Fld" for="level">Maximum Level:</label><br />
|
26
|
+
<select name="level" id="level" class="sel_list_class">
|
27
|
+
<option value="option1">Expert</option>
|
28
|
+
<option value="option2">Advanced</option>
|
29
|
+
<option value="option3">Basic</option>
|
30
|
+
</select>
|
31
|
+
|
32
|
+
<p id="SetPasswordLink"><a href="#" onclick="showPasswordFields();">Set Password</a></p>
|
33
|
+
|
34
|
+
<div id="password_area" style="display:none;">
|
35
|
+
<p><label id="lbl_password" class="Fld" for="password">Password:</label><br />
|
36
|
+
<input id="password" name="password" class="Fld" size="40" type="password"/></p>
|
37
|
+
<p><label id="lbl_confirmPassword" class="Fld" for="confirmPassword">Confirm Password:</label><br />
|
38
|
+
<input id="confirmPassword" name="confirmPassword" class="Fld" size="40" type="password"/></p>
|
39
|
+
</div>
|
40
|
+
|
41
|
+
<p id="RevealCapabilities"><a href="#" onclick="showCapabilities();">Save Current Information</a></p>
|
42
|
+
|
43
|
+
<div id="capabilities_area" style="display:none;">
|
44
|
+
<p><label id="lbl_role" class="Fld" for="role">Role:</label><br />
|
45
|
+
<select name="role" id="role" class="sel_list_class">
|
46
|
+
<option value="option1">Administrator</option>
|
47
|
+
<option value="option2">Clinical Administrator</option>
|
48
|
+
<option value="option3">Project Sponsor</option>
|
49
|
+
</select>
|
50
|
+
|
51
|
+
<p><strong>Additional Capabilities:</strong></p>
|
52
|
+
<input id="can_edit" name="can_edit" class="cb_class" type="checkbox" value="1"/> Can Edit Reports<br />
|
53
|
+
<input id="can_export" name="can_export" class="cb_class" type="checkbox" value="2"/> Can Export Report Data<br />
|
54
|
+
<input id="can_access_api" name="can_access_api" class="cb_class" type="checkbox" value="3"/> Can Access Web Services<br />
|
55
|
+
<input id="can_administrate" name="can_administrate" class="cb_class" type="checkbox" value="4"/> Can Administrate
|
56
|
+
</div>
|
57
|
+
|
58
|
+
<p><input id="btnSubmit" name="btnSubmit" class="btn" type="submit" value="Create User"></p>
|
59
|
+
</form>
|
60
|
+
</section>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<section id="plans">
|
2
|
+
|
3
|
+
<p><a href="create_plan">Add New Plan</a> <span id="navigate"><a href="entity_list">Back to List</a> | <a href="test_database">Logout</a></span></p>
|
4
|
+
|
5
|
+
<hr/>
|
6
|
+
|
7
|
+
<% if @plans.count > 0 %>
|
8
|
+
<table class="entity">
|
9
|
+
<caption>
|
10
|
+
<strong>Current Plans</strong>
|
11
|
+
</caption>
|
12
|
+
<thead>
|
13
|
+
<th id="planName">Plan Name</th>
|
14
|
+
<th id="planStudy">Associated Study</th>
|
15
|
+
<th id="planDescription">Plan Description</th>
|
16
|
+
</thead>
|
17
|
+
<tbody>
|
18
|
+
<% @plans.each do |plan| %>
|
19
|
+
<tr>
|
20
|
+
<td headers="planName"><%= plan.plan_name %></td>
|
21
|
+
<td headers="planStudy"><%= plan.study %></td>
|
22
|
+
<td headers="planDescription"><%= plan.plan_description %></td>
|
23
|
+
</tr>
|
24
|
+
<% end %>
|
25
|
+
</tbody>
|
26
|
+
</table>
|
27
|
+
<% else %>
|
28
|
+
<p>No plans in database.</p>
|
29
|
+
<% end %>
|
30
|
+
|
31
|
+
</section>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<section id="products">
|
2
|
+
<p><a href="create_product">Add New Product</a> <span id="navigate"><a href="entity_list">Back to List</a> | <a href="test_database">Logout</a></span></p>
|
3
|
+
|
4
|
+
<hr/>
|
5
|
+
|
6
|
+
<% if @products.length > 0 %>
|
7
|
+
<table class="entity">
|
8
|
+
<caption>
|
9
|
+
<strong>Current Products</strong>
|
10
|
+
</caption>
|
11
|
+
<thead>
|
12
|
+
<th id="productID">Product ID</th>
|
13
|
+
<th id="productName">Product Name</th>
|
14
|
+
<th id="productDescription">Product Description</th>
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<% @products.each do |product| %>
|
18
|
+
<tr>
|
19
|
+
<td headers="productID"><%= product.product_id %></td>
|
20
|
+
<td headers="productName"><%= product.name %></td>
|
21
|
+
<td headers="productDescription"><%= product.description %></td>
|
22
|
+
</tr>
|
23
|
+
<% end %>
|
24
|
+
</tbody>
|
25
|
+
</table>
|
26
|
+
<% else %>
|
27
|
+
<p>No products in database.</p>
|
28
|
+
<% end %>
|
29
|
+
</section>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<section id="studies">
|
2
|
+
|
3
|
+
<p><a href="create_study">Add New Study</a> <span id="navigate"><a href="entity_list">Back to List</a> | <a href="test_database">Logout</a></span></p>
|
4
|
+
|
5
|
+
<hr/>
|
6
|
+
|
7
|
+
<% if @studies.length > 0 %>
|
8
|
+
<table class="entity">
|
9
|
+
<caption>
|
10
|
+
<strong>Current Studies</strong>
|
11
|
+
</caption>
|
12
|
+
<thead>
|
13
|
+
<th id="studyName">Study Name</th>
|
14
|
+
<th id="studyProduct">Associated Product</th>
|
15
|
+
<th id="studyPhase">Study Phase</th>
|
16
|
+
<th id="studyProtocol">Study Protocol</th>
|
17
|
+
</thead>
|
18
|
+
<tbody>
|
19
|
+
<% @studies.each do |study| %>
|
20
|
+
<tr>
|
21
|
+
<td headers="studyName"><%= study.study_name %></td>
|
22
|
+
<td headers="studyProduct"><%= study.product %></td>
|
23
|
+
<td headers="studyPhase"><%= study.phase %></td>
|
24
|
+
<td headers="studyProtocol"><%= study.protocol %></td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
</tbody>
|
28
|
+
</table>
|
29
|
+
<% else %>
|
30
|
+
<p>No studies in database.</p>
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
</section>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<section id="users">
|
2
|
+
<p><a href="create_user">Add New User</a> <span id="navigate"><a href="entity_list">Back to List</a> | <a href="test_database">Logout</a></span></p>
|
3
|
+
|
4
|
+
<hr />
|
5
|
+
|
6
|
+
<% if @users.count > 0 %>
|
7
|
+
<table class="entity">
|
8
|
+
<thead>
|
9
|
+
<th>Current Users</th>
|
10
|
+
</thead>
|
11
|
+
<tbody>
|
12
|
+
<% @users.each do |user| %>
|
13
|
+
<tr>
|
14
|
+
<td><%= user.firstname + " " + user.lastname %></td>
|
15
|
+
<td><%= user.loginname %></td>
|
16
|
+
</tr>
|
17
|
+
<% end %>
|
18
|
+
</tbody>
|
19
|
+
</table>
|
20
|
+
<% else %>
|
21
|
+
<p>No users in database.</p>
|
22
|
+
<% end %>
|
23
|
+
</section>
|
@@ -0,0 +1,10 @@
|
|
1
|
+
<section id="entity_list">
|
2
|
+
<p>Welcome <%= params["loginName"] %>. <span id="navigate"><a href="test_database">Logout</a></span></p>
|
3
|
+
<h2>Entity List</h2>
|
4
|
+
<% if params["loginName"] == "administrator" %>
|
5
|
+
<p><a id="users" href="db_users">Users</a></p>
|
6
|
+
<% end %>
|
7
|
+
<p><a id="products" href="db_products">Products</a></p>
|
8
|
+
<p><a id="studies" href="db_studies">Studies</a></p>
|
9
|
+
<p><a id="plans" href="db_plans">Plans</a></p>
|
10
|
+
</section>
|
data/app/views/index.erb
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
<p>Choose the testing area to go to:</p>
|
2
|
+
|
3
|
+
<ul>
|
4
|
+
<li><a id="test_page" href="test_page">Simple Object Page</a></li>
|
5
|
+
<li><a id="test_events" href="test_events">Simple Events Page</a></li>
|
6
|
+
<li><a id="test_database" href="test_database">Simple Database Application</a></li>
|
7
|
+
</ul>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html dir="ltr" lang="en">
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title><%= @title + ' | Test Application' %></title>
|
6
|
+
<meta name="HandheldFriendly" content="True">
|
7
|
+
<meta name="MobileOptimized" content="320">
|
8
|
+
<meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1">
|
9
|
+
<link href="http://localhost:4567/css/style.css" media="screen" rel="stylesheet">
|
10
|
+
<!--[if lt IE 9]>
|
11
|
+
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
12
|
+
<![endif]-->
|
13
|
+
</head>
|
14
|
+
<body>
|
15
|
+
|
16
|
+
<header>
|
17
|
+
<hgroup>
|
18
|
+
<h1><a href="/">Testing Application</a></h1>
|
19
|
+
<h2>Minimal Testing Application</h2>
|
20
|
+
</hgroup>
|
21
|
+
</header>
|
22
|
+
|
23
|
+
<div id="main">
|
24
|
+
<% if flash[:notice] %>
|
25
|
+
<p class="notice"><%= flash[:notice] %></p>
|
26
|
+
<% end %>
|
27
|
+
<% if flash[:error] %>
|
28
|
+
<p class="error"><%= flash[:error] %>
|
29
|
+
<% end %>
|
30
|
+
<%= yield %>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<footer>
|
34
|
+
<p><small>An app for attaching the <a href="https://github.com/jnyman/symbiont">Symbiont</a> to.</small></p>
|
35
|
+
<p><small>Part of the <a href="https://github.com/jnyman/lucid">Lucid Framework</a>.</small></p>
|
36
|
+
</footer>
|
37
|
+
|
38
|
+
</body>
|
39
|
+
</html>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<section id="login">
|
2
|
+
<form id="loginFormID" class="loginFormClass" name="loginFormName" method="get" action="/entity_list" target="_top">
|
3
|
+
<p><label id="lbl_server" class="Fld" for="server">Server:</label><br />
|
4
|
+
<input id="serverID" name="serverName" class="Fld" size="40" type="text" value="Test"/></p>
|
5
|
+
|
6
|
+
<p><label id="lbl_clientCode" class="Fld" for="clientCode">Client ID:</label><br />
|
7
|
+
<input id="clientID" name="clientIDName" class="Fld" size="40" type="text"/></p>
|
8
|
+
|
9
|
+
<p><label id="lbl_loginName" class="Fld" for="loginName">Login Name:</label><br />
|
10
|
+
<input id="loginNameID" name="loginName" class="Fld" size="40" type="text"/></p>
|
11
|
+
|
12
|
+
<p><label id="lbl_password" class="Fld" for="password">Password:</label><br />
|
13
|
+
<input id="passwordID" name="passwordName" class="Fld" size="40" type="password"/></p>
|
14
|
+
|
15
|
+
<p><input id="btnSubmit" name="btnSubmit" class="btn" type="submit" value="Log In"></p>
|
16
|
+
</form>
|
17
|
+
</section>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<h1>Sample Database Application</h1>
|
2
|
+
|
3
|
+
<iframe style="float: left;" id="loginSection" name="loginSection" src="login_page" width="500" height="300">
|
4
|
+
</iframe>
|
5
|
+
|
6
|
+
<table>
|
7
|
+
<tr><td> </td>
|
8
|
+
<td>
|
9
|
+
<p>This is a sample login form that is within an iframe. You can sign in using any values.</p>
|
10
|
+
<p>Signing in as "administrator" will give you an extra option, which is something you can test for.</p>
|
11
|
+
</td>
|
12
|
+
</tr>
|
13
|
+
</table>
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<script type="text/javascript">
|
2
|
+
function unhide() {
|
3
|
+
document.getElementById("conditional").style.display="block";
|
4
|
+
}
|
5
|
+
|
6
|
+
function hide() {
|
7
|
+
document.getElementById("conditional").style.display="none";
|
8
|
+
}
|
9
|
+
|
10
|
+
function addDiv() {
|
11
|
+
var button = document.createElement("input");
|
12
|
+
button.setAttribute("type", "button");
|
13
|
+
button.setAttribute("value", "Newly Created Button");
|
14
|
+
button.setAttribute("id", "new_button");
|
15
|
+
//document.body.appendChild(button);
|
16
|
+
var sectional = document.getElementById("created")
|
17
|
+
sectional.appendChild(button);
|
18
|
+
}
|
19
|
+
|
20
|
+
function removeDiv() {
|
21
|
+
var button = document.getElementById("new_button");
|
22
|
+
//document.body.removeChild(button);
|
23
|
+
var sectional = document.getElementById("created")
|
24
|
+
sectional.removeChild(button);
|
25
|
+
}
|
26
|
+
</script>
|
27
|
+
|
28
|
+
<section id="test_events">
|
29
|
+
<h2>Simple Events Page</h2>
|
30
|
+
|
31
|
+
<div class="group">
|
32
|
+
<input type="button" id="conditional" value="Conditional Button"/><br /><br />
|
33
|
+
<input type="button" onclick="setTimeout(function() {hide();}, 2000);" value="Hide Button"/>
|
34
|
+
<input type="button" onclick="setTimeout(function() {unhide();}, 2000);" value="Reveal Button"/>
|
35
|
+
</div>
|
36
|
+
|
37
|
+
<div class="group">
|
38
|
+
<input type="button" onclick="setTimeout(function() {addDiv();}, 2000);" value="Create Button"/>
|
39
|
+
<input type="button" onclick="setTimeout(function() {removeDiv();}, 2000);" value="Remove Button"/>
|
40
|
+
|
41
|
+
<div id="created">
|
42
|
+
</div>
|
43
|
+
</div>
|
44
|
+
</section>
|
@@ -0,0 +1,164 @@
|
|
1
|
+
<section id="test_page">
|
2
|
+
<h2>Simple Object Page</h2>
|
3
|
+
|
4
|
+
<p>Use this page to test out logic on common web objects.</p>
|
5
|
+
|
6
|
+
<h3>Links</h3>
|
7
|
+
|
8
|
+
<div class="indent">
|
9
|
+
<p>Here is a link with more than one way to identify it.</p>
|
10
|
+
<p><a href="success_1" id="avengersID" class="avengersClass" name="avengersName">Avengers Assemble</a></p>
|
11
|
+
|
12
|
+
<p>Here are two links that are identical for index (implicit) but not link location (explicit).</p>
|
13
|
+
<p><a href="success_1">Justice League Unite</a><br />
|
14
|
+
<a href="success_2">Justice League Unite</a></p>
|
15
|
+
|
16
|
+
<p>Here is a link that has no locators.</p>
|
17
|
+
<p><a href="success_1">"in the brightest day; in the darkest night"</a></p>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<h3>Standalone Form Elements</h3>
|
21
|
+
|
22
|
+
<div class="group">
|
23
|
+
<p>Below is a regular button and a disabled button. Both buttons have a series of possible locators.</p>
|
24
|
+
|
25
|
+
<form action="success_1" method="get">
|
26
|
+
<input id="clickmeID" class="clickmeClass" name="clickmeName" type="submit" value="Click Me">
|
27
|
+
<br/>
|
28
|
+
<input id="cantclickmeID" class="cantclickmeClass" name="cantclickmeName" disabled="disabled" type="submit" value="Can't Click Me">
|
29
|
+
</form>
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<div class="group">
|
33
|
+
<p>Below is a group of related field elements. Of note, one of them is a hidden field for the ISBN.</p>
|
34
|
+
|
35
|
+
<label id="book_title"><strong>Book Title:</strong></label>
|
36
|
+
<br/>
|
37
|
+
<input id="bookTitleID" class="bookTitleClass" name="bookTitleName" size="40" type="text">
|
38
|
+
<br/>
|
39
|
+
<br/>
|
40
|
+
<label id=book_summary"><strong>Book Summary:</strong></label>
|
41
|
+
<br/>
|
42
|
+
<textarea id="bookSummaryID" class="bookSummaryClass" name="bookSummaryName" rows="2" cols="80"/></textarea>
|
43
|
+
<br/>
|
44
|
+
<input id="bookIsbnID" class="bookIsbnClass" name="bookIsbnName" size="40" type="hidden" value="0-85131-041-9">
|
45
|
+
<br/>
|
46
|
+
<label class="book_reference_id"><strong>Book Internal Reference ID (Read Only):</strong></label>
|
47
|
+
<br/>
|
48
|
+
<input id="bookRefID" class="bookRefClass" name="bookRefName" readonly="readonly" size="40" type="text" value="1123456:AF01" style="background-color: #000000; color: yellow;">
|
49
|
+
<br/>
|
50
|
+
<br/>
|
51
|
+
<label id="book_publisher_id"><strong>Book Internal Publisher ID (Disabled):</strong></label>
|
52
|
+
<br/>
|
53
|
+
<input id="bookPubID" class="bookPubClass" name="bookPubName" disabled="disabled" size="40" type="text" value="ESC:001678:FNC">
|
54
|
+
</div>
|
55
|
+
|
56
|
+
<div class="group">
|
57
|
+
<p>This grouping contains some common web objects that are placed on forms or pages to allow selections. Note that some are disabled.</p>
|
58
|
+
|
59
|
+
<p><strong>Choose Your Physics Concepts:</strong></p>
|
60
|
+
<select id="physicsConceptsID" class="physicsConceptsClass" name="physicsConceptsName">
|
61
|
+
<option value="option1">Quantum Entanglement</option>
|
62
|
+
<option value="option2">Tachyonic Antitravel</option>
|
63
|
+
<option value="option3">Bose-Einstein Condensates</option>
|
64
|
+
</select>
|
65
|
+
|
66
|
+
<p><strong>Your Favorite Sith Power (Disabled):</strong></p>
|
67
|
+
<select id="sithPowerID" class="sithPowerClass" name="sithPowerName" disabled="disabled">
|
68
|
+
<option value="option1">Force Lightning</option>
|
69
|
+
<option value="option2">Sundering Assault</option>
|
70
|
+
<option value="option3">Vicious Slash</option>
|
71
|
+
</select>
|
72
|
+
|
73
|
+
<p><strong>Choose Your Futuristic Technology:</strong></p>
|
74
|
+
<input id="camoArmorID" class="camoArmorClass" name="camoArmorName" type="checkbox" value="1">Chameleoflage Armor
|
75
|
+
<br/>
|
76
|
+
<input id="neuralShuntID" class="neuralShuntClass" name="neuralShuntName" type="checkbox" value="2">Neural Shunts
|
77
|
+
<br/>
|
78
|
+
<input id="kineticHarpoonID" class="kineticHarpoonClass" name="kineticHarpoonName" type="checkbox" value="3">Kinetic Harpoons
|
79
|
+
<br/>
|
80
|
+
<input id="organicCircuitryID" class="organicCircuitryClass" name="organicCircuitryName" type="checkbox" value="4">Organic Circuitry
|
81
|
+
<br/>
|
82
|
+
<input id="eigenstateID" class="eigenstateClass" name="eigenstateName" type="checkbox" value="5" disabled="disabled">Preferential Eigenstate Selector (Disabled)
|
83
|
+
|
84
|
+
<p><strong>Select Your Least Favorite Way To Vaporize:</strong>
|
85
|
+
<form>
|
86
|
+
<input id="mtcID" class="mtcClass" name="vaporize" type="radio" value="Multiphasic Temporal Convergence">Multiphasic Temporal Convergence
|
87
|
+
<br/>
|
88
|
+
<input id="upsID" class="upsClass" name="vaporize" type="radio" value="Unstable Phase Shift">Unstable Phase Shift
|
89
|
+
<br/>
|
90
|
+
<input id="wcbID" class="wcbClass" name="vaporize" type="radio" value="Warp Core Breach">Warp Core Breach
|
91
|
+
<br/>
|
92
|
+
<input id="cmeID" class="cmeClass" name="vaporize" type="radio" value="Coronal Mass Ejection" disabled="disabled">Coronal Mass Ejection (Disabled)
|
93
|
+
</form>
|
94
|
+
</div>
|
95
|
+
|
96
|
+
<h3>Tables</h3>
|
97
|
+
|
98
|
+
<div class="group">
|
99
|
+
<p>This first table is very simple, using just basic HTML constructs. It has only one way identify it.</p>
|
100
|
+
|
101
|
+
<table id="atomicTableID" border="1" width="400" cellpadding="3" cellspacing="3">
|
102
|
+
<tr>
|
103
|
+
<th>Element</th>
|
104
|
+
<th>Symbol</th>
|
105
|
+
<th>Atomic Number</th>
|
106
|
+
</tr>
|
107
|
+
<tr>
|
108
|
+
<td>Carbon</td>
|
109
|
+
<td>C</td>
|
110
|
+
<td>6</td>
|
111
|
+
</tr>
|
112
|
+
<tr>
|
113
|
+
<td>Molybdenum</td>
|
114
|
+
<td>Mo</td>
|
115
|
+
<td>42</td>
|
116
|
+
</tr>
|
117
|
+
<tr>
|
118
|
+
<td>Radon</td>
|
119
|
+
<td>Rn</td>
|
120
|
+
<td>86</td>
|
121
|
+
</tr>
|
122
|
+
<tr>
|
123
|
+
<td>Xenon</td>
|
124
|
+
<td>Xe</td>
|
125
|
+
<td>54</td>
|
126
|
+
</tr>
|
127
|
+
</table>
|
128
|
+
|
129
|
+
<p>This second table uses more HTML constructs. It has multiple ways to identify it.</p>
|
130
|
+
|
131
|
+
<table id="savingsTableID" name="savingsTableName" class="savingsTableClass" border='1'>
|
132
|
+
<thead>
|
133
|
+
<tr>
|
134
|
+
<th>Month</th>
|
135
|
+
<th>Savings</th>
|
136
|
+
</tr>
|
137
|
+
</thead>
|
138
|
+
<tfoot>
|
139
|
+
<tr>
|
140
|
+
<td>Sum</td>
|
141
|
+
<td>$180</td>
|
142
|
+
</tr>
|
143
|
+
</tfoot>
|
144
|
+
<tbody>
|
145
|
+
<tr>
|
146
|
+
<td>January</td>
|
147
|
+
<td id="jan_save" name="jan_save" class="cell_class">$100</td>
|
148
|
+
</tr>
|
149
|
+
<tr>
|
150
|
+
<td>February</td>
|
151
|
+
<td id="feb_save" name="feb_save" class="cell_class">$80</td>
|
152
|
+
</tr>
|
153
|
+
</tbody>
|
154
|
+
</table>
|
155
|
+
</div>
|
156
|
+
|
157
|
+
<h3>Sectional Elements (Div and Span)</h3>
|
158
|
+
|
159
|
+
<div class="group">
|
160
|
+
<div id="divTextID" name="divTextName" class="divTextClass">This text is within a div tag.</div>
|
161
|
+
<span id="spanTextID" name="spanTextName" class="spanTextClass">This text is within a span tag.</div>
|
162
|
+
</div>
|
163
|
+
|
164
|
+
</section>
|