Version 3.0.5
This commit is contained in:
1 parent
19b38c7c74
commit
1d4720f3e2
3755 files changed
+508378
-664541
No files matched your search
@@ -0,0 +1,255 @@
|
||||
/************************************************/
|
||||
/* IPB3 Javascript */
|
||||
/* -------------------------------------------- */
|
||||
/* ips.board.js - Board index code */
|
||||
/* (c) IPS, Inc 2008 */
|
||||
/* -------------------------------------------- */
|
||||
/* Author: Rikki Tissier */
|
||||
/************************************************/
|
||||
|
||||
var _idx = window.IPBoard;
|
||||
|
||||
_idx.prototype.board = {
|
||||
_statusClick: 0,
|
||||
_statusDefaultValue: '',
|
||||
|
||||
/*------------------------------*/
|
||||
/* Constructor */
|
||||
init: function()
|
||||
{
|
||||
Debug.write("Initializing ips.board.js");
|
||||
|
||||
document.observe("dom:loaded", function(){
|
||||
ipb.board.setUpForumTables();
|
||||
ipb.board.initSidebar();
|
||||
|
||||
ipb.board._statusDefaultValue = ( $('hookStatusTextField') ) ? $F('hookStatusTextField') : '';
|
||||
if( $('updateStatusForm') ){
|
||||
$('updateStatusForm').observe( 'submit', ipb.board.statusHookSubmit );
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
/* ------------------------------ */
|
||||
/**
|
||||
* Hook: Status update
|
||||
*/
|
||||
statusHookClick: function()
|
||||
{
|
||||
if ( ! ipb.board._statusClick )
|
||||
{
|
||||
$('hookStatusTextField').value = '';
|
||||
$('hookStatusTextField').setStyle( { color: 'black' } );
|
||||
|
||||
ipb.board._statusClick = 1;
|
||||
}
|
||||
},
|
||||
|
||||
/* ------------------------------ */
|
||||
/**
|
||||
* Hook: Status update
|
||||
*/
|
||||
statusHookSubmit: function(e)
|
||||
{
|
||||
Event.stop(e);
|
||||
|
||||
if ( ipb.board._statusClick && $F('hookStatusTextField') && $F('hookStatusTextField') != ipb.board._statusDefaultValue )
|
||||
{
|
||||
$('updateStatusForm').submit();
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
/* ------------------------------ */
|
||||
/**
|
||||
* Inits the forum tables ready for collapsing
|
||||
*/
|
||||
setUpForumTables: function()
|
||||
{
|
||||
$$('.ipb_table').each( function(tab){
|
||||
var tmp = $( tab ).wrap( 'div' );
|
||||
$( tmp ).addClassName('table_wrap');
|
||||
});
|
||||
|
||||
$$('.category_block').each( function(cat){
|
||||
$(cat).select('.toggle')[0].observe( 'click', ipb.board.toggleCat );
|
||||
});
|
||||
|
||||
cookie = ipb.Cookie.get('toggleCats');
|
||||
|
||||
if( cookie )
|
||||
{
|
||||
var cookies = cookie.split( ',' );
|
||||
|
||||
//-------------------------
|
||||
// Little fun for you...
|
||||
//-------------------------
|
||||
for( var abcdefg=0; abcdefg < cookies.length; abcdefg++ )
|
||||
{
|
||||
if( cookies[ abcdefg ] )
|
||||
{
|
||||
var wrapper = $( 'category_' + cookies[ abcdefg ] ).up('.category_block').down('.table_wrap');
|
||||
|
||||
wrapper.hide();
|
||||
$( 'category_' + cookies[ abcdefg ] ).addClassName('collapsed');
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/* ------------------------------ */
|
||||
/**
|
||||
* Show/hide a category
|
||||
*
|
||||
* @var {event} e The event
|
||||
*/
|
||||
toggleCat: function(e)
|
||||
{
|
||||
if( ipb.board.animating ){ return false; }
|
||||
|
||||
|
||||
var click = Event.element(e);
|
||||
var remove = $A();
|
||||
var wrapper = $( click ).up('.category_block').down('.table_wrap');
|
||||
Debug.write( wrapper );
|
||||
$( wrapper ).identify(); // IE8 fix
|
||||
catname = $( click ).up('h3');
|
||||
var catid = catname.id.replace('category_', '');
|
||||
|
||||
ipb.board.animating = true;
|
||||
|
||||
// Get cookie
|
||||
cookie = ipb.Cookie.get('toggleCats');
|
||||
if( cookie == null ){
|
||||
cookie = $A();
|
||||
} else {
|
||||
cookie = cookie.split(',');
|
||||
}
|
||||
|
||||
Effect.toggle( wrapper, 'blind', {duration: 0.4, afterFinish: function(){ ipb.board.animating = false; } } );
|
||||
|
||||
if( catname.hasClassName('collapsed') )
|
||||
{
|
||||
catname.removeClassName('collapsed');
|
||||
remove.push( catid );
|
||||
}
|
||||
else
|
||||
{
|
||||
new Effect.Morph( $(catname), {style: 'collapsed', duration: 0.4, afterFinish: function(){
|
||||
$( catname ).addClassName('collapsed');
|
||||
ipb.board.animating = false;
|
||||
} });
|
||||
cookie.push( catid );
|
||||
}
|
||||
|
||||
cookie = "," + cookie.uniq().without( remove ).join(',') + ",";
|
||||
|
||||
ipb.Cookie.set('toggleCats', cookie, 1);
|
||||
|
||||
Event.stop( e );
|
||||
},
|
||||
|
||||
/* ------------------------------ */
|
||||
/**
|
||||
* Sets up the sidebar
|
||||
*/
|
||||
initSidebar: function()
|
||||
{
|
||||
if( !$('index_stats') )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if( $('index_stats').visible() )
|
||||
{
|
||||
Debug.write("Stats are visible");
|
||||
$('open_sidebar').hide();
|
||||
$('close_sidebar').show();
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.write("Stats aren't visible");
|
||||
$('open_sidebar').show();
|
||||
$('close_sidebar').hide();
|
||||
}
|
||||
|
||||
ipb.board.animating = false;
|
||||
|
||||
if( $('close_sidebar') )
|
||||
{
|
||||
$('close_sidebar').observe('click', function(e){
|
||||
if( ipb.board.animating ){ Event.stop(e); return; }
|
||||
|
||||
ipb.board.animating = true;
|
||||
new Effect.Fade( $('index_stats'), {duration: 0.4, afterFinish: function(){
|
||||
new Effect.Morph( $('categories'), { style: 'no_sidebar', duration: 0.4, afterFinish: function(){
|
||||
ipb.board.animating = false;
|
||||
} } );
|
||||
} } );
|
||||
|
||||
Event.stop(e);
|
||||
$('close_sidebar').toggle();
|
||||
$('open_sidebar').toggle();
|
||||
ipb.Cookie.set('hide_sidebar', '1', 1);
|
||||
});
|
||||
}
|
||||
if( $('open_sidebar') )
|
||||
{
|
||||
$('open_sidebar').observe('click', function(e){
|
||||
if( ipb.board.animating ){ Event.stop(e); return; }
|
||||
|
||||
ipb.board.animating = true;
|
||||
|
||||
new Effect.Morph( $('categories'), { style: 'with_sidebar', duration: 0.4, afterFinish: function(){
|
||||
$('categories').removeClassName('with_sidebar').removeClassName('no_sidebar');
|
||||
new Effect.Appear( $('index_stats'), { duration: 0.4, queue: 'end', afterFinish: function(){
|
||||
ipb.board.animating = false;
|
||||
} } );
|
||||
} } );
|
||||
|
||||
Event.stop(e);
|
||||
$('close_sidebar').toggle();
|
||||
$('open_sidebar').toggle();
|
||||
|
||||
/* Bug fix */
|
||||
if ( Prototype.Browser.Chrome )
|
||||
{
|
||||
setTimeout( "\$('index_stats').show()", 300 );
|
||||
}
|
||||
|
||||
ipb.Cookie.set('hide_sidebar', '0', 1);
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Check for DST
|
||||
*/
|
||||
checkDST: function()
|
||||
{
|
||||
var memberHasDst = ipb.vars['dst_on'];
|
||||
var dstInEffect = new Date().getDST();
|
||||
|
||||
if( memberHasDst - dstInEffect != 0 )
|
||||
{
|
||||
var url = ipb.vars['base_url'] + 'app=members&module=ajax§ion=dst&md5check='+ipb.vars['secure_hash'];
|
||||
|
||||
new Ajax.Request( url,
|
||||
{
|
||||
method: 'get',
|
||||
onSuccess: function(t)
|
||||
{
|
||||
// We don't need to do anything about this..
|
||||
return true;
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ipb.board.init();
|
||||
Reference in new issue
Block a user