aboutsummaryrefslogtreecommitdiffstats
path: root/demos/progressbar/download.html
blob: c35d4733327d2f7259a0e57cf60fa48b7b4adb0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
<!doctype html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>jQuery UI Progressbar - Download Dialog</title>
	<link rel="stylesheet" href="../../themes/base/all.css">
	<script src="../../jquery.js"></script>
	<script src="../../ui/core.js"></script>
	<script src="../../ui/widget.js"></script>
	<script src="../../ui/progressbar.js"></script>
	<script src="../../ui/mouse.js"></script>
	<script src="../../ui/draggable.js"></script>
	<script src="../../ui/button.js"></script>
	<script src="../../ui/position.js"></script>
	<script src="../../ui/dialog.js"></script>
	<link rel="stylesheet" href="../demos.css">
	<script>
	$(function() {
		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().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.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>