/**
  * list folders and assets
  * @param sfWebRequest $request
  */
 public function executeList(sfWebRequest $request)
 {
     $folder = sfAssetFolderPeer::retrieveByPath($request->getParameter('dir'));
     if (!$folder) {
         if ($this->getUser()->getFlash('sfAsset_folder_not_found')) {
             throw new sfException('You must create a root folder. Use the `php symfony asset:create-root` command for that.');
         } else {
             if ($popup = $request->getParameter('popup')) {
                 $this->getUser()->setAttribute('popup', $popup, 'sf_admin/sf_asset/navigation');
             }
             $this->getUser()->setFlash('sfAsset_folder_not_found', true);
             $this->redirect('@sf_asset_library_list');
         }
     }
     $this->filterform = new sfAssetFormFilter();
     $this->folderform = new sfAssetFolderForm(null, array('parent_id' => $folder->getId()));
     $this->fileform = new sfAssetForm(null, array('parent_id' => $folder->getId()));
     $this->renameform = new sfAssetFolderRenameForm($folder);
     $this->moveform = new sfAssetFolderMoveForm($folder);
     $this->dirs = $folder->getChildren();
     $this->files = $folder->getSortedFiles($this->dirs, $this->processSort($request));
     $this->nbFiles = count($this->files);
     $this->totalSize = sfAssetFolderPeer::countFilesSize($this->files);
     $this->nbDirs = count($this->dirs);
     $this->folder = $folder;
     $this->removeLayoutIfPopup($request);
 }