cp -r masondocs ${FREESIDE_DOCUMENT_ROOT}
chown -R freeside:freeside ${FREESIDE_DOCUMENT_ROOT}
cp htetc/handler.pl ${MASON_HANDLER}
+ cp htetc/htpasswd.logout ${FREESIDE_CONF}
[ ! -e ${MASONDATA} ] && mkdir ${MASONDATA} || true
chown -R freeside ${MASONDATA}
PerlHandler HTML::Mason
</Directory>
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/loginout>
+AuthName Freeside
+AuthType Basic
+AuthUserFile %%%FREESIDE_CONF%%%/htpasswd.logout
+require valid-user
+<Files ~ "(\.cgi|\.html)$">
+SetHandler default-handler
+</Files>
+</Directory>
+
require "%%%MASON_HANDLER%%%";
</Perl>
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/loginout>
+AuthName Freeside
+AuthType Basic
+AuthUserFile %%%FREESIDE_CONF%%%/htpasswd.logout
+require valid-user
+<Files ~ "(\.cgi|\.html)$">
+SetHandler default-handler
+</Files>
+</Directory>
+
PerlHandler HTML::Mason
</Directory>
+<Directory %%%FREESIDE_DOCUMENT_ROOT%%%/loginout>
+AuthName Freeside
+AuthType Basic
+AuthUserFile %%%FREESIDE_CONF%%%/htpasswd.logout
+require valid-user
+<Files ~ "(\.cgi|\.html)$">
+SetHandler default-handler
+</Files>
+</Directory>
+
--- /dev/null
+magic:Jgvaxb502SIqQ
%>
<% include('init_overlib.html') |n %>
+ <% include('rs_init_object.html') |n %>
+ <% include('logout.html') |n %>
<SCRIPT TYPE="text/javascript">
<td align=left BGCOLOR="#ffffff"> <!-- valign="top" -->
<font size=6><% $company_name || 'ExampleCo' %></font>
</td>
- <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% getotaker %> </b><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/pref.html" STYLE="color: #000000">Preferences</a>
+ <td align=right valign=top BGCOLOR="#ffffff"><FONT SIZE="-1">Logged in as <b><% getotaker %> </b> <FONT SIZE="-2">[ <a href="javascript:void(0);" onClick="logout();">logout</a> ]</FONT><br></FONT><FONT SIZE="-2"><a href="<%$fsurl%>pref/pref.html" STYLE="color: #000000">Preferences</a>
% if ( $conf->config("ticket_system")
% && FS::TicketSystem->access_right(\%session, 'ModifySelf') ) {
| <a href="<%$fsurl%>rt/User/Prefs.html" STYLE="color: #000000">Ticketing preferences</a>
--- /dev/null
+<%doc>
+
+Example:
+
+ include( '/elements/logout.html');
+ This is the <a href="javascript:void()" onClick="logout();">logout</a> link.
+
+</%doc>
+<SCRIPT TYPE="text/javascript">
+
+ function logout() {
+ // count args; build URL
+ var url = "<% $fsurl. 'loginout/logout.html' %>";
+
+ var xmlhttp = rs_init_object();
+ xmlhttp.open("GET", url, false, "magic", "notyet");
+ xmlhttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
+ xmlhttp.send(null);
+
+ if (xmlhttp.readyState != 4) {
+ alert("Logout failed: readyState is " + xmlhttp.readyState);
+ return;
+ }
+
+ if (xmlhttp.status != 200) {
+ alert("Logout failed: status is " + xmlhttp.status);
+ } else {
+ var data = xmlhttp.responseText;
+ // alert('received response: ' + data);
+ if ( data.indexOf("<b>System error</b>") > -1 ) {
+ var w;
+ if ( w = window.open("about:blank") ) {
+ w.document.write(data);
+ } else {
+ // popup blocking? should use an overlib popup instead
+ alert("Error popup disabled; try disabling popup blocking to see");
+ }
+ } else {
+ window.location = "<% $fsurl. 'loginout/logout.html' %>";
+ }
+ }
+ }
+
+</SCRIPT>
--- /dev/null
+<%doc>
+
+Example:
+
+ include( '/elements/rs_init_object.html' );
+
+</%doc>
+<SCRIPT TYPE="text/javascript">
+
+ function rs_init_object() {
+ var A;
+ try {
+ A=new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ A=new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (oc) {
+ A=null;
+ }
+ }
+ if(!A && typeof XMLHttpRequest != "undefined")
+ A = new XMLHttpRequest();
+ if (!A)
+ alert("Can't create XMLHttpRequest object");
+ return A;
+
+ }
+
+</SCRIPT>
);
</%doc>
+<% include( '/elements/rs_init_object.html' ) %>
<SCRIPT TYPE="text/javascript">
- function rs_init_object() {
- var A;
- try {
- A=new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
- try {
- A=new ActiveXObject("Microsoft.XMLHTTP");
- } catch (oc) {
- A=null;
- }
- }
- if(!A && typeof XMLHttpRequest != "undefined")
- A = new XMLHttpRequest();
- if (!A)
- alert("Can't create XMLHttpRequest object");
- return A;
-
- }
% foreach my $func ( @{$opt{'subs'}} ) {
%
% my $furl = $url;