Файл: IPBMafia.ru_IPB_3.4.6_Final_Rus _Nulled/board/upload/admin/js/acp.uagents.js
Строк: 296
<?php
/************************************************/
/* IPB3 Javascript */
/* -------------------------------------------- */
/* acp.uagents.js - User agent mapping */
/* (c) IPS, Inc 2008 */
/* -------------------------------------------- */
/* Author: Rikki Tissier */
/************************************************/
var _uagents = window.IPBACP;
_uagents.prototype.uagents = {
popups: {},
init: function()
{
Debug.write("Initializing acp.uagents.js");
document.observe("dom:loaded", function(){
Debug.write("Here");
Sortable.create( 'sortable_handle', { tag: 'li', only: 'isDraggable', revert: true, format: 'uagent_([0-9]+)', handle: 'draghandle', onUpdate: acp.uagents.updateAgents } );
if( $('add_uagent') )
{
$('add_uagent').observe('click', acp.uagents.addNewAgent);
}
});
},
updateAgents: function( draggable, mouse )
{
var uagents = Sortable.serialize( 'sortable_handle', { tag: 'li', name: 'uagents' } );
new Ajax.Request( acp.uagents.updateURL,
{
method: 'post',
parameters: uagents,
onSuccess: function(t)
{
Debug.write( t.responseText );
}
});
},
deleteAgent: function(e, id)
{
if( !$('uagent_' + id) ){
return;
}
if( !confirm( ipb.lang['ua_perm_remove'] ) )
{
return;
}
var url = ipb.vars['base_url'] + "app=core&module=ajax&section=uagents&do=removeuAgent&uagent_id=" + id + '&secure_key=' + ipb.vars['md5_hash'];
new Ajax.Request( url.replace(/&/g, '&'),
{
method: 'post',
evalJSON: 'force',
onSuccess: function(t)
{
if( Object.isUndefined( t.responseJSON ) )
{
alert( ipb.lang['ua_error_remove'] );
return;
}
if( t.responseJSON['errors'] )
{
alert( ipb.lang['ua_error_remove2'] + t.responseJSON['errors']);
return;
}
acp.uagents.json = t.responseJSON;
$('uagent_' + id).remove();
ipb.global.showInlineNotification( ipb.lang['useragent_removed'], { showClose: true } );
}
});
},
addNewAgent: function( e )
{
Event.stop(e);
if( acp.uagents.popups['new'] )
{
acp.uagents.popups['new'].show();
}
else
{
var html = ipb.templates['add_uagent'].evaluate( { id: 'new', box_title: ipb.lang['ua_add_string'] } );
var afterInit = function( popup ){
$('uagent_new_save').observe('click', acp.uagents.saveEditAgent.bindAsEventListener( this, 'new' ) );
};
acp.uagents.popups['new'] = new ipb.Popup('add_uagent_popup', { type: 'pane', modal: false, hideAtStart: false, w: '600px', initial: html }, { afterInit: afterInit } );
}
},
editAgent: function(e, id)
{
Event.stop(e);
if( !$('uagent_' + id) ){
return;
}
if( acp.uagents.popups[ id ] )
{
acp.uagents.popups[ id ].show();
}
else
{
// Get info
var info = acp.uagents.json['uagents'][ id ];
if( !info ){ return; }
var replace = {
'id': id,
'box_title': ipb.lang['ua_edit_string'],
'a_name': info['uagent_name'],
'a_key': info['uagent_key'],
'a_position': info['uagent_position'],
'a_regex': info['uagent_regex'],
'a_capture': info['uagent_regex_capture'],
'type_search': '',
'type_browser': '',
'type_other': ''
};
if( info['uagent_type'] == 'browser' ){
replace['type_browser'] = "selected='selected'";
} else if ( info['uagent_type'] == 'search' ) {
replace['type_search'] = "selected='selected'";
} else {
replace['type_pther'] = "selected='selected'";
}
var html = ipb.templates['add_uagent'].evaluate( replace );
var afterInit = function( popup ){
$('uagent_' + id + '_save').observe('click', acp.uagents.saveEditAgent.bindAsEventListener( this, id ) );
};
acp.uagents.popups[ id ] = new ipb.Popup('edit_uagent_' + id , { type: 'pane', modal: false, hideAtStart: false, w: '600px', initial: html }, { afterInit: afterInit } );
}
},
saveEditAgent: function(e, id)
{
var url = ipb.vars['base_url'] + "app=core&module=ajax&section=uagents&do=saveuAgent&&uagent_id=" + id + '&secure_key=' + ipb.vars['md5_hash'];
var params = {
'uagent_key' : $F('uagent_key_' + id ),
'uagent_name' : $F('uagent_name_' + id ).encodeParam(),
'uagent_regex' : $F('uagent_regex_' + id ),
'uagent_regex_capture' : $F('uagent_capture_' + id ),
'uagent_type' : $F('uagent_type_' + id ),
'uagent_position' : $F('uagent_position_' + id ),
'type' : ( id == 'new' ) ? 'add' : 'edit'
};
if( id == 'new' )
{
params['uagent_position'] = $H( acp.uagents.json['uagents'] ).size() + 1;
}
/* Got enough data? */
if ( ! params['uagent_key'] || ! params['uagent_name'] || ! params['uagent_regex'] || ! params['uagent_type'] )
{
alert( ipb.lang['ua_form_incomplete'] );
return false;
}
new Ajax.Request( url.replace( /&/g, '&' ),
{
method: 'post',
parameters: params,
evalJSON: 'force',
onSuccess: function(t)
{
if( Object.isUndefined( t.responseJSON ) )
{
alert( ipb.lang['ua_error_save'] );
return;
}
else if( t.responseJSON['error'] )
{
t.responseJSON['error'] = ( t.responseJSON['error'] == 'UAGENT_EXISTS' ) ? ipb.lang['ua_exists'] : t.responseJSON['error'];
alert( ipb.lang['ua_error_save2'] + t.responseJSON['error'] );
return;
}
acp.uagents.json = t.responseJSON;
if( id == 'new' )
{
var newparams = {
'id': t.responseJSON['returnid'],
'name': unescape(params['uagent_name']),
'type': params['uagent_type']
};
// Need to add it to the list
var html = ipb.templates['agent_row'].evaluate( newparams );
$('sortable_handle').insert( { bottom: html } );
acp.uagents.popups['new'].hide();
$('uagent_key_new').value = '';
$('uagent_name_new').value = '';
$('uagent_regex_new').value = '';
$('uagent_capture_new').value = '';
$('uagent_position_new').value = 0;
/* Update ID */
id = newparams['id'];
}
else
{
$('agent_' + id + '_edit').stopObserving();
$('agent_' + id + '_delete').stopObserving();
/* Update contents so that the name and image are updated in place */
var newparams = {
'id': id,
'name': unescape(params['uagent_name']),
'type': params['uagent_type']
};
// Need to add it to the list
var html = ipb.templates['agent_row'].evaluate( newparams );
$('uagent_' + id ).update( html.replace( /^<li([^>]+?)>(.*)</li>/, "$2" ) );
acp.uagents.popups[ id ].hide();
}
/* Reset listeners */
$('agent_' + id + '_edit').observe('click', acp.uagents.editAgent.bindAsEventListener( this, id ) );
$('agent_' + id + '_delete').observe('click', acp.uagents.deleteAgent.bindAsEventListener( this, id ) );
ipb.global.showInlineNotification( ipb.lang['useragent_saved'], { showClose: true } );
/* Reset sortable */
Sortable.create( 'sortable_handle', { tag: 'li', only: 'isDraggable', revert: true, format: 'uagent_([0-9]+)', handle: 'draghandle', onUpdate: acp.uagents.updateAgents } );
}
});
}
};
acp.uagents.init();
?>