From 57485e70932d8759e17399a0906aad59bd8b5267 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 30 Nov 2010 13:55:15 -0800 Subject: [PATCH] Move aspect contacts pane js to public --- app/views/shared/_aspect_contacts.haml | 43 ++++-------------------- public/javascripts/aspect-contacts.js | 43 ++++++++++++++++++++++++ spec/javascripts/aspect-contacts-spec.js | 14 ++++++++ spec/javascripts/support/jasmine.yml | 1 + 4 files changed, 64 insertions(+), 37 deletions(-) create mode 100644 public/javascripts/aspect-contacts.js create mode 100644 spec/javascripts/aspect-contacts-spec.js diff --git a/app/views/shared/_aspect_contacts.haml b/app/views/shared/_aspect_contacts.haml index 160f4ab48..41fa0a29d 100644 --- a/app/views/shared/_aspect_contacts.haml +++ b/app/views/shared/_aspect_contacts.haml @@ -3,46 +3,15 @@ -# the COPYRIGHT file. - content_for :head do - :javascript - $("#edit_aspect_trigger").live("click", - function(){ - EditPane.toggle(); - } - ); - - var EditPane = { - toggle: function() { - if( $("#edit_aspect_pane").hasClass("active") ) { - EditPane.fadeOut(); - } else { - EditPane.fadeIn(); - } - }, - - fadeIn: function(){ - var trigger = $("#edit_aspect_trigger"); - - $("#edit_aspect_pane").addClass("active"); - $(".contact_pictures").fadeOut(200, function(){ - $("#edit_aspect_pane").fadeIn(200); - trigger.html("#{t('.done_editing')}"); - }); - }, - - fadeOut: function(){ - var trigger = $("#edit_aspect_trigger"); - trigger.html("#{t('aspects.show.edit_aspect')}"); - - $("#edit_aspect_pane").removeClass("active"); - $("#edit_aspect_pane").fadeOut(200, function(){ - $(".contact_pictures").fadeIn(200); - }); - } - }; - + =javascript_include_tag 'aspect-contacts' - if aspect != :all && aspect.contacts.count == 0 :javascript $(document).ready(function(){ + EditPane.setTranslations({ + doneEditing: "#{t('.done_editing')}", + editAspect:"#{t('aspects.show.edit_aspect')}" + }); + EditPane.fadeIn(); }); diff --git a/public/javascripts/aspect-contacts.js b/public/javascripts/aspect-contacts.js new file mode 100644 index 000000000..85ceffcc8 --- /dev/null +++ b/public/javascripts/aspect-contacts.js @@ -0,0 +1,43 @@ +/* Copyright (c) 2010, Diaspora Inc. This file is +* licensed under the Affero General Public License version 3 or later. See +* the COPYRIGHT file. +*/ + +$("#edit_aspect_trigger").live("click", + function(){ + EditPane.toggle(); + } +); + +var EditPane = { + setTranslations: function(translations) { + EditPane.translations = translations; + }, + toggle: function() { + if( $("#edit_aspect_pane").hasClass("active") ) { + EditPane.fadeOut(); + } else { + EditPane.fadeIn(); + } + }, + + fadeIn: function(){ + var trigger = $("#edit_aspect_trigger"); + + $("#edit_aspect_pane").addClass("active"); + $(".contact_pictures").fadeOut(200, function(){ + $("#edit_aspect_pane").fadeIn(200); + trigger.html(EditPane.translations.doneEditing); + }); + }, + + fadeOut: function(){ + var trigger = $("#edit_aspect_trigger"); + trigger.html(EditPane.translations.editAspect); + + $("#edit_aspect_pane").removeClass("active"); + $("#edit_aspect_pane").fadeOut(200, function(){ + $(".contact_pictures").fadeIn(200); + }); + } +}; diff --git a/spec/javascripts/aspect-contacts-spec.js b/spec/javascripts/aspect-contacts-spec.js new file mode 100644 index 000000000..1dfc3600e --- /dev/null +++ b/spec/javascripts/aspect-contacts-spec.js @@ -0,0 +1,14 @@ +/* Copyright (c) 2010, Diaspora Inc. This file is +* licensed under the Affero General Public License version 3 or later. See +* the COPYRIGHT file. +*/ + +describe("EditPane", function() { + describe("setTranslations", function() { + it("sets the translations object", function(){ + var input = {doneEditing: 'I am done editing'}; + EditPane.setTranslations(input); + expect(EditPane.translations.doneEditing).toEqual('I am done editing'); + }); + }); +}); diff --git a/spec/javascripts/support/jasmine.yml b/spec/javascripts/support/jasmine.yml index 7f1788cae..d94c9a5ee 100644 --- a/spec/javascripts/support/jasmine.yml +++ b/spec/javascripts/support/jasmine.yml @@ -17,6 +17,7 @@ src_files: - public/javascripts/diaspora.js - public/javascripts/mobile.js - public/javascripts/aspect-edit.js + - public/javascripts/aspect-contacts.js - public/javascripts/web-socket-receiver.js # stylesheets