diff options
Diffstat (limited to 'config')
29 files changed, 1084 insertions, 131 deletions
diff --git a/config/application.rb b/config/application.rb index d09cf24..ad58092 100644 --- a/config/application.rb +++ b/config/application.rb @@ -4,7 +4,7 @@ require 'rails/all' if defined?(Bundler) # If you precompile assets before deploying to production, use this line - Bundler.require *Rails.groups(:assets => %w(development test)) + Bundler.require(*Rails.groups(:assets => %w(development test))) # If you want your assets lazily compiled in production, use this line # Bundler.require(:default, :assets, Rails.env) end @@ -17,23 +17,24 @@ module Gemeinschaft42c # Custom directories with classes and modules you want to be autoloadable. # config.autoload_paths += %W(#{config.root}/extras) + config.autoload_paths += %W(#{config.root}/lib) # Only load the plugins named here, in the order given (default is alphabetical). # :all can be used as a placeholder for all plugins not explicitly named. # config.plugins = [ :exception_notification, :ssl_requirement, :all ] - + # --- rather use Apache + Passenger for SSL -----{ #config.plugins = [ :exception_notification, :ssl_requirement, :all ] - + #config.middleware.insert_before ActionDispatch::Static, "Rack::SSL" #config.middleware.insert_before ActionDispatch::Static, Rack::SSL, :exclude => proc { |env| env['HTTPS'] != 'on' } #config.force_ssl = true - + #require 'rack/ssl' #config.middleware.use Rack::SSL # -----------------------------------------------} - - + + # Activate observers that should always be running. # config.active_record.observers = :cacher, :garbage_collector, :forum_observer @@ -58,7 +59,7 @@ module Gemeinschaft42c # Version of your assets, change this if you want to expire all your assets config.assets.version = '1.0' - + # Load the PhoneControllers config.autoload_paths += %W(#{config.root}/lib/phone_controllers) end diff --git a/config/database.yml b/config/database.yml index bd1748e..364cbdb 100644 --- a/config/database.yml +++ b/config/database.yml @@ -1,22 +1,44 @@ -development: - adapter: mysql2 +<% system_odbc_ini_file = '/var/lib/freeswitch/.odbc.ini' %> +<% if !File.exists?(system_odbc_ini_file) %> +development: + adapter: sqlite3 + database: db/development.sqlite3 + pool: 5 + timeout: 5000 + +production: + adapter: mysql2 encoding: utf8 database: gemeinschaft - pool: 5 + pool: 10 username: gemeinschaft password: gemeinschaft socket: /var/run/mysqld/mysqld.sock - reconnect: true + reconnect: true +<% else %> +<% system_odbc_configuration = IniFile.load(system_odbc_ini_file) %> +<% if !system_odbc_configuration['gemeinschaft']['DATABASE'].blank? && !system_odbc_configuration['gemeinschaft']['USER'].blank? %> +development: + adapter: mysql2 + encoding: utf8 + database: <%= system_odbc_configuration['gemeinschaft']['DATABASE'] %> + pool: 5 + username: <%= system_odbc_configuration['gemeinschaft']['USER'] %> + password: <%= system_odbc_configuration['gemeinschaft']['PASSWORD'] %> + socket: /var/run/mysqld/mysqld.sock + reconnect: true production: adapter: mysql2 encoding: utf8 - database: gemeinschaft + database: <%= system_odbc_configuration['gemeinschaft']['DATABASE'] %> pool: 10 - username: gemeinschaft - password: gemeinschaft + username: <%= system_odbc_configuration['gemeinschaft']['USER'] %> + password: <%= system_odbc_configuration['gemeinschaft']['PASSWORD'] %> socket: /var/run/mysqld/mysqld.sock reconnect: true +<% end %> +<% end %> # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". diff --git a/config/environments/development.rb b/config/environments/development.rb index bd34e4f..e677834 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -11,7 +11,10 @@ Gemeinschaft42c::Application.configure do # Show full error reports and disable caching config.consider_all_requests_local = true + + # Enable caching for development config.action_controller.perform_caching = false + CacheDigests::TemplateDigestor.cache = ActiveSupport::Cache::NullStore.new # Don't care if the mailer can't send config.action_mailer.raise_delivery_errors = false @@ -37,7 +40,7 @@ Gemeinschaft42c::Application.configure do # Enable Hirb: extend Hirb::Console - Hirb::View.enable + Hirb::View.enable end diff --git a/config/environments/production.rb b/config/environments/production.rb index 4e5bdd8..344f8f8 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -30,14 +30,14 @@ Gemeinschaft42c::Application.configure do # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true - # See everything in the log (default is :info) - # config.log_level = :debug + # Show only warnings in log files + config.log_level = :warn # Use a different logger for distributed setups # config.logger = SyslogLogger.new # Use a different cache store in production - # config.cache_store = :mem_cache_store + config.cache_store = :dalli_store # Enable serving of images, stylesheets, and JavaScripts from an asset server # config.action_controller.asset_host = "http://assets.example.com" diff --git a/config/hirb.yml b/config/hirb.yml index f011c9d..da7c083 100644 --- a/config/hirb.yml +++ b/config/hirb.yml @@ -198,4 +198,11 @@ - first_name - user_name - user - + GatewaySetting: + :options: + :fields: + - id + - gateway + - name + - value + - class_type diff --git a/config/initializers/gemeinschaft_parameters.rb b/config/initializers/gemeinschaft_parameters.rb deleted file mode 100644 index b1481ef..0000000 --- a/config/initializers/gemeinschaft_parameters.rb +++ /dev/null @@ -1,81 +0,0 @@ -# Use this file to set generic parameters for Gemeinschaft - -GEMEINSCHAFT_VERSION = '5.0.2' -SUPER_TENANT_NAME = 'Super-Tenant' - -# System defaults -MINIMUM_PIN_LENGTH = 4 -MAXIMUM_PIN_LENGTH = 10 - -# GUI -GUI_REDIRECT_HTTPS = false - -# Phone numbers -# Only touch this if you know what you are doing! -STRICT_INTERNAL_EXTENSION_HANDLING = false -STRICT_DID_HANDLING = false - -# SIP defaults -DEFAULT_LENGTH_SIP_AUTH_NAME = 10 -DEFAULT_LENGTH_SIP_PASSWORD = 15 -CALL_WAITING = false -DEFAULT_CLIR_SETTING = false -DEFAULT_CLIP_SETTING = true - -TO_S_MAX_CALLER_NAME_LENGTH = 25 -TO_S_MAX_LENGTH_OF_AUTH_NAME = 6 - -# Pagination defaults -DEFAULT_PAGINATION_ENTRIES_PER_PAGE = 50 - -# Conference defaults -MAXIMUM_NUMBER_OF_PEOPLE_IN_A_CONFERENCE = 100 -DEFAULT_MAX_CONFERENCE_MEMBERS = 10 - -# Misc defaults -MAX_EXTENSION_LENGTH = 6 - -# Fax defaults -DEFAULT_NUMBER_OF_RETRIES = 3 -DAYS_TILL_AUTO_DELETE = 90 - -# Names of PhoneNumberRanges -INTERNAL_EXTENSIONS = 'internal_extensions' -SERVICE_NUMBERS = 'service_numbers' -DIRECT_INWARD_DIALING_NUMBERS = 'direct_inward_dialing_numbers' - -# Callthrough defaults -CALLTHROUGH_HAS_WHITELISTS = true - -# Hunt groups -HUNT_GROUP_STRATEGIES = ['ring_all', 'ring_recursively'] -VALID_SECONDS_BETWEEN_JUMPS_VALUES = (1 .. 60).to_a.map{|x| x * 2} - -# Callforward -DEFAULT_CALL_FORWARD_DEPTH = 1 -MAX_CALL_FORWARD_DEPTH = 40 -CALLFORWARD_DESTINATION_DEFAULT = '+49' -CALLFORWARD_RULES_ACT_PER_SIP_ACCOUNT_DEFAULT = true - -# Phone -PROVISIONING_AUTO_ADD_PHONE = true -PROVISIONING_AUTO_ADD_SIP_ACCOUNT = true -PROVISIONING_AUTO_TENANT_ID = 2 -PROVISIONING_AUTO_SIP_ACCOUNT_CALLER_PREFIX = 'Gemeinschaft ' -PROVISIONING_IEEE8021X_EAP_USERNAME = '' -PROVISIONING_IEEE8021X_EAP_PASSWORD = '' -NIGHTLY_REBOOT_OF_PHONES = true -SIEMENS_HISTORY_RELOAD_TIMES = {0..6 => 600, 7..20 => 40, 21..24 => 300} - -# API configuration -DEFAULT_API_TENANT_ID = 2 -REMOTE_IP_ADDRESS_WHITELIST = [] # e.g. ['10.0.0.1'] -IMPORT_CSV_FILE = '/var/tmp/ExampleVoipCsvExport.csv' -DOUBLE_CHECK_POSITIVE_USERS_CSV = '/var/tmp/ExampleDoubleCheckVoipCsvExport.csv' -IMPORT_CSV_ENCODING = 'UTF-8' -USER_NAME_PREFIX = 'dtc' -CALLTHROUGH_NAME_TO_BE_USED_FOR_DEFAULT_ACTIVATION = 'Callthrough for employees' - -# GS Cluster configuration -WRITE_GS_CLUSTER_SYNC_LOG = true -HOMEBASE_IP_ADDRESS = '0.0.0.0' diff --git a/config/initializers/secret_token.rb b/config/initializers/secret_token.rb index 6f04f07..ecd511c 100644 --- a/config/initializers/secret_token.rb +++ b/config/initializers/secret_token.rb @@ -4,4 +4,4 @@ # If you change this key, all old signed cookies will become invalid! # Make sure the secret is at least 30 characters and all random, # no regular words or you'll be exposed to dictionary attacks. -Gemeinschaft42c::Application.config.secret_token = '9a59cac7fe4b23e0253a7beb341d9498d721923e966b45983f441f991e81f758067a6d9a949247d489773288284ab96b5015be52bf7b2834e666d43f864034e4' +Gemeinschaft42c::Application.config.secret_token = GsParameter.get('SECRET_TOKEN') diff --git a/config/initializers/simple_form.rb b/config/initializers/simple_form.rb index 2e3d9fb..ab84483 100644 --- a/config/initializers/simple_form.rb +++ b/config/initializers/simple_form.rb @@ -1,19 +1,176 @@ # Use this setup block to configure all options available in SimpleForm. SimpleForm.setup do |config| - config.wrappers :tag => :div, :class => :input, - :error_class => :field_with_errors do |b| + # Wrappers are used by the form builder to generate a + # complete input. You can remove any component from the + # wrapper, change the order or even add your own to the + # stack. The options given below are used to wrap the + # whole input. + config.wrappers :default, :class => :input, + :hint_class => :field_with_hint, :error_class => :field_with_errors do |b| + ## Extensions enabled by default + # Any of these extensions can be disabled for a + # given input by passing: `f.input EXTENSION_NAME => false`. + # You can make any of these extensions optional by + # renaming `b.use` to `b.optional`. - # Form extensions + # Determines whether to use HTML5 (:email, :url, ...) + # and required attributes b.use :html5 - b.optional :pattern - b.use :maxlength + + # Calculates placeholders automatically from I18n + # You can also pass a string as f.input :placeholder => "Placeholder" b.use :placeholder - b.use :readonly - # Form components + ## Optional extensions + # They are disabled unless you pass `f.input EXTENSION_NAME => :lookup` + # to the input. If so, they will retrieve the values from the model + # if any exists. If you want to enable the lookup for any of those + # extensions by default, you can change `b.optional` to `b.use`. + + # Calculates maxlength from length validations for string inputs + b.optional :maxlength + + # Calculates pattern from format validations for string inputs + b.optional :pattern + + # Calculates min and max from length validations for numeric inputs + b.optional :min_max + + # Calculates readonly automatically from readonly attributes + b.optional :readonly + + ## Inputs b.use :label_input - b.use :error, :wrap_with => { :tag => :span, :class => :error } b.use :hint, :wrap_with => { :tag => :span, :class => :hint } + b.use :error, :wrap_with => { :tag => :span, :class => :error } + end + + config.wrappers :bootstrap, :tag => 'div', :class => 'control-group', :error_class => 'error' do |b| + b.use :html5 + b.use :placeholder + b.use :label + b.wrapper :tag => 'div', :class => 'controls' do |ba| + ba.use :input + ba.use :error, :wrap_with => { :tag => 'span', :class => 'help-inline' } + ba.use :hint, :wrap_with => { :tag => 'p', :class => 'help-block' } + end + end + + config.wrappers :prepend, :tag => 'div', :class => "control-group", :error_class => 'error' do |b| + b.use :html5 + b.use :placeholder + b.use :label + b.wrapper :tag => 'div', :class => 'controls' do |input| + input.wrapper :tag => 'div', :class => 'input-prepend' do |prepend| + prepend.use :input + end + input.use :hint, :wrap_with => { :tag => 'span', :class => 'help-block' } + input.use :error, :wrap_with => { :tag => 'span', :class => 'help-inline' } + end end + config.wrappers :append, :tag => 'div', :class => "control-group", :error_class => 'error' do |b| + b.use :html5 + b.use :placeholder + b.use :label + b.wrapper :tag => 'div', :class => 'controls' do |input| + input.wrapper :tag => 'div', :class => 'input-append' do |append| + append.use :input + end + input.use :hint, :wrap_with => { :tag => 'span', :class => 'help-block' } + input.use :error, :wrap_with => { :tag => 'span', :class => 'help-inline' } + end + end + + # Wrappers for forms and inputs using the Twitter Bootstrap toolkit. + # Check the Bootstrap docs (http://twitter.github.com/bootstrap) + # to learn about the different styles for forms and inputs, + # buttons and other elements. + config.default_wrapper = :bootstrap + + # Define the way to render check boxes / radio buttons with labels. + # Defaults to :nested for bootstrap config. + # :inline => input + label + # :nested => label > input + config.boolean_style = :nested + + # Default class for buttons + config.button_class = 'btn' + + # Method used to tidy up errors. + # config.error_method = :first + + # Default tag used for error notification helper. + config.error_notification_tag = :div + + # CSS class to add for error notification helper. + config.error_notification_class = 'alert alert-error' + + # ID to add for error notification helper. + # config.error_notification_id = nil + + # Series of attempts to detect a default label method for collection. + # config.collection_label_methods = [ :to_label, :name, :title, :to_s ] + + # Series of attempts to detect a default value method for collection. + # config.collection_value_methods = [ :id, :to_s ] + + # You can wrap a collection of radio/check boxes in a pre-defined tag, defaulting to none. + # config.collection_wrapper_tag = nil + + # You can define the class to use on all collection wrappers. Defaulting to none. + # config.collection_wrapper_class = nil + + # You can wrap each item in a collection of radio/check boxes with a tag, + # defaulting to :span. Please note that when using :boolean_style = :nested, + # SimpleForm will force this option to be a label. + # config.item_wrapper_tag = :span + + # You can define a class to use in all item wrappers. Defaulting to none. + # config.item_wrapper_class = nil + + # How the label text should be generated altogether with the required text. + # config.label_text = lambda { |label, required| "#{required} #{label}" } + + # You can define the class to use on all labels. Default is nil. + config.label_class = 'control-label' + + # You can define the class to use on all forms. Default is simple_form. + # config.form_class = :simple_form + + # You can define which elements should obtain additional classes + # config.generate_additional_classes_for = [:wrapper, :label, :input] + + # Whether attributes are required by default (or not). Default is true. + # config.required_by_default = true + + # Tell browsers whether to use default HTML5 validations (novalidate option). + # Default is enabled. + config.browser_validations = false + + # Collection of methods to detect if a file type was given. + # config.file_methods = [ :mounted_as, :file?, :public_filename ] + + # Custom mappings for input types. This should be a hash containing a regexp + # to match as key, and the input type that will be used when the field name + # matches the regexp as value. + # config.input_mappings = { /count/ => :integer } + + # Default priority for time_zone inputs. + # config.time_zone_priority = nil + + # Default priority for country inputs. + # config.country_priority = nil + + # Default size for text inputs. + # config.default_input_size = 50 + + # When false, do not use translations for labels. + # config.translate_labels = true + + # Automatically discover new inputs in Rails' autoload path. + # config.inputs_discovery = true + + # Cache SimpleForm inputs discovery + # config.cache_discovery = !Rails.env.development? end diff --git a/config/initializers/update_gs_version_number.rb b/config/initializers/update_gs_version_number.rb new file mode 100644 index 0000000..d9e1aae --- /dev/null +++ b/config/initializers/update_gs_version_number.rb @@ -0,0 +1,16 @@ +# The Gemeinschaft version is stored in an environment variable. +# It equals the branch in git. +# +if !ENV['GS_VERSION'].nil? && GsParameter.table_exists? && GsParameter.get('GEMEINSCHAFT_VERSION') != ENV['GS_VERSION'] + version = GsParameter.find_or_create_by_name('GEMEINSCHAFT_VERSION') + version.section = 'Generic' + version.value = ENV['GS_VERSION'] + version.save +end + +if !ENV['GS_BUILDNAME'].nil? && GsParameter.table_exists? && GsParameter.get('GS_BUILDNAME') != ENV['GS_BUILDNAME'] + buildname = GsParameter.find_or_create_by_name('GEMEINSCHAFT_BUILDNAME') + buildname.section = 'Generic' + buildname.value = ENV['GS_BUILDNAME'] + buildname.save +end diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml index 007d9f9..409e265 100644 --- a/config/locales/simple_form.en.yml +++ b/config/locales/simple_form.en.yml @@ -9,7 +9,7 @@ en: # When using html, text and mark won't be used. # html: '<abbr title="required">*</abbr>' error_notification: - default_message: "Some errors were found, please take a look." + default_message: "Some errors were found, please take a look:" # Labels and hints examples # labels: # password: 'Password' diff --git a/config/locales/views/call_routes/de.yml b/config/locales/views/call_routes/de.yml new file mode 100644 index 0000000..71ad51a --- /dev/null +++ b/config/locales/views/call_routes/de.yml @@ -0,0 +1,60 @@ +de: + call_routes: + name: 'Call Route' + controller: + successfuly_created: 'Call Route wurde angelegt.' + successfuly_updated: 'Call Route wurde aktualisiert.' + successfuly_destroyed: 'Call Route wurde gelöscht.' + index: + page_title: 'Liste aller Call Routen' + routing_table: 'Routing Table' + name: 'Name' + endpoint_type: 'Endpoint type' + endpoint_id: 'Endpoint' + position: 'Position' + actions: + confirm: 'Sind Sie sicher, dass Sie folgendes löschen möchten: Call Route' + destroy: 'Löschen' + edit: 'Bearbeiten' + show: 'Anzeigen' + create: 'Neu anlegen' + create_for: 'Call Route neu anlegen für %{resource}' + show: + page_title: 'Call Route bearbeiten' + routing_table: 'Routing Table' + name: 'Name' + endpoint_type: 'Endpoint type' + endpoint_id: 'Endpoint' + position: 'Position' + actions: + confirm: 'Sind Sie sicher, dass die dieses Element löschen möchten?' + destroy: 'Löschen' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + new: + page_title: 'Call Route neu anlegen' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: + page_title: 'Call Route bearbeiten' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + form: + routing_table: + label: 'Routing Table' + hint: '' + name: + label: 'Name' + hint: '' + endpoint_type: + label: 'Endpoint type' + hint: '' + endpoint_id: + label: 'Endpoint' + hint: '' + position: + label: 'Position' + hint: '' + button: 'Absenden'
\ No newline at end of file diff --git a/config/locales/views/call_routes/en.yml b/config/locales/views/call_routes/en.yml new file mode 100644 index 0000000..251f76e --- /dev/null +++ b/config/locales/views/call_routes/en.yml @@ -0,0 +1,60 @@ +en: + call_routes: + name: 'Call route' + controller: + successfuly_created: 'Successfully created Call route.' + successfuly_updated: 'Successfully updated Call route.' + successfuly_destroyed: 'Successfully destroyed Call route.' + index: + page_title: 'Listing Call route' + table: 'Table' + name: 'Name' + endpoint_type: 'Endpoint type' + endpoint_id: 'Endpoint' + position: 'Position' + actions: + confirm: 'Are you sure you want to delete this Call route?' + destroy: 'Delete' + edit: 'Edit' + show: 'View' + create: 'New' + create_for: 'New Call route for %{resource}' + show: + page_title: 'Show Call route' + table: 'Table' + name: 'Name' + endpoint_type: 'Endpoint type' + endpoint_id: 'Endpoint' + position: 'Position' + actions: + confirm: 'Are you sure you want to delete this element?' + destroy: 'Delete' + edit: 'Edit' + view_all: 'View All' + new: + page_title: 'New Call route' + actions: + back_to_list: 'Back to Index' + edit: + page_title: 'Editing Call route' + actions: + back_to_list: 'Back to Index' + edit: 'Edit' + view_all: 'View All' + form: + table: + label: 'Table' + hint: '' + name: + label: 'Name' + hint: '' + endpoint_type: + label: 'Endpoint type' + hint: '' + endpoint_id: + label: 'Endpoint' + hint: '' + position: + label: 'Position' + hint: '' + button: 'Submit'
\ No newline at end of file diff --git a/config/locales/views/gateway_parameters/de.yml b/config/locales/views/gateway_parameters/de.yml new file mode 100644 index 0000000..9c1cc3b --- /dev/null +++ b/config/locales/views/gateway_parameters/de.yml @@ -0,0 +1,60 @@ +de: + gateway_parameters: + name: 'Gatewayparameter' + controller: + successfuly_created: 'Gatewayparameter wurde angelegt.' + successfuly_updated: 'Gatewayparameter wurde aktualisiert.' + successfuly_destroyed: 'Gatewayparameter wurde gelöscht.' + index: + page_title: 'Übersicht von Gatewayparameter' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Sind Sie sicher, dass Sie folgendes löschen möchten: Gatewayparameter' + destroy: 'Löschen' + edit: 'Bearbeiten' + show: 'Anzeigen' + create: 'Neu anlegen' + create_for: 'Gatewayparameter neu anlegen für %{resource}' + show: + page_title: 'Gatewayparameter bearbeiten' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Sind Sie sicher, dass die dieses Element löschen möchten?' + destroy: 'Löschen' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + new: + page_title: 'Gatewayparameter neu anlegen' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: + page_title: 'Gatewayparameter bearbeiten' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + form: + gateway_id: + label: 'Gateway' + hint: '' + name: + label: 'Name' + hint: '' + value: + label: 'Value' + hint: '' + class_type: + label: 'Class type' + hint: '' + description: + label: 'Description' + hint: '' + button: 'Absenden'
\ No newline at end of file diff --git a/config/locales/views/gateway_parameters/en.yml b/config/locales/views/gateway_parameters/en.yml new file mode 100644 index 0000000..8d84298 --- /dev/null +++ b/config/locales/views/gateway_parameters/en.yml @@ -0,0 +1,60 @@ +en: + gateway_parameters: + name: 'Gatewayparameter' + controller: + successfuly_created: 'Successfully created Gatewayparameter.' + successfuly_updated: 'Successfully updated Gatewayparameter.' + successfuly_destroyed: 'Successfully destroyed Gatewayparameter.' + index: + page_title: 'Listing Gatewayparameter' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this Gatewayparameter?' + destroy: 'Delete' + edit: 'Edit' + show: 'View' + create: 'New' + create_for: 'New Gatewayparameter for %{resource}' + show: + page_title: 'Show Gatewayparameter' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this element?' + destroy: 'Delete' + edit: 'Edit' + view_all: 'View All' + new: + page_title: 'New Gatewayparameter' + actions: + back_to_list: 'Back to Index' + edit: + page_title: 'Editing Gatewayparameter' + actions: + back_to_list: 'Back to Index' + edit: 'Edit' + view_all: 'View All' + form: + gateway_id: + label: 'Gateway' + hint: '' + name: + label: 'Name' + hint: '' + value: + label: 'Value' + hint: '' + class_type: + label: 'Class type' + hint: '' + description: + label: 'Description' + hint: '' + button: 'Submit'
\ No newline at end of file diff --git a/config/locales/views/gateway_settings/de.yml b/config/locales/views/gateway_settings/de.yml new file mode 100644 index 0000000..698a81a --- /dev/null +++ b/config/locales/views/gateway_settings/de.yml @@ -0,0 +1,60 @@ +de: + gateway_settings: + name: 'Gateway Einstellungen' + controller: + successfuly_created: 'Gateway Einstellung wurde angelegt.' + successfuly_updated: 'Gateway Einstellung wurde aktualisiert.' + successfuly_destroyed: 'Gateway Einstellung wurde gelöscht.' + index: + page_title: 'Gateway Einstellungen' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Beschreibung' + actions: + confirm: 'Sind Sie sicher, dass Sie folgendes löschen möchten: Gateway Einstellungen' + destroy: 'Löschen' + edit: 'Bearbeiten' + show: 'Anzeigen' + create: 'Neu anlegen' + create_for: 'Gateway Einstellungen neu anlegen für %{resource}' + show: + page_title: 'Gateway Einstellungen bearbeiten' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Beschreibung' + actions: + confirm: 'Sind Sie sicher, dass die dieses Element löschen möchten?' + destroy: 'Löschen' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + new: + page_title: 'Gateway Einstellungen neu anlegen' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: + page_title: 'Gateway Einstellungen bearbeiten' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + form: + gateway_id: + label: 'Gateway' + hint: '' + name: + label: 'Name' + hint: '' + value: + label: 'Value' + hint: '' + class_type: + label: 'Class type' + hint: '' + description: + label: 'Beschreibung' + hint: '' + button: 'Absenden'
\ No newline at end of file diff --git a/config/locales/views/gateway_settings/en.yml b/config/locales/views/gateway_settings/en.yml new file mode 100644 index 0000000..63c1609 --- /dev/null +++ b/config/locales/views/gateway_settings/en.yml @@ -0,0 +1,60 @@ +en: + gateway_settings: + name: 'Gatewaysetting' + controller: + successfuly_created: 'Successfully created entry.' + successfuly_updated: 'Successfully updated entry.' + successfuly_destroyed: 'Successfully destroyed entry.' + index: + page_title: 'Gateway settings' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this entry?' + destroy: 'Delete' + edit: 'Edit' + show: 'View' + create: 'New' + create_for: 'New settings entry for %{resource}' + show: + page_title: 'Show Gatewaysetting' + gateway_id: 'Gateway' + name: 'Name' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this element?' + destroy: 'Delete' + edit: 'Edit' + view_all: 'View All' + new: + page_title: 'New Gateway settings entry' + actions: + back_to_list: 'Back to Index' + edit: + page_title: 'Editing Gateway settings' + actions: + back_to_list: 'Back to Index' + edit: 'Edit' + view_all: 'View All' + form: + gateway_id: + label: 'Gateway' + hint: '' + name: + label: 'Name' + hint: '' + value: + label: 'Value' + hint: '' + class_type: + label: 'Class type' + hint: '' + description: + label: 'Description' + hint: '' + button: 'Submit'
\ No newline at end of file diff --git a/config/locales/views/gateways/de.yml b/config/locales/views/gateways/de.yml new file mode 100644 index 0000000..befe6b6 --- /dev/null +++ b/config/locales/views/gateways/de.yml @@ -0,0 +1,61 @@ +de: + gateways: + name: 'Gateway' + controller: + successfuly_created: 'Gateway wurde angelegt.' + successfuly_updated: 'Gateway wurde aktualisiert.' + successfuly_destroyed: 'Gateway wurde gelöscht.' + index: + page_title: 'Liste aller Gateways' + name: 'Name' + technology: 'Technologie' + inbound: 'Inbound' + outbound: 'Outbound' + description: 'Description' + actions: + confirm: 'Sind Sie sicher, dass Sie folgendes löschen möchten: Gateway' + destroy: 'Löschen' + edit: 'Bearbeiten' + show: 'Anzeigen' + create: 'Neu anlegen' + create_for: 'Gateway neu anlegen für %{resource}' + show: + page_title: 'Gateway' + id: 'ID' + name: 'Name' + technology: 'Technologie' + inbound: 'Inbound' + outbound: 'Outbound' + description: 'Description' + actions: + confirm: 'Sind Sie sicher, dass die dieses Element löschen möchten?' + destroy: 'Löschen' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + new: + page_title: 'Gateway neu anlegen' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: + page_title: 'Gateway bearbeiten' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + form: + name: + label: 'Name' + hint: '' + technology: + label: 'Technologie' + hint: '' + inbound: + label: 'Inbound' + hint: '' + outbound: + label: 'Outbound' + hint: '' + description: + label: 'Description' + hint: '' + button: 'Absenden'
\ No newline at end of file diff --git a/config/locales/views/gateways/en.yml b/config/locales/views/gateways/en.yml new file mode 100644 index 0000000..7732da1 --- /dev/null +++ b/config/locales/views/gateways/en.yml @@ -0,0 +1,61 @@ +en: + gateways: + name: 'Gateway' + controller: + successfuly_created: 'Successfully created Gateway.' + successfuly_updated: 'Successfully updated Gateway.' + successfuly_destroyed: 'Successfully destroyed Gateway.' + index: + page_title: 'Listing Gateway' + name: 'Name' + technology: 'Technology' + inbound: 'Inbound' + outbound: 'Outbound' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this Gateway?' + destroy: 'Delete' + edit: 'Edit' + show: 'View' + create: 'New' + create_for: 'New Gateway for %{resource}' + show: + page_title: 'Gateway' + id: 'ID' + name: 'Name' + technology: 'Technology' + inbound: 'Inbound' + outbound: 'Outbound' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this element?' + destroy: 'Delete' + edit: 'Edit' + view_all: 'View All' + new: + page_title: 'New Gateway' + actions: + back_to_list: 'Back to Index' + edit: + page_title: 'Editing Gateway' + actions: + back_to_list: 'Back to Index' + edit: 'Edit' + view_all: 'View All' + form: + name: + label: 'Name' + hint: '' + technology: + label: 'Technology' + hint: '' + inbound: + label: 'Inbound' + hint: '' + outbound: + label: 'Outbound' + hint: '' + description: + label: 'Description' + hint: '' + button: 'Submit'
\ No newline at end of file diff --git a/config/locales/views/gemeinschaft_setups/de.yml b/config/locales/views/gemeinschaft_setups/de.yml index a1dd989..d087583 100644 --- a/config/locales/views/gemeinschaft_setups/de.yml +++ b/config/locales/views/gemeinschaft_setups/de.yml @@ -25,4 +25,7 @@ de: language_id: label: 'Sprache' hint: '' + default_area_code: + label: 'Standard Ortsvorwahl' + hint: '030 für Berlin, 0261 für Koblenz, 02631 für Neuwied, usw.' button: 'Absenden'
\ No newline at end of file diff --git a/config/locales/views/gemeinschaft_setups/en.yml b/config/locales/views/gemeinschaft_setups/en.yml index aef2686..5e22e58 100644 --- a/config/locales/views/gemeinschaft_setups/en.yml +++ b/config/locales/views/gemeinschaft_setups/en.yml @@ -25,4 +25,7 @@ en: language_id: label: 'Language' hint: '' + default_area_code: + label: 'Default area code' + hint: '' button: 'Submit'
\ No newline at end of file diff --git a/config/locales/views/gs_parameters/de.yml b/config/locales/views/gs_parameters/de.yml new file mode 100644 index 0000000..9e22eb0 --- /dev/null +++ b/config/locales/views/gs_parameters/de.yml @@ -0,0 +1,63 @@ +de: + gs_parameters: + name: 'Gemeinschaft Parameter' + controller: + successfuly_created: 'Ein Gemeinschaft Parameter wurde angelegt.' + successfuly_updated: 'Ein Gemeinschaft Parameter wurde aktualisiert. Bitte rebooten Sie Ihr System jetzt!' + successfuly_destroyed: 'Ein Gemeinschaft Parameter wurde gelöscht.' + index: + page_title: 'Übersicht aller Gemeinschaft Parameter' + name: 'Name' + section: 'Section' + value: 'Wert' + class_type: 'Class type' + description: 'Beschreibung' + actions: + confirm: 'Sind Sie sicher, dass Sie folgendes löschen möchten: Gemeinschaft Parameter' + destroy: 'Löschen' + edit: 'Bearbeiten' + show: 'Anzeigen' + create: 'Neu anlegen' + create_for: 'Gemeinschaft Parameter neu anlegen für %{resource}' + show: + page_title: 'Gemeinschaft Parameter anzeigen' + name: 'Name' + section: 'Section' + value: 'Wert' + class_type: 'Class type' + description: 'Beschreibung' + actions: + confirm: 'Sind Sie sicher, dass die dieses Element löschen möchten?' + destroy: 'Löschen' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + new: + page_title: 'Gemeinschaft Parameter neu anlegen' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: + page_title: 'Gemeinschaft Parameter bearbeiten' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + form: + entity: + label: 'Instanz' + hint: '' + name: + label: 'Name' + hint: '' + section: + label: 'Section' + hint: '' + value: + label: 'Wert' + hint: '' + class_type: + label: 'Class type' + hint: '' + description: + label: 'Beschreibung' + hint: '' + button: 'Absenden'
\ No newline at end of file diff --git a/config/locales/views/gs_parameters/en.yml b/config/locales/views/gs_parameters/en.yml new file mode 100644 index 0000000..9dbdcb2 --- /dev/null +++ b/config/locales/views/gs_parameters/en.yml @@ -0,0 +1,64 @@ +en: + gs_parameters: + name: 'Gemeinschaft parameter' + controller: + successfuly_created: 'Successfully created a Gemeinschaft parameter.' + successfuly_updated: 'Successfully updated a Gemeinschaft parameter. Please reboot your system now!' + successfuly_destroyed: 'Successfully destroyed a Gemeinschaft parameter.' + index: + page_title: 'Listing Gemeinschaft parameter' + name: 'Name' + section: 'Section' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this Gemeinschaft parameter?' + destroy: 'Delete' + edit: 'Edit' + show: 'View' + create: 'New' + create_for: 'New Gemeinschaft parameter for %{resource}' + show: + page_title: 'Show Gemeinschaft parameter' + name: 'Name' + section: 'Section' + value: 'Value' + class_type: 'Class type' + description: 'Description' + actions: + confirm: 'Are you sure you want to delete this element?' + destroy: 'Delete' + edit: 'Edit' + view_all: 'View All' + reboot_warning: 'Nach der Änderung eines Gemeinschaft Parameters müssen Sie das System neu booten!' + new: + page_title: 'New Gemeinschaft parameter' + actions: + back_to_list: 'Back to Index' + edit: + page_title: 'Editing Gemeinschaft parameter' + actions: + back_to_list: 'Back to Index' + edit: 'Edit' + view_all: 'View All' + form: + entity: + label: 'Entity' + hint: '' + name: + label: 'Name' + hint: '' + section: + label: 'Section' + hint: '' + value: + label: 'Value' + hint: '' + class_type: + label: 'Class type' + hint: '' + description: + label: 'Description' + hint: '' + button: 'Submit'
\ No newline at end of file diff --git a/config/locales/views/phone_numbers/de.yml b/config/locales/views/phone_numbers/de.yml index 40fc7f8..e801ab4 100644 --- a/config/locales/views/phone_numbers/de.yml +++ b/config/locales/views/phone_numbers/de.yml @@ -34,7 +34,8 @@ de: confirm: 'Sind Sie sicher, dass Sie diese Telefonnummer löschen möchten?' destroy: 'Löschen' edit: 'Bearbeiten' - view_all: 'View all phone numbers' + view_all: 'Alle anzeigen' + call: 'Anrufen' new: page_title: 'Neue Telefonnummer' edit: diff --git a/config/locales/views/phone_numbers/en.yml b/config/locales/views/phone_numbers/en.yml index 31af5c8..be3b4f5 100644 --- a/config/locales/views/phone_numbers/en.yml +++ b/config/locales/views/phone_numbers/en.yml @@ -35,6 +35,7 @@ en: destroy: 'Delete' edit: 'Edit' view_all: 'View all phone numbers' + call: 'Call' new: page_title: 'New Phone number' edit: diff --git a/config/locales/views/route_elements/de.yml b/config/locales/views/route_elements/de.yml new file mode 100644 index 0000000..d2c6c39 --- /dev/null +++ b/config/locales/views/route_elements/de.yml @@ -0,0 +1,75 @@ +de: + route_elements: + name: 'Route element' + controller: + successfuly_created: 'Route element wurde angelegt.' + successfuly_updated: 'Route element wurde aktualisiert.' + successfuly_destroyed: 'Route element wurde gelöscht.' + index: + page_title: 'Übersicht von Route element' + call_route_id: 'Call route' + var_in: 'Var in' + var_out: 'Var out' + pattern: 'Pattern' + replacement: 'Replacement' + action: 'Action' + mandatory: 'Mandatory' + position: 'Position' + actions: + confirm: 'Sind Sie sicher, dass Sie folgendes löschen möchten: Route element' + destroy: 'Löschen' + edit: 'Bearbeiten' + show: 'Anzeigen' + create: 'Neu anlegen' + create_for: 'Route element neu anlegen für %{resource}' + show: + page_title: 'Route element bearbeiten' + call_route_id: 'Call route' + var_in: 'Var in' + var_out: 'Var out' + pattern: 'Pattern' + replacement: 'Replacement' + action: 'Action' + mandatory: 'Mandatory' + position: 'Position' + actions: + confirm: 'Sind Sie sicher, dass die dieses Element löschen möchten?' + destroy: 'Löschen' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + new: + page_title: 'Route element neu anlegen' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: + page_title: 'Route element bearbeiten' + actions: + back_to_list: 'Zurück zur Übersicht' + edit: 'Bearbeiten' + view_all: 'Alle anzeigen' + form: + call_route_id: + label: 'Call route' + hint: '' + var_in: + label: 'Var in' + hint: '' + var_out: + label: 'Var out' + hint: '' + pattern: + label: 'Pattern' + hint: '' + replacement: + label: 'Replacement' + hint: '' + action: + label: 'Action' + hint: '' + mandatory: + label: 'Mandatory' + hint: '' + position: + label: 'Position' + hint: '' + button: 'Absenden'
\ No newline at end of file diff --git a/config/locales/views/route_elements/en.yml b/config/locales/views/route_elements/en.yml new file mode 100644 index 0000000..1340309 --- /dev/null +++ b/config/locales/views/route_elements/en.yml @@ -0,0 +1,75 @@ +en: + route_elements: + name: 'Route element' + controller: + successfuly_created: 'Successfully created Route element.' + successfuly_updated: 'Successfully updated Route element.' + successfuly_destroyed: 'Successfully destroyed Route element.' + index: + page_title: 'Listing Route element' + call_route_id: 'Call route' + var_in: 'Var in' + var_out: 'Var out' + pattern: 'Pattern' + replacement: 'Replacement' + action: 'Action' + mandatory: 'Mandatory' + position: 'Position' + actions: + confirm: 'Are you sure you want to delete this Route element?' + destroy: 'Delete' + edit: 'Edit' + show: 'View' + create: 'New' + create_for: 'New Route element for %{resource}' + show: + page_title: 'Show Route element' + call_route_id: 'Call route' + var_in: 'Var in' + var_out: 'Var out' + pattern: 'Pattern' + replacement: 'Replacement' + action: 'Action' + mandatory: 'Mandatory' + position: 'Position' + actions: + confirm: 'Are you sure you want to delete this element?' + destroy: 'Delete' + edit: 'Edit' + view_all: 'View All' + new: + page_title: 'New Route element' + actions: + back_to_list: 'Back to Index' + edit: + page_title: 'Editing Route element' + actions: + back_to_list: 'Back to Index' + edit: 'Edit' + view_all: 'View All' + form: + call_route_id: + label: 'Call route' + hint: '' + var_in: + label: 'Var in' + hint: '' + var_out: + label: 'Var out' + hint: '' + pattern: + label: 'Pattern' + hint: '' + replacement: + label: 'Replacement' + hint: '' + action: + label: 'Action' + hint: '' + mandatory: + label: 'Mandatory' + hint: '' + position: + label: 'Position' + hint: '' + button: 'Submit'
\ No newline at end of file diff --git a/config/locales/views/users/de.yml b/config/locales/views/users/de.yml index 951600d..e4a0ae2 100644 --- a/config/locales/views/users/de.yml +++ b/config/locales/views/users/de.yml @@ -1,15 +1,15 @@ de: users: - name: "Benutzer" + name: "User" controller: - successfuly_created: 'Der Benutzer %{resource} wurde erstellt.' - successfuly_created_and_login: 'Der Benutzer %{resource} wurde erstellt. Sie sind jetzt als dieser Benutzer angemeldet.' - successfuly_updated: 'Benutzer-Daten aktualisiert.' - successfuly_destroyed: 'Der Benutzer wurde gelöscht.' + successfuly_created: 'Der User %{resource} wurde erstellt.' + successfuly_created_and_login: 'Der User %{resource} wurde erstellt. Sie sind jetzt als dieser User angemeldet.' + successfuly_updated: 'User-Daten aktualisiert.' + successfuly_destroyed: 'Der User wurde gelöscht.' avatar_destroyed: 'Der Avatar wurde gelöscht.' index: - page_title: 'Benutzer' - user_name: 'Benutzer-Name' + page_title: 'User' + user_name: 'User-Name' email: 'E-Mail Adresse' first_name: 'Vorname' middle_name: 'Zweiter Vorname' @@ -20,15 +20,15 @@ de: language_id: 'Sprache' send_voicemail_as_email_attachment: 'Sprachnachrichten per E-Mail' actions: - confirm: 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten?' + confirm: 'Sind Sie sicher, dass Sie diesen User löschen möchten?' destroy: 'Löschen' edit: 'Bearbeiten' show: 'Anzeigen' - create: 'Neuen Benutzer anlegen' - create_for: 'Neuen Benutzer für %{resource} anlegen' + create: 'Neuen User anlegen' + create_for: 'Neuen User für %{resource} anlegen' show: - page_title: 'Benutzer anzeigen' - user_name: 'Benutzer-Name' + page_title: 'User anzeigen' + user_name: 'User-Name' email: 'E-Mail Adresse' first_name: 'Vorname' middle_name: 'Zweiter Vorname' @@ -39,17 +39,17 @@ de: language_id: 'Sprache' send_voicemail_as_email_attachment: 'Sprachnachrichten per E-Mail' actions: - confirm: 'Sind Sie sicher, dass Sie diesen Benutzer löschen möchten?' + confirm: 'Sind Sie sicher, dass Sie diesen User löschen möchten?' destroy: 'Löschen' edit: 'Bearbeiten' - view_all: 'Alle Benutzer anzeigen' + view_all: 'Alle User anzeigen' new: - page_title: 'Neuen Benutzer anlegen' + page_title: 'Neuen User anlegen' edit: - page_title: 'Benutzer %{resource} bearbeiten' + page_title: 'User %{resource} bearbeiten' form: user_name: - label: 'Benutzer-Name' + label: 'User-Name' hint: '' email: label: 'E-Mail Adresse' diff --git a/config/routes.rb b/config/routes.rb index 33238dc..22a36e5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,30 @@ Gemeinschaft42c::Application.routes.draw do + + scope :constraints => lambda{|req|%w(127.0.0.1).include? req.remote_addr} do + get "trigger/voicemail" + get "trigger/fax" + end + + resources :call_routes do + resources :route_elements do + member do + put 'move_higher' + put 'move_lower' + end + end + member do + put 'move_higher' + put 'move_lower' + end + end + + resources :gateways do + resources :gateway_settings + resources :gateway_parameters + end + + resources :gs_parameters, :only => [:show, :index, :update, :edit] + resources :automatic_call_distributors resources :gs_cluster_sync_log_entries @@ -53,7 +79,7 @@ Gemeinschaft42c::Application.routes.draw do end end - if CALLTHROUGH_HAS_WHITELISTS == true + if GsParameter.get('CALLTHROUGH_HAS_WHITELISTS') == true resources :whitelists, :only => [] do resources :phone_numbers do member do @@ -237,7 +263,7 @@ Gemeinschaft42c::Application.routes.draw do resources :conferences resources :phone_number_ranges resources :callthroughs - if CALLTHROUGH_HAS_WHITELISTS == true + if GsParameter.get('CALLTHROUGH_HAS_WHITELISTS') == true resources :whitelists end resources :hunt_groups @@ -252,7 +278,7 @@ Gemeinschaft42c::Application.routes.draw do put 'move_lower' end end - if CALLTHROUGH_HAS_WHITELISTS == true + if GsParameter.get('CALLTHROUGH_HAS_WHITELISTS') == true resources :whitelists end end @@ -302,6 +328,7 @@ Gemeinschaft42c::Application.routes.draw do member do put 'move_higher' put 'move_lower' + put 'call' end end end diff --git a/config/unicorn.rb b/config/unicorn.rb new file mode 100644 index 0000000..8157562 --- /dev/null +++ b/config/unicorn.rb @@ -0,0 +1,34 @@ +APP_ROOT = File.expand_path(File.dirname(File.dirname(__FILE__))) + +worker_processes 1 +working_directory APP_ROOT + +preload_app true + +timeout 30 + +listen APP_ROOT + "/tmp/sockets/unicorn.sock", :backlog => 64 + +pid APP_ROOT + "/tmp/pids/unicorn.pid" + +stderr_path APP_ROOT + "/log/unicorn.stderr.log" +stdout_path APP_ROOT + "/log/unicorn.stdout.log" + +before_fork do |server, worker| + defined?(ActiveRecord::Base) && ActiveRecord::Base.connection.disconnect! + + old_pid = Rails.root + '/tmp/pids/unicorn.pid.oldbin' + if File.exists?(old_pid) && server.pid != old_pid + begin + Process.kill("QUIT", File.read(old_pid).to_i) + rescue Errno::ENOENT, Errno::ESRCH + puts "Old master alerady dead" + end + end +end + +after_fork do |server, worker| + defined?(ActiveRecord::Base) && ActiveRecord::Base.establish_connection + child_pid = server.config[:pid].sub('.pid', ".#{worker.nr}.pid") + system("echo #{Process.pid} > #{child_pid}") +end |