BUG 6932 improving new site installer, using extjs
this was done.
This commit is contained in:
65
workflow/engine/controllers/newSiteProxy.php
Normal file
65
workflow/engine/controllers/newSiteProxy.php
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* new Site create v1.1
|
||||||
|
* Jan 15th, 2011
|
||||||
|
* @author krlos P.C <carlos@colosa.com>
|
||||||
|
*/
|
||||||
|
class newSiteProxy extends HttpProxyController
|
||||||
|
{
|
||||||
|
|
||||||
|
function testingNW($params){
|
||||||
|
if(isset($_POST['NW_TITLE'])){
|
||||||
|
$action = (isset($_POST['action']))?trim($_POST['action']):'test';
|
||||||
|
|
||||||
|
G::LoadClass('Installer');
|
||||||
|
G::LoadClass('json');
|
||||||
|
$name = trim($_POST['NW_TITLE']);
|
||||||
|
$inst = new Installer();
|
||||||
|
$isset = $inst->isset_site($name);
|
||||||
|
$new = ((!$isset))?true:false;
|
||||||
|
$user = (isset($_POST['NW_USERNAME']))?trim($_POST['NW_USERNAME']):'admin';
|
||||||
|
$pass = (isset($_POST['NW_PASSWORD']))?$_POST['NW_PASSWORD']:'admin';
|
||||||
|
$pass1 = (isset($_POST['NW_PASSWORD2']))?$_POST['NW_PASSWORD2']:'admin';
|
||||||
|
|
||||||
|
$ao_db_drop = (isset($_POST['AO_DB_DROP']))?true:false;
|
||||||
|
|
||||||
|
$ao_db_wf = (isset($_POST['AO_DB_WF']))?$_POST['AO_DB_WF']:false;
|
||||||
|
$ao_db_rb = (isset($_POST['AO_DB_RB']))?$_POST['AO_DB_RB']:false;
|
||||||
|
$ao_db_rp = (isset($_POST['AO_DB_RP']))?$_POST['AO_DB_RP']:false;
|
||||||
|
|
||||||
|
$result = $inst->create_site(Array(
|
||||||
|
'isset'=>true,
|
||||||
|
'name' =>$name,
|
||||||
|
'admin'=>Array('username'=>$user,'password'=>$pass),
|
||||||
|
'advanced'=>Array(
|
||||||
|
'ao_db_drop'=>$ao_db_drop,
|
||||||
|
'ao_db_wf'=>$ao_db_wf,
|
||||||
|
'ao_db_rb'=>$ao_db_rb,
|
||||||
|
'ao_db_rp'=>$ao_db_rp
|
||||||
|
)
|
||||||
|
),($action==='create')?true:false);
|
||||||
|
$result['result']['admin']['password']=($pass===$pass1)?true:false;
|
||||||
|
$result['result']['action']=$action;
|
||||||
|
$json = new Services_JSON();
|
||||||
|
//G::pr($result['result']['database']);G::pr($action);
|
||||||
|
$dbWf=$result['result']['database']['ao']['ao_db_wf']['status'];
|
||||||
|
$dbRb=$result['result']['database']['ao']['ao_db_rb']['status'];
|
||||||
|
$dbRp=$result['result']['database']['ao']['ao_db_rp']['status'];
|
||||||
|
$wsAction =($action!='')?1:0;
|
||||||
|
if($dbWf && $dbRb && $dbRp && $action){
|
||||||
|
$this->success = true;
|
||||||
|
//echo $json->encode($result);
|
||||||
|
}else{//the site does not available
|
||||||
|
$this->error = true;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
$this->error = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function creatingNW($params){
|
||||||
|
G::pr($_POST);
|
||||||
|
G::pr("krlossss");
|
||||||
|
}
|
||||||
|
|
||||||
|
} //End newSiteProxy
|
||||||
@@ -23,7 +23,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
if(isset($_POST['form']['NW_TITLE']))
|
if(isset($_POST['form']['NW_TITLE']))
|
||||||
{
|
{
|
||||||
$action = (isset($_POST['form']['ACTION']))?trim($_POST['form']['ACTION']):'test';
|
$action = (isset($_POST['form']['ACTION']))?trim($_POST['form']['ACTION']):'test';
|
||||||
@@ -84,13 +83,24 @@ else
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
$G_PUBLISH = new Publisher;
|
$G_PUBLISH = new Publisher;
|
||||||
$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/newSite', '', '', 'newSite');
|
/*$G_PUBLISH->AddContent('xmlform', 'xmlform', 'login/newSite', '', '', 'newSite');
|
||||||
|
|
||||||
if( isset($_GET['type']) )
|
if( isset($_GET['type']) )
|
||||||
G::RenderPage( "publishBlank", "blank");
|
G::RenderPage( "publishBlank", "blank");
|
||||||
else
|
else
|
||||||
G::RenderPage( "publish" );
|
G::RenderPage( "publish" );*/
|
||||||
|
G::LoadClass('configuration');
|
||||||
|
$c = new Configurations();
|
||||||
|
$configPage = $c->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']);
|
||||||
|
$Config['pageSize'] = isset($configPage['pageSize']) ? $configPage['pageSize'] : 20;
|
||||||
|
|
||||||
|
$oHeadPublisher =& headPublisher::getSingleton();
|
||||||
|
$oHeadPublisher->addExtJsScript('setup/newSite', false); //adding a javascript file .js
|
||||||
|
$oHeadPublisher->addContent('setup/newSite'); //adding a html file .html.
|
||||||
|
// $oHeadPublisher->assign('CONFIG', $Config);
|
||||||
|
// $oHeadPublisher->assign('FORMATS',$c->getFormats());
|
||||||
|
|
||||||
|
G::RenderPage('publish', 'extJs');
|
||||||
|
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
|||||||
3
workflow/engine/templates/setup/newSite.html
Normal file
3
workflow/engine/templates/setup/newSite.html
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
<div style="padding: 15px">
|
||||||
|
<div id="nwkrlos-panel"></div>
|
||||||
|
</div>
|
||||||
222
workflow/engine/templates/setup/newSite.js
Normal file
222
workflow/engine/templates/setup/newSite.js
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
/*
|
||||||
|
* @author krlos P.C <carlos@colosa.com>
|
||||||
|
* Jan 15th, 2011
|
||||||
|
*/
|
||||||
|
|
||||||
|
Ext.onReady(function(){
|
||||||
|
|
||||||
|
var fieldNameWS=new Ext.form.TextField({
|
||||||
|
id: 'NW_TITLE',
|
||||||
|
fieldLabel: _('ID_NAME'),
|
||||||
|
xtype:'textfield',
|
||||||
|
value:'sample',
|
||||||
|
width: 200,
|
||||||
|
autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '13'},
|
||||||
|
allowBlank: false,
|
||||||
|
listeners: {
|
||||||
|
'render': function(c) {
|
||||||
|
c.getEl().on('keyup', function() {
|
||||||
|
namews=formNewSite.getForm().findField('NW_TITLE').getValue();
|
||||||
|
formNewSite.getForm().findField('AO_DB_WF').setValue('ws_'+namews);
|
||||||
|
formNewSite.getForm().findField('AO_DB_RB').setValue('rb_'+namews);
|
||||||
|
formNewSite.getForm().findField('AO_DB_RP').setValue('rp_'+namews);
|
||||||
|
}, c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
nameWS = new Ext.form.FieldSet({
|
||||||
|
title: 'New Workspace',
|
||||||
|
items: [
|
||||||
|
fieldNameWS
|
||||||
|
]
|
||||||
|
});
|
||||||
|
dbOptionsWS = new Ext.form.FieldSet({
|
||||||
|
title: 'Database Options',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
id: 'AO_DB_WF',
|
||||||
|
fieldLabel: 'Workflow Database',
|
||||||
|
xtype:'textfield',
|
||||||
|
value:'ws_sample',
|
||||||
|
width: 200,
|
||||||
|
autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '13'},
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'AO_DB_RB',
|
||||||
|
fieldLabel: 'Rbac Database',
|
||||||
|
xtype:'textfield',
|
||||||
|
value:'rb_sample',
|
||||||
|
width: 200,
|
||||||
|
autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '13'},
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'AO_DB_RP',
|
||||||
|
fieldLabel: 'Report Database',
|
||||||
|
xtype:'textfield',
|
||||||
|
value:'rp_sample',
|
||||||
|
width: 200,
|
||||||
|
autoCreate: {tag: 'input', type: 'text', size: '20', autocomplete: 'off', maxlength: '13'},
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
xtype: 'checkbox',
|
||||||
|
fieldLabel: 'Drop database if exists',
|
||||||
|
name: 'AO_DB_DROP',
|
||||||
|
id: 'id-active'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
wspaceAdmWS = new Ext.form.FieldSet({
|
||||||
|
title: 'Workspace Administrator',
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
id: 'NW_USERNAME',
|
||||||
|
fieldLabel: 'Username',
|
||||||
|
xtype:'textfield',
|
||||||
|
value:'admin',
|
||||||
|
width: 200,
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'NW_PASSWORD',
|
||||||
|
fieldLabel: 'Password (admin)(Max. length 20):',
|
||||||
|
xtype:'textfield',
|
||||||
|
inputType:'password',
|
||||||
|
value:'admin',
|
||||||
|
width: 200,
|
||||||
|
allowBlank: false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'NW_PASSWORD2',
|
||||||
|
fieldLabel: 'Re-type Password',
|
||||||
|
xtype:'textfield',
|
||||||
|
inputType:'password',
|
||||||
|
value:'admin',
|
||||||
|
width: 200,
|
||||||
|
allowBlank: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
formNewSite = new Ext.FormPanel({
|
||||||
|
id:'formNewSite',
|
||||||
|
labelWidth: 250,
|
||||||
|
labelAlign:'right',
|
||||||
|
autoScroll: true,
|
||||||
|
fileUpload: true,
|
||||||
|
width:800,
|
||||||
|
bodyStyle:'padding:10px',
|
||||||
|
waitMsgTarget : true,
|
||||||
|
frame: true,
|
||||||
|
defaults: {
|
||||||
|
anchor: '100%',
|
||||||
|
allowBlank: false,
|
||||||
|
resizable: true,
|
||||||
|
msgTarget: 'side',
|
||||||
|
align:'center'
|
||||||
|
},
|
||||||
|
items:[
|
||||||
|
nameWS,
|
||||||
|
dbOptionsWS,
|
||||||
|
wspaceAdmWS
|
||||||
|
],
|
||||||
|
buttons: [
|
||||||
|
{
|
||||||
|
text: 'reset',
|
||||||
|
handler: resetfields
|
||||||
|
|
||||||
|
},
|
||||||
|
{
|
||||||
|
text: 'Test',
|
||||||
|
handler: TestSite
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
formNewSite.render(document.body);
|
||||||
|
|
||||||
|
});
|
||||||
|
function resetfields(){
|
||||||
|
formNewSite.getForm().reset();
|
||||||
|
}
|
||||||
|
function TestSite(){
|
||||||
|
formNewSite.getForm().submit({
|
||||||
|
url: '../newSiteProxy/testingNW',
|
||||||
|
params: {
|
||||||
|
action : 'test'
|
||||||
|
},
|
||||||
|
waitMsg : 'new site testing...',
|
||||||
|
timeout : 3600,
|
||||||
|
success: function(f,a){
|
||||||
|
nwTitle =formNewSite.getForm().findField('NW_TITLE').getValue();
|
||||||
|
aoDbWf =formNewSite.getForm().findField('AO_DB_WF').getValue();
|
||||||
|
aoDbRb =formNewSite.getForm().findField('AO_DB_RB').getValue();
|
||||||
|
aoDbRp =formNewSite.getForm().findField('AO_DB_RP').getValue();
|
||||||
|
nwUsername =formNewSite.getForm().findField('NW_USERNAME').getValue();
|
||||||
|
nwPassword =formNewSite.getForm().findField('NW_PASSWORD').getValue();
|
||||||
|
nwPassword2=formNewSite.getForm().findField('NW_PASSWORD2').getValue();
|
||||||
|
aoDbDrop=formNewSite.getForm().findField('AO_DB_DROP').getValue();
|
||||||
|
//Ext.getCmp('NW_TITLE').disable()=true;
|
||||||
|
//Ext.getCmp('NW_TITLE').readOnly = true;
|
||||||
|
createNW(nwTitle, aoDbWf, aoDbRb, aoDbRp, nwUsername, nwPassword, nwPassword2);
|
||||||
|
},
|
||||||
|
failure: function(f,a){
|
||||||
|
if (a.failureType === Ext.form.Action.CONNECT_FAILURE){
|
||||||
|
Ext.Msg.alert('Failure', 'Server reported:'+a.response.status+' '+a.response.statusText);
|
||||||
|
}
|
||||||
|
if (a.failureType === Ext.form.Action.SERVER_INVALID){
|
||||||
|
Ext.Msg.alert('Warning', _('NEW_SITE_NOT_AVAILABLE'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function createNW(nwTitle, aoDbWf, aoDbRb, aoDbRp, nwUsername, nwPassword, nwPassword2){
|
||||||
|
PMExt.confirm(_('ID_CONFIRM'), _('NEW_SITE_CONFIRM_TO_CREATE'), function(){
|
||||||
|
var loadMask = new Ext.LoadMask(document.body, {msg:'site creating..'});
|
||||||
|
loadMask.show();
|
||||||
|
Ext.Ajax.request({
|
||||||
|
url: '../newSiteProxy/testingNW',
|
||||||
|
params: {
|
||||||
|
action : 'create',
|
||||||
|
NW_TITLE : nwTitle,
|
||||||
|
AO_DB_WF : aoDbWf,
|
||||||
|
AO_DB_RB : aoDbRb,
|
||||||
|
AO_DB_RP : aoDbRp,
|
||||||
|
NW_USERNAME : nwUsername,
|
||||||
|
NW_PASSWORD : nwPassword,
|
||||||
|
NW_PASSWORD2 : nwPassword2,
|
||||||
|
AO_DB_DROP : aoDbDrop
|
||||||
|
},
|
||||||
|
method: 'POST',
|
||||||
|
success: function ( result, request ) {
|
||||||
|
loadMask.hide();
|
||||||
|
var data = Ext.util.JSON.decode(result.responseText);
|
||||||
|
if( data.success ) {
|
||||||
|
PMExt.confirm(_('ID_CONFIRM'), _('NEW_SITE_SUCCESS') +" "+nwTitle+"<br/>"+ _('NEW_SITE_SUCCESS_CONFIRM')+"<br/>"+ _('NEW_SITE_SUCCESS_CONFIRMNOTE'), function(){
|
||||||
|
nwTitle =formNewSite.getForm().findField('NW_TITLE').getValue();
|
||||||
|
parent.parent.window.location="/sys"+nwTitle+"/en/green/login/login";
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
PMExt.error(_('ID_ERROR'), data.msg);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
failure: function ( result, request) {
|
||||||
|
Ext.MessageBox.alert('Failed', result.responseText);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user