Skip to content

Instantly share code, notes, and snippets.

@mattmetten
Created August 10, 2015 22:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mattmetten/42fe69999fbde9e554af to your computer and use it in GitHub Desktop.
Save mattmetten/42fe69999fbde9e554af to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="utf-8" ?>
<j:jelly trim="false" xmlns:j="jelly:core" xmlns:g="glide" xmlns:j2="null" xmlns:g2="null">
<div>
<g:evaluate>
var logoutAction = "/logout.do";
var backtrack_path = "";
var tran = GlideTransaction.get();
if (tran.isVirtual())
backtrack_path = "../";
var pageLink = new GlideCMSPageLink().getPageLink(current_page.getID()).substring(3);
var documentKey = RP.getParameterValue('sysparm_document_key');
if (documentKey)
pageLink += '?sysparm_document_key=' + documentKey;
var pageLinkNotEncoded = pageLink;
pageLink = GlideStringUtil.urlEncode(pageLink);
</g:evaluate>
<j:if test="${gs.getSession().isLoggedIn()}">
<g:evaluate var="jvar_logout_url">
var defaultPageLink = "";
var siteGR = new GlideRecord("content_site");
if (siteGR.get(current_page.getSiteID())) {
var defaultPageId = siteGR.getValue("default_page");
if (defaultPageId)
defaultPageLink = new GlideCMSPageLink().getPageLink(defaultPageId).substring(3);
}
defaultPageLink;
</g:evaluate>
<form name="logoutPage" action="${logoutAction}">
<j:if test="${jvar_logout_url!=''}">
<input type="hidden" name="sysparm_goto_url" value="logout_redirect.do?sysparm_url=${jvar_logout_url}"/>
</j:if>
<div>
<j:if test="${!gs.getUser().isXML()}">
<a href="profile.do" title="${gs.getMessage('My Profile')}" aria-label="${gs.getMessage('My Profile')}">${SNC.GlideHTMLSanitizer.sanitize(gs.getUserDisplayName())}</a>$[SP]$[SP]|$[SP]
</j:if>
<j:if test="${gs.getUser().isXML()}">
${SNC.GlideHTMLSanitizer.sanitize(gs.getUserDisplayName())}$[SP]$[SP]|$[SP]
</j:if>
<a class="cms_header_login_link" onclick="logoutPage.submit()" title="${gs.getMessage('Logout')}" aria-label="${gs.getMessage('Logout')}" tabindex="0"> ${gs.getMessage('Logout')}</a>$[SP]$[SP]
<img src="translink.pngx" class="compImg"/>
</div>
</form>
</j:if>
<j:if test="${!gs.getSession().isLoggedIn()}">
<j:set var="jvar_login_highlight" value="" />
<g:evaluate var="jvar_login_failed" expression="RP.getParameterValue('sysparm_login_failed')" />
<j:if test="${jvar_login_failed=='true'}">
<j:set var="jvar_login_highlight" value="cms_login_failed_inputs" />
<script>
setTimeout(signInFailed,10);
function signInFailed() {
var userName = gel("user_name");
var y = userName.offsetTop + userName.offsetHeight;
var x = grabOffsetLeft(userName);
var div = cel("div");
div.id = "login_failed";
div.style.position = "absolute";
div.style.top = y;
div.style.left = x;
div.className = "cms_login_failed_message";
div.innerHTML = "${gs.getMessage('Login failed. Try again.')}";
document.body.appendChild(div);
userName.focus();
setTimeout(signInFailedHide,5000);
}
function signInFailedHide() {
var div = gel("login_failed");
if (div)
rel(div);
}
</script>
</j:if>
<form name="loginPage" id="loginPage" action="login.do" method="post" target="login_iframe">
<!-- we're going to use the sysparm_goto_url to send the login to a page (cms_login_redirect) that is NOT
in the path of the CMS site. That way, the cookies get set up using the path of the instance instead of
the path of the CMS site. This makes the logout function work as expected. When
the login fails, the sysparm_login_url parameter is used to redirect back to the
same page with some parameters that cause the failure message to be displayed.
-->
<input type="hidden" name="sysparm_login_url"
value="cms_login_fail_redirect.html?v=${gs.getProperty('glide.builddate')}${AMP}sysparm_flush_messages=true${AMP}sysparm_goto_url=../${pageLink}%26sysparm_login_failed=true" />
<input type="hidden" name="sysparm_goto_url" value="${backtrack_path}cms_login_redirect.do?v=${gs.getProperty('glide.builddate')}${AMP}sysparm_goto_url=${pageLinkNotEncoded}" />
<input type="hidden" name="sysparm_flush_messages" value="true" />
<input type="hidden" name="sys_action" value="sysverb_login" />
<j:switch on="${gs.getProperty('glide.ui.forgetme')}">
<j:case value="true">
<j:set var="jvar_remember_me" value="false" />
</j:case>
<j:default>
<j:set var="jvar_remember_me" value="true" />
</j:default>
</j:switch>
<input type="hidden" id="remember_me" name="remember_me" value="${jvar_remember_me}" />
<span id="sign_in_block">
${gs.getMessage('User name')}:<input type="text" id="user_name" name="user_name"
value="" autocomplete="off" class="${jvar_login_highlight}"/>$[SP]$[SP]${gs.getMessage('Password')}:<input
type="password" id="user_password" name="user_password" class="${jvar_login_highlight}"/>
<button class="cms_header_login_button" type="submit"> ${gs.getMessage('Login')} </button>
</span>
</form>
<iframe name="login_iframe" src="blank.do" style="display:none" />
</j:if>
</div>
</j:jelly>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment