Add close button to notifications. Improve styling.

This commit is contained in:
Michael Jumper
2013-07-01 12:15:00 -07:00
parent e8cdc9c5b7
commit 984ab06100
5 changed files with 78 additions and 1 deletions

View File

@@ -48,6 +48,7 @@
<!-- Images which should be preloaded --> <!-- Images which should be preloaded -->
<div id="preload"> <div id="preload">
<img src="images/action-icons/guac-close.png"/>
<img src="images/progress.png"/> <img src="images/progress.png"/>
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

View File

@@ -808,6 +808,11 @@ GuacUI.Client.attach = function(guac) {
download.complete(blob.mimetype, url.createObjectURL(blob.getBlob())); download.complete(blob.mimetype, url.createObjectURL(blob.getBlob()));
}; };
// When close clicked, remove from notification area
download.onclose = function() {
GuacUI.Client.notification_area.removeChild(download.getElement());
};
}; };
/* /*

View File

@@ -700,10 +700,44 @@ GuacUI.Pager = function(container) {
*/ */
GuacUI.Download = function(filename) { GuacUI.Download = function(filename) {
/**
* Reference to this GuacUI.Download.
* @private
*/
var guac_download = this;
/**
* The outer div representing the notification.
* @private
*/
var element = GuacUI.createElement("div", "download notification"); var element = GuacUI.createElement("div", "download notification");
/**
* Title bar describing the notification.
* @private
*/
var title = GuacUI.createChildElement(element, "div", "title-bar");
/**
* Close button for removing the notification.
* @private
*/
var close_button = GuacUI.createChildElement(title, "div", "close");
close_button.onclick = function() {
if (guac_download.onclose)
guac_download.onclose();
};
GuacUI.createChildElement(title, "div", "title").textContent =
"File Transfer";
GuacUI.createChildElement(element, "div", "caption").textContent = GuacUI.createChildElement(element, "div", "caption").textContent =
filename + " "; filename + " ";
/**
* Progress bar and status.
* @private
*/
var progress = GuacUI.createChildElement(element, "div", "progress"); var progress = GuacUI.createChildElement(element, "div", "progress");
/** /**
@@ -745,4 +779,10 @@ GuacUI.Download = function(filename) {
return element; return element;
}; };
/**
* Called when the close button of this notification is clicked.
* @event
*/
this.onclose = null;
}; };

View File

@@ -317,10 +317,40 @@ p.hint {
display: inline-block; display: inline-block;
} }
.notification .title-bar {
display: block;
white-space: nowrap;
font-weight: bold;
border-bottom: 1px solid white;
padding-bottom: 0.5em;
margin-bottom: 0.5em;
}
.notification .title-bar * {
vertical-align: middle;
}
.notification .caption { .notification .caption {
color: silver; color: silver;
} }
.notification .close {
background: url('../images/action-icons/guac-close.png');
background-size: 10px 10px;
-moz-background-size: 10px 10px;
-webkit-background-size: 10px 10px;
-khtml-background-size: 10px 10px;
width: 10px;
height: 10px;
float: right;
cursor: pointer;
}
@keyframes progress { @keyframes progress {
from {background-position: 0px 0px;} from {background-position: 0px 0px;}
to {background-position: 64px 0px;} to {background-position: 64px 0px;}
@@ -332,7 +362,7 @@ p.hint {
} }
.download.notification .caption { .download.notification .caption {
max-width: 20em; width: 100%;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@@ -376,6 +406,7 @@ p.hint {
.download.notification .download { .download.notification .download {
background: rgb(16, 87, 153); background: rgb(16, 87, 153);
cursor: pointer;
} }
.download.notification .download a[href] { .download.notification .download a[href] {