Commit Graph

641 Commits

Author SHA1 Message Date
9528838d69
fix: is_hidden in blog_archive
All checks were successful
continuous-integration/drone/push Build is passing
2022-10-02 17:53:33 +08:00
0704b85065
refactor: blog_index and blog_archive with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-10-02 17:02:17 +08:00
40921a5701
refactor: add_contest page with bs5 2022-10-02 14:41:26 +08:00
327c61a251
refactor: problem_statement_manage with bs5 2022-10-02 14:25:22 +08:00
e62f3b4d38
fix: user_info accepted submission count
All checks were successful
continuous-integration/drone/push Build is passing
2022-10-02 10:17:12 +08:00
ce10dce025
fix: remove problem_uploader permission when add problem_manager
All checks were successful
continuous-integration/drone/push Build is passing
2022-10-01 22:03:00 +08:00
7678b34221
refactor: contest_members page with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-10-01 21:26:01 +08:00
023f2e392c
fix: add missing spaces between tags 2022-10-01 19:31:13 +08:00
60e2c80b8d
feat: add teacher type 2022-10-01 19:29:40 +08:00
091f35397d
feat: add school field 2022-10-01 19:09:16 +08:00
e0872fda48
feat: add user permissions display in user_info page 2022-10-01 18:55:50 +08:00
05dcdf2158
fix: remove poster field in problem.conf
All checks were successful
continuous-integration/drone/push Build is passing
2022-10-01 17:18:29 +08:00
47869c3314
fix: remove "admin" 2022-10-01 17:17:20 +08:00
f2b3280e68
refactor: blog_index page with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-29 22:06:36 +08:00
74e502a853
refactor: blog_detail page with bs5 2022-09-29 22:02:56 +08:00
6643d21ed0
fix: problem_solution table 2022-09-29 14:26:07 +08:00
9520ed24a6
fix: 2eb02d776d 2022-09-29 10:34:43 +08:00
d2e4f799b8
feat: user_info page ac_problems hover bg
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-29 10:20:12 +08:00
2eb02d776d
feat: add problem difficulty display 2022-09-29 10:10:24 +08:00
83678f42b9
feat: add view_solution_type form 2022-09-29 09:27:11 +08:00
4daa3ed248
fix: problem_list accepted problems td background 2022-09-29 09:20:08 +08:00
b2a3e3c1d8
fix: sidebar margin
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-29 08:18:49 +08:00
eaa9f8f12f
fix: ac-problems-list styles
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-29 08:12:03 +08:00
0d5f22cc06
fix: use rawurlencode
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-29 07:41:45 +08:00
a4786d1395
fix: "add solution" card header font-weight 2022-09-29 06:25:56 +08:00
f2226dbebf
feat: quick create solution blog
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-28 20:38:16 +08:00
44b3840e5f
feat: add problems_solutions
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-28 19:48:49 +08:00
e8125e7e3a
refactor: user_info page with bs5 2022-09-28 15:39:39 +08:00
492a4fdd83
fix: bb5de2a00e 2022-09-28 14:48:30 +08:00
8c3a305d1e
feat: allow to use more builtin checkers
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-28 13:52:49 +08:00
beaa45160b
fix: problem click zan block 2022-09-27 16:48:17 +08:00
315626200c
refactor: contest problem page with bs5 2022-09-27 16:42:24 +08:00
f8377ebdad
fix: columns breakpoint
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-27 07:57:01 +08:00
bdd44e7fb8
fix: style
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-26 21:11:58 +08:00
f8966c2b26
fix: bs4 compatibility 2022-09-26 21:11:38 +08:00
27387a0dea
refactor: blogs_list page with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-26 20:55:56 +08:00
42ffbd9c88
refactor: hack_list page with bs5 2022-09-26 20:42:46 +08:00
42591677e5
feat: include sidebar in index page
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-26 18:56:38 +08:00
fc66e5afe5
fix: 6cbf44ead5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-26 16:32:38 +08:00
6cbf44ead5
fix: add classes to tables
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-26 14:35:13 +08:00
9fc1628709
refactor: group page with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-26 12:09:54 +08:00
a56923d52a
fix: style 2022-09-26 11:28:53 +08:00
e24d9c587c
refactor: split group manage page 2022-09-26 11:26:17 +08:00
d79ca1512f
fix: problem_list is_hidden 2022-09-26 09:30:34 +08:00
7ab64c1ba3
refactor: problem_list with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-26 07:58:58 +08:00
219d3526e5
refactor: spilt problem_list manage page 2022-09-26 07:39:01 +08:00
d502fb95ac
feat: change uploader username
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-25 21:03:56 +08:00
3ebc2dea1d
fix: margin-top
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-25 18:39:46 +08:00
d101ca2c1e
feat: add search form
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-25 18:38:19 +08:00
dcb4417e75
fix: style 2022-09-25 18:30:17 +08:00
3a26ee7092
refactor: problem page with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-25 18:28:43 +08:00
bb3656749d
fix: problem_set table col width
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-25 14:31:52 +08:00
83488ad7cf
feat: add sidebar
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-25 14:16:36 +08:00
7aa51e889a
refactor: hack detail page with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-25 10:44:33 +08:00
6a49c84e31
refactor: submission_detail with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 21:19:48 +08:00
1e07cba8c1
fix: set overflow-auto to submissions_list table
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 19:38:03 +08:00
50b37ba70f
fix: bs4 countdowns title 2022-09-24 19:13:16 +08:00
70d7a65665
feat: user self_reviews order by start_time desc
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 18:45:35 +08:00
e270e5e891
fix: add missing spaces 2022-09-24 14:26:49 +08:00
c7b1e6c2c3
fix: edef725860
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 14:19:28 +08:00
5219d8ddcc
fix: style
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 13:41:31 +08:00
edef725860
feat: add page title
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 13:39:55 +08:00
86ec60fa3a
refactor: groups with bs5 2022-09-24 13:39:45 +08:00
7ee809bd56
refactor: problem_lists with bs5 2022-09-24 13:24:48 +08:00
56967e039d
fix: 4fa402ec4b
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 12:51:34 +08:00
4fa402ec4b
refactor: contests list with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 12:10:30 +08:00
79d4c3832c
refactor: ranklist with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 11:55:34 +08:00
b25f4cc7f9
fix: table appraisal col width 2022-09-24 11:42:09 +08:00
92cca91cce
feat: countdowns and friend links locale 2022-09-24 11:40:26 +08:00
e334a2ad8a
refactor: problem_set with bs5
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 10:18:55 +08:00
bff23cfdfd
fix: index page bs4
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-24 08:33:36 +08:00
2367452bcd
feat: frontend version switch 2022-09-24 08:26:39 +08:00
bd79eebb44
refactor: submissions_list with bs5 2022-09-24 08:13:39 +08:00
b50b3ee67c
refactor: backgrounds 2022-09-24 06:58:20 +08:00
e56eae09b1
fix: index cols
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-23 22:10:57 +08:00
1d142f8cff
fix: style 2022-09-23 21:54:44 +08:00
f75752397f
fix: friend link styles
Some checks reported errors
continuous-integration/drone/push Build was killed
2022-09-23 21:51:36 +08:00
4e1d156f0e
feat: group announcement
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-23 21:36:14 +08:00
32caffc3ec
refactor: index with bs5 2022-09-23 21:00:17 +08:00
54ad012df1
fix: "need upload chk.cpp"
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-23 11:50:56 +08:00
72b70d2911
fix: 9b8ffca752 2022-09-23 08:13:21 +08:00
3bf24bbbb9
fix: d3e99b0217 2022-09-23 08:03:55 +08:00
0c21b31517
feat: mathjax support on user_self_review page
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-22 10:38:06 +08:00
1b955c5913
feat: allow to use more builtin checkers 2022-09-22 10:26:16 +08:00
31a8db965b
feat: move user_self_reviews into blog
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-22 09:41:21 +08:00
d3e99b0217
fix: assignment problem status icon
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-22 08:51:38 +08:00
9b8ffca752
feat: add contest_judger permission
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-21 19:26:13 +08:00
ca3680727c
feat: support mathjax in contest self reviews
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-21 18:35:30 +08:00
3b68e6c503
feat: move blog_link_contests to contest_manage.php 2022-09-21 18:12:58 +08:00
0804bcb14b
feat: display ip from http_x_forwarded_for
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-21 14:39:09 +08:00
8754b60958
feat: force set user participated 2022-09-21 14:34:16 +08:00
9517e4f8c7
fix: margin-bottom of problem item
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-21 13:58:53 +08:00
c3b72eb114
fix: e0cffaa762 2022-09-21 12:41:29 +08:00
b7a0ee7fda
feat: friend links
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-21 11:33:42 +08:00
f57fa8a895
feat: login to view more 2022-09-21 11:27:03 +08:00
6112612d88
fix: countdowns config 2022-09-21 11:00:12 +08:00
a09e3a21e7
fix: use <ul> 2022-09-21 10:58:45 +08:00
d9be3be581
feat: contests order 2022-09-20 19:44:40 +08:00
4fabe53a51
feat: display problem uploader in problemset
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-20 18:39:01 +08:00
610afc0994
fix: item height 2022-09-20 18:35:14 +08:00
02ef72b035
fix: user info style 2022-09-20 18:23:18 +08:00
03e6a1cb99
refactor: remove echo
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-20 17:20:23 +08:00
6926a6f912
fix: pagination count table 2022-09-20 17:19:11 +08:00
7b4fb77260
feat: faq page not require login 2022-09-20 17:06:25 +08:00
a73b212b32
fix: accepted problems style 2022-09-20 17:03:11 +08:00
67c29e3add
feat: testcase download
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-20 13:10:25 +08:00
e0cffaa762
feat: remove user from contest 2022-09-20 11:02:37 +08:00
85c93c7073
chore: update faq 2022-09-20 10:46:32 +08:00
ad9bbf9222
fix: DOMPurify on user self review page 2022-09-20 10:17:28 +08:00
db75573e1f
fix: style 2022-09-20 09:53:19 +08:00
1b26049ee0
feat: add a page to show all self reviews of a user
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-20 09:50:37 +08:00
1ecf4e54b1
feat: assignments 2022-09-20 08:28:38 +08:00
945bd35776
feat: edit contest self reviews 2022-09-20 07:49:45 +08:00
9c2b2a96ab
feat: contest self reviews
All checks were successful
continuous-integration/drone/push Build is passing
2022-09-19 19:27:57 +08:00
419be8ab49
fix: bb5de2a00e 2022-09-19 19:06:16 +08:00
5dd5934e8c
fix: problem uploader 2022-09-19 16:02:44 +08:00
09e5234e5f
feat: user type manage 2022-09-19 15:42:26 +08:00
5348d056f7
feat: html tags in user motto 2022-09-18 21:38:57 +08:00
17a69b006c
chore: update page_len 2022-09-18 21:06:18 +08:00
5db6977c85
fix: margin-top of problem content 2022-09-18 20:56:19 +08:00
640b91101b
chore: statement manage hints 2022-09-18 20:47:34 +08:00
d2a07c5265
feat: new markdown style 2022-09-18 20:47:21 +08:00
0d97897d92
feat: problem lists 2022-09-18 19:34:17 +08:00
5253b23848
fix: escape realname 2022-09-18 18:51:20 +08:00
410631075e
fix: style 2022-09-18 12:58:35 +08:00
af58465477
feat: add C++14 and C++17 support 2022-09-18 10:54:13 +08:00
eed0026dba
feat(web/blogs): allow super users to see hidden blogs 2022-04-14 15:34:16 +08:00
4f6842a654
feat(web/problem-set): own problem 2022-04-14 09:31:33 +08:00
6a2915b3a4
feat(web/problem): display uploader 2022-04-14 09:27:25 +08:00
1ce854744f
feat(web/contest): after contest standings 2022-04-13 16:23:24 +08:00
dd417d4f2f
feat(web/contest): allow admins take part in contests 2022-04-04 19:35:20 +08:00
e411ef91d3
feat(web/index): add friend links 2022-04-03 21:27:40 +08:00
69404b4376
feat(web/index): add countdown 2022-04-03 19:33:50 +08:00
27c1eee037
feat(web): add contest only user type 2022-04-03 18:18:17 +08:00
e1efee927b
chore(web/super-manage): tidy up some code 2022-04-02 18:35:58 +08:00
d2ad335128
fix(web/super-manage): usertype 2022-04-02 18:01:42 +08:00
1021dae8c0
feat(web): throw 403 when need login 2022-04-02 18:01:26 +08:00
0af24b52ac
feat(web): multiple permissions for user 2022-04-02 17:09:49 +08:00
a5a3fb9288
fix(web/captcha): set chars and length 2022-03-25 13:21:29 +08:00
65cf072825
feat(web): add ac graph 2022-03-25 13:16:37 +08:00
b27965dec8
feat(web/user_info): display problem title 2022-03-24 13:30:00 +08:00
cb1a6f33f4
fix(web): a35ab7bfdf 2022-03-24 12:48:37 +08:00
a35ab7bfdf
fix(web/contest): group reg 2022-03-21 11:10:54 +08:00
5121b733bd
feat(web): add ac_num ranklist 2022-03-21 10:51:31 +08:00
5d3f0d9bff
revert(web): f25be16d1e 2022-03-20 21:32:22 +08:00
2d04d7b486
revert(web): 07f7782ae4 2022-03-20 21:31:01 +08:00
e3fc955b75
chore(web): fix style 2022-03-20 17:19:07 +08:00
8703281ab3
feat(web,db): add groups 2022-03-20 08:07:46 +08:00
3a7e52fac1
feat(web): add problem permissions 2022-03-17 21:52:10 +08:00
882c84c1a8
fix(web/contest): problems order in contest 2022-03-17 20:54:32 +08:00
a6e18b25bd
feat(web): disable register & add user manager 2022-03-17 19:38:33 +08:00
3964f64c14
feat(web): add form type 2022-03-17 19:35:43 +08:00
71a82c3a28
feat(web): add realname 2022-03-17 18:26:29 +08:00
1bc7762be6
feat(web/blog): remove draft 2022-03-17 16:38:39 +08:00
4c98089f53
fix(web/blog/aboutme): style 2022-03-17 16:27:54 +08:00
2e7da82db9
feat(web): force login 2022-03-17 12:00:03 +08:00
a52b553e6d
fix(web/blogs): display hidden blogs 2022-03-17 11:30:38 +08:00
2193962238
fix(web): style 2022-03-17 11:04:22 +08:00
2f4ed55d9d
feat(*): remove rating 2022-03-17 11:02:44 +08:00
dcea523cfc
chore(judger): drop java support 2022-03-16 21:12:09 +08:00
7a7d46e057
chore: merge branch 'develop' into master 2022-03-16 20:15:43 +08:00
e92b8a4e36
feat(judger): upgrade to ubuntu:20.04 2022-03-16 20:10:44 +08:00
9ebd1ad7e3
fix(web): login captcha 2022-03-16 05:36:10 +00:00
0bf1a2f998
feat: add captcha 2022-03-14 13:49:48 +00:00
billchenchina
dcd0d0b66e
fix(web): syntax error in /reset-password 2021-09-09 22:07:17 +08:00
billchenchina
e357d1cb91
fix(web): json_encode for REQUEST_URI enter in /reset-password
Ref: https://huntr.dev/bounties/75bd6901-5760-412d-96fc-b664e4644fea/
2021-09-09 21:38:08 +08:00
billchenchina
ebf541ab91
fix(web): json_encode for input enter in /user/msg
This commit fixes #79.
Ref: https://huntr.dev/bounties/a2b63a25-385f-4f4e-b790-d910b90718f7/
2021-09-09 21:25:54 +08:00
billchenchina
c929bec01c
Add space between contest name and notification text 2021-04-25 22:03:08 +08:00
billchenchina
78846bc1b8
Fix #88
Thanks to @qz-cqy!
2021-04-25 22:00:22 +08:00
billchenchina
01701e1192
Merge pull request #68 from leoleoasd/develop(ISCAS-2028137)
Added map visualizer and code pasting tools.

Ref: https://github.com/UniversalOJ/UOJ-System/wiki/%E2%80%9C%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E4%BE%9B%E5%BA%94%E9%93%BE%E7%82%B9%E4%BA%AE%E8%AE%A1%E5%88%92%E2%80%94%E2%80%94%E6%9A%91%E6%9C%9F2020%E2%80%9D%E9%A1%B9%E7%9B%AE%E6%8F%90%E6%A1%88#3-%E5%B0%8F%E5%B7%A5%E5%85%B7%E9%9B%86%E7%BC%96%E5%86%99
2021-04-06 08:55:18 +08:00
billchenchina
0cc5f87058
fix(judger): Let judger work on ubuntu 20.04 (#81)
* Fix judger/log/

* fix(judger): Let judger work on ubuntu 20.04

Judger stops working since 9a6f16cf1d, this commit allows judger continue working.

* fix(web): update faq.php
2021-01-26 04:23:21 +08:00
Leo Lu
6db9f15977 Added paste management 2020-09-23 19:11:43 +08:00
xjrjyy
d38b9115c5
解决火狐浏览器上传数据“请上传zip格式!”问题 2020-09-06 17:04:00 +08:00
EarringYYR
69adfdb5dc fix(problem_set):fix incorrect class in bootstrap4
correct the problem in showing the sign when pass the problem
2020-08-29 17:06:29 +08:00
Leo Lu
8cbb222d0b Added created_at field to pastes 2020-08-14 01:31:54 +08:00
Leo Lu
f25be16d1e Added map visualizer 2020-08-07 17:41:53 +08:00
Leo Lu
07f7782ae4 Added pastes 2020-08-06 00:26:45 +08:00
Leo Lu
b8f82be3dc Reformated with php-cs-fixer 2020-07-02 23:12:06 +08:00
Masco Skray
8ca70fc87c fix(judger): support Java updated to 8u222 and 11.0.4
Allow reading cpu,cpuacct and new syscall requirement.
2019-10-01 10:10:00 +08:00
Masco Skray
a74f687824 feat(web): add judger management in super_manage
You can add or delete judger information at this page.
It will give a password to you, then you can use it to set up new judger.
2019-09-12 18:12:01 +08:00
Masco Skray
301bebd3eb chore(web): make stickers offline
If you are in an internal network, stickers may not shown.
Add them into images so we can use them at offline situations.
2019-09-10 10:25:08 +08:00
Masco Skray
c49b69aa86 style(web): upgrade to Bootstrap 4 view with new artworks
Let's welcome brand new look made by Bootstrap 4!
Not only website but also our logo is being flat now.
The new logo uses blue as main color, to be different from original.
For us, it also shows the project has up to a new stage.
We hope that the project will get better and better.

BREAKING CHANGE: The path for users to place their images is renamed.
Logos are saved as new names too. Users should move "pictures" to "images".
Any modifications should suit the Bootstrap 4's standard.
2019-09-10 10:25:07 +08:00
Masco Skray
bd74ed3f51 fix(web/app/controllers): do not move if there is any file in zip (#49)
There are some situations that need to place subfolder in data path.
If there is any file but not only folder in path, do not move.
Previous moving logic did not check about this.
2019-08-02 19:10:07 +08:00
Masco Skray
28cd4ef8b8 style(web,install): set repo clone dir as work dir
Clone repository files to /opt, and make this as work dir.
Can save disk space, make folder tidy, and easy to access.
2019-07-16 10:48:02 +08:00
Masco Skray
fb6cae057c chore(web): set runtime version on faq page
The runtime versions on faq page are very old and not edited.
If judger is not with web, we can't determine the exact version.
So set these versions as default show, won't be too much different.
2019-07-16 10:38:08 +08:00
Masco Skray
6cd6f10f6e style(web,install): change judge_client work path
When move out judger from bundle, no need to create judger account.
So these work paths will no longer exist. Prepare for future.
2019-07-15 16:19:05 +08:00
Masco Skray
2156cdffef feat(web): add a new way to access blog
We add a new way to access blog page. Now there are 3.
The switch now uses number to choose the way.
1 is for subdomain and 3 is for subfolder.
2 is for separated blog domain with its subfolder.
For example, mike's link is blog.xxx.xxx/mike.
Blog list page link on navbar will change by domain mode.
2019-07-12 14:30:00 +08:00
Masco Skray
0854940fe0 style(web): change link location of blog functions
When using sub-directory blog, the 'blogof' not looks so good.
And, there are duplicate 'blog' characters, which making people uncomfortable.
So, for sub-directory blog, use 'blog' instead of 'blogof'.
'blog' is not as a sub folder or type anymore, use 'post' instead.

BREAKING CHANGE: Due to the conflict of 'blog' sub-directory, when go to blog post,
now should use 'blogs/{id}'; but when subdomain mode is on, you can still use 'blog'
to access these blog posts. 'blogof' is no longer used, and you need to inform users
that blog link is changed, to avoid the inaccessbility.
2019-07-12 12:13:30 +08:00
Masco Skray
50f26075ac style(web/app/controllers): subfolder move command as a single line
8 lines are too much. Why not make it into one line?
2019-07-10 10:58:15 +08:00
Masco Skray
d650f87f32 feat(judger): upgrade judge_client from py2 to py3
Upgrade judge_client from Python 2 to Python 3.
Add back and support a new judger update method.
Remove the Makefile outside of the folder which not contain any C file.
2019-06-28 14:00:20 +08:00
Masco Skray
96d4a3ecf7 style(judger,web): move code out from subfolder "1"
Due to historical reasons, the code is in subfolder "1".
With SVN removal, we place the code back and remove the annoying "1" folder.
2019-06-14 23:34:41 +08:00