Merge branch 'interface' of github.com:martini/zammad into interface
This commit is contained in:
commit
eac5403042
14 changed files with 2074 additions and 88 deletions
|
@ -511,11 +511,11 @@ class App.Sidebar extends App.Controller
|
||||||
)
|
)
|
||||||
|
|
||||||
toggleSidebar: ->
|
toggleSidebar: ->
|
||||||
@el.parent().find('.tabsSidebarSpace').toggleClass('is-closed')
|
@el.parent().find('.tabsSidebar-sidebarSpacer').toggleClass('is-closed')
|
||||||
@el.parent().find('.tabsSidebar').toggleClass('is-closed')
|
@el.parent().find('.tabsSidebar').toggleClass('is-closed')
|
||||||
|
|
||||||
showSidebar: ->
|
showSidebar: ->
|
||||||
@el.parent().find('.tabsSidebarSpace').removeClass('is-closed')
|
@el.parent().find('.tabsSidebar-sidebarSpacer').removeClass('is-closed')
|
||||||
@el.parent().find('.tabsSidebar').removeClass('is-closed')
|
@el.parent().find('.tabsSidebar').removeClass('is-closed')
|
||||||
|
|
||||||
toggleTab: (e) ->
|
toggleTab: (e) ->
|
||||||
|
|
|
@ -101,10 +101,23 @@ App.Config.set( 'layout_ref/content', Content, 'Routes' )
|
||||||
|
|
||||||
|
|
||||||
class CommunicationOverview extends App.ControllerContent
|
class CommunicationOverview extends App.ControllerContent
|
||||||
|
|
||||||
constructor: ->
|
constructor: ->
|
||||||
super
|
super
|
||||||
@render()
|
@render()
|
||||||
|
|
||||||
|
@bindScrollPageHeader()
|
||||||
|
|
||||||
|
bindScrollPageHeader: ->
|
||||||
|
pageHeader = @$('.page-header')
|
||||||
|
scrollHolder = pageHeader.scrollParent()
|
||||||
|
scrollBody = scrollHolder.get(0).scrollHeight - scrollHolder.height()
|
||||||
|
|
||||||
|
if scrollBody > pageHeader.height()
|
||||||
|
skrollr.init
|
||||||
|
forceHeight: false
|
||||||
|
holder: scrollHolder.get(0)
|
||||||
|
|
||||||
render: ->
|
render: ->
|
||||||
@html App.view('layout_ref/communication_overview')()
|
@html App.view('layout_ref/communication_overview')()
|
||||||
|
|
||||||
|
|
|
@ -378,6 +378,18 @@ class App.TicketZoom extends App.Controller
|
||||||
|
|
||||||
@autosaveStart()
|
@autosaveStart()
|
||||||
|
|
||||||
|
@bindScrollPageHeader()
|
||||||
|
|
||||||
|
bindScrollPageHeader: ->
|
||||||
|
pageHeader = @$('.page-header')
|
||||||
|
scrollHolder = pageHeader.scrollParent()
|
||||||
|
scrollBody = scrollHolder.get(0).scrollHeight - scrollHolder.height()
|
||||||
|
|
||||||
|
if scrollBody > pageHeader.height()
|
||||||
|
skrollr.init
|
||||||
|
forceHeight: false
|
||||||
|
holder: scrollHolder.get(0)
|
||||||
|
|
||||||
autosaveStop: =>
|
autosaveStop: =>
|
||||||
@autosaveLast = {}
|
@autosaveLast = {}
|
||||||
@clearInterval( 'autosave' )
|
@clearInterval( 'autosave' )
|
||||||
|
|
1773
app/assets/javascripts/app/lib/animations/skrollr.js
Normal file
1773
app/assets/javascripts/app/lib/animations/skrollr.js
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,5 +1,5 @@
|
||||||
<div class="tabsSidebar-holder">
|
<div class="tabsSidebar-holder">
|
||||||
<div class="main no-padding flex tabsSidebarSpace">
|
<div class="main no-padding flex tabsSidebar-sidebarSpacer tabsSidebar-tabsSpacer">
|
||||||
<div class="newTicket">
|
<div class="newTicket">
|
||||||
<div class="box">
|
<div class="box">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
|
|
|
@ -6,6 +6,43 @@
|
||||||
|
|
||||||
<h2>Ticket Article</h2>
|
<h2>Ticket Article</h2>
|
||||||
|
|
||||||
|
<div class="ticketZoom">
|
||||||
|
<div class="scrollPageHeader zIndex-9 horizontal center"
|
||||||
|
data-anchor-target=".ticketZoom .page-header"
|
||||||
|
data-128-top-bottom="transform: translateY(-64px);"
|
||||||
|
data-64-top-bottom="transform: translateY(0px);"
|
||||||
|
>
|
||||||
|
<small>Ticket# <span class="ticket-number">1002</span></small>
|
||||||
|
<div class="ticket-title flex">
|
||||||
|
<h1 contenteditable="true" class="ticket-title-update" data-placeholder="Enter Title...">Welcome to Zammad! We want to entertain you and your whole family!</h1>
|
||||||
|
</div>
|
||||||
|
<div class="pagination-counter">
|
||||||
|
<span class="pagination-item-current">1</span>/<span class="pagination-total-items">36</span>
|
||||||
|
</div>
|
||||||
|
<ul class="pagination">
|
||||||
|
<li>
|
||||||
|
<a class="centered" href="#" data-from="<%= @items_from - @items_per_page %>" data-type="page">
|
||||||
|
<span class="left arrow icon"></span>
|
||||||
|
</a>
|
||||||
|
<li>
|
||||||
|
<a class="centered" href="#" data-from="<%= @items_from + @items_per_page %>" data-type="page">
|
||||||
|
<span class="right arrow icon"></span>
|
||||||
|
</a>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<div class="page-header horizontal">
|
||||||
|
<div class="flex vertical center">
|
||||||
|
<span class="avatar unique user-popover big" data-id="2" style="background-position: -92.79607555375712px -106.24902447601627px;" data-original-title="" title="">NB</span>
|
||||||
|
<div class="ticket-title">
|
||||||
|
<h1 contenteditable="true" class="ticket-title-update" data-placeholder="Enter Title...">Welcome to Zammad! We want to entertain you and your whole family!</h1>
|
||||||
|
</div>
|
||||||
|
<div class="ticket-meta">
|
||||||
|
<small class="task-subline">Ticket# <span class="ticket-number">10001</span> - erstellte <span class="humanTimeFromNow" data-time="2014-07-11T10:10:32.000Z" data-tooltip="11.07.2014 12:10">11.07.2014</span>
|
||||||
|
</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="ticket-article">
|
<div class="ticket-article">
|
||||||
<div class="ticket-article-item bubble-grid customer phone" data-id="1" id="article-1">
|
<div class="ticket-article-item bubble-grid customer phone" data-id="1" id="article-1">
|
||||||
<div class="article-meta-clip top">
|
<div class="article-meta-clip top">
|
||||||
|
@ -61,6 +98,90 @@ The <a href="http://Zammad.org" title="http://Zammad.org" target="_blank">Zammad
|
||||||
<small class="task-subline zIndex-1"><time class="humanTimeFromNow" data-time="2014-07-11T10:10:32.000Z" data-tooltip="2014-07-11 12:10">2014-07-11</time></small>
|
<small class="task-subline zIndex-1"><time class="humanTimeFromNow" data-time="2014-07-11T10:10:32.000Z" data-tooltip="2014-07-11 12:10">2014-07-11</time></small>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="ticket-article-item bubble-grid agent note" data-id="23" id="article-23">
|
||||||
|
<div class="article-meta-clip top">
|
||||||
|
<div class="article-content-meta top hide">
|
||||||
|
<div class="article-meta top">
|
||||||
|
<div class="horizontal article-meta-row" title="From: Felix Niklas">
|
||||||
|
<div class="article-meta-key u-textTruncate">From</div>
|
||||||
|
<div class="article-meta-value flex u-textTruncate">Felix Niklas</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="article-content zIndex-1 horizontal">
|
||||||
|
<span class="avatar user-popover " data-id="3" style="background-image: url(api/v1/users/image/bb100af55234cf61fb6f207636f095f8)" data-placement="right" data-original-title="" title=""></span>
|
||||||
|
<div class="flex bubble-gap internal-border">
|
||||||
|
<div class="text-bubble"><div class="bubble-arrow"></div>Hallp HP, du kannst dich nur einmal einloggen. Was machst du genau?</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="article-meta-clip bottom">
|
||||||
|
<div class="article-content-meta bottom hide">
|
||||||
|
<div class="article-meta bottom">
|
||||||
|
<div class="horizontal article-meta-row">
|
||||||
|
<div class="article-meta-key">Kanal</div>
|
||||||
|
<div class="article-meta-value">
|
||||||
|
<span class="white note channel icon"></span>
|
||||||
|
note
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="article-actions horizontal stretch">
|
||||||
|
<a href="" data-type="internal" class="article-action u-clickable">
|
||||||
|
<span class="internal action icon"></span>set to internal
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<small class="task-subline zIndex-1"><time class="humanTimeFromNow" data-time="2014-08-05T13:34:01.000Z" data-tooltip="2014-08-05 15:34">2014-08-05</time></small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="ticket-article-item bubble-grid customer phone" data-id="1" id="article-1">
|
||||||
|
<div class="article-meta-clip top">
|
||||||
|
<div class="article-content-meta top hide">
|
||||||
|
<div class="article-meta top">
|
||||||
|
<div class="horizontal article-meta-row" title="From: Zammad Feedback <feedback@zammad.org>">
|
||||||
|
<div class="article-meta-key u-textTruncate">From</div>
|
||||||
|
<div class="article-meta-value flex u-textTruncate">Zammad Feedback <feedback@zammad.org></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="article-content zIndex-1 horizontal reverse">
|
||||||
|
<span class="avatar unique user-popover " data-id="2" style="background-position: -96.5079185759074px -112.28590086669901px;" data-placement="left" data-original-title="" title="">NB</span>
|
||||||
|
<div class="flex bubble-gap internal-border">
|
||||||
|
<div class="text-bubble"><div class="bubble-arrow"></div>Ich wollte mir die Lyrics von Maria herunterladen, aber ich schaff es einfach nicht, da raufzukommen. Schick mir bitte mein Passwort.
|
||||||
|
|
||||||
|
Grüße, Peter</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="article-meta-clip bottom">
|
||||||
|
<div class="article-content-meta bottom hide">
|
||||||
|
<div class="article-meta bottom">
|
||||||
|
<div class="horizontal article-meta-row">
|
||||||
|
<div class="article-meta-key">Kanal</div>
|
||||||
|
<div class="article-meta-value">
|
||||||
|
<span class="white phone channel icon"></span>
|
||||||
|
phone
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="article-actions horizontal stretch">
|
||||||
|
<a href="" data-type="internal" class="article-action u-clickable">
|
||||||
|
<span class="internal action icon"></span>set to internal
|
||||||
|
</a>
|
||||||
|
<a href="#" data-type="reply" class="article-action u-clickable">
|
||||||
|
<span class="reply action icon"></span>reply
|
||||||
|
</a>
|
||||||
|
<a href="#ticket/create/1/1" data-type="split" class="article-action u-clickable">
|
||||||
|
<span class="split action icon"></span>split
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<small class="task-subline zIndex-1"><time class="humanTimeFromNow" data-time="2014-07-11T10:10:32.000Z" data-tooltip="2014-07-11 12:10">2014-07-11</time></small>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="ticket-article-item bubble-grid agent note" data-id="23" id="article-23">
|
<div class="ticket-article-item bubble-grid agent note" data-id="23" id="article-23">
|
||||||
<div class="article-meta-clip top">
|
<div class="article-meta-clip top">
|
||||||
<div class="article-content-meta top hide">
|
<div class="article-content-meta top hide">
|
||||||
|
@ -116,5 +237,6 @@ Oliver
|
||||||
<small class="task-subline zIndex-1"><time class="humanTimeFromNow" data-time="2014-08-05T13:34:01.000Z" data-tooltip="2014-08-05 15:34">2014-08-05</time></small>
|
<small class="task-subline zIndex-1"><time class="humanTimeFromNow" data-time="2014-08-05T13:34:01.000Z" data-tooltip="2014-08-05 15:34">2014-08-05</time></small>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
|
@ -1,5 +1,5 @@
|
||||||
<div class="tabsSidebar-holder flex horizontal">
|
<div class="tabsSidebar-holder flex horizontal">
|
||||||
<div class="main flex tabsSidebarSpace">
|
<div class="main flex tabsSidebar-sidebarSpacer tabsSidebar-tabsSpacer">
|
||||||
<h1>content</h1>
|
<h1>content</h1>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="flex vertical">
|
<div class="flex vertical">
|
||||||
<div class="flex u-positionOrigin horizontal">
|
<div class="flex u-positionOrigin horizontal">
|
||||||
<div class="main flex tabsSidebarSpace">
|
<div class="main flex tabsSidebar-sidebarSpacer tabsSidebar-tabsSpacer">
|
||||||
<div class="organizationZoom">
|
<div class="organizationZoom">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h1><%- @T( @head ) %></h1>
|
<h1><%- @T( @head ) %></h1>
|
||||||
|
|
|
@ -1,7 +1,28 @@
|
||||||
<div class="tabsSidebar-holder flex vertical">
|
<div class="tabsSidebar-holder flex vertical">
|
||||||
<div class="flex u-positionOrigin horizontal">
|
<div class="flex u-positionOrigin horizontal">
|
||||||
<div class="main no-padding flex tabsSidebarSpace">
|
<div class="main no-padding flex tabsSidebar-sidebarSpacer tabsSidebar-tabsSpacer">
|
||||||
<div class="ticketZoom">
|
<div class="ticketZoom">
|
||||||
|
<div class="scrollPageHeader tabsSidebar-sidebarSpacer zIndex-9 horizontal center"
|
||||||
|
data-anchor-target=".ticketZoom .page-header"
|
||||||
|
data-128-top-bottom="transform: translateY(-64px);"
|
||||||
|
data-64-top-bottom="transform: translateY(0px);"
|
||||||
|
>
|
||||||
|
<small><%- @C('ticket_hook') %> <span class="ticket-number"><%- @ticket.number %></span></small>
|
||||||
|
<div class="ticket-title flex"></div>
|
||||||
|
<div class="pagination-counter">
|
||||||
|
<span class="pagination-item-current">1</span>/<span class="pagination-total-items">36</span>
|
||||||
|
</div>
|
||||||
|
<ul class="pagination">
|
||||||
|
<li>
|
||||||
|
<a class="centered" href="#" data-from="<%= @items_from - @items_per_page %>" data-type="page">
|
||||||
|
<span class="left arrow icon"></span>
|
||||||
|
</a>
|
||||||
|
<li>
|
||||||
|
<a class="centered" href="#" data-from="<%= @items_from + @items_per_page %>" data-type="page">
|
||||||
|
<span class="right arrow icon"></span>
|
||||||
|
</a>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
<div class="page-header horizontal">
|
<div class="page-header horizontal">
|
||||||
<div class="flex vertical center">
|
<div class="flex vertical center">
|
||||||
<%- @ticket.customer.avatar(true) %>
|
<%- @ticket.customer.avatar(true) %>
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
<h1><span contenteditable="true" class="ticket-title-update" data-placeholder="<%= @T('Enter Title...') %>"><%= @P( @ticket.title ) %></span></h1>
|
<h1 contenteditable="true" class="ticket-title-update" data-placeholder="<%= @T('Enter Title...') %>"><%= @P( @ticket.title ) %></h1>
|
|
@ -1,6 +1,6 @@
|
||||||
<div class="tabsSidebar-holder flex vertical">
|
<div class="tabsSidebar-holder flex vertical">
|
||||||
<div class="flex u-positionOrigin horizontal">
|
<div class="flex u-positionOrigin horizontal">
|
||||||
<div class="main flex tabsSidebarSpace">
|
<div class="main flex tabsSidebar-sidebarSpacer tabsSidebar-tabsSpacer">
|
||||||
<div class="userZoom">
|
<div class="userZoom">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<h1><%- @T( @head ) %></h1>
|
<h1><%- @T( @head ) %></h1>
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
|
|
||||||
//= require ./app/lib/animations/velocity.min.js
|
//= require ./app/lib/animations/velocity.min.js
|
||||||
//= require ./app/lib/animations/velocity.ui.js
|
//= require ./app/lib/animations/velocity.ui.js
|
||||||
|
//= require ./app/lib/animations/skrollr.js
|
||||||
|
|
||||||
//not_used= require_tree ./app/lib/spine
|
//not_used= require_tree ./app/lib/spine
|
||||||
//= require ./app/lib/spine/spine.coffee
|
//= require ./app/lib/spine/spine.coffee
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
display: -webkit-flex;
|
display: -webkit-flex;
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
.horizontal.hide, .vertical.hide, .centered.hide {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
.horizontal {
|
.horizontal {
|
||||||
-webkit-box-orient: horizontal;
|
-webkit-box-orient: horizontal;
|
||||||
|
|
|
@ -122,6 +122,9 @@ small {
|
||||||
[contenteditable]:focus {
|
[contenteditable]:focus {
|
||||||
border-color: hsl(145,51%,45%);
|
border-color: hsl(145,51%,45%);
|
||||||
}
|
}
|
||||||
|
[contenteditable]:focus {
|
||||||
|
text-overflow: clip !important;
|
||||||
|
}
|
||||||
[contenteditable].invalid {
|
[contenteditable].invalid {
|
||||||
border-color: #F92;
|
border-color: #F92;
|
||||||
}
|
}
|
||||||
|
@ -530,6 +533,10 @@ textarea,
|
||||||
color: #706f6f;
|
color: #706f6f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.page-header {
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
|
||||||
.page-header-title {
|
.page-header-title {
|
||||||
margin-bottom: 15px;
|
margin-bottom: 15px;
|
||||||
}
|
}
|
||||||
|
@ -2404,12 +2411,16 @@ footer {
|
||||||
|
|
||||||
.ticketZoom .page-header {
|
.ticketZoom .page-header {
|
||||||
margin-top: 62px;
|
margin-top: 62px;
|
||||||
margin-bottom: 46px;
|
margin-bottom: 0;
|
||||||
border-bottom: none;
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ticketZoom .ticket-article {
|
||||||
|
margin-top: 55px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ticket-title {
|
.ticket-title {
|
||||||
max-width: 90%;
|
max-width: 596px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ticket-title h1 {
|
.ticket-title h1 {
|
||||||
|
@ -2963,13 +2974,16 @@ footer {
|
||||||
border-radius: 0 4px 4px 0;
|
border-radius: 0 4px 4px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabsSidebarSpace {
|
.tabsSidebar-tabsSpacer {
|
||||||
padding-right: 62px !important;
|
padding-right: 62px !important;
|
||||||
margin-right: 280px;
|
|
||||||
transition: 500ms;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.tabsSidebarSpace.is-closed {
|
.tabsSidebar-sidebarSpacer {
|
||||||
|
margin-right: 280px;
|
||||||
|
transition: margin 500ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tabsSidebar-sidebarSpacer.is-closed {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3124,7 +3138,6 @@ footer {
|
||||||
|
|
||||||
.box .page-header {
|
.box .page-header {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
border-bottom: none;
|
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding-bottom: 12px;
|
padding-bottom: 12px;
|
||||||
}
|
}
|
||||||
|
@ -3652,6 +3665,34 @@ footer {
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.scrollPageHeader {
|
||||||
|
background: white;
|
||||||
|
border-bottom: 1px solid hsl(0,0%,78%);
|
||||||
|
height: 64px;
|
||||||
|
left: 260px;
|
||||||
|
padding: 0 22px;
|
||||||
|
position: fixed;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
transform: translateY(-64px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.scrollPageHeader small {
|
||||||
|
color: hsl(198,19%,72%);
|
||||||
|
}
|
||||||
|
|
||||||
|
.scrollPageHeader .ticket-title {
|
||||||
|
max-width: initial;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scrollPageHeader h1 {
|
||||||
|
font-size: 19px;
|
||||||
|
margin: 0 15px;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
||||||
----------------
|
----------------
|
||||||
|
|
Loading…
Reference in a new issue