Merge branch 'stable' into antifascista-stable

This commit is contained in:
f 2022-06-18 10:48:20 -03:00
commit 58e6657b79
86 changed files with 1445 additions and 1281 deletions

View file

@ -86,10 +86,12 @@
# Executed on a dedicated runner.
"push to github":
<<: *template_pre
tags:
- deploy
before_script:
- '' # no RVM present in deploy ENV
- test -d $HOME/.ssh || mkdir $HOME/.ssh
- ssh-keyscan github.com >> $HOME/.ssh/known_hosts
- eval $(ssh-agent -s)
- echo "$PUSH_TO_GITHUB_SSH_PRIVATE_KEY" | ssh-add -
- ssh-add -l
script:
- git fetch --unshallow
- script/build/sync_repo.sh git@github.com:zammad/zammad.git

View file

@ -15,10 +15,15 @@ PreCommit:
on_warn: fail
CoffeeLint:
# .coffeelint/rules/* not supported in YAML, specify all rules separately.
flags: ['--reporter=csv', '--rules', './.coffeelint/rules/detect_translatable_string.coffee']
flags:
[
'--reporter=csv',
'--rules',
'./.coffeelint/rules/detect_translatable_string.coffee',
]
enabled: true
on_warn: fail
exclude: public/assets/chat/**/*
exclude: 'public/assets/chat/**/*'
CustomScript:
enabled: true
description: 'Check if translation catalog is up-to-date'

View file

@ -174,6 +174,7 @@ group :development, :test do
# test frameworks
gem 'rails-controller-testing'
gem 'rspec-rails'
gem 'rspec-retry'
gem 'shoulda-matchers'
gem 'test-unit'

View file

@ -329,10 +329,10 @@ GEM
netrc (0.11.0)
nio4r (2.5.8)
nio4r (2.5.8-x86_64-linux-musl)
nokogiri (1.13.4)
nokogiri (1.13.6)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nokogiri (1.13.4-x86_64-linux-musl)
nokogiri (1.13.6-x86_64-linux-musl)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
nori (2.6.0)
@ -422,7 +422,7 @@ GEM
rspec-rails (>= 3.0.0)
racc (1.6.0)
racc (1.6.0-x86_64-linux-musl)
rack (2.2.3)
rack (2.2.3.1)
rack-attack (6.6.0)
rack (>= 1.0, < 3)
rack-livereload (0.3.17)
@ -493,6 +493,8 @@ GEM
rspec-expectations (~> 3.10)
rspec-mocks (~> 3.10)
rspec-support (~> 3.10)
rspec-retry (0.6.2)
rspec-core (> 3.3)
rspec-support (3.11.0)
rszr (0.5.2)
rszr (0.5.2-x86_64-linux-musl)
@ -719,6 +721,7 @@ DEPENDENCIES
rchardet (>= 1.8.0)
redis
rspec-rails
rspec-retry
rszr (= 0.5.2)
rubocop
rubocop-faker

View file

@ -79,6 +79,11 @@ class App.SettingsAreaTicketNumber extends App.Controller
el = $(App.view("settings/#{preferences_setting}")(
setting: setting
))
for form_entry in setting.options['form']
if form_entry['tag'] is 'boolean'
form_entry['translate'] = true
new App.ControllerForm(
el: el.find('.js-formItem'),
model: { configure_attributes: setting.options['form'], className: '' }

View file

@ -246,7 +246,7 @@ class App.TicketCreate extends App.Controller
if _.isEmpty(params.ticket_id) && _.isEmpty(params.article_id)
if !_.isEmpty(params.customer_id)
@renderQueue(options: params)
@renderQueue(options: _.omit(params, 'id'))
return
@renderQueue()
return

View file

@ -205,6 +205,7 @@ class App.Search extends App.Controller
items.slice(startId+1, endId).find('[name="bulk"]').prop('checked', (-> !@checked))
@lastChecked = e.currentTarget
@bulkForm.updateTicketIdsBulkForm(e)
ticket_ids = []
for item in localList

View file

@ -959,7 +959,7 @@ class Table extends App.Controller
ticketListShow.push App.Ticket.find(ticket.id)
@overview = App.Overview.find(overview.id)
@table.update(
overviewAttributes: @overview.view.s
overviewAttributes: @convertOverviewAttributesToArray(@overview.view.s)
objects: ticketListShow
groupBy: @overview.group_by
groupDirection: @overview.group_direction
@ -977,7 +977,6 @@ class Table extends App.Controller
return if !overview && !tickets
@view_mode = App.LocalStorage.get("mode:#{@view}", @Session.get('id')) || 's'
console.log 'notice', 'view:', @view, @view_mode
App.WebSocket.send(event:'ticket_overview_select', data: { view: @view })
@ -1107,8 +1106,7 @@ class Table extends App.Controller
items.slice(startId+1, endId).find('[name="bulk"]').prop('checked', (-> !@checked))
@lastChecked = e.currentTarget
@updateTicketIdsBulkForm()
@bulkForm.updateTicketIdsBulkForm(e)
callbackIconHeader = (headers) ->
attribute =
@ -1178,7 +1176,7 @@ class Table extends App.Controller
tableArguments =
tableId: "ticket_overview_#{@overview.id}"
overview: @overview.view.s
overview: @convertOverviewAttributesToArray(@overview.view.s)
el: @$('.table-overview')
model: App.Ticket
objects: ticketListShow
@ -1250,10 +1248,14 @@ class Table extends App.Controller
bulkAll.prop('indeterminate', true)
)
updateTicketIdsBulkForm: =>
items = $('.content.active .table-overview .table').find('[name="bulk"]:checked')
ticket_ids = _.map(items, (el) -> $(el).val() )
@bulkForm.el.find('input[name=ticket_ids]').val(ticket_ids.join(',')).trigger('change')
convertOverviewAttributesToArray: (overviewAttributes) ->
# Ensure that the given attributes for the overview is an array,
# otherwise some data might not be displayed.
# For more details, see https://github.com/zammad/zammad/issues/3943.
if !Array.isArray(overviewAttributes)
overviewAttributes = [overviewAttributes]
overviewAttributes
renderCustomerNotTicketExistIfNeeded: (ticketListShow) =>
user = App.User.current()

View file

@ -50,6 +50,9 @@ class User extends App.ControllerSubContent
@delay(@search, 220, 'search')
)
# App.User.subscribe will clear model data so we use controllerBind (#4040)
@controllerBind('User:create User:update User:touch User:destroy', => @delay(@search, 220, 'search'))
# show last 20 users
@search()
@ -182,9 +185,6 @@ class User extends App.ControllerSubContent
'click': edit
)
if !@subscribeId
@subscribeId = App.User.subscribe(=> @delay(@search, 220, 'search'))
search: =>
role_ids = []
@$('.tab.active').each( (i,d) ->
@ -242,8 +242,4 @@ class User extends App.ControllerSubContent
container: @el.closest('.content')
)
release: =>
if @subscribeId
App.User.unsubscribe(@subscribeId)
App.Config.set( 'User', { prio: 1000, name: __('Users'), parent: '#manage', target: '#manage/users', controller: User, permission: ['admin.user'] }, 'NavBarAdmin' )

View file

@ -57,7 +57,7 @@ class App.WidgetTag extends App.Controller
source = "#{App.Config.get('api_path')}/tag_search"
@$('.js-newTagInput').autocomplete(
source: source
minLength: 1
minLength: 0
response: (e, ui) =>
return if !ui
return if !ui.content

View file

@ -243,3 +243,8 @@ class App.TicketBulkForm extends App.Controller
@render()
@hide()
)
updateTicketIdsBulkForm: (e) ->
items = $(e.target).closest('table').find('input[name="bulk"]:checked')
ticket_ids = _.map(items, (el) -> $(el).val() )
@el.find('input[name=ticket_ids]').val(ticket_ids.join(',')).trigger('change')

View file

@ -13,7 +13,9 @@ class KnowledgeBase::Public::AnswersController < KnowledgeBase::Public::BaseCont
private
def render_alternative
@alternative = find_answer @knowledge_base.answers.eager_load(translations: :kb_locale), params[:answer], locale: false
answers = @knowledge_base.answers.where(category: params[:category]).eager_load(translations: :kb_locale)
@alternative = find_answer(answers, params[:answer], locale: false)
raise ActiveRecord::RecordNotFound if !@alternative&.translations&.any?

View file

@ -6,7 +6,8 @@ class TagsController < ApplicationController
# GET /api/v1/tag_search?term=abc
def search
list = Tag::Item.where('name_downcase LIKE ?', "%#{params[:term].strip.downcase}%").order(name: :asc).limit(params[:limit] || 10)
list = get_tag_list(params[:term], params[:limit] || 10)
results = []
list.each do |item|
result = {
@ -95,4 +96,13 @@ class TagsController < ApplicationController
render json: {}
end
private
def get_tag_list(term, limit)
if term.blank?
return Tag::Item.left_outer_joins(:tags).group(:id).order('COUNT(tags.tag_item_id) DESC, name ASC').limit(limit)
end
Tag::Item.where('name_downcase LIKE ?', "%#{term.strip.downcase}%").order(name: :asc).limit(limit)
end
end

View file

@ -9,6 +9,7 @@ class TicketOverviewsController < ApplicationController
# get attributes to update
attributes_to_change = Ticket::ScreenOptions.attributes_to_change(
view: 'ticket_overview',
screen: 'overview_bulk',
current_user: current_user,
)
render json: attributes_to_change

View file

@ -10,7 +10,7 @@ class TriggerWebhookJob::RecordPayload::Ticket::Article < TriggerWebhookJob::Rec
end
def add_accounted_time(result)
result['accounted_time'] = record.ticket_time_accounting&.time_unit.to_i
result['accounted_time'] = record.ticket_time_accounting&.time_unit.to_f
result
end

View file

@ -18,7 +18,10 @@ module Channel::Filter::FollowUpCheck
# get ticket# from body
if setting.include?('body')
ticket = Ticket::Number.check(mail[:body].html2text)
body = mail[:body]
body = body.html2text if mail[:content_type] == 'text/html'
ticket = Ticket::Number.check(body)
if ticket
Rails.logger.debug { "Follow-up for '##{ticket.number}' in body." }
mail[:'x-zammad-ticket-id'] = ticket.id

View file

@ -4,6 +4,10 @@ class Tag::Item < ApplicationModel
validates :name, presence: true
before_save :fill_namedowncase
has_many :tags, foreign_key: 'tag_item_id',
inverse_of: :tag_item,
dependent: :destroy
=begin
lookup by name and create tag item

View file

@ -69,6 +69,10 @@ module Ticket::Article::AddsMetadataEmail
elsif Setting.get('ticket_define_email_from') == 'AgentName'
sender = User.find(created_by_id)
realname = "#{sender.firstname} #{sender.lastname}"
# avoid "-" as realname, see https://github.com/zammad/zammad/issues/3890
realname = email_address.realname if sender.id == 1
self.from = Channel::EmailBuild.recipient_line(realname, email_address.email)
else
self.from = Channel::EmailBuild.recipient_line(email_address.realname, email_address.email)

View file

@ -1157,7 +1157,7 @@ raise 'At least one user need to have admin permissions'
record[column] = 1
end
record.save!
record.save!(validate: false)
rescue => e
Rails.logger.error e
end

View file

@ -19,9 +19,11 @@ module User::UpdatesTicketOrganization
# update last 100 tickets of user
tickets = Ticket.where(customer_id: id).limit(100)
tickets.each do |ticket|
if ticket.organization_id != organization_id
next if ticket.organization_id == organization_id
Transaction.execute(disable_notification: true, reset_user_id: true) do
ticket.organization_id = organization_id
ticket.save
ticket.save!
end
end
end

View file

@ -0,0 +1,56 @@
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
class Issue4089FixDraftAttribute < ActiveRecord::Migration[5.0]
def change
# return if it's a new setup
return if !Setting.exists?(name: 'system_init_done')
field = ObjectManager::Attribute.find_by(name: 'shared_drafts', object_lookup_id: ObjectLookup.by_name('Group'))
if !field
add_field
return
end
field.update(editable: false)
end
def add_field
UserInfo.current_user_id = 1
ObjectManager::Attribute.add(
force: true,
object: 'Group',
name: 'shared_drafts',
display: 'Shared Drafts',
data_type: 'active',
data_option: {
null: false,
default: true,
permission: ['admin.group'],
},
editable: false,
active: true,
screens: {
create: {
'-all-' => {
null: true,
},
},
edit: {
'-all-': {
null: false,
},
},
view: {
'-all-' => {
shown: false,
},
},
},
to_create: false,
to_migrate: false,
to_delete: false,
position: 1400,
)
ObjectManager::Attribute.migration_execute
end
end

View file

@ -1824,7 +1824,7 @@ ObjectManager::Attribute.add(
default: true,
permission: ['admin.group'],
},
editable: true,
editable: false,
active: true,
screens: {
create: {

View file

@ -3788,6 +3788,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "قم بتحميل وتثبيت البرنامج الإضافي للترحيل%s على مثيل%s الخاص بك."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "مشروع"
@ -6380,7 +6381,9 @@ msgstr "دقيق"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8647,6 +8650,7 @@ msgid "Save"
msgstr "حفظ"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3602,6 +3602,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -6025,7 +6026,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr ""
@ -8232,6 +8235,7 @@ msgid "Save"
msgstr "Съхраняване"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3738,6 +3738,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Koncept"
@ -6270,7 +6271,9 @@ msgstr "Makro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makra"
@ -8534,6 +8537,7 @@ msgid "Save"
msgstr "Uložit"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3708,6 +3708,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Kladde"
@ -6159,7 +6160,9 @@ msgstr "Makro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makroer"
@ -8404,6 +8407,7 @@ msgid "Save"
msgstr "Gem"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: zammad\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-05-17 03:05+0000\n"
"Last-Translator: Martin Gruner <mg@zammad.com>\n"
"PO-Revision-Date: 2022-06-13 07:28+0000\n"
"Last-Translator: Marcel Herrguth <github@thehomeofanime.de>\n"
"Language-Team: German <https://translations.zammad.org/projects/zammad/"
"zammad-stable/de/>\n"
"Language: de-de\n"
@ -134,7 +134,7 @@ msgstr "%s-Anmeldeinformationen"
#: app/assets/javascripts/app/models/user.coffee
msgid "%s ended switch to |%s|!"
msgstr "%s beendete sein Sitzung von |%s|!"
msgstr "%s hat die Übernahme von |%s| beendet!"
#: app/assets/javascripts/app/views/integration/exchange_last_import.jst.eco
#: app/assets/javascripts/app/views/integration/exchange_summary.jst.eco
@ -183,7 +183,7 @@ msgstr "%s meiner Tickets sind derzeit in Bearbeitung."
#: app/assets/javascripts/app/views/dashboard/stats/ticket_escalation.jst.eco
msgid "%s of my tickets escalated."
msgstr "%s meiner Tickets sind Eskaliert."
msgstr "%s meiner Tickets sind eskaliert."
#: app/assets/javascripts/app/views/ticket_overview/batch_overlay_user_group.jst.eco
msgid "%s people"
@ -203,7 +203,7 @@ msgstr "%s wird benötigt!"
#: app/assets/javascripts/app/models/user.coffee
msgid "%s started a new session"
msgstr "%s startet eine neue Sitzung"
msgstr "%s startete eine neue Sitzung"
#: app/assets/javascripts/app/views/import/freshdesk.jst.eco
#: app/assets/javascripts/app/views/import/kayako.jst.eco
@ -251,7 +251,7 @@ msgstr "%s Benutzer zu %s Benutzer"
#: app/assets/javascripts/app/views/dashboard/stats/ticket_in_process.jst.eco
msgid "%s% are currently in process"
msgstr "%s% derzeit in Bearbeitung"
msgstr "%s% sind derzeit in Bearbeitung"
#: app/assets/javascripts/app/views/dashboard/stats/ticket_reopen.jst.eco
msgid "%s% have been reopened"
@ -661,7 +661,7 @@ msgstr "Eine Notiz hinzufügen"
#: app/assets/javascripts/app/controllers/_profile/token_access.coffee
#: app/assets/javascripts/app/views/profile/token_access.jst.eco
msgid "Add a Personal Access Token"
msgstr "Hinzufügen eines persönlichen Access Token"
msgstr "Hinzufügen eines persönlichen Zugangs-Tokens"
#: app/assets/javascripts/app/views/profile/calendar_subscriptions.jst.eco
msgid "Add alarm to pending reminder and escalated tickets."
@ -801,7 +801,7 @@ msgstr "Erlauben Sie die Verwendung von E-Mail-Adressen für mehrere Benutzer."
#: app/assets/javascripts/app/models/chat.coffee
msgid "Allow websites (separated by ;)"
msgstr "Erlaubte Webseiten (separiert durch ;)"
msgstr "Erlaubte Webseiten (getrennt mit ;)"
#: app/assets/javascripts/app/views/profile/notification.jst.eco
msgid "Also notify via email"
@ -838,7 +838,7 @@ msgstr "Es ist ein Fehler aufgetreten: %s"
#: app/assets/javascripts/app/controllers/_integration/monit.coffee
#: app/assets/javascripts/app/controllers/_integration/nagios.coffee
msgid "An open-source monitoring tool."
msgstr "Ein Open Source Monitoring Tool."
msgstr "Ein Open Source Monitoring-Werkzeug."
#: app/assets/javascripts/app/views/integration/exchange_wizard.jst.eco
#: app/assets/javascripts/app/views/integration/ldap_wizard.jst.eco
@ -1323,7 +1323,7 @@ msgstr "Caller-IDs basierend auf der Caller-ID des Senders blockieren."
#: app/assets/javascripts/app/models/chat.coffee
msgid "Blocked IPs (separated by ;)"
msgstr "Blockierte IP (getrennt mit ;)"
msgstr "Blockierte IPs (getrennt mit ;)"
#: app/assets/javascripts/app/models/chat.coffee
msgid "Blocked countries"
@ -2030,7 +2030,7 @@ msgstr "Verfassen Sie Ihre Nachricht…"
#: app/assets/javascripts/app/models/job.coffee
#: app/assets/javascripts/app/models/trigger.coffee
msgid "Conditions for affected objects"
msgstr "Bedingung für zu verarbeitende Objekte"
msgstr "Bedingungen für zu verarbeitende Objekte"
#: app/assets/javascripts/app/models/overview.coffee
msgid "Conditions for shown Tickets"
@ -2744,7 +2744,7 @@ msgstr "Definieren Sie die maximale Payloadgröße für Elasticsearch."
#: db/seeds/settings.rb
msgid "Define pipeline name for Elasticsearch."
msgstr "Definieren Sie den Pipelinenamen für Elasticsearch."
msgstr "Definieren Sie den Pipeline-Namen für Elasticsearch."
#: db/seeds/settings.rb
msgid ""
@ -2826,8 +2826,7 @@ msgstr ""
#: db/seeds/settings.rb
msgid "Defines Zendesk endpoint authentication user."
msgstr ""
"Definiert den Benutzernamen für die Zendesk-Endpunkt-Authentifizierung."
msgstr "Definiert den Benutzernamen für die Zendesk-Endpunkt-Authentifizierung."
#: db/seeds/settings.rb
msgid ""
@ -3582,7 +3581,7 @@ msgstr "Lösche zuerst alle vorhandenen Datensätze."
#: db/seeds/schedulers.rb
msgid "Delete obsolete classic IMAP backup."
msgstr "Lösche obsoletes klassische IMAP-Sicherung."
msgstr "Lösche obsolete klassische IMAP-Sicherung."
#: db/seeds/schedulers.rb
msgid "Delete old 'RecentView' entries."
@ -3590,7 +3589,7 @@ msgstr "Bereinigung alter 'RecentView'-Einträge."
#: db/seeds/schedulers.rb
msgid "Delete old activity stream entries."
msgstr "Lösche alte Aktivitätenstream-Einträge."
msgstr "Lösche alte Einträge im Aktivitäts-Verlauf."
#: db/seeds/schedulers.rb
msgid "Delete old online notification entries."
@ -3836,6 +3835,7 @@ msgstr ""
"%s Instanz."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Entwurf"
@ -4318,7 +4318,7 @@ msgstr "Person oder Organisation/Firma eingeben"
#: app/assets/javascripts/app/views/integration/smime_private_key_add.jst.eco
msgid "Enter Private Key Secret"
msgstr "Privaten Schlüssel eingeben"
msgstr "Passwort für privaten Schlüssel eingeben"
#: app/assets/javascripts/app/views/ticket_zoom/title.jst.eco
msgid "Enter Title…"
@ -4421,7 +4421,7 @@ msgstr "Eskalation am (Schließzeit)"
#: app/assets/javascripts/app/models/ticket.coffee
msgid "Escalation at (First Response Time)"
msgstr "Eskalation am (Reaktionszeit)"
msgstr "Eskalation am (Erste Reaktionszeit)"
#: app/assets/javascripts/app/models/ticket.coffee
msgid "Escalation at (Update Time)"
@ -6359,7 +6359,7 @@ msgstr "Lokation einer externen chat.css-Datei."
#: app/assets/javascripts/app/views/login.jst.eco
msgid "Log in to %s"
msgstr "Mit %s anmelden"
msgstr "Bei %s anmelden"
#: app/assets/javascripts/app/models/user.coffee
#: app/assets/javascripts/app/views/maintenance.jst.eco
@ -6400,7 +6400,9 @@ msgstr "Makro"
msgid "Macro group restrictions do not cover all tickets"
msgstr "Die Makro-Gruppenbeschränkungen gelten nicht für alle Tickets"
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makros"
@ -6462,7 +6464,7 @@ msgstr ""
#: app/views/mailer/application.html.erb
msgid "Manage your notification settings"
msgstr "Benachrichtigungseinstellungen verwalten"
msgstr "Benachrichtigungs-Einstellungen verwalten"
#: app/assets/javascripts/app/views/api.jst.eco
#: app/assets/javascripts/app/views/calendar/index.jst.eco
@ -8638,6 +8640,7 @@ msgid "Save"
msgstr "Speichern"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr "Entwurf speichern"
@ -9474,7 +9477,7 @@ msgstr "System"
#: db/seeds/settings.rb
msgid "System Address Display Name"
msgstr "System-Anzeigename"
msgstr "Anzeigename für System-Adresse"
#: db/seeds/settings.rb
msgid "System Init Done"
@ -12815,7 +12818,7 @@ msgstr ""
#: app/assets/javascripts/app/views/settings/ticket_hook_position.jst.eco
msgid "|Left| means |[Ticket#12345] Some Subject|"
msgstr "|link| bedeutet |[Ticket#12345] Some Ein Betreff |"
msgstr "|links| bedeutet |[Ticket#12345] Ein Betreff |"
#: app/assets/javascripts/app/views/settings/ticket_hook_position.jst.eco
msgid ""
@ -12823,9 +12826,9 @@ msgid ""
"should enable \"postmaster___follow___up___search___in\" to recognize follow-"
"ups based on email headers and/or body."
msgstr ""
"|kein| bedeutet |Ein Betreff| (ohne Ticketnummer). In diesen Fall sollte die "
"Einstellung \"postmaster___follow___up___search___in\" aktiviert werden um "
"Nachfragen anhand der E-Mail-Kopfzeilen und/oder des E-Mail-Textes zu "
"|keine| bedeutet |Ein Betreff| (ohne Ticketnummer). In diesen Fall sollte "
"die Einstellung \"postmaster___follow___up___search___in\" aktiviert werden "
"um Nachfragen anhand der E-Mail-Kopfzeilen und/oder des E-Mail-Textes zu "
"erkennen."
#: app/assets/javascripts/app/views/settings/ticket_hook_position.jst.eco

View file

@ -3832,6 +3832,7 @@ msgstr ""
"Kατεβάστε και εγκαταστήστε την προσθήκη μετεγκατάστασης στην περίπτωσή σας"
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Πρόχειρο"
@ -6468,7 +6469,9 @@ msgstr "Μακροεντολή"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Μακροεντολές"
@ -8744,6 +8747,7 @@ msgid "Save"
msgstr "Αποθήκευση"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3538,6 +3538,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -5943,7 +5944,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr ""
@ -8138,6 +8141,7 @@ msgid "Save"
msgstr ""
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3538,6 +3538,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -5943,7 +5944,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr ""
@ -8138,6 +8141,7 @@ msgid "Save"
msgstr ""
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3783,6 +3783,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Descarrega i instala el Plugin de migració %s a la teva instancia %s"
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Esborrany"
@ -6383,7 +6384,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macro"
@ -8651,6 +8654,7 @@ msgid "Save"
msgstr "Guardar"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3835,6 +3835,7 @@ msgstr ""
"Descargue e instale el complemento de migración de %s en su instancia de %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Borrador"
@ -6403,7 +6404,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr "Las restricciones de macrogrupos no cubren todos los boletos"
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "macros"
@ -8639,6 +8642,7 @@ msgid "Save"
msgstr "Guardar"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr "Guardar borrador"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: zammad\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-05-13 11:42+0000\n"
"Last-Translator: ait0rn00b <ait0rn00b@protonmail.com>\n"
"PO-Revision-Date: 2022-05-26 03:31+0000\n"
"Last-Translator: Arturo <r2r0@posteo.de>\n"
"Language-Team: Spanish <https://translations.zammad.org/projects/zammad/"
"zammad-stable/es/>\n"
"Language: es-es\n"
@ -1411,6 +1411,10 @@ msgid ""
"Zammad can support your agents by opening either a new ticket dialogue or "
"the user profile upon picking up a new call."
msgstr ""
"Por medio de la asignación de los usuarios SIP de Placetel de sus agentes a "
"sus cuentas de usuario en Zammad, Zammad puede apoyar a sus agentes abriendo "
"un nuevo diálogo de ticket o el perfil de usuario al atender una nueva "
"llamada."
#: app/assets/javascripts/app/views/integration/sipgate.jst.eco
msgid ""
@ -3763,6 +3767,7 @@ msgstr ""
"Descargue e instale el Plugin de migración de %s en su instancia de %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Borrador"
@ -6392,7 +6397,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8669,6 +8676,7 @@ msgid "Save"
msgstr "Guardar"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3687,6 +3687,7 @@ msgstr ""
"Descargue e instale el complemento de migración de %s en su instancia de %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Sequía"
@ -6199,7 +6200,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8405,6 +8408,7 @@ msgid "Save"
msgstr "Guardar"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr "Guardar borrador"

View file

@ -3546,6 +3546,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Mustand"
@ -5965,7 +5966,9 @@ msgstr "Makro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makrod"
@ -8164,6 +8167,7 @@ msgid "Save"
msgstr "Salvesta"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr "Salvesta Mustand"

View file

@ -3551,6 +3551,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "پیش‌نویس"
@ -5984,7 +5985,9 @@ msgstr "ماکرو"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "ماکروها"
@ -8182,6 +8185,7 @@ msgid "Save"
msgstr "ذخیره"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr "ذخیره پیش‌نویس"

View file

@ -3677,6 +3677,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Luonnos"
@ -6129,7 +6130,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8390,6 +8393,7 @@ msgid "Save"
msgstr "Tallenna"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3800,6 +3800,7 @@ msgstr ""
"Téléchargez et installez le greffon de migration %s sur votre instance %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Brouillon"
@ -6417,7 +6418,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8690,6 +8693,7 @@ msgid "Save"
msgstr "Sauvegarder"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: zammad\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-04-29 05:45+0000\n"
"Last-Translator: Ludovic <l.kennel@3magroup.com>\n"
"PO-Revision-Date: 2022-06-01 03:30+0000\n"
"Last-Translator: Guillaume Lasserre <guillaume.lasserre@clirisgroup.com>\n"
"Language-Team: French <https://translations.zammad.org/projects/zammad/"
"zammad-stable/fr/>\n"
"Language: fr-fr\n"
@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.12\n"
"X-Generator: Weblate 4.12.1\n"
#. Default date format to use for the current locale.
#. These placeholders are supported:
@ -1034,10 +1034,8 @@ msgstr "Affecter un temps d'attente maximal"
#: app/assets/javascripts/app/models/_application_model.coffee
#: app/assets/javascripts/app/models/group.coffee
#, fuzzy
#| msgid "Assignment Timeout"
msgid "Assignment timeout"
msgstr "Affecter un temps d'attente maximal"
msgstr "Délai dexpiration de laffectation"
#: app/assets/javascripts/app/models/group.coffee
#: db/seeds/object_manager_attributes.rb
@ -1803,10 +1801,8 @@ msgid "Check 'Channel' streams."
msgstr "Connecter des canaux"
#: db/seeds/schedulers.rb
#, fuzzy
#| msgid "Connect Channels"
msgid "Check channels."
msgstr "Connecter des canaux"
msgstr "Vérifier les canaux"
#: lib/search_index_backend.rb
msgid "Check the response and payload for detailed information:"
@ -3603,9 +3599,8 @@ msgid "Delete obsolete classic IMAP backup."
msgstr "Supprimer les configurations IMAP classiques de secours obsolètes."
#: db/seeds/schedulers.rb
#, fuzzy
msgid "Delete old 'RecentView' entries."
msgstr "Supprimer les anciennes entrées de \"VueRécente\"."
msgstr "Supprimer les anciennes entrées de \"RecentView\"."
#: db/seeds/schedulers.rb
msgid "Delete old activity stream entries."
@ -3853,6 +3848,7 @@ msgstr ""
"Télécharger et installer le Plugin de Migration %s pour votre instance %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Brouillon"
@ -4581,10 +4577,9 @@ msgid "Extended Search"
msgstr "Recherche étendue"
#: lib/search_index_backend.rb
#, fuzzy
msgid "Extract zammad-attachment information from arrays"
msgstr ""
"Extraire les informations des pièces-jointes de zammad depuis des tableaux"
"Extraire les informations des pièces jointes de Zammad depuis des tableaux"
#: app/assets/javascripts/app/controllers/_channel/facebook.coffee
#: app/assets/javascripts/app/controllers/_profile/linked_accounts.coffee
@ -4613,7 +4608,6 @@ msgstr "Impossible de trouver la sauvegarde sur le canal !"
#: app/assets/javascripts/app/controllers/_channel/google.coffee
#: app/assets/javascripts/app/controllers/_channel/microsoft365.coffee
#, fuzzy
msgid "Failed to roll back the migration of the channel!"
msgstr "L'annulation de la migration du canal a échoué !"
@ -6507,7 +6501,9 @@ msgstr ""
"Les restrictions concernant les groupes macro ne couvrent pas tous les "
"tickets"
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8776,6 +8772,7 @@ msgid "Save"
msgstr "Sauver"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3728,6 +3728,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "הורד והתקן את הפלאגין %s Migration במקרה של מופע %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "טיוטה"
@ -6242,7 +6243,9 @@ msgstr "מאקרו"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "מקרו"
@ -8503,6 +8506,7 @@ msgid "Save"
msgstr "שמור"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3638,6 +3638,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "अपने% s उदाहरण पर% s माइग्रेशन प्लगइन डाउनलोड और इंस्टॉल करें"
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "प्रारूप"
@ -6077,7 +6078,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8328,6 +8331,7 @@ msgid "Save"
msgstr "सुरक्षित करे"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3605,6 +3605,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -6048,7 +6049,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8273,6 +8276,7 @@ msgid "Save"
msgstr "Spremi"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3655,6 +3655,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Piszkozat"
@ -6106,7 +6107,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makrók"
@ -8351,6 +8354,7 @@ msgid "Save"
msgstr "Mentés"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3689,6 +3689,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Drög"
@ -6220,7 +6221,9 @@ msgstr "Fjölvi"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Fjölvar"
@ -8479,6 +8482,7 @@ msgid "Save"
msgstr "Vista"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

File diff suppressed because it is too large Load diff

View file

@ -3755,6 +3755,7 @@ msgstr ""
"い。"
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "下書き"
@ -6302,7 +6303,9 @@ msgstr "マクロ"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "マクロ"
@ -8568,6 +8571,7 @@ msgid "Save"
msgstr "保存"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3755,6 +3755,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "다운로드하여 %s 예에서 %s 마이그레이션 플러그인을 설치합니다."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "초안"
@ -6295,7 +6296,9 @@ msgstr "매크로"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "매크로"
@ -8553,6 +8556,7 @@ msgid "Save"
msgstr "저장"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3620,6 +3620,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Ruošinys"
@ -6057,7 +6058,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr ""
@ -8290,6 +8293,7 @@ msgid "Save"
msgstr "Išsaugoti"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3547,6 +3547,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -5960,7 +5961,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr ""
@ -8161,6 +8164,7 @@ msgid "Save"
msgstr "Saglabāt"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3607,6 +3607,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -6034,7 +6035,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makro"
@ -8259,6 +8262,7 @@ msgid "Save"
msgstr "Simpan"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3777,6 +3777,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Download en installeer de %s Migration Plugin op uw %'s instance."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Concept"
@ -6325,7 +6326,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr "Macrogroepsbeperkingen dekken niet alle tickets"
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macro's"
@ -8556,6 +8559,7 @@ msgid "Save"
msgstr "Opslaan"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr "Concept opslaan"

View file

@ -3800,6 +3800,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Download and install the %s Migration Plugin on your %s instance."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Utkast"
@ -6399,7 +6400,9 @@ msgstr "Makro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makroer"
@ -8665,6 +8668,7 @@ msgid "Save"
msgstr "Lagre"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

File diff suppressed because it is too large Load diff

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: zammad\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-04-28 03:30+0000\n"
"Last-Translator: Victor Cezario <victorhcezario@gmail.com>\n"
"PO-Revision-Date: 2022-06-01 03:30+0000\n"
"Last-Translator: Danniel Macedo <djsmacedo@gmail.com>\n"
"Language-Team: Portuguese (Brazil) <https://translations.zammad.org/projects/"
"zammad/zammad-stable/pt_BR/>\n"
"Language: pt-br\n"
@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.12\n"
"X-Generator: Weblate 4.12.1\n"
#. Default date format to use for the current locale.
#. These placeholders are supported:
@ -372,6 +372,16 @@ msgid ""
"If you have customers with different business hours, you can create multiple "
"calendars. Tickets are linked to calendars using **SLAs**."
msgstr ""
"Um **calendário** é necessário para calcular os encaminhamentos com base no "
"horário comercial e enviar notificações de encaminhamento.\n"
"\n"
"Defina um calendário **\"padrão\"** válido em todo o sistema. As "
"notificações de escalação só serão enviadas aos seus agentes durante o "
"horário comercial definido.\n"
"\n"
"Se você tiver clientes com horários comerciais diferentes, poderá criar "
"vários calendários. Os ingressos são vinculados a calendários usando "
"**SLAs**."
#: app/controllers/getting_started_controller.rb
msgid "A URL looks like this: https://zammad.example.com"
@ -910,7 +920,7 @@ msgstr "Aplicar"
#: app/assets/javascripts/app/views/ticket_shared_draft_modal.coffee
msgid "Apply Shared Draft"
msgstr ""
msgstr "Aplicar Rascunho Compartilhado"
#: app/assets/javascripts/app/controllers/_ui_element/basedate.coffee
#: app/assets/javascripts/app/controllers/report.coffee
@ -3673,6 +3683,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Baixe e instale o %s Plugins de Migração em sua %s instância %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Esboço"
@ -6181,7 +6192,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8405,6 +8418,7 @@ msgid "Save"
msgstr "Salvar"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3805,6 +3805,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Baixe e instale o Plugin de Migração% s na sua instância% s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Rascunho"
@ -6432,7 +6433,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8708,6 +8711,7 @@ msgid "Save"
msgstr "Guardar"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3771,6 +3771,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Descărcați și instalați pluginul de migrare %s pe instanța %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -6331,7 +6332,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -8596,6 +8599,7 @@ msgid "Save"
msgstr "Salvează"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3821,6 +3821,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Скачайте и установите модуль переноса %s на свой экземпляр %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Черновик"
@ -6395,7 +6396,9 @@ msgstr "Макрос"
msgid "Macro group restrictions do not cover all tickets"
msgstr "Ограничения группы макросов не распространяются на все заявки"
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Макросы"
@ -8635,6 +8638,7 @@ msgid "Save"
msgstr "Сохранить"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr "Сохранить черновик"

View file

@ -3778,6 +3778,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Shyiramo plugin %s yo kwimura muri instance %s"
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Inyandikomushinga"
@ -6368,7 +6369,9 @@ msgstr "bigari"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "bigari"
@ -8631,6 +8634,7 @@ msgid "Save"
msgstr "bika"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3691,6 +3691,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -6153,7 +6154,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makrá"
@ -8386,6 +8389,7 @@ msgid "Save"
msgstr "Ulož"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3759,6 +3759,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -6194,7 +6195,9 @@ msgstr "Ukaz"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Ukazi"
@ -8445,6 +8448,7 @@ msgid "Save"
msgstr "Shrani"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3750,6 +3750,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Download and install the %s Migration Plugin on your %s instance."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Draft"
@ -6301,7 +6302,9 @@ msgstr "Makro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makroi"
@ -8562,6 +8565,7 @@ msgid "Save"
msgstr "Sačuvaj"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: zammad\n"
"POT-Creation-Date: \n"
"PO-Revision-Date: 2022-05-06 03:30+0000\n"
"Last-Translator: Thomas <info@biljettshop.se>\n"
"PO-Revision-Date: 2022-06-13 07:28+0000\n"
"Last-Translator: Louise Forsen <louise.forsen@entryevent.se>\n"
"Language-Team: Swedish <https://translations.zammad.org/projects/zammad/"
"zammad-stable/sv/>\n"
"Language: sv-se\n"
@ -11,7 +11,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.12\n"
"X-Generator: Weblate 4.12.1\n"
#. Default date format to use for the current locale.
#. These placeholders are supported:
@ -52,6 +52,10 @@ msgid ""
"filesystem. You can switch between the modules even on a system that is "
"already in production without any loss of data."
msgstr ""
"\"Databas\" lagrar alla bilagor i databasen (rekommenderas ej för lagring av "
"stora mängder data). \"Filsystem\" lagrar datan i filsystemet. Du kan växla "
"mellan modulerna utan att förlora någon data även om systemet redan är i "
"produktion."
#: app/assets/javascripts/app/views/telegram/bot_add.jst.eco
#: app/assets/javascripts/app/views/telegram/bot_edit.jst.eco
@ -109,22 +113,16 @@ msgid "%s created organization |%s|"
msgstr "%s skapade organisation |%s|"
#: app/assets/javascripts/app/models/role.coffee
#, fuzzy
#| msgid "%s created Group |%s|"
msgid "%s created role |%s|"
msgstr "%s skapade Grupp |%s| "
msgstr "%s skapade grupp |%s|"
#: app/assets/javascripts/app/models/ticket.coffee
#, fuzzy
#| msgid "%s created Ticket |%s|"
msgid "%s created ticket |%s|"
msgstr "%s skapade Ärende |%s| "
msgstr "%s skapade ärende |%s|"
#: app/assets/javascripts/app/models/user.coffee
#, fuzzy
#| msgid "%s created User |%s|"
msgid "%s created user |%s|"
msgstr "%s skapade Användare |%s|"
msgstr "%s skapade användare |%s|"
#: app/assets/javascripts/app/views/import/freshdesk.jst.eco
#: app/assets/javascripts/app/views/import/kayako.jst.eco
@ -139,7 +137,7 @@ msgstr "%s slutförde byte till |%s|!"
#: app/assets/javascripts/app/views/integration/exchange_last_import.jst.eco
#: app/assets/javascripts/app/views/integration/exchange_summary.jst.eco
msgid "%s folders"
msgstr ""
msgstr "%s mappar"
#: app/assets/javascripts/app/views/integration/ldap_last_import.jst.eco
#: app/assets/javascripts/app/views/integration/ldap_summary.jst.eco
@ -151,49 +149,35 @@ msgstr "%s grupper till %s roll-tilldelningar"
#: app/assets/javascripts/app/views/google/list.jst.eco
#: app/assets/javascripts/app/views/microsoft365/list.jst.eco
msgid "%s is inactive, please select an active one."
msgstr ""
msgstr "%s är inaktiv, välj en aktiv."
#: app/assets/javascripts/app/views/generic/object_import/imported.jst.eco
#, fuzzy
#| msgid "%s Object(s) have been created."
msgid "%s object(s) have been created."
msgstr "%s Objekt har skapats."
msgstr "%s objekt har skapats."
#: app/assets/javascripts/app/views/generic/object_import/imported.jst.eco
#, fuzzy
#| msgid "%s Object(s) have been updated."
msgid "%s object(s) have been updated."
msgstr "%s Objekt uppdaterades."
msgstr "%s objekt uppdaterades."
#: app/assets/javascripts/app/views/generic/object_import/imported.jst.eco
#, fuzzy
#| msgid "%s Object(s) were deleted."
msgid "%s object(s) were deleted."
msgstr "%s Objekt raderades."
msgstr "%s objekt raderades."
#: app/assets/javascripts/app/views/generic/object_import/import_try.jst.eco
#, fuzzy
#| msgid "%s Object(s) are created."
msgid "%s object(s) will be created."
msgstr "%s Objekt har skapats."
msgstr "%s objekt kommer att skapas."
#: app/assets/javascripts/app/views/generic/object_import/import_try.jst.eco
#, fuzzy
#| msgid "%s Object(s) were deleted."
msgid "%s object(s) will be deleted."
msgstr "%s Objekt raderades."
msgstr "%s objekt kommer att raderas."
#: app/assets/javascripts/app/views/generic/object_import/import_try.jst.eco
#, fuzzy
#| msgid "%s Object(s) are updated."
msgid "%s object(s) will be updated."
msgstr "%s Objekt är uppdaterade."
msgstr "%s objekt kommer att uppdateras."
#: app/assets/javascripts/app/views/dashboard/stats/ticket_in_process.jst.eco
#, fuzzy
#| msgid "%s of your tickets are currently in process."
msgid "%s of my tickets are currently in process."
msgstr "%s av dina ärenden är för närvarande i bearbetning."
msgstr "%s av mina ärenden är under bearbetning."
#: app/assets/javascripts/app/views/dashboard/stats/ticket_escalation.jst.eco
msgid "%s of my tickets escalated."
@ -208,6 +192,8 @@ msgid ""
"%s recommends using OAuth. %s announced it's going to drop Basic "
"Authentication support in the future."
msgstr ""
"%s rekommenderar att OAuth används. %s har meddelat att Basic Authentication "
"inte kommer att stödjas i framtiden."
#: app/assets/javascripts/app/controllers/agent_ticket_merge.coffee
msgid "%s required!"
@ -220,17 +206,15 @@ msgstr "%s startade en session"
#: app/assets/javascripts/app/views/import/freshdesk.jst.eco
#: app/assets/javascripts/app/views/import/kayako.jst.eco
msgid "%s subdomain"
msgstr ""
msgstr "%s underdomän"
#: app/assets/javascripts/app/models/user.coffee
msgid "%s switched to |%s|!"
msgstr "%s bytte till |%s|!"
#: app/assets/javascripts/app/models/ticket_article.coffee
#, fuzzy
#| msgid "%s created Article for |%s|"
msgid "%s updated article for |%s|"
msgstr "%s skapade en artikel åt |%s|"
msgstr "%s uppdaterade en artikel åt |%s|"
#: app/assets/javascripts/app/models/data_privacy_task.coffee
#, fuzzy
@ -239,16 +223,12 @@ msgid "%s updated data privacy task to delete user ID |%s|"
msgstr "%s startade GDRP-uppgiften att radera |%s|"
#: app/assets/javascripts/app/models/group.coffee
#, fuzzy
#| msgid "%s updated Group |%s|"
msgid "%s updated group |%s|"
msgstr "%s uppdatera Grupp |%s| "
msgstr "%s uppdaterade grupp |%s|"
#: app/assets/javascripts/app/models/organization.coffee
#, fuzzy
#| msgid "%s updated Organization |%s|"
msgid "%s updated organization |%s|"
msgstr "%s uppdaterade Organisation |%s| "
msgstr "%s uppdaterade organisation |%s|"
#: app/assets/javascripts/app/models/role.coffee
#, fuzzy
@ -430,7 +410,7 @@ msgstr ""
#: app/assets/javascripts/app/views/dashboard/first_steps_test_ticket_finish.jst.eco
msgid ""
"A test ticket has been created, you can find it in your overview \"%s\" %l."
msgstr "Ett testärende har skapats, du hittar det i din översikt \"%s\" %l. "
msgstr "Ett testärende har skapats och du hittar det i din översikt \"%s\" %l."
#: app/assets/javascripts/app/controllers/_integration/cti.coffee
msgid "A user is required!"
@ -2010,13 +1990,13 @@ msgstr ""
#: app/assets/javascripts/app/controllers/_plugin/keyboard_shortcuts.coffee
msgid "Close current tab"
msgstr "Stäng nuvarande tabb"
msgstr "Stäng nuvarande flik"
#: app/assets/javascripts/app/models/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/settings.rb
msgid "Close tab"
msgstr "Stäng tabb"
msgstr "Stäng flik"
#: app/assets/javascripts/app/models/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
@ -3795,6 +3775,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Hämta och installera %s Migrationsplugin på din %s instans."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Utkast"
@ -6331,10 +6312,8 @@ msgstr "Ladda"
#: app/assets/javascripts/app/controllers/ticket_zoom/sidebar_idoit.coffee
#: app/assets/javascripts/app/controllers/widget/payload_example.coffee
#: app/assets/javascripts/app/models/knowledge_base_answer_translation.coffee
#, fuzzy
#| msgid "Loading..."
msgid "Loading failed."
msgstr "Laddar..."
msgstr "Sidan kunde inte laddas."
#: app/assets/javascripts/app/lib/app_post/task_manager.coffee
#: app/assets/javascripts/app/lib/base/jquery.textmodule.js
@ -6408,7 +6387,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Macros"
@ -7691,16 +7672,15 @@ msgstr "Expertinställningar"
#: app/assets/javascripts/app/views/profile/out_of_office.jst.eco
#: db/seeds/permissions.rb
msgid "Out of Office"
msgstr "Frånvaruhantering"
msgstr "Frånvarohantering"
#: app/assets/javascripts/app/controllers/_dashboard/stats/ticket_load_measure.coffee
msgid "Out of all open tickets (company-wide), how many are assigned to you?"
msgstr ""
"Av alla öppna ärenden (hela-företaget), hur många är tilldelade till dig?"
msgstr "Hur många av alla öppna ärenden i din organisation har tilldelats dig?"
#: app/assets/javascripts/app/controllers/_ui_element/_application_selector.coffee
msgid "Out of office replacement"
msgstr "Frånvaro ersättare"
msgstr "Ersättare"
#: app/assets/javascripts/app/views/channel/email_account_overview.jst.eco
#: app/assets/javascripts/app/views/channel/sms_account_overview.jst.eco
@ -8680,6 +8660,7 @@ msgid "Save"
msgstr "Spara"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"
@ -10383,11 +10364,11 @@ msgstr ""
#: app/assets/javascripts/app/controllers/ticket_link_add.coffee
msgid "Ticket# is needed!"
msgstr ""
msgstr "Ärendenummer behövs"
#: app/assets/javascripts/app/models/ticket_article.coffee
msgid "TicketID"
msgstr ""
msgstr "Ärende-ID"
#: app/assets/javascripts/app/controllers/_plugin/keyboard_shortcuts.coffee
#: app/assets/javascripts/app/controllers/widget/user.coffee

View file

@ -3584,6 +3584,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -5991,7 +5992,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr ""
@ -8186,6 +8189,7 @@ msgid "Save"
msgstr ""
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3782,6 +3782,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Download and install the %s Migration Plugin on your %s instance."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Draft"
@ -6390,7 +6391,9 @@ msgstr "Macro"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Makrolar"
@ -8666,6 +8669,7 @@ msgid "Save"
msgstr "Kaydet"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3772,6 +3772,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "Завантажте і встановіть плагін міграції %s на Вашому екземплярі %s."
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "Чернетка"
@ -6350,7 +6351,9 @@ msgstr "Макрос"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "Макрос"
@ -8619,6 +8622,7 @@ msgid "Save"
msgstr "Зберегти"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3653,6 +3653,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr ""
@ -6094,7 +6095,9 @@ msgstr ""
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr ""
@ -8335,6 +8338,7 @@ msgid "Save"
msgstr "Lưu"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Save Draft"
msgstr ""

View file

@ -3684,6 +3684,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "在您的 s 系統上下載並安裝 s 遷移插件"
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "草稿"
@ -6244,7 +6245,9 @@ msgstr "宏处理"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "宏处理"
@ -8505,6 +8508,7 @@ msgid "Save"
msgstr "保存"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -3784,6 +3784,7 @@ msgid "Download and install the %s Migration Plugin on your %s instance."
msgstr "在您的 %s 系統上下載並安裝 %s 遷移插件。"
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
msgid "Draft"
msgstr "草稿"
@ -6355,7 +6356,9 @@ msgstr "巨集"
msgid "Macro group restrictions do not cover all tickets"
msgstr ""
#: app/assets/javascripts/app/controllers/macro.coffee db/seeds/permissions.rb
#: app/assets/javascripts/app/controllers/macro.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#: db/seeds/permissions.rb
msgid "Macros"
msgstr "巨集"
@ -8620,6 +8623,7 @@ msgid "Save"
msgstr "儲存"
#: app/assets/javascripts/app/views/ticket_shared_draft_overwrite_modal.coffee
#: app/assets/javascripts/app/views/ticket_zoom/attribute_bar.jst.eco
#, fuzzy
#| msgid "Draft"
msgid "Save Draft"

View file

@ -156,10 +156,11 @@ class ExcelSheet
record
end
case object[:data_type]
when 'boolean', 'select'
if object[:data_option] && object[:data_option]['options'] && object[:data_option]['options'][value]
value = object[:data_option]['options'][value]
when 'boolean', %r{^(multi|tree_)?select$}
if object[:data_option].present? && object[:data_option]['options'].present?
value = ObjectManager::Attribute.data_options_hash(object[:data_option]['options'])[value]
end
@worksheet.write_string(@current_row, @current_column, value) if value.present?
when 'datetime'
@worksheet.write_date_time(@current_row, @current_column, timestamp_in_localtime(value), @format_time) if value.present?

View file

@ -0,0 +1,32 @@
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
require 'rails_helper'
RSpec.describe Issue4089FixDraftAttribute, type: :db_migration do
def field
ObjectManager::Attribute.find_by(name: 'shared_drafts', object_lookup_id: ObjectLookup.by_name('Group'))
end
context 'when field does not exist', db_strategy: :reset do
before do
field.destroy
ObjectManager::Attribute.migration_execute
migrate
end
it 'does create the field and set it not editable' do
expect(field.reload.editable).to be(false)
end
end
context 'when field does exist' do
before do
field.update(editable: true)
migrate
end
it 'does set the field to not editable' do
expect(field.reload.editable).to be(false)
end
end
end

View file

@ -24,6 +24,15 @@ RSpec.describe TriggerWebhookJob::RecordPayload::Ticket::Article do
end
end
describe 'Webhhok transfers "accounted_time" of an article as integer instead of float/double #4127' do
let(:entry) { create(:ticket_time_accounting, ticket_id: record.ticket.id, ticket_article_id: record.id, time_unit: 3.33) }
it "stores value as 'accounted_time' key" do
entry
expect(generate['accounted_time']).to eq(3.33)
end
end
context 'when Article has stored attachments' do
before do

View file

@ -632,6 +632,20 @@ RSpec.describe Channel::EmailParser, type: :model do
include_examples 'adds message to ticket'
end
context 'in visible text with a linebreak' do
let(:raw_mail) { <<~RAW.chomp }
From: me@example.com
To: customer@example.com
Subject: no reference
Lorem ipsum dolor #{ticket_ref}
consetetur sadipscing elitr
sed diam nonumy eirmod
RAW
include_examples 'adds message to ticket'
end
context 'as part of a larger word' do
let(:ticket_ref) { "Foo#{Setting.get('ticket_hook')}#{Setting.get('ticket_hook_divider')}#{ticket.number}bar" }

View file

@ -34,7 +34,7 @@ RSpec.describe Ticket::Article, type: :model do
describe 'Setting of ticket_define_email_from' do
subject(:article) do
create(:ticket_article, sender_name: 'Agent', type_name: 'email')
create(:ticket_article, created_by: created_by, sender_name: 'Agent', type_name: 'email')
end
context 'when AgentName' do
@ -42,10 +42,23 @@ RSpec.describe Ticket::Article, type: :model do
Setting.set('ticket_define_email_from', 'AgentName')
end
it 'sets the from based on the setting' do
context 'with real sender' do
let(:created_by) { create(:user) }
it 'sets the from to the realname of the user' do
expect(article.reload.from).to eq("\"#{article.created_by.firstname} #{article.created_by.lastname}\" <#{article.ticket.group.email_address.email}>")
end
end
context 'with no real sender (e.g. trigger or scheduler)' do
let(:created_by) { User.find(1) }
it 'sets the from to realname of the mail address)' do
expect(article.reload.from).to eq("\"#{article.ticket.group.email_address.realname}\" <#{article.ticket.group.email_address.email}>")
end
end
end
end
describe 'Setting of ticket.create_article_{sender,type}' do

View file

@ -1487,43 +1487,6 @@ RSpec.describe Ticket, type: :model do
end
end
describe 'Associations:' do
describe '#organization' do
subject(:ticket) { build(:ticket, customer: customer, organization: nil) }
let(:customer) { create(:customer, :with_org) }
context 'on creation' do
it 'automatically adopts the organization of its #customer' do
expect { ticket.save }
.to change(ticket, :organization).to(customer.organization)
end
end
context 'on update of #customer.organization' do
context 'to nil' do
it 'automatically updates to #customers new value' do
ticket.save
expect { customer.update(organization: nil) }
.to change { ticket.reload.organization }.to(nil)
end
end
context 'to a different organization' do
let(:new_org) { create(:organization) }
it 'automatically updates to #customers new value' do
ticket.save
expect { customer.update(organization: new_org) }
.to change { ticket.reload.organization }.to(new_org)
end
end
end
end
end
describe '.search' do
shared_examples 'search permissions' do

View file

@ -0,0 +1,52 @@
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
require 'rails_helper'
RSpec.describe User::UpdatesTicketOrganization, type: :model do
subject(:ticket) { build(:ticket, customer: customer, organization: nil) }
let(:customer) { create(:customer, :with_org) }
context 'when ticket is created' do
it 'automatically adopts the organization of its #customer' do
expect { ticket.save }
.to change(ticket, :organization).to(customer.organization)
end
end
context 'when #customer.organization is updated' do
context 'when set to nil' do
it 'automatically updates to #customers new value' do
ticket.save
expect { customer.update(organization: nil) }
.to change { ticket.reload.organization }.to(nil)
end
end
context 'when #customer.organization is updated to a different organization' do
let(:old_org) { customer.organization }
let(:new_org) { create(:organization) }
it 'automatically updates to #customers new value' do
ticket.save
expect { customer.update(organization: new_org) }
.to change { ticket.reload.organization }.to(new_org)
end
it 'has made all changes with user id 1' do
expect(ticket.updated_by.id).to eq 1
end
# https://github.com/zammad/zammad/issues/3952
it 'does not send notifications' do
allow(NotificationFactory::Mailer).to receive(:send)
customer.update(organization: old_org)
expect(NotificationFactory::Mailer).not_to have_received(:send)
end
end
end
end

View file

@ -1009,14 +1009,14 @@ RSpec.describe User, type: :model do
'Trigger' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'Translation' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'ObjectManager::Attribute' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'User' => { 'created_by_id' => 1, 'out_of_office_replacement_id' => 1, 'updated_by_id' => 1 },
'User' => { 'created_by_id' => 2, 'out_of_office_replacement_id' => 1, 'updated_by_id' => 2 },
'Organization' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'Macro' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'CoreWorkflow' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'Mention' => { 'created_by_id' => 1, 'updated_by_id' => 0, 'user_id' => 1 },
'Channel' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'Role' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'History' => { 'created_by_id' => 5 },
'History' => { 'created_by_id' => 6 },
'Webhook' => { 'created_by_id' => 0, 'updated_by_id' => 0 },
'Overview' => { 'created_by_id' => 1, 'updated_by_id' => 0 },
'ActivityStream' => { 'created_by_id' => 0 },
@ -1055,6 +1055,11 @@ RSpec.describe User, type: :model do
create(:'chat/agent')
chat_agent_user = create(:'chat/agent', created_by_id: user.id, updated_by_id: user.id)
# invalid user (by email) which has been updated by the user which
# will get deleted (#3935)
invalid_user = build(:user, email: 'abc', created_by_id: user.id, updated_by_id: user.id)
invalid_user.save!(validate: false)
# move ownership objects
group = create(:group, created_by_id: user.id)
job = create(:job, updated_by_id: user.id)
@ -1108,6 +1113,7 @@ RSpec.describe User, type: :model do
.and change(user_created_by, :out_of_office_replacement_id).to(1)
expect { draft_start.reload }.to change(draft_start, :created_by_id).to(1)
expect { draft_zoom.reload }.to change(draft_zoom, :created_by_id).to(1)
expect { invalid_user.reload }.to change(invalid_user, :created_by_id).to(1)
end
it 'does delete cache after user deletion' do

View file

@ -35,4 +35,39 @@ RSpec.describe 'KnowledgeBase public answers', type: :request do
end
end
end
describe '#render_alternative' do
context 'when a translation is available' do
before { create(:knowledge_base_translation, kb_locale: alternative_locale) }
it 'returns OK for published answer' do
get help_answer_path(alternative_locale.system_locale.locale, category, published_answer)
expect(response).to have_http_status :ok
end
it 'returns NOT FOUND for draft answer' do
get help_answer_path(alternative_locale.system_locale.locale, category, draft_answer)
expect(response).to have_http_status :not_found
end
# https://github.com/zammad/zammad/issues/3931
context 'when the category has been updated' do
let(:new_category) { create(:knowledge_base_category, knowledge_base: knowledge_base) }
it 'returns NOT FOUND for published answer if old category is used' do
published_answer.update! category_id: new_category.id
get help_answer_path(alternative_locale.system_locale.locale, category, published_answer)
expect(response).to have_http_status :not_found
end
it 'returns OK for published answer if new category is used' do
published_answer.update! category_id: new_category.id
get help_answer_path(alternative_locale.system_locale.locale, new_category, published_answer)
expect(response).to have_http_status :ok
end
end
end
end
end

View file

@ -100,6 +100,18 @@ RSpec.describe Tag, type: :request do
include_examples 'no tag found using', search_term: '1foobar'
include_examples 'no tag found using', search_term: 'foobar2'
end
context 'without search term' do
before do
create_list(:tag, 2, tag_item: tags.last)
create_list(:tag, 1, tag_item: tags.first)
end
it 'most used is on first place without search term' do
get '/api/v1/tag_search', params: { term: '' }
expect(json_response.first['value']).to eq(tags.last.name)
end
end
end
end
end

View file

@ -3,6 +3,8 @@
require_relative './set_up'
RSpec.configure do |config|
capybara_examples_performed = 0
config.before(:each, type: :system) do |example|
Capybara.register_server :puma_wrapper do |app, port, host, **_options|
@ -39,12 +41,15 @@ RSpec.configure do |config|
end
config.after(:each, type: :system) do
capybara_examples_performed += 1
# End the main capybara session only from time to time, to speed up tests and make
# sure memory consumption does not rise too much.
# Make sure additional sessions (from using_sessions) are always ended
# after every test and not kept alive. Selenium will automatically close
# idle sessions which can cause 404 errors later.
# (see https://github.com/teamcapybara/capybara/issues/2237)
Capybara.send(:session_pool).reverse_each do |_mode, session|
if !session.eql?(Capybara.current_session)
if !session.eql?(Capybara.current_session) || (capybara_examples_performed % 100).zero?
session.quit
end
end
@ -56,7 +61,8 @@ RSpec.configure do |config|
# WebMock makes it impossible to have persistent http connections to Selenium,
# which may cause overhead and Net::OpenTimeout errors.
WebMock.disable! if !use_vcr
example.run
# rspec-retry
example.run_with_retry retry: 3, exceptions_to_retry: [Net::OpenTimeout, Net::ReadTimeout]
WebMock.enable! if !use_vcr
end
end

View file

@ -0,0 +1,11 @@
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
require 'rspec/retry'
RSpec.configure do |config|
# show retry status in spec process
config.verbose_retry = true
# show exception that triggers a retry if verbose_retry is set to true
config.display_try_failure_messages = true
# The list of exceptions to fail on should be configured in the individual :run_with_retry calls.
end

View file

@ -324,4 +324,36 @@ RSpec.describe 'Overview', type: :system do
end
end
end
context 'when only one attribute is visible', authenticated_as: :user do
let(:user) { create(:agent, groups: [group]) }
let(:group) { create(:group, name: 'aaa') }
let(:ticket) { create(:ticket, group: group, customer: user) }
let(:view) { { 's' => %w[title] } }
let(:condition) do
{
'ticket.customer_id' => {
operator: 'is',
value: user.id
}
}
end
let(:overview) { create(:overview, condition: condition, view: view) }
let(:overview_table_head_selector) { 'div.table-overview table.table thead' }
let(:expected_header_text) { 'TITLE' }
before do
ticket
visit "ticket/view/#{overview.link}"
end
it 'shows only the title column' do
within :active_content, overview_table_head_selector do
expect(page).to have_css('th.js-tableHead[data-column-key="title"]', text: expected_header_text)
end
end
end
end

View file

@ -232,4 +232,69 @@ RSpec.describe 'Search', type: :system, authenticated: true, searchindex: true d
end
end
end
describe 'Searches display all groups and owners on bulk selections #4054', authenticated_as: :authenticate do
let(:group1) { create(:group) }
let(:group2) { create(:group) }
let(:agent1) { create(:agent, groups: [group1]) }
let(:agent2) { create(:agent, groups: [group2]) }
let(:agent_all) { create(:agent, groups: [group1, group2]) }
let(:ticket1) { create(:ticket, group: group1, title: '4054 group 1') }
let(:ticket2) { create(:ticket, group: group2, title: '4054 group 2') }
def authenticate
agent1 && agent2 && agent_all
ticket1 && ticket2
agent_all
end
def check_owner_empty
expect(page).to have_select('owner_id', text: '-', visible: :all)
expect(page).to have_no_select('owner_id', text: agent1.fullname, visible: :all)
expect(page).to have_no_select('owner_id', text: agent2.fullname, visible: :all)
end
def click_ticket(ticket)
page.find(".js-tableBody tr.item[data-id='#{ticket.id}'] td.js-checkbox-field").click
end
def check_owner_agent1_shown
expect(page).to have_select('owner_id', text: agent1.fullname)
expect(page).to have_no_select('owner_id', text: agent2.fullname)
end
def check_owner_agent2_shown
expect(page).to have_no_select('owner_id', text: agent1.fullname)
expect(page).to have_select('owner_id', text: agent2.fullname)
end
def check_owner_field
check_owner_empty
click_ticket(ticket1)
check_owner_agent1_shown
click_ticket(ticket1)
click_ticket(ticket2)
check_owner_agent2_shown
end
context 'when search is used' do
before do
visit '#search/4054'
end
it 'does show the correct owner selection for each bulk action' do
check_owner_field
end
end
context 'when ticket overview is used' do
before do
visit '#ticket/view/all_unassigned'
end
it 'does show the correct owner selection for each bulk action' do
check_owner_field
end
end
end
end

View file

@ -946,4 +946,16 @@ RSpec.describe 'Ticket Create', type: :system do
wait.until { page.find("input[name='#{field_name}']", visible: :all).value == '' }
end
end
describe 'Wrong default values in ticket create when creating from user profile #4088' do
let(:customer) { create(:customer) }
before do
visit "ticket/create/customer/#{customer.id}"
end
it 'does show the default state when creating a ticket from a user profile' do
expect(page).to have_select('state_id', selected: 'open')
end
end
end

View file

@ -365,10 +365,16 @@ RSpec.describe 'Ticket > Update > Full Quote Header', current_user_id: -> { curr
end
def timestamp_reply
format_string = if Capybara.current_driver == :zammad_firefox
'%A, %B %1d, %Y at %1I:%M:%S %p'
else
'%A, %B %1d, %Y, %1I:%M:%S %p'
end
expected
.created_at
.in_time_zone('Europe/London')
.strftime('%A, %B %1d, %Y, %1I:%M:%S %p')
.strftime(format_string)
end
def timestamp_forward

View file

@ -28,11 +28,11 @@ class GeoIpTest < ActiveSupport::TestCase
result = Service::GeoIp.location('195.65.29.254')
assert(result)
assert_equal('Switzerland', result['country_name'])
assert_equal('Niederhasli', result['city_name'])
assert_equal('Effretikon / Watt', result['city_name'])
assert_equal('CH', result['country_code'])
assert_equal('EU', result['continent_code'])
assert_equal(47.4823, result['latitude'])
assert_equal(8.4823, result['longitude'])
assert_equal(47.4288, result['latitude'])
assert_equal(8.7025, result['longitude'])
result = Service::GeoIp.location('134.109.140.74')
assert(result)
@ -49,8 +49,8 @@ class GeoIpTest < ActiveSupport::TestCase
assert_equal('Halle', result['city_name'])
assert_equal('DE', result['country_code'])
assert_equal('EU', result['continent_code'])
assert_equal(51.4825, result['latitude'])
assert_equal(11.9772, result['longitude'])
assert_equal(51.5036, result['latitude'])
assert_equal(11.9594, result['longitude'])
result = Service::GeoIp.location('169.229.216.200')
assert(result)
@ -58,7 +58,7 @@ class GeoIpTest < ActiveSupport::TestCase
assert_equal('Oakland', result['city_name'])
assert_equal('US', result['country_code'])
assert_equal('NA', result['continent_code'])
assert_equal(37.8376, result['latitude'])
assert_equal(-122.2398, result['longitude'])
assert_equal(37.7428, result['latitude'])
assert_equal(-122.1745, result['longitude'])
end
end

View file

@ -76,8 +76,8 @@ tt p://6 6.000146.0x7.147/">XSS</A>', true), '<a href="http://h%0Att%20%20p://6
assert_equal(HtmlSanitizer.strict('<a xlink:href="javascript:alert(2)">CLICKME</a>'), 'CLICKME')
assert_equal(HtmlSanitizer.strict('<a xlink:href="javascript:alert(2)">CLICKME</a>', true), 'CLICKME')
assert_equal(HtmlSanitizer.strict('<!--<img src="--><img src=x onerror=alert(1)//">'), '<img src="x">')
assert_equal(HtmlSanitizer.strict('<![><img src="]><img src=x onerror=alert(1)//">'), '<img src="%5D&gt;&lt;img%20src=x%20onerror=alert(1)//">')
assert_equal(HtmlSanitizer.strict('<svg><![CDATA[><image xlink:href="]]><img src=xx:x onerror=alert(2)//"></svg>'), '')
assert_equal(HtmlSanitizer.strict('<![><img src="]><img src=x onerror=alert(1)//">'), '&lt;![&gt;<img src="%5D&gt;&lt;img%20src=x%20onerror=alert(1)//">')
assert_equal(HtmlSanitizer.strict('<svg><![CDATA[><image xlink:href="]]><img src=xx:x onerror=alert(2)//"></svg>'), '&lt;![CDATA[&gt;')
assert_equal(HtmlSanitizer.strict('<abc><img src="</abc><img src=x onerror=alert(1)//">'), '<img src="&lt;/abc&gt;&lt;img%20src=x%20onerror=alert(1)//">')
assert_equal(HtmlSanitizer.strict('<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></object>'), '')
assert_equal(HtmlSanitizer.strict('<embed src="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=="></embed>'), '')