diff --git a/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java b/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java index 55bd7fb5..400e48e2 100644 --- a/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java +++ b/server/src/main/java/ctbrec/recorder/server/RecorderServlet.java @@ -303,6 +303,37 @@ public class RecorderServlet extends AbstractCtbrecServlet { for (Site site : sites) { Model model = site.createModelFromUrl(url); if (model != null) { + + // Copy over all properties from the request model + ModelDto modelDto = request.getModel(); + Integer priority = modelDto.getPriority(); + if (priority != null) { + model.setPriority(priority); + } + + // Boolean properties - use auto-boxing + Boolean forcePriority = modelDto.isForcePriority(); + if (forcePriority != null) { + model.setForcePriority(forcePriority); + } + + Boolean suspended = modelDto.isSuspended(); + if (suspended != null) { + model.setSuspended(suspended); + } + + Boolean bookmarked = modelDto.isBookmarked(); + if (bookmarked != null) { + model.setMarkedForLaterRecording(bookmarked); + } + + if (modelDto.getRecordUntil() != null) { + model.setRecordUntil(modelDto.getRecordUntil()); + } + + if (modelDto.getRecordUntilSubsequentAction() != null) { + model.setRecordUntilSubsequentAction(modelDto.getRecordUntilSubsequentAction()); + } recorder.addModel(model); return; } @@ -319,8 +350,39 @@ public class RecorderServlet extends AbstractCtbrecServlet { String modelName = input[1]; for (Site site : sites) { if (Objects.equals(siteName.toLowerCase(), site.getClass().getSimpleName().toLowerCase())) { - Model m = site.createModel(modelName); - recorder.addModel(m); + Model model = site.createModel(modelName); + + // Copy over all properties from the request model + ModelDto modelDto = request.getModel(); + Integer priority = modelDto.getPriority(); + if (priority != null) { + model.setPriority(priority); + } + + // Boolean properties - use auto-boxing + Boolean forcePriority = modelDto.isForcePriority(); + if (forcePriority != null) { + model.setForcePriority(forcePriority); + } + + Boolean suspended = modelDto.isSuspended(); + if (suspended != null) { + model.setSuspended(suspended); + } + + Boolean bookmarked = modelDto.isBookmarked(); + if (bookmarked != null) { + model.setMarkedForLaterRecording(bookmarked); + } + + if (modelDto.getRecordUntil() != null) { + model.setRecordUntil(modelDto.getRecordUntil()); + } + + if (modelDto.getRecordUntilSubsequentAction() != null) { + model.setRecordUntilSubsequentAction(modelDto.getRecordUntilSubsequentAction()); + } + recorder.addModel(model); return; } }