From 133afd2296cc8a33aac7c4384ce65ec085329e6f Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 12 Jan 2022 20:43:08 +0800 Subject: [PATCH] ui: better layout for domain_group --- .../autocomplete/UserSelectAutoComplete.tsx | 2 +- packages/ui-default/components/editor/index.js | 3 ++- packages/ui-default/locales/zh.yaml | 3 +++ packages/ui-default/package.json | 2 +- packages/ui-default/pages/domain_group.page.styl | 6 ++++++ packages/ui-default/pages/domain_group.page.ts | 12 ++++-------- packages/ui-default/templates/problem_edit.html | 12 ++++++++++-- 7 files changed, 27 insertions(+), 13 deletions(-) create mode 100644 packages/ui-default/pages/domain_group.page.styl diff --git a/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx b/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx index 877eacc26..7f5aa5591 100644 --- a/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx +++ b/packages/ui-default/components/autocomplete/UserSelectAutoComplete.tsx @@ -38,7 +38,7 @@ export default class UserSelectAutoComplete extends AutoC { this.ref = ref; }} - height="34px" + height={this.options.height || "34px"} defaultItems={value} onChange={this.onChange} multi={this.options.multi} diff --git a/packages/ui-default/components/editor/index.js b/packages/ui-default/components/editor/index.js index 26650aa4c..04ee82d7d 100644 --- a/packages/ui-default/components/editor/index.js +++ b/packages/ui-default/components/editor/index.js @@ -78,7 +78,8 @@ export default class Editor extends DOMAttachedObject { if (!editorElement) return; const lineHeight = this.editor.getOption(monaco.editor.EditorOption.lineHeight); const lineCount = this.editor.getModel()?.getLineCount() || 1; - const height = this.editor.getTopForLineNumber(lineCount + 1) + lineHeight; + let height = this.editor.getTopForLineNumber(lineCount + 1) + lineHeight; + if (window.innerHeight < height) height = window.innerHeight; if (prevHeight !== height) { prevHeight = height; editorElement.style.height = `${height}px`; diff --git a/packages/ui-default/locales/zh.yaml b/packages/ui-default/locales/zh.yaml index d2c025347..770e7ea7e 100644 --- a/packages/ui-default/locales/zh.yaml +++ b/packages/ui-default/locales/zh.yaml @@ -173,6 +173,7 @@ Create Discussion: 创建讨论 Create discussions: 创建讨论 Create Domain: 创建域 Create File: 创建文件 +Create Group: 创建小组 Create homework: 创建作业 Create Homework: 创建作业 Create Link: 创建链接 @@ -328,6 +329,7 @@ fs_upload: 上传文件 Gender Visibility: 性别可见性 Gender: 性别 Gravatar URL Prefix: Gravatar地址前缀 +Group Name: 名称 Hard Deadline: 最终截止时间 Hash: 散列 Have ALL PERMISSIONS in this domain: 在此域中拥有全部权限 @@ -624,6 +626,7 @@ Rejudge: 重测 Related Discussions: 相关讨论 Related: 相关 Remember me: 记住我 +Remove Selected Group: 移除所选小组 Remove Selected User: 将所选用户移出 Remove Selected: 移除选中 Remove this data: 移除这组数据 diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index 82cb5e9a0..d79db5558 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.29.6", + "version": "4.29.7", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js", diff --git a/packages/ui-default/pages/domain_group.page.styl b/packages/ui-default/pages/domain_group.page.styl new file mode 100644 index 000000000..0fff24c74 --- /dev/null +++ b/packages/ui-default/pages/domain_group.page.styl @@ -0,0 +1,6 @@ +.page--domain_group + .col--checkbox + width: 60px + + .col--group + width: 150px diff --git a/packages/ui-default/pages/domain_group.page.ts b/packages/ui-default/pages/domain_group.page.ts index 77d1e3b47..f22455043 100644 --- a/packages/ui-default/pages/domain_group.page.ts +++ b/packages/ui-default/pages/domain_group.page.ts @@ -48,14 +48,14 @@ const page = new NamedPage('domain_group', () => { createGroupDialogContent.appendTo(document.body); const userSelect = UserSelectAutoComplete.getOrConstruct>( createGroupDialogContent.find('[name="create_group_users"]'), - { multi: true }, + { multi: true, height: 'auto' }, ); $('input[data-gid]').get().forEach((ele) => { - const input = UserSelectAutoComplete.getOrConstruct>($(ele), { multi: true }); + const input = UserSelectAutoComplete.getOrConstruct>($(ele), { multi: true, height: 'auto' }); const gid = ele.getAttribute('data-gid'); let loaded = false; input.onChange(() => { - if (input.value.length) { + if (input.value().length && !loaded) { loaded = true; return; } @@ -110,11 +110,7 @@ const page = new NamedPage('domain_group', () => { const selectedGroups = ensureAndGetSelectedGroups(); if (selectedGroups === null) return; const action = await new ConfirmDialog({ - $body: tpl` -
-

${i18n('Confirm deleting the selected groups?')}

-

${i18n('Users with those roles will be removed from the domain.')}

-
`, + $body: tpl.typoMsg(i18n('Confirm deleting the selected groups?')), }).open(); if (action !== 'yes') return; try { diff --git a/packages/ui-default/templates/problem_edit.html b/packages/ui-default/templates/problem_edit.html index fa3984198..46b848c10 100644 --- a/packages/ui-default/templates/problem_edit.html +++ b/packages/ui-default/templates/problem_edit.html @@ -33,7 +33,7 @@
{{ form.form_text({ row:false, - columns:8, + columns:6, label:'Tags', help_text:'Split by \', \'.', name:'tag', @@ -41,7 +41,15 @@ }) }} {{ form.form_text({ row:false, - columns:4, + columns:3, + label:'Assign', + help_text:'Assigned groups', + name:'assign', + value:pdoc.assign|default([])|join(', ') + }) }} + {{ form.form_text({ + row:false, + columns:3, label:'Difficulty', help_text:'From 1-10', name:'difficulty',