diff --git a/.ddev/php/30-xdebug-client-port.ini b/.ddev/php/30-xdebug-client-port.ini
new file mode 100644
index 0000000..2a95572
--- /dev/null
+++ b/.ddev/php/30-xdebug-client-port.ini
@@ -0,0 +1,2 @@
+[PHP]
+xdebug.client_port=9000
diff --git a/nuxt/app.vue b/nuxt/app.vue
index cfff88b..8e52080 100644
--- a/nuxt/app.vue
+++ b/nuxt/app.vue
@@ -1,3 +1,14 @@
+
+
diff --git a/nuxt/components/Glava.vue b/nuxt/components/Glava.vue
index 6370a7e..6aedc6e 100644
--- a/nuxt/components/Glava.vue
+++ b/nuxt/components/Glava.vue
@@ -14,7 +14,7 @@ const { baseUrl } = useRuntimeConfig().public
-
- Domov
+ {{ $t('domov') }}
-
@@ -22,6 +22,9 @@ const { baseUrl } = useRuntimeConfig().public
Manifest
+ -
+
+
-
admin
@@ -32,7 +35,7 @@ const { baseUrl } = useRuntimeConfig().public
MANIFEST
- JUGOFUTURIZEM
+ {{ $t('jugofuturizem') }}
diff --git a/nuxt/nuxt.config.js b/nuxt/nuxt.config.js
index 858152b..2b5f7a3 100644
--- a/nuxt/nuxt.config.js
+++ b/nuxt/nuxt.config.js
@@ -19,7 +19,8 @@ export default defineNuxtConfig({
dirs: ['stores']
},
modules: [
- ['@pinia/nuxt', { autoImports: ['defineStore', 'acceptHMRUpdate']}]
+ ['@pinia/nuxt', { autoImports: ['defineStore', 'acceptHMRUpdate']}],
+ '@nuxtjs/i18n'
//'nuxt-proxy'
],
proxy: {
@@ -54,5 +55,20 @@ export default defineNuxtConfig({
file: '~/pages/manifest/dodaj.vue'
})
}
+ },
+ i18n: {
+ locales: [{
+ code: 'si',
+ file: 'si.json'
+ }, {
+ code: 'en',
+ file: 'en.json'
+ }, {
+ code: 'hr',
+ file: 'hr.json'
+ }],
+ langDir: 'lang',
+ defaultLocale: 'si',
+ fallbackLocale: 'si'
}
})
diff --git a/nuxt/package-lock.json b/nuxt/package-lock.json
index 5be0b30..1ec92e9 100644
--- a/nuxt/package-lock.json
+++ b/nuxt/package-lock.json
@@ -15,6 +15,7 @@
"devDependencies": {
"@nuxtjs/eslint-config": "^6.0.1",
"@nuxtjs/eslint-module": "^3.0.2",
+ "@nuxtjs/i18n": "^8.0.0",
"@pinia/nuxt": "^0.5.1",
"nuxt": "^3.8.2"
}
@@ -1135,6 +1136,186 @@
"dev": true,
"peer": true
},
+ "node_modules/@intlify/bundle-utils": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/@intlify/bundle-utils/-/bundle-utils-7.5.1.tgz",
+ "integrity": "sha512-UovJl10oBIlmYEcWw+VIHdKY5Uv5sdPG0b/b6bOYxGLln3UwB75+2dlc0F3Fsa0RhoznQ5Rp589/BZpABpE4Xw==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/message-compiler": "^9.4.0",
+ "@intlify/shared": "^9.4.0",
+ "acorn": "^8.8.2",
+ "escodegen": "^2.1.0",
+ "estree-walker": "^2.0.2",
+ "jsonc-eslint-parser": "^2.3.0",
+ "magic-string": "^0.30.0",
+ "mlly": "^1.2.0",
+ "source-map-js": "^1.0.1",
+ "yaml-eslint-parser": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 14.16"
+ },
+ "peerDependenciesMeta": {
+ "petite-vue-i18n": {
+ "optional": true
+ },
+ "vue-i18n": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@intlify/bundle-utils/node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
+ },
+ "node_modules/@intlify/core": {
+ "version": "9.10.2",
+ "resolved": "https://registry.npmjs.org/@intlify/core/-/core-9.10.2.tgz",
+ "integrity": "sha512-t/RVemtM3bTE/wa7zqR+zkumy4dda5skVhxAh+3oYbOyJRw1y3B0FWiuB2Awa1HgoYC0DuPYrsAsQoeLy2eQPQ==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/core-base": "9.10.2",
+ "@intlify/shared": "9.10.2"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/core-base": {
+ "version": "9.10.2",
+ "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.10.2.tgz",
+ "integrity": "sha512-HGStVnKobsJL0DoYIyRCGXBH63DMQqEZxDUGrkNI05FuTcruYUtOAxyL3zoAZu/uDGO6mcUvm3VXBaHG2GdZCg==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/message-compiler": "9.10.2",
+ "@intlify/shared": "9.10.2"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/h3": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@intlify/h3/-/h3-0.5.0.tgz",
+ "integrity": "sha512-cgfrtD3qu3BPJ47gfZ35J2LJpI64Riic0K8NGgid5ilyPXRQTNY7mXlT/B+HZYQg1hmBxKa5G5HJXyAZ4R2H5A==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/core": "^9.8.0",
+ "@intlify/utils": "^0.12.0"
+ },
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/message-compiler": {
+ "version": "9.10.2",
+ "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.10.2.tgz",
+ "integrity": "sha512-ntY/kfBwQRtX5Zh6wL8cSATujPzWW2ZQd1QwKyWwAy5fMqJyyixHMeovN4fmEyCqSu+hFfYOE63nU94evsy4YA==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/shared": "9.10.2",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/shared": {
+ "version": "9.10.2",
+ "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.10.2.tgz",
+ "integrity": "sha512-ttHCAJkRy7R5W2S9RVnN9KYQYPIpV2+GiS79T4EE37nrPyH6/1SrOh3bmdCRC1T3ocL8qCDx7x2lBJ0xaITU7Q==",
+ "dev": true,
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
+ "node_modules/@intlify/unplugin-vue-i18n": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/@intlify/unplugin-vue-i18n/-/unplugin-vue-i18n-2.0.0.tgz",
+ "integrity": "sha512-1oKvm92L9l2od2H9wKx2ZvR4tzn7gUtd7bPLI7AWUmm7U9H1iEypndt5d985ypxGsEs0gToDaKTrytbBIJwwSg==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/bundle-utils": "^7.4.0",
+ "@intlify/shared": "^9.4.0",
+ "@rollup/pluginutils": "^5.0.2",
+ "@vue/compiler-sfc": "^3.2.47",
+ "debug": "^4.3.3",
+ "fast-glob": "^3.2.12",
+ "js-yaml": "^4.1.0",
+ "json5": "^2.2.3",
+ "pathe": "^1.0.0",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2",
+ "unplugin": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 14.16"
+ },
+ "peerDependencies": {
+ "petite-vue-i18n": "*",
+ "vue-i18n": "*",
+ "vue-i18n-bridge": "*"
+ },
+ "peerDependenciesMeta": {
+ "petite-vue-i18n": {
+ "optional": true
+ },
+ "vue-i18n": {
+ "optional": true
+ },
+ "vue-i18n-bridge": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@intlify/unplugin-vue-i18n/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/@intlify/unplugin-vue-i18n/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@intlify/utils": {
+ "version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/@intlify/utils/-/utils-0.12.0.tgz",
+ "integrity": "sha512-yCBNcuZQ49iInqmWC2xfW0rgEQyNtCM8C8KcWKTXxyscgUE1+48gjLgZZqP75MjhlApxwph7ZMWLqyABkSgxQA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ }
+ },
"node_modules/@ioredis/commands": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz",
@@ -1258,9 +1439,9 @@
}
},
"node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz",
+ "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==",
"engines": {
"node": ">=6.0.0"
}
@@ -1295,12 +1476,12 @@
"integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw=="
},
"node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.17",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz",
- "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==",
+ "version": "0.3.25",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz",
+ "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==",
"dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
}
},
"node_modules/@kwsites/file-exists": {
@@ -1363,6 +1544,19 @@
"node": ">= 6"
}
},
+ "node_modules/@miyaneee/rollup-plugin-json5": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/@miyaneee/rollup-plugin-json5/-/rollup-plugin-json5-1.2.0.tgz",
+ "integrity": "sha512-JjTIaXZp9WzhUHpElrqPnl1AzBi/rvRs065F71+aTmlqvTMVkdbjZ8vfFl4nRlgJy+TPBw69ZK4pwFdmOAt4aA==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^5.1.0",
+ "json5": "^2.2.3"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0 || ^2.0.0 || ^3.0.0 || ^4.0.0"
+ }
+ },
"node_modules/@netlify/functions": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@netlify/functions/-/functions-2.4.0.tgz",
@@ -2575,6 +2769,172 @@
"eslint": ">=7"
}
},
+ "node_modules/@nuxtjs/i18n": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/@nuxtjs/i18n/-/i18n-8.0.0.tgz",
+ "integrity": "sha512-h436bYKJ9a8NpLoY5kc5QyM6WTsuFU2IGtSErm+iRgWBinguLg/gp0cvgji35WgVlRUAhocYkxOqTSpZiUZyYA==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/h3": "^0.5.0",
+ "@intlify/shared": "^9.8.0",
+ "@intlify/unplugin-vue-i18n": "^2.0.0",
+ "@intlify/utils": "^0.12.0",
+ "@miyaneee/rollup-plugin-json5": "^1.1.2",
+ "@nuxt/kit": "^3.7.4",
+ "@rollup/plugin-yaml": "^4.1.2",
+ "@vue/compiler-sfc": "^3.3.4",
+ "debug": "^4.3.4",
+ "defu": "^6.1.2",
+ "estree-walker": "^3.0.3",
+ "is-https": "^4.0.0",
+ "knitwork": "^1.0.0",
+ "magic-string": "^0.30.4",
+ "mlly": "^1.4.2",
+ "pathe": "^1.1.1",
+ "sucrase": "^3.34.0",
+ "ufo": "^1.3.1",
+ "unplugin": "^1.5.0",
+ "vue-i18n": "^9.8.0",
+ "vue-i18n-routing": "^1.2.0"
+ },
+ "engines": {
+ "node": "^14.16.0 || >=16.11.0"
+ }
+ },
+ "node_modules/@nuxtjs/i18n/node_modules/@intlify/vue-i18n-bridge": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@intlify/vue-i18n-bridge/-/vue-i18n-bridge-1.1.0.tgz",
+ "integrity": "sha512-yBwGpr70Rc56pjsPdtvNRi/ju0P9h3670EkCOuxAzKKR5OH61uF9LprLUGmph/Uy2TXBO2DKqpnJBFXyXJQKeg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "vue-i18n-fix": "bin/fix.js",
+ "vue-i18n-switch": "bin/switch.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue-i18n": "^8.26.1 || >=9.2.0",
+ "vue-i18n-bridge": ">=9.2.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "vue-i18n": {
+ "optional": true
+ },
+ "vue-i18n-bridge": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nuxtjs/i18n/node_modules/@intlify/vue-router-bridge": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@intlify/vue-router-bridge/-/vue-router-bridge-1.1.0.tgz",
+ "integrity": "sha512-EX+KndT9VS3muMdZWFmc99D8nUaWTOXr322a8zNf5HnMCbpbogdifWYW8hat+nVE73St/gcDbPz6u5smVUPoQg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "vue-demi": ">=0.13.5 < 1.0.0"
+ },
+ "bin": {
+ "vue-router-fix": "bin/fix.js",
+ "vue-router-switch": "bin/switch.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue-router": "^4.0.0-0 || ^3.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nuxtjs/i18n/node_modules/vue-demi": {
+ "version": "0.14.7",
+ "resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.7.tgz",
+ "integrity": "sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@nuxtjs/i18n/node_modules/vue-i18n-routing": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/vue-i18n-routing/-/vue-i18n-routing-1.2.0.tgz",
+ "integrity": "sha512-pn+bIFRMX5BN1BVQJ5rn05dYVnBhU/QnkxhjEJAe9HnYtJhDubetvoY+yfgDNWwesNWfHbbvsilsgSGL6DJyeA==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/shared": "^9.4.1",
+ "@intlify/vue-i18n-bridge": "^1.1.0",
+ "@intlify/vue-router-bridge": "^1.1.0",
+ "ufo": "^1.2.0",
+ "vue-demi": ">=0.13.5 < 1.0.0"
+ },
+ "engines": {
+ "node": ">= 14.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^2.6.14 || ^2.7.0 || ^3.2.0",
+ "vue-i18n": "^8.26.1 || >=9.2.0",
+ "vue-i18n-bridge": ">=9.2.0",
+ "vue-router": "^3.5.3 || ^3.6.0 || ^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ },
+ "vue": {
+ "optional": true
+ },
+ "vue-i18n": {
+ "optional": true
+ },
+ "vue-i18n-bridge": {
+ "optional": true
+ },
+ "vue-router": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@nuxtjs/proxy": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@nuxtjs/proxy/-/proxy-2.1.0.tgz",
@@ -3112,6 +3472,46 @@
}
}
},
+ "node_modules/@rollup/plugin-yaml": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-yaml/-/plugin-yaml-4.1.2.tgz",
+ "integrity": "sha512-RpupciIeZMUqhgFE97ba0s98mOFS7CWzN3EJNhJkqSv9XLlWYtwVdtE6cDw6ASOF/sZVFS7kRJXftaqM2Vakdw==",
+ "dev": true,
+ "dependencies": {
+ "@rollup/pluginutils": "^5.0.1",
+ "js-yaml": "^4.1.0",
+ "tosource": "^2.0.0-alpha.3"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/plugin-yaml/node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true
+ },
+ "node_modules/@rollup/plugin-yaml/node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
"node_modules/@rollup/pluginutils": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
@@ -4320,6 +4720,12 @@
"node": ">=4"
}
},
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==",
+ "dev": true
+ },
"node_modules/anymatch": {
"version": "3.1.3",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
@@ -6386,6 +6792,46 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/escodegen": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz",
+ "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==",
+ "dev": true,
+ "dependencies": {
+ "esprima": "^4.0.1",
+ "estraverse": "^5.2.0",
+ "esutils": "^2.0.2"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "optionalDependencies": {
+ "source-map": "~0.6.1"
+ }
+ },
+ "node_modules/escodegen/node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/escodegen/node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true,
+ "optional": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/eslint": {
"version": "7.32.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
@@ -7230,7 +7676,6 @@
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
"integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
- "peer": true,
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -8631,6 +9076,12 @@
"node": ">=0.10.0"
}
},
+ "node_modules/is-https": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/is-https/-/is-https-4.0.0.tgz",
+ "integrity": "sha512-FeMLiqf8E5g6SdiVJsPcNZX8k4h2fBs1wp5Bb6uaNxn58ufK1axBqQZdmAQsqh0t9BuwFObybrdVJh6MKyPlyg==",
+ "dev": true
+ },
"node_modules/is-inside-container": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz",
@@ -9054,6 +9505,53 @@
"node": ">=0.12"
}
},
+ "node_modules/jsonc-eslint-parser": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/jsonc-eslint-parser/-/jsonc-eslint-parser-2.4.0.tgz",
+ "integrity": "sha512-WYDyuc/uFcGp6YtM2H0uKmUwieOuzeE/5YocFJLnLfclZ4inf3mRn8ZVy1s7Hxji7Jxm6Ss8gqpexD/GlKoGgg==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.5.0",
+ "eslint-visitor-keys": "^3.0.0",
+ "espree": "^9.0.0",
+ "semver": "^7.3.5"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
+ }
+ },
+ "node_modules/jsonc-eslint-parser/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/jsonc-eslint-parser/node_modules/espree": {
+ "version": "9.6.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
+ "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.9.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^3.4.1"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/jsonc-parser": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
@@ -9839,6 +10337,17 @@
"integrity": "sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==",
"dev": true
},
+ "node_modules/mz": {
+ "version": "2.7.0",
+ "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
+ "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
+ "dev": true,
+ "dependencies": {
+ "any-promise": "^1.0.0",
+ "object-assign": "^4.0.1",
+ "thenify-all": "^1.0.0"
+ }
+ },
"node_modules/nanoid": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-4.0.2.tgz",
@@ -11325,6 +11834,15 @@
}
}
},
+ "node_modules/pirates": {
+ "version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz",
+ "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/pkg-types": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz",
@@ -13387,6 +13905,88 @@
"postcss": "^8.2.15"
}
},
+ "node_modules/sucrase": {
+ "version": "3.35.0",
+ "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz",
+ "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.2",
+ "commander": "^4.0.0",
+ "glob": "^10.3.10",
+ "lines-and-columns": "^1.1.6",
+ "mz": "^2.7.0",
+ "pirates": "^4.0.1",
+ "ts-interface-checker": "^0.1.9"
+ },
+ "bin": {
+ "sucrase": "bin/sucrase",
+ "sucrase-node": "bin/sucrase-node"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/sucrase/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz",
+ "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.2.1",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/sucrase/node_modules/commander": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz",
+ "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/sucrase/node_modules/glob": {
+ "version": "10.3.10",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
+ "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==",
+ "dev": true,
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^2.3.5",
+ "minimatch": "^9.0.1",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0",
+ "path-scurry": "^1.10.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sucrase/node_modules/minimatch": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz",
+ "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -13619,6 +14219,27 @@
"dev": true,
"peer": true
},
+ "node_modules/thenify": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
+ "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
+ "dev": true,
+ "dependencies": {
+ "any-promise": "^1.0.0"
+ }
+ },
+ "node_modules/thenify-all": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
+ "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
+ "dev": true,
+ "dependencies": {
+ "thenify": ">= 3.1.0 < 4"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/tiny-invariant": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.1.tgz",
@@ -13663,6 +14284,15 @@
"node": ">=0.6"
}
},
+ "node_modules/tosource": {
+ "version": "2.0.0-alpha.3",
+ "resolved": "https://registry.npmjs.org/tosource/-/tosource-2.0.0-alpha.3.tgz",
+ "integrity": "sha512-KAB2lrSS48y91MzFPFuDg4hLbvDiyTjOVgaK7Erw+5AmZXNq4sFRVn8r6yxSLuNs15PaokrDRpS61ERY9uZOug==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/totalist": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.1.tgz",
@@ -13678,6 +14308,12 @@
"integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
"dev": true
},
+ "node_modules/ts-interface-checker": {
+ "version": "0.1.13",
+ "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
+ "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==",
+ "dev": true
+ },
"node_modules/tsconfig-paths": {
"version": "3.14.2",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
@@ -15197,6 +15833,26 @@
"semver": "bin/semver.js"
}
},
+ "node_modules/vue-i18n": {
+ "version": "9.10.2",
+ "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.10.2.tgz",
+ "integrity": "sha512-ECJ8RIFd+3c1d3m1pctQ6ywG5Yj8Efy1oYoAKQ9neRdkLbuKLVeW4gaY5HPkD/9ssf1pOnUrmIFjx2/gkGxmEw==",
+ "dev": true,
+ "dependencies": {
+ "@intlify/core-base": "9.10.2",
+ "@intlify/shared": "9.10.2",
+ "@vue/devtools-api": "^6.5.0"
+ },
+ "engines": {
+ "node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
+ },
+ "peerDependencies": {
+ "vue": "^3.0.0"
+ }
+ },
"node_modules/vue-router": {
"version": "4.2.5",
"resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
@@ -15531,6 +16187,35 @@
"node": ">= 14"
}
},
+ "node_modules/yaml-eslint-parser": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-1.2.2.tgz",
+ "integrity": "sha512-pEwzfsKbTrB8G3xc/sN7aw1v6A6c/pKxLAkjclnAyo5g5qOh6eL9WGu0o3cSDQZKrTNk4KL4lQSwZW+nBkANEg==",
+ "dev": true,
+ "dependencies": {
+ "eslint-visitor-keys": "^3.0.0",
+ "lodash": "^4.17.21",
+ "yaml": "^2.0.0"
+ },
+ "engines": {
+ "node": "^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ota-meshi"
+ }
+ },
+ "node_modules/yaml-eslint-parser/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
"node_modules/yargs": {
"version": "17.7.2",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
diff --git a/nuxt/package.json b/nuxt/package.json
index 27cc447..fd86b7e 100644
--- a/nuxt/package.json
+++ b/nuxt/package.json
@@ -11,6 +11,7 @@
"devDependencies": {
"@nuxtjs/eslint-config": "^6.0.1",
"@nuxtjs/eslint-module": "^3.0.2",
+ "@nuxtjs/i18n": "^8.0.0",
"@pinia/nuxt": "^0.5.1",
"nuxt": "^3.8.2"
},
diff --git a/nuxt/public/favicon.ico b/nuxt/public/favicon.ico
index 18993ad..cc0c129 100644
Binary files a/nuxt/public/favicon.ico and b/nuxt/public/favicon.ico differ
diff --git a/nuxt/public/images/Favicon.png b/nuxt/public/images/Favicon.png
new file mode 100644
index 0000000..9fdfcd9
Binary files /dev/null and b/nuxt/public/images/Favicon.png differ
diff --git a/nuxt/public/images/Skrbina.png b/nuxt/public/images/Skrbina.png
new file mode 100644
index 0000000..3fc5d3c
Binary files /dev/null and b/nuxt/public/images/Skrbina.png differ
diff --git a/nuxt/public/images/Strojni prevod.png b/nuxt/public/images/Strojni prevod.png
new file mode 100644
index 0000000..de88246
Binary files /dev/null and b/nuxt/public/images/Strojni prevod.png differ
diff --git a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php
index dd8ad60..d8899da 100644
--- a/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php
+++ b/web/modules/custom/yufu_concept/src/Plugin/rest/resource/AddConcept.php
@@ -90,11 +90,11 @@ class AddConcept extends ResourceBase {
}
/**
- * Ustvari nov koncept.
+ * Ustvari nov ali uredi obstoječ koncept.
*
* Logika:
* 1. Zloadamo uporabnika preko emaila, ce ne obstaja, ga ustvarimo.
- * 2. Zloadamo koncept prek uuid, ce ne obstaja, da ustvarimo.
+ * 2. Zloadamo koncept prek uuid, ce ne obstaja, ga ustvarimo.
* - avtor je zloadan prek maila
*
* @param \Symfony\Component\HttpFoundation\Request;
@@ -117,10 +117,14 @@ class AddConcept extends ResourceBase {
throw new MissingDataException('Title, uuid or text missing.');
}
$uid = $this->getUserIdByEmail($data['email'] ?? null);
+ // @TODO - loudaj zadnjo revizijo in primerjaj z entiteto, je
+ // razlika?
+ // Kako dodati revizijo, ki je draft?
if ($concept = $this->getConceptFromUuid($data['uuid'])) {
// Concept exists - create a new revision.
+ $oldConcept = clone $concept;
+
$concept->setNewRevision(TRUE);
- $concept->setRevisionUserId($uid);
$concept->set('title', $data['title']);
$concept->set('body', $data['text'] ?? $concept->body->value);
if ($uid) {
@@ -138,8 +142,12 @@ class AddConcept extends ResourceBase {
'@revid' => $concept->getRevisionId(),
'@uid' => $uid,
]);
- }
- else {
+
+ /*
+ $oldConcept->isDefaultRevision(TRUE);
+ $oldConcept->save();
+ */
+ } else {
// Concept does not exist - create a new node.
$concept = [
'type' => 'concept',