111 lines
3.6 KiB
JavaScript
111 lines
3.6 KiB
JavaScript
import { __, s__ } from '~/locale';
|
|
|
|
/**
|
|
* Generates empty state messages for Service Desk issues list.
|
|
*
|
|
* @param {emptyStateMeta} emptyStateMeta - Meta data used to generate empty state messages
|
|
* @returns {Object} Object containing empty state messages generated using the meta data.
|
|
*/
|
|
export function generateMessages(emptyStateMeta) {
|
|
const {
|
|
svgPath,
|
|
serviceDeskHelpPage,
|
|
serviceDeskAddress,
|
|
editProjectPage,
|
|
incomingEmailHelpPage,
|
|
} = emptyStateMeta;
|
|
|
|
const serviceDeskSupportedTitle = s__(
|
|
'ServiceDesk|Use Service Desk to connect with your users and offer customer support through email right inside GitLab',
|
|
);
|
|
|
|
const serviceDeskSupportedMessage = s__(
|
|
'ServiceDesk|Issues created from Service Desk emails will appear here. Each comment becomes part of the email conversation.',
|
|
);
|
|
|
|
const commonDescription = `
|
|
<span>${serviceDeskSupportedMessage}</span>
|
|
<a href="${serviceDeskHelpPage}">${__('Learn more.')}</a>`;
|
|
|
|
return {
|
|
serviceDeskEnabledAndCanEditProjectSettings: {
|
|
title: serviceDeskSupportedTitle,
|
|
svgPath,
|
|
description: `<p>${s__('ServiceDesk|Your users can send emails to this address:')}
|
|
<code>${serviceDeskAddress}</code>
|
|
</p>
|
|
${commonDescription}`,
|
|
},
|
|
serviceDeskEnabledAndCannotEditProjectSettings: {
|
|
title: serviceDeskSupportedTitle,
|
|
svgPath,
|
|
description: commonDescription,
|
|
},
|
|
serviceDeskDisabledAndCanEditProjectSettings: {
|
|
title: serviceDeskSupportedTitle,
|
|
svgPath,
|
|
description: commonDescription,
|
|
primaryLink: editProjectPage,
|
|
primaryText: s__('ServiceDesk|Enable Service Desk'),
|
|
},
|
|
serviceDeskDisabledAndCannotEditProjectSettings: {
|
|
title: serviceDeskSupportedTitle,
|
|
svgPath,
|
|
description: commonDescription,
|
|
},
|
|
serviceDeskIsNotSupported: {
|
|
title: s__('ServiceDesk|Service Desk is not supported'),
|
|
svgPath,
|
|
description: s__(
|
|
'ServiceDesk|To enable Service Desk on this instance, an instance administrator must first set up incoming email.',
|
|
),
|
|
primaryLink: incomingEmailHelpPage,
|
|
primaryText: __('Learn more.'),
|
|
},
|
|
serviceDeskIsNotEnabled: {
|
|
title: s__('ServiceDesk|Service Desk is not enabled'),
|
|
svgPath,
|
|
description: s__(
|
|
'ServiceDesk|For help setting up the Service Desk for your instance, please contact an administrator.',
|
|
),
|
|
},
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Returns the attributes used for gl-empty-state in the Service Desk issues list.
|
|
*
|
|
* @param {Object} emptyStateMeta - Meta data used to generate empty state messages
|
|
* @returns {Object}
|
|
*/
|
|
export function emptyStateHelper(emptyStateMeta) {
|
|
const messages = generateMessages(emptyStateMeta);
|
|
|
|
const { isServiceDeskSupported, canEditProjectSettings, isServiceDeskEnabled } = emptyStateMeta;
|
|
|
|
if (isServiceDeskSupported) {
|
|
if (isServiceDeskEnabled && canEditProjectSettings) {
|
|
return messages.serviceDeskEnabledAndCanEditProjectSettings;
|
|
}
|
|
|
|
if (isServiceDeskEnabled && !canEditProjectSettings) {
|
|
return messages.serviceDeskEnabledAndCannotEditProjectSettings;
|
|
}
|
|
|
|
// !isServiceDeskEnabled && canEditProjectSettings
|
|
if (canEditProjectSettings) {
|
|
return messages.serviceDeskDisabledAndCanEditProjectSettings;
|
|
}
|
|
|
|
// !isServiceDeskEnabled && !canEditProjectSettings
|
|
return messages.serviceDeskDisabledAndCannotEditProjectSettings;
|
|
}
|
|
|
|
// !serviceDeskSupported && canEditProjectSettings
|
|
if (canEditProjectSettings) {
|
|
return messages.serviceDeskIsNotSupported;
|
|
}
|
|
|
|
// !serviceDeskSupported && !canEditProjectSettings
|
|
return messages.serviceDeskIsNotEnabled;
|
|
}
|