Merge branch 'master' into i18n

Conflicts:
	app/assets/javascripts/application.js
This commit is contained in:
wvengen 2013-10-18 12:30:34 +02:00
commit 98e7189d31
24 changed files with 223 additions and 248 deletions

10
Gemfile
View File

@ -9,11 +9,10 @@ gem "rails", '~> 3.2.9'
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'less-rails'
gem 'uglifier', '>= 1.0.3'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
gem 'therubyracer', platforms: :ruby
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
@ -27,8 +26,9 @@ gem 'mysql2'
gem 'prawn'
gem 'haml-rails'
gem 'kaminari'
gem 'client_side_validations'
gem 'simple_form'
gem 'client_side_validations'
gem 'client_side_validations-simple_form'
gem 'inherited_resources'
gem 'localize_input', git: "git://github.com/bennibu/localize_input.git"
gem 'wikicloth'
@ -44,7 +44,7 @@ gem 'resque'
gem 'whenever', require: false # For defining cronjobs, see config/schedule.rb
group :production do
gem 'exception_notification', require: 'exception_notifier'
gem 'exception_notification'
end
group :development do

View File

@ -22,12 +22,12 @@ GEM
remote: https://rubygems.org/
specs:
Ascii85 (1.0.2)
actionmailer (3.2.13)
actionpack (= 3.2.13)
mail (~> 2.5.3)
actionpack (3.2.13)
activemodel (= 3.2.13)
activesupport (= 3.2.13)
actionmailer (3.2.14)
actionpack (= 3.2.14)
mail (~> 2.5.4)
actionpack (3.2.14)
activemodel (= 3.2.14)
activesupport (= 3.2.14)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.4)
@ -35,31 +35,33 @@ GEM
rack-cache (~> 1.2)
rack-test (~> 0.6.1)
sprockets (~> 2.2.1)
activemodel (3.2.13)
activesupport (= 3.2.13)
activemodel (3.2.14)
activesupport (= 3.2.14)
builder (~> 3.0.0)
activerecord (3.2.13)
activemodel (= 3.2.13)
activesupport (= 3.2.13)
activerecord (3.2.14)
activemodel (= 3.2.14)
activesupport (= 3.2.14)
arel (~> 3.0.2)
tzinfo (~> 0.3.29)
activeresource (3.2.13)
activemodel (= 3.2.13)
activesupport (= 3.2.13)
activesupport (3.2.13)
i18n (= 0.6.1)
activeresource (3.2.14)
activemodel (= 3.2.14)
activesupport (= 3.2.14)
activesupport (3.2.14)
i18n (~> 0.6, >= 0.6.4)
multi_json (~> 1.0)
acts_as_tree (1.2.0)
acts_as_tree (1.4.0)
activerecord (>= 3.0.0)
afm (0.2.0)
arel (3.0.2)
better_errors (0.2.0)
better_errors (1.0.1)
coderay (>= 1.0.0)
erubis (>= 2.7.0)
binding_of_caller (0.6.8)
bootstrap-datepicker-rails (1.1.1.1)
erubis (>= 2.6.6)
binding_of_caller (0.7.2)
debug_inspector (>= 0.0.1)
bootstrap-datepicker-rails (1.1.1.8)
railties (>= 3.0)
builder (3.0.4)
bullet (4.3.0)
bullet (4.6.0)
uniform_notifier
capistrano (2.13.5)
highline
@ -77,72 +79,78 @@ GEM
xpath (~> 2.0)
childprocess (0.3.9)
ffi (~> 1.0, >= 1.0.11)
chronic (0.9.0)
client_side_validations (3.1.4)
coderay (1.0.8)
chronic (0.10.2)
client_side_validations (3.2.6)
client_side_validations-simple_form (2.1.0)
client_side_validations (~> 3.2.5)
simple_form (~> 2.1.0)
coderay (1.1.0)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.3.3)
commonjs (0.2.6)
coffee-script-source (1.6.3)
commonjs (0.2.7)
daemons (1.1.9)
database_cleaner (0.7.1)
database_cleaner (1.2.0)
debug_inspector (0.0.2)
diff-lcs (1.2.4)
erubis (2.7.0)
eventmachine (1.0.3)
exception_notification (2.6.1)
exception_notification (4.0.1)
actionmailer (>= 3.0.4)
execjs (1.4.0)
multi_json (~> 1.0)
activesupport (>= 3.0.4)
execjs (2.0.2)
expression_parser (0.9.0)
factory_girl (4.2.0)
activesupport (>= 3.0.0)
factory_girl_rails (4.2.1)
factory_girl (~> 4.2.0)
railties (>= 3.0.0)
faker (1.1.2)
faker (1.2.0)
i18n (~> 0.5)
ffi (1.9.0)
haml (3.1.7)
haml-rails (0.3.5)
haml (4.0.3)
tilt
haml-rails (0.4)
actionpack (>= 3.1, < 4.1)
activesupport (>= 3.1, < 4.1)
haml (~> 3.1)
haml (>= 3.1, < 4.1)
railties (>= 3.1, < 4.1)
has_scope (0.5.1)
hashery (2.0.1)
has_scope (0.6.0.rc)
actionpack (>= 3.2, < 5)
activesupport (>= 3.2, < 5)
hashery (2.1.1)
highline (1.6.19)
hike (1.2.3)
i18n (0.6.1)
i18n (0.6.5)
i18n-spec (0.4.0)
iso
inherited_resources (1.3.1)
has_scope (~> 0.5.0)
responders (~> 0.6)
inherited_resources (1.4.1)
has_scope (~> 0.6.0.rc)
responders (~> 1.0.0.rc)
iso (0.2.0)
i18n
journey (1.0.4)
jquery-rails (2.1.3)
railties (>= 3.1.0, < 5.0)
thor (~> 0.14)
json (1.7.7)
jquery-rails (3.0.4)
railties (>= 3.0, < 5.0)
thor (>= 0.14, < 2.0)
json (1.8.0)
kaminari (0.14.1)
actionpack (>= 3.0.0)
activesupport (>= 3.0.0)
less (2.2.2)
commonjs (~> 0.2.6)
less-rails (2.2.3)
less (2.4.0)
commonjs (~> 0.2.7)
less-rails (2.4.2)
actionpack (>= 3.1)
less (~> 2.2.0)
libv8 (3.3.10.4)
mail (2.5.3)
i18n (>= 0.4.0)
less (~> 2.4.0)
libv8 (3.16.14.3)
mail (2.5.4)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mailcatcher (0.5.11)
mailcatcher (0.5.12)
activesupport (~> 3.0)
eventmachine (~> 1.0.0)
haml (>= 3.1, < 5)
@ -156,24 +164,26 @@ GEM
activerecord (~> 3.1)
activesupport (~> 3.1)
polyamorous (~> 0.5.0)
mime-types (1.21)
mime-types (1.25)
mini_portile (0.5.1)
mono_logger (1.1.0)
multi_json (1.7.9)
mysql2 (0.3.11)
net-scp (1.1.1)
multi_json (1.8.1)
mysql2 (0.3.13)
net-scp (1.1.2)
net-ssh (>= 2.6.5)
net-sftp (2.1.2)
net-ssh (>= 2.6.5)
net-ssh (2.6.7)
net-ssh (2.7.0)
net-ssh-gateway (1.2.0)
net-ssh (>= 2.6.5)
nokogiri (1.6.0)
mini_portile (~> 0.5.0)
pdf-reader (1.2.0)
pdf-reader (1.3.3)
Ascii85 (~> 1.0.0)
afm (~> 0.2.0)
hashery (~> 2.0)
ruby-rc4
ttfunk
polyamorous (0.5.0)
activerecord (~> 3.0)
polyglot (0.3.3)
@ -191,14 +201,14 @@ GEM
rack
rack-test (0.6.2)
rack (>= 1.0)
rails (3.2.13)
actionmailer (= 3.2.13)
actionpack (= 3.2.13)
activerecord (= 3.2.13)
activeresource (= 3.2.13)
activesupport (= 3.2.13)
rails (3.2.14)
actionmailer (= 3.2.14)
actionpack (= 3.2.14)
activerecord (= 3.2.14)
activeresource (= 3.2.14)
activesupport (= 3.2.14)
bundler (~> 1.0)
railties (= 3.2.13)
railties (= 3.2.14)
rails-assets-listjs (0.2.0.beta.4)
railties (>= 3.1)
rails-i18n (3.0.0)
@ -206,31 +216,32 @@ GEM
rails (>= 3.0.0, < 4.0.0)
rails-settings-cached (0.2.4)
rails (>= 3.0.0)
railties (3.2.13)
actionpack (= 3.2.13)
activesupport (= 3.2.13)
railties (3.2.14)
actionpack (= 3.2.14)
activesupport (= 3.2.14)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rake (10.0.3)
rake (10.1.0)
rdoc (3.12.2)
json (~> 1.4)
redis (3.0.4)
redis (3.0.5)
redis-namespace (1.3.1)
redis (~> 3.0.0)
responders (0.9.3)
railties (~> 3.1)
resque (1.24.1)
ref (1.0.5)
responders (1.0.0)
railties (>= 3.2, < 5)
resque (1.25.1)
mono_logger (~> 1.0)
multi_json (~> 1.0)
redis-namespace (~> 1.2)
sinatra (>= 0.9.2)
vegas (~> 0.1.2)
rspec-core (2.14.2)
rspec-expectations (2.14.0)
rspec-core (2.14.5)
rspec-expectations (2.14.3)
diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.14.1)
rspec-mocks (2.14.3)
rspec-rails (2.14.0)
actionpack (>= 3.0)
activesupport (>= 3.0)
@ -241,22 +252,22 @@ GEM
ruby-prof (0.13.0)
ruby-rc4 (0.1.5)
rubyzip (0.9.9)
sass (3.2.1)
sass-rails (3.2.5)
sass (3.2.12)
sass-rails (3.2.6)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
select2-rails (3.4.2)
sass-rails
select2-rails (3.5.0)
thor (~> 0.14)
selenium-webdriver (2.35.1)
childprocess (>= 0.2.5)
multi_json (~> 1.0)
rubyzip (< 1.0.0)
websocket (~> 1.0.4)
simple-navigation (3.9.0)
simple-navigation (3.11.0)
activesupport (>= 2.3.2)
simple-navigation-bootstrap (0.0.4)
simple-navigation-bootstrap (1.0.0)
railties (>= 3.1)
simple-navigation (>= 3.7.0)
simple_form (2.1.0)
actionpack (~> 3.0)
@ -265,10 +276,10 @@ GEM
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
sinatra (1.3.6)
sinatra (1.4.3)
rack (~> 1.4)
rack-protection (~> 1.3)
tilt (~> 1.3, >= 1.3.3)
rack-protection (~> 1.4)
tilt (~> 1.3, >= 1.3.4)
skinny (0.2.3)
eventmachine (~> 1.0.0)
thin (~> 1.5.0)
@ -277,33 +288,34 @@ GEM
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.6)
therubyracer (0.10.2)
libv8 (~> 3.3.10)
sqlite3 (1.3.8)
therubyracer (0.12.0)
libv8 (~> 3.16.14.0)
ref
thin (1.5.1)
daemons (>= 1.0.9)
eventmachine (>= 0.12.6)
rack (>= 1.0.0)
thor (0.17.0)
thor (0.18.1)
tilt (1.4.1)
treetop (1.4.12)
treetop (1.4.15)
polyglot
polyglot (>= 0.3.1)
ttfunk (1.0.3)
twitter-bootstrap-rails (2.1.3)
twitter-bootstrap-rails (2.2.8)
actionpack (>= 3.1)
less-rails (~> 2.2.3)
execjs
rails (>= 3.1)
railties (>= 3.1)
therubyracer (~> 0.10.2)
tzinfo (0.3.37)
uglifier (1.3.0)
tzinfo (0.3.38)
uglifier (2.2.1)
execjs (>= 0.3.0)
multi_json (~> 1.0, >= 1.0.2)
uniform_notifier (1.1.1)
uniform_notifier (1.3.0)
vegas (0.1.11)
rack (>= 1.0.0)
websocket (1.0.7)
whenever (0.8.1)
whenever (0.8.4)
activesupport (>= 2.3.4)
chronic (>= 0.6.3)
wikicloth (0.8.0)
@ -326,6 +338,7 @@ DEPENDENCIES
capistrano-ext
capybara (~> 2.1.0)
client_side_validations
client_side_validations-simple_form
coffee-rails (~> 3.2.1)
daemons
database_cleaner
@ -338,6 +351,7 @@ DEPENDENCIES
inherited_resources
jquery-rails
kaminari
less-rails
localize_input!
mailcatcher
meta_search

View File

@ -1,5 +1,4 @@
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require select2
//= require twitter/bootstrap
@ -7,12 +6,14 @@
//= require bootstrap-datepicker/core
//= require bootstrap-datepicker/locales/bootstrap-datepicker.de
//= require bootstrap-datepicker/locales/bootstrap-datepicker.nl
//= require bootstrap-datepicker/locales/bootstrap-datepicker.fr
//= require jquery.observe_field
//= require list
//= require list.unlist
//= require list.delay
//= require list.reset
//= require rails.validations
//= require rails.validations.simple_form
//= require i18n
//= require i18n/translations
//= require_self
@ -36,19 +37,19 @@ $.fn.extend({
$(function() {
// Show/Hide a specific DOM element
$('a[data-toggle-this]').live('click', function() {
$(document).on('click', 'a[data-toggle-this]', function() {
$($(this).data('toggle-this')).toggle();
return false;
});
// Remove this item from DOM
$('a[data-remove-this]').live('click', function() {
$(document).on('click', 'a[data-remove-this]', function() {
$($(this).data('remove-this')).remove();
return false;
});
// Check/Uncheck a single checkbox
$('[data-check-this]').live('click', function() {
$(document).on('click', '[data-check-this]', function() {
var checkbox = $($(this).data('check-this'));
checkbox.attr('checked', !checkbox.is(':checked'));
highlightRow(checkbox);
@ -56,7 +57,7 @@ $(function() {
});
// Check/Uncheck all checkboxes for a specific form
$('input[data-check-all]').live('click', function() {
$(document).on('click', 'input[data-check-all]', function() {
var status = $(this).is(':checked');
var context = $(this).data('check-all');
var elms = $('input[type="checkbox"]', context);
@ -68,7 +69,7 @@ $(function() {
});
// Submit form when changing a select menu.
$('form[data-submit-onchange] select').live('change', function() {
$(document).on('change', 'form[data-submit-onchange] select', function() {
var confirmMessage = $(this).children(':selected').data('confirm');
if (confirmMessage) {
if (confirm(confirmMessage)) {
@ -101,7 +102,7 @@ $(function() {
});
// Remote paginations
$('div.pagination[data-remote] a').live('click', function() {
$(document).on('click', 'div.pagination[data-remote] a', function() {
$.getScript($(this).attr('href'));
return false;
});
@ -122,6 +123,20 @@ $(function() {
// Use bootstrap datepicker for dateinput
$('.datepicker').datepicker({format: 'yyyy-mm-dd', language: I18n.locale});
// bootstrap tooltips (for price)
// Extra options don't work when using selector, so override defaults
// https://github.com/twbs/bootstrap/issues/3875 . These can still be
// overridden per tooltip using data-placement attributes and the like.
$.extend($.fn.tooltip.defaults, {
html: true,
animation: false,
placement: 'left',
container: 'body'
});
$(document).tooltip({
selector: '[data-toggle~="tooltip"]',
});
// See stupidtable.js for initialization of local table sorting
});
@ -148,3 +163,5 @@ function highlightRow(checkbox) {
function setHiddenId(text, li) {
$('hidden_id').value = li.id;
}

View File

@ -1,4 +1,3 @@
jQuery ->
$("a[rel=popover]").popover()
$(".tooltip").tooltip()
$("a[rel=tooltip]").tooltip()
$("a[rel~=popover], .has-popover").popover()
$("a[rel~=tooltip], .has-tooltip").tooltip()

View File

@ -1,24 +1,23 @@
@import "twitter/bootstrap/bootstrap";
@import "twitter/bootstrap/responsive";
body {
padding-top: 10px;
}
@import "twitter/bootstrap/responsive";
// Set the correct sprite paths
@iconSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings.png');
@iconWhiteSpritePath: asset-path('twitter/bootstrap/glyphicons-halflings-white.png');
@iconSpritePath: image-url('twitter/bootstrap/glyphicons-halflings.png');
@iconWhiteSpritePath: image-url('twitter/bootstrap/glyphicons-halflings-white.png');
// Set the Font Awesome (Font Awesome is default. You can disable by commenting below lines)
// Note: If you use asset_path() here, your compiled boostrap_and_overrides.css will not
// have the proper paths. So for now we use the absolute path.
@fontAwesomeEotPath: '/assets/fontawesome-webfont.eot';
@fontAwesomeWoffPath: '/assets/fontawesome-webfont.woff';
@fontAwesomeTtfPath: '/assets/fontawesome-webfont.ttf';
@fontAwesomeSvgPath: '/assets/fontawesome-webfont.svg';
@fontAwesomeEotPath: asset-url('fontawesome-webfont.eot');
@fontAwesomeEotPath_iefix: asset-url('fontawesome-webfont.eot?#iefix');
@fontAwesomeWoffPath: asset-url('fontawesome-webfont.woff');
@fontAwesomeTtfPath: asset-url('fontawesome-webfont.ttf');
@fontAwesomeSvgPath: asset-url('fontawesome-webfont.svg#fontawesomeregular');
@import 'fontawesome/font-awesome';
// Font Awesome
@import "fontawesome";
// Glyphicons
//@import "twitter/bootstrap/sprites.less";
// Your custom LESS stylesheets goes here
//
@ -26,7 +25,7 @@ body {
// you may use and inherit here
//
// If you'd like to override bootstrap's own variables, you can do so here as well
// See http://twitter.github.com/bootstrap/less.html for their names and documentation
// See http://twitter.github.com/bootstrap/customize.html#variables for their names and documentation
//
// Example:
// @linkColor: #ff0000;

View File

@ -98,6 +98,8 @@ class OrdersController < ApplicationController
order = Order.find(params[:id])
order.finish!(@current_user)
redirect_to order, notice: I18n.t('orders.finish.notice')
rescue => error
redirect_to orders_url, alert: I18n.t('errors.general_msg', :msg => error.message)
end
# Renders the fax-text-file

View File

@ -155,7 +155,7 @@ class Order < ActiveRecord::Base
unless finished?
Order.transaction do
# set new order state (needed by notify_order_finished)
update_attributes(:state => 'finished', :ends => Time.now, :updated_by => user)
update_attributes!(:state => 'finished', :ends => Time.now, :updated_by => user)
# Update order_articles. Save the current article_price to keep price consistency
# Also save results for each group_order_result

View File

@ -66,7 +66,7 @@ class Ordergroup < Group
end
def avg_jobs_per_euro
stats[:orders_sum] != 0 ? stats[:jobs_size].to_f / stats[:orders_sum].to_f : 0
stats[:jobs_size].to_f / stats[:orders_sum].to_f rescue 0
end
# This is the ordergroup job per euro performance
@ -90,7 +90,7 @@ class Ordergroup < Group
# Global average
def self.avg_jobs_per_euro
stats = Ordergroup.pluck(:stats)
stats.sum {|s| s[:jobs_size].to_f } / stats.sum {|s| s[:orders_sum].to_f }
stats.sum {|s| s[:jobs_size].to_f } / stats.sum {|s| s[:orders_sum].to_f } rescue 0
end
def account_updated

View File

@ -61,8 +61,6 @@
return true;
}
});
enablePriceTooltips();
});
function mark_article_for_delivery(stock_article_id) {
@ -80,14 +78,6 @@
return ( 0 == $('#stock_change_stock_article_' + stock_article_id).length );
}
function enablePriceTooltips(context) {
$('[data-toggle~="tooltip"]', context).tooltip({
animation: false,
html: true,
placement: 'left'
});
}
= simple_form_for [@supplier, @delivery], validate: true do |f|
= f.error_notification
= base_errors f.object

View File

@ -13,7 +13,6 @@
var stock_change = $(
'<%= j(render(:partial => 'stock_change', :locals => {:stock_change => @stock_change})) %>'
).addClass('success');
enablePriceTooltips(stock_change);
$('input.stock-change-quantity', stock_change).val(quantity);
$('#stock_changes').append(stock_change);

View File

@ -8,7 +8,6 @@ $('div.container-fluid').prepend(
var stock_article_for_adding = $(
'<%= j(render(:partial => 'stock_article_for_adding', :locals => {:article => @stock_article})) %>'
).addClass('success');
enablePriceTooltips(stock_article_for_adding);
$('#stock_articles_for_adding tbody').append(stock_article_for_adding);
updateSort('#stock_articles_for_adding');

View File

@ -10,7 +10,6 @@ $('div.container-fluid').prepend(
var stock_article_for_adding = $(
'<%= j(render(:partial => 'stock_article_for_adding', :locals => {:article => @stock_article, :delivery => @delivery})) %>'
).addClass('success');
enablePriceTooltips(stock_article_for_adding);
$('#stock_article_<%= @stock_article.id %>').replaceWith(stock_article_for_adding);
updateSort('#stock_articles_for_adding');

View File

@ -5,12 +5,12 @@
var ordergroup = "#{escape_javascript(render('ordergroup'))}"
$(function() {
$('a[data-remove-transaction]').live('click', function() {
$(document).on('click', 'a[data-remove-transaction]', function() {
$(this).parents('tr').remove();
return false;
});
$('a[data-add-transaction]').click(function() {
$(document).on('click', 'a[data-add-transaction]', function() {
$('#ordergroups').append(ordergroup);
return false;
});

View File

@ -2,7 +2,7 @@
%h2= t '.title'
- if ordergroup.not_enough_apples?
.alert
= t '.not_enough_apples'
= t '.not_enough_apples'
- unless Order.open.empty?
%table.table.table-striped
%thead

View File

@ -1,20 +1,5 @@
- title t('.title')
- content_for :javascript do
:javascript
$(function() {
enablePriceTooltips();
});
function enablePriceTooltips(context) {
$('[data-toggle~="tooltip"]', context).tooltip({
animation: false,
html: true,
placement: 'left',
container: 'body'
});
}
- content_for :sidebar do
%p
%i= t('.text_deviations', inv_link: link_to(t('.temp_inventory'), stock_articles_path)).html_safe

View File

@ -1,7 +1,7 @@
= simple_form_for @supplier do |f|
- if @supplier.shared_supplier
.alert.alert-success
= t 'suppliers.shared_supplier_note'
.alert.alert-info
= t 'suppliers.shared_supplier_note'
= f.hidden_field :shared_supplier_id
= f.input :name
= f.input :address

View File

@ -4,7 +4,7 @@
.span6
- if shared_supplier = @supplier.shared_supplier
.alert.alert-info
= t 'suppliers.shared_supplier_note'
= t 'suppliers.shared_supplier_note'
%dl.dl-horizontal
%dt= heading_helper(Supplier, :address) + ':'

View File

@ -1,7 +1,15 @@
# ClientSideValidations Initializer
require 'client_side_validations/simple_form' if defined?(::SimpleForm)
require 'client_side_validations/formtastic' if defined?(::Formtastic)
# Uncomment to disable uniqueness validator, possible security issue
# Disabled because of possible security issue and because of bug
# https://github.com/bcardarella/client_side_validations/pull/532
ClientSideValidations::Config.disabled_validators = [:uniqueness]
# Uncomment to validate number format with current I18n locale
# Foodsoft is currently using localize_input which is activated on certain
# fields only, meaning we can't globally turn this on. The non-i18n number
# format is still supported - so for now keep false.
# ClientSideValidations::Config.number_format_with_locale = true
# Uncomment the following block if you want each input field to have the validation messages attached.
# ActionView::Base.field_error_proc = Proc.new do |html_tag, instance|

View File

@ -14,13 +14,15 @@ url_options.merge!({:port => FoodsoftConfig[:port]}) if FoodsoftConfig[:port]
Foodsoft::Application.configure do
config.action_mailer.default_url_options = url_options
if Rails.env !~ /development|test/
if %w(production).include? Rails.env
# Configuration of the exception_notification plugin
# Mailadresses are set in config/app_config.yml
config.middleware.use ExceptionNotifier,
:email_prefix => FoodsoftConfig[:notification]['email_prefix'],
:sender_address => FoodsoftConfig[:notification]['sender_address'],
:exception_recipients => FoodsoftConfig[:notification]['error_recipients']
config.middleware.use ExceptionNotification::Rack,
:email => {
:email_prefix => FoodsoftConfig[:notification]['email_prefix'],
:sender_address => FoodsoftConfig[:notification]['sender_address'],
:exception_recipients => FoodsoftConfig[:notification]['error_recipients']
}
end
end

View File

@ -507,6 +507,7 @@ fr:
filename: Commande %{name}-%{date} - Répartition par cellules
rows:
- Nom de l'article
- Commandée
- Quantité
- Prix unitaire
- Unités par lot

View File

@ -8,10 +8,10 @@ nl:
fc_price: prijs foodcoop
fc_share: marge foodcoop
gross_price: bruto prijs
name:
note:
name: Naam
note: Notitie
price: netto prijs
supplier:
supplier: Leverancier
tax: BTW
unit: eenheid
unit_quantity: groothandelseenheid
@ -271,7 +271,7 @@ nl:
one: Er moet éen artikel bijgewerkt worden.
other: Er moeten %{count} artikelen bijgewerkt worden.
upload:
body:
body: <p>Het bestand moet een utf-8 tekstbestand zijn met als extensie '.csv'. De eerste regel wordt overgeslagen.</p> <p>Velden moeten met een puntkomma (';') gescheiden worden, en tekst mag tussen dubbele aanhalingstekstens ("Tekst...") staan.</p> <p>Volgende van de kolommen:</p>
fields:
season_amount:
season_price:
@ -346,6 +346,7 @@ nl:
filename: Bestelling %{name}-%{date} - Huishoudenslijst
rows:
- Artikel
- Besteld
- Hoeveelheid
- Prijs
- Gr.Eenh.
@ -679,7 +680,7 @@ nl:
remaining: nog %{remaining}
title: Lopende bestellingen
update:
error_general:
error_general: Er is een probleem opgetreden, de bestelling kon niet bijgewerkt worden.
error_stale: In de tussentijd heeft iemand anders ook bestelt, daarom kon je bestelling niet opgeslagen worden. Sorry!
notice: De bestelling is opgeslagen.
helpers:
@ -717,8 +718,8 @@ nl:
index:
due_date_format: ! '%A %d %B'
messages:
title:
view_all:
title: Nieuwste berichten
view_all: Alle berichten bekijken
my_ordergroup:
funds: ! '| Beschikbaar tegoed:'
last_update: Laatst gewijzigd %{when} geleden
@ -748,7 +749,7 @@ nl:
description: Omschrijving
funds: ! 'Beschikbaar krediet:'
invite: Iemand uitnodigen
people:
people: Personen
search: Zoeken ...
title: Mijn huishouden
ordergroup_cancelled: Je bent geen lid meer van de groep %{group}.
@ -786,19 +787,25 @@ nl:
write_message: Bericht schrijven
invites:
errors:
already_member:
already_member: is al lid van de foodcoop.
modal_form:
body:
title:
body: <p>Hier kun je iemand die nog geen lid is uitnodigen voor de groep<b>%{group}</b>.</p> <p>Na aanmelding is hij of zij automatisch lid van deze groep.</p>
title: Iemand uitnodigen
new:
action:
body:
success:
action: Uitnodiging versturen
body: <p>Hier kun je iemand die nog geen lid is, uitnodigen voor de groep <b>%{group}</b>.</p>
success: Persoon is uitgenodigd.
layouts:
application1:
title: Foodsoft - %{title}
email:
footer:
footer: ! '--
Foodsoft: %{foodsoft}
Foodcoop-Homepage: %{foodcoop}
Help: %{help}'
foodsoft: Foodsoft
header:
feedback:
@ -815,7 +822,7 @@ nl:
page: Pagina %{number}
login:
accept_invitation:
body:
body: <p>Je bent uitgenodigd als lid voor foodcoop %{foodcoop} in de groep <b>%{group}</b>.</p> <p>Als je wilt meedoen, vul dan dit formulier in.</p> <p>Natuurlijk zullen we je informatie niet delen met anderen. Je kunt zelf aangeven, welke informatie voor andere leden beschikbaar is (maar beheerders hebben daar altijd toegang toe).</p>
submit: Foodsoft account aanmaken
title: Uitnodiging voor %{name}
controller:
@ -837,9 +844,9 @@ nl:
submit: Nieuw wachtwoord opslaan
title: Nieuw wachtwoord
mailer:
dateformat:
dateformat: ! '%d %b'
feedback:
header:
header: ! '%{user} schreef op %{date}:'
subject:
foodsoft_message:
footer:
@ -911,21 +918,21 @@ nl:
new:
list:
desc:
mail:
mail: bijvoorbeeld door een email te sturen naar %{email}.
subscribe:
subscribe_msg:
wiki:
no_user_found: Geen gebruiker gevonden
search: Zoeken ...
search_user: Gebruiker zoeken
title:
title: Nieuw bericht
show:
all_messages:
from:
reply:
sent_on:
subject:
title:
all_messages: Berichtenoverzicht
from: ! 'Van:'
reply: Antwoorden
sent_on: ! 'Verzonden:'
subject: ! 'Onderwerp:'
title: Bericht lezen
model:
delivery:
each_stock_article_must_be_unique: In een levering mag ieder voorraadsartikel maar een keer voorkomen.
@ -1014,9 +1021,9 @@ nl:
title: Artikel
unit_quantity:
index:
action_end:
confirm_delete:
confirm_end:
action_end: Sluiten
confirm_delete: Wil je de bestelling werkelijk verwijderen?
confirm_end: Wil je de bestelling %{order} werkelijk sluiten? Dit kun je niet ongedaan maken.
ended_orders: Gesloten bestellingen
ending:
new_order:
@ -1037,11 +1044,11 @@ nl:
title:
orders:
ending:
start:
start: Start
status:
supplier:
supplier: Leverancier
show:
action_end:
action_end: Sluiten!
amounts:
articles:
articles_ordered:

View File

@ -1,10 +0,0 @@
#!/usr/bin/ruby1.8
require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
require "dispatcher"
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
Dispatcher.dispatch

View File

@ -1,26 +0,0 @@
#!/usr/bin/ruby1.8
#
# You may specify the path to the FastCGI crash log (a log of unhandled
# exceptions which forced the FastCGI instance to exit, great for debugging)
# and the number of requests to process before running garbage collection.
#
# By default, the FastCGI crash log is RAILS_ROOT/log/fastcgi.crash.log
# and the GC period is nil (turned off). A reasonable number of requests
# could range from 10-100 depending on the memory footprint of your app.
#
# Example:
# # Default log path, normal GC behavior.
# RailsFCGIHandler.process!
#
# # Default log path, 50 requests between GC.
# RailsFCGIHandler.process! nil, 50
#
# # Custom log path, normal GC behavior.
# RailsFCGIHandler.process! '/var/log/myapp_fcgi_crash.log'
#
RAILS_ENV = "production"
require File.dirname(__FILE__) + "/../config/environment"
require 'fcgi_handler'
RailsFCGIHandler.process!

View File

@ -1,10 +0,0 @@
#!/usr/bin/ruby1.8
require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_ROOT)
# If you're using RubyGems and mod_ruby, this require should be changed to an absolute path one, like:
# "/usr/local/lib/ruby/gems/1.8/gems/rails-0.8.0/lib/dispatcher" -- otherwise performance is severely impaired
require "dispatcher"
ADDITIONAL_LOAD_PATHS.reverse.each { |dir| $:.unshift(dir) if File.directory?(dir) } if defined?(Apache::RubyRun)
Dispatcher.dispatch