From 3cae2fb249b5d7b0a6c03b216aca344a6d8fc3fd Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Sat, 15 Sep 2007 20:47:35 +0000 Subject: [PATCH] elofgren: USABILITY: Fix usability issue #48 "Delete and Move Files buttons need repositioning" Changes: * Remove the 'Move Files' button and enable multi-file drag and drop file moving * Position the 'Delete selected files' button under the checkboxes and make it turn red on hover * Add 'Ctrl' and 'Shift' range selection to file checkboxes * Add 'X' delete links to the right of each file * Rename the 'Save' button to 'Save folder name' and don't show it when listing 'assets' folder since it can't be renamed More info: http://www.silverstripe.com/google-summer-of-code-forum/flat/1607 (merged from branches/gsoc) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/cms/trunk@41927 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- code/AssetAdmin.php | 80 +++----- css/cms_left.css | 2 +- css/cms_right.css | 28 ++- javascript/AssetAdmin.js | 242 ++++++++++++++++++++++--- templates/Includes/AssetAdmin_right.ss | 2 - templates/Includes/AssetTableField.ss | 15 +- 6 files changed, 285 insertions(+), 84 deletions(-) diff --git a/code/AssetAdmin.php b/code/AssetAdmin.php index 1aae1641..430c0c0b 100755 --- a/code/AssetAdmin.php +++ b/code/AssetAdmin.php @@ -231,12 +231,22 @@ HTML; if($record) { $nameField = ($id != "root") ? new TextField("Name", "Folder Name") : new HiddenField("Name"); + if( $record->userCanEdit() ) { + $deleteButton = new InlineFormAction('deletemarked',"Delete selected files", 'delete'); + $deleteButton->includeDefaultJS(false); + } else { + $deleteButton = new HiddenField('deletemarked'); + } + $fields = new FieldSet( new HiddenField("Title"), new TabSet("Root", new Tab("Files", $nameField, - $fileList + $fileList, + $deleteButton, + new HiddenField("FileIDs"), + new HiddenField("DestFolderID") ), new Tab("Details", new ReadonlyField("URL"), @@ -255,11 +265,10 @@ HTML; $actions = new FieldSet(); - if( $record->userCanEdit() ) { + // Only show save button if not 'assets' folder + if( $record->userCanEdit() && $id != "root") { $actions = new FieldSet( - new FormAction('deletemarked',"Delete files"), - new FormAction('movemarked',"Move files..."), - new FormAction('save',"Save") + new FormAction('save',"Save folder name") ); } @@ -288,28 +297,11 @@ HTML; } } - /** - * Returns the form used to specify options for the "move marked" action. - */ - public function MoveMarkedOptionsForm() { - $folderDropdown = new TreeDropdownField("DestFolderID", "Move files to", "Folder"); - $folderDropdown->setFilterFunction(create_function('$obj', 'return $obj->class == "Folder";')); - - return new CMSActionOptionsForm($this, "MoveMarkedOptionsForm", new FieldSet( - new HiddenField("ID"), - new HiddenField("FileIDs"), - $folderDropdown - ), - new FieldSet( - new FormAction("movemarked", "Move marked files") - )); - } - /** * Perform the "move marked" action. - * Called by ajax, with a JavaScript return. + * Called and returns in same way as 'save' function */ - public function movemarked() { + public function movemarked($urlParams, $form) { if($_REQUEST['DestFolderID'] && is_numeric($_REQUEST['DestFolderID'])) { $destFolderID = $_REQUEST['DestFolderID']; $fileList = "'" . ereg_replace(' *, *',"','",trim(addslashes($_REQUEST['FileIDs']))) . "'"; @@ -330,36 +322,21 @@ HTML; user_error("No files in $fileList could be found!", E_USER_ERROR); } } - - echo <<