From 7a73162607544204032aa66cce755daf21edebda Mon Sep 17 00:00:00 2001 From: Matt Strapp Date: Tue, 24 May 2022 11:18:46 -0500 Subject: Graduate Signed-off-by: Matt Strapp --- csci4131/hw3/strap012/MyForm.html | 55 ++++++++ csci4131/hw3/strap012/Untitled.png | Bin 0 -> 91 bytes csci4131/hw3/strap012/carlson.jpg | Bin 0 -> 39588 bytes csci4131/hw3/strap012/contacts.js | 221 +++++++++++++++++++++++++++++++ csci4131/hw3/strap012/gophers-mascot.png | Bin 0 -> 82836 bytes csci4131/hw3/strap012/johnston.jpg | Bin 0 -> 47355 bytes csci4131/hw3/strap012/morrill.jpg | Bin 0 -> 48670 bytes csci4131/hw3/strap012/myContacts.html | 113 ++++++++++++++++ csci4131/hw3/strap012/myWidgets.html | 148 +++++++++++++++++++++ csci4131/hw3/strap012/passwordcheck.css | 60 +++++++++ csci4131/hw3/strap012/passwordcheck.js | 42 ++++++ csci4131/hw3/strap012/shepherd.jpg | Bin 0 -> 675244 bytes csci4131/hw3/strap012/snyder.jpg | Bin 0 -> 45356 bytes csci4131/hw3/strap012/style.css | 118 +++++++++++++++++ csci4131/hw3/strap012/walter.jpg | Bin 0 -> 150800 bytes 15 files changed, 757 insertions(+) create mode 100644 csci4131/hw3/strap012/MyForm.html create mode 100644 csci4131/hw3/strap012/Untitled.png create mode 100644 csci4131/hw3/strap012/carlson.jpg create mode 100644 csci4131/hw3/strap012/contacts.js create mode 100644 csci4131/hw3/strap012/gophers-mascot.png create mode 100644 csci4131/hw3/strap012/johnston.jpg create mode 100644 csci4131/hw3/strap012/morrill.jpg create mode 100644 csci4131/hw3/strap012/myContacts.html create mode 100644 csci4131/hw3/strap012/myWidgets.html create mode 100644 csci4131/hw3/strap012/passwordcheck.css create mode 100644 csci4131/hw3/strap012/passwordcheck.js create mode 100644 csci4131/hw3/strap012/shepherd.jpg create mode 100644 csci4131/hw3/strap012/snyder.jpg create mode 100644 csci4131/hw3/strap012/style.css create mode 100644 csci4131/hw3/strap012/walter.jpg (limited to 'csci4131/hw3') diff --git a/csci4131/hw3/strap012/MyForm.html b/csci4131/hw3/strap012/MyForm.html new file mode 100644 index 0000000..4e2760d --- /dev/null +++ b/csci4131/hw3/strap012/MyForm.html @@ -0,0 +1,55 @@ + + + + + + There is no form + + + + +
+

Simple Form

+
+

+ + + + + + +

+

+ + +

+
+
+ + diff --git a/csci4131/hw3/strap012/Untitled.png b/csci4131/hw3/strap012/Untitled.png new file mode 100644 index 0000000..92a4aa1 Binary files /dev/null and b/csci4131/hw3/strap012/Untitled.png differ diff --git a/csci4131/hw3/strap012/carlson.jpg b/csci4131/hw3/strap012/carlson.jpg new file mode 100644 index 0000000..d82c37c Binary files /dev/null and b/csci4131/hw3/strap012/carlson.jpg differ diff --git a/csci4131/hw3/strap012/contacts.js b/csci4131/hw3/strap012/contacts.js new file mode 100644 index 0000000..8518ef6 --- /dev/null +++ b/csci4131/hw3/strap012/contacts.js @@ -0,0 +1,221 @@ +function change(small, row) { + document.getElementsByClassName("smol")[row].src = small; +} +function lucky() { + var image = ["carlson.jpg", "johnston.jpg", "morrill.jpg", "shepherd.jpg", "snyder.jpg", "walter.jpg"]; + document.getElementById("bigboi").src = image[Math.floor(6 * Math.random())]; +} +let isRotating=0; +function dizzy() { + if (!isRotating) { + document.getElementById("bigboi").classList.remove("isntRotating"); + } else { + document.getElementById("bigboi").classList.add("isntRotating"); + } + isRotating^=1; +} +function check(value) { + if(value==="Other") + document.getElementById('others').style.display = 'block'; + else + document.getElementById('others').style.display = 'none'; +} +let map; +var center = { lat: 44.9727, lng: -93.23540000000003 }; +function initMap() { + if (navigator.geolocation) { + navigator.geolocation.getCurrentPosition( + (position) => { + curLoc = { + lat: position.coords.latitude, + lng: position.coords.longitude, + }; + }, + () => { + alert("Geolocation failed. Directions will not work."); + } + ) + } + map = new google.maps.Map(document.getElementById("map"), { + center: center, + zoom: 14, + }); + + var service = new google.maps.places.PlacesService(map); + entries = document.getElementsByClassName("entry"); + locations = []; + for (e=0; e" + + "" + newEntry.getElementsByClassName("name")[0].textContent + "" + "
" + + newEntry.getElementsByClassName("category")[0].textContent + "
" + + newEntry.getElementsByClassName("room")[0].textContent + " " + newEntry.getElementsByClassName("street")[0].textContent + "
" + + newEntry.getElementsByClassName("city")[0].textContent + + "", + }, + }); + marker.addListener('click', function () { + if (!this.infoWindow) { + this.infoWindow = new google.maps.InfoWindow({ + content: this.data.content, + }); + this.infoWindow.open(map, this); + } + }) + } +} +var service; +var otherRadius; +var searchMarker = []; +function searchPlaces() { + var request; + if (document.getElementById("places").value!="Other") { + request = { + location: center, + radius: document.getElementById("distance").value, + type: document.getElementById("places").value, + }; + service = new google.maps.places.PlacesService(map); + service.nearbySearch(request, (results, status) => { + if (status === google.maps.places.PlacesServiceStatus.OK && results) { + addPointsSearch(results, false); + } + }); + } else { + request = { + location: center, + radius: document.getElementById("distance").value, + query: document.getElementById("others").value, + }; + otherRadius = request.radius; + service = new google.maps.places.PlacesService(map); + service.textSearch(request, (results, status) => { + if (status === google.maps.places.PlacesServiceStatus.OK && results) { + addPointsSearch(results, true); + } + }); + } +} + +function addPointsSearch(locations, isOther) { + deleteMarkers(); + for (x in locations) { + var marker; + if (isOther) { + if (google.maps.geometry.spherical.computeDistanceBetween(locations[x].geometry.location, map.getCenter()) < parseInt(otherRadius)) { + marker = new google.maps.Marker({ + map, + title: locations[x].name, + position: locations[x].geometry.location, + data: { + content: "" + locations[x].name + "" + + "
" + locations[x].formatted_address + }, + }); + } + } else { + marker = new google.maps.Marker({ + map, + title: locations[x].name, + position: locations[x].geometry.location, + data: { + content: "" + locations[x].name + "" + + "
" + locations[x].vicinity + }, + }); + } + if (marker) { + marker.addListener('click', function () { + if (!this.infoWindow) { + this.infoWindow = new google.maps.InfoWindow({ + content: this.data.content, + }); + this.infoWindow.open(map, this); + } + }) + searchMarker.push(marker); + } + + } +} +function deleteMarkers() { + for (let i = 0; i < searchMarker.length; i++) { + searchMarker[i].setMap(null); + } + searchMarker = []; +} + +var curLoc, directionsService, directionsRenderer; +function directions () { + directionsService = new google.maps.DirectionsService(); + directionsRenderer = new google.maps.DirectionsRenderer(); + document.getElementById("transitList").textContent = ""; + directionsRenderer.setPanel(document.getElementById("transitList")); + directionsRenderer.setMap(map); + var selectedMode = document.getElementById('means').value; + var dest = { + query: document.getElementById("destination").value, + fields: ['name', 'geometry'], + }; + service = new google.maps.places.PlacesService(map); + service.findPlaceFromQuery(dest, function (results, status) { + if (status === google.maps.places.PlacesServiceStatus.OK) { + console.log(results); + doDirections(results[0]); + } + }); +} + +function doDirections(input) { + var means; + var mean = document.getElementsByName('means'); + for (var i = 0; i < mean.length; i++) { + if (mean[i].checked) { + means = mean[i].value; + } + } + + var request = { + origin: curLoc, + destination: input.geometry.location, + // Note that JavaScript allows us to access the constant + // using square brackets and a string value as its + // "property." + travelMode: google.maps.TravelMode[means] + }; + directionsService.route(request, function (result, status) { + if (status == 'OK') { + directionsRenderer.setDirections(result); + } + }); +} + +function initForm() { + map = new google.maps.Map(document.getElementById("formap"), { + center: center, + zoom: 14, + }); +} \ No newline at end of file diff --git a/csci4131/hw3/strap012/gophers-mascot.png b/csci4131/hw3/strap012/gophers-mascot.png new file mode 100644 index 0000000..44e62fa Binary files /dev/null and b/csci4131/hw3/strap012/gophers-mascot.png differ diff --git a/csci4131/hw3/strap012/johnston.jpg b/csci4131/hw3/strap012/johnston.jpg new file mode 100644 index 0000000..b8b7f68 Binary files /dev/null and b/csci4131/hw3/strap012/johnston.jpg differ diff --git a/csci4131/hw3/strap012/morrill.jpg b/csci4131/hw3/strap012/morrill.jpg new file mode 100644 index 0000000..144d458 Binary files /dev/null and b/csci4131/hw3/strap012/morrill.jpg differ diff --git a/csci4131/hw3/strap012/myContacts.html b/csci4131/hw3/strap012/myContacts.html new file mode 100644 index 0000000..6e9293d --- /dev/null +++ b/csci4131/hw3/strap012/myContacts.html @@ -0,0 +1,113 @@ + + + + + My Contacts + + + + + + + + +
+

University Contacts

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameCategoryLocationInformationEmailURL
Joan GabelIndustry100 Church Street SE
202 Morrill Hall
Minneapolis MN 55455
President of the University of Minnesota
upres@umn.eduHome Page
Mostafa KavehIndustry117 Pleasant St SE
105 Walter Library
Minneapolis MN 55455
Dean of the College of Science and Engineering
mos@umn.eduHome Page
John ColemanIndustry101 Pleasant Street SE
215 Johnston Hall
Minneapolis MN 55455
Dean of the College of Liberal Arts
coleman@umn.eduHome Page
Valery ForbesIndustry1475 Gortner Avenue
123 Snyder Hall
St. Paul MN 55108
Dean of the College of Biological Sciences
cbsdeans@umn.eduHome Page
Sri ZaheerIndustry321 19th Avenue S
Suite 4-300 Carlson School of Management
Minneapolis MN 55455
Dean of the Carlson School of Management
szaheer@umn.eduHome Page
+ + Goldy Gopher
+ + +
+
+
+
+
+ +
+ Directions to
+
+ + + + + +
+
+
+ + + + + diff --git a/csci4131/hw3/strap012/myWidgets.html b/csci4131/hw3/strap012/myWidgets.html new file mode 100644 index 0000000..79fc15e --- /dev/null +++ b/csci4131/hw3/strap012/myWidgets.html @@ -0,0 +1,148 @@ + + + + My Widgets + + + + + + + + +

+ + + + + diff --git a/csci4131/hw3/strap012/passwordcheck.css b/csci4131/hw3/strap012/passwordcheck.css new file mode 100644 index 0000000..beceb1c --- /dev/null +++ b/csci4131/hw3/strap012/passwordcheck.css @@ -0,0 +1,60 @@ +#password{ + margin: 0; + padding: 0; + font-family: 'Raleway', sans-serif; + font-size: 15px; + line-height: 1.5; +} +#container { + width: 535px; + background: #ffffff; + padding: 20px; + margin: 90px auto; + border-radius: 5px; + height: 150px; + border: 2px solid gray; +} +#header { + text-align: center; + background-color: #FEFFED; + border-radius: 5px; + margin: -39px -20px 10px -20px; +} +.password{ + padding-top: 10px; +} +#content { + margin-left: 57px; + margin-top: 40px; +} +#register label{ + margin-right:5px; +} +#register input { + padding: 5px 14px; + border: 1px solid #d5d9da; + box-shadow: 0 0 9px #0E34F5 inset; + width: 272px; + font-size: 1em; + height: 25px; +} +#register .short{ + font-weight:bold; + color:#FF0000; + font-size:larger; +} +#register .weak{ + font-weight:bold; + color:orange; + font-size:larger; +} +#register .good{ + font-weight:bold; + color:#2D98F3; + font-size:larger; +} +#register .strong{ + font-weight:bold; + color: limegreen; + font-size:larger; +} diff --git a/csci4131/hw3/strap012/passwordcheck.js b/csci4131/hw3/strap012/passwordcheck.js new file mode 100644 index 0000000..97a2918 --- /dev/null +++ b/csci4131/hw3/strap012/passwordcheck.js @@ -0,0 +1,42 @@ +var input; +var result = document.querySelector("span"); +window.addEventListener('DOMContentLoaded', (event) => { + input = document.getElementsByName("password")[0]; +}); +function checkStrength() { + var password = input.value; + var strength = 0; + if (password.length < 6) { + result.removeAttribute("class"); + result.classList.add('short'); + result.innerHTML = "Too short"; + return; + } + if (password.length > 7) { strength += 1;} + // If password contains both lower and uppercase characters, increase strength value. + if (password.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) { strength += 1;} + // If it has numbers and characters, increase strength value. + if (password.match(/([a-zA-Z])/) && password.match(/([0-9])/)) { strength += 1;} + // If it has one special character, increase strength value. + if (password.match(/([!,%,&,@,#,$,^,*,?,_,~])/)) { strength += 1;} + // If it has two special characters, increase strength value. + if (password.match(/(.*[!,%,&,@,#,$,^,*,?,_,~].*[!,%,&,@,#,$,^,*,?,_,~])/)) { strength += 1;} + // Calculated strength value, we can return messages + // If value is less than 2 + if (strength < 2) { + result.removeAttribute("class"); + result.classList.add('weak'); + result.innerHTML = 'Weak'; + return; + } else if (strength == 2) { + result.removeAttribute("class"); + result.classList.add('good'); + result.innerHTML = 'Good'; + return; + } else { + result.removeAttribute("class"); + result.classList.add('strong'); + result.innerHTML = 'Strong'; + return; + } +} diff --git a/csci4131/hw3/strap012/shepherd.jpg b/csci4131/hw3/strap012/shepherd.jpg new file mode 100644 index 0000000..d1262f8 Binary files /dev/null and b/csci4131/hw3/strap012/shepherd.jpg differ diff --git a/csci4131/hw3/strap012/snyder.jpg b/csci4131/hw3/strap012/snyder.jpg new file mode 100644 index 0000000..4531a58 Binary files /dev/null and b/csci4131/hw3/strap012/snyder.jpg differ diff --git a/csci4131/hw3/strap012/style.css b/csci4131/hw3/strap012/style.css new file mode 100644 index 0000000..9f28572 --- /dev/null +++ b/csci4131/hw3/strap012/style.css @@ -0,0 +1,118 @@ +/* Global */ +body { + background-color:antiquewhite; +} +.linkTable { + border: 1px solid black; + margin-left: 20px; + background-color: white; + border-collapse: separate; +} + +/* Contacts */ +table, th, td { + max-width: 80%; + overflow-x:auto; + border: 1px solid black; + border-collapse: collapse; +} +table { + float:left; + max-width: 60%; +} +tr:nth-child(even) { + background-color:blanchedalmond; +} +tr:nth-child(odd) { + background-color: burlywood; +} +.smol { + max-height: 100%; + width: 6em; +} +.large { + float: right; + max-width: max-content; +} +#bigboi { + width: 25em; + height: 15em; + object-fit: cover; + margin-right: 0; +} +.isRotating { + animation:5s rotate infinite linear; +} +.isntRotating { + animation-play-state: paused; +} +@keyframes rotate{ + 100%{ transform:rotate(1turn) } +} +#map, #formap { + /* clear: both; */ + float: left; + padding-top: 30%; + margin-top: 1em; + margin-left: .2em; + width: 50%; + height: 30%; + max-height: 40%; +} +#formap { + float: right; +} +#transitList { + float: left; + width: 20%; + color: white; +} +.id { + text-align: center; +} +#googlymap { + width: 100%; + overflow: auto; + /* display: flex; */ + /* position: absolute; */ +} + +.inputBox { + float: left; + border: 1px solid black; + width: 25%; +} +.inputBox:nth-child(even) { + background-color:blanchedalmond; +} +.inputBox:nth-child(odd) { + background-color: burlywood; +} +#others { + display:none; +} + +/* Form */ +.Form { + float: left; + background-color: whitesmoke; + padding-left: 5%; + max-width: 25%; +} +/* Widgets */ +.grid { + align-content: center; + display: inline-grid; + grid-template-columns: 40% 40%; + grid-template-rows: 30%; + gap: .1em 10%; +} +.griditem { + padding: 10%; +} +iframe { + border: 0px; +} + + + diff --git a/csci4131/hw3/strap012/walter.jpg b/csci4131/hw3/strap012/walter.jpg new file mode 100644 index 0000000..37d0d56 Binary files /dev/null and b/csci4131/hw3/strap012/walter.jpg differ -- cgit v1.2.3