diff --git a/src/components/on-demand/wt-save-failed-popup/__tests__/WtPopup.spec.js b/src/components/on-demand/wt-save-failed-popup/__tests__/WtPopup.spec.js new file mode 100644 index 00000000..c1692b30 --- /dev/null +++ b/src/components/on-demand/wt-save-failed-popup/__tests__/WtPopup.spec.js @@ -0,0 +1,9 @@ +import { shallowMount } from '@vue/test-utils'; +import WtSaveFailedPopup from '../wt-save-failed-popup.vue'; + +describe('WtSaveFailedPopup', () => { + it('renders a component', () => { + const wrapper = shallowMount(WtSaveFailedPopup); + expect(wrapper.classes('wt-save-failed-popup')).toBe(true); + }); +}); diff --git a/src/components/on-demand/wt-save-failed-popup/wt-save-failed-popup.vue b/src/components/on-demand/wt-save-failed-popup/wt-save-failed-popup.vue new file mode 100644 index 00000000..1f15e5c7 --- /dev/null +++ b/src/components/on-demand/wt-save-failed-popup/wt-save-failed-popup.vue @@ -0,0 +1,70 @@ + + + + + diff --git a/src/locale/en/en.js b/src/locale/en/en.js index add0f664..fd7f6f58 100644 --- a/src/locale/en/en.js +++ b/src/locale/en/en.js @@ -359,5 +359,10 @@ export default { message: 'The limit for agents to take a pause has been exceeded. The pause is unavailable right now.', }, }, + saveFailedPopup: { + title: 'Save failed', + label: 'Something went wrong, please try again', + exportToJson: 'Export to JSON', + }, }, }; diff --git a/src/locale/kz/kz.js b/src/locale/kz/kz.js index d35dbed6..8b9ffccc 100644 --- a/src/locale/kz/kz.js +++ b/src/locale/kz/kz.js @@ -322,5 +322,10 @@ export default { unlimited: 'Шексіз', }, }, + saveFailedPopup: { + title: 'Қатені сақтау', + label: 'Бірдеңе дұрыс болмады.', + exportToJson: 'JSON файлына экспорттау', + }, }, }; diff --git a/src/locale/ru/ru.js b/src/locale/ru/ru.js index e22b5ed1..0d5986a9 100644 --- a/src/locale/ru/ru.js +++ b/src/locale/ru/ru.js @@ -357,5 +357,10 @@ export default { message: 'Лимит операторов в паузе превышен. Перерыв сейчас недоступен.', }, }, + saveFailedPopup: { + title: 'Ошибка сохранения', + label: 'Что-то пошло не так. Пожалуйста, попробуйте еще раз', + exportToJson: 'Экспортировать в JSON', + }, }, }; diff --git a/src/locale/ua/ua.js b/src/locale/ua/ua.js index 922632d5..5c95a6e2 100644 --- a/src/locale/ua/ua.js +++ b/src/locale/ua/ua.js @@ -357,5 +357,10 @@ export default { message: 'Ліміт операторів в паузі перевищено. Перерва наразі недоступна.', }, }, + saveFailedPopup: { + title: 'Помилка збереження', + label: 'Щось пішло не так. Будь ласка, спробуйте ще раз', + exportToJson: 'Експортувати в JSON', + }, }, }; diff --git a/src/scripts/saveAsJSON.js b/src/scripts/saveAsJSON.js new file mode 100644 index 00000000..5237e5a2 --- /dev/null +++ b/src/scripts/saveAsJSON.js @@ -0,0 +1,7 @@ +import { saveAs } from 'file-saver'; + +export const saveAsJSON = (name, content) => { + const fileName = name.replace(/[ ,]+/g, '-'); + const file = new Blob([JSON.stringify(content, null, 4)], { type: 'application/json' }); + saveAs(file, fileName); +};