core&ui: add homework files & enhance delete operation (#755)

This commit is contained in:
panda authored and GitHub committed 2024-03-29 10:36:55 +08:00
1 parent 61e56adead
commit f0219116f3
12 files changed
+175 -13

No files matched your search

@@ -39,7 +39,7 @@ const page = new NamedPage(['contest_edit', 'contest_create', 'homework_create',
window.location.href = res.url;
});
}
const message = `Confirm deleting this ${pagename.split('_')[0]}? Its status will be deleted as well.`;
const message = `Confirm deleting this ${pagename.split('_')[0]}? Its files and status will be deleted as well.`;
return new ConfirmDialog({
$body: tpl.typoMsg(i18n(message)),
}).open().then((action) => {
+1 -1
View File
@@ -92,7 +92,7 @@ function handleDrop(ev) {
handleClickUpload(files);
}
const page = new NamedPage(['home_files', 'contest_manage', 'training_files'], () => {
const page = new NamedPage(['home_files', 'contest_manage', 'training_files', 'homework_files'], () => {
$(document).on('click', '[name="upload_file"]', () => handleClickUpload());
$(document).on('click', '[name="remove_selected"]', () => handleClickRemoveSelected());
$(document).on('dragover', '.files', (ev) => handleDragOver(ev));
+1 -1
View File
@@ -1,4 +1,4 @@
.page--home_files, .page--training_files, .page--contest_detail, .page--contest_manage
.page--home_files, .page--training_files, .page--contest_detail, .page--contest_manage, .page--homework_files
.col--checkbox
width: 60px
@@ -0,0 +1,24 @@
import $ from 'jquery';
import { ConfirmDialog } from 'vj/components/dialog';
import { NamedPage } from 'vj/misc/Page';
import { i18n, request, tpl } from 'vj/utils';
export default new NamedPage('homework_edit', () => {
let confirmed = false;
$(document).on('click', '[value="delete"]', (ev) => {
ev.preventDefault();
if (confirmed) {
return request.post('', { operation: 'delete' }).then((res) => {
window.location.href = res.url;
});
}
const message = 'Confirm deleting this homework? Its files and status will be deleted as well.';
return new ConfirmDialog({
$body: tpl.typoMsg(i18n(message)),
}).open().then((action) => {
if (action !== 'yes') return;
confirmed = true;
ev.target.click();
});
});
});
@@ -12,7 +12,7 @@ export default new NamedPage('training_edit', () => {
window.location.href = res.url;
});
}
const message = 'Confirm deleting this training? Its status will be deleted as well.';
const message = 'Confirm deleting this training? Its files and status will be deleted as well.';
return new ConfirmDialog({
$body: tpl.typoMsg(i18n(message)),
}).open().then((action) => {
@@ -0,0 +1,24 @@
{% extends "layout/basic.html" %}
{% block content %}
{{ set(UiContext, 'tdoc', tdoc) }}
<div class="row">
<div class="medium-9 columns">
<div class="section">
<div class="section__header">
<h1 class="section__title">{{ _('Files') }}</h1>
<div class="section__tools">
<button class="primary rounded button" name="upload_file">{{ _('Upload File') }}</button>
</div>
</div>
{{ noscript_note.render() }}
{% include "partials/files.html" %}
<div class="section__body">
<button class="rounded button" name="remove_selected">{{ _('Remove Selected') }}</button>
</div>
</div>
</div>
<div class="medium-3 columns">
{% include "partials/homework_sidebar.html" %}
</div>
</div>
{% endblock %}
@@ -55,6 +55,9 @@
<li class="menu__item"><a class="menu__link" href="{{ url('homework_edit', tid=tdoc.docId) }}">
<span class="icon icon-edit"></span> {{ _('Edit Homework') }}
</a></li>
<li class="menu__item"><a class="menu__link" href="{{ url('homework_files', tid=tdoc.docId) }}">
<span class="icon icon-file"></span> {{ _('Files') }}
</a></li>
{% endif %}
{% if handler.user.own(tdoc) or handler.user.hasPriv(PRIV.PRIV_READ_RECORD_CODE) or handler.user.hasPerm(perm.PERM_READ_RECORD_CODE) %}
<li class="menu__item"><a class="menu__link" href="{{ url('homework_code', tid=tdoc.docId) }}" data-no-instant>