ui: add ProblemSelectAutoComplete for contest_edit

pull/92/head
undefined 4 years ago
parent 5bd851028c
commit b88b6ca046

@ -591,9 +591,7 @@ export class ProblemCreateHandler extends Handler {
export class ProblemPrefixListHandler extends Handler {
@param('prefix', Types.Name)
async get(domainId: string, prefix: string) {
this.response.body = {
pdocs: await problem.getPrefixList(domainId, prefix),
};
this.response.body = await problem.getPrefixList(domainId, prefix);
}
}

@ -50,19 +50,18 @@ module.exports = {
rules: {
// FIXME A bug with eslint-parser
'template-curly-spacing': 'off',
indent: 'off',
'comma-dangle': [
'error',
'always-multiline',
],
// indent: [
// 'error',
// 2,
// {
// SwitchCase: 0,
// },
// ],
indent: [
'error',
2,
{
SwitchCase: 0,
},
],
'max-len': ['error', 150],
quotes: 'warn',
'class-methods-use-this': 'off',

@ -2,14 +2,14 @@ import _ from 'lodash';
import tpl from 'vj/utils/tpl';
import request from 'vj/utils/request';
import DOMAttachedObject from 'vj/components/DOMAttachedObject';
import AutoComplete from '.';
import AutoComplete from './index';
function getText(pdoc) {
return pdoc.docId;
}
function getItems(val) {
return request.get('/problem/list', { q: val });
function getItems(prefix) {
return request.get('/problem/list', { prefix });
}
function renderItem(pdoc) {
@ -38,4 +38,4 @@ export default class ProblemSelectAutoComplete extends AutoComplete {
}
_.assign(ProblemSelectAutoComplete, DOMAttachedObject);
window.Hydro.components.UserSelectAutoComplete = ProblemSelectAutoComplete;
window.Hydro.components.ProblemSelectAutoComplete = ProblemSelectAutoComplete;

@ -1,12 +0,0 @@
import { AutoloadPage } from 'vj/misc/Page';
import UserSelectAutoComplete from './UserSelectAutoComplete';
import DomainSelectAutoComplete from './DomainSelectAutoComplete';
import ProblemSelectAutoComplete from './ProblemSelectAutoComplete';
const page = new AutoloadPage('autocomplete', () => {
UserSelectAutoComplete.getOrConstruct($('[autocomplete="user"]'));
DomainSelectAutoComplete.getOrConstruct($('[autocomplete="domain"]'));
ProblemSelectAutoComplete.getOrConstruct($('[autocomplete="problem"]'));
});
export default page;

@ -0,0 +1,9 @@
import { NamedPage } from 'vj/misc/Page';
import ProblemSelectAutoComplete from 'vj/components/autocomplete/ProblemSelectAutoComplete';
const page = new NamedPage(['contest_edit', 'contest_create'], () => {
console.log($('[name="pids"]'));
ProblemSelectAutoComplete.getOrConstruct($('[name="pids"]'));
});
export default page;

@ -47,6 +47,7 @@
{% set disabled = args.disabled or false %}
{% set required = args.required or false %}
{% set autofocus = args.autofocus or false %}
{% set noAutocomplete = args.noAutocomplete or false %}
{% set extra_style = args.extra_style or false %}
{% set date = args.date or false %}
{% set time = args.time or false %}
@ -54,6 +55,7 @@
{% if disabled %}disabled{% endif %}
{% if required %}required{% endif %}
{% if autofocus %}autofocus data-autofocus{% endif %}
{% if noAutocomplete %}autocomplete="off"{% endif %}
{% if date %}data-pick-date{% endif %}
{% if time %}data-pick-time{% endif %}
{% if extra_style %}style="{{extra_style}}"{% endif %}

@ -62,7 +62,9 @@
columns:null,
label:'Problems',
name:'pids',
value:pids
value:pids,
noAutocomplete:true,
placeholder:_("Seperated with ','")
}) }}
{{ form.form_textarea({
columns:null,

Loading…
Cancel
Save