101 lines
2.8 KiB
JavaScript
101 lines
2.8 KiB
JavaScript
import { defineStore } from 'pinia'
|
|
import axios from "axios";
|
|
import { Inertia } from '@inertiajs/inertia'
|
|
|
|
export const useSessionStore = defineStore('SessionStore', {
|
|
state: () => ({
|
|
loader: false,
|
|
bulkLoader: false,
|
|
selectedSessions: [],
|
|
sessions: [],
|
|
|
|
columns: [
|
|
{
|
|
key: 'id',
|
|
title: 'ایدی',
|
|
style: '!font-medium !text-sm',
|
|
width: 80,
|
|
},
|
|
{
|
|
key: 'ip',
|
|
title: 'آی پی دستگاه',
|
|
style: '!font-medium !text-sm',
|
|
width: 120,
|
|
},
|
|
{
|
|
key: 'user_agent',
|
|
title: 'نام دستگاه',
|
|
style: '!font-medium !text-sm',
|
|
width: 200,
|
|
},
|
|
{
|
|
key: 'last_activity',
|
|
title: 'آخرین فعالیت',
|
|
style: '!font-medium !text-xs',
|
|
width: 140,
|
|
},
|
|
{
|
|
key: 'actions',
|
|
title: 'عملیات',
|
|
hasSort: false,
|
|
slot: true,
|
|
width: 80,
|
|
},
|
|
],
|
|
|
|
endpoints: {
|
|
index: '/admin/setting-profile/sessions',
|
|
delete: (id) => `/admin/setting-profile/sessions/${id}`,
|
|
bulkDelete: '/admin/setting-profile/sessions-bulk-delete',
|
|
}
|
|
}),
|
|
|
|
getters: {
|
|
indexPageTitle: () => {
|
|
return 'نمایش نشستهای فعال';
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
setSessions(sessions) {
|
|
this.sessions = sessions;
|
|
},
|
|
|
|
deleteSession(sessionId) {
|
|
this.loader = true;
|
|
return new Promise((resolve, reject) => {
|
|
axios.delete(this.endpoints.delete(sessionId))
|
|
.then(response => {
|
|
Inertia.get(this.endpoints.index);
|
|
resolve(response);
|
|
})
|
|
.catch(error => {
|
|
this.loader = false;
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
|
|
bulkDeleteSessions(ids) {
|
|
return new Promise((resolve, reject) => {
|
|
axios.post(this.endpoints.bulkDelete, { ids })
|
|
.then(response => {
|
|
Inertia.get(this.endpoints.index);
|
|
resolve(response);
|
|
})
|
|
.catch(error => {
|
|
reject(error);
|
|
});
|
|
});
|
|
},
|
|
|
|
setSelectedSessions(sessions) {
|
|
this.selectedSessions = sessions;
|
|
},
|
|
|
|
clearSelectedSessions() {
|
|
this.selectedSessions = [];
|
|
}
|
|
}
|
|
})
|