From 74e9cd6ca8548f7b03442139debc4fd88dec8543 Mon Sep 17 00:00:00 2001 From: danielgrippi Date: Thu, 8 Mar 2012 12:36:43 -0800 Subject: [PATCH] DG MS; added checkboxes for services in the new publisher (currently not working) / user presenter contains services --- app/presenters/service_presenter.rb | 15 ++++++++++++ app/presenters/user_presenter.rb | 13 +++++++---- public/javascripts/app/forms/post_form.js | 6 +++-- .../app/templates/post-form.handlebars | 1 + .../templates/services-selector.handlebars | 6 +++++ .../app/views/aspects_dropdown_view.js | 4 ++-- .../app/views/services_selector_view.js | 5 ++++ .../app/views/services_selector_view_spec.js | 23 +++++++++++++++++++ spec/presenters/service_presenter_spec.rb | 10 ++++++++ spec/presenters/user_presenter_spec.rb | 8 +++++++ 10 files changed, 83 insertions(+), 8 deletions(-) create mode 100644 app/presenters/service_presenter.rb create mode 100644 public/javascripts/app/templates/services-selector.handlebars create mode 100644 public/javascripts/app/views/services_selector_view.js create mode 100644 spec/javascripts/app/views/services_selector_view_spec.js create mode 100644 spec/presenters/service_presenter_spec.rb diff --git a/app/presenters/service_presenter.rb b/app/presenters/service_presenter.rb new file mode 100644 index 000000000..f44ad8eb7 --- /dev/null +++ b/app/presenters/service_presenter.rb @@ -0,0 +1,15 @@ +class ServicePresenter < BasePresenter + def initialize(service) + @service = service + end + + def as_json + { + :provider => @service.provider + } + end + + def to_json(options = {}) + as_json.to_json(options) + end +end \ No newline at end of file diff --git a/app/presenters/user_presenter.rb b/app/presenters/user_presenter.rb index 9804b49fa..8fd5af0a1 100644 --- a/app/presenters/user_presenter.rb +++ b/app/presenters/user_presenter.rb @@ -1,6 +1,6 @@ class UserPresenter attr_accessor :user - + def initialize(user) self.user = user end @@ -10,17 +10,22 @@ class UserPresenter { :notifications_count => notifications_count, :unread_messages_count => unread_messages_count, :admin => admin, - :aspects => aspects + :aspects => aspects, + :services => services } ).to_json(options) end + def services + ServicePresenter.as_collection(user.services) + end + def aspects AspectPresenter.as_collection(user.aspects) end def notifications_count - @notification_count ||= user.unread_notifications.count + @notification_count ||= user.unread_notifications.count end def unread_messages_count @@ -30,4 +35,4 @@ class UserPresenter def admin user.admin? end -end \ No newline at end of file +end diff --git a/public/javascripts/app/forms/post_form.js b/public/javascripts/app/forms/post_form.js index adfde5cfb..a10c02785 100644 --- a/public/javascripts/app/forms/post_form.js +++ b/public/javascripts/app/forms/post_form.js @@ -2,7 +2,8 @@ app.forms.Post = app.forms.Base.extend({ templateName : "post-form", subviews : { - ".aspect_selector" : "aspectsDropdown" + ".aspect_selector" : "aspectsDropdown", + ".service_selector" : "servicesSelector" }, formAttrs : { @@ -11,6 +12,7 @@ app.forms.Post = app.forms.Base.extend({ }, initialize : function(){ - this.aspectsDropdown = new app.views.AspectsDropdown() + this.aspectsDropdown = new app.views.AspectsDropdown(); + this.servicesSelector = new app.views.ServicesSelector(); } }); \ No newline at end of file diff --git a/public/javascripts/app/templates/post-form.handlebars b/public/javascripts/app/templates/post-form.handlebars index 7e7cdc321..f41fe137a 100644 --- a/public/javascripts/app/templates/post-form.handlebars +++ b/public/javascripts/app/templates/post-form.handlebars @@ -2,6 +2,7 @@