Skip to content

Commit

Permalink
Merge pull request #470 from RefugeRestrooms/develop
Browse files Browse the repository at this point in the history
Deploy
  • Loading branch information
mi-wood authored Mar 5, 2018
2 parents 91d9f49 + 93eb8b0 commit 34ed55d
Show file tree
Hide file tree
Showing 50 changed files with 568 additions and 511 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
setup/entry text eol=lf
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ services: docker
before_install:
- docker-compose build
script:
- docker-compose run -e "RAILS_ENV=test" web rake db:test:prepare spec cucumber
- docker-compose run -e "RAILS_ENV=test" web rake db:test:prepare spec
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ It will be available at localhost:3000

### 5 Run the Tests
```
docker-compose run -e "RAILS_ENV=test" web rake db:test:prepare spec cucumber
docker-compose run -e "RAILS_ENV=test" web rake db:test:prepare spec
```

### 6 Optional tasks:
Expand Down
10 changes: 8 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ gem 'pg_search'
gem 'sass-rails'
gem 'bootstrap-sass'
gem 'haml'
gem 'rails_12factor'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.2'
gem 'jquery-rails'
Expand All @@ -33,19 +32,26 @@ gem 'puma'
# Upgraded to 1.0.0 for Rails 5.1.4
gem 'activeadmin', '~> 1.0.0'

group :production do
gem 'rails_12factor'
end

group :development, :test do
gem 'rspec-rails'
gem 'factory_bot_rails', '~> 4.8.2'
gem 'dotenv-rails', '~> 2.2.1'
gem 'pry'
gem 'better_errors', '~> 2.4.0'
gem 'binding_of_caller'
end

group :development do
gem 'i18n-debug'
end

group :test do
gem 'rake'
gem 'cucumber-rails', '~> 1.5.0', require: false
gem 'capybara'
gem 'database_cleaner'
gem 'simplecov', '~> 0.7.1', require: false
gem 'poltergeist'
Expand Down
30 changes: 1 addition & 29 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ GEM
descendants_tracker (~> 0.0.4)
ice_nine (~> 0.11.0)
thread_safe (~> 0.3, >= 0.3.1)
backports (3.10.3)
bcrypt (3.1.11)
better_errors (2.4.0)
coderay (>= 1.0.0)
Expand Down Expand Up @@ -109,28 +108,6 @@ GEM
crack (0.4.3)
safe_yaml (~> 1.0.0)
crass (1.0.2)
cucumber (3.0.1)
builder (>= 2.1.2)
cucumber-core (~> 3.0.0)
cucumber-expressions (~> 4.0.3)
cucumber-wire (~> 0.0.1)
diff-lcs (~> 1.3)
gherkin (~> 4.0)
multi_json (>= 1.7.5, < 2.0)
multi_test (>= 0.1.2)
cucumber-core (3.0.0)
backports (>= 3.8.0)
cucumber-tag_expressions (>= 1.0.1)
gherkin (>= 4.1.3)
cucumber-expressions (4.0.4)
cucumber-rails (1.5.0)
capybara (>= 1.1.2, < 3)
cucumber (>= 1.3.8, < 4)
mime-types (>= 1.17, < 4)
nokogiri (~> 1.5)
railties (>= 4, < 5.2)
cucumber-tag_expressions (1.0.1)
cucumber-wire (0.0.1)
database_cleaner (1.6.2)
debug_inspector (0.0.3)
descendants_tracker (0.0.4)
Expand Down Expand Up @@ -159,7 +136,6 @@ GEM
actionpack (>= 3.2.13)
formtastic_i18n (0.6.0)
geocoder (1.2.14)
gherkin (4.1.3)
globalid (0.4.1)
activesupport (>= 4.2.0)
grape (0.7.0)
Expand Down Expand Up @@ -224,16 +200,12 @@ GEM
actionmailer (>= 3.2, < 5.2)
activemodel (>= 3.2, < 5.2)
method_source (0.9.0)
mime-types (3.1)
mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521)
mini_mime (0.1.4)
mini_portile2 (2.3.0)
minitest (5.10.3)
money (6.9.0)
i18n (>= 0.6.4, < 0.9)
multi_json (1.12.2)
multi_test (0.1.2)
multi_xml (0.6.0)
nio4r (2.1.0)
nokogiri (1.8.1)
Expand Down Expand Up @@ -394,9 +366,9 @@ DEPENDENCIES
binding_of_caller
bootstrap-sass
bugsnag
capybara
coffee-rails (~> 4.2)
country_select
cucumber-rails (~> 1.5.0)
database_cleaner
devise (~> 4.3)
dotenv-rails (~> 2.2.1)
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ Staging: [Link](http://staging.refugerestrooms.org)

## Contributing

Changes to the site can be tested locally before deploying to the web. To get set up to edit the site and test your changes, see [`CONTRIBUTING.md`](https://github.com/RefugeRestrooms/refugerestrooms/blob/develop/CONTRIBUTING.md).
For more information on how to contribute to Refuge Restrooms, or how the technology works, see the [Wiki](https://github.com/RefugeRestrooms/refugerestrooms/wiki).

If you just want to get your environment set up for making changes locally and testing, you can head directly to [CONTRIBUTING.md](https://github.com/RefugeRestrooms/refugerestrooms/blob/develop/CONTRIBUTING.md).

## Tech

Expand Down
130 changes: 54 additions & 76 deletions app/assets/javascripts/views/restrooms/index.js
Original file line number Diff line number Diff line change
@@ -1,77 +1,55 @@
$(function(){
var headerHidden = false;
var mapOn = false;
var mapShow = false;
var mapHeight, listHeight;
var mapContainer = $("#mapContainer");
var list = $("#list");
var mapToggle = $(".mapToggle");
var search = $("#search");

function toggleMap (){
if (mapShow) {
mapToggle.html("Map View");
//animate
scrollUp(mapContainer, function(){scrollDown(list, listHeight);});
}else{
mapToggle.html("List View");
//animate
scrollUp(list, function(){scrollDown(mapContainer, mapHeight, doInit);});
}
mapShow = !mapShow;
}

function scrollDown(object, height, callback){
object.show();
object.animate({height: height}, 1000, function(){
if (callback) {
callback();
}
});
}

function scrollUp(object, callback){
object.animate({height: 0}, 1000, function(){
object.hide();
if (callback) {
callback();
}
})
}

function doInit(){
//initialize the map if it wasn't already on
if (!mapOn && mapContainer.data('latitude') && mapContainer.data('longitude')) {
initMap(mapContainer.data('latitude'), mapContainer.data('longitude'));

//get a list of points from the server based on the searched location
$.get( '/restrooms' + window.location.search , {}, function( data ) {
for(var i = 0; i < data.length; i++){
//for each point in the data, put a point on the map
setPoint(data[i], i + 1);
}
}, 'json');
mapOn = true;
}
}


if (mapContainer.length > 0 && list.length > 0 && mapToggle.length > 0) {
if (!mapContainer.data('latitude') || !mapContainer.data('longitude')) {
//catch bad URL
searchLocation(search.val());
}
//get default height for animation later
mapHeight = mapContainer.height();
listHeight = list.height();

//hide the map
mapContainer.hide();
mapContainer.height(0);

mapToggle.click(function(){
//toggle which display is open
toggleMap();
});
}
});
var headerHidden = false;
var mapInitialized = false;
var mapShow = false;
var mapContainer = $("#mapContainer");
var list = $("#list");
var mapToggle = $(".mapToggle");
var search = $("#search");

function toggleMap (){
if (mapShow) {
mapToggle.html("Map View");
// animate
mapContainer.fadeIn(500, function() { list.fadeOut(500) });
} else{
mapToggle.html("List View");
// animate
list.fadeOut(500, function() { mapContainer.fadeIn(500, initPoints) });
}
mapShow = !mapShow;
}

function initPoints(){
// initialize the map if it wasn't already on
if (!mapInitialized && mapContainer.data('latitude') && mapContainer.data('longitude')) {
initMap(mapContainer.data('latitude'), mapContainer.data('longitude'));

// get a list of points from the server based on the searched location
$.get( '/restrooms' + window.location.search , {}, function( data ) {
for(var i = 0; i < data.length; i++){
// for each point in the data, put a point on the map
setPoint(data[i], i + 1);
}
}, 'json');
mapInitialized = true;
}
}


if (mapContainer.length > 0 && list.length > 0 && mapToggle.length > 0) {
if (!mapContainer.data('latitude') || !mapContainer.data('longitude')) {
// catch bad URL
searchLocation(search.val());
}
// get default height for animation later
mapHeight = mapContainer.height();
listHeight = list.height();

// hide the map
mapContainer.fadeOut(0);

// toggle which display is open
mapToggle.click(toggleMap);
}
});
2 changes: 1 addition & 1 deletion app/views/layouts/_head.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
%meta{:content => "RefugeRestrooms.org", :name => "author"}/
%meta{:content => "initial-scale=1, maximum-scale=1", :name => "viewport"}/

%script{:src => "https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places&key=AIzaSyBXcCrqzMlm-ZmtNQve7AuipNdE4vySUF0"}
%script{:src => "https://maps.googleapis.com/maps/api/js?v=3.31&libraries=places&key=AIzaSyBXcCrqzMlm-ZmtNQve7AuipNdE4vySUF0"}
= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true
= javascript_include_tag "application", "data-turbolinks-track" => true
= csrf_meta_tags
Expand Down
16 changes: 0 additions & 16 deletions bin/cucumber

This file was deleted.

5 changes: 4 additions & 1 deletion config/application.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ class Application < Rails::Application

# I18n stuff
config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]
config.i18n.available_locales = [:en, :es]
config.i18n.available_locales = [:en, :es, :fr]
#config.i18n.default_locale = :fr



end
end
2 changes: 2 additions & 0 deletions config/environments/test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,6 @@

# Raises error for missing translations
# config.action_view.raise_on_missing_translations = true

config.log_level = :error
end
22 changes: 22 additions & 0 deletions config/locales/fr/about.fr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
fr:
about:
title: 'À propos de REFUGE'
p1header: "REFUGE restrooms, qu'est-ce que c'est ?"
p1:
first: "Refuge Restrooms est une application web visant à fournir un accès sécurisé à des toilettes aux personnes transgenres, intersexuées et non conformes dans le genre. Les utilisateurs peuvent chercher des toilettes à proximité d'un lieu, référencer de nouvelles toilettes, ainsi que commenter et noter les toilettes listées."
second: "Nous sommes transgenres et cherchons à créer une communauté axée non seulement sur la recherche de l'accès sécurisé aux toilettes, mais aussi préconiser la sécurité des personnes transgenres, intersexuées et non conformes dans le genre."
p2header: 'Où avez vous eu toutes ces données ?'
p2: "Les premières 4500 entrées proviennent de l'ancienne base de données Safe2Pee. Le reste de notre base de données est générée par nos utilisateurs. Si vous connaissez des toilettes non sexistes ou sécurisées, veuillez les ajouter à notre base de données !"
p3header: 'Pourquoi avoir choisi le nom REFUGE ?'
p3: "Nous croyons fermement que tout le monde a le droit d'utiliser les toilettes en toute sécurité et nous voulions que le nom de notre application reflète la dignité que nous voulons donner à nos utilisateurs. Nous espérons simplement offrir un lieu de refuge pour vos besoins."
p4header: "Quelle est l'importance des toilettes et pourquoi avons nous besoin de cette application ?"
p4: "L'un des plus grands champs de bataille où se déroule chaque jour la lutte pour les droits des transgenres est celui des toilettes : il semble que toutes les deux semaines un enfant transgenre est au centre d'un reportage national parce qu'il utilise les toilettes assignées au sexe qui l'identifie. Évidemment, nous croyons que toute personne transgenre devrait avoir le droit d'utiliser les toilettes qu'elle souhaite. Pourtant, nous réalisons également que malgré les victoires législatives de ces dernières années concernant l'utilisation des toilettes, de nombreux individus transgenres sont toujours confrontés au harcèlement verbal et physique simplement pour avoir utilisé les toilettes. Personne ne devrait être confronté à cela - et c'est pourquoi nous avons créé REFUGE."
p5header: 'Que pouvons nous faire pour aider?'
p5:
first: "<strong>1.</strong> Référencer des toilettes. La taille de la base de données dépend de votre participation. Plus il y a de toilettes référencées, plus l'application sera complète et aura de la valeure."
second: "<strong>2.</strong> Diffuser le message. Tweet. Facebook. Tumblr. Blog. Quoi que vous fassiez, faites-le. Faites connaître aux gens cette application."
third: "<strong>3.</strong> Si vous savez coder, visitez GitHub et informez-nous d'un bug, suggérez une amélioration, ou ajoutez un peu de code et aidez le projet. REFUGE est open source et nous ne pouvons pas le faire sans vous."
fourth: "<strong>4.</strong> Faites un don. Gardez les yeux ouverts pour une campagne de crowdfunding à venir pour financer une partie de la technologie dont nous avons besoin et pour payer un peu nos fabuleux designers et développeurs pour leur travail acharné et inlassable. Ils ont travaillé gratuitement pour vous offrir ce service et nous pensons que tout travail mérite salaire. La plupart des membres de l'équipe de base sont transgenres et sous-employés en ce moment."
p6header: "Pourquoi mon entreprise ou organisation est-elle répertoriée ?"
p6: "En savoir plus sur notre <a href='/business_info'>Business FAQ</a>!"
contribute: 'Contribuez sur GitHub!'
23 changes: 23 additions & 0 deletions config/locales/fr/business_info.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
fr:
business_info:
title: "Questions fréquentes des organisations et entreprises à propos de Refuge Restrooms"
p1header: "1) Qu'est ce que Refuge Restrooms ?"
p1: "REFUGE est une application web visant à fournir un accès sécurisé à des toilettes aux personnes transgenres, intersexuées et non conformes dans le genre. En lire plus à propos de nous sur notre <a href='/about'>page À Propos</a>."
p2header: "2) Comment mon établissement est-il entré dans cette liste ?"
p2: "Quelqu'un a utilisé vos toilettes et voulait soumettre votre emplacement en tant que ressource. Toutes nos données sont fournies par l'utilisateur et soumises par l'utilisateur."
p3header: "3) Comment puis-je être un bon hôte ?"
p3: "Merci d'avoir posé la question! Souvent, les visiteurs de REFUGE espèrent faire un arrêt rapide et être sur notre chemin, et comme tout autre visiteur, potentiellement soutenir votre entreprise ou votre emplacement pendant que nous sommes là. Le personnel amical et de bonnes expériences peuvent apporter un peu d'amour pour votre espace dans la section des commentaires de l'application (plus d'informations ci-dessous)"
p4header: "4) Why are safe restrooms an issue?"
p4:
first: "Aller aux toilettes es une activité quotidienne qui peut être difficile à effectuer pour les membres de notre communauté -- en particulier quand ils se rendent dans des lieux étrangers à leurs habitudes. C'est à ce moment que notre projet carthographie intervient."
second: "Selon l'<a href='http://www.ustranssurvey.org/'>US Trans Survey</a>:"
list1: "59% des répondants évitent d'utiliser les toilettes par peur de confrontation"
list2: "31% évitent de manger ou boire à l'extérieur pour eviter d'utiliser les toilettes"
list3: "24% ont été questionnés sur leur présence aux toilettes"
list4: "12% ont été harcelés, attaqués, ou agressés sexuellement dans les toilettes"
list5: "9% se sont vus refuser l'accès aux toilettes"
list6: "8% ont développé un problème rénal ou une infection des voies urinaires pour avoir éviter l'utilisation des toilettes"
p5header: "5) Que signifient les avis?"
p5: "Les avis aident les visiteurs à partager leurs expériences les uns avec les autres sur l'emplacement. Nous encourageons les visiteurs à partager autant d'informations que nous avons sur chaque emplacement de la carte."
p6header: "6) Comment puis je retirer mon référencement ?"
p6: "Nous espérons que vous envisagerez de conserver votre référencement. Cela peut signifier beaucoup pour la santé et le bien-être de la population. Cependant, si vous préférez ne pas être référencer, utilisez notre formulaire de contact pour demander un retrait et nos volontaires travailleront dessus dès que possible (ceci est un projet open source, tout le travail est donc réalisé par des bénévoles)."
11 changes: 11 additions & 0 deletions config/locales/fr/contacts.fr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
fr:
contacts:
new:
request-edit-for-restroom: "Demande d'edition pour Toilettes %{restroom_name}"
contact-title: 'Contact'
leave-this-field-blank: 'Laissez ce champ vide !'
submitted:
thank-you-period: 'Merci pour votre message.'
thank-you-exclamation: 'Merci pour votre message !'
cannot-send: "Impossible d'envoyer votre message."
we-will-get-back-to-you: "Nous reviendrons vers vous bientôt."
Loading

0 comments on commit 34ed55d

Please sign in to comment.