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,412 @@
|
||||
/**
|
||||
* INVISION POWER BOARD v3
|
||||
*
|
||||
* Topics View Javascript File
|
||||
* @author Matt Mecham, Brandon Farber, Josh Williams
|
||||
* @since 2008
|
||||
*/
|
||||
|
||||
/**
|
||||
* "ACP" Class. Designed for ... ACP CSS Functions
|
||||
* @author (v.1.0.0) Matt Mecham
|
||||
*/
|
||||
|
||||
function IPBCSS()
|
||||
{
|
||||
/**
|
||||
* Template groups
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
this.CSSData = {};
|
||||
|
||||
/**
|
||||
* Current template bit
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
this.currentCSS = '';
|
||||
|
||||
/**
|
||||
* Current set ID
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
this.currentSetData = {};
|
||||
|
||||
/**
|
||||
* CSS Names
|
||||
*
|
||||
* @var hash
|
||||
*/
|
||||
this.cssNames = {
|
||||
'cssRow' : 'tablerow2',
|
||||
'cssHover' : 'cssHover' };
|
||||
|
||||
|
||||
/**
|
||||
* INIT Applications
|
||||
*/
|
||||
this.init = function()
|
||||
{
|
||||
/* Build CSS list */
|
||||
this.buildCSSList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Load css groups
|
||||
*/
|
||||
this.loadCSSGroups = function()
|
||||
{
|
||||
/* Grab the JSON for the template bits for the current template group */
|
||||
url = ipb.vars['base_url'] + "app=core&module=ajax&section=css&do=getCSSGroups&setID=" + this.currentSetData['set_id'] + '&secure_key=' + ipb.vars['md5_hash'];
|
||||
|
||||
new Ajax.Request( url.replace( /&/g, '&' ),
|
||||
{
|
||||
method: 'GET',
|
||||
onSuccess: function (t )
|
||||
{
|
||||
if ( t.responseText.match( /^(\s+?)?\{/ ) )
|
||||
{
|
||||
$('tplate_debug').innerHTML += "\n" + t.responseText;
|
||||
|
||||
eval( "var json = " + t.responseText );
|
||||
|
||||
if ( json['error'] )
|
||||
{
|
||||
alert( json['error'] );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
IPB3CSS.CSSData = json;
|
||||
IPB3CSS.buildCSSList();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( "Ooops. Something went wrong. Does this help?: " + t.responseText );
|
||||
}
|
||||
},
|
||||
onException: function( f,e ){ alert( "Исключение: " + e ) },
|
||||
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ) }
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Save CSS
|
||||
*/
|
||||
this.saveCSS = function( css_id )
|
||||
{
|
||||
/* Grab the JSON for the template bits for the current template group */
|
||||
url = ipb.vars['base_url'] + "app=core&module=ajax&section=css&do=saveCSS&setID=" + this.currentSetData['set_id'] + '&css_id=' + css_id + '&secure_key=' + ipb.vars['md5_hash'];
|
||||
|
||||
/* Set up params */
|
||||
var params = { 'css_content' : $F('tplate_editBox_' + css_id ),
|
||||
'css_position' : $F('tplate_posBox_' + css_id ),
|
||||
'css_set_id' : this.currentSetData['set_id'],
|
||||
'_css_group' : $F('tplate_groupBox_' + css_id ),
|
||||
'type' : ( css_id == 0 ) ? 'add' : 'edit' };
|
||||
|
||||
|
||||
new Ajax.Request( url.replace( /&/g, '&' ),
|
||||
{
|
||||
method: 'POST',
|
||||
parameters: params,
|
||||
onSuccess: function (t )
|
||||
{
|
||||
if ( t.responseText.match( /^(\s+?)?\{/ ) )
|
||||
{
|
||||
eval( "var json = " + t.responseText );
|
||||
|
||||
if ( json['error'] )
|
||||
{
|
||||
alert( json['error'] );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
IPB3CSS.currentCSS = json['cssData'];
|
||||
IPB3CSS.showCSSEditor( json );
|
||||
IPB3CSS.loadCSSGroups();
|
||||
|
||||
if ( json['errors'] )
|
||||
{
|
||||
/* Something inline would be very nice here.. rather than this ugly alert */
|
||||
alert("Ошибка: " + json['errors'] );
|
||||
}
|
||||
else
|
||||
{
|
||||
alert("Сохранено!");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( "Галектеко ОПАСНОСТЕ! ПЫЩПЫЩ!11: " + t.responseText );
|
||||
}
|
||||
},
|
||||
onException: function( f,e ){ alert( "Исключение: " + e ) },
|
||||
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ) }
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Revert css
|
||||
*/
|
||||
this.revertCSS = function( css_id )
|
||||
{
|
||||
/* Make sure we're mean it... */
|
||||
if ( $('tplate_cssRow_' + css_id ).hasClassName( 'tplateRow_new') )
|
||||
{
|
||||
if ( ! confirm( "Удалить CSS файл ?\nФайл будет удален из ВСЕХ стилей!" ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( ! confirm( "Отменить изменения в CSS файле ?\nВсе изменения будут утеряны!" ) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/* Grab the JSON for the template bits for the current template group */
|
||||
url = ipb.vars['base_url'] + "app=core&module=ajax&section=css&do=revertCSS&setID=" + this.currentSetData['set_id'] + '&css_id=' + css_id + '&secure_key=' + ipb.vars['md5_hash'];
|
||||
|
||||
new Ajax.Request( url.replace( /&/g, '&' ),
|
||||
{
|
||||
method: 'GET',
|
||||
onSuccess: function (t )
|
||||
{
|
||||
if ( t.responseText.match( /^(\s+?)?\{/ ) )
|
||||
{
|
||||
eval( "var json = " + t.responseText );
|
||||
|
||||
if ( json['error'] )
|
||||
{
|
||||
alert( json['error'] );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
IPB3CSS.loadCSSGroups();
|
||||
|
||||
if ( json['errors'] )
|
||||
{
|
||||
/* Something inline would be very nice here.. rather than this ugly alert */
|
||||
alert("Я СКАЗАЛ: " + json['errors'] );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( "Галектеко ОПАСНОСТЕ! ПЫЩПЫЩ!11: " + t.responseText );
|
||||
}
|
||||
},
|
||||
onException: function( f,e ){ alert( "Исключение: " + e ) },
|
||||
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ) }
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Load template bits
|
||||
*/
|
||||
this.loadCSSEditor = function( css_id )
|
||||
{
|
||||
/* Grab the JSON for the template bits for the current template group */
|
||||
url = ipb.vars['base_url'] + "app=core&module=ajax&section=css&do=getCSSForEdit&setID=" + this.currentSetData['set_id'] + '&css_id=' + css_id + '&secure_key=' + ipb.vars['md5_hash'];
|
||||
|
||||
new Ajax.Request( url.replace( /&/g, '&' ),
|
||||
{
|
||||
method: 'GET',
|
||||
onSuccess: function (t )
|
||||
{
|
||||
if ( t.responseText.match( /^(\s+?)?\{/ ) )
|
||||
{
|
||||
eval( "var json = " + t.responseText );
|
||||
|
||||
if ( json['error'] )
|
||||
{
|
||||
alert( json['error'] );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
IPB3CSS.showCSSEditor( json );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( "Галектеко ОПАСНОСТЕ! ПЫЩПЫЩ!11: " + t.responseText );
|
||||
}
|
||||
},
|
||||
onException: function( f,e ){ alert( "Исключение: " + e ) },
|
||||
onFailure: function( t ){ alert( "Ошибка: " + t.responseText ) }
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Add CSS form
|
||||
*/
|
||||
this.addCSSForm = function()
|
||||
{
|
||||
IPB3CSS.showCSSEditor( { 'cssData' : { 'css_id' : 0, 'css_group' : '', 'css_content' : '', 'css_added_to' : 0, '_type' : 'new' } } );
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the template editor
|
||||
*/
|
||||
this.showCSSEditor = function( json )
|
||||
{
|
||||
/* Close any open editors */
|
||||
IPB3CSS.cancelCSS( json['cssData']['css_id'] );
|
||||
|
||||
var _tplate = new Template( $('tplate_cssEditor').innerHTML );
|
||||
|
||||
IPB3CSS.currentCSS = json['cssData'];
|
||||
|
||||
var _div = document.createElement( "DIV" );
|
||||
_div.id = 'tplate_editorWrapper';
|
||||
_div.update( _tplate.evaluate( json['cssData'] ) );
|
||||
document.body.appendChild( _div );
|
||||
|
||||
/* New? */
|
||||
if ( json['cssData']['_type'] == 'new' || ( json['cssData']['css_added_to'] == IPB3CSS.currentSetData['set_id'] ) )
|
||||
{
|
||||
$( 'tplate_groupBoxWrap_' + json['cssData']['css_id'] ).show();
|
||||
}
|
||||
|
||||
ipb.positionCenter( 'tplate_editor_' + json['cssData']['css_id'] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the template editor
|
||||
*/
|
||||
this.cancelCSS = function( cssID )
|
||||
{
|
||||
/*if ( ! confirm( "All unsaved changes will be lost!" ) )
|
||||
{
|
||||
return false;
|
||||
}*/
|
||||
|
||||
try
|
||||
{
|
||||
$('tplate_editorWrapper').remove();
|
||||
}
|
||||
catch(e)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a list of CSS groups (files)
|
||||
*/
|
||||
this.buildCSSList = function()
|
||||
{
|
||||
/* INIT */
|
||||
var _output = '';
|
||||
var _tplate = new Template( $('tplate_cssRow').innerHTML );
|
||||
var json = IPB3CSS.CSSData;
|
||||
|
||||
var _groups = Object.keys( json['css'] ).sort( function(a,b) { return a-b; } );
|
||||
|
||||
/* Clear out any current listing */
|
||||
$('tplate_cssList').update('');
|
||||
|
||||
/* Format... */
|
||||
_groups.each( function( i )
|
||||
{
|
||||
/* Inline deleted? */
|
||||
if ( ! json['css'][i]['_deleted'] )
|
||||
{
|
||||
/* Figure out if this in an inherited row, a changed row, a new row or a default row */
|
||||
if ( json['css'][i]['css_added_to'] == IPB3CSS.currentSetData['set_id'] )
|
||||
{
|
||||
/* This is a modified row */
|
||||
json['css'][i]['_cssState'] = 'new';
|
||||
json['css'][i]['_cssClass'] = 'tplateRow_new';
|
||||
}
|
||||
else if ( json['css'][i]['css_set_id'] == IPB3CSS.currentSetData['set_id'] )
|
||||
{
|
||||
/* This is a modified row */
|
||||
json['css'][i]['_cssState'] = 'modified';
|
||||
json['css'][i]['_cssClass'] = 'tplateRow_mod';
|
||||
}
|
||||
else if ( IPB3CSS.currentSetData['_parentTree'].indexOf( json['css'][i]['css_set_id'] ) != -1 )
|
||||
{
|
||||
/* Inherited */
|
||||
json['css'][i]['_cssState'] = 'inherit';
|
||||
json['css'][i]['_cssClass'] = 'tplateRow_inh';
|
||||
}
|
||||
else
|
||||
{
|
||||
/* This is a default row */
|
||||
json['css'][i]['_cssState'] = 'default';
|
||||
json['css'][i]['_cssClass'] = 'tplateRow_def';
|
||||
}
|
||||
|
||||
_output += _tplate.evaluate( json['css'][i] );
|
||||
}
|
||||
} );
|
||||
|
||||
/* Write it out */
|
||||
$('tplate_cssList').update( _output );
|
||||
|
||||
/* Post Process */
|
||||
_groups.each( function( i )
|
||||
{
|
||||
/* Inline deleted? */
|
||||
if ( ! json['css'][i]['_deleted'] )
|
||||
{
|
||||
if ( json['css'][i]['_cssState'] == 'new' )
|
||||
{
|
||||
$('tplate_cssRow_' + json['css'][i]['css_id'] + '_revert').update('Remove');
|
||||
}
|
||||
else if ( json['css'][i]['_cssState'] != 'default' )
|
||||
{
|
||||
$('tplate_cssRow_' + json['css'][i]['css_id'] + '_revert').show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('tplate_cssRow_' + json['css'][i]['css_id'] + '_revert').hide();
|
||||
}
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Template Mouse Event
|
||||
*/
|
||||
this.mouseEvent = function( e )
|
||||
{
|
||||
if ( _div = $( Event.element( e ) ).up( '.' + IPB3CSS.cssNames['cssRow'] ) )
|
||||
{
|
||||
var _css_id = _div.id.replace( 'tplate_cssRow_', '' );
|
||||
|
||||
if ( e.type == 'mouseover' )
|
||||
{
|
||||
_div.addClassName( IPB3CSS.cssNames['cssHover'] );
|
||||
}
|
||||
else if ( e.type == 'mouseout' )
|
||||
{
|
||||
_div.removeClassName( IPB3CSS.cssNames['cssHover'] );
|
||||
}
|
||||
else if ( e.type == 'click' )
|
||||
{
|
||||
var _el = Event.findElement( e, 'div' ).id;
|
||||
|
||||
if ( _el.endsWith('_revert' ) )
|
||||
{
|
||||
IPB3CSS.revertCSS( _css_id );
|
||||
}
|
||||
else
|
||||
{
|
||||
IPB3CSS.loadCSSEditor( _css_id );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user