Feature: KB AI - Improve wording on "Generate AI Answer"

This commit is contained in:
Benjamin Scharf 2026-04-22 21:05:19 +02:00
parent aaa4700468
commit 87b0961021
12 changed files with 125 additions and 112 deletions

View file

@ -1,4 +1,4 @@
<label><%- @T('Related Answers') %></label>
<label><%- @T('Related knowledge') %></label>
<ol class="tasks tasks--standalone">
<% for item in @list: %>
<li class="task">
@ -17,10 +17,10 @@
<% end %>
</ol>
<% if @editable: %>
<div class="text-muted js-add u-clickable vertical">
<span>+ <%- @T('Link Related Answer') %></span>
<div class="text-muted js-add u-clickable horizontal center justify-end gap-16">
<span>+ <%- @T('Link') %></span>
<% if @aiEnabled: %>
<span class="js-kb-ai-generate kb-ai-generate-wrapper">+ <span class="kb-ai-generate"><%- @T('Generate Related AI Answer') %></span></span>
<span class="js-kb-ai-generate kb-ai-generate-wrapper">+ <%- @T('AI generate') %></span>
<% end %>
</div>
<% end %>

View file

@ -1,4 +1,4 @@
<label><%- @T('Links') %></label>
<label><%- @T('Related tickets') %></label>
<% for type of @links: %>
<% type_definition = _.find(@link_types, (elem) => elem[0] == type) || [] %>
<div class="ticketLinks">
@ -7,5 +7,7 @@
</div>
<% end %>
<% if @editable: %>
<div class="text-muted u-clickable js-add">+ <%- @T('Add Link') %></div>
<div class="text-muted horizontal center justify-end gap-16">
<span class="u-clickable js-add js-add-related-ticket">+ <%- @T('Link') %></span>
</div>
<% end %>

View file

@ -11,7 +11,11 @@
<% end %>
</ul>
<% if @editable: %>
<div class="text-muted js-newTagLabel u-clickable">+ <%- @T('Add Tag') %></div>
<div class="text-muted horizontal center justify-end gap-16">
<span class="js-newTagLabel u-clickable" href="#">
+ <%- @T('Tag') %>
</span>
</div>
<form class="ui-front">
<input type="text" name="new_tag" class="hide js-newTagInput" autocomplete="off">
</form>

View file

@ -4849,6 +4849,8 @@ footer {
padding: 0;
margin-bottom: 9px;
display: flex;
border-bottom: 1px solid var(--background-modifier-border);
padding-bottom: 4px;
.icon-holder {
&:first-child .icon-task-state {
@ -7388,15 +7390,20 @@ a.list-group-item.active > .badge,
}
.kb-ai-generate-wrapper {
margin-top: 8px;
}
position: relative;
.kb-ai-generate {
background-image: linear-gradient(to right, var(--ai-assist-blue), var(--ai-assist-pink));
background-size: 100% 2px;
background-position: 0 100%;
background-repeat: no-repeat;
padding-bottom: 2px;
&::after {
content: ' ';
position: absolute;
width: 88%; // Minus the plus
right: 0;
bottom: 0;
background-image: linear-gradient(to right, var(--ai-assist-blue), var(--ai-assist-pink));
background-size: 100% 2px;
background-position: 0 100%;
background-repeat: no-repeat;
padding-bottom: 2px;
}
}
.is-internal .internal-border {
@ -13217,7 +13224,8 @@ output {
overflow: hidden;
&.is-picking {
cursor: url('/assets/images/eyedropper.gif') 0 15,
cursor:
url('/assets/images/eyedropper.gif') 0 15,
auto;
}
@ -14408,7 +14416,8 @@ output {
background: linear-gradient(to right, $rainbow);
position: relative;
overflow: hidden;
cursor: url('/assets/images/colorcircle.gif') 8 8,
cursor:
url('/assets/images/colorcircle.gif') 8 8,
auto;
user-select: none;
}
@ -14647,6 +14656,10 @@ body.fit {
margin-bottom: 5px;
}
.gap-16 {
gap: 16px;
}
/*
Firefox minimum content bugfix

View file

@ -47,7 +47,7 @@ describe('Ticket detail view links', () => {
const ticketMetaSidebar = within(view.getByLabelText('Content sidebar'))
expect(ticketMetaSidebar.getByText('Links')).toBeInTheDocument()
expect(ticketMetaSidebar.getByText('Related tickets')).toBeInTheDocument()
expect(ticketMetaSidebar.getByText('No links added yet.')).toBeInTheDocument()
await view.events.click(await view.findByRole('button', { name: 'Add link' }))

View file

@ -121,25 +121,25 @@ const actions = computed<MenuItem[]>(() => [
<TicketTags :ticket="ticket" :is-ticket-editable="isTicketEditable" />
</CommonSectionCollapse>
<CommonSectionCollapse
v-if="showAIKnowledgeBaseAnswers"
id="ticket-ai-knowledge-base-answers"
v-model="persistentStates.collapseKnowledgeBase"
:title="__('Knowledge Base')"
>
<TicketAIKnowledgeBaseAnswers />
</CommonSectionCollapse>
<CommonSectionCollapse
v-if="isTicketAgent"
v-show="isTicketEditable || ticketLinksInstance?.hasLinks"
id="ticket-links"
v-model="persistentStates.collapseLinks"
:title="__('Links')"
:title="__('Related tickets')"
>
<TicketLinks ref="ticket-links" :ticket="ticket" :is-ticket-editable="isTicketEditable" />
</CommonSectionCollapse>
<CommonSectionCollapse
v-if="showAIKnowledgeBaseAnswers"
id="ticket-ai-knowledge-base-answers"
v-model="persistentStates.collapseKnowledgeBase"
:title="__('Related knowledge')"
>
<TicketAIKnowledgeBaseAnswers />
</CommonSectionCollapse>
<CommonSectionCollapse
v-if="ticket?.timeUnit && isTicketAgent"
id="ticket-time-accounting"

View file

@ -54,7 +54,7 @@ const requestDraft = async () => {
</script>
<template>
<div class="flex">
<div class="flex justify-end">
<CommonButton
type="button"
size="small"
@ -63,7 +63,7 @@ const requestDraft = async () => {
:disabled="isGenerating"
@click="requestDraft"
>
{{ $t('Generate Related AI Answer') }}
{{ $t('AI generate') }}
</CommonButton>
</div>
</template>

View file

@ -46,7 +46,7 @@ describe('TicketAIKnowledgeBaseAnswers', () => {
const wrapper = renderKBAnswers()
await wrapper.events.click(wrapper.getByRole('button', { name: 'Generate Related AI Answer' }))
await wrapper.events.click(wrapper.getByRole('button', { name: 'AI generate' }))
expect(notifications.notify).toHaveBeenCalledWith({
id: 'ticket-ai-knowledge-base-answers-notification',
@ -67,7 +67,7 @@ describe('TicketAIKnowledgeBaseAnswers', () => {
const wrapper = renderKBAnswers()
await wrapper.events.click(wrapper.getByRole('button', { name: 'Generate Related AI Answer' }))
await wrapper.events.click(wrapper.getByRole('button', { name: 'AI generate' }))
expect(notifications.notify).toHaveBeenCalledWith({
id: 'ticket-ai-knowledge-base-answers-notification',

View file

@ -734,6 +734,11 @@ msgstr ""
msgid "AI error log"
msgstr ""
#: app/assets/javascripts/app/views/link/kb_answer.jst.eco:23
#: app/frontend/apps/desktop/pages/ticket/components/TicketSidebar/TicketSidebarInformation/TicketSidebarInformationContent/TicketAIKnowledgeBaseAnswers.vue:66
msgid "AI generate"
msgstr ""
#: db/seeds/settings.rb:6075
msgid "AI provider"
msgstr ""
@ -1181,10 +1186,6 @@ msgstr ""
msgid "Add Key"
msgstr ""
#: app/assets/javascripts/app/views/link/ticket/list.jst.eco:10
msgid "Add Link"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/smime.coffee:120
#: app/assets/javascripts/app/views/integration/smime.jst.eco:6
msgid "Add Private Key"
@ -1203,7 +1204,6 @@ msgid "Add SSL Certificate"
msgstr ""
#: app/assets/javascripts/app/views/knowledge_base/sidebar/tags.jst.eco:19
#: app/assets/javascripts/app/views/widget/tag.jst.eco:14
msgid "Add Tag"
msgstr ""
@ -1227,7 +1227,7 @@ msgstr ""
msgid "Add a data privacy deletion task"
msgstr ""
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:268
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:279
msgid "Add a message"
msgstr ""
@ -1355,7 +1355,7 @@ msgstr ""
msgid "Additional follow-up detection"
msgstr ""
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:203
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:214
msgid "Additional information"
msgstr ""
@ -1977,8 +1977,8 @@ msgstr ""
#: app/frontend/apps/desktop/components/CommonConfirmationDialog/CommonConfirmationDialog.vue:54
#: app/frontend/apps/mobile/components/CommonDialogObjectForm/CommonDialogObjectForm.vue:63
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/TicketAction/TicketActionChangeCustomerDialog.vue:34
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:409
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:251
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:420
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:254
#: app/frontend/apps/mobile/pages/ticket/views/TicketInformation/TicketInformationDetails.vue:41
msgid "Are you sure? You have unsaved changes that will get lost."
msgstr ""
@ -2061,7 +2061,7 @@ msgstr ""
msgid "Assign follow-ups"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:611
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:613
msgid "Assign signup roles"
msgstr ""
@ -2135,9 +2135,9 @@ msgstr ""
msgid "Attached Files"
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:210
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:315
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:236
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:221
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:326
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:279
msgid "Attachment"
msgstr ""
@ -2189,7 +2189,7 @@ msgstr ""
msgid "Attribute"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:638
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:640
msgid "Attribute '%s' is required in the mapping"
msgstr ""
@ -2521,7 +2521,7 @@ msgstr ""
msgid "Base"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:508
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:510
#: app/assets/javascripts/app/views/integration/ldap.jst.eco:35
#: app/assets/javascripts/app/views/integration/ldap_wizard.jst.eco:91
msgid "Base DN"
@ -2717,12 +2717,12 @@ msgstr ""
#: app/assets/javascripts/app/models/ticket_article.coffee:9
#: app/assets/javascripts/app/views/ticket_zoom/article_new.jst.eco:58
#: app/assets/javascripts/app/views/ticket_zoom/article_view.jst.eco:34
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:168
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:179
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleMeta/useArticleMeta.ts:85
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/ArticleMetadataDialog.vue:90
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:235
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:246
#: app/frontend/shared/entities/ticket-article/action/plugins/email/forward.ts:30
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:189
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:232
#: db/seeds/object_manager_attributes.rb:523
msgid "CC"
msgstr ""
@ -2905,7 +2905,7 @@ msgstr ""
#: app/frontend/apps/desktop/pages/authentication/views/PasswordReset.vue:118
#: app/frontend/apps/desktop/pages/authentication/views/PasswordResetVerify.vue:147
#: app/frontend/apps/desktop/pages/authentication/views/Signup.vue:135
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:425
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:436
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketSharedDraftConflictDialog.vue:67
#: app/frontend/apps/desktop/pages/ticket/components/TicketSharedDraftFlyout.vue:218
msgid "Cancel & go back"
@ -3109,7 +3109,7 @@ msgstr ""
#: app/assets/javascripts/app/views/ticket_zoom/article_view.jst.eco:163
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleMeta/useArticleMeta.ts:102
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/ArticleMetadataDialog.vue:102
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:139
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:182
msgid "Channel"
msgstr ""
@ -3849,7 +3849,7 @@ msgstr ""
#: app/frontend/apps/desktop/pages/guided-setup/components/GuidedSetupActionFooter.vue:46
#: app/frontend/apps/desktop/pages/guided-setup/views/GuidedSetupImport/GuidedSetupImportSource/GuidedSetupImportSource.vue:52
#: app/frontend/apps/desktop/pages/guided-setup/views/GuidedSetupManual/GuidedSetupManualChannelEmail.vue:136
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:523
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:534
msgid "Continue"
msgstr ""
@ -4074,8 +4074,8 @@ msgstr ""
#: app/frontend/apps/desktop/components/Form/fields/FieldGroupPermissions/FieldGroupPermissionsInput.vue:42
#: app/frontend/apps/desktop/entities/user/composables/useUserCreate.ts:78
#: app/frontend/apps/desktop/pages/personal-setting/components/PersonalSettingNewAccessTokenFlyout.vue:114
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:298
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:474
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:309
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:485
msgid "Create"
msgstr ""
@ -4151,8 +4151,8 @@ msgstr ""
msgid "Create new Customer"
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:298
#: app/frontend/apps/mobile/components/Form/fields/FieldCustomer/FieldCustomerWrapper.vue:74
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:309
#: app/frontend/apps/mobile/components/Form/fields/FieldCustomer/FieldCustomerWrapper.vue:71
msgid "Create new customer"
msgstr ""
@ -4193,7 +4193,7 @@ msgid "Create tag"
msgstr ""
#: app/frontend/apps/mobile/pages/ticket/routes.ts:64
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:474
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:485
msgid "Create ticket"
msgstr ""
@ -4304,7 +4304,7 @@ msgid "Created by"
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/views/TicketCreate.vue:24
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:449
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:460
msgid "Creating new tickets via web is disabled."
msgstr ""
@ -5814,12 +5814,12 @@ msgid "Discard article"
msgstr ""
#: app/frontend/apps/desktop/components/CommonConfirmationDialog/CommonConfirmationDialog.vue:56
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:422
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:433
#: app/frontend/apps/mobile/components/CommonDialogObjectForm/CommonDialogObjectForm.vue:65
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/ArticleReplyDialog.vue:59
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/TicketAction/TicketActionChangeCustomerDialog.vue:36
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:411
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:253
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:422
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:256
#: app/frontend/apps/mobile/pages/ticket/views/TicketInformation/TicketInformationDetails.vue:43
msgid "Discard changes"
msgstr ""
@ -5949,7 +5949,7 @@ msgstr ""
msgid "Don't load CSS for form. You need to generate your own CSS for the form."
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:612
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:614
msgid "Don't synchronize"
msgstr ""
@ -7482,7 +7482,7 @@ msgstr ""
#: app/frontend/apps/desktop/pages/personal-setting/views/PersonalSettingTokenAccess.vue:42
#: app/frontend/apps/desktop/pages/personal-setting/views/PersonalSettingTwoFactorAuth.vue:38
#: app/frontend/apps/desktop/pages/ticket/views/TicketCreate.vue:23
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:448
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:459
#: app/frontend/shared/errors/useErrorHandler.ts:29
#: app/frontend/shared/router/guards/before/permission.ts:26
msgid "Forbidden"
@ -7679,11 +7679,6 @@ msgstr ""
msgid "Generate Access Token for |%s|"
msgstr ""
#: app/assets/javascripts/app/views/link/kb_answer.jst.eco:23
#: app/frontend/apps/desktop/pages/ticket/components/TicketSidebar/TicketSidebarInformation/TicketSidebarInformationContent/TicketAIKnowledgeBaseAnswers.vue:66
msgid "Generate Related AI Answer"
msgstr ""
#: app/assets/javascripts/app/controllers/api.coffee:167
msgid "Generate Token"
msgstr ""
@ -7981,7 +7976,7 @@ msgstr ""
msgid "Group Filter"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:555
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:557
msgid "Group information could not be retrieved, please check your bind user permissions."
msgstr ""
@ -8773,7 +8768,7 @@ msgstr ""
msgid "Incomplete credentials"
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:427
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:439
msgid "Incomplete ticket checklist"
msgstr ""
@ -8949,7 +8944,7 @@ msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee:105
#: app/frontend/apps/desktop/components/Ticket/TicketBulkEditFlyout/TicketBulkEditFlyout.vue:144
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:160
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:203
msgid "Internal"
msgstr ""
@ -9322,7 +9317,6 @@ msgstr ""
#: app/assets/javascripts/app/controllers/_manage/knowledge_base.coffee:2
#: app/assets/javascripts/app/controllers/knowledge_base/agent_controller.coffee:3
#: app/assets/javascripts/app/models/knowledge_base.coffee:75
#: app/frontend/apps/desktop/pages/ticket/components/TicketSidebar/TicketSidebarInformation/TicketSidebarInformationContent.vue:128
#: app/models/knowledge_base.rb:218
#: db/seeds/permissions.rb:113
msgid "Knowledge Base"
@ -9399,7 +9393,7 @@ msgstr ""
msgid "LDAP integration"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:859
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:861
msgid "LDAP integration for user management."
msgstr ""
@ -9639,6 +9633,8 @@ msgstr ""
#: app/assets/javascripts/app/controllers/ticket_link_add.coffee:7
#: app/assets/javascripts/app/models/overview.coffee:7
#: app/assets/javascripts/app/models/public_link.coffee:6
#: app/assets/javascripts/app/views/link/kb_answer.jst.eco:21
#: app/assets/javascripts/app/views/link/ticket/list.jst.eco:11
#: app/frontend/apps/desktop/pages/ticket/components/TicketLinksFlyout.vue:53
#: app/frontend/shared/components/Form/FormFieldLink.vue:18
msgid "Link"
@ -9669,10 +9665,6 @@ msgstr ""
msgid "Link GitLab issues to your tickets."
msgstr ""
#: app/assets/javascripts/app/views/link/kb_answer.jst.eco:21
msgid "Link Related Answer"
msgstr ""
#: app/frontend/shared/components/Form/fields/FieldEditor/features/link/LinkForm.vue:147
msgid "Link URL"
msgstr ""
@ -9757,11 +9749,6 @@ msgstr ""
msgid "LinkedIn Developer Site"
msgstr ""
#: app/assets/javascripts/app/views/link/ticket/list.jst.eco:1
#: app/frontend/apps/desktop/pages/ticket/components/TicketSidebar/TicketSidebarInformation/TicketSidebarInformationContent.vue:138
msgid "Links"
msgstr ""
#: app/frontend/apps/desktop/components/UserTaskbarTabs/UserTaskbarTabs.vue:245
msgid "List of all user taskbar tabs"
msgstr ""
@ -9786,7 +9773,7 @@ msgstr ""
msgid "Load"
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleMore.vue:22
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleMore.vue:27
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/ArticleSeparatorMore.vue:18
#: app/frontend/apps/mobile/pages/ticket/components/TicketList/TicketList.vue:132
msgid "Load %s more"
@ -11574,7 +11561,7 @@ msgid "No x-zammad-session-user-id, no sender set!"
msgstr ""
#: app/assets/javascripts/app/controllers/ticket_zoom/checklist_modal.coffee:8
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:430
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:442
msgid "No, just close the ticket"
msgstr ""
@ -13247,7 +13234,7 @@ msgstr ""
#: app/assets/javascripts/app/controllers/knowledge_base/content_can_be_published_form.coffee:109
#: app/frontend/apps/desktop/components/Ticket/TicketBulkEditFlyout/TicketBulkEditFlyout.vue:139
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:165
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:208
msgid "Public"
msgstr ""
@ -13492,10 +13479,6 @@ msgstr ""
msgid "Registration successful!"
msgstr ""
#: app/assets/javascripts/app/views/link/kb_answer.jst.eco:1
msgid "Related Answers"
msgstr ""
#: lib/excel_sheet/ai/analytics/errors.rb:30
#: lib/excel_sheet/ai/analytics/with_usage.rb:30
msgid "Related Object ID"
@ -13506,6 +13489,11 @@ msgstr ""
msgid "Related Object Type"
msgstr ""
#: app/assets/javascripts/app/views/link/kb_answer.jst.eco:1
#: app/frontend/apps/desktop/pages/ticket/components/TicketSidebar/TicketSidebarInformation/TicketSidebarInformationContent.vue:138
msgid "Related knowledge"
msgstr ""
#: app/controllers/ticket/knowledge_base_answers_controller.rb:50
msgid "Related knowledge base answer creation has already been started for current ticket."
msgstr ""
@ -13514,6 +13502,8 @@ msgstr ""
msgid "Related knowledge base answer creation has already been started for given ticket."
msgstr ""
#: app/assets/javascripts/app/views/link/ticket/list.jst.eco:1
#: app/frontend/apps/desktop/pages/ticket/components/TicketSidebar/TicketSidebarInformation/TicketSidebarInformationContent.vue:129
#: app/frontend/apps/desktop/pages/user/components/UserDetailViewContent.vue:158
msgid "Related tickets"
msgstr ""
@ -14580,11 +14570,11 @@ msgstr ""
#: app/frontend/apps/desktop/pages/personal-setting/views/PersonalSetting/plugins/password.ts:10
#: app/frontend/apps/desktop/pages/personal-setting/views/PersonalSetting/plugins/tokenAccess.ts:10
#: app/frontend/apps/desktop/pages/personal-setting/views/PersonalSetting/plugins/twoFactorAuth.ts:10
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:178
#: app/frontend/apps/desktop/pages/ticket/components/TicketCreate/TicketCreateContent.vue:189
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/article-type/plugins/email.ts:26
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/ArticleMetadataDialog.vue:127
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:277
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:211
#: app/frontend/apps/mobile/pages/ticket/views/TicketCreate.vue:288
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:254
#: db/seeds/permissions.rb:209
msgid "Security"
msgstr ""
@ -14941,7 +14931,7 @@ msgid "Sequencer log level"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/exchange.coffee:409
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:497
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:499
#: app/assets/javascripts/app/controllers/_integration/pgp.coffee:252
#: app/assets/javascripts/app/controllers/_integration/smime.coffee:215
#: app/assets/javascripts/app/controllers/ssl_certificate.coffee:78
@ -15854,7 +15844,7 @@ msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/article-type/plugins/email.ts:14
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/ArticleMetadataDialog.vue:91
#: app/frontend/shared/entities/ticket-article/action/plugins/email/forward.ts:26
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:200
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:243
msgid "Subject"
msgstr ""
@ -16075,6 +16065,10 @@ msgstr ""
msgid "Tabs"
msgstr ""
#: app/assets/javascripts/app/views/widget/tag.jst.eco:1
msgid "Tag"
msgstr ""
#: app/frontend/apps/mobile/components/Form/fields/FieldTags/FieldTagsDialog.vue:113
msgid "Tag \"%s\" already exists."
msgstr ""
@ -18394,7 +18388,7 @@ msgstr ""
msgid "Ticket tags updated successfully."
msgstr ""
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:101
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:123
msgid "Ticket title"
msgstr ""
@ -18410,8 +18404,8 @@ msgid "Ticket update failed."
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailTopBar/useTicketEditTitle.ts:26
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:519
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:158
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:531
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:161
msgid "Ticket updated successfully."
msgstr ""
@ -18426,7 +18420,7 @@ msgid "Ticket will escalate (#{ticket.title})\n\n<div>Hi #{recipient.firstname},
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/routes.ts:47
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:68
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:69
msgid "Ticket with specified ID was not found. Try checking the URL for errors."
msgstr ""
@ -18640,7 +18634,7 @@ msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleMeta/useArticleMeta.ts:75
#: app/frontend/apps/mobile/pages/ticket/components/TicketDetailView/ArticleMetadataDialog.vue:89
#: app/frontend/shared/entities/ticket-article/action/plugins/email/forward.ts:29
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:177
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:220
#: db/seeds/object_manager_attributes.rb:496
msgid "To"
msgstr ""
@ -19669,7 +19663,7 @@ msgstr ""
msgid "User has no access"
msgstr ""
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:550
#: app/assets/javascripts/app/controllers/_integration/ldap.coffee:552
msgid "User information could not be retrieved, please check your bind user permissions."
msgstr ""
@ -19941,7 +19935,7 @@ msgstr ""
#: app/assets/javascripts/app/views/generic/ticket_perform_action/article.jst.eco:3
#: app/assets/javascripts/app/views/generic/ticket_perform_action/notification.jst.eco:3
#: app/frontend/apps/desktop/components/Ticket/TicketBulkEditFlyout/TicketBulkEditFlyout.vue:133
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:152
#: app/frontend/shared/entities/ticket/composables/useTicketEditForm.ts:195
#: db/seeds/object_manager_attributes.rb:462
msgid "Visibility"
msgstr ""
@ -20316,7 +20310,7 @@ msgid "Yes, add attachments now"
msgstr ""
#: app/assets/javascripts/app/controllers/ticket_zoom/checklist_modal.coffee:5
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:429
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:441
msgid "Yes, open the checklist"
msgstr ""
@ -20557,7 +20551,7 @@ msgid "You have insufficient rights to view this organization."
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/routes.ts:45
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:69
#: app/frontend/apps/mobile/pages/ticket/views/TicketDetailView.vue:70
msgid "You have insufficient rights to view this ticket."
msgstr ""
@ -20603,7 +20597,7 @@ msgstr ""
msgid "You have unchecked items in the checklist."
msgstr ""
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:424
#: app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/TicketDetailViewContent.vue:436
msgid "You have unchecked items in the checklist. Do you want to handle them before closing this ticket?"
msgstr ""

View file

@ -15,7 +15,7 @@ RSpec.describe 'Ticket zoom > Add Link action', type: :system do
shared_examples 'adding link to target ticket' do
it 'adds link to target ticket' do
click('.js-add', text: 'Add Link')
click('.js-add-related-ticket', text: '+ Link')
in_modal do
fill_in 'ticket_number', with: ticket_number

View file

@ -43,7 +43,7 @@ RSpec.describe 'Ticket Access Zoom', authenticated_as: :user, type: :system do
shared_examples 'elements' do
it 'verify all elements available' do
%w[TAGS LINKS].each do |element|
['TAGS', 'RELATED TICKETS'].each do |element|
expect(page).to have_content(element)
end
end
@ -56,9 +56,9 @@ RSpec.describe 'Ticket Access Zoom', authenticated_as: :user, type: :system do
it 'shows tag, and link modification buttons' do
expect(page).to have_css('.tags .icon-diagonal-cross')
expect(page).to have_content('+ Add Tag')
expect(page).to have_content('+ Tag')
expect(page).to have_css('.links .icon-diagonal-cross')
expect(page).to have_content('+ Add Link')
expect(page).to have_content('+ Link')
end
context 'with select, treeselect, multiselect and multi-treeselect fields', authenticated_as: :authenticated, db_strategy: :reset do
@ -125,9 +125,9 @@ RSpec.describe 'Ticket Access Zoom', authenticated_as: :user, type: :system do
it 'shows no tag and link modification buttons' do
expect(page).to have_no_selector('.tags .icon-diagonal-cross')
expect(page).to have_no_content('+ Add Tag')
expect(page).to have_no_content('+ Tag')
expect(page).to have_no_selector('.links .icon-diagonal-cross')
expect(page).to have_no_content('+ Add Link')
expect(page).to have_no_content('+ Link')
end
it 'shows no ticket actions' do

View file

@ -30,7 +30,7 @@ RSpec.describe 'Ticket zoom > Tags', type: :system do
end
it 'shows recommended tags (#4869)' do
click '.js-newTagLabel', text: 'Add Tag'
click '.js-newTagLabel', text: '+ Tag'
expect(page).to have_css('ul.ui-autocomplete > li.ui-menu-item', minimum: 3, wait: 30)