summaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
Diffstat (limited to 'app/views')
-rw-r--r--app/views/acd_agents/_index_core.html.haml13
-rw-r--r--app/views/automatic_call_distributors/show.html.haml7
-rw-r--r--app/views/call_routes/test.html.haml55
-rw-r--r--app/views/conferences/_index_members.html.haml40
-rw-r--r--app/views/conferences/show.html.haml23
-rw-r--r--app/views/fax_documents/_fax_document.html.haml66
-rw-r--r--app/views/fax_documents/show.html.haml67
-rw-r--r--app/views/gateways/show.html.haml76
-rw-r--r--app/views/hunt_groups/show.html.haml7
-rw-r--r--app/views/layouts/_navbar.html.haml10
-rw-r--r--app/views/layouts/application.html.haml1
-rw-r--r--app/views/sip_accounts/show.html.haml21
-rw-r--r--app/views/softkeys/_form_core.html.haml6
-rw-r--r--app/views/softkeys/show.html.haml3
-rw-r--r--app/views/switchboard_entries/_form.html.haml7
-rw-r--r--app/views/switchboard_entries/_form_core.html.haml3
-rw-r--r--app/views/switchboard_entries/_index_core.html.haml17
-rw-r--r--app/views/switchboard_entries/_switchboard_entry.html.haml45
-rw-r--r--app/views/switchboard_entries/edit.html.haml3
-rw-r--r--app/views/switchboard_entries/index.html.haml6
-rw-r--r--app/views/switchboard_entries/new.html.haml3
-rw-r--r--app/views/switchboard_entries/show.html.haml22
-rw-r--r--app/views/switchboards/_current_user_dashboard.html.haml33
-rw-r--r--app/views/switchboards/_form.html.haml7
-rw-r--r--app/views/switchboards/_form_core.html.haml2
-rw-r--r--app/views/switchboards/_index_core.html.haml10
-rw-r--r--app/views/switchboards/edit.html.haml12
-rw-r--r--app/views/switchboards/index.html.haml8
-rw-r--r--app/views/switchboards/new.html.haml3
-rw-r--r--app/views/switchboards/show.html.haml21
-rw-r--r--app/views/tenants/_table_of_sip_accounts.html.haml45
-rw-r--r--app/views/trigger/voicemail.html.erb4
-rw-r--r--app/views/users/_switchboards.html.haml7
-rw-r--r--app/views/users/show.html.haml3
34 files changed, 553 insertions, 103 deletions
diff --git a/app/views/acd_agents/_index_core.html.haml b/app/views/acd_agents/_index_core.html.haml
index c8967cd..f1172f2 100644
--- a/app/views/acd_agents/_index_core.html.haml
+++ b/app/views/acd_agents/_index_core.html.haml
@@ -1,8 +1,8 @@
%table.table.table-striped
%thead
%tr
+ %th
%th= t('acd_agents.index.name')
- %th= t('acd_agents.index.status')
%th= t('acd_agents.index.last_call')
%th= t('acd_agents.index.calls_answered')
%th= t('acd_agents.index.destination')
@@ -10,8 +10,17 @@
%tbody
- for acd_agent in acd_agents
%tr
+ %td
+ - if acd_agent.status == 'active'
+ %a.btn.btn-small.btn-success{ :href => toggle_acd_agent_path(acd_agent) }
+ %i.icon-ok.icon-white
+ - elsif acd_agent.status == 'inactive'
+ %a.btn.btn-small.btn-danger{ :href => toggle_acd_agent_path(acd_agent) }
+ %i.icon-ban-circle.icon-white
+ - else
+ %a.btn.btn-small.btn-warning{ :href => toggle_acd_agent_path(acd_agent) }
+ = acd_agent.status
%td= acd_agent.name
- %td= acd_agent.status
%td= acd_agent.last_call
%td= acd_agent.calls_answered
%td= acd_agent.destination
diff --git a/app/views/automatic_call_distributors/show.html.haml b/app/views/automatic_call_distributors/show.html.haml
index a461652..18fd8b8 100644
--- a/app/views/automatic_call_distributors/show.html.haml
+++ b/app/views/automatic_call_distributors/show.html.haml
@@ -63,6 +63,13 @@
= render 'phone_numbers/index_core', :phone_numbers => @automatic_call_distributor.phone_numbers
= render :partial => 'shared/create_link', :locals => {:parent => @automatic_call_distributor, :child_class => PhoneNumber, :short_link => true}
+- if @automatic_call_distributor.call_forwards.count > 0 || can?(:create, @automatic_call_distributor.call_forwards.build)
+ %h3= t('call_forwards.index.page_title')
+ - if @automatic_call_distributor.call_forwards.count > 0
+ = render "call_forwards/index_core", :call_forwards => @automatic_call_distributor.call_forwards
+ %br
+ = render :partial => 'shared/create_link', :locals => { :parent => @automatic_call_distributor, :child_class => CallForward }
+
- if can?( :index, @automatic_call_distributor.acd_agents )
%h3= t('automatic_call_distributors.index.acd_agents')
= render 'acd_agents/index_core', :acd_agents => @automatic_call_distributor.acd_agents
diff --git a/app/views/call_routes/test.html.haml b/app/views/call_routes/test.html.haml
new file mode 100644
index 0000000..0b0fba7
--- /dev/null
+++ b/app/views/call_routes/test.html.haml
@@ -0,0 +1,55 @@
+%h2= 'Routing Test'
+
+- if @route_test
+ - if @route_test['destination']
+ %h3= 'Destination'
+ %table.table.table-striped
+ %thead
+ %tr
+ %td= 'number'
+ %td= 'type'
+ %td= 'ID'
+
+ %tbody{ :id => "destination" }
+ %tr
+ %td= @route_test['destination']['number']
+ %td= @route_test['destination']['type']
+ %td= @route_test['destination']['id']
+ -if @route_test['routes'] && @route_test['routes'].count > 0
+ %h3= 'Routes'
+ %table.table.table-striped
+ %thead
+ %tr
+ %th
+ %th= 'ID'
+ %th= 'destination_number'
+ %th= 'endpoint'
+
+ %tbody{ :id => "route_test" }
+ - @route_test['routes'].each do |index, route_entry|
+ %tr
+ %td= index
+ %td= route_entry['route_id']
+ %td= route_entry['destination_number']
+ %td= "#{route_entry['type']}=#{route_entry['id']}"
+ -if @route_test['log'] && @route_test['log'].count > 0
+ %h3= 'Log'
+ %table.table.table-striped
+ %thead
+ %tr
+ %th
+ %tbody{ :id => "log" }
+ - @route_test['log'].each do |index, log_line|
+ - if log_line =~ /^ROUTE_NO_MATCH/
+ - entry_class = 'table error'
+ - elsif log_line =~ /^ELEMENT_NO_MATCH/
+ - entry_class = 'table warning'
+ - elsif log_line =~ /^ROUTE \d+ /
+ - entry_class = 'table success'
+ - elsif log_line =~ /^[A-Z_]+_MATCH/
+ - entry_class = 'table info'
+ - else
+ - entry_class = nil
+ %tr{:class => entry_class}
+ %td= log_line
+
diff --git a/app/views/conferences/_index_members.html.haml b/app/views/conferences/_index_members.html.haml
new file mode 100644
index 0000000..3837f25
--- /dev/null
+++ b/app/views/conferences/_index_members.html.haml
@@ -0,0 +1,40 @@
+%table.table.table-striped
+ %thead
+ %tr
+ %th= t('conferences.index_members.caller')
+ %th= t('conferences.index_members.join_time')
+ %th= t('conferences.index_members.talking')
+ %th= t('conferences.index_members.flags')
+
+
+ %tbody
+ - for member in members
+ %tr
+ %td
+ -if member[:call]
+ - if member[:call_bleg]
+ = member[:call].b_caller_id_name
+ = member[:call].b_caller_id_number
+ - else
+ = member[:call].caller_id_name
+ = member[:call].caller_id_number
+ %td
+ = member['join_time']
+ %td
+ = member['flags']['talking']
+ %td
+ - if member['flags']['can_hear'] == 'true'
+ %span.label
+ = t('conferences.index_members.can_hear')
+ - if member['flags']['can_speak'] == 'true'
+ %span.label
+ = t('conferences.index_members.can_speak')
+ - if member['flags']['is_moderator'] == 'true'
+ %span.label
+ = t('conferences.index_members.moderator')
+ - if member['flags']['has_floor'] == 'true'
+ %span.label
+ = t('conferences.index_members.has_floor')
+ - if member['flags']['has_video'] == 'true'
+ %span.label
+ = t('conferences.index_members.video')
diff --git a/app/views/conferences/show.html.haml b/app/views/conferences/show.html.haml
index 302f294..fcebb88 100644
--- a/app/views/conferences/show.html.haml
+++ b/app/views/conferences/show.html.haml
@@ -45,6 +45,24 @@
%strong= t('conferences.show.announce_left_member_by_name') + ":"
%td
= @conference.announce_left_member_by_name
+ - conference_data = @conference.list_conference
+ - if conference_data
+ %tr
+ %td
+ %strong= t('conferences.show.identifier') + ":"
+ %td
+ = conference_data['name']
+ %tr
+ %td
+ %strong= t('conferences.show.member_count') + ":"
+ %td
+ = conference_data['member_count']
+ %tr
+ %td
+ %strong= t('conferences.show.run_time') + ":"
+ %td
+ = conference_data['run_time']
+
= render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @parent, :child => @conference }
@@ -54,6 +72,11 @@
= render :partial => 'shared/create_link', :locals => {:parent => @conference, :child_class => PhoneNumber}
+- members = @conference.list_members(conference_data)
+- if members && members.count > 0
+ %h2= t("conferences.show.members")
+ = render "index_members", :members => members
+
%h2= t("conference_invitees.index.page_title")
- if @conference.conference_invitees.count > 0
= render "conference_invitees/index_core", :conference_invitees => @conference.conference_invitees
diff --git a/app/views/fax_documents/_fax_document.html.haml b/app/views/fax_documents/_fax_document.html.haml
new file mode 100644
index 0000000..930a0c3
--- /dev/null
+++ b/app/views/fax_documents/_fax_document.html.haml
@@ -0,0 +1,66 @@
+.fax_document{:id => fax_document.id}
+ .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 = ''
+
+ %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
+
+ - if fax_document.document?
+ %p
+ %a{:href => fax_account_fax_document_path(fax_document.fax_account, fax_document, :format => :pdf), :method => :get}
+ %i{:class => 'icon-download'}
+ = t("fax_documents.index.actions.download_pdf") + " (#{number_to_human_size(fax_document.document.size, :precision => 2)})"
+
+ .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}"
+
+ .row
+ .span12
+ = render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => fax_document.fax_account, :child => fax_document } \ No newline at end of file
diff --git a/app/views/fax_documents/show.html.haml b/app/views/fax_documents/show.html.haml
index b8f3e9e..6ae0ee1 100644
--- a/app/views/fax_documents/show.html.haml
+++ b/app/views/fax_documents/show.html.haml
@@ -1,67 +1,6 @@
- content_for :title, t("fax_documents.show.page_title")
-.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 = ''
+= render :partial => 'fax_document', :locals => {:fax_document => @fax_document}
- %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
-
- - if @fax_document.document?
- %p
- %a{:href => fax_account_fax_document_path(@fax_account, @fax_document, :format => :pdf), :method => :get}
- %i{:class => 'icon-download'}
- = t("fax_documents.index.actions.download_pdf") + " (#{number_to_human_size(@fax_document.document.size, :precision => 2)})"
-
-.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}"
-
-.row
- .span12
- = render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @fax_document.fax_account, :child => @fax_document }
+- if ['sending', 'queued_for_sending'].include? @fax_document.state
+ = subscribe_to "/fax_documents/#{@fax_document.id}" \ No newline at end of file
diff --git a/app/views/gateways/show.html.haml b/app/views/gateways/show.html.haml
index 6cf09ec..19b1304 100644
--- a/app/views/gateways/show.html.haml
+++ b/app/views/gateways/show.html.haml
@@ -33,6 +33,82 @@
%td
= @gateway.description
+ - if @gateway.technology.to_s == 'sip'
+ - status = @gateway.status
+ - if !@gateway.status.blank?
+ %tr
+ %td
+ %strong= t('gateways.show.status') + ":"
+ %td
+ = "#{status['status']} (#{status['state']})"
+ %tr
+ %td
+ %strong= t('gateways.show.identifier') + ":"
+ %td
+ = status['name']
+ %tr
+ %td
+ %strong= t('gateways.show.profile') + ":"
+ %td
+ = status['profile']
+ %tr
+ %td
+ %strong= t('gateways.show.username') + ":"
+ %td
+ = status['username']
+ %tr
+ %td
+ %strong= t('gateways.show.password') + ":"
+ %td
+ = status['password']
+ %tr
+ %td
+ %strong= t('gateways.show.realm') + ":"
+ %td
+ = status['realm']
+ %tr
+ %td
+ %strong= t('gateways.show.contact') + ":"
+ %td
+ = status['contact']
+ %tr
+ %td
+ %strong= t('gateways.show.from') + ":"
+ %td
+ = status['from']
+ %tr
+ %td
+ %strong= t('gateways.show.to') + ":"
+ %td
+ = status['to']
+ %tr
+ %td
+ %strong= t('gateways.show.proxy') + ":"
+ %td
+ = status['proxy']
+ - registration = @gateway.inbound_register
+ - if !registration.blank?
+ %tr
+ %td
+ %strong= t('gateways.show.inbound_register_status') + ":"
+ %td
+ = registration.status
+ %tr
+ %td
+ %strong= t('gateways.show.inbound_register_contact') + ":"
+ %td
+ = registration.contact
+ %tr
+ %td
+ %strong= t('gateways.show.inbound_register_user_agent') + ":"
+ %td
+ = registration.user_agent
+ %tr
+ %td
+ %strong= t('gateways.show.inbound_register_network') + ":"
+ %td
+ = "#{registration.network_ip}:#{registration.network_port}"
+
= render :partial => 'shared/show_edit_destroy_part', :locals => { :child => @gateway }
diff --git a/app/views/hunt_groups/show.html.haml b/app/views/hunt_groups/show.html.haml
index 3ffe4f3..99eb3e0 100644
--- a/app/views/hunt_groups/show.html.haml
+++ b/app/views/hunt_groups/show.html.haml
@@ -19,6 +19,13 @@
%br
= render :partial => 'shared/create_link', :locals => {:parent => @hunt_group, :child_class => PhoneNumber}
+- if @hunt_group.call_forwards.count > 0 || can?(:create, @hunt_group.call_forwards.build)
+ %h2= t('call_forwards.index.page_title')
+ - if @hunt_group.call_forwards.count > 0
+ = render "call_forwards/index_core", :call_forwards => @hunt_group.call_forwards
+ %br
+ = render :partial => 'shared/create_link', :locals => { :parent => @hunt_group, :child_class => CallForward }
+
%h2= t('hunt_groups.form.hunt_group_members.label')
- if @hunt_group.hunt_group_members.count > 0
= render 'hunt_group_members/index_core', :hunt_group_members => @hunt_group.hunt_group_members
diff --git a/app/views/layouts/_navbar.html.haml b/app/views/layouts/_navbar.html.haml
index 8004c0e..3e1da1c 100644
--- a/app/views/layouts/_navbar.html.haml
+++ b/app/views/layouts/_navbar.html.haml
@@ -23,7 +23,7 @@
%li
%a{:href => sip_account_voicemail_messages_path(current_user.sip_accounts.first)}
=t("voicemail_messages.index.page_title")
-
+
- if current_user
%ul.nav.pull-right
%li.display
@@ -39,10 +39,18 @@
- 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)}
+ %i.icon-star.icon-white{:id => 'new_voicemail_or_fax_indicator'}
+ :javascript
+ $("#new_voicemail_or_fax_indicator").hide()
+ = subscribe_to "/users/#{current_user.id}/messages/new"
= current_user
- else
%li
%a.navbar-link{:href => tenant_user_path(current_user.current_tenant, current_user)}
+ %i.icon-star.icon-white{:id => 'new_voicemail_or_fax_indicator'}
+ :javascript
+ $("#new_voicemail_or_fax_indicator").hide()
+ = subscribe_to "/users/#{current_user.id}/messages/new"
= current_user
- if single_sign_on_system? == false
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index eab6096..027f837 100644
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -36,4 +36,5 @@
.span12
%hr/
= render 'layouts/footer'
+
/ /container
diff --git a/app/views/sip_accounts/show.html.haml b/app/views/sip_accounts/show.html.haml
index 365aea8..e79907f 100644
--- a/app/views/sip_accounts/show.html.haml
+++ b/app/views/sip_accounts/show.html.haml
@@ -60,12 +60,14 @@
= render :partial => 'shared/show_edit_destroy_part', :locals => { :parent => @sip_account.sip_accountable, :child => @sip_account }
-%p
- %strong= t('sip_accounts.show.tel_protocol') + ':'
-%p
- %a.btn.btn-small.btn-default{ :href => '', :onclick => "navigator.registerProtocolHandler(\"tel\", \"#{@register_tel_protocol}\", \"#{@sip_account.to_s}\");" }
- %i.icon-plus
- = t('sip_accounts.show.register_tel_protocol')
+- if @register_protocols.count > 0
+ %p
+ %strong= t('sip_accounts.show.call_protocols') + ':'
+ %p
+ - @register_protocols.each do |protocol, url|
+ %a.btn.btn-small.btn-default{ :href => '', :onclick => "navigator.registerProtocolHandler(\"#{protocol}\", \"#{url}\", \"#{@sip_account.to_s}\");" }
+ %i.icon-plus
+ = t("sip_accounts.show.register_#{protocol}_protocol")
%p
%strong= t('ringtones.name') + ':'
@@ -99,3 +101,10 @@
- if @sip_account.calls.count > 0
%h2= t("calls.index.page_title")
= render "calls/index_core", :calls => @sip_account.calls, :parent => @sip_account
+
+- if (can?(:read, AcdAgent) && @sip_account.acd_agents.count > 0) || can?(:create, @sip_account.acd_agents.build)
+ %h2= t('acd_agents.index.page_title')
+ - if @sip_account.acd_agents.count > 0
+ = render "acd_agents/index_core", :acd_agents => @sip_account.acd_agents
+ %br
+ = render :partial => 'shared/create_link', :locals => { :parent => @sip_account, :child_class => AcdAgent }
diff --git a/app/views/softkeys/_form_core.html.haml b/app/views/softkeys/_form_core.html.haml
index f447aa6..7bed1a5 100644
--- a/app/views/softkeys/_form_core.html.haml
+++ b/app/views/softkeys/_form_core.html.haml
@@ -4,10 +4,10 @@
hold_function_name = "#{I18n.t('softkeys.functions.hold')}"
deactivated_function_name = "#{I18n.t('softkeys.functions.deactivated')}"
+
.inputs
= f.input :softkey_function_id, :as => :select, :collection => @softkey_functions.map {|x| [I18n.t("softkeys.functions.#{x}"), x.id] }, :label => t('softkeys.form.function.label'), :hint => conditional_hint('softkeys.form.function.hint'), :include_blank => false
- - call_forwards = @softkey.possible_call_forwards
- - if call_forwards && call_forwards.count > 0
- = f.association :softkeyable, :collection => call_forwards, :label => t('softkeys.form.call_forward.label'), :hint => conditional_hint('softkeys.form.call_forward.hint'), :include_blank => false
+ - if @possible_call_forwards && @possible_call_forwards.count > 0
+ = f.input :softkeyable_id, :collection => @possible_call_forwards, :label => t('softkeys.form.call_forward.label'), :hint => conditional_hint('softkeys.form.call_forward.hint'), :include_blank => false
= f.input :number, :label => t('softkeys.form.number.label'), :hint => conditional_hint('softkeys.form.number.hint')
= f.input :label, :label => t('softkeys.form.label.label'), :hint => conditional_hint('softkeys.form.label.hint')
diff --git a/app/views/softkeys/show.html.haml b/app/views/softkeys/show.html.haml
index 7c068ae..64adbe6 100644
--- a/app/views/softkeys/show.html.haml
+++ b/app/views/softkeys/show.html.haml
@@ -1,6 +1,9 @@
- content_for :title, t("softkeys.show.page_title")
%p
+ %strong= t("softkeys.show.label") + ":"
+ =@softkey.label
+%p
%strong= t("softkeys.functions.#{@softkey.softkey_function}") + ":"
=@softkey.to_s
diff --git a/app/views/switchboard_entries/_form.html.haml b/app/views/switchboard_entries/_form.html.haml
new file mode 100644
index 0000000..b3d56ec
--- /dev/null
+++ b/app/views/switchboard_entries/_form.html.haml
@@ -0,0 +1,7 @@
+= simple_form_for([@switchboard, @switchboard_entry]) do |f|
+ = f.error_notification
+
+ = render "form_core", :f => f
+
+ .form-actions
+ = f.button :submit, conditional_t('switchboard_entries.form.submit')
diff --git a/app/views/switchboard_entries/_form_core.html.haml b/app/views/switchboard_entries/_form_core.html.haml
new file mode 100644
index 0000000..6f340c2
--- /dev/null
+++ b/app/views/switchboard_entries/_form_core.html.haml
@@ -0,0 +1,3 @@
+.inputs
+ = f.association :sip_account, :collection => @sip_accounts, :label => t('switchboard_entries.form.sip_account_id.label'), :hint => conditional_hint('switchboard_entries.form.sip_account_id.hint'), :autofocus => true, :include_blank => false
+ = f.input :name, :label => t('switchboard_entries.form.name.label'), :hint => conditional_hint('switchboard_entries.form.name.hint')
diff --git a/app/views/switchboard_entries/_index_core.html.haml b/app/views/switchboard_entries/_index_core.html.haml
new file mode 100644
index 0000000..d647626
--- /dev/null
+++ b/app/views/switchboard_entries/_index_core.html.haml
@@ -0,0 +1,17 @@
+%table.table.table-striped
+ %tr
+ %th
+ %th= t('switchboard_entries.index.sip_account_id')
+ %th= t('switchboard_entries.index.name')
+ %th
+
+ - if switchboard_entries.any?
+ %tbody{ :id => "switchboard_entries", :'data-update-url' => sort_switchboard_switchboard_entries_path(switchboard_entries.first.switchboard) }
+ - for switchboard_entry in switchboard_entries
+ = content_tag_for :tr, switchboard_entry do
+ %td
+ %span.handle
+ %i.icon-resize-vertical
+ %td= switchboard_entry.sip_account
+ %td= switchboard_entry.name
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => switchboard_entry.switchboard, :child => switchboard_entry} \ No newline at end of file
diff --git a/app/views/switchboard_entries/_switchboard_entry.html.haml b/app/views/switchboard_entries/_switchboard_entry.html.haml
new file mode 100644
index 0000000..8c44153
--- /dev/null
+++ b/app/views/switchboard_entries/_switchboard_entry.html.haml
@@ -0,0 +1,45 @@
+%li.span2{:id => "switchboard_entry_id_#{switchboard_entry.id}"}
+ %div.thumbnail
+ %a.thumbnail{:href => tenant_user_path(switchboard_entry.sip_account.sip_accountable.current_tenant, switchboard_entry.sip_account.sip_accountable)}
+ - if switchboard_entry.sip_account.sip_accountable.image?
+ = image_tag(switchboard_entry.sip_account.sip_accountable.image_url(:profile).to_s, :class => 'img-rounded', :style => 'width: 100px;')
+ - else
+ - if switchboard_entry.sip_account.sip_accountable.male?
+ = image_tag('icons/user-male-16x.png', :class => 'img-rounded', :style => 'width: 100px;')
+ - else
+ = image_tag('icons/user-female-16x.png', :class => 'img-rounded', :style => 'width: 100px;')
+ %p
+ %small
+ = truncate(switchboard_entry.to_s, :length => 23)
+ %br
+ - if switchboard_entry.sip_account.phone_numbers.any? && !switchboard_entry.sip_account.call_legs.where(callstate: 'ACTIVE').any? && !switchboard_entry.sip_account.b_call_legs.where(b_callstate: 'ACTIVE').any?
+ %span.label
+ = switchboard_entry.sip_account.phone_numbers.first.number
+
+ %br
+
+ - if switchboard_entry.sip_account.registration
+ - switchboard_entry.sip_account.call_legs.where(callstate: 'RINGING').each do |call_leg|
+ %span.label.label-warning
+ %i.icon-bell.icon-white
+ = "#{call_leg.caller_id_number}"
+
+ - switchboard_entry.sip_account.call_legs.where(callstate: 'EARLY').each do |call_leg|
+ %span.label.label-info
+ = "calls #{call_leg.destination}"
+
+ - switchboard_entry.sip_account.call_legs.where(callstate: 'ACTIVE').each do |call_leg|
+ %span.label
+ = "#{switchboard_entry.sip_account.phone_numbers.first.number} => "
+ %span.label.label-info
+ = "#{call_leg.callee_number}"
+
+ - switchboard_entry.sip_account.b_call_legs.where(b_callstate: 'ACTIVE').each do |b_call_leg|
+ %span.label.label-info
+ = "#{b_call_leg.b_caller_id_number} =>"
+ %span.label
+ = switchboard_entry.sip_account.phone_numbers.first.number
+
+ - else
+ %span.label.label-inverse
+ %i.icon-ban-circle.icon-white
diff --git a/app/views/switchboard_entries/edit.html.haml b/app/views/switchboard_entries/edit.html.haml
new file mode 100644
index 0000000..8885e25
--- /dev/null
+++ b/app/views/switchboard_entries/edit.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("switchboard_entries.edit.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/switchboard_entries/index.html.haml b/app/views/switchboard_entries/index.html.haml
new file mode 100644
index 0000000..302b778
--- /dev/null
+++ b/app/views/switchboard_entries/index.html.haml
@@ -0,0 +1,6 @@
+- content_for :title, t("switchboard_entries.index.page_title")
+
+- if @switchboard_entries && @switchboard_entries.count > 0
+ = render "index_core", :switchboard_entries => @switchboard_entries
+
+= render :partial => 'shared/create_link', :locals => {:parent => @switchboard, :child_class => SwitchboardEntry} \ No newline at end of file
diff --git a/app/views/switchboard_entries/new.html.haml b/app/views/switchboard_entries/new.html.haml
new file mode 100644
index 0000000..0801a65
--- /dev/null
+++ b/app/views/switchboard_entries/new.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("switchboard_entries.new.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/switchboard_entries/show.html.haml b/app/views/switchboard_entries/show.html.haml
new file mode 100644
index 0000000..b519781
--- /dev/null
+++ b/app/views/switchboard_entries/show.html.haml
@@ -0,0 +1,22 @@
+- content_for :title, t("switchboard_entries.show.page_title")
+
+.row
+ .span6
+ %table.table.table-striped
+ %tr
+ %td
+ %strong= t('switchboard_entries.show.sip_account_id') + ":"
+ %td
+ = @switchboard_entry.sip_account
+ %tr
+ %td
+ %strong= t('switchboard_entries.show.name') + ":"
+ %td
+ = @switchboard_entry.name
+ %tr
+ %td
+ %strong= t('switchboard_entries.show.position') + ":"
+ %td
+ = @switchboard_entry.position
+
+ = render :partial => 'shared/show_edit_destroy_part', :locals => {:parent => @switchboard, :child => @switchboard_entry } \ No newline at end of file
diff --git a/app/views/switchboards/_current_user_dashboard.html.haml b/app/views/switchboards/_current_user_dashboard.html.haml
new file mode 100644
index 0000000..8dd75b9
--- /dev/null
+++ b/app/views/switchboards/_current_user_dashboard.html.haml
@@ -0,0 +1,33 @@
+.dashboard
+ - current_user.sip_accounts.each do |sip_account|
+ %table.table.table-striped
+ %thead
+ %tr
+ %td
+ %td
+ Destination
+ %td
+ Start
+ %td{:span => '2'}
+ Caller
+ %tbody
+ - sip_account.call_legs.where(callstate: 'RINGING').each do |call_leg|
+ %tr.warning
+ %td
+ %i.icon-bell
+ %td
+ %span.label.label-info
+ =sip_account.phone_numbers.first.to_s
+ %td=l Time.at(call_leg.start_stamp)
+ %td=call_leg.callee_name
+ %td=call_leg.callee_number
+
+ - sip_account.b_call_legs.where(direction: 'inbound').each do |call_leg|
+ %tr
+ %td
+ %td
+ %span.label.label-info
+ =sip_account.phone_numbers.first.to_s
+ %td=l Time.at(call_leg.start_stamp)
+ %td=call_leg.b_caller_id_name
+ %td=call_leg.b_caller_id_number
diff --git a/app/views/switchboards/_form.html.haml b/app/views/switchboards/_form.html.haml
new file mode 100644
index 0000000..bb09713
--- /dev/null
+++ b/app/views/switchboards/_form.html.haml
@@ -0,0 +1,7 @@
+= simple_form_for([@user, @switchboard]) do |f|
+ = f.error_notification
+
+ = render "form_core", :f => f
+
+ .form-actions
+ = f.button :submit, conditional_t('switchboards.form.submit')
diff --git a/app/views/switchboards/_form_core.html.haml b/app/views/switchboards/_form_core.html.haml
new file mode 100644
index 0000000..61b5934
--- /dev/null
+++ b/app/views/switchboards/_form_core.html.haml
@@ -0,0 +1,2 @@
+.inputs
+ = f.input :name, :label => t('switchboards.form.name.label'), :hint => conditional_hint('switchboards.form.name.hint'), :autofocus => true
diff --git a/app/views/switchboards/_index_core.html.haml b/app/views/switchboards/_index_core.html.haml
new file mode 100644
index 0000000..858f624
--- /dev/null
+++ b/app/views/switchboards/_index_core.html.haml
@@ -0,0 +1,10 @@
+%table.table.table-striped
+ %tr
+ %th= t('switchboards.index.name')
+ %th
+
+
+ - for switchboard in switchboards
+ %tr
+ %td= switchboard.name
+ =render :partial => 'shared/index_view_edit_destroy_part', :locals => {:parent => user, :child => switchboard} \ No newline at end of file
diff --git a/app/views/switchboards/edit.html.haml b/app/views/switchboards/edit.html.haml
new file mode 100644
index 0000000..f2e69f4
--- /dev/null
+++ b/app/views/switchboards/edit.html.haml
@@ -0,0 +1,12 @@
+- content_for :title, t("switchboards.edit.page_title")
+
+.row
+ .span12
+ = render "form"
+
+.row
+ .span12
+ - if @switchboard.switchboard_entries && @switchboard.switchboard_entries.count > 0
+ = render "switchboard_entries/index_core", :switchboard_entries => @switchboard.switchboard_entries
+
+ = render :partial => 'shared/create_link', :locals => {:parent => @switchboard, :child_class => SwitchboardEntry} \ No newline at end of file
diff --git a/app/views/switchboards/index.html.haml b/app/views/switchboards/index.html.haml
new file mode 100644
index 0000000..4f29d7d
--- /dev/null
+++ b/app/views/switchboards/index.html.haml
@@ -0,0 +1,8 @@
+- content_for :title, t("switchboards.index.page_title")
+
+.row
+ .span6
+ - if @switchboards && @switchboards.count > 0
+ = render :partial => "index_core", :locals => {:switchboards => @switchboards, :user => @user}
+
+ = render :partial => 'shared/create_link', :locals => {:parent => @user, :child_class => Switchboard} \ No newline at end of file
diff --git a/app/views/switchboards/new.html.haml b/app/views/switchboards/new.html.haml
new file mode 100644
index 0000000..9f5918f
--- /dev/null
+++ b/app/views/switchboards/new.html.haml
@@ -0,0 +1,3 @@
+- content_for :title, t("switchboards.new.page_title")
+
+= render "form" \ No newline at end of file
diff --git a/app/views/switchboards/show.html.haml b/app/views/switchboards/show.html.haml
new file mode 100644
index 0000000..a825806
--- /dev/null
+++ b/app/views/switchboards/show.html.haml
@@ -0,0 +1,21 @@
+- content_for :title, "Switchboard #{@switchboard.name}"
+
+.row
+ .span12
+ = render :partial => "current_user_dashboard", :current_user => current_user
+
+ %ul.thumbnails
+ = render :partial => "switchboard_entries/switchboard_entry", :collection => @switchboard_entries
+
+ - if can? :edit, @switchboard
+ .row
+ .span12
+ %a.btn.btn-small.btn-warning{:href => switchboard_switchboard_entries_path(@switchboard) }
+ %i.icon-edit.icon-white
+ %span.hidden-phone
+ =t("switchboard_entries.index.page_title")
+
+ .span6
+
+
+= subscribe_to "/switchboards/#{@switchboard.id}" \ No newline at end of file
diff --git a/app/views/tenants/_table_of_sip_accounts.html.haml b/app/views/tenants/_table_of_sip_accounts.html.haml
index 34eeb14..b2f2612 100644
--- a/app/views/tenants/_table_of_sip_accounts.html.haml
+++ b/app/views/tenants/_table_of_sip_accounts.html.haml
@@ -1,25 +1,24 @@
-- cache(['tenant_show_table_of_sip_accounts', I18n.locale, tenant, tenant.sip_accounts.count, SipAccount.count, tenant.sip_accounts.reorder(:updated_at).last]) do
- .row
- - if GsParameter.get('AUTO_ADMIN_ONLINE_HELP') == true && !SipAccount.any?
- .span4
- -# SIP accounts
- -#
- %h2= t('sip_accounts.index.page_title')
- - if tenant.sip_accounts.any?
- = render "sip_accounts/index_core", :sip_accounts => tenant.sip_accounts
- = render :partial => 'shared/create_link', :locals => {:parent => tenant, :child_class => SipAccount}
+.row
+ - if GsParameter.get('AUTO_ADMIN_ONLINE_HELP') == true && !SipAccount.any?
+ .span4
+ -# SIP accounts
+ -#
+ %h2= t('sip_accounts.index.page_title')
+ - if tenant.sip_accounts.any?
+ = render "sip_accounts/index_core", :sip_accounts => tenant.sip_accounts
+ = render :partial => 'shared/create_link', :locals => {:parent => tenant, :child_class => SipAccount}
- .span8
- .well
- %p
- In der #{link_to 'Admin-Doku', page_help_path} finden Sie die Beschreibung wie ein neues Telefon mit einem SIP-Account eingerichtet werden kann. Dazu gibt es auch einen Screencast:
- = render :partial => 'page/docu/screencast_list', :locals => {:screencast_name => 'firmen_sip_account_und_telefon_anlegen'}
+ .span8
+ .well
+ %p
+ In der #{link_to 'Admin-Doku', page_help_path} finden Sie die Beschreibung wie ein neues Telefon mit einem SIP-Account eingerichtet werden kann. Dazu gibt es auch einen Screencast:
+ = render :partial => 'page/docu/screencast_list', :locals => {:screencast_name => 'firmen_sip_account_und_telefon_anlegen'}
- - else
- .span12
- -# SIP accounts
- -#
- %h2= t('sip_accounts.index.page_title')
- - if tenant.sip_accounts.any?
- = render "sip_accounts/index_core", :sip_accounts => tenant.sip_accounts
- = render :partial => 'shared/create_link', :locals => {:parent => tenant, :child_class => SipAccount}
+ - else
+ .span12
+ -# SIP accounts
+ -#
+ %h2= t('sip_accounts.index.page_title')
+ - if tenant.sip_accounts.any?
+ = render "sip_accounts/index_core", :sip_accounts => tenant.sip_accounts
+ = render :partial => 'shared/create_link', :locals => {:parent => tenant, :child_class => SipAccount}
diff --git a/app/views/trigger/voicemail.html.erb b/app/views/trigger/voicemail.html.erb
deleted file mode 100644
index 9bafe17..0000000
--- a/app/views/trigger/voicemail.html.erb
+++ /dev/null
@@ -1,4 +0,0 @@
-<h1>Trigger#voicemail</h1>
-<p>Find me in app/views/trigger/voicemail.html.erb</p>
-
-<%= debug(params) %>
diff --git a/app/views/users/_switchboards.html.haml b/app/views/users/_switchboards.html.haml
new file mode 100644
index 0000000..183b6ae
--- /dev/null
+++ b/app/views/users/_switchboards.html.haml
@@ -0,0 +1,7 @@
+-# Switchboards
+-#
+- if SipAccount.any? && (can?( :index, Switchboard ) && user.switchboards.any? ) || can?( :create, Switchboard )
+ %h2= t('switchboards.index.page_title')
+ - if can?( :index, Switchboard ) && user.switchboards.count > 0
+ = render :partial => "switchboards/index_core", :locals => {:switchboards => user.switchboards, :user => user}
+ = render :partial => 'shared/create_link', :locals => {:parent => user, :child_class => Switchboard} \ No newline at end of file
diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml
index ea90ab4..98f7cc6 100644
--- a/app/views/users/show.html.haml
+++ b/app/views/users/show.html.haml
@@ -87,3 +87,6 @@
- cache(['user_show_conferences_overview', I18n.locale, @user, @user.conferences]) do
= render :partial => 'conferences', :locals => {:user => @user}
+
+ - cache(['user_switchboards_overview', I18n.locale, @user, @user.switchboards]) do
+ = render :partial => 'switchboards', :locals => {:user => @user} \ No newline at end of file