diff --git a/app/assets/javascripts/app/controllers/_application_controller_table.coffee b/app/assets/javascripts/app/controllers/_application_controller_table.coffee
index affd66f6f..d01eb4e57 100644
--- a/app/assets/javascripts/app/controllers/_application_controller_table.coffee
+++ b/app/assets/javascripts/app/controllers/_application_controller_table.coffee
@@ -24,13 +24,14 @@ class App.ControllerTable extends App.Controller
@headerWidth[key] = value
@render()
- $(window).on 'resize.table', @onResize
+ $(window).on 'resize.table', @readjustHeaderWidths
release: =>
- $(window).off 'resize.table', @onResize
+ $(window).off 'resize.table', @readjustHeaderWidths
render: =>
@html @tableGen()
+ @readjustHeaderWidths()
###
@@ -347,6 +348,9 @@ class App.ControllerTable extends App.Controller
table
adjustHeaderWidths: (headers) ->
+ if !@headers
+ return
+
availableWidth = @el.width()
if availableWidth is 0
@@ -410,7 +414,7 @@ class App.ControllerTable extends App.Controller
return widths
- onResize: =>
+ readjustHeaderWidths: =>
@headers = @adjustHeaderWidths @headers
@tableHead.each (i, el) =>
diff --git a/app/assets/javascripts/app/controllers/ticket_overview.coffee b/app/assets/javascripts/app/controllers/ticket_overview.coffee
index c28498ca1..42e00cfc4 100644
--- a/app/assets/javascripts/app/controllers/ticket_overview.coffee
+++ b/app/assets/javascripts/app/controllers/ticket_overview.coffee
@@ -1,4 +1,6 @@
class App.TicketOverview extends App.Controller
+ className: 'overviews'
+
constructor: ->
super
@@ -7,15 +9,18 @@ class App.TicketOverview extends App.Controller
render: ->
@html App.view('ticket_overview')()
- @navBarController = new Navbar(
+ @navBarControllerVertical = new Navbar
+ el: @el.find('.overview-header')
+ view: @view
+ vertical: true
+
+ @navBarController = new Navbar
el: @el.find('.sidebar')
view: @view
- )
- @contentController = new Table(
- el: @el.find('.main')
+ @contentController = new Table
+ el: @el.find('.overview-table')
view: @view
- )
active: (state) =>
@activeState = state
@@ -39,10 +44,14 @@ class App.TicketOverview extends App.Controller
# build nav bar
if @navBarController
- @navBarController.update(
+ @navBarController.update
+ view: @view
+ activeState: true
+
+ if @navBarControllerVertical
+ @navBarControllerVertical.update
view: @view
activeState: true
- )
# do not rerender overview if current overview is requested again
return if @viewLast is @view
@@ -59,6 +68,8 @@ class App.TicketOverview extends App.Controller
hide: =>
if @navBarController
@navBarController.active(false)
+ if @navBarControllerVertical
+ @navBarControllerVertical.active(false)
changed: ->
false
@@ -658,6 +669,21 @@ class App.OverviewSettings extends App.ControllerModal
)
class Navbar extends App.Controller
+ elements:
+ '.js-tabsClone': 'clone'
+ '.js-tabClone': 'tabClone'
+ '.js-tabs': 'tabs'
+ '.js-tab': 'tab'
+ '.js-dropdown': 'dropdown'
+ '.js-toggle': 'dropdownToggle'
+ '.js-dropdownItem': 'dropdownItem'
+
+ events:
+ 'click .js-tab': 'activate'
+ 'click .js-dropdownItem': 'navigate'
+ 'hide.bs.dropdown': 'onDropdownHide'
+ 'show.bs.dropdown': 'onDropdownShow'
+
constructor: ->
super
@@ -676,6 +702,9 @@ class Navbar extends App.Controller
@bind 'ui:rerender', =>
@render()
+ if @options.vertical
+ $(window).on 'resize.navbar', @autoFoldTabs
+
# init fetch via ajax
ajaxInit = =>
@@ -685,6 +714,37 @@ class Navbar extends App.Controller
@delay( ajaxInit, 5000 )
+ navigate: (event) =>
+ location.hash = $(event.currentTarget).attr('data-target')
+
+ onDropdownShow: =>
+ @dropdownToggle.addClass('active')
+
+ onDropdownHide: =>
+ @dropdownToggle.removeClass('active')
+
+ activate: (event) =>
+ @tab.removeClass('active')
+ $(event.currentTarget).addClass('active')
+
+ release: =>
+ $(window).off 'resize.navbar', @autoFoldTabs
+
+ autoFoldTabs: =>
+ @html App.view("agent_ticket_view/navbar#{ if @options.vertical then '_vertical' }")
+ items: @data
+
+ while @clone.width() > @el.width()
+ @tabClone.not('.hide').last().addClass('hide')
+ @tab.not('.hide').last().addClass('hide')
+ @dropdownItem.filter('.hide').last().removeClass('hide')
+
+ # if all tabs are visible
+ # remove dropdown and dropdown button
+ if @dropdownItem.filter('.hide').size() is 0
+ @dropdown.remove()
+ @dropdownToggle.remove()
+
fetch: =>
#console.log('AJAX CALLL')
# init fetch via ajax, all other updates on time via websockets
@@ -716,19 +776,18 @@ class Navbar extends App.Controller
@title meta.title, true
render: =>
- #console.log('RENDER NAV')
return if !@cache
- data = _.clone(@cache)
+ @data = _.clone(@cache)
# redirect to first view
- if @activeState && !@view && !_.isEmpty(data)
- view = data[0].link
+ if @activeState && !@view && !_.isEmpty(@data)
+ view = @data[0].link
#console.log('REDIRECT', "ticket/view/#{view}")
@navigate "ticket/view/#{view}", true
return
# add new views
- for item in data
+ for item in @data
item.target = '#ticket/view/' + item.link
if item.link is @view
item.active = true
@@ -736,9 +795,11 @@ class Navbar extends App.Controller
else
item.active = false
- @html App.view('agent_ticket_view/navbar')(
- items: data
- )
+ @html App.view("agent_ticket_view/navbar#{ if @options.vertical then '_vertical' else '' }")
+ items: @data
+
+ if @options.vertical
+ @autoFoldTabs()
class TicketOverviewRouter extends App.ControllerPermanent
constructor: (params) ->
diff --git a/app/assets/javascripts/app/views/agent_ticket_view/content.jst.eco b/app/assets/javascripts/app/views/agent_ticket_view/content.jst.eco
index 910f784d8..825fe1b16 100644
--- a/app/assets/javascripts/app/views/agent_ticket_view/content.jst.eco
+++ b/app/assets/javascripts/app/views/agent_ticket_view/content.jst.eco
@@ -1,27 +1,23 @@
-
-
-
-
-
<%- @T( @overview.name ) %>
-
-
- <% if @edit: %>
-
<%- @T('Options') %>
- <% end %>
-
-
-
-
-
+
+
+
<%- @T( @overview.name ) %>
+
+ <% if @edit: %>
+
<%- @T('Options') %>
+ <% end %>
+
+
+
-
-
\ No newline at end of file
+
+
+
\ No newline at end of file
diff --git a/app/assets/javascripts/app/views/agent_ticket_view/navbar_vertical.jst.eco b/app/assets/javascripts/app/views/agent_ticket_view/navbar_vertical.jst.eco
new file mode 100644
index 000000000..86ddfe3d0
--- /dev/null
+++ b/app/assets/javascripts/app/views/agent_ticket_view/navbar_vertical.jst.eco
@@ -0,0 +1,35 @@
+
+<% end %>
diff --git a/app/assets/javascripts/app/views/ticket_overview.jst.eco b/app/assets/javascripts/app/views/ticket_overview.jst.eco
index 69df40de0..f4e27af10 100644
--- a/app/assets/javascripts/app/views/ticket_overview.jst.eco
+++ b/app/assets/javascripts/app/views/ticket_overview.jst.eco
@@ -1,2 +1,5 @@
-
\ No newline at end of file
+