Merged Template.soy
{namespace jive.skin.template autoescape="contextual"}
/**
* A Soy version of the main site template.
*
* @param? title The page title
* @param canonicalUrl
* @param bodyClass
* @param bodyContent The HTML to be inserted into the body section.
* @param headerInfoView
* @param customFooter
* @param devMode
* @param instanceInfoView
* @param noUserBar
* @param customizeSite
* @param navBar
* @param bodyID
* @param targetObject
* @param spotlightSearchEnabled
* @param trialBean
* @param noTrial
* @param noHeader
* @param communityName
* @param noFooter
* @param licenseBeaconEnabled
* @param timestamp
* @param timingView
* @param kMetricsView
* @param adRollView
* @param postFooter
* @param onboardingEnabled
* @param headContent
* @param tipsView
* @param complianceMessagingBean
* @param systemMessageView
* @param pageBreadcrumb
* @param pluginJavascriptSrcURLs
* @param asyncLoadRTE
* @param selectedLinkID
* @param appsMarketEnabled
* @param anyAppsEnabled
* @param appUUIDs
* @param user
* @param displayLanguage
* @param macroJavaScript
* @param feedbackEnabled
* @param realtimeUiEnabled
* @param i18nResourceKey
* @param? preHeader
* @param? contextObject
* @param? socialSharingEnabled
* @param externalizeI18n
*
* @depends template=jive.skin.template.javascript.header scope=server id=aHeader
* @depends template=jive.skin.template.javascript.core scope=server id=core
*/
{template .main}
{let $communities:[
'discussions' : [
'id': 43
],
'fileExchange' : [
'id': 2041
],
'fileExchangeAddins' : [
'id': 2042
],
'fileExchangeScripts' : [
'id': 2043
],
'fileExchangeSampleData' : [
'id': 2044
]
] /}
<!DOCTYPE html>
<html lang="{$displayLanguage}">
<head>
{call jive.skin.template.header.meta data="all"/}
<title>{if $title}{$title|truncate:50} | {/if}{$communityName}</title>
{if $canonicalUrl}<link rel="canonical" href="{$canonicalUrl}"/>{/if}
{if $timingView.header}{$timingView.header|noAutoescape}{/if}
{if $kMetricsView.enabled}{$kMetricsView.headerScript|noAutoescape}{/if}
{call jive.skin.template.header.clickjackingPrevention data="all"/}
/**-- CSS needs to come before bulk of JS else "flash of style" happens --*/
{call jive.skin.template.header.css.main data="all"/}
{call jive.skin.template.javascript.pluginTemplates data="all"}
{param head: true/}
{/call}
{call jive.skin.template.header.opensearch data="all"/}
{call jive.skin.template.header.favicon data="all"/}
{call jive.skin.template.javascript.header data="all"/}
{if $tipsView}
{call jive.skin.template.header.tips data="$tipsView"/}
{/if}
{outputResources('script','aHeader', false)}
{if $headContent}{$headContent|noAutoescape}{/if}
/**-- Allow dynamic CSS to override any core CSS as well as page-specific CSS (included in $headContent) --*/
{call jive.skin.template.header.css.dynamic data="all"/}
{call jive.skin.template.javascript.googleAnalyticsCode data="all"/}
</head>
<body class="{if $bodyClass}{$bodyClass}{/if}{if $headerInfoView.headerType and not $noUserBar} j-header-mode-{$headerInfoView.headerType}{else} j-no-header{/if}{if $trialBean.trialActive and not $customizeSite} j-trial-bar-active{/if}">
{if $noHeader}
{$bodyContent|noAutoescape}
{else}
<a id="top"></a>
{if not $noUserBar}
{call jive.skin.template.header.systemMessage data="$systemMessageView"/}
{/if}
{if $trialBean.trialActive and not $user.partner and not $user.guest and not $noTrial}
{call jive.skin.template.header.trial data="all"/}
{/if}
{if $complianceMessagingBean}
{call jive.skin.template.header.licenseBanner data="$complianceMessagingBean"/}
{/if}
{if $preHeader}
{$preHeader|noAutoescape}
{/if}
/**-- Main Header --*/
<div id="j-header-wrap"
data-company-name="{$headerInfoView.companyName}"
data-no-user-bar="{if $noUserBar}true{else}false{/if}"
role="banner"
>
{call jive.nav.header}
{param headerInfo: $headerInfoView/}
{param nav: $navBar/}
{param user: $user/}
{param selectedLinkID: $selectedLinkID/}
{param communityName: $communityName /}
{param hideUserBar: $noUserBar ? true : false/}
{param customizeSite: $customizeSite ? true : false/}
{/call}
</div>
<section id="j-main" class="clearfix">
<div id="{if $bodyID}{$bodyID}{else}jive-body{/if}" class="clearfix">
{if $pageBreadcrumb}{$pageBreadcrumb|noAutoescape}{/if}
{$bodyContent|noAutoescape}
</div>
</section>
{call jive.skin.template.header.pageTooltips data="all"/}
{if $postFooter}{$postFooter|noAutoescape}{/if}
{/if}
/*-- Footer --*/
{if not $noFooter}
<div class="j-js-footer-wrap">
{if $headerInfoView.headerType == 'custom' and $customFooter}
{call jive.nav.customFooter}
{param html: $customFooter /}
{/call}
{/if}
<footer id="j-footer" role="contentinfo">
{call jive.nav.footer data="$instanceInfoView"}
{param feedbackEnabled: $feedbackEnabled /}
{param user: $user /}
{/call}
{if not $customizeSite}
{call jive.skin.template.javascript.footer data="all"/}
{if $realtimeUiEnabled}
<div id="realtime" class="noprint">
/* style from RTC will override this, we're applying display:none to hide if there's an issue w/RTC */
<div class="realtimeBarPlaceholder" style="display: none">
<div class="plus">
<div class="cross"></div>
</div>
<div class="room">
{i18nText('realtime.bar.rooms')}
<span class="j-action-down-arrow j-ui-elem"></span>
</div>
<div class="contacts">
{i18nText('realtime.bar.contacts')}
<span class="j-action-down-arrow j-ui-elem"></span>
</div>
<div class="me">
<img class="avatar" src="/api/core/v3/people/{$user.id}/avatar" />
<div class="userStatus">
<div class="dot"></div>
</div>
</div>
</div>
<div id="realtimeBar"></div>
</div>
{/if}
{/if}
</footer>
</div>
{/if}
/* must exist when page is rendered to work correctly with VoiceOver screen reader */
<div class="j-alert-container" role="alert" aria-live="polite" aria-atomic="true"></div>
<span id="j-speak-accessibility" class="j-508-label" role="status" aria-live="polite" aria-relevant="all" aria-atomic="true"></span>
{if $timingView.body}{$timingView.body|noAutoescape}{/if}
{if $devMode}
<span class="j-i-contain-script-tags">
{/if}
{call jive.skin.template.javascript.core data="all"/}
{outputResources('script','core', false)}
<script>
var containerType = '{$targetObject.objectType}';
var containerID = '{$targetObject.id}';
{if $spotlightSearchEnabled}
var spotlightSearchURL = "{buildUrl('spotlight-search')|escapeJs}";
{/if}
</script>
{if $onboardingEnabled}
{call jive.onboarding.jsInit data="all"/}
{/if}
{call jive.skin.template.javascript.rte data="all"/}
{if $externalizeI18n}
<script src="{resourceUrl('/resources/scripts/i18n/keys/' + $displayLanguage + '.js?h=' + $i18nResourceKey)}"></script>
{/if}
{outputResources('script','', false)}
{outputResources('script','eim', false)}
{outputResources('script','jmp', false)}
{call jive.skin.template.javascript.pluginJavascript data="all"/}
{call jive.skin.template.javascript.pluginTemplates data="all"}
{param head: false/}
{/call}
{outputResources('script','plugins', false)}
{if $devMode}
</span>
{/if}
{if $licenseBeaconEnabled}
<img src="{buildUrl('/beacon','t', $timestamp)}"/>
{/if}
{if $kMetricsView.enabled}{$kMetricsView.footerScript|noAutoescape}{/if}
{if $adRollView.enabled}{$adRollView.script|noAutoescape}{/if}
{if $timingView.footer}{$timingView.footer|noAutoescape}{/if}
</body>
</html>
{/template}
/**
* This template will render content shown in a div or iframe.
*
* @depends template=jive.skin.template.javascript.header scope=server id=aHeader
* @depends template=jive.skin.template.javascript.core scope=server id=core
* @param displayLanguage
* @param headContent
* @param bodyContent
* @param pluginJavascriptSrcURLs
* @param bodyClass
* @param title
* @param communityName
* @param i18nResourceKey
* @param externalizeI18n
*/
{template .embedded}
<!DOCTYPE html>
<html lang="{$displayLanguage}">
<head>
<title>{if $title}{$title|truncate:50} | {/if}{$communityName}</title>
/**-- CSS needs to come before bulk of JS else "flash of style" happens --*/
{call jive.skin.template.header.css.main data="all"/}
{call jive.skin.template.javascript.pluginTemplates data="all"}
{param head: true/}
{/call}
{call jive.skin.template.javascript.header data="all"/}
{outputResources('script','aHeader', false)}
{call jive.skin.template.javascript.core data="all"}
{param embedded: true/}
{/call}
{outputResources('script','core', false)}
{call jive.skin.template.javascript.rte data="all"/}
{if $externalizeI18n}
<script src="{resourceUrl('/resources/scripts/i18n/keys/' + $displayLanguage + '.js?h=' + $i18nResourceKey)}"></script>
{/if}
{outputResources('script','', false)}
{call jive.skin.template.javascript.pluginJavascript data="all"/}
{call jive.skin.template.javascript.pluginTemplates data="all"}
{param head: false/}
{/call}
{outputResources('script','plugins', false)}
{if $headContent}{$headContent|noAutoescape}{/if}
</head>
<body class="{if $bodyClass}{$bodyClass}{/if}">
{$bodyContent|noAutoescape}
</body>
</html>
{/template}
/**
* This template is solely for dependency management of AJAXed HTML responses so that any dependencies in the core
* bundle are not downloaded twice.
*
* @depends template=jive.skin.template.javascript.header scope=server id=aHeader
* @depends template=jive.skin.template.javascript.core scope=server id=core
*/
{template .ajaxload}
{/template}
/**
* This template is used to write custom body classes
*
* @param contextObject
* @param communities
*
*/
{template .bodyClass}
{if $contextObject.id == $communities['discussions']['id']}
page-discussions
{elseif $contextObject.id == $communities['fileExchange']['id']
or $contextObject.id == $communities['fileExchangeAddins']['id']
or $contextObject.id == $communities['fileExchangeScripts']['id']
or $contextObject.id == $communities['fileExchangeSampleData']['id']}
page-fileExchange
{/if}
{/template}