summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/stylesheets/gemeinschaft-generic.css.scss21
-rw-r--r--app/controllers/config_snom_controller.rb51
-rw-r--r--app/controllers/intruders_controller.rb18
-rw-r--r--app/controllers/parking_stalls_controller.rb69
-rw-r--r--app/controllers/sim_card_providers_controller.rb47
-rw-r--r--app/controllers/sim_cards_controller.rb57
-rw-r--r--app/helpers/parking_stalls_helper.rb2
-rw-r--r--app/helpers/sim_card_providers_helper.rb2
-rw-r--r--app/helpers/sim_cards_helper.rb2
-rw-r--r--app/models/ability.rb4
-rw-r--r--app/models/fax_document.rb32
-rw-r--r--app/models/intruder.rb9
-rw-r--r--app/models/parking_stall.rb17
-rw-r--r--app/models/sim_card.rb63
-rw-r--r--app/models/sim_card_provider.rb28
-rw-r--r--app/models/sip_account.rb4
-rw-r--r--app/models/softkey.rb8
-rw-r--r--app/models/tenant.rb2
-rw-r--r--app/models/user.rb6
-rw-r--r--app/uploaders/thumbnail_uploader.rb18
-rw-r--r--app/views/access_authorizations/_form.html.haml4
-rw-r--r--app/views/acd_agents/_form.html.haml4
-rw-r--r--app/views/addresses/_form.html.haml4
-rw-r--r--app/views/automatic_call_distributors/_form.html.haml4
-rw-r--r--app/views/backup_jobs/_form.html.haml4
-rw-r--r--app/views/call_forwards/_form.html.haml4
-rw-r--r--app/views/call_routes/_form.html.haml4
-rw-r--r--app/views/callthroughs/_form.html.haml2
-rw-r--r--app/views/conference_invitees/_form.html.haml4
-rw-r--r--app/views/conferences/_form.html.haml4
-rw-r--r--app/views/config_snom/show.xml.haml25
-rw-r--r--app/views/fax_accounts/_form.html.haml4
-rw-r--r--app/views/fax_documents/_form.html.haml4
-rw-r--r--app/views/fax_documents/_index_core.html.haml51
-rw-r--r--app/views/fax_documents/show.html.haml91
-rw-r--r--app/views/gateway_parameters/_form.html.haml4
-rw-r--r--app/views/gateway_settings/_form.html.haml2
-rw-r--r--app/views/gateways/_form.html.haml4
-rw-r--r--app/views/gemeinschaft_setups/new.de.html.haml4
-rw-r--r--app/views/gemeinschaft_setups/new.html.haml4
-rw-r--r--app/views/gs_cluster_sync_log_entries/_form.html.haml4
-rw-r--r--app/views/gs_nodes/_form.html.haml4
-rw-r--r--app/views/gs_parameters/_form.html.haml4
-rw-r--r--app/views/gui_functions/_form.html.haml4
-rw-r--r--app/views/hunt_group_members/_form.html.haml4
-rw-r--r--app/views/hunt_groups/_form.html.haml4
-rw-r--r--app/views/intruders/_form.html.haml4
-rw-r--r--app/views/intruders/_index_core.html.haml33
-rw-r--r--app/views/intruders/show.html.haml12
-rw-r--r--app/views/layouts/_navbar.html.haml12
-rw-r--r--app/views/manufacturers/_form.html.haml4
-rw-r--r--app/views/parking_stalls/_form.html.haml7
-rw-r--r--app/views/parking_stalls/_form_core.html.haml4
-rw-r--r--app/views/parking_stalls/_index_core.html.haml13
-rw-r--r--app/views/parking_stalls/edit.html.haml3
-rw-r--r--app/views/parking_stalls/index.html.haml6
-rw-r--r--app/views/parking_stalls/new.html.haml3
-rw-r--r--app/views/parking_stalls/show.html.haml13
-rw-r--r--app/views/phone_book_entries/_form.html.haml4
-rw-r--r--app/views/phone_books/_form.html.haml4
-rw-r--r--app/views/phone_models/_form.html.haml4
-rw-r--r--app/views/phone_number_ranges/_form.html.haml4
-rw-r--r--app/views/phone_numbers/_form.html.haml2
-rw-r--r--app/views/phone_sip_accounts/_form.html.haml4
-rw-r--r--app/views/phones/_form.html.haml4
-rw-r--r--app/views/ringtones/_form.html.haml4
-rw-r--r--app/views/route_elements/_form.html.haml4
-rw-r--r--app/views/sessions/new.html.haml2
-rw-r--r--app/views/sim_card_providers/_form.html.haml7
-rw-r--r--app/views/sim_card_providers/_form_core.html.haml9
-rw-r--r--app/views/sim_card_providers/_index_core.html.haml21
-rw-r--r--app/views/sim_card_providers/edit.html.haml3
-rw-r--r--app/views/sim_card_providers/index.html.haml6
-rw-r--r--app/views/sim_card_providers/new.html.haml3
-rw-r--r--app/views/sim_card_providers/show.html.haml72
-rw-r--r--app/views/sim_cards/_form.html.haml7
-rw-r--r--app/views/sim_cards/_form_core.html.haml3
-rw-r--r--app/views/sim_cards/_index_core.html.haml18
-rw-r--r--app/views/sim_cards/edit.html.haml3
-rw-r--r--app/views/sim_cards/index.html.haml6
-rw-r--r--app/views/sim_cards/new.html.haml3
-rw-r--r--app/views/sim_cards/show.html.haml37
-rw-r--r--app/views/sip_accounts/_form.html.haml4
-rw-r--r--app/views/sip_accounts/_form_core.html.haml1
-rw-r--r--app/views/sip_domains/_form.html.haml4
-rw-r--r--app/views/softkeys/_form.html.haml4
-rw-r--r--app/views/tenants/_admin_area.de.html.haml3
-rw-r--r--app/views/tenants/_admin_area.en.html.haml3
-rw-r--r--app/views/tenants/_form.html.haml4
-rw-r--r--app/views/tenants/_index_core.html.haml4
-rw-r--r--app/views/tenants/_table_of_sim_card_providers.html.haml7
-rw-r--r--app/views/user_group_memberships/_form.html.haml4
-rw-r--r--app/views/user_groups/_form.html.haml4
-rw-r--r--app/views/users/_form.html.haml4
-rw-r--r--app/views/users/show.html.haml6
-rw-r--r--app/views/voicemail_messages/_index_core.html.haml6
-rw-r--r--app/views/voicemail_settings/_form.html.haml4
-rw-r--r--app/views/whitelists/_form.html.haml4
98 files changed, 911 insertions, 218 deletions
diff --git a/app/assets/stylesheets/gemeinschaft-generic.css.scss b/app/assets/stylesheets/gemeinschaft-generic.css.scss
index e594d67..fbeaa1f 100644
--- a/app/assets/stylesheets/gemeinschaft-generic.css.scss
+++ b/app/assets/stylesheets/gemeinschaft-generic.css.scss
@@ -6,6 +6,27 @@ body {
padding-top: 60px;
padding-bottom: 40px;
}
+
+// Nav
+li.display {
+ line-height: 40px;
+ img {
+ vertical-align: middle;
+ width: 26px;
+ margin-top: -2px;
+ }
+}
+
+// SimpleForm Inline Checkbox Fix
+.simple-checkbox .checkbox {
+ text-align: left;
+ width: auto;
+ float: none;
+}
+input, textarea, .uneditable-input {
+ width: 500px;
+}
+
@media (max-width: 979px) {
body {
padding-top: 0px;
diff --git a/app/controllers/config_snom_controller.rb b/app/controllers/config_snom_controller.rb
index 58cced2..76fa633 100644
--- a/app/controllers/config_snom_controller.rb
+++ b/app/controllers/config_snom_controller.rb
@@ -282,28 +282,31 @@ class ConfigSnomController < ApplicationController
@softkeys.push({:context => sip_account_index, :label => softkey.label, :data => "speed f-li-#{softkey.number}"})
when 'conference'
@softkeys.push({:context => sip_account_index, :label => softkey.label, :data => "blf <sip:#{softkey.number}@#{sip_account.host}>|f-ta-"})
- when 'call_parking'
- @softkeys.push({
- :context => sip_account_index,
- :function => softkey.softkey_function.name,
- :label => softkey.label,
- :softkey => softkey,
- :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"),
- :subscription => {
- :to => "park+#{@softkeys.softkeyable_id}@#{sip_account.host}",
- :for => "#{sip_account.auth_name}@#{sip_account.host}"
- },
- :actions => [{
- :type => :dial,
- :target => "f-tpark-#{@softkeys.softkeyable_id}",
- :when => 'on press',
- :states => 'connected,holding',
- },{
- :type => :dial,
- :target => "f-park-#{@softkeys.softkeyable_id}",
- :when => 'on press',
- }],
- })
+ when 'parking_stall'
+ parking_stall = softkey.softkeyable
+ if parking_stall.class == ParkingStall
+ @softkeys.push({
+ :context => sip_account_index,
+ :function => softkey.softkey_function.name,
+ :label => softkey.label,
+ :softkey => softkey,
+ :general_type => t("softkeys.functions.#{softkey.softkey_function.name}"),
+ :subscription => {
+ :to => "sip:park+#{parking_stall.name}@#{sip_account.host}",
+ :for => "sip:park+#{parking_stall.name}@#{sip_account.host}",
+ },
+ :actions => [{
+ :type => :dial,
+ :target => "f-cpa-#{parking_stall.name}",
+ :when => 'on press',
+ :states => 'connected,holding',
+ },{
+ :type => :dial,
+ :target => "f-cpa-#{parking_stall.name}",
+ :when => 'on press',
+ }],
+ })
+ end
when 'call_forwarding'
if softkey.softkeyable.class == CallForward then
@softkeys.push({
@@ -313,8 +316,8 @@ class ConfigSnomController < ApplicationController
:softkey => softkey,
:general_type => t("softkeys.functions.#{softkey.softkey_function.name}"),
:subscription => {
- :to => "f-cftg-#{softkey.softkeyable_id}@#{sip_account.host}",
- :for => "#{sip_account.auth_name}@#{sip_account.host}"
+ :to => "sip:f-cftg-#{softkey.softkeyable_id}@#{sip_account.host}",
+ :for => "sip:f-cftg-#{softkey.softkeyable_id}@#{sip_account.host}"
},
:actions => [{
:type => :url,
diff --git a/app/controllers/intruders_controller.rb b/app/controllers/intruders_controller.rb
index eb34f2b..147e06d 100644
--- a/app/controllers/intruders_controller.rb
+++ b/app/controllers/intruders_controller.rb
@@ -1,18 +1,25 @@
class IntrudersController < ApplicationController
def index
@intruders = Intruder.all
+ spread_breadcrumbs
end
def show
@intruder = Intruder.find(params[:id])
+ if ! params[:whois].blank?
+ @whois = @intruder.whois(params[:whois])
+ end
+ spread_breadcrumbs
end
def new
@intruder = Intruder.new
+ spread_breadcrumbs
end
def create
@intruder = Intruder.new(params[:intruder])
+ spread_breadcrumbs
if @intruder.save
redirect_to @intruder, :notice => t('intruders.controller.successfuly_created')
else
@@ -22,10 +29,12 @@ class IntrudersController < ApplicationController
def edit
@intruder = Intruder.find(params[:id])
+ spread_breadcrumbs
end
def update
@intruder = Intruder.find(params[:id])
+ spread_breadcrumbs
if @intruder.update_attributes(params[:intruder])
redirect_to @intruder, :notice => t('intruders.controller.successfuly_updated')
else
@@ -35,7 +44,16 @@ class IntrudersController < ApplicationController
def destroy
@intruder = Intruder.find(params[:id])
+ spread_breadcrumbs
@intruder.destroy
redirect_to intruders_url, :notice => t('intruders.controller.successfuly_destroyed')
end
+
+ private
+ def spread_breadcrumbs
+ add_breadcrumb t("intruders.index.page_title"), intruders_path
+ if @intruder && !@intruder.new_record?
+ add_breadcrumb @intruder, @intruder
+ end
+ end
end
diff --git a/app/controllers/parking_stalls_controller.rb b/app/controllers/parking_stalls_controller.rb
new file mode 100644
index 0000000..d1bc0c7
--- /dev/null
+++ b/app/controllers/parking_stalls_controller.rb
@@ -0,0 +1,69 @@
+class ParkingStallsController < ApplicationController
+
+ load_resource :tenant
+ load_resource :user
+ load_and_authorize_resource :parking_stall, :through => [:user, :tenant ]
+
+ before_filter :set_and_authorize_parent
+ before_filter :spread_breadcrumbs
+
+ def index
+ end
+
+ def show
+ end
+
+ def new
+ @parking_stall.lot = 'default'
+ @parking_stall.name = ParkingStall.order(:name).last.try(:name).to_i + 1
+ end
+
+ def create
+ @parking_stall = @parent.parking_stalls.build(params[:parking_stall])
+ if @parking_stall.save
+ redirect_to [@parent, @parking_stall], :notice => t('parking_stalls.controller.successfuly_created')
+ else
+ render :new
+ end
+ end
+
+ def edit
+ end
+
+ def update
+ if @parking_stall.update_attributes(params[:parking_stall])
+ redirect_to [@parent, @parking_stall], :notice => t('parking_stalls.controller.successfuly_updated')
+ else
+ render :edit
+ end
+ end
+
+ def destroy
+ @parking_stall.destroy
+ m = method( :"#{@parent.class.name.underscore}_parking_stalls_url" )
+ redirect_to m.(@parent), :notice => t('parking_stalls.controller.successfuly_destroyed')
+ end
+
+ private
+ def set_and_authorize_parent
+ @parent = @user || @tenant
+ authorize! :read, @parent
+ end
+
+ def spread_breadcrumbs
+ if @user
+ add_breadcrumb t("users.index.page_title"), tenant_users_path(@user.current_tenant)
+ add_breadcrumb @user, tenant_user_path(@user.current_tenant, @user)
+ add_breadcrumb t("parking_stalls.index.page_title"), user_parking_stalls_path(@user)
+ if @parking_stall && !@parking_stall.new_record?
+ add_breadcrumb @parking_stall, user_parking_stall_path(@user, @parking_stall)
+ end
+ end
+ if @tenant
+ add_breadcrumb t("parking_stalls.index.page_title"), tenant_parking_stalls_path(@tenant)
+ if @parking_stall && !@parking_stall.new_record?
+ add_breadcrumb @parking_stall, tenant_parking_stall_path(@tenant, @parking_stall)
+ end
+ end
+ end
+end
diff --git a/app/controllers/sim_card_providers_controller.rb b/app/controllers/sim_card_providers_controller.rb
new file mode 100644
index 0000000..e9a019c
--- /dev/null
+++ b/app/controllers/sim_card_providers_controller.rb
@@ -0,0 +1,47 @@
+class SimCardProvidersController < ApplicationController
+ load_and_authorize_resource :sim_card_provider
+ before_filter :spread_breadcrumbs
+
+ def index
+ end
+
+ def show
+ end
+
+ def new
+ end
+
+ def create
+ if @sim_card_provider.save
+ redirect_to @sim_card_provider, :notice => t('sim_card_providers.controller.successfuly_created')
+ else
+ render :new
+ end
+ end
+
+ def edit
+ end
+
+ def update
+ if @sim_card_provider.update_attributes(params[:sim_card_provider])
+ redirect_to @sim_card_provider, :notice => t('sim_card_providers.controller.successfuly_updated')
+ else
+ render :edit
+ end
+ end
+
+ def destroy
+ @sim_card_provider.destroy
+ redirect_to sim_card_providers_url, :notice => t('sim_card_providers.controller.successfuly_destroyed')
+ end
+
+ private
+
+ def spread_breadcrumbs
+ add_breadcrumb t("sim_card_providers.index.page_title"), sim_card_providers_path
+ if @sim_card_provider && !@sim_card_provider.new_record?
+ add_breadcrumb @sim_card_provider, sim_card_provider_path(@sim_card_provider)
+ end
+ end
+
+end
diff --git a/app/controllers/sim_cards_controller.rb b/app/controllers/sim_cards_controller.rb
new file mode 100644
index 0000000..ed46843
--- /dev/null
+++ b/app/controllers/sim_cards_controller.rb
@@ -0,0 +1,57 @@
+class SimCardsController < ApplicationController
+ load_and_authorize_resource :sim_card_provider
+ load_and_authorize_resource :sim_card, :through => [:sim_card_provider]
+
+ before_filter :set_parent
+ before_filter :spread_breadcrumbs
+
+ def index
+ end
+
+ def show
+ end
+
+ def new
+ @sim_card = @sim_card_provider.sim_cards.build
+
+ @with_phones_connected_sip_account_ids = SipAccount.where(:id => PhoneSipAccount.pluck(:sip_account_id)).pluck(:id)
+ @with_sim_cards_connected_sip_account_ids = SimCard.pluck(:sip_account_id)
+ @available_sip_account_ids = SipAccount.pluck(:id) - (@with_phones_connected_sip_account_ids + @with_sim_cards_connected_sip_account_ids)
+
+ @available_sip_accounts = SipAccount.where(:id => @available_sip_account_ids)
+
+ if @available_sip_accounts.count == 0
+ redirect_to sim_card_provider_sim_cards_path(@sim_card_provider), :alert => t('sim_cards.controller.no_existing_sip_accounts_warning')
+ end
+
+ end
+
+ def create
+ @sim_card = @sim_card_provider.sim_cards.build(params[:sim_card])
+ if @sim_card.save
+ redirect_to [@sim_card_provider, @sim_card], :notice => t('sim_cards.controller.successfuly_created')
+ else
+ render :new
+ end
+ end
+
+ def destroy
+ @sim_card.destroy
+ redirect_to sim_card_provider_sim_cards_url(@sim_card_provider), :notice => t('sim_cards.controller.successfuly_destroyed')
+ end
+
+ private
+ def set_parent
+ @parent = @sim_card_provider
+ end
+
+ def spread_breadcrumbs
+ add_breadcrumb t("sim_card_providers.index.page_title"), sim_card_providers_path
+ add_breadcrumb @sim_card_provider, sim_card_provider_path(@sim_card_provider)
+ add_breadcrumb t("sim_cards.index.page_title"), sim_card_provider_sim_cards_path(@sim_card_provider)
+ if @sim_card && !@sim_card.new_record?
+ add_breadcrumb @sim_card, sim_card_provider_sim_card_path(@sim_card_provider, @sim_card)
+ end
+ end
+
+end
diff --git a/app/helpers/parking_stalls_helper.rb b/app/helpers/parking_stalls_helper.rb
new file mode 100644
index 0000000..135bfee
--- /dev/null
+++ b/app/helpers/parking_stalls_helper.rb
@@ -0,0 +1,2 @@
+module ParkingStallsHelper
+end
diff --git a/app/helpers/sim_card_providers_helper.rb b/app/helpers/sim_card_providers_helper.rb
new file mode 100644
index 0000000..306f589
--- /dev/null
+++ b/app/helpers/sim_card_providers_helper.rb
@@ -0,0 +1,2 @@
+module SimCardProvidersHelper
+end
diff --git a/app/helpers/sim_cards_helper.rb b/app/helpers/sim_cards_helper.rb
new file mode 100644
index 0000000..c0df165
--- /dev/null
+++ b/app/helpers/sim_cards_helper.rb
@@ -0,0 +1,2 @@
+module SimCardsHelper
+end
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 4c0844c..d66577d 100644
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -86,6 +86,10 @@ class Ability
# An admin can not destroy his/her account
#
cannot [:destroy], User, :id => user.id
+
+ # SIM cards
+ #
+ cannot [:edit, :update], SimCard
else
# Any user can do the following stuff.
#
diff --git a/app/models/fax_document.rb b/app/models/fax_document.rb
index be689e2..564d3bb 100644
--- a/app/models/fax_document.rb
+++ b/app/models/fax_document.rb
@@ -18,8 +18,8 @@ class FaxDocument < ActiveRecord::Base
has_many :fax_thumbnails, :order => :position, :dependent => :destroy
- after_create :render_thumbnails
after_create :convert_pdf_to_tiff
+ after_create :render_thumbnails
# Scopes
scope :inbound, where(:state => 'inbound')
@@ -47,23 +47,25 @@ class FaxDocument < ActiveRecord::Base
transition [:new] => :inbound
end
end
-
+
def to_s
- name
+ "#{self.remote_station_id}-#{self.created_at}-#{self.id}".gsub(/[^a-zA-Z0-9]/,'')
end
-
+
def render_thumbnails
- directory = "/tmp/GS-#{GsParameter.get('GEMEINSCHAFT_VERSION')}/fax_thumbnails/#{self.id}"
- system('mkdir -p ' + directory)
- system("cd #{directory} && convert #{Rails.root.to_s}/public#{self.document.to_s}[0-100] -colorspace Gray PNG:'fax_page.png'")
- number_of_thumbnails = Dir["#{directory}/fax_page-*.png"].count
- (0..(number_of_thumbnails-1)).each do |i|
+ self.delay.create_thumbnails_and_save_them
+ end
+
+ def create_thumbnails_and_save_them
+ tmp_dir = "/tmp/fax_convertions/#{self.id}"
+ FileUtils.mkdir_p tmp_dir
+ system("cd #{tmp_dir} && convert #{self.document.path} -colorspace Gray PNG:'fax_page.png'")
+ Dir.glob("#{tmp_dir}/fax_page*.png").each do |thumbnail|
fax_thumbnail = self.fax_thumbnails.build
- fax_thumbnail.thumbnail = File.open("#{directory}/fax_page-#{i}.png")
- fax_thumbnail.save!
+ fax_thumbnail.thumbnail = File.open(thumbnail)
+ fax_thumbnail.save
end
- system("rm -rf #{directory}")
- self.update_attributes(:document_total_pages => number_of_thumbnails) if self.document_total_pages.nil?
+ FileUtils.rm_rf tmp_dir
end
private
@@ -71,12 +73,12 @@ class FaxDocument < ActiveRecord::Base
page_size_a4 = '595 842'
page_size_command = "<< /Policies << /PageSize 3 >> /InputAttributes currentpagedevice /InputAttributes get dup { pop 1 index exch undef } forall dup 0 << /PageSize [ #{page_size_a4} ] >> put >> setpagedevice"
directory = "/tmp/GS-#{GsParameter.get('GEMEINSCHAFT_VERSION')}/faxes/#{self.id}"
- system('mkdir -p ' + directory)
+ FileUtils.mkdir_p directory
tiff_file_name = File.basename(self.document.to_s.downcase, ".pdf") + '.tiff'
system "cd #{directory} && gs -q -r#{self.fax_resolution.resolution_value} -dNOPAUSE -dBATCH -dSAFER -sDEVICE=tiffg3 -sOutputFile=\"#{tiff_file_name}\" -c \"#{page_size_command}\" -- \"#{Rails.root.to_s}/public#{self.document.to_s}\""
self.tiff = File.open("#{directory}/#{tiff_file_name}")
self.save
- system("rm -rf #{directory}")
+ FileUtils.rm_rf directory
end
end
diff --git a/app/models/intruder.rb b/app/models/intruder.rb
index db14bf8..249fffc 100644
--- a/app/models/intruder.rb
+++ b/app/models/intruder.rb
@@ -17,11 +17,14 @@ class Intruder < ActiveRecord::Base
before_validation :set_key_if_empty
+ def to_s
+ key
+ end
- def whois
- if ! self.contact_ip.blank?
+ def whois(ip_address = self.contact_ip)
+ if ! ip_address.blank?
begin
- return Whois.whois(self.contact_ip)
+ return Whois.whois(ip_address).to_s.gsub(/[^\u{0000}-\u{007F}]/, '')
rescue
return nil
end
diff --git a/app/models/parking_stall.rb b/app/models/parking_stall.rb
new file mode 100644
index 0000000..6af1fcd
--- /dev/null
+++ b/app/models/parking_stall.rb
@@ -0,0 +1,17 @@
+class ParkingStall < ActiveRecord::Base
+ attr_accessible :name, :lot, :parking_stallable_id, :parking_stallable_type, :comment
+
+ belongs_to :parking_stallable, :polymorphic => true, :touch => true
+
+ validates :name,
+ :presence => true,
+ :uniqueness => true
+
+ validates :lot,
+ :presence => true
+
+ def to_s
+ name.to_s
+ end
+
+end
diff --git a/app/models/sim_card.rb b/app/models/sim_card.rb
new file mode 100644
index 0000000..2bf7304
--- /dev/null
+++ b/app/models/sim_card.rb
@@ -0,0 +1,63 @@
+class SimCard < ActiveRecord::Base
+ attr_accessible :auto_order_card, :sip_account_id, :auth_key, :sim_number
+
+ # Validations
+ #
+ validates :sim_card_provider_id,
+ :presence => true
+
+ belongs_to :sim_card_provider, :touch => true
+
+ validates :sim_card_provider,
+ :presence => true
+
+ validates :sip_account_id,
+ :presence => true
+
+ belongs_to :sip_account
+
+ validates :sip_account,
+ :presence => true
+
+ validates :sim_number,
+ :presence => true
+
+ after_initialize :set_defaults
+
+ before_validation :upcase_some_values
+ after_create :active_sim_card
+
+ def to_s
+ self.sim_number.to_s
+ end
+
+ private
+ def set_defaults
+ self.state ||= 'not activated'
+ end
+
+ def upcase_some_values
+ self.sim_number = self.sim_number.to_s.upcase
+ end
+
+ def active_sim_card
+ require 'open-uri'
+
+ url = "#{self.sim_card_provider.api_server_url}/app/api/main?cmd=order&ref=#{self.sim_number}&s=#{self.sim_card_provider.sip_server}&u=#{self.sip_account.auth_name}&p=#{self.sip_account.password}&ordercard=0&apiuser=#{self.sim_card_provider.api_username}&apipass=#{self.sim_card_provider.api_password}"
+
+ open(url, "User-Agent" => "Ruby/#{RUBY_VERSION}",
+ "From" => "admin@localhost",
+ "Referer" => "http://amooma.com/gemeinschaft/gs5") { |f|
+ # Save the response body
+ @response = f.read
+ }
+
+ if @response.class == String && @response.split(/;/).first == 'OK'
+ self.state = 'activated'
+ self.auth_key = @response.split(/;/).last.chomp.split(/=/).last
+ self.save
+ end
+
+ end
+
+end
diff --git a/app/models/sim_card_provider.rb b/app/models/sim_card_provider.rb
new file mode 100644
index 0000000..854c61a
--- /dev/null
+++ b/app/models/sim_card_provider.rb
@@ -0,0 +1,28 @@
+class SimCardProvider < ActiveRecord::Base
+ attr_accessible :name, :homepage_url, :docu_url, :api_server_url, :api_username, :api_password, :ref, :sip_server, :include_order_card_function
+
+ # Validations
+ #
+ validates :name,
+ :presence => true,
+ :uniqueness => true
+
+ validates :api_username,
+ :presence => true
+
+ validates :api_password,
+ :presence => true
+
+ validates :api_server_url,
+ :presence => true
+
+ validates :sip_server,
+ :presence => true
+
+ has_many :sim_cards, :dependent => :destroy
+
+ def to_s
+ name.to_s
+ end
+
+end
diff --git a/app/models/sip_account.rb b/app/models/sip_account.rb
index 9ba1f8b..7df8e3b 100644
--- a/app/models/sip_account.rb
+++ b/app/models/sip_account.rb
@@ -6,7 +6,7 @@ class SipAccount < ActiveRecord::Base
attr_accessible :auth_name, :caller_name, :password, :voicemail_pin,
:tenant_id, :call_waiting, :clir, :clip_no_screening,
:clip, :description, :callforward_rules_act_per_sip_account,
- :hotdeskable, :gs_node_id
+ :hotdeskable, :gs_node_id, :language_code
# Associations:
#
@@ -31,6 +31,8 @@ class SipAccount < ActiveRecord::Base
belongs_to :gs_node
+ belongs_to :language, :foreign_key => 'language_code', :primary_key => 'code'
+
# Delegations:
#
delegate :host, :to => :sip_domain, :allow_nil => true
diff --git a/app/models/softkey.rb b/app/models/softkey.rb
index 83c88ab..4b758e0 100644
--- a/app/models/softkey.rb
+++ b/app/models/softkey.rb
@@ -48,14 +48,14 @@ class Softkey < ActiveRecord::Base
end
def to_s
- if (['call_forwarding'].include?(self.softkey_function.name))
- "#{self.softkeyable}"
- else
+ if self.softkeyable.blank?
if ['log_out', 'log_in'].include?(self.softkey_function.name)
I18n.t("softkeys.functions.#{self.softkey_function.name}")
else
- "#{self.softkey_function.name} : #{self.number.to_s}"
+ "#{self.softkey_function.name} : #{self.number.to_s}"
end
+ else
+ "#{self.softkeyable}"
end
end
diff --git a/app/models/tenant.rb b/app/models/tenant.rb
index 419ac3a..0622f52 100644
--- a/app/models/tenant.rb
+++ b/app/models/tenant.rb
@@ -39,6 +39,8 @@ class Tenant < ActiveRecord::Base
has_many :automatic_call_distributors, :as => :automatic_call_distributorable, :dependent => :destroy
has_many :acd_agents, :through => :automatic_call_distributors
+ has_many :parking_stalls, :as => :parking_stallable, :dependent => :destroy
+
# Phone numbers of the tenant.
#
has_many :phone_number_ranges_phone_numbers, :through => :phone_number_ranges, :source => :phone_numbers, :readonly => true
diff --git a/app/models/user.rb b/app/models/user.rb
index afb3f04..6c67351 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -87,6 +87,8 @@ class User < ActiveRecord::Base
validate :current_tenant_is_included_in_tenants, :if => Proc.new{ |user| user.current_tenant_id }
belongs_to :gs_node
+
+ has_many :parking_stalls, :as => :parking_stallable, :dependent => :destroy
# Avatar like photo
mount_uploader :image, ImageUploader
@@ -148,6 +150,10 @@ class User < ActiveRecord::Base
self.user_groups.include?(UserGroup.find(2))
end
+ def sim_cards
+ SimCard.where(:sip_account_id => self.sip_account_ids)
+ end
+
private
def hash_new_pin
diff --git a/app/uploaders/thumbnail_uploader.rb b/app/uploaders/thumbnail_uploader.rb
index a401a91..4b4cc09 100644
--- a/app/uploaders/thumbnail_uploader.rb
+++ b/app/uploaders/thumbnail_uploader.rb
@@ -34,17 +34,17 @@ class ThumbnailUploader < CarrierWave::Uploader::Base
process :resize_to_limit => [75, 75]
end
- version :thumb do
- process :resize_to_limit => [150, 150]
- end
+ # version :thumb do
+ # process :resize_to_limit => [150, 150]
+ # end
- version :medium do
- process :resize_to_limit => [400, 400]
- end
+ # version :medium do
+ # process :resize_to_limit => [400, 400]
+ # end
- version :big do
- process :resize_to_limit => [800, 800]
- end
+ # version :big do
+ # process :resize_to_limit => [800, 800]
+ # end
# Add a white list of extensions which are allowed to be uploaded.
diff --git a/app/views/access_authorizations/_form.html.haml b/app/views/access_authorizations/_form.html.haml
index fa417d9..fba4297 100644
--- a/app/views/access_authorizations/_form.html.haml
+++ b/app/views/access_authorizations/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('access_authorizations.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('access_authorizations.form.submit')
diff --git a/app/views/acd_agents/_form.html.haml b/app/views/acd_agents/_form.html.haml
index 3b78bac..df1c2ef 100644
--- a/app/views/acd_agents/_form.html.haml
+++ b/app/views/acd_agents/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('acd_agents.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('acd_agents.form.submit')
diff --git a/app/views/addresses/_form.html.haml b/app/views/addresses/_form.html.haml
index eff9930..4c58009 100644
--- a/app/views/addresses/_form.html.haml
+++ b/app/views/addresses/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('addresses.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('addresses.form.submit')
diff --git a/app/views/automatic_call_distributors/_form.html.haml b/app/views/automatic_call_distributors/_form.html.haml
index fcf133c..d4cf97c 100644
--- a/app/views/automatic_call_distributors/_form.html.haml
+++ b/app/views/automatic_call_distributors/_form.html.haml
@@ -4,5 +4,5 @@
= render "form_core", :f => f, :join_on => @join_on, :leave_on => @leave_on, :strategies => @strategies
- .actions
- = f.button :submit, conditional_t('automatic_call_distributors.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('automatic_call_distributors.form.submit')
diff --git a/app/views/backup_jobs/_form.html.haml b/app/views/backup_jobs/_form.html.haml
index e0adceb..41d0dc8 100644
--- a/app/views/backup_jobs/_form.html.haml
+++ b/app/views/backup_jobs/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('backup_jobs.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('backup_jobs.form.submit')
diff --git a/app/views/call_forwards/_form.html.haml b/app/views/call_forwards/_form.html.haml
index 7310af3..58ffd78 100644
--- a/app/views/call_forwards/_form.html.haml
+++ b/app/views/call_forwards/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('call_forwards.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('call_forwards.form.submit')
diff --git a/app/views/call_routes/_form.html.haml b/app/views/call_routes/_form.html.haml
index 1415852..0a96060 100644
--- a/app/views/call_routes/_form.html.haml
+++ b/app/views/call_routes/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('call_routes.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('call_routes.form.submit')
diff --git a/app/views/callthroughs/_form.html.haml b/app/views/callthroughs/_form.html.haml
index 99f92d0..870d3f0 100644
--- a/app/views/callthroughs/_form.html.haml
+++ b/app/views/callthroughs/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
+ .form-actions
= f.button :submit, conditional_t('callthroughs.form.submit')
diff --git a/app/views/conference_invitees/_form.html.haml b/app/views/conference_invitees/_form.html.haml
index 400580d..6ec987b 100644
--- a/app/views/conference_invitees/_form.html.haml
+++ b/app/views/conference_invitees/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('conference_invitees.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('conference_invitees.form.submit')
diff --git a/app/views/conferences/_form.html.haml b/app/views/conferences/_form.html.haml
index 4bee1a4..0a88a00 100644
--- a/app/views/conferences/_form.html.haml
+++ b/app/views/conferences/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('conferences.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('conferences.form.submit')
diff --git a/app/views/config_snom/show.xml.haml b/app/views/config_snom/show.xml.haml
index 33204dc..3d0edf1 100644
--- a/app/views/config_snom/show.xml.haml
+++ b/app/views/config_snom/show.xml.haml
@@ -90,6 +90,23 @@
%backlight_idle{:perm => 'RW'}= '0'
%dim_timer{:perm => 'RW'}= '300'
+ / LED
+ %led_on{:perm => 'RW'}= 'ON BUSY IN_A_CALL CALLING IN_A_MEETING URGENT_INTERRUPTIONS_ONLY HOLDING DND ACTIVE INACTIVE BE_RIGHT_BACK AWAY UNAVAILABLE AVAILABLE PhoneHasCall CurrentIdentityHasVoiceMessages PhoneHasVoiceMessages'
+ %led_blink_slow{:perm => 'RW'}= 'PARKED HOLDING_BOSSADMIN Wrap-Up'
+ %led_blink_medium{:perm => 'RW'}= ''
+ %led_blink_fast{:perm => 'RW'}= 'RINGING PhoneHasCallInStateRinging'
+ %led_blink_short_off{:perm => 'RW'}= 'PhoneHasMissedCalls'
+ %led_red{:perm => 'RW'}= 'BUSY IN_A_CALL CALLING IN_A_MEETING URGENT_INTERRUPTIONS_ONLY HOLDING DND'
+ %led_green{:perm => 'RW'}= 'Wrap-Up'
+ %led_orange{:perm => 'RW'}= 'AWAY INACTIVE BE_RIGHT_BACK INACTIVE'
+ %led_blue{:perm => 'RW'}= ''
+ %led_red_green{:perm => 'RW'}= ''
+ %led_red_orange{:perm => 'RW'}= ''
+ %led_green_orange{:perm => 'RW'}= ''
+ %led_call_indicator_usage{:perm => 'RW'}= 'PhoneHasCallInStateRinging PhoneHasCall PhoneHasMissedCalls'
+ %led_message_usage{:perm => 'RW'}= 'CurrentIdentityHasVoiceMessages PhoneHasVoiceMessages'
+
+
- if @phone.phone_model.name == 'Snom 870'
/ Snom 870 idle icons
%idle_icon_01{:perm => 'RW'}= '9'
@@ -165,9 +182,9 @@
- if softkey[:subscription]
%subscription{:type => 'dialog', :to => softkey[:subscription][:to], :for => softkey[:subscription][:for]}
%NotifyParsingRules{:type => 'applies'}
- %level1{:translates_to => 'OK'}= "/dialog-info[@entity=\"sip:#{softkey[:subscription][:to]}\"]"
+ %level1{:translates_to => 'OK'}= "/dialog-info[@entity=\"#{softkey[:subscription][:to]}\"]"
%NotifyParsingRules{:type => 'state'}
- %level1{:translates_to => 'available'}= '/dialog-info/dialog/state[.="terminated"]'
+ %level1{:translates_to => 'unknown'}= '/dialog-info/dialog/state[.="terminated"]'
%level2{:translates_to => 'ringing'}= '/dialog-info/dialog/state[.="early"]'
%level3{:translates_to => 'active'}= '/dialog-info/dialog/state[.="confirmed"]'
%level4{:fetch_content => 'true'}= '/dialog-info/dialog/state'
@@ -176,7 +193,9 @@
%action
- softkey[:actions].each do |action|
- if action[:type] == :url
- %url{:target => action[:target], :when => action[:when]}
+ %url{:target => action[:target], :when => action[:when], :states => action[:states]}
+ - elsif action[:type] == :dial
+ %dial{:target => action[:target], :when => action[:when], :states => action[:states], :request_uri => '$(remote_uri)'}
%uploads
- if @state_settings_url
diff --git a/app/views/fax_accounts/_form.html.haml b/app/views/fax_accounts/_form.html.haml
index 0a5a4c0..de66709 100644
--- a/app/views/fax_accounts/_form.html.haml
+++ b/app/views/fax_accounts/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('fax_accounts.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('fax_accounts.form.submit')
diff --git a/app/views/fax_documents/_form.html.haml b/app/views/fax_documents/_form.html.haml
index e240371..1b1c3be 100644
--- a/app/views/fax_documents/_form.html.haml
+++ b/app/views/fax_documents/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('fax_documents.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('fax_documents.form.submit')
diff --git a/app/views/fax_documents/_index_core.html.haml b/app/views/fax_documents/_index_core.html.haml
index 8559f1c..5355521 100644
--- a/app/views/fax_documents/_index_core.html.haml
+++ b/app/views/fax_documents/_index_core.html.haml
@@ -2,25 +2,34 @@
%thead
%tr
%th= t('fax_documents.index.sent_at')
- %th= t('fax_documents.index.state')
- %th= t('fax_documents.index.result')
%th
= t('fax_documents.index.phone_number')
%br
= t('fax_documents.index.remote_station_id')
%th= t('fax_documents.index.thumbnails')
+ %th
+ %th
%tbody
- for fax_document in fax_documents
- %tr{:id => "fax_document_#{fax_document.id}"}
- - if fax_document.sent_at
- %td
- = "#{fax_document.inbound ? '&#8680;' : '&#8678;'}".html_safe
- = l fax_document.sent_at, :format => :short
- %td= t("fax_documents.states.#{fax_document.state}")
- %td= t("fax_documents.result_codes.code_#{fax_document.result_code}") + " (#{fax_document.result_code})"
+ - case fax_document.state
+ - when 'unsuccessful'
+ - current_status = 'error'
+ - when 'sending'
+ - current_status = 'success'
+ - when 'queued_for_sending'
+ - current_status = 'warning'
- else
- %td{ :colspan => 3 }= t("fax_documents.states.#{fax_document.state}")
+ - current_status = ''
+
+ %tr{:class => current_status}
+ %td
+ - case fax_document.state
+ - when 'successful'
+ = "#{fax_document.inbound ? '&#8680;' : '&#8678;'}".html_safe
+ = l fax_document.sent_at, :format => :short
+ - else
+ = t("fax_documents.states.#{fax_document.state}")
%td
- if fax_document.inbound
= "#{fax_document.caller_id_number} #{fax_document.caller_id_name}"
@@ -28,9 +37,21 @@
= fax_document.destination_phone_number
%br
= fax_document.remote_station_id
- %td
- - fax_document.fax_thumbnails.limit(5).each do |fax_thumbnail|
- =image_tag fax_thumbnail.thumbnail_url(:mini), :class => 'FaxThumbnail', :alt => "Thumbnail of page \##{fax_thumbnail.position}"
- - if can?(:show, fax_document) && !fax_document.document.blank? && File.readable?(fax_document.document.path)
- = link_to t('fax_documents.index.actions.download'), fax_account_fax_document_path(@fax_account, fax_document, :format => :pdf), :method => :get
+ %td
+ %ul.thumbnails
+ - fax_document.fax_thumbnails.limit(3).each do |fax_thumbnail|
+ %li.span1
+ %div.thumbnail
+ %a.thumbnail{:href => fax_thumbnail.thumbnail.url}
+ =image_tag(fax_thumbnail.thumbnail.url, :alt => "Page #{fax_thumbnail.position}")
+ %p
+ %small
+ = "#{fax_thumbnail.position}/#{fax_document.fax_thumbnails.count}"
+
+ - if fax_document.document?
+ %p
+ %a{:href => fax_document.document.url}
+ %i{:class => 'icon-download'}
+ = t("fax_documents.index.actions.download_pdf") + " (#{number_to_human_size(fax_document.document.size, :precision => 2)})"
+
=render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => fax_document.fax_account, :child => fax_document}
diff --git a/app/views/fax_documents/show.html.haml b/app/views/fax_documents/show.html.haml
index 41d3bff..9925c2f 100644
--- a/app/views/fax_documents/show.html.haml
+++ b/app/views/fax_documents/show.html.haml
@@ -1,36 +1,67 @@
- content_for :title, t("fax_documents.show.page_title")
-- child = @fax_document
-- parent = @fax_document.fax_account
-%p
- %strong= t('fax_documents.index.state') + ":"
- = t("fax_documents.states.#{@fax_document.state}")
+.row
+ .span12
+ %table.table.table-striped
+ - case @fax_document.state
+ - when 'unsuccessful'
+ - current_status = 'error'
+ - when 'sending'
+ - current_status = 'success'
+ - when 'queued_for_sending'
+ - current_status = 'warning'
+ - else
+ - current_status = ''
-%p
- %strong= t('fax_documents.index.result_code') + ":"
- = @fax_document.result_code
+ %tr{:class => current_status}
+ %td
+ %strong= t('fax_documents.index.state') + ":"
+ %td
+ = t("fax_documents.states.#{@fax_document.state}")
+ %tr
+ %td
+ %strong= t('fax_documents.index.result_code') + ":"
+ %td
+ = @fax_document.result_code
+ %tr
+ %td
+ %strong= t('fax_documents.index.result_text') + ":"
+ %td
+ = t("fax_documents.result_codes.code_#{@fax_document.result_code}")
+ %tr
+ %td
+ %strong= t('fax_documents.show.document_transferred_pages') + ":"
+ %td
+ = @fax_document.document_transferred_pages
+ %tr
+ %td
+ %strong= t('fax_documents.show.remote_station_id') + ":"
+ %td
+ = @fax_document.remote_station_id
+ %tr
+ %td
+ %strong= t('fax_documents.show.fax_resolution') + ":"
+ %td
+ = @fax_document.fax_resolution
-%p
- %strong= t('fax_documents.index.result_text') + ":"
- = t("fax_documents.result_codes.code_#{@fax_document.result_code}")
+ - if @fax_document.document?
+ %p
+ %a{:href => @fax_document.document.url}
+ %i{:class => 'icon-download'}
+ = t("fax_documents.index.actions.download_pdf") + " (#{number_to_human_size(@fax_document.document.size, :precision => 2)})"
-%p
- %strong= t('fax_documents.show.document_transferred_pages') + ":"
- = @fax_document.document_transferred_pages
-%p
- %strong= t('fax_documents.show.remote_station_id') + ":"
- = @fax_document.remote_station_id
-%p
- %strong= t('fax_documents.show.fax_resolution') + ":"
- = @fax_document.fax_resolution
+.row
+ .span12
+ - if @fax_document.fax_thumbnails.any?
+ %ul.thumbnails
+ - @fax_document.fax_thumbnails.limit(50).each do |fax_thumbnail|
+ %li.span4
+ %div.thumbnail
+ %a.thumbnail{:href => fax_thumbnail.thumbnail.url}
+ =image_tag(fax_thumbnail.thumbnail.url, :alt => "Page #{fax_thumbnail.position}")
+ %p
+ = "#{fax_thumbnail.position}/#{@fax_document.fax_thumbnails.count}"
-- if @fax_document.fax_thumbnails.count > 0
- - i = @fax_document.fax_thumbnails.count
- - i = 10 if i > 10
- - @fax_document.fax_thumbnails.limit(i).each do |fax_thumbnail|
- =image_tag fax_thumbnail.thumbnail_url(:medium), :class => 'FaxThumbnail', :alt => "Thumbnail of page \##{fax_thumbnail.position}"
-
-- if @fax_document.document.path
- = link_to t("fax_documents.index.actions.download_pdf"), "#{request.protocol}#{request.host_with_port}#{request.fullpath.split("?")[0]}.pdf"
-
-= render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @fax_document.fax_account, :child => @fax_document }
+.row
+ .span12
+ = render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @fax_document.fax_account, :child => @fax_document }
diff --git a/app/views/gateway_parameters/_form.html.haml b/app/views/gateway_parameters/_form.html.haml
index 79342d2..bb98ce0 100644
--- a/app/views/gateway_parameters/_form.html.haml
+++ b/app/views/gateway_parameters/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('gateway_parameters.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gateway_parameters.form.submit')
diff --git a/app/views/gateway_settings/_form.html.haml b/app/views/gateway_settings/_form.html.haml
index af26d2a..ad4b34b 100644
--- a/app/views/gateway_settings/_form.html.haml
+++ b/app/views/gateway_settings/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
+ .form-actions
= f.button :submit, conditional_t('gateway_settings.form.submit')
diff --git a/app/views/gateways/_form.html.haml b/app/views/gateways/_form.html.haml
index 5f6d5dd..705d417 100644
--- a/app/views/gateways/_form.html.haml
+++ b/app/views/gateways/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('gateways.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gateways.form.submit')
diff --git a/app/views/gemeinschaft_setups/new.de.html.haml b/app/views/gemeinschaft_setups/new.de.html.haml
index f977291..3c215d1 100644
--- a/app/views/gemeinschaft_setups/new.de.html.haml
+++ b/app/views/gemeinschaft_setups/new.de.html.haml
@@ -26,5 +26,5 @@
= f.simple_fields_for :sip_domain, @sip_domain do |s|
= render "sip_domains/form_core", :f => s
- .actions
- = f.button :submit, conditional_t('gemeinschaft_setups.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gemeinschaft_setups.form.submit')
diff --git a/app/views/gemeinschaft_setups/new.html.haml b/app/views/gemeinschaft_setups/new.html.haml
index 44d9c5b..deac19d 100644
--- a/app/views/gemeinschaft_setups/new.html.haml
+++ b/app/views/gemeinschaft_setups/new.html.haml
@@ -26,5 +26,5 @@
= f.simple_fields_for :sip_domain, @sip_domain do |s|
= render "sip_domains/form_core", :f => s
- .actions
- = f.button :submit, conditional_t('gemeinschaft_setups.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gemeinschaft_setups.form.submit')
diff --git a/app/views/gs_cluster_sync_log_entries/_form.html.haml b/app/views/gs_cluster_sync_log_entries/_form.html.haml
index 2c47d88..28f1848 100644
--- a/app/views/gs_cluster_sync_log_entries/_form.html.haml
+++ b/app/views/gs_cluster_sync_log_entries/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('gs_cluster_sync_log_entries.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gs_cluster_sync_log_entries.form.submit')
diff --git a/app/views/gs_nodes/_form.html.haml b/app/views/gs_nodes/_form.html.haml
index 28a4e5d..5ff6d40 100644
--- a/app/views/gs_nodes/_form.html.haml
+++ b/app/views/gs_nodes/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('gs_nodes.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gs_nodes.form.submit')
diff --git a/app/views/gs_parameters/_form.html.haml b/app/views/gs_parameters/_form.html.haml
index ea69e95..eb578ff 100644
--- a/app/views/gs_parameters/_form.html.haml
+++ b/app/views/gs_parameters/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('gs_parameters.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gs_parameters.form.submit')
diff --git a/app/views/gui_functions/_form.html.haml b/app/views/gui_functions/_form.html.haml
index 0b2a201..b1b68f9 100644
--- a/app/views/gui_functions/_form.html.haml
+++ b/app/views/gui_functions/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('gui_functions.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('gui_functions.form.submit')
diff --git a/app/views/hunt_group_members/_form.html.haml b/app/views/hunt_group_members/_form.html.haml
index 1ab7850..7cdef92 100644
--- a/app/views/hunt_group_members/_form.html.haml
+++ b/app/views/hunt_group_members/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('hunt_group_members.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('hunt_group_members.form.submit')
diff --git a/app/views/hunt_groups/_form.html.haml b/app/views/hunt_groups/_form.html.haml
index bc2663b..86cd433 100644
--- a/app/views/hunt_groups/_form.html.haml
+++ b/app/views/hunt_groups/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('hunt_groups.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('hunt_groups.form.submit')
diff --git a/app/views/intruders/_form.html.haml b/app/views/intruders/_form.html.haml
index 26aab1c..02647f0 100644
--- a/app/views/intruders/_form.html.haml
+++ b/app/views/intruders/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('intruders.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('intruders.form.submit')
diff --git a/app/views/intruders/_index_core.html.haml b/app/views/intruders/_index_core.html.haml
index 0070c4d..31bbd11 100644
--- a/app/views/intruders/_index_core.html.haml
+++ b/app/views/intruders/_index_core.html.haml
@@ -1,37 +1,38 @@
%table.table.table-striped
%tr
- %th= t('intruders.index.list_type')
- %th= t('intruders.index.key')
+ %th
+ %th= t('intruders.index.contact_ip')
+ %th= t('intruders.index.contact_port')
%th= t('intruders.index.points')
%th= t('intruders.index.bans')
%th= t('intruders.index.ban_last')
%th= t('intruders.index.ban_end')
- %th= t('intruders.index.contact_ip')
- %th= t('intruders.index.contact_port')
%th= t('intruders.index.contact_count')
%th= t('intruders.index.contact_last')
%th= t('intruders.index.contacts_per_second')
- %th= t('intruders.index.contacts_per_second_max')
%th= t('intruders.index.user_agent')
%th= t('intruders.index.to_user')
- %th= t('intruders.index.comment')
- for intruder in intruders
%tr
- %td= intruder.list_type
- %td= intruder.key
- %td= intruder.points
- %td= intruder.bans
- %td= intruder.ban_last
- %td= intruder.ban_end
+ %td= intruder.list_type.chars.first
%td= intruder.contact_ip
%td= intruder.contact_port
+ %td= intruder.points
+ %td= intruder.bans
+ %td
+ - if intruder.ban_last
+ = l intruder.ban_last, :format => :short
+ %td
+ - if intruder.ban_end
+ = l intruder.ban_end, :format => :short
+
%td= intruder.contact_count
- %td= intruder.contact_last
+ %td
+ - if intruder.contact_last
+ = l intruder.contact_last, :format => :short
%td= intruder.contacts_per_second
- %td= intruder.contacts_per_second_max
%td= intruder.user_agent
%td= intruder.to_user
- %td= intruder.comment
- =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => intruder} \ No newline at end of file
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => intruder}
diff --git a/app/views/intruders/show.html.haml b/app/views/intruders/show.html.haml
index 4941e89..df50872 100644
--- a/app/views/intruders/show.html.haml
+++ b/app/views/intruders/show.html.haml
@@ -46,7 +46,13 @@
%strong= t('intruders.show.comment') + ":"
= @intruder.comment
-%p
- %pre= @intruder.whois
-
= render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @intruder }
+
+- if ! @whois.blank?
+ %p
+ %pre= @whois
+
+- elsif ! @intruder.contact_ip.blank? && Object.const_defined?('Whois')
+ %a.btn.btn-small.btn-success{ :href => intruder_path(@intruder, :whois => @intruder.contact_ip) }
+ %i.icon-info-sign.icon-white
+ = 'Whois'
diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml
index 7084090..8e09859 100644
--- a/app/views/layouts/_navbar.html.haml
+++ b/app/views/layouts/_navbar.html.haml
@@ -28,9 +28,9 @@
- if current_user
%ul.nav.pull-right
- %li
+ %li.display
- if current_user.image?
- =image_tag(current_user.image_url(:mini).to_s, :class => 'img-rounded')
+ = image_tag(current_user.image_url(:mini).to_s, :class => 'img-rounded')
- else
- if current_user.male?
= image_tag 'icons/user-male-16x.png', :class => 'img-rounded'
@@ -39,15 +39,15 @@
- if current_page?(tenant_user_path(current_user.current_tenant, current_user))
%li.active
- %a.navbar-link{:href => tenant_user_path(current_user.current_tenant, current_user)}
+ %a.navbar-link{:href => tenant_user_path(current_user.current_tenant, current_user)}
= current_user
- else
%li
- %a.navbar-link{:href => tenant_user_path(current_user.current_tenant, current_user)}
+ %a.navbar-link{:href => tenant_user_path(current_user.current_tenant, current_user)}
= current_user
- if single_sign_on_system? == false
%li
- %a.navbar-link{:href => log_out_path}
+ %a.navbar-link{:href => log_out_path}
%i.icon-off.icon-white
-
+
diff --git a/app/views/manufacturers/_form.html.haml b/app/views/manufacturers/_form.html.haml
index d89c603..ce4eea4 100644
--- a/app/views/manufacturers/_form.html.haml
+++ b/app/views/manufacturers/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('manufacturers.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('manufacturers.form.submit')
diff --git a/app/views/parking_stalls/_form.html.haml b/app/views/parking_stalls/_form.html.haml
new file mode 100644
index 0000000..f72c190
--- /dev/null
+++ b/app/views/parking_stalls/_form.html.haml
@@ -0,0 +1,7 @@
+= simple_form_for([@parent, @parking_stall]) do |f|
+ = f.error_notification
+
+ = render "form_core", :f => f
+
+ .form-actions
+ = f.button :submit, conditional_t('parking_stalls.form.submit')
diff --git a/app/views/parking_stalls/_form_core.html.haml b/app/views/parking_stalls/_form_core.html.haml
new file mode 100644
index 0000000..add5c53
--- /dev/null
+++ b/app/views/parking_stalls/_form_core.html.haml
@@ -0,0 +1,4 @@
+.inputs
+ = f.input :name, :label => t('parking_stalls.form.name.label'), :hint => conditional_hint('parking_stalls.form.name.hint')
+ = f.input :lot, :label => t('parking_stalls.form.lot.label'), :hint => conditional_hint('parking_stalls.form.lot.hint')
+ = f.input :comment, :label => t('parking_stalls.form.comment.label'), :hint => conditional_hint('parking_stalls.form.comment.hint')
diff --git a/app/views/parking_stalls/_index_core.html.haml b/app/views/parking_stalls/_index_core.html.haml
new file mode 100644
index 0000000..9f25217
--- /dev/null
+++ b/app/views/parking_stalls/_index_core.html.haml
@@ -0,0 +1,13 @@
+%table.table.table-striped
+ %tr
+ %th= t('parking_stalls.index.name')
+ %th= t('parking_stalls.index.lot')
+ %th= t('parking_stalls.index.comment')
+
+
+ - for parking_stall in parking_stalls
+ %tr
+ %td= parking_stall.name
+ %td= parking_stall.lot
+ %td= parking_stall.comment
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => parking_stall.parking_stallable, :child => parking_stall} \ No newline at end of file
diff --git a/app/views/parking_stalls/edit.html.haml b/app/views/parking_stalls/edit.html.haml
new file mode 100644
index 0000000..ec5d97f
--- /dev/null
+++ b/app/views/parking_stalls/edit.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("parking_stalls.edit.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/parking_stalls/index.html.haml b/app/views/parking_stalls/index.html.haml
new file mode 100644
index 0000000..7f82bbe
--- /dev/null
+++ b/app/views/parking_stalls/index.html.haml
@@ -0,0 +1,6 @@
+- content_for :title, t("parking_stalls.index.page_title")
+
+- if @parking_stalls && @parking_stalls.count > 0
+ = render "index_core", :parking_stalls => @parking_stalls
+
+= render :partial => 'shared/create_link', :locals => {:parent => @parent, :child_class => ParkingStall} \ No newline at end of file
diff --git a/app/views/parking_stalls/new.html.haml b/app/views/parking_stalls/new.html.haml
new file mode 100644
index 0000000..c068e52
--- /dev/null
+++ b/app/views/parking_stalls/new.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("parking_stalls.new.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/parking_stalls/show.html.haml b/app/views/parking_stalls/show.html.haml
new file mode 100644
index 0000000..583a0ee
--- /dev/null
+++ b/app/views/parking_stalls/show.html.haml
@@ -0,0 +1,13 @@
+- content_for :title, t("parking_stalls.show.page_title")
+
+%p
+ %strong= t('parking_stalls.show.name') + ":"
+ = @parking_stall.name
+%p
+ %strong= t('parking_stalls.show.lot') + ":"
+ = @parking_stall.lot
+%p
+ %strong= t('parking_stalls.show.comment') + ":"
+ = @parking_stall.comment
+
+= render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @parking_stall.parking_stallable, :child => @parking_stall }
diff --git a/app/views/phone_book_entries/_form.html.haml b/app/views/phone_book_entries/_form.html.haml
index c73d10a..b579bf4 100644
--- a/app/views/phone_book_entries/_form.html.haml
+++ b/app/views/phone_book_entries/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('phone_book_entries.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('phone_book_entries.form.submit')
diff --git a/app/views/phone_books/_form.html.haml b/app/views/phone_books/_form.html.haml
index 245426b..df5d060 100644
--- a/app/views/phone_books/_form.html.haml
+++ b/app/views/phone_books/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('phone_books.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('phone_books.form.submit')
diff --git a/app/views/phone_models/_form.html.haml b/app/views/phone_models/_form.html.haml
index 45c176f..2b09f6d 100644
--- a/app/views/phone_models/_form.html.haml
+++ b/app/views/phone_models/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('phone_models.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('phone_models.form.submit')
diff --git a/app/views/phone_number_ranges/_form.html.haml b/app/views/phone_number_ranges/_form.html.haml
index a86d45b..d624619 100644
--- a/app/views/phone_number_ranges/_form.html.haml
+++ b/app/views/phone_number_ranges/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('phone_number_ranges.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('phone_number_ranges.form.submit')
diff --git a/app/views/phone_numbers/_form.html.haml b/app/views/phone_numbers/_form.html.haml
index 2812e21..8ef1e90 100644
--- a/app/views/phone_numbers/_form.html.haml
+++ b/app/views/phone_numbers/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
+ .form-actions
= f.button :submit, conditional_t('phone_numbers.form.submit')
diff --git a/app/views/phone_sip_accounts/_form.html.haml b/app/views/phone_sip_accounts/_form.html.haml
index c2558b8..8b214de 100644
--- a/app/views/phone_sip_accounts/_form.html.haml
+++ b/app/views/phone_sip_accounts/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('phone_sip_accounts.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('phone_sip_accounts.form.submit')
diff --git a/app/views/phones/_form.html.haml b/app/views/phones/_form.html.haml
index 9bfa226..3cb62e6 100644
--- a/app/views/phones/_form.html.haml
+++ b/app/views/phones/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('phones.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('phones.form.submit')
diff --git a/app/views/ringtones/_form.html.haml b/app/views/ringtones/_form.html.haml
index 7dbfcb0..789362f 100644
--- a/app/views/ringtones/_form.html.haml
+++ b/app/views/ringtones/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('ringtones.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('ringtones.form.submit')
diff --git a/app/views/route_elements/_form.html.haml b/app/views/route_elements/_form.html.haml
index 8feacaa..b59be36 100644
--- a/app/views/route_elements/_form.html.haml
+++ b/app/views/route_elements/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('route_elements.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('route_elements.form.submit')
diff --git a/app/views/sessions/new.html.haml b/app/views/sessions/new.html.haml
index f386a5d..75dd3de 100644
--- a/app/views/sessions/new.html.haml
+++ b/app/views/sessions/new.html.haml
@@ -4,5 +4,5 @@
= t.input :login_data, :label => t('sessions.form.email'), :autofocus => true
= t.input :password, :label => t('sessions.form.password'), :required => false
= t.input :reset_password, :label => t('sessions.form.reset_password'), :as => :boolean
- .actions
+ .form-actions
= t.button :submit, :value => 'Login'
diff --git a/app/views/sim_card_providers/_form.html.haml b/app/views/sim_card_providers/_form.html.haml
new file mode 100644
index 0000000..73953e0
--- /dev/null
+++ b/app/views/sim_card_providers/_form.html.haml
@@ -0,0 +1,7 @@
+= simple_form_for(@sim_card_provider) do |f|
+ = f.error_notification
+
+ = render "form_core", :f => f
+
+ .form-actions
+ = f.button :submit, conditional_t('sim_card_providers.form.submit')
diff --git a/app/views/sim_card_providers/_form_core.html.haml b/app/views/sim_card_providers/_form_core.html.haml
new file mode 100644
index 0000000..fc36579
--- /dev/null
+++ b/app/views/sim_card_providers/_form_core.html.haml
@@ -0,0 +1,9 @@
+.inputs
+ = f.input :name, :label => t('sim_card_providers.form.name.label'), :hint => conditional_hint('sim_card_providers.form.name.hint')
+ = f.input :homepage_url, :label => t('sim_card_providers.form.homepage_url.label'), :hint => conditional_hint('sim_card_providers.form.homepage_url.hint')
+ = f.input :docu_url, :label => t('sim_card_providers.form.docu_url.label'), :hint => conditional_hint('sim_card_providers.form.docu_url.hint')
+ = f.input :api_server_url, :label => t('sim_card_providers.form.api_server_url.label'), :hint => conditional_hint('sim_card_providers.form.api_server_url.hint')
+ = f.input :api_username, :label => t('sim_card_providers.form.api_username.label'), :hint => conditional_hint('sim_card_providers.form.api_username.hint')
+ = f.input :api_password, :label => t('sim_card_providers.form.api_password.label'), :hint => conditional_hint('sim_card_providers.form.api_password.hint')
+ = f.input :sip_server, :label => t('sim_card_providers.form.sip_server.label'), :hint => conditional_hint('sim_card_providers.form.sip_server.hint')
+ = f.input :include_order_card_function, :label => t('sim_card_providers.form.include_order_card_function.label'), :hint => conditional_hint('sim_card_providers.form.include_order_card_function.hint')
diff --git a/app/views/sim_card_providers/_index_core.html.haml b/app/views/sim_card_providers/_index_core.html.haml
new file mode 100644
index 0000000..6a24695
--- /dev/null
+++ b/app/views/sim_card_providers/_index_core.html.haml
@@ -0,0 +1,21 @@
+%table.table.table-striped
+ %tr
+ %th= t('sim_card_providers.index.name')
+ %th= t('sim_card_providers.index.api_server_url')
+ %th= t('sim_card_providers.index.api_username')
+ %th= t('sim_card_providers.index.api_password')
+ %th= t('sim_card_providers.index.sip_server')
+ %th
+
+ - for sim_card_provider in sim_card_providers
+ %tr
+ %td
+ - if sim_card_provider.homepage_url.blank?
+ = sim_card_provider.name
+ - else
+ = link_to sim_card_provider.name, sim_card_provider.homepage_url
+ %td= sim_card_provider.api_server_url
+ %td= sim_card_provider.api_username
+ %td= sim_card_provider.api_password
+ %td= sim_card_provider.sip_server
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => sim_card_provider} \ No newline at end of file
diff --git a/app/views/sim_card_providers/edit.html.haml b/app/views/sim_card_providers/edit.html.haml
new file mode 100644
index 0000000..49b1f93
--- /dev/null
+++ b/app/views/sim_card_providers/edit.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("sim_card_providers.edit.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/sim_card_providers/index.html.haml b/app/views/sim_card_providers/index.html.haml
new file mode 100644
index 0000000..2264e53
--- /dev/null
+++ b/app/views/sim_card_providers/index.html.haml
@@ -0,0 +1,6 @@
+- content_for :title, t("sim_card_providers.index.page_title")
+
+- if @sim_card_providers && @sim_card_providers.count > 0
+ = render "index_core", :sim_card_providers => @sim_card_providers
+
+= render :partial => 'shared/create_link', :locals => {:child_class => SimCardProvider} \ No newline at end of file
diff --git a/app/views/sim_card_providers/new.html.haml b/app/views/sim_card_providers/new.html.haml
new file mode 100644
index 0000000..04c0445
--- /dev/null
+++ b/app/views/sim_card_providers/new.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("sim_card_providers.new.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/sim_card_providers/show.html.haml b/app/views/sim_card_providers/show.html.haml
new file mode 100644
index 0000000..37635d9
--- /dev/null
+++ b/app/views/sim_card_providers/show.html.haml
@@ -0,0 +1,72 @@
+- content_for :title, t("sim_card_providers.show.page_title")
+
+.row
+ .span6
+ %table.table.table-striped
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.name') + ":"
+ %td
+ = @sim_card_provider.name
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.homepage_url') + ":"
+ %td
+ = @sim_card_provider.homepage_url
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.docu_url') + ":"
+ %td
+ = @sim_card_provider.docu_url
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.api_server_url') + ":"
+ %td
+ = @sim_card_provider.api_server_url
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.api_username') + ":"
+ %td
+ = @sim_card_provider.api_username
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.api_password') + ":"
+ %td
+ = @sim_card_provider.api_password
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.ref') + ":"
+ %td
+ = @sim_card_provider.ref
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.sip_server') + ":"
+ %td
+ = @sim_card_provider.sip_server
+ %tr
+ %td
+ %strong= t('sim_card_providers.show.include_order_card_function') + ":"
+ %td
+ = @sim_card_provider.include_order_card_function
+
+ = render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @sim_card_provider }
+
+.row
+ .span12
+ %h2= t("sim_cards.index.page_title")
+
+ %table.table.table-striped
+ %tr
+ %th= t('sim_cards.index.sip_account_id')
+ %th= t('sim_cards.index.auth_key')
+ %th= t('sim_cards.index.state')
+ %th
+
+ - for sim_card in @sim_card_provider.sim_cards
+ %tr
+ %td= sim_card.sip_account
+ %td= sim_card.auth_key
+ %td= sim_card.state
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => @sim_card_provider, :child => sim_card}
+
+ = render :partial => 'shared/create_link', :locals => {:parent => @sim_card_provider, :child_class => SimCard} \ No newline at end of file
diff --git a/app/views/sim_cards/_form.html.haml b/app/views/sim_cards/_form.html.haml
new file mode 100644
index 0000000..7d3cfbe
--- /dev/null
+++ b/app/views/sim_cards/_form.html.haml
@@ -0,0 +1,7 @@
+= simple_form_for([@sim_card_provider, @sim_card]) do |f|
+ = f.error_notification
+
+ = render "form_core", :f => f
+
+ .form-actions
+ = f.button :submit, conditional_t('sim_cards.form.submit')
diff --git a/app/views/sim_cards/_form_core.html.haml b/app/views/sim_cards/_form_core.html.haml
new file mode 100644
index 0000000..7223294
--- /dev/null
+++ b/app/views/sim_cards/_form_core.html.haml
@@ -0,0 +1,3 @@
+.inputs
+ = f.input :sim_number, :label => t('sim_cards.form.sim_number.label'), :hint => conditional_hint('sim_cards.form.sim_number.hint'), :autofocus => true
+ = f.association :sip_account, :collection => @available_sip_accounts, :label => t('phone_sip_accounts.form.sip_account_id.label'), :hint => conditional_hint('phone_sip_accounts.form.sip_account_id.hint'), :include_blank => false \ No newline at end of file
diff --git a/app/views/sim_cards/_index_core.html.haml b/app/views/sim_cards/_index_core.html.haml
new file mode 100644
index 0000000..16440ff
--- /dev/null
+++ b/app/views/sim_cards/_index_core.html.haml
@@ -0,0 +1,18 @@
+%table.table.table-striped
+ %tr
+ %th= t('sim_cards.show.sim_number')
+ %th= t('sim_cards.index.sip_account_id')
+ %th= t('sip_accounts.index.phone_numbers')
+ %th= t('sim_cards.index.auth_key')
+ %th= t('sim_cards.index.state')
+ %th
+
+ - for sim_card in sim_cards
+ %tr
+ %td= sim_card.sim_number
+ %td= sim_card.sip_account
+ %td
+ = render 'phone_numbers/listing', :phone_numbers => sim_card.sip_account.phone_numbers.order(:number)
+ %td= sim_card.auth_key
+ %td= sim_card.state
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => sim_card.sim_card_provider, :child => sim_card} \ No newline at end of file
diff --git a/app/views/sim_cards/edit.html.haml b/app/views/sim_cards/edit.html.haml
new file mode 100644
index 0000000..97ee10e
--- /dev/null
+++ b/app/views/sim_cards/edit.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("sim_cards.edit.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/sim_cards/index.html.haml b/app/views/sim_cards/index.html.haml
new file mode 100644
index 0000000..803bd72
--- /dev/null
+++ b/app/views/sim_cards/index.html.haml
@@ -0,0 +1,6 @@
+- content_for :title, t("sim_cards.index.page_title")
+
+- if @sim_cards && @sim_cards.count > 0
+ = render "index_core", :sim_cards => @sim_cards
+
+= render :partial => 'shared/create_link', :locals => {:parent => @parent, :child_class => SimCard} \ No newline at end of file
diff --git a/app/views/sim_cards/new.html.haml b/app/views/sim_cards/new.html.haml
new file mode 100644
index 0000000..1eef168
--- /dev/null
+++ b/app/views/sim_cards/new.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("sim_cards.new.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/sim_cards/show.html.haml b/app/views/sim_cards/show.html.haml
new file mode 100644
index 0000000..4752aab
--- /dev/null
+++ b/app/views/sim_cards/show.html.haml
@@ -0,0 +1,37 @@
+- content_for :title, t("sim_cards.show.page_title")
+
+.row
+ .span6
+ %table.table.table-striped
+ %tr
+ %td
+ %strong= t('sim_cards.show.sim_number') + ":"
+ %td
+ = @sim_card.sim_number
+ %tr
+ %td
+ %strong= t('sim_cards.show.sip_account_id') + ":"
+ %td
+ = @sim_card.sip_account
+ %tr
+ %td
+ %strong= t('sip_accounts.index.phone_numbers')
+ %td
+ = render 'phone_numbers/listing', :phone_numbers => @sim_card.sip_account.phone_numbers.order(:number)
+ %tr
+ %td
+ %strong= t('sim_cards.show.auth_key') + ":"
+ %td
+ = @sim_card.auth_key
+ %tr
+ %td
+ %strong= t('sim_cards.show.state') + ":"
+ %td
+ = @sim_card.state
+ %tr
+ %td
+ %strong= t('sim_cards.show.log') + ":"
+ %td
+ = @sim_card.log
+
+= render :partial => 'shared/show_edit_destroy_part', :locals => {:parent => @parent, :child => @sim_card } \ No newline at end of file
diff --git a/app/views/sip_accounts/_form.html.haml b/app/views/sip_accounts/_form.html.haml
index f209bf4..d40ce10 100644
--- a/app/views/sip_accounts/_form.html.haml
+++ b/app/views/sip_accounts/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('sip_accounts.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('sip_accounts.form.submit')
diff --git a/app/views/sip_accounts/_form_core.html.haml b/app/views/sip_accounts/_form_core.html.haml
index 1b96d27..1a8876a 100644
--- a/app/views/sip_accounts/_form_core.html.haml
+++ b/app/views/sip_accounts/_form_core.html.haml
@@ -15,3 +15,4 @@
= f.input :clip_no_screening, :label => t('sip_accounts.form.clip_no_screening.label'), :hint => conditional_hint('sip_accounts.form.clip_no_screening.hint')
- if CallForward.where(:phone_number_id => @sip_account.phone_number_ids).count == 0 || @sip_account.callforward_rules_act_per_sip_account == true
= f.input :callforward_rules_act_per_sip_account, :label => t('sip_accounts.form.callforward_rules_act_per_sip_account.label'), :hint => conditional_hint('sip_accounts.form.callforward_rules_act_per_sip_account.hint')
+ = f.input :language_code, :collection => Language.all.collect{|l| [l.to_s, l.code]}, :label => t('sip_accounts.form.language_code.label'), :hint => conditional_hint('sip_accounts.form.language_id.hint'), :include_blank => false
diff --git a/app/views/sip_domains/_form.html.haml b/app/views/sip_domains/_form.html.haml
index 2d662af..83ba7ad 100644
--- a/app/views/sip_domains/_form.html.haml
+++ b/app/views/sip_domains/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('sip_domains.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('sip_domains.form.submit')
diff --git a/app/views/softkeys/_form.html.haml b/app/views/softkeys/_form.html.haml
index 5b799b6..c029ead 100644
--- a/app/views/softkeys/_form.html.haml
+++ b/app/views/softkeys/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('softkeys.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('softkeys.form.submit')
diff --git a/app/views/tenants/_admin_area.de.html.haml b/app/views/tenants/_admin_area.de.html.haml
index 2aed4e1..8acc95d 100644
--- a/app/views/tenants/_admin_area.de.html.haml
+++ b/app/views/tenants/_admin_area.de.html.haml
@@ -35,6 +35,9 @@
= succeed '.' do
=link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer)
+ - if GsParameter.get('SIM_CARDS') == true
+ = render :partial => 'tenants/table_of_sim_card_providers'
+
= render :partial => 'call_routes', :locals => {:tenant => tenant}
= render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways}
diff --git a/app/views/tenants/_admin_area.en.html.haml b/app/views/tenants/_admin_area.en.html.haml
index 8e7bfea..c40e3ca 100644
--- a/app/views/tenants/_admin_area.en.html.haml
+++ b/app/views/tenants/_admin_area.en.html.haml
@@ -35,6 +35,9 @@
= succeed '.' do
=link_to link_to Haml::Engine.new("%i.icon-list").render + ' ' + manufacturer, manufacturer_path(manufacturer)
+ - if GsParameter.get('SIM_CARDS') == true
+ = render :partial => 'tenants/table_of_sim_card_providers'
+
= render :partial => 'call_routes', :locals => {:tenant => tenant}
= render :partial => 'gateways', :locals => {:tenant => tenant, :gateways => gateways}
diff --git a/app/views/tenants/_form.html.haml b/app/views/tenants/_form.html.haml
index 1641e78..981293c 100644
--- a/app/views/tenants/_form.html.haml
+++ b/app/views/tenants/_form.html.haml
@@ -20,5 +20,5 @@
- if GsParameter.get('STRICT_DID_HANDLING') == true
= f.input :did_list, :label => t('tenants.form.did_list.label'), :hint => conditional_hint('tenants.form.did_list.hint')
- .actions
- = f.button :submit, conditional_t('tenants.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('tenants.form.submit')
diff --git a/app/views/tenants/_index_core.html.haml b/app/views/tenants/_index_core.html.haml
index a220b1b..2430b67 100644
--- a/app/views/tenants/_index_core.html.haml
+++ b/app/views/tenants/_index_core.html.haml
@@ -13,6 +13,6 @@
- if current_user && current_user.current_tenant != tenant && current_user.tenants.include?(tenant)
= simple_form_for([current_user.current_tenant, current_user]) do |f|
= f.hidden_field :current_tenant_id, :value => tenant.id
- .actions
+ .form-actions
= f.button :submit, conditional_t('tenants.switch_to_tenant')
- =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => tenant} \ No newline at end of file
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:child => tenant}
diff --git a/app/views/tenants/_table_of_sim_card_providers.html.haml b/app/views/tenants/_table_of_sim_card_providers.html.haml
new file mode 100644
index 0000000..135bb65
--- /dev/null
+++ b/app/views/tenants/_table_of_sim_card_providers.html.haml
@@ -0,0 +1,7 @@
+- cache(['tenant_show_table_of_sim_card_providers', I18n.locale, SimCardProvider.count, SimCardProvider.reorder(:updated_at).last]) do
+ -# SIM card providers
+ -#
+ %h2= t('sim_card_providers.index.page_title')
+ - if SimCardProvider.any?
+ = render "sim_card_providers/index_core", :sim_card_providers => SimCardProvider.all
+ = render :partial => 'shared/create_link', :locals => {:child_class => SimCardProvider}
diff --git a/app/views/user_group_memberships/_form.html.haml b/app/views/user_group_memberships/_form.html.haml
index 3c0fee1..e810597 100644
--- a/app/views/user_group_memberships/_form.html.haml
+++ b/app/views/user_group_memberships/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('user_group_memberships.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('user_group_memberships.form.submit')
diff --git a/app/views/user_groups/_form.html.haml b/app/views/user_groups/_form.html.haml
index 3263fdd..5076e74 100644
--- a/app/views/user_groups/_form.html.haml
+++ b/app/views/user_groups/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('user_groups.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('user_groups.form.submit')
diff --git a/app/views/users/_form.html.haml b/app/views/users/_form.html.haml
index 9a75677..90d0e02 100644
--- a/app/views/users/_form.html.haml
+++ b/app/views/users/_form.html.haml
@@ -4,7 +4,7 @@
= render "form_core", :f => f
- .actions
+ .form-actions
= f.button :submit, conditional_t('users.form.submit')
- else
= simple_form_for(@user) do |f|
@@ -12,5 +12,5 @@
= render "form_core", :f => f
- .actions
+ .form-actions
= f.button :submit, conditional_t('users.form.submit')
diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml
index c63c791..0f6cc2c 100644
--- a/app/views/users/show.html.haml
+++ b/app/views/users/show.html.haml
@@ -67,6 +67,12 @@
- cache(['user_show_phones_overview', I18n.locale, @user, @user.phones]) do
= render :partial => 'phones', :locals => {:user => @user}
+ - if GsParameter.get('SIM_CARDS') == true
+ - cache(['user_show_sim_cards_overview', I18n.locale, @user, @user.sim_cards]) do
+ %h2=t('sim_cards.index.page_title')
+ = render :partial => 'sim_cards/index_core', :locals => {:parent => SimCardProvider.first, :sim_cards => @user.sim_cards}
+ = render :partial => 'shared/create_link', :locals => {:parent => SimCardProvider.first, :child_class => SimCard}
+
- cache(['user_show_fax_accounts_overview', I18n.locale, @user, @user.fax_accounts]) do
= render :partial => 'fax_accounts', :locals => {:user => @user}
diff --git a/app/views/voicemail_messages/_index_core.html.haml b/app/views/voicemail_messages/_index_core.html.haml
index f03002d..5e82761 100644
--- a/app/views/voicemail_messages/_index_core.html.haml
+++ b/app/views/voicemail_messages/_index_core.html.haml
@@ -24,18 +24,18 @@
%td
- if ! voicemail_message.flags.blank?
= t("voicemail_messages.index.flags.#{voicemail_message.flags}")
- %td.actions
+ %td.form-actions
- if can?(:show, voicemail_message) && File.readable?(voicemail_message.file_path)
= link_to t('voicemail_messages.index.actions.download'), sip_account_voicemail_message_path(@sip_account, voicemail_message, :format => :wav), :method => :get
%td.actions
- if @sip_account.registration && can?(:call, voicemail_message)
= link_to t('voicemail_messages.index.actions.call'), call_sip_account_voicemail_message_path(@sip_account, voicemail_message), :method => :put
- %td.actions
+ %td.form-actions
- if can?(:edit, voicemail_message) && voicemail_message.read_epoch > 0
= link_to t('voicemail_messages.index.actions.mark_unread'), mark_unread_sip_account_voicemail_message_path(@sip_account, voicemail_message), :method => :put
- else
= link_to t('voicemail_messages.index.actions.mark_read'), mark_read_sip_account_voicemail_message_path(@sip_account, voicemail_message), :method => :put
- %td.actions
+ %td.form-actions
- if can? :destroy, voicemail_message
= link_to t('voicemail_messages.index.actions.destroy'), sip_account_voicemail_message_path(@sip_account, voicemail_message), :method => :delete
diff --git a/app/views/voicemail_settings/_form.html.haml b/app/views/voicemail_settings/_form.html.haml
index 6d5f845..cd43b2d 100644
--- a/app/views/voicemail_settings/_form.html.haml
+++ b/app/views/voicemail_settings/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('voicemail_settings.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('voicemail_settings.form.submit')
diff --git a/app/views/whitelists/_form.html.haml b/app/views/whitelists/_form.html.haml
index c7f787a..71dbe6b 100644
--- a/app/views/whitelists/_form.html.haml
+++ b/app/views/whitelists/_form.html.haml
@@ -3,5 +3,5 @@
= render "form_core", :f => f
- .actions
- = f.button :submit, conditional_t('whitelists.form.submit') \ No newline at end of file
+ .form-actions
+ = f.button :submit, conditional_t('whitelists.form.submit')