Using the Jahia Admin Tool
Jun 15, 2012
Working on Jahia xCM projects as a developer requires good administrative knowledge of the CMS. If you have experience on different CMS systems then you know what I’m talking about. As a developer, there are some scenarios where you need to perform tasks like quickly removing project content, testing a new custom functionality over the project content structure, testing custom queries over the projects content, etc.
On Jahia xCM, developers and administrator have a powerful tool called “Jahia Admin Tool”. This is a web application that is configured on the “installation procedure” (installation asks for a password for this tool) and is available under the Jahia web application context used on the installation. If your Jahia web application context is ”/“, the tool will be on ”/tools“ web context.
This application has a lot of interesting features, below is a screenshot of the application menu:
The menu of the main page is self descriptive in that the items are grouped under categories that guide administrators on the specific tasks available. For example, if the task you’re looking for is about getting system information or maybe forcing the garbage collector process then you can go to “System and maintenance” category.
As we’re focused on developers tasks we will start checking the “JCR Data and Rendering->JCR repository browser” option.
There are two tasks where I used the Admin Tool and got great results:
- Navigate the JCR repository of a specific project
- Quickly remove content from the JSR repositories (default and live)
The first one is really important if you’re trying to list the properties of a specific content node on a project. When you are creating JCR queries (here a link to JCR queries post) most of the times you need to build queries over content nodes of the projects that inherits from Jahia xCM provided content nodes (eg: most of the content nodes inherits from jnt:content).
If the parent content nodes already defined a specific attribute, then your new content node doesn’t defines the attribute again, so you need to know the available attributes your new content node has and then use the attributes on a query.
Here is where the JCR repository browser helps, looking into a content node definition without checking into source code. Let’s see the information available for a content node I created. ont:testmodule1:
All the content nodes are listed under
/jcr:system/jcr:NodeTypes/ path, so if you know the content node you want to see, just add into this path and the browser will find and display all its content definition for you. The info includes the child nodes if there are any and the supertype so you can check the parent node’s information browse into the
node using the links.
The second task is more common: delete content.
If you understand how Jahia uses two JCR repositories “default” and “live”, the publication of content, and you want to remove content from each one of the JCR repositories, then the Admin Tool will be very helpful for you. If you want you delete a single page from the project content (default or live) then the editor mode will be fine, but if you want to remove a lot of content or even all "live" repository content then the editor mode doesn’t help much.
For this case you can go to the JCR browser and find the content of the specific project using this path:
/sites/$projectName and the browser will show you the
project existent content.
Two important things before continue:
- You can switch between the default and live repository using the link on the upper area of the administration tool:
- You need to activate the actions on the JCR browser, this option is on the upper right area:
So if the goal is to delete content from the “live” repository we can switch to live and select the delete option over the node or nodes we want to delete. This action will be applied recursively, so all child nodes will be deleted from the repository.
The show actions will display more options than delete content, you can use this to export (xml, zip format) or to rename a specific node.
I hope you will find a lot more of tasks where the admin tool becomes a plus.