docs: @Override
      protected boolean performDialogOperation() throws CmsException {
  
          // check if the current resource is a folder for single operation
          boolean isFolder = isOperationOnFolder();
          // on folder move operation display "please wait" screen, not for simple file move operation
          if ((isMultiOperation() || isFolder) && !DIALOG_WAIT.equals(getParamAction())) {
              // return false, this will trigger the "please wait" screen
              return false;
          }
  
          // get the target name
          String target = getParamTarget();
          if (target == null) {
              target = "";
          }
  
          String siteRootFolder = null;
          try {
              // check if a site root was added to the target name
              String sitePrefix = "";
              if (OpenCms.getSiteManager().getSiteRoot(target) != null) {
                  siteRootFolder = getCms().getRequestContext().getSiteRoot();
                  if (siteRootFolder.endsWith("/")) {
                      siteRootFolder = siteRootFolder.substring(0, siteRootFolder.length() - 1);
                  }
                  sitePrefix = siteRootFolder;
                  getCms().getRequestContext().setSiteRoot("/");
              }
  
              Iterator<String> i = getResourceList().iterator();
              // iterate the resources to move
              while (i.hasNext()) {
                  String resName = i.next();
                  try {
                      performSingleMoveOperation(resName, target, sitePrefix);
                  } catch (CmsException e) {
                      if (isMultiOperation()) {
                          // collect exceptions to create a detailed output
                          addMultiOperationException(e);
                      } else {
                          // for single operation, throw the exception immediately
                          throw e;
                      }
                  }
              }
              // check if exceptions occurred
              checkMultiOperationException(Messages.get(), Messages.ERR_MOVE_MULTI_0);
          } finally {
              if (siteRootFolder != null) {
                  getCms().getRequestContext().setSiteRoot(siteRootFolder);
              }
          }
          return true;
      }