Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion vuepress/docs/next/docs/curate/bundle-component-details.md
Original file line number Diff line number Diff line change
Expand Up @@ -240,7 +240,7 @@ For some more details, refer to the [Content Types Tutorial](../../tutorials/com
ognlExpression: string

## Fragments
See an example of [how to use a fragment](../../tutorials/compose/widgets-fragments.md#create-a-new-fragment).
See an example of [how to use a fragment](../../tutorials/compose/widgets-fragments.md#create-and-update-a-ux-fragment).

**fragments-descriptor.yaml**

Expand Down
68 changes: 37 additions & 31 deletions vuepress/docs/next/tutorials/compose/content-attributes.md
Original file line number Diff line number Diff line change
@@ -1,50 +1,56 @@
---
sidebarDepth: 2
---

# Content Attributes

An attribute is a well-defined property characterized by an attribute type and a set of applicable parameters. One or more attributes establish the definition of a content type comprise the information provided by content. This section describes the different attribute types supported by Entando.
On Entando, content type is defined by a collection of attributes. These attributes can be further broken down into their types, each with a list of parameters that carry the information inside the content. In other words, Attributes make it easier to categorize and find content and content types.

This section describes the different attribute types supported by Entando.

## Attribute Types

Attribute types can be broken into two categories: simple and composed. A simple attribute type consists of a single piece of information, e.g. an image. A composed attribute type is a collection of simple attribute types, e.g. a set of images.
Attribute types can be organized into two categories: simple and composed. A simple attribute type consists of a single piece of information, e.g., an image. A composed attribute type is a collection of simple attribute types, e.g., a set of images.

### Simple Attribute Types

**Attach**

- Represents a file attached to the content
- Consists of the URL of the file in the system’s resources and a text entry containing the file name or description
- Rendered as a ***button*** called `Add`. Clicking `Add` prompts the user to select a file from the system's Digital Assets attachment list.
- Rendered as a ***button*** called `Add`. Clicking `Add` prompts the user to select a file from the system's digital assets attachment list.

**Boolean**

- Represents a boolean value which can be either true or false
- Rendered as a ***radio button*** with options labeled Yes and “No”
- Alternative to the **check box** attribute
- Rendered as a ***radio button*** with options labeled `Yes` and `No`
- Alternative to the **check box** attribute type

**Check box**

- Represents a boolean value which can be either true or false
- Rendered as a ***check box*** labeled Yes or “No”
- Rendered as a ***check box*** labeled `Yes` or `No`
- Alternative to the **boolean** attribute

**Date**

- Represents a date
- Provides time tracking capabilities
- Often used to filter content by publication date, etc.
- Often used to filter content by publication date
- Rendered as a ***datepicker***

**Timestamp**

- A specialized instance of the **date** attribute
- The hour, minute and second can be specified
- Rendered as a ***datepicker*** for the date and a ***select*** for hours, minutes and seconds
- Rendered as ***datepicker*** for the date and ***select*** for hours, minutes and seconds

**Enumerator**

- Represents textual information using a predefined set of options
- Defined by:
- Mandatory elements declaring the set of available options
- An optional separator declaring the character to separate the enumerator arguments. The default separator is a comma.
- An optional separator declaring the character to separate the enumerator arguments. The default is a comma.
- An ExtractorBean parameter naming the Spring bean that processes the enumerator. The value of ExtractorBean must exactly match the bean ID as defined in the Spring configuration file.
- Rendered as a ***select list***

Expand All @@ -62,86 +68,86 @@ Attribute types can be broken into two categories: simple and composed. A simple
- Retains a single value for all languages
- Rendered as a ***text area*** on the page to edit content

> Notes: It is best practice to only enter meaningful HTML tags. Avoid those which are decorative or add graphics. If the CKEditor is active, additional functionalities are accessible from a dedicated editor’s toolbar (e.g.table insertion, table manipulation, special character insertion, string formatting, links creation).
> Note: It is best practice to only enter meaningful HTML tags. Avoid those which add graphics or are decorative. If the CKEditor is active, additional functionalities are accessible from a dedicated editor’s toolbar (e.g., table insertion, table manipulation, special character insertion, string formatting, & links creation).

**Image**

- Binds an image resource to the content
- The user must specify a description to accompany the image
- Images are rarely indexed or used to filter content
- Rendered as a ***button*** called `Add`. Clicking `Add` prompts the user to select an image from the Digital Assets image list.
- Selecting an image presents the user with a thumbnail preview and parameters:
- Text (mandatory) that defaults to the name of the selected image
- Rendered as a ***button*** called `Add`. Clicking `Add` prompts the user to select an image from the digital assets image list.
- Selecting an image presents the user with a thumbnail preview and these parameters:
- Text (required) defaults to the name of the selected image
- Legend (optional)
- Alt tag (optional)
- Alt tag (optional but recommended)
- Description (optional)
- Title (optional)

**Link**

- Represents an hypertext link
- Represents a hypertext link
- Normally used to include a link within content
- It is possible to define up to three different types of links:
1. External link: Points to a location external to the Entando instance
2. Page link: Points to a page of the Entando instance
2. Page link: Points to a page within the Entando instance
3. Content link: Points to other content within the Entando instance
- Rendered as a ***button*** called `Add`. Clicking `Add` opens a modal window from which the user can select the link type.

**Longtext**

- Represents simple unformatted text
- Supports several languages and the optional parameters of minimum length, maximum length and regular expressions
- Supports several languages and the optional parameters of minimum and maximum length and regular expressions
- Normally used for a brief description when a short string is insufficient
- Rendered as a ***text area***

**Monotext**

- Represents information in textual form
- Supports only one language and the optional parameters of minimum length, maximum length and regular expressions
- Supports only one language and the optional parameters of minimum and maximum length and regular expressions
- Used for fields that do not require localization
- Rendered as a ***text field***

**Number**

- Holds an integer number
- Retains a single value for all languages
- Supports the optional parameters "From," "To" and "Equal to"
- Supports the optional parameters `From`, `To` and `Equal to`
- Rendered as a ***text field***

**Text**

- Holds a string
- Retains a single value for all languages
- Supports minimum length, maximum length and regular expressions as optional parameters
- Supports minimum and maximum length and regular expressions as optional parameters
- Rendered as a ***text field***

**ThreeState**

- Conceptually similar to the **boolean** attribute, with "Both" as a third status option
- Rendered as a ***radio button*** with options labeled Yes," "No” and "Both"
- Conceptually similar to the **boolean** attribute, with `Both` as a third status option
- Rendered as a ***radio button*** with options labeled `Yes`, `No` and `Both`
### Composed Attribute Types

Simple attributes types can only retain a single type of information, whereas composed attribute types aggregate
different types of information into one attribute.
Simple attributes can only retain a single type of information, whereas composed attributes retain
many different types of information in one attribute.

It is functionally legal to build a content type where all attributes are specified back-to-back: Although formally complete, this is logically insufficient, as attributes would appear mutually unrelated and their relationships to one another would not be explicitly defined.
Though it is functionally acceptable to build composed attributes with back-to-back types, it is not recommended as the parameters would appear unrelated and their relationship to one another could not be defined.

Entando offers three types of composed attributes: List, Monolist, and Composite.

**List**

- Represents a set of independent and homogeneous elementary attribute types
- Each attribute type is associated with only one of the languages defined in the system, limiting the **list** attribute to mono-language attributes
- Represents a set of independent and homogeneous elementary attribute types.
- Each attribute type is associated with only one of the languages defined in the system, limiting the **list** attribute to mono-language attributes.
- Rendered as a ***button*** called `Add`. Clicking `Add` prompts the user to select or define the single elements which compose the list.

**Monolist**

- Represents a list that is common to all of the languages defined in the system, allowing the **monolist** attribute to handle both mono-language and multi-language attributes
- Represents a list that is common to all of the languages defined in the system, allowing the **monolist** attribute to handle both mono-language and multi-language attributes.
- Rendered as a ***button*** called `Add`. Clicking `Add` prompts the user to select or define the single elements which compose the monolist.

**Composite**

- Represents an aggregate of different, non-homogeneous, simple attributes types
- The aggregation of different types is treated as a single unit
- Rendered as a combination of the elementary attribute types, where each attribute type presents the proper rendering
- Represents an aggregate of different, non-homogeneous, simple attribute types.
- The aggregation of different types is treated as a single unit.
- Rendered as a combination of the elementary attribute types, where each attribute type presents the proper rendering.

24 changes: 13 additions & 11 deletions vuepress/docs/next/tutorials/compose/content-templates-tutorial.md
Original file line number Diff line number Diff line change
@@ -1,32 +1,34 @@
# Content Templates

Content Templates define how information is displayed when content is published. They provide the styling and layout for Content Types and enable different representations of the same content.
Content templates define how information is displayed when content is published. They provide the styling and layout parameters for Content Types and enable different representations of the same content.

Note that the terms "templates" and "models" are used interchangeably.

## Create a Content Template

Content templates are managed by the Entando Web Content Management System (WCMS), through a user interface accessible from the [App Builder](../../docs/getting-started/concepts-overview.md#entando-app-builder). Follow the steps below to create and configure a content template.
Content templates are managed by the Entando Web Content Management System (WCMS) in the [App Builder](../../docs/getting-started/concepts-overview.md#entando-app-builder). Follow the steps below to create and configure a content template.

**1. From the left menu of the App Builder, go to `Content` → `Templates`**
**1.** From the left menu in the App Builder, go to `Content` → `Templates`

**2. Click the `Add` button above the list of existing templates**
**2.** Click the `Add` button above the list of existing models

![createContentTemplate](./img/content_template1.png)

**3. Define the characteristics of the content template**
**3.** Define the characteristics of the content model

![defineContentTemplate](./img/content_template2.png)

- `Type`: Choose a content type from the drop-down list. Click the `Set` button to input your selection.
- `Type`: Choose a content type from the drop-down list. Click `Set` to complete the selection.

- `Code`: Enter a sequence of up to 10 numbers to uniquely identify the content template. This field is mandatory.
- `Code`: Enter a sequence of up to 10 numbers to uniquely identify the content template. This field is required.

- `Name`: Enter a name or description for the content template. This field is mandatory and supports a string of 50 characters or less and should consist of one or more of the following: uppercase letters, lowercase letters, numbers and/or special characters.
- `Name`: Enter a name or description for the content template. This field is mandatory and supports a string of 50 characters or less and should consist of one or more of the following: uppercase and lowercase letters, numbers, and/or special characters.

- `Model`: Enter HTML to model the content template with Velocity language. This field is mandatory.
- `Model`: Enter HTML to model the content template with Velocity language. This field is required.

- `Style Sheet`: (Optional) Enter the CSS to be applied to the HTML `Model`.

**4. Click the `Save` button**
**4.** Click `Save`

This adds the content template to the content type.
Now the content template/model is available to the content type.

32 changes: 16 additions & 16 deletions vuepress/docs/next/tutorials/compose/content-tutorial.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,34 @@ sidebarDepth: 2

# Create and Manage Content

This tutorial describes how to create, edit and publish content in an application from the [App Builder](../../docs/compose/app-builder.md) using the Entando Web Content Management System (WCMS).
This tutorial describes how to create, edit and publish content in an application from the [App Builder](../../docs/compose/app-builder.md).

## Create Content

1. Log into your App Builder
2. From the left sidebar, go to `Content` → `Management`. All existing content is displayed in a table.
1. Log in to your App Builder
2. From the left sidebar, go to `Content` → `Management`. Existing content is displayed in the table.

![image](./img/content-management.png)

3. Click the `Add` button on the right side of page and select the desired content type from the drop-down list. This loads a form to further define the content. See [Content Type](./content-types-tutorial.md) for how to add new types.
3. To create new content, click the `Add` button on the right and select the desired type from the drop-down list. This loads a form to add details about the content. See [Content Type tutorial](./content-types-tutorial.md) to add new types.
![image](./img/content-add.png)

4. Provide the following information:
* `Info`
* `Content description`: Enter the content name or description. This field is required.
* `Groups`
* `Owner Group`: From the drop-down list, choose an available user group to manage the content, then click `Set group`. This field is required and can be amended in the App Builder's `Users` section under `Groups`.
* `View Only Groups`: Provide groups with viewing access to content by highlighting an available group and clicking `+` to add it. This field is required.
* `Categories`: If categories have been added, you can select a category and click `+` under `Join` to include the content in that category for searching and sorting. This field is not required.
* `Owner Group`: From the drop-down list, choose an available user group to manage the content, then click `Set group`. This field is mandatory and can be amended in the App Builder's `Users` section under `Groups`.
* `View Only Groups`: Add groups to provide viewing access by highlighting an available group and clicking `+` to add it. This field is required.
* `Categories`: If categories have been added, you can select a category and click `+` under `Join` to include it in that category for searching and sorting. This field is not required.
* `Content attributes`: You are required to enter a title for the content type in the `Title` field. Populate the remaining optional fields as needed.
> Note: `History` displays the iterations of the saved content. You can view the content details or revert to a previous version.
> Note: `History` displays the iterations of the content previously saved. You can view the details or revert to a previous version.

5. Determine the status of the content to inform how it should be saved:
* `Draft`: The content is in the development stage and not ready for approval or publication. The `Save` or `Save and Continue` buttons establish `Draft` status for the content.
5. Determine the status of the content:
* `Draft`: The content is in the development stage and not ready for approval and publication. `Save` or `Save and Continue` keeps it in `Draft` mode.
* `Ready`: The content is ready for review, but has not been approved or published. Content with this status can be approved later or published immediately.

6. Choose from the options to save the content:
* `Save`: Save the content as work in progress without approving it
6. Choose from these options to save the content:
* `Save`: Save the content as a work in progress without approving it
* `Save and Continue`: Save the content as a draft and continue editing it
* `Save and Approve`: The content is saved, approved, and ready to use in an application

Expand All @@ -40,16 +40,16 @@ This tutorial describes how to create, edit and publish content in an applicatio

### Find Content

From `Content` → `Management` you can use the `Advanced Filters` feature to search for content by type, category, group or status.
From `Content` → `Management` of the left navigation menu, you can use the `Advanced Filters` to search for content by type, category, group, or status.
![Content Filters](./img/content-filters.png)

In the resultant table, a set of parameters identifies matching content. Any parameter can be deleted from view by unchecking it in the `Additions to the table of results` drop-down menu.
In the resultant table, a set of parameters identifies the matching content. The parameters can be deleted from view by unchecking it from the `Additions to the table of results` drop-down menu.

![Content Table List View](./img/content-table-view.png)

### Content Actions

For all content shown in the table, the Actions menu provides the following options:
For each content listed in the table, the `Actions` menu provides the following options:
* `Copy/Paste`: Replicate the content
* `Draft version`: Edit the unpublished draft version
* `Published version`: Edit the published content or revert to a previous version
Expand All @@ -74,7 +74,7 @@ Content Settings provide a method for managing aspects of your assets, letting t
![image](./img/content-setting.png)

### Solr Configuration
* In a multitenant application, when Solr is enabled and the `advancedSearch` environment variable is set to `true`, the Solr configuration page is accessible as the last item under `Content` in the App Builder navigation sidebar.
* In a multitenant application, when Solr is enabled and the `advancedSearch` environment variable is set to `true`, the Solr configuration page is accessible as the last item under `Content` in the App Builder left sidebar.

* The Solr Configuration page allows you to monitor and update the schema of the fields required by the content types, which the search is dependent on.

Expand Down
Loading
Loading