gemification_admin bekötve
This commit is contained in:
131
frontend_admin/.nuxt/dist/server/_nuxt/_id_-CoXhCsuZ.js
vendored
Normal file
131
frontend_admin/.nuxt/dist/server/_nuxt/_id_-CoXhCsuZ.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/_id_-CoXhCsuZ.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/_id_-CoXhCsuZ.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/_id_-CoXhCsuZ.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/_id_-CoXhCsuZ.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1,5 +1,5 @@
|
||||
import { executeAsync } from "/app/node_modules/unctx/dist/index.mjs";
|
||||
import { e as defineNuxtRouteMiddleware, d as useCookie, n as navigateTo, c as useAuthStore } from "../server.mjs";
|
||||
import { j as defineNuxtRouteMiddleware, d as useCookie, n as navigateTo, c as useAuthStore } from "../server.mjs";
|
||||
import "vue";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
@@ -50,4 +50,4 @@ const auth = defineNuxtRouteMiddleware(async (to, from) => {
|
||||
export {
|
||||
auth as default
|
||||
};
|
||||
//# sourceMappingURL=auth-Cq1Vc_k9.js.map
|
||||
//# sourceMappingURL=auth-nNLBs3fT.js.map
|
||||
@@ -1 +1 @@
|
||||
{"version":3,"file":"auth-Cq1Vc_k9.js","sources":["../../../../middleware/auth.ts"],"sourcesContent":["export default defineNuxtRouteMiddleware(async (to, from) => {\n // Skip auth check on the login page itself\n if (to.path === '/login') {\n return\n }\n\n // Check for the access_token cookie\n const tokenCookie = useCookie('access_token')\n if (!tokenCookie.value) {\n return navigateTo('/login')\n }\n\n // ── RBAC: Verify user role from Pinia authStore ──────────────────────\n const authStore = useAuthStore()\n\n // If the user profile hasn't been loaded yet, try to fetch it\n if (!authStore.user) {\n try {\n await authStore.fetchUser()\n } catch {\n // Token is invalid or expired — clear and redirect to login\n authStore.logout()\n return navigateTo('/login')\n }\n }\n\n // After fetch, check if user is still null (fetch failed silently)\n if (!authStore.user) {\n authStore.logout()\n return navigateTo('/login')\n }\n\n // Allowed staff roles that can access the admin panel\n const allowedRoles = ['SUPERADMIN', 'ADMIN', 'MODERATOR', 'SALES_REP', 'SERVICE_MGR']\n const userRole = (authStore.user.role || '').toUpperCase()\n\n if (!allowedRoles.includes(userRole)) {\n // Standard USER or unknown role — kick them out, clear token, redirect\n authStore.logout()\n return navigateTo('/login')\n }\n})\n"],"names":["__executeAsync"],"mappings":";;;;;;;;;;;;;;;;;;AAEE,MAAA,iCAA0B,OAAA,IAAA,SAAA;AAAA,MAAA,QAAA;AACxB,MAAA,GAAA,SAAA,UAAA;AACF;AAAA,EAGA;AACA,sBAAiB,UAAO,cAAA;AACtB,MAAA,CAAA,mBAAkB;AACpB,WAAA,WAAA,QAAA;AAAA,EAGA;AAGA,oBAAe,aAAM;AACnB,MAAA,CAAA,UAAI,MAAA;AACF,QAAA;AACF;AAAA,MAAA,CAAA,QAAQ,SAAA,IAAAA,aAAA,MAAA,UAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IAEN,QAAA;AACA;AACF,aAAA,WAAA,QAAA;AAAA,IACF;AAAA,EAGA;AACE,MAAA,CAAA,UAAU,MAAO;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EAGA;AACA,QAAM,eAAY,CAAA,cAAe,SAAY,aAAY,aAAA,aAAA;AAEzD,QAAK,YAAa,UAAS,KAAA,QAAW,IAAA,YAAA;AAEpC,MAAA,CAAA,aAAU,SAAO,QAAA,GAAA;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EACF;;"}
|
||||
{"version":3,"file":"auth-nNLBs3fT.js","sources":["../../../../middleware/auth.ts"],"sourcesContent":["export default defineNuxtRouteMiddleware(async (to, from) => {\n // Skip auth check on the login page itself\n if (to.path === '/login') {\n return\n }\n\n // Check for the access_token cookie\n const tokenCookie = useCookie('access_token')\n if (!tokenCookie.value) {\n return navigateTo('/login')\n }\n\n // ── RBAC: Verify user role from Pinia authStore ──────────────────────\n const authStore = useAuthStore()\n\n // If the user profile hasn't been loaded yet, try to fetch it\n if (!authStore.user) {\n try {\n await authStore.fetchUser()\n } catch {\n // Token is invalid or expired — clear and redirect to login\n authStore.logout()\n return navigateTo('/login')\n }\n }\n\n // After fetch, check if user is still null (fetch failed silently)\n if (!authStore.user) {\n authStore.logout()\n return navigateTo('/login')\n }\n\n // Allowed staff roles that can access the admin panel\n const allowedRoles = ['SUPERADMIN', 'ADMIN', 'MODERATOR', 'SALES_REP', 'SERVICE_MGR']\n const userRole = (authStore.user.role || '').toUpperCase()\n\n if (!allowedRoles.includes(userRole)) {\n // Standard USER or unknown role — kick them out, clear token, redirect\n authStore.logout()\n return navigateTo('/login')\n }\n})\n"],"names":["__executeAsync"],"mappings":";;;;;;;;;;;;;;;;;;AAEE,MAAA,iCAA0B,OAAA,IAAA,SAAA;AAAA,MAAA,QAAA;AACxB,MAAA,GAAA,SAAA,UAAA;AACF;AAAA,EAGA;AACA,sBAAiB,UAAO,cAAA;AACtB,MAAA,CAAA,mBAAkB;AACpB,WAAA,WAAA,QAAA;AAAA,EAGA;AAGA,oBAAe,aAAM;AACnB,MAAA,CAAA,UAAI,MAAA;AACF,QAAA;AACF;AAAA,MAAA,CAAA,QAAQ,SAAA,IAAAA,aAAA,MAAA,UAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IAEN,QAAA;AACA;AACF,aAAA,WAAA,QAAA;AAAA,IACF;AAAA,EAGA;AACE,MAAA,CAAA,UAAU,MAAO;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EAGA;AACA,QAAM,eAAY,CAAA,cAAe,SAAY,aAAY,aAAA,aAAA;AAEzD,QAAK,YAAa,UAAS,KAAA,QAAW,IAAA,YAAA;AAEpC,MAAA,CAAA,aAAU,SAAO,QAAA,GAAA;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EACF;;"}
|
||||
@@ -1 +1 @@
|
||||
{"file":"auth-Cq1Vc_k9.js","mappings":";;;;;;;;;;;;;;;;;;AAEE,MAAA,iCAA0B,OAAA,IAAA,SAAA;AAAA,MAAA,QAAA;AACxB,MAAA,GAAA,SAAA,UAAA;AACF;AAAA,EAGA;AACA,sBAAiB,UAAO,cAAA;AACtB,MAAA,CAAA,mBAAkB;AACpB,WAAA,WAAA,QAAA;AAAA,EAGA;AAGA,oBAAe,aAAM;AACnB,MAAA,CAAA,UAAI,MAAA;AACF,QAAA;AACF;AAAA,MAAA,CAAA,QAAQ,SAAA,IAAAA,aAAA,MAAA,UAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IAEN,QAAA;AACA;AACF,aAAA,WAAA,QAAA;AAAA,IACF;AAAA,EAGA;AACE,MAAA,CAAA,UAAU,MAAO;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EAGA;AACA,QAAM,eAAY,CAAA,cAAe,SAAY,aAAY,aAAA,aAAA;AAEzD,QAAK,YAAa,UAAS,KAAA,QAAW,IAAA,YAAA;AAEpC,MAAA,CAAA,aAAU,SAAO,QAAA,GAAA;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EACF;;","names":["__executeAsync"],"sources":["../../../../middleware/auth.ts"],"sourcesContent":["export default defineNuxtRouteMiddleware(async (to, from) => {\n // Skip auth check on the login page itself\n if (to.path === '/login') {\n return\n }\n\n // Check for the access_token cookie\n const tokenCookie = useCookie('access_token')\n if (!tokenCookie.value) {\n return navigateTo('/login')\n }\n\n // ── RBAC: Verify user role from Pinia authStore ──────────────────────\n const authStore = useAuthStore()\n\n // If the user profile hasn't been loaded yet, try to fetch it\n if (!authStore.user) {\n try {\n await authStore.fetchUser()\n } catch {\n // Token is invalid or expired — clear and redirect to login\n authStore.logout()\n return navigateTo('/login')\n }\n }\n\n // After fetch, check if user is still null (fetch failed silently)\n if (!authStore.user) {\n authStore.logout()\n return navigateTo('/login')\n }\n\n // Allowed staff roles that can access the admin panel\n const allowedRoles = ['SUPERADMIN', 'ADMIN', 'MODERATOR', 'SALES_REP', 'SERVICE_MGR']\n const userRole = (authStore.user.role || '').toUpperCase()\n\n if (!allowedRoles.includes(userRole)) {\n // Standard USER or unknown role — kick them out, clear token, redirect\n authStore.logout()\n return navigateTo('/login')\n }\n})\n"],"version":3}
|
||||
{"file":"auth-nNLBs3fT.js","mappings":";;;;;;;;;;;;;;;;;;AAEE,MAAA,iCAA0B,OAAA,IAAA,SAAA;AAAA,MAAA,QAAA;AACxB,MAAA,GAAA,SAAA,UAAA;AACF;AAAA,EAGA;AACA,sBAAiB,UAAO,cAAA;AACtB,MAAA,CAAA,mBAAkB;AACpB,WAAA,WAAA,QAAA;AAAA,EAGA;AAGA,oBAAe,aAAM;AACnB,MAAA,CAAA,UAAI,MAAA;AACF,QAAA;AACF;AAAA,MAAA,CAAA,QAAQ,SAAA,IAAAA,aAAA,MAAA,UAAA,UAAA,CAAA,GAAA,MAAA,QAAA,UAAA;AAAA;AAAA,IAEN,QAAA;AACA;AACF,aAAA,WAAA,QAAA;AAAA,IACF;AAAA,EAGA;AACE,MAAA,CAAA,UAAU,MAAO;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EAGA;AACA,QAAM,eAAY,CAAA,cAAe,SAAY,aAAY,aAAA,aAAA;AAEzD,QAAK,YAAa,UAAS,KAAA,QAAW,IAAA,YAAA;AAEpC,MAAA,CAAA,aAAU,SAAO,QAAA,GAAA;AACjB;AACF,WAAA,WAAA,QAAA;AAAA,EACF;;","names":["__executeAsync"],"sources":["../../../../middleware/auth.ts"],"sourcesContent":["export default defineNuxtRouteMiddleware(async (to, from) => {\n // Skip auth check on the login page itself\n if (to.path === '/login') {\n return\n }\n\n // Check for the access_token cookie\n const tokenCookie = useCookie('access_token')\n if (!tokenCookie.value) {\n return navigateTo('/login')\n }\n\n // ── RBAC: Verify user role from Pinia authStore ──────────────────────\n const authStore = useAuthStore()\n\n // If the user profile hasn't been loaded yet, try to fetch it\n if (!authStore.user) {\n try {\n await authStore.fetchUser()\n } catch {\n // Token is invalid or expired — clear and redirect to login\n authStore.logout()\n return navigateTo('/login')\n }\n }\n\n // After fetch, check if user is still null (fetch failed silently)\n if (!authStore.user) {\n authStore.logout()\n return navigateTo('/login')\n }\n\n // Allowed staff roles that can access the admin panel\n const allowedRoles = ['SUPERADMIN', 'ADMIN', 'MODERATOR', 'SALES_REP', 'SERVICE_MGR']\n const userRole = (authStore.user.role || '').toUpperCase()\n\n if (!allowedRoles.includes(userRole)) {\n // Standard USER or unknown role — kick them out, clear token, redirect\n authStore.logout()\n return navigateTo('/login')\n }\n})\n"],"version":3}
|
||||
110
frontend_admin/.nuxt/dist/server/_nuxt/badges-BJ6bQeZt.js
vendored
Normal file
110
frontend_admin/.nuxt/dist/server/_nuxt/badges-BJ6bQeZt.js
vendored
Normal file
@@ -0,0 +1,110 @@
|
||||
import { defineComponent, ref, reactive, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderAttr, ssrIncludeBooleanAttr, ssrRenderClass } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "badges",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const saving = ref(false);
|
||||
const badges = ref([]);
|
||||
const showModal = ref(false);
|
||||
const showDeleteModal = ref(false);
|
||||
const editingBadge = ref(null);
|
||||
const deletingBadge = ref(null);
|
||||
ref(false);
|
||||
const toast = ref(null);
|
||||
const form = reactive({
|
||||
name: "",
|
||||
description: "",
|
||||
icon_url: ""
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8"><h1 class="text-2xl font-bold text-white">${ssrInterpolate(unref(t)("gamification.badges.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(unref(t)("gamification.badges.subtitle"))}</p></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><div class="text-slate-400 flex items-center gap-3"><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg><span>${ssrInterpolate(unref(t)("gamification.badges.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8"><p class="text-rose-400">${ssrInterpolate(unref(t)("gamification.badges.error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline">${ssrInterpolate(unref(t)("gamification.badges.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[--><div class="mb-6 flex justify-end"><button class="px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg text-sm font-medium transition flex items-center gap-2"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"></path></svg> ${ssrInterpolate(unref(t)("gamification.badges.create"))}</button></div><div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden"><table class="w-full"><thead><tr class="border-b border-slate-700"><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.badges.id"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.badges.name"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.badges.description"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.badges.icon"))}</th><th class="text-right px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.badges.actions"))}</th></tr></thead><tbody class="divide-y divide-slate-700/50"><!--[-->`);
|
||||
ssrRenderList(unref(badges), (badge) => {
|
||||
_push(`<tr class="hover:bg-slate-700/30 transition"><td class="px-6 py-4 text-sm text-slate-400">${ssrInterpolate(badge.id)}</td><td class="px-6 py-4"><span class="text-sm font-semibold text-white">${ssrInterpolate(badge.name)}</span></td><td class="px-6 py-4 text-sm text-slate-300 max-w-xs truncate">${ssrInterpolate(badge.description || "—")}</td><td class="px-6 py-4">`);
|
||||
if (badge.icon_url) {
|
||||
_push(`<div class="flex items-center gap-2"><img${ssrRenderAttr("src", badge.icon_url)} alt="" class="w-8 h-8 rounded-full object-cover bg-slate-700"><span class="text-xs text-slate-400 truncate max-w-[120px]">${ssrInterpolate(badge.icon_url)}</span></div>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500">—</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-6 py-4 text-right"><div class="flex items-center justify-end gap-2"><button class="p-1.5 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition"${ssrRenderAttr("title", unref(t)("gamification.badges.edit"))}><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path></svg></button><button class="p-1.5 rounded-lg text-slate-400 hover:text-rose-400 hover:bg-rose-500/10 transition"${ssrRenderAttr("title", unref(t)("gamification.badges.delete"))}><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"></path></svg></button></div></td></tr>`);
|
||||
});
|
||||
_push(`<!--]-->`);
|
||||
if (unref(badges).length === 0) {
|
||||
_push(`<tr><td colspan="5" class="px-6 py-12 text-center text-sm text-slate-500">${ssrInterpolate(unref(t)("gamification.badges.no_items"))}</td></tr>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</tbody></table></div><!--]-->`);
|
||||
}
|
||||
if (unref(showModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm"><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 w-full max-w-lg mx-4 shadow-2xl"><h2 class="text-lg font-semibold text-white mb-6">${ssrInterpolate(unref(editingBadge) ? unref(t)("gamification.badges.edit_title") : unref(t)("gamification.badges.create_title"))}</h2><form class="space-y-4"><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.badges.name"))} <span class="text-rose-400">*</span></label><input${ssrRenderAttr("value", unref(form).name)} type="text" required maxlength="100" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-sm text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"${ssrRenderAttr("placeholder", unref(t)("gamification.badges.name_placeholder"))}></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.badges.description"))} <span class="text-rose-400">*</span></label><textarea required maxlength="500" rows="3" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-sm text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent resize-none"${ssrRenderAttr("placeholder", unref(t)("gamification.badges.desc_placeholder"))}>${ssrInterpolate(unref(form).description)}</textarea></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.badges.icon"))}</label><input${ssrRenderAttr("value", unref(form).icon_url)} type="url" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-sm text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"${ssrRenderAttr("placeholder", unref(t)("gamification.badges.icon_placeholder"))}><p class="text-xs text-slate-500 mt-1">${ssrInterpolate(unref(t)("gamification.badges.icon_hint"))}</p></div>`);
|
||||
if (unref(form).icon_url) {
|
||||
_push(`<div class="flex items-center gap-3 p-3 bg-slate-700/50 rounded-lg"><img${ssrRenderAttr("src", unref(form).icon_url)} alt="Preview" class="w-10 h-10 rounded-full object-cover bg-slate-600"><div class="text-xs text-slate-400"><span class="text-emerald-400">✔</span> ${ssrInterpolate(unref(t)("gamification.badges.icon_preview"))}</div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="flex items-center justify-end gap-3 pt-2"><button type="button" class="px-4 py-2 text-sm font-medium text-slate-300 hover:text-white transition">${ssrInterpolate(unref(t)("gamification.badges.cancel"))}</button><button type="submit"${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 disabled:cursor-not-allowed text-white rounded-lg text-sm font-medium transition flex items-center gap-2">`);
|
||||
if (unref(saving)) {
|
||||
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(` ${ssrInterpolate(unref(editingBadge) ? unref(t)("gamification.badges.save") : unref(t)("gamification.badges.create_btn"))}</button></div></form></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (unref(showDeleteModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm"><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 w-full max-w-md mx-4 shadow-2xl"><div class="flex items-center gap-3 mb-4"><div class="p-2 rounded-full bg-rose-500/10 text-rose-400"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-2.5L13.732 4c-.77-.833-1.964-.833-2.732 0L4.082 16.5c-.77.833.192 2.5 1.732 2.5z"></path></svg></div><div><h2 class="text-lg font-semibold text-white">${ssrInterpolate(unref(t)("gamification.badges.delete_title"))}</h2><p class="text-sm text-slate-400 mt-1">${ssrInterpolate(unref(t)("gamification.badges.delete_confirm"))}</p></div></div><div class="bg-slate-700/50 rounded-lg p-4 mb-6"><p class="text-sm font-medium text-white">${ssrInterpolate(unref(deletingBadge)?.name)}</p><p class="text-xs text-slate-400 mt-1">${ssrInterpolate(unref(deletingBadge)?.description)}</p></div><div class="flex items-center justify-end gap-3"><button class="px-4 py-2 text-sm font-medium text-slate-300 hover:text-white transition">${ssrInterpolate(unref(t)("gamification.badges.cancel"))}</button><button${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-rose-600 hover:bg-rose-500 disabled:bg-rose-600/50 disabled:cursor-not-allowed text-white rounded-lg text-sm font-medium transition flex items-center gap-2">`);
|
||||
if (unref(saving)) {
|
||||
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(` ${ssrInterpolate(unref(t)("gamification.badges.delete_btn"))}</button></div></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (unref(toast)) {
|
||||
_push(`<div class="${ssrRenderClass([unref(toast).type === "success" ? "bg-emerald-600 text-white" : "bg-rose-600 text-white", "fixed bottom-6 right-6 z-50 px-4 py-3 rounded-lg shadow-xl text-sm font-medium transition-all duration-300"])}">${ssrInterpolate(unref(toast).message)}</div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/badges.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=badges-BJ6bQeZt.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/badges-BJ6bQeZt.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/badges-BJ6bQeZt.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/badges-BJ6bQeZt.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/badges-BJ6bQeZt.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
151
frontend_admin/.nuxt/dist/server/_nuxt/competitions-1WDTeHdG.js
vendored
Normal file
151
frontend_admin/.nuxt/dist/server/_nuxt/competitions-1WDTeHdG.js
vendored
Normal file
@@ -0,0 +1,151 @@
|
||||
import { defineComponent, ref, reactive, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderClass } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "competitions",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const saving = ref(false);
|
||||
const showModal = ref(false);
|
||||
const seasons = ref([]);
|
||||
const competitions = ref([]);
|
||||
const editingCompetition = ref(null);
|
||||
const selectedSeasonId = ref(null);
|
||||
const formError = ref("");
|
||||
const rulesParseError = ref(false);
|
||||
const form = reactive({
|
||||
name: "",
|
||||
description: "",
|
||||
season_id: "",
|
||||
start_date: "",
|
||||
end_date: "",
|
||||
status: "draft",
|
||||
rulesJson: ""
|
||||
});
|
||||
function formatDate(dateStr) {
|
||||
if (!dateStr) return "";
|
||||
const d = new Date(dateStr);
|
||||
return d.toLocaleDateString("hu-HU", { year: "numeric", month: "long", day: "numeric" });
|
||||
}
|
||||
function getStatusClass(status) {
|
||||
switch (status) {
|
||||
case "active":
|
||||
return "bg-emerald-500/10 text-emerald-400 border border-emerald-500/30";
|
||||
case "draft":
|
||||
return "bg-slate-700 text-slate-400 border border-slate-600";
|
||||
case "completed":
|
||||
return "bg-blue-500/10 text-blue-400 border border-blue-500/30";
|
||||
case "cancelled":
|
||||
return "bg-rose-500/10 text-rose-400 border border-rose-500/30";
|
||||
default:
|
||||
return "bg-slate-700 text-slate-400 border border-slate-600";
|
||||
}
|
||||
}
|
||||
function getStatusLabel(status) {
|
||||
switch (status) {
|
||||
case "active":
|
||||
return t("gamification.competitions.status_active");
|
||||
case "draft":
|
||||
return t("gamification.competitions.status_draft");
|
||||
case "completed":
|
||||
return t("gamification.competitions.status_completed");
|
||||
case "cancelled":
|
||||
return t("gamification.competitions.status_cancelled");
|
||||
default:
|
||||
return status;
|
||||
}
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8 flex items-center justify-between"><div><h1 class="text-2xl font-bold text-white">${ssrInterpolate(unref(t)("gamification.competitions.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(unref(t)("gamification.competitions.subtitle"))}</p></div><button class="flex items-center gap-2 px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-medium rounded-lg transition"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"></path></svg> ${ssrInterpolate(unref(t)("gamification.competitions.create"))}</button></div><div class="mb-6"><div class="flex items-center gap-3 flex-wrap"><label class="text-sm text-slate-400">${ssrInterpolate(unref(t)("gamification.competitions.season_filter"))}</label><select class="px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white text-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option${ssrRenderAttr("value", null)}${ssrIncludeBooleanAttr(Array.isArray(unref(selectedSeasonId)) ? ssrLooseContain(unref(selectedSeasonId), null) : ssrLooseEqual(unref(selectedSeasonId), null)) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.competitions.all_seasons"))}</option><!--[-->`);
|
||||
ssrRenderList(unref(seasons), (s) => {
|
||||
_push(`<option${ssrRenderAttr("value", s.id)}${ssrIncludeBooleanAttr(Array.isArray(unref(selectedSeasonId)) ? ssrLooseContain(unref(selectedSeasonId), s.id) : ssrLooseEqual(unref(selectedSeasonId), s.id)) ? " selected" : ""}>${ssrInterpolate(s.name)} ${ssrInterpolate(s.is_active ? unref(t)("gamification.competitions.active_badge") : "")}</option>`);
|
||||
});
|
||||
_push(`<!--]--></select></div></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><div class="text-slate-400 flex items-center gap-3"><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg><span>${ssrInterpolate(unref(t)("gamification.competitions.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8"><p class="text-rose-400">${ssrInterpolate(unref(t)("gamification.competitions.error"))}</p><button class="mt-2 text-sm text-rose-300 hover:text-rose-200 underline">${ssrInterpolate(unref(t)("gamification.competitions.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[-->`);
|
||||
if (unref(competitions).length === 0) {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-12 text-center"><svg class="w-12 h-12 mx-auto text-slate-600 mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 100 4 2 2 0 000-4z"></path></svg><p class="text-slate-400">${ssrInterpolate(unref(t)("gamification.competitions.no_items"))}</p><button class="mt-4 px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-medium rounded-lg transition">${ssrInterpolate(unref(t)("gamification.competitions.create_first"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<div class="grid grid-cols-1 lg:grid-cols-2 gap-4"><!--[-->`);
|
||||
ssrRenderList(unref(competitions), (comp) => {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6 hover:border-slate-600 transition"><div class="flex items-start justify-between mb-3"><div><h3 class="text-lg font-semibold text-white">${ssrInterpolate(comp.name)}</h3>`);
|
||||
if (comp.description) {
|
||||
_push(`<p class="text-sm text-slate-400 mt-1 line-clamp-2">${ssrInterpolate(comp.description)}</p>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div><span class="${ssrRenderClass([getStatusClass(comp.status), "px-2.5 py-0.5 rounded-full text-xs font-medium flex-shrink-0 ml-2"])}">${ssrInterpolate(getStatusLabel(comp.status))}</span></div><div class="space-y-2 text-sm text-slate-400 mb-4"><div class="flex items-center gap-2"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><span>${ssrInterpolate(formatDate(comp.start_date))} → ${ssrInterpolate(formatDate(comp.end_date))}</span></div><div class="flex items-center gap-2"><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 7h.01M7 3h5c.512 0 1.024.195 1.414.586l7 7a2 2 0 010 2.828l-7 7a2 2 0 01-2.828 0l-7-7A1.994 1.994 0 013 12V7a4 4 0 014-4z"></path></svg><span>${ssrInterpolate(unref(t)("gamification.competitions.season_id_label"))} ${ssrInterpolate(comp.season_id)}</span></div></div>`);
|
||||
if (comp.rules && Object.keys(comp.rules).length > 0) {
|
||||
_push(`<div class="mb-4"><details class="text-sm"><summary class="text-indigo-400 cursor-pointer hover:text-indigo-300">${ssrInterpolate(unref(t)("gamification.competitions.view_rules"))}</summary><pre class="mt-2 p-3 bg-slate-900 rounded-lg text-xs text-slate-300 overflow-x-auto">${ssrInterpolate(JSON.stringify(comp.rules, null, 2))}</pre></details></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="flex items-center gap-2 pt-2 border-t border-slate-700/50"><button class="flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-sm text-indigo-400 hover:bg-indigo-500/10 transition"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path></svg> ${ssrInterpolate(unref(t)("gamification.competitions.edit"))}</button></div></div>`);
|
||||
});
|
||||
_push(`<!--]--></div>`);
|
||||
}
|
||||
_push(`<!--]-->`);
|
||||
}
|
||||
if (unref(showModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center p-4"><div class="fixed inset-0 bg-black/60"></div><div class="relative bg-slate-800 rounded-xl border border-slate-700 w-full max-w-lg p-6 shadow-2xl max-h-[90vh] overflow-y-auto"><h2 class="text-lg font-semibold text-white mb-6">${ssrInterpolate(unref(editingCompetition) ? unref(t)("gamification.competitions.edit_title") : unref(t)("gamification.competitions.create_title"))}</h2><form class="space-y-4"><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.competitions.name"))}</label><input${ssrRenderAttr("value", unref(form).name)} type="text" required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"${ssrRenderAttr("placeholder", unref(t)("gamification.competitions.name_placeholder"))}></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.competitions.description"))}</label><textarea rows="3" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"${ssrRenderAttr("placeholder", unref(t)("gamification.competitions.desc_placeholder"))}>${ssrInterpolate(unref(form).description)}</textarea></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.competitions.season"))}</label><select required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option value="" disabled${ssrIncludeBooleanAttr(Array.isArray(unref(form).season_id) ? ssrLooseContain(unref(form).season_id, "") : ssrLooseEqual(unref(form).season_id, "")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.competitions.select_season"))}</option><!--[-->`);
|
||||
ssrRenderList(unref(seasons), (s) => {
|
||||
_push(`<option${ssrRenderAttr("value", s.id)}${ssrIncludeBooleanAttr(Array.isArray(unref(form).season_id) ? ssrLooseContain(unref(form).season_id, s.id) : ssrLooseEqual(unref(form).season_id, s.id)) ? " selected" : ""}>${ssrInterpolate(s.name)} ${ssrInterpolate(s.is_active ? unref(t)("gamification.competitions.active_badge") : "")}</option>`);
|
||||
});
|
||||
_push(`<!--]--></select></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.competitions.start_date"))}</label><input${ssrRenderAttr("value", unref(form).start_date)} type="date" required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.competitions.end_date"))}</label><input${ssrRenderAttr("value", unref(form).end_date)} type="date" required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.competitions.status"))}</label><select class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option value="draft"${ssrIncludeBooleanAttr(Array.isArray(unref(form).status) ? ssrLooseContain(unref(form).status, "draft") : ssrLooseEqual(unref(form).status, "draft")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.competitions.status_draft"))}</option><option value="active"${ssrIncludeBooleanAttr(Array.isArray(unref(form).status) ? ssrLooseContain(unref(form).status, "active") : ssrLooseEqual(unref(form).status, "active")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.competitions.status_active"))}</option><option value="completed"${ssrIncludeBooleanAttr(Array.isArray(unref(form).status) ? ssrLooseContain(unref(form).status, "completed") : ssrLooseEqual(unref(form).status, "completed")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.competitions.status_completed"))}</option><option value="cancelled"${ssrIncludeBooleanAttr(Array.isArray(unref(form).status) ? ssrLooseContain(unref(form).status, "cancelled") : ssrLooseEqual(unref(form).status, "cancelled")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.competitions.status_cancelled"))}</option></select></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.competitions.rules"))}</label><textarea rows="5" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 font-mono text-xs focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"${ssrRenderAttr("placeholder", unref(t)("gamification.competitions.rules_placeholder"))}>${ssrInterpolate(unref(form).rulesJson)}</textarea>`);
|
||||
if (unref(rulesParseError)) {
|
||||
_push(`<p class="text-xs text-rose-400 mt-1">${ssrInterpolate(unref(t)("gamification.competitions.invalid_json"))}</p>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
if (unref(formError)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-lg p-3"><p class="text-sm text-rose-400">${ssrInterpolate(unref(formError))}</p></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="flex items-center justify-end gap-3 pt-2"><button type="button" class="px-4 py-2 text-sm text-slate-400 hover:text-white transition">${ssrInterpolate(unref(t)("gamification.competitions.cancel"))}</button><button type="submit"${ssrIncludeBooleanAttr(unref(saving) || unref(rulesParseError)) ? " disabled" : ""} class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white text-sm font-medium rounded-lg transition flex items-center gap-2">`);
|
||||
if (unref(saving)) {
|
||||
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(` ${ssrInterpolate(unref(editingCompetition) ? unref(t)("gamification.competitions.save") : unref(t)("gamification.competitions.create_btn"))}</button></div></form></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/competitions.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=competitions-1WDTeHdG.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/competitions-1WDTeHdG.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/competitions-1WDTeHdG.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/competitions-1WDTeHdG.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/competitions-1WDTeHdG.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
116
frontend_admin/.nuxt/dist/server/_nuxt/config-ChjtE2V1.js
vendored
Normal file
116
frontend_admin/.nuxt/dist/server/_nuxt/config-ChjtE2V1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/config-ChjtE2V1.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/config-ChjtE2V1.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/config-ChjtE2V1.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/config-ChjtE2V1.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
5
frontend_admin/.nuxt/dist/server/_nuxt/config-styles-1.mjs-w3nI6KxA.js
vendored
Normal file
5
frontend_admin/.nuxt/dist/server/_nuxt/config-styles-1.mjs-w3nI6KxA.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
const config_vue_vue_type_style_index_0_scoped_0bf5a572_lang = ".animate-slide-up[data-v-0bf5a572]{animation:slideUp-0bf5a572 .3s ease-out}@keyframes slideUp-0bf5a572{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}";
|
||||
export {
|
||||
config_vue_vue_type_style_index_0_scoped_0bf5a572_lang as default
|
||||
};
|
||||
//# sourceMappingURL=config-styles-1.mjs-w3nI6KxA.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/config-styles-1.mjs-w3nI6KxA.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/config-styles-1.mjs-w3nI6KxA.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"config-styles-1.mjs-w3nI6KxA.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/config-styles-1.mjs-w3nI6KxA.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/config-styles-1.mjs-w3nI6KxA.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"config-styles-1.mjs-w3nI6KxA.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
4
frontend_admin/.nuxt/dist/server/_nuxt/config-styles.gyyxQIjl.mjs
vendored
Normal file
4
frontend_admin/.nuxt/dist/server/_nuxt/config-styles.gyyxQIjl.mjs
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import style_0 from "./config-styles-1.mjs-w3nI6KxA.js";
|
||||
export default [
|
||||
style_0
|
||||
]
|
||||
@@ -94,6 +94,84 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Gamification",
|
||||
items: [
|
||||
{
|
||||
label: "Játékmenet Beállítások",
|
||||
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /></svg>',
|
||||
children: [
|
||||
{
|
||||
path: "/gamification/point-rules",
|
||||
label: "Pontszabályok",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>'
|
||||
},
|
||||
{
|
||||
path: "/gamification/levels",
|
||||
label: "Szintek",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6" /></svg>'
|
||||
},
|
||||
{
|
||||
path: "/gamification/badges",
|
||||
label: "Kitüntetések",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z" /></svg>'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Események & Szezonok",
|
||||
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z" /></svg>',
|
||||
children: [
|
||||
{
|
||||
path: "/gamification/seasons",
|
||||
label: "Szezonok",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z" /></svg>'
|
||||
},
|
||||
{
|
||||
path: "/gamification/competitions",
|
||||
label: "Versenyek",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 3h2l.4 2M7 13h10l4-8H5.4M7 13L5.4 5M7 13l-2.293 2.293c-.63.63-.184 1.707.707 1.707H17m0 0a2 2 0 100 4 2 2 0 000-4zm-8 2a2 2 0 100 4 2 2 0 000-4z" /></svg>'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
label: "Felhasználói Adatok",
|
||||
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z" /></svg>',
|
||||
children: [
|
||||
{
|
||||
path: "/gamification/users",
|
||||
label: "Statisztikák",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" /></svg>'
|
||||
},
|
||||
{
|
||||
path: "/gamification/leaderboard",
|
||||
label: "Ranglista",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m5.618-4.016A11.955 11.955 0 0112 2.944a11.955 11.955 0 01-8.618 3.04A12.02 12.02 0 003 9c0 5.591 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.042-.133-2.052-.382-3.016z" /></svg>'
|
||||
},
|
||||
{
|
||||
path: "/gamification/ledger",
|
||||
label: "Pontnapló",
|
||||
icon: '<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-3 7h3m-3 4h3m-6-4h.01M9 16h.01" /></svg>'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: "/gamification",
|
||||
label: "Gamification HQ",
|
||||
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z" /></svg>'
|
||||
},
|
||||
{
|
||||
path: "/gamification/config",
|
||||
label: "Rendszer Konfig",
|
||||
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /></svg>'
|
||||
},
|
||||
{
|
||||
path: "/gamification/parameters",
|
||||
label: "Rendszerparaméterek",
|
||||
icon: '<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6V4m0 2a2 2 0 100 4m0-4a2 2 0 110 4m-6 8a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4m6 6v10m6-2a2 2 0 100-4m0 4a2 2 0 110-4m0 4v2m0-6V4" /></svg>'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
title: "Rendszer",
|
||||
items: [
|
||||
@@ -125,6 +203,21 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
if (route.path.startsWith("/users")) return "Felhasználók";
|
||||
if (route.path.startsWith("/logs")) return "Rendszernaplók";
|
||||
if (route.path.startsWith("/packages")) return "Csomagok";
|
||||
if (route.path.startsWith("/gamification")) {
|
||||
if (route.path === "/gamification") return "Gamification HQ";
|
||||
if (route.path === "/gamification/point-rules") return "Pontszabályok";
|
||||
if (route.path === "/gamification/levels") return "Szintek";
|
||||
if (route.path === "/gamification/badges") return "Kitüntetések";
|
||||
if (route.path === "/gamification/seasons") return "Szezonok";
|
||||
if (route.path === "/gamification/competitions") return "Versenyek";
|
||||
if (route.path === "/gamification/users") return "Gamification Felhasználók";
|
||||
if (route.path.startsWith("/gamification/users/")) return "Felhasználó Gamification";
|
||||
if (route.path === "/gamification/leaderboard") return "Ranglista";
|
||||
if (route.path === "/gamification/config") return "Rendszer Konfig";
|
||||
if (route.path === "/gamification/parameters") return "Rendszerparaméterek";
|
||||
if (route.path === "/gamification/ledger") return "Pontnapló";
|
||||
return "Gamification";
|
||||
}
|
||||
return "Admin Panel";
|
||||
});
|
||||
function isActive(path) {
|
||||
@@ -292,4 +385,4 @@ _sfc_main.setup = (props, ctx) => {
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=default-C8swInD9.js.map
|
||||
//# sourceMappingURL=default-BHklGIzv.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/default-BHklGIzv.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/default-BHklGIzv.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/default-BHklGIzv.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/default-BHklGIzv.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"en-BPBMPZpX.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
@@ -1 +0,0 @@
|
||||
{"file":"en-BPBMPZpX.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
@@ -306,6 +306,416 @@ const resource = {
|
||||
"no_fleet_access": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "You don't have permission to view fleet data." } }
|
||||
}
|
||||
},
|
||||
"gamification": {
|
||||
"badges": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badges" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge Management — CRUD" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading badges..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load badges." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Badge" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No badges yet." } },
|
||||
"id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID" } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Name" } },
|
||||
"description": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Description" } },
|
||||
"icon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Icon" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create Badge" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Badge" } },
|
||||
"name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge name" } },
|
||||
"desc_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge description" } },
|
||||
"icon_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Icon URL" } },
|
||||
"icon_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Optional. The icon URL for the badge." } },
|
||||
"icon_preview": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Icon preview" } },
|
||||
"create_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create" } },
|
||||
"delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete Badge" } },
|
||||
"delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Are you sure you want to delete this badge?" } },
|
||||
"delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete" } },
|
||||
"created": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge created!" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge updated!" } },
|
||||
"deleted": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge deleted!" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to save badge." } },
|
||||
"delete_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to delete badge." } },
|
||||
"unknown_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Unknown error" } }
|
||||
},
|
||||
"competitions": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Competitions" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Seasonal competition management" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading competitions..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load competitions." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Competition" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No competitions created yet." } },
|
||||
"create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create First Competition" } },
|
||||
"season_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Season Filter:" } },
|
||||
"all_seasons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "All Seasons" } },
|
||||
"active_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "(Active)" } },
|
||||
"status_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active" } },
|
||||
"status_draft": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Draft" } },
|
||||
"status_completed": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Completed" } },
|
||||
"status_cancelled": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancelled" } },
|
||||
"view_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "View Rules" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create Competition" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Competition" } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Name" } },
|
||||
"name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. Q1 Service Submission Contest" } },
|
||||
"description": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Description" } },
|
||||
"desc_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Competition description..." } },
|
||||
"season": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Season" } },
|
||||
"select_season": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Select a season" } },
|
||||
"start_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Start Date" } },
|
||||
"end_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "End Date" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
|
||||
"rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rules (JSON)" } },
|
||||
"rules_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "type: service_submission, points_multiplier: 1.5" } },
|
||||
"invalid_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Invalid JSON format!" } },
|
||||
"create_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create" } },
|
||||
"season_id_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Season ID:" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to save competition." } }
|
||||
},
|
||||
"config": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "System Config" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification master configuration editor" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading configuration..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load configuration." } },
|
||||
"last_save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Last saved:" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Saving..." } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save Configuration" } },
|
||||
"section_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP Logic" } },
|
||||
"section_conversion": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Conversion Logic" } },
|
||||
"section_penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty Logic" } },
|
||||
"section_rewards": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level Rewards" } },
|
||||
"calculator": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Impact Calculator" } },
|
||||
"calculator_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adjust parameters to see estimated impact" } },
|
||||
"estimated_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Estimated Results" } },
|
||||
"daily_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Daily XP" } },
|
||||
"xp_for_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP Needed for Level Up" } },
|
||||
"social_to_credit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Social → Credit" } },
|
||||
"days_to_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Days to Level Up" } },
|
||||
"raw_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Raw JSON Editor" } },
|
||||
"apply_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Apply JSON" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Configuration updated!" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to save configuration." } },
|
||||
"json_applied": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "JSON applied to form fields!" } },
|
||||
"invalid_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Invalid JSON: " } }
|
||||
},
|
||||
"dashboard": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification HQ" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification system overview dashboard" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading dashboard..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load dashboard data." } },
|
||||
"total_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Total Users" } },
|
||||
"active_season": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active Season" } },
|
||||
"pending_contributions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pending Contributions" } },
|
||||
"xp_earned_today": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP Earned Today" } },
|
||||
"none": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "None" } },
|
||||
"quick_actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Quick Actions" } },
|
||||
"manage_point_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manage Point Rules" } },
|
||||
"manage_badges": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manage Badges" } },
|
||||
"manage_seasons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Manage Seasons" } },
|
||||
"recent_ledger": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Recent Ledger Entries" } },
|
||||
"no_ledger": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No ledger entries yet." } },
|
||||
"top_5": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Top 5 Leaderboard" } },
|
||||
"full_leaderboard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Full Leaderboard →" } },
|
||||
"no_leaderboard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No leaderboard data yet." } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "points" } }
|
||||
},
|
||||
"leaderboard": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Leaderboard" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification leaderboard admin view" } },
|
||||
"search": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Search" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"min_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Min XP" } },
|
||||
"sort": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Sort" } },
|
||||
"sort_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "By XP" } },
|
||||
"sort_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "By Points" } },
|
||||
"sort_social": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "By Social Points" } },
|
||||
"sort_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "By Level" } },
|
||||
"filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Filter" } },
|
||||
"reset": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reset" } },
|
||||
"descending": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Descending" } },
|
||||
"ascending": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ascending" } },
|
||||
"user": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "user" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading leaderboard..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load leaderboard." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No results match your filters." } },
|
||||
"no_results_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Try different filter criteria." } },
|
||||
"user_col": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User" } },
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Email" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Points" } },
|
||||
"social": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Social" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty" } },
|
||||
"restriction": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Restriction" } },
|
||||
"discoveries": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Discoveries" } },
|
||||
"services": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Services" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Last Updated" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
|
||||
"details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Details" } },
|
||||
"prev": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Previous" } },
|
||||
"next": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Next" } },
|
||||
"page_of": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "/ page" } },
|
||||
"restriction_mild": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mild" } },
|
||||
"restriction_moderate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Moderate" } },
|
||||
"restriction_severe": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Severe" } }
|
||||
},
|
||||
"ledger": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Points Ledger" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification points ledger browser" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading ledger..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load ledger." } },
|
||||
"user_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User ID" } },
|
||||
"date_from": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Date From" } },
|
||||
"date_to": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Date To" } },
|
||||
"reason": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reason (text)" } },
|
||||
"search": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Search" } },
|
||||
"clear": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Clear" } },
|
||||
"csv": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "CSV" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No results match your filters." } },
|
||||
"no_results_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Try different filter criteria." } },
|
||||
"id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID" } },
|
||||
"user": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Points" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"reason": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reason" } },
|
||||
"source": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Source" } },
|
||||
"date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Date" } },
|
||||
"prev": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Previous" } },
|
||||
"next": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Next" } },
|
||||
"of": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "of" } },
|
||||
"showing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "showing" } },
|
||||
"filtered": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "(filtered)" } },
|
||||
"no_csv_data": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No data for CSV export." } },
|
||||
"csv_downloaded": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "CSV download started." } }
|
||||
},
|
||||
"levels": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Levels" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level configuration management — CRUD" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading levels..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load level configurations." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Level" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No level configurations yet." } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"rank": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rank" } },
|
||||
"min_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Min Points" } },
|
||||
"type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Type" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty" } },
|
||||
"normal": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Normal" } },
|
||||
"tree_diagram": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level Tree Diagram" } },
|
||||
"no_tree_data": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No levels to display." } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "points" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Level" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create Level" } },
|
||||
"level_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level Number" } },
|
||||
"rank_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rank Name" } },
|
||||
"min_points_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minimum Points" } },
|
||||
"is_penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty Level" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Saving..." } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level updated!" } },
|
||||
"created": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level created!" } },
|
||||
"duplicate_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A configuration with this level number already exists." } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to save level." } }
|
||||
},
|
||||
"params": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "System Parameters" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification category system parameters" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading parameters..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load system parameters." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No gamification system parameters." } },
|
||||
"key": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Key" } },
|
||||
"value": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Value" } },
|
||||
"category": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Category" } },
|
||||
"scope": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Scope" } },
|
||||
"scope_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Scope ID" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Parameter" } },
|
||||
"value_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Value" } },
|
||||
"value_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Parameter value (JSON or plain text)" } },
|
||||
"json_detected": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "🔹 JSON format detected" } },
|
||||
"text_value": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "🔸 Text value" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Saving..." } },
|
||||
"invalid_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Invalid JSON format: " } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to save parameter." } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "updated!" } }
|
||||
},
|
||||
"point_rules": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Point Rules" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification point rules management — CRUD" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading point rules..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load point rules." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Point Rule" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No point rules yet. Create one with the button above!" } },
|
||||
"id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID" } },
|
||||
"action_key": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Action Key" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Points" } },
|
||||
"description": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Description" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Status" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inactive" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete (soft-delete)" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Point Rule" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Point Rule" } },
|
||||
"action_key_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Action Key" } },
|
||||
"action_key_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. service_submitted" } },
|
||||
"points_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Point Value" } },
|
||||
"points_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "0" } },
|
||||
"description_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Description" } },
|
||||
"description_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Short description of the rule..." } },
|
||||
"is_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Saving..." } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Point rule updated!" } },
|
||||
"created": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Point rule created!" } },
|
||||
"deleted": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Point rule deactivated!" } },
|
||||
"duplicate_key": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A rule with this action key already exists." } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to save point rule." } },
|
||||
"delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete Point Rule" } },
|
||||
"delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Are you sure you want to deactivate the rule" } },
|
||||
"delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Delete" } },
|
||||
"deleting": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deleting..." } }
|
||||
},
|
||||
"seasons": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Seasons" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification season management" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading seasons..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load seasons." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Season" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No seasons created yet." } },
|
||||
"create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create First Season" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Active" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inactive" } },
|
||||
"created_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Created:" } },
|
||||
"activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Activate" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Edit Season" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "New Season" } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Name" } },
|
||||
"name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "e.g. 2026 Q1 Season" } },
|
||||
"start_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Start Date" } },
|
||||
"end_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "End Date" } },
|
||||
"activate_on_create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Activate on creation" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cancel" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Save" } },
|
||||
"create_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Create" } },
|
||||
"activate_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Activate Season" } },
|
||||
"activate_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Are you sure you want to activate" } },
|
||||
"activate_warning": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "This will deactivate all other seasons." } },
|
||||
"activating": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Activating..." } },
|
||||
"activate_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Activate" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to save season." } }
|
||||
},
|
||||
"users": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification Users" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User gamification statistics management" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading users..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load user statistics." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No user statistics to display." } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"all_levels": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "All Levels" } },
|
||||
"level_n": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Level " }, { "t": 4, "k": "n" }] } },
|
||||
"min_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minimum XP" } },
|
||||
"max_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Maximum XP" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty" } },
|
||||
"any": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Any" } },
|
||||
"only_penalized": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Only penalized" } },
|
||||
"only_clean": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Only clean" } },
|
||||
"filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Filter" } },
|
||||
"reset": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reset" } },
|
||||
"count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "users" } },
|
||||
"user_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User ID" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Points" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty" } },
|
||||
"restriction": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Restriction" } },
|
||||
"services": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Services" } },
|
||||
"discoveries": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Discoveries" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Last Updated" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Actions" } },
|
||||
"details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Details" } },
|
||||
"prev": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Previous" } },
|
||||
"next": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Next" } },
|
||||
"none": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "None" } },
|
||||
"restriction_mild": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mild" } },
|
||||
"restriction_moderate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Moderate" } },
|
||||
"restriction_severe": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Severe" } }
|
||||
},
|
||||
"user_detail": {
|
||||
"back": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Back to list" } },
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User Gamification Details" } },
|
||||
"id_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID:" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading user..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to load user data." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Retry" } },
|
||||
"not_found": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User not found." } },
|
||||
"total_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Total XP" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Level" } },
|
||||
"total_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Total Points" } },
|
||||
"social_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Social Points" } },
|
||||
"penalty_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty Points" } },
|
||||
"restriction_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Restriction Level" } },
|
||||
"penalty_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty Quota" } },
|
||||
"banned_until": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Banned Until" } },
|
||||
"no": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No" } },
|
||||
"services": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Services" } },
|
||||
"discovered_places": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Discovered Places" } },
|
||||
"validated_places": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Validated Places" } },
|
||||
"added_providers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Added Providers" } },
|
||||
"penalty_form_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Assign Penalty" } },
|
||||
"penalty_points_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty Points" } },
|
||||
"penalty_reason_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reason" } },
|
||||
"penalty_reason_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reason for penalty..." } },
|
||||
"penalty_submit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Assign Penalty" } },
|
||||
"penalty_submitting": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Submitting..." } },
|
||||
"penalty_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Penalty successfully assigned: " }, { "t": 4, "k": "amount" }, { "t": 3, "v": " points." }] } },
|
||||
"penalty_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to assign penalty." } },
|
||||
"reward_form_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Assign Reward" } },
|
||||
"reward_xp_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP Reward" } },
|
||||
"reward_social_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Social Points Reward" } },
|
||||
"reward_reason_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reason" } },
|
||||
"reward_reason_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reason for reward..." } },
|
||||
"reward_submit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Assign Reward" } },
|
||||
"reward_submitting": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Submitting..." } },
|
||||
"reward_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Reward successfully assigned: " }, { "t": 4, "k": "xp" }, { "t": 3, "v": " XP, " }, { "t": 4, "k": "social" }, { "t": 3, "v": " social points." }] } },
|
||||
"reward_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Failed to assign reward." } },
|
||||
"ledger_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Points Ledger" } },
|
||||
"ledger_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "entries" } },
|
||||
"ledger_loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Loading..." } },
|
||||
"ledger_empty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "No ledger entries for this user yet." } },
|
||||
"ledger_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Date" } },
|
||||
"ledger_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Points" } },
|
||||
"ledger_penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Penalty" } },
|
||||
"ledger_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"ledger_reason": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Reason" } },
|
||||
"ledger_source": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Source" } }
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User Management" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User list, search, filters and bulk actions" } },
|
||||
@@ -408,4 +818,4 @@ const resource = {
|
||||
export {
|
||||
resource as default
|
||||
};
|
||||
//# sourceMappingURL=en-BPBMPZpX.js.map
|
||||
//# sourceMappingURL=en-CjjyOvG7.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/en-CjjyOvG7.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/en-CjjyOvG7.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"en-CjjyOvG7.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/en-CjjyOvG7.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/en-CjjyOvG7.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"en-CjjyOvG7.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
5
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-63gfOghA.js
vendored
Normal file
5
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-63gfOghA.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-63gfOghA.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-63gfOghA.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"entry-styles-1.mjs-63gfOghA.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-63gfOghA.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-1.mjs-63gfOghA.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"entry-styles-1.mjs-63gfOghA.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"entry-styles-1.mjs-C-JbU1OR.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
@@ -1 +0,0 @@
|
||||
{"file":"entry-styles-1.mjs-C-JbU1OR.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
5
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-BuWm83RN.js
vendored
Normal file
5
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-BuWm83RN.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-BuWm83RN.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-BuWm83RN.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"entry-styles-2.mjs-BuWm83RN.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-BuWm83RN.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles-2.mjs-BuWm83RN.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"entry-styles-2.mjs-BuWm83RN.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"entry-styles-2.mjs-e4rjr5TT.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
@@ -1 +0,0 @@
|
||||
{"file":"entry-styles-2.mjs-e4rjr5TT.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
8
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles.BpZkbTtd.mjs
vendored
Normal file
8
frontend_admin/.nuxt/dist/server/_nuxt/entry-styles.BpZkbTtd.mjs
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
import style_0 from "./entry-styles-1.mjs-63gfOghA.js";
|
||||
import style_1 from "./entry-styles-2.mjs-BuWm83RN.js";
|
||||
import style_2 from "./entry-styles-3.mjs-C1rWf53M.js";
|
||||
export default [
|
||||
style_0,
|
||||
style_1,
|
||||
style_2
|
||||
]
|
||||
@@ -1,8 +0,0 @@
|
||||
import style_0 from "./entry-styles-1.mjs-C-JbU1OR.js";
|
||||
import style_1 from "./entry-styles-2.mjs-e4rjr5TT.js";
|
||||
import style_2 from "./entry-styles-3.mjs-C1rWf53M.js";
|
||||
export default [
|
||||
style_0,
|
||||
style_1,
|
||||
style_2
|
||||
]
|
||||
723
frontend_admin/.nuxt/dist/server/_nuxt/hu-D4bAMIbU.js
vendored
Normal file
723
frontend_admin/.nuxt/dist/server/_nuxt/hu-D4bAMIbU.js
vendored
Normal file
@@ -0,0 +1,723 @@
|
||||
const resource = {
|
||||
"permissions": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosultság Kezelés" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosultsági Mátrix — Szerepkör alapú hozzáférés-vezérlés" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosultságok betöltése..." } },
|
||||
"error_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a jogosultságokat" } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"save_changes": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Változtatások Mentése" } },
|
||||
"discard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elvetés" } },
|
||||
"modified_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " módosítás" }] } },
|
||||
"domain_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tartomány Szűrő (Sorok)" } },
|
||||
"role_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör Szűrő (Oszlopok)" } },
|
||||
"select_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes kiválasztása" } },
|
||||
"deselect_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes elrejtése" } },
|
||||
"all_domains": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minden" } },
|
||||
"permission": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Engedély" } },
|
||||
"no_permissions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek engedélyek ebben a tartományban." } },
|
||||
"current_tier": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktuális Csomag" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat" } },
|
||||
"superadmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Superadmin" } },
|
||||
"superadmin_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Teljes rendszer hozzáférés — felhasználók, számlázás, robotok és rendszerkonfiguráció." } },
|
||||
"garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok" } },
|
||||
"garages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázs szintű hozzáférés — járműkezelés, szervizfoglalás, ügyféladatok." } },
|
||||
"feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Feature Flags" } },
|
||||
"feature_flags_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Előfizetési funkciók — a jelenlegi csomagod alapján (" }, { "t": 4, "k": "tier" }, { "t": 3, "v": ")." }] } },
|
||||
"rbac_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "RBAC Jogosultsági Mátrix" } },
|
||||
"rbac_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik." } },
|
||||
"action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Művelet" } }
|
||||
},
|
||||
"packages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomagok Kezelése" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetési csomagok és funkciók kezelése — Free, Premium, Enterprise" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomagok betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"create_new": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új Csomag" } },
|
||||
"no_packages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek csomagok" } },
|
||||
"no_packages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozd létre az első előfizetési csomagot a kezdéshez." } },
|
||||
"create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Első Csomag Létrehozása" } },
|
||||
"popular": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Népszerű" } },
|
||||
"fallback_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Visszaesési" } },
|
||||
"trial_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Próba" } },
|
||||
"month": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "hó" } },
|
||||
"feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elérhető Funkciók" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkesztés" } },
|
||||
"duplicate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Másolás" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"set_as_default": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Beállítás alapértelmezettként" } },
|
||||
"set_as_default_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "alapértelmezett csomagként beállítva!" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Szerkesztése" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Létrehozása" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Változtatások Mentése" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozás" } },
|
||||
"save_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag sikeresen frissítve!" } },
|
||||
"delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Törlése" } },
|
||||
"delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": 'Biztosan törölni szeretnéd a "' }, { "t": 4, "k": "name" }, { "t": 3, "v": '" csomagot?' }] } },
|
||||
"delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"allowances": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Korlátok" } },
|
||||
"max_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Jármű" } },
|
||||
"max_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Garázs" } },
|
||||
"max_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Dolgozó" } },
|
||||
"monthly_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Kredit" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"form_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszer Név" } },
|
||||
"form_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. premium_2024" } },
|
||||
"form_display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megjelenítési Név" } },
|
||||
"form_display_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Premium Plus" } },
|
||||
"form_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Típus" } },
|
||||
"type_private": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Magán" } },
|
||||
"type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vállalati" } },
|
||||
"form_tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szintszám" } },
|
||||
"form_tier_level_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Magasabb szám = több funkció és magasabb rang" } },
|
||||
"form_monthly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Díj" } },
|
||||
"form_yearly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Éves Díj" } },
|
||||
"form_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pénznem" } },
|
||||
"form_subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felirat / Leírás" } },
|
||||
"form_subtitle_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Ideális kisvállalkozásoknak" } },
|
||||
"form_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jelvény Szöveg" } },
|
||||
"form_badge_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Legnépszerűbb" } },
|
||||
"form_is_custom": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyedi Csomag (nem publikus)" } },
|
||||
"singleton_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyediségi Szabályok" } },
|
||||
"form_is_default_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált" } },
|
||||
"form_trial_days": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Próba Napok Regisztrációnál" } },
|
||||
"form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0." } },
|
||||
"per_region_pricing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Régiók szerinti árazás" } },
|
||||
"smart_calculator": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Okos Árkalkulátor" } },
|
||||
"calc_net_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nettó ár" } },
|
||||
"calc_vat_rate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ÁFA kulcs" } },
|
||||
"calc_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pénznem" } },
|
||||
"calc_net": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nettó" } },
|
||||
"calc_vat": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ÁFA" } },
|
||||
"calc_gross": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Bruttó" } },
|
||||
"calc_apply": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alkalmaz a kiválasztott régióra" } },
|
||||
"add_zone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új Zóna Hozzáadása" } },
|
||||
"add_zone_select": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Válassz országkódot..." } },
|
||||
"add_zone_already_exists": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a régió már létezik a csomag árazásában!" } }
|
||||
},
|
||||
"garages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok CRM" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok listája, csomagkezelés és státuszmódosítás" } },
|
||||
"total_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes Garázs" } },
|
||||
"private_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Privát Garázsok" } },
|
||||
"corporate_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Céges Garázsok" } },
|
||||
"search_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keresés név, kapcsolattartó vagy e-mail alapján..." } },
|
||||
"all_tiers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes csomag" } },
|
||||
"all_types": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes típus" } },
|
||||
"type_individual": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Privát (Egyéni)" } },
|
||||
"type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Céges (Vállalati)" } },
|
||||
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cégnév" } },
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"current_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktuális Csomag" } },
|
||||
"expiration_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat Dátuma" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inaktív" } },
|
||||
"suspended": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felfüggesztve" } },
|
||||
"change_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Módosítása" } },
|
||||
"manage_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetés Kezelése" } },
|
||||
"view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megtekintés" } },
|
||||
"activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás" } },
|
||||
"deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deaktiválás" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs a keresésnek megfelelő garázs." } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"members": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "tag" } },
|
||||
"free_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ingyenes / Visszaesési" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat" } },
|
||||
"select_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Kiválasztása" } },
|
||||
"select_package_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Válassz egy előfizetési csomagot..." } },
|
||||
"custom_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyéni Lejárati Dátum" } },
|
||||
"optional": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "opcionális" } },
|
||||
"custom_expiration_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hagyd üresen az alapértelmezett időtartamhoz (pl. 30 nap). 2-5 éves B2B deal-eknél adj meg egyedi dátumot!" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"subscription_updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "előfizetése sikeresen frissítve!" } },
|
||||
"view_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Részletek" } },
|
||||
"indefinite": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Határozatlan" } },
|
||||
"addons_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kiegészítők (Add-ons)" } },
|
||||
"addon_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Jármű" } },
|
||||
"addon_branches": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Telephely" } },
|
||||
"addon_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Dolgozó" } },
|
||||
"active_addons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív kiegészítők" } },
|
||||
"no_active_addons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek aktív kiegészítők" } },
|
||||
"addon_vehicles_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Jármű lejárati dátuma" } },
|
||||
"addon_branches_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Telephely lejárati dátuma" } },
|
||||
"addon_users_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Dolgozó lejárati dátuma" } },
|
||||
"addon_expiration_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ha üres, a meglévő lejárati dátumok megmaradnak." } },
|
||||
"details": {
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázs adatainak betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"back": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vissza a garázsokhoz" } },
|
||||
"company_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cég adatok" } },
|
||||
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cégnév" } },
|
||||
"display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megjelenítési név" } },
|
||||
"org_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szervezet típusa" } },
|
||||
"tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adószám" } },
|
||||
"reg_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cégjegyzékszám" } },
|
||||
"created_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozva" } },
|
||||
"address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cím" } },
|
||||
"subscription_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetés státusza" } },
|
||||
"tier_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"level_n": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "n" }, { "t": 3, "v": ". szint" }] } },
|
||||
"expires_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat" } },
|
||||
"asset_limit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Járműkorlát" } },
|
||||
"vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "jármű" } },
|
||||
"no_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs aktív előfizetés" } },
|
||||
"contact_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elérhetőség" } },
|
||||
"contact_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó neve" } },
|
||||
"contact_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör" } },
|
||||
"contact_department": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Osztály" } },
|
||||
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Telefonszám" } },
|
||||
"no_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs elsődleges kapcsolattartó" } },
|
||||
"edit_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adatok Szerkesztése" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"generalTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Általános" } },
|
||||
"employeesTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgozók" } },
|
||||
"fleetTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Flotta" } },
|
||||
"analyticsTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Analitika" } },
|
||||
"subscriptionTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetés" } },
|
||||
"editBasicTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
|
||||
"editContactTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolat" } },
|
||||
"editAddressTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Címek" } },
|
||||
"zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Irányítószám" } },
|
||||
"city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Város" } },
|
||||
"street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
|
||||
"street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca típusa" } },
|
||||
"house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Házszám" } },
|
||||
"coming_soon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a funkció hamarosan elérhető lesz..." } },
|
||||
"missing_data_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hiányzó adatok" } },
|
||||
"missing_data_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A garázs profilja hiányos. Kérjük, egészítse ki a hiányzó adatokat." } },
|
||||
"missing_data_activation_required": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A garázs aktiválásához az alábbi adatok pótlása kötelező:" } },
|
||||
"missing_tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adószám" } },
|
||||
"missing_billing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Számlázási cím" } },
|
||||
"missing_contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó e-mail" } },
|
||||
"missing_contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó telefon" } },
|
||||
"missing_data_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " mező hiányzik" }] } },
|
||||
"contact_person_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó neve" } },
|
||||
"contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó e-mail" } },
|
||||
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó telefon" } },
|
||||
"billing_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Számlázási cím" } },
|
||||
"billing_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Irányítószám" } },
|
||||
"billing_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Város" } },
|
||||
"billing_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
|
||||
"billing_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca típusa" } },
|
||||
"billing_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Házszám" } },
|
||||
"notification_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Értesítési cím" } },
|
||||
"notification_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Irányítószám" } },
|
||||
"notification_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Város" } },
|
||||
"notification_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
|
||||
"notification_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca típusa" } },
|
||||
"notification_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Házszám" } },
|
||||
"tab_basic": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
|
||||
"tab_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolat" } },
|
||||
"tab_addresses": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Címek" } },
|
||||
"basic_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
|
||||
"contact_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó" } },
|
||||
"addresses_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Címek" } },
|
||||
"vehicles_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Járművek" } },
|
||||
"branches_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Telephelyek" } },
|
||||
"employees_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgozók" } },
|
||||
"branches": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "telephely" } },
|
||||
"employees": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "dolgozó" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetési Előzmények" } },
|
||||
"history_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dátum" } },
|
||||
"history_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag" } },
|
||||
"history_action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Művelet" } },
|
||||
"history_status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"no_subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek előfizetési előzmények." } }
|
||||
},
|
||||
"analytics": {
|
||||
"ltv": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Élettartam Érték (LTV)" } },
|
||||
"mrr": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Bevétel (MRR)" } },
|
||||
"monthly_recurring": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi ismétlődő bevétel" } },
|
||||
"outstanding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kintlévőség" } },
|
||||
"all_settled": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minden számla rendezve" } },
|
||||
"earned_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerzett Kreditek" } },
|
||||
"contribution_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Platform építésével gyűjtött XP" } },
|
||||
"invited_companies": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Meghívott Cégek" } },
|
||||
"companies_joined": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cég csatlakozott a meghívásodra" } },
|
||||
"validated_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Validált Garázsok" } },
|
||||
"garages_confirmed": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázs sikeresen hitelesítve" } },
|
||||
"utilization": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kihasználtság" } },
|
||||
"vehicle_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jármű Kvóta" } },
|
||||
"employee_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alkalmazotti Kvóta" } },
|
||||
"utilized": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "kihasználva" } },
|
||||
"marketplace_engagement": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Piactér & Aktivitás" } },
|
||||
"avg_rating": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Átlagos Értékelés" } },
|
||||
"reviews": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Értékelések" } },
|
||||
"reviews_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "értékelés" } },
|
||||
"last_activity": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utolsó Aktivitás" } },
|
||||
"last_login_mock": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "2 órája" } },
|
||||
"services_30d": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elvégzett Szervizek (30 nap)" } }
|
||||
},
|
||||
"employees": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgozók" } },
|
||||
"total_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Összesen " }, { "t": 4, "k": "count" }, { "t": 3, "v": " fő" }] } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Név" } },
|
||||
"email_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail / Telefon" } },
|
||||
"role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"edit_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör szerkesztése" } },
|
||||
"remove": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Eltávolítás" } },
|
||||
"no_employees": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek tagok ehhez a garázshoz." } },
|
||||
"edit_role_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag szerepkörének szerkesztése" } },
|
||||
"editRoleTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag szerepkörének szerkesztése" } },
|
||||
"editRoleFor": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "name" }, { "t": 3, "v": " szerepkörének módosítása" }] } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"saveRole": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör mentése" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"status_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"status_inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inaktív" } },
|
||||
"remove_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag eltávolítása" } },
|
||||
"removeTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag eltávolítása" } },
|
||||
"remove_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Biztosan eltávolítod " }, { "t": 4, "k": "name" }, { "t": 3, "v": " tagot a garázsból?" }] } },
|
||||
"removeConfirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Biztosan eltávolítod " }, { "t": 4, "k": "name" }, { "t": 3, "v": " tagot a garázsból?" }] } },
|
||||
"remove_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Eltávolítás" } },
|
||||
"removing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Eltávolítás..." } },
|
||||
"add_employee": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új dolgozó hozzáadása" } },
|
||||
"addTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új dolgozó hozzáadása" } },
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail cím" } },
|
||||
"emailPlaceholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Add meg az e-mail címet..." } },
|
||||
"roleMember": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag" } },
|
||||
"roleManager": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Menedzser" } },
|
||||
"roleAdmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Admin" } },
|
||||
"roleOwner": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tulajdonos" } },
|
||||
"add": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozzáadás" } },
|
||||
"adding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozzáadás..." } }
|
||||
},
|
||||
"fleet": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Flotta" } },
|
||||
"total_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Összesen " }, { "t": 4, "k": "count" }, { "t": 3, "v": " jármű" }] } },
|
||||
"plate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszám" } },
|
||||
"brand": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Márka" } },
|
||||
"model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Modell" } },
|
||||
"brand_model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Márka & Modell" } },
|
||||
"year": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Évjárat" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"vin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alvázszám" } },
|
||||
"no_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ehhez a garázshoz még nincsenek járművek rendelve." } },
|
||||
"no_fleet_access": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs jogosultságod a flotta adatok megtekintéséhez." } }
|
||||
}
|
||||
},
|
||||
"gamification": {
|
||||
"badges": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetések" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Badge-ek kezelése — CRUD" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetések betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a kitüntetéseket." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újrapróbálkozás" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új kitüntetés" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek kitüntetések." } },
|
||||
"id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID" } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Név" } },
|
||||
"description": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Leírás" } },
|
||||
"icon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ikon" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkesztés" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés létrehozása" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés szerkesztése" } },
|
||||
"name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés neve" } },
|
||||
"desc_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés leírása" } },
|
||||
"icon_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ikon URL" } },
|
||||
"icon_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Opcionális. Az ikon URL-je a kitüntetéshez." } },
|
||||
"icon_preview": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ikon előnézet" } },
|
||||
"create_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozás" } },
|
||||
"delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés törlése" } },
|
||||
"delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Biztosan törölni szeretnéd ezt a kitüntetést?" } },
|
||||
"delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"created": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés létrehozva!" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés frissítve!" } },
|
||||
"deleted": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetés törölve!" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült menteni a kitüntetést." } },
|
||||
"delete_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült törölni a kitüntetést." } },
|
||||
"unknown_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ismeretlen hiba" } }
|
||||
},
|
||||
"competitions": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Versenyek" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezonális versenyek kezelése" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Versenyek betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a versenyeket." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újrapróbálkozás" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új Verseny" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek versenyek létrehozva." } },
|
||||
"create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Első Verseny Létrehozása" } },
|
||||
"season_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezon szűrő:" } },
|
||||
"all_seasons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes szezon" } },
|
||||
"active_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "(Aktív)" } },
|
||||
"status_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"status_draft": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Draft" } },
|
||||
"status_completed": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Befejezett" } },
|
||||
"status_cancelled": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törölt" } },
|
||||
"view_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szabályok megtekintése" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkesztés" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Verseny létrehozása" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Verseny szerkesztése" } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Név" } },
|
||||
"name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pl. Q1 Szerviz Beküldő Verseny" } },
|
||||
"description": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Leírás" } },
|
||||
"desc_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Verseny leírása..." } },
|
||||
"season": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezon" } },
|
||||
"select_season": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Válassz szezont" } },
|
||||
"start_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kezdő dátum" } },
|
||||
"end_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Záró dátum" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szabályok (JSON)" } },
|
||||
"rules_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "type: service_submission, points_multiplier: 1.5" } },
|
||||
"invalid_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Érvénytelen JSON formátum!" } },
|
||||
"create_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozás" } },
|
||||
"season_id_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezon ID:" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hiba történt a mentés során." } }
|
||||
},
|
||||
"config": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszer Konfig" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification master konfiguráció szerkesztése" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Konfiguráció betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a konfigurációt." } },
|
||||
"last_save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utolsó mentés:" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Konfiguráció mentése" } },
|
||||
"section_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP Logika" } },
|
||||
"section_conversion": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Konverziós Logika" } },
|
||||
"section_penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetési Logika" } },
|
||||
"section_rewards": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint Jutalmak" } },
|
||||
"calculator": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hatás Kalkulátor" } },
|
||||
"calculator_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Állítsd be a paramétereket a becsült hatás megtekintéséhez" } },
|
||||
"estimated_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Becsült Eredmények" } },
|
||||
"daily_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Napi XP" } },
|
||||
"xp_for_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szintlépéshez Szükséges XP" } },
|
||||
"social_to_credit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Social → Credit" } },
|
||||
"days_to_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szintlépés Napok Száma" } },
|
||||
"raw_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nyers JSON Szerkesztő" } },
|
||||
"apply_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "JSON Alkalmazása" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Konfiguráció frissítve!" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hiba történt a mentés során." } },
|
||||
"json_applied": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "JSON alkalmazva a form mezőkre!" } },
|
||||
"invalid_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Érvénytelen JSON: " } }
|
||||
},
|
||||
"dashboard": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification HQ" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification rendszer áttekintő irányítópultja" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dashboard betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a dashboard adatokat." } },
|
||||
"total_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes Felhasználó" } },
|
||||
"active_season": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív Szezon" } },
|
||||
"pending_contributions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Függő Hozzájárulások" } },
|
||||
"xp_earned_today": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ma Szerzett XP" } },
|
||||
"none": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs" } },
|
||||
"quick_actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gyors Műveletek" } },
|
||||
"manage_point_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabályok kezelése" } },
|
||||
"manage_badges": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitüntetések kezelése" } },
|
||||
"manage_seasons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezonok kezelése" } },
|
||||
"recent_ledger": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Legutóbbi Pontnapló Bejegyzések" } },
|
||||
"no_ledger": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek pontnapló bejegyzések." } },
|
||||
"top_5": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Top 5 Ranglista" } },
|
||||
"full_leaderboard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Teljes ranglista →" } },
|
||||
"no_leaderboard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek ranglista adatok." } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pont" } }
|
||||
},
|
||||
"leaderboard": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ranglista" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification ranglista admin nézet" } },
|
||||
"search": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keresés" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"min_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minimum XP" } },
|
||||
"sort": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendezés" } },
|
||||
"sort_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP szerint" } },
|
||||
"sort_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontok szerint" } },
|
||||
"sort_social": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szociális pontok szerint" } },
|
||||
"sort_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint szerint" } },
|
||||
"filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szűrés" } },
|
||||
"reset": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Visszaállítás" } },
|
||||
"descending": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csökkenő" } },
|
||||
"ascending": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Növekvő" } },
|
||||
"user": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "felhasználó" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ranglista betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a ranglistát." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újrapróbálkozás" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs találat a megadott szűrőkkel." } },
|
||||
"no_results_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Próbálj más szűrési feltételeket használni." } },
|
||||
"user_col": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó" } },
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Email" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontok" } },
|
||||
"social": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szociális" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés" } },
|
||||
"restriction": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Restrikció" } },
|
||||
"discoveries": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felfedezések" } },
|
||||
"services": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szolgáltatások" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utolsó módosítás" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Részletek" } },
|
||||
"prev": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előző" } },
|
||||
"next": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Következő" } },
|
||||
"page_of": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "/ oldal" } },
|
||||
"restriction_mild": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enyhe" } },
|
||||
"restriction_moderate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Közepes" } },
|
||||
"restriction_severe": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Súlyos" } }
|
||||
},
|
||||
"ledger": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontnapló" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification pontnapló böngészése" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontnapló betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a pontnaplót." } },
|
||||
"user_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User ID" } },
|
||||
"date_from": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dátumtól" } },
|
||||
"date_to": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dátumig" } },
|
||||
"reason": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ok (szöveg)" } },
|
||||
"search": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keresés" } },
|
||||
"clear": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"csv": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "CSV" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs találat a megadott szűrőkkel." } },
|
||||
"no_results_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Próbálj más szűrési feltételeket használni." } },
|
||||
"id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID" } },
|
||||
"user": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "User" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pont" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"reason": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ok" } },
|
||||
"source": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Forrás" } },
|
||||
"date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dátum" } },
|
||||
"prev": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előző" } },
|
||||
"next": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Következő" } },
|
||||
"of": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "/" } },
|
||||
"showing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "mutatva" } },
|
||||
"filtered": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "(szűrve)" } },
|
||||
"no_csv_data": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs adat a CSV exportáláshoz." } },
|
||||
"csv_downloaded": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "CSV letöltés elindítva." } }
|
||||
},
|
||||
"levels": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szintek" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint konfigurációk kezelése — CRUD" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szintek betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a szint konfigurációkat." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újrapróbálkozás" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új szint" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek szint konfigurációk." } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"rank": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rang" } },
|
||||
"min_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Min. Pont" } },
|
||||
"type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Típus" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntető" } },
|
||||
"normal": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Normál" } },
|
||||
"tree_diagram": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint Fa Diagram" } },
|
||||
"no_tree_data": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek szintek megjelenítéshez." } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pont" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint szerkesztése" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint létrehozása" } },
|
||||
"level_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint Száma" } },
|
||||
"rank_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rang Neve" } },
|
||||
"min_points_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minimum Pont" } },
|
||||
"is_penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntető szint" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint frissítve!" } },
|
||||
"created": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint létrehozva!" } },
|
||||
"duplicate_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ezzel a szint számmal már létezik konfiguráció." } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hiba történt a mentés során." } }
|
||||
},
|
||||
"params": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszerparaméterek" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification kategóriájú rendszerparaméterek" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Paraméterek betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a rendszerparamétereket." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újrapróbálkozás" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek gamification rendszerparaméterek." } },
|
||||
"key": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kulcs" } },
|
||||
"value": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Érték" } },
|
||||
"category": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kategória" } },
|
||||
"scope": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hatósugár" } },
|
||||
"scope_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Scope ID" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkesztés" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Paraméter szerkesztése" } },
|
||||
"value_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Érték" } },
|
||||
"value_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Paraméter értéke (JSON vagy sima szöveg)" } },
|
||||
"json_detected": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "🔹 JSON formátum érzékelve" } },
|
||||
"text_value": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "🔸 Szöveges érték" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"invalid_json": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Érvénytelen JSON formátum: " } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hiba történt a mentés során." } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "frissítve!" } }
|
||||
},
|
||||
"point_rules": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabályok" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification pontszabályok kezelése — CRUD" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabályok betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a pontszabályokat." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újrapróbálkozás" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új pontszabály" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek pontszabályok. Hozz létre egyet a fenti gombbal!" } },
|
||||
"id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID" } },
|
||||
"action_key": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Akció Kulcs" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pont" } },
|
||||
"description": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Leírás" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inaktív" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkesztés" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés (soft-delete)" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabály szerkesztése" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új pontszabály" } },
|
||||
"action_key_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Akció Kulcs" } },
|
||||
"action_key_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. service_submitted" } },
|
||||
"points_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontérték" } },
|
||||
"points_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "0" } },
|
||||
"description_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Leírás" } },
|
||||
"description_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rövid leírás a szabályról..." } },
|
||||
"is_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabály frissítve!" } },
|
||||
"created": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabály létrehozva!" } },
|
||||
"deleted": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabály deaktiválva!" } },
|
||||
"duplicate_key": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egy szabály ezzel a kulccsal már létezik." } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült menteni a pontszabályt." } },
|
||||
"delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontszabály törlése" } },
|
||||
"delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Biztosan deaktiválod a következő szabályt:" } },
|
||||
"delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"deleting": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés..." } }
|
||||
},
|
||||
"seasons": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezonok" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification szezonkezelés" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezonok betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a szezonokat." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új Szezon" } },
|
||||
"no_items": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek szezonok létrehozva." } },
|
||||
"create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Első Szezon Létrehozása" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inaktív" } },
|
||||
"created_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozva:" } },
|
||||
"activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkesztés" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezon szerkesztése" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új Szezon" } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Név" } },
|
||||
"name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. 2026 Q1 Szezon" } },
|
||||
"start_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kezdő dátum" } },
|
||||
"end_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Záró dátum" } },
|
||||
"activate_on_create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás létrehozáskor" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"create_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozás" } },
|
||||
"activate_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szezon aktiválása" } },
|
||||
"activate_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Biztosan aktiválni szeretnéd" } },
|
||||
"activate_warning": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez deaktiválja az összes többi szezont." } },
|
||||
"activating": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás..." } },
|
||||
"activate_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás" } },
|
||||
"save_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült menteni a szezont." } }
|
||||
},
|
||||
"users": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Gamification Felhasználók" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználói gamification statisztikák kezelése" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználók betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a felhasználói statisztikákat." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek megjeleníthető felhasználói statisztikák." } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"all_levels": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minden Szint" } },
|
||||
"level_n": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "n" }, { "t": 3, "v": ". szint" }] } },
|
||||
"min_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minimum XP" } },
|
||||
"max_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Maximum XP" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés" } },
|
||||
"any": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Bármelyik" } },
|
||||
"only_penalized": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csak büntetettek" } },
|
||||
"only_clean": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csak tiszták" } },
|
||||
"filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szűrés" } },
|
||||
"reset": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Visszaállítás" } },
|
||||
"count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "felhasználó" } },
|
||||
"user_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó ID" } },
|
||||
"xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontok" } },
|
||||
"penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés" } },
|
||||
"restriction": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Korlátozás" } },
|
||||
"services": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szolgáltatások" } },
|
||||
"discoveries": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felfedezések" } },
|
||||
"updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utolsó frissítés" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Részletek" } },
|
||||
"prev": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előző" } },
|
||||
"next": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Következő" } },
|
||||
"none": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs" } },
|
||||
"restriction_mild": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Enyhe" } },
|
||||
"restriction_moderate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mérsékelt" } },
|
||||
"restriction_severe": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Súlyos" } }
|
||||
},
|
||||
"user_detail": {
|
||||
"back": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vissza a listához" } },
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó Gamification Részletei" } },
|
||||
"id_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ID:" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó betöltése..." } },
|
||||
"error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a felhasználói adatokat." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"not_found": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó nem található." } },
|
||||
"total_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes XP" } },
|
||||
"level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"total_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes Pont" } },
|
||||
"social_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szociális Pontok" } },
|
||||
"penalty_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntető Pontok" } },
|
||||
"restriction_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Korlátozás Szintje" } },
|
||||
"penalty_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetési Kvóta" } },
|
||||
"banned_until": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitiltva eddig:" } },
|
||||
"no": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs" } },
|
||||
"services": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szolgáltatások" } },
|
||||
"discovered_places": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felfedezett Helyek" } },
|
||||
"validated_places": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Validált Helyek" } },
|
||||
"added_providers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozzáadott Szolgáltatók" } },
|
||||
"penalty_form_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés Kiosztása" } },
|
||||
"penalty_points_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntető Pontok" } },
|
||||
"penalty_reason_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Indok" } },
|
||||
"penalty_reason_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés indoka..." } },
|
||||
"penalty_submit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés Kiosztása" } },
|
||||
"penalty_submitting": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Küldés..." } },
|
||||
"penalty_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Büntetés sikeresen kiosztva: " }, { "t": 4, "k": "amount" }, { "t": 3, "v": " pont." }] } },
|
||||
"penalty_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült kiosztani a büntetést." } },
|
||||
"reward_form_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jutalom Kiosztása" } },
|
||||
"reward_xp_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP Jutalom" } },
|
||||
"reward_social_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szociális Pont Jutalom" } },
|
||||
"reward_reason_label": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Indok" } },
|
||||
"reward_reason_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jutalom indoka..." } },
|
||||
"reward_submit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jutalom Kiosztása" } },
|
||||
"reward_submitting": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Küldés..." } },
|
||||
"reward_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Jutalom sikeresen kiosztva: " }, { "t": 4, "k": "xp" }, { "t": 3, "v": " XP, " }, { "t": 4, "k": "social" }, { "t": 3, "v": " szociális pont." }] } },
|
||||
"reward_error": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült kiosztani a jutalmat." } },
|
||||
"ledger_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pont Napló" } },
|
||||
"ledger_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "bejegyzés" } },
|
||||
"ledger_loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Betöltés..." } },
|
||||
"ledger_empty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek naplóbejegyzések ehhez a felhasználóhoz." } },
|
||||
"ledger_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dátum" } },
|
||||
"ledger_points": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pontok" } },
|
||||
"ledger_penalty": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Büntetés" } },
|
||||
"ledger_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "XP" } },
|
||||
"ledger_reason": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Indok" } },
|
||||
"ledger_source": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Forrás" } }
|
||||
}
|
||||
}
|
||||
};
|
||||
export {
|
||||
resource as default
|
||||
};
|
||||
//# sourceMappingURL=hu-D4bAMIbU.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/hu-D4bAMIbU.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/hu-D4bAMIbU.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"hu-D4bAMIbU.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/hu-D4bAMIbU.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/hu-D4bAMIbU.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"hu-D4bAMIbU.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
@@ -1,411 +0,0 @@
|
||||
const resource = {
|
||||
"permissions": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosultság Kezelés" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosultsági Mátrix — Szerepkör alapú hozzáférés-vezérlés" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jogosultságok betöltése..." } },
|
||||
"error_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem sikerült betölteni a jogosultságokat" } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"save_changes": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Változtatások Mentése" } },
|
||||
"discard": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elvetés" } },
|
||||
"modified_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " módosítás" }] } },
|
||||
"domain_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tartomány Szűrő (Sorok)" } },
|
||||
"role_filter": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör Szűrő (Oszlopok)" } },
|
||||
"select_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes kiválasztása" } },
|
||||
"deselect_all": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes elrejtése" } },
|
||||
"all_domains": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minden" } },
|
||||
"permission": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Engedély" } },
|
||||
"no_permissions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek engedélyek ebben a tartományban." } },
|
||||
"current_tier": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktuális Csomag" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat" } },
|
||||
"superadmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Superadmin" } },
|
||||
"superadmin_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Teljes rendszer hozzáférés — felhasználók, számlázás, robotok és rendszerkonfiguráció." } },
|
||||
"garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok" } },
|
||||
"garages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázs szintű hozzáférés — járműkezelés, szervizfoglalás, ügyféladatok." } },
|
||||
"feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Feature Flags" } },
|
||||
"feature_flags_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Előfizetési funkciók — a jelenlegi csomagod alapján (" }, { "t": 4, "k": "tier" }, { "t": 3, "v": ")." }] } },
|
||||
"rbac_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "RBAC Jogosultsági Mátrix" } },
|
||||
"rbac_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör alapú hozzáférés-vezérlés — mely szerepkörök mely admin műveleteket végezhetik." } },
|
||||
"action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Művelet" } }
|
||||
},
|
||||
"packages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomagok Kezelése" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetési csomagok és funkciók kezelése — Free, Premium, Enterprise" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomagok betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"create_new": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új Csomag" } },
|
||||
"no_packages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek csomagok" } },
|
||||
"no_packages_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozd létre az első előfizetési csomagot a kezdéshez." } },
|
||||
"create_first": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Első Csomag Létrehozása" } },
|
||||
"popular": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Népszerű" } },
|
||||
"fallback_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Visszaesési" } },
|
||||
"trial_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Próba" } },
|
||||
"month": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "hó" } },
|
||||
"feature_flags": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elérhető Funkciók" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerkesztés" } },
|
||||
"duplicate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Másolás" } },
|
||||
"delete": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"set_as_default": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Beállítás alapértelmezettként" } },
|
||||
"set_as_default_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "alapértelmezett csomagként beállítva!" } },
|
||||
"edit_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Szerkesztése" } },
|
||||
"create_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Létrehozása" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Változtatások Mentése" } },
|
||||
"create": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozás" } },
|
||||
"save_success": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag sikeresen frissítve!" } },
|
||||
"delete_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Törlése" } },
|
||||
"delete_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": 'Biztosan törölni szeretnéd a "' }, { "t": 4, "k": "name" }, { "t": 3, "v": '" csomagot?' }] } },
|
||||
"delete_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törlés" } },
|
||||
"allowances": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Korlátok" } },
|
||||
"max_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Jármű" } },
|
||||
"max_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Garázs" } },
|
||||
"max_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Dolgozó" } },
|
||||
"monthly_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Kredit" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"form_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszer Név" } },
|
||||
"form_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. premium_2024" } },
|
||||
"form_display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megjelenítési Név" } },
|
||||
"form_display_name_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Premium Plus" } },
|
||||
"form_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Típus" } },
|
||||
"type_private": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Magán" } },
|
||||
"type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vállalati" } },
|
||||
"form_tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szintszám" } },
|
||||
"form_tier_level_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Magasabb szám = több funkció és magasabb rang" } },
|
||||
"form_monthly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Díj" } },
|
||||
"form_yearly_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Éves Díj" } },
|
||||
"form_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pénznem" } },
|
||||
"form_subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felirat / Leírás" } },
|
||||
"form_subtitle_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Ideális kisvállalkozásoknak" } },
|
||||
"form_badge": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jelvény Szöveg" } },
|
||||
"form_badge_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "pl. Legnépszerűbb" } },
|
||||
"form_is_custom": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyedi Csomag (nem publikus)" } },
|
||||
"singleton_rules": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyediségi Szabályok" } },
|
||||
"form_is_default_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapértelmezett Visszaesési Csomag — lejárt előfizetés esetén erre vált" } },
|
||||
"form_trial_days": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Próba Napok Regisztrációnál" } },
|
||||
"form_trial_days_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Az új szervezetek ennyi ingyenes napot kapnak. Csak egy csomagnál lehet > 0." } },
|
||||
"per_region_pricing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Régiók szerinti árazás" } },
|
||||
"smart_calculator": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Okos Árkalkulátor" } },
|
||||
"calc_net_price": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nettó ár" } },
|
||||
"calc_vat_rate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ÁFA kulcs" } },
|
||||
"calc_currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pénznem" } },
|
||||
"calc_net": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nettó" } },
|
||||
"calc_vat": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "ÁFA" } },
|
||||
"calc_gross": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Bruttó" } },
|
||||
"calc_apply": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alkalmaz a kiválasztott régióra" } },
|
||||
"add_zone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új Zóna Hozzáadása" } },
|
||||
"add_zone_select": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Válassz országkódot..." } },
|
||||
"add_zone_already_exists": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a régió már létezik a csomag árazásában!" } }
|
||||
},
|
||||
"garages": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok CRM" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok listája, csomagkezelés és státuszmódosítás" } },
|
||||
"total_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes Garázs" } },
|
||||
"private_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Privát Garázsok" } },
|
||||
"corporate_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Céges Garázsok" } },
|
||||
"search_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keresés név, kapcsolattartó vagy e-mail alapján..." } },
|
||||
"all_tiers": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes csomag" } },
|
||||
"all_types": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes típus" } },
|
||||
"type_individual": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Privát (Egyéni)" } },
|
||||
"type_corporate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Céges (Vállalati)" } },
|
||||
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cégnév" } },
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"current_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktuális Csomag" } },
|
||||
"expiration_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat Dátuma" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inaktív" } },
|
||||
"suspended": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felfüggesztve" } },
|
||||
"change_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Módosítása" } },
|
||||
"manage_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetés Kezelése" } },
|
||||
"view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megtekintés" } },
|
||||
"activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás" } },
|
||||
"deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deaktiválás" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs a keresésnek megfelelő garázs." } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázsok betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"members": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "tag" } },
|
||||
"free_fallback": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ingyenes / Visszaesési" } },
|
||||
"expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat" } },
|
||||
"select_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag Kiválasztása" } },
|
||||
"select_package_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Válassz egy előfizetési csomagot..." } },
|
||||
"custom_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Egyéni Lejárati Dátum" } },
|
||||
"optional": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "opcionális" } },
|
||||
"custom_expiration_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hagyd üresen az alapértelmezett időtartamhoz (pl. 30 nap). 2-5 éves B2B deal-eknél adj meg egyedi dátumot!" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"subscription_updated": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "előfizetése sikeresen frissítve!" } },
|
||||
"view_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Részletek" } },
|
||||
"indefinite": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Határozatlan" } },
|
||||
"addons_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kiegészítők (Add-ons)" } },
|
||||
"addon_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Jármű" } },
|
||||
"addon_branches": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Telephely" } },
|
||||
"addon_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Dolgozó" } },
|
||||
"active_addons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív kiegészítők" } },
|
||||
"no_active_addons": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincsenek aktív kiegészítők" } },
|
||||
"addon_vehicles_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Jármű lejárati dátuma" } },
|
||||
"addon_branches_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Telephely lejárati dátuma" } },
|
||||
"addon_users_expiration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Extra Dolgozó lejárati dátuma" } },
|
||||
"addon_expiration_hint": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ha üres, a meglévő lejárati dátumok megmaradnak." } },
|
||||
"details": {
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázs adatainak betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"back": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vissza a garázsokhoz" } },
|
||||
"company_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cég adatok" } },
|
||||
"company_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cégnév" } },
|
||||
"display_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megjelenítési név" } },
|
||||
"org_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szervezet típusa" } },
|
||||
"tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adószám" } },
|
||||
"reg_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cégjegyzékszám" } },
|
||||
"created_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Létrehozva" } },
|
||||
"address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cím" } },
|
||||
"subscription_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetés státusza" } },
|
||||
"tier_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag" } },
|
||||
"tier_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szint" } },
|
||||
"level_n": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "n" }, { "t": 3, "v": ". szint" }] } },
|
||||
"expires_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat" } },
|
||||
"asset_limit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Járműkorlát" } },
|
||||
"vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "jármű" } },
|
||||
"no_subscription": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs aktív előfizetés" } },
|
||||
"contact_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elérhetőség" } },
|
||||
"contact_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó neve" } },
|
||||
"contact_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör" } },
|
||||
"contact_department": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Osztály" } },
|
||||
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Telefonszám" } },
|
||||
"no_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs elsődleges kapcsolattartó" } },
|
||||
"edit_details": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adatok Szerkesztése" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"generalTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Általános" } },
|
||||
"employeesTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgozók" } },
|
||||
"fleetTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Flotta" } },
|
||||
"analyticsTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Analitika" } },
|
||||
"subscriptionTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetés" } },
|
||||
"editBasicTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
|
||||
"editContactTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolat" } },
|
||||
"editAddressTab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Címek" } },
|
||||
"zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Irányítószám" } },
|
||||
"city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Város" } },
|
||||
"street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
|
||||
"street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca típusa" } },
|
||||
"house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Házszám" } },
|
||||
"coming_soon": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a funkció hamarosan elérhető lesz..." } },
|
||||
"missing_data_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hiányzó adatok" } },
|
||||
"missing_data_desc": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A garázs profilja hiányos. Kérjük, egészítse ki a hiányzó adatokat." } },
|
||||
"missing_data_activation_required": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "A garázs aktiválásához az alábbi adatok pótlása kötelező:" } },
|
||||
"missing_tax_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Adószám" } },
|
||||
"missing_billing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Számlázási cím" } },
|
||||
"missing_contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó e-mail" } },
|
||||
"missing_contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó telefon" } },
|
||||
"missing_data_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " mező hiányzik" }] } },
|
||||
"contact_person_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó neve" } },
|
||||
"contact_email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó e-mail" } },
|
||||
"contact_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó telefon" } },
|
||||
"billing_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Számlázási cím" } },
|
||||
"billing_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Irányítószám" } },
|
||||
"billing_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Város" } },
|
||||
"billing_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
|
||||
"billing_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca típusa" } },
|
||||
"billing_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Házszám" } },
|
||||
"notification_address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Értesítési cím" } },
|
||||
"notification_zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Irányítószám" } },
|
||||
"notification_city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Város" } },
|
||||
"notification_street_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
|
||||
"notification_street_type": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca típusa" } },
|
||||
"notification_house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Házszám" } },
|
||||
"tab_basic": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
|
||||
"tab_contact": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolat" } },
|
||||
"tab_addresses": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Címek" } },
|
||||
"basic_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alapadatok" } },
|
||||
"contact_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kapcsolattartó" } },
|
||||
"addresses_section": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Címek" } },
|
||||
"vehicles_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Járművek" } },
|
||||
"branches_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Telephelyek" } },
|
||||
"employees_used": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgozók" } },
|
||||
"branches": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "telephely" } },
|
||||
"employees": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "dolgozó" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetési Előzmények" } },
|
||||
"history_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dátum" } },
|
||||
"history_package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag" } },
|
||||
"history_action": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Művelet" } },
|
||||
"history_status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"no_subscription_history": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek előfizetési előzmények." } }
|
||||
},
|
||||
"analytics": {
|
||||
"ltv": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Élettartam Érték (LTV)" } },
|
||||
"mrr": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi Bevétel (MRR)" } },
|
||||
"monthly_recurring": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Havi ismétlődő bevétel" } },
|
||||
"outstanding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kintlévőség" } },
|
||||
"all_settled": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Minden számla rendezve" } },
|
||||
"earned_credits": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerzett Kreditek" } },
|
||||
"contribution_xp": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Platform építésével gyűjtött XP" } },
|
||||
"invited_companies": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Meghívott Cégek" } },
|
||||
"companies_joined": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cég csatlakozott a meghívásodra" } },
|
||||
"validated_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Validált Garázsok" } },
|
||||
"garages_confirmed": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Garázs sikeresen hitelesítve" } },
|
||||
"utilization": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kihasználtság" } },
|
||||
"vehicle_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Jármű Kvóta" } },
|
||||
"employee_quota": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alkalmazotti Kvóta" } },
|
||||
"utilized": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "kihasználva" } },
|
||||
"marketplace_engagement": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Piactér & Aktivitás" } },
|
||||
"avg_rating": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Átlagos Értékelés" } },
|
||||
"reviews": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Értékelések" } },
|
||||
"reviews_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "értékelés" } },
|
||||
"last_activity": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utolsó Aktivitás" } },
|
||||
"last_login_mock": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "2 órája" } },
|
||||
"services_30d": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Elvégzett Szervizek (30 nap)" } }
|
||||
},
|
||||
"employees": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Dolgozók" } },
|
||||
"total_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Összesen " }, { "t": 4, "k": "count" }, { "t": 3, "v": " fő" }] } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Név" } },
|
||||
"email_phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail / Telefon" } },
|
||||
"role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"edit_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör szerkesztése" } },
|
||||
"remove": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Eltávolítás" } },
|
||||
"no_employees": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Még nincsenek tagok ehhez a garázshoz." } },
|
||||
"edit_role_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag szerepkörének szerkesztése" } },
|
||||
"editRoleTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag szerepkörének szerkesztése" } },
|
||||
"editRoleFor": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "name" }, { "t": 3, "v": " szerepkörének módosítása" }] } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés" } },
|
||||
"saveRole": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör mentése" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } },
|
||||
"status_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"status_inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inaktív" } },
|
||||
"remove_title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag eltávolítása" } },
|
||||
"removeTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag eltávolítása" } },
|
||||
"remove_confirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Biztosan eltávolítod " }, { "t": 4, "k": "name" }, { "t": 3, "v": " tagot a garázsból?" }] } },
|
||||
"removeConfirm": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Biztosan eltávolítod " }, { "t": 4, "k": "name" }, { "t": 3, "v": " tagot a garázsból?" }] } },
|
||||
"remove_btn": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Eltávolítás" } },
|
||||
"removing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Eltávolítás..." } },
|
||||
"add_employee": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új dolgozó hozzáadása" } },
|
||||
"addTitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Új dolgozó hozzáadása" } },
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail cím" } },
|
||||
"emailPlaceholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Add meg az e-mail címet..." } },
|
||||
"roleMember": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tag" } },
|
||||
"roleManager": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Menedzser" } },
|
||||
"roleAdmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Admin" } },
|
||||
"roleOwner": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tulajdonos" } },
|
||||
"add": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozzáadás" } },
|
||||
"adding": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hozzáadás..." } }
|
||||
},
|
||||
"fleet": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Flotta" } },
|
||||
"total_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3, "v": "Összesen " }, { "t": 4, "k": "count" }, { "t": 3, "v": " jármű" }] } },
|
||||
"plate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Rendszám" } },
|
||||
"brand": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Márka" } },
|
||||
"model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Modell" } },
|
||||
"brand_model": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Márka & Modell" } },
|
||||
"year": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Évjárat" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"vin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Alvázszám" } },
|
||||
"no_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ehhez a garázshoz még nincsenek járművek rendelve." } },
|
||||
"no_fleet_access": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs jogosultságod a flotta adatok megtekintéséhez." } }
|
||||
}
|
||||
},
|
||||
"users": {
|
||||
"title": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó Kezelés" } },
|
||||
"subtitle": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználók listája, keresés, szűrés és tömeges műveletek" } },
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználók betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"search_placeholder": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keresés email, név vagy telefonszám alapján..." } },
|
||||
"all_statuses": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes státusz" } },
|
||||
"status_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"status_inactive": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Inaktív" } },
|
||||
"status_deleted": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törölt" } },
|
||||
"status_banned": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitiltott" } },
|
||||
"all_roles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes szerepkör" } },
|
||||
"role_user": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó" } },
|
||||
"role_admin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Admin" } },
|
||||
"role_staff": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Munkatárs" } },
|
||||
"role_superadmin": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Superadmin" } },
|
||||
"all_plans": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes csomag" } },
|
||||
"plan_free": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ingyenes" } },
|
||||
"plan_premium": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Prémium" } },
|
||||
"plan_enterprise": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vállalati" } },
|
||||
"total_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Összes Felhasználó" } },
|
||||
"active_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív Felhasználók" } },
|
||||
"deleted_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Törölt Felhasználók" } },
|
||||
"banned_users": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kitiltott Felhasználók" } },
|
||||
"new_today": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ma Regisztrált" } },
|
||||
"filtered_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szűrt találat" } },
|
||||
"selected_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " felhasználó kiválasztva" }] } },
|
||||
"bulk_activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás" } },
|
||||
"bulk_deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deaktiválás" } },
|
||||
"clear_selection": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Kijelölés törlése" } },
|
||||
"email": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "E-mail" } },
|
||||
"name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Név" } },
|
||||
"role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör" } },
|
||||
"status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"package": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csomag" } },
|
||||
"registration": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Regisztráció" } },
|
||||
"language": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nyelv" } },
|
||||
"actions": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Műveletek" } },
|
||||
"view": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Megtekintés" } },
|
||||
"activate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktiválás" } },
|
||||
"deactivate": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Deaktiválás" } },
|
||||
"no_results": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nincs a keresésnek megfelelő felhasználó." } },
|
||||
"showing": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mutató" } },
|
||||
"prev": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előző" } },
|
||||
"next": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Következő" } },
|
||||
"details": {
|
||||
"loading": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó adatainak betöltése..." } },
|
||||
"retry": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Újra" } },
|
||||
"back": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vissza a felhasználókhoz" } },
|
||||
"edit": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó szerkesztése" } },
|
||||
"edit_user": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó szerkesztése" } },
|
||||
"profile_tab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Profil" } },
|
||||
"memberships_tab": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Tagságok" } },
|
||||
"account_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Fiók Információk" } },
|
||||
"user_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Felhasználó ID" } },
|
||||
"registration_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Regisztráció Dátuma" } },
|
||||
"last_login": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utolsó Belépés" } },
|
||||
"ui_mode": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "UI Mód" } },
|
||||
"region": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Régió" } },
|
||||
"currency": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Pénznem" } },
|
||||
"subscription_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előfizetés Információk" } },
|
||||
"subscription_expires": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Lejárat Dátuma" } },
|
||||
"scope_level": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hatáskör Szint" } },
|
||||
"scope_id": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Hatáskör ID" } },
|
||||
"max_vehicles": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Járművek" } },
|
||||
"max_garages": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Max Garázsok" } },
|
||||
"personal_info": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Személyes Információk" } },
|
||||
"last_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Vezetéknév" } },
|
||||
"first_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Keresztnév" } },
|
||||
"phone": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Telefonszám" } },
|
||||
"birth_place": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Születési Hely" } },
|
||||
"birth_date": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Születési Dátum" } },
|
||||
"mothers_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Anyja Vezetékneve" } },
|
||||
"mothers_first_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Anyja Keresztneve" } },
|
||||
"address": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Cím" } },
|
||||
"zip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Irányítószám" } },
|
||||
"city": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Város" } },
|
||||
"street": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Utca" } },
|
||||
"house_number": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Házszám" } },
|
||||
"no_person_record": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem található személyes adat ehhez a felhasználóhoz." } },
|
||||
"memberships": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szervezeti Tagságok" } },
|
||||
"memberships_count": { "t": 0, "b": { "t": 2, "i": [{ "t": 4, "k": "count" }, { "t": 3, "v": " tagság" }] } },
|
||||
"no_memberships": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ez a felhasználó nem tagja egyetlen szervezetnek sem." } },
|
||||
"org_name": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szervezet" } },
|
||||
"org_role": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Szerepkör" } },
|
||||
"member_status": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Státusz" } },
|
||||
"joined_at": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Csatlakozott" } },
|
||||
"verified": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Ellenőrzött" } },
|
||||
"verified_yes": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Igen" } },
|
||||
"verified_no": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Nem" } },
|
||||
"preferred_language": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Előnyben Részesített Nyelv" } },
|
||||
"is_active": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Aktív" } },
|
||||
"is_vip": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "VIP" } },
|
||||
"cancel": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mégse" } },
|
||||
"save": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Változtatások Mentése" } },
|
||||
"saving": { "t": 0, "b": { "t": 2, "i": [{ "t": 3 }], "s": "Mentés..." } }
|
||||
}
|
||||
}
|
||||
};
|
||||
export {
|
||||
resource as default
|
||||
};
|
||||
//# sourceMappingURL=hu-DFYycw88.js.map
|
||||
@@ -1 +0,0 @@
|
||||
{"version":3,"file":"hu-DFYycw88.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
||||
@@ -1 +0,0 @@
|
||||
{"file":"hu-DFYycw88.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
126
frontend_admin/.nuxt/dist/server/_nuxt/index-B6MDQHdV.js
vendored
Normal file
126
frontend_admin/.nuxt/dist/server/_nuxt/index-B6MDQHdV.js
vendored
Normal file
@@ -0,0 +1,126 @@
|
||||
import { _ as __nuxt_component_0 } from "./nuxt-link-Ci8vU-Yt.js";
|
||||
import { defineComponent, ref, unref, withCtx, createTextVNode, toDisplayString, openBlock, createBlock, createVNode, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderAttr, ssrRenderComponent, ssrRenderClass } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import { u as useFormatter } from "./useFormatter-hycy3urM.js";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "./region-0mvXqaMM.js";
|
||||
import "pinia";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "index",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const { formatNumber, formatDate } = useFormatter();
|
||||
const loading = ref(false);
|
||||
const error = ref(false);
|
||||
const users = ref([]);
|
||||
const totalCount = ref(0);
|
||||
const offset = ref(0);
|
||||
const limit = ref(50);
|
||||
const filters = ref({
|
||||
level: "",
|
||||
min_xp: null,
|
||||
max_xp: null,
|
||||
has_penalty: ""
|
||||
});
|
||||
function restrictionLabel(level) {
|
||||
switch (level) {
|
||||
case 1:
|
||||
return t("gamification.users.restriction_mild");
|
||||
case 2:
|
||||
return t("gamification.users.restriction_moderate");
|
||||
case 3:
|
||||
return t("gamification.users.restriction_severe");
|
||||
default:
|
||||
return `${level}. ${t("gamification.users.restriction_level")}`;
|
||||
}
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_NuxtLink = __nuxt_component_0;
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8"><h1 class="text-2xl font-bold text-white">${ssrInterpolate(unref(t)("gamification.users.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(unref(t)("gamification.users.subtitle"))}</p></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-4 mb-6"><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.filter_level"))}</label><select class="w-full bg-slate-700 border border-slate-600 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option value=""${ssrIncludeBooleanAttr(Array.isArray(unref(filters).level) ? ssrLooseContain(unref(filters).level, "") : ssrLooseEqual(unref(filters).level, "")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.users.all_levels"))}</option><!--[-->`);
|
||||
ssrRenderList(20, (lvl) => {
|
||||
_push(`<option${ssrRenderAttr("value", lvl)}${ssrIncludeBooleanAttr(Array.isArray(unref(filters).level) ? ssrLooseContain(unref(filters).level, lvl) : ssrLooseEqual(unref(filters).level, lvl)) ? " selected" : ""}>${ssrInterpolate(lvl)}. ${ssrInterpolate(unref(t)("gamification.users.level_suffix"))}</option>`);
|
||||
});
|
||||
_push(`<!--]--></select></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.filter_min_xp"))}</label><input${ssrRenderAttr("value", unref(filters).min_xp)} type="number" min="0" placeholder="0" class="w-full bg-slate-700 border border-slate-600 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.filter_max_xp"))}</label><input${ssrRenderAttr("value", unref(filters).max_xp)} type="number" min="0" placeholder="100000" class="w-full bg-slate-700 border border-slate-600 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.filter_penalty"))}</label><select class="w-full bg-slate-700 border border-slate-600 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option value=""${ssrIncludeBooleanAttr(Array.isArray(unref(filters).has_penalty) ? ssrLooseContain(unref(filters).has_penalty, "") : ssrLooseEqual(unref(filters).has_penalty, "")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.users.penalty_any"))}</option><option${ssrRenderAttr("value", true)}${ssrIncludeBooleanAttr(Array.isArray(unref(filters).has_penalty) ? ssrLooseContain(unref(filters).has_penalty, true) : ssrLooseEqual(unref(filters).has_penalty, true)) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.users.penalty_only"))}</option><option${ssrRenderAttr("value", false)}${ssrIncludeBooleanAttr(Array.isArray(unref(filters).has_penalty) ? ssrLooseContain(unref(filters).has_penalty, false) : ssrLooseEqual(unref(filters).has_penalty, false)) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.users.penalty_none"))}</option></select></div></div><div class="flex items-center gap-3 mt-4 pt-4 border-t border-slate-700/50"><button class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-medium rounded-lg transition">${ssrInterpolate(unref(t)("gamification.users.filter_apply"))}</button><button class="px-4 py-2 bg-slate-700 hover:bg-slate-600 text-slate-300 text-sm font-medium rounded-lg transition">${ssrInterpolate(unref(t)("gamification.users.filter_reset"))}</button><span class="text-xs text-slate-500 ml-auto">${ssrInterpolate(unref(t)("gamification.users.total_count", { count: unref(totalCount) }))}</span></div></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><div class="text-slate-400 flex items-center gap-3"><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg><span>${ssrInterpolate(unref(t)("gamification.users.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8"><p class="text-rose-400">${ssrInterpolate(unref(t)("gamification.users.load_error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline">${ssrInterpolate(unref(t)("gamification.users.retry"))}</button></div>`);
|
||||
} else if (unref(users).length === 0) {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><p class="text-slate-400 text-center py-12">${ssrInterpolate(unref(t)("gamification.users.empty"))}</p></div>`);
|
||||
} else {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden"><div class="overflow-x-auto"><table class="w-full"><thead><tr class="border-b border-slate-700"><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_user_id"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_xp"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_level"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_points"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_penalty"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_restriction"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_services"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_discoveries"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_updated"))}</th><th class="text-right px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.users.col_actions"))}</th></tr></thead><tbody class="divide-y divide-slate-700/50"><!--[-->`);
|
||||
ssrRenderList(unref(users), (user) => {
|
||||
_push(`<tr class="hover:bg-slate-700/30 transition"><td class="px-4 py-3 text-sm text-white font-mono">#${ssrInterpolate(user.user_id)}</td><td class="px-4 py-3 text-sm text-white">${ssrInterpolate(unref(formatNumber)(user.total_xp))}</td><td class="px-4 py-3"><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-indigo-500/10 text-indigo-400 border border-indigo-500/20">${ssrInterpolate(user.current_level)}</span></td><td class="px-4 py-3 text-sm text-slate-300">${ssrInterpolate(unref(formatNumber)(user.total_points))}</td><td class="px-4 py-3">`);
|
||||
if (user.penalty_points > 0) {
|
||||
_push(`<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-rose-500/10 text-rose-400 border border-rose-500/20"> -${ssrInterpolate(user.penalty_points)}</span>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500">—</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3">`);
|
||||
if (user.restriction_level > 0) {
|
||||
_push(`<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-amber-500/10 text-amber-400 border border-amber-500/20">${ssrInterpolate(restrictionLabel(user.restriction_level))}</span>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500">${ssrInterpolate(unref(t)("gamification.users.none"))}</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3 text-sm text-slate-300">${ssrInterpolate(user.services_submitted)}</td><td class="px-4 py-3 text-sm text-slate-300">${ssrInterpolate(user.places_discovered)}</td><td class="px-4 py-3 text-sm text-slate-500">${ssrInterpolate(user.updated_at ? unref(formatDate)(user.updated_at) : "—")}</td><td class="px-4 py-3 text-right">`);
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: `/gamification/users/${user.user_id}`,
|
||||
class: "inline-flex items-center gap-1.5 px-3 py-1.5 bg-indigo-600/10 hover:bg-indigo-600/20 text-indigo-400 text-xs font-medium rounded-lg transition"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`${ssrInterpolate(unref(t)("gamification.users.details"))} <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"${_scopeId}></path></svg>`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(toDisplayString(unref(t)("gamification.users.details")) + " ", 1),
|
||||
(openBlock(), createBlock("svg", {
|
||||
class: "w-3.5 h-3.5",
|
||||
fill: "none",
|
||||
stroke: "currentColor",
|
||||
viewBox: "0 0 24 24"
|
||||
}, [
|
||||
createVNode("path", {
|
||||
"stroke-linecap": "round",
|
||||
"stroke-linejoin": "round",
|
||||
"stroke-width": "2",
|
||||
d: "M9 5l7 7-7 7"
|
||||
})
|
||||
]))
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 2
|
||||
}, _parent));
|
||||
_push(`</td></tr>`);
|
||||
});
|
||||
_push(`<!--]--></tbody></table></div><div class="flex items-center justify-between px-4 py-3 border-t border-slate-700"><button${ssrIncludeBooleanAttr(unref(offset) === 0) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) === 0 ? "text-slate-600 cursor-not-allowed" : "text-slate-300 hover:bg-slate-700", "px-3 py-1.5 text-sm rounded-lg transition"])}">${ssrInterpolate(unref(t)("gamification.users.prev"))}</button><span class="text-sm text-slate-500">${ssrInterpolate(unref(offset) + 1)}–${ssrInterpolate(Math.min(unref(offset) + unref(limit), unref(totalCount)))} / ${ssrInterpolate(unref(totalCount))}</span><button${ssrIncludeBooleanAttr(unref(offset) + unref(limit) >= unref(totalCount)) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) + unref(limit) >= unref(totalCount) ? "text-slate-600 cursor-not-allowed" : "text-slate-300 hover:bg-slate-700", "px-3 py-1.5 text-sm rounded-lg transition"])}">${ssrInterpolate(unref(t)("gamification.users.next"))}</button></div></div>`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/users/index.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=index-B6MDQHdV.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B6MDQHdV.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B6MDQHdV.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B6MDQHdV.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B6MDQHdV.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -1,6 +1,7 @@
|
||||
import { defineComponent, ref, computed, reactive, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderClass, ssrRenderList, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseEqual, ssrLooseContain } from "vue/server-renderer";
|
||||
import { u as useRegionStore } from "./region-0mvXqaMM.js";
|
||||
import { u as useFormatter } from "./useFormatter-hycy3urM.js";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import "../server.mjs";
|
||||
@@ -17,99 +18,6 @@ import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
function useFormatter() {
|
||||
const regionStore = useRegionStore();
|
||||
function formatNumber(value, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
try {
|
||||
return new Intl.NumberFormat(locale, options).format(value);
|
||||
} catch {
|
||||
return new Intl.NumberFormat("en-EU", options).format(value);
|
||||
}
|
||||
}
|
||||
function formatCurrency(value, currency, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
const curr = currency || regionStore.activeCurrency || "EUR";
|
||||
try {
|
||||
return new Intl.NumberFormat(locale, {
|
||||
style: "currency",
|
||||
currency: curr,
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
...options
|
||||
}).format(value);
|
||||
} catch {
|
||||
return `${value.toFixed(2)} ${curr}`;
|
||||
}
|
||||
}
|
||||
function formatDate(date, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
const timezone = regionStore.activeTimezone || "Europe/Brussels";
|
||||
const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date;
|
||||
try {
|
||||
return new Intl.DateTimeFormat(locale, {
|
||||
timezone,
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
...options
|
||||
}).format(d);
|
||||
} catch {
|
||||
return d.toLocaleDateString("en-GB");
|
||||
}
|
||||
}
|
||||
function formatDateTime(date, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
const timezone = regionStore.activeTimezone || "Europe/Brussels";
|
||||
const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date;
|
||||
try {
|
||||
return new Intl.DateTimeFormat(locale, {
|
||||
timezone,
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
...options
|
||||
}).format(d);
|
||||
} catch {
|
||||
return d.toLocaleString("en-GB");
|
||||
}
|
||||
}
|
||||
function formatPercent(value, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
try {
|
||||
return new Intl.NumberFormat(locale, {
|
||||
style: "percent",
|
||||
minimumFractionDigits: 0,
|
||||
maximumFractionDigits: 1,
|
||||
...options
|
||||
}).format(value / 100);
|
||||
} catch {
|
||||
return `${value}%`;
|
||||
}
|
||||
}
|
||||
function calculatePriceWithVat(netPrice, vatRate) {
|
||||
const rate = vatRate ?? regionStore.activeVatRate ?? 0;
|
||||
const vat = netPrice * (rate / 100);
|
||||
const gross = netPrice + vat;
|
||||
return { net: netPrice, vat, gross, vatRate: rate };
|
||||
}
|
||||
function formatPriceWithVat(netPrice, vatRate, currency) {
|
||||
const { net, vat, gross, vatRate: rate } = calculatePriceWithVat(netPrice, vatRate);
|
||||
const curr = currency || regionStore.activeCurrency || "EUR";
|
||||
return `Net: ${formatCurrency(net, curr)} | VAT: ${formatCurrency(vat, curr)} (${rate}%) | Gross: ${formatCurrency(gross, curr)}`;
|
||||
}
|
||||
return {
|
||||
formatNumber,
|
||||
formatCurrency,
|
||||
formatDate,
|
||||
formatDateTime,
|
||||
formatPercent,
|
||||
calculatePriceWithVat,
|
||||
formatPriceWithVat
|
||||
};
|
||||
}
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "index",
|
||||
__ssrInlineRender: true,
|
||||
@@ -359,4 +267,4 @@ _sfc_main.setup = (props, ctx) => {
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=index-CmqjFfry.js.map
|
||||
//# sourceMappingURL=index-B9tmK_Km.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B9tmK_Km.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B9tmK_Km.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B9tmK_Km.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/index-B9tmK_Km.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
179
frontend_admin/.nuxt/dist/server/_nuxt/index-Bf37iyk4.js
vendored
Normal file
179
frontend_admin/.nuxt/dist/server/_nuxt/index-Bf37iyk4.js
vendored
Normal file
@@ -0,0 +1,179 @@
|
||||
import { _ as __nuxt_component_0 } from "./nuxt-link-Ci8vU-Yt.js";
|
||||
import { defineComponent, ref, unref, withCtx, openBlock, createBlock, createVNode, createTextVNode, toDisplayString, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderComponent, ssrRenderList, ssrRenderClass } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "index",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const stats = ref({
|
||||
total_users: 0,
|
||||
active_season: null,
|
||||
pending_contributions: 0,
|
||||
today_xp: 0
|
||||
});
|
||||
const recentLedger = ref([]);
|
||||
const topLeaderboard = ref([]);
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_NuxtLink = __nuxt_component_0;
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8"><h1 class="text-2xl font-bold text-white">${ssrInterpolate(unref(t)("gamification.dashboard.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(unref(t)("gamification.dashboard.subtitle"))}</p></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><div class="text-slate-400 flex items-center gap-3"><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg><span>${ssrInterpolate(unref(t)("gamification.dashboard.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8"><p class="text-rose-400">${ssrInterpolate(unref(t)("gamification.dashboard.load_error"))}</p></div>`);
|
||||
} else {
|
||||
_push(`<!--[--><div class="grid grid-cols-1 sm:grid-cols-2 xl:grid-cols-4 gap-6 mb-8"><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 hover:border-amber-500/50 transition group"><div class="flex items-center justify-between mb-4"><div class="p-2 rounded-lg bg-amber-500/10 text-amber-400 group-hover:bg-amber-500/20 transition"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></div></div><h3 class="text-sm font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.dashboard.total_users"))}</h3><p class="text-3xl font-bold text-white mt-2">${ssrInterpolate(unref(stats).total_users)}</p></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 hover:border-emerald-500/50 transition group"><div class="flex items-center justify-between mb-4"><div class="p-2 rounded-lg bg-emerald-500/10 text-emerald-400 group-hover:bg-emerald-500/20 transition"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7h8m0 0v8m0-8l-8 8-4-4-6 6"></path></svg></div></div><h3 class="text-sm font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.dashboard.active_season"))}</h3><p class="text-3xl font-bold text-white mt-2">${ssrInterpolate(unref(stats).active_season || unref(t)("gamification.dashboard.none"))}</p></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 hover:border-violet-500/50 transition group"><div class="flex items-center justify-between mb-4"><div class="p-2 rounded-lg bg-violet-500/10 text-violet-400 group-hover:bg-violet-500/20 transition"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></div></div><h3 class="text-sm font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.dashboard.pending_contributions"))}</h3><p class="text-3xl font-bold text-white mt-2">${ssrInterpolate(unref(stats).pending_contributions)}</p></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 hover:border-cyan-500/50 transition group"><div class="flex items-center justify-between mb-4"><div class="p-2 rounded-lg bg-cyan-500/10 text-cyan-400 group-hover:bg-cyan-500/20 transition"><svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"></path></svg></div></div><h3 class="text-sm font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.dashboard.today_xp"))}</h3><p class="text-3xl font-bold text-white mt-2">${ssrInterpolate(unref(stats).today_xp)}</p></div></div><div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8"><div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><h2 class="text-lg font-semibold text-white mb-4">${ssrInterpolate(unref(t)("gamification.dashboard.quick_actions"))}</h2><div class="space-y-3">`);
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: "/gamification/point-rules",
|
||||
class: "flex items-center gap-3 px-4 py-3 bg-slate-700/50 hover:bg-slate-700 rounded-lg text-sm text-slate-300 hover:text-white transition"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`<svg class="w-5 h-5 text-amber-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"${_scopeId}></path></svg> ${ssrInterpolate(unref(t)("gamification.dashboard.manage_point_rules"))}`);
|
||||
} else {
|
||||
return [
|
||||
(openBlock(), createBlock("svg", {
|
||||
class: "w-5 h-5 text-amber-400 flex-shrink-0",
|
||||
fill: "none",
|
||||
stroke: "currentColor",
|
||||
viewBox: "0 0 24 24"
|
||||
}, [
|
||||
createVNode("path", {
|
||||
"stroke-linecap": "round",
|
||||
"stroke-linejoin": "round",
|
||||
"stroke-width": "2",
|
||||
d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
|
||||
})
|
||||
])),
|
||||
createTextVNode(" " + toDisplayString(unref(t)("gamification.dashboard.manage_point_rules")), 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: "/gamification/badges",
|
||||
class: "flex items-center gap-3 px-4 py-3 bg-slate-700/50 hover:bg-slate-700 rounded-lg text-sm text-slate-300 hover:text-white transition"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`<svg class="w-5 h-5 text-violet-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"${_scopeId}></path></svg> ${ssrInterpolate(unref(t)("gamification.dashboard.manage_badges"))}`);
|
||||
} else {
|
||||
return [
|
||||
(openBlock(), createBlock("svg", {
|
||||
class: "w-5 h-5 text-violet-400 flex-shrink-0",
|
||||
fill: "none",
|
||||
stroke: "currentColor",
|
||||
viewBox: "0 0 24 24"
|
||||
}, [
|
||||
createVNode("path", {
|
||||
"stroke-linecap": "round",
|
||||
"stroke-linejoin": "round",
|
||||
"stroke-width": "2",
|
||||
d: "M9 12l2 2 4-4M7.835 4.697a3.42 3.42 0 001.946-.806 3.42 3.42 0 014.438 0 3.42 3.42 0 001.946.806 3.42 3.42 0 013.138 3.138 3.42 3.42 0 00.806 1.946 3.42 3.42 0 010 4.438 3.42 3.42 0 00-.806 1.946 3.42 3.42 0 01-3.138 3.138 3.42 3.42 0 00-1.946.806 3.42 3.42 0 01-4.438 0 3.42 3.42 0 00-1.946-.806 3.42 3.42 0 01-3.138-3.138 3.42 3.42 0 00-.806-1.946 3.42 3.42 0 010-4.438 3.42 3.42 0 00.806-1.946 3.42 3.42 0 013.138-3.138z"
|
||||
})
|
||||
])),
|
||||
createTextVNode(" " + toDisplayString(unref(t)("gamification.dashboard.manage_badges")), 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: "/gamification/seasons",
|
||||
class: "flex items-center gap-3 px-4 py-3 bg-slate-700/50 hover:bg-slate-700 rounded-lg text-sm text-slate-300 hover:text-white transition"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`<svg class="w-5 h-5 text-emerald-400 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24"${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"${_scopeId}></path></svg> ${ssrInterpolate(unref(t)("gamification.dashboard.manage_seasons"))}`);
|
||||
} else {
|
||||
return [
|
||||
(openBlock(), createBlock("svg", {
|
||||
class: "w-5 h-5 text-emerald-400 flex-shrink-0",
|
||||
fill: "none",
|
||||
stroke: "currentColor",
|
||||
viewBox: "0 0 24 24"
|
||||
}, [
|
||||
createVNode("path", {
|
||||
"stroke-linecap": "round",
|
||||
"stroke-linejoin": "round",
|
||||
"stroke-width": "2",
|
||||
d: "M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"
|
||||
})
|
||||
])),
|
||||
createTextVNode(" " + toDisplayString(unref(t)("gamification.dashboard.manage_seasons")), 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><h2 class="text-lg font-semibold text-white mb-4">${ssrInterpolate(unref(t)("gamification.dashboard.recent_ledger"))}</h2>`);
|
||||
if (unref(recentLedger).length === 0) {
|
||||
_push(`<div class="text-sm text-slate-500 text-center py-8">${ssrInterpolate(unref(t)("gamification.dashboard.no_ledger_entries"))}</div>`);
|
||||
} else {
|
||||
_push(`<div class="space-y-3"><!--[-->`);
|
||||
ssrRenderList(unref(recentLedger), (entry) => {
|
||||
_push(`<div class="flex items-center justify-between py-2 border-b border-slate-700/50 last:border-0"><div><p class="text-sm text-slate-300">${ssrInterpolate(entry.reason)}</p><p class="text-xs text-slate-500">${ssrInterpolate(entry.created_at)}</p></div><span class="${ssrRenderClass([entry.points >= 0 ? "text-emerald-400" : "text-rose-400", "text-sm font-semibold"])}">${ssrInterpolate(entry.points >= 0 ? "+" : "")}${ssrInterpolate(entry.points)}</span></div>`);
|
||||
});
|
||||
_push(`<!--]--></div>`);
|
||||
}
|
||||
_push(`</div></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><div class="flex items-center justify-between mb-4"><h2 class="text-lg font-semibold text-white">${ssrInterpolate(unref(t)("gamification.dashboard.top_5_leaderboard"))}</h2>`);
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: "/gamification/leaderboard",
|
||||
class: "text-sm text-indigo-400 hover:text-indigo-300 transition"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`${ssrInterpolate(unref(t)("gamification.dashboard.full_leaderboard"))} → `);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(toDisplayString(unref(t)("gamification.dashboard.full_leaderboard")) + " → ", 1)
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 1
|
||||
}, _parent));
|
||||
_push(`</div>`);
|
||||
if (unref(topLeaderboard).length === 0) {
|
||||
_push(`<div class="text-sm text-slate-500 text-center py-8">${ssrInterpolate(unref(t)("gamification.dashboard.no_leaderboard_data"))}</div>`);
|
||||
} else {
|
||||
_push(`<div class="space-y-2"><!--[-->`);
|
||||
ssrRenderList(unref(topLeaderboard), (entry, idx) => {
|
||||
_push(`<div class="${ssrRenderClass([idx < 3 ? "bg-slate-700/50" : "", "flex items-center gap-4 px-4 py-3 rounded-lg"])}"><span class="${ssrRenderClass([idx === 0 ? "text-amber-400" : idx === 1 ? "text-slate-300" : idx === 2 ? "text-amber-700" : "text-slate-500", "w-8 text-center text-lg font-bold"])}"> #${ssrInterpolate(idx + 1)}</span><div class="flex-1"><p class="text-sm font-medium text-white">${ssrInterpolate(entry.user_name)}</p><p class="text-xs text-slate-500">${ssrInterpolate(unref(t)("gamification.dashboard.level"))} ${ssrInterpolate(entry.level)} · ${ssrInterpolate(entry.xp)} ${ssrInterpolate(unref(t)("gamification.dashboard.xp_abbr"))}</p></div><span class="text-sm font-semibold text-emerald-400">${ssrInterpolate(entry.total_points)} ${ssrInterpolate(unref(t)("gamification.dashboard.points"))}</span></div>`);
|
||||
});
|
||||
_push(`<!--]--></div>`);
|
||||
}
|
||||
_push(`</div><!--]-->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/index.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=index-Bf37iyk4.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/index-Bf37iyk4.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/index-Bf37iyk4.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/index-Bf37iyk4.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/index-Bf37iyk4.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -312,10 +312,23 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
params.search_term = searchQuery.value;
|
||||
}
|
||||
if (statusFilter.value !== "all") {
|
||||
params.status_filter = statusFilter.value;
|
||||
switch (statusFilter.value) {
|
||||
case "active":
|
||||
params.is_active = true;
|
||||
break;
|
||||
case "inactive":
|
||||
params.is_active = false;
|
||||
break;
|
||||
case "deleted":
|
||||
params.is_deleted = true;
|
||||
break;
|
||||
case "banned":
|
||||
params.is_active = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (roleFilter.value !== "all") {
|
||||
params.role_filter = roleFilter.value;
|
||||
params.role = roleFilter.value;
|
||||
}
|
||||
if (planFilter.value !== "all") {
|
||||
params.plan_filter = planFilter.value;
|
||||
@@ -478,4 +491,4 @@ _sfc_main.setup = (props, ctx) => {
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=index-BXFH9zj5.js.map
|
||||
//# sourceMappingURL=index-D8qGjmnz.js.map
|
||||
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/index-D8qGjmnz.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/index-D8qGjmnz.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
148
frontend_admin/.nuxt/dist/server/_nuxt/leaderboard-C-QWIlDh.js
vendored
Normal file
148
frontend_admin/.nuxt/dist/server/_nuxt/leaderboard-C-QWIlDh.js
vendored
Normal file
@@ -0,0 +1,148 @@
|
||||
import { _ as __nuxt_component_0 } from "./nuxt-link-Ci8vU-Yt.js";
|
||||
import { defineComponent, ref, unref, withCtx, createTextVNode, toDisplayString, openBlock, createBlock, createVNode, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain, ssrLooseEqual, ssrRenderList, ssrRenderClass, ssrRenderComponent } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import { u as useFormatter } from "./useFormatter-hycy3urM.js";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "./region-0mvXqaMM.js";
|
||||
import "pinia";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "leaderboard",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const { formatNumber, formatDateTime } = useFormatter();
|
||||
const loading = ref(false);
|
||||
const error = ref(false);
|
||||
const entries = ref([]);
|
||||
const totalCount = ref(0);
|
||||
const offset = ref(0);
|
||||
const limit = ref(50);
|
||||
const sortBy = ref("total_xp");
|
||||
const sortOrder = ref("desc");
|
||||
const filters = ref({
|
||||
search: "",
|
||||
level: "",
|
||||
min_xp: null
|
||||
});
|
||||
function restrictionLabel(level) {
|
||||
switch (level) {
|
||||
case 1:
|
||||
return t("gamification.leaderboard.restriction_mild");
|
||||
case 2:
|
||||
return t("gamification.leaderboard.restriction_moderate");
|
||||
case 3:
|
||||
return t("gamification.leaderboard.restriction_severe");
|
||||
default:
|
||||
return `${level}. ${t("gamification.leaderboard.restriction_level")}`;
|
||||
}
|
||||
}
|
||||
function getInitials(name) {
|
||||
return name.split(" ").map((part) => part.charAt(0).toUpperCase()).slice(0, 2).join("");
|
||||
}
|
||||
function getRankBadgeClass(rank) {
|
||||
if (rank === 1) return "bg-amber-500/20 text-amber-400 border border-amber-500/30";
|
||||
if (rank === 2) return "bg-slate-300/10 text-slate-300 border border-slate-400/20";
|
||||
if (rank === 3) return "bg-amber-700/20 text-amber-600 border border-amber-700/30";
|
||||
return "bg-slate-700/50 text-slate-400 border border-slate-600/30";
|
||||
}
|
||||
function getRowClass(rank) {
|
||||
if (rank === 1) return "bg-amber-500/5";
|
||||
if (rank === 2) return "bg-slate-300/5";
|
||||
if (rank === 3) return "bg-amber-700/5";
|
||||
return "";
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
const _component_NuxtLink = __nuxt_component_0;
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8"><h1 class="text-2xl font-bold text-white">${ssrInterpolate(unref(t)("gamification.leaderboard.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(unref(t)("gamification.leaderboard.subtitle"))}</p></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-4 mb-6"><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4"><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.search"))}</label><div class="relative"><input${ssrRenderAttr("value", unref(filters).search)} type="text"${ssrRenderAttr("placeholder", unref(t)("gamification.leaderboard.search_placeholder"))} class="w-full bg-slate-700 border border-slate-600 rounded-lg pl-9 pr-3 py-2 text-sm text-white placeholder-slate-500 focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><svg class="absolute left-2.5 top-2.5 w-4 h-4 text-slate-500" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></div></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.level"))}</label><select class="w-full bg-slate-700 border border-slate-600 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option value=""${ssrIncludeBooleanAttr(Array.isArray(unref(filters).level) ? ssrLooseContain(unref(filters).level, "") : ssrLooseEqual(unref(filters).level, "")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.leaderboard.all_levels"))}</option><!--[-->`);
|
||||
ssrRenderList(20, (lvl) => {
|
||||
_push(`<option${ssrRenderAttr("value", lvl)}${ssrIncludeBooleanAttr(Array.isArray(unref(filters).level) ? ssrLooseContain(unref(filters).level, lvl) : ssrLooseEqual(unref(filters).level, lvl)) ? " selected" : ""}>${ssrInterpolate(lvl)}. ${ssrInterpolate(unref(t)("gamification.leaderboard.level_suffix"))}</option>`);
|
||||
});
|
||||
_push(`<!--]--></select></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.min_xp"))}</label><input${ssrRenderAttr("value", unref(filters).min_xp)} type="number" min="0" placeholder="0" class="w-full bg-slate-700 border border-slate-600 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-xs font-medium text-slate-400 mb-1.5 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.sort_by"))}</label><select class="w-full bg-slate-700 border border-slate-600 rounded-lg px-3 py-2 text-sm text-white focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option value="total_xp"${ssrIncludeBooleanAttr(Array.isArray(unref(sortBy)) ? ssrLooseContain(unref(sortBy), "total_xp") : ssrLooseEqual(unref(sortBy), "total_xp")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.leaderboard.sort_xp"))}</option><option value="total_points"${ssrIncludeBooleanAttr(Array.isArray(unref(sortBy)) ? ssrLooseContain(unref(sortBy), "total_points") : ssrLooseEqual(unref(sortBy), "total_points")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.leaderboard.sort_points"))}</option><option value="social_points"${ssrIncludeBooleanAttr(Array.isArray(unref(sortBy)) ? ssrLooseContain(unref(sortBy), "social_points") : ssrLooseEqual(unref(sortBy), "social_points")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.leaderboard.sort_social"))}</option><option value="current_level"${ssrIncludeBooleanAttr(Array.isArray(unref(sortBy)) ? ssrLooseContain(unref(sortBy), "current_level") : ssrLooseEqual(unref(sortBy), "current_level")) ? " selected" : ""}>${ssrInterpolate(unref(t)("gamification.leaderboard.sort_level"))}</option></select></div></div><div class="flex items-center gap-3 mt-4 pt-4 border-t border-slate-700/50"><button class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-medium rounded-lg transition">${ssrInterpolate(unref(t)("gamification.leaderboard.filter"))}</button><button class="px-4 py-2 bg-slate-700 hover:bg-slate-600 text-slate-300 text-sm font-medium rounded-lg transition">${ssrInterpolate(unref(t)("gamification.leaderboard.reset"))}</button><button class="px-3 py-2 bg-slate-700 hover:bg-slate-600 text-slate-300 text-sm font-medium rounded-lg transition flex items-center gap-1.5"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">`);
|
||||
if (unref(sortOrder) === "desc") {
|
||||
_push(`<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"></path>`);
|
||||
} else {
|
||||
_push(`<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 4h13M3 8h9m-9 4h9m5-4v12m0 0l-4-4m4 4l4-4"></path>`);
|
||||
}
|
||||
_push(`</svg> ${ssrInterpolate(unref(sortOrder) === "desc" ? unref(t)("gamification.leaderboard.desc") : unref(t)("gamification.leaderboard.asc"))}</button><span class="text-xs text-slate-500 ml-auto">${ssrInterpolate(unref(totalCount))} ${ssrInterpolate(unref(t)("gamification.leaderboard.users_count"))}</span></div></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><div class="text-slate-400 flex items-center gap-3"><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg><span>${ssrInterpolate(unref(t)("gamification.leaderboard.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8"><p class="text-rose-400">${ssrInterpolate(unref(t)("gamification.leaderboard.load_error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline">${ssrInterpolate(unref(t)("gamification.leaderboard.retry"))}</button></div>`);
|
||||
} else if (unref(entries).length === 0) {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6"><p class="text-slate-400 text-center py-12">${ssrInterpolate(unref(t)("gamification.leaderboard.empty"))}</p></div>`);
|
||||
} else {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden"><div class="overflow-x-auto"><table class="w-full"><thead><tr class="border-b border-slate-700"><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider w-16">#</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_user"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_email"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_xp"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_level"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_points"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_social"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_penalty"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_restriction"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_discoveries"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_services"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_updated"))}</th><th class="text-right px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider">${ssrInterpolate(unref(t)("gamification.leaderboard.col_actions"))}</th></tr></thead><tbody class="divide-y divide-slate-700/50"><!--[-->`);
|
||||
ssrRenderList(unref(entries), (entry) => {
|
||||
_push(`<tr class="${ssrRenderClass([getRowClass(entry.rank), "hover:bg-slate-700/30 transition"])}"><td class="px-4 py-3"><span class="${ssrRenderClass([getRankBadgeClass(entry.rank), "inline-flex items-center justify-center w-8 h-8 rounded-full text-sm font-bold"])}">${ssrInterpolate(entry.rank)}</span></td><td class="px-4 py-3"><div class="flex items-center gap-2"><div class="w-8 h-8 rounded-full bg-gradient-to-br from-indigo-500 to-purple-600 flex items-center justify-center text-xs font-bold text-white flex-shrink-0">${ssrInterpolate(getInitials(entry.user_name))}</div><span class="text-sm font-medium text-white">${ssrInterpolate(entry.user_name)}</span></div></td><td class="px-4 py-3 text-sm text-slate-400 font-mono">${ssrInterpolate(entry.user_email || "—")}</td><td class="px-4 py-3"><div class="flex items-center gap-1.5"><svg class="w-4 h-4 text-amber-400" fill="currentColor" viewBox="0 0 20 20"><path d="M11.049 2.927c.3-.921 1.603-.921 1.902 0l1.519 4.674a1 1 0 00.95.69h4.915c.969 0 1.371 1.24.588 1.81l-3.976 2.888a1 1 0 00-.363 1.118l1.518 4.674c.3.922-.755 1.688-1.538 1.118l-3.976-2.888a1 1 0 00-1.176 0l-3.976 2.888c-.783.57-1.838-.197-1.538-1.118l1.518-4.674a1 1 0 00-.363-1.118l-3.976-2.888c-.784-.57-.38-1.81.588-1.81h4.914a1 1 0 00.951-.69l1.519-4.674z"></path></svg><span class="text-sm font-semibold text-white">${ssrInterpolate(unref(formatNumber)(entry.total_xp))}</span></div></td><td class="px-4 py-3"><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-indigo-500/10 text-indigo-400 border border-indigo-500/20">${ssrInterpolate(entry.current_level)}</span></td><td class="px-4 py-3 text-sm text-slate-300">${ssrInterpolate(unref(formatNumber)(entry.total_points))}</td><td class="px-4 py-3 text-sm text-slate-300">${ssrInterpolate(unref(formatNumber)(entry.social_points))}</td><td class="px-4 py-3">`);
|
||||
if (entry.penalty_points > 0) {
|
||||
_push(`<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-rose-500/10 text-rose-400 border border-rose-500/20"> -${ssrInterpolate(entry.penalty_points)}</span>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500">—</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3">`);
|
||||
if (entry.restriction_level > 0) {
|
||||
_push(`<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-amber-500/10 text-amber-400 border border-amber-500/20">${ssrInterpolate(restrictionLabel(entry.restriction_level))}</span>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500">—</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3 text-sm text-slate-300">${ssrInterpolate(entry.places_discovered)}</td><td class="px-4 py-3 text-sm text-slate-300">${ssrInterpolate(entry.services_submitted)}</td><td class="px-4 py-3 text-sm text-slate-500">${ssrInterpolate(entry.updated_at ? unref(formatDateTime)(entry.updated_at) : "—")}</td><td class="px-4 py-3 text-right">`);
|
||||
_push(ssrRenderComponent(_component_NuxtLink, {
|
||||
to: `/gamification/users/${entry.user_id}`,
|
||||
class: "inline-flex items-center gap-1.5 px-3 py-1.5 bg-indigo-600/10 hover:bg-indigo-600/20 text-indigo-400 text-xs font-medium rounded-lg transition"
|
||||
}, {
|
||||
default: withCtx((_, _push2, _parent2, _scopeId) => {
|
||||
if (_push2) {
|
||||
_push2(`${ssrInterpolate(unref(t)("gamification.leaderboard.details"))} <svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24"${_scopeId}><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"${_scopeId}></path></svg>`);
|
||||
} else {
|
||||
return [
|
||||
createTextVNode(toDisplayString(unref(t)("gamification.leaderboard.details")) + " ", 1),
|
||||
(openBlock(), createBlock("svg", {
|
||||
class: "w-3.5 h-3.5",
|
||||
fill: "none",
|
||||
stroke: "currentColor",
|
||||
viewBox: "0 0 24 24"
|
||||
}, [
|
||||
createVNode("path", {
|
||||
"stroke-linecap": "round",
|
||||
"stroke-linejoin": "round",
|
||||
"stroke-width": "2",
|
||||
d: "M9 5l7 7-7 7"
|
||||
})
|
||||
]))
|
||||
];
|
||||
}
|
||||
}),
|
||||
_: 2
|
||||
}, _parent));
|
||||
_push(`</td></tr>`);
|
||||
});
|
||||
_push(`<!--]--></tbody></table></div><div class="flex items-center justify-between px-4 py-3 border-t border-slate-700"><div class="flex items-center gap-2"><button${ssrIncludeBooleanAttr(unref(offset) === 0) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) === 0 ? "text-slate-600 cursor-not-allowed" : "text-slate-300 hover:bg-slate-700", "px-2.5 py-1.5 text-sm rounded-lg transition"])}"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 19l-7-7 7-7m8 14l-7-7 7-7"></path></svg></button><button${ssrIncludeBooleanAttr(unref(offset) === 0) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) === 0 ? "text-slate-600 cursor-not-allowed" : "text-slate-300 hover:bg-slate-700", "px-3 py-1.5 text-sm rounded-lg transition"])}">${ssrInterpolate(unref(t)("gamification.leaderboard.prev"))}</button></div><div class="flex items-center gap-3"><span class="text-sm text-slate-500">${ssrInterpolate(unref(offset) + 1)}–${ssrInterpolate(Math.min(unref(offset) + unref(limit), unref(totalCount)))} / ${ssrInterpolate(unref(totalCount))}</span><select class="bg-slate-700 border border-slate-600 rounded-lg px-2 py-1.5 text-xs text-slate-300 focus:ring-2 focus:ring-indigo-500 focus:border-transparent"><option${ssrRenderAttr("value", 25)}${ssrIncludeBooleanAttr(Array.isArray(unref(limit)) ? ssrLooseContain(unref(limit), 25) : ssrLooseEqual(unref(limit), 25)) ? " selected" : ""}>25 / ${ssrInterpolate(unref(t)("gamification.leaderboard.page"))}</option><option${ssrRenderAttr("value", 50)}${ssrIncludeBooleanAttr(Array.isArray(unref(limit)) ? ssrLooseContain(unref(limit), 50) : ssrLooseEqual(unref(limit), 50)) ? " selected" : ""}>50 / ${ssrInterpolate(unref(t)("gamification.leaderboard.page"))}</option><option${ssrRenderAttr("value", 100)}${ssrIncludeBooleanAttr(Array.isArray(unref(limit)) ? ssrLooseContain(unref(limit), 100) : ssrLooseEqual(unref(limit), 100)) ? " selected" : ""}>100 / ${ssrInterpolate(unref(t)("gamification.leaderboard.page"))}</option><option${ssrRenderAttr("value", 250)}${ssrIncludeBooleanAttr(Array.isArray(unref(limit)) ? ssrLooseContain(unref(limit), 250) : ssrLooseEqual(unref(limit), 250)) ? " selected" : ""}>250 / ${ssrInterpolate(unref(t)("gamification.leaderboard.page"))}</option></select></div><div class="flex items-center gap-2"><button${ssrIncludeBooleanAttr(unref(offset) + unref(limit) >= unref(totalCount)) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) + unref(limit) >= unref(totalCount) ? "text-slate-600 cursor-not-allowed" : "text-slate-300 hover:bg-slate-700", "px-3 py-1.5 text-sm rounded-lg transition"])}">${ssrInterpolate(unref(t)("gamification.leaderboard.next"))}</button><button${ssrIncludeBooleanAttr(unref(offset) + unref(limit) >= unref(totalCount)) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) + unref(limit) >= unref(totalCount) ? "text-slate-600 cursor-not-allowed" : "text-slate-300 hover:bg-slate-700", "px-2.5 py-1.5 text-sm rounded-lg transition"])}"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 5l7 7-7 7M5 5l7 7-7 7"></path></svg></button></div></div></div>`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/leaderboard.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=leaderboard-C-QWIlDh.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/leaderboard-C-QWIlDh.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/leaderboard-C-QWIlDh.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/leaderboard-C-QWIlDh.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/leaderboard-C-QWIlDh.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
119
frontend_admin/.nuxt/dist/server/_nuxt/ledger-CkE6BXLf.js
vendored
Normal file
119
frontend_admin/.nuxt/dist/server/_nuxt/ledger-CkE6BXLf.js
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
import { defineComponent, ref, reactive, computed, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderAttr, ssrRenderList, ssrRenderClass, ssrIncludeBooleanAttr } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "ledger",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const entries = ref([]);
|
||||
const total = ref(0);
|
||||
const offset = ref(0);
|
||||
const limit = ref(50);
|
||||
const toast = ref("");
|
||||
const filters = reactive({
|
||||
user_id: null,
|
||||
date_from: "",
|
||||
date_to: "",
|
||||
reason_search: ""
|
||||
});
|
||||
const currentPage = computed(() => Math.floor(offset.value / limit.value) + 1);
|
||||
const totalPages = computed(() => Math.max(1, Math.ceil(total.value / limit.value)));
|
||||
function formatDate(dateStr) {
|
||||
if (!dateStr) return "—";
|
||||
const d = new Date(dateStr);
|
||||
return d.toLocaleDateString("hu-HU", {
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit"
|
||||
});
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)} data-v-46ba4a43><div class="mb-8" data-v-46ba4a43><h1 class="text-2xl font-bold text-white" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.title"))}</h1><p class="text-slate-400 mt-1" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.subtitle"))}</p></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20" data-v-46ba4a43><div class="text-slate-400 flex items-center gap-3" data-v-46ba4a43><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-46ba4a43><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-46ba4a43></path></svg><span data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-46ba4a43><p class="text-rose-400" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.load_error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[--><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 mb-6" data-v-46ba4a43><div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-4" data-v-46ba4a43><div data-v-46ba4a43><label class="block text-xs font-medium text-slate-400 uppercase tracking-wider mb-1.5" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.filter_user_id"))}</label><input${ssrRenderAttr("value", unref(filters).user_id)} type="number" min="1"${ssrRenderAttr("placeholder", unref(t)("gamification.ledger.user_id_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 text-sm" data-v-46ba4a43></div><div data-v-46ba4a43><label class="block text-xs font-medium text-slate-400 uppercase tracking-wider mb-1.5" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.filter_date_from"))}</label><input${ssrRenderAttr("value", unref(filters).date_from)} type="date" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 text-sm" data-v-46ba4a43></div><div data-v-46ba4a43><label class="block text-xs font-medium text-slate-400 uppercase tracking-wider mb-1.5" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.filter_date_to"))}</label><input${ssrRenderAttr("value", unref(filters).date_to)} type="date" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 text-sm" data-v-46ba4a43></div><div data-v-46ba4a43><label class="block text-xs font-medium text-slate-400 uppercase tracking-wider mb-1.5" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.filter_reason"))}</label><input${ssrRenderAttr("value", unref(filters).reason_search)} type="text"${ssrRenderAttr("placeholder", unref(t)("gamification.ledger.reason_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 text-sm" data-v-46ba4a43></div><div class="flex items-end gap-2" data-v-46ba4a43><button class="px-4 py-2 bg-amber-600 hover:bg-amber-500 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-46ba4a43><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-46ba4a43><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z" data-v-46ba4a43></path></svg> ${ssrInterpolate(unref(t)("gamification.ledger.search"))}</button><button class="px-4 py-2 bg-slate-700 hover:bg-slate-600 text-slate-300 rounded-lg text-sm font-medium transition" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.clear"))}</button><button class="px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg text-sm font-medium transition flex items-center gap-2 ml-auto"${ssrRenderAttr("title", unref(t)("gamification.ledger.csv_download"))} data-v-46ba4a43><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-46ba4a43><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" data-v-46ba4a43></path></svg> ${ssrInterpolate(unref(t)("gamification.ledger.csv"))}</button></div></div></div>`);
|
||||
if (unref(entries).length === 0) {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-12 text-center" data-v-46ba4a43><svg class="w-12 h-12 mx-auto text-slate-600 mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-46ba4a43><path stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" data-v-46ba4a43></path></svg><p class="text-slate-400 text-sm" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.no_results"))}</p><p class="text-slate-500 text-xs mt-1" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.no_results_hint"))}</p></div>`);
|
||||
} else {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden" data-v-46ba4a43><div class="overflow-x-auto" data-v-46ba4a43><table class="w-full" data-v-46ba4a43><thead data-v-46ba4a43><tr class="border-b border-slate-700" data-v-46ba4a43><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_id"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_user"))}</th><th class="text-right px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_points"))}</th><th class="text-right px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_penalty"))}</th><th class="text-right px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_xp"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_reason"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_source"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.col_date"))}</th></tr></thead><tbody class="divide-y divide-slate-700/50" data-v-46ba4a43><!--[-->`);
|
||||
ssrRenderList(unref(entries), (entry) => {
|
||||
_push(`<tr class="hover:bg-slate-700/30 transition" data-v-46ba4a43><td class="px-4 py-3 text-sm text-slate-400 font-mono" data-v-46ba4a43>${ssrInterpolate(entry.id)}</td><td class="px-4 py-3" data-v-46ba4a43><div class="flex items-center gap-2" data-v-46ba4a43><span class="text-sm text-slate-300" data-v-46ba4a43>${ssrInterpolate(entry.user_name)}</span><span class="text-xs text-slate-500 font-mono" data-v-46ba4a43>#${ssrInterpolate(entry.user_id)}</span></div></td><td class="px-4 py-3 text-right" data-v-46ba4a43><span class="${ssrRenderClass([entry.points > 0 ? "text-emerald-400" : entry.points < 0 ? "text-rose-400" : "text-slate-400", "text-sm font-semibold"])}" data-v-46ba4a43>${ssrInterpolate(entry.points > 0 ? "+" : "")}${ssrInterpolate(entry.points)}</span></td><td class="px-4 py-3 text-right" data-v-46ba4a43>`);
|
||||
if (entry.penalty_change) {
|
||||
_push(`<span class="text-sm font-semibold text-rose-400" data-v-46ba4a43> +${ssrInterpolate(entry.penalty_change)}</span>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500" data-v-46ba4a43>—</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3 text-right" data-v-46ba4a43>`);
|
||||
if (entry.xp) {
|
||||
_push(`<span class="text-sm text-cyan-400 font-mono" data-v-46ba4a43>${ssrInterpolate(entry.xp)}</span>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500" data-v-46ba4a43>—</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3 max-w-xs" data-v-46ba4a43><p class="text-sm text-slate-300 truncate"${ssrRenderAttr("title", entry.reason)} data-v-46ba4a43>${ssrInterpolate(entry.reason)}</p></td><td class="px-4 py-3" data-v-46ba4a43>`);
|
||||
if (entry.source_type) {
|
||||
_push(`<div class="flex items-center gap-1.5" data-v-46ba4a43><span class="inline-flex items-center px-2 py-0.5 rounded text-xs font-medium bg-slate-700 text-slate-300" data-v-46ba4a43>${ssrInterpolate(entry.source_type)}</span>`);
|
||||
if (entry.source_id) {
|
||||
_push(`<span class="text-xs text-slate-500 font-mono" data-v-46ba4a43>#${ssrInterpolate(entry.source_id)}</span>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
} else {
|
||||
_push(`<span class="text-sm text-slate-500" data-v-46ba4a43>—</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3 text-sm text-slate-400 whitespace-nowrap" data-v-46ba4a43>${ssrInterpolate(formatDate(entry.created_at))}</td></tr>`);
|
||||
});
|
||||
_push(`<!--]--></tbody></table></div><div class="flex items-center justify-between px-4 py-3 border-t border-slate-700" data-v-46ba4a43><p class="text-sm text-slate-400" data-v-46ba4a43>${ssrInterpolate(unref(total))} ${ssrInterpolate(unref(t)("gamification.ledger.total_results"))} ${ssrInterpolate(unref(entries).length)} ${ssrInterpolate(unref(t)("gamification.ledger.shown"))} `);
|
||||
if (unref(filters).user_id || unref(filters).date_from || unref(filters).date_to || unref(filters).reason_search) {
|
||||
_push(`<span class="text-slate-500" data-v-46ba4a43> (${ssrInterpolate(unref(t)("gamification.ledger.filtered"))}) </span>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</p><div class="flex items-center gap-2" data-v-46ba4a43><button${ssrIncludeBooleanAttr(unref(offset) === 0) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) === 0 ? "text-slate-600" : "text-slate-300 hover:bg-slate-700 hover:text-white", "px-3 py-1.5 rounded-lg text-sm font-medium transition disabled:opacity-30 disabled:cursor-not-allowed"])}" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.prev"))}</button><span class="text-sm text-slate-400 px-2" data-v-46ba4a43>${ssrInterpolate(unref(currentPage))} / ${ssrInterpolate(unref(totalPages))}</span><button${ssrIncludeBooleanAttr(unref(offset) + unref(limit) >= unref(total)) ? " disabled" : ""} class="${ssrRenderClass([unref(offset) + unref(limit) >= unref(total) ? "text-slate-600" : "text-slate-300 hover:bg-slate-700 hover:text-white", "px-3 py-1.5 rounded-lg text-sm font-medium transition disabled:opacity-30 disabled:cursor-not-allowed"])}" data-v-46ba4a43>${ssrInterpolate(unref(t)("gamification.ledger.next"))}</button></div></div></div>`);
|
||||
}
|
||||
_push(`<!--]-->`);
|
||||
}
|
||||
if (unref(toast)) {
|
||||
_push(`<div class="fixed bottom-6 right-6 z-50 bg-emerald-600 text-white px-4 py-3 rounded-lg shadow-lg text-sm flex items-center gap-2 animate-slide-up" data-v-46ba4a43><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-46ba4a43><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" data-v-46ba4a43></path></svg> ${ssrInterpolate(unref(toast))}</div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/ledger.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const ledger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-46ba4a43"]]);
|
||||
export {
|
||||
ledger as default
|
||||
};
|
||||
//# sourceMappingURL=ledger-CkE6BXLf.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-CkE6BXLf.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-CkE6BXLf.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-CkE6BXLf.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-CkE6BXLf.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
5
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles-1.mjs-D0UQlchO.js
vendored
Normal file
5
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles-1.mjs-D0UQlchO.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
const ledger_vue_vue_type_style_index_0_scoped_46ba4a43_lang = ".animate-slide-up[data-v-46ba4a43]{animation:slideUp-46ba4a43 .3s ease-out}@keyframes slideUp-46ba4a43{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}";
|
||||
export {
|
||||
ledger_vue_vue_type_style_index_0_scoped_46ba4a43_lang as default
|
||||
};
|
||||
//# sourceMappingURL=ledger-styles-1.mjs-D0UQlchO.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles-1.mjs-D0UQlchO.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles-1.mjs-D0UQlchO.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"ledger-styles-1.mjs-D0UQlchO.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles-1.mjs-D0UQlchO.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles-1.mjs-D0UQlchO.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"ledger-styles-1.mjs-D0UQlchO.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
4
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles.C-WKuu1_.mjs
vendored
Normal file
4
frontend_admin/.nuxt/dist/server/_nuxt/ledger-styles.C-WKuu1_.mjs
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import style_0 from "./ledger-styles-1.mjs-D0UQlchO.js";
|
||||
export default [
|
||||
style_0
|
||||
]
|
||||
107
frontend_admin/.nuxt/dist/server/_nuxt/levels-D2gwg9KO.js
vendored
Normal file
107
frontend_admin/.nuxt/dist/server/_nuxt/levels-D2gwg9KO.js
vendored
Normal file
@@ -0,0 +1,107 @@
|
||||
import { defineComponent, ref, reactive, computed, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "levels",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const saving = ref(false);
|
||||
const levels2 = ref([]);
|
||||
const showModal = ref(false);
|
||||
const editingLevel = ref(null);
|
||||
const formError = ref("");
|
||||
const form = reactive({
|
||||
level_number: 1,
|
||||
rank_name: "",
|
||||
min_points: 0,
|
||||
is_penalty: false
|
||||
});
|
||||
const sortedLevels = computed(() => {
|
||||
return [...levels2.value].sort((a, b) => a.level_number - b.level_number);
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)} data-v-5fa877fc><div class="mb-8" data-v-5fa877fc><h1 class="text-2xl font-bold text-white" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.title"))}</h1><p class="text-slate-400 mt-1" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.subtitle"))}</p></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20" data-v-5fa877fc><div class="text-slate-400 flex items-center gap-3" data-v-5fa877fc><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5fa877fc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-5fa877fc></path></svg><span data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-5fa877fc><p class="text-rose-400" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.load_error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[--><div class="mb-6 flex items-center justify-between" data-v-5fa877fc><div data-v-5fa877fc></div><button class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-5fa877fc><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5fa877fc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4" data-v-5fa877fc></path></svg> ${ssrInterpolate(unref(t)("gamification.levels.create"))}</button></div><div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden mb-8" data-v-5fa877fc><div class="overflow-x-auto" data-v-5fa877fc><table class="w-full" data-v-5fa877fc><thead data-v-5fa877fc><tr class="border-b border-slate-700" data-v-5fa877fc><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.col_level"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.col_rank"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.col_min_points"))}</th><th class="text-left px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.col_type"))}</th><th class="text-right px-4 py-3 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.col_actions"))}</th></tr></thead><tbody class="divide-y divide-slate-700/50" data-v-5fa877fc><!--[-->`);
|
||||
ssrRenderList(unref(levels2), (level) => {
|
||||
_push(`<tr class="hover:bg-slate-700/30 transition" data-v-5fa877fc><td class="px-4 py-3" data-v-5fa877fc><span class="inline-flex items-center justify-center w-8 h-8 rounded-lg bg-indigo-500/10 text-indigo-400 text-sm font-bold" data-v-5fa877fc>${ssrInterpolate(level.level_number)}</span></td><td class="px-4 py-3" data-v-5fa877fc><span class="text-sm font-medium text-white" data-v-5fa877fc>${ssrInterpolate(level.rank_name)}</span></td><td class="px-4 py-3 text-sm text-slate-300" data-v-5fa877fc>${ssrInterpolate(level.min_points.toLocaleString())}</td><td class="px-4 py-3" data-v-5fa877fc>`);
|
||||
if (level.is_penalty) {
|
||||
_push(`<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-rose-500/10 text-rose-400 border border-rose-500/20" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.penalty"))}</span>`);
|
||||
} else {
|
||||
_push(`<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-emerald-500/10 text-emerald-400 border border-emerald-500/20" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.normal"))}</span>`);
|
||||
}
|
||||
_push(`</td><td class="px-4 py-3 text-right" data-v-5fa877fc><button class="inline-flex items-center gap-1.5 px-3 py-1.5 bg-indigo-600/10 hover:bg-indigo-600/20 text-indigo-400 text-xs font-medium rounded-lg transition" data-v-5fa877fc><svg class="w-3.5 h-3.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-5fa877fc><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" data-v-5fa877fc></path></svg> ${ssrInterpolate(unref(t)("gamification.levels.edit"))}</button></td></tr>`);
|
||||
});
|
||||
_push(`<!--]-->`);
|
||||
if (unref(levels2).length === 0) {
|
||||
_push(`<tr data-v-5fa877fc><td colspan="5" class="px-4 py-12 text-center text-slate-500 text-sm" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.no_levels"))}</td></tr>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</tbody></table></div></div><div class="bg-slate-800 rounded-xl border border-slate-700 p-6" data-v-5fa877fc><h2 class="text-lg font-semibold text-white mb-4" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.tree_diagram"))}</h2>`);
|
||||
if (unref(levels2).length === 0) {
|
||||
_push(`<div class="text-sm text-slate-500 text-center py-8" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.no_tree"))}</div>`);
|
||||
} else {
|
||||
_push(`<div class="flex flex-wrap gap-3" data-v-5fa877fc><!--[-->`);
|
||||
ssrRenderList(unref(sortedLevels), (level) => {
|
||||
_push(`<div class="${ssrRenderClass([level.is_penalty ? "bg-rose-500/5 border-rose-500/20" : "bg-emerald-500/5 border-emerald-500/20", "flex items-center gap-2 px-4 py-2 rounded-lg border transition"])}" data-v-5fa877fc><span class="${ssrRenderClass([level.is_penalty ? "text-rose-400" : "text-emerald-400", "text-sm font-bold"])}" data-v-5fa877fc> Lv.${ssrInterpolate(level.level_number)}</span><span class="text-xs text-slate-400" data-v-5fa877fc>${ssrInterpolate(level.rank_name)}</span>`);
|
||||
if (!level.is_penalty) {
|
||||
_push(`<span class="text-xs text-slate-500" data-v-5fa877fc>(${ssrInterpolate(level.min_points.toLocaleString())} pts)</span>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
});
|
||||
_push(`<!--]--></div>`);
|
||||
}
|
||||
_push(`</div><!--]-->`);
|
||||
}
|
||||
if (unref(showModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60" data-v-5fa877fc><div class="bg-slate-800 rounded-xl border border-slate-700 w-full max-w-md mx-4 p-6" data-v-5fa877fc><h3 class="text-lg font-semibold text-white mb-6" data-v-5fa877fc>${ssrInterpolate(unref(editingLevel) ? unref(t)("gamification.levels.edit_title") : unref(t)("gamification.levels.create_title"))}</h3><div class="space-y-4" data-v-5fa877fc><div data-v-5fa877fc><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.form_level_number"))}</label><input${ssrRenderAttr("value", unref(form).level_number)} type="number" min="1" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50" data-v-5fa877fc></div><div data-v-5fa877fc><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.form_rank_name"))}</label><input${ssrRenderAttr("value", unref(form).rank_name)} type="text" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50" data-v-5fa877fc></div><div data-v-5fa877fc><label class="block text-sm font-medium text-slate-300 mb-1" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.form_min_points"))}</label><input${ssrRenderAttr("value", unref(form).min_points)} type="number" min="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500/50" data-v-5fa877fc></div><div class="flex items-center gap-2" data-v-5fa877fc><input${ssrIncludeBooleanAttr(Array.isArray(unref(form).is_penalty) ? ssrLooseContain(unref(form).is_penalty, null) : unref(form).is_penalty) ? " checked" : ""} type="checkbox" id="is_penalty" class="rounded bg-slate-700 border-slate-600 text-indigo-600 focus:ring-indigo-500" data-v-5fa877fc><label for="is_penalty" class="text-sm text-slate-300" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.form_is_penalty"))}</label></div></div>`);
|
||||
if (unref(formError)) {
|
||||
_push(`<div class="mt-4 bg-rose-500/10 border border-rose-500/30 rounded-lg p-3" data-v-5fa877fc><p class="text-sm text-rose-400" data-v-5fa877fc>${ssrInterpolate(unref(formError))}</p></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="flex items-center justify-end gap-3 mt-6" data-v-5fa877fc><button class="px-4 py-2 bg-slate-700 hover:bg-slate-600 text-slate-300 text-sm font-medium rounded-lg transition" data-v-5fa877fc>${ssrInterpolate(unref(t)("gamification.levels.cancel"))}</button><button${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white text-sm font-medium rounded-lg transition" data-v-5fa877fc>${ssrInterpolate(unref(saving) ? unref(t)("gamification.levels.saving") : unref(t)("gamification.levels.save"))}</button></div></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/levels.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const levels = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-5fa877fc"]]);
|
||||
export {
|
||||
levels as default
|
||||
};
|
||||
//# sourceMappingURL=levels-D2gwg9KO.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-D2gwg9KO.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-D2gwg9KO.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-D2gwg9KO.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-D2gwg9KO.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
5
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles-1.mjs-qdUJ_3DL.js
vendored
Normal file
5
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles-1.mjs-qdUJ_3DL.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
const levels_vue_vue_type_style_index_0_scoped_5fa877fc_lang = ".animate-slide-up[data-v-5fa877fc]{animation:slideUp-5fa877fc .3s ease-out}@keyframes slideUp-5fa877fc{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}";
|
||||
export {
|
||||
levels_vue_vue_type_style_index_0_scoped_5fa877fc_lang as default
|
||||
};
|
||||
//# sourceMappingURL=levels-styles-1.mjs-qdUJ_3DL.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles-1.mjs-qdUJ_3DL.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles-1.mjs-qdUJ_3DL.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"levels-styles-1.mjs-qdUJ_3DL.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles-1.mjs-qdUJ_3DL.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles-1.mjs-qdUJ_3DL.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"levels-styles-1.mjs-qdUJ_3DL.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
4
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles.DHsDOMqa.mjs
vendored
Normal file
4
frontend_admin/.nuxt/dist/server/_nuxt/levels-styles.DHsDOMqa.mjs
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import style_0 from "./levels-styles-1.mjs-qdUJ_3DL.js";
|
||||
export default [
|
||||
style_0
|
||||
]
|
||||
129
frontend_admin/.nuxt/dist/server/_nuxt/parameters-Clxz_NnY.js
vendored
Normal file
129
frontend_admin/.nuxt/dist/server/_nuxt/parameters-Clxz_NnY.js
vendored
Normal file
@@ -0,0 +1,129 @@
|
||||
import { defineComponent, ref, computed, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderAttr, ssrRenderClass, ssrIncludeBooleanAttr } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "parameters",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const saving = ref(false);
|
||||
const params = ref([]);
|
||||
const showModal = ref(false);
|
||||
const editingParam = ref(null);
|
||||
const editValue = ref("");
|
||||
const formError = ref("");
|
||||
const toast = ref("");
|
||||
const isJsonValue = computed(() => {
|
||||
if (!editValue.value) return false;
|
||||
const trimmed = editValue.value.trim();
|
||||
return trimmed.startsWith("{") && trimmed.endsWith("}") || trimmed.startsWith("[") && trimmed.endsWith("]");
|
||||
});
|
||||
function formatValue(value) {
|
||||
if (value === null || value === void 0) return "—";
|
||||
if (typeof value === "object") {
|
||||
try {
|
||||
return JSON.stringify(value);
|
||||
} catch {
|
||||
return String(value);
|
||||
}
|
||||
}
|
||||
return String(value);
|
||||
}
|
||||
function truncateValue(val, maxLen) {
|
||||
if (val.length <= maxLen) return val;
|
||||
return val.substring(0, maxLen) + "...";
|
||||
}
|
||||
function scopeBadgeClass(scope) {
|
||||
switch (scope?.toLowerCase()) {
|
||||
case "global":
|
||||
return "bg-emerald-500/10 text-emerald-400";
|
||||
case "country":
|
||||
return "bg-blue-500/10 text-blue-400";
|
||||
case "region":
|
||||
return "bg-violet-500/10 text-violet-400";
|
||||
case "user":
|
||||
return "bg-amber-500/10 text-amber-400";
|
||||
default:
|
||||
return "bg-slate-500/10 text-slate-400";
|
||||
}
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)} data-v-8222d5f7><div class="mb-8" data-v-8222d5f7><h1 class="text-2xl font-bold text-white" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.title"))}</h1><p class="text-slate-400 mt-1" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.subtitle"))}</p></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20" data-v-8222d5f7><div class="text-slate-400 flex items-center gap-3" data-v-8222d5f7><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-8222d5f7><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-8222d5f7></path></svg><span data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-8222d5f7><p class="text-rose-400" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.load_error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden" data-v-8222d5f7><table class="w-full" data-v-8222d5f7><thead data-v-8222d5f7><tr class="border-b border-slate-700" data-v-8222d5f7><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.col_key"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.col_value"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.col_category"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.col_scope"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.col_scope_id"))}</th><th class="text-right px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.col_actions"))}</th></tr></thead><tbody class="divide-y divide-slate-700/50" data-v-8222d5f7><!--[-->`);
|
||||
ssrRenderList(unref(params), (param) => {
|
||||
_push(`<tr class="hover:bg-slate-700/30 transition" data-v-8222d5f7><td class="px-6 py-4" data-v-8222d5f7><code class="text-sm font-mono text-amber-300 bg-amber-500/10 px-2 py-0.5 rounded" data-v-8222d5f7>${ssrInterpolate(param.key)}</code></td><td class="px-6 py-4" data-v-8222d5f7><span class="text-sm text-slate-300 max-w-xs truncate block font-mono"${ssrRenderAttr("title", formatValue(param.value))} data-v-8222d5f7>${ssrInterpolate(truncateValue(formatValue(param.value), 60))}</span></td><td class="px-6 py-4" data-v-8222d5f7><span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-slate-500/10 text-slate-400" data-v-8222d5f7>${ssrInterpolate(param.category || "—")}</span></td><td class="px-6 py-4" data-v-8222d5f7><span class="${ssrRenderClass([scopeBadgeClass(param.scope_level), "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"])}" data-v-8222d5f7>${ssrInterpolate(param.scope_level)}</span></td><td class="px-6 py-4 text-sm text-slate-400" data-v-8222d5f7>${ssrInterpolate(param.scope_id || "—")}</td><td class="px-6 py-4 text-right" data-v-8222d5f7><button class="p-1.5 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition"${ssrRenderAttr("title", unref(t)("gamification.params.edit"))} data-v-8222d5f7><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-8222d5f7><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" data-v-8222d5f7></path></svg></button></td></tr>`);
|
||||
});
|
||||
_push(`<!--]-->`);
|
||||
if (unref(params).length === 0) {
|
||||
_push(`<tr data-v-8222d5f7><td colspan="6" class="px-6 py-12 text-center text-sm text-slate-500" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.empty"))}</td></tr>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</tbody></table></div>`);
|
||||
}
|
||||
if (unref(showModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm" data-v-8222d5f7><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 w-full max-w-lg mx-4 shadow-2xl" data-v-8222d5f7><h2 class="text-lg font-semibold text-white mb-2" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.edit_title"))}</h2><p class="text-sm text-slate-400 mb-6" data-v-8222d5f7><code class="text-amber-300 font-mono text-xs" data-v-8222d5f7>${ssrInterpolate(unref(editingParam)?.key)}</code></p><form class="space-y-4" data-v-8222d5f7><div data-v-8222d5f7><label class="block text-sm font-medium text-slate-300 mb-1" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.value_label"))}</label><textarea rows="6" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white font-mono text-sm placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 resize-none" spellcheck="false"${ssrRenderAttr("placeholder", unref(t)("gamification.params.value_placeholder"))} data-v-8222d5f7>${ssrInterpolate(unref(editValue))}</textarea>`);
|
||||
if (unref(isJsonValue)) {
|
||||
_push(`<p class="mt-1 text-xs text-emerald-400" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.json_detected"))}</p>`);
|
||||
} else {
|
||||
_push(`<p class="mt-1 text-xs text-slate-500" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.text_value"))}</p>`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
if (unref(formError)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-lg p-3" data-v-8222d5f7><p class="text-sm text-rose-400" data-v-8222d5f7>${ssrInterpolate(unref(formError))}</p></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="flex justify-end gap-3 pt-2" data-v-8222d5f7><button type="button" class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-8222d5f7>${ssrInterpolate(unref(t)("gamification.params.cancel"))}</button><button type="submit"${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-amber-600 hover:bg-amber-500 disabled:bg-amber-600/50 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-8222d5f7>`);
|
||||
if (unref(saving)) {
|
||||
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-8222d5f7><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-8222d5f7></path></svg>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(` ${ssrInterpolate(unref(saving) ? unref(t)("gamification.params.saving") : unref(t)("gamification.params.save"))}</button></div></form></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (unref(toast)) {
|
||||
_push(`<div class="fixed bottom-6 right-6 z-50 bg-emerald-600 text-white px-4 py-3 rounded-lg shadow-lg text-sm flex items-center gap-2 animate-slide-up" data-v-8222d5f7><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-8222d5f7><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" data-v-8222d5f7></path></svg> ${ssrInterpolate(unref(toast))}</div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/parameters.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const parameters = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8222d5f7"]]);
|
||||
export {
|
||||
parameters as default
|
||||
};
|
||||
//# sourceMappingURL=parameters-Clxz_NnY.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-Clxz_NnY.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-Clxz_NnY.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-Clxz_NnY.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-Clxz_NnY.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
5
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles-1.mjs-CRYExZ_d.js
vendored
Normal file
5
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles-1.mjs-CRYExZ_d.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
const parameters_vue_vue_type_style_index_0_scoped_8222d5f7_lang = ".animate-slide-up[data-v-8222d5f7]{animation:slideUp-8222d5f7 .3s ease-out}@keyframes slideUp-8222d5f7{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}";
|
||||
export {
|
||||
parameters_vue_vue_type_style_index_0_scoped_8222d5f7_lang as default
|
||||
};
|
||||
//# sourceMappingURL=parameters-styles-1.mjs-CRYExZ_d.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles-1.mjs-CRYExZ_d.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles-1.mjs-CRYExZ_d.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"parameters-styles-1.mjs-CRYExZ_d.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles-1.mjs-CRYExZ_d.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles-1.mjs-CRYExZ_d.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"parameters-styles-1.mjs-CRYExZ_d.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
4
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles.BGHWwS0S.mjs
vendored
Normal file
4
frontend_admin/.nuxt/dist/server/_nuxt/parameters-styles.BGHWwS0S.mjs
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import style_0 from "./parameters-styles-1.mjs-CRYExZ_d.js";
|
||||
export default [
|
||||
style_0
|
||||
]
|
||||
101
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-C1ou37W0.js
vendored
Normal file
101
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-C1ou37W0.js
vendored
Normal file
@@ -0,0 +1,101 @@
|
||||
import { defineComponent, ref, reactive, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "point-rules",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const rules = ref([]);
|
||||
const showModal = ref(false);
|
||||
const showDeleteModal = ref(false);
|
||||
const editingRule = ref(null);
|
||||
const deletingRule = ref(null);
|
||||
const saving = ref(false);
|
||||
const formError = ref("");
|
||||
const toast = ref("");
|
||||
const form = reactive({
|
||||
action_key: "",
|
||||
points: 0,
|
||||
description: "",
|
||||
is_active: true
|
||||
});
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)} data-v-c5f07ccf><div class="mb-8" data-v-c5f07ccf><h1 class="text-2xl font-bold text-white" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.title"))}</h1><p class="text-slate-400 mt-1" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.subtitle"))}</p></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20" data-v-c5f07ccf><div class="text-slate-400 flex items-center gap-3" data-v-c5f07ccf><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c5f07ccf><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-c5f07ccf></path></svg><span data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8" data-v-c5f07ccf><p class="text-rose-400" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.load_error"))}</p><button class="mt-3 text-sm text-rose-300 hover:text-rose-200 underline" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[--><div class="mb-6 flex justify-end" data-v-c5f07ccf><button class="px-4 py-2 bg-emerald-600 hover:bg-emerald-500 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-c5f07ccf><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c5f07ccf><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4" data-v-c5f07ccf></path></svg> ${ssrInterpolate(unref(t)("gamification.point_rules.create_btn"))}</button></div><div class="bg-slate-800 rounded-xl border border-slate-700 overflow-hidden" data-v-c5f07ccf><table class="w-full" data-v-c5f07ccf><thead data-v-c5f07ccf><tr class="border-b border-slate-700" data-v-c5f07ccf><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.col_id"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.col_action_key"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.col_points"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.col_description"))}</th><th class="text-left px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.col_status"))}</th><th class="text-right px-6 py-4 text-xs font-medium text-slate-400 uppercase tracking-wider" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.col_actions"))}</th></tr></thead><tbody class="divide-y divide-slate-700/50" data-v-c5f07ccf><!--[-->`);
|
||||
ssrRenderList(unref(rules), (rule) => {
|
||||
_push(`<tr class="hover:bg-slate-700/30 transition" data-v-c5f07ccf><td class="px-6 py-4 text-sm text-slate-400" data-v-c5f07ccf>${ssrInterpolate(rule.id)}</td><td class="px-6 py-4" data-v-c5f07ccf><code class="text-sm font-mono text-amber-300 bg-amber-500/10 px-2 py-0.5 rounded" data-v-c5f07ccf>${ssrInterpolate(rule.action_key)}</code></td><td class="px-6 py-4" data-v-c5f07ccf><span class="${ssrRenderClass([rule.points >= 0 ? "text-emerald-400" : "text-rose-400", "text-sm font-semibold"])}" data-v-c5f07ccf>${ssrInterpolate(rule.points >= 0 ? "+" : "")}${ssrInterpolate(rule.points)}</span></td><td class="px-6 py-4 text-sm text-slate-300 max-w-xs truncate" data-v-c5f07ccf>${ssrInterpolate(rule.description || "—")}</td><td class="px-6 py-4" data-v-c5f07ccf><span class="${ssrRenderClass([rule.is_active ? "bg-emerald-500/10 text-emerald-400" : "bg-slate-500/10 text-slate-400", "inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium"])}" data-v-c5f07ccf>${ssrInterpolate(rule.is_active ? unref(t)("gamification.point_rules.active") : unref(t)("gamification.point_rules.inactive"))}</span></td><td class="px-6 py-4 text-right" data-v-c5f07ccf><div class="flex items-center justify-end gap-2" data-v-c5f07ccf><button class="p-1.5 rounded-lg text-slate-400 hover:text-white hover:bg-slate-700 transition"${ssrRenderAttr("title", unref(t)("gamification.point_rules.edit"))} data-v-c5f07ccf><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c5f07ccf><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z" data-v-c5f07ccf></path></svg></button><button class="p-1.5 rounded-lg text-slate-400 hover:text-rose-400 hover:bg-rose-500/10 transition"${ssrRenderAttr("title", unref(t)("gamification.point_rules.delete_title"))} data-v-c5f07ccf><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c5f07ccf><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16" data-v-c5f07ccf></path></svg></button></div></td></tr>`);
|
||||
});
|
||||
_push(`<!--]-->`);
|
||||
if (unref(rules).length === 0) {
|
||||
_push(`<tr data-v-c5f07ccf><td colspan="6" class="px-6 py-12 text-center text-sm text-slate-500" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.empty"))}</td></tr>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</tbody></table></div><!--]-->`);
|
||||
}
|
||||
if (unref(showModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm" data-v-c5f07ccf><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 w-full max-w-lg mx-4 shadow-2xl" data-v-c5f07ccf><h2 class="text-lg font-semibold text-white mb-6" data-v-c5f07ccf>${ssrInterpolate(unref(editingRule) ? unref(t)("gamification.point_rules.edit_title") : unref(t)("gamification.point_rules.create_title"))}</h2><form class="space-y-4" data-v-c5f07ccf><div data-v-c5f07ccf><label class="block text-sm font-medium text-slate-300 mb-1" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.action_key_label"))}</label><input${ssrRenderAttr("value", unref(form).action_key)} type="text" required maxlength="100"${ssrRenderAttr("placeholder", unref(t)("gamification.point_rules.action_key_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 text-sm" data-v-c5f07ccf></div><div data-v-c5f07ccf><label class="block text-sm font-medium text-slate-300 mb-1" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.points_label"))}</label><input${ssrRenderAttr("value", unref(form).points)} type="number" required min="-10000" max="10000" placeholder="0" class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 text-sm" data-v-c5f07ccf></div><div data-v-c5f07ccf><label class="block text-sm font-medium text-slate-300 mb-1" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.description_label"))}</label><textarea rows="3"${ssrRenderAttr("placeholder", unref(t)("gamification.point_rules.description_placeholder"))} class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-amber-500/50 focus:border-amber-500 text-sm resize-none" data-v-c5f07ccf>${ssrInterpolate(unref(form).description)}</textarea></div><div class="flex items-center gap-3" data-v-c5f07ccf><input${ssrIncludeBooleanAttr(Array.isArray(unref(form).is_active) ? ssrLooseContain(unref(form).is_active, null) : unref(form).is_active) ? " checked" : ""} type="checkbox" id="is_active" class="w-4 h-4 rounded bg-slate-700 border-slate-600 text-amber-500 focus:ring-amber-500/50" data-v-c5f07ccf><label for="is_active" class="text-sm text-slate-300" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.active_label"))}</label></div>`);
|
||||
if (unref(formError)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-lg p-3" data-v-c5f07ccf><p class="text-sm text-rose-400" data-v-c5f07ccf>${ssrInterpolate(unref(formError))}</p></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="flex justify-end gap-3 pt-2" data-v-c5f07ccf><button type="button" class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.cancel"))}</button><button type="submit"${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-amber-600 hover:bg-amber-500 disabled:bg-amber-600/50 text-white rounded-lg text-sm font-medium transition flex items-center gap-2" data-v-c5f07ccf>`);
|
||||
if (unref(saving)) {
|
||||
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c5f07ccf><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" data-v-c5f07ccf></path></svg>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(` ${ssrInterpolate(unref(saving) ? unref(t)("gamification.point_rules.saving") : unref(t)("gamification.point_rules.save"))}</button></div></form></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (unref(showDeleteModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm" data-v-c5f07ccf><div class="bg-slate-800 rounded-xl border border-slate-700 p-6 w-full max-w-md mx-4 shadow-2xl" data-v-c5f07ccf><h2 class="text-lg font-semibold text-white mb-2" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.delete_confirm_title"))}</h2><p class="text-sm text-slate-400 mb-6" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.delete_confirm_body", { action_key: unref(deletingRule)?.action_key }))}</p><div class="flex justify-end gap-3" data-v-c5f07ccf><button class="px-4 py-2 text-sm text-slate-400 hover:text-white transition" data-v-c5f07ccf>${ssrInterpolate(unref(t)("gamification.point_rules.cancel"))}</button><button${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-rose-600 hover:bg-rose-500 disabled:bg-rose-600/50 text-white rounded-lg text-sm font-medium transition" data-v-c5f07ccf>${ssrInterpolate(unref(saving) ? unref(t)("gamification.point_rules.deleting") : unref(t)("gamification.point_rules.delete"))}</button></div></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (unref(toast)) {
|
||||
_push(`<div class="fixed bottom-6 right-6 z-50 bg-emerald-600 text-white px-4 py-3 rounded-lg shadow-lg text-sm flex items-center gap-2 animate-slide-up" data-v-c5f07ccf><svg class="w-4 h-4 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24" data-v-c5f07ccf><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" data-v-c5f07ccf></path></svg> ${ssrInterpolate(unref(toast))}</div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/point-rules.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
const pointRules = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c5f07ccf"]]);
|
||||
export {
|
||||
pointRules as default
|
||||
};
|
||||
//# sourceMappingURL=point-rules-C1ou37W0.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-C1ou37W0.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-C1ou37W0.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-C1ou37W0.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-C1ou37W0.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
5
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles-1.mjs-MLgCcaRj.js
vendored
Normal file
5
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles-1.mjs-MLgCcaRj.js
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
const pointRules_vue_vue_type_style_index_0_scoped_c5f07ccf_lang = ".animate-slide-up[data-v-c5f07ccf]{animation:slideUp-c5f07ccf .3s ease-out}@keyframes slideUp-c5f07ccf{0%{opacity:0;transform:translateY(1rem)}to{opacity:1;transform:translateY(0)}}";
|
||||
export {
|
||||
pointRules_vue_vue_type_style_index_0_scoped_c5f07ccf_lang as default
|
||||
};
|
||||
//# sourceMappingURL=point-rules-styles-1.mjs-MLgCcaRj.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles-1.mjs-MLgCcaRj.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles-1.mjs-MLgCcaRj.js.map
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"version":3,"file":"point-rules-styles-1.mjs-MLgCcaRj.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles-1.mjs-MLgCcaRj.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles-1.mjs-MLgCcaRj.js.map.json
vendored
Normal file
@@ -0,0 +1 @@
|
||||
{"file":"point-rules-styles-1.mjs-MLgCcaRj.js","mappings":";","names":[],"sources":[],"sourcesContent":[],"version":3}
|
||||
4
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles.D6gDWcZt.mjs
vendored
Normal file
4
frontend_admin/.nuxt/dist/server/_nuxt/point-rules-styles.D6gDWcZt.mjs
vendored
Normal file
@@ -0,0 +1,4 @@
|
||||
import style_0 from "./point-rules-styles-1.mjs-MLgCcaRj.js";
|
||||
export default [
|
||||
style_0
|
||||
]
|
||||
114
frontend_admin/.nuxt/dist/server/_nuxt/seasons-B_EJxQ8K.js
vendored
Normal file
114
frontend_admin/.nuxt/dist/server/_nuxt/seasons-B_EJxQ8K.js
vendored
Normal file
@@ -0,0 +1,114 @@
|
||||
import { defineComponent, ref, reactive, unref, useSSRContext } from "vue";
|
||||
import { ssrRenderAttrs, ssrInterpolate, ssrRenderList, ssrRenderClass, ssrRenderAttr, ssrIncludeBooleanAttr, ssrLooseContain } from "vue/server-renderer";
|
||||
import "/app/node_modules/hookable/dist/index.mjs";
|
||||
import "/app/node_modules/klona/dist/index.mjs";
|
||||
import { a as useI18n } from "../server.mjs";
|
||||
import "/app/node_modules/ofetch/dist/node.mjs";
|
||||
import "#internal/nuxt/paths";
|
||||
import "/app/node_modules/unctx/dist/index.mjs";
|
||||
import "/app/node_modules/h3/dist/index.mjs";
|
||||
import "pinia";
|
||||
import "/app/node_modules/defu/dist/defu.mjs";
|
||||
import "vue-router";
|
||||
import "/app/node_modules/ufo/dist/index.mjs";
|
||||
import "/app/node_modules/cookie-es/dist/index.mjs";
|
||||
import "/app/node_modules/destr/dist/index.mjs";
|
||||
import "/app/node_modules/ohash/dist/index.mjs";
|
||||
import "/app/node_modules/@unhead/vue/dist/index.mjs";
|
||||
import "@vue/devtools-api";
|
||||
const _sfc_main = /* @__PURE__ */ defineComponent({
|
||||
__name: "seasons",
|
||||
__ssrInlineRender: true,
|
||||
setup(__props) {
|
||||
const { t } = useI18n();
|
||||
const loading = ref(true);
|
||||
const error = ref(false);
|
||||
const saving = ref(false);
|
||||
const showModal = ref(false);
|
||||
const showActivateModal = ref(false);
|
||||
const seasons = ref([]);
|
||||
const editingSeason = ref(null);
|
||||
const activatingSeason = ref(null);
|
||||
const formError = ref("");
|
||||
const form = reactive({
|
||||
name: "",
|
||||
start_date: "",
|
||||
end_date: "",
|
||||
is_active: false
|
||||
});
|
||||
function formatDate(dateStr) {
|
||||
if (!dateStr) return "";
|
||||
const d = new Date(dateStr);
|
||||
return d.toLocaleDateString("hu-HU", { year: "numeric", month: "long", day: "numeric" });
|
||||
}
|
||||
function formatDateTime(dateStr) {
|
||||
if (!dateStr) return "";
|
||||
const d = new Date(dateStr);
|
||||
return d.toLocaleDateString("hu-HU", { year: "numeric", month: "long", day: "numeric", hour: "2-digit", minute: "2-digit" });
|
||||
}
|
||||
return (_ctx, _push, _parent, _attrs) => {
|
||||
_push(`<div${ssrRenderAttrs(_attrs)}><div class="mb-8 flex items-center justify-between"><div><h1 class="text-2xl font-bold text-white">${ssrInterpolate(unref(t)("gamification.seasons.title"))}</h1><p class="text-slate-400 mt-1">${ssrInterpolate(unref(t)("gamification.seasons.subtitle"))}</p></div><button class="flex items-center gap-2 px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-medium rounded-lg transition"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 4v16m8-8H4"></path></svg> ${ssrInterpolate(unref(t)("gamification.seasons.create_btn"))}</button></div>`);
|
||||
if (unref(loading)) {
|
||||
_push(`<div class="flex items-center justify-center py-20"><div class="text-slate-400 flex items-center gap-3"><svg class="w-5 h-5 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg><span>${ssrInterpolate(unref(t)("gamification.seasons.loading"))}</span></div></div>`);
|
||||
} else if (unref(error)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-xl p-6 mb-8"><p class="text-rose-400">${ssrInterpolate(unref(t)("gamification.seasons.load_error"))}</p><button class="mt-2 text-sm text-rose-300 hover:text-rose-200 underline">${ssrInterpolate(unref(t)("gamification.seasons.retry"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<!--[-->`);
|
||||
if (unref(seasons).length === 0) {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-12 text-center"><svg class="w-12 h-12 mx-auto text-slate-600 mb-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><p class="text-slate-400">${ssrInterpolate(unref(t)("gamification.seasons.empty"))}</p><button class="mt-4 px-4 py-2 bg-indigo-600 hover:bg-indigo-500 text-white text-sm font-medium rounded-lg transition">${ssrInterpolate(unref(t)("gamification.seasons.create_first"))}</button></div>`);
|
||||
} else {
|
||||
_push(`<div class="space-y-4"><!--[-->`);
|
||||
ssrRenderList(unref(seasons), (season) => {
|
||||
_push(`<div class="bg-slate-800 rounded-xl border border-slate-700 p-6 hover:border-slate-600 transition"><div class="flex items-start justify-between"><div class="flex-1"><div class="flex items-center gap-3 mb-2"><h3 class="text-lg font-semibold text-white">${ssrInterpolate(season.name)}</h3><span class="${ssrRenderClass([season.is_active ? "bg-emerald-500/10 text-emerald-400 border border-emerald-500/30" : "bg-slate-700 text-slate-400 border border-slate-600", "px-2.5 py-0.5 rounded-full text-xs font-medium"])}">${ssrInterpolate(season.is_active ? unref(t)("gamification.seasons.active") : unref(t)("gamification.seasons.inactive"))}</span></div><div class="flex items-center gap-6 text-sm text-slate-400"><div class="flex items-center gap-2"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 7V3m8 4V3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z"></path></svg><span>${ssrInterpolate(formatDate(season.start_date))} → ${ssrInterpolate(formatDate(season.end_date))}</span></div><div class="flex items-center gap-2"><svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg><span>${ssrInterpolate(unref(t)("gamification.seasons.created_at"))} ${ssrInterpolate(formatDateTime(season.created_at))}</span></div></div></div><div class="flex items-center gap-2 ml-4">`);
|
||||
if (!season.is_active) {
|
||||
_push(`<button class="p-2 rounded-lg text-emerald-400 hover:bg-emerald-500/10 transition"${ssrRenderAttr("title", unref(t)("gamification.seasons.activate"))}><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"></path><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path></svg></button>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<button class="p-2 rounded-lg text-indigo-400 hover:bg-indigo-500/10 transition"${ssrRenderAttr("title", unref(t)("gamification.seasons.edit"))}><svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"></path></svg></button></div></div></div>`);
|
||||
});
|
||||
_push(`<!--]--></div>`);
|
||||
}
|
||||
_push(`<!--]-->`);
|
||||
}
|
||||
if (unref(showModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center p-4"><div class="fixed inset-0 bg-black/60"></div><div class="relative bg-slate-800 rounded-xl border border-slate-700 w-full max-w-lg p-6 shadow-2xl"><h2 class="text-lg font-semibold text-white mb-6">${ssrInterpolate(unref(editingSeason) ? unref(t)("gamification.seasons.edit_title") : unref(t)("gamification.seasons.create_title"))}</h2><form class="space-y-4"><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.seasons.name_label"))}</label><input${ssrRenderAttr("value", unref(form).name)} type="text" required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white placeholder-slate-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"${ssrRenderAttr("placeholder", unref(t)("gamification.seasons.name_placeholder"))}></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.seasons.start_date_label"))}</label><input${ssrRenderAttr("value", unref(form).start_date)} type="date" required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div><div><label class="block text-sm font-medium text-slate-300 mb-1">${ssrInterpolate(unref(t)("gamification.seasons.end_date_label"))}</label><input${ssrRenderAttr("value", unref(form).end_date)} type="date" required class="w-full px-3 py-2 bg-slate-700 border border-slate-600 rounded-lg text-white focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-transparent"></div>`);
|
||||
if (!unref(editingSeason)) {
|
||||
_push(`<div class="flex items-center gap-3"><input${ssrIncludeBooleanAttr(Array.isArray(unref(form).is_active) ? ssrLooseContain(unref(form).is_active, null) : unref(form).is_active) ? " checked" : ""} type="checkbox" id="is_active" class="w-4 h-4 rounded border-slate-600 bg-slate-700 text-indigo-600 focus:ring-indigo-500"><label for="is_active" class="text-sm text-slate-300">${ssrInterpolate(unref(t)("gamification.seasons.active_on_create"))}</label></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (unref(formError)) {
|
||||
_push(`<div class="bg-rose-500/10 border border-rose-500/30 rounded-lg p-3"><p class="text-sm text-rose-400">${ssrInterpolate(unref(formError))}</p></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`<div class="flex items-center justify-end gap-3 pt-2"><button type="button" class="px-4 py-2 text-sm text-slate-400 hover:text-white transition">${ssrInterpolate(unref(t)("gamification.seasons.cancel"))}</button><button type="submit"${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-indigo-600 hover:bg-indigo-500 disabled:bg-indigo-600/50 text-white text-sm font-medium rounded-lg transition flex items-center gap-2">`);
|
||||
if (unref(saving)) {
|
||||
_push(`<svg class="w-4 h-4 animate-spin" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"></path></svg>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(` ${ssrInterpolate(unref(editingSeason) ? unref(t)("gamification.seasons.save") : unref(t)("gamification.seasons.create"))}</button></div></form></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
if (unref(showActivateModal)) {
|
||||
_push(`<div class="fixed inset-0 z-50 flex items-center justify-center p-4"><div class="fixed inset-0 bg-black/60"></div><div class="relative bg-slate-800 rounded-xl border border-slate-700 w-full max-w-md p-6 shadow-2xl"><h2 class="text-lg font-semibold text-white mb-2">${ssrInterpolate(unref(t)("gamification.seasons.activate_title"))}</h2><p class="text-slate-400 text-sm mb-6">${ssrInterpolate(unref(t)("gamification.seasons.activate_confirm", { name: unref(activatingSeason)?.name }))}</p><div class="flex items-center justify-end gap-3"><button class="px-4 py-2 text-sm text-slate-400 hover:text-white transition">${ssrInterpolate(unref(t)("gamification.seasons.cancel"))}</button><button${ssrIncludeBooleanAttr(unref(saving)) ? " disabled" : ""} class="px-4 py-2 bg-emerald-600 hover:bg-emerald-500 disabled:bg-emerald-600/50 text-white text-sm font-medium rounded-lg transition">${ssrInterpolate(unref(saving) ? unref(t)("gamification.seasons.activating") : unref(t)("gamification.seasons.activate"))}</button></div></div></div>`);
|
||||
} else {
|
||||
_push(`<!---->`);
|
||||
}
|
||||
_push(`</div>`);
|
||||
};
|
||||
}
|
||||
});
|
||||
const _sfc_setup = _sfc_main.setup;
|
||||
_sfc_main.setup = (props, ctx) => {
|
||||
const ssrContext = useSSRContext();
|
||||
(ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("pages/gamification/seasons.vue");
|
||||
return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
|
||||
};
|
||||
export {
|
||||
_sfc_main as default
|
||||
};
|
||||
//# sourceMappingURL=seasons-B_EJxQ8K.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/seasons-B_EJxQ8K.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/seasons-B_EJxQ8K.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1
frontend_admin/.nuxt/dist/server/_nuxt/seasons-B_EJxQ8K.js.map.json
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/seasons-B_EJxQ8K.js.map.json
vendored
Normal file
File diff suppressed because one or more lines are too long
98
frontend_admin/.nuxt/dist/server/_nuxt/useFormatter-hycy3urM.js
vendored
Normal file
98
frontend_admin/.nuxt/dist/server/_nuxt/useFormatter-hycy3urM.js
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
import { u as useRegionStore } from "./region-0mvXqaMM.js";
|
||||
function useFormatter() {
|
||||
const regionStore = useRegionStore();
|
||||
function formatNumber(value, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
try {
|
||||
return new Intl.NumberFormat(locale, options).format(value);
|
||||
} catch {
|
||||
return new Intl.NumberFormat("en-EU", options).format(value);
|
||||
}
|
||||
}
|
||||
function formatCurrency(value, currency, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
const curr = currency || regionStore.activeCurrency || "EUR";
|
||||
try {
|
||||
return new Intl.NumberFormat(locale, {
|
||||
style: "currency",
|
||||
currency: curr,
|
||||
minimumFractionDigits: 2,
|
||||
maximumFractionDigits: 2,
|
||||
...options
|
||||
}).format(value);
|
||||
} catch {
|
||||
return `${value.toFixed(2)} ${curr}`;
|
||||
}
|
||||
}
|
||||
function formatDate(date, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
const timezone = regionStore.activeTimezone || "Europe/Brussels";
|
||||
const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date;
|
||||
try {
|
||||
return new Intl.DateTimeFormat(locale, {
|
||||
timezone,
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
...options
|
||||
}).format(d);
|
||||
} catch {
|
||||
return d.toLocaleDateString("en-GB");
|
||||
}
|
||||
}
|
||||
function formatDateTime(date, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
const timezone = regionStore.activeTimezone || "Europe/Brussels";
|
||||
const d = typeof date === "string" || typeof date === "number" ? new Date(date) : date;
|
||||
try {
|
||||
return new Intl.DateTimeFormat(locale, {
|
||||
timezone,
|
||||
year: "numeric",
|
||||
month: "2-digit",
|
||||
day: "2-digit",
|
||||
hour: "2-digit",
|
||||
minute: "2-digit",
|
||||
...options
|
||||
}).format(d);
|
||||
} catch {
|
||||
return d.toLocaleString("en-GB");
|
||||
}
|
||||
}
|
||||
function formatPercent(value, options) {
|
||||
const locale = regionStore.activeLocale || "en-EU";
|
||||
try {
|
||||
return new Intl.NumberFormat(locale, {
|
||||
style: "percent",
|
||||
minimumFractionDigits: 0,
|
||||
maximumFractionDigits: 1,
|
||||
...options
|
||||
}).format(value / 100);
|
||||
} catch {
|
||||
return `${value}%`;
|
||||
}
|
||||
}
|
||||
function calculatePriceWithVat(netPrice, vatRate) {
|
||||
const rate = vatRate ?? regionStore.activeVatRate ?? 0;
|
||||
const vat = netPrice * (rate / 100);
|
||||
const gross = netPrice + vat;
|
||||
return { net: netPrice, vat, gross, vatRate: rate };
|
||||
}
|
||||
function formatPriceWithVat(netPrice, vatRate, currency) {
|
||||
const { net, vat, gross, vatRate: rate } = calculatePriceWithVat(netPrice, vatRate);
|
||||
const curr = currency || regionStore.activeCurrency || "EUR";
|
||||
return `Net: ${formatCurrency(net, curr)} | VAT: ${formatCurrency(vat, curr)} (${rate}%) | Gross: ${formatCurrency(gross, curr)}`;
|
||||
}
|
||||
return {
|
||||
formatNumber,
|
||||
formatCurrency,
|
||||
formatDate,
|
||||
formatDateTime,
|
||||
formatPercent,
|
||||
calculatePriceWithVat,
|
||||
formatPriceWithVat
|
||||
};
|
||||
}
|
||||
export {
|
||||
useFormatter as u
|
||||
};
|
||||
//# sourceMappingURL=useFormatter-hycy3urM.js.map
|
||||
1
frontend_admin/.nuxt/dist/server/_nuxt/useFormatter-hycy3urM.js.map
vendored
Normal file
1
frontend_admin/.nuxt/dist/server/_nuxt/useFormatter-hycy3urM.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user