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;
|
package org.librecms.assets;
|
||||||
|
|
||||||
|
import com.arsdigita.util.UncheckedWrapperException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -46,6 +47,7 @@ import org.librecms.contentsection.FolderRepository;
|
||||||
import org.librecms.contentsection.privileges.AssetPrivileges;
|
import org.librecms.contentsection.privileges.AssetPrivileges;
|
||||||
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
import org.libreccm.categorization.ObjectNotAssignedToCategoryException;
|
||||||
|
|
||||||
import static org.librecms.CmsConstants.*;
|
import static org.librecms.CmsConstants.*;
|
||||||
|
|
||||||
|
|
@ -160,7 +162,29 @@ public class AssetManager {
|
||||||
final Asset asset,
|
final Asset asset,
|
||||||
@RequiresPrivilege(AssetPrivileges.CREATE_NEW)
|
@RequiresPrivilege(AssetPrivileges.CREATE_NEW)
|
||||||
final Folder targetFolder) {
|
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
|
* section using
|
||||||
* {@link AssetManager#copy(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}.
|
* {@link AssetManager#copy(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}.
|
||||||
*/
|
*/
|
||||||
|
@Test
|
||||||
@InSequence(400)
|
@InSequence(400)
|
||||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||||
@ShouldMatchDataSet(
|
@ShouldMatchDataSet(
|
||||||
value = "datasets/org/librecms/assets/AssetManagerTest/"
|
value = "datasets/org/librecms/assets/AssetManagerTest/"
|
||||||
+ "after-move-to-other-folder.xml",
|
+ "after-move-to-other-folder.xml",
|
||||||
excludeColumns = {"object_id",
|
excludeColumns = {"categorization_id",
|
||||||
|
"object_id",
|
||||||
|
"object_order",
|
||||||
"uuid"})
|
"uuid"})
|
||||||
public void moveAssetToOtherFolder() {
|
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"
|
<ccm_core.ccm_objects object_id="-400"
|
||||||
display_name="media"
|
display_name="media"
|
||||||
uuid="f8546369-4d06-47ea-9138-345d29ab8d68" />
|
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"
|
<ccm_core.ccm_objects object_id="-500"
|
||||||
display_name="data"
|
display_name="data"
|
||||||
uuid="18fbc7f4-ce7e-45d6-8dad-02887164b99d" />
|
uuid="18fbc7f4-ce7e-45d6-8dad-02887164b99d" />
|
||||||
|
|
@ -111,13 +117,31 @@
|
||||||
category_order="1"/>
|
category_order="1"/>
|
||||||
<ccm_core.categories object_id="-400"
|
<ccm_core.categories object_id="-400"
|
||||||
unique_id="f8546369-4d06-47ea-9138-345d29ab8d68"
|
unique_id="f8546369-4d06-47ea-9138-345d29ab8d68"
|
||||||
|
parent_category_id="-300"
|
||||||
name="media"
|
name="media"
|
||||||
enabled="true"
|
enabled="true"
|
||||||
visible="true"
|
visible="true"
|
||||||
abstract_category="false"
|
abstract_category="false"
|
||||||
category_order="1"/>
|
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"
|
<ccm_core.categories object_id="-500"
|
||||||
unique_id="18fbc7f4-ce7e-45d6-8dad-02887164b99d"
|
unique_id="18fbc7f4-ce7e-45d6-8dad-02887164b99d"
|
||||||
|
parent_category_id="-300"
|
||||||
name="data"
|
name="data"
|
||||||
enabled="true"
|
enabled="true"
|
||||||
visible="true"
|
visible="true"
|
||||||
|
|
@ -139,6 +163,7 @@
|
||||||
category_order="1" />
|
category_order="1" />
|
||||||
<ccm_core.categories object_id="-1600"
|
<ccm_core.categories object_id="-1600"
|
||||||
unique_id="ec3f0d51-5d9b-440e-bb5a-5fac7da94af1"
|
unique_id="ec3f0d51-5d9b-440e-bb5a-5fac7da94af1"
|
||||||
|
parent_category_id="-1500"
|
||||||
name="media"
|
name="media"
|
||||||
enabled="true"
|
enabled="true"
|
||||||
visible="true"
|
visible="true"
|
||||||
|
|
@ -146,6 +171,7 @@
|
||||||
category_order="1" />
|
category_order="1" />
|
||||||
<ccm_core.categories object_id="-1700"
|
<ccm_core.categories object_id="-1700"
|
||||||
unique_id="80086df3-d682-42bb-9939-8cc04a300575"
|
unique_id="80086df3-d682-42bb-9939-8cc04a300575"
|
||||||
|
parent_category_id="-1500"
|
||||||
name="data"
|
name="data"
|
||||||
enabled="true"
|
enabled="true"
|
||||||
visible="true"
|
visible="true"
|
||||||
|
|
@ -161,6 +187,12 @@
|
||||||
<ccm_core.category_titles object_id="-400"
|
<ccm_core.category_titles object_id="-400"
|
||||||
locale="en"
|
locale="en"
|
||||||
localized_value="media" />
|
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"
|
<ccm_core.category_titles object_id="-500"
|
||||||
locale="en"
|
locale="en"
|
||||||
localized_value="data" />
|
localized_value="data" />
|
||||||
|
|
@ -196,6 +228,10 @@
|
||||||
type="ASSETS_FOLDER" />
|
type="ASSETS_FOLDER" />
|
||||||
<ccm_cms.folders object_id="-400"
|
<ccm_cms.folders object_id="-400"
|
||||||
type="ASSETS_FOLDER" />
|
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"
|
<ccm_cms.folders object_id="-500"
|
||||||
type="ASSETS_FOLDER" />
|
type="ASSETS_FOLDER" />
|
||||||
<ccm_cms.folders object_id="-1400"
|
<ccm_cms.folders object_id="-1400"
|
||||||
|
|
@ -222,6 +258,10 @@
|
||||||
content_section_id="-100" />
|
content_section_id="-100" />
|
||||||
<ccm_cms.folder_content_section_map folder_id="-400"
|
<ccm_cms.folder_content_section_map folder_id="-400"
|
||||||
content_section_id="-100" />
|
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"
|
<ccm_cms.folder_content_section_map folder_id="-500"
|
||||||
content_section_id="-100" />
|
content_section_id="-100" />
|
||||||
<ccm_cms.folder_content_section_map folder_id="-1400"
|
<ccm_cms.folder_content_section_map folder_id="-1400"
|
||||||
|
|
@ -275,7 +315,7 @@
|
||||||
localized_value="product1-datasheet.pdf"
|
localized_value="product1-datasheet.pdf"
|
||||||
locale="en" />
|
locale="en" />
|
||||||
<ccm_cms.asset_titles asset_id="-1100"
|
<ccm_cms.asset_titles asset_id="-1100"
|
||||||
localized_value="catelog.pdf"
|
localized_value="catalog.pdf"
|
||||||
locale="en" />
|
locale="en" />
|
||||||
<ccm_cms.asset_titles asset_id="-1150"
|
<ccm_cms.asset_titles asset_id="-1150"
|
||||||
localized_value="orphan.pdf"
|
localized_value="orphan.pdf"
|
||||||
|
|
@ -398,9 +438,13 @@
|
||||||
<ccm_cms.asset_titles_aud asset_id="-1100"
|
<ccm_cms.asset_titles_aud asset_id="-1100"
|
||||||
rev="0"
|
rev="0"
|
||||||
revtype="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" />
|
locale="en" />
|
||||||
|
|
||||||
|
|
||||||
<ccm_cms.content_items_aud object_id="-600"
|
<ccm_cms.content_items_aud object_id="-600"
|
||||||
rev="0"
|
rev="0"
|
||||||
|
|
@ -454,28 +498,28 @@
|
||||||
category_index="false"
|
category_index="false"
|
||||||
type="folder" />
|
type="folder" />
|
||||||
<ccm_core.categorizations categorization_id="-30200"
|
<ccm_core.categorizations categorization_id="-30200"
|
||||||
category_id="-400"
|
category_id="-410"
|
||||||
object_id="-700"
|
object_id="-700"
|
||||||
category_order="1"
|
category_order="1"
|
||||||
object_order="2"
|
object_order="2"
|
||||||
category_index="false"
|
category_index="false"
|
||||||
type="folder" />
|
type="folder" />
|
||||||
<ccm_core.categorizations categorization_id="-30300"
|
<ccm_core.categorizations categorization_id="-30300"
|
||||||
category_id="-400"
|
category_id="-410"
|
||||||
object_id="-800"
|
object_id="-800"
|
||||||
category_order="1"
|
category_order="1"
|
||||||
object_order="3"
|
object_order="3"
|
||||||
category_index="false"
|
category_index="false"
|
||||||
type="folder" />
|
type="folder" />
|
||||||
<ccm_core.categorizations categorization_id="-30400"
|
<ccm_core.categorizations categorization_id="-30400"
|
||||||
category_id="-400"
|
category_id="-410"
|
||||||
object_id="-900"
|
object_id="-900"
|
||||||
category_order="1"
|
category_order="1"
|
||||||
object_order="4"
|
object_order="4"
|
||||||
category_index="false"
|
category_index="false"
|
||||||
type="folder" />
|
type="folder" />
|
||||||
<ccm_core.categorizations categorization_id="-30600"
|
<ccm_core.categorizations categorization_id="-30600"
|
||||||
category_id="-400"
|
category_id="-420"
|
||||||
object_id="-1100"
|
object_id="-1100"
|
||||||
category_order="1"
|
category_order="1"
|
||||||
object_order="6"
|
object_order="6"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue