Re: Hidden Application
Posted by
Pedro on
URL: https://support.nabble.com/Hidden-Application-tp7587027p7588368.html
Greg, please, test this code to fix the logout issue, you can create a file on your advanced editor and paste it:
<override_macro name="js_header_functions" requires="servlet">
var t_login = "<t>Login</t>";
var t_register = "<t>Register</t>";
var t_logout = "<t>Log out</t>";
var t_my_starred_items = "<t>My starred items</t>";
var t_my_posts = "<t>My posts</t>";
var t_account_settings = "<t>Account settings</t>";
var t_show_nabble_notice = "<t>Show Nabble notice</t>";
var t_permalink = "<t>Permalink</t>";
var t_refresh = "<t>Refresh</t>";
var login_path = "<n.login_path/>";
var logout_path = "<n.logout_path/>";
var register_path = "<n.register_path/>";
var starred_nodes_path = "<n.starred_nodes_path/>";
var user_profile_path = "<n.user_profile_path/>";
<![CDATA[
Nabble.userId = Nabble.getCookie("userId");
var encodedUsername = Nabble.getCookie("username");
if (encodedUsername) {
Nabble.username = decodeURIComponent(encodedUsername)
.replace(new RegExp('\\+','g'),' ');
}
if (!Nabble.userId) {
Nabble.anonymousId = Nabble.getCookie("anonymousId");
var encodedName = Nabble.getCookie("anonymousName");
if (encodedName) {
Nabble.anonymousName = decodeURIComponent(encodedName)
.replace(new RegExp('\\+','g'),' ')
.replace(new RegExp('<','g'),'<')
.replace(new RegExp('>','g'),'>');
}
}
Nabble.embedPermalink = function(url) {
if (!Nabble.isEmbedded)
return url;
return url.replace(/(;|&)cid=(\d|\-)+/g, '').replace(/\?cid=(\d|\-)+(&)?/g, '?');
};
Nabble.getPermalink = function() {
return Nabble.embedPermalink(
Nabble.overridePermalink? Nabble.overridePermalink : Nabble.getParent().nabbleiframe.location.href);
};
Nabble.permalinkLabel = function() {
if (!Nabble.isEmbedded)
return '';
var p = "<script>function openPermalink() { prompt('Copy this:', Nabble.getPermalink()); };</script>";
p += "<a href='javascript: void openPermalink();'>"+t_permalink+"</a> ";
return p;
};
Nabble.refreshLabel = function() {
if (Nabble.isEmbedded)
return "<a href='javascript: location.reload(true);'>"+t_refresh+"</a> ";
return '';
};
Nabble.siteHeader = function() {
var s = Nabble.refreshLabel();
s += Nabble.permalinkLabel();
if (!Nabble.userId) {
var nextUrl = typeof loginNextUrl == 'undefined'? window.location.href : loginNextUrl;
s += '<a href="'+login_path+'&nextUrl='+encodeURIComponent(nextUrl)+'">'+t_login+'</a>';
s += ' ';
s += '<a href="'+register_path+'&nextUrl='+encodeURIComponent(nextUrl)+'">'+t_register+'</a>';
if (Nabble.anonymousId && Nabble.anonymousName) {
s += ' ';
s += '<a href="/template/NamlServlet.jtp?macro=user_nodes&user=' + Nabble.anonymousId + '~' + Nabble.anonymousName + '">';
s += Nabble.anonymousName;
s += '</a>';
}
} else
s += '<span id="user-dd"></span>';
return s;
};
Nabble.userDropdown = function() {
var $t = $('#user-dd');
if ($t.size() == 0)
return;
$t.empty();
var dropdown = new NabbleDropdown('usrdd', Nabble.escapeHTML(Nabble.username));
dropdown.add('starred','<a href="'+starred_nodes_path+'">'+t_my_starred_items+'</a>');
dropdown.add('myPosts','<a href="/template/NamlServlet.jtp?macro=user_nodes&user='+Nabble.userId + '">'+t_my_posts+'</a>');
dropdown.add('personalSettings','<a href="'+user_profile_path+'">'+t_account_settings+'</a>');
dropdown.add('adminNotice','<a href="javascript: void Nabble.showAdminNotice()">'+t_show_nabble_notice+'</a>','display:none');
dropdown.add('logout','<a href="javascript: void Nabble.logout()">'+t_logout+'</a>');
$t.html(dropdown.getHtml());
dropdownInit('usrdd');
};
Nabble.addUserHeaderListener(function() {
Nabble.userDropdown();
});
Nabble.showAdminNotice = function() {
Nabble.deleteCookie('admin-notice');
window.location.reload();
};
Nabble.logout = function() {
window.location = '/template/NamlServlet.jtp?macro=logout_page'+'&nextUrl='+ encodeURIComponent(window.location.href) + Nabble.getClientID();
};
]]>
</override_macro>
<override_macro name="logout_page" requires="servlet">
<n.dont_cache/>
<n.do_logout/>
<n.html>
<head>
<n.title.><t>You logged out</t></n.title.>
<script type="text/javascript">
<n.comment.>
If the nabblecookies iframe is available, we have to force a reload of cookies in the parent page.
(this is valid only when third-party cookies are disabled)
</n.comment.>
if (parent.nabblecookies) {
parent.nabblecookies.location = "/util/Empty.jtp";
Nabble.deleteCookie('userId');
Nabble.deleteCookie('username');
Nabble.deleteCookie('password');
}
Nabble.setVar('userId', null);
Nabble.setVar('username', null);
Nabble.setVar('password', null);
var loginNextUrl = "<n.get_parameter name='nextUrl'/> ";
</script>
</head>
<body>
<h1><t>You logged out</t></h1>
<p><t>If you logged out by mistake, please <a id="login-link" href="[n.get_next_url/]">log in again</a>.</t></p>
<br/>
<br/>
</body>
</n.html>
</override_macro>
<macro name="get_next_url" >
<n.login_path nextUrl="[n.get_parameter name='nextUrl'/]" />
</macro>