diff --git a/setup/setup.js b/setup/setup.js
index e7e30245c..96d85d29d 100644
--- a/setup/setup.js
+++ b/setup/setup.js
@@ -161,103 +161,69 @@ function DoSubmit(sMsg, iStep)
function DoCompileDataModel()
{
- try
- {
- // Call the asynchronous page that performs the compilation of the data model and the creation of the configuration file
- $('#log').html('');
- $('#setup').block({message: '
Preparing data model...
0%
'});
- $('#progress').progression( {Current:5, Maximum: 100, aBackgroundImg: 'orange-progress.gif', aTextColor: '#000000'} );
- $('#log').load( 'ajax.dataloader.php',
- {
- 'operation': 'compile_data_model',
- 'selected_modules': GetSelectedModules(),
- 'mode': $(':input[name=mode]').val(),
- 'source_dir': $(':input[name=source_dir]').val(),
- 'target_dir': $(':input[name=target_dir]').val()
- },
- DoUpdateDBSchema, 'html');
- }
- catch(err)
- {
- alert('An exception occured: '+err);
- }
- return false; // Do NOT submit the form yet
+ $('#log').html('');
+ $('#setup').block({message: 'Preparing data model...
0%
'});
+ $('#progress').progression( {Current:5, Maximum: 100, aBackgroundImg: 'orange-progress.gif', aTextColor: '#000000'} );
+
+ var sSelectedModules = GetSelectedModules();
+ var sMode = $(':input[name=mode]').val();
+ var sSourceDir = $(':input[name=source_dir]').val();
+ var sTargetDir = $(':input[name=target_dir]').val();
+
+ // Call the asynchronous page that performs the compilation of the data model and the creation of the configuration file
+ AsyncCompileDataModel(sSelectedModules, sMode, sSourceDir, sTargetDir, function(response, status, xhr) {
+ $('#log').html(response);
+ DoUpdateDBSchema();
+ });
}
function DoUpdateDBSchema()
{
- try
- {
- // Call the asynchronous page that performs the creation/update of the DB Schema
- $('#log').html('');
- $('#setup').block({message: 'Updating DB schema...
5%
'});
- $('#progress').progression( {Current:10, Maximum: 100, aBackgroundImg: 'orange-progress.gif', aTextColor: '#000000'} );
- $('#log').load( 'ajax.dataloader.php',
- {
- 'operation': 'update_db_schema',
- 'selected_modules': GetSelectedModules(),
- 'mode': $(':input[name=mode]').val(),
- 'db_server': $(':input[name=db_server]').val(),
- 'db_user': $(':input[name=db_user]').val(),
- 'db_pwd': $(':input[name=db_pwd]').val(),
- 'db_name': $(':input[name=db_name]').val(),
- 'new_db_name': $(':input[name=new_db_name]').val(),
- 'db_prefix': $(':input[name=db_prefix]').val(),
- 'modules_dir': $(':input[name=target_dir]').val()
- },
- DoUpdateProfiles, 'html');
- }
- catch(err)
- {
- alert('An exception occured: '+err);
- }
- return false; // Do NOT submit the form yet
+ $('#log').html('');
+ $('#setup').block({message: 'Updating DB schema...
5%
'});
+ $('#progress').progression( {Current:10, Maximum: 100, aBackgroundImg: 'orange-progress.gif', aTextColor: '#000000'} );
+
+ var sSelectedModules = GetSelectedModules();
+ var sMode = $(':input[name=mode]').val();
+ var sModulesDir = $(':input[name=target_dir]').val();
+ var sDBServer = $(':input[name=db_server]').val();
+ var sDBUser = $(':input[name=db_user]').val();
+ var sDBPwd = $(':input[name=db_pwd]').val();
+ var sDBName = $(':input[name=db_name]').val();
+ var sNewDBName = $(':input[name=new_db_name]').val();
+ var sDBPrefix = $(':input[name=db_prefix]').val();
+
+ // Call the asynchronous page that performs the creation/update of the DB Schema
+ AsyncUpdateDBSchema(sSelectedModules, sMode, sModulesDir, sDBServer, sDBUser, sDBPwd, sDBName, sNewDBName, sDBPrefix, function(response, status, xhr) {
+ $('#log').html(response);
+ DoUpdateProfiles();
+ });
}
-function DoUpdateProfiles(response, status, xhr)
+function DoUpdateProfiles()
{
- if (status == 'error')
- {
- $('#setup').unblock();
- return; // An error occurred !
- }
- try
- {
- // Call the asynchronous page that performs the creation/update of the DB Schema
- $('#log').html('');
- $('#setup_msg').text('Updating Profiles...');
- $('#progress').progression( {Current:40, Maximum: 100, aBackgroundImg: 'orange-progress.gif', aTextColor: '#000000'} );
- $('#log').load( 'ajax.dataloader.php',
- {
- 'operation': 'after_db_create',
- 'selected_modules': GetSelectedModules(),
- 'mode': $(':input[name=mode]').val(),
- 'db_server': $(':input[name=db_server]').val(),
- 'db_user': $(':input[name=db_user]').val(),
- 'db_pwd': $(':input[name=db_pwd]').val(),
- 'db_name': $(':input[name=db_name]').val(),
- 'new_db_name': $(':input[name=new_db_name]').val(),
- 'db_prefix': $(':input[name=db_prefix]').val(),
- 'modules_dir': $(':input[name=target_dir]').val(),
- 'auth_user': $(':input[name=auth_user]').val(),
- 'auth_pwd': $(':input[name=auth_pwd]').val(),
- 'language': $(':input[name=language]').val()
- },
- DoLoadDataAsynchronous, 'html');
-// $('#log').ajaxError(
-// function(e, xhr, settings, exception)
-// {
-// bStopAysncProcess = true;
-// alert('Fatal error detected: '+ xhr.responseText);
-// $('#log').append(xhr.responseText);
-// $('#setup').unblock();
-// } );
- }
- catch(err)
- {
- alert('An exception occured: '+err);
- }
- return true; // Continue loading the data
+ $('#log').html('');
+ $('#setup_msg').text('Updating Profiles...');
+ $('#progress').progression( {Current:40, Maximum: 100, aBackgroundImg: 'orange-progress.gif', aTextColor: '#000000'} );
+
+ var sSelectedModules = GetSelectedModules();
+ var sMode = $(':input[name=mode]').val();
+ var sModulesDir = $(':input[name=target_dir]').val();
+ var sDBServer = $(':input[name=db_server]').val();
+ var sDBUser = $(':input[name=db_user]').val();
+ var sDBPwd = $(':input[name=db_pwd]').val();
+ var sDBName = $(':input[name=db_name]').val();
+ var sNewDBName = $(':input[name=new_db_name]').val();
+ var sDBPrefix = $(':input[name=db_prefix]').val();
+ var sAuthUser = $(':input[name=auth_user]').val();
+ var sAuthPwd = $(':input[name=auth_pwd]').val();
+ var sLanguage = $(':input[name=language]').val();
+
+ // Call the asynchronous page that performs the creation/update of the DB Schema
+ AsyncUpdateProfiles(sSelectedModules, sMode, sModulesDir, sDBServer, sDBUser, sDBPwd, sDBName, sNewDBName, sDBPrefix, sAuthUser, sAuthPwd, sLanguage, function(response, status, xhr) {
+ $('#log').html(response);
+ DoLoadDataAsynchronous();
+ });
}
var aFilesToLoad = new Array();
diff --git a/setup/setup_environment.js b/setup/setup_environment.js
new file mode 100644
index 000000000..d3cfbc265
--- /dev/null
+++ b/setup/setup_environment.js
@@ -0,0 +1,111 @@
+/**
+ * Wrapper for the compilation of the whole data model into a given environment
+ *
+ * @param string sSelectedModules CSV list of selected modules
+ * @param string sMode 'install' or 'upgrade'
+ * @param string sSourceDir The directory containing the source modules (some may be already compiled)
+ * @param string sTargetDir The target directory (is created if needed) for compiled modules
+ * @return void
+ */
+function AsyncCompileDataModel(sSelectedModules, sMode, sSourceDir, sTargetDir, OnCompleteFn)
+{
+ try
+ {
+ $.post( 'ajax.dataloader.php',
+ {
+ 'operation': 'compile_data_model',
+ 'selected_modules': sSelectedModules,
+ 'mode': sMode,
+ 'source_dir': sSourceDir,
+ 'target_dir': sTargetDir
+ },
+ OnCompleteFn, 'html');
+ }
+ catch(err)
+ {
+ alert('An exception occured: '+err);
+ }
+}
+
+/**
+ * Wrapper for the creation/update of a given DB/environment
+ *
+ * @param string sSelectedModules CSV list of selected modules
+ * @param string sMode 'install' or 'upgrade'
+ * @param string sModulesDir The directory in which the modules have been compiled
+ * @param string sDBServer Database access...
+ * @param string sDBUser ...
+ * @param string sDBPwd ...
+ * @param string sDBName Name of an existing DB
+ * @param string sNewDBName Name of the new DB if sDBName is omitted
+ * @param string sDBPrefix Prefix the tables (shared database)
+ * @return void
+ */
+function AsyncUpdateDBSchema(sSelectedModules, sMode, sModulesDir, sDBServer, sDBUser, sDBPwd, sDBName, sNewDBName, sDBPrefix, OnCompleteFn)
+{
+ try
+ {
+ $.post( 'ajax.dataloader.php',
+ {
+ 'operation': 'update_db_schema',
+ 'selected_modules': sSelectedModules,
+ 'mode': sMode,
+ 'modules_dir': sModulesDir,
+ 'db_server': sDBServer,
+ 'db_user': sDBUser,
+ 'db_pwd': sDBPwd,
+ 'db_name': sDBName,
+ 'new_db_name': sNewDBName,
+ 'db_prefix': sDBPrefix,
+ },
+ OnCompleteFn, 'html');
+ }
+ catch(err)
+ {
+ alert('An exception occured: '+err);
+ }
+}
+
+/**
+ * Wrapper for the creation/update for the user profiles (does create the admin user at creation), in a given environment
+ * @param string sSelectedModules CSV list of selected modules
+ * @param string sMode 'install' or 'upgrade'
+ * @param string sModulesDir The directory in which the modules have been compiled
+ * @param string sDBServer Database access...
+ * @param string sDBUser ...
+ * @param string sDBPwd ...
+ * @param string sDBName Name of an existing DB
+ * @param string sNewDBName Name of the new DB if sDBName is omitted
+ * @param string sDBPrefix Prefix the tables (shared database)
+ * @param string sAuthUser Credentials for the administrator
+ * @param string sAuthPwd
+ * @param string sLanguage Language code for the administrator (e.g. 'EN US')
+ * @return void
+ */
+function AsyncUpdateProfiles(sSelectedModules, sMode, sModulesDir, sDBServer, sDBUser, sDBPwd, sDBName, sNewDBName, sDBPrefix, sAuthUser, sAuthPwd, sLanguage, OnCompleteFn)
+{
+ try
+ {
+ $.post( 'ajax.dataloader.php',
+ {
+ 'operation': 'after_db_create',
+ 'selected_modules': sSelectedModules,
+ 'mode': sMode,
+ 'modules_dir': sModulesDir,
+ 'db_server': sDBServer,
+ 'db_user': sDBUser,
+ 'db_pwd': sDBPwd,
+ 'db_name': sDBName,
+ 'new_db_name': sNewDBName,
+ 'db_prefix': sDBPrefix,
+ 'auth_user': sAuthUser,
+ 'auth_pwd': sAuthPwd,
+ 'language': sLanguage,
+ },
+ OnCompleteFn, 'html');
+ }
+ catch(err)
+ {
+ alert('An exception occured: '+err);
+ }
+}
diff --git a/setup/setuppage.class.inc.php b/setup/setuppage.class.inc.php
index a963dfc2c..4b5104d65 100644
--- a/setup/setuppage.class.inc.php
+++ b/setup/setuppage.class.inc.php
@@ -41,6 +41,7 @@ class SetupPage extends NiceWebPage
parent::__construct($sTitle);
$this->add_linked_script("../js/jquery.blockUI.js");
$this->add_linked_script("./setup.js");
+ $this->add_linked_script("./setup_environment.js");
$this->add_style("
body {
background-color: #eee;