Flash message handling is now a widget
This commit is contained in:
parent
8261547ed9
commit
fc25c9bedb
7 changed files with 63 additions and 52 deletions
|
|
@ -32,6 +32,7 @@ javascripts:
|
|||
- public/javascripts/widgets/infinite-scroll.js
|
||||
- public/javascripts/widgets/directionDetector.js
|
||||
- public/javascripts/widgets/notifications.js
|
||||
- public/javascripts/widgets/flashes.js
|
||||
- public/javascripts/view.js
|
||||
- public/javascripts/stream.js
|
||||
- public/javascripts/search.js
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ var AspectEdit = {
|
|||
},
|
||||
success: function(data) {
|
||||
AspectEdit.onMovePersonSuccess(person, dropzone);
|
||||
View.flashes.render($.parseJSON(data));
|
||||
Diaspora.widgets.flashes.render($.parseJSON(data));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,9 +10,6 @@ var View = {
|
|||
/* Tooltips */
|
||||
this.tooltips.bindAll();
|
||||
|
||||
/* Animate flashes */
|
||||
this.flashes.animate();
|
||||
|
||||
/* In field labels */
|
||||
$("label").inFieldLabels();
|
||||
$(document).bind('afterReveal.facebox', function() {
|
||||
|
|
@ -99,26 +96,6 @@ var View = {
|
|||
selector: "#debug_info"
|
||||
},
|
||||
|
||||
flashes: {
|
||||
animate: function() {
|
||||
var $this = $(View.flashes.selector);
|
||||
$this.animate({
|
||||
top: 0
|
||||
}).delay(2000).animate({
|
||||
top: -100
|
||||
}, $this.remove)
|
||||
},
|
||||
render: function(result) {
|
||||
$("<div/>")
|
||||
.attr("id", (result.success) ? "flash_notice" : "flash_error")
|
||||
.prependTo(document.body)
|
||||
.html(result.notice);
|
||||
View.flashes.animate();
|
||||
},
|
||||
selector: "#flash_notice, #flash_error, #flash_alert"
|
||||
|
||||
},
|
||||
|
||||
gettingStarted: {
|
||||
click: function() {
|
||||
var $this = $(this);
|
||||
|
|
@ -212,7 +189,7 @@ var View = {
|
|||
if(element !== "bindAll") {
|
||||
this[element].bind();
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
27
public/javascripts/widgets/flashes.js
Normal file
27
public/javascripts/widgets/flashes.js
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
(function() {
|
||||
var Flashes = function() {
|
||||
this.start = function() {
|
||||
this.animateMessages();
|
||||
};
|
||||
|
||||
this.animateMessages = function() {
|
||||
var $this = $("#flash_notice, #flash_error, #flash_alert");
|
||||
$this.animate({
|
||||
top: 0
|
||||
}).delay(2000).animate({
|
||||
top: -100
|
||||
}, $this.remove);
|
||||
};
|
||||
|
||||
this.render = function(result) {
|
||||
$("<div/>")
|
||||
.attr("id", (result.success) ? "flash_notice" : "flash_error")
|
||||
.prependTo(document.body)
|
||||
.html(result.notice);
|
||||
|
||||
this.animateMessages();
|
||||
};
|
||||
};
|
||||
|
||||
Diaspora.widgets.add("flashes", Flashes);
|
||||
})();
|
||||
|
|
@ -30,6 +30,7 @@ src_files:
|
|||
- public/javascripts/widgets/directionDetector.js
|
||||
- public/javascripts/widgets/infinite-scroll.js
|
||||
- public/javascripts/widgets/notifications.js
|
||||
- public/javascripts/widgets/flashes.js
|
||||
- public/javascripts/mobile.js
|
||||
- public/javascripts/contact-list.js
|
||||
- public/javascripts/web-socket-receiver.js
|
||||
|
|
|
|||
|
|
@ -42,33 +42,6 @@ describe("View", function() {
|
|||
});
|
||||
});
|
||||
|
||||
describe("flashes", function() {
|
||||
describe("animate", function() {
|
||||
beforeEach(function() {
|
||||
$("#jasmine_content").html(
|
||||
'<div id="flash_notice">' +
|
||||
'flash! flash! flash!' +
|
||||
'</div>'
|
||||
);
|
||||
});
|
||||
|
||||
it("is called when the DOM is ready", function() {
|
||||
spyOn(View.flashes, "animate").andCallThrough();
|
||||
View.initialize();
|
||||
expect(View.flashes.animate).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
describe("render", function() {
|
||||
it("creates a new div and calls flashes.animate", function() {
|
||||
spyOn(View.flashes, "animate");
|
||||
View.flashes.render({
|
||||
success: true,
|
||||
message: "success!"
|
||||
});
|
||||
expect(View.flashes.animate).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe("newRequest", function() {
|
||||
beforeEach(function() {
|
||||
|
|
|
|||
32
spec/javascripts/widgets/flashes-spec.js
Normal file
32
spec/javascripts/widgets/flashes-spec.js
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
describe("Diaspora", function() {
|
||||
describe("widgets", function() {
|
||||
describe("flashes", function() {
|
||||
describe("animateMessages", function() {
|
||||
beforeEach(function() {
|
||||
$("#jasmine_content").html(
|
||||
'<div id="flash_notice">' +
|
||||
'flash message' +
|
||||
'</div>'
|
||||
);
|
||||
});
|
||||
|
||||
it("is called when the DOM is ready", function() {
|
||||
spyOn(Diaspora.widgets.flashes, "animateMessages").andCallThrough();
|
||||
Diaspora.widgets.flashes.start();
|
||||
expect(Diaspora.widgets.flashes.animateMessages).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe("render", function() {
|
||||
it("creates a new div for the message and calls flashes.animateMessages", function() {
|
||||
spyOn(Diaspora.widgets.flashes, "animateMessages");
|
||||
Diaspora.widgets.flashes.render({
|
||||
success: true,
|
||||
message: "success!"
|
||||
});
|
||||
expect(Diaspora.widgets.flashes.animateMessages).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
Reference in a new issue