CCM NG/ccm-cms: AssetManager current status
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4410 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
f2f6f6c3f6
commit
91642426b2
|
|
@ -37,13 +37,15 @@ import org.libreccm.categorization.CategoryManager;
|
|||
import org.libreccm.core.CoreConstants;
|
||||
import org.libreccm.security.AuthorizationRequired;
|
||||
import org.libreccm.security.RequiresPrivilege;
|
||||
import org.librecms.CmsConstants;
|
||||
import org.librecms.attachments.AttachmentList;
|
||||
import org.librecms.contentsection.ContentSection;
|
||||
import org.librecms.contentsection.Folder;
|
||||
import org.librecms.contentsection.FolderManager;
|
||||
import org.librecms.contentsection.FolderRepository;
|
||||
import org.librecms.contentsection.privileges.AssetPrivileges;
|
||||
import org.librecms.contentsection.privileges.ItemPrivileges;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
import static org.librecms.CmsConstants.*;
|
||||
|
||||
|
|
@ -75,83 +77,56 @@ public class AssetManager {
|
|||
private FolderManager folderManager;
|
||||
|
||||
/**
|
||||
* Creates a new, non shared {@link Asset} and adds it to the provided
|
||||
* {@link AttachmentList}.
|
||||
*
|
||||
* @param <T> Type variable for the type of the new {@link Asset}.
|
||||
* @param name The name of the new {@link Asset}.
|
||||
* @param attachments The {@link AttachmentList} to which the new
|
||||
* {@link Asset} is added.
|
||||
* @param type The type of the new {@link Asset}. Must be a subclass
|
||||
* of the {@link Asset} class.
|
||||
*
|
||||
* @return The new {@link Asset}.
|
||||
*/
|
||||
@AuthorizationRequired
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public <T extends Asset> T createAsset(
|
||||
final String name,
|
||||
@RequiresPrivilege(ItemPrivileges.EDIT)
|
||||
final AttachmentList attachments,
|
||||
final Class<T> type) {
|
||||
throw new UnsupportedOperationException("Not implemented yet.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new shared {@link Asset} in the provided {@link Folder}.
|
||||
* Makes an {@link Asset} a shared {@code Asset} by adding it to an asset
|
||||
* folder. This action can't be undone.
|
||||
*
|
||||
* The folder must be a subfolder {@link ContentSection#rootAssetsFolder} of
|
||||
* a content section. Otherwise an {@link IllegalArgumentException} is
|
||||
* thrown.
|
||||
*
|
||||
* @param <T> Type variable for the type of the {@link Asset} to create.
|
||||
* @param name The name of the new {@link Asset}.
|
||||
* @param folder The {@link Folder} in which the {@link Asset} is created.
|
||||
* @param type The type of the new {@link Asset}. Must be a subclass of
|
||||
* the {@link Asset} class.
|
||||
*
|
||||
* @return The new {@link Asset}.
|
||||
* @param asset The {@link Asset} to share.
|
||||
* @param folder The {@link Folder} in which the {@link Asset} is created.
|
||||
*/
|
||||
@AuthorizationRequired
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public <T extends Asset> T createAsset(
|
||||
final String name,
|
||||
public void shareAsset(
|
||||
final Asset asset,
|
||||
@RequiresPrivilege(AssetPrivileges.CREATE_NEW)
|
||||
final Folder folder,
|
||||
final Class<T> type) {
|
||||
throw new UnsupportedOperationException("Not implemented yet.");
|
||||
final Folder folder) {
|
||||
|
||||
if (asset == null) {
|
||||
throw new IllegalArgumentException("Can't share asset null.");
|
||||
}
|
||||
|
||||
if (folder == null) {
|
||||
throw new IllegalArgumentException("No folder provided");
|
||||
}
|
||||
|
||||
if (isShared(asset)) {
|
||||
throw new IllegalArgumentException(String.format(
|
||||
"The asset %s is already shared.",
|
||||
Objects.toString(asset)));
|
||||
}
|
||||
|
||||
categoryManager.addObjectToCategory(
|
||||
asset,
|
||||
folder,
|
||||
CmsConstants.CATEGORIZATION_TYPE_FOLDER);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new {@link Asset}. If a folder is provided a sharable
|
||||
* {@link Asset} is created. Otherwise a non shared asset is created. This
|
||||
* method implements the common logic for
|
||||
* {@link #createAsset(java.lang.String, org.librecms.attachments.AttachmentList, java.lang.Class)}
|
||||
* and
|
||||
* {@link #createAsset(java.lang.String, org.librecms.contentsection.Folder, java.lang.Class)}.
|
||||
* Users of this class usually should use these methods. This method has
|
||||
* been made public for special cases. Please note that this class does
|
||||
* <strong>not</strong>
|
||||
* perform any authorisation checks. This is up to the caller. Also if no
|
||||
* folder is provided and the caller does not add the created asset to an
|
||||
* {@link AttachmentList} the asset will become orphaned can't be accessed.
|
||||
* Checks of an {@link Asset} is shared (associated with an {@link Folder}.
|
||||
* The folder in which the asset is stored can be retrieved using
|
||||
* {@link #getAssetFolder(org.librecms.assets.Asset)}.
|
||||
*
|
||||
* @param <T> Type variable for the type of the {@link Asset}.
|
||||
* @param name The name of the new {@link Asset}.
|
||||
* @param folder Optional folder in which the new {@link Asset} is placed.
|
||||
* @param type The type of the new {@link Asset}. Must be a subclass of
|
||||
* the {@link Asset} class.
|
||||
* @param asset The asset the check.
|
||||
*
|
||||
* @return The new {@link Asset}. Note: If no {@link Folder} is provided and
|
||||
* the and the returned {@link Asset} is not added to an
|
||||
* {@link AttachmentList} the new {@code Asset} will become orphaned
|
||||
* and can't be accessed by any method.
|
||||
* @return {@code true} is the {@link Asset} is shared,
|
||||
* {@code false if not}.
|
||||
*/
|
||||
@Transactional(Transactional.TxType.REQUIRED)
|
||||
public <T extends Asset> T createAsset(final String name,
|
||||
final Optional<Folder> folder,
|
||||
final Class<T> type) {
|
||||
throw new UnsupportedOperationException("Not implemented yet.");
|
||||
public boolean isShared(final Asset asset) {
|
||||
return getAssetFolder(asset).isPresent();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -271,7 +246,7 @@ public class AssetManager {
|
|||
|
||||
if (withContentSection) {
|
||||
final String sectionName
|
||||
= ((Folder) result.get(0).getCategory()).
|
||||
= ((Folder) result.get(0).getCategory()).
|
||||
getSection().getDisplayName();
|
||||
return String.format("%s:/%s", sectionName, path);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@ import org.libreccm.jpa.utils.MimeTypeConverter;
|
|||
import org.libreccm.l10n.LocalizedString;
|
||||
|
||||
import javax.persistence.Convert;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import static org.librecms.CmsConstants.*;
|
||||
|
||||
|
|
@ -71,7 +72,7 @@ public class BinaryAsset extends Asset implements Serializable {
|
|||
|
||||
@Column(name = "MIME_TYPE", length = 512, nullable = false)
|
||||
@Convert(converter = MimeTypeConverter.class)
|
||||
@NotEmpty
|
||||
@NotNull
|
||||
private MimeType mimeType;
|
||||
|
||||
@Column(name = "ASSET_DATA")
|
||||
|
|
|
|||
|
|
@ -45,11 +45,19 @@ import org.junit.runner.RunWith;
|
|||
import org.libreccm.security.Shiro;
|
||||
import org.libreccm.tests.categories.IntegrationTest;
|
||||
import org.librecms.attachments.AttachmentList;
|
||||
import org.librecms.contentsection.ContentItem;
|
||||
import org.librecms.contentsection.ContentItemRepository;
|
||||
import org.librecms.contentsection.FolderRepository;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import org.librecms.contentsection.Folder;
|
||||
|
||||
import java.util.Locale;
|
||||
|
||||
import javax.activation.MimeType;
|
||||
import javax.activation.MimeTypeParseException;
|
||||
|
||||
import static org.hamcrest.CoreMatchers.*;
|
||||
import static org.junit.Assert.*;
|
||||
|
||||
|
|
@ -65,6 +73,9 @@ import static org.junit.Assert.*;
|
|||
@CreateSchema({"create_ccm_cms_schema.sql"})
|
||||
public class AssetManagerTest {
|
||||
|
||||
@Inject
|
||||
private ContentItemRepository itemRepo;
|
||||
|
||||
@Inject
|
||||
private AssetRepository assetRepo;
|
||||
|
||||
|
|
@ -179,27 +190,45 @@ public class AssetManagerTest {
|
|||
}
|
||||
|
||||
/**
|
||||
* Tries to generate various non shared {@link Asset}s of different types
|
||||
* using
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.attachments.AttachmentList, java.lang.Class)}.
|
||||
* and puts them into an {@link AttachmentList}.
|
||||
* Tries to share an {@link Asset} using
|
||||
* {@link AssetManager#shareAsset(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}.
|
||||
*
|
||||
* @throws javax.activation.MimeTypeParseException
|
||||
*/
|
||||
@Test
|
||||
@InSequence(100)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet(
|
||||
value = "datasets/org/librecms/assets/AssetManagerTest/"
|
||||
+ "after-create-nonshared.xml",
|
||||
excludeColumns = {"object_id",
|
||||
value = "datasets/org/librecms/assets/AssetManagerTest/after-share.xml",
|
||||
excludeColumns = {"asset_id",
|
||||
"categorization_id",
|
||||
"id",
|
||||
"object_id",
|
||||
"object_order",
|
||||
"rev",
|
||||
"timestamp",
|
||||
"uuid"})
|
||||
public void createNonSharedAssets() {
|
||||
fail();
|
||||
public void shareAsset() throws MimeTypeParseException {
|
||||
final Folder folder = folderRepo.findById(-420L);
|
||||
assertThat(folder, is(not(nullValue())));
|
||||
|
||||
final File file = new File();
|
||||
file.setDisplayName("datasheet.pdf");
|
||||
file.setFileName("datasheet.pdf");
|
||||
file.setMimeType(new MimeType("application/pdf"));
|
||||
file.getTitle().addValue(Locale.ENGLISH, "datasheet.pdf");
|
||||
assetRepo.save(file);
|
||||
|
||||
assetManager.shareAsset(file, folder);
|
||||
|
||||
assertThat(file, is(not(nullValue())));
|
||||
assertThat(file.getDisplayName(), is(equalTo("datasheet.pdf")));
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.attachments.AttachmentList, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code name}
|
||||
* {@link AssetManager#shareAsset(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code asset}
|
||||
* is {@code null}.
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
|
|
@ -207,129 +236,54 @@ public class AssetManagerTest {
|
|||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createNonSharedAssetNameIsNull() {
|
||||
public void shareAssetNull() {
|
||||
final Folder folder = folderRepo.findById(-420L);
|
||||
assertThat(folder, is(not(nullValue())));
|
||||
|
||||
assetManager.shareAsset(null, folder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.attachments.AttachmentList, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code name}
|
||||
* is empty.
|
||||
* {@link AssetManager#shareAsset(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code folder}
|
||||
* is null.
|
||||
*
|
||||
* @throws javax.activation.MimeTypeParseException
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@InSequence(120)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createNonSharedAssetNameIsEmpty() {
|
||||
fail();
|
||||
public void shareAssetFolderIsNull() throws MimeTypeParseException {
|
||||
final File file = new File();
|
||||
file.setDisplayName("datasheet.pdf");
|
||||
file.setFileName("datasheet.pdf");
|
||||
file.setMimeType(new MimeType("application/pdf"));
|
||||
|
||||
assetManager.shareAsset(file, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.attachments.AttachmentList, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided
|
||||
* {@code attachmentList} is empty.
|
||||
* {@link AssetManager#shareAsset(org.librecms.assets.Asset, org.librecms.contentsection.Folder)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code asset}
|
||||
* is already shared.
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@InSequence(130)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createNonSharedAssetAttachmentListNull() {
|
||||
fail();
|
||||
}
|
||||
public void shareAlreadySharedAsset() {
|
||||
final Folder folder = folderRepo.findById(-420L);
|
||||
assertThat(folder, is(not(nullValue())));
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.attachments.AttachmentList, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code type}
|
||||
* is empty.
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@InSequence(140)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createNonSharedAssetTypeIsNull() {
|
||||
fail();
|
||||
}
|
||||
final Asset asset = assetRepo.findById(-700L);
|
||||
assertThat(asset, is(not(nullValue())));
|
||||
|
||||
/**
|
||||
* Tries to generate various shared {@link Asset}s of different types using
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.contentsection.Folder, java.lang.Class)}.
|
||||
*/
|
||||
@Test
|
||||
@InSequence(200)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet(
|
||||
value = "datasets/org/librecms/assets/AssetManagerTest/"
|
||||
+ "after-create-shared.xml",
|
||||
excludeColumns = {"object_id",
|
||||
"uuid"})
|
||||
public void createSharedAssets() {
|
||||
fail();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.contentsection.Folder, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code name}
|
||||
* is {@code null}.
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@InSequence(210)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createSharedAssetNameIsNull() {
|
||||
fail();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.contentsection.Folder, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code name}
|
||||
* is empty.
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@InSequence(220)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createSharedAssetNameIsEmpty() {
|
||||
fail();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.contentsection.Folder, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code folder}
|
||||
* is {@code null}.
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@InSequence(230)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createSharedAssetFolderIsNull() {
|
||||
fail();
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies that
|
||||
* {@link AssetManager#createAsset(java.lang.String, org.librecms.contentsection.Folder, java.lang.Class)}
|
||||
* throws an {@link IllegalArgumentException} if the provided {@code type}
|
||||
* is {@code null}.
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
@InSequence(240)
|
||||
@UsingDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldMatchDataSet("datasets/org/librecms/assets/AssetManagerTest/data.xml")
|
||||
@ShouldThrowException(IllegalArgumentException.class)
|
||||
public void createSharedAssetTypeIsNull() {
|
||||
fail();
|
||||
assetManager.shareAsset(asset, folder);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -342,8 +296,7 @@ public class AssetManagerTest {
|
|||
@ShouldMatchDataSet(
|
||||
value = "datasets/org/librecms/assets/AssetManagerTest/"
|
||||
+ "after-clean-orphaned.xml",
|
||||
excludeColumns = {"timestamp"},
|
||||
orderBy = {"asset_titles_aud.asset_id"})
|
||||
excludeColumns = {"timestamp", "object_order"})
|
||||
public void cleanOrphanedAssets() {
|
||||
assetManager.cleanOrphanedAssets();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,8 +52,7 @@ public class DatasetsTest extends DatasetsVerifier {
|
|||
"/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-contentsection.xml",
|
||||
"/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-other-folder.xml",
|
||||
"/datasets/org/librecms/assets/AssetManagerTest/after-copy-to-same-folder.xml",
|
||||
"/datasets/org/librecms/assets/AssetManagerTest/after-create-nonshared.xml",
|
||||
"/datasets/org/librecms/assets/AssetManagerTest/after-create-shared.xml",
|
||||
"/datasets/org/librecms/assets/AssetManagerTest/after-share.xml",
|
||||
"/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-contentsection.xml",
|
||||
"/datasets/org/librecms/assets/AssetManagerTest/after-move-to-other-folder.xml",
|
||||
});
|
||||
|
|
|
|||
|
|
@ -415,40 +415,40 @@
|
|||
<ccm_cms.files_aud object_id="-1100"
|
||||
rev="0" />
|
||||
|
||||
|
||||
<ccm_cms.asset_titles_aud asset_id="-1100"
|
||||
<!--<ccm_cms.asset_titles_aud asset_id="-700"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
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.asset_titles_aud asset_id="-1150"
|
||||
rev="1"
|
||||
revtype="2" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-1000"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="product1-datasheet.pdf"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-900"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="services-header.png"
|
||||
localized_value="header.png"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-800"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="the-phb.png"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-700"
|
||||
<ccm_cms.asset_titles_aud asset_id="-900"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="header.png"
|
||||
localized_value="services-header.png"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-1000"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="product1-datasheet.pdf"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-1100"
|
||||
rev="0"
|
||||
revtype="0"
|
||||
localized_value="catalog.pdf"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-1150"
|
||||
rev="1"
|
||||
revtype="2" />
|
||||
<ccm_cms.asset_titles_aud asset_id="-1150"
|
||||
rev="0"
|
||||
revend="1"
|
||||
revtype="0"
|
||||
localized_value="orphan.pdf"
|
||||
locale="en" />-->
|
||||
|
||||
<ccm_cms.content_items_aud object_id="-600"
|
||||
rev="0"
|
||||
|
|
|
|||
|
|
@ -10,6 +10,8 @@
|
|||
|
||||
<ccm_core.ccm_revisions id="0"
|
||||
timestamp="1451602800" />
|
||||
<ccm_core.ccm_revisions id="1"
|
||||
timestamp="1451602800" />
|
||||
|
||||
<ccm_core.ccm_objects object_id="-100"
|
||||
display_name="info"
|
||||
|
|
@ -23,6 +25,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" />
|
||||
|
|
@ -65,6 +73,9 @@
|
|||
<ccm_core.ccm_objects object_id="-1700"
|
||||
display_name="data"
|
||||
uuid="80086df3-d682-42bb-9939-8cc04a300575" />
|
||||
<ccm_core.ccm_objects object_id="-1800"
|
||||
display_name="datasheet.pdf"
|
||||
uuid="00000000-0000-0000-0000-000000000000" />
|
||||
|
||||
<ccm_core.ccm_objects_aud object_id="-600"
|
||||
rev="0"
|
||||
|
|
@ -94,6 +105,10 @@
|
|||
rev="0"
|
||||
revtype="0"
|
||||
display_name="orphan.png" />
|
||||
<ccm_core.ccm_objects_aud object_id="-1800"
|
||||
rev="1"
|
||||
revtype="0"
|
||||
display_name="datasheet.pdf" />
|
||||
|
||||
<ccm_core.categories object_id="-200"
|
||||
unique_id="82014239-9c06-486d-ae8c-4ae47f52a699"
|
||||
|
|
@ -111,13 +126,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 +172,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 +180,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 +196,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 +237,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 +267,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"
|
||||
|
|
@ -248,6 +297,7 @@
|
|||
<ccm_cms.assets object_id="-1000" />
|
||||
<ccm_cms.assets object_id="-1100" />
|
||||
<ccm_cms.assets object_id="-1150" />
|
||||
<ccm_cms.assets object_id="-1800" />
|
||||
|
||||
<ccm_cms.assets_aud object_id="-700"
|
||||
rev="0" />
|
||||
|
|
@ -261,6 +311,8 @@
|
|||
rev="0" />
|
||||
<ccm_cms.assets_aud object_id="-1150"
|
||||
rev="0" />
|
||||
<ccm_cms.assets_aud object_id="-1800"
|
||||
rev="1" />
|
||||
|
||||
<ccm_cms.asset_titles asset_id="-700"
|
||||
localized_value="header.png"
|
||||
|
|
@ -275,11 +327,14 @@
|
|||
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"
|
||||
locale="en" />
|
||||
<ccm_cms.asset_titles asset_id="-1800"
|
||||
localized_value="datasheet.pdf"
|
||||
locale="en" />
|
||||
|
||||
<ccm_cms.binary_assets object_id="-700"
|
||||
filename="header.png"
|
||||
|
|
@ -305,6 +360,10 @@
|
|||
filename="orphan.png"
|
||||
mime_type="image/png"
|
||||
data_size="0"/>
|
||||
<ccm_cms.binary_assets object_id="-1800"
|
||||
filename="datasheet.pdf"
|
||||
mime_type="application/pdf"
|
||||
data_size="0"/>
|
||||
|
||||
<ccm_cms.binary_assets_aud object_id="-700"
|
||||
rev="0"
|
||||
|
|
@ -336,6 +395,11 @@
|
|||
filename="orphan.png"
|
||||
mime_type="image/png"
|
||||
data_size="0" />
|
||||
<ccm_cms.binary_assets_aud object_id="-1800"
|
||||
rev="1"
|
||||
filename="datasheet.pdf"
|
||||
mime_type="application/pdf"
|
||||
data_size="0" />
|
||||
|
||||
<ccm_cms.images object_id="-700"
|
||||
height="0"
|
||||
|
|
@ -369,11 +433,14 @@
|
|||
|
||||
<ccm_cms.files object_id="-1000" />
|
||||
<ccm_cms.files object_id="-1100" />
|
||||
<ccm_cms.files object_id="-1800" />
|
||||
|
||||
<ccm_cms.files_aud object_id="-1000"
|
||||
rev="0" />
|
||||
<ccm_cms.files_aud object_id="-1100"
|
||||
rev="0" />
|
||||
<ccm_cms.files_aud object_id="-1800"
|
||||
rev="1" />
|
||||
|
||||
<ccm_cms.asset_titles_aud asset_id="-700"
|
||||
rev="0"
|
||||
|
|
@ -398,9 +465,18 @@
|
|||
<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.asset_titles_aud asset_id="-1800"
|
||||
rev="1"
|
||||
revtype="0"
|
||||
localized_value="datasheet.pdf"
|
||||
locale="en" />
|
||||
|
||||
|
||||
<ccm_cms.content_items_aud object_id="-600"
|
||||
rev="0"
|
||||
|
|
@ -454,14 +530,14 @@
|
|||
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"
|
||||
|
|
@ -475,13 +551,20 @@
|
|||
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"
|
||||
category_index="false"
|
||||
type="folder" />
|
||||
|
||||
<ccm_core.categorizations categorization_id="-1800"
|
||||
category_id="-420"
|
||||
object_id="-1100"
|
||||
category_order="1"
|
||||
object_order="6"
|
||||
category_index="false"
|
||||
type="folder" />
|
||||
|
||||
<ccm_cms.attachment_lists list_id="-40100"
|
||||
name="images"
|
||||
list_order="1"
|
||||
|
|
@ -558,5 +641,4 @@
|
|||
asset_id="-1100"
|
||||
attachment_list_id="-40200" />
|
||||
|
||||
|
||||
</dataset>
|
||||
|
|
@ -286,7 +286,6 @@
|
|||
localized_value="the-phb.png"
|
||||
locale="en" />
|
||||
|
||||
|
||||
<ccm_cms.content_items_aud object_id="-600"
|
||||
rev="0"
|
||||
item_uuid="aed4b402-1180-46c6-b42d-7245f4dca248"
|
||||
|
|
|
|||
Loading…
Reference in New Issue