Error messages in the UI

This commit is contained in:
Joe Friedl 2011-12-19 11:44:12 -06:00
parent 87c935ac47
commit 6145a938e3
5 changed files with 51 additions and 11 deletions

View file

@ -110,7 +110,7 @@ textarea {
right: 0px;
}
#box3 {
#box3, #messages li {
background: #173e48;
font-family: Helvetica, sans-serif;
font-size: 12px;
@ -118,7 +118,7 @@ textarea {
padding: 10px 15px;
}
#box3 .label {
#box3 .label, #messages li {
color: #fff;
font-weight: bold;
}
@ -147,3 +147,22 @@ textarea {
#box2 .function.twitter { background-position: -153px top; }
#box2 .function.enabled.twitter { background-position: -153px center; }
#box2 .function.enabled.twitter:hover { background-position: -153px bottom; }
#messages {
position:fixed;
top:0px;
right:138px;
margin:0;
padding:0;
width:400px;
}
#messages li {
background:rgba(23,62,72,0.8);
margin:0 auto;
list-style:none;
}
#messages li.error {
background:rgba(102,8,0,0.8);
}

View file

@ -57,12 +57,20 @@ haste_document.prototype.save = function(data, callback) {
_this.locked = true;
_this.key = res.key;
var high = hljs.highlightAuto(data);
callback({
callback(null, {
value: high.value,
key: res.key,
language: high.language,
lineCount: data.split("\n").length
});
},
error: function(res) {
try {
callback($.parseJSON(res.responseText));
}
catch (e) {
callback({message: 'Something went wrong!'});
}
}
});
};
@ -91,6 +99,15 @@ haste.prototype.setTitle = function(ext) {
document.title = title;
};
// Show a message box
haste.prototype.showMessage = function(msg, cls) {
var msgBox = $('<li class="'+(cls || 'info')+'">'+msg+'</li>');
$('#messages').prepend(msgBox);
setTimeout(function() {
msgBox.slideUp('fast', function() { $(this).remove(); });
}, 3000);
};
// Show the light key
haste.prototype.lightKey = function() {
this.configureKey(['new', 'save']);
@ -209,8 +226,11 @@ haste.prototype.duplicateDocument = function() {
// Lock the current document
haste.prototype.lockDocument = function() {
var _this = this;
this.doc.save(this.$textarea.val(), function(ret) {
if (ret) {
this.doc.save(this.$textarea.val(), function(err, ret) {
if (err) {
_this.showMessage(err.message, 'error');
}
else if (ret) {
_this.$code.html(ret.value);
_this.setTitle(ret.key);
var file = '/' + ret.key;

File diff suppressed because one or more lines are too long

View file

@ -39,6 +39,7 @@
</head>
<body>
<ul id="messages"></ul>
<div id="key">
<div id="pointer" style="display:none;"></div>