Challenge Solution: Subtypes
Let’s take a look at the solution to the subtypes challenge.
We'll cover the following...
Solution
Let’s look at the solution code.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta charset="UTF-8"/>
<title>Plain JS Subtyping App: Manage Actors</title>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="theme-color" content="#ffffff"/>
<link rel="icon" href="favicon.svg"/>
<link rel="mask-icon" href="mask-icon.svg" color="#000000"/>
<link rel="apple-touch-icon" href="apple-touch-icon.png"/>
<link rel="manifest" href="manifest.json"/>
<link rel="stylesheet" href="css/normalize.css"/>
<link rel="stylesheet" href="css/main.css"/>
<script src="src/v/actors.mjs" type="module"></script>
</head>
<body>
<header>
<div class="wrapper clearfix">
<div class="title">
<figure><a href="index.html">
<img alt="" title="Home Button"
src="favicon.svg" /></a></figure>
<h1>Manage actor data</h1>
</div>
<nav>
<ul>
<li><a href="movies.html">Movies</a></li>
<li><a href="directors.html">Directors</a></li>
<li><a href="actors.html">Actors</a></li>
<li><a href="people.html">People</a></li>
</ul>
</nav>
</div>
</header>
<main>
<div class="wrapper clearfix">
<!-- ======================================================= -->
<section id="Actor-M" class="UI-Page">
<!-- ======================================================= -->
<h1>Manage actor data</h1>
<ul class="menu">
<li>
<button type="button" id="RetrieveAndListAll">Retrieve/list all actor records</button>
</li>
<li>
<button type="button" id="Create">Create a new actor record</button>
</li>
<li>
<button type="button" id="Update">Update an actor record</button>
</li>
<li>
<button type="button" id="Delete">Delete an actor record</button>
</li>
</ul>
<div class="button"><a href="index.html">Back to Main menu</a></div>
</section>
<!-- ======================================================= -->
<section id="Actor-R" class="UI-Page">
<!-- ======================================================= -->
<h1>List all actors</h1>
<table id="actors">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Agent</th>
</thead>
<tbody></tbody>
</table>
<div class="button">
<button type="button" class="back-to-menu">Back to menu</button>
</div>
</section>
<!-- ======================================================= -->
<section id="Actor-C" class="UI-Page">
<!-- ======================================================= -->
<h1>Create a new actor record</h1>
<form>
<div class="field">
<label>ID: <input type="text" name="personId"/></label>
</div>
<div class="field">
<label>Name: <input type="text" name="name"/></label>
</div>
<div class="field">
<label>Agent: <input type="text" name="agent"/></label>
</div>
<div class="button-group">
<button type="submit" name="commit">Save</button>
<button type="button" class="back-to-menu">Back to menu</button>
</div>
</form>
</section>
<!-- ======================================================= -->
<section id="Actor-U" class="UI-Page">
<!-- ======================================================= -->
<h1>Update an actor record</h1>
<form>
<div class="select-one">
<label>Select actor: <select name="selectActor"></select></label>
</div>
<div class="field">
<label>ID:
<output name="personId"></output>
</label>
</div>
<div class="field">
<label>Name: <input type="text" name="name"/></label>
</div>
<div class="field">
<label>Agent: <input type="text" name="agent"/></label>
</div>
<div class="button-group">
<button type="submit" name="commit">Save changes</button>
<button type="button" class="back-to-menu">Back to menu</button>
</div>
</form>
</section>
<!-- ======================================================= -->
<section id="Actor-D" class="UI-Page">
<!-- ======================================================= -->
<h1>Delete an actor record</h1>
<form>
<div class="select-one">
<label>Select actor: <select name="selectActor"></select></label>
</div>
<div class="button-group">
<button type="submit" name="commit">Delete</button>
<button type="button" class="back-to-menu">Back to menu</button>
</div>
</form>
</section>
</div>
</main>
<footer>
<div class="foot-content wrapper">
Copyright © 2021 Mina Lee (Web Applications | SS 2021),
Cyber Security, Brandenburg University of Technology, Germany.
</div>
</footer>
</body>
</html>Solution
Explanation
Let’s take a look at the explanation of the solution.
src/m/Movie.mjs
-
Line 21: Here, we define the enumeration types. ...
Ask