Development (#250)

* Fixed fonts

* Fixed assets

* Fixed logo in emails

* Switched to immediate email delivery

* Fixed prod emails and added deployment tasks

* Fixed deployments

* Updated README

* Added Bike Collectives Core to README

* Fixed issue with map loading

* Fixed issue with map loading

* Added map JSON data to assets precompilation

* Fixed error sending to conference administrators

* Let error report signature wrap

* Fixed backtrace in error reports

* Fixed backtrace in error reports

* Moved pronoun heading to make it more obvoius

I moved the "Pronoun" heading directly above the input field. It turned out that a lot of users were entering "He
 or "She" in the name field, I believe that was because of the placement of the "Pronoun" heading. I also needed to remove the optional warning but I'm hoping that won't cause problems.

* Added an error message when no email address is used on login

* Fixed select guest table

* Added house rules to housing admin and review

* Edit workshop locale warning
This commit is contained in:
Godwin
2017-08-06 09:41:13 -07:00
committed by GitHub
parent 4054f450fc
commit f54c09f248
15 changed files with 100 additions and 69 deletions
+11 -1
View File
@@ -123,6 +123,7 @@ table, .table {
td, .table-td {
&.inner-table {
padding: 0.5em;
vertical-align: top;
table {
margin: 0;
@@ -133,6 +134,10 @@ table, .table {
&.bold {
@include font-family(secondary);
}
.rules {
font-size: 0.75em;
}
}
tbody th {
@@ -859,7 +864,7 @@ nav.sub-menu {
min-width: 15em;
}
.host-notes {
.host-notes, .house-rules {
@include font-family(primary);
font-size: 0.85em;
border: 0.1em solid $light-gray;
@@ -876,6 +881,11 @@ nav.sub-menu {
}
}
.house-rules {
max-height: 30em;
overflow: auto;
}
.guest-notes {
position: relative;
float: left;
+4 -37
View File
@@ -153,43 +153,6 @@ table, .table {
}
}
// td, .table-td {
// &.inner-table {
// padding: 0;
// table {
// margin: 0;
// width: 100%;
// }
// tr:first-child {
// td, th {
// border-top: 0;
// }
// }
// tr:last-child {
// td, th {
// border-bottom: 0;
// }
// }
// td, th {
// &:first-child {
// border-left: 0
// }
// &:last-child {
// border-right: 0
// }
// }
// }
// &.bold {
// @include font-family(secondary);
// }
// }
tbody th {
width: 0.1rem;
}
@@ -1760,6 +1723,10 @@ ul.warnings {
.text-field & {
margin: 0 0 1em 0;
}
&.top-message {
margin-top: 2em;
}
}
.success-info {
@@ -479,8 +479,10 @@ class ConferenceAdministrationController < ApplicationController
end
end
@excel_data[:data] << host_data
end
return respond_to do |format|
format.xlsx { render xlsx: '../conferences/stats', filename: "housing" }
end
+2 -2
View File
@@ -67,8 +67,8 @@ class WorkshopsController < ApplicationController
else
return do_403 unless @can_edit
@title = @workshop.title
@info = @workshop.info
@title = @workshop.title!
@info = @workshop.info!
end
@needs = JSON.parse(@workshop.needs || '[]').map &:to_sym
+1 -1
View File
@@ -112,7 +112,7 @@ module AdminHelper
end
def get_housing_match(host, guest, space)
housing_data = guest.housing_data || []
housing_data = guest.housing_data || {}
if housing_data['host'].present?
if housing_data['host'] == host.id
+2 -1
View File
@@ -137,7 +137,8 @@ module FormHelper
if options[:warning].present?
description_id ||= "#{id}-desc"
html += content_tag(:div, _(options[:warning], :s, 2), id: description_id, class: 'warning-info')
# html += content_tag(:div, _(options[:warning], :s, 2), id: description_id, class: 'warning-info')
html += status_bubble(_(options[:warning], :s, 2), :warning, id: description_id)
end
aria = {}
+8 -2
View File
@@ -85,8 +85,14 @@ module GeocoderHelper
end
def location_link(location)
return '' unless location.present? && location.address.present?
content_tag(:a, (_!location.address), href: "http://www.google.com/maps/place/#{location.latitude},#{location.longitude}")
return '' unless location.present?
address = if location.is_a?(Location)
location.street
else
location.address
end
return '' unless address.present?
content_tag(:a, (_!address), href: "http://www.google.com/maps/place/#{location.latitude},#{location.longitude}")
end
def same_city?(location1, location2)
+23 -4
View File
@@ -112,20 +112,20 @@ module WidgetsHelper
@housing_data[id][:guest_data][guest_id][:errors].each do |error, value|
if value.is_a?(Array)
value.each do |v|
status_html += content_tag(:li, _("errors.messages.housing.space.#{error.to_s}", vars: v))
status_html += content_tag(:li, _("errors.messages.housing.space.#{error.to_s}", vars: v).html_safe)
end
else
status_html += content_tag(:li, _("errors.messages.housing.space.#{error.to_s}", vars: value))
status_html += content_tag(:li, _("errors.messages.housing.space.#{error.to_s}", vars: value).html_safe)
end
end
@housing_data[id][:guest_data][guest_id][:warnings].each do |error, value|
if value.is_a?(Array)
value.each do |v|
status_html += content_tag(:li, _("warnings.messages.housing.space.#{error.to_s}", v))
status_html += content_tag(:li, _("warnings.messages.housing.space.#{error.to_s}", v).html_safe)
end
else
status_html += content_tag(:li, _("warnings.messages.housing.space.#{error.to_s}", vars: value))
status_html += content_tag(:li, _("warnings.messages.housing.space.#{error.to_s}", vars: value).html_safe)
end
end
@@ -326,4 +326,23 @@ module WidgetsHelper
end
end
end
def strong(text)
content_tag(:strong, text)
end
def phone_link(number)
content_tag(:a, number, href: "tel:#{number}")
end
def email_link(email)
content_tag(:a, email, href: "mailto:#{email}")
end
def status_bubble(text, status, attributes = {})
attributes[:class] ||= []
attributes[:class] = [attributes[:class]] unless attributes[:class].is_a?(Array)
attributes[:class] << "#{status}-info"
content_tag(:div, text.html_safe, attributes)
end
end
@@ -8,15 +8,22 @@
- first_row = true
%table.hosts.admin-edit
- @hosts.each do |id, registration|
- unless first_row
%tr.spacer
%td
%tr.host
%th
.name=registration.user.name
.address=registration.housing_data['address']
- if registration.housing_data['notes'].present?
.host-notes=paragraph(registration.housing_data['notes'])
%td.inner-table{colspan: 2}=host_guests_table(registration)
- first_row = false
- @hosts.sort_by{ |id, registration| registration.user.name }.each do |id, registration|
- if @housing_data[id][:space].map { |k,v| v }.sum > 0
- unless first_row
%tr.spacer
%td
%tr.host
%th
.name=registration.user.name
.address=location_link(Location.find_location(registration.housing_data['address'], @this_conference.city))
- if registration.housing_data['notes'].present?
.host-notes=paragraph(registration.housing_data['notes'])
- if registration.housing_data['info'].present?
%div=_'articles.conference_registration.headings.housing.Rules', :t
.house-rules
=richtext(registration.housing_data['info'], 4)
%td.inner-table{colspan: 2}
=host_guests_table(registration)
- first_row = false
@@ -39,6 +39,16 @@
- if @allow_reopen_attendance
.actions.centered
= button :reopen_registration, value: :reopen_registration
- if @host
= row do
= columns(medium: 12) do
%h3=_'articles.conferences.headings.housing_info', :t
%p=(_'articles.conference_registration.paragraphs.Housing', :p, vars: { name: strong(@host.user.name), address: location_link(Location.find_location(@host.housing_data['address'], @this_conference.city)), phone: phone_link(@host.housing_data['phone']), email: email_link(@host.user.email) }).html_safe
= row do
= columns(medium: 12) do
%h4=_'articles.conference_registration.headings.hosting_info', :t
= richtext @host.housing_data['info']
= row do
= columns(medium: 12) do
%h3=_'articles.workshops.headings.Workshops', :t
+1 -1
View File
@@ -20,6 +20,6 @@
- locale_translation = language_name(locale, true)
- translation_text = (_'translate.content.change_locale', "Read in #{locale_translation}", vars: {language: locale_translation}, locale: locale)
%a{href: url, lang: locale, title: translation_text}
%span{aria: {hidden: true}}=_!locale
%span{aria: {hidden: :true}}=_!locale
= off_screen translation_text
+8 -8
View File
@@ -13,7 +13,7 @@
- if preview.blank? && translations_available_for_editing
.actions.center
- translations_available_for_editing.each do |locale|
= link_to (_'actions.workshops.Translate', "Translate into #{language_name(locale)}", :vars => {:language => language_name(locale)}), translate_workshop_url(workshop.conference.slug, workshop.id, locale), :class => [:button, :translate]
= link_to (_'actions.workshops.Translate', "Translate into #{language_name(locale)}", vars: {language: language_name(locale)}), translate_workshop_url(workshop.conference.slug, workshop.id, locale), class: [:button, :translate]
- if logged_in?
= columns(medium: 6) do
%h3=_'articles.workshops.headings.facilitators'
@@ -30,19 +30,19 @@
.details
.email=_!u.email
- if f.role.to_sym == :requested
=(link_to (_'actions.workshops.Approve'), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'approve'), :class => [:button, :modify])
=(link_to (_'actions.workshops.Deny'), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'deny'), :class => [:button, :delete])
=(link_to (_'actions.workshops.Approve'), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'approve'), class: [:button, :modify])
=(link_to (_'actions.workshops.Deny'), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'deny'), class: [:button, :delete])
- elsif workshop.can_remove?(current_user, u)
=(link_with_confirmation (_'actions.workshops.Make_Owner'), (_'modals.workshops.facilitators.confirm_transfer_ownership', vars: { user_name: u.name}),approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'switch_ownership'), :class => [:button, :modify]) unless f.role.to_sym == :creator || !workshop.creator?(current_user)
=(link_with_confirmation (_"actions.workshops.#{is_this_user ? 'Leave' : 'Remove'}"), (_"modals.workshops.facilitators.confirm_remove#{is_this_user ? '_self' : ''}", vars: { user_name: u.name}), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'remove'), :class => [:button, :delete])
=(link_with_confirmation (_'actions.workshops.Make_Owner'), (_'modals.workshops.facilitators.confirm_transfer_ownership', vars: { user_name: u.name}),approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'switch_ownership'), class: [:button, :modify]) unless f.role.to_sym == :creator || !workshop.creator?(current_user)
=(link_with_confirmation (_"actions.workshops.#{is_this_user ? 'Leave' : 'Remove'}"), (_"modals.workshops.facilitators.confirm_remove#{is_this_user ? '_self' : ''}", vars: { user_name: u.name}), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'remove'), class: [:button, :delete])
- if is_this_user && workshop.requested_collaborator?(current_user)
.details
=(link_with_confirmation (_'actions.workshops.Cancel_Request'), (_'modals.workshops.facilitators.confirm_cancel_request'), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'remove'), :class => [:button, :delete])
=(link_with_confirmation (_'actions.workshops.Cancel_Request'), (_'modals.workshops.facilitators.confirm_cancel_request'), approve_facilitate_workshop_request_path(workshop.conference.slug, workshop.id, f.user_id, 'remove'), class: [:button, :delete])
- unless preview.present?
=(link_to (_'actions.workshops.Facilitate'), facilitate_workshop_path(workshop.conference.slug, workshop.id), :class => [:button, workshop.needs_facilitators ? :accented : :subdued]) unless workshop.facilitator?(current_user)
=(link_to (_'actions.workshops.Facilitate'), facilitate_workshop_path(workshop.conference.slug, workshop.id), class: [:button, workshop.needs_facilitators ? :accented : :subdued]) unless workshop.facilitator?(current_user)
- if is_facilitator
%h4=_'articles.workshops.headings.add_facilitator','Add a facilitator'
= form_tag workshop_add_facilitator_path(workshop.conference.slug, workshop.id), :class => 'add-facilitator mini-flex-form' do
= form_tag workshop_add_facilitator_path(workshop.conference.slug, workshop.id), class: 'add-facilitator mini-flex-form' do
.email-field.input-field
= email_field_tag :email, nil, required: true
= label_tag :email
+2
View File
@@ -11,6 +11,8 @@
= hidden_field_tag :translation, @translation
- else
%h2=_@page_title, :t
- unless @is_translating || @workshop.locale.to_s == I18n.locale.to_s
= status_bubble(_('articles.workshops.paragraphs.not_original_locale', vars: { original_locale: language_name(@workshop.locale), this_locale: language_name(I18n.locale), link: translate_workshop_url(@workshop.conference.slug, @workshop.id, I18n.locale) }), :warning, class: 'top-message')
- else
%h2=_@page_title, :t