Files
mixtape/zero.Backoffice.UI/app/modules/pageModules/actions.ts
T

103 lines
2.0 KiB
TypeScript
Raw Normal View History

2022-01-12 18:49:36 +01:00
import api from './api';
import * as overlays from '../../services/overlay';
import * as notifications from '../../services/notification';
import { localize } from '../../services/localization';
import { Router } from 'vue-router';
export default {
async create(router: Router, parent: object)
{
const result = await overlays.open({
component: () => import('./overlays/create.vue'),
width: 480,
model: {
parent
}
});
if (result.value)
{
router.push({
name: 'pages-create',
params: {
flavor: result.value.alias,
parent: parent ? parent.id : undefined
}
})
}
},
async move(model: object)
{
const result = await overlays.open({
component: () => import('./overlays/move.vue'),
display: 'editor',
width: 480,
model: model
});
if (result.eventType == 'confirm')
{
console.info('okay');
}
},
async copy(model: object)
{
const result = await overlays.open({
component: () => import('./overlays/copy.vue'),
display: 'editor',
width: 480,
model: model
});
if (result.eventType == 'confirm')
{
console.info('okay');
}
},
async sort(model: object)
{
const result = await overlays.open({
component: () => import('./overlays/sort.vue'),
display: 'editor',
width: 480,
model: model
});
if (result.eventType == 'confirm')
{
console.info('okay');
}
},
async remove(model: object)
{
const response = await api.getDependencies(model.id);
const result = await overlays.confirmDelete("@page.deleteoverlay.title", '@page.deleteoverlay.text', localize('@page.deleteoverlay.warning', {
tokens: {
pages: response.data.pages
}
}));
if (result.eventType == 'confirm')
{
result.value.state('loading');
await api.delete(model.id);
result.value.state('success');
result.value.close();
}
}
};