Merge remote-tracking branch 'upstream/develop' into travis

This commit is contained in:
André Bauer 2016-10-24 10:38:25 +02:00
commit e07a4a3e3d
13 changed files with 113 additions and 66 deletions

View file

@ -13,7 +13,6 @@ Getting Started
---------------
1. Install Zammad on your system
```
root@shell> cd /opt/
root@shell> tar -xzf zammad-1.0.1.tar.gz
@ -22,7 +21,6 @@ Getting Started
```
2. Install all dependencies
```
zammad@shell> cd zammad
zammad@shell> gem install bundler
@ -35,14 +33,12 @@ Getting Started
```
3. Configure your databases
```
zammad@shell> cp config/database.yml.dist config/database.yml
zammad@shell> vi config/database.yml
```
4. Initialize your database
```
zammad@shell> export RAILS_ENV=production
zammad@shell> rake db:create
@ -51,7 +47,6 @@ Getting Started
```
5. Change directory to zammad (if needed) and start the web server:
```
zammad@shell> rake assets:precompile
zammad@shell> rails s -p 3000 # application web server
@ -61,4 +56,3 @@ Getting Started
6. Go to http://localhost:3000/#getting_started and you'll see:
"Welcome to Zammad!", there you need to create your admin user and you need to invite other agents.

View file

@ -17,7 +17,7 @@ Get Zammad
````shell
test -d ~/zammad/ || mkdir ~/zammad
cd ~/zammad/
curl -L -O http://zammad.org/zammad-latest.tar.bz2 | tar -xj
curl -L -O https://ftp.zammad.com/zammad-latest.tar.bz2 | tar -xj
````
Install Zammad

View file

@ -14,7 +14,7 @@
### Get Zammad
* su zammad
* cd ~
* wget http://ftp.zammad.com/zammad-latest.tar.gz
* wget https://ftp.zammad.com/zammad-latest.tar.gz
* tar -xzf zammad-latest.tar.gz
* exit
@ -53,4 +53,3 @@
### Restart nginx as root
* exit
* systemctl restart nginx

View file

@ -1,6 +1,6 @@
<div class="alert alert--danger hidden" role="alert"></div>
<p>
<%- @T('The tutorial on how to manage a %s is hosted on our [online documentation](http://zammad.org/documentation/channel/facebook).', 'Facebook App') %>
<%- @T('The tutorial on how to manage a %s is hosted on our [online documentation](https://zammad.org/documentation/channel/facebook).', 'Facebook App') %>
</p>
<fieldset>
<h2><%- @T('Enter your %s App Keys', 'Facebook') %></h2>

View file

@ -65,12 +65,12 @@ Welcome!
<br/>
Thank you for installing Zammad.<br/>
<br/>
You will find updates and patches at <a href="http://zammad.org/" title="http://zammad.org/" target="_blank">http://zammad.org/</a>. Online<br/>
documentation is available at <a href="http://guides.zammad.org/" title="http://guides.zammad.org/" target="_blank">http://guides.zammad.org/</a>. You can also<br/>
use our forums at <a href="http://forums.zammad.org/" title="http://forums.zammad.org/" target="_blank">http://forums.zammad.org/</a><br/>
You will find updates and patches at <a href="https://zammad.org/" title="https://zammad.org/" target="_blank">https://zammad.org/</a>. Online<br/>
documentation is available at <a href="https://zammad.org/documentation/" title="https://zammad.org/documentation/" target="_blank">https://zammad.org/documentation/</a>. Get involved<br/>
(discussions, contributing, ...) at <a href="https://zammad.org/participate" title="https://zammad.org/participate" target="_blank">https://zammad.org/participate</a>.<br/>
<br/>
Regards,<br/>
The <a href="http://Zammad.org" title="http://Zammad.org" target="_blank">Zammad.org</a> Project
The <a href="https://zammad.org" title="https://zammad.org" target="_blank">zammad.org</a> Project
<div class="textBubble-overflowContainer">
<div class="btn btn--text js-unfold"><%- @T('See more') %></div>
</div>

View file

@ -97,15 +97,15 @@
</div>
<div>
You will find updates and patches at <a href="http://zammad.org/" target="_blank" title="http://zammad.org/">http://zammad.org/</a>. Online
You will find updates and patches at <a href="https://zammad.org/" target="_blank" title="https://zammad.org/">https://zammad.org/</a>. Online
</div>
<div>
documentation is available at <a href="http://guides.zammad.org/" target="_blank" title="http://guides.zammad.org/">http://guides.zammad.org/</a>. You can also
documentation is available at <a href="https://zammad.org/documentation/" target="_blank" title="https://zammad.org/documentation/>https://zammad.org/documentation/</a>. You can also
</div>
<div>
use our forums at <a href="http://forums.zammad.org/" target="_blank" title="http://forums.zammad.org/">http://forums.zammad.org/</a>
get involved (discussions, contributing, ...) at <a href="https://zammad.org/participate" target="_blank" title="https://zammad.org/participate">https://zammad.org/participate</a>.
</div>
<div>
@ -121,7 +121,7 @@
</div>
<div>
The <a href="http://Zammad.org" target="_blank" title="http://Zammad.org">Zammad.org</a> Project
The <a href="https://zammad.org" target="_blank" title="https://zammad.org">zammad.org</a> Project
</div>
<div class="textBubble-overflowContainer hide">

View file

@ -86,12 +86,12 @@
<br/>
Thank you for installing Zammad.<br/>
<br/>
You will find updates and patches at <a href="http://zammad.org/" title="http://zammad.org/" target="_blank">http://zammad.org/</a>. Online<br/>
documentation is available at <a href="http://guides.zammad.org/" title="http://guides.zammad.org/" target="_blank">http://guides.zammad.org/</a>. You can also<br/>
use our forums at <a href="http://forums.zammad.org/" title="http://forums.zammad.org/" target="_blank">http://forums.zammad.org/</a><br/>
You will find updates and patches at <a href="https://zammad.org/" title="https://zammad.org/" target="_blank">https://zammad.org/</a>. Online<br/>
documentation is available at <a href="https://zammad.org/documentation/" title="https://zammad.org/documentation/" target="_blank">https://zammad.org/documentation/</a>. Get involved<br/>
(discussions, contributing, ...) at <a href="https://zammad.org/participate" title="https://zammad.org/participate" target="_blank">https://zammad.org/participate</a>.<br/>
<br/>
Regards,<br/>
The <a href="http://Zammad.org" title="http://Zammad.org" target="_blank">Zammad.org</a> Project
The <a href="https://zammad.org" title="https://zammad.org" target="_blank">zammad.org</a> Project
</div>
<div class="textBubble-overflowContainer">
<div class="btn btn--text js-unfold"><%- @T('See more') %></div>

View file

@ -1,6 +1,6 @@
<div class="alert alert--danger hidden" role="alert"></div>
<p>
<%- @T('The tutorial on how to manage a %s is hosted on our [online documentation](http://zammad.org/documentation/channel/twitter).', 'Twitter App') %>
<%- @T('The tutorial on how to manage a %s is hosted on our [online documentation](https://zammad.org/documentation/channel/twitter).', 'Twitter App') %>
</p>
<fieldset>
<h2><%- @T('Enter your %s App Keys', 'Twitter') %></h2>

View file

@ -41,7 +41,7 @@ class Chat::Session < ApplicationModel
def position
return if state != 'waiting'
position = 0
Chat::Session.where(state: 'waiting').order('created_at ASC').each { |chat_session|
Chat::Session.where(state: 'waiting').order(created_at: :asc).each { |chat_session|
position += 1
break if chat_session.id == id
}
@ -52,7 +52,7 @@ class Chat::Session < ApplicationModel
chat_session = Chat::Session.find_by(session_id: session_id)
return if !chat_session
session_attributes = []
Chat::Message.where(chat_session_id: chat_session.id).each { |message|
Chat::Message.where(chat_session_id: chat_session.id).order(created_at: :asc).each { |message|
session_attributes.push message.attributes
}
session_attributes
@ -60,10 +60,10 @@ class Chat::Session < ApplicationModel
def self.active_chats_by_user_id(user_id)
actice_sessions = []
Chat::Session.where(state: 'running', user_id: user_id).order('created_at ASC').each { |session|
Chat::Session.where(state: 'running', user_id: user_id).order(created_at: :asc).each { |session|
session_attributes = session.attributes
session_attributes['messages'] = []
Chat::Message.where(chat_session_id: session.id).each { |message|
Chat::Message.where(chat_session_id: session.id).order(created_at: :asc).each { |message|
session_attributes['messages'].push message.attributes
}
actice_sessions.push session_attributes

View file

@ -3029,9 +3029,9 @@ Ticket::Article.create(
Thank you for choosing Zammad.
You will find updates and patches at http://zammad.org/. Online
documentation is available at http://zammad.org/documentation. Get
involved (discussions, contributing, ...) at http://zammad.org/participate.
You will find updates and patches at https://zammad.org/. Online
documentation is available at https://zammad.org/documentation. Get
involved (discussions, contributing, ...) at https://zammad.org/participate.
Regards,
@ -5193,7 +5193,7 @@ Trigger.create_or_update(
<br/>
<div>Your #{config.product_name} Team</div>
<br/>
<div><i><a href="http://zammad.com">Zammad</a>, your customer support system</i></div>',
<div><i><a href="https://zammad.com">Zammad</a>, your customer support system</i></div>',
'recipient' => 'ticket_customer',
'subject' => 'Thanks for your inquiry (#{ticket.title})',
},
@ -5232,7 +5232,7 @@ Trigger.create_or_update(
<br/>
<div>Your #{config.product_name} Team</div>
<br/>
<div><i><a href="http://zammad.com">Zammad</a>, your customer support system</i></div>',
<div><i><a href="https://zammad.com">Zammad</a>, your customer support system</i></div>',
'recipient' => 'ticket_customer',
'subject' => 'Thanks for your follow up (#{ticket.title})',
},
@ -5260,7 +5260,7 @@ Trigger.create_or_update(
<a href="#{config.http_type}://#{config.fqdn}/#ticket/zoom/#{ticket.id}">#{config.http_type}://#{config.fqdn}/#ticket/zoom/#{ticket.id}</a>
</p>
<br/>
<p><i><a href="http://zammad.com">Zammad</a>, your customer support system</i></p>',
<p><i><a href="https://zammad.com">Zammad</a>, your customer support system</i></p>',
'recipient' => 'ticket_customer',
'subject' => 'Owner has changed (#{ticket.title})',
},

View file

@ -6,8 +6,8 @@ class MaintenanceSessionMessageTest < TestCase
string = rand(99_999_999_999_999_999).to_s
title_html = "test <b>#{string}</b>"
title_text = "test <b>#{string}<\/b>"
message_html = "message <b>1äöüß</b> #{string}\n\n\nhttp://zammad.org"
message_text = "message <b>1äöüß</b> #{string}\n\n\nhttp://zammad.org"
message_html = "message <b>1äöüß</b> #{string}\n\n\nhttps://zammad.org"
message_text = "message <b>1äöüß</b> #{string}\n\n\nhttps://zammad.org"
# check #1
browser1 = browser_instance

View file

@ -129,10 +129,10 @@ class AaaStringTest < ActiveSupport::TestCase
result = 'test'
assert_equal(result, html.html2text)
html = "\n<div><a href=\"http://zammad.org\">Best Tool of the World</a>
html = "\n<div><a href=\"https://zammad.org\">Best Tool of the World</a>
some other text</div>
<div>"
result = "[1] Best Tool of the Worldsome other text\n\n[1] http://zammad.org"
result = "[1] Best Tool of the Worldsome other text\n\n[1] https://zammad.org"
assert_equal(result, html.html2text)
html = "<!-- some comment -->

View file

@ -199,18 +199,64 @@ class ChatTest < ActiveSupport::TestCase
assert_equal(6, agent_state[:seads_total])
assert_equal(true, agent_state[:active])
chat_session6.user_id = agent1.id
chat_session6.state = 'running'
chat_session6.save
Chat::Message.create(
chat_session_id: chat_session6.id,
content: 'message 1',
created_by_id: agent1.id,
)
sleep 1
Chat::Message.create(
chat_session_id: chat_session6.id,
content: 'message 2',
created_by_id: agent1.id,
)
sleep 1
Chat::Message.create(
chat_session_id: chat_session6.id,
content: 'message 3',
created_by_id: agent1.id,
)
sleep 1
Chat::Message.create(
chat_session_id: chat_session6.id,
content: 'message 4',
created_by_id: nil,
)
# check customer state
assert_equal('no_seats_available', chat.customer_state[:state])
assert_equal(5, chat.customer_state[:queue])
customer_state = chat.customer_state
assert_equal('no_seats_available', customer_state[:state])
assert_equal(5, customer_state[:queue])
# customer chat state
customer_state = chat.customer_state(chat_session6.session_id)
assert_equal('reconnect', customer_state[:state])
assert(customer_state[:session])
assert_equal(Array, customer_state[:session].class)
assert_equal('message 1', customer_state[:session][0]['content'])
assert_equal('message 2', customer_state[:session][1]['content'])
assert_equal('message 3', customer_state[:session][2]['content'])
assert_equal('message 4', customer_state[:session][3]['content'])
assert_equal('Notification Agent1', customer_state[:agent][:name])
assert_equal(nil, customer_state[:agent][:avatar])
# check agent1 state
agent_state = Chat.agent_state_with_sessions(agent1.id)
assert_equal(5, agent_state[:waiting_chat_count])
assert_equal(1, agent_state[:running_chat_count])
assert_equal([], agent_state[:active_sessions])
assert_equal(Array, agent_state[:active_sessions].class)
assert_equal(chat.id, agent_state[:active_sessions][0]['chat_id'])
assert_equal(agent1.id, agent_state[:active_sessions][0]['user_id'])
assert(agent_state[:active_sessions][0]['messages'])
assert_equal(Array, agent_state[:active_sessions][0]['messages'].class)
assert_equal('message 1', agent_state[:active_sessions][0]['messages'][0]['content'])
assert_equal('message 2', agent_state[:active_sessions][0]['messages'][1]['content'])
assert_equal('message 3', agent_state[:active_sessions][0]['messages'][2]['content'])
assert_equal('message 4', agent_state[:active_sessions][0]['messages'][3]['content'])
assert_equal(0, agent_state[:seads_available])
assert_equal(6, agent_state[:seads_total])
assert_equal(true, agent_state[:active])
@ -235,7 +281,15 @@ class ChatTest < ActiveSupport::TestCase
agent_state = Chat.agent_state_with_sessions(agent1.id)
assert_equal(5, agent_state[:waiting_chat_count])
assert_equal(1, agent_state[:running_chat_count])
assert_equal([], agent_state[:active_sessions])
assert_equal(Array, agent_state[:active_sessions].class)
assert_equal(chat.id, agent_state[:active_sessions][0]['chat_id'])
assert_equal(agent1.id, agent_state[:active_sessions][0]['user_id'])
assert(agent_state[:active_sessions][0]['messages'])
assert_equal(Array, agent_state[:active_sessions][0]['messages'].class)
assert_equal('message 1', agent_state[:active_sessions][0]['messages'][0]['content'])
assert_equal('message 2', agent_state[:active_sessions][0]['messages'][1]['content'])
assert_equal('message 3', agent_state[:active_sessions][0]['messages'][2]['content'])
assert_equal('message 4', agent_state[:active_sessions][0]['messages'][3]['content'])
assert_equal(-2, agent_state[:seads_available])
assert_equal(4, agent_state[:seads_total])
assert_equal(true, agent_state[:active])