Simple growl-like notifications
This commit is contained in:
@@ -136,23 +136,24 @@ class CoreNotifier(Notification):
|
||||
#db.close()
|
||||
return True
|
||||
|
||||
def frontend(self, type = 'notification', data = {}):
|
||||
def frontend(self, type = 'notification', data = {}, message = None):
|
||||
|
||||
self.m_lock.acquire()
|
||||
message = {
|
||||
notification = {
|
||||
'message_id': str(uuid.uuid4()),
|
||||
'time': time.time(),
|
||||
'type': type,
|
||||
'data': data,
|
||||
'message': message,
|
||||
}
|
||||
self.messages.append(message)
|
||||
self.messages.append(notification)
|
||||
|
||||
while len(self.listeners) > 0 and not self.shuttingDown():
|
||||
try:
|
||||
listener, last_id = self.listeners.pop()
|
||||
listener({
|
||||
'success': True,
|
||||
'result': [message],
|
||||
'result': [notification],
|
||||
})
|
||||
except:
|
||||
break
|
||||
|
||||
@@ -126,11 +126,12 @@ var NotificationBase = new Class({
|
||||
processData: function(json){
|
||||
var self = this;
|
||||
|
||||
|
||||
// Process data
|
||||
if(json){
|
||||
Array.each(json.result, function(result){
|
||||
App.fireEvent(result.type, result)
|
||||
App.fireEvent(result.type, result);
|
||||
if(result.message && result.read === undefined)
|
||||
self.showMessage(result.message);
|
||||
})
|
||||
|
||||
if(json.result.length > 0)
|
||||
@@ -140,7 +141,31 @@ var NotificationBase = new Class({
|
||||
// Restart poll
|
||||
self.startPoll()
|
||||
},
|
||||
|
||||
|
||||
showMessage: function(message){
|
||||
var self = this;
|
||||
|
||||
if(!self.message_container)
|
||||
self.message_container = new Element('div.messages').inject(document.body);
|
||||
|
||||
var new_message = new Element('div.message', {
|
||||
'text': message
|
||||
}).inject(self.message_container);
|
||||
|
||||
setTimeout(function(){
|
||||
new_message.addClass('show')
|
||||
}, 10);
|
||||
|
||||
setTimeout(function(){
|
||||
new_message.addClass('hide')
|
||||
setTimeout(function(){
|
||||
new_message.destroy();
|
||||
}, 1000);
|
||||
}, 4000);
|
||||
|
||||
},
|
||||
|
||||
// Notification setting tests
|
||||
addTestButtons: function(){
|
||||
var self = this;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user