<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<title>toastr examples</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
|
|
<link href="build/toastr.css" rel="stylesheet" type="text/css" />
|
|
<style>
|
|
.row {
|
|
margin-left: 0;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body class="container">
|
|
<section class="row">
|
|
<h1>toastr</h1>
|
|
|
|
<div class="well row">
|
|
<div class="row">
|
|
<div class="span4">
|
|
<div class="control-group">
|
|
<div class="controls">
|
|
<label class="control-label" for="title">Title</label>
|
|
<input id="title" type="text" class="input-large" placeholder="Enter a title ..." />
|
|
<label class="control-label" for="message">Message</label>
|
|
<textarea class="input-large" id="message" rows="3" placeholder="Enter a message ..."></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="control-group">
|
|
<div class="controls">
|
|
<label class="checkbox" for="closeButton">
|
|
<input id="closeButton" type="checkbox" value="checked" class="input-mini" />Close Button
|
|
</label>
|
|
</div>
|
|
<div class="controls">
|
|
<label class="checkbox" for="addBehaviorOnToastClick">
|
|
<input id="addBehaviorOnToastClick" type="checkbox" value="checked" class="input-mini" />Add behavior on toast click
|
|
</label>
|
|
</div>
|
|
<div class="controls">
|
|
<label class="checkbox" for="debugInfo">
|
|
<input id="debugInfo" type="checkbox" value="checked" class="input-mini" />Debug
|
|
</label>
|
|
</div>
|
|
<div class="controls">
|
|
<label class="checkbox" for="progressBar">
|
|
<input id="progressBar" type="checkbox" value="checked" class="input-mini" />Progress Bar
|
|
</label>
|
|
</div>
|
|
<div class="controls">
|
|
<label class="checkbox" for="preventDuplicates">
|
|
<input id="preventDuplicates" type="checkbox" value="checked" class="input-mini" />Prevent Duplicates
|
|
</label>
|
|
</div>
|
|
<div class="controls">
|
|
<label class="checkbox" for="addClear">
|
|
<input id="addClear" type="checkbox" value="checked" class="input-mini" />Add button to force clearing a toast, ignoring focus
|
|
</label>
|
|
</div>
|
|
<div class="controls">
|
|
<label class="checkbox" for="newestOnTop">
|
|
<input id="newestOnTop" type="checkbox" value="checked" class="input-mini" />Newest on top
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="span2">
|
|
<div class="control-group" id="toastTypeGroup">
|
|
<div class="controls">
|
|
<label>Toast Type</label>
|
|
<label class="radio">
|
|
<input type="radio" name="toasts" value="success" checked />Success
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="toasts" value="info" />Info
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="toasts" value="warning" />Warning
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="toasts" value="error" />Error
|
|
</label>
|
|
</div>
|
|
</div>
|
|
<div class="control-group" id="positionGroup">
|
|
<div class="controls">
|
|
<label>Position</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-top-right" checked />Top Right
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-bottom-right" />Bottom Right
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-bottom-left" />Bottom Left
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-top-left" />Top Left
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-top-full-width" />Top Full Width
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-bottom-full-width" />Bottom Full Width
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-top-center" />Top Center
|
|
</label>
|
|
<label class="radio">
|
|
<input type="radio" name="positions" value="toast-bottom-center" />Bottom Center
|
|
</label>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="span2">
|
|
<div class="control-group">
|
|
<div class="controls">
|
|
<label class="control-label" for="showEasing">Show Easing</label>
|
|
<input id="showEasing" type="text" placeholder="swing, linear" class="input-mini" value="swing" />
|
|
|
|
<label class="control-label" for="hideEasing">Hide Easing</label>
|
|
<input id="hideEasing" type="text" placeholder="swing, linear" class="input-mini" value="linear" />
|
|
|
|
<label class="control-label" for="showMethod">Show Method</label>
|
|
<input id="showMethod" type="text" placeholder="show, fadeIn, slideDown" class="input-mini" value="fadeIn" />
|
|
|
|
<label class="control-label" for="hideMethod">Hide Method</label>
|
|
<input id="hideMethod" type="text" placeholder="hide, fadeOut, slideUp" class="input-mini" value="fadeOut" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="span3">
|
|
<div class="control-group">
|
|
<div class="controls">
|
|
<label class="control-label" for="showDuration">Show Duration</label>
|
|
<input id="showDuration" type="text" placeholder="ms" class="input-mini" value="300" />
|
|
|
|
<label class="control-label" for="hideDuration">Hide Duration</label>
|
|
<input id="hideDuration" type="text" placeholder="ms" class="input-mini" value="1000" />
|
|
|
|
<label class="control-label" for="timeOut">Time out</label>
|
|
<input id="timeOut" type="text" placeholder="ms" class="input-mini" value="5000" />
|
|
|
|
<label class="control-label" for="extendedTimeOut">Extended time out</label>
|
|
<input id="extendedTimeOut" type="text" placeholder="ms" class="input-mini" value="1000" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<button type="button" class="btn btn-primary" id="showtoast">Show Toast</button>
|
|
<button type="button" class="btn btn-danger" id="cleartoasts">Clear Toasts</button>
|
|
<button type="button" class="btn btn-danger" id="clearlasttoast">Clear Last Toast</button>
|
|
</div>
|
|
|
|
<div class="row" style='margin-top: 25px;'>
|
|
<pre id='toastrOptions'></pre>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<footer class="row">
|
|
<h2>Links</h2>
|
|
|
|
<ul>
|
|
<li><a href="http://nuget.org/packages/toastr">NuGet</a></li>
|
|
<li><a href="https://github.com/CodeSeven/toastr">GitHub</a></li>
|
|
</ul>
|
|
</footer>
|
|
|
|
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
|
|
<script src="toastr.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
$(function () {
|
|
var i = -1;
|
|
var toastCount = 0;
|
|
var $toastlast;
|
|
|
|
var getMessage = function () {
|
|
var msgs = ['My name is Inigo Montoya. You killed my father. Prepare to die!',
|
|
'<div><input class="input-small" value="textbox"/> <a href="http://johnpapa.net" target="_blank">This is a hyperlink</a></div><div><button type="button" id="okBtn" class="btn btn-primary">Close me</button><button type="button" id="surpriseBtn" class="btn" style="margin: 0 8px 0 8px">Surprise me</button></div>',
|
|
'Are you the six fingered man?',
|
|
'Inconceivable!',
|
|
'I do not think that means what you think it means.',
|
|
'Have fun storming the castle!'
|
|
];
|
|
i++;
|
|
if (i === msgs.length) {
|
|
i = 0;
|
|
}
|
|
|
|
return msgs[i];
|
|
};
|
|
|
|
var getMessageWithClearButton = function (msg) {
|
|
msg = msg ? msg : 'Clear itself?';
|
|
msg += '<br /><br /><button type="button" class="btn clear">Yes</button>';
|
|
return msg;
|
|
};
|
|
|
|
$('#showtoast').click(function () {
|
|
var shortCutFunction = $("#toastTypeGroup input:radio:checked").val();
|
|
var msg = $('#message').val();
|
|
var title = $('#title').val() || '';
|
|
var $showDuration = $('#showDuration');
|
|
var $hideDuration = $('#hideDuration');
|
|
var $timeOut = $('#timeOut');
|
|
var $extendedTimeOut = $('#extendedTimeOut');
|
|
var $showEasing = $('#showEasing');
|
|
var $hideEasing = $('#hideEasing');
|
|
var $showMethod = $('#showMethod');
|
|
var $hideMethod = $('#hideMethod');
|
|
var toastIndex = toastCount++;
|
|
var addClear = $('#addClear').prop('checked');
|
|
|
|
toastr.options = {
|
|
closeButton: $('#closeButton').prop('checked'),
|
|
debug: $('#debugInfo').prop('checked'),
|
|
newestOnTop: $('#newestOnTop').prop('checked'),
|
|
progressBar: $('#progressBar').prop('checked'),
|
|
positionClass: $('#positionGroup input:radio:checked').val() || 'toast-top-right',
|
|
preventDuplicates: $('#preventDuplicates').prop('checked'),
|
|
onclick: null
|
|
};
|
|
|
|
if ($('#addBehaviorOnToastClick').prop('checked')) {
|
|
toastr.options.onclick = function () {
|
|
alert('You can perform some custom action after a toast goes away');
|
|
};
|
|
}
|
|
|
|
if ($showDuration.val().length) {
|
|
toastr.options.showDuration = $showDuration.val();
|
|
}
|
|
|
|
if ($hideDuration.val().length) {
|
|
toastr.options.hideDuration = $hideDuration.val();
|
|
}
|
|
|
|
if ($timeOut.val().length) {
|
|
toastr.options.timeOut = addClear ? 0 : $timeOut.val();
|
|
}
|
|
|
|
if ($extendedTimeOut.val().length) {
|
|
toastr.options.extendedTimeOut = addClear ? 0 : $extendedTimeOut.val();
|
|
}
|
|
|
|
if ($showEasing.val().length) {
|
|
toastr.options.showEasing = $showEasing.val();
|
|
}
|
|
|
|
if ($hideEasing.val().length) {
|
|
toastr.options.hideEasing = $hideEasing.val();
|
|
}
|
|
|
|
if ($showMethod.val().length) {
|
|
toastr.options.showMethod = $showMethod.val();
|
|
}
|
|
|
|
if ($hideMethod.val().length) {
|
|
toastr.options.hideMethod = $hideMethod.val();
|
|
}
|
|
|
|
if (addClear) {
|
|
msg = getMessageWithClearButton(msg);
|
|
toastr.options.tapToDismiss = false;
|
|
}
|
|
if (!msg) {
|
|
msg = getMessage();
|
|
}
|
|
|
|
$('#toastrOptions').text('Command: toastr["'
|
|
+ shortCutFunction
|
|
+ '"]("'
|
|
+ msg
|
|
+ (title ? '", "' + title : '')
|
|
+ '")\n\ntoastr.options = '
|
|
+ JSON.stringify(toastr.options, null, 2)
|
|
);
|
|
|
|
var $toast = toastr[shortCutFunction](msg, title); // Wire up an event handler to a button in the toast, if it exists
|
|
$toastlast = $toast;
|
|
|
|
if(typeof $toast === 'undefined'){
|
|
return;
|
|
}
|
|
|
|
if ($toast.find('#okBtn').length) {
|
|
$toast.delegate('#okBtn', 'click', function () {
|
|
alert('you clicked me. i was toast #' + toastIndex + '. goodbye!');
|
|
$toast.remove();
|
|
});
|
|
}
|
|
if ($toast.find('#surpriseBtn').length) {
|
|
$toast.delegate('#surpriseBtn', 'click', function () {
|
|
alert('Surprise! you clicked me. i was toast #' + toastIndex + '. You could perform an action here.');
|
|
});
|
|
}
|
|
if ($toast.find('.clear').length) {
|
|
$toast.delegate('.clear', 'click', function () {
|
|
toastr.clear($toast, { force: true });
|
|
});
|
|
}
|
|
});
|
|
|
|
function getLastToast(){
|
|
return $toastlast;
|
|
}
|
|
$('#clearlasttoast').click(function () {
|
|
toastr.clear(getLastToast());
|
|
});
|
|
$('#cleartoasts').click(function () {
|
|
toastr.clear();
|
|
});
|
|
})
|
|
</script>
|
|
</body>
|
|
</html>
|