diff options
| author | Melonai <einebeere@gmail.com> | 2020-05-07 04:29:30 +0200 |
|---|---|---|
| committer | Melonai <einebeere@gmail.com> | 2020-05-07 04:29:30 +0200 |
| commit | 1e06820480fb2d9cf9db1373817d5980a891d5b4 (patch) | |
| tree | 63d0d45190f95b40f20dfd8a718a912434286db3 /client/static | |
| parent | 385fcdd46b536d28094a96f3f6be0e87496277a1 (diff) | |
| download | shorest-1e06820480fb2d9cf9db1373817d5980a891d5b4.tar.zst shorest-1e06820480fb2d9cf9db1373817d5980a891d5b4.zip | |
interaction between API and client
Diffstat (limited to 'client/static')
| -rw-r--r-- | client/static/main.css | 100 | ||||
| -rw-r--r-- | client/static/main.js | 30 |
2 files changed, 130 insertions, 0 deletions
diff --git a/client/static/main.css b/client/static/main.css new file mode 100644 index 0000000..1726881 --- /dev/null +++ b/client/static/main.css @@ -0,0 +1,100 @@ +html * { + font-family: Roboto, sans-serif; + font-size: 18px; +} + +.active { + justify-content: center; + max-width: 100vw; + margin-top: 20%; + padding: 0 50px 0 50px; +} + +.title { + padding-left: 30px; + margin-bottom: 10px; + line-height: 1.42857143; + color: #E0E0E0; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; + border-color: #E0E0E0; + transition: border-color 1s; +} + +.input-field { + position: relative; + z-index: 2; + margin-bottom: 0; + text-indent: 0; + color: #727272; + background-color: #fff; + background-image: none; + box-sizing: border-box; + border: none; + outline: none; + height: 100%; + width: 100%; +} + +.input-field-text { + margin-left: 30px; + box-sizing: border-box; + color: #E0E0E0; +} + +.input-container { + z-index: 2; + width: 100%; + float: left; + display: flex; + align-items: center; + position: relative; + padding: 0; + border-radius: 100px 0 0 100px; + border: 2px solid; + border-color: inherit; + margin: 0; + box-sizing: border-box; + height: 10vh; +} + +.btn-container { + display: table-cell; + position: relative; + font-size: 0; + white-space: nowrap; + width: 1%; + height: 0; + vertical-align: middle; + border-color: inherit; +} + +.btn { + z-index: 2; + margin-left: -1px; + display: inline-block; + margin-bottom: 0; + font-weight: 400; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + background-image: none; + background-color: #fff; + padding: 4px 5vw; + height: 10vh; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + border-radius: 0 100px 100px 0; + border: 2px solid; + border-color: inherit; + border-left: none; +} \ No newline at end of file diff --git a/client/static/main.js b/client/static/main.js new file mode 100644 index 0000000..aa823c0 --- /dev/null +++ b/client/static/main.js @@ -0,0 +1,30 @@ +$(document).ready(function() { + $('#form').on('submit', onFormSubmit); + $('#url').on({'input': inputUpdate, 'paste': pasteTrim}); +}); + +function onFormSubmit() { + const urlField = document.getElementById('url'); + const data = JSON.stringify({'url': 'https://' + urlField.value}); + $.ajax('/', {method: 'POST', data: data, contentType: 'application/json'}).then(function (r) { + urlField.value = 'sho.rest/' + r.hash; + }) + return false; +} + +function inputUpdate() { + const userInput = document.getElementById('url').value; + if (!validate({website: 'https://' + userInput}, {website: {url: true}})) { + $('#form-group').css('border-color', '#E0E0E0'); + } else { + $('#form-group').css('border-color', '#FFBCBC'); + } +} + +function pasteTrim() { + const pattern = /^https?:\/\//; + setTimeout(() => { + const element = $('#url'); + element.value = element.value.replace(pattern, ''); + }, 0); +} \ No newline at end of file |
