Add: support reset foldername

This commit is contained in:
2021-12-17 10:04:25 +08:00
parent 5608693c06
commit 359416ea44
4 changed files with 75 additions and 0 deletions

View File

@@ -82,6 +82,7 @@ func NewAPI(config Config) (*API, error) {
apiMux.HandleFunc("/delete_file", api.HandleDeleteFile) apiMux.HandleFunc("/delete_file", api.HandleDeleteFile)
apiMux.HandleFunc("/update_filename", api.HandleUpdateFilename) apiMux.HandleFunc("/update_filename", api.HandleUpdateFilename)
apiMux.HandleFunc("/reset_filename", api.HandleResetFilename) apiMux.HandleFunc("/reset_filename", api.HandleResetFilename)
apiMux.HandleFunc("/reset_foldername", api.HandleResetFoldername)
// feedback // feedback
apiMux.HandleFunc("/feedback", api.HandleFeedback) apiMux.HandleFunc("/feedback", api.HandleFeedback)
apiMux.HandleFunc("/get_feedbacks", api.HandleGetFeedbacks) apiMux.HandleFunc("/get_feedbacks", api.HandleGetFeedbacks)

View File

@@ -0,0 +1,34 @@
package api
import (
"encoding/json"
"net/http"
)
type ResetFoldernameRequest struct {
ID int64 `json:"id"`
}
func (api *API) HandleResetFoldername(w http.ResponseWriter, r *http.Request) {
// check admin
err := api.CheckAdmin(w, r)
if err != nil {
api.HandleError(w, r, err)
return
}
req := &ResetFoldernameRequest{}
err = json.NewDecoder(r.Body).Decode(req)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
err = api.Db.ResetFoldername(req.ID)
if err != nil {
api.HandleError(w, r, err)
return
}
api.HandleOK(w, r)
}

View File

@@ -383,3 +383,17 @@ func (database *Database) ResetFilename(fileId int64) error {
} }
return nil return nil
} }
func (database *Database) ResetFoldername(folderId int64) error {
folder, err := database.GetFolder(folderId)
if err != nil {
return err
}
foldername := filepath.Base(folder.Folder)
err = database.UpdateFoldername(folderId, foldername)
if err != nil {
return err
}
return nil
}

View File

@@ -76,6 +76,29 @@ function FilesInFolder(props) {
}); });
} }
function resetFoldername() {
setIsLoading(true);
fetch("/api/v1/reset_foldername", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
id: parseInt(params.id),
}),
})
.then((response) => response.json())
.then((data) => {
if (data.error) {
alert(data.error);
} else {
refresh();
}
})
.catch((error) => alert(error))
.finally(() => {
setIsLoading(false);
});
}
return ( return (
<div className="page"> <div className="page">
<h3>Files in Folder</h3> <h3>Files in Folder</h3>
@@ -93,7 +116,10 @@ function FilesInFolder(props) {
value={newFoldername} value={newFoldername}
onChange={(e) => setNewFoldername(e.target.value)} onChange={(e) => setNewFoldername(e.target.value)}
/> />
<div>
<button onClick={() => updateFoldername()}>Save</button> <button onClick={() => updateFoldername()}>Save</button>
<button onClick={() => resetFoldername()}>Reset</button>
</div>
</div> </div>
</div> </div>
); );