The URLLoader module provides us with the ability to set variables from the query string of a URL—a very useful feature. For our next dashboard, we will draw a table showing the error counts for the user value provided in the URL:
<view template="dashboard.html"> <!-- add sideview --> <module name="SideviewUtils" layoutPanel="appHeader"/> <!-- chrome --> <Label>Chapter 9 - Sideview Two</Label> <module name="AccountBar" layoutPanel="appHeader"/> <module name="AppBar" layoutPanel="navigationHeader"/> <module name="Message" layoutPanel="messaging"> <param name="filter">*</param> <param name="clearOnJobDispatch">False</param> <param name="maxSize">1</param> </module> <!-- search --> <module name="URLLoader" layoutPanel="panel_row1_col1" autoRun="True"> <module name="HTML"> <param name="html"><![CDATA[ <h2>Errors by logger for $user$.</h2> ]]> </param> </module> <module name="Search" group="Chapter 9 - Sideview Two"> <param name="earliest">-199d</param> <param name="search"> sourcetype="*" user="$user$" | top user </param> <!-- table --> <module name="SimpleResultsTable"> <param name="drilldown">row</param> <module name="Redirector"> <param name="url">chapter_9_sideview_3</param> <param name="arg.logger"> $click.fields.logger.rawValue$ </param> <param name="arg.user">$user$</param> <param name="arg.earliest"> $search.timeRange.earliest$ </param> </module> </module> </module> </module> </view>
It is very important that autoRun="true" be placed in one module—most likely URLLoader—and that it exists only in a single module.
With the value of the user as shelby in our URL, this dashboard (using my data) creates the simple view (notice the logged errors for shelby seem to be of only one type), as shown in the following screenshot:

Looking at the modules in this example that are of interest, we have the following terms and their descriptions:
- SideviewUtils: This module is required to use any of the other Sideview modules. It is invisible to the user but is still required.
- URLLoader: This module takes any values specified in the URL query string and turns them into variables to be used by the descendant modules. Our URL contains user=mary, so $user$ is replaced with the value mary.
- HTML: This module draws a snippet of HTML inline. Variables from URLLoader and from form elements are replaced.
- Search: This replacement for HiddenSearch understands variables from URLLoader and form elements. This completely obviates the need for intentions. In our case, $user$ is replaced.
- Redirector: In this example, we are going to hand along two values to the next dashboard—user from URLLoader and logger from the table itself.
Notice the following code terms and their descriptions:
- logger is populated with $click.fields.logger.rawValue$.
- When a table is clicked on, the variable called click.fields contains all fields from the row of the table clicked on.
- rawValue makes sure that an unescaped value is returned. As the Sideview documents say:
- This rule applies to values in Redirector and not in display.
- search.timeRange contains information about the times used by this search as to whether it comes from the URL, a TimeRangePicker, or params to the Search module. arg.earliest adds the value to the URL.
With a click on the table row for LogoutClass, we are taken to the following URL:
http://localhost:8000/en-US/app/is_app_one/chapter_9_sideview_3? user=mar&ylogger=LogoutClass&earliest=1344188377
We will create the dashboard at this URL in the next section.