CCM NG/ccm-cms: Implementation of AssetManager#move
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4411 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
91642426b2
commit
a8a9a4cf28
|
|
@ -18,6 +18,7 @@
|
|||
*/
|
||||
package org.librecms.assets;
|
||||
|
||||
import com.arsdigita.util.UncheckedWrapperException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
|
@ -46,6 +47,7 @@ import org.librecms.contentsection.FolderRepository;
|
|||
import org.librecms.contentsection.privileges.AssetPrivileges;
|
||||
|
||||
import java.util.Objects;
|
||||
import org.libreccm.categorization.ObjectNotAssignedToCategoryException;
|
||||
|
||||
import static org.librecms.CmsConstants.*;
|
||||
|
||||
|
|
@ -160,7 +162,29 @@ public class AssetManager {
|
|||
final Asset asset,
|
||||
@RequiresPrivilege(AssetPrivileges.CREATE_NEW)
|
||||
final Folder targetFolder) {
|
||||
throw new UnsupportedOperationException("Not implemented yet.");
|
||||
|
||||
if (asset == null) {
|
||||
throw new IllegalArgumentException("No asset to move provided.");
|
||||
}
|
||||
|
||||
if (targetFolder == null) {
|
||||
throw new IllegalArgumentException("No target folder specified.");
|
||||
}
|
||||
|
||||
final Optional<Folder> currentFolder = getAssetFolder(asset);
|
||||
|
||||
if (currentFolder.isPresent()) {
|
||||
try {
|
||||
categoryManager.removeObjectFromCategory(asset,
|
||||
currentFolder.get());
|
||||
} catch(ObjectNotAssignedToCategoryException ex) {
|
||||
throw new UncheckedWrapperException(ex);
|
||||
}
|
||||
}
|
||||
|
||||
categoryManager.addObjectToCategory(asset,
|
||||
targetFolder,
|
||||
CATEGORIZATION_TYPE_FOLDER);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -306,15 +306,24 @@ public class AssetManagerTest {
|
|||
* section using
|
||||
* {@link AssetManager#copy(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}.
|
||||
*/
|
||||
@Test
|
||||
@InSequence(400)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet(
|
||||
value = "datasets/org/librecms/assets/AssetManagerTest/"
|
||||
+ "after-move-to-other-folder.xml",
|
||||
excludeColumns = {"object_id",
|
||||
excludeColumns = {"categorization_id",
|
||||
"object_id",
|
||||
"object_order",
|
||||
"uuid"})
|
||||
public void moveAssetToOtherFolder() {
|
||||
fail();
|
||||
final Asset asset = assetRepo.findById(-900L);
|
||||
assertThat(asset, is(not(nullValue())));
|
||||
|
||||
final Folder folder = folderRepo.findById(-410L);
|
||||
assertThat(folder, is(not(nullValue())));
|
||||
|
||||
assetManager.move(asset, folder);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -23,6 +23,12 @@
|
|||
<ccm_core.ccm_objects object_id="-400"
|
||||
display_name="media"
|
||||
uuid="f8546369-4d06-47ea-9138-345d29ab8d68" />
|
||||
<ccm_core.ccm_objects object_id="-410"
|
||||
display_name="images"
|
||||
uuid="713d857d-dd0e-4fc5-85d6-d85d25279a10" />
|
||||
<ccm_core.ccm_objects object_id="-420"
|
||||
display_name="downloads"
|
||||
uuid="9d89913d-759e-4de9-b2fb-c6f58e55de09" />
|
||||
<ccm_core.ccm_objects object_id="-500"
|
||||
display_name="data"
|
||||
uuid="18fbc7f4-ce7e-45d6-8dad-02887164b99d" />
|
||||
|
|
@ -111,13 +117,31 @@
|
|||
category_order="1"/>
|
||||
<ccm_core.categories object_id="-400"
|
||||
unique_id="f8546369-4d06-47ea-9138-345d29ab8d68"
|
||||
parent_category_id="-300"
|
||||
name="media"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
abstract_category="false"
|
||||
category_order="1"/>
|
||||
<ccm_core.categories object_id="-410"
|
||||
unique_id="713d857d-dd0e-4fc5-85d6-d85d25279a10"
|
||||
parent_category_id="-400"
|
||||
name="images"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
abstract_category="false"
|
||||
category_order="1" />
|
||||
<ccm_core.categories object_id="-420"
|
||||
unique_id="9d89913d-759e-4de9-b2fb-c6f58e55de09"
|
||||
parent_category_id="-400"
|
||||
name="downloads"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
abstract_category="false"
|
||||
category_order="1" />
|
||||
<ccm_core.categories object_id="-500"
|
||||
unique_id="18fbc7f4-ce7e-45d6-8dad-02887164b99d"
|
||||
parent_category_id="-300"
|
||||
name="data"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
|
|
@ -139,6 +163,7 @@
|
|||
category_order="1" />
|
||||
<ccm_core.categories object_id="-1600"
|
||||
unique_id="ec3f0d51-5d9b-440e-bb5a-5fac7da94af1"
|
||||
parent_category_id="-1500"
|
||||
name="media"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
|
|
@ -146,6 +171,7 @@
|
|||
category_order="1" />
|
||||
<ccm_core.categories object_id="-1700"
|
||||
unique_id="80086df3-d682-42bb-9939-8cc04a300575"
|
||||
parent_category_id="-1500"
|
||||
name="data"
|
||||
enabled="true"
|
||||
visible="true"
|
||||
|
|
@ -161,6 +187,12 @@
|
|||
<ccm_core.category_titles object_id="-400"
|
||||
locale="en"
|
||||
localized_value="media" />
|
||||
<ccm_core.category_titles object_id="-410"
|
||||
locale="en"
|
||||
localized_value="images" />
|
||||
<ccm_core.category_titles object_id="-420"
|
||||
locale="en"
|
||||
localized_value="downloads" />
|
||||
<ccm_core.category_titles object_id="-500"
|
||||
locale="en"
|
||||
localized_value="data" />
|
||||
|
|
@ -196,6 +228,10 @@
|
|||
type="ASSETS_FOLDER" />
|
||||
<ccm_cms.folders object_id="-400"
|
||||
type="ASSETS_FOLDER" />
|
||||
<ccm_cms.folders object_id="-410"
|
||||
type="ASSETS_FOLDER" />
|
||||
<ccm_cms.folders object_id="-420"
|
||||
type="ASSETS_FOLDER" />
|
||||
<ccm_cms.folders object_id="-500"
|
||||
type="ASSETS_FOLDER" />
|
||||
<ccm_cms.folders object_id="-1400"
|
||||
|
|
@ -222,6 +258,10 @@
|
|||
content_section_id="-100" />
|
||||
<ccm_cms.folder_content_section_map folder_id="-400"
|
||||
content_section_id="-100" />
|
||||
<ccm_cms.folder_content_section_map folder_id="-410"
|
||||
content_section_id="-100" />
|
||||
<ccm_cms.folder_content_section_map folder_id="-420"
|
||||
content_section_id="-100" />
|
||||
<ccm_cms.folder_content_section_map folder_id="-500"
|
||||
content_section_id="-100" />
|
||||
<ccm_cms.folder_content_section_map folder_id="-1400"
|
||||
|
|
@ -275,7 +315,7 @@
|
|||
localized_value="product1-datasheet.pdf"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles asset_id="-1100"
|
||||
localized_value="catelog.pdf"
|
||||
localized_value="catalog.pdf"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles asset_id="-1150"
|
||||
localized_value="orphan.pdf"
|
||||
|
|
@ -325,7 +365,7 @@
|
|||
rev="0"
|
||||
filename="product1-datasheet.pdf"
|
||||
mime_type="application/pdf"
|
||||
data_size="0" />
|
||||
data_size="0" />
|
||||
<ccm_cms.binary_assets_aud object_id="-1100"
|
||||
rev="0"
|
||||
filename="catalog.pdf"
|
||||
|
|
@ -398,9 +438,13 @@
|
|||
<ccm_cms.asset_titles_aud asset_id="-1100"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="catelog.pdf"
|
||||
localized_value="catalog.pdf"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-1150"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="orphan.pdf"
|
||||
locale="en" />
|
||||
|
||||
|
||||
<ccm_cms.content_items_aud object_id="-600"
|
||||
rev="0"
|
||||
|
|
@ -454,28 +498,28 @@
|
|||
category_index="false"
|
||||
type="folder" />
|
||||
<ccm_core.categorizations categorization_id="-30200"
|
||||
category_id="-400"
|
||||
category_id="-410"
|
||||
object_id="-700"
|
||||
category_order="1"
|
||||
object_order="2"
|
||||
category_index="false"
|
||||
type="folder" />
|
||||
<ccm_core.categorizations categorization_id="-30300"
|
||||
category_id="-400"
|
||||
category_id="-410"
|
||||
object_id="-800"
|
||||
category_order="1"
|
||||
object_order="3"
|
||||
category_index="false"
|
||||
type="folder" />
|
||||
<ccm_core.categorizations categorization_id="-30400"
|
||||
category_id="-400"
|
||||
category_id="-410"
|
||||
object_id="-900"
|
||||
category_order="1"
|
||||
object_order="4"
|
||||
category_index="false"
|
||||
type="folder" />
|
||||
<ccm_core.categorizations categorization_id="-30600"
|
||||
category_id="-400"
|
||||
category_id="-420"
|
||||
object_id="-1100"
|
||||
category_order="1"
|
||||
object_order="6"
|
||||
|
|
|
|||
|
|
@ -365,7 +365,7 @@
|
|||
rev="0"
|
||||
filename="product1-datasheet.pdf"
|
||||
mime_type="application/pdf"
|
||||
data_size="0" />
|
||||
data_size="0" />
|
||||
<ccm_cms.binary_assets_aud object_id="-1100"
|
||||
rev="0"
|
||||
filename="catalog.pdf"
|
||||
|
|
|
|||
Loading…
Reference in New Issue