diff --git a/HelloWeb/build.xml b/HelloWeb/build.xml new file mode 100644 index 0000000000000000000000000000000000000000..21452eab775d5660008b4984bf8560036a951e1a --- /dev/null +++ b/HelloWeb/build.xml @@ -0,0 +1,71 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- You may freely edit this file. See commented blocks below for --> +<!-- some examples of how to customize the build. --> +<!-- (If you delete it and reopen the project it will be recreated.) --> +<!-- By default, only the Clean and Build commands use this build script. --> +<!-- Commands such as Run, Debug, and Test only use this build script if --> +<!-- the Compile on Save feature is turned off for the project. --> +<!-- You can turn off the Compile on Save (or Deploy on Save) setting --> +<!-- in the project's Project Properties dialog box.--> +<project name="HelloWeb" default="default" basedir="."> + <description>Builds, tests, and runs the project HelloWeb.</description> + <import file="nbproject/build-impl.xml"/> + <!-- + + There exist several targets which are by default empty and which can be + used for execution of your tasks. These targets are usually executed + before and after some main targets. They are: + + -pre-init: called before initialization of project properties + -post-init: called after initialization of project properties + -pre-compile: called before javac compilation + -post-compile: called after javac compilation + -pre-compile-single: called before javac compilation of single file + -post-compile-single: called after javac compilation of single file + -pre-compile-test: called before javac compilation of JUnit tests + -post-compile-test: called after javac compilation of JUnit tests + -pre-compile-test-single: called before javac compilation of single JUnit test + -post-compile-test-single: called after javac compilation of single JUunit test + -pre-dist: called before archive building + -post-dist: called after archive building + -post-clean: called after cleaning build products + -pre-run-deploy: called before deploying + -post-run-deploy: called after deploying + + Example of pluging an obfuscator after the compilation could look like + + <target name="-post-compile"> + <obfuscate> + <fileset dir="${build.classes.dir}"/> + </obfuscate> + </target> + + For list of available properties check the imported + nbproject/build-impl.xml file. + + + Other way how to customize the build is by overriding existing main targets. + The target of interest are: + + init-macrodef-javac: defines macro for javac compilation + init-macrodef-junit: defines macro for junit execution + init-macrodef-debug: defines macro for class debugging + do-dist: archive building + run: execution of project + javadoc-build: javadoc generation + + Example of overriding the target for project execution could look like + + <target name="run" depends="<PROJNAME>-impl.jar"> + <exec dir="bin" executable="launcher.exe"> + <arg file="${dist.jar}"/> + </exec> + </target> + + Notice that overridden target depends on jar target and not only on + compile target as regular run target does. Again, for list of available + properties which you can use check the target you are overriding in + nbproject/build-impl.xml file. + + --> +</project> diff --git a/HelloWeb/build/web/CompleteOrder.jsp b/HelloWeb/build/web/CompleteOrder.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a391722f4b82ca63b942d62759148061ac132c84 --- /dev/null +++ b/HelloWeb/build/web/CompleteOrder.jsp @@ -0,0 +1,60 @@ +<%-- + Document : CompleteOrder + Created on : Nov 4, 2017, 11:24:04 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + </head> + <body> + <jsp:include page="HeaderWithMenu.jsp" /> + <div class="edit-profile-header"> + Make an order + </div> + <div class="progress-container"> + <div class="progress"> + <div class="progress-num">1</div> Select Destination + </div> + <div class="progress"> + <div class="progress-num">2</div> Select a driver + </div> + <div class="progress selected"> + <div class="progress-num selected">3</div> Complete your order + </div> + </div> + <div class="edit-profile-header"> + How was it? + </div> + <form action="/order/<?php echo $this->user; ?>/completeorder/finish" method="post" name="completeorder-form"> + <div class="completeorder-container"> + <input type='hidden' name='driver' value='<?php echo $this->driver; ?>'> + <input type='hidden' name='from' value='<?php echo $this->from; ?>'> + <input type='hidden' name='dest' value='<?php echo $this->dest; ?>'> + <img class="driver-completeorder-pic" src="<?php echo $this->image; ?>" alt=""> + <div class="driver-name-disp">@<?php echo $this->driver; ?></div> + <div class="driver-fullname-disp"><?php echo $this->drivername; ?></div> + <span class="starRating"> + <input id="rating5" type="radio" name="rating" value="5"> + <label for="rating5">5</label> + <input id="rating4" type="radio" name="rating" value="4"> + <label for="rating4">4</label> + <input id="rating3" type="radio" name="rating" value="3"> + <label for="rating3">3</label> + <input id="rating2" type="radio" name="rating" value="2"> + <label for="rating2">2</label> + <input id="rating1" type="radio" name="rating" value="1"> + <label for="rating1">1</label> + </span> + <textarea cols="5" placeholder="Your comment..." name="comment"></textarea> + </div> + <div class="right-align"> + <input class="accept-button select-driver-btn completeorder-btn" type="submit" value="Complete Order"> + </div> + </form> + <jsp:include page="Footer.jsp" /> + </body> +</html> diff --git a/HelloWeb/build/web/Footer.jsp b/HelloWeb/build/web/Footer.jsp new file mode 100644 index 0000000000000000000000000000000000000000..cb71c0e72911f50c9dbe43c71bd65e1480f68104 --- /dev/null +++ b/HelloWeb/build/web/Footer.jsp @@ -0,0 +1,21 @@ +<%-- + Document : Footer + Created on : Nov 4, 2017, 11:22:37 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + <div class="footer"> + <div>Dayu <br /> 13500000</div> + <div>Marvin <br /> 1350000</div> + <div>Adrian HP <br /> 13515091</div> + </div> + </body> +</html> diff --git a/HelloWeb/build/web/Header.jsp b/HelloWeb/build/web/Header.jsp new file mode 100644 index 0000000000000000000000000000000000000000..119e70cf6571e555a0c91f2d8cd7a3725e9bf931 --- /dev/null +++ b/HelloWeb/build/web/Header.jsp @@ -0,0 +1,17 @@ +<%-- + Document : Header + Created on : Nov 4, 2017, 11:22:56 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + + </body> +</html> diff --git a/HelloWeb/build/web/HeaderWithMenu.jsp b/HelloWeb/build/web/HeaderWithMenu.jsp new file mode 100644 index 0000000000000000000000000000000000000000..78c4a75393711918b69da7a6a7906f70ea9e48aa --- /dev/null +++ b/HelloWeb/build/web/HeaderWithMenu.jsp @@ -0,0 +1,43 @@ +<%-- + Document : HeaderWithMenu + Created on : Nov 4, 2017, 11:23:12 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" href="css/profile.css"/> + <link rel="stylesheet" href="css/style.css"/> + </head> + <body> + <div> + <header class="header-box"> + <div class="col-header-left"> + <div> + <span class='logo-title'>MotoRaido</span><br /> + <span class='tagline'>Anata to issho ni noru mÅtÄ</span> + </div> + </div> + <div class="col-header-right"> + <div> + Hi, <b><?php echo $this->user; ?></b> ! + </div> + <div> + <a href="/login">Logout</a> + </div> + </div> + </header> + <div class='menu'> + <div class="menu-column"></div> + <div class="menu-column"></div> + <div class="menu-column"></div> + <div id="orderheader" class="menu-cell"><a href="/order/<?php echo $this->user; ?>" class="text-link">ORDER</a></div> + <div id="historyheader" class="menu-cell"><a href="/history/<?php echo $this->user; ?>" class="text-link">HISTORY</a></div> + <div id="profileheader" class="menu-cell"><a href="/profile/<?php echo $this->user; ?>" class="text-link">MY PROFILE</a></div> + </div> + </div> + </body> +</html> diff --git a/HelloWeb/build/web/META-INF/MANIFEST.MF b/HelloWeb/build/web/META-INF/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..59499bce4a2bd51cba227b7c00fcf745b19c95a4 --- /dev/null +++ b/HelloWeb/build/web/META-INF/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/HelloWeb/build/web/Order.jsp b/HelloWeb/build/web/Order.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2e60e67aec463f378c67bdefc5c1691c2eeff4ac --- /dev/null +++ b/HelloWeb/build/web/Order.jsp @@ -0,0 +1,52 @@ +<%-- + Document : Order + Created on : Nov 4, 2017, 11:23:35 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + </head> + <body> + <jsp:include page="HeaderWithMenu.jsp" /> + <div class="container"> + <div class="edit-profile-header"> + Make an order + </div> + <div class="progress-container"> + <div class="progress selected"> + <div class="progress-num">1</div> Select Destination + </div> + <div class="progress"> + <div class="progress-num">2</div> Select a driver + </div> + <div class="progress"> + <div class="progress-num">3</div> Complete your order + </div> + </div> + <form action="SelectDriver.jsp" method='post'> + <div class="edit-profile-btm"> + <div class="form-input"> + <label for="pick-point">Picking point</label> + <input class="ep-textarea" type="text" name="pick-point" /> + </div> + <div class="form-input"> + <label for="destination">Destination</label> + <input class="ep-textarea" type="text" name="destination" /> + </div> + <div class="form-input"> + <label for="pref-driver">Preferred Driver</label> + <input class="ep-textarea" type="text" name="pref-driver" placeholder="(Optional)"/> + </div> + <div class="right-align"> + <input class="accept-button select-driver-btn" id="save-profile" type="submit" value="Next" /> + </div> + </div> + </form> + </div> + <jsp:include page="Footer.jsp" /> + </body> +</html> diff --git a/HelloWeb/build/web/SelectDriver.jsp b/HelloWeb/build/web/SelectDriver.jsp new file mode 100644 index 0000000000000000000000000000000000000000..66883b9eab372f10232faadc29186ce462e57856 --- /dev/null +++ b/HelloWeb/build/web/SelectDriver.jsp @@ -0,0 +1,42 @@ +<%-- + Document : SelectDriver + Created on : Nov 4, 2017, 11:23:47 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + </head> + <body> + <jsp:include page="HeaderWithMenu.jsp" /> + <div class="edit-profile-header"> + Make an order + </div> + <div class="progress-container"> + <div class="progress"> + <div class="progress-num">1</div> Select Destination + </div> + <div class="progress selected"> + <div class="progress-num">2</div> Select a driver + </div> + <div class="progress"> + <div class="progress-num">3</div> Complete your order + </div> + </div> + <div id="pref-driver" class="select-driver"> + <div class= "selectdriver-header"> + Preferred Drivers: + </div> + </div> + <div id="other-driver" class="select-driver"> + <div class="selectdriver-header"> + Other Drivers: + </div> + </div> + <script src="js/selectdriver.js"></script> + <jsp:include page="Footer.jsp" /> + </body> +</html> diff --git a/HelloWeb/build/web/WEB-INF/classes/.netbeans_automatic_build b/HelloWeb/build/web/WEB-INF/classes/.netbeans_automatic_build new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/build/web/WEB-INF/classes/.netbeans_update_resources b/HelloWeb/build/web/WEB-INF/classes/.netbeans_update_resources new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/build/web/WEB-INF/classes/org/mypackage/hello/NameHandler.class b/HelloWeb/build/web/WEB-INF/classes/org/mypackage/hello/NameHandler.class new file mode 100644 index 0000000000000000000000000000000000000000..c9e8c8d051dd25f65ce84513b67d78227225a499 Binary files /dev/null and b/HelloWeb/build/web/WEB-INF/classes/org/mypackage/hello/NameHandler.class differ diff --git a/HelloWeb/build/web/css/.gitkeep b/HelloWeb/build/web/css/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/build/web/css/fonts/geo.woff2 b/HelloWeb/build/web/css/fonts/geo.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4c1d8680a68afc90ed228ae5c313f9002255b7b2 Binary files /dev/null and b/HelloWeb/build/web/css/fonts/geo.woff2 differ diff --git a/HelloWeb/build/web/css/fonts/mukta1.woff2 b/HelloWeb/build/web/css/fonts/mukta1.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..dfa6d95388c06078e73dc1ccc0df0cdd8c152c4b Binary files /dev/null and b/HelloWeb/build/web/css/fonts/mukta1.woff2 differ diff --git a/HelloWeb/build/web/css/fonts/mukta2.woff2 b/HelloWeb/build/web/css/fonts/mukta2.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ed0d8a0451ef90b479b036e337f741573dfa55bb Binary files /dev/null and b/HelloWeb/build/web/css/fonts/mukta2.woff2 differ diff --git a/HelloWeb/build/web/css/fonts/mukta3.woff2 b/HelloWeb/build/web/css/fonts/mukta3.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b6d906226264df96ac57ba02427ae5043bfd031f Binary files /dev/null and b/HelloWeb/build/web/css/fonts/mukta3.woff2 differ diff --git a/HelloWeb/build/web/css/profile.css b/HelloWeb/build/web/css/profile.css new file mode 100644 index 0000000000000000000000000000000000000000..7bf19a4f7d989ea396720a3c92bd8cb9cce368d7 --- /dev/null +++ b/HelloWeb/build/web/css/profile.css @@ -0,0 +1,154 @@ +.profile-picture { + width: 150px; + height: 150px; + border: 5px solid black; + float: left; + border-radius: 500px; + clear: both; +} + +#info-profile { + margin: 20px 0px; + height: auto; +} + +.edit-pen { + float: right; + height: 30px; + +} + +.subtitle-profile { + float: left; + width: 200px; + font-size: 2em; + font-weight: bold; + font-family: 'Mutka', sans-serif; +} + +#profile-pic-div { + margin: auto; + width: 160px; + height: 160px; +} + +#edit-pen-div { + margin: auto; + height: auto; +} + +.subtitle-cont { + margin-bottom: 20px; + height: 37px; +} + +#info-text { + margin: auto; + font-size: 1.2em; +} + +#list-info { + list-style: none; + text-align: center; + padding: 0px; +} + +#prefer-loc-title { + font-size: 1.5em; + width: 400px; +} + +.fa-star-o{ + color: red; +} + +#info-pref-text { + font-size: 1.2em; +} + +.subtitle-history { + float: left; + font-size: 2em; + font-weight: bold; + font-family: 'Mutka', sans-serif; + margin-top: 20px; +} + +.history-pic-div { + width: 120px; + height: 120px; + margin: 0px 20px; + float: left; +} + +.profile-pic-his { + width: 110px; + height: 110px; + border: 1px solid black; + float: left; +} + +.history-list { + margin-top: 20px; + list-style: none; + padding: 0px; + height: auto; +} + +.order-list { + display: none; +} + +.driver-list { + display: none; +} + +.active-list { + display:block; +} + +.comment { + margin-left: 180px; +} + +.hide{ + width: auto; + padding: 10px 15px; + border: 1px solid black; + border-radius: 10px; + background-color: red; + position: absolute; + right: 0; +} + +.his-text>span { + display: inline-block; +} + +.list-text-his { + height: auto; + position: relative; + clear: both; +} + +.date-his { + color: gray; +} + +.name-his { + font-size: 1.2em; +} + +.tab-active { + display: block; +} + +.active { + color: #ffffff; + border-color: #000000; + background-color: #5A1E83; +} + +.hide-element { + display: none; +} \ No newline at end of file diff --git a/HelloWeb/build/web/css/style.css b/HelloWeb/build/web/css/style.css new file mode 100644 index 0000000000000000000000000000000000000000..ae7bb6a41858edde4cdc42187c4481c84a4a3473 --- /dev/null +++ b/HelloWeb/build/web/css/style.css @@ -0,0 +1,628 @@ +@charset "UTF-8"; + +body { + width: 470px; + margin: auto; + font-family: 'Mutka', sans-serif; +} + +textarea { + resize: none; + width: 100%; + margin-bottom: 10px; +} + +/* Order Header */ + .progress-container { + width: fit-content; + border-collapse:separate; + border-spacing: 10px 10px; + display: table; + } + + .progress { + width: 30%; + height: 50px; + font-size: 105%; + border: 1px solid black; + text-align: left; + vertical-align: middle; + display: table-cell; + } + + .progress-num { + display:inline-block; + background-color: #DDD; + width: 35px; + height: 35px; + border-radius: 100%; + margin: 0px 5px; + line-height: 200%; + text-align: center; + vertical-align: middle; + float: left; + } + + .selected { + background-color: #FFFF44; + } + +/* Header style */ + +.header-box { + height: fit-content content-box; + width: fit-content content-box; + margin-left: auto; + margin-right: auto; + margin-top: none; + margin-bottom: none; + font-family: 'Mutka', sans-serif; + column-count: 2; + -moz-column-count: 2; + -webkit-column-count: 2; + -webkit-column-span: all; /* Chrome, Safari, Opera */ + column-span: all; + column-gap: 40px; +} + +.col-header-left { + width: 50% content-box; + float: left; + vertical-align: middle; +} + +.logo-title { + font-family: 'Geo', sans-serif; + font-weight: bold; + font-size: 250%; + color: #5A1E83; +} + +.tagline { + color: #311B92; +} + +.col-header-right { + width: 50% content-box; + float: right; + text-align: right; + vertical-align: middle; + line-height: 2; +} + +/* Menu style */ + +.menu { + width: 100%; + display: table; + table-layout: fixed; +} + +.menu > div.menu-column { + display: table-column; +} + +.menu > div.menu-cell { + display: table-cell; + font-family: 'Mukta', sans-serif; + vertical-align: middle; + line-height: 50px; + text-align: center; + font-weight: bold; + border-style: solid; + border-width: 1px; +} + +.menu > div:hover, .menu > div.selected { + color: #ffffff; + border-color: #000000; + background-color: #5A1E83; +} + +/* Footer style */ +.footer { + column-count: 3; + -moz-column-count: 3; + -webkit-column-count: 3; + -webkit-column-span: all; + column-span: all; + -moz-column-gap: 2em; + -webkit-column-gap: 2em; + column-gap: 1.5em; + column-rule-style: solid; + border-style: solid; + border-width: 2px; +} + +.footer > div { + width: fit-content content-box; + text-align: center; + font-weight: bold; + font-family: 'Mukta', sans-serif; + vertical-align: middle; +} + +.img-chooser { + padding-top: 20px; +} + +.text-link { + text-decoration: none; + font-size: 120%; + font-weight: bold; + color: black; +} + + + +/* Container */ +.container { + width: inherit; +} + +.header { + line-height: 1.5; + text-transform: uppercase; +} + +.selectdriver-header { + text-transform: uppercase; + font-weight: bold; +} + +.edit-profile-container { + font-family: Verdana; +} + +.edit-profile-header { + text-transform: uppercase; + font-weight: bold; + width: 100%; + font-size: 170%; +} + +.edit-profile-btm { + clear: both; +} + +.form-editprofile{ + margin: 5px 0; +} + +.ep-textarea{ + width: 60%; + float: right; + clear: both; +} + +.content-layout { + background-color: rgb(124, 206, 43); + padding: 50px; + border: 10px solid rgb(10, 127, 10); + border-radius: 100px; + width: 350px; +} + +.title { + height: 27px; + padding: 0px 20px; +} + +.title>div>h1 { + text-align: center; + margin-top: 0px; + width: 100px; + float: left; +} + +.title>div>hr { + float:left; + position: relative; + width: 100px; + top: 5px; + background-color: rgb(10, 127, 10); + height: 5px; + border: none; +} + +.form-layout { + clear: left; +} + +.form-input { + width: 350px; + margin-bottom: 5px; +} + +.form-input>div { + float: left; + width: 135px; +} + +.form-input>input { + width: 198px; +} + +.checked-input>input { + width: 170px; +} + +.driver-checkbox { + margin: 20px 0px; +} + +.driver-checkbox>input { + float: left; + margin-left: 0px; +} + + +.cancel-button { + width: 75px; + height: 30px; + text-align: center; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #D2002E; + border-radius: 10px; +} + +.accept-button { + width: 75px; + height: 30px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; +} + +.driver-completeorder-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; +} + +.completeorder-container { + text-align: center; + clear: both; +} + +.right-align { + width: 100%; + text-align: right; +} + +.driver-fullname-disp { + font-size: 105%; + font-weight: bold; + margin-top: 5px; +} + +/*Select driver*/ +.select-driver { + width: auto; + padding: 0 10px; + border-radius: 12px; + border: 1px solid black; + margin: 10px 0; +} + +.driver-content { + height: 120px; + overflow: hidden; +} + +.driver-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; + float: left; +} + +.driver-name-disp { + font-size: 160%; + font-weight: bold; + margin-top: 10px; +} + +.driver-rating-disp { + color: orange; + font-size: 110%; +} + +.driver-not-found { + color: grey; + height: 70px; + text-align: center; + text-transform: none; + line-height: 70px; + vertical-align: middle; +} + +.vote-disp { + color: black; +} + +.select-driver-btn { + width: auto; + color: white; + background-color: #5A1E83; + letter-spacing: 0.5px; + float: right; +} + +.order-btn { + float: none; + clear: both; +} + +#profile-pic { + width: 150px; + height: 150px; + border: 1px solid black; + float: left; + margin-right: 25px; + margin-bottom: 30px; +} + +#save-profile { + float: right; + margin-right: 120px; +} + +#register-button { + background-color: #4CAF50; + border: 5px solid rgb(10, 127, 10); + border-radius: 20px; + color: white; + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; +} + +#button-layout>div { + float: left; + width: 200px; + height: 66px; +} + +#button-layout a { + position: relative; + top: 20px; +} + + +.button-form { + text-align: right; + width: 350px; +} + +.button-form div { + float: left; +} + +.completeorder-btn { + width: 100px; + height: 50px; + float: none; +} + + /* The switch - the box around the slider */ + .switch { + position: relative; + display: inline-block; + + width: 50px; + height: 25px; +} + +/* Hide default HTML checkbox */ +.switch input {display:none;} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 19px; + width: 19px; + left: 4px; + bottom: 3px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #1E7B25; +} + +input:focus + .slider { + box-shadow: 0 0 1px #1E7B25; +} + +input:checked + .slider:before { + -webkit-transform: translateX(23px); + -ms-transform: translateX(23px); + transform: translateX(23px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +/* Menu Order */ +.menu-order { + height: 100%; + width: 100%; + position: relative; + font-size: 12px; + border-spacing: 20px 12px; +} + +.menu-order-column { + height: 100%; +} + +.menu-order-cell { + display: table-cell; + position: relative; + text-align: left; + font-weight: bold; +} + +.menu-order-number +{ + position: relative; + display: block; + width: 50px; + height: 50px; + border-radius: 25px; /* or 50% */ + text-align: center; + margin-left: auto; + margin-right: auto; + background-color: #311B92; + color: #ffffff; + line-height: 50px; +} + +.menu-order-title +{ + position: relative; + display: inline-block; +} + +#next-button-text { + line-height: 20px; + width: 75%; + padding-right: 1px; +} + +input.next-button { + width: 20%; + height: 30px; + line-height: 20px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; + display: inline-block; +} + +table, th, td { + table-layout: auto !important; + width: 100% auto !important; + max-width:100%; + white-space:nowrap; + border: 1px solid black; + border-collapse: collapse; +} + +.pref-button { + width: 21px; + height: 21px; + vertical-align: middle; + border: none; + display: inline-block; +} + +/** Rating **/ +.starRating:not(old){ + display : inline-block; + width : 7.5em; + height : 1.5em; + overflow : hidden; + vertical-align : bottom; +} + +.starRating:not(old) > input{ + margin-right : -100%; + opacity : 0; +} + +.starRating:not(old) > label{ + display : block; + float : right; + position : relative; + background : url('../img/star-off.svg'); + background-size : contain; +} + +.starRating:not(old) > label:before{ + content : ''; + display : block; + width : 1.5em; + height : 1.5em; + background : url('../img/star-on.svg'); + background-size : contain; + opacity : 0; + transition : opacity 0.2s linear; +} + +.starRating:not(old) > label:hover:before, +.starRating:not(old) > label:hover ~ label:before, +.starRating:not(:hover) > :checked ~ label:before{ + opacity : 1; +} + +/* Font customization */ +/* latin */ +@font-face { + font-family: 'Geo'; + font-style: normal; + font-weight: 400; + src: local('Geo'), local('Geo-Regular'), url(./fonts/geo.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + +/* devanagari */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; +} +/* latin-ext */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} diff --git a/HelloWeb/build/web/css/style_old.css b/HelloWeb/build/web/css/style_old.css new file mode 100644 index 0000000000000000000000000000000000000000..7ee8d5f20ad0ad8b49088c590ce18c398f09c1d8 --- /dev/null +++ b/HelloWeb/build/web/css/style_old.css @@ -0,0 +1,614 @@ +@charset "UTF-8"; + +/* Font customization */ +/* latin */ +@font-face { + font-family: 'Geo'; + font-style: normal; + font-weight: 400; + src: local('Geo'), local('Geo-Regular'), url(./fonts/geo.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + +/* devanagari */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; +} +/* latin-ext */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + +/* Body style */ + +body { + width: 470px; + margin: auto; + font-family: 'Mutka', sans-serif; +} + +textarea { + resize: none; + width: 100%; + margin-bottom: 10px; +} + +/* Order Header */ + .progress-container { + width: fit-content; + border-collapse:separate; + border-spacing: 10px 10px; + display: table; + } + + .progress { + width: 30%; + height: 50px; + font-size: 105%; + border: 1px solid black; + text-align: left; + vertical-align: middle; + display: table-cell; + } + + .progress-num { + display:inline-block; + background-color: #DDD; + width: 35px; + height: 35px; + border-radius: 100%; + margin: 0px 5px; + line-height: 200%; + text-align: center; + vertical-align: middle; + } + + .selected { + background-color: #FFFF44; + } + +/* Header style */ + +.header-box { + height: fit-content content-box; + width: fit-content content-box; + margin-left: auto; + margin-right: auto; + margin-top: none; + margin-bottom: none; + column-count: 2; + -moz-column-count: 2; + -webkit-column-count: 2; + -webkit-column-span: all; /* Chrome, Safari, Opera */ + column-span: all; + column-gap: 40px; +} + +.col-header-left { + width: 50% content-box; + float: left; + vertical-align: middle; +} + +.logo-title { + font-family: 'Geo', sans-serif; + font-weight: bold; + font-size: 250%; + color: #5A1E83; +} + +.tagline { + color: #311B92; +} + +.col-header-right { + width: 50% content-box; + float: right; + text-align: right; + vertical-align: middle; + line-height: 2; +} + +/* Menu style */ + +.menu { + width: 100%; + display: table; + table-layout: fixed; +} + +.menu > div.menu-column { + display: table-column; +} + +.menu > div.menu-cell { + display: table-cell; + font-family: 'Mukta', sans-serif; + vertical-align: middle; + line-height: 50px; + text-align: center; + font-weight: bold; + border-style: solid; + border-width: 1px; +} + +.menu-item:hover, .menu-item#selected { + color: #ffffff; + border-color: #000000; + background-color: #5A1E83; +} + +/* Footer style */ +.footer { + width: 100% fit-content; + display: inline-block; + column-count: 3; + column-span: all; + column-gap: 1.5em; + column-rule-style: solid; + border-style: solid; + border-width: 2px; + margin: auto; +} + +.footer > div { + text-align: center; + font-weight: bold; + font-family: 'Mukta', sans-serif; + vertical-align: middle; +} + +.img-chooser { + padding-top: 20px; +} + +/* Container */ +.container { + width: inherit; +} + +.header { + line-height: 1.5; + text-transform: uppercase; +} + +.selectdriver-header { + text-transform: uppercase; + font-weight: bold; +} + +.edit-profile-container { + font-family: Verdana; +} + +.edit-profile-header { + text-transform: uppercase; + font-weight: bold; + width: 100%; + font-size: 170%; +} + +.edit-profile-btm { + clear: both; +} + +.form-editprofile{ + margin: 5px 0; +} + + + +.ep-textarea{ + width: 60%; + float: right; + clear: both; +} + +.content-layout { + background-color: rgb(124, 206, 43); + padding: 50px; + border: 10px solid rgb(10, 127, 10); + border-radius: 100px; + width: 350px; +} + +.title { + height: 27px; + padding: 0px 20px; +} + +.title>div>h1 { + text-align: center; + margin-top: 0px; + width: 100px; + float: left; +} + +.title>div>hr { + float:left; + position: relative; + width: 100px; + top: 5px; + background-color: rgb(10, 127, 10); + height: 5px; + border: none; +} + +.form-layout { + clear: left; +} + +.form-input { + width: 350px; + margin-bottom: 5px; +} + +.form-input>div { + float: left; + width: 130px; +} + +.form-input>input { + width: 198px; +} + +.driver-checkbox { + margin: 20px 0px; +} + +.driver-checkbox>input { + float: left; + margin-left: 0px; +} + + +.cancel-button { + width: 75px; + height: 30px; + text-align: center; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #D2002E; + border-radius: 10px; +} + +.accept-button { + width: 75px; + height: 30px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; +} + + +.driver-completeorder-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; +} + +.completeorder-container { + text-align: center; + clear: both; +} + +.right-align { + width: 100%; + text-align: right; +} + +.driver-fullname-disp { + font-size: 105%; + font-weight: bold; + margin-top: 5px; +} + +/*Select driver*/ +.select-driver { + width: fit-content; + padding: 0 10px; + border-radius: 12px; + border: 1px solid black; + margin: 10px 0; +} + +.driver-content { + height: 120px; + overflow: hidden; +} + +.driver-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; + float: left; +} + +.driver-name-disp { + font-size: 160%; + font-weight: bold; + margin-top: 10px; +} + +.driver-rating-disp { + color: orange; + font-size: 110%; +} + +.driver-not-found { + color: grey; + height: 70px; + text-align: center; + text-transform: none; + line-height: 70px; + vertical-align: middle; +} + +.vote-disp { + color: black; +} + +.select-driver-btn { + width: auto; + color: white; + background-color: #5A1E83; + letter-spacing: 0.5px; + float: right; +} + +.order-btn { + float: none; + clear: both; +} + +#profile-pic { + width: 150px; + height: 150px; + border: 1px solid black; + float: left; + margin-right: 25px; + margin-bottom: 30px; +} + +#save-profile { + float: right; +} + +#register-button { + background-color: #4CAF50; + border: 5px solid rgb(10, 127, 10); + border-radius: 20px; + color: white; + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; +} + +#button-layout>div { + float: left; + width: 200px; + height: 66px; +} + +#button-layout a { + position: relative; + top: 20px; +} + + +.button-form { + text-align: right; + width: 100%; +} + +.button-form div { + float: left; +} + +.completeorder-btn { + width: 100px; + height: 50px; + float: none; +} + + /* The switch - the box around the slider */ + .switch { + position: relative; + display: inline-block; + + width: 50px; + height: 25px; +} + +/* Hide default HTML checkbox */ +.switch input {display:none;} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 19px; + width: 19px; + left: 4px; + bottom: 3px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #1E7B25; +} + +input:focus + .slider { + box-shadow: 0 0 1px #1E7B25; +} + +input:checked + .slider:before { + -webkit-transform: translateX(23px); + -ms-transform: translateX(23px); + transform: translateX(23px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +/* Menu Order */ +.menu-order { + height: 100%; + width: 100%; + position: relative; + font-size: 12px; + border-spacing: 20px 12px; +} + +.menu-order-column { + height: 100%; +} + +.menu-order-cell { + display: table-cell; + position: relative; + text-align: left; + font-weight: bold; +} + +.menu-order-number +{ + position: relative; + display: block; + width: 50px; + height: 50px; + border-radius: 25px; /* or 50% */ + text-align: center; + margin-left: auto; + margin-right: auto; + background-color: #311B92; + color: #ffffff; + line-height: 50px; +} + +.menu-order-title +{ + position: relative; + display: inline-block; +} + +#next-button-text { + line-height: 20px; + width: 75%; + padding-right: 1px; +} + +input.next-button { + width: 20%; + height: 30px; + line-height: 20px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; + display: inline-block; +} + +table, th, td { + table-layout: auto !important; + width: 100% auto !important; + max-width:100%; + white-space:nowrap; + border: 1px solid black; + border-collapse: collapse; +} + +.pref-button { + width: 21px; + height: 21px; + vertical-align: middle; + border: none; + display: inline-block; +} + +/** Rating **/ +.starRating:not(old){ + display : inline-block; + width : 7.5em; + height : 1.5em; + overflow : hidden; + vertical-align : bottom; +} + +.starRating:not(old) > input{ + margin-right : -100%; + opacity : 0; +} + +.starRating:not(old) > label{ + display : block; + float : right; + position : relative; + background : url('../img/star-off.svg'); + background-size : contain; +} + +.starRating:not(old) > label:before{ + content : ''; + display : block; + width : 1.5em; + height : 1.5em; + background : url('../img/star-on.svg'); + background-size : contain; + opacity : 0; + transition : opacity 0.2s linear; +} + +.starRating:not(old) > label:hover:before, +.starRating:not(old) > label:hover ~ label:before, +.starRating:not(:hover) > :checked ~ label:before{ + opacity : 1; +} diff --git a/HelloWeb/build/web/gfv3ee6.dpf b/HelloWeb/build/web/gfv3ee6.dpf new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/build/web/img/.gitkeep b/HelloWeb/build/web/img/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/build/web/img/a b/HelloWeb/build/web/img/a new file mode 100644 index 0000000000000000000000000000000000000000..33aea4c0776f5cb48d23fab288743ca549d3092e Binary files /dev/null and b/HelloWeb/build/web/img/a differ diff --git a/HelloWeb/build/web/img/admin b/HelloWeb/build/web/img/admin new file mode 100644 index 0000000000000000000000000000000000000000..dd3fea2721dfc529ad21300b36bada01e362032d Binary files /dev/null and b/HelloWeb/build/web/img/admin differ diff --git a/HelloWeb/build/web/img/delete.png b/HelloWeb/build/web/img/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..f8998a18f10f6e0e754cdf3f06794b299e90a1b9 Binary files /dev/null and b/HelloWeb/build/web/img/delete.png differ diff --git a/HelloWeb/build/web/img/driver1 b/HelloWeb/build/web/img/driver1 new file mode 100644 index 0000000000000000000000000000000000000000..8de4beb39862ac7125f2339dcb1c9b32ab7f90f8 Binary files /dev/null and b/HelloWeb/build/web/img/driver1 differ diff --git a/HelloWeb/build/web/img/edit.png b/HelloWeb/build/web/img/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..919913bc0052626f61433d69128dc17ac739450b Binary files /dev/null and b/HelloWeb/build/web/img/edit.png differ diff --git a/HelloWeb/build/web/img/images.jpg b/HelloWeb/build/web/img/images.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30b7ce2cd13386017b2fa5d56503d42e4c25ea1d Binary files /dev/null and b/HelloWeb/build/web/img/images.jpg differ diff --git a/HelloWeb/build/web/img/motaraido.png b/HelloWeb/build/web/img/motaraido.png new file mode 100644 index 0000000000000000000000000000000000000000..2b72f7e2abdd5f8ea4d11911d7c6ad9260be5262 Binary files /dev/null and b/HelloWeb/build/web/img/motaraido.png differ diff --git a/HelloWeb/build/web/img/pen.png b/HelloWeb/build/web/img/pen.png new file mode 100644 index 0000000000000000000000000000000000000000..d2bcdf9ca880be6a8d6d687245ec080d4d711240 Binary files /dev/null and b/HelloWeb/build/web/img/pen.png differ diff --git a/HelloWeb/build/web/img/profilepic.png b/HelloWeb/build/web/img/profilepic.png new file mode 100644 index 0000000000000000000000000000000000000000..2b72f7e2abdd5f8ea4d11911d7c6ad9260be5262 Binary files /dev/null and b/HelloWeb/build/web/img/profilepic.png differ diff --git a/HelloWeb/build/web/img/star-off.svg b/HelloWeb/build/web/img/star-off.svg new file mode 100644 index 0000000000000000000000000000000000000000..9a393aa40d139025bf2324aec47830757facb84a --- /dev/null +++ b/HelloWeb/build/web/img/star-off.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path fill="#fff" stroke="#ccc" d="M 12,2.5 14.4,9.5 21.5,9.5 15.8,13.75 18.5,21.5 12,16.625 5.5,21.5 8.2,13.75 2.5,9.5 9.6,9.5 z"/> +</svg> diff --git a/HelloWeb/build/web/img/star-on.svg b/HelloWeb/build/web/img/star-on.svg new file mode 100644 index 0000000000000000000000000000000000000000..fac31ff43ec2ba8dff2f36a3b0ae43d92b312533 --- /dev/null +++ b/HelloWeb/build/web/img/star-on.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path fill="#311B92" stroke="#000" d="M 12,2.5 14.4,9.5 21.5,9.5 15.8,13.75 18.5,21.5 12,16.625 5.5,21.5 8.2,13.75 2.5,9.5 9.6,9.5 z"/> +</svg> diff --git a/HelloWeb/build/web/img/tes1 b/HelloWeb/build/web/img/tes1 new file mode 100644 index 0000000000000000000000000000000000000000..7352b27d5a4202c3849d34614463b6e94eee7285 Binary files /dev/null and b/HelloWeb/build/web/img/tes1 differ diff --git a/HelloWeb/build/web/img/winarto b/HelloWeb/build/web/img/winarto new file mode 100644 index 0000000000000000000000000000000000000000..33aea4c0776f5cb48d23fab288743ca549d3092e Binary files /dev/null and b/HelloWeb/build/web/img/winarto differ diff --git a/HelloWeb/build/web/img/yowinarto b/HelloWeb/build/web/img/yowinarto new file mode 100644 index 0000000000000000000000000000000000000000..8de4beb39862ac7125f2339dcb1c9b32ab7f90f8 Binary files /dev/null and b/HelloWeb/build/web/img/yowinarto differ diff --git a/HelloWeb/build/web/index.jsp b/HelloWeb/build/web/index.jsp new file mode 100644 index 0000000000000000000000000000000000000000..22504f9267bb56b7c135ccc41f977d7940e730e0 --- /dev/null +++ b/HelloWeb/build/web/index.jsp @@ -0,0 +1,23 @@ +<%-- + Document : index + Created on : Nov 4, 2017, 9:23:05 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + <h1>Hello World!</h1> + + <form name="Name Input Form" action="Order.jsp"> + Enter Your Name: + <input type="text" name="name" value="" /> + <input type="submit" value="OK" /> + </form> + </body> +</html> diff --git a/HelloWeb/build/web/js/.gitkeep b/HelloWeb/build/web/js/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/build/web/js/app.js b/HelloWeb/build/web/js/app.js new file mode 100644 index 0000000000000000000000000000000000000000..dbea0f5c367dec9b0cb20f3b11c4ce40644838a3 --- /dev/null +++ b/HelloWeb/build/web/js/app.js @@ -0,0 +1,102 @@ +function loginValidation() { + var username = document.forms["loginform"]["username"]; + var pwd = document.forms["loginform"]["password"]; + var usrVerify = Validate(username, "empty"); + var pwdVerify = Validate(pwd, "empty"); + return (usrVerify && pwdVerify); +} + +function editProfileValidation() { + var name = document.forms["editprofile-form"]["your-name"]; + var phone = document.forms["editprofile-form"]["phone-number"]; + var nameVerify = Validate(name, "empty", 0, 20, "length"); + var phoneVerify = Validate(phone, "empty", 9, 12, "length"); + return (nameVerify && phoneVerify); +} + +function Validate(inputArea, type1, min = 0, max = 0, type2 = null, type3 = null) { + var error = GetErrorMessage(inputArea.value, type1, min, max); + if(error === "") { + if (type2 != null) { + error = GetErrorMessage(inputArea.value, type2, min, max); + console.log(type2 + "length"); + } + if (error === "") { + if (type3 != null) { + error = GetErrorMessage(inputArea.value, type3, min, max); + } + } + } + if(error !== "" && inputArea.nextElementSibling === null) { + var errorEl = document.createElement("p"); + errorEl.innerHTML = error; + errorEl.className = "error"; + insertAfterElement(errorEl, inputArea); + + inputArea.addEventListener("blur", function() { + var error = GetErrorMessage(inputArea.value, type1, min, max); + if(error === "") { + if (type2 != null) { + error = GetErrorMessage(inputArea.value, type2, min, max); + } + if (error === "") { + if (type3 != null) { + error = GetErrorMessage(inputArea.value, type3, min, max); + } + } + } + if (error === ""){ + this.nextSibling.remove(); + } + },true); + } + return (error === ""); +} + +function insertAfterElement(el, src) { + src.parentNode.insertBefore(el, src.nextSibling); +} + + +function GetErrorMessage(textArea, type, min = 0, max = 0) { + var validateText = ""; + switch(type) { + case "empty" : + if(isEmpty(textArea)) { + validateText = "Fill in the field"; + } + break; + case "email" : + if(!isEmail(textArea)) { + validatedText = "Invalid Email Address"; + } + break; + case "number" : + if(isNumber(textArea)){ + validateText = "Fill in with only number"; + } + break; + case "length" : + if (!isLengthEqual(textArea,min,max)){ + validateText = "Character must be between " + min.toString() + " and " + max.toString() + " long"; + } + break; + } + return validateText; +} + +function isEmpty(textArea) { + return (textArea.match(/^s+$/) || textArea == ""); +} + +function isNumber(textArea) { + return (!isNaN(textArea)); +} + +function isLengthEqual(textArea, min, max){ + return (textArea.length >= min && textArea.length <= max); +} + +function isEmail(textArea) { + return (textArea.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/)); +} \ No newline at end of file diff --git a/HelloWeb/build/web/js/history.js b/HelloWeb/build/web/js/history.js new file mode 100644 index 0000000000000000000000000000000000000000..4e4b3f528dfb96a699cdbb10ad6ba0b731005f5a --- /dev/null +++ b/HelloWeb/build/web/js/history.js @@ -0,0 +1,41 @@ + +function tabActive(tag) { + var tabUser = document.getElementById('user-his'); + var tabDriver = document.getElementById('driver-his'); + var order = document.getElementsByClassName('order-list'); + var driver = document.getElementsByClassName('driver-list'); + + if (tag == 'user') { + order[0].classList.add("active-list"); + driver[0].classList.remove("active-list"); + tabUser.classList.add('active'); + tabDriver.classList.remove('active'); + } + else { + driver[0].classList.add("active-list"); + order[0].classList.remove("active-list"); + tabDriver.classList.add('active'); + tabUser.classList.remove('active'); + } +} + +tabActive('user'); + +function hideThis(user) { + updateHide(user); + console.log(user[0]); +} + +function updateHide(history) +{ + var data = "user=" + history[0] + "&driver=" + history[1] + "&date=" + history[4]; + var xhr; + if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + xhr = new ActiveXObject("Microsoft.XMLHTTP"); + } + xhr.open("GET", "/history/update", true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(data); +} \ No newline at end of file diff --git a/HelloWeb/build/web/js/selectdriver.js b/HelloWeb/build/web/js/selectdriver.js new file mode 100644 index 0000000000000000000000000000000000000000..2d7b38f4833461051ad76f37a3eac112a88b0156 --- /dev/null +++ b/HelloWeb/build/web/js/selectdriver.js @@ -0,0 +1,97 @@ +var prefDriver = document.getElementById("pref-driver"); +var otherDriver = document.getElementById("other-driver"); +var driverSumRating = []; +var driverCountRating = []; +var driverNameList = []; + +for (var i = 0; i < driverArr.length; i++) { + for(var j = 0; j < ratingArr.length; j++) { + if(driverArr[i] === ratingArr[j]["usernameDriver"]){ + driverSumRating[driverArr[i]] = (driverSumRating[driverArr[i]] === undefined) ? parseFloat(ratingArr[j]["rating"]) : driverSumRating[driverArr[i]] + parseFloat(ratingArr[j]["rating"]); + driverCountRating[driverArr[i]] = (driverCountRating[driverArr[i]] === undefined) ? 1 : driverCountRating[driverArr[i]]+1; + } + } + for(var k = 0; k < driverNameArr.length; k++) { + if(driverArr[i] === driverNameArr[k]["username"]){ + driverNameList[driverArr[i]] = driverNameArr[k]["fullname"]; + break; + } + } +} + +for(var j = 0; j < ratingArr.length; j++) { + if(preferredDriver === ratingArr[j]["usernameDriver"]){ + driverSumRating[preferredDriver] = (driverSumRating[preferredDriver] === undefined) ? parseFloat(ratingArr[j]["rating"]) : driverSumRating[preferredDriver] + parseFloat(ratingArr[j]["rating"]); + driverCountRating[preferredDriver] = (driverCountRating[preferredDriver] === undefined) ? 1 : driverCountRating[preferredDriver]+1; + } +} +for(var k = 0; k < driverNameArr.length; k++) { + if(preferredDriver === driverNameArr[k]["username"]){ + driverNameList[preferredDriver] = driverNameArr[k]["fullname"]; + break; + } +} + +if(preferredDriver !== "") { + CreateDriverDisplay(prefDriver, preferredDriver); +} else { + CreateNotFoundDisplay(prefDriver); +} + +if(driverArr.length > 0) { + for (var i = 0; i < driverArr.length; i++) { + CreateDriverDisplay(otherDriver, driverArr[i]); + } +} else { + CreateNotFoundDisplay(otherDriver); +} + +function CreateDriverDisplay(driverType, driverUsrName) { + var newForm = driverType.appendChild(document.createElement("form")); + var newContainer = newForm.appendChild(document.createElement("div")); + var newImg = newContainer.appendChild(document.createElement("img")); + var newName = newContainer.appendChild(document.createElement("div")); + var newRating = newContainer.appendChild(document.createElement("div")); + var postUsrName = newContainer.appendChild(document.createElement("input")); + var newPickLoc = newContainer.appendChild(document.createElement("input")); + var newDest = newContainer.appendChild(document.createElement("input")); + var newBtn = newContainer.appendChild(document.createElement("input")); + + + var avgRating = (driverSumRating[driverUsrName]/driverCountRating[driverUsrName]).toFixed(1).toString(); + + newForm.setAttribute('method', 'post'); + newForm.setAttribute('action', '/order/' + user + '/completeorder'); + newContainer.classList.add("driver-content"); + + newImg.classList.add("driver-pic"); + newImg.setAttribute('src', '/public/img/' + driverUsrName); + + newName.classList.add("driver-name-disp"); + newName.innerHTML = driverNameList[driverUsrName]; + + newRating.classList.add("driver-rating-disp"); + newRating.innerHTML = "★" + avgRating + " <span class='vote-disp'>(" + driverCountRating[driverUsrName] + " votes)</span>"; + + postUsrName.setAttribute('type', 'hidden'); + postUsrName.setAttribute('name', 'driver-username'); + postUsrName.setAttribute('value', driverUsrName); + + newPickLoc.setAttribute('type','hidden'); + newPickLoc.setAttribute('name','pickLoc'); + newPickLoc.setAttribute('value', pickLoc); + newDest.setAttribute('type','hidden'); + newDest.setAttribute('name','dest'); + newDest.setAttribute('value', dest); + + newBtn.classList.add("accept-button"); + newBtn.classList.add("select-driver-btn"); + newBtn.setAttribute('type','submit'); + newBtn.setAttribute('value','Select Driver'); +} + +function CreateNotFoundDisplay(driverType) { + var newContainer = driverType.appendChild(document.createElement("div")); + newContainer.classList.add("driver-not-found"); + newContainer.innerHTML = "Nothing to display."; +} \ No newline at end of file diff --git a/HelloWeb/build/web/js/signup.js b/HelloWeb/build/web/js/signup.js new file mode 100644 index 0000000000000000000000000000000000000000..43a9342a95538b30e1b8bf663cf3fc0a0b62718f --- /dev/null +++ b/HelloWeb/build/web/js/signup.js @@ -0,0 +1,44 @@ +function checkData(name, element) +{ + var data = "?" + name + "=" + document.forms["signupform"][name].value; + var xhr; + if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + xhr = new ActiveXObject("Microsoft.XMLHTTP"); + } + + xhr.open("GET", "/validation" + data, true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(null); + xhr.onload = function() { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + if (xhr.responseText === 'OK') { + document.getElementById(element).innerHTML = "√"; + } else { + document.getElementById(element).innerHTML = "X"; + } + } + else { + alert('There was a problem with the request.'); + } + } + } +} + +function signupValidation() { + var username = document.forms["signupform"]["username"]; + var password = document.forms["signupform"]["password"]; + var cpassword = document.forms["signupform"]["confirm-password"]; + var email = document.forms["signupform"]["email"]; + var fullname = document.forms["signupform"]["your-name"]; + var phone = document.forms["signupform"]["phone"]; + var usrVerify = Validate(username, "empty"); + var pwdVerify = Validate(password, "empty"); + var cpwdVerify = Validate(cpassword, "empty"); + var emailVerify = Validate(email, "empty", 0, 0, "email"); + var fullnameVerify = Validate(fullname, "empty", 0, 20, "length"); + var phoneVerify = Validate(phone, "empty", 9, 12, "length"); + return (usrVerify && pwdVerify && cpwdVerify && emailVerify && fullnameVerify && phoneVerify); +} \ No newline at end of file diff --git a/HelloWeb/build/web/response.jsp b/HelloWeb/build/web/response.jsp new file mode 100644 index 0000000000000000000000000000000000000000..57974eb4eb5d11be34b125ef651ba674465e7ffb --- /dev/null +++ b/HelloWeb/build/web/response.jsp @@ -0,0 +1,19 @@ +<%-- + Document : response + Created on : Nov 4, 2017, 9:26:56 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + <jsp:useBean id="mybean" scope="session" class="org.mypackage.hello.NameHandler" /> + <jsp:setProperty name="mybean" property="name" /> + <h1>Hello, <jsp:getProperty name="mybean" property="name" />!</h1> + </body> +</html> diff --git a/HelloWeb/nbproject/ant-deploy.xml b/HelloWeb/nbproject/ant-deploy.xml new file mode 100644 index 0000000000000000000000000000000000000000..5d33e0d6e743ce97b9b63e4c37346ab71071ce70 --- /dev/null +++ b/HelloWeb/nbproject/ant-deploy.xml @@ -0,0 +1,150 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + +Copyright (c) 2008, 2016 Oracle and/or its affiliates. All rights reserved. + +Oracle and Java are registered trademarks of Oracle and/or its affiliates. +Other names may be trademarks of their respective owners. + +The contents of this file are subject to the terms of either the GNU +General Public License Version 2 only ("GPL") or the Common +Development and Distribution License("CDDL") (collectively, the +"License"). You may not use this file except in compliance with the +License. You can obtain a copy of the License at +http://www.netbeans.org/cddl-gplv2.html +or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the +specific language governing permissions and limitations under the +License. When distributing the software, include this License Header +Notice in each file and include the License file at +nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this +particular file as subject to the "Classpath" exception as provided +by Oracle in the GPL Version 2 section of the License file that +accompanied this code. If applicable, add the following below the +License Header, with the fields enclosed by brackets [] replaced by +your own identifying information: +"Portions Copyrighted [year] [name of copyright owner]" + +If you wish your version of this file to be governed by only the CDDL +or only the GPL Version 2, indicate your decision by adding +"[Contributor] elects to include this software in this distribution +under the [CDDL or GPL Version 2] license." If you do not indicate a +single choice of license, a recipient has the option to distribute +your version of this file under either the CDDL, the GPL Version 2 or +to extend the choice of license to its licensees as provided above. +However, if you add GPL Version 2 code and therefore, elected the GPL +Version 2 license, then the option applies only if the new code is +made subject to such option by the copyright holder. + +Contributor(s): +--> +<project default="-deploy-ant" basedir="."> + <target name="-init-cl-deployment-env" if="deploy.ant.enabled"> + <property file="${deploy.ant.properties.file}" /> + <available file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" property="sun.web.present"/> + <available file="${deploy.ant.docbase.dir}/WEB-INF/glassfish-web.xml" property="glassfish.web.present"/> + <available file="${deploy.ant.resource.dir}" property="has.setup"/> + <tempfile prefix="gfv3" property="gfv3.password.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! --> + <echo message="AS_ADMIN_PASSWORD=${gfv3.password}" file="${gfv3.password.file}"/> + </target> + + <target name="-parse-sun-web" depends="-init-cl-deployment-env" if="sun.web.present"> + <tempfile prefix="gfv3" property="temp.sun.web" destdir="${java.io.tmpdir}"/> + <copy file="${deploy.ant.docbase.dir}/WEB-INF/sun-web.xml" tofile="${temp.sun.web}"/> + <!-- The doctype triggers resolution which can fail --> + <replace file="${temp.sun.web}"> + <replacetoken><![CDATA[<!DOCTYPE]]></replacetoken> + <replacevalue><![CDATA[<!-- <!DOCTYPE]]></replacevalue> + </replace> + <replace file="${temp.sun.web}"> + <replacetoken><![CDATA[<sun-web-app]]></replacetoken> + <replacevalue><![CDATA[--> <sun-web-app]]></replacevalue> + </replace> + <xmlproperty file="${temp.sun.web}" validate="false"> + </xmlproperty> + <delete file="${temp.sun.web}"/> + <condition property="deploy.ant.client.url" value="${gfv3.url}${sun-web-app.context-root}" else="${gfv3.url}/${ant.project.name}"> + <isset property="sun-web-app.context-root"/> + </condition> + <condition property="deploy.context.root.argument" value="&contextroot=${sun-web-app.context-root}" else="/${ant.project.name}"> + <isset property="sun-web-app.context-root"/> + </condition> + </target> + <target name="-parse-glassfish-web" depends="-init-cl-deployment-env" if="glassfish.web.present"> + <tempfile prefix="gfv3" property="temp.gf.web" destdir="${java.io.tmpdir}"/> + <copy file="${deploy.ant.docbase.dir}/WEB-INF/glassfish-web.xml" tofile="${temp.gf.web}"/> + <!-- The doctype triggers resolution which can fail --> + <replace file="${temp.gf.web}"> + <replacetoken><![CDATA[<!DOCTYPE]]></replacetoken> + <replacevalue><![CDATA[<!-- <!DOCTYPE]]></replacevalue> + </replace> + <replace file="${temp.gf.web}"> + <replacetoken><![CDATA[<glassfish-web-app]]></replacetoken> + <replacevalue><![CDATA[--> <glassfish-web-app]]></replacevalue> + </replace> + <xmlproperty file="${temp.gf.web}" validate="false"> + </xmlproperty> + <delete file="${temp.gf.web}"/> + <condition property="deploy.ant.client.url" value="${gfv3.url}${glassfish-web-app.context-root}" else="${gfv3.url}/${ant.project.name}"> + <isset property="glassfish-web-app.context-root"/> + </condition> + <condition property="deploy.context.root.argument" value="&contextroot=${glassfish-web-app.context-root}" else="/${ant.project.name}"> + <isset property="glassfish-web-app.context-root"/> + </condition> + </target> + <target name="-no-parse-sun-web" depends="-init-cl-deployment-env" unless="sun.web.present"> + <property name="deploy.context.root.argument" value=""/> + </target> + <target name="-add-resources" depends="-init-cl-deployment-env" if="has.setup"> + <tempfile prefix="gfv3" property="gfv3.resources.dir" destdir="${java.io.tmpdir}"/> + <mkdir dir="${gfv3.resources.dir}"/> + <mkdir dir="${gfv3.resources.dir}/META-INF"/> + <copy todir="${gfv3.resources.dir}/META-INF"> + <fileset dir="${deploy.ant.resource.dir}"/> + </copy> + <jar destfile="${deploy.ant.archive}" update="true"> + <fileset dir="${gfv3.resources.dir}"/> + </jar> + <delete dir="${gfv3.resources.dir}"/> + </target> + <target name="-deploy-ant" depends="-parse-glassfish-web, -parse-sun-web, -no-parse-sun-web,-add-resources" if="deploy.ant.enabled"> + <antcall target="-deploy-without-pw"/> + <antcall target="-deploy-with-pw"/> + </target> + + <target name="-deploy-without-pw" unless="gfv3.password"> + <echo message="Deploying ${deploy.ant.archive}"/> + <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! --> + <property name="full.deploy.ant.archive" location="${deploy.ant.archive}"/> + <get src="${gfv3.admin.url}/__asadmin/deploy?path=${full.deploy.ant.archive}${deploy.context.root.argument}&force=true&name=${ant.project.name}" + dest="${gfv3.results.file}"/> + <delete file="${gfv3.results.file}"/> + </target> + <target name="-deploy-with-pw" if="gfv3.password"> + <echo message="Deploying ${deploy.ant.archive}"/> + <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! --> + <property name="full.deploy.ant.archive" location="${deploy.ant.archive}"/> + <get username="${gfv3.username}" password="${gfv3.password}" src="${gfv3.admin.url}/__asadmin/deploy?path=${full.deploy.ant.archive}${deploy.context.root.argument}&force=true&name=${ant.project.name}" + dest="${gfv3.results.file}"/> + <delete file="${gfv3.results.file}"/> + </target> + <target name="-undeploy-ant" depends="-init-cl-deployment-env" if="deploy.ant.enabled"> + <antcall target="-undeploy-without-pw"/> + <antcall target="-undeploy-with-pw"/> + </target> + + <target name="-undeploy-without-pw" unless="gfv3.password"> + <echo message="Undeploying ${deploy.ant.archive}"/> + <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! --> + <get src="${gfv3.admin.url}/__asadmin/undeploy?name=${ant.project.name}" + dest="${gfv3.results.file}"/> + <delete file="${gfv3.results.file}"/> + </target> + <target name="-undeploy-with-pw" if="gfv3.password"> + <echo message="Undeploying ${deploy.ant.archive}"/> + <tempfile prefix="gfv3" property="gfv3.results.file" destdir="${java.io.tmpdir}"/> <!-- do not forget to delete this! --> + <get username="${gfv3.username}" password="${gfv3.password}" src="${gfv3.admin.url}/__asadmin/undeploy?name=${ant.project.name}" + dest="${gfv3.results.file}"/> + <delete file="${gfv3.results.file}"/> + </target> +</project> diff --git a/HelloWeb/nbproject/build-impl.xml b/HelloWeb/nbproject/build-impl.xml new file mode 100644 index 0000000000000000000000000000000000000000..1be60313d4755e4bf7b865ce8b7594b248ea4cbb --- /dev/null +++ b/HelloWeb/nbproject/build-impl.xml @@ -0,0 +1,1441 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + *** GENERATED FROM project.xml - DO NOT EDIT *** + *** EDIT ../build.xml INSTEAD *** + + For the purpose of easier reading the script + is divided into following sections: + - initialization + - compilation + - dist + - execution + - debugging + - javadoc + - test compilation + - test execution + - test debugging + - cleanup + + --> +<project xmlns:webproject1="http://www.netbeans.org/ns/web-project/1" xmlns:webproject2="http://www.netbeans.org/ns/web-project/2" xmlns:webproject3="http://www.netbeans.org/ns/web-project/3" basedir=".." default="default" name="HelloWeb-impl"> + <import file="ant-deploy.xml"/> + <fail message="Please build using Ant 1.7.1 or higher."> + <condition> + <not> + <antversion atleast="1.7.1"/> + </not> + </condition> + </fail> + <target depends="dist,javadoc" description="Build whole project." name="default"/> + <!-- + INITIALIZATION SECTION + --> + <target name="-pre-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-pre-init" name="-init-private"> + <property file="nbproject/private/private.properties"/> + </target> + <target depends="-pre-init,-init-private" name="-init-user"> + <property file="${user.properties.file}"/> + <!-- The two properties below are usually overridden --> + <!-- by the active platform. Just a fallback. --> + <property name="default.javac.source" value="1.4"/> + <property name="default.javac.target" value="1.4"/> + </target> + <target depends="-pre-init,-init-private,-init-user" name="-init-project"> + <property file="nbproject/project.properties"/> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" if="dist.ear.dir" name="-do-ear-init"/> + <target depends="-pre-init,-init-private,-init-user,-init-project,-init-macrodef-property" name="-do-init"> + <condition property="have.tests"> + <or> + <available file="${test.src.dir}"/> + </or> + </condition> + <condition property="have.sources"> + <or> + <available file="${src.dir}"/> + </or> + </condition> + <condition property="netbeans.home+have.tests"> + <and> + <isset property="netbeans.home"/> + <isset property="have.tests"/> + </and> + </condition> + <condition property="no.javadoc.preview"> + <isfalse value="${javadoc.preview}"/> + </condition> + <property name="javac.compilerargs" value=""/> + <condition property="no.deps"> + <and> + <istrue value="${no.dependencies}"/> + </and> + </condition> + <condition property="no.dist.ear.dir"> + <not> + <isset property="dist.ear.dir"/> + </not> + </condition> + <property name="build.web.excludes" value="${build.classes.excludes}"/> + <condition property="do.compile.jsps"> + <istrue value="${compile.jsps}"/> + </condition> + <condition property="do.debug.server"> + <or> + <not> + <isset property="debug.server"/> + </not> + <istrue value="${debug.server}"/> + <and> + <not> + <istrue value="${debug.server}"/> + </not> + <not> + <istrue value="${debug.client}"/> + </not> + </and> + </or> + </condition> + <condition property="do.debug.client"> + <istrue value="${debug.client}"/> + </condition> + <condition property="do.display.browser"> + <istrue value="${display.browser}"/> + </condition> + <condition property="do.display.browser.debug.old"> + <and> + <isset property="do.display.browser"/> + <not> + <isset property="do.debug.client"/> + </not> + <not> + <isset property="browser.context"/> + </not> + </and> + </condition> + <condition property="do.display.browser.debug"> + <and> + <isset property="do.display.browser"/> + <not> + <isset property="do.debug.client"/> + </not> + <isset property="browser.context"/> + </and> + </condition> + <available file="${conf.dir}/MANIFEST.MF" property="has.custom.manifest"/> + <available file="${persistence.xml.dir}/persistence.xml" property="has.persistence.xml"/> + <condition property="do.war.package.with.custom.manifest"> + <isset property="has.custom.manifest"/> + </condition> + <condition property="do.war.package.without.custom.manifest"> + <not> + <isset property="has.custom.manifest"/> + </not> + </condition> + <condition property="do.tmp.war.package.with.custom.manifest"> + <and> + <isset property="has.custom.manifest"/> + <or> + <isfalse value="${directory.deployment.supported}"/> + <isset property="dist.ear.dir"/> + </or> + </and> + </condition> + <condition property="do.tmp.war.package.without.custom.manifest"> + <and> + <not> + <isset property="has.custom.manifest"/> + </not> + <or> + <isfalse value="${directory.deployment.supported}"/> + <isset property="dist.ear.dir"/> + </or> + </and> + </condition> + <condition property="do.tmp.war.package"> + <or> + <isfalse value="${directory.deployment.supported}"/> + <isset property="dist.ear.dir"/> + </or> + </condition> + <property name="build.meta.inf.dir" value="${build.web.dir}/META-INF"/> + <condition else="" property="application.args.param" value="${application.args}"> + <and> + <isset property="application.args"/> + <not> + <equals arg1="${application.args}" arg2="" trim="true"/> + </not> + </and> + </condition> + <property name="source.encoding" value="${file.encoding}"/> + <condition property="javadoc.encoding.used" value="${javadoc.encoding}"> + <and> + <isset property="javadoc.encoding"/> + <not> + <equals arg1="${javadoc.encoding}" arg2=""/> + </not> + </and> + </condition> + <property name="javadoc.encoding.used" value="${source.encoding}"/> + <property name="includes" value="**"/> + <property name="excludes" value=""/> + <property name="runmain.jvmargs" value=""/> + <path id="endorsed.classpath.path" path="${endorsed.classpath}"/> + <condition else="" property="endorsed.classpath.cmd.line.arg" value="-Xbootclasspath/p:'${toString:endorsed.classpath.path}'"> + <and> + <isset property="endorsed.classpath"/> + <length length="0" string="${endorsed.classpath}" when="greater"/> + </and> + </condition> + <condition else="false" property="jdkBug6558476"> + <and> + <matches pattern="1\.[56]" string="${java.specification.version}"/> + <not> + <os family="unix"/> + </not> + </and> + </condition> + <property name="javac.fork" value="${jdkBug6558476}"/> + <condition property="junit.available"> + <or> + <available classname="org.junit.Test" classpath="${run.test.classpath}"/> + <available classname="junit.framework.Test" classpath="${run.test.classpath}"/> + </or> + </condition> + <condition property="testng.available"> + <available classname="org.testng.annotations.Test" classpath="${run.test.classpath}"/> + </condition> + <condition property="junit+testng.available"> + <and> + <istrue value="${junit.available}"/> + <istrue value="${testng.available}"/> + </and> + </condition> + <condition else="testng" property="testng.mode" value="mixed"> + <istrue value="${junit+testng.available}"/> + </condition> + <condition else="" property="testng.debug.mode" value="-mixed"> + <istrue value="${junit+testng.available}"/> + </condition> + </target> + <target depends="init" name="-init-cos" unless="deploy.on.save"> + <condition property="deploy.on.save" value="true"> + <or> + <istrue value="${j2ee.deploy.on.save}"/> + <istrue value="${j2ee.compile.on.save}"/> + </or> + </condition> + </target> + <target name="-post-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init" name="-init-check"> + <fail unless="src.dir">Must set src.dir</fail> + <fail unless="test.src.dir">Must set test.src.dir</fail> + <fail unless="build.dir">Must set build.dir</fail> + <fail unless="build.web.dir">Must set build.web.dir</fail> + <fail unless="build.generated.dir">Must set build.generated.dir</fail> + <fail unless="dist.dir">Must set dist.dir</fail> + <fail unless="build.classes.dir">Must set build.classes.dir</fail> + <fail unless="dist.javadoc.dir">Must set dist.javadoc.dir</fail> + <fail unless="build.test.classes.dir">Must set build.test.classes.dir</fail> + <fail unless="build.test.results.dir">Must set build.test.results.dir</fail> + <fail unless="build.classes.excludes">Must set build.classes.excludes</fail> + <fail unless="dist.war">Must set dist.war</fail> + <condition property="missing.j2ee.server.home"> + <and> + <matches pattern="j2ee.server.home" string="${j2ee.platform.classpath}"/> + <not> + <isset property="j2ee.server.home"/> + </not> + </and> + </condition> + <fail if="missing.j2ee.server.home"> +The Java EE server classpath is not correctly set up - server home directory is missing. +Either open the project in the IDE and assign the server or setup the server classpath manually. +For example like this: + ant -Dj2ee.server.home=<app_server_installation_directory> + </fail> + <fail unless="j2ee.platform.classpath"> +The Java EE server classpath is not correctly set up. Your active server type is ${j2ee.server.type}. +Either open the project in the IDE and assign the server or setup the server classpath manually. +For example like this: + ant -Duser.properties.file=<path_to_property_file> (where you put the property "j2ee.platform.classpath" in a .properties file) +or ant -Dj2ee.platform.classpath=<server_classpath> (where no properties file is used) + </fail> + </target> + <target name="-init-macrodef-property"> + <macrodef name="property" uri="http://www.netbeans.org/ns/web-project/1"> + <attribute name="name"/> + <attribute name="value"/> + <sequential> + <property name="@{name}" value="${@{value}}"/> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-macrodef-javac-with-processors"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <mkdir dir="@{apgeneratedsrcdir}"/> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" fork="${javac.fork}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <compilerarg value="-processorpath"/> + <compilerarg path="@{processorpath}:${empty.dir}"/> + <compilerarg line="${ap.processors.internal}"/> + <compilerarg value="-s"/> + <compilerarg path="@{apgeneratedsrcdir}"/> + <compilerarg line="${ap.proc.none.internal}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-ap-cmdline-properties" name="-init-macrodef-javac-without-processors" unless="ap.supported.internal"> + <macrodef name="javac" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/> + <attribute default="${javac.processorpath}" name="processorpath"/> + <attribute default="${build.generated.sources.dir}/ap-source-output" name="apgeneratedsrcdir"/> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="${javac.debug}" name="debug"/> + <attribute default="${empty.dir}" name="gensrcdir"/> + <element name="customize" optional="true"/> + <sequential> + <property location="${build.dir}/empty" name="empty.dir"/> + <mkdir dir="${empty.dir}"/> + <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}" target="${javac.target}"> + <src> + <dirset dir="@{gensrcdir}" erroronmissingdir="false"> + <include name="*"/> + </dirset> + </src> + <classpath> + <path path="@{classpath}"/> + </classpath> + <compilerarg line="${endorsed.classpath.cmd.line.arg}"/> + <compilerarg line="${javac.compilerargs}"/> + <customize/> + </javac> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-javac-with-processors,-init-macrodef-javac-without-processors" name="-init-macrodef-javac"> + <macrodef name="depend" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${src.dir}" name="srcdir"/> + <attribute default="${build.classes.dir}" name="destdir"/> + <attribute default="${javac.classpath}:${j2ee.platform.classpath}" name="classpath"/> + <sequential> + <depend cache="${build.dir}/depcache" destdir="@{destdir}" excludes="${excludes}" includes="${includes}" srcdir="@{srcdir}"> + <classpath> + <path path="@{classpath}"/> + </classpath> + </depend> + </sequential> + </macrodef> + <macrodef name="force-recompile" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${build.classes.dir}" name="destdir"/> + <sequential> + <fail unless="javac.includes">Must set javac.includes</fail> + <pathconvert pathsep="${line.separator}" property="javac.includes.binary"> + <path> + <filelist dir="@{destdir}" files="${javac.includes}"/> + </path> + <globmapper from="*.java" to="*.class"/> + </pathconvert> + <tempfile deleteonexit="true" property="javac.includesfile.binary"/> + <echo file="${javac.includesfile.binary}" message="${javac.includes.binary}"/> + <delete> + <files includesfile="${javac.includesfile.binary}"/> + </delete> + <delete file="${javac.includesfile.binary}"/> + </sequential> + </macrodef> + </target> + <target if="${junit.available}" name="-init-macrodef-junit-init"> + <condition else="false" property="nb.junit.batch" value="true"> + <and> + <istrue value="${junit.available}"/> + <not> + <isset property="test.method"/> + </not> + </and> + </condition> + <condition else="false" property="nb.junit.single" value="true"> + <and> + <istrue value="${junit.available}"/> + <isset property="test.method"/> + </and> + </condition> + </target> + <target name="-init-test-properties"> + <property name="test.binaryincludes" value="<nothing>"/> + <property name="test.binarytestincludes" value=""/> + <property name="test.binaryexcludes" value=""/> + </target> + <target if="${nb.junit.single}" name="-init-macrodef-junit-single" unless="${nb.junit.batch}"> + <macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${java.io.tmpdir}"> + <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg value="-ea"/> + <customize/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-batch" unless="${nb.junit.single}"> + <macrodef name="junit" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <property name="run.jvmargs.ide" value=""/> + <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}"> + <batchtest todir="${build.test.results.dir}"> + <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> + <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> + <filename name="${test.binarytestincludes}"/> + </fileset> + </batchtest> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg value="-ea"/> + <jvmarg line="${run.jvmargs.ide}"/> + <customize/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit-init,-init-macrodef-junit-single, -init-macrodef-junit-batch" if="${junit.available}" name="-init-macrodef-junit"/> + <target if="${testng.available}" name="-init-macrodef-testng"> + <macrodef name="testng" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <condition else="" property="testng.methods.arg" value="@{testincludes}.@{testmethods}"> + <isset property="test.method"/> + </condition> + <union id="test.set"> + <fileset dir="${test.src.dir}" excludes="@{excludes},**/*.xml,${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> + </union> + <taskdef classname="org.testng.TestNGAntTask" classpath="${run.test.classpath}" name="testng"/> + <testng classfilesetref="test.set" failureProperty="tests.failed" listeners="org.testng.reporters.VerboseReporter" methods="${testng.methods.arg}" mode="${testng.mode}" outputdir="${build.test.results.dir}" suitename="HelloWeb" testname="TestNG tests" workingDir="${basedir}"> + <xmlfileset dir="${build.test.classes.dir}" includes="@{testincludes}"/> + <propertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </propertyset> + <customize/> + </testng> + </sequential> + </macrodef> + </target> + <target name="-init-macrodef-test-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <echo>No tests executed.</echo> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit" if="${junit.available}" name="-init-macrodef-junit-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <webproject2:junit excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize/> + </webproject2:junit> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng" if="${testng.available}" name="-init-macrodef-testng-impl"> + <macrodef name="test-impl" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <webproject2:testng excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize/> + </webproject2:testng> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-test-impl,-init-macrodef-junit-impl,-init-macrodef-testng-impl" name="-init-macrodef-test"> + <macrodef name="test" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <sequential> + <webproject2:test-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize> + <classpath> + <path path="${run.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}"/> + </classpath> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg line="${runmain.jvmargs}"/> + </customize> + </webproject2:test-impl> + </sequential> + </macrodef> + </target> + <target if="${junit.available}" name="-init-macrodef-junit-debug" unless="${nb.junit.batch}"> + <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${java.io.tmpdir}"> + <test methods="@{testmethods}" name="@{testincludes}" todir="${build.test.results.dir}"/> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg value="-ea"/> + <jvmarg line="${debug-args-line}"/> + <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> + <customize/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-test-properties" if="${nb.junit.batch}" name="-init-macrodef-junit-debug-batch"> + <macrodef name="junit-debug" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element name="customize" optional="true"/> + <sequential> + <property name="run.jvmargs.ide" value=""/> + <junit dir="${basedir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true" tempdir="${build.dir}"> + <batchtest todir="${build.test.results.dir}"> + <fileset dir="${test.src.dir}" excludes="@{excludes},${excludes}" includes="@{includes}"> + <filename name="@{testincludes}"/> + </fileset> + <fileset dir="${build.test.classes.dir}" excludes="@{excludes},${excludes},${test.binaryexcludes}" includes="${test.binaryincludes}"> + <filename name="${test.binarytestincludes}"/> + </fileset> + </batchtest> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + <jvmarg value="-ea"/> + <jvmarg line="${run.jvmargs.ide}"/> + <jvmarg line="${debug-args-line}"/> + <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> + <customize/> + </junit> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit-debug,-init-macrodef-junit-debug-batch" if="${junit.available}" name="-init-macrodef-junit-debug-impl"> + <macrodef name="test-debug-impl" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <element implicit="true" name="customize" optional="true"/> + <sequential> + <webproject2:junit-debug excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize/> + </webproject2:junit-debug> + </sequential> + </macrodef> + </target> + <target if="${testng.available}" name="-init-macrodef-testng-debug"> + <macrodef name="testng-debug" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <element name="customize2" optional="true"/> + <sequential> + <condition else="-testclass @{testClass}" property="test.class.or.method" value="-methods @{testClass}.@{testMethod}"> + <isset property="test.method"/> + </condition> + <condition else="-suitename HelloWeb -testname @{testClass} ${test.class.or.method}" property="testng.cmd.args" value="@{testClass}"> + <matches pattern=".*\.xml" string="@{testClass}"/> + </condition> + <delete dir="${build.test.results.dir}" quiet="true"/> + <mkdir dir="${build.test.results.dir}"/> + <webproject1:debug args="${testng.cmd.args}" classname="org.testng.TestNG" classpath="${debug.test.classpath}:${j2ee.platform.embeddableejb.classpath}"> + <customize> + <customize2/> + <jvmarg value="-ea"/> + <arg line="${testng.debug.mode}"/> + <arg line="-d ${build.test.results.dir}"/> + <arg line="-listener org.testng.reporters.VerboseReporter"/> + </customize> + </webproject1:debug> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng-debug" if="${testng.available}" name="-init-macrodef-testng-debug-impl"> + <macrodef name="testng-debug-impl" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <element implicit="true" name="customize2" optional="true"/> + <sequential> + <webproject2:testng-debug testClass="@{testClass}" testMethod="@{testMethod}"> + <customize2/> + </webproject2:testng-debug> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-junit-debug-impl" if="${junit.available}" name="-init-macrodef-test-debug-junit"> + <macrodef name="test-debug" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <sequential> + <webproject2:test-debug-impl excludes="@{excludes}" includes="@{includes}" testincludes="@{testincludes}" testmethods="@{testmethods}"> + <customize> + <classpath> + <path path="${run.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}"/> + </classpath> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg line="${runmain.jvmargs}"/> + </customize> + </webproject2:test-debug-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-testng-debug-impl" if="${testng.available}" name="-init-macrodef-test-debug-testng"> + <macrodef name="test-debug" uri="http://www.netbeans.org/ns/web-project/2"> + <attribute default="${includes}" name="includes"/> + <attribute default="${excludes}" name="excludes"/> + <attribute default="**" name="testincludes"/> + <attribute default="" name="testmethods"/> + <attribute default="${main.class}" name="testClass"/> + <attribute default="" name="testMethod"/> + <sequential> + <webproject2:testng-debug-impl testClass="@{testClass}" testMethod="@{testMethod}"> + <customize2> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + </customize2> + </webproject2:testng-debug-impl> + </sequential> + </macrodef> + </target> + <target depends="-init-macrodef-test-debug-junit,-init-macrodef-test-debug-testng" name="-init-macrodef-test-debug"/> + <target name="-init-macrodef-java"> + <macrodef name="java" uri="http://www.netbeans.org/ns/web-project/1"> + <attribute default="${main.class}" name="classname"/> + <attribute default="${debug.classpath}" name="classpath"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" fork="true"> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg line="${runmain.jvmargs}"/> + <classpath> + <path path="@{classpath}:${j2ee.platform.classpath}"/> + </classpath> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target name="-init-macrodef-nbjsdebug"> + <macrodef name="nbjsdebugstart" uri="http://www.netbeans.org/ns/web-project/1"> + <attribute default="${client.url}" name="webUrl"/> + <sequential> + <nbjsdebugstart urlPart="${client.urlPart}" webUrl="@{webUrl}"/> + </sequential> + </macrodef> + </target> + <target depends="-init-debug-args" name="-init-macrodef-nbjpda"> + <macrodef name="nbjpdastart" uri="http://www.netbeans.org/ns/web-project/1"> + <attribute default="${main.class}" name="name"/> + <attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/> + <sequential> + <nbjpdastart addressproperty="jpda.address" name="@{name}" transport="${debug-transport}"> + <classpath> + <path path="@{classpath}"/> + </classpath> + </nbjpdastart> + </sequential> + </macrodef> + <macrodef name="nbjpdareload" uri="http://www.netbeans.org/ns/web-project/1"> + <attribute default="${build.classes.dir}" name="dir"/> + <sequential> + <nbjpdareload> + <fileset dir="@{dir}" includes="${fix.classes}"> + <include name="${fix.includes}*.class"/> + </fileset> + </nbjpdareload> + </sequential> + </macrodef> + <macrodef name="nbjpdaappreloaded" uri="http://www.netbeans.org/ns/web-project/1"> + <sequential> + <nbjpdaappreloaded/> + </sequential> + </macrodef> + </target> + <target name="-init-debug-args"> + <property name="version-output" value="java version "${ant.java.version}"/> + <condition property="have-jdk-older-than-1.4"> + <or> + <contains string="${version-output}" substring="java version "1.0"/> + <contains string="${version-output}" substring="java version "1.1"/> + <contains string="${version-output}" substring="java version "1.2"/> + <contains string="${version-output}" substring="java version "1.3"/> + </or> + </condition> + <condition else="-Xdebug" property="debug-args-line" value="-Xdebug -Xnoagent -Djava.compiler=none"> + <istrue value="${have-jdk-older-than-1.4}"/> + </condition> + <condition else="dt_socket" property="debug-transport-by-os" value="dt_shmem"> + <os family="windows"/> + </condition> + <condition else="${debug-transport-by-os}" property="debug-transport" value="${debug.transport}"> + <isset property="debug.transport"/> + </condition> + </target> + <target depends="-init-debug-args" name="-init-macrodef-debug"> + <macrodef name="debug" uri="http://www.netbeans.org/ns/web-project/1"> + <attribute default="${main.class}" name="classname"/> + <attribute default="${debug.classpath}:${j2ee.platform.classpath}" name="classpath"/> + <attribute default="${application.args.param}" name="args"/> + <element name="customize" optional="true"/> + <sequential> + <java classname="@{classname}" fork="true"> + <jvmarg line="${endorsed.classpath.cmd.line.arg}"/> + <jvmarg line="${debug-args-line}"/> + <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> + <jvmarg line="${runmain.jvmargs}"/> + <classpath> + <path path="@{classpath}"/> + </classpath> + <syspropertyset> + <propertyref prefix="run-sys-prop."/> + <mapper from="run-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <arg line="@{args}"/> + <customize/> + </java> + </sequential> + </macrodef> + </target> + <target name="-init-taskdefs"> + <fail unless="libs.CopyLibs.classpath"> +The libs.CopyLibs.classpath property is not set up. +This property must point to +org-netbeans-modules-java-j2seproject-copylibstask.jar file which is part +of NetBeans IDE installation and is usually located at +<netbeans_installation>/java<version>/ant/extra folder. +Either open the project in the IDE and make sure CopyLibs library +exists or setup the property manually. For example like this: + ant -Dlibs.CopyLibs.classpath=a/path/to/org-netbeans-modules-java-j2seproject-copylibstask.jar + </fail> + <taskdef classpath="${libs.CopyLibs.classpath}" resource="org/netbeans/modules/java/j2seproject/copylibstask/antlib.xml"/> + </target> + <target name="-init-ap-cmdline-properties"> + <property name="annotation.processing.enabled" value="true"/> + <property name="annotation.processing.processors.list" value=""/> + <property name="annotation.processing.run.all.processors" value="true"/> + <property name="javac.processorpath" value="${javac.classpath}"/> + <property name="javac.test.processorpath" value="${javac.test.classpath}"/> + <condition property="ap.supported.internal" value="true"> + <not> + <matches pattern="1\.[0-5](\..*)?" string="${javac.source}"/> + </not> + </condition> + </target> + <target depends="-init-ap-cmdline-properties" if="ap.supported.internal" name="-init-ap-cmdline-supported"> + <condition else="" property="ap.processors.internal" value="-processor ${annotation.processing.processors.list}"> + <isfalse value="${annotation.processing.run.all.processors}"/> + </condition> + <condition else="" property="ap.proc.none.internal" value="-proc:none"> + <isfalse value="${annotation.processing.enabled}"/> + </condition> + </target> + <target depends="-init-ap-cmdline-properties,-init-ap-cmdline-supported" name="-init-ap-cmdline"> + <property name="ap.cmd.line.internal" value=""/> + </target> + <!-- + pre NB7.2 profiling section; consider it deprecated + --> + <target depends="-profile-pre-init, init, -profile-post-init, -profile-init-check" if="profiler.info.jvmargs.agent" name="profile-init"/> + <target if="profiler.info.jvmargs.agent" name="-profile-pre-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target if="profiler.info.jvmargs.agent" name="-profile-post-init"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="-profile-pre-init, init, -profile-post-init" if="profiler.info.jvmargs.agent" name="-profile-init-check"> + <fail unless="profiler.info.jvm">Must set JVM to use for profiling in profiler.info.jvm</fail> + <fail unless="profiler.info.jvmargs.agent">Must set profiler agent JVM arguments in profiler.info.jvmargs.agent</fail> + </target> + <!-- + end of pre NB7.2 profiling section + --> + <target depends="-pre-init,-init-private,-init-user,-init-project,-do-init,-post-init,-init-check,-init-macrodef-property,-init-macrodef-javac,-init-macrodef-test,-init-macrodef-test-debug,-init-macrodef-java,-init-macrodef-nbjpda,-init-macrodef-nbjsdebug,-init-macrodef-debug,-init-taskdefs,-init-ap-cmdline" name="init"/> + <!-- + COMPILATION SECTION + --> + <target depends="init" if="no.dist.ear.dir" name="deps-module-jar" unless="no.deps"/> + <target depends="init" if="dist.ear.dir" name="deps-ear-jar" unless="no.deps"/> + <target depends="init, deps-module-jar, deps-ear-jar" name="deps-jar" unless="no.deps"/> + <target depends="init,deps-jar" name="-pre-pre-compile"> + <mkdir dir="${build.classes.dir}"/> + </target> + <target name="-pre-compile"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target name="-copy-webdir"> + <copy todir="${build.web.dir}"> + <fileset dir="${web.docbase.dir}" excludes="${build.web.excludes},${excludes}" includes="${includes}"/> + </copy> + <copy todir="${build.web.dir}/WEB-INF"> + <fileset dir="${webinf.dir}" excludes="${build.web.excludes}"/> + </copy> + </target> + <target depends="init, deps-jar, -pre-pre-compile, -pre-compile, -copy-manifest, -copy-persistence-xml, -copy-webdir, library-inclusion-in-archive,library-inclusion-in-manifest" if="have.sources" name="-do-compile"> + <webproject2:javac destdir="${build.classes.dir}" gensrcdir="${build.generated.sources.dir}"/> + <copy todir="${build.classes.dir}"> + <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target if="has.custom.manifest" name="-copy-manifest"> + <mkdir dir="${build.meta.inf.dir}"/> + <copy todir="${build.meta.inf.dir}"> + <fileset dir="${conf.dir}" includes="MANIFEST.MF"/> + </copy> + </target> + <target if="has.persistence.xml" name="-copy-persistence-xml"> + <mkdir dir="${build.web.dir}/WEB-INF/classes/META-INF"/> + <copy todir="${build.web.dir}/WEB-INF/classes/META-INF"> + <fileset dir="${persistence.xml.dir}" includes="persistence.xml orm.xml"/> + </copy> + </target> + <target name="-post-compile"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-do-compile,-post-compile" description="Compile project." name="compile"/> + <target name="-pre-compile-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <webproject2:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}"/> + <copy todir="${build.classes.dir}"> + <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target name="-post-compile-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,deps-jar,-pre-pre-compile,-pre-compile-single,-do-compile-single,-post-compile-single" name="compile-single"/> + <property name="jspc.schemas" value="/resources/schemas/"/> + <property name="jspc.dtds" value="/resources/dtds/"/> + <target depends="compile" description="Test compile JSP pages to expose compilation errors." if="do.compile.jsps" name="compile-jsps"> + <mkdir dir="${build.generated.dir}/src"/> + <java classname="org.netbeans.modules.web.project.ant.JspC" failonerror="true" fork="true"> + <arg value="-uriroot"/> + <arg file="${basedir}/${build.web.dir}"/> + <arg value="-d"/> + <arg file="${basedir}/${build.generated.dir}/src"/> + <arg value="-die1"/> + <arg value="-schemas ${jspc.schemas}"/> + <arg value="-dtds ${jspc.dtds}"/> + <arg value="-compilerSourceVM ${javac.source}"/> + <arg value="-compilerTargetVM ${javac.target}"/> + <arg value="-javaEncoding ${source.encoding}"/> + <arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/> + <classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/> + </java> + <mkdir dir="${build.generated.dir}/classes"/> + <webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src"/> + </target> + <target depends="compile" if="jsp.includes" name="-do-compile-single-jsp"> + <fail unless="javac.jsp.includes">Must select some files in the IDE or set javac.jsp.includes</fail> + <mkdir dir="${build.generated.dir}/src"/> + <java classname="org.netbeans.modules.web.project.ant.JspCSingle" failonerror="true" fork="true"> + <arg value="-uriroot"/> + <arg file="${basedir}/${build.web.dir}"/> + <arg value="-d"/> + <arg file="${basedir}/${build.generated.dir}/src"/> + <arg value="-die1"/> + <arg value="-schemas ${jspc.schemas}"/> + <arg value="-dtds ${jspc.dtds}"/> + <arg value="-sysClasspath ${libs.jsp-compilation-syscp.classpath}"/> + <arg value="-jspc.files"/> + <arg path="${jsp.includes}"/> + <arg value="-compilerSourceVM ${javac.source}"/> + <arg value="-compilerTargetVM ${javac.target}"/> + <arg value="-javaEncoding ${source.encoding}"/> + <classpath path="${java.home}/../lib/tools.jar:${libs.jsp-compiler.classpath}:${libs.jsp-compilation.classpath}"/> + </java> + <mkdir dir="${build.generated.dir}/classes"/> + <webproject2:javac classpath="${build.classes.dir}:${libs.jsp-compilation.classpath}:${javac.classpath}:${j2ee.platform.classpath}" destdir="${build.generated.dir}/classes" srcdir="${build.generated.dir}/src"> + <customize> + <patternset includes="${javac.jsp.includes}"/> + </customize> + </webproject2:javac> + </target> + <target name="compile-single-jsp"> + <fail unless="jsp.includes">Must select a file in the IDE or set jsp.includes</fail> + <antcall target="-do-compile-single-jsp"/> + </target> + <!-- + DIST BUILDING SECTION + --> + <target name="-pre-dist"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.without.custom.manifest" name="-do-dist-without-manifest"> + <dirname file="${dist.war}" property="dist.jar.dir"/> + <mkdir dir="${dist.jar.dir}"/> + <jar compress="${jar.compress}" jarfile="${dist.war}"> + <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/> + </jar> + </target> + <target depends="init,compile,compile-jsps,-pre-dist" if="do.war.package.with.custom.manifest" name="-do-dist-with-manifest"> + <dirname file="${dist.war}" property="dist.jar.dir"/> + <mkdir dir="${dist.jar.dir}"/> + <jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF"> + <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/> + </jar> + </target> + <target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.without.custom.manifest" name="-do-tmp-dist-without-manifest"> + <dirname file="${dist.war}" property="dist.jar.dir"/> + <mkdir dir="${dist.jar.dir}"/> + <jar compress="${jar.compress}" jarfile="${dist.war}"> + <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/> + </jar> + </target> + <target depends="init,compile,compile-jsps,-pre-dist" if="do.tmp.war.package.with.custom.manifest" name="-do-tmp-dist-with-manifest"> + <dirname file="${dist.war}" property="dist.jar.dir"/> + <mkdir dir="${dist.jar.dir}"/> + <jar compress="${jar.compress}" jarfile="${dist.war}" manifest="${build.meta.inf.dir}/MANIFEST.MF"> + <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/> + </jar> + </target> + <target depends="init,compile,compile-jsps,-pre-dist,-do-dist-with-manifest,-do-dist-without-manifest" name="do-dist"/> + <target depends="init" if="dist.ear.dir" name="library-inclusion-in-manifest"> + <mkdir dir="${build.web.dir}/META-INF"/> + <manifest file="${build.web.dir}/META-INF/MANIFEST.MF" mode="update"/> + </target> + <target depends="init" name="library-inclusion-in-archive" unless="dist.ear.dir"/> + <target depends="init" if="dist.ear.dir" name="-clean-webinf-lib"> + <delete dir="${build.web.dir}/WEB-INF/lib"/> + </target> + <target depends="init,-clean-webinf-lib,compile,compile-jsps,-pre-dist,library-inclusion-in-manifest" if="do.tmp.war.package" name="do-ear-dist"> + <dirname file="${dist.ear.war}" property="dist.jar.dir"/> + <mkdir dir="${dist.jar.dir}"/> + <jar compress="${jar.compress}" jarfile="${dist.ear.war}" manifest="${build.web.dir}/META-INF/MANIFEST.MF"> + <fileset dir="${build.web.dir}" excludes="WEB-INF/classes/.netbeans_*,${dist.archive.excludes}"/> + </jar> + </target> + <target name="-post-dist"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-dist,do-dist,-post-dist" description="Build distribution (WAR)." name="dist"/> + <target depends="init,-clean-webinf-lib,-init-cos,compile,-pre-dist,do-ear-dist,-post-dist" description="Build distribution (WAR) to be packaged into an EAR." name="dist-ear"/> + <!-- + EXECUTION SECTION + --> + <target depends="run-deploy,run-display-browser" description="Deploy to server and show in browser." name="run"/> + <target name="-pre-run-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target name="-post-run-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target name="-pre-nbmodule-run-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -pre-run-deploy task instead. --> + </target> + <target name="-post-nbmodule-run-deploy"> + <!-- Empty placeholder for easier customization. --> + <!-- This target can be overriden by NetBeans modules. Don't override it directly, use -post-run-deploy task instead. --> + </target> + <target name="-run-deploy-am"> + <!-- Task to deploy to the Access Manager runtime. --> + </target> + <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest,-pre-run-deploy,-pre-nbmodule-run-deploy,-run-deploy-nb,-init-deploy-ant,-deploy-ant,-run-deploy-am,-post-nbmodule-run-deploy,-post-run-deploy,-do-update-breakpoints" name="run-deploy"/> + <target if="netbeans.home" name="-run-deploy-nb"> + <nbdeploy clientUrlPart="${client.urlPart}" debugmode="false" forceRedeploy="${forceRedeploy}"/> + </target> + <target name="-init-deploy-ant" unless="netbeans.home"> + <property name="deploy.ant.archive" value="${dist.war}"/> + <property name="deploy.ant.docbase.dir" value="${web.docbase.dir}"/> + <property name="deploy.ant.resource.dir" value="${resource.dir}"/> + <property name="deploy.ant.enabled" value="true"/> + </target> + <target depends="dist,-run-undeploy-nb,-init-deploy-ant,-undeploy-ant" name="run-undeploy"/> + <target if="netbeans.home" name="-run-undeploy-nb"> + <fail message="Undeploy is not supported from within the IDE"/> + </target> + <target depends="init,-pre-dist,dist,-post-dist" name="verify"> + <nbverify file="${dist.war}"/> + </target> + <target depends="run-deploy,-init-display-browser,-display-browser-nb-old,-display-browser-nb,-display-browser-cl" name="run-display-browser"/> + <target if="do.display.browser" name="-init-display-browser"> + <condition property="do.display.browser.nb.old"> + <and> + <isset property="netbeans.home"/> + <not> + <isset property="browser.context"/> + </not> + </and> + </condition> + <condition property="do.display.browser.nb"> + <and> + <isset property="netbeans.home"/> + <isset property="browser.context"/> + </and> + </condition> + <condition property="do.display.browser.cl"> + <isset property="deploy.ant.enabled"/> + </condition> + </target> + <target if="do.display.browser.nb.old" name="-display-browser-nb-old"> + <nbbrowse url="${client.url}"/> + </target> + <target if="do.display.browser.nb" name="-display-browser-nb"> + <nbbrowse context="${browser.context}" url="${client.url}" urlPath="${client.urlPart}"/> + </target> + <target if="do.display.browser.cl" name="-get-browser" unless="browser"> + <condition property="browser" value="rundll32"> + <os family="windows"/> + </condition> + <condition else="" property="browser.args" value="url.dll,FileProtocolHandler"> + <os family="windows"/> + </condition> + <condition property="browser" value="/usr/bin/open"> + <os family="mac"/> + </condition> + <property environment="env"/> + <condition property="browser" value="${env.BROWSER}"> + <isset property="env.BROWSER"/> + </condition> + <condition property="browser" value="/usr/bin/firefox"> + <available file="/usr/bin/firefox"/> + </condition> + <condition property="browser" value="/usr/local/firefox/firefox"> + <available file="/usr/local/firefox/firefox"/> + </condition> + <condition property="browser" value="/usr/bin/mozilla"> + <available file="/usr/bin/mozilla"/> + </condition> + <condition property="browser" value="/usr/local/mozilla/mozilla"> + <available file="/usr/local/mozilla/mozilla"/> + </condition> + <condition property="browser" value="/usr/sfw/lib/firefox/firefox"> + <available file="/usr/sfw/lib/firefox/firefox"/> + </condition> + <condition property="browser" value="/opt/csw/bin/firefox"> + <available file="/opt/csw/bin/firefox"/> + </condition> + <condition property="browser" value="/usr/sfw/lib/mozilla/mozilla"> + <available file="/usr/sfw/lib/mozilla/mozilla"/> + </condition> + <condition property="browser" value="/opt/csw/bin/mozilla"> + <available file="/opt/csw/bin/mozilla"/> + </condition> + </target> + <target depends="-get-browser" if="do.display.browser.cl" name="-display-browser-cl"> + <fail unless="browser"> + Browser not found, cannot launch the deployed application. Try to set the BROWSER environment variable. + </fail> + <property name="browse.url" value="${deploy.ant.client.url}${client.urlPart}"/> + <echo>Launching ${browse.url}</echo> + <exec executable="${browser}" spawn="true"> + <arg line="${browser.args} ${browse.url}"/> + </exec> + </target> + <target depends="init,-init-cos,compile-single" name="run-main"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <webproject1:java classname="${run.class}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single" name="run-test-with-main"> + <fail unless="run.class">Must select one file in the IDE or set run.class</fail> + <webproject1:java classname="${run.class}" classpath="${run.test.classpath}"/> + </target> + <target depends="init" if="netbeans.home" name="-do-update-breakpoints"> + <webproject1:nbjpdaappreloaded/> + </target> + <!-- + DEBUGGING SECTION + --> + <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" description="Debug project in IDE." if="netbeans.home" name="debug"> + <nbstartserver debugmode="true"/> + <antcall target="connect-debugger"/> + <nbdeploy clientUrlPart="${client.urlPart}" debugmode="true" forceRedeploy="true"/> + <antcall target="debug-display-browser-old"/> + <antcall target="debug-display-browser"/> + <antcall target="connect-client-debugger"/> + </target> + <target if="do.debug.server" name="connect-debugger" unless="is.debugged"> + <condition property="listeningcp" value="sourcepath"> + <istrue value="${j2ee.compile.on.save}"/> + </condition> + <nbjpdaconnect address="${jpda.address}" host="${jpda.host}" listeningcp="${listeningcp}" name="${name}" transport="${jpda.transport}"> + <classpath> + <path path="${debug.classpath}:${j2ee.platform.classpath}"/> + </classpath> + <sourcepath> + <path path="${web.docbase.dir}"/> + </sourcepath> + </nbjpdaconnect> + </target> + <target if="do.display.browser.debug.old" name="debug-display-browser-old"> + <nbbrowse url="${client.url}"/> + </target> + <target if="do.display.browser.debug" name="debug-display-browser"> + <nbbrowse context="${browser.context}" url="${client.url}" urlPath="${client.urlPart}"/> + </target> + <target if="do.debug.client" name="connect-client-debugger"> + <webproject1:nbjsdebugstart webUrl="${client.url}"/> + </target> + <target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test"> + <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> + <webproject1:debug classname="${debug.class}" classpath="${debug.test.classpath}"/> + </target> + <target depends="init,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/> + <target depends="init,compile,compile-jsps,-do-compile-single-jsp,debug" if="netbeans.home" name="debug-single"/> + <target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test"> + <webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/> + </target> + <target depends="init" if="netbeans.home" name="-debug-start-debugger"> + <webproject1:nbjpdastart name="${debug.class}"/> + </target> + <target depends="init,compile-single" if="netbeans.home" name="-debug-start-debuggee-single"> + <fail unless="debug.class">Must select one file in the IDE or set debug.class</fail> + <webproject1:debug classname="${debug.class}"/> + </target> + <target depends="init,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single-main"/> + <target depends="init" name="-pre-debug-fix"> + <fail unless="fix.includes">Must set fix.includes</fail> + <property name="javac.includes" value="${fix.includes}.java"/> + </target> + <target depends="init,-pre-debug-fix,compile-single" if="netbeans.home" name="-do-debug-fix"> + <webproject1:nbjpdareload/> + </target> + <target depends="init,-pre-debug-fix,-do-debug-fix" if="netbeans.home" name="debug-fix"/> + <!-- + ================= + PROFILING SECTION + ================= + --> + <!-- + pre NB7.2 profiling section; consider it deprecated + --> + <target description="Profile a J2EE project in the IDE." if="profiler.info.jvmargs.agent" name="-profile-pre72"> + <condition else="start-profiled-server" property="profiler.startserver.target" value="start-profiled-server-extraargs"> + <isset property="profiler.info.jvmargs.extra"/> + </condition> + <antcall target="${profiler.startserver.target}"/> + <antcall target="run"/> + <antcall target="-profile-start-loadgen"/> + </target> + <target if="profiler.info.jvmargs.agent" name="start-profiled-server"> + <nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}"> + <jvmarg value="${profiler.info.jvmargs.agent}"/> + <jvmarg value="${profiler.j2ee.agentID}"/> + </nbstartprofiledserver> + </target> + <target if="profiler.info.jvmargs.agent" name="start-profiled-server-extraargs"> + <nbstartprofiledserver forceRestart="${profiler.j2ee.serverForceRestart}" javaPlatform="${profiler.info.javaPlatform}" startupTimeout="${profiler.j2ee.serverStartupTimeout}"> + <jvmarg value="${profiler.info.jvmargs.extra}"/> + <jvmarg value="${profiler.info.jvmargs.agent}"/> + <jvmarg value="${profiler.j2ee.agentID}"/> + </nbstartprofiledserver> + </target> + <target depends="profile-init,compile-test-single" if="profiler.info.jvmargs.agent" name="-profile-test-single-pre72"> + <fail unless="netbeans.home">This target only works when run from inside the NetBeans IDE.</fail> + <nbprofiledirect> + <classpath> + <path path="${run.test.classpath}"/> + <path path="${j2ee.platform.classpath}"/> + </classpath> + </nbprofiledirect> + <junit dir="${profiler.info.dir}" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" jvm="${profiler.info.jvm}" showoutput="true"> + <env key="${profiler.info.pathvar}" path="${profiler.info.agentpath}:${profiler.current.path}"/> + <jvmarg value="${profiler.info.jvmargs.agent}"/> + <jvmarg line="${profiler.info.jvmargs}"/> + <test name="${profile.class}"/> + <classpath> + <path path="${run.test.classpath}"/> + <path path="${j2ee.platform.classpath}"/> + </classpath> + <syspropertyset> + <propertyref prefix="test-sys-prop."/> + <mapper from="test-sys-prop.*" to="*" type="glob"/> + </syspropertyset> + <formatter type="brief" usefile="false"/> + <formatter type="xml"/> + </junit> + </target> + <target if="netbeans.home" name="-profile-check"> + <condition property="profiler.configured"> + <or> + <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-agentpath:"/> + <contains casesensitive="true" string="${run.jvmargs.ide}" substring="-javaagent:"/> + </or> + </condition> + </target> + <target depends="init,-init-cos,compile,compile-jsps,-do-compile-single-jsp,-pre-dist,-do-tmp-dist-with-manifest,-do-tmp-dist-without-manifest" name="-do-profile"> + <startprofiler/> + <nbstartserver profilemode="true"/> + <nbdeploy clientUrlPart="${client.urlPart}" forceRedeploy="true" profilemode="true"/> + <antcall target="debug-display-browser-old"/> + <antcall target="debug-display-browser"/> + <antcall target="-profile-start-loadgen"/> + </target> + <target depends="-profile-check,-profile-pre72" description="Profile a J2EE project in the IDE." if="profiler.configured" name="profile" unless="profiler.info.jvmargs.agent"> + <antcall target="-do-profile"/> + </target> + <target depends="-profile-test-single-pre72" name="profile-test-single"/> + <target depends="-profile-check" if="profiler.configured" name="profile-test" unless="profiler.info.jvmargs.agent"> + <startprofiler/> + <antcall target="test-single"/> + </target> + <target if="profiler.loadgen.path" name="-profile-start-loadgen"> + <loadgenstart path="${profiler.loadgen.path}"/> + </target> + <!-- + JAVADOC SECTION + --> + <target depends="init" if="have.sources" name="javadoc-build"> + <mkdir dir="${dist.javadoc.dir}"/> + <javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}"> + <classpath> + <path path="${javac.classpath}:${j2ee.platform.classpath}"/> + </classpath> + <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> + <filename name="**/*.java"/> + </fileset> + <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="**/*.java"/> + </fileset> + </javadoc> + <copy todir="${dist.javadoc.dir}"> + <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> + <filename name="**/doc-files/**"/> + </fileset> + <fileset dir="${build.generated.sources.dir}" erroronmissingdir="false"> + <include name="**/doc-files/**"/> + </fileset> + </copy> + </target> + <target depends="init,javadoc-build" if="netbeans.home" name="javadoc-browse" unless="no.javadoc.preview"> + <nbbrowse file="${dist.javadoc.dir}/index.html"/> + </target> + <target depends="init,javadoc-build,javadoc-browse" description="Build Javadoc." name="javadoc"/> + <!-- + + TEST COMPILATION SECTION + --> + <target depends="init,compile" if="have.tests" name="-pre-pre-compile-test"> + <mkdir dir="${build.test.classes.dir}"/> + <property name="j2ee.platform.embeddableejb.classpath" value=""/> + </target> + <target name="-pre-compile-test"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test" if="have.tests" name="-do-compile-test"> + <webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" srcdir="${test.src.dir}"/> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target name="-post-compile-test"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test,-do-compile-test,-post-compile-test" name="compile-test"/> + <target name="-pre-compile-test-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single" if="have.tests" name="-do-compile-test-single"> + <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> + <webproject2:javac classpath="${javac.test.classpath}:${j2ee.platform.classpath}:${j2ee.platform.embeddableejb.classpath}" debug="true" destdir="${build.test.classes.dir}" excludes="" includes="${javac.includes}" srcdir="${test.src.dir}"/> + <copy todir="${build.test.classes.dir}"> + <fileset dir="${test.src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> + </copy> + </target> + <target name="-post-compile-test-single"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,compile,-pre-pre-compile-test,-pre-compile-test-single,-do-compile-test-single,-post-compile-test-single" name="compile-test-single"/> + <!-- + + TEST EXECUTION SECTION + --> + <target depends="init" if="have.tests" name="-pre-test-run"> + <mkdir dir="${build.test.results.dir}"/> + </target> + <target depends="init,compile-test,-pre-test-run" if="have.tests" name="-do-test-run"> + <webproject2:test includes="${includes}" testincludes="**/*Test.java"/> + </target> + <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init" if="have.tests" name="test-report"/> + <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/> + <target depends="init,compile-test,-pre-test-run,-do-test-run,test-report,-post-test-run,-test-browse" description="Run unit tests." name="test"/> + <target depends="init" if="have.tests" name="-pre-test-run-single"> + <mkdir dir="${build.test.results.dir}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single"> + <fail unless="test.includes">Must select some files in the IDE or set test.includes</fail> + <webproject2:test excludes="" includes="${test.includes}" testincludes="${test.includes}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-do-test-run-single-method"> + <fail unless="test.class">Must select some files in the IDE or set test.class</fail> + <fail unless="test.method">Must select some method in the IDE or set test.method</fail> + <webproject2:test excludes="" includes="${javac.includes}" testincludes="${test.class}" testmethods="${test.method}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method" if="have.tests" name="-post-test-run-single-method"> + <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail> + </target> + <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single-method,-post-test-run-single-method" description="Run single unit test." name="test-single-method"/> + <!-- + + TEST DEBUGGING SECTION + --> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test"> + <fail unless="test.class">Must select one file in the IDE or set test.class</fail> + <webproject2:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testincludes="${javac.includes}"/> + </target> + <target depends="init,compile-test-single,-pre-test-run-single" if="have.tests" name="-debug-start-debuggee-test-method"> + <fail unless="test.class">Must select one file in the IDE or set test.class</fail> + <fail unless="test.method">Must select some method in the IDE or set test.method</fail> + <webproject2:test-debug excludes="" includes="${javac.includes}" testClass="${test.class}" testMethod="${test.method}" testincludes="${test.class}" testmethods="${test.method}"/> + </target> + <target depends="init,compile-test" if="netbeans.home+have.tests" name="-debug-start-debugger-test"> + <webproject1:nbjpdastart classpath="${debug.test.classpath}" name="${test.class}"/> + </target> + <target depends="init,compile-test,-debug-start-debugger-test,-debug-start-debuggee-test" name="debug-test"/> + <target depends="init,compile-test-single,-debug-start-debugger-test,-debug-start-debuggee-test-method" name="debug-test-method"/> + <target depends="init,-pre-debug-fix,compile-test-single" if="netbeans.home" name="-do-debug-fix-test"> + <webproject1:nbjpdareload dir="${build.test.classes.dir}"/> + </target> + <target depends="init,-pre-debug-fix,-do-debug-fix-test" if="netbeans.home" name="debug-fix-test"/> + <!-- + + CLEANUP SECTION + --> + <target depends="init" name="deps-clean" unless="no.deps"/> + <target depends="init" name="do-clean"> + <condition property="build.dir.to.clean" value="${build.web.dir}"> + <isset property="dist.ear.dir"/> + </condition> + <property name="build.dir.to.clean" value="${build.web.dir}"/> + <delete includeEmptyDirs="true" quiet="true"> + <fileset dir="${build.dir.to.clean}/WEB-INF/lib"/> + </delete> + <delete dir="${build.dir}"/> + <available file="${build.dir.to.clean}/WEB-INF/lib" property="status.clean-failed" type="dir"/> + <delete dir="${dist.dir}"/> + </target> + <target depends="do-clean" if="status.clean-failed" name="check-clean"> + <echo message="Warning: unable to delete some files in ${build.web.dir}/WEB-INF/lib - they are probably locked by the J2EE server. "/> + <echo level="info" message="To delete all files undeploy the module from Server Registry in Runtime tab and then use Clean again."/> + </target> + <target depends="init" if="netbeans.home" name="undeploy-clean"> + <nbundeploy failOnError="false" startServer="false"/> + </target> + <target name="-post-clean"> + <!-- Empty placeholder for easier customization. --> + <!-- You can override this target in the ../build.xml file. --> + </target> + <target depends="init,undeploy-clean,deps-clean,do-clean,check-clean,-post-clean" description="Clean build products." name="clean"/> + <target depends="clean" description="Clean build products." name="clean-ear"/> +</project> diff --git a/HelloWeb/nbproject/genfiles.properties b/HelloWeb/nbproject/genfiles.properties new file mode 100644 index 0000000000000000000000000000000000000000..3ce279b54c6ea06c9409b8a309e6bf0503054fe7 --- /dev/null +++ b/HelloWeb/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=ef64ba77 +build.xml.script.CRC32=7449866d +build.xml.stylesheet.CRC32=651128d4@1.77.1.1 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=ef64ba77 +nbproject/build-impl.xml.script.CRC32=97641e6f +nbproject/build-impl.xml.stylesheet.CRC32=99ea4b56@1.77.1.1 diff --git a/HelloWeb/nbproject/private/private.properties b/HelloWeb/nbproject/private/private.properties new file mode 100644 index 0000000000000000000000000000000000000000..ebea3a47e2ed5dc3c14b57d398cccb03058110ec --- /dev/null +++ b/HelloWeb/nbproject/private/private.properties @@ -0,0 +1,7 @@ +deploy.ant.properties.file=/home/nim_13515091/.netbeans/8.2/config/GlassFishEE6/Properties/gfv3-611079199.properties +j2ee.platform.is.jsr109=true +j2ee.server.domain=/home/nim_13515091/glassfish-4.1.1/glassfish/domains/domain1 +j2ee.server.home=/home/nim_13515091/glassfish-4.1.1/glassfish +j2ee.server.instance=[/home/nim_13515091/glassfish-4.1.1/glassfish:/home/nim_13515091/glassfish-4.1.1/glassfish/domains/domain1]deployer:gfv3ee6wc:localhost:4848 +j2ee.server.middleware=/home/nim_13515091/glassfish-4.1.1 +user.properties.file=/home/nim_13515091/.netbeans/8.2/build.properties diff --git a/HelloWeb/nbproject/project.properties b/HelloWeb/nbproject/project.properties new file mode 100644 index 0000000000000000000000000000000000000000..57c9144548eed1ff35ffe52d96fb97e5daab26a9 --- /dev/null +++ b/HelloWeb/nbproject/project.properties @@ -0,0 +1,89 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=true +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.web.dir}/WEB-INF/classes +build.classes.excludes=**/*.java,**/*.form +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +build.web.dir=${build.dir}/web +build.web.excludes=${build.classes.excludes} +client.urlPart= +compile.jsps=false +conf.dir=${source.root}/conf +debug.classpath=${build.classes.dir}:${javac.classpath} +debug.test.classpath=\ + ${run.test.classpath} +display.browser=true +# Files to be excluded from distribution war +dist.archive.excludes= +dist.dir=dist +dist.ear.war=${dist.dir}/${war.ear.name} +dist.javadoc.dir=${dist.dir}/javadoc +dist.war=${dist.dir}/${war.name} +endorsed.classpath=\ + ${libs.javaee-endorsed-api-7.0.classpath} +excludes= +includes=** +j2ee.compile.on.save=true +j2ee.copy.static.files.on.save=true +j2ee.deploy.on.save=true +j2ee.platform=1.7-web +j2ee.platform.classpath=${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar:${j2ee.server.home}/modules/endorsed/javax.annotation-api.jar:${j2ee.server.home}/modules/bean-validator.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jar:${j2ee.server.home}/modules/javax.interceptor-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent.jar:${j2ee.server.home}/modules/javax.servlet.jsp-api.jar:${j2ee.server.home}/modules/javax.persistence.jar:${j2ee.server.home}/modules/javax.xml.rpc-api.jar:${j2ee.server.home}/modules/javax.servlet-api.jar:${j2ee.server.home}/modules/javax.enterprise.concurrent-api.jar:${j2ee.server.home}/modules/javax.websocket-api.jar:${j2ee.server.home}/modules/javax.jms-api.jar:${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/javax.transaction-api.jar:${j2ee.server.home}/modules/weld-osgi-bundle.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/javax.security.auth.message-api.jar:${j2ee.server.home}/modules/javax.xml.registry-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl-api.jar:${j2ee.server.home}/modules/cdi-api.jar:${j2ee.server.home}/modules/javax.resource-api.jar:${j2ee.server.home}/modules/javax.servlet.jsp.jstl.jar:${j2ee.server.home}/modules/javax.ejb-api.jar:${j2ee.server.home}/modules/javax.batch-api.jar:${j2ee.server.home}/modules/javax.faces.jar:${j2ee.server.home}/modules/javax.mail.jar:${j2ee.server.home}/modules/javax.ws.rs-api.jar:${j2ee.server.home}/modules/javax.management.j2ee-api.jar:${j2ee.server.home}/modules/javax.security.jacc-api.jar:${j2ee.server.home}/modules/javax.json.jar:${j2ee.server.home}/modules/javax.el.jar:${j2ee.server.home}/modules/javax.enterprise.deploy-api.jar:${j2ee.server.home}/modules/javax.inject.jar:${j2ee.server.middleware}/mq/lib/jaxm-api.jar +j2ee.platform.embeddableejb.classpath=${j2ee.server.home}/lib/embedded/glassfish-embedded-static-shell.jar +j2ee.platform.wscompile.classpath=${j2ee.server.home}/modules/webservices-osgi.jar +j2ee.platform.wsgen.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar +j2ee.platform.wsimport.classpath=${j2ee.server.home}/modules/webservices-osgi.jar:${j2ee.server.home}/modules/endorsed/webservices-api-osgi.jar:${j2ee.server.home}/modules/jaxb-osgi.jar:${j2ee.server.home}/modules/endorsed/jaxb-api.jar +j2ee.platform.wsit.classpath= +j2ee.server.type=gfv3ee6 +jar.compress=false +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs= +javac.debug=true +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.8 +javac.target=1.8 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.preview=true +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +lib.dir=${web.docbase.dir}/WEB-INF/lib +no.dependencies=false +persistence.xml.dir=${conf.dir} +platform.active=default_platform +resource.dir=setup +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +# Space-separated list of JVM arguments used when running a class with a main method or a unit test +# (you may also define separate properties like run-sys-prop.name=value instead of -Dname=value): +runmain.jvmargs= +source.encoding=UTF-8 +source.root=src +src.dir=${source.root}/java +test.src.dir=test +war.content.additional= +war.ear.name=${war.name} +war.name=HelloWeb.war +web.docbase.dir=web +webinf.dir=web/WEB-INF diff --git a/HelloWeb/nbproject/project.xml b/HelloWeb/nbproject/project.xml new file mode 100644 index 0000000000000000000000000000000000000000..e6da5e4a1c8144e3d499f7c70aacabc857888a32 --- /dev/null +++ b/HelloWeb/nbproject/project.xml @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://www.netbeans.org/ns/project/1"> + <type>org.netbeans.modules.web.project</type> + <configuration> + <data xmlns="http://www.netbeans.org/ns/web-project/3"> + <name>HelloWeb</name> + <minimum-ant-version>1.6.5</minimum-ant-version> + <web-module-libraries/> + <web-module-additional-libraries/> + <source-roots> + <root id="src.dir" name="Source Packages"/> + </source-roots> + <test-roots> + <root id="test.src.dir" name="Test Packages"/> + </test-roots> + </data> + </configuration> +</project> diff --git a/HelloWeb/src/conf/MANIFEST.MF b/HelloWeb/src/conf/MANIFEST.MF new file mode 100644 index 0000000000000000000000000000000000000000..59499bce4a2bd51cba227b7c00fcf745b19c95a4 --- /dev/null +++ b/HelloWeb/src/conf/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/HelloWeb/web/CompleteOrder.jsp b/HelloWeb/web/CompleteOrder.jsp new file mode 100644 index 0000000000000000000000000000000000000000..a391722f4b82ca63b942d62759148061ac132c84 --- /dev/null +++ b/HelloWeb/web/CompleteOrder.jsp @@ -0,0 +1,60 @@ +<%-- + Document : CompleteOrder + Created on : Nov 4, 2017, 11:24:04 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + </head> + <body> + <jsp:include page="HeaderWithMenu.jsp" /> + <div class="edit-profile-header"> + Make an order + </div> + <div class="progress-container"> + <div class="progress"> + <div class="progress-num">1</div> Select Destination + </div> + <div class="progress"> + <div class="progress-num">2</div> Select a driver + </div> + <div class="progress selected"> + <div class="progress-num selected">3</div> Complete your order + </div> + </div> + <div class="edit-profile-header"> + How was it? + </div> + <form action="/order/<?php echo $this->user; ?>/completeorder/finish" method="post" name="completeorder-form"> + <div class="completeorder-container"> + <input type='hidden' name='driver' value='<?php echo $this->driver; ?>'> + <input type='hidden' name='from' value='<?php echo $this->from; ?>'> + <input type='hidden' name='dest' value='<?php echo $this->dest; ?>'> + <img class="driver-completeorder-pic" src="<?php echo $this->image; ?>" alt=""> + <div class="driver-name-disp">@<?php echo $this->driver; ?></div> + <div class="driver-fullname-disp"><?php echo $this->drivername; ?></div> + <span class="starRating"> + <input id="rating5" type="radio" name="rating" value="5"> + <label for="rating5">5</label> + <input id="rating4" type="radio" name="rating" value="4"> + <label for="rating4">4</label> + <input id="rating3" type="radio" name="rating" value="3"> + <label for="rating3">3</label> + <input id="rating2" type="radio" name="rating" value="2"> + <label for="rating2">2</label> + <input id="rating1" type="radio" name="rating" value="1"> + <label for="rating1">1</label> + </span> + <textarea cols="5" placeholder="Your comment..." name="comment"></textarea> + </div> + <div class="right-align"> + <input class="accept-button select-driver-btn completeorder-btn" type="submit" value="Complete Order"> + </div> + </form> + <jsp:include page="Footer.jsp" /> + </body> +</html> diff --git a/HelloWeb/web/Footer.jsp b/HelloWeb/web/Footer.jsp new file mode 100644 index 0000000000000000000000000000000000000000..cb71c0e72911f50c9dbe43c71bd65e1480f68104 --- /dev/null +++ b/HelloWeb/web/Footer.jsp @@ -0,0 +1,21 @@ +<%-- + Document : Footer + Created on : Nov 4, 2017, 11:22:37 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + <div class="footer"> + <div>Dayu <br /> 13500000</div> + <div>Marvin <br /> 1350000</div> + <div>Adrian HP <br /> 13515091</div> + </div> + </body> +</html> diff --git a/HelloWeb/web/Header.jsp b/HelloWeb/web/Header.jsp new file mode 100644 index 0000000000000000000000000000000000000000..119e70cf6571e555a0c91f2d8cd7a3725e9bf931 --- /dev/null +++ b/HelloWeb/web/Header.jsp @@ -0,0 +1,17 @@ +<%-- + Document : Header + Created on : Nov 4, 2017, 11:22:56 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + + </body> +</html> diff --git a/HelloWeb/web/HeaderWithMenu.jsp b/HelloWeb/web/HeaderWithMenu.jsp new file mode 100644 index 0000000000000000000000000000000000000000..78c4a75393711918b69da7a6a7906f70ea9e48aa --- /dev/null +++ b/HelloWeb/web/HeaderWithMenu.jsp @@ -0,0 +1,43 @@ +<%-- + Document : HeaderWithMenu + Created on : Nov 4, 2017, 11:23:12 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <link rel="stylesheet" href="css/profile.css"/> + <link rel="stylesheet" href="css/style.css"/> + </head> + <body> + <div> + <header class="header-box"> + <div class="col-header-left"> + <div> + <span class='logo-title'>MotoRaido</span><br /> + <span class='tagline'>Anata to issho ni noru mÅtÄ</span> + </div> + </div> + <div class="col-header-right"> + <div> + Hi, <b><?php echo $this->user; ?></b> ! + </div> + <div> + <a href="/login">Logout</a> + </div> + </div> + </header> + <div class='menu'> + <div class="menu-column"></div> + <div class="menu-column"></div> + <div class="menu-column"></div> + <div id="orderheader" class="menu-cell"><a href="/order/<?php echo $this->user; ?>" class="text-link">ORDER</a></div> + <div id="historyheader" class="menu-cell"><a href="/history/<?php echo $this->user; ?>" class="text-link">HISTORY</a></div> + <div id="profileheader" class="menu-cell"><a href="/profile/<?php echo $this->user; ?>" class="text-link">MY PROFILE</a></div> + </div> + </div> + </body> +</html> diff --git a/HelloWeb/web/Order.jsp b/HelloWeb/web/Order.jsp new file mode 100644 index 0000000000000000000000000000000000000000..2e60e67aec463f378c67bdefc5c1691c2eeff4ac --- /dev/null +++ b/HelloWeb/web/Order.jsp @@ -0,0 +1,52 @@ +<%-- + Document : Order + Created on : Nov 4, 2017, 11:23:35 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + </head> + <body> + <jsp:include page="HeaderWithMenu.jsp" /> + <div class="container"> + <div class="edit-profile-header"> + Make an order + </div> + <div class="progress-container"> + <div class="progress selected"> + <div class="progress-num">1</div> Select Destination + </div> + <div class="progress"> + <div class="progress-num">2</div> Select a driver + </div> + <div class="progress"> + <div class="progress-num">3</div> Complete your order + </div> + </div> + <form action="SelectDriver.jsp" method='post'> + <div class="edit-profile-btm"> + <div class="form-input"> + <label for="pick-point">Picking point</label> + <input class="ep-textarea" type="text" name="pick-point" /> + </div> + <div class="form-input"> + <label for="destination">Destination</label> + <input class="ep-textarea" type="text" name="destination" /> + </div> + <div class="form-input"> + <label for="pref-driver">Preferred Driver</label> + <input class="ep-textarea" type="text" name="pref-driver" placeholder="(Optional)"/> + </div> + <div class="right-align"> + <input class="accept-button select-driver-btn" id="save-profile" type="submit" value="Next" /> + </div> + </div> + </form> + </div> + <jsp:include page="Footer.jsp" /> + </body> +</html> diff --git a/HelloWeb/web/SelectDriver.jsp b/HelloWeb/web/SelectDriver.jsp new file mode 100644 index 0000000000000000000000000000000000000000..66883b9eab372f10232faadc29186ce462e57856 --- /dev/null +++ b/HelloWeb/web/SelectDriver.jsp @@ -0,0 +1,42 @@ +<%-- + Document : SelectDriver + Created on : Nov 4, 2017, 11:23:47 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + </head> + <body> + <jsp:include page="HeaderWithMenu.jsp" /> + <div class="edit-profile-header"> + Make an order + </div> + <div class="progress-container"> + <div class="progress"> + <div class="progress-num">1</div> Select Destination + </div> + <div class="progress selected"> + <div class="progress-num">2</div> Select a driver + </div> + <div class="progress"> + <div class="progress-num">3</div> Complete your order + </div> + </div> + <div id="pref-driver" class="select-driver"> + <div class= "selectdriver-header"> + Preferred Drivers: + </div> + </div> + <div id="other-driver" class="select-driver"> + <div class="selectdriver-header"> + Other Drivers: + </div> + </div> + <script src="js/selectdriver.js"></script> + <jsp:include page="Footer.jsp" /> + </body> +</html> diff --git a/HelloWeb/web/css/.gitkeep b/HelloWeb/web/css/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/web/css/fonts/geo.woff2 b/HelloWeb/web/css/fonts/geo.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..4c1d8680a68afc90ed228ae5c313f9002255b7b2 Binary files /dev/null and b/HelloWeb/web/css/fonts/geo.woff2 differ diff --git a/HelloWeb/web/css/fonts/mukta1.woff2 b/HelloWeb/web/css/fonts/mukta1.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..dfa6d95388c06078e73dc1ccc0df0cdd8c152c4b Binary files /dev/null and b/HelloWeb/web/css/fonts/mukta1.woff2 differ diff --git a/HelloWeb/web/css/fonts/mukta2.woff2 b/HelloWeb/web/css/fonts/mukta2.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..ed0d8a0451ef90b479b036e337f741573dfa55bb Binary files /dev/null and b/HelloWeb/web/css/fonts/mukta2.woff2 differ diff --git a/HelloWeb/web/css/fonts/mukta3.woff2 b/HelloWeb/web/css/fonts/mukta3.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..b6d906226264df96ac57ba02427ae5043bfd031f Binary files /dev/null and b/HelloWeb/web/css/fonts/mukta3.woff2 differ diff --git a/HelloWeb/web/css/profile.css b/HelloWeb/web/css/profile.css new file mode 100644 index 0000000000000000000000000000000000000000..7bf19a4f7d989ea396720a3c92bd8cb9cce368d7 --- /dev/null +++ b/HelloWeb/web/css/profile.css @@ -0,0 +1,154 @@ +.profile-picture { + width: 150px; + height: 150px; + border: 5px solid black; + float: left; + border-radius: 500px; + clear: both; +} + +#info-profile { + margin: 20px 0px; + height: auto; +} + +.edit-pen { + float: right; + height: 30px; + +} + +.subtitle-profile { + float: left; + width: 200px; + font-size: 2em; + font-weight: bold; + font-family: 'Mutka', sans-serif; +} + +#profile-pic-div { + margin: auto; + width: 160px; + height: 160px; +} + +#edit-pen-div { + margin: auto; + height: auto; +} + +.subtitle-cont { + margin-bottom: 20px; + height: 37px; +} + +#info-text { + margin: auto; + font-size: 1.2em; +} + +#list-info { + list-style: none; + text-align: center; + padding: 0px; +} + +#prefer-loc-title { + font-size: 1.5em; + width: 400px; +} + +.fa-star-o{ + color: red; +} + +#info-pref-text { + font-size: 1.2em; +} + +.subtitle-history { + float: left; + font-size: 2em; + font-weight: bold; + font-family: 'Mutka', sans-serif; + margin-top: 20px; +} + +.history-pic-div { + width: 120px; + height: 120px; + margin: 0px 20px; + float: left; +} + +.profile-pic-his { + width: 110px; + height: 110px; + border: 1px solid black; + float: left; +} + +.history-list { + margin-top: 20px; + list-style: none; + padding: 0px; + height: auto; +} + +.order-list { + display: none; +} + +.driver-list { + display: none; +} + +.active-list { + display:block; +} + +.comment { + margin-left: 180px; +} + +.hide{ + width: auto; + padding: 10px 15px; + border: 1px solid black; + border-radius: 10px; + background-color: red; + position: absolute; + right: 0; +} + +.his-text>span { + display: inline-block; +} + +.list-text-his { + height: auto; + position: relative; + clear: both; +} + +.date-his { + color: gray; +} + +.name-his { + font-size: 1.2em; +} + +.tab-active { + display: block; +} + +.active { + color: #ffffff; + border-color: #000000; + background-color: #5A1E83; +} + +.hide-element { + display: none; +} \ No newline at end of file diff --git a/HelloWeb/web/css/style.css b/HelloWeb/web/css/style.css new file mode 100644 index 0000000000000000000000000000000000000000..ae7bb6a41858edde4cdc42187c4481c84a4a3473 --- /dev/null +++ b/HelloWeb/web/css/style.css @@ -0,0 +1,628 @@ +@charset "UTF-8"; + +body { + width: 470px; + margin: auto; + font-family: 'Mutka', sans-serif; +} + +textarea { + resize: none; + width: 100%; + margin-bottom: 10px; +} + +/* Order Header */ + .progress-container { + width: fit-content; + border-collapse:separate; + border-spacing: 10px 10px; + display: table; + } + + .progress { + width: 30%; + height: 50px; + font-size: 105%; + border: 1px solid black; + text-align: left; + vertical-align: middle; + display: table-cell; + } + + .progress-num { + display:inline-block; + background-color: #DDD; + width: 35px; + height: 35px; + border-radius: 100%; + margin: 0px 5px; + line-height: 200%; + text-align: center; + vertical-align: middle; + float: left; + } + + .selected { + background-color: #FFFF44; + } + +/* Header style */ + +.header-box { + height: fit-content content-box; + width: fit-content content-box; + margin-left: auto; + margin-right: auto; + margin-top: none; + margin-bottom: none; + font-family: 'Mutka', sans-serif; + column-count: 2; + -moz-column-count: 2; + -webkit-column-count: 2; + -webkit-column-span: all; /* Chrome, Safari, Opera */ + column-span: all; + column-gap: 40px; +} + +.col-header-left { + width: 50% content-box; + float: left; + vertical-align: middle; +} + +.logo-title { + font-family: 'Geo', sans-serif; + font-weight: bold; + font-size: 250%; + color: #5A1E83; +} + +.tagline { + color: #311B92; +} + +.col-header-right { + width: 50% content-box; + float: right; + text-align: right; + vertical-align: middle; + line-height: 2; +} + +/* Menu style */ + +.menu { + width: 100%; + display: table; + table-layout: fixed; +} + +.menu > div.menu-column { + display: table-column; +} + +.menu > div.menu-cell { + display: table-cell; + font-family: 'Mukta', sans-serif; + vertical-align: middle; + line-height: 50px; + text-align: center; + font-weight: bold; + border-style: solid; + border-width: 1px; +} + +.menu > div:hover, .menu > div.selected { + color: #ffffff; + border-color: #000000; + background-color: #5A1E83; +} + +/* Footer style */ +.footer { + column-count: 3; + -moz-column-count: 3; + -webkit-column-count: 3; + -webkit-column-span: all; + column-span: all; + -moz-column-gap: 2em; + -webkit-column-gap: 2em; + column-gap: 1.5em; + column-rule-style: solid; + border-style: solid; + border-width: 2px; +} + +.footer > div { + width: fit-content content-box; + text-align: center; + font-weight: bold; + font-family: 'Mukta', sans-serif; + vertical-align: middle; +} + +.img-chooser { + padding-top: 20px; +} + +.text-link { + text-decoration: none; + font-size: 120%; + font-weight: bold; + color: black; +} + + + +/* Container */ +.container { + width: inherit; +} + +.header { + line-height: 1.5; + text-transform: uppercase; +} + +.selectdriver-header { + text-transform: uppercase; + font-weight: bold; +} + +.edit-profile-container { + font-family: Verdana; +} + +.edit-profile-header { + text-transform: uppercase; + font-weight: bold; + width: 100%; + font-size: 170%; +} + +.edit-profile-btm { + clear: both; +} + +.form-editprofile{ + margin: 5px 0; +} + +.ep-textarea{ + width: 60%; + float: right; + clear: both; +} + +.content-layout { + background-color: rgb(124, 206, 43); + padding: 50px; + border: 10px solid rgb(10, 127, 10); + border-radius: 100px; + width: 350px; +} + +.title { + height: 27px; + padding: 0px 20px; +} + +.title>div>h1 { + text-align: center; + margin-top: 0px; + width: 100px; + float: left; +} + +.title>div>hr { + float:left; + position: relative; + width: 100px; + top: 5px; + background-color: rgb(10, 127, 10); + height: 5px; + border: none; +} + +.form-layout { + clear: left; +} + +.form-input { + width: 350px; + margin-bottom: 5px; +} + +.form-input>div { + float: left; + width: 135px; +} + +.form-input>input { + width: 198px; +} + +.checked-input>input { + width: 170px; +} + +.driver-checkbox { + margin: 20px 0px; +} + +.driver-checkbox>input { + float: left; + margin-left: 0px; +} + + +.cancel-button { + width: 75px; + height: 30px; + text-align: center; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #D2002E; + border-radius: 10px; +} + +.accept-button { + width: 75px; + height: 30px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; +} + +.driver-completeorder-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; +} + +.completeorder-container { + text-align: center; + clear: both; +} + +.right-align { + width: 100%; + text-align: right; +} + +.driver-fullname-disp { + font-size: 105%; + font-weight: bold; + margin-top: 5px; +} + +/*Select driver*/ +.select-driver { + width: auto; + padding: 0 10px; + border-radius: 12px; + border: 1px solid black; + margin: 10px 0; +} + +.driver-content { + height: 120px; + overflow: hidden; +} + +.driver-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; + float: left; +} + +.driver-name-disp { + font-size: 160%; + font-weight: bold; + margin-top: 10px; +} + +.driver-rating-disp { + color: orange; + font-size: 110%; +} + +.driver-not-found { + color: grey; + height: 70px; + text-align: center; + text-transform: none; + line-height: 70px; + vertical-align: middle; +} + +.vote-disp { + color: black; +} + +.select-driver-btn { + width: auto; + color: white; + background-color: #5A1E83; + letter-spacing: 0.5px; + float: right; +} + +.order-btn { + float: none; + clear: both; +} + +#profile-pic { + width: 150px; + height: 150px; + border: 1px solid black; + float: left; + margin-right: 25px; + margin-bottom: 30px; +} + +#save-profile { + float: right; + margin-right: 120px; +} + +#register-button { + background-color: #4CAF50; + border: 5px solid rgb(10, 127, 10); + border-radius: 20px; + color: white; + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; +} + +#button-layout>div { + float: left; + width: 200px; + height: 66px; +} + +#button-layout a { + position: relative; + top: 20px; +} + + +.button-form { + text-align: right; + width: 350px; +} + +.button-form div { + float: left; +} + +.completeorder-btn { + width: 100px; + height: 50px; + float: none; +} + + /* The switch - the box around the slider */ + .switch { + position: relative; + display: inline-block; + + width: 50px; + height: 25px; +} + +/* Hide default HTML checkbox */ +.switch input {display:none;} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 19px; + width: 19px; + left: 4px; + bottom: 3px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #1E7B25; +} + +input:focus + .slider { + box-shadow: 0 0 1px #1E7B25; +} + +input:checked + .slider:before { + -webkit-transform: translateX(23px); + -ms-transform: translateX(23px); + transform: translateX(23px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +/* Menu Order */ +.menu-order { + height: 100%; + width: 100%; + position: relative; + font-size: 12px; + border-spacing: 20px 12px; +} + +.menu-order-column { + height: 100%; +} + +.menu-order-cell { + display: table-cell; + position: relative; + text-align: left; + font-weight: bold; +} + +.menu-order-number +{ + position: relative; + display: block; + width: 50px; + height: 50px; + border-radius: 25px; /* or 50% */ + text-align: center; + margin-left: auto; + margin-right: auto; + background-color: #311B92; + color: #ffffff; + line-height: 50px; +} + +.menu-order-title +{ + position: relative; + display: inline-block; +} + +#next-button-text { + line-height: 20px; + width: 75%; + padding-right: 1px; +} + +input.next-button { + width: 20%; + height: 30px; + line-height: 20px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; + display: inline-block; +} + +table, th, td { + table-layout: auto !important; + width: 100% auto !important; + max-width:100%; + white-space:nowrap; + border: 1px solid black; + border-collapse: collapse; +} + +.pref-button { + width: 21px; + height: 21px; + vertical-align: middle; + border: none; + display: inline-block; +} + +/** Rating **/ +.starRating:not(old){ + display : inline-block; + width : 7.5em; + height : 1.5em; + overflow : hidden; + vertical-align : bottom; +} + +.starRating:not(old) > input{ + margin-right : -100%; + opacity : 0; +} + +.starRating:not(old) > label{ + display : block; + float : right; + position : relative; + background : url('../img/star-off.svg'); + background-size : contain; +} + +.starRating:not(old) > label:before{ + content : ''; + display : block; + width : 1.5em; + height : 1.5em; + background : url('../img/star-on.svg'); + background-size : contain; + opacity : 0; + transition : opacity 0.2s linear; +} + +.starRating:not(old) > label:hover:before, +.starRating:not(old) > label:hover ~ label:before, +.starRating:not(:hover) > :checked ~ label:before{ + opacity : 1; +} + +/* Font customization */ +/* latin */ +@font-face { + font-family: 'Geo'; + font-style: normal; + font-weight: 400; + src: local('Geo'), local('Geo-Regular'), url(./fonts/geo.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + +/* devanagari */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; +} +/* latin-ext */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} diff --git a/HelloWeb/web/css/style_old.css b/HelloWeb/web/css/style_old.css new file mode 100644 index 0000000000000000000000000000000000000000..7ee8d5f20ad0ad8b49088c590ce18c398f09c1d8 --- /dev/null +++ b/HelloWeb/web/css/style_old.css @@ -0,0 +1,614 @@ +@charset "UTF-8"; + +/* Font customization */ +/* latin */ +@font-face { + font-family: 'Geo'; + font-style: normal; + font-weight: 400; + src: local('Geo'), local('Geo-Regular'), url(./fonts/geo.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + +/* devanagari */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+02BC, U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200B-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB; +} +/* latin-ext */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF; +} +/* latin */ +@font-face { + font-family: 'Mukta'; + font-style: normal; + font-weight: 400; + src: local('Mukta Regular'), local('Mukta-Regular'), url(./fonts/mukta1.woff2) format('woff2'); + unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; +} + +/* Body style */ + +body { + width: 470px; + margin: auto; + font-family: 'Mutka', sans-serif; +} + +textarea { + resize: none; + width: 100%; + margin-bottom: 10px; +} + +/* Order Header */ + .progress-container { + width: fit-content; + border-collapse:separate; + border-spacing: 10px 10px; + display: table; + } + + .progress { + width: 30%; + height: 50px; + font-size: 105%; + border: 1px solid black; + text-align: left; + vertical-align: middle; + display: table-cell; + } + + .progress-num { + display:inline-block; + background-color: #DDD; + width: 35px; + height: 35px; + border-radius: 100%; + margin: 0px 5px; + line-height: 200%; + text-align: center; + vertical-align: middle; + } + + .selected { + background-color: #FFFF44; + } + +/* Header style */ + +.header-box { + height: fit-content content-box; + width: fit-content content-box; + margin-left: auto; + margin-right: auto; + margin-top: none; + margin-bottom: none; + column-count: 2; + -moz-column-count: 2; + -webkit-column-count: 2; + -webkit-column-span: all; /* Chrome, Safari, Opera */ + column-span: all; + column-gap: 40px; +} + +.col-header-left { + width: 50% content-box; + float: left; + vertical-align: middle; +} + +.logo-title { + font-family: 'Geo', sans-serif; + font-weight: bold; + font-size: 250%; + color: #5A1E83; +} + +.tagline { + color: #311B92; +} + +.col-header-right { + width: 50% content-box; + float: right; + text-align: right; + vertical-align: middle; + line-height: 2; +} + +/* Menu style */ + +.menu { + width: 100%; + display: table; + table-layout: fixed; +} + +.menu > div.menu-column { + display: table-column; +} + +.menu > div.menu-cell { + display: table-cell; + font-family: 'Mukta', sans-serif; + vertical-align: middle; + line-height: 50px; + text-align: center; + font-weight: bold; + border-style: solid; + border-width: 1px; +} + +.menu-item:hover, .menu-item#selected { + color: #ffffff; + border-color: #000000; + background-color: #5A1E83; +} + +/* Footer style */ +.footer { + width: 100% fit-content; + display: inline-block; + column-count: 3; + column-span: all; + column-gap: 1.5em; + column-rule-style: solid; + border-style: solid; + border-width: 2px; + margin: auto; +} + +.footer > div { + text-align: center; + font-weight: bold; + font-family: 'Mukta', sans-serif; + vertical-align: middle; +} + +.img-chooser { + padding-top: 20px; +} + +/* Container */ +.container { + width: inherit; +} + +.header { + line-height: 1.5; + text-transform: uppercase; +} + +.selectdriver-header { + text-transform: uppercase; + font-weight: bold; +} + +.edit-profile-container { + font-family: Verdana; +} + +.edit-profile-header { + text-transform: uppercase; + font-weight: bold; + width: 100%; + font-size: 170%; +} + +.edit-profile-btm { + clear: both; +} + +.form-editprofile{ + margin: 5px 0; +} + + + +.ep-textarea{ + width: 60%; + float: right; + clear: both; +} + +.content-layout { + background-color: rgb(124, 206, 43); + padding: 50px; + border: 10px solid rgb(10, 127, 10); + border-radius: 100px; + width: 350px; +} + +.title { + height: 27px; + padding: 0px 20px; +} + +.title>div>h1 { + text-align: center; + margin-top: 0px; + width: 100px; + float: left; +} + +.title>div>hr { + float:left; + position: relative; + width: 100px; + top: 5px; + background-color: rgb(10, 127, 10); + height: 5px; + border: none; +} + +.form-layout { + clear: left; +} + +.form-input { + width: 350px; + margin-bottom: 5px; +} + +.form-input>div { + float: left; + width: 130px; +} + +.form-input>input { + width: 198px; +} + +.driver-checkbox { + margin: 20px 0px; +} + +.driver-checkbox>input { + float: left; + margin-left: 0px; +} + + +.cancel-button { + width: 75px; + height: 30px; + text-align: center; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #D2002E; + border-radius: 10px; +} + +.accept-button { + width: 75px; + height: 30px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; +} + + +.driver-completeorder-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; +} + +.completeorder-container { + text-align: center; + clear: both; +} + +.right-align { + width: 100%; + text-align: right; +} + +.driver-fullname-disp { + font-size: 105%; + font-weight: bold; + margin-top: 5px; +} + +/*Select driver*/ +.select-driver { + width: fit-content; + padding: 0 10px; + border-radius: 12px; + border: 1px solid black; + margin: 10px 0; +} + +.driver-content { + height: 120px; + overflow: hidden; +} + +.driver-pic { + height: 100px; + width: 100px; + margin: 10px; + border-radius: 100%; + border: 3px solid #5A1E83; + float: left; +} + +.driver-name-disp { + font-size: 160%; + font-weight: bold; + margin-top: 10px; +} + +.driver-rating-disp { + color: orange; + font-size: 110%; +} + +.driver-not-found { + color: grey; + height: 70px; + text-align: center; + text-transform: none; + line-height: 70px; + vertical-align: middle; +} + +.vote-disp { + color: black; +} + +.select-driver-btn { + width: auto; + color: white; + background-color: #5A1E83; + letter-spacing: 0.5px; + float: right; +} + +.order-btn { + float: none; + clear: both; +} + +#profile-pic { + width: 150px; + height: 150px; + border: 1px solid black; + float: left; + margin-right: 25px; + margin-bottom: 30px; +} + +#save-profile { + float: right; +} + +#register-button { + background-color: #4CAF50; + border: 5px solid rgb(10, 127, 10); + border-radius: 20px; + color: white; + padding: 15px 32px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + margin: 4px 2px; + cursor: pointer; +} + +#button-layout>div { + float: left; + width: 200px; + height: 66px; +} + +#button-layout a { + position: relative; + top: 20px; +} + + +.button-form { + text-align: right; + width: 100%; +} + +.button-form div { + float: left; +} + +.completeorder-btn { + width: 100px; + height: 50px; + float: none; +} + + /* The switch - the box around the slider */ + .switch { + position: relative; + display: inline-block; + + width: 50px; + height: 25px; +} + +/* Hide default HTML checkbox */ +.switch input {display:none;} + +/* The slider */ +.slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; +} + +.slider:before { + position: absolute; + content: ""; + height: 19px; + width: 19px; + left: 4px; + bottom: 3px; + background-color: white; + -webkit-transition: .4s; + transition: .4s; +} + +input:checked + .slider { + background-color: #1E7B25; +} + +input:focus + .slider { + box-shadow: 0 0 1px #1E7B25; +} + +input:checked + .slider:before { + -webkit-transform: translateX(23px); + -ms-transform: translateX(23px); + transform: translateX(23px); +} + +/* Rounded sliders */ +.slider.round { + border-radius: 34px; +} + +.slider.round:before { + border-radius: 50%; +} + +/* Menu Order */ +.menu-order { + height: 100%; + width: 100%; + position: relative; + font-size: 12px; + border-spacing: 20px 12px; +} + +.menu-order-column { + height: 100%; +} + +.menu-order-cell { + display: table-cell; + position: relative; + text-align: left; + font-weight: bold; +} + +.menu-order-number +{ + position: relative; + display: block; + width: 50px; + height: 50px; + border-radius: 25px; /* or 50% */ + text-align: center; + margin-left: auto; + margin-right: auto; + background-color: #311B92; + color: #ffffff; + line-height: 50px; +} + +.menu-order-title +{ + position: relative; + display: inline-block; +} + +#next-button-text { + line-height: 20px; + width: 75%; + padding-right: 1px; +} + +input.next-button { + width: 20%; + height: 30px; + line-height: 20px; + text-transform: uppercase; + letter-spacing: 1px; + border: 1px solid black; + background-color: #83D535; + border-radius: 10px; + display: inline-block; +} + +table, th, td { + table-layout: auto !important; + width: 100% auto !important; + max-width:100%; + white-space:nowrap; + border: 1px solid black; + border-collapse: collapse; +} + +.pref-button { + width: 21px; + height: 21px; + vertical-align: middle; + border: none; + display: inline-block; +} + +/** Rating **/ +.starRating:not(old){ + display : inline-block; + width : 7.5em; + height : 1.5em; + overflow : hidden; + vertical-align : bottom; +} + +.starRating:not(old) > input{ + margin-right : -100%; + opacity : 0; +} + +.starRating:not(old) > label{ + display : block; + float : right; + position : relative; + background : url('../img/star-off.svg'); + background-size : contain; +} + +.starRating:not(old) > label:before{ + content : ''; + display : block; + width : 1.5em; + height : 1.5em; + background : url('../img/star-on.svg'); + background-size : contain; + opacity : 0; + transition : opacity 0.2s linear; +} + +.starRating:not(old) > label:hover:before, +.starRating:not(old) > label:hover ~ label:before, +.starRating:not(:hover) > :checked ~ label:before{ + opacity : 1; +} diff --git a/HelloWeb/web/img/.gitkeep b/HelloWeb/web/img/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/web/img/a b/HelloWeb/web/img/a new file mode 100644 index 0000000000000000000000000000000000000000..33aea4c0776f5cb48d23fab288743ca549d3092e Binary files /dev/null and b/HelloWeb/web/img/a differ diff --git a/HelloWeb/web/img/admin b/HelloWeb/web/img/admin new file mode 100644 index 0000000000000000000000000000000000000000..dd3fea2721dfc529ad21300b36bada01e362032d Binary files /dev/null and b/HelloWeb/web/img/admin differ diff --git a/HelloWeb/web/img/delete.png b/HelloWeb/web/img/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..f8998a18f10f6e0e754cdf3f06794b299e90a1b9 Binary files /dev/null and b/HelloWeb/web/img/delete.png differ diff --git a/HelloWeb/web/img/driver1 b/HelloWeb/web/img/driver1 new file mode 100644 index 0000000000000000000000000000000000000000..8de4beb39862ac7125f2339dcb1c9b32ab7f90f8 Binary files /dev/null and b/HelloWeb/web/img/driver1 differ diff --git a/HelloWeb/web/img/edit.png b/HelloWeb/web/img/edit.png new file mode 100644 index 0000000000000000000000000000000000000000..919913bc0052626f61433d69128dc17ac739450b Binary files /dev/null and b/HelloWeb/web/img/edit.png differ diff --git a/HelloWeb/web/img/images.jpg b/HelloWeb/web/img/images.jpg new file mode 100644 index 0000000000000000000000000000000000000000..30b7ce2cd13386017b2fa5d56503d42e4c25ea1d Binary files /dev/null and b/HelloWeb/web/img/images.jpg differ diff --git a/HelloWeb/web/img/motaraido.png b/HelloWeb/web/img/motaraido.png new file mode 100644 index 0000000000000000000000000000000000000000..2b72f7e2abdd5f8ea4d11911d7c6ad9260be5262 Binary files /dev/null and b/HelloWeb/web/img/motaraido.png differ diff --git a/HelloWeb/web/img/pen.png b/HelloWeb/web/img/pen.png new file mode 100644 index 0000000000000000000000000000000000000000..d2bcdf9ca880be6a8d6d687245ec080d4d711240 Binary files /dev/null and b/HelloWeb/web/img/pen.png differ diff --git a/HelloWeb/web/img/profilepic.png b/HelloWeb/web/img/profilepic.png new file mode 100644 index 0000000000000000000000000000000000000000..2b72f7e2abdd5f8ea4d11911d7c6ad9260be5262 Binary files /dev/null and b/HelloWeb/web/img/profilepic.png differ diff --git a/HelloWeb/web/img/star-off.svg b/HelloWeb/web/img/star-off.svg new file mode 100755 index 0000000000000000000000000000000000000000..9a393aa40d139025bf2324aec47830757facb84a --- /dev/null +++ b/HelloWeb/web/img/star-off.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path fill="#fff" stroke="#ccc" d="M 12,2.5 14.4,9.5 21.5,9.5 15.8,13.75 18.5,21.5 12,16.625 5.5,21.5 8.2,13.75 2.5,9.5 9.6,9.5 z"/> +</svg> diff --git a/HelloWeb/web/img/star-on.svg b/HelloWeb/web/img/star-on.svg new file mode 100755 index 0000000000000000000000000000000000000000..fac31ff43ec2ba8dff2f36a3b0ae43d92b312533 --- /dev/null +++ b/HelloWeb/web/img/star-on.svg @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"> + <path fill="#311B92" stroke="#000" d="M 12,2.5 14.4,9.5 21.5,9.5 15.8,13.75 18.5,21.5 12,16.625 5.5,21.5 8.2,13.75 2.5,9.5 9.6,9.5 z"/> +</svg> diff --git a/HelloWeb/web/img/tes1 b/HelloWeb/web/img/tes1 new file mode 100644 index 0000000000000000000000000000000000000000..7352b27d5a4202c3849d34614463b6e94eee7285 Binary files /dev/null and b/HelloWeb/web/img/tes1 differ diff --git a/HelloWeb/web/img/winarto b/HelloWeb/web/img/winarto new file mode 100644 index 0000000000000000000000000000000000000000..33aea4c0776f5cb48d23fab288743ca549d3092e Binary files /dev/null and b/HelloWeb/web/img/winarto differ diff --git a/HelloWeb/web/img/yowinarto b/HelloWeb/web/img/yowinarto new file mode 100644 index 0000000000000000000000000000000000000000..8de4beb39862ac7125f2339dcb1c9b32ab7f90f8 Binary files /dev/null and b/HelloWeb/web/img/yowinarto differ diff --git a/HelloWeb/web/index.jsp b/HelloWeb/web/index.jsp new file mode 100644 index 0000000000000000000000000000000000000000..22504f9267bb56b7c135ccc41f977d7940e730e0 --- /dev/null +++ b/HelloWeb/web/index.jsp @@ -0,0 +1,23 @@ +<%-- + Document : index + Created on : Nov 4, 2017, 9:23:05 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + <h1>Hello World!</h1> + + <form name="Name Input Form" action="Order.jsp"> + Enter Your Name: + <input type="text" name="name" value="" /> + <input type="submit" value="OK" /> + </form> + </body> +</html> diff --git a/HelloWeb/web/js/.gitkeep b/HelloWeb/web/js/.gitkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/HelloWeb/web/js/app.js b/HelloWeb/web/js/app.js new file mode 100644 index 0000000000000000000000000000000000000000..dbea0f5c367dec9b0cb20f3b11c4ce40644838a3 --- /dev/null +++ b/HelloWeb/web/js/app.js @@ -0,0 +1,102 @@ +function loginValidation() { + var username = document.forms["loginform"]["username"]; + var pwd = document.forms["loginform"]["password"]; + var usrVerify = Validate(username, "empty"); + var pwdVerify = Validate(pwd, "empty"); + return (usrVerify && pwdVerify); +} + +function editProfileValidation() { + var name = document.forms["editprofile-form"]["your-name"]; + var phone = document.forms["editprofile-form"]["phone-number"]; + var nameVerify = Validate(name, "empty", 0, 20, "length"); + var phoneVerify = Validate(phone, "empty", 9, 12, "length"); + return (nameVerify && phoneVerify); +} + +function Validate(inputArea, type1, min = 0, max = 0, type2 = null, type3 = null) { + var error = GetErrorMessage(inputArea.value, type1, min, max); + if(error === "") { + if (type2 != null) { + error = GetErrorMessage(inputArea.value, type2, min, max); + console.log(type2 + "length"); + } + if (error === "") { + if (type3 != null) { + error = GetErrorMessage(inputArea.value, type3, min, max); + } + } + } + if(error !== "" && inputArea.nextElementSibling === null) { + var errorEl = document.createElement("p"); + errorEl.innerHTML = error; + errorEl.className = "error"; + insertAfterElement(errorEl, inputArea); + + inputArea.addEventListener("blur", function() { + var error = GetErrorMessage(inputArea.value, type1, min, max); + if(error === "") { + if (type2 != null) { + error = GetErrorMessage(inputArea.value, type2, min, max); + } + if (error === "") { + if (type3 != null) { + error = GetErrorMessage(inputArea.value, type3, min, max); + } + } + } + if (error === ""){ + this.nextSibling.remove(); + } + },true); + } + return (error === ""); +} + +function insertAfterElement(el, src) { + src.parentNode.insertBefore(el, src.nextSibling); +} + + +function GetErrorMessage(textArea, type, min = 0, max = 0) { + var validateText = ""; + switch(type) { + case "empty" : + if(isEmpty(textArea)) { + validateText = "Fill in the field"; + } + break; + case "email" : + if(!isEmail(textArea)) { + validatedText = "Invalid Email Address"; + } + break; + case "number" : + if(isNumber(textArea)){ + validateText = "Fill in with only number"; + } + break; + case "length" : + if (!isLengthEqual(textArea,min,max)){ + validateText = "Character must be between " + min.toString() + " and " + max.toString() + " long"; + } + break; + } + return validateText; +} + +function isEmpty(textArea) { + return (textArea.match(/^s+$/) || textArea == ""); +} + +function isNumber(textArea) { + return (!isNaN(textArea)); +} + +function isLengthEqual(textArea, min, max){ + return (textArea.length >= min && textArea.length <= max); +} + +function isEmail(textArea) { + return (textArea.match(/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-]+)+/)); +} \ No newline at end of file diff --git a/HelloWeb/web/js/history.js b/HelloWeb/web/js/history.js new file mode 100644 index 0000000000000000000000000000000000000000..4e4b3f528dfb96a699cdbb10ad6ba0b731005f5a --- /dev/null +++ b/HelloWeb/web/js/history.js @@ -0,0 +1,41 @@ + +function tabActive(tag) { + var tabUser = document.getElementById('user-his'); + var tabDriver = document.getElementById('driver-his'); + var order = document.getElementsByClassName('order-list'); + var driver = document.getElementsByClassName('driver-list'); + + if (tag == 'user') { + order[0].classList.add("active-list"); + driver[0].classList.remove("active-list"); + tabUser.classList.add('active'); + tabDriver.classList.remove('active'); + } + else { + driver[0].classList.add("active-list"); + order[0].classList.remove("active-list"); + tabDriver.classList.add('active'); + tabUser.classList.remove('active'); + } +} + +tabActive('user'); + +function hideThis(user) { + updateHide(user); + console.log(user[0]); +} + +function updateHide(history) +{ + var data = "user=" + history[0] + "&driver=" + history[1] + "&date=" + history[4]; + var xhr; + if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + xhr = new ActiveXObject("Microsoft.XMLHTTP"); + } + xhr.open("GET", "/history/update", true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(data); +} \ No newline at end of file diff --git a/HelloWeb/web/js/selectdriver.js b/HelloWeb/web/js/selectdriver.js new file mode 100644 index 0000000000000000000000000000000000000000..2d7b38f4833461051ad76f37a3eac112a88b0156 --- /dev/null +++ b/HelloWeb/web/js/selectdriver.js @@ -0,0 +1,97 @@ +var prefDriver = document.getElementById("pref-driver"); +var otherDriver = document.getElementById("other-driver"); +var driverSumRating = []; +var driverCountRating = []; +var driverNameList = []; + +for (var i = 0; i < driverArr.length; i++) { + for(var j = 0; j < ratingArr.length; j++) { + if(driverArr[i] === ratingArr[j]["usernameDriver"]){ + driverSumRating[driverArr[i]] = (driverSumRating[driverArr[i]] === undefined) ? parseFloat(ratingArr[j]["rating"]) : driverSumRating[driverArr[i]] + parseFloat(ratingArr[j]["rating"]); + driverCountRating[driverArr[i]] = (driverCountRating[driverArr[i]] === undefined) ? 1 : driverCountRating[driverArr[i]]+1; + } + } + for(var k = 0; k < driverNameArr.length; k++) { + if(driverArr[i] === driverNameArr[k]["username"]){ + driverNameList[driverArr[i]] = driverNameArr[k]["fullname"]; + break; + } + } +} + +for(var j = 0; j < ratingArr.length; j++) { + if(preferredDriver === ratingArr[j]["usernameDriver"]){ + driverSumRating[preferredDriver] = (driverSumRating[preferredDriver] === undefined) ? parseFloat(ratingArr[j]["rating"]) : driverSumRating[preferredDriver] + parseFloat(ratingArr[j]["rating"]); + driverCountRating[preferredDriver] = (driverCountRating[preferredDriver] === undefined) ? 1 : driverCountRating[preferredDriver]+1; + } +} +for(var k = 0; k < driverNameArr.length; k++) { + if(preferredDriver === driverNameArr[k]["username"]){ + driverNameList[preferredDriver] = driverNameArr[k]["fullname"]; + break; + } +} + +if(preferredDriver !== "") { + CreateDriverDisplay(prefDriver, preferredDriver); +} else { + CreateNotFoundDisplay(prefDriver); +} + +if(driverArr.length > 0) { + for (var i = 0; i < driverArr.length; i++) { + CreateDriverDisplay(otherDriver, driverArr[i]); + } +} else { + CreateNotFoundDisplay(otherDriver); +} + +function CreateDriverDisplay(driverType, driverUsrName) { + var newForm = driverType.appendChild(document.createElement("form")); + var newContainer = newForm.appendChild(document.createElement("div")); + var newImg = newContainer.appendChild(document.createElement("img")); + var newName = newContainer.appendChild(document.createElement("div")); + var newRating = newContainer.appendChild(document.createElement("div")); + var postUsrName = newContainer.appendChild(document.createElement("input")); + var newPickLoc = newContainer.appendChild(document.createElement("input")); + var newDest = newContainer.appendChild(document.createElement("input")); + var newBtn = newContainer.appendChild(document.createElement("input")); + + + var avgRating = (driverSumRating[driverUsrName]/driverCountRating[driverUsrName]).toFixed(1).toString(); + + newForm.setAttribute('method', 'post'); + newForm.setAttribute('action', '/order/' + user + '/completeorder'); + newContainer.classList.add("driver-content"); + + newImg.classList.add("driver-pic"); + newImg.setAttribute('src', '/public/img/' + driverUsrName); + + newName.classList.add("driver-name-disp"); + newName.innerHTML = driverNameList[driverUsrName]; + + newRating.classList.add("driver-rating-disp"); + newRating.innerHTML = "★" + avgRating + " <span class='vote-disp'>(" + driverCountRating[driverUsrName] + " votes)</span>"; + + postUsrName.setAttribute('type', 'hidden'); + postUsrName.setAttribute('name', 'driver-username'); + postUsrName.setAttribute('value', driverUsrName); + + newPickLoc.setAttribute('type','hidden'); + newPickLoc.setAttribute('name','pickLoc'); + newPickLoc.setAttribute('value', pickLoc); + newDest.setAttribute('type','hidden'); + newDest.setAttribute('name','dest'); + newDest.setAttribute('value', dest); + + newBtn.classList.add("accept-button"); + newBtn.classList.add("select-driver-btn"); + newBtn.setAttribute('type','submit'); + newBtn.setAttribute('value','Select Driver'); +} + +function CreateNotFoundDisplay(driverType) { + var newContainer = driverType.appendChild(document.createElement("div")); + newContainer.classList.add("driver-not-found"); + newContainer.innerHTML = "Nothing to display."; +} \ No newline at end of file diff --git a/HelloWeb/web/js/signup.js b/HelloWeb/web/js/signup.js new file mode 100644 index 0000000000000000000000000000000000000000..43a9342a95538b30e1b8bf663cf3fc0a0b62718f --- /dev/null +++ b/HelloWeb/web/js/signup.js @@ -0,0 +1,44 @@ +function checkData(name, element) +{ + var data = "?" + name + "=" + document.forms["signupform"][name].value; + var xhr; + if (window.XMLHttpRequest) { + xhr = new XMLHttpRequest(); + } else if (window.ActiveXObject) { + xhr = new ActiveXObject("Microsoft.XMLHTTP"); + } + + xhr.open("GET", "/validation" + data, true); + xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + xhr.send(null); + xhr.onload = function() { + if (xhr.readyState == 4) { + if (xhr.status == 200) { + if (xhr.responseText === 'OK') { + document.getElementById(element).innerHTML = "√"; + } else { + document.getElementById(element).innerHTML = "X"; + } + } + else { + alert('There was a problem with the request.'); + } + } + } +} + +function signupValidation() { + var username = document.forms["signupform"]["username"]; + var password = document.forms["signupform"]["password"]; + var cpassword = document.forms["signupform"]["confirm-password"]; + var email = document.forms["signupform"]["email"]; + var fullname = document.forms["signupform"]["your-name"]; + var phone = document.forms["signupform"]["phone"]; + var usrVerify = Validate(username, "empty"); + var pwdVerify = Validate(password, "empty"); + var cpwdVerify = Validate(cpassword, "empty"); + var emailVerify = Validate(email, "empty", 0, 0, "email"); + var fullnameVerify = Validate(fullname, "empty", 0, 20, "length"); + var phoneVerify = Validate(phone, "empty", 9, 12, "length"); + return (usrVerify && pwdVerify && cpwdVerify && emailVerify && fullnameVerify && phoneVerify); +} \ No newline at end of file diff --git a/HelloWeb/web/response.jsp b/HelloWeb/web/response.jsp new file mode 100644 index 0000000000000000000000000000000000000000..57974eb4eb5d11be34b125ef651ba674465e7ffb --- /dev/null +++ b/HelloWeb/web/response.jsp @@ -0,0 +1,19 @@ +<%-- + Document : response + Created on : Nov 4, 2017, 9:26:56 AM + Author : nim_13515091 +--%> + +<%@page contentType="text/html" pageEncoding="UTF-8"%> +<!DOCTYPE html> +<html> + <head> + <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> + <title>JSP Page</title> + </head> + <body> + <jsp:useBean id="mybean" scope="session" class="org.mypackage.hello.NameHandler" /> + <jsp:setProperty name="mybean" property="name" /> + <h1>Hello, <jsp:getProperty name="mybean" property="name" />!</h1> + </body> +</html>