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,370 @@
|
||||
/************************************************/
|
||||
/* IPB3 Javascript */
|
||||
/* -------------------------------------------- */
|
||||
/* acp.uagents.js - User agent mapping */
|
||||
/* (c) IPS, Inc 2008 */
|
||||
/* -------------------------------------------- */
|
||||
/* Author: Rikki Tissier */
|
||||
/************************************************/
|
||||
|
||||
var _hooks = window.IPBACP;
|
||||
_hooks.prototype.hooks = {
|
||||
popups: {},
|
||||
fields: {},
|
||||
languageMax: null,
|
||||
|
||||
init: function()
|
||||
{
|
||||
Debug.write("Initializing acp.hooks.js");
|
||||
document.observe("dom:loaded", function(){
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
generateStrings: function( i )
|
||||
{
|
||||
Debug.write("Getting strings...");
|
||||
|
||||
var selected_cat = $F('language_' + i );
|
||||
|
||||
url = ipb.vars['base_url'] + "app=core&module=ajax&section=hooks&do=getStrings&group=" + selected_cat + '&secure_key=' + ipb.vars['md5_hash'] + "&id=" + acp.hooks.hookID + "&i=" + i;
|
||||
url = url.replace( /&/g, '&' );
|
||||
|
||||
new Ajax.Request( url,
|
||||
{
|
||||
method: 'GET',
|
||||
evalJSON: true,
|
||||
onSuccess: function(t)
|
||||
{
|
||||
if( Object.isUndefined( t.responseJSON ) || t.responseJSON == null )
|
||||
{
|
||||
|
||||
$('container_' + i).update( t.responseText ).show();
|
||||
$('container_desc_' + i).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
if( t.responseJSON['error'] )
|
||||
{
|
||||
$('container_' + i).update( t.responseJSON['error'] ).show();
|
||||
}
|
||||
else if( t.responseJSON['success'] )
|
||||
{
|
||||
$('container_' + i).update( t.responseJSON['html'] ).show();
|
||||
$('container_desc_' + i).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('container_' + i).update( t.responseText ).show();
|
||||
$('container_desc_' + i).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
|
||||
generateTemplates: function( i )
|
||||
{
|
||||
var selected_cat = $F('skin_' + i );
|
||||
|
||||
url = ipb.vars['base_url'] + "app=core&module=ajax&section=hooks&do=getTemplates&group=" + selected_cat + '&secure_key=' + ipb.vars['md5_hash'] + "&id=" + acp.hooks.hookID + "&i=" + i;
|
||||
url = url.replace( /&/g, '&' );
|
||||
|
||||
new Ajax.Request( url,
|
||||
{
|
||||
method: 'GET',
|
||||
evalJSON: true,
|
||||
onSuccess: function(t)
|
||||
{
|
||||
if( Object.isUndefined( t.responseJSON ) || t.responseJSON == null )
|
||||
{
|
||||
|
||||
$('s_container_' + i).update( t.responseText ).show();
|
||||
$('s_container_desc_' + i).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
if( t.responseJSON['error'] )
|
||||
{
|
||||
$('s_container_' + i).update( t.responseJSON['error'] ).show();
|
||||
}
|
||||
else if( t.responseJSON['success'] )
|
||||
{
|
||||
$('s_container_' + i).update( t.responseJSON['html'] ).show();
|
||||
$('s_container_desc_' + i).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
$('s_container_' + i).update( t.responseText ).show();
|
||||
$('s_container_desc_' + i).show();
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
generateFields: function( i )
|
||||
{
|
||||
|
||||
var selected_type = $F('type_' + i );
|
||||
|
||||
if( $('d_container_' + i) != null )
|
||||
{
|
||||
$('d_container_' + i).update('');
|
||||
}
|
||||
|
||||
var template = '';
|
||||
|
||||
switch( selected_type )
|
||||
{
|
||||
case 'create':
|
||||
template = ipb.templates['db_create'].evaluate( { id: i } );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "name_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "fields_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "tabletype_" + i );
|
||||
break;
|
||||
case 'alter':
|
||||
template = ipb.templates['db_alter'].evaluate( { id: i } );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "altertype_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "table_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "field_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "newfield_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "fieldtype_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "default_" + i );
|
||||
break;
|
||||
case 'update':
|
||||
template = ipb.templates['db_update'].evaluate( { id: i } );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "table_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "field_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "newvalue_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "oldvalue_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "where_" + i );
|
||||
break;
|
||||
case 'insert':
|
||||
template = ipb.templates['db_insert'].evaluate( { id: i } );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "table_" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "updates" + i );
|
||||
acp.hooks.fields['MF__database']['fields'].push( "fordelete" + i );
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
break;
|
||||
}
|
||||
|
||||
$('d_container_' + i).insert( template ).show();
|
||||
$('d_container_desc_' + i).show();
|
||||
},
|
||||
|
||||
addAnotherLanguage: function( e )
|
||||
{
|
||||
Event.stop(e);
|
||||
|
||||
var id = parseInt( acp.hooks.languageMax ) + 1;
|
||||
|
||||
var url = ipb.vars['base_url'] + "app=core&module=ajax&section=hooks&do=getLangFiles&secure_key=" + ipb.vars['md5_hash'] + "&id=" + acp.hooks.hookID + "&i=" + id;
|
||||
url = url.replace( /&/g, '&' );
|
||||
|
||||
new Ajax.Request( url,
|
||||
{
|
||||
method: 'GET',
|
||||
evalJSON: true,
|
||||
onSuccess: function(t)
|
||||
{
|
||||
if( Object.isUndefined( t.responseJSON ) || t.responseJSON == null )
|
||||
{
|
||||
var template = ipb.templates['lang_row'].evaluate({ 'containerid': id, 'control': t.responseText});
|
||||
$('language_wrap').insert( template );
|
||||
|
||||
acp.hooks.fields['MF__language']['fields'].push("language_" + id);
|
||||
acp.hooks.fields['MF__language']['fields'].push("strings_" + id);
|
||||
acp.hooks.languageMax = id;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( t.responseJSON['error'] )
|
||||
{
|
||||
alert( t.responseJSON['error'] );
|
||||
}
|
||||
else if( t.responseJSON['success'] )
|
||||
{
|
||||
$('container_' + id).update( t.responseJSON['html'] ).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( t.responseText );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
Debug.write( acp.hooks.languageMax + 1 );
|
||||
|
||||
},
|
||||
|
||||
addAnotherTemplate: function( e )
|
||||
{
|
||||
Event.stop(e);
|
||||
|
||||
var id = parseInt( acp.hooks.skinMax ) + 1;
|
||||
|
||||
var url = ipb.vars['base_url'] + "app=core&module=ajax&section=hooks&do=getSkinFiles&secure_key=" + ipb.vars['md5_hash'] + "&id=" + acp.hooks.hookID + "&i=" + id;
|
||||
url = url.replace( /&/g, '&' );
|
||||
|
||||
new Ajax.Request( url,
|
||||
{
|
||||
method: 'GET',
|
||||
evalJSON: true,
|
||||
onSuccess: function(t)
|
||||
{
|
||||
if( Object.isUndefined( t.responseJSON ) || t.responseJSON == null )
|
||||
{
|
||||
var template = ipb.templates['skin_row'].evaluate({ 'containerid': id, 'control': t.responseText});
|
||||
$('skin_wrap').insert( template );
|
||||
|
||||
acp.hooks.fields['MF__templates']['fields'].push("templates_" + id);
|
||||
acp.hooks.fields['MF__templates']['fields'].push("skin_" + id);
|
||||
acp.hooks.skinMax = id;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( t.responseJSON['error'] )
|
||||
{
|
||||
alert( t.responseJSON['error'] );
|
||||
}
|
||||
else if( t.responseJSON['success'] )
|
||||
{
|
||||
$('s_container_' + id).update( t.responseJSON['html'] ).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
alert( t.responseText );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
Debug.write( acp.hooks.skinMax + 1 );
|
||||
|
||||
},
|
||||
|
||||
addAnotherDB: function( e )
|
||||
{
|
||||
Event.stop(e);
|
||||
|
||||
var id = parseInt( acp.hooks.dbMax ) + 1;
|
||||
var wrapper = ipb.templates['db_row'].evaluate( { 'id': id } );
|
||||
|
||||
$('database_wrap').insert( wrapper );
|
||||
|
||||
acp.hooks.dbMax = id;
|
||||
acp.hooks.fields['MF__database']['fields'].push( "type_" + id );
|
||||
},
|
||||
|
||||
exportHook: function( e, id, lang, url )
|
||||
{
|
||||
Event.stop(e);
|
||||
|
||||
url = ipb.vars['base_url'] + url + '&secure_key=' + ipb.vars['md5_hash'];
|
||||
url = url.replace( /&/g, '&' );
|
||||
|
||||
var afterInit = function( popup ){
|
||||
$( id + '_save' ).observe('click', acp.hooks.saveField.bindAsEventListener( this, id ) );
|
||||
//Debug.write("This is the callback");
|
||||
}.bind(this);
|
||||
|
||||
var afterHide = function( popup ){
|
||||
$( popup.getObj() ).remove();
|
||||
acp.hooks.popups[ id ] = null;
|
||||
}.bind(this);
|
||||
|
||||
acp.hooks.popups[ id ] = new ipb.Popup('m_' + id, { type: 'pane', modal: true, hideAtStart: false, w: '600px', ajaxURL: url }, { 'afterInit': afterInit, 'afterHide': afterHide } );
|
||||
|
||||
Debug.write("Hook " + id);
|
||||
},
|
||||
|
||||
saveField: function( e, id )
|
||||
{
|
||||
Event.stop(e);
|
||||
|
||||
var url = acp.hooks.fields[ id ]['url'];
|
||||
|
||||
if( !url ){ alert("Не возможно сохранить; отсутствует url"); return; }
|
||||
|
||||
url = ipb.vars['base_url'] + url + '&secure_key=' + ipb.vars['md5_hash'];
|
||||
url = url.replace( /&/g, '&' );
|
||||
|
||||
//-----------------
|
||||
|
||||
var fields = acp.hooks.fields[ id ]['fields'];
|
||||
var _params = {};
|
||||
|
||||
if ( fields.length )
|
||||
{
|
||||
for( var i = 0 ; i <= fields.length ; i++ )
|
||||
{
|
||||
if( $( fields[i] ) )
|
||||
{
|
||||
try
|
||||
{
|
||||
if ( $( fields[i] ).type == 'select-multiple' )
|
||||
{
|
||||
_params[ fields[i] + '[]' ] = $F( fields[i] );
|
||||
}
|
||||
else
|
||||
{
|
||||
_params[ fields[i] ] = $F( fields[i] );
|
||||
}
|
||||
}
|
||||
catch( e )
|
||||
{
|
||||
try
|
||||
{
|
||||
_params[ fields[i] ] = $F( fields[i] + '_yes' );
|
||||
}
|
||||
catch( e ){}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Send request
|
||||
new Ajax.Request( url, {
|
||||
method: 'post',
|
||||
parameters: _params,
|
||||
evalJSON: 'force',
|
||||
onSuccess: function(t)
|
||||
{
|
||||
if( Object.isUndefined( t.responseJSON ) )
|
||||
{
|
||||
alert("Ошибка: " + t.responseJSON);
|
||||
return;
|
||||
}
|
||||
|
||||
if( !t.responseJSON['success'] )
|
||||
{
|
||||
alert("Ошибка: " + t.responseJSON['error'] );
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if( acp.hooks.fields[ id ]['callback'] )
|
||||
{
|
||||
acp.hooks.fields[ id ]['callback']( t, t.responseJSON );
|
||||
}
|
||||
|
||||
acp.hooks.popups[ id ].hide();
|
||||
|
||||
}
|
||||
|
||||
Debug.write("Success");
|
||||
},
|
||||
onException: function(t){ alert("Ошибка: " + t.responseText) },
|
||||
onFailure: function(t){ alert("Ошибка: " + t.responseText ) }
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
acp.hooks.init();
|
||||
Reference in new issue
Block a user