diff --git a/package-lock.json b/package-lock.json
index e754e6d..ceb4881 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -26,46 +26,6 @@
"strip-json-comments": "^3.1.1"
}
},
- "@fortawesome/fontawesome-common-types": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.1.1.tgz",
- "integrity": "sha512-wVn5WJPirFTnzN6tR95abCx+ocH+3IFLXAgyavnf9hUmN0CfWoDjPT/BAWsUVwSlYYVBeCLJxaqi7ZGe4uSjBA=="
- },
- "@fortawesome/fontawesome-free": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.1.1.tgz",
- "integrity": "sha512-J/3yg2AIXc9wznaVqpHVX3Wa5jwKovVF0AMYSnbmcXTiL3PpRPfF58pzWucCwEiCJBp+hCNRLWClTomD8SseKg==",
- "dev": true
- },
- "@fortawesome/fontawesome-svg-core": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.1.1.tgz",
- "integrity": "sha512-NCg0w2YIp81f4V6cMGD9iomfsIj7GWrqmsa0ZsPh59G7PKiGN1KymZNxmF00ssuAlo/VZmpK6xazsGOwzKYUMg==",
- "requires": {
- "@fortawesome/fontawesome-common-types": "6.1.1"
- }
- },
- "@fortawesome/free-regular-svg-icons": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-regular-svg-icons/-/free-regular-svg-icons-6.1.1.tgz",
- "integrity": "sha512-xXiW7hcpgwmWtndKPOzG+43fPH7ZjxOaoeyooptSztGmJxCAflHZxXNK0GcT0uEsR4jTGQAfGklDZE5NHoBhKg==",
- "requires": {
- "@fortawesome/fontawesome-common-types": "6.1.1"
- }
- },
- "@fortawesome/free-solid-svg-icons": {
- "version": "6.1.1",
- "resolved": "https://registry.npmjs.org/@fortawesome/free-solid-svg-icons/-/free-solid-svg-icons-6.1.1.tgz",
- "integrity": "sha512-0/5exxavOhI/D4Ovm2r3vxNojGZioPwmFrKg0ZUH69Q68uFhFPs6+dhAToh6VEQBntxPRYPuT5Cg1tpNa9JUPg==",
- "requires": {
- "@fortawesome/fontawesome-common-types": "6.1.1"
- }
- },
- "@fortawesome/vue-fontawesome": {
- "version": "3.0.0-5",
- "resolved": "https://registry.npmjs.org/@fortawesome/vue-fontawesome/-/vue-fontawesome-3.0.0-5.tgz",
- "integrity": "sha512-aNmBT4bOecrFsZTog1l6AJDQHPP3ocXV+WQ3Ogy8WZCqstB/ahfhH4CPu5i4N9Hw0MBKXqE+LX+NbUxcj8cVTw=="
- },
"@humanwhocodes/config-array": {
"version": "0.9.5",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
@@ -466,6 +426,11 @@
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
+ "cronstrue": {
+ "version": "2.47.0",
+ "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.47.0.tgz",
+ "integrity": "sha512-fnFwJy7zslTEz6h7O7BkwgHNBvuuPmkhAYKqPDxK5mBQLz2nG08T9afbnjm+yrvcc/wxrd+otaVSnoXT9ulUOw=="
+ },
"cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
diff --git a/package.json b/package.json
index 3140f2f..1803f81 100644
--- a/package.json
+++ b/package.json
@@ -10,6 +10,7 @@
"dependencies": {
"autoprefixer": "^10",
"axios": "^0.27.2",
+ "cronstrue": "^2.47.0",
"mitt": "^3.0.0",
"pinia": "^2.0.14",
"postcss": "^8",
diff --git a/src/components/Sidebar.vue b/src/components/Sidebar.vue
index 518ea5f..588f317 100644
--- a/src/components/Sidebar.vue
+++ b/src/components/Sidebar.vue
@@ -27,6 +27,7 @@ export default {
let menuRoutes = {
'General': {
'home': 'Home',
+ 'explain_crontab': 'Explain crontab',
},
'Strings': {
'fix_ru_en_keyboard': 'Fix ru-en keyboard',
diff --git a/src/router/index.js b/src/router/index.js
index 853e63b..db3f440 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -11,6 +11,11 @@ const router = createRouter({
name: 'home',
component: () => import('../views/HomeView.vue'),
},
+ {
+ path: '/explain_crontab',
+ name: 'explain_crontab',
+ component: () => import('../views/ExplainCrontab.vue'),
+ },
/**
* String manipulation
diff --git a/src/views/ExplainCrontab.vue b/src/views/ExplainCrontab.vue
new file mode 100644
index 0000000..682ab90
--- /dev/null
+++ b/src/views/ExplainCrontab.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file