Merge branch 'stable-5.1' into antifascista-stable
This commit is contained in:
commit
64a3c7e02c
10 changed files with 109 additions and 13 deletions
|
@ -14,19 +14,23 @@ class App.TicketZoomArticleImageView extends App.ControllerModal
|
|||
constructor: ->
|
||||
super
|
||||
@unbindAll()
|
||||
$(document).on('keydown.image_preview', 'right', (e) =>
|
||||
nextElement = @parentElement.closest('.attachment').next('.attachment.attachment--preview')
|
||||
return if nextElement.length is 0
|
||||
@close()
|
||||
nextElement.find('img').trigger('click')
|
||||
)
|
||||
$(document).on('keydown.image_preview', 'left', (e) =>
|
||||
prevElement = @parentElement.closest('.attachment').prev('.attachment.attachment--preview')
|
||||
return if prevElement.length is 0
|
||||
@close()
|
||||
prevElement.find('img').trigger('click')
|
||||
$(document).on('keydown.image_preview', (e) =>
|
||||
return @nextRight() if e.keyCode is 39 # right
|
||||
return @nextLeft() if e.keyCode is 37 # left
|
||||
)
|
||||
|
||||
nextRight: =>
|
||||
nextElement = @parentElement.closest('.attachment').next('.attachment.attachment--preview')
|
||||
return if nextElement.length is 0
|
||||
@close()
|
||||
nextElement.find('img').trigger('click')
|
||||
|
||||
nextLeft: =>
|
||||
prevElement = @parentElement.closest('.attachment').prev('.attachment.attachment--preview')
|
||||
return if prevElement.length is 0
|
||||
@close()
|
||||
prevElement.find('img').trigger('click')
|
||||
|
||||
content: ->
|
||||
@image = @image.replace(/view=preview/, 'view=inline')
|
||||
"<div class=\"centered imagePreview\">#{@image}</div>"
|
||||
|
|
|
@ -948,7 +948,7 @@ class App.Utils
|
|||
tmp.find('blockquote').remove()
|
||||
text = tmp.text()
|
||||
|
||||
matchwords = ['Attachment', 'attachment', 'Attached', 'attached', 'Enclosed', 'enclosed', 'Enclosure', 'enclosure']
|
||||
matchwords = [__('Attachment'), __('attachment'), __('Attached'), __('attached'), __('Enclosed'), __('enclosed'), __('Enclosure'), __('enclosure')]
|
||||
for word in matchwords
|
||||
# en
|
||||
attachmentTranslatedRegExp = new RegExp("\\W#{word}\\W", 'i')
|
||||
|
|
|
@ -941,11 +941,19 @@ msgstr ""
|
|||
msgid "At least one user needs to have admin permissions."
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "Attached"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/views/generic/attachments.jst.eco
|
||||
#: app/views/knowledge_base/public/answers/show.html.erb
|
||||
msgid "Attached Files"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "Attachment"
|
||||
msgstr ""
|
||||
|
||||
#: db/seeds/settings.rb
|
||||
msgid "Attachment - Search for follow-up also in attachments."
|
||||
msgstr ""
|
||||
|
@ -3702,6 +3710,14 @@ msgstr ""
|
|||
msgid "Enables users to create their own account via web interface."
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "Enclosed"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "Enclosure"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/views/agent_ticket_create.jst.eco
|
||||
#: app/assets/javascripts/app/views/ticket_zoom/article_new.jst.eco
|
||||
msgid "Encrypt"
|
||||
|
@ -10793,6 +10809,14 @@ msgstr ""
|
|||
msgid "at"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "attached"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "attachment"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/controllers/_ui_element/core_workflow_perform.coffee
|
||||
msgid "auto select"
|
||||
msgstr ""
|
||||
|
@ -10969,6 +10993,14 @@ msgstr ""
|
|||
msgid "email"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "enclosed"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/lib/app_post/utils.coffee
|
||||
msgid "enclosure"
|
||||
msgstr ""
|
||||
|
||||
#: app/assets/javascripts/app/models/ticket.coffee
|
||||
msgid "escalated"
|
||||
msgstr ""
|
||||
|
|
|
@ -349,6 +349,9 @@ class String
|
|||
string.gsub!(%r{[[:space:]]*(<br(|/)>[[:space:]]*)*\Z}i, '')
|
||||
string.gsub!(%r{(<p></p>){1,10}\Z}i, '')
|
||||
|
||||
# https://github.com/zammad/zammad/issues/4112
|
||||
string.gsub!(%r{<!\[if !supportLists\]>.+?<!\[endif\]>}, '• ')
|
||||
|
||||
string.signature_identify('html')
|
||||
|
||||
marker_template = '<span class="js-signatureMarker"></span>'
|
||||
|
|
BIN
spec/fixtures/files/image/squares.png
vendored
Normal file
BIN
spec/fixtures/files/image/squares.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
BIN
spec/fixtures/files/image/squares2.png
vendored
Normal file
BIN
spec/fixtures/files/image/squares2.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.9 KiB |
BIN
spec/fixtures/files/image/squares3.png
vendored
Normal file
BIN
spec/fixtures/files/image/squares3.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
|
@ -1430,6 +1430,20 @@ RSpec.describe String do
|
|||
<li><a href="http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0bmFvY3B0LXlhbW9sc2Nhb3NnYy5lL3RpbXJlZi9lbS9ycnJuaWFpZXMsdGxnY25pLGUsdXJ0b3NVTGVpNWZ8fGZh" rel="nofollow noreferrer noopener" target="_blank" title="http://business-catalogs.example.com/ODtpbGs5MWIzbjUyYzExLTA4Yy06Mmg7N3AvL3R0bmFvY3B0LXlhbW9sc2Nhb3NnYy5lL3RpbXJlZi9lbS9ycnJuaWFpZXMsdGxnY25pLGUsdXJ0b3NVTGVpNWZ8fGZh">Luxemburg</a></li>
|
||||
TEXT
|
||||
end
|
||||
|
||||
# https://github.com/zammad/zammad/issues/4112
|
||||
it 'converts lists from MS Outlook correctly' do
|
||||
expect(<<~HTML.chomp.html2html_strict).to eq(<<~TEXT.chomp)
|
||||
<p class="MsoPlainText" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
|
||||
<![if !supportLists]><span style="font-family:Symbol;mso-fareast-language:EN-US"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
|
||||
</span></span></span><![endif]><span style="mso-fareast-language:EN-US">1<o:p></o:p></span></p>
|
||||
<p class="MsoPlainText" style="margin-left:36.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
|
||||
<![if !supportLists]><span style="font-family:Symbol;mso-fareast-language:EN-US"><span style="mso-list:Ignore">·<span style="font:7.0pt "Times New Roman"">
|
||||
</span></span></span><![endif]><span style="mso-fareast-language:EN-US">2<o:p></o:p></span></p>
|
||||
HTML
|
||||
<p>• 1</p><p>• 2</p>
|
||||
TEXT
|
||||
end
|
||||
end
|
||||
|
||||
context 'signature recognition' do
|
||||
|
|
43
spec/system/ticket/zoom/article_image_view_spec.rb
Normal file
43
spec/system/ticket/zoom/article_image_view_spec.rb
Normal file
|
@ -0,0 +1,43 @@
|
|||
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
|
||||
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe 'Article Image View', type: :system do
|
||||
describe 'Switching the photos displayed in the preview does not work with the arrow keys #4030' do
|
||||
let(:ticket) { create(:ticket, group: Group.first) }
|
||||
let(:article) do
|
||||
create(:ticket_article, ticket: ticket, attachments: [
|
||||
{
|
||||
data: File.read(Rails.root.join('spec/fixtures/files/image/squares.png')),
|
||||
filename: 'squares.png',
|
||||
preferences: { 'Content-Type' => 'image/png', 'resizable' => true, 'content_preview' => true },
|
||||
},
|
||||
{
|
||||
data: File.read(Rails.root.join('spec/fixtures/files/image/squares2.png')),
|
||||
filename: 'squares2.png',
|
||||
preferences: { 'Content-Type' => 'image/png', 'resizable' => true, 'content_preview' => true },
|
||||
},
|
||||
{
|
||||
data: File.read(Rails.root.join('spec/fixtures/files/image/squares3.png')),
|
||||
filename: 'squares3.png',
|
||||
preferences: { 'Content-Type' => 'image/png', 'resizable' => true, 'content_preview' => true },
|
||||
},
|
||||
])
|
||||
end
|
||||
|
||||
before do
|
||||
visit "#ticket/zoom/#{article.ticket.id}"
|
||||
end
|
||||
|
||||
it 'does switch images via arrow keys' do
|
||||
first('.ticket-article-item .attachment-icon img').click
|
||||
images = Store.last(3)
|
||||
wait.until { page.find('div.imagePreview img')[:src].include?("/#{images[0].id}") }
|
||||
find('body').send_keys :arrow_right
|
||||
find('body').send_keys :arrow_right
|
||||
wait.until { page.find('div.imagePreview img')[:src].include?("/#{images[2].id}") }
|
||||
find('body').send_keys :arrow_left
|
||||
wait.until { page.find('div.imagePreview img')[:src].include?("/#{images[1].id}") }
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue