Fix new dir and new file and utf8 names
parent
9e42f0f1ed
commit
3785423d74
|
@ -109,6 +109,8 @@ export default {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#login input[type="text"]:focus,
|
||||||
|
#login input[type="password"]:focus,
|
||||||
#login input[type="text"]:hover,
|
#login input[type="text"]:hover,
|
||||||
#login input[type="password"]:hover {
|
#login input[type="password"]:hover {
|
||||||
border-color: #9f9f9f;
|
border-color: #9f9f9f;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div :class="{ multiple }">
|
<div :class="{ multiple, loading }">
|
||||||
<header>
|
<header>
|
||||||
<div>
|
<div>
|
||||||
<img src="../assets/logo.svg" alt="File Manager">
|
<img src="../assets/logo.svg" alt="File Manager">
|
||||||
|
|
|
@ -26,7 +26,7 @@ export default {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
if (this.new === '') return
|
if (this.new === '') return
|
||||||
|
|
||||||
let uri = window.location.pathname
|
let uri = this.$route.path
|
||||||
if (this.$store.state.req.kind !== 'listing') {
|
if (this.$store.state.req.kind !== 'listing') {
|
||||||
uri = url.removeLastDir(uri) + '/'
|
uri = url.removeLastDir(uri) + '/'
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ export default {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
if (this.new === '') return
|
if (this.new === '') return
|
||||||
|
|
||||||
let uri = window.location.pathname
|
let uri = this.$route.path
|
||||||
if (this.$store.state.req.kind !== 'listing') {
|
if (this.$store.state.req.kind !== 'listing') {
|
||||||
uri = url.removeLastDir(uri) + '/'
|
uri = url.removeLastDir(uri) + '/'
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,7 @@ import App from './App'
|
||||||
import store from './store/store'
|
import store from './store/store'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
|
|
||||||
Vue.config.productionTip = false
|
Vue.config.productionTip = true
|
||||||
|
|
||||||
/* eslint-disable no-new */
|
/* eslint-disable no-new */
|
||||||
new Vue({
|
new Vue({
|
||||||
|
|
|
@ -50,7 +50,7 @@ function login (user, password) {
|
||||||
|
|
||||||
function logout () {
|
function logout () {
|
||||||
document.cookie = `auth='nothing'; max-age=0; path=${store.state.baseURL}`
|
document.cookie = `auth='nothing'; max-age=0; path=${store.state.baseURL}`
|
||||||
router.push({path: 'login'})
|
router.push({path: '/login'})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
8
api.go
8
api.go
|
@ -5,6 +5,7 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
@ -212,13 +213,18 @@ func putHandler(c *requestContext, w http.ResponseWriter, r *http.Request) (int,
|
||||||
|
|
||||||
func postHandler(c *requestContext, w http.ResponseWriter, r *http.Request) (int, error) {
|
func postHandler(c *requestContext, w http.ResponseWriter, r *http.Request) (int, error) {
|
||||||
dst := r.Header.Get("Destination")
|
dst := r.Header.Get("Destination")
|
||||||
|
dst, err := url.QueryUnescape(dst)
|
||||||
|
if err != nil {
|
||||||
|
return errorToHTTP(err, true), err
|
||||||
|
}
|
||||||
|
|
||||||
src := r.URL.Path
|
src := r.URL.Path
|
||||||
|
|
||||||
if dst == "/" || src == "/" {
|
if dst == "/" || src == "/" {
|
||||||
return http.StatusForbidden, nil
|
return http.StatusForbidden, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
err := c.us.FileSystem.Rename(context.TODO(), src, dst)
|
err = c.us.FileSystem.Rename(context.TODO(), src, dst)
|
||||||
return errorToHTTP(err, true), err
|
return errorToHTTP(err, true), err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue