Skip to content

Instantly share code, notes, and snippets.

@nowox
Created January 7, 2019 19:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nowox/3bcbb6752cb323de928966d605f0dbaf to your computer and use it in GitHub Desktop.
Save nowox/3bcbb6752cb323de928966d605f0dbaf to your computer and use it in GitHub Desktop.
Ajax Get
<!doctype html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" class="">
<head>
<title>Nestor</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="theme-color" content="#ffffff">
<script src="/assets/js/app.js"></script>
</head>
<body class="">
<div class="pb-3">
<div>
<nav class="navbar navbar-menu navbar-dark navbar-expand-lg ">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav">
<li class="nav-item dropdown">
<div class="dropdown-menu ">
<a class="dropdown-item" onClick="/user/profile" href="#">
<i class="fa fa-user-cog" style="width: 1.3em;"></i> Profile
</a>
<a class="dropdown-item" href="/?logout=true">
<i class="fa fa-power-off" style="width: 1.3em;"></i> Logout
</a>
</div>
</li>
</ul>
</div>
</nav>
<div id="breadcrumb">
<nav class="breadcrumb navigation mb-0 p-2">
<div class="pl-2 d-flex align-items-center font-weight-bold">
<a class="text-nav font-weight-light" href="/">Home</a>
<span class="text-nav pl-2 pr-2 text-light"><i class="fa fa-caret-right"></i></span>
<span class="text-nav font-weight-light">Admin</span>
<span class="text-nav pl-2 pr-2 text-light"><i class="fa fa-caret-right"></i></span>
<span class="text-nav font-weight-normal" style="font-size: 130%;">Sandbox</span>
<span class="px-2 text-secondary ml-5">[ admin/sandbox.php ]</span>
</div>
<div class="col text-right pr-0">
</div>
</nav>
</div>
</div>
</div>
<div id="display" data-title="Sandbox" data-display="plain"></div>
<main>
<div id="main">
<h1>Sandbox</h1>
</div>
</main>
<!-- Modal -->
<div id="modal" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modal-title"></h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div id="modal-content" class="modal-body">
</div>
</div>
</div>
</div>
<script>
function install() {
$('a[href!="#"]').click(function (e) {
e.preventDefault();
let uri = e.currentTarget.pathname
$.get(uri, function (data) {
data = $(data)
let breadcrumb = data.find('#breadcrumb').html()
let main = data.find('#main').html()
let display = data.find('div#display')
console.log(display)
if (!breadcrumb || !main) {
window.location.href = uri
}
if (display == 'modal') {
$('#modal-title').val(data.find('#display').data('title'))
$('#modal-content').html(main)
$('#modal').show()
} else {
$('#breadcrumb').html(breadcrumb)
$('#main').html(main)
}
install()
if(history.pushState) {
history.pushState({'breadcrumb': breadcrumb, 'main': main}, null, uri);
}
}).fail(function() {
window.location.href = uri
});
return false;
})
}
var popped = ('state' in window.history && window.history.state !== null), initialURL = location.href;
$(window).bind('popstate', function (e) {
var initialPop = !popped && location.href == initialURL
popped = true
if (initialPop) return;
console.log('popstate', e.state)
});
$(function() {
install()
})
</script>
<div class="mb-4">&nbsp;</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment