JSFiddle - React, Tailwind, and code Playground
by Walter Rumsby
HTML
<script src="//code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" href="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script src="//stackpath.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<!--
Bootstrap docs: https://getbootstrap.com/docs
-->
<form id="branch-form">
<div class="container">
<div class="form-group">
<label for="branchName">Branch Name</label>
<input type="text" class="form-control" id="branchName" aria-describedby="branchHelp" placeholder="Enter branch name">
<small id="branchHelp" class="form-text text-muted">e.g. <code>wrumsby/ch4622/clean-up-upload-error</code></small>
</div>
<div class="btn-group" role="group">
<button type="submit" class="btn">Web App</button>
<button type="submit" class="btn btn-secondary">Review</button>
<button type="submit" class="btn btn-secondary">Account</button>
<button type="submit" class="btn btn-secondary">Matrix</button>
<button type="submit" class="btn btn-secondary">Dashboard</button>
</div>
</div>
</form>
CSS
.row {
background: #f8f9fa;
margin-top: 20px;
}
.col {
border: solid 1px #6c757d;
padding: 10px;
}
JavaScript
var formEl = document.getElementById('branch-form');
var app = 'webapp';
var buttons = document.querySelectorAll('button');
buttons.forEach(function (button) {
button.addEventListener('click', function (e) {
var target = e.target;
app = target.innerText.toLowerCase().replace(' ', '');
});
});
formEl.addEventListener('submit', function (e) {
e.preventDefault();
var fieldEl = document.getElementById('branchName');
var fieldValue = fieldEl.value.trim();
if (fieldValue !== '') {
var prBranch = fieldValue.replace(/\//g, '-');
var url = 'https://s3.con.qa/' + app + '/' + prBranch + '/';
if (app === 'matrix') {
url = 'https://s3.con.qa/matrix/' + prBranch + '/50159d58-5f9b-4994-b790-034d8a883ff8/d3c210c4-6654-4f5e-a701-7da93a928658';
}
var tab = window.open(url, '_blank');
tab.focus();
}
});