Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
BudgetMaster
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Robert Goldmann
BudgetMaster
Commits
8f03c897
Commit
8f03c897
authored
Jan 8, 2023
by
Robert Goldmann
Browse files
Options
Downloads
Patches
Plain Diff
#724 - always return to the same page and url
parent
f706d12f
No related branches found
No related tags found
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
+28
-12
28 additions, 12 deletions
...udgetmaster/transactions/TransactionImportController.java
with
28 additions
and
12 deletions
BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionImportController.java
+
28
−
12
View file @
8f03c897
...
@@ -18,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -18,7 +18,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.RequestAttributes
;
import
org.springframework.web.context.request.WebRequest
;
import
org.springframework.web.context.request.WebRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
import
java.util.List
;
import
java.util.List
;
...
@@ -29,7 +28,6 @@ public class TransactionImportController extends BaseController
...
@@ -29,7 +28,6 @@ public class TransactionImportController extends BaseController
private
static
class
ModelAttributes
private
static
class
ModelAttributes
{
{
public
static
final
String
ERROR
=
"error"
;
public
static
final
String
ERROR
=
"error"
;
public
static
final
String
ERROR_UPLOAD
=
"errorUpload"
;
}
}
private
static
class
ReturnValues
private
static
class
ReturnValues
...
@@ -43,6 +41,8 @@ public class TransactionImportController extends BaseController
...
@@ -43,6 +41,8 @@ public class TransactionImportController extends BaseController
{
{
public
static
final
String
CSV_IMPORT
=
"csvImport"
;
public
static
final
String
CSV_IMPORT
=
"csvImport"
;
public
static
final
String
CSV_ROWS
=
"csvRows"
;
public
static
final
String
CSV_ROWS
=
"csvRows"
;
public
static
final
String
ERROR_UPLOAD
=
"errorUpload"
;
public
static
final
String
ERROR_UPLOAD_FILE
=
"errorUploadFile"
;
}
}
private
final
TransactionService
transactionService
;
private
final
TransactionService
transactionService
;
...
@@ -56,15 +56,24 @@ public class TransactionImportController extends BaseController
...
@@ -56,15 +56,24 @@ public class TransactionImportController extends BaseController
}
}
@GetMapping
@GetMapping
public
String
transactionImport
(
HttpServletRequest
request
,
Model
model
)
public
String
transactionImport
(
WebRequest
request
,
Model
model
)
{
if
(
request
.
getAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
RequestAttributes
.
SCOPE_SESSION
)
==
null
)
{
{
model
.
addAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
new
CsvImport
(
null
,
";"
,
StandardCharsets
.
UTF_8
.
name
(),
0
));
model
.
addAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
new
CsvImport
(
null
,
";"
,
StandardCharsets
.
UTF_8
.
name
(),
0
));
}
final
Object
bindingResult
=
request
.
getAttribute
(
RequestAttributeNames
.
ERROR_UPLOAD
,
RequestAttributes
.
SCOPE_SESSION
);
if
(
bindingResult
!=
null
)
{
model
.
addAttribute
(
ModelAttributes
.
ERROR
,
bindingResult
);
}
return
ReturnValues
.
TRANSACTION_IMPORT
;
return
ReturnValues
.
TRANSACTION_IMPORT
;
}
}
@PostMapping
(
"/upload"
)
@PostMapping
(
"/upload"
)
public
String
upload
(
WebRequest
request
,
public
String
upload
(
WebRequest
request
,
Model
model
,
@ModelAttribute
(
"CsvImport"
)
CsvImport
csvImport
,
@ModelAttribute
(
"CsvImport"
)
CsvImport
csvImport
,
BindingResult
bindingResult
)
BindingResult
bindingResult
)
{
{
...
@@ -85,9 +94,9 @@ public class TransactionImportController extends BaseController
...
@@ -85,9 +94,9 @@ public class TransactionImportController extends BaseController
if
(
bindingResult
.
hasErrors
())
if
(
bindingResult
.
hasErrors
())
{
{
model
.
add
Attribute
(
Model
Attributes
.
ERROR
,
bindingResult
);
request
.
set
Attribute
(
Request
Attribute
Name
s
.
ERROR
_UPLOAD
,
bindingResult
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
setAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
csvImport
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
setAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
csvImport
,
RequestAttributes
.
SCOPE_SESSION
);
return
ReturnValues
.
TRANSACTION
_IMPORT
;
return
ReturnValues
.
REDIRECT
_IMPORT
;
}
}
try
try
...
@@ -95,6 +104,8 @@ public class TransactionImportController extends BaseController
...
@@ -95,6 +104,8 @@ public class TransactionImportController extends BaseController
final
String
csvString
=
new
String
(
csvImport
.
file
().
getBytes
(),
csvImport
.
encoding
());
final
String
csvString
=
new
String
(
csvImport
.
file
().
getBytes
(),
csvImport
.
encoding
());
final
List
<
CsvRow
>
csvRows
=
CsvParser
.
parseCsv
(
csvString
,
csvImport
.
separator
().
charAt
(
0
),
csvImport
.
numberOfLinesToSkip
());
final
List
<
CsvRow
>
csvRows
=
CsvParser
.
parseCsv
(
csvString
,
csvImport
.
separator
().
charAt
(
0
),
csvImport
.
numberOfLinesToSkip
());
removeAllAttributes
(
request
);
request
.
setAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
csvImport
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
setAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
csvImport
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
setAttribute
(
RequestAttributeNames
.
CSV_ROWS
,
csvRows
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
setAttribute
(
RequestAttributeNames
.
CSV_ROWS
,
csvRows
,
RequestAttributes
.
SCOPE_SESSION
);
}
}
...
@@ -103,18 +114,23 @@ public class TransactionImportController extends BaseController
...
@@ -103,18 +114,23 @@ public class TransactionImportController extends BaseController
LOGGER
.
error
(
"CSV upload failed"
,
e
);
LOGGER
.
error
(
"CSV upload failed"
,
e
);
// TODO: show in html
// TODO: show in html
model
.
add
Attribute
(
Model
Attributes
.
ERROR_UPLOAD
,
e
.
getMessage
());
request
.
set
Attribute
(
Request
Attribute
Name
s
.
ERROR_UPLOAD
_FILE
,
e
.
getMessage
()
,
RequestAttributes
.
SCOPE_SESSION
);
}
}
return
ReturnValues
.
REDIRECT_IMPORT
;
return
ReturnValues
.
TRANSACTION_IMPORT
;
}
}
@GetMapping
(
"/cancel"
)
@GetMapping
(
"/cancel"
)
public
String
cancel
(
WebRequest
request
)
public
String
cancel
(
WebRequest
request
)
{
removeAllAttributes
(
request
);
return
ReturnValues
.
REDIRECT_IMPORT
;
}
private
void
removeAllAttributes
(
WebRequest
request
)
{
{
request
.
removeAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
removeAttribute
(
RequestAttributeNames
.
CSV_IMPORT
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
removeAttribute
(
RequestAttributeNames
.
CSV_ROWS
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
removeAttribute
(
RequestAttributeNames
.
CSV_ROWS
,
RequestAttributes
.
SCOPE_SESSION
);
request
.
removeAttribute
(
RequestAttributeNames
.
ERROR_UPLOAD
,
RequestAttributes
.
SCOPE_SESSION
);
re
turn
ReturnValues
.
REDIRECT_IMPORT
;
re
quest
.
removeAttribute
(
RequestAttributeNames
.
ERROR_UPLOAD_FILE
,
RequestAttributes
.
SCOPE_SESSION
)
;
}
}
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment