| @@ -783,6 +783,7 @@ func RenameRepoFile(repo *models.Repository, doer *models.User, opts *RenameRepo | |||||
| // Check that the path given in opts.treePath is valid (not a git path) | // Check that the path given in opts.treePath is valid (not a git path) | ||||
| treePath := CleanUploadFileName(opts.TreePath) | treePath := CleanUploadFileName(opts.TreePath) | ||||
| treePath = strings.ReplaceAll(treePath, " ", "") | |||||
| if treePath == "" { | if treePath == "" { | ||||
| return models.ErrFilenameInvalid{ | return models.ErrFilenameInvalid{ | ||||
| Path: opts.TreePath, | Path: opts.TreePath, | ||||
| @@ -942,16 +943,16 @@ func moveAndAddFiles(oldTreePath, newTreePath string, t *TemporaryUploadReposito | |||||
| } | } | ||||
| //example for v(mode SHA-1 stage file) | //example for v(mode SHA-1 stage file) | ||||
| //100755 d294c88235ac05d3dece028d8a65590f28ec46ac 0 custom/conf/app.ini | //100755 d294c88235ac05d3dece028d8a65590f28ec46ac 0 custom/conf/app.ini | ||||
| v = strings.ReplaceAll(v, "0\t", "") | |||||
| tmpArray := strings.Split(v, " ") | |||||
| oldPath := tmpArray[2] | |||||
| tempArray := strings.Split(v, "0\t") | |||||
| leftArray := strings.Split(tempArray[0], " ") | |||||
| oldPath := tempArray[1] | |||||
| newPath := newTreePath + strings.TrimPrefix(oldPath, oldTreePath) | newPath := newTreePath + strings.TrimPrefix(oldPath, oldTreePath) | ||||
| // mode 0 means remove file | // mode 0 means remove file | ||||
| stdIn.WriteString("0 0000000000000000000000000000000000000000\t") | stdIn.WriteString("0 0000000000000000000000000000000000000000\t") | ||||
| stdIn.WriteString(oldPath) | stdIn.WriteString(oldPath) | ||||
| stdIn.WriteByte('\000') | stdIn.WriteByte('\000') | ||||
| stdIn.WriteString(tmpArray[0] + " ") | |||||
| stdIn.WriteString(tmpArray[1] + "\t") | |||||
| stdIn.WriteString(leftArray[0] + " ") | |||||
| stdIn.WriteString(leftArray[1] + "\t") | |||||
| stdIn.WriteString(newPath) | stdIn.WriteString(newPath) | ||||
| stdIn.WriteByte('\000') | stdIn.WriteByte('\000') | ||||
| } | } | ||||
| @@ -2949,6 +2949,7 @@ raw_minutes = minutes | |||||
| [dropzone] | [dropzone] | ||||
| default_message = Drop files or click here to upload. | default_message = Drop files or click here to upload. | ||||
| default_dataset_message = Click to add files or directly drag and drop files here | |||||
| invalid_input_type = You can not upload files of this type. | invalid_input_type = You can not upload files of this type. | ||||
| file_too_big = File size ({{filesize}} MB) exceeds the maximum size of ({{maxFilesize}} MB). | file_too_big = File size ({{filesize}} MB) exceeds the maximum size of ({{maxFilesize}} MB). | ||||
| remove_file = Remove file | remove_file = Remove file | ||||
| @@ -2959,6 +2959,7 @@ raw_minutes=分钟 | |||||
| [dropzone] | [dropzone] | ||||
| default_message=拖动文件或者点击此处上传。 | default_message=拖动文件或者点击此处上传。 | ||||
| default_dataset_message=点击添加文件或直接拖拽文件到此处。 | |||||
| invalid_input_type=您不能上传该类型的文件 | invalid_input_type=您不能上传该类型的文件 | ||||
| file_too_big=文件体积({{filesize}} MB)超过了最大允许体积({{maxFilesize}} MB) | file_too_big=文件体积({{filesize}} MB)超过了最大允许体积({{maxFilesize}} MB) | ||||
| remove_file=移除文件 | remove_file=移除文件 | ||||
| @@ -106,6 +106,8 @@ func DatasetIndex(ctx *context.Context) { | |||||
| MustEnableDataset(ctx) | MustEnableDataset(ctx) | ||||
| ctx.Data["PageIsDataset"] = true | ctx.Data["PageIsDataset"] = true | ||||
| ctx.Data["SortType"] = ctx.Query("sort") | |||||
| repo := ctx.Repo.Repository | repo := ctx.Repo.Repository | ||||
| dataset, err := models.GetDatasetByRepo(repo) | dataset, err := models.GetDatasetByRepo(repo) | ||||
| @@ -128,9 +130,31 @@ func DatasetIndex(ctx *context.Context) { | |||||
| attachments := newFilterPrivateAttachments(ctx, dataset.Attachments, repo) | attachments := newFilterPrivateAttachments(ctx, dataset.Attachments, repo) | ||||
| sort.Slice(attachments, func(i, j int) bool { | |||||
| return attachments[i].CreatedUnix > attachments[j].CreatedUnix | |||||
| }) | |||||
| if ctx.Data["SortType"] == "nameAsc" { | |||||
| sort.Slice(attachments, func(i, j int) bool { | |||||
| return strings.ToLower(attachments[i].Name) < strings.ToLower(attachments[j].Name) | |||||
| }) | |||||
| } else if ctx.Data["SortType"] == "nameDesc" { | |||||
| sort.Slice(attachments, func(i, j int) bool { | |||||
| return strings.ToLower(attachments[i].Name) > strings.ToLower(attachments[j].Name) | |||||
| }) | |||||
| } else if ctx.Data["SortType"] == "sizeAsc" { | |||||
| sort.Slice(attachments, func(i, j int) bool { | |||||
| return attachments[i].Size < attachments[j].Size | |||||
| }) | |||||
| } else if ctx.Data["SortType"] == "sizeDesc" { | |||||
| sort.Slice(attachments, func(i, j int) bool { | |||||
| return attachments[i].Size > attachments[j].Size | |||||
| }) | |||||
| } else if ctx.Data["SortType"] == "timeAsc" { | |||||
| sort.Slice(attachments, func(i, j int) bool { | |||||
| return attachments[i].CreatedUnix < attachments[j].CreatedUnix | |||||
| }) | |||||
| } else { | |||||
| sort.Slice(attachments, func(i, j int) bool { | |||||
| return attachments[i].CreatedUnix > attachments[j].CreatedUnix | |||||
| }) | |||||
| } | |||||
| page := ctx.QueryInt("page") | page := ctx.QueryInt("page") | ||||
| if page <= 0 { | if page <= 0 { | ||||
| @@ -1471,8 +1471,8 @@ func obsMkdir(dir string) error { | |||||
| } | } | ||||
| func paramCheckCreateTrainJob(form auth.CreateModelArtsTrainJobForm) error { | func paramCheckCreateTrainJob(form auth.CreateModelArtsTrainJobForm) error { | ||||
| if !strings.HasSuffix(form.BootFile, ".py") { | |||||
| log.Error("the boot file(%s) must be a python file", form.BootFile) | |||||
| if !strings.HasSuffix(strings.TrimSpace(form.BootFile), ".py") { | |||||
| log.Error("the boot file(%s) must be a python file", strings.TrimSpace(form.BootFile)) | |||||
| return errors.New("启动文件必须是python文件") | return errors.New("启动文件必须是python文件") | ||||
| } | } | ||||
| @@ -1489,8 +1489,8 @@ func paramCheckCreateTrainJob(form auth.CreateModelArtsTrainJobForm) error { | |||||
| } | } | ||||
| func paramCheckCreateInferenceJob(form auth.CreateModelArtsInferenceJobForm) error { | func paramCheckCreateInferenceJob(form auth.CreateModelArtsInferenceJobForm) error { | ||||
| if !strings.HasSuffix(form.BootFile, ".py") { | |||||
| log.Error("the boot file(%s) must be a python file", form.BootFile) | |||||
| if !strings.HasSuffix(strings.TrimSpace(form.BootFile), ".py") { | |||||
| log.Error("the boot file(%s) must be a python file", strings.TrimSpace(form.BootFile)) | |||||
| return errors.New("启动文件必须是python文件") | return errors.New("启动文件必须是python文件") | ||||
| } | } | ||||
| @@ -9,14 +9,14 @@ | |||||
| <div class="ui sixteen wide computer column list"> | <div class="ui sixteen wide computer column list"> | ||||
| {{ range .Members}} | {{ range .Members}} | ||||
| <div class="item ui grid"> | <div class="item ui grid"> | ||||
| <div class="three wide mobile two wide tablet two wide computer column"> | |||||
| <div class="three wide mobile two wide tablet one wide computer column"> | |||||
| <img class="ui avatar" src="{{.SizedRelAvatarLink 48}}"> | <img class="ui avatar" src="{{.SizedRelAvatarLink 48}}"> | ||||
| </div> | </div> | ||||
| <div class="seven wide mobile three wide tablet three wide computer column"> | <div class="seven wide mobile three wide tablet three wide computer column"> | ||||
| <div class="meta"><a href="{{.HomeLink}}">{{.Name}}</a></div> | <div class="meta"><a href="{{.HomeLink}}">{{.Name}}</a></div> | ||||
| <div class="meta">{{.FullName}}</div> | <div class="meta">{{.FullName}}</div> | ||||
| </div> | </div> | ||||
| <div class="ui four wide column center tablet only computer only"> | |||||
| <div class="ui three wide tablet four wide computer column center tablet only computer only"> | |||||
| <div class="meta"> | <div class="meta"> | ||||
| {{$.i18n.Tr "org.members.membership_visibility"}} | {{$.i18n.Tr "org.members.membership_visibility"}} | ||||
| </div> | </div> | ||||
| @@ -48,7 +48,7 @@ | |||||
| </style> | </style> | ||||
| <div class="row"> | <div class="row"> | ||||
| <div class="ui secondary tiny pointing borderless menu center aligned grid mbom"> | |||||
| <div class="ui secondary pointing borderless menu center aligned grid mbom"> | |||||
| {{with .Org}} | {{with .Org}} | ||||
| <a class="{{if $.PageIsOrgHome}}active{{end}} item" href="{{.HomeLink}}"> | <a class="{{if $.PageIsOrgHome}}active{{end}} item" href="{{.HomeLink}}"> | ||||
| {{svg "octicon-home" 16}} {{$.i18n.Tr "org.home"}} | {{svg "octicon-home" 16}} {{$.i18n.Tr "org.home"}} | ||||
| @@ -1,60 +1,58 @@ | |||||
| {{template "base/head" .}} | {{template "base/head" .}} | ||||
| <div class="repository"> | <div class="repository"> | ||||
| {{template "repo/header" .}} | |||||
| {{template "repo/header" .}} | |||||
| <div class="ui container"> | <div class="ui container"> | ||||
| <input type="hidden" id="postPath" value="{{.Link}}"> | <input type="hidden" id="postPath" value="{{.Link}}"> | ||||
| <div style="width: 80%;margin: auto;"> | <div style="width: 80%;margin: auto;"> | ||||
| <h4 class="ui top attached header"> | |||||
| {{$.i18n.Tr "dataset.upload_dataset_file"}} | |||||
| </h4> | |||||
| <div class="ui attached segment" style="padding: 2em 3em;"> | |||||
| <div class="ui form" id="dataset-base"> | |||||
| <el-form label-width="140px"> | |||||
| {{.CsrfTokenHtml}} | |||||
| <el-form-item label='{{$.i18n.Tr "dataset.dataset_available_clusters"}}:' prop="title"> | |||||
| <el-button :class="{active:type==0}" :disabled="clusterFlag" size="small" style="margin: 0;border-radius: 0.28571429rem 0 0 0.28571429rem;" @click="uploadGpu">CPU/GPU</el-button> | |||||
| <el-button :class="{active:type==1}" :disabled="clusterFlag" size="small" style="margin: 0 0 0 -4px;border-radius: 0 0.28571429rem 0.28571429rem 0;" @click="uploadNpu">NPU</el-button> | |||||
| </el-form-item> | |||||
| <el-form-item label='{{$.i18n.Tr "dataset.file_description"}}:' prop="description"> | |||||
| <el-input type="textarea" :rows="3" maxlength="255" placeholder="{{$.i18n.Tr "repo.modelarts.train_job.new_place"}}" v-model="desc"></el-input> | |||||
| </el-form-item> | |||||
| <el-form-item label='{{$.i18n.Tr "dataset.data_upload"}}:' prop="category"> | |||||
| <h4 class="ui top attached header"> | |||||
| {{$.i18n.Tr "dataset.upload_dataset_file"}} | |||||
| </h4> | |||||
| <div class="ui attached segment" style="padding: 2em 3em;"> | |||||
| <div class="ui form" id="dataset-base"> | |||||
| <el-form label-width="140px"> | |||||
| {{.CsrfTokenHtml}} | |||||
| <el-form-item label='{{$.i18n.Tr "dataset.dataset_available_clusters"}}:' prop="title"> | |||||
| <el-button :class="{active:type==0}" :disabled="clusterFlag" size="small" | |||||
| style="margin: 0;border-radius: 0.28571429rem 0 0 0.28571429rem;" @click="uploadGpu"> | |||||
| CPU/GPU</el-button> | |||||
| <el-button :class="{active:type==1}" :disabled="clusterFlag" size="small" | |||||
| style="margin: 0 0 0 -4px;border-radius: 0 0.28571429rem 0.28571429rem 0;" | |||||
| @click="uploadNpu">NPU</el-button> | |||||
| </el-form-item> | |||||
| <el-form-item label='{{$.i18n.Tr "dataset.file_description"}}:' prop="description"> | |||||
| <el-input type="textarea" :rows="3" maxlength="255" | |||||
| placeholder="{{$.i18n.Tr "repo.modelarts.train_job.new_place"}}" v-model="desc"> | |||||
| </el-input> | |||||
| </el-form-item> | |||||
| <el-form-item label='{{$.i18n.Tr "dataset.data_upload"}}:' prop="category"> | |||||
| <minio-uploader :uploadtype="type" :desc="desc" @setcluster="setcluster"></minio-uploader> | <minio-uploader :uploadtype="type" :desc="desc" @setcluster="setcluster"></minio-uploader> | ||||
| </el-form-item> | |||||
| <div style='display:none;' | |||||
| id="minioUploader-params" | |||||
| data-uuid="{{.uuid}}" | |||||
| data-add-url="{{.Repository.OwnerName}}/attachments/add" | |||||
| data-accepts="{{.AttachmentAllowedTypes}}" | |||||
| data-remove-url="{{AppSubUrl}}/attachments/delete" | |||||
| data-csrf="{{.CsrfToken}}" | |||||
| dataset-id={{.dataset.ID}} | |||||
| data-max-file="100" | |||||
| data-dataset-id="{{.dataset.ID}}" | |||||
| data-max-size="{{.AttachmentMaxSize}}" | |||||
| data-default-message="{{.i18n.Tr "dropzone.default_message"}}" | |||||
| data-invalid-input-type="{{.i18n.Tr "dropzone.invalid_input_type"}}" | |||||
| data-file-too-big="{{.i18n.Tr "dropzone.file_too_big"}}" | |||||
| data-remove-file="{{.i18n.Tr "dropzone.remove_file"}}" | |||||
| data-file-status='{{.i18n.Tr "dropzone.file_status"}}' | |||||
| data-file-init-status='{{.i18n.Tr "dropzone.file_init_status"}}' | |||||
| data-waitting-uploading='{{.i18n.Tr "dropzone.waitting_uploading"}}' | |||||
| data-md5-computing='{{.i18n.Tr "dropzone.md5_computing"}}' | |||||
| data-obs-connecting='{{.i18n.Tr "dropzone.obs-connecting"}}' | |||||
| data-loading-file='{{.i18n.Tr "dropzone.loading_file"}}' | |||||
| data-upload-complete='{{.i18n.Tr "dropzone.upload_complete"}}' | |||||
| data-uploading='{{.i18n.Tr "dropzone.uploading"}}' | |||||
| data-failed='{{.i18n.Tr "dropzone.failed"}}' | |||||
| data-repopath='{{AppSubUrl}}{{$.RepoLink}}/datasets' | |||||
| data-cancel='{{.i18n.Tr "cancel"}}' | |||||
| data-upload='{{.i18n.Tr "dataset.dataset_upload"}}' | |||||
| > | |||||
| </el-form-item> | |||||
| <div style='display:none;' id="minioUploader-params" data-uuid="{{.uuid}}" | |||||
| data-add-url="{{.Repository.OwnerName}}/attachments/add" | |||||
| data-accepts="{{.AttachmentAllowedTypes}}" | |||||
| data-remove-url="{{AppSubUrl}}/attachments/delete" data-csrf="{{.CsrfToken}}" | |||||
| dataset-id={{.dataset.ID}} data-max-file="100" data-dataset-id="{{.dataset.ID}}" | |||||
| data-max-size="{{.AttachmentMaxSize}}" | |||||
| data-default-message="{{.i18n.Tr "dropzone.default_dataset_message"}}" | |||||
| data-invalid-input-type="{{.i18n.Tr "dropzone.invalid_input_type"}}" | |||||
| data-file-too-big="{{.i18n.Tr "dropzone.file_too_big"}}" | |||||
| data-remove-file="{{.i18n.Tr "dropzone.remove_file"}}" | |||||
| data-file-status='{{.i18n.Tr "dropzone.file_status"}}' | |||||
| data-file-init-status='{{.i18n.Tr "dropzone.file_init_status"}}' | |||||
| data-waitting-uploading='{{.i18n.Tr "dropzone.waitting_uploading"}}' | |||||
| data-md5-computing='{{.i18n.Tr "dropzone.md5_computing"}}' | |||||
| data-obs-connecting='{{.i18n.Tr "dropzone.obs-connecting"}}' | |||||
| data-loading-file='{{.i18n.Tr "dropzone.loading_file"}}' | |||||
| data-upload-complete='{{.i18n.Tr "dropzone.upload_complete"}}' | |||||
| data-uploading='{{.i18n.Tr "dropzone.uploading"}}' | |||||
| data-failed='{{.i18n.Tr "dropzone.failed"}}' | |||||
| data-repopath='{{AppSubUrl}}{{$.RepoLink}}/datasets' data-cancel='{{.i18n.Tr "cancel"}}' | |||||
| data-upload='{{.i18n.Tr "dataset.dataset_upload"}}'> | |||||
| </div> | </div> | ||||
| <div id="datasetId" datasetId="{{.datasetId}}"></div> | <div id="datasetId" datasetId="{{.datasetId}}"></div> | ||||
| </el-form> | |||||
| </div> | |||||
| </div> | |||||
| </el-form> | |||||
| </div> | |||||
| </div> | |||||
| </div> | </div> | ||||
| <div style="width: 80%;margin: auto;padding-top: 2em;"> | <div style="width: 80%;margin: auto;padding-top: 2em;"> | ||||
| <!-- <p>说明:<br> | <!-- <p>说明:<br> | ||||
| @@ -62,10 +60,11 @@ | |||||
| - 云脑1提供 <span class="text blue">CPU / GPU</span> 资源,云脑2提供 <span class="text blue">Ascend NPU</span> 资源;调试使用的数据集也需要上传到对应的环境。 | - 云脑1提供 <span class="text blue">CPU / GPU</span> 资源,云脑2提供 <span class="text blue">Ascend NPU</span> 资源;调试使用的数据集也需要上传到对应的环境。 | ||||
| </p> --> | </p> --> | ||||
| <p style="color: 505559;">{{$.i18n.Tr "dataset.illustrate"}}:</p> | <p style="color: 505559;">{{$.i18n.Tr "dataset.illustrate"}}:</p> | ||||
| <p style="line-height: 1.5;color: #101010;">{{$.i18n.Tr "dataset.illustrate.only"}}<span class="text red"> {{$.i18n.Tr "dataset.illustrate.zip"}} </span>{{$.i18n.Tr "dataset.illustrate.fisrt_end"}};</br> | |||||
| <p style="line-height: 1.5;color: #101010;">{{$.i18n.Tr "dataset.illustrate.only"}}<span | |||||
| class="text red"> {{$.i18n.Tr "dataset.illustrate.zip"}} </span>{{$.i18n.Tr "dataset.illustrate.fisrt_end"}};</br> | |||||
| {{$.i18n.Tr "dataset.dataset_explain"}}</p> | {{$.i18n.Tr "dataset.dataset_explain"}}</p> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| {{template "base/footer" .}} | |||||
| {{template "base/footer" .}} | |||||
| @@ -7,6 +7,8 @@ | |||||
| background: #FFF !important; | background: #FFF !important; | ||||
| } | } | ||||
| .dataset_title { | .dataset_title { | ||||
| font-size: 14px; | font-size: 14px; | ||||
| max-width: 80%; | max-width: 80%; | ||||
| @@ -211,11 +213,22 @@ | |||||
| <div class="ui grid stackable" style="background: #f0f0f0;;"> | <div class="ui grid stackable" style="background: #f0f0f0;;"> | ||||
| <div class="row"> | <div class="row"> | ||||
| <!-- 数据集名称 --> | <!-- 数据集名称 --> | ||||
| <div class="four wide column" style="width: 24% !important;"> | |||||
| <span style="margin:0 6px">{{$.i18n.Tr "dataset.dataset_file_name"}}</span> | |||||
| <div class="four wide column name_sort" @click="sortAble('name')" style="width: 24% !important;"> | |||||
| {{$.i18n.Tr "dataset.dataset_file_name"}} | |||||
| <span class="caret-wrapper"> | |||||
| <i class='ri-arrow-up-s-fill sort-caret-up {{if eq .SortType "nameAsc"}} active-sort {{end}}'></i> | |||||
| <i | |||||
| class='ri-arrow-down-s-fill sort-caret-down {{if eq .SortType "nameDesc"}} active-sort {{end}}'></i> | |||||
| </span> | |||||
| </div> | </div> | ||||
| <div class="one wide column text center" style="width: 7.25% !important;"> | |||||
| <div class="one wide column text center size_sort" @click="sortAble('size')" | |||||
| style="width: 7.25% !important;"> | |||||
| {{$.i18n.Tr "repo.model.manage.size"}} | {{$.i18n.Tr "repo.model.manage.size"}} | ||||
| <span class="caret-wrapper"> | |||||
| <i class='ri-arrow-up-s-fill sort-caret-up {{if eq .SortType "sizeAsc"}} active-sort {{end}}'></i> | |||||
| <i | |||||
| class='ri-arrow-down-s-fill sort-caret-down {{if eq .SortType "sizeDesc"}} active-sort {{end}}'></i> | |||||
| </span> | |||||
| </div> | </div> | ||||
| <div class="two wide column text center"> | <div class="two wide column text center"> | ||||
| {{$.i18n.Tr "dataset.dataset_available_clusters"}} | {{$.i18n.Tr "dataset.dataset_available_clusters"}} | ||||
| @@ -226,8 +239,13 @@ | |||||
| <div class="one wide column text center"> | <div class="one wide column text center"> | ||||
| {{$.i18n.Tr "repo.cloudbrain_creator"}} | {{$.i18n.Tr "repo.cloudbrain_creator"}} | ||||
| </div> | </div> | ||||
| <div class="three wide column text center"> | |||||
| <div class="three wide column text center" @click="sortAble('time')"> | |||||
| {{$.i18n.Tr "dataset.dataset_upload_time"}} | {{$.i18n.Tr "dataset.dataset_upload_time"}} | ||||
| <span class="caret-wrapper"> | |||||
| <i class='ri-arrow-up-s-fill sort-caret-up {{if eq .SortType "timeAsc"}} active-sort {{end}}'></i> | |||||
| <i | |||||
| class='ri-arrow-down-s-fill sort-caret-down {{if eq .SortType "timeDesc"}} active-sort {{end}}'></i> | |||||
| </span> | |||||
| </div> | </div> | ||||
| <div class="four wide column text center"> | <div class="four wide column text center"> | ||||
| {{$.i18n.Tr "repo.cloudbrain_operate"}} | {{$.i18n.Tr "repo.cloudbrain_operate"}} | ||||
| @@ -162,5 +162,12 @@ | |||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </div> | </div> | ||||
| </repo-search> | |||||
| </repo-search> | |||||
| <div class="ui hidden divider"></div> | |||||
| <div> | |||||
| <a href="https://openi.org.cn/index.php?m=content&c=index&a=show&catid=202&id=221" target="_blank"> | |||||
| <img src="https://openi.org.cn/uploadfile/2022/0427/c45291e24e30f54.jpg" class="ui fluid image" alt=""> | |||||
| </a> | |||||
| </div> | |||||
| </div> | </div> | ||||
| @@ -1225,10 +1225,7 @@ async function initRepository() { | |||||
| const $content = $segment.parent(); | const $content = $segment.parent(); | ||||
| if (!$content.find('.ui.small.images').length) { | if (!$content.find('.ui.small.images').length) { | ||||
| if (data.attachments !== '') { | if (data.attachments !== '') { | ||||
| $content.append( | |||||
| '<div class="ui bottom attached segment"><div class="ui small images"></div></div>' | |||||
| ); | |||||
| $content.find('.ui.small.images').html(data.attachments); | |||||
| } | } | ||||
| } else if (data.attachments === '') { | } else if (data.attachments === '') { | ||||
| $content | $content | ||||
| @@ -3923,19 +3920,10 @@ function initVueDataset() { | |||||
| MinioUploader | MinioUploader | ||||
| }, | }, | ||||
| mounted() { | mounted() { | ||||
| // if(document.getElementById('postPath')){ | |||||
| // this.url = document.getElementById('postPath').value | |||||
| // } | |||||
| // this.privates = items | |||||
| // this.num_stars = num_stars | |||||
| // this.star_active = star_active | |||||
| // this.ruleForm1 = ruleForm | |||||
| // // this.getEditInit() | |||||
| // this.getTypeList() | |||||
| this.getTypeList() | this.getTypeList() | ||||
| if (!!document.getElementById('dataset-repolink-init')) { | if (!!document.getElementById('dataset-repolink-init')) { | ||||
| this.cloudbrainType = location.href.indexOf('cloudbrain/train-job/create') !== -1 ? 0 : 1 | |||||
| this.getCurrentRepoDataset(this.repolink, this.cloudbrainType) | this.getCurrentRepoDataset(this.repolink, this.cloudbrainType) | ||||
| } | } | ||||
| @@ -4083,6 +4071,25 @@ function initVueDataset() { | |||||
| uploadNpu() { | uploadNpu() { | ||||
| this.type = 1 | this.type = 1 | ||||
| }, | }, | ||||
| sortAble(dom) { | |||||
| const params = new URLSearchParams(location.search) | |||||
| if (params.toString() === '') { | |||||
| location.href = `${location.href}?sort=${dom}Asc` | |||||
| } | |||||
| else if (!params.get('sort')) { | |||||
| location.href = `${location.href}&sort=${dom}Asc` | |||||
| } | |||||
| else if (params.get('sort') === `${dom}Desc` || params.get('sort').indexOf(`${dom}`) === -1) { | |||||
| params.delete('sort') | |||||
| let asc = params.toString() + `&sort=${dom}Asc` | |||||
| location.search = asc | |||||
| } | |||||
| else { | |||||
| params.delete('sort') | |||||
| let desc = params.toString() + `&sort=${dom}Desc` | |||||
| location.search = desc | |||||
| } | |||||
| }, | |||||
| setPrivate(uuid, privateFlag, index) { | setPrivate(uuid, privateFlag, index) { | ||||
| const params = { _csrf: csrf, file: uuid, is_private: privateFlag } | const params = { _csrf: csrf, file: uuid, is_private: privateFlag } | ||||
| this.$axios.post('/attachments/private', this.qs.stringify(params)).then((res) => { | this.$axios.post('/attachments/private', this.qs.stringify(params)).then((res) => { | ||||
| @@ -82,9 +82,14 @@ footer { | |||||
| } | } | ||||
| /*PC*/ | /*PC*/ | ||||
| @media only screen and (min-width: 1200px){ | @media only screen and (min-width: 1200px){ | ||||
| .following.bar #navbar, footer .container { | |||||
| padding: 0; | |||||
| .following.bar #navbar, footer .container { | |||||
| padding: 0; | |||||
| } | |||||
| } | } | ||||
| @media only screen and (min-width: 1600px){ | |||||
| .ui.ui.ui.container:not(.fluid) { | |||||
| width: 1200px; | |||||
| } | |||||
| } | } | ||||
| /*start page*/ | /*start page*/ | ||||
| @@ -655,7 +660,10 @@ display: block; | |||||
| } | } | ||||
| /*pages*/ | /*pages*/ | ||||
| .ui.borderless.pagination {border:none} | |||||
| .ui.borderless.pagination { | |||||
| border:none; | |||||
| margin-top: .5rem; | |||||
| } | |||||
| .ui.pagination.menu .item { | .ui.pagination.menu .item { | ||||
| min-width: 32px; | min-width: 32px; | ||||
| text-align: center; | text-align: center; | ||||
| @@ -1055,3 +1063,33 @@ display: block; | |||||
| float: left !important; | float: left !important; | ||||
| margin: 0px 5px 0px 0px !important; | margin: 0px 5px 0px 0px !important; | ||||
| } | } | ||||
| .row .caret-wrapper { | |||||
| display: inline-flex; | |||||
| flex-direction: column; | |||||
| align-items: center; | |||||
| height: 34px; | |||||
| width: 24px; | |||||
| vertical-align: middle; | |||||
| cursor: pointer; | |||||
| position: relative; | |||||
| } | |||||
| .row .sort-caret-up { | |||||
| position: absolute; | |||||
| top: 5px; | |||||
| color: #c0c4cc; | |||||
| font-size: 18px; | |||||
| } | |||||
| .row .sort-caret-down { | |||||
| position: absolute; | |||||
| bottom: 3px; | |||||
| color: #c0c4cc; | |||||
| font-size: 18px; | |||||
| } | |||||
| .row .active-sort { | |||||
| color: #409eff !important; | |||||
| } | |||||