Import into currently open folder

This commit is contained in:
Marcel Klehr 2020-05-20 14:51:39 +02:00
parent e86437c93b
commit e7eb042d7c
6 changed files with 13 additions and 15 deletions

View File

@ -52,6 +52,7 @@ return [
['name' => 'internal_folders#edit_folder', 'url' => '/folder/{folderId}', 'verb' => 'PUT'],
['name' => 'internal_folders#delete_folder', 'url' => '/folder/{folderId}', 'verb' => 'DELETE'],
['name' => 'internal_folders#hash_folder', 'url' => '/folder/{folderId}/hash', 'verb' => 'GET'],
['name' => 'internal_bookmark#import_bookmark', 'url' => '/folder/{folder}/import', 'verb' => 'POST'],
['name' => 'internal_folders#get_folder_children', 'url' => '/folder/{folderId}/children', 'verb' => 'GET'],
['name' => 'internal_folders#get_folder_children_order', 'url' => '/folder/{folderId}/childorder', 'verb' => 'GET'],
['name' => 'internal_folders#set_folder_children_order', 'url' => '/folder/{folderId}/childorder', 'verb' => 'PATCH'],

View File

@ -631,6 +631,8 @@ class BookmarkController extends ApiController {
if ($folder !== null) {
$folder = $this->toInternalFolderId($folder);
}else{
$folder = $this->_getRootFolderId();
}
try {

View File

@ -157,12 +157,12 @@ class InternalBookmarkController extends ApiController {
}
/**
*
* @param int|null $folder
* @return JSONResponse
* @NoAdminRequired
*/
public function importBookmark() {
return $this->publicController->importBookmark();
public function importBookmark($folder = null) {
return $this->publicController->importBookmark($folder);
}
/**

View File

@ -372,13 +372,8 @@ class FolderService {
* @throws UnauthorizedAccessError
* @throws UserLimitExceededError
*/
public function importFile(string $userId, $file, $folder = null): array {
public function importFile(string $userId, $file, $folder): array {
$importFolderId = $folder;
if ($folder === null) {
$rootFolder = $this->folderMapper->findRootFolder($userId);
$newFolder = $this->create($this->l10n->t('Imported bookmarks'), $rootFolder->getId());
$importFolderId = $newFolder->getId();
}
return $this->htmlImporter->importFile($userId, $file, $importFolderId);
}
}

View File

@ -132,11 +132,11 @@ export default {
async onImportSubmit(e) {
this.importing = true
try {
await this.$store.dispatch(actions.IMPORT_BOOKMARKS, e.target.files[0])
this.$router.push({ name: this.routes.HOME })
} finally {
this.importing = false
await this.$store.dispatch(actions.IMPORT_BOOKMARKS, { file: e.target.files[0], folder: this.$route.params.folder })
} catch (e) {
console.warn(e)
}
this.importing = false
},
onExport() {
window.location

View File

@ -232,11 +232,11 @@ export default {
throw err
}
},
[actions.IMPORT_BOOKMARKS]({ commit, dispatch, state }, file) {
[actions.IMPORT_BOOKMARKS]({ commit, dispatch, state }, { file, folder }) {
const data = new FormData()
data.append('bm_import', file)
return axios
.post(url(state, `/bookmark/import`), data)
.post(url(state, `/folder/${folder || -1}/import`), data)
.then(response => {
if (!response.data || response.data.status !== 'success') {
if (response.status === 413) {