Dedicated Publish Dashboard In The Tridion DOCS For Specific Output Format

In Tridion Docs, there is a publish dashboard to track the status of the published publication. But the limitation is user can’t filter it based on the output format. So sometimes it is hard to track the status of the publication for a specific output format. To overcome this scenario I have enhanced the existing functionality in such a way that users can configure the separate boards for the specific output formats.

In this example, I have configured a separate board for Dynamic Delivery output format.

High-Level Functional Flow :

To achieve this functionality we need to do changes in the below files –

File Name PublishingOptions.xml
Path Infoshare/Web/Author/ASP/xml/
  • First, we need to add the link on the left-hand side menu bar. For that, you can append the below section to the PublishingOptions.xml

    [Note: Added outputformat parameter at the end of each action URL. In this scenario I passed dynamicdelivery(will map it in the configuration file with output format id) as a value for the output format parameter]

<menuitem label="Current User ( Dynamic Delivery )" action="PublishingOverview.asp?userscope=current&amp;outputformat=dynamicdelivery" icon="../UIFramework/user.32x32.png">
		<userrole>Administrator</userrole>
		<userrole>Author</userrole>
		<userrole>Localization Manager</userrole>
		<userrole>Translator</userrole>
		<description>Show pending/publishing events for current user and dynamic delivery output format</description>
	</menuitem>
	<menuitem label="All Users ( Dynamic Delivery )" action="PublishingOverview.asp?userscope=all&amp;outputformat=dynamicdelivery" icon="../UIFramework/usergroup.32x32.png">
		<userrole>Administrator</userrole>
		<userrole>Author</userrole>
		<userrole>Localization Manager</userrole>
		<userrole>Translator</userrole>
		<description>Show pending/publishing events for all users and dynamic delivery output format</description>
	</menuitem>

File Name PublishingOverviewConfig.xml
Path Infoshare/Web/Author/ASP/xml/
  • Next, we need to add the mapping of the parameter value with output format id. I have tried to make this functionality configurable so that administrators can add or update at any time. For that, you need to append the below section on the PublishingOverviewConfig.xml

    [Note: Here I map the dynamicdelivery with the outputformat id( e.g. VOUTPUTFORMATDYNAMICDELIVERYDEV)]
<outputformat>
            <items>
                <item name="dynamicdelivery" value="VOUTPUTFORMATDYNAMICDELIVERYDEV" />
            </items>               
</outputformat>

File Name PublishingOverview.asp
Path Infoshare/Web/Author/ASP/
  • In this ASP add a check for outputformat parameter in the URL.
Dim outputformat
outputformat = request("outputformat")
  • If the outputformat parameter is not empty
    • It will read the value from the URL
    • Pass that value as a key and retrieve the output parameter id from the PublishingOverviewConfig
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
'===================================================
Set oResultOutputFormatList = oPublishingOverviewConfigFile.selectNodes("publishingoverviewconfig/outputformat/items/item")
If outputformat <> "" then
    For each oResultOutputFormatNode in oResultOutputFormatList
        tempOutputFormatName = oResultOutputFormatNode.selectSingleNode("@name").text
 
        If lcase(tempOutputFormatName) = lcase(outputformat) then
            sOutputFormat = oResultOutputFormatNode.selectSingleNode("@value").text
        End If 
    Next
 Else
  For each oResultOutputFormatNode in oResultOutputFormatList
        tempOutputFormat = oResultOutputFormatNode.selectSingleNode("@value").text
 
        If sOutputFormat <> "" then
            sOutputFormat = sOutputFormat & ", " & tempOutputFormat            
        Else
            sOutputFormat = tempOutputFormat
        End If 
    Next
 End If    
    'response.write "Event List: " & sOutputFormat
'===================================================
  • Once you have that id, add it to the metadata filter as a parameter to query publications from the Tridion Docs
sMDFilter = sMDFilter & "<ishfield name='FISHOUTPUTFORMATREF' level='lng' ishvaluetype='element' ishoperator='in'>" & sOutputFormat & "</ishfield>"
  • In case the outputformat parameter is empty
    • It will retrieve all the output parameter id from PublishingOverviewConfig. [Refer to the above code]
    • Add those ids to metadata filter with “notin” ishoperator as parameter to query publications from Tridion Docs
sMDFilter = sMDFilter & "<ishfield name='FISHOUTPUTFORMATREF' level='lng' ishvaluetype='element' ishoperator='notin'>" & sOutputFormat & "</ishfield>"
  • Furthermore, we need to pass the same outputformat parameter to the action URL for ShowAllEvents.asp. So update the below section –
<div><p>Showing <% =iNumberOfRows %> items of <% =oXMLObjectList.selectNodes("//ishobject").length %>. Click <a href="ShowAllEvents.asp?userscope=<% =userscope %>&timerange=<% =timerange%>&status=<% =psListType %>&outputformat=<% =outputformat %>" target="allEventsList">here to show all '<% =psListType %>' items</a></p></div>

That’s it for the PublishingOverview ASP.


File Name ShowAllEvents.asp
Path Infoshare/Web/Author/ASP/
  • To conclude, you need to implement the similar functionality as described above for the ShowAllEvent.asp.

Hope this helps.