chore: Fix link generation logic in help-center (#5470)

This commit is contained in:
Pranav Raj S 2022-09-20 18:23:28 -07:00 committed by GitHub
parent 2d871a1ed5
commit cc4ef14faa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 43 additions and 4 deletions

View file

@ -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

View file

@ -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}`;
}; };

View 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 = {};
});
});
});

View file

@ -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",

View file

@ -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
); );
}, },

View file

@ -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?

View file

@ -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 %>"

View file

@ -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>