diff --git a/config/assets.yml b/config/assets.yml index 6f0b5bed7..427b493a3 100644 --- a/config/assets.yml +++ b/config/assets.yml @@ -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 diff --git a/public/javascripts/aspect-edit.js b/public/javascripts/aspect-edit.js index 02c3ceb5c..7f78abd3a 100644 --- a/public/javascripts/aspect-edit.js +++ b/public/javascripts/aspect-edit.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)); } }); } diff --git a/public/javascripts/view.js b/public/javascripts/view.js index dfbfcf6a4..3e9eb2e68 100644 --- a/public/javascripts/view.js +++ b/public/javascripts/view.js @@ -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) { - $("
") - .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(); } - }; + } } }, diff --git a/public/javascripts/widgets/flashes.js b/public/javascripts/widgets/flashes.js new file mode 100644 index 000000000..00232cd6a --- /dev/null +++ b/public/javascripts/widgets/flashes.js @@ -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) { + $("") + .attr("id", (result.success) ? "flash_notice" : "flash_error") + .prependTo(document.body) + .html(result.notice); + + this.animateMessages(); + }; + }; + + Diaspora.widgets.add("flashes", Flashes); +})(); \ No newline at end of file diff --git a/spec/javascripts/support/jasmine.yml b/spec/javascripts/support/jasmine.yml index de698e936..dd353c96f 100644 --- a/spec/javascripts/support/jasmine.yml +++ b/spec/javascripts/support/jasmine.yml @@ -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 diff --git a/spec/javascripts/view-spec.js b/spec/javascripts/view-spec.js index ba3a3600f..a2e9eefbe 100644 --- a/spec/javascripts/view-spec.js +++ b/spec/javascripts/view-spec.js @@ -42,33 +42,6 @@ describe("View", function() { }); }); - describe("flashes", function() { - describe("animate", function() { - beforeEach(function() { - $("#jasmine_content").html( - '