You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
107 lines
2.5 KiB
107 lines
2.5 KiB
5 years ago
|
<!doctype html>
|
||
|
<html lang="en">
|
||
|
<head>
|
||
|
<meta charset="utf-8">
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||
|
<title>jQuery UI Progressbar - Download Dialog</title>
|
||
|
<link rel="stylesheet" href="../../themes/base/all.css">
|
||
|
<link rel="stylesheet" href="../demos.css">
|
||
|
<script src="../../external/requirejs/require.js"></script>
|
||
|
<script src="../bootstrap.js" data-modules="dialog">
|
||
|
var progressTimer,
|
||
|
progressbar = $( "#progressbar" ),
|
||
|
progressLabel = $( ".progress-label" ),
|
||
|
dialogButtons = [{
|
||
|
text: "Cancel Download",
|
||
|
click: closeDownload
|
||
|
}],
|
||
|
dialog = $( "#dialog" ).dialog({
|
||
|
autoOpen: false,
|
||
|
closeOnEscape: false,
|
||
|
resizable: false,
|
||
|
buttons: dialogButtons,
|
||
|
open: function() {
|
||
|
progressTimer = setTimeout( progress, 2000 );
|
||
|
},
|
||
|
beforeClose: function() {
|
||
|
downloadButton.button( "option", {
|
||
|
disabled: false,
|
||
|
label: "Start Download"
|
||
|
});
|
||
|
}
|
||
|
}),
|
||
|
downloadButton = $( "#downloadButton" )
|
||
|
.button()
|
||
|
.on( "click", function() {
|
||
|
$( this ).button( "option", {
|
||
|
disabled: true,
|
||
|
label: "Downloading..."
|
||
|
});
|
||
|
dialog.dialog( "open" );
|
||
|
});
|
||
|
|
||
|
progressbar.progressbar({
|
||
|
value: false,
|
||
|
change: function() {
|
||
|
progressLabel.text( "Current Progress: " + progressbar.progressbar( "value" ) + "%" );
|
||
|
},
|
||
|
complete: function() {
|
||
|
progressLabel.text( "Complete!" );
|
||
|
dialog.dialog( "option", "buttons", [{
|
||
|
text: "Close",
|
||
|
click: closeDownload
|
||
|
}]);
|
||
|
$(".ui-dialog button").last().trigger( "focus" );
|
||
|
}
|
||
|
});
|
||
|
|
||
|
function progress() {
|
||
|
var val = progressbar.progressbar( "value" ) || 0;
|
||
|
|
||
|
progressbar.progressbar( "value", val + Math.floor( Math.random() * 3 ) );
|
||
|
|
||
|
if ( val <= 99 ) {
|
||
|
progressTimer = setTimeout( progress, 50 );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function closeDownload() {
|
||
|
clearTimeout( progressTimer );
|
||
|
dialog
|
||
|
.dialog( "option", "buttons", dialogButtons )
|
||
|
.dialog( "close" );
|
||
|
progressbar.progressbar( "value", false );
|
||
|
progressLabel
|
||
|
.text( "Starting download..." );
|
||
|
downloadButton.trigger( "focus" );
|
||
|
}
|
||
|
</script>
|
||
|
<style>
|
||
|
#progressbar {
|
||
|
margin-top: 20px;
|
||
|
}
|
||
|
|
||
|
.progress-label {
|
||
|
font-weight: bold;
|
||
|
text-shadow: 1px 1px 0 #fff;
|
||
|
}
|
||
|
|
||
|
.ui-dialog-titlebar-close {
|
||
|
display: none;
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
|
||
|
<div id="dialog" title="File Download">
|
||
|
<div class="progress-label">Starting download...</div>
|
||
|
<div id="progressbar"></div>
|
||
|
</div>
|
||
|
<button id="downloadButton">Start Download</button>
|
||
|
|
||
|
<div class="demo-description">
|
||
|
<p>Download dialog progressbar demo.</p>
|
||
|
</div>
|
||
|
</body>
|
||
|
</html>
|