zaqar/samples/html/subscriptionConfirmation.html
wanghao 4778f708fa Subscription Confirmation Support-3
This patch is the third part of subscription confirmation feature.
Support to send email to subscriber if confirmation is needed.

Change-Id: I230f5c7fbc9d19554bbcf34ce9b2f3b14230321b
Implements: blueprint subscription-confirmation-support
2017-02-15 18:03:41 +08:00

149 lines
5.0 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<style>
html, body {
margin: 0; padding: 0;
background: #fff;
color: #333;
font: 12px/15px Verdana, sans-serif;
}
#container {
max-width: 520px;
margin: 30px;
padding: 0px;
}
#content h2 {
font: bold 16px/16px Verdana, sans-serif;
margin: 0;
padding: 0;
margin-bottom: 12px;
}
#header {
height: 40px;
padding-bottom: 0;
color: #e47911;
position:relative;
margin-bottom: 12px;
}
#header h1 {
font-size: 12px;
line-height: 12px;
margin: 0; padding: 0;
position: absolute;
bottom: 0;
right: 0;
}
#content {
padding: 12px;
background: #ecf5fb;
border: 1px solid #c9e1f4;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
border-radius: 10px;
}
p {
margin-top: 0;
margin-bottom: 12px;
}
.error {
color: #900;
}
.success {
color: #090;
}
code {
font-style: normal;
color: #000;
}
abbr {
font-weight: bold;
}
a:visited, a:hover {
color: #004b91;
}
</style>
</head>
<body>
<div id="container">
<div id="header">
<h1>OpenStack Zaqar Service</h1>
</div>
<div id="content">
<h2 id="status">Confirming subscription...</h2>
<div id="progress">
<noscript><p>Your browser has JavaScript disabled. <i>To confirm a subscription via this page, your browser must have JavaScript enabled.</i></p></noscript>
</div>
</div>
</div>
<script type="text/javascript">
function getParameterByName( name )
{
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var regexS = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp( regexS );
var results = regex.exec( window.location.href );
if( results == null )
return "";
else
return results[1];
}
$(document).ready(function(){
var confirmationUrl = getParameterByName("Url");
var Signature = getParameterByName("Signature");
var Methods = getParameterByName("Methods");
var Paths = getParameterByName("Paths");
var Project = getParameterByName("Project");
var Expires = getParameterByName("Expires");
var Queue = getParameterByName("Queue");
var failureString = "<p>Your subscription could not be confirmed because of an error. To receive messages from the queue, please resubscribe your email address.</p>";
if (Queue == "") {
$("#status").html("Subscription <i>not</i> confirmed").addClass("error");
$("#progress").html("<p>Your subscription could not be confirmed because your queue is incomplete. Please make sure to use exactly the URL from the subscription confirmation message.</p>");
} else {
var response = $.ajax({ type: "PUT",
url: "http://127.0.0.1:5678",
dataType: "json",
data: {'confirmed': true},
beforeSend: function(request) {
request.setRequestHeader("Content-type", "application/json");
request.setRequestHeader("URL-Signature", Signature);
request.setRequestHeader("URL-Methods", Methods);
request.setRequestHeader("URL-Paths", Paths);
request.setRequestHeader("X-Project-ID", Project);
request.setRequestHeader("URL-Expires", Expires);
request.setRequestHeader("Confirmation-Url", confirmationUrl);
},
success: function(data, status, req){
$("#status").html("Subscription confirmed!").addClass("success");
$("#progress").html("<p>You have subscribed to the queue:<br /><abbr title=\""
+ Queue
+ "\">"
+ Queue
+ "</abbr>.</p><p>If it was not your intention to subscribe, <a href=\""
+ "unsubscriptionConfirmation.html?Signature="
+ Signature + "&Methods=" + Methods + "&Paths=" + Paths
+ "&Project=" + Project + "&Expires=" + Expires + "&Queue=" + Queue
+ "&Url=" + confirmationUrl + "&Confirm=false"
+ "\">click here to unsubscribe</a>.</p>");
},
error: function(req, status, error){
$("#status").html("Subscription <i>not</i> confirmed").addClass("error");
$("#progress").html(failureString);
}
});
}
}
);
</script>
</body>
</html>