mirror of
https://github.com/frappe/lms.git
synced 2026-05-02 13:39:31 +03:00
@@ -10,9 +10,8 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { FrappeUIProvider } from 'frappe-ui'
|
import { FrappeUIProvider } from 'frappe-ui'
|
||||||
import { Dialogs } from '@/utils/dialogs'
|
import { Dialogs } from '@/utils/dialogs'
|
||||||
import { computed, onUnmounted, ref, watch } from 'vue'
|
import { computed, onUnmounted, ref } from 'vue'
|
||||||
import { useScreenSize } from './utils/composables'
|
import { useScreenSize } from './utils/composables'
|
||||||
import { usersStore } from '@/stores/user'
|
|
||||||
import { useSettings } from '@/stores/settings'
|
import { useSettings } from '@/stores/settings'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import DesktopLayout from './components/DesktopLayout.vue'
|
import DesktopLayout from './components/DesktopLayout.vue'
|
||||||
@@ -23,7 +22,6 @@ import InstallPrompt from './components/InstallPrompt.vue'
|
|||||||
const { isMobile } = useScreenSize()
|
const { isMobile } = useScreenSize()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const noSidebar = ref(false)
|
const noSidebar = ref(false)
|
||||||
const { userResource } = usersStore()
|
|
||||||
const { settings } = useSettings()
|
const { settings } = useSettings()
|
||||||
|
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import './index.css'
|
import './index.css'
|
||||||
import { createApp } from 'vue'
|
import { createApp, watch } from 'vue'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
import App from './App.vue'
|
import App from './App.vue'
|
||||||
import { createPinia } from 'pinia'
|
import { createPinia } from 'pinia'
|
||||||
@@ -19,7 +19,6 @@ app.use(FrappeUI)
|
|||||||
app.use(pinia)
|
app.use(pinia)
|
||||||
app.use(router)
|
app.use(router)
|
||||||
app.use(translationPlugin)
|
app.use(translationPlugin)
|
||||||
app.use(telemetryPlugin, { app_name: 'lms' })
|
|
||||||
app.use(pageMetaPlugin)
|
app.use(pageMetaPlugin)
|
||||||
app.provide('$dayjs', dayjs)
|
app.provide('$dayjs', dayjs)
|
||||||
app.provide('$socket', initSocket())
|
app.provide('$socket', initSocket())
|
||||||
@@ -29,5 +28,11 @@ const { userResource, allUsers } = usersStore()
|
|||||||
app.provide('$user', userResource)
|
app.provide('$user', userResource)
|
||||||
app.provide('$allUsers', allUsers)
|
app.provide('$allUsers', allUsers)
|
||||||
|
|
||||||
|
watch(userResource, () => {
|
||||||
|
if (userResource.data) {
|
||||||
|
app.use(telemetryPlugin, { app_name: 'lms' })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
app.config.globalProperties.$user = userResource
|
app.config.globalProperties.$user = userResource
|
||||||
app.config.globalProperties.$dialog = createDialog
|
app.config.globalProperties.$dialog = createDialog
|
||||||
|
|||||||
+10
-10
@@ -51,12 +51,12 @@
|
|||||||
class="hidden lg:block"
|
class="hidden lg:block"
|
||||||
@change="updateJobs"
|
@change="updateJobs"
|
||||||
/>
|
/>
|
||||||
<div class="grid grid-cols-2 gap-4">
|
<div class="flex items-center space-x-4">
|
||||||
<FormControl
|
<FormControl
|
||||||
type="text"
|
type="text"
|
||||||
:placeholder="__('Search')"
|
:placeholder="__('Search')"
|
||||||
v-model="searchQuery"
|
v-model="searchQuery"
|
||||||
class="w-full max-w-40"
|
class="w-full"
|
||||||
@input="updateJobs"
|
@input="updateJobs"
|
||||||
>
|
>
|
||||||
<template #prefix>
|
<template #prefix>
|
||||||
@@ -79,17 +79,17 @@
|
|||||||
v-model="jobType"
|
v-model="jobType"
|
||||||
type="select"
|
type="select"
|
||||||
:options="jobTypes"
|
:options="jobTypes"
|
||||||
class="w-full"
|
class="w-full min-w-32"
|
||||||
:placeholder="__('Type')"
|
:placeholder="__('Type')"
|
||||||
@change="updateJobs"
|
@update:modelValue="updateJobs"
|
||||||
/>
|
/>
|
||||||
<FormControl
|
<FormControl
|
||||||
v-model="workMode"
|
v-model="workMode"
|
||||||
type="select"
|
type="select"
|
||||||
:options="workModes"
|
:options="workModes"
|
||||||
class="w-full"
|
class="w-full min-w-32"
|
||||||
:placeholder="__('Work Mode')"
|
:placeholder="__('Work Mode')"
|
||||||
@change="updateJobs"
|
@update:modelValue="updateJobs"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -218,13 +218,13 @@ const updateJobs = () => {
|
|||||||
const updateFilters = () => {
|
const updateFilters = () => {
|
||||||
filters.value.status = 'Open'
|
filters.value.status = 'Open'
|
||||||
|
|
||||||
if (jobType.value) {
|
if (jobType.value && jobType.value !== ' ') {
|
||||||
filters.value.type = jobType.value
|
filters.value.type = jobType.value
|
||||||
} else {
|
} else {
|
||||||
delete filters.value.type
|
delete filters.value.type
|
||||||
}
|
}
|
||||||
|
|
||||||
if (workMode.value) {
|
if (workMode.value && workMode.value !== ' ') {
|
||||||
filters.value.work_mode = workMode.value
|
filters.value.work_mode = workMode.value
|
||||||
} else {
|
} else {
|
||||||
delete filters.value.work_mode
|
delete filters.value.work_mode
|
||||||
@@ -271,7 +271,7 @@ watch(jobs, () => {
|
|||||||
|
|
||||||
const jobTypes = computed(() => {
|
const jobTypes = computed(() => {
|
||||||
return [
|
return [
|
||||||
{ label: '', value: '' },
|
{ label: ' ', value: ' ' },
|
||||||
{ label: __('Full Time'), value: 'Full Time' },
|
{ label: __('Full Time'), value: 'Full Time' },
|
||||||
{ label: __('Part Time'), value: 'Part Time' },
|
{ label: __('Part Time'), value: 'Part Time' },
|
||||||
{ label: __('Contract'), value: 'Contract' },
|
{ label: __('Contract'), value: 'Contract' },
|
||||||
@@ -281,7 +281,7 @@ const jobTypes = computed(() => {
|
|||||||
|
|
||||||
const workModes = computed(() => {
|
const workModes = computed(() => {
|
||||||
return [
|
return [
|
||||||
{ label: '', value: '' },
|
{ label: ' ', value: ' ' },
|
||||||
{ label: 'On site', value: 'On-site' },
|
{ label: 'On site', value: 'On-site' },
|
||||||
{ label: 'Hybrid', value: 'Hybrid' },
|
{ label: 'Hybrid', value: 'Hybrid' },
|
||||||
{ label: 'Remote', value: 'Remote' },
|
{ label: 'Remote', value: 'Remote' },
|
||||||
|
|||||||
@@ -44,6 +44,7 @@ ALLOWED_PATHS = [
|
|||||||
"/api/method/frappe.utils.print_format.download_pdf",
|
"/api/method/frappe.utils.print_format.download_pdf",
|
||||||
"/api/method/frappe.desk.search.search_link",
|
"/api/method/frappe.desk.search.search_link",
|
||||||
"/api/method/frappe.core.doctype.communication.email.make",
|
"/api/method/frappe.core.doctype.communication.email.make",
|
||||||
|
"/api/method/frappe.core.doctype.user.user.reset_password",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user