Merge branch 'master' of github.com:martini/zammad
This commit is contained in:
commit
c986be287b
11 changed files with 119 additions and 106 deletions
Binary file not shown.
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 10 KiB |
|
@ -110,7 +110,7 @@ class Index extends App.Controller
|
|||
|
||||
@configure_attributes_ticket = [
|
||||
{ name: 'ticket_state_id', display: 'State', tag: 'select', multiple: false, null: true, relation: 'TicketState', default: 'new', class: 'span2', item_class: 'keepleft' },
|
||||
{ name: 'ticket_priority_id', display: 'Priority', tag: 'select', multiple: false, null: true, relation: 'TicketPriority', default: '2 normal', class: 'span2', item_class: 'keepleft' },
|
||||
{ name: 'ticket_priority_id', display: 'Priority', tag: 'select', multiple: false, null: true, relation: 'TicketPriority', default: '2 normal', class: 'span1', item_class: 'keepleft' },
|
||||
{ name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: true, relation: 'Group', class: 'span2', item_class: 'keepleft' },
|
||||
{ name: 'owner_id', display: 'Owner', tag: 'select', multiple: false, null: true, relation: 'User', filter: @edit_form, nulloption: true, class: 'span2', item_class: 'keepleft' },
|
||||
]
|
||||
|
|
|
@ -485,8 +485,8 @@ qq.FileUploader = function(o){
|
|||
listElement: null,
|
||||
|
||||
template: '<div class="qq-uploader">' +
|
||||
'<div class="qq-upload-drop-area"><span>Drop files here to upload</span></div>' +
|
||||
'<div class="qq-upload-button">Upload a file</div>' +
|
||||
'<div class="qq-upload-drop-area btn"><i class="icon-attachment"></i> Drop to attach files</div>' +
|
||||
'<div class="qq-upload-button btn"><i class="icon-attachment"></i> Attach files</div>' +
|
||||
'<ul class="qq-upload-list"></ul>' +
|
||||
'</div>',
|
||||
|
||||
|
@ -549,7 +549,8 @@ qq.extend(qq.FileUploader.prototype, {
|
|||
},
|
||||
_setupDragDrop: function(){
|
||||
var self = this,
|
||||
dropArea = this._find(this._element, 'drop');
|
||||
dropArea = this._find(this._element, 'drop'),
|
||||
button = this._find(this._element, 'button');
|
||||
|
||||
var dz = new qq.UploadDropZone({
|
||||
element: dropArea,
|
||||
|
@ -565,6 +566,7 @@ qq.extend(qq.FileUploader.prototype, {
|
|||
},
|
||||
onDrop: function(e){
|
||||
dropArea.style.display = 'none';
|
||||
button.style.display = 'inline-block';
|
||||
qq.removeClass(dropArea, self._classes.dropActive);
|
||||
self._uploadFileList(e.dataTransfer.files);
|
||||
}
|
||||
|
@ -575,7 +577,8 @@ qq.extend(qq.FileUploader.prototype, {
|
|||
qq.attach(document, 'dragenter', function(e){
|
||||
if (!dz._isValidFileDrag(e)) return;
|
||||
|
||||
dropArea.style.display = 'block';
|
||||
dropArea.style.display = 'block';
|
||||
button.style.display = 'none';
|
||||
});
|
||||
qq.attach(document, 'dragleave', function(e){
|
||||
if (!dz._isValidFileDrag(e)) return;
|
||||
|
@ -583,7 +586,8 @@ qq.extend(qq.FileUploader.prototype, {
|
|||
var relatedTarget = document.elementFromPoint(e.clientX, e.clientY);
|
||||
// only fire when leaving document out
|
||||
if ( ! relatedTarget || relatedTarget.nodeName == "HTML"){
|
||||
dropArea.style.display = 'none';
|
||||
dropArea.style.display = 'none';
|
||||
button.style.display = 'inline-block';
|
||||
}
|
||||
});
|
||||
},
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="pagination keepleft">
|
||||
<div class="pagination keepright">
|
||||
<ul>
|
||||
<% for item in @view_modes: %>
|
||||
<li class="<%= item.class %>">
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
<h1><%= @ticket.title %> <small><%= @ticket.number %></small></h1>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="row ticket-answer">
|
||||
<div class="span9">
|
||||
|
||||
<div class="row">
|
||||
<div class="span1 media-grid">
|
||||
<div class="row well">
|
||||
<div class="avatar span1 media-grid">
|
||||
<img class="thumbnail user-data" data-id="<%= window.Session['id'] %>"" src="<%- window.Session['image'] %>" alt="">
|
||||
</div>
|
||||
|
||||
<div class="span8">
|
||||
<div class="row ">
|
||||
<div class="row">
|
||||
|
||||
<form class="form-stacked keepleft update-box">
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
|||
|
||||
<div class="keepleft" id="file-uploader"></div>
|
||||
|
||||
<input type="submit" class="btn primary submit" value="submit">
|
||||
<input type="submit" class="btn btn-primary submit" value="submit">
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
|
7
app/assets/stylesheets/bootstrap.css
vendored
7
app/assets/stylesheets/bootstrap.css
vendored
|
@ -1410,7 +1410,7 @@ table .span24 {
|
|||
.icon-glass {
|
||||
background-position: 0 0;
|
||||
}
|
||||
.icon-music {
|
||||
.icon-attachment {
|
||||
background-position: -24px 0;
|
||||
}
|
||||
.icon-search {
|
||||
|
@ -3193,6 +3193,11 @@ input[type="submit"].btn.btn-mini {
|
|||
-moz-border-radius: 0 3px 3px 0;
|
||||
border-radius: 0 3px 3px 0;
|
||||
}
|
||||
.pagination li:only-child a {
|
||||
-webkit-border-radius: 3px;
|
||||
-moz-border-radius: 3px;
|
||||
border-radius: 3px;
|
||||
}
|
||||
.pagination-centered {
|
||||
text-align: center;
|
||||
}
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
.qq-uploader { position:relative; width: 100%;}
|
||||
|
||||
.qq-upload-button {
|
||||
display:block; /* or inline-block */
|
||||
width: 105px; padding: 7px 0; text-align:center;
|
||||
background:#880000; border-bottom:1px solid #ddd;color:#fff;
|
||||
/*display:block; /* or inline-block */
|
||||
/*width: 105px; padding: 7px 0; text-align:center;
|
||||
background:#880000; border-bottom:1px solid #ddd;color:#fff;*/
|
||||
}
|
||||
.qq-upload-button-hover {background:#cc0000;}
|
||||
.qq-upload-button-focus {outline:1px dotted black;}
|
||||
|
||||
.qq-upload-drop-area {
|
||||
position:absolute; top:0; left:0; width:100%; height:100%; min-height: 70px; z-index:2;
|
||||
background:#FF9797; text-align:center;
|
||||
/*position:absolute; top:0; left:0; width:100%; height:100%; min-height: 70px; z-index:2;
|
||||
background:#FF9797; text-align:center; */
|
||||
}
|
||||
.qq-upload-drop-area span {
|
||||
display:block; position:absolute; top: 50%; width:100%; margin-top:-8px; font-size:16px;
|
||||
/*display:block; position:absolute; top: 50%; width:100%; margin-top:-8px; font-size:16px;*/
|
||||
}
|
||||
.qq-upload-drop-area-active {background:#FF7171;}
|
||||
.qq-upload-drop-area-active {}
|
||||
|
||||
.qq-upload-list {margin:15px 35px; padding:0; list-style:disc;}
|
||||
.qq-upload-list li { margin:0; padding:0; line-height:15px; font-size:12px;}
|
||||
|
|
|
@ -74,15 +74,29 @@ footer {
|
|||
}
|
||||
|
||||
.keepleft {
|
||||
float:left;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.keepright {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.update-box {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.article {
|
||||
.ticket-answer .well {
|
||||
margin-left: 0;
|
||||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.ticket-answer .avatar {
|
||||
margin-left: 0;
|
||||
}
|
||||
.ticket-answer .span8 { width: 560px; }
|
||||
|
||||
.article {
|
||||
margin-left: 0;
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
margin-top: 5px;
|
||||
|
|
|
@ -6,6 +6,7 @@ body {
|
|||
color: rgba(0,0,0,.89);
|
||||
font: 12px/17px "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
background: url(../img/minimalism_by_nerdynotdirty.jpg);
|
||||
background: url(../img/bg.jpg);
|
||||
background-size: cover;
|
||||
}
|
||||
.avatar {
|
||||
|
@ -15,8 +16,9 @@ body {
|
|||
background-size: cover;
|
||||
}
|
||||
header {
|
||||
height: 36px;
|
||||
padding: 8px 0 8px 13px;
|
||||
height: 40px;
|
||||
padding: 12px 0 8px 13px;
|
||||
background: #eee;
|
||||
border-bottom: 1px solid hsla(222, 10%, 55%,.34);
|
||||
}
|
||||
h2 {
|
||||
|
@ -30,6 +32,9 @@ header {
|
|||
margin-right: 13px;
|
||||
float: right;
|
||||
}
|
||||
header button {
|
||||
margin-top: -3px;
|
||||
}
|
||||
.sidebar {
|
||||
width: 200px;
|
||||
left: 0;
|
||||
|
@ -105,8 +110,16 @@ header {
|
|||
float: right;
|
||||
padding: 1px 5px;
|
||||
font-size: 10px;
|
||||
background: hsl(10, 100%, 50%);
|
||||
border-radius: 3px;
|
||||
font-weight: bold;
|
||||
text-shadow: 0 1px rgba(255,255,255,.55);
|
||||
background-color: hsl(55, 100%, 50%);
|
||||
background-image: -webkit-linear-gradient(transparent, rgba(0,0,0,.05));
|
||||
border-radius: 2px;
|
||||
border: 1px solid rgba(0,0,0,.34);
|
||||
box-shadow:
|
||||
0 1px rgba(0,0,0,.05),
|
||||
0 1px 3px rgba(0,0,0,.05),
|
||||
0 0 0 1px rgba(255,255,255,.21) inset;
|
||||
}
|
||||
.twoColumns, .stream, .conversation {
|
||||
top: 0;
|
||||
|
@ -121,9 +134,10 @@ header {
|
|||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
top: 36px;
|
||||
top: 40px;
|
||||
position: absolute;
|
||||
overflow: auto;
|
||||
background: white;
|
||||
}
|
||||
.stream {
|
||||
left: 0;
|
||||
|
@ -139,28 +153,37 @@ header {
|
|||
.stream.important article { border-left: 5px solid rgba(0,255,0,.34); }
|
||||
.stream article.urgent { border-left-color: rgba(255,0,0,.55); }
|
||||
.stream article.important { border-left-color: rgba(255,180,80,.89); }
|
||||
.stream article:before { width: 16px; height: 16px; top: 44px; left: 44px; content: " "; position: absolute; display: none; z-index: 1; opacity: 0.8; }
|
||||
.stream article:hover:before { display: block; }
|
||||
.stream article.fbt:before { background: url(img/facebook_16.png); }
|
||||
.stream article.selected {
|
||||
background-image: -webkit-linear-gradient(rgba(0,0,0,.13), rgba(0,0,0,.08));
|
||||
background: hsl(55, 100%, 50%);
|
||||
}
|
||||
.stream section {
|
||||
height: 100%;
|
||||
.stream article.selected p {
|
||||
color: black;
|
||||
}
|
||||
.stream section {
|
||||
margin-left: 63px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.stream .name { font-weight: bold; }
|
||||
.stream nav, .stream .time { float: right; }
|
||||
.stream nav { display: none; margin-top: -3px; }
|
||||
.stream nav span { color: hsl(222, 10%, 75%); padding-left: 3px; cursor: pointer; }
|
||||
.stream nav span:hover { color: hsl(222, 10%, 34%); }
|
||||
.stream article:hover nav { display: block; }
|
||||
.stream .time, .stream .service { padding-left: 5px; color: rgba(0,0,0,.34); font-size: 0.9em; }
|
||||
.stream article:hover .time { display: none; }
|
||||
.stream .service { visibility: hidden; }
|
||||
.stream article:hover .service { visibility: visible; }
|
||||
.stream .name {
|
||||
font-weight: bold;
|
||||
}
|
||||
.stream nav, .stream .time {
|
||||
float: right;
|
||||
}
|
||||
.stream nav {
|
||||
margin-top: -5px;
|
||||
}
|
||||
.stream nav span {
|
||||
color: rgba(0,0,0,.34);
|
||||
padding-left: 3px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.stream nav span:hover {
|
||||
color: rgba(0,0,0,1);
|
||||
}
|
||||
.stream .time, .stream .channel {
|
||||
padding-left: 5px;
|
||||
color: black;
|
||||
font-size: 0.95em;
|
||||
}
|
||||
.stream img {
|
||||
left: 13px;
|
||||
position: absolute;
|
||||
|
@ -182,6 +205,12 @@ header {
|
|||
}
|
||||
.stream section.answer button { float: right; }
|
||||
.stream section.answer img { top: 6px; left: 5px; width: 25px; border-radius: 2px; }
|
||||
.stream p {
|
||||
height: 32px;
|
||||
color: rgba(0,0,0,.50);
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.conversation {
|
||||
left: 40%;
|
||||
right: 0;
|
||||
|
@ -198,15 +227,17 @@ header {
|
|||
.conversation .agent .body, .conversation .customer .body {
|
||||
min-height: 34px;
|
||||
float: left;
|
||||
padding: 8px 13px;
|
||||
padding: 0 13px;
|
||||
margin: 0 0 13px 58px;
|
||||
background: white;
|
||||
border: 1px solid hsla(222, 10%, 55%,.34);
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 1px 2px hsla(222, 10%, 55%,.34);
|
||||
}
|
||||
.conversation .agent .body { float: right; margin: 0 58px 13px 0; }
|
||||
.converastion .agent { float: right; }
|
||||
.conversation .body p {
|
||||
margin: 8px 0;
|
||||
}
|
||||
.converastion .customer { float: left; }
|
||||
blockquote {
|
||||
margin: 8px 0;
|
||||
|
@ -227,6 +258,7 @@ header {
|
|||
button {
|
||||
padding: 3px 13px;
|
||||
color: rgba(0,0,0,.89);
|
||||
line-height: 15px;
|
||||
text-shadow: 0 1px rgba(255,255,255,.34);
|
||||
background: rgba(0,0,0,.13);
|
||||
background: -webkit-linear-gradient(rgba(0,0,0,.03), rgba(0,0,0,.08));
|
||||
|
|
BIN
prototype/img/bg.jpg
Normal file
BIN
prototype/img/bg.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
|
@ -51,12 +51,8 @@
|
|||
<img src="img/user2.jpg" />
|
||||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Jennifer Rostock</span><span class="service">via Mail</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">1 day ago</span>
|
||||
<span class="name">Jennifer Rostock</span><span class="channel">via Mail</span>
|
||||
<span class="time">30 seconds ago</span>
|
||||
</div>
|
||||
<p>What?! As you wish. No! Alderaan is peaceful. We have no weapons. You can't possibly… But with the blast shield down, I can't even see! How am I supposed to fight? Hey, Luke! May the Force be with you.</p>
|
||||
</section>
|
||||
|
@ -65,12 +61,8 @@
|
|||
<img src="img/user3.jpg" />
|
||||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Thomas B.</span><span class="service">via Twitter</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">3 days ago</span>
|
||||
<span class="name">Thomas B.</span><span class="channel">via Twitter</span>
|
||||
<span class="time">5 minutes ago</span>
|
||||
</div>
|
||||
<p>As you wish. Leave that to me. Send a distress signal, and inform the Senate that all on board were killed. Partially, but it also obeys your commands. Red Five standing by. I call it luck. Don't underestimate the Force.</p>
|
||||
</section>
|
||||
|
@ -79,12 +71,8 @@
|
|||
<img src="img/user4.jpg" />
|
||||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Martin R.</span><span class="service">via Mail</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">2 days ago</span>
|
||||
<span class="name">Martin R.</span><span class="channel">via Mail</span>
|
||||
<span class="time">5 hours ago</span>
|
||||
</div>
|
||||
<p>I want to know what happened to the plans they sent you. A tremor in the Force. The last time I felt it was in the presence of my old master.</p>
|
||||
</section>
|
||||
|
@ -93,11 +81,7 @@
|
|||
<img src="img/user5.jpg" />
|
||||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Stefan Lohammer</span><span class="service">via Facebook</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="name">Stefan Lohammer</span><span class="channel">via Facebook</span>
|
||||
<span class="time">2 days</span>
|
||||
</div>
|
||||
<p>I suggest you try it again, Luke. This time, let go your conscious self and act on instinct. Leave that to me. Send a distress signal, and inform the Senate that all on board were killed.</p>
|
||||
|
@ -108,10 +92,6 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Anna Huber</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">5 days</span>
|
||||
</div>
|
||||
<p>Your eyes can deceive you. Don't trust them. I want to come with you to Alderaan. There's nothing for me here now. I want to learn the ways of the Force and be a Jedi, like my father before me.</p>
|
||||
|
@ -122,10 +102,6 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Ramona Kurzer</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">1 week ago</span>
|
||||
</div>
|
||||
<p>I'm surprised you had the courage to take the responsibility yourself. I can't get involved! I've got work to do! It's not that I like the Empire, I hate it, but there's nothing I can do about it right now. It's such a long way from here. The Force is strong with this one. I have you now.</p>
|
||||
|
@ -136,10 +112,6 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Philipp Maier</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">2 weeks ago</span>
|
||||
</div>
|
||||
<p>Escape is not his plan. I must face him, alone. But with the blast shield down, I can't even see! How am I supposed to fight? All right. Well, take care of yourself, Han. I guess that's what you're best at, ain't it?</p>
|
||||
|
@ -150,10 +122,6 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Simon Lanz</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">1 month ago</span>
|
||||
</div>
|
||||
<p>
|
||||
|
@ -166,11 +134,7 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Elisabeth Franke</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">2 Tagen</span>
|
||||
<span class="time">3 months ago</span>
|
||||
</div>
|
||||
<p>
|
||||
I don't know what you're talking about. I am a member of the Imperial Senate on a diplomatic mission to Alderaan-- I'm trying not to, kid. You don't believe in the Force, do you? Look, I ain't in this for your revolution, and I'm not in it for you, Princess. I expect to be well paid.
|
||||
|
@ -182,11 +146,7 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Franz Huber</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">2 Tagen</span>
|
||||
<span class="time">6 months ago</span>
|
||||
</div>
|
||||
<p>
|
||||
I'm in it for the money. She must have hidden the plans in the escape pod. Send a detachment down to retrieve them, and see to it personally, Commander. There'll be no one to stop us this time!
|
||||
|
@ -198,11 +158,7 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Lars Friedrich</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">5 months</span>
|
||||
<span class="time">1 year ago</span>
|
||||
</div>
|
||||
<p>
|
||||
Obi-Wan is here. The Force is with him. Partially, but it also obeys your commands. Hokey religions and ancient weapons are no match for a good blaster at your side, kid. All right.
|
||||
|
@ -214,11 +170,7 @@
|
|||
<section>
|
||||
<div class="info">
|
||||
<span class="name">Felix</span>
|
||||
<nav>
|
||||
<span class="answer">antworten</span>
|
||||
<span class="mark">markieren</span>
|
||||
</nav>
|
||||
<span class="time">2 Tagen</span>
|
||||
<span class="time">3 years ago</span>
|
||||
</div>
|
||||
<p>
|
||||
Well, take care of yourself, Han. I guess that's what you're best at, ain't it? Remember, a Jedi can feel the Force flowing through him. You don't believe in the Force, do you?
|
||||
|
@ -303,5 +255,11 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="../app/assets/javascripts/app/lib/jquery-1.7.2.min.js"></script>
|
||||
<script>
|
||||
$('.stream article').click(function(){
|
||||
$(this).addClass('selected').siblings().removeClass('selected');
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in a new issue