diff --git a/package-lock.json b/package-lock.json index 71183fed4..8639b81ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1797,8 +1797,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "optional": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -1919,6 +1918,14 @@ "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", "optional": true }, + "axios": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz", + "integrity": "sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==", + "requires": { + "follow-redirects": "1.5.10" + } + }, "babel-loader": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", @@ -2847,7 +2854,6 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "optional": true, "requires": { "delayed-stream": "~1.0.0" } @@ -3584,8 +3590,7 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "optional": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegate": { "version": "3.2.0", @@ -4801,8 +4806,7 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "optional": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fancy-log": { "version": "1.3.3", @@ -5172,6 +5176,29 @@ "readable-stream": "^2.3.6" } }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, "fomantic-ui": { "version": "2.8.4", "resolved": "https://registry.npmjs.org/fomantic-ui/-/fomantic-ui-2.8.4.tgz", @@ -7594,8 +7621,7 @@ "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "optional": true + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, "jsesc": { "version": "2.5.2", @@ -8651,14 +8677,12 @@ "mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", - "optional": true + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" }, "mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "optional": true, "requires": { "mime-db": "1.44.0" } @@ -11996,6 +12020,11 @@ } } }, + "simple-uploader.js": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/simple-uploader.js/-/simple-uploader.js-0.5.4.tgz", + "integrity": "sha512-Dmysgp0wyKqGdnZ9qnxS7QTg/Hfr25GxKM2XlrEnmzSPFmKroFqzW4Qaq/AbJDBvXv4YPGqS3S5YfVI3UxAU0A==" + }, "slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -12187,6 +12216,11 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, + "spark-md5": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spark-md5/-/spark-md5-3.0.1.tgz", + "integrity": "sha512-0tF3AGSD1ppQeuffsLDIOWlKUd3lS92tFxcsrh5Pe3ZphhnoK+oXIBTzOAThZCiuINZLvpiLH/1VS1/ANEJVig==" + }, "sparkles": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", @@ -13620,8 +13654,7 @@ "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "optional": true + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, "type": { "version": "1.2.0", @@ -14295,6 +14328,19 @@ "resolved": "https://registry.npmjs.org/vue-resize/-/vue-resize-0.4.5.tgz", "integrity": "sha512-bhP7MlgJQ8TIkZJXAfDf78uJO+mEI3CaLABLjv0WNzr4CcGRGPIAItyWYnP6LsPA4Oq0WE+suidNs6dgpO4RHg==" }, + "vue-router": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.3.4.tgz", + "integrity": "sha512-SdKRBeoXUjaZ9R/8AyxsdTqkOfMcI5tWxPZOUX5Ie1BTL5rPSZ0O++pbiZCeYeythiZIdLEfkDiQPKIaWk5hDg==" + }, + "vue-simple-uploader": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/vue-simple-uploader/-/vue-simple-uploader-0.7.4.tgz", + "integrity": "sha512-33uv07lkVj7m9gI7IIrQHAUcZkvl70g55lxnfnO/MZ8icwqiemW9Ah4ZexGWNrEfL1p6fV54PlOGICU17aBPFQ==", + "requires": { + "simple-uploader.js": "^0.5.4" + } + }, "vue-style-loader": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-4.1.2.tgz", diff --git a/package.json b/package.json index 7fb8246af..3e11dc18f 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@babel/preset-env": "7.9.6", "@babel/runtime": "7.9.6", "@primer/octicons": "9.6.0", + "axios": "0.19.2", "babel-loader": "8.1.0", "clipboard": "2.0.6", "core-js": "3.6.5", @@ -34,6 +35,7 @@ "postcss-loader": "3.0.0", "postcss-preset-env": "6.7.0", "postcss-safe-parser": "4.0.2", + "spark-md5": "3.0.1", "svg-sprite-loader": "5.0.0", "svgo": "1.3.2", "svgo-loader": "2.2.1", @@ -43,6 +45,8 @@ "vue-bar-graph": "1.2.0", "vue-calendar-heatmap": "0.8.4", "vue-loader": "15.9.2", + "vue-router": "3.3.4", + "vue-simple-uploader": "0.7.4", "vue-template-compiler": "2.6.11", "webpack": "4.43.0", "webpack-cli": "3.3.11", diff --git a/routers/repo/attachment.go b/routers/repo/attachment.go index 0233725dd..63af61fb7 100755 --- a/routers/repo/attachment.go +++ b/routers/repo/attachment.go @@ -360,20 +360,20 @@ func NewMultipart(ctx *context.Context) { return } - err := upload.VerifyFileType(ctx.Params("file_type"), strings.Split(setting.Attachment.AllowedTypes, ",")) + err := upload.VerifyFileType(ctx.Query("fileType"), strings.Split(setting.Attachment.AllowedTypes, ",")) if err != nil { ctx.Error(400, err.Error()) return } if setting.Attachment.StoreType == storage.MinioStorageType { - totalChunkCounts := ctx.ParamsInt("totalChunkCounts") + totalChunkCounts := ctx.QueryInt("totalChunkCounts") if totalChunkCounts > minio_ext.MaxPartsCount { ctx.Error(400, fmt.Sprintf("chunk counts(%d) is too much", totalChunkCounts)) return } - fileSize := ctx.ParamsInt64("size") + fileSize := ctx.QueryInt64("size") if fileSize > minio_ext.MaxMultipartPutObjectSize { ctx.Error(400, fmt.Sprintf("file size(%d) is too big", fileSize)) return @@ -390,7 +390,7 @@ func NewMultipart(ctx *context.Context) { UUID: uuid, UserID: ctx.User.ID, UploadID: uploadID, - Md5: ctx.Params("md5"), + Md5: ctx.Query("md5"), Size: fileSize, TotalChunks:totalChunkCounts, }) diff --git a/templates/repo/datasets/dataset.tmpl b/templates/repo/datasets/dataset.tmpl old mode 100644 new mode 100755 index 8ea4d9f64..ac0fd2b79 --- a/templates/repo/datasets/dataset.tmpl +++ b/templates/repo/datasets/dataset.tmpl @@ -3,6 +3,5 @@
-
diff --git a/templates/repo/datasets/index.tmpl b/templates/repo/datasets/index.tmpl old mode 100644 new mode 100755 index fbf386ec9..7f292d99e --- a/templates/repo/datasets/index.tmpl +++ b/templates/repo/datasets/index.tmpl @@ -65,11 +65,7 @@
- {{if .Permission.CanWrite $.UnitTypeDatasets}} -
- {{template "repo/datasets/dataset" .}} -
- {{end}} +
diff --git a/web_src/js/App.vue b/web_src/js/App.vue new file mode 100755 index 000000000..d54e33ff2 --- /dev/null +++ b/web_src/js/App.vue @@ -0,0 +1,206 @@ + + + + + \ No newline at end of file diff --git a/web_src/js/assets/bg.png b/web_src/js/assets/bg.png new file mode 100755 index 000000000..7b9b1a5fb Binary files /dev/null and b/web_src/js/assets/bg.png differ diff --git a/web_src/js/assets/body_bg.gif b/web_src/js/assets/body_bg.gif new file mode 100755 index 000000000..9c6b3916f Binary files /dev/null and b/web_src/js/assets/body_bg.gif differ diff --git a/web_src/js/assets/css/iconfont.css b/web_src/js/assets/css/iconfont.css new file mode 100755 index 000000000..4f83f77ec --- /dev/null +++ b/web_src/js/assets/css/iconfont.css @@ -0,0 +1,65 @@ +@font-face {font-family: "iconfont"; + src: url('iconfont.eot?t=1585640036938'); /* IE9 */ + src: url('iconfont.eot?t=1585640036938#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1585640036938') format('woff'), + url('iconfont.ttf?t=1585640036938') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1585640036938#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-zip:before { + content: "\e626"; +} + +.icon-unknown:before { + content: "\e613"; +} + +.icon-audio:before { + content: "\e645"; +} + +.icon-image:before { + content: "\e656"; +} + +.icon-video:before { + content: "\e617"; +} + +.icon-selimage:before { + content: "\e724"; +} + +.icon-dir:before { + content: "\e761"; +} + +.icon-tianjia:before { + content: "\e61f"; +} + +.icon-mkdir:before { + content: "\e607"; +} + +.icon-upload:before { + content: "\e614"; +} + +.icon-document:before { + content: "\e760"; +} + +.icon-folder:before { + content: "\e686"; +} + diff --git a/web_src/js/assets/css/iconfont.eot b/web_src/js/assets/css/iconfont.eot new file mode 100755 index 000000000..297685327 Binary files /dev/null and b/web_src/js/assets/css/iconfont.eot differ diff --git a/web_src/js/assets/css/iconfont.js b/web_src/js/assets/css/iconfont.js new file mode 100755 index 000000000..86c634624 --- /dev/null +++ b/web_src/js/assets/css/iconfont.js @@ -0,0 +1 @@ +!function(n){var c,a='',t=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(t&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var t=function(){document.removeEventListener("DOMContentLoaded",t,!1),c()};document.addEventListener("DOMContentLoaded",t,!1)}else document.attachEvent&&(l=c,o=n.document,i=!1,(a=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(a,50)}e()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,e())});function e(){i||(i=!0,l())}var l,o,i,a}(function(){var c,t,e,l,o,i;(c=document.createElement("div")).innerHTML=a,a=null,(t=c.getElementsByTagName("svg")[0])&&(t.setAttribute("aria-hidden","true"),t.style.position="absolute",t.style.width=0,t.style.height=0,t.style.overflow="hidden",e=t,(l=document.body).firstChild?(o=e,(i=l.firstChild).parentNode.insertBefore(o,i)):l.appendChild(e))})}(window); \ No newline at end of file diff --git a/web_src/js/assets/css/iconfont.json b/web_src/js/assets/css/iconfont.json new file mode 100755 index 000000000..3119c8772 --- /dev/null +++ b/web_src/js/assets/css/iconfont.json @@ -0,0 +1,93 @@ +{ + "id": "1720184", + "name": "upload", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "6049876", + "name": "压缩包", + "font_class": "zip", + "unicode": "e626", + "unicode_decimal": 58918 + }, + { + "icon_id": "553902", + "name": "文档", + "font_class": "unknown", + "unicode": "e613", + "unicode_decimal": 58899 + }, + { + "icon_id": "1004653", + "name": "文件-音频", + "font_class": "audio", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "1071023", + "name": "图像1", + "font_class": "image", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "1638517", + "name": "视频", + "font_class": "video", + "unicode": "e617", + "unicode_decimal": 58903 + }, + { + "icon_id": "13137449", + "name": "图像_未选择", + "font_class": "selimage", + "unicode": "e724", + "unicode_decimal": 59172 + }, + { + "icon_id": "4933421", + "name": "文件夹", + "font_class": "dir", + "unicode": "e761", + "unicode_decimal": 59233 + }, + { + "icon_id": "521050", + "name": "添加", + "font_class": "tianjia", + "unicode": "e61f", + "unicode_decimal": 58911 + }, + { + "icon_id": "602556", + "name": "网盘-新建文件夹", + "font_class": "mkdir", + "unicode": "e607", + "unicode_decimal": 58887 + }, + { + "icon_id": "2305613", + "name": "上传文件", + "font_class": "upload", + "unicode": "e614", + "unicode_decimal": 58900 + }, + { + "icon_id": "4933419", + "name": "文件", + "font_class": "document", + "unicode": "e760", + "unicode_decimal": 59232 + }, + { + "icon_id": "6583375", + "name": "文件", + "font_class": "folder", + "unicode": "e686", + "unicode_decimal": 59014 + } + ] +} diff --git a/web_src/js/assets/css/iconfont.svg b/web_src/js/assets/css/iconfont.svg new file mode 100755 index 000000000..dec91fd47 --- /dev/null +++ b/web_src/js/assets/css/iconfont.svg @@ -0,0 +1,62 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web_src/js/assets/css/iconfont.ttf b/web_src/js/assets/css/iconfont.ttf new file mode 100755 index 000000000..1b922157c Binary files /dev/null and b/web_src/js/assets/css/iconfont.ttf differ diff --git a/web_src/js/assets/css/iconfont.woff b/web_src/js/assets/css/iconfont.woff new file mode 100755 index 000000000..efbdade50 Binary files /dev/null and b/web_src/js/assets/css/iconfont.woff differ diff --git a/web_src/js/assets/css/iconfont.woff2 b/web_src/js/assets/css/iconfont.woff2 new file mode 100755 index 000000000..53579e365 Binary files /dev/null and b/web_src/js/assets/css/iconfont.woff2 differ diff --git a/web_src/js/assets/logo.png b/web_src/js/assets/logo.png new file mode 100755 index 000000000..b48e55a9d Binary files /dev/null and b/web_src/js/assets/logo.png differ diff --git a/web_src/js/components/Breakpoint.vue b/web_src/js/components/Breakpoint.vue new file mode 100755 index 000000000..6fd25c275 --- /dev/null +++ b/web_src/js/components/Breakpoint.vue @@ -0,0 +1,230 @@ + + + + + \ No newline at end of file diff --git a/web_src/js/components/Chunk.vue b/web_src/js/components/Chunk.vue new file mode 100755 index 000000000..362fb6e66 --- /dev/null +++ b/web_src/js/components/Chunk.vue @@ -0,0 +1,153 @@ + + + + + \ No newline at end of file diff --git a/web_src/js/components/Md5.vue b/web_src/js/components/Md5.vue new file mode 100755 index 000000000..ee5d04149 --- /dev/null +++ b/web_src/js/components/Md5.vue @@ -0,0 +1,244 @@ + + + + + \ No newline at end of file diff --git a/web_src/js/components/Skip.vue b/web_src/js/components/Skip.vue new file mode 100755 index 000000000..45acb2268 --- /dev/null +++ b/web_src/js/components/Skip.vue @@ -0,0 +1,233 @@ + + + + + \ No newline at end of file diff --git a/web_src/js/components/Uploader.vue b/web_src/js/components/Uploader.vue new file mode 100755 index 000000000..c8ca67676 --- /dev/null +++ b/web_src/js/components/Uploader.vue @@ -0,0 +1,112 @@ + + + + + \ No newline at end of file diff --git a/web_src/js/index.js b/web_src/js/index.js old mode 100644 new mode 100755 index 1c2ab7b2c..960191487 --- a/web_src/js/index.js +++ b/web_src/js/index.js @@ -21,6 +21,16 @@ import highlight from './features/highlight.js'; import ActivityTopAuthors from './components/ActivityTopAuthors.vue'; import {initNotificationsTable, initNotificationCount} from './features/notification.js'; import {createCodeEditor} from './features/codeeditor.js'; +import App from './App.vue' +import router from './router' +import uploader from 'vue-simple-uploader' + +Vue.use(uploader); + +//import './assets/css/iconfont.css' + +//Vue.config.productionTip = false + const {AppSubUrl, StaticUrlPrefix, csrf} = window.config; @@ -2555,6 +2565,7 @@ $(document).ready(async () => { initAdmin(); initCodeView(); initVueApp(); + initVueUploader(); initTeamSettings(); initCtrlEnterSubmit(); initNavbarContentToggle(); @@ -3165,6 +3176,16 @@ function initVueApp() { }); } +function initVueUploader() { + /* eslint-disable no-new */ + new Vue({ + el: '#uploader', + router, + components: { App }, + template: '' + }); +} + window.timeAddManual = function () { $('.mini.modal') .modal({ diff --git a/web_src/js/router/index.js b/web_src/js/router/index.js new file mode 100755 index 000000000..19db41378 --- /dev/null +++ b/web_src/js/router/index.js @@ -0,0 +1,39 @@ +import Vue from 'vue' +import Router from 'vue-router' +import Uploader from '../components/Uploader.vue' +import Chunk from '../components/Chunk.vue' +import Md5 from '../components/Md5.vue' +import Skip from '../components/Skip.vue' +import Breakpoint from '../components/Breakpoint.vue' + +Vue.use(Router) + +export default new Router({ + routes: [ + { + path: '/', + name: 'uploader', + component: Uploader + }, + { + path: '/chunk', + name: 'chunk', + component: Chunk + }, + { + path: '/skip', + name: 'skip', + component: Skip + }, + { + path: '/md5', + name: 'md5', + component: Md5 + }, + { + path: '/breakpoint', + name: 'breakpoint', + component: Breakpoint + }, + ] +})