Shaun Brown


Product Manager, Itron Idea Labs


<p>Shaun Brown joined Itron in 2015, coming from a background of technical writing, journalism, publishing and parenting. Out of college, Shaun began her career in the technology sector at IBM San Jose where she developed online documentation and training modules. After five years, Shaun left the bay area, and shifted to a full-time role as mother of 5. As the children grew, Shaun and her husband started a publishing business which included the weekly Liberty Lake Splash newspaper and community directory. Once all five children headed off to college, Shaun joined Itron at the Liberty Lake headquarters. Initial projects included customer-facing documentation highlighting Itron solutions for municipalities and utilities. In 2017, Shaun was invited to join the Itron Idea Labs team, where she employs lean startup methodologies in the search for new businesses and solutions to resolve challenges faced by Itron&rsquo;s customers.</p>

Wystąpił błąd podczas przetwarzania szablonu.
The following has evaluated to null or missing:
==> authorContentdata.items  [in template "44616#44647#183853" at line 20, column 22]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: authorContentitems = authorContentdat...  [in template "44616#44647#183853" at line 20, column 1]
----
1<#-- 
2Add elements from the sidebar to define your template. Type "${" to use the 
3autocomplete feature. 
4--> 
5<#-- *Permission issue with guest user* 
6<#assign currentEntry = (request.getAttribute("LIFERAY_SHARED_LAYOUT_ASSET_ENTRY"))! /> 
7<#assign classPK = currentEntry.classPK /> 
8--> 
9 
10<#assign  
11currentURL = themeDisplay.getURLCurrent() 
12fullURLPath = currentURL?split("/") 
13urlData = fullURLPath[2] 
14removedParams = urlData?split("?") 
15friendlyURLPath = removedParams[0] 
16/> 
17 
18<#assign 
19authorContentdata = restClient.get("/headless-delivery/v1.0/structured-content-folders/148280/structured-contents?filter=friendlyUrlPath%20eq%20%27" + friendlyURLPath + "%27") 
20authorContentitems = authorContentdata.items 
21/> 
22<#if authorContentitems?has_content> 
23<#assign 
24authorContent = authorContentitems[0] 
25contentFields = authorContent.contentFields 
26categories=authorContent.taxonomyCategoryBriefs 
27authorContentData = jsonFactoryUtil.createJSONObject(authorContent) 
28friendlyURL = authorContentData.friendlyUrlPath 
29authorCategoryId = "0" 
30/> 
31 
32<#list categories as category > 
33				     <#assign authorCategoryId = category.taxonomyCategoryId /> 
34      </#list> 
35 
36 
37<span class="d-none" id="author-id">${authorCategoryId}</span> 
38</#if> 
39<script> 
40AUI().ready(function(){ 
41  const authorID = document.getElementById("author-id").innerHTML; 
42  if(authorID) { 
43	setTimeout(function(){ 
44    document.querySelector('[name="categoryId"][value="'+authorID+'"]').closest('label').click() 
45  }, 1000); 
46
47}); 
48</script>