The new version 8.7 of DoX CMS added to the functionality of the filters used to control views considerably. The now allow you to set up standard views or workspaces which remain in use until you change the filter and which can be reorganized in menus that support that option.
I will briefly discuss the changes from the update here. Afterwards, I will share my thoughts on best practices with the feature in its new form. You can, for example, hide any topics set to a workflow state used to archive content to avoid them being included alongside other content when you filter for it, organize it, or search it up.
Changes to filtering
The changes to filters in version 8.7 include the following additions:
- Reversed filters: You can filter out the results that fit the filter value.
- Saved filters: You can save commonly used sets of filter values that only require you to select them all at once.
- Persistent filters: Saved filters that are in use remain in use when you come back from another menu or refresh the view.
- Reorganizing filtered views: When you are in a menu that you can reorganize, you can still do so when a filters is in use.
Reversed filters


When you write a value to the filter field in any column, a minus sign will show on the left side of that field. When you click this minus sign, it reverses the filter value to hide any content that matches the value in that filter field. Usually, you would instead filter out all content which does not contain a matching value in that column. You can have different columns use filters that differ in this respect but the condition for a given column can only be normal or reversed. You cannot have part of a column’s value function normally and another part be reversed.
Saved filters

You can save the set of filter conditions in use as a group which you can then return to use immediately when you set it as your active filter. This lets you apply that combination without the need to write or click each value into use separately each time. Instead, you can select it from a list of such filters for that menu.
You can save filters for these menus:
- Editor,
- Tags,
- Topic trees,
- Publications,
- Variables, and
- Translation projects.
Persistent filters
When you save a filter, you can then also have that menu save it having been selected in use even if you refresh the view or return there from another one. When any saved filters is set in use, it will apply its saved values whenever you open that menu, until you remove it from use. This involves having this information be saved in your browser’s cache. If you want to change some of the filter values, that filter will still remain in use and you can save any changes to it. However, whenever you refresh the page, it will return in use the currently saved values for that filter.
Reorganizing filtered views
Previously, you could not reorganize any menus that would otherwise allow it when a filter was in use. Since this update to filters is also meant to allow for active filters as part of a user’s default workspace, we found ways around this limitation.
When you move content in a filtered view, and there is filtered out content related to either what you move or where you move it, that hidden content settles around the moved content in predictable ways.
- Hidden sub-content moves alongside the the content above it when you move that. This is no different from an unfiltered view. You will see whether the content being moved has sub-content based on whether there is a plus sign or a minus sign before its name to either show or hide such content. This still happens when all such sub-content is filtered from view.
- The content that was moved retains the same position to the content directly above it in a filtered view after you remove filters. For example, if that content already had sub-content and you moved more content below it in the hierarchy, the newly moved content would stay at the top of that sub-content after filters are removed.
Recommendations for filters
In particular, the ability to save complex filters with multiple values to easily deploy them again and saved filters being persistent extend what you can do with filters. I discuss several of my observations about best practices for our updated filters below.
Folders and visibility
The Editor menu lets you use content added to the list as folders which control that view in part. These folders interact with filters. As such, you should make sure that you set the two up in a way which works smoothly.
If a folder, which contains content that matches the filter condition, is closed, that content will not show in the filtered view, This will help you exclude content from other folders in a filtered view if you are only interested in matching content in one folder. However, you must keep this in mind whenever you want to filter out matching content anywhere on the list.
The easiest way to ensure that some folder does not affect the results by accident is to use the Collapse All and Expand All commands on the toolbar. Expand All in particular is handy whenever you must filter the whole view, to ensure that all matching content shows.
Since whenever a filter hides a closed folder, it also hides that folder’s contents, it is a good idea to also have folders also include at least the most commonly used identifiers for their sub-content. This ensures that those filters allow you to find that content despite it being inside a folder. Of course, you must account for how this includes not only the folders immediately above that content but also the whole folder structure inside which it lies. As such, this is not ideal for folder structures with many layers. You can also do this with only some of the content in your environment, such as only the source versions for content references or only for templates.
Clipboard
The clipboard in the Editor menu, in which you can temporarily move content, has its own filter fields. In other words, you can store content there when you swap between filters to then move that content to a new position based on a different filter. This extra space opens when you click on the clipboard icon in the lower right corner of the Editor menu’s list.
Since you can apply different filters to the clipboard than to the main list, you can also use those filters to find the content that you need at any time from inside there quickly to move back to the main list.
Helpful filters
Here are some valuable ways to use saved filters:
- Remove archived content: Hide the content marked as obsolete.
- Remove untranslated content: Hide the untranslated topics in a given language’s view in the Editor menu.
- Content with comments: Only show content with review comments in the Editor menu.
- Content added or modified this year: Only show the content that has been added or modified over the course of the current calendar year.
- Incomplete translation projects: Only show translation projects that have not been imported back.
Depending on the needs for the default state of a given menu, it may combine parts of several of these filters, of course.
Remove archived content
The primary reason for this update was adding the ability to remove obsolete content from views. Depending on the menu in question, you can achieve this through various means.
Archived state in the workflow
You can add a new state to the workflow for identifying content which is no longer going to see updates. In this case, you can include a filter that hides all content in that workflow state from the default workspace for the Editor menu.
Where necessary, you can of course also move this content to its own folder at the bottom of this menu. This helps in part to avoid the possibility that they get mixed in with other search results. You are also less likely to accidentally move them around together with the content around them in a filtered view.
Archiving based on keywords
If a menu’s contents have no workflow but you can edit descriptions shown on the list, for example, you can add keywords like ‘#archived’ in these descriptions. Afterwards, you will only need a saved filter which removes from view the parts that have this value in that column.
For now, this method works in the Editor menu (should you prefer it to the use of the workflow for this) and the Publications menu. You can also add such keywords in the Name field in the Topic Trees menu and the Tags menu. For the latter, there is also a better method shown below, though.
Retiring and archiving tags
When you edit tags, you can remove permissions to use them in different contexts. This makes them unselectable in menus that show a list of tags. These features also have associated columns in the Tags menu, though. As such, you can use a saved filter to, for example, hide from view all tags which are not permitted to be used in the editor.
Remove untranslated content
The views for languages other than your main one can be less than ideal to browse because they show parts in the wrong language that are being translated and fully untranslated portions. You can, however, remove these parts from view with a filter saved for that purpose.
The Editor menu requires these two conditions for all untranslated content to be removed from view:
- ‘(Not Translated)’ in the Topic column: A reversed filter with this value removes from view all parts that no translation project for that language includes. This value depends on your UI language. If you have your UI set to Finnish, instead write ‘(Ei Käännetty)’. Capitalization does not affect this.
- ‘InTranslation’ in the State column: A reversed filter with this value removes from view the parts where their newest revision was sent to be translated but for which a translation has not been imported yet. If you have changed the name of this state, use the value that matches the one in your system.
If needed, you can also just use filters which only show completely untranslated parts or parts being translated at the time. Plus, you can always remove one of these conditions from use while this filter is active if you want to show the parts that it would otherwise hide.
For publications, you can use the State column and a reversed filter with the value ‘Waiting for Translation’. Note, however, how imported translations for publications do not automatically move them to a new workflow state. This is because setting them to be reviewed or approving them has other effects in the system, as it saves these publications’ exact content at the time. You must thus remember to review and approve them.
Content with comments
The Editor menu tells you when the active revision of a topic has one or more comments. The main reason why such comments get added are content reviews. Such comments only relate to a given revision which resets the value in the column for them whenever you add a new revision to that topic. Of course, should you revert to an older revision as the active revision, this will also return associated comments both in the text editor and in the column that lists their number.
If you write a value that the Comments column in the Editor menu can never have, such ads ‘0’, in that column and then reverse that filter. you will only see the parts with one or more comments. I also recommend that you add a reversed filter with the value ‘Approved’ to the State column to remove already approved content from view.
This filter will show which not yet approved content has comments from this round of revisions. This option is suited for browsing through this content even if it was not reserved to you in the workflow or even though your workflow includes no separate state for changes after a round of reviews.
If you use the workflow to archive content in the way described above, I recommend that you also add a new revision to archived content to reset the number of comments.
Content added or modified this year
One more way to clean different views is to only show the latest contents there. You can thus set the Added or Updated column’s filter value to the current year and save that filter. This allows you to use that view as your default workspace which only shows the latest content that has been worked on.
Remember to update such filters at the start of a new year, or at least at an agreed upon date at which point content from last year is distant enough not to be needed as part of this workspace.
Incomplete translation projects
Usually, you need not show finished translation projects as part of the default list of translation projects. A saved filter lets you remove them from that list. All that such a filter requires is the value ‘In Progress’ in the State column in the Translation Projects menu. This value gets translated based on the selected UI language. The corresponding value in Finnish is ‘Keskeneräinen’.
At this time, you cannot separately only filter out test translations unless you named them in ways which distinguish them from other translation projects. However, if you import those test translations, you can have them filtered out alongside other finished translation projects.
If you have old test translations that you want to hide, you can download the translation files for each again in the Translation Projects menu. After this, you can import these translation files and select to exclude all content associated with them. You can do this as a mass command from inside the Action column’s title field when you move your cursor over it. This identifies these translation projects as completed without changes to content. Be wary of translation projects for publications, as you will first need to remove the parts of their files which include content that you cannot control in this way, such as variables and publication names.
Summary
DoX CMS now supports the use of filtered lists as the default views for a number of menus. More specifically, the system now allows the use of reversed filters and saved filters, as well as saved filters set to remain in use, and the reorganizing of filtered views.
Reversed filters remove from view the parts that match their values for those columns.
Saved filters consist of a number of filter conditions for different columns in a given meny, and you can select them from a list to use them. If you need to, you can add or remove filters while one of them is selected. You can then save such changes or discard them.
When a saved filter is in use, it remains in use when you return to that menu or refresh the page. This resets that filter to its saved values. This allows you to use a filtered view as the default workspace for a menu.
A part of this extension to the functionality of filtered views is how they no longer prevent you from reorganizing content in menus that have that option, such as the Editor menu. When you move content in a filtered view, it will retain the same relation to the content directly above it once filters are removed as well. The contents hidden in a filtered view settle around the moved content based on this, and the moved content cannot be positioned in relation to that hidden content while the filter is in use.
When you use filters, do note how only the contents of open folders will show. This allows you to remove from view content which would fit the filtering criteria but which is not relevant at the time. This also means that you can accidentally not show all the parts that would match the filters unless you first open all folders with the Expand All command.
The filters used in the Editor menu do not also apply to the clipboard there. As such, you can move content from a filtered view to the clipboard and then move them back to the main list after you change the filters, even if that content would not show with these filters.
These changes allow you to, for example, archive content through the use of filters as part of the default workspace to hide content marked as archived from view. You can use workflow states, keywords in descriptions, or the permissions related to tags for this, for example.
You can also remove from view untranslated content in other languages, only show content with review comments, only show content that was added or edited that year, or only show translation projects that are still incomplete. In addition to these examples, you are sure to find filters suited for your environment and needs.