Skip to content
Snippets Groups Projects
Commit c5f93b36 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#728 - improve access to request attributes

parent bdee6a20
Branches
Tags v1.1.0
No related merge requests found
...@@ -86,7 +86,7 @@ public class SettingsController extends BaseController ...@@ -86,7 +86,7 @@ public class SettingsController extends BaseController
private static class RequestAttributeNames private static class RequestAttributeNames
{ {
public static final String DATABASE = "database"; public static final String DATABASE_TO_IMPORT = "databaseToImport";
public static final String IMPORT_TEMPLATE_GROUPS = "importTemplatesGroups"; public static final String IMPORT_TEMPLATE_GROUPS = "importTemplatesGroups";
public static final String IMPORT_TEMPLATES = "importTemplates"; public static final String IMPORT_TEMPLATES = "importTemplates";
public static final String IMPORT_CHARTS = "importCharts"; public static final String IMPORT_CHARTS = "importCharts";
...@@ -123,7 +123,7 @@ public class SettingsController extends BaseController ...@@ -123,7 +123,7 @@ public class SettingsController extends BaseController
public String settings(WebRequest request, Model model) public String settings(WebRequest request, Model model)
{ {
prepareBasicModel(model, settingsService.getSettings()); prepareBasicModel(model, settingsService.getSettings());
request.removeAttribute(RequestAttributeNames.DATABASE, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.DATABASE_TO_IMPORT, RequestAttributes.SCOPE_SESSION);
request.removeAttribute(RequestAttributeNames.IMPORT_TEMPLATE_GROUPS, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.IMPORT_TEMPLATE_GROUPS, RequestAttributes.SCOPE_SESSION);
request.removeAttribute(RequestAttributeNames.IMPORT_TEMPLATES, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.IMPORT_TEMPLATES, RequestAttributes.SCOPE_SESSION);
request.removeAttribute(RequestAttributeNames.IMPORT_CHARTS, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.IMPORT_CHARTS, RequestAttributes.SCOPE_SESSION);
...@@ -375,7 +375,7 @@ public class SettingsController extends BaseController ...@@ -375,7 +375,7 @@ public class SettingsController extends BaseController
DatabaseParser importer = new DatabaseParser(jsonString); DatabaseParser importer = new DatabaseParser(jsonString);
InternalDatabase database = importer.parseDatabaseFromJSON(); InternalDatabase database = importer.parseDatabaseFromJSON();
request.setAttribute(RequestAttributeNames.DATABASE, database, RequestAttributes.SCOPE_SESSION); request.setAttribute(RequestAttributeNames.DATABASE_TO_IMPORT, database, RequestAttributes.SCOPE_SESSION);
return ReturnValues.REDIRECT_IMPORT_DATABASE_STEP_1; return ReturnValues.REDIRECT_IMPORT_DATABASE_STEP_1;
} }
catch(Exception e) catch(Exception e)
...@@ -391,7 +391,7 @@ public class SettingsController extends BaseController ...@@ -391,7 +391,7 @@ public class SettingsController extends BaseController
@GetMapping("/database/import/step1") @GetMapping("/database/import/step1")
public String importStepOne(WebRequest request, Model model) public String importStepOne(WebRequest request, Model model)
{ {
model.addAttribute(ModelAttributes.DATABASE, request.getAttribute(RequestAttributeNames.DATABASE, RequestAttributes.SCOPE_SESSION)); model.addAttribute(ModelAttributes.DATABASE, request.getAttribute(RequestAttributeNames.DATABASE_TO_IMPORT, RequestAttributes.SCOPE_SESSION));
return ReturnValues.IMPORT_DATABASE_STEP_1; return ReturnValues.IMPORT_DATABASE_STEP_1;
} }
...@@ -401,8 +401,8 @@ public class SettingsController extends BaseController ...@@ -401,8 +401,8 @@ public class SettingsController extends BaseController
@RequestParam(value = "TEMPLATE_GROUP", required = false) boolean importTemplateGroups, @RequestParam(value = "TEMPLATE_GROUP", required = false) boolean importTemplateGroups,
@RequestParam(value = "CHART", required = false) boolean importCharts) @RequestParam(value = "CHART", required = false) boolean importCharts)
{ {
final InternalDatabase database = (InternalDatabase) request.getAttribute(RequestAttributeNames.DATABASE, RequestAttributes.SCOPE_SESSION); final InternalDatabase database = (InternalDatabase) request.getAttribute(RequestAttributeNames.DATABASE_TO_IMPORT, RequestAttributes.SCOPE_SESSION);
request.removeAttribute(RequestAttributeNames.DATABASE, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.DATABASE_TO_IMPORT, RequestAttributes.SCOPE_SESSION);
prepareBasicModel(model, settingsService.getSettings()); prepareBasicModel(model, settingsService.getSettings());
......
...@@ -79,11 +79,11 @@ public class TransactionImportController extends BaseController ...@@ -79,11 +79,11 @@ public class TransactionImportController extends BaseController
{ {
request.removeAttribute(RequestAttributeNames.CURRENT_CSV_TRANSACTION, RequestAttributes.SCOPE_SESSION); request.removeAttribute(RequestAttributeNames.CURRENT_CSV_TRANSACTION, RequestAttributes.SCOPE_SESSION);
// copy session attributes to model, otherwise they are not available in freemarker final Object attribute = request.getAttribute(RequestAttributeNames.CSV_IMPORT, RequestAttributes.SCOPE_SESSION);
fillModelAttributeFromRequestSessionOrDefault(model, RequestAttributeNames.CSV_IMPORT, request, new CsvImport(null, ";", StandardCharsets.UTF_8.name(), 0)); if(attribute == null)
fillModelAttributeFromRequestSession(model, RequestAttributeNames.CSV_ROWS, request); {
fillModelAttributeFromRequestSession(model, RequestAttributeNames.CSV_TRANSACTIONS, request); model.addAttribute(RequestAttributeNames.CSV_IMPORT, new CsvImport(null, ";", StandardCharsets.UTF_8.name(), 0));
fillModelAttributeFromRequestSession(model, RequestAttributeNames.ERRORS_COLUMN_SETTINGS, request); }
final Object bindingResult = request.getAttribute(RequestAttributeNames.ERROR_UPLOAD, RequestAttributes.SCOPE_SESSION); final Object bindingResult = request.getAttribute(RequestAttributeNames.ERROR_UPLOAD, RequestAttributes.SCOPE_SESSION);
if(bindingResult != null) if(bindingResult != null)
...@@ -98,28 +98,6 @@ public class TransactionImportController extends BaseController ...@@ -98,28 +98,6 @@ public class TransactionImportController extends BaseController
return ReturnValues.TRANSACTION_IMPORT; return ReturnValues.TRANSACTION_IMPORT;
} }
private void fillModelAttributeFromRequestSessionOrDefault(Model model, String attributeName, WebRequest request, Object defaultValue)
{
final Object attribute = request.getAttribute(attributeName, RequestAttributes.SCOPE_SESSION);
if(attribute == null)
{
model.addAttribute(attributeName, defaultValue);
}
else
{
model.addAttribute(attributeName, attribute);
}
}
private void fillModelAttributeFromRequestSession(Model model, String attributeName, WebRequest request)
{
final Object attribute = request.getAttribute(attributeName, RequestAttributes.SCOPE_SESSION);
if(attribute != null)
{
model.addAttribute(attributeName, attribute);
}
}
@PostMapping("/upload") @PostMapping("/upload")
public String upload(WebRequest request, public String upload(WebRequest request,
@ModelAttribute("CsvImport") CsvImport csvImport, @ModelAttribute("CsvImport") CsvImport csvImport,
......
...@@ -15,6 +15,8 @@ logging.level.de.deadlocker8=DEBUG ...@@ -15,6 +15,8 @@ logging.level.de.deadlocker8=DEBUG
spring.freemarker.template-loader-path= classpath:/templates spring.freemarker.template-loader-path= classpath:/templates
spring.freemarker.suffix=.ftl spring.freemarker.suffix=.ftl
spring.freemarker.expose-session-attributes=true
versionizer.service.cron=0 0 12 * * * versionizer.service.cron=0 0 12 * * *
app.name=@project.artifactId@ app.name=@project.artifactId@
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment