- now authenticated user can change password with check of old password and password confirmination
Some checks failed
CI Pipeline / japa-tests (push) Failing after 52s
Some checks failed
CI Pipeline / japa-tests (push) Failing after 52s
- cchanged route app.dashboard to apps.dashboard - add editor and reviewer relation to Dataset.ts - added personal menu in asideMenu - added Approve.vue for editor - show warning in Index.vue (editor), if no dataset is loaded - user Receive.vue without inertia helper form - npm updates - added routes in routes.ts
This commit is contained in:
parent
0d51002903
commit
ae0c471e93
14 changed files with 733 additions and 408 deletions
|
@ -8,12 +8,18 @@ import { create } from 'xmlbuilder2';
|
|||
import { readFileSync } from 'fs';
|
||||
import { transform } from 'saxon-js';
|
||||
import type { ModelQueryBuilderContract } from '@ioc:Adonis/Lucid/Orm';
|
||||
import { schema, CustomMessages } from '@ioc:Adonis/Core/Validator';
|
||||
|
||||
// Create a new instance of the client
|
||||
const client = new Client({ node: 'http://localhost:9200' }); // replace with your OpenSearch endpoint
|
||||
|
||||
export default class DatasetsController {
|
||||
private proc;
|
||||
public messages: CustomMessages = {
|
||||
// 'required': '{{ field }} is required',
|
||||
// 'licenses.minLength': 'at least {{ options.minLength }} permission must be defined',
|
||||
'reviewer_id.required': 'reviewer_id must be defined',
|
||||
};
|
||||
|
||||
constructor() {
|
||||
this.proc = readFileSync('public/assets2/solr.sef.json');
|
||||
|
@ -60,6 +66,7 @@ export default class DatasetsController {
|
|||
})
|
||||
.preload('titles')
|
||||
.preload('user', (query) => query.select('id', 'login'))
|
||||
.preload('editor', (query) => query.select('id', 'login'))
|
||||
.paginate(page, 10);
|
||||
|
||||
return inertia.render('Editor/Dataset/Index', {
|
||||
|
@ -68,6 +75,7 @@ export default class DatasetsController {
|
|||
can: {
|
||||
// create: await auth.user?.can(['dataset-submit']),
|
||||
receive: await auth.user?.can(['dataset-receive']),
|
||||
approve: await auth.user?.can(['dataset-approve']),
|
||||
edit: await auth.user?.can(['dataset-editor-edit']),
|
||||
delete: await auth.user?.can(['dataset-editor-delete']),
|
||||
},
|
||||
|
@ -103,6 +111,106 @@ export default class DatasetsController {
|
|||
});
|
||||
}
|
||||
|
||||
public async receiveUpdate({ auth, request, response }) {
|
||||
const id = request.param('id');
|
||||
// const { id } = params;
|
||||
const dataset = await Dataset.findOrFail(id);
|
||||
|
||||
const validStates = ['released'];
|
||||
if (!validStates.includes(dataset.server_state)) {
|
||||
// throw new Error('Invalid server state!');
|
||||
// return response.flash('warning', 'Invalid server state. Dataset cannot be released to editor').redirect().back();
|
||||
return response
|
||||
.flash(
|
||||
'warning',
|
||||
`Invalid server state. Dataset with id ${id} cannot be received by editor. Datset has server state ${dataset.server_state}.`,
|
||||
)
|
||||
.redirect()
|
||||
.toRoute('editor.dataset.list');
|
||||
}
|
||||
|
||||
dataset.server_state = 'editor_accepted';
|
||||
const user = (await User.find(auth.user?.id)) as User;
|
||||
// dataset.editor().associate(user).save();
|
||||
try {
|
||||
await dataset.related('editor').associate(user); // speichert schon ab
|
||||
// await dataset.save();
|
||||
return response.toRoute('editor.dataset.list').flash('message', `You have accepted dataset ${dataset.id}!`);
|
||||
} catch (error) {
|
||||
// Handle any errors
|
||||
console.error(error);
|
||||
return response.status(500).json({ error: 'An error occurred while accepting the data.' });
|
||||
}
|
||||
}
|
||||
|
||||
public async approve({ request, inertia, response }) {
|
||||
const id = request.param('id');
|
||||
// $dataset = Dataset::with('user:id,login')->findOrFail($id);
|
||||
const dataset = await Dataset.findOrFail(id);
|
||||
|
||||
const validStates = ['editor_accepted', 'rejected_reviewer'];
|
||||
if (!validStates.includes(dataset.server_state)) {
|
||||
// session.flash('errors', 'Invalid server state!');
|
||||
return response
|
||||
.flash(
|
||||
'warning',
|
||||
`Invalid server state. Dataset with id ${id} cannot be approved. Datset has server state ${dataset.server_state}.`,
|
||||
)
|
||||
.redirect()
|
||||
.back();
|
||||
}
|
||||
|
||||
const reviewers = await User.query()
|
||||
.whereHas('roles', (builder) => {
|
||||
builder.where('name', 'reviewer');
|
||||
})
|
||||
.pluck('login', 'id');
|
||||
|
||||
return inertia.render('Editor/Dataset/Approve', {
|
||||
dataset,
|
||||
reviewers,
|
||||
});
|
||||
}
|
||||
|
||||
public async approveUpdate({ request, response }) {
|
||||
const approveDatasetSchema = schema.create({
|
||||
reviewer_id: schema.number(),
|
||||
});
|
||||
try {
|
||||
await request.validate({ schema: approveDatasetSchema, messages: this.messages });
|
||||
} catch (error) {
|
||||
// return response.badRequest(error.messages);
|
||||
throw error;
|
||||
}
|
||||
const id = request.param('id');
|
||||
const dataset = await Dataset.findOrFail(id);
|
||||
|
||||
const validStates = ['editor_accepted', 'rejected_reviewer'];
|
||||
if (!validStates.includes(dataset.server_state)) {
|
||||
// session.flash('errors', 'Invalid server state!');
|
||||
return response
|
||||
.flash(
|
||||
'warning',
|
||||
`Invalid server state. Dataset with id ${id} cannot be approved. Datset has server state ${dataset.server_state}.`,
|
||||
)
|
||||
.redirect()
|
||||
.back();
|
||||
}
|
||||
|
||||
dataset.server_state = 'approved';
|
||||
if (dataset.reject_reviewer_note != null) {
|
||||
dataset.reject_reviewer_note = null;
|
||||
}
|
||||
|
||||
//save main and additional titles
|
||||
const reviewer_id = request.input('reviewer_id', null);
|
||||
dataset.reviewer_id = reviewer_id;
|
||||
|
||||
if (await dataset.save()) {
|
||||
return response.toRoute('editor.dataset.list').flash('message', 'You have approved one dataset!');
|
||||
}
|
||||
}
|
||||
|
||||
public async create({}: HttpContextContract) {}
|
||||
|
||||
public async store({}: HttpContextContract) {}
|
||||
|
|
Loading…
Add table
editor.link_modal.header
Reference in a new issue