> For the complete documentation index, see [llms.txt](https://salsa-digital.gitbook.io/govcms-site-builder/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://salsa-digital.gitbook.io/govcms-site-builder/unit-6-content-listing-with-views/customize-the-content-administration-experience/exercise-6-10-administration-with-view-bulk-operations.md).

# Exercise 6.10: Administration with View bulk operations

In this exercise, we'll create a way for content approvers to view all content waiting for approval, so they can quickly and easily review and publish new content.

## Prepare the site

In the current setup, content editors can create and publish job postings. We’re going to change this, so that new job postings must be reviewed by a Content Approver before being published. To do this, we’ll introduce a moderation workflow.

1. Go to *Configuration* → *Workflow* → **Workflows**.

   <figure><img src="/files/h90WASuLNgb3LwgvQEJe" alt=""><figcaption></figcaption></figure>
2. Edit the existing “Editorial” workflow. We’re going to reuse the existing workflow states and transitions as-is, to match the moderation workflow of the rest of the site.
3. Scroll down to **This workflow applies to** section and press **Select** in the **Content types** row.

   <figure><img src="/files/zaYND9eq83zwvtuHkFXi" alt=""><figcaption><p>Select button next to Content types in Workflow</p></figcaption></figure>
4. Select the **Job Posting** checkbox, **Save** the changes.

   <figure><img src="/files/5bcj65iWxwR4KHRriKBd" alt=""><figcaption><p>Select Job Post</p></figcaption></figure>
5. Press the **Save** button in the Edit Editorial workflow page.

## Add the view

1. Create a new View with the following settings:

   | View name          | Admin: Submitted job postings |
   | ------------------ | ----------------------------- |
   | Show               | Content of type: Job Posting  |
   | Page title         | Submitted jobs                |
   | Page path          | admin/submitted-jobs          |
   | Display format     | Table                         |
   | Items to display   | 50                            |
   | Use a pager        | Selected                      |
   | Create a menu link | No                            |
   | Create a block     | No                            |

   > **Hint**: Go to *Structure* → *Views* → **Add View**.

   <figure><img src="/files/iiNLx9mP8DyNQFXSmJzg" alt=""><figcaption></figcaption></figure>
2. Click **Save and edit**.

## Add fields

{% hint style="success" %}
**Tip:** Select multiple fields at a time and configure them sequentially.
{% endhint %}

1. Add these fields:
   * Content: **Node operations bulk form**
   * Content: **Authored on**
   * Content: **State**
2. Configure the **Bulk operations**: Available actions:

   * Delete content
   * Save content
   * Update URL alias

   &#x20;

   <figure><img src="/files/xg1T7x4SvUFu3J5eXnY4" alt=""><figcaption></figcaption></figure>

   <figure><img src="/files/3L6r2R8DmeCZ48qVtOJI" alt=""><figcaption></figcaption></figure>

Note that we did not select the “Publish content” and “Unpublish content”. Since we have a moderation workflow in place, these actions won’t work on our site.

![Image of View](/files/zIVmJOVn3pgwaOTvioL3)

Keep other defaults for the remaining fields. Remember to **Save** your changes to the View.

## Rearrange fields

Click the dropdown next to the **Add** button in the *Fields pane* and select **Rearrange**.

![Image of Rearrange fields](/files/GZE29lGZglZVOdyNUZSo)

![Image of Rearrange fields](/files/xsFHIcN3JhWotB4S36iO)

## Remove unnecessary filters

The filter **Content: Published (= Yes)** can be removed as we will be replacing it in the next section.

![Image of Remove unnecessary filters](/files/hoCm6gBWYFQWW29siq0h)

![Image of Remove unnecessary filters](/files/jKEsb8yIb5Qfppdcy5LC)

## Add moderation workflow filter

To only see Job Postings that are pending approval, add the **Content: Moderation state** filter. Configure the following options:

![Image of Add moderation workflow filter](/files/8IEO1qWnhqd6Dn1Q5YOP)

> **Tip:** Hold down the Command key (Control for Windows) to select multiple options.

## Configure the format settings

![Image of Configure the format settings](/files/xHc4OjTZQDMhjSCVeg5h)

Edit the table settings. Ensure any column that can be sortable is selected. Set the default order for *Authored on* to Descending.

![Image of Edit sortable settings](/files/5YJsTvPAP3ff7yO5yD2T)

## Add a "no results" message

Adding a “no results” message will clearly show that the view IS working properly if/when there isn’t any content waiting for approval.

1. In the middle column, under **NO RESULTS BEHAVIOR**, click **Add**.
2. Select Global: Text area

   <figure><img src="/files/wnTcYbUwZVUkcFff8UmQ" alt=""><figcaption></figcaption></figure>
3. Then set the message “There are no job postings currently waiting for review!”.

   <figure><img src="/files/GZSyktznu23rVeSzGtyM" alt=""><figcaption></figcaption></figure>
4. **Apply** the changes.

## Change access settings for this view

Lastly, we will change the access/permission settings for this new view, from **View published content** to **Administer content**. Note that you can only do this with a user belonging to a role that has the necessary permissions.

![Image of View - Access](/files/WYk96DIu3EQj1CRVjZ4j)

![Image of Change access settings](/files/xpL3J9CvgWw9sUNqrLjX)

## Save and review

Save the view and review. Go to admin/submitted-jobs. If there are no Job Listings in Draft status you should see the screen below:

![Image of No jobs waiting for review](/files/dLZiBjn8Sm4DCR0qV3wm)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://salsa-digital.gitbook.io/govcms-site-builder/unit-6-content-listing-with-views/customize-the-content-administration-experience/exercise-6-10-administration-with-view-bulk-operations.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
