diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index da8498683..775c27bae 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -17,7 +17,7 @@ The [issue tracker](https://github.com/LaCasemate/fab-manager/issues) is the pre
[features requests](#features) and [submitting pull requests](#pull-requests), but please respect the following
restrictions:
-* Please **do not** use the issue tracker for personal support requests (use [the forum](http://www.fab-manager.com/forum)).
+* Please **do not** use the issue tracker for personal support requests (use [the forum](https://forum.fab-manager.com)).
* Please **do not** derail or troll issues. Keep the discussion on topic and respect the opinions of others.
diff --git a/Gemfile b/Gemfile
index 7479895fc..0a4c19a8d 100644
--- a/Gemfile
+++ b/Gemfile
@@ -115,8 +115,6 @@ gem 'stripe', '1.30.2'
gem 'recurrence'
-gem 'newrelic_rpm'
-
# PDF
gem 'prawn'
gem 'prawn-table'
diff --git a/Gemfile.lock b/Gemfile.lock
index 7972ef6e6..2d6b1b45e 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -242,7 +242,6 @@ GEM
net-ssh-gateway (1.2.0)
net-ssh (>= 2.6.5)
netrc (0.10.3)
- newrelic_rpm (3.11.1.284)
nokogiri (1.6.6.4)
mini_portile (~> 0.6.0)
notiffany (0.0.6)
@@ -497,7 +496,6 @@ DEPENDENCIES
letter_opener
message_format
mini_magick
- newrelic_rpm
notify_with
oj
omniauth
diff --git a/README.md b/README.md
index 215956518..3d778b6a6 100644
--- a/README.md
+++ b/README.md
@@ -6,23 +6,23 @@ FabManager is the FabLab management solution. It is web-based, open-source and t
##### Table of Contents
1. [Software stack](#software-stack)
2. [Contributing](#contributing)
-3. [Setup a development environment](#setup-a-development-environment)
-3.1. [General Guidelines](#general-guidelines)
+3. [Setup a development environment](#setup-a-development-environment)
+3.1. [General Guidelines](#general-guidelines)
3.2. [Environment Configuration](#environment-configuration)
-4. [PostgreSQL](#postgresql)
-4.1. [Install PostgreSQL 9.4 on Ubuntu/Debian](#postgresql-on-debian)
-4.2. [Install and launch PostgreSQL on MacOS X](#postgresql-on-macosx)
+4. [PostgreSQL](#postgresql)
+4.1. [Install PostgreSQL 9.4 on Ubuntu/Debian](#postgresql-on-debian)
+4.2. [Install and launch PostgreSQL on MacOS X](#postgresql-on-macosx)
4.3. [Setup the FabManager database in PostgreSQL](#setup-fabmanager-in-postgresql)
-5. [ElasticSearch](#elasticsearch)
-5.1. [Install ElasticSearch on Ubuntu/Debian](#elasticsearch-on-debian)
-5.2. [Install ElasticSearch on MacOS X](#elasticsearch-on-macosx)
+5. [ElasticSearch](#elasticsearch)
+5.1. [Install ElasticSearch on Ubuntu/Debian](#elasticsearch-on-debian)
+5.2. [Install ElasticSearch on MacOS X](#elasticsearch-on-macosx)
5.3. [Setup ElasticSearch for the FabManager](#setup-fabmanager-in-elasticsearch)
-6. [Internationalization (i18n)](#i18n)
-6.1. [Translation](#i18n-translation)
-6.1.1. [Front-end translations](#i18n-translation-front)
-6.1.2. [Back-end translations](#i18n-translation-back)
-6.2. [Configuration](#i18n-configuration)
-6.2.1. [Settings](#i18n-settings)
+6. [Internationalization (i18n)](#i18n)
+6.1. [Translation](#i18n-translation)
+6.1.1. [Front-end translations](#i18n-translation-front)
+6.1.2. [Back-end translations](#i18n-translation-back)
+6.2. [Configuration](#i18n-configuration)
+6.2.1. [Settings](#i18n-settings)
6.2.2. [Applying changes](#i18n-apply)
7. [Known issues](#known-issues)
8. [Related Documentation](#related-documentation)
@@ -159,7 +159,7 @@ You can generate such a random key by running `rake secret`.
STRIPE_API_KEY & STRIPE_PUBLISHABLE_KEY
-Key an secret used to identify you Stripe account through the API.
+Key and secret used to identify you Stripe account through the API.
Retrieve them from https://dashboard.stripe.com/account/apikeys.
STRIPE_CURRENCY
@@ -525,6 +525,8 @@ After modifying any values concerning the localisation, restart the application
This may happens when the `application.yml` file is missing.
To solve this issue copy `config/application.yml.default` to `config/application.yml`.
This is required before the first start.
+
+- Due to a stripe limitation, you won't be ble to create plans longer than one year.
diff --git a/app/assets/javascripts/app.js.erb b/app/assets/javascripts/app.js.erb
index 6d87c37c8..8a9e14be1 100644
--- a/app/assets/javascripts/app.js.erb
+++ b/app/assets/javascripts/app.js.erb
@@ -20,7 +20,7 @@ angular.module('application', ['ngCookies', 'ngResource', 'ngSanitize', 'ngAnima
'ui.select', 'ui.calendar', 'angularMoment', 'Devise', 'DeviseModal', 'angular-growl', 'xeditable',
'checklist-model', 'unsavedChanges', 'angular-loading-bar', 'ngTouch', 'angular-google-analytics',
'angularUtils.directives.dirDisqus', 'summernote', 'elasticsearch', 'angular-medium-editor', 'naif.base64',
- 'minicolors', 'pascalprecht.translate']).
+ 'minicolors', 'pascalprecht.translate', 'ngFitText']).
config(['$httpProvider', 'AuthProvider', "growlProvider", "unsavedWarningsConfigProvider", "AnalyticsProvider", "uibDatepickerPopupConfig", "$provide", "$translateProvider",
function($httpProvider, AuthProvider, growlProvider, unsavedWarningsConfigProvider, AnalyticsProvider, uibDatepickerPopupConfig, $provide, $translateProvider) {
diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js
index 55ab68983..cbeb714a9 100644
--- a/app/assets/javascripts/application.js
+++ b/app/assets/javascripts/application.js
@@ -67,6 +67,7 @@
//= require angular-translate-loader-partial/angular-translate-loader-partial
//= require messageformat/messageformat
//= require angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat
+//= require ngFitText/dist/ng-FitText.min
//= require_tree ./controllers
//= require_tree ./services
//= require_tree ./directives
diff --git a/app/assets/javascripts/controllers/admin/members.coffee.erb b/app/assets/javascripts/controllers/admin/members.coffee.erb
index 7e135ce54..6571e0d7f 100644
--- a/app/assets/javascripts/controllers/admin/members.coffee.erb
+++ b/app/assets/javascripts/controllers/admin/members.coffee.erb
@@ -207,6 +207,10 @@ Application.Controllers.controller "EditMemberController", ["$scope", "$state",
## The user to edit
$scope.user = memberPromise
+ ## Should the passord be modified?
+ $scope.password =
+ change: false
+
## the user subscription
if $scope.user.subscribed_plan? and $scope.user.subscription?
$scope.subscription = $scope.user.subscription
@@ -371,6 +375,10 @@ Application.Controllers.controller "NewMemberController", ["$scope", "$state", "
## Form action on the above URL
$scope.method = 'post'
+ ## Should the passord be set manually or generated?
+ $scope.password =
+ change: false
+
## Default member's profile parameters
$scope.user =
plan_interval: ''
diff --git a/app/assets/javascripts/controllers/members.coffee b/app/assets/javascripts/controllers/members.coffee
index bef2e9bed..8417cc2fd 100644
--- a/app/assets/javascripts/controllers/members.coffee
+++ b/app/assets/javascripts/controllers/members.coffee
@@ -50,6 +50,10 @@ Application.Controllers.controller "EditProfileController", ["$scope", "$rootSco
## mapping of fields to disable
$scope.preventField = {}
+ ## Should the passord be modified?
+ $scope.password =
+ change: false
+
## Angular-Bootstrap datepicker configuration for birthday
$scope.datePicker =
format: $locale.DATETIME_FORMATS.shortDate
diff --git a/app/assets/javascripts/filters/filters.coffee b/app/assets/javascripts/filters/filters.coffee
index 2f3090870..686d9e40b 100644
--- a/app/assets/javascripts/filters/filters.coffee
+++ b/app/assets/javascripts/filters/filters.coffee
@@ -112,25 +112,7 @@ Application.Filters.filter "toTrusted", [ "$sce", ($sce) ->
Application.Filters.filter "planIntervalFilter", [ ->
(interval, intervalCount) ->
- if typeof intervalCount != 'number'
- switch interval
- when 'day' then return 'jour'
- when 'week' then return 'semaine'
- when 'month' then return 'mois'
- when 'year' then return 'année'
- else
- if intervalCount == 1
- switch interval
- when 'day' then return 'un jour'
- when 'week' then return 'une semaine'
- when 'month' then return 'un mois'
- when 'year' then return 'un an'
- else
- switch interval
- when 'day' then return intervalCount+ ' jours'
- when 'week' then return intervalCount+ ' semaines'
- when 'month' then return intervalCount+ ' mois'
- when 'year' then return intervalCount+ ' ans'
+ moment.duration(intervalCount, interval).humanize()
]
Application.Filters.filter "humanReadablePlanName", ['$filter', ($filter)->
diff --git a/app/assets/stylesheets/app.base.scss b/app/assets/stylesheets/app.base.scss
index 4ff669009..168c90161 100644
--- a/app/assets/stylesheets/app.base.scss
+++ b/app/assets/stylesheets/app.base.scss
@@ -31,7 +31,7 @@ h5 {
&:after {
position: absolute;
top: 18px;
- left: 0px;
+ left: 0;
content: '';
width: 35%;
height: 1px;
@@ -65,7 +65,7 @@ p {
font-family: $font-proxima-condensed;
font-size: rem-calc(16);
line-height: rem-calc(24);
- margin: 1.038em 0px 30px 0px;
+ margin: 1.038em 0 30px 0;
font-weight: 600;
}
}
@@ -79,7 +79,7 @@ dd {
}
-//
+//
// -------------------------
.col-0{clear:left;}
@@ -151,7 +151,7 @@ dd {
[ui-view].ng-leave {
opacity: 1;
- /*padding-left: 0px;*/
+ /*padding-left: 0px;*/
// -webkit-transform:translate3d(0, 0, 0);
// -moz-transform:translate3d(0, 0, 0);
// transform:translate3d(0, 0, 0);
diff --git a/app/assets/stylesheets/app.components.scss b/app/assets/stylesheets/app.components.scss
index f4b3b2076..d504d954a 100644
--- a/app/assets/stylesheets/app.components.scss
+++ b/app/assets/stylesheets/app.components.scss
@@ -220,12 +220,12 @@
.amount {
padding-top: 16px;
font-weight: bold;
- font-size: rem-calc(26);
+ font-size: rem-calc(20);
color: white;
}
.period {
position: relative;
- top: -14px;
+ top: -6px;
font-size: rem-calc(14);
color: white;
}
diff --git a/app/assets/stylesheets/app.layout.scss b/app/assets/stylesheets/app.layout.scss
index 3fe0d7907..8228e8902 100644
--- a/app/assets/stylesheets/app.layout.scss
+++ b/app/assets/stylesheets/app.layout.scss
@@ -9,7 +9,7 @@
}
> .btn,
> .btn-group,
- > .btn-toolbar,
+ > .btn-toolbar
{
margin-top: 14px;
}
diff --git a/app/assets/stylesheets/app.nav.scss b/app/assets/stylesheets/app.nav.scss
index 097b83f52..89a505b0e 100644
--- a/app/assets/stylesheets/app.nav.scss
+++ b/app/assets/stylesheets/app.nav.scss
@@ -169,7 +169,7 @@
&:hover,
&:focus,
&:active,
- &.active,
+ &.active
{
> a{
i{
@@ -191,7 +191,7 @@
}
li:hover,
li:focus,
- li:active,
+ li:active
{
> ul{
display: block !important;
@@ -349,7 +349,7 @@
display: block !important;
position: absolute;
left: 0;
- top: 0px;
+ top: 0;
bottom: 0;
width: $off-screen-nav-width;
visibility: visible;
@@ -384,7 +384,7 @@
overflow: hidden;
position: absolute;
width: 100%;
- top: 0px;
+ top: 0;
bottom: 0;
left: 0;
right: 0;
diff --git a/app/assets/templates/admin/pricing/index.html.erb b/app/assets/templates/admin/pricing/index.html.erb
index 4a5ce4acf..9f771348f 100644
--- a/app/assets/templates/admin/pricing/index.html.erb
+++ b/app/assets/templates/admin/pricing/index.html.erb
@@ -47,7 +47,7 @@