Skip to content

Instantly share code, notes, and snippets.

@uniconstructor
Last active January 20, 2020 21:54
Show Gist options
  • Save uniconstructor/29473a148b6b87cd534bb1de1ff4572f to your computer and use it in GitHub Desktop.
Save uniconstructor/29473a148b6b87cd534bb1de1ff4572f to your computer and use it in GitHub Desktop.
const fetchMachine = Machine({
'id': 'NewPublicationWorkflow',
'meta': {
'name': 'Создание новой публикации автором',
'description': [
'Процесс подготовки статьи, выполняемый автором перед отправкой на проверку редактору.'
]
},
'context': {},
'initial': 'Start',
'states': {
'Start': {
'on': {
'START_CONFIRMED': 'Setup'
},
'meta': {
'name': 'Создание новой публикации',
'description': [
'Перед отправкой статьи нужно указать для нее стандартный набор обязательных ',
'параметров (например тематику, язык публикации и список авторов).',
'\n\n',
'## Особенности работы\n',
' - Ввод данных разделен на шаги.\n',
' - Все данные сохраняются в черновике при каждом изменении любого поля формы.\n',
' - Вы можете прервать процесс на любом шаге и вернутся к нему позже.\n',
' - Можно одновременно работать с несколькими черновиками.\n',
' - Все введенные данные будут доступны для просмотра на последнем шаге перед отправкой.\n',
' - Изменить черновик публикации после отправки будет нельзя.\n'
]
}
},
'Setup': {
'type': 'compound',
'initial': 'Journal',
'states': {
'Journal': {
'on': {
'': [
{
'target': 'Language'
}
]
},
'meta': {
'name': 'Выбор журнала для публикации'
}
},
'Language': {
'on': {
'LANGUAGE_SET': 'Checklist'
},
'meta': {
'name': 'Выбор языка публикации'
}
},
'Checklist': {
'on': {
'CHECKLIST_PASSED': 'Finish'
},
'meta': {
'name': 'Проверка статьи перед загрузкой',
'description': [
'Перед тем как перейти к загрузке файла статьи убедитесь что она соответствует ',
'общим требованиям. Нужно отметитьь все пункты списка чтобы перейти к следующему шагу.'
]
}
},
'Finish': {
'type': 'final',
'meta': {
'name': 'Подготовка публикации завершена'
}
}
},
'onDone': 'Article',
'meta': {
'name': 'Настройка параметров публикации'
}
},
'Article': {
'type': 'compound',
'initial': 'Upload',
'states': {
'Upload': {
'on': {
'ARTICLE_UPLOADED': 'Meta'
},
'meta': {
'name': 'Загрузка файла статьи'
}
},
'Meta': {
'on': {
'ARTICLE_META_SET': 'MetaTranslation'
},
'meta': {
'name': 'Ввод метаданных статьи'
}
},
'MetaTranslation': {
'on': {
'ARTICLE_META_TRANSLATED': 'Authors'
},
'meta': {
'name': 'Перевод метаданных статьи'
}
},
'Authors': {
'on': {
'ARTICLE_AUTHORS_SET': 'Finish'
},
'meta': {
'name': 'Ввод информации об авторах'
}
},
'Finish': {
'type': 'final',
'meta': {
'name': 'Ввод данных статьи завершен'
}
}
},
'onDone': 'Review',
'meta': {
'name': 'Ввод данных статьи'
}
},
'Review': {
'on': {
'REVIEW_COMPLETED': 'Finish'
},
'meta': {
'name': 'Итоговая проверка черновика публикации перед отправкой'
}
},
'Finish': {
'type': 'final',
'meta': {
'name': 'Публикация отправлена на рассмотрение',
'description': [
'Ваша статья отправлена на проверку в издательство. Мы сообщим вам о результате. '
]
}
}
}
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment