Fixed M-View.

This commit is contained in:
Martin Edenhofer 2012-10-18 00:45:49 +02:00
parent 76345309a8
commit 5410205800
8 changed files with 77 additions and 56 deletions

View file

@ -124,16 +124,11 @@ class App.Controller extends Spine.Controller
dataTypesForCols = data.overview_extended dataTypesForCols = data.overview_extended
# generate content data # generate content data
objects = _.clone( data.objects ) for object in data.objects
for object in objects
# check if info for each col. is already there # check if info for each col. is already there
for row in dataTypesForCols for row in dataTypesForCols
# execute callback on content
if row.callback
object[row.name] = row.callback( object[row.name] )
# lookup relation # lookup relation
if !object[row.name] if !object[row.name]
rowWithoutId = row.name + '_id' rowWithoutId = row.name + '_id'
@ -143,11 +138,11 @@ class App.Controller extends Spine.Controller
record = App.Collection.find( attribute.relation, object[rowWithoutId] ) record = App.Collection.find( attribute.relation, object[rowWithoutId] )
object[row.name] = record.name object[row.name] = record.name
@log 'table', 'header', header, 'overview', dataTypesForCols, 'objects', objects @log 'table', 'header', header, 'overview', dataTypesForCols, 'objects', data.objects
table = App.view('generic/table')( table = App.view('generic/table')(
header: header, header: header,
overview: dataTypesForCols, overview: dataTypesForCols,
objects: objects, objects: data.objects,
checkbox: data.checkbox, checkbox: data.checkbox,
) )
# @log 'ttt', $(table).find('span') # @log 'ttt', $(table).find('span')

View file

@ -4,7 +4,7 @@ class Index extends App.Controller
events: events:
'click [data-type=edit]': 'zoom' 'click [data-type=edit]': 'zoom'
'click [data-type=settings]': 'settings' 'click [data-type=settings]': 'settings'
'click [data-type=view-mode]': 'view_mode' 'click [data-type=viewmode]': 'viewmode'
'click [data-type=page]': 'page' 'click [data-type=page]': 'page'
constructor: -> constructor: ->
@ -13,8 +13,8 @@ class Index extends App.Controller
# check authentication # check authentication
return if !@authenticate() return if !@authenticate()
@log 'view:', @view
@view_mode = localStorage.getItem( "mode:#{@view}" ) || 's' @view_mode = localStorage.getItem( "mode:#{@view}" ) || 's'
@log 'view:', @view, @view_mode
# set title # set title
@title '' @title ''
@ -99,6 +99,10 @@ class Index extends App.Controller
pages_total = parseInt( ( @tickets_count / @overview.view[@view_mode].per_page ) + 0.99999 ) || 1 pages_total = parseInt( ( @tickets_count / @overview.view[@view_mode].per_page ) + 0.99999 ) || 1
# render init page # render init page
edit = true
if @isRole('Customer')
checkbox = false
edit = false
view_modes = [ view_modes = [
{ {
name: 'S', name: 'S',
@ -117,6 +121,7 @@ class Index extends App.Controller
pages_total: pages_total, pages_total: pages_total,
start_page: @start_page, start_page: @start_page,
checkbox: true, checkbox: true,
edit: edit,
) )
html = $(html) html = $(html)
# html.find('li').removeClass('active') # html.find('li').removeClass('active')
@ -125,10 +130,6 @@ class Index extends App.Controller
# create table/overview # create table/overview
checkbox = true checkbox = true
edit = true
if @isRole('Customer')
checkbox = false
edit = false
table = '' table = ''
if @view_mode is 'm' if @view_mode is 'm'
table = App.view('agent_ticket_view/detail')( table = App.view('agent_ticket_view/detail')(
@ -150,7 +151,6 @@ class Index extends App.Controller
model: App.Ticket, model: App.Ticket,
objects: @ticket_list_show, objects: @ticket_list_show,
checkbox: checkbox, checkbox: checkbox,
edit: edit,
) )
# append content table # append content table
@ -183,12 +183,12 @@ class Index extends App.Controller
@start_page = id @start_page = id
@fetch() @fetch()
view_mode: (e) => viewmode: (e) =>
e.preventDefault() e.preventDefault()
@start_page = 1 @start_page = 1
id = $(e.target).data('mode') mode = $(e.target).data('mode')
@view_mode = id @view_mode = mode
localStorage.setItem( "mode:#{@view}", id ) localStorage.setItem( "mode:#{@view}", mode )
@fetch() @fetch()
@render() @render()
@ -373,9 +373,12 @@ class Settings extends App.ControllerModal
# item_class: 'keepleft', # item_class: 'keepleft',
# }, # },
] ]
form = @formGen( model: { configure_attributes: @configure_attributes_article } )
@el.find('.setting').append(form) new App.ControllerForm(
el: @el.find('#form-setting'),
model: { configure_attributes: @configure_attributes_article },
autofocus: false,
)
@modalShow() @modalShow()

View file

@ -39,16 +39,22 @@ class App extends Spine.Controller
template = ( params = {} ) => template = ( params = {} ) =>
# define print name helper # define print name helper
params.P = ( item ) -> params.P = ( item, row = {} ) ->
return item if !item return item if !item
# if date is a object, get name of the object
if typeof item is 'object' if typeof item is 'object'
if item.displayNameLong if item.displayNameLong
item.displayNameLong() return item.displayNameLong()
else if item.displayName else if item.displayName
item.displayName() return item.displayName()
else return item.name
item.name
else # execute callback on content
if row.callback
return row.callback( item )
# return raw data
item item
# define translation helper # define translation helper

View file

@ -8,7 +8,7 @@
<ul> <ul>
<% for item in @view_modes: %> <% for item in @view_modes: %>
<li class="<%= item.class %>"> <li class="<%= item.class %>">
<a href="#" data-type="view-mode" data-mode="<%= item.type %>"><%= item.name %></a> <a href="#" data-type="viewmode" data-mode="<%= item.type %>"><%= item.name %></a>
</li> </li>
<% end %> <% end %>
</ul> </ul>

View file

@ -1,27 +1,45 @@
<div> <div>
<input type="checkbox" value="" name="bulk_all"/> <div class="row">
<% for ticket in @objects: %>
<div class="row" data-id="<%= ticket.id %>">
<div class="span1"> <div class="span1">
<table> <input type="checkbox" value="" name="bulk_all"/>
<tr> </div>
<td> </div>
<table class="table table-striped table-hover">
<% for ticket in @objects: %>
<tr data-id="<%= ticket.id %>">
<td class="" style="width: 10px;">
<input type="checkbox" value="<%= ticket.id %>" name="bulk" class="keepleft"/> <input type="checkbox" value="<%= ticket.id %>" name="bulk" class="keepleft"/>
</td> </td>
<td> <td class="span1">
<img class="thumbnail user-data" data-id="<%= ticket.customer_id %>" src="<%= ticket.customer.image %>" alt=""> <img class="thumbnail user-data" data-id="<%= ticket.customer_id %>" src="<%= ticket.customer.image %>" alt="">
</td> </td>
<td class="span10">
<h3><a href="#" data-type="edit"><%= ticket.title %></a> <small><%= ticket.number %> <span class="humanTimeFromNow" data-time="<%= ticket.created_at %>">?</span></small></h3>
<div class="row">
<div class="span2">
<b><%- @T( 'State' ) %></b> <%- @T( ticket.ticket_state.name ) %>
</div>
<div class="span2">
<b><%- @T( 'Group' ) %></b> <%= ticket.group.name %>
</div>
<div class="span2">
<b><%- @T( 'Customer' ) %></b> <%= ticket.customer.displayName() %>
</div>
</div>
<div class="row">
<div class="span2">
<b><%- @T( 'Priority' ) %></b> <%- @T( ticket.ticket_priority.name ) %>
</div>
<div class="span2">
<b><%- @T( 'Owner' ) %></b> <%= ticket.owner.displayName() %>
</div>
<div class="span2">
<b><%- @T( 'Organization' ) %></b> <%= ticket.customer.organization.name %>
</div>
</div>
</div>
</td>
</tr> </tr>
<% end %>
</table> </table>
</div> </div>
<div class="span11">
<h3><a href="#" data-type="edit"><%= ticket.title %></a> <small><%= ticket.number %></small></h3>
<b>State:</b> <%= ticket.ticket_state.name %>
<b>Priority:</b> <%= ticket.ticket_priority.name %>
<b>Group:</b> <%= ticket.group.name %>
<b>Owner:</b> <%= ticket.owner.displayName() %>
</div>
</div>
<hr/>
<% end %>
</div>

View file

@ -23,12 +23,12 @@
</td> </td>
<% end %> <% end %>
<% for row in @overview: %> <% for row in @overview: %>
<% displayName = @P( object[row.name] ) %> <% displayName = @P( object[row.name], row ) %>
<% if row.translate: %><% displayName = @T( displayName ) %><% end %> <% if row.translate: %><% displayName = @T( displayName ) %><% end %>
<% if row.title: %> <% if row.title: %>
<% displayNameTitle = displayName %> <% displayNameTitle = displayName %>
<% if object[row.title]: %> <% if object[row.title]: %>
<% displayNameTitle = @P( object[row.title] ) %> <% displayNameTitle = @P( object[row.title], row ) %>
<% end %> <% end %>
<% end %> <% end %>
<td <% if row.title: %>title="<%= displayNameTitle %>"<% end %>> <td <% if row.title: %>title="<%= displayNameTitle %>"<% end %>>

View file

@ -15,7 +15,7 @@
<% if item.navheader: %> <% if item.navheader: %>
<li class="nav-header"><%- @T( item.navheader ) %></li> <li class="nav-header"><%- @T( item.navheader ) %></li>
<% end %> <% end %>
<li class="<% if @active_tab[item.target] : %>active<% end %>"><a href="<%= item.target %>"><%- @T( item.name ) %><% if item['count'] isnt undefined: %><span class="badge count"><%= item['count'] %></span><% end %></a></li> <li class="<% if @active_tab[item.target] : %>active<% end %>"><a href="<%= item.target %>"><%- @T( item.name ) %><% if item['count'] isnt undefined: %><span class="badge count pull-right"><%= item['count'] %></span><% end %></a></li>
<% end %> <% end %>
</ul> </ul>
</li> </li>
@ -42,7 +42,7 @@
<% if item.navheader: %> <% if item.navheader: %>
<li class="nav-header"><%- @T( item.navheader ) %></li> <li class="nav-header"><%- @T( item.navheader ) %></li>
<% end %> <% end %>
<li class="<% if @active_tab[item.target] : %>active<% end %>"><a href="<%= item.target %>"><%- @T( item.name ) %><% if item['count'] isnt undefined: %><span class="badge count"><%= item['count'] %>)</span><% end %></a></li> <li class="<% if @active_tab[item.target] : %>active<% end %>"><a href="<%= item.target %>"><%- @T( item.name ) %><% if item['count'] isnt undefined: %><span class="badge count pull-right"><%= item['count'] %>)</span><% end %></a></li>
<% end %> <% end %>
</ul> </ul>
</li> </li>

View file

@ -99,7 +99,6 @@ h3 {
} }
.dropdown-menu .count { .dropdown-menu .count {
float: right;
padding-top: 1px; padding-top: 1px;
margin-left: 10px; margin-left: 10px;
} }