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/infinite-scroll.js
|
||||||
- public/javascripts/widgets/directionDetector.js
|
- public/javascripts/widgets/directionDetector.js
|
||||||
- public/javascripts/widgets/notifications.js
|
- public/javascripts/widgets/notifications.js
|
||||||
|
- public/javascripts/widgets/flashes.js
|
||||||
- public/javascripts/view.js
|
- public/javascripts/view.js
|
||||||
- public/javascripts/stream.js
|
- public/javascripts/stream.js
|
||||||
- public/javascripts/search.js
|
- public/javascripts/search.js
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ var AspectEdit = {
|
||||||
},
|
},
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
AspectEdit.onMovePersonSuccess(person, dropzone);
|
AspectEdit.onMovePersonSuccess(person, dropzone);
|
||||||
View.flashes.render($.parseJSON(data));
|
Diaspora.widgets.flashes.render($.parseJSON(data));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,6 @@ var View = {
|
||||||
/* Tooltips */
|
/* Tooltips */
|
||||||
this.tooltips.bindAll();
|
this.tooltips.bindAll();
|
||||||
|
|
||||||
/* Animate flashes */
|
|
||||||
this.flashes.animate();
|
|
||||||
|
|
||||||
/* In field labels */
|
/* In field labels */
|
||||||
$("label").inFieldLabels();
|
$("label").inFieldLabels();
|
||||||
$(document).bind('afterReveal.facebox', function() {
|
$(document).bind('afterReveal.facebox', function() {
|
||||||
|
|
@ -99,26 +96,6 @@ var View = {
|
||||||
selector: "#debug_info"
|
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: {
|
gettingStarted: {
|
||||||
click: function() {
|
click: function() {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
|
|
@ -212,7 +189,7 @@ var View = {
|
||||||
if(element !== "bindAll") {
|
if(element !== "bindAll") {
|
||||||
this[element].bind();
|
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/directionDetector.js
|
||||||
- public/javascripts/widgets/infinite-scroll.js
|
- public/javascripts/widgets/infinite-scroll.js
|
||||||
- public/javascripts/widgets/notifications.js
|
- public/javascripts/widgets/notifications.js
|
||||||
|
- public/javascripts/widgets/flashes.js
|
||||||
- public/javascripts/mobile.js
|
- public/javascripts/mobile.js
|
||||||
- public/javascripts/contact-list.js
|
- public/javascripts/contact-list.js
|
||||||
- public/javascripts/web-socket-receiver.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() {
|
describe("newRequest", function() {
|
||||||
beforeEach(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