Skip to content
This repository has been archived by the owner on Mar 27, 2022. It is now read-only.

Commit

Permalink
Update Prayer Requests pages.
Browse files Browse the repository at this point in the history
  • Loading branch information
seven1m committed Jun 11, 2014
1 parent 91490c9 commit 67d0d12
Show file tree
Hide file tree
Showing 26 changed files with 872 additions and 178 deletions.
7 changes: 7 additions & 0 deletions app/assets/javascripts/app/dates.js.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
i = document.createElement('input')
i.setAttribute('type', 'date')
window.DATE_INPUT_SUPPORTED = i.type != 'text'

unless DATE_INPUT_SUPPORTED
datepicker_format = $(document).data('datepicker-format')
$('input[type=date]').datepicker(format: datepicker_format)
1 change: 1 addition & 0 deletions app/assets/javascripts/application.js.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#= require jquery_ujs
#= require jquery.scrollTo
#= require bootstrap
#= require bootstrap-datepicker
#= require admin_lte
#= require spin
#= require leaflet
Expand Down
10 changes: 10 additions & 0 deletions app/assets/stylesheets/app/timeline.css.scss
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,13 @@
font-size: 14px;
line-height: 1.42857;
}

.prayer-answer {
background-color: #eee;
padding: 5px;
border-radius: 3px;
margin-top: 5px;
h4 {
margin: 0;
}
}
1 change: 1 addition & 0 deletions app/assets/stylesheets/application.css.scss
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
@import "ionicons";
@import "admin_lte";
@import "leaflet";
@import "datepicker";

@import "app/*";

Expand Down
23 changes: 10 additions & 13 deletions app/controllers/prayer_requests_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ def index
def show
@req = PrayerRequest.find(params[:id])
unless @logged_in.can_see?(@req)
render text: t('prayer.not_found'), layout: true, status: 404
render text: t('prayer_requests.not_found'), layout: true, status: 404
end
end

Expand All @@ -21,46 +21,43 @@ def new
if @logged_in.member_of?(@group)
@req = @group.prayer_requests.new(person_id: @logged_in.id)
else
render text: t('prayer.cant_post'), layout: true, status: 401
render text: t('prayer_requests.error.no_post'), layout: true, status: 401
end
end

def create
@group = Group.find(params[:group_id])
if @logged_in.member_of?(@group)
prayer_request_params[:answered_at] = Date.parse(params[:prayer_request][:answered_at]) rescue nil
@req = @group.prayer_requests.build(prayer_request_params)
@req.person = @logged_in
@req = @group.prayer_requests.new(prayer_request_params)
if @req.save
redirect_to group_path(@req.group, anchor: 'prayer')
else
new; render action: 'new'
render action: 'new'
end
else
render text: t('prayer.cant_post'), layout: true, status: 401
render text: t('prayer_requests.error.no_post'), layout: true, status: 401
end
end

def edit
@group = Group.find(params[:group_id])
@req = PrayerRequest.find(params[:id])
unless @logged_in.can_edit?(@req)
render text: t('prayer.cant_edit'), layout: true, status: 401
render text: t('prayer_requests.error.no_edit'), layout: true, status: 401
end
end

def update
@group = Group.find(params[:group_id])
@req = PrayerRequest.find(params[:id])
if @logged_in.can_edit?(@req)
prayer_request_params[:answered_at] = Date.parse(params[:prayer_request][:answered_at]) rescue nil
if @req.update_attributes(prayer_request_params)
redirect_to group_path(@req.group, anchor: 'prayer')
else
edit; render action: 'edit'
render action: 'edit'
end
else
render text: t('prayer.cant_edit'), layout: true, status: 401
render text: t('prayer_requests.error.no_edit'), layout: true, status: 401
end
end

Expand All @@ -71,13 +68,13 @@ def destroy
@req.destroy
redirect_to group_path(@group, anchor: 'prayer')
else
render text: t('prayer.cant_delete'), layout: true, status: 401
render text: t('prayer_requests.error.no_delete'), layout: true, status: 401
end
end

private

def prayer_request_params
params.require(:prayer_request).permit(:request, :answer, :answered_at)
params.require(:prayer_request).permit(:person_id, :request, :answer, :answered_at)
end
end
15 changes: 15 additions & 0 deletions app/decorators/stream_item_decorator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ def icon
h.icon('fa fa-envelope bg-teal')
when 'Person'
h.icon('fa fa-user bg-olive')
when 'PrayerRequest'
h.icon('fa fa-heart bg-purple', style: 'line-height:2.2')
when 'Site'
h.icon('fa fa-home bg-light-blue')
else
Expand Down Expand Up @@ -83,6 +85,19 @@ def body
h.link_to streamable, class: 'btn btn-info' do
I18n.t('stream.body.person.button', person: streamable.name)
end
elsif streamable_type == 'PrayerRequest' and streamable
h.preserve_breaks(object.body).tap do |html|
if streamable.answer.present?
html << h.content_tag(:div, class: 'prayer-answer') do
if streamable.answered_at
h.content_tag(:h4, I18n.t('prayer_requests.answer.on_date', date: streamable.answered_at.to_s(:date)))
else
h.content_tag(:h4, I18n.t('prayer_requests.answer.heading'))
end +
h.preserve_breaks(streamable.answer)
end
end
end.html_safe
elsif object.body
h.truncate_html(h.sanitize_html(h.auto_link(object.body)), length: MAX_BODY_SIZE)
elsif streamable_type == 'Album'
Expand Down
7 changes: 4 additions & 3 deletions app/helpers/application_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ def params_without_action
end

def datepicker_format
Setting.get(:formats, :date) =~ %r{%d/%m} ? 'dd/mm/yy' : 'mm/dd/yy'
Setting.get(:formats, :date) =~ %r{%d/%m} ? 'dd/mm/yyyy' : 'mm/dd/yyyy'
end

# TODO remove after upgrade to Rails 4.1
Expand All @@ -166,8 +166,9 @@ def link_to_function(label, js, options={})
link_to label, '#', options
end

def icon(css_class)
content_tag(:i, '', class: css_class)
def icon(css_class, options = {})
options[:class] = css_class
content_tag(:i, '', options)
end

def setting(section, name)
Expand Down
12 changes: 1 addition & 11 deletions app/helpers/form_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,10 @@ class FormBuilder
def phone_field(method, options = {})
@template.phone_field(@object_name, method, options.merge(object: @object))
end

def date_field(method, options = {})
options[:value] = self.object[method].to_s(:date) rescue ''
options[:size] ||= 12
text_field(method, options)
end
end

module FormTagHelper
def date_field_tag(name, value = nil, options = {})
value = value.to_s(:date) rescue ''
options[:size] ||= 12
text_field_tag(name, value, options)
end
# nothing yet
end
end
end
10 changes: 6 additions & 4 deletions app/models/prayer_request.rb
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ def name
end

def body
html = "#{request}"
html << "<br/><strong>Answered #{answered_at ? answered_at.to_time.to_s(:date) : nil}:</strong> #{answer}" if answer.to_s.any?
html
request
end

def answered_at=(d)
self[:answered_at] = d.respond_to?(:strftime) ? d : Date.parse_in_locale(d.to_s)
end

def streamable?
Expand All @@ -46,7 +48,7 @@ def create_as_stream_item
def update_stream_items
return unless streamable?
StreamItem.where(streamable_type: "PrayerRequest", streamable_id: id).each do |stream_item|
stream_item.body = body
stream_item.body = body
stream_item.save
end
end
Expand Down
2 changes: 1 addition & 1 deletion app/views/layouts/default.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
event_queue.push(e);
}
}, false);
%body.skin-blue
%body.skin-blue{ date: { 'datepicker-format' => datepicker_format } }
/ header logo: style can be found in header.less
%header.header
= link_to 'CHURCH.IO', root_path, class: 'logo'
Expand Down
17 changes: 0 additions & 17 deletions app/views/prayer_requests/_add_prayer_request.erb

This file was deleted.

36 changes: 0 additions & 36 deletions app/views/prayer_requests/_form.erb

This file was deleted.

25 changes: 25 additions & 0 deletions app/views/prayer_requests/_form.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
= form_for [@group, @req] do |form|
= error_messages_for(form)
= form.hidden_field :group_id

%h3= t('prayer_requests.request.heading')

.form-group
= form.label :person_id
= form.select :person_id, @group.people.map { |p| [p.name, p.id] }, {}, class: 'form-control'
.form-group
= form.label :request
= form.text_area :request, rows: 5, class: 'form-control'

%h3= t('prayer_requests.answer.heading')
%p= t('prayer_requests.answer.description')

.form-group
= form.label :answered_at
= form.date_field :answered_at, value: @req.answered_at && @req.answered_at.to_s(:date), class: 'form-control'
.form-group
= form.label :answer
= form.text_area :answer, rows: 5, class: 'form-control'

.form-group
= form.button t('prayer_requests.save'), class: 'btn btn-success'
5 changes: 0 additions & 5 deletions app/views/prayer_requests/_meta.erb

This file was deleted.

15 changes: 0 additions & 15 deletions app/views/prayer_requests/_prayer_request.erb

This file was deleted.

15 changes: 15 additions & 0 deletions app/views/prayer_requests/_prayer_request.haml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
%p
= link_to req.person.name, req.person
|
\#{req.created_at.to_s :date}
- if @logged_in.can_edit?(req)
= link_to '[' + t('edit') + ']', edit_group_prayer_request_path(req.group, req), class: 'discreet'
- if (req.group and req.group.admin? @logged_in) or req.person == @logged_in
= link_to '[' + t('delete') + ']', group_prayer_request_path(req.group, req), class: 'discreet', data: { confirm: t('are_you_sure') }, method: 'delete'
%br/
= req.request
- if req.answered_at
%br/
%strong
= t('prayer_requests.answer.on_date', date: req.answered_at.to_s(:date)) if req.answered_at
= req.answer
2 changes: 1 addition & 1 deletion app/views/prayer_requests/edit.html.haml
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
- @title = t('prayer.edit_prayer_request')
- @title = t('prayer_requests.edit.heading')

= render partial: 'form'
30 changes: 0 additions & 30 deletions app/views/prayer_requests/index.html.erb

This file was deleted.

Loading

0 comments on commit 67d0d12

Please sign in to comment.