@@ -889,135 +889,6 @@ public void addNavTrail(NavTree root)
889889 }
890890 }
891891
892- @ RequiresPermission (AdminPermission .class )
893- public static class MoveWorkbookAction extends ConfirmAction <MoveWorkbookForm >
894- {
895- private Container _movedWb = null ;
896-
897- @ Override
898- public void validateCommand (MoveWorkbookForm form , Errors errors )
899- {
900-
901- }
902-
903- @ Override
904- public ModelAndView getConfirmView (MoveWorkbookForm form , BindException errors ) throws Exception
905- {
906- if (!getContainer ().isWorkbook ())
907- {
908- errors .reject (ERROR_MSG , "This is only supported for workbooks" );
909- return new SimpleErrorView (errors );
910- }
911-
912- String sb = "This will move this workbook to the selected folder, renaming this workbook to match the series in that container. Note: there are many reasons this can be problematic, so please do this with great care<p>" +
913- "<input name=\" targetContainer\" type=\" text\" ></input>" ;
914-
915- return new HtmlView (sb );
916- }
917-
918- @ Override
919- public boolean handlePost (MoveWorkbookForm form , BindException errors ) throws Exception
920- {
921- Container toMove = getContainer ();
922- if (!toMove .isWorkbook ())
923- {
924- errors .reject (ERROR_MSG , "This is only supported for workbooks" );
925- return false ;
926- }
927-
928- if (StringUtils .trimToNull (form .getTargetContainer ()) == null )
929- {
930- errors .reject (ERROR_MSG , "Must provide target container" );
931- return false ;
932- }
933-
934- Container target = ContainerManager .getForPath (StringUtils .trimToNull (form .getTargetContainer ()));
935- if (target == null )
936- {
937- target = ContainerManager .getForId (StringUtils .trimToNull (form .getTargetContainer ()));
938- }
939-
940- if (target == null )
941- {
942- errors .reject (ERROR_MSG , "Unknown container: " + form .getTargetContainer ());
943- return false ;
944- }
945-
946- if (target .isWorkbook ())
947- {
948- errors .reject (ERROR_MSG , "Target cannot be a workbook: " + form .getTargetContainer ());
949- return false ;
950- }
951-
952- if (ContainerManager .isSystemContainer (target ))
953- {
954- errors .reject (ERROR_MSG , "Cannot move to system containers: " + form .getTargetContainer ());
955- return false ;
956- }
957-
958- if (target .equals (toMove .getParent ()))
959- {
960- errors .reject (ERROR_MSG , "Cannot move the workbook to its current parent: " + form .getTargetContainer ());
961- return false ;
962- }
963-
964- //NOTE: transaction causing problems for larger sites?
965- //try (DbScope.Transaction transaction = CoreSchema.getInstance().getSchema().getScope().ensureTransaction())
966- //{
967- //first rename workbook to make unique
968- String tempName = new GUID ().toString ();
969- int sortOrder = (int )DbSequenceManager .get (target , ContainerManager .WORKBOOK_DBSEQUENCE_NAME ).next ();
970- _log .info ("renaming workbook to in preparation for move from: " + toMove .getPath () + " to: " + tempName );
971- ContainerManager .rename (toMove , getUser (), tempName );
972- toMove = ContainerManager .getForId (toMove .getId ());
973-
974- //then move parent
975- _log .info ("moving workbook from: " + toMove .getPath () + " to: " + target .getPath ());
976- ContainerManager .move (toMove , target , getUser ());
977- toMove = ContainerManager .getForId (toMove .getId ());
978-
979- //finally move to correct name
980- _log .info ("renaming workbook from: " + toMove .getPath () + " to: " + sortOrder );
981- ContainerManager .rename (toMove , getUser (), String .valueOf (sortOrder ));
982- toMove .setSortOrder (sortOrder );
983- new SqlExecutor (CoreSchema .getInstance ().getSchema ()).execute ("UPDATE core.containers SET SortOrder = ? WHERE EntityId = ?" , toMove .getSortOrder (), toMove .getId ());
984- toMove = ContainerManager .getForId (toMove .getId ());
985-
986- //transaction.commit();
987- _log .info ("workbook move finished" );
988-
989- _movedWb = toMove ;
990- //}
991-
992- return true ;
993- }
994-
995- @ NotNull
996- @ Override
997- public URLHelper getSuccessURL (MoveWorkbookForm moveWorkbookForm )
998- {
999- if (_movedWb == null )
1000- return getContainer ().getStartURL (getUser ());
1001- else
1002- return _movedWb .getStartURL (getUser ());
1003- }
1004- }
1005-
1006- public static class MoveWorkbookForm
1007- {
1008- private String _targetContainer ;
1009-
1010- public String getTargetContainer ()
1011- {
1012- return _targetContainer ;
1013- }
1014-
1015- public void setTargetContainer (String targetContainer )
1016- {
1017- _targetContainer = targetContainer ;
1018- }
1019- }
1020-
1021892 @ RequiresNoPermission
1022893 public class RedirectStartAction extends SimpleViewAction <Object >
1023894 {
0 commit comments