chore: Fix link generation logic in help-center (#5470)
This commit is contained in:
parent
2d871a1ed5
commit
cc4ef14faa
8 changed files with 43 additions and 4 deletions
|
@ -1,7 +1,7 @@
|
||||||
class Public::Api::V1::PortalsController < PublicController
|
class Public::Api::V1::PortalsController < PublicController
|
||||||
before_action :ensure_custom_domain_request, only: [:show]
|
before_action :ensure_custom_domain_request, only: [:show]
|
||||||
before_action :redirect_to_portal_with_locale, only: [:show]
|
|
||||||
before_action :portal
|
before_action :portal
|
||||||
|
before_action :redirect_to_portal_with_locale, only: [:show]
|
||||||
layout 'portal'
|
layout 'portal'
|
||||||
|
|
||||||
def show; end
|
def show; end
|
||||||
|
|
|
@ -4,7 +4,12 @@ export const buildPortalURL = portalSlug => {
|
||||||
return `${baseURL}/hc/${portalSlug}`;
|
return `${baseURL}/hc/${portalSlug}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const buildPortalArticleURL = (portalSlug, categorySlug, articleId) => {
|
export const buildPortalArticleURL = (
|
||||||
|
portalSlug,
|
||||||
|
categorySlug,
|
||||||
|
locale,
|
||||||
|
articleId
|
||||||
|
) => {
|
||||||
const portalURL = buildPortalURL(portalSlug);
|
const portalURL = buildPortalURL(portalSlug);
|
||||||
return `${portalURL}/${categorySlug}/${articleId}`;
|
return `${portalURL}/${locale}/${categorySlug}/${articleId}`;
|
||||||
};
|
};
|
||||||
|
|
29
app/javascript/dashboard/helper/specs/portalHelper.spec.js
Normal file
29
app/javascript/dashboard/helper/specs/portalHelper.spec.js
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
import { buildPortalArticleURL, buildPortalURL } from '../portalHelper';
|
||||||
|
|
||||||
|
describe('PortalHelper', () => {
|
||||||
|
describe('buildPortalURL', () => {
|
||||||
|
it('returns the correct url', () => {
|
||||||
|
window.chatwootConfig = {
|
||||||
|
hostURL: 'https://app.chatwoot.com',
|
||||||
|
helpCenterURL: 'https://help.chatwoot.com',
|
||||||
|
};
|
||||||
|
expect(buildPortalURL('handbook')).toEqual(
|
||||||
|
'https://help.chatwoot.com/hc/handbook'
|
||||||
|
);
|
||||||
|
window.chatwootConfig = {};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('buildPortalArticleURL', () => {
|
||||||
|
it('returns the correct url', () => {
|
||||||
|
window.chatwootConfig = {
|
||||||
|
hostURL: 'https://app.chatwoot.com',
|
||||||
|
helpCenterURL: 'https://help.chatwoot.com',
|
||||||
|
};
|
||||||
|
expect(buildPortalArticleURL('handbook', 'culture', 'fr', 1)).toEqual(
|
||||||
|
'https://help.chatwoot.com/hc/handbook/fr/culture/1'
|
||||||
|
);
|
||||||
|
window.chatwootConfig = {};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
|
@ -1,6 +1,7 @@
|
||||||
{
|
{
|
||||||
"CONVERSATION": {
|
"CONVERSATION": {
|
||||||
"SELECT_A_CONVERSATION": "Please select a conversation from left pane",
|
"SELECT_A_CONVERSATION": "Please select a conversation from left pane",
|
||||||
|
"CSAT_REPLY_MESSAGE": "Please rate the conversation",
|
||||||
"404": "Sorry, we cannot find the conversation. Please try again",
|
"404": "Sorry, we cannot find the conversation. Please try again",
|
||||||
"SWITCH_VIEW_LAYOUT": "Switch the layout",
|
"SWITCH_VIEW_LAYOUT": "Switch the layout",
|
||||||
"DASHBOARD_APP_TAB_MESSAGES": "Messages",
|
"DASHBOARD_APP_TAB_MESSAGES": "Messages",
|
||||||
|
|
|
@ -90,6 +90,7 @@ export default {
|
||||||
return buildPortalArticleURL(
|
return buildPortalArticleURL(
|
||||||
slug,
|
slug,
|
||||||
this.article.category.slug,
|
this.article.category.slug,
|
||||||
|
this.article.category.locale,
|
||||||
this.article.id
|
this.article.id
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
|
@ -10,6 +10,7 @@ json.category do
|
||||||
json.id article.category_id
|
json.id article.category_id
|
||||||
json.name article.category.name
|
json.name article.category.name
|
||||||
json.slug article.category.slug
|
json.slug article.category.slug
|
||||||
|
json.locale article.category.locale
|
||||||
end
|
end
|
||||||
|
|
||||||
if article.portal.present?
|
if article.portal.present?
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
</div>
|
</div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<% category.articles.published.take(5).each do |article| %>
|
<% category.articles.published.take(5).each do |article| %>
|
||||||
<div class="flex justify-between content-center min:h-8 my-1">
|
<div class="flex justify-between content-center my-1">
|
||||||
<a
|
<a
|
||||||
class="text-slate-800 hover:underline leading-8"
|
class="text-slate-800 hover:underline leading-8"
|
||||||
href="/hc/<%= portal.slug %>/<%= category.locale %>/<%= category.slug %>/<%= article.id %>"
|
href="/hc/<%= portal.slug %>/<%= category.locale %>/<%= category.slug %>/<%= article.id %>"
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
</div>
|
</div>
|
||||||
<% end %>
|
<% end %>
|
||||||
</div>
|
</div>
|
||||||
|
<% if @portal.config["allowed_locales"].length > 1 %>
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div class="inline-flex relative w-24">
|
<div class="inline-flex relative w-24">
|
||||||
<select
|
<select
|
||||||
|
@ -32,5 +33,6 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<% end %>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
</header>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue