refs #4974 Added updateODBC function and more
This commit is contained in:
parent
65fc298955
commit
127abd6fb8
157
src/main.js
157
src/main.js
|
@ -1,11 +1,11 @@
|
|||
|
||||
var odbcPath = 'HKCU\\Software\\ODBC\\ODBC.INI\\';
|
||||
var Conf = {
|
||||
appName: 'Verdnatura',
|
||||
dsName: 'verdnatura',
|
||||
dsPath: 'HKCU\\SOFTWARE\\ODBC\\ODBC.INI\\verdnatura',
|
||||
dsPath: odbcPath + 'verdnatura',
|
||||
regPath: 'HKCU\\SOFTWARE\\Verdnatura\\vn-access',
|
||||
remoteUrl: 'https://cdn.verdnatura.es/vn-access',
|
||||
dbHost: 'db.verdnatura.es',
|
||||
defaultModule: 'vn',
|
||||
defaultLocale: 'es',
|
||||
defaultBranch: 'master',
|
||||
|
@ -16,7 +16,6 @@ var Conf = {
|
|||
defaultDatasource: 'production',
|
||||
version: 4,
|
||||
cdnURL: 'https://cdn.verdnatura.es/vn-access',
|
||||
cdnURL: 'https://salix.verdnatura.es',
|
||||
datasources: {
|
||||
production: {
|
||||
DESCRIPTION: 'production',
|
||||
|
@ -47,7 +46,7 @@ var Conf = {
|
|||
|
||||
var Locale = {
|
||||
es: {
|
||||
"Enter a user name":
|
||||
"Enter a username":
|
||||
"Introduce un nombre de usuario",
|
||||
"Enter a password":
|
||||
"Introduce una contraseña",
|
||||
|
@ -79,7 +78,7 @@ var App = {
|
|||
init: function() {
|
||||
// Specify the size of window
|
||||
var width = 420;
|
||||
var height = 560;
|
||||
var height = 550;
|
||||
window.resizeTo(width, height);
|
||||
window.moveTo((screen.width - width) / 2, (screen.height - height) / 2);
|
||||
},
|
||||
|
@ -109,42 +108,24 @@ var App = {
|
|||
var myVersion = this.regRead(Conf.regPath, 'version');
|
||||
|
||||
if (!myVersion || myVersion != Conf.version) {
|
||||
var path;
|
||||
var path = 'HKCU\\Software\\Microsoft\\Office\\11.0\\Access\\';
|
||||
|
||||
// Creates the Access configuration entries
|
||||
path = 'HKCU\\Software\\Microsoft\\Office\\11.0\\Access\\Settings';
|
||||
this.regWrites(path, {
|
||||
'Confirm Document Deletions' : false,
|
||||
'Confirm Action Queries' : false,
|
||||
'Confirm Record Changes' : false
|
||||
this.regWrites(path + 'Settings', {
|
||||
'Confirm Document Deletions': false,
|
||||
'Confirm Action Queries': false,
|
||||
'Confirm Record Changes': false
|
||||
});
|
||||
|
||||
path = 'HKCU\\Software\\Microsoft\\Office\\11.0\\Access\\Security';
|
||||
this.regWrite(path, 'Level', 1);
|
||||
this.regWrite(path + 'Security', 'Level', 1);
|
||||
|
||||
// Creates the MySQL ODBC connection
|
||||
var driverPath = this.getEnv('ProgramFiles') + Conf.driverPath;
|
||||
|
||||
var params = {
|
||||
Driver : driverPath,
|
||||
DESCRIPTION : Conf.appName,
|
||||
SERVER : Conf.dbHost,
|
||||
DATABASE : Conf.dbName,
|
||||
SSLCA : this.certFile,
|
||||
SSLMODE : 'VERIFY_IDENTITY',
|
||||
SSLCIPHER : 'AES256-SHA',
|
||||
AUTO_RECONNECT : '1',
|
||||
NO_PROMPT : '1',
|
||||
ENABLE_CLEARTEXT_PLUGIN : '1'
|
||||
};
|
||||
|
||||
this.createOdbc(
|
||||
this.createODBC(
|
||||
odbcPath,
|
||||
Conf.dsName,
|
||||
Conf.odbcDriver,
|
||||
params
|
||||
Conf.odbcDriver
|
||||
);
|
||||
|
||||
//Datasources creations
|
||||
//Datasources creation
|
||||
this.createDatasources();
|
||||
|
||||
// Upload the string value to version installed
|
||||
|
@ -186,7 +167,7 @@ var App = {
|
|||
|
||||
// Datasource options
|
||||
this.$('datasource').value = this.getDatasource();
|
||||
this.onChangeDatasource();
|
||||
this.onChangeDatasource(true);
|
||||
},
|
||||
|
||||
resetForm: function(clearPassword) {
|
||||
|
@ -197,10 +178,42 @@ var App = {
|
|||
this.$('user').select();
|
||||
},
|
||||
|
||||
createOdbc: function(dsName, driverName, params) {
|
||||
var odbcPath = 'HKCU\\Software\\ODBC\\ODBC.INI\\';
|
||||
this.regWrites(odbcPath + dsName, params);
|
||||
this.regWrite(odbcPath + 'ODBC Data Sources', dsName, driverName);
|
||||
createODBC: function(path, dsName, driverName) {
|
||||
var driverPath = this.getEnv('ProgramFiles') + Conf.driverPath;
|
||||
|
||||
var params = {
|
||||
Driver: driverPath,
|
||||
DESCRIPTION: Conf.appName,
|
||||
SERVER: Conf.datasources.production.SERVER,
|
||||
DATABASE: Conf.dbName,
|
||||
SSLCA: this.certFile,
|
||||
SSLMODE: 'VERIFY_IDENTITY',
|
||||
SSLCIPHER: 'AES256-SHA',
|
||||
AUTO_RECONNECT: 1,
|
||||
NO_PROMPT: 1,
|
||||
ENABLE_CLEARTEXT_PLUGIN: 1
|
||||
};
|
||||
|
||||
this.regWrite(path + 'ODBC Data Sources', dsName, driverName);
|
||||
this.regWrites(path + dsName, params);
|
||||
},
|
||||
|
||||
updateODBC: function(path, dsName, datasource) {
|
||||
var params;
|
||||
|
||||
if (datasource == 'production')
|
||||
params = Conf.datasources.production
|
||||
|
||||
if (datasource == 'test')
|
||||
params = Conf.datasources.test
|
||||
|
||||
if (datasource == 'dev')
|
||||
params = Conf.datasources.dev
|
||||
|
||||
if (datasource == 'localhost')
|
||||
params = Conf.datasources.localhost
|
||||
|
||||
this.regWrites(path + dsName, params);
|
||||
},
|
||||
|
||||
disableUi: function(disabled, loadMessage) {
|
||||
|
@ -256,16 +269,23 @@ var App = {
|
|||
this.$('user').focus();
|
||||
},
|
||||
|
||||
onChangeDatasource: function() {
|
||||
if (this.$("datasource").value == "production"||"test"||"dev") {
|
||||
this.$("datasourceButton").className = this.$("datasource").value;
|
||||
this.$("datasource").className = this.$("datasource").value;
|
||||
onChangeDatasource: function(isOnLoad) {
|
||||
var myDatasource = this.$("datasource").value;
|
||||
if (myDatasource == "production"||"test"||"dev") {
|
||||
this.$("datasourceButton").className = myDatasource;
|
||||
this.$("datasource").className = myDatasource;
|
||||
} else {
|
||||
this.$("datasourceButton").className = null;
|
||||
this.$("datasource").className = null;
|
||||
}
|
||||
this.updateDatasource(this.$("datasource").value);
|
||||
this.$('user').focus();
|
||||
if (!isOnLoad) {
|
||||
this.updateDatasource(myDatasource);
|
||||
this.updateODBC(
|
||||
odbcPath,
|
||||
Conf.dsName,
|
||||
myDatasource
|
||||
);
|
||||
}
|
||||
|
||||
var curDatasource = this.regRead(Conf.regPath, 'currentDatasource');
|
||||
var datasourcePath = Conf.regPath + '\\datasources\\' + curDatasource;
|
||||
|
@ -276,6 +296,7 @@ var App = {
|
|||
this.$('user').value = myUID;
|
||||
this.$('password').value = myPWD;
|
||||
}
|
||||
this.$('user').focus();
|
||||
},
|
||||
|
||||
cleanCache: function() {
|
||||
|
@ -324,18 +345,12 @@ var App = {
|
|||
login: function() {
|
||||
try {
|
||||
var user = this.$('user').value;
|
||||
var password = this.$('password').value;
|
||||
var branch = this.$('branch').value;
|
||||
var datasource = this.$('datasource').value;
|
||||
if (!user)
|
||||
throw new Error(_('Enter a username'));
|
||||
|
||||
if (!user || user === '')
|
||||
throw new Error(_('Enter a user name'));
|
||||
if (!password || password === '')
|
||||
var password = this.$('password').value;
|
||||
if (!password)
|
||||
throw new Error(_('Enter a password'));
|
||||
if (!branch || branch === '')
|
||||
throw new Error(_('Select a branch'));
|
||||
if (!datasource || datasource === '')
|
||||
throw new Error(_('Select a datasource'));
|
||||
|
||||
this.regWrite(Conf.dsPath, 'UID', user);
|
||||
this.regWrite(Conf.dsPath, 'PWD', password);
|
||||
|
@ -372,15 +387,15 @@ var App = {
|
|||
var mysqlConn = new ActiveXObject('ADODB.Connection');;
|
||||
|
||||
try {
|
||||
mysqlConn.open(this.getOdbcString({
|
||||
Driver : '{'+ Conf.odbcDriver +'}',
|
||||
Server : Conf.dbHost,
|
||||
Database : Conf.dbName,
|
||||
Uid : this.$('user').value,
|
||||
Pwd : this.$('password').value,
|
||||
Sslca : this.certFile,
|
||||
SslMode : 'VERIFY_IDENTITY',
|
||||
SslCipher : 'AES256-SHA',
|
||||
mysqlConn.open(this.getODBCString({
|
||||
Driver: '{'+ Conf.odbcDriver +'}',
|
||||
Server: Conf.datasources.production.SERVER,
|
||||
Database: Conf.dbName,
|
||||
Uid: this.$('user').value,
|
||||
Pwd: this.$('password').value,
|
||||
Sslca: this.certFile,
|
||||
SslMode: 'VERIFY_IDENTITY',
|
||||
SslCipher: 'AES256-SHA',
|
||||
ENABLE_CLEARTEXT_PLUGIN : 1
|
||||
}));
|
||||
} catch (err) {
|
||||
|
@ -442,7 +457,8 @@ var App = {
|
|||
'SELECT Version FROM tblVariables',
|
||||
'Version', parseInt
|
||||
);
|
||||
if (!localVersion) localVersion = false;
|
||||
if (!localVersion)
|
||||
localVersion = false;
|
||||
|
||||
// Determines if should download
|
||||
return !localVersion || version === false || localVersion != version
|
||||
|
@ -455,7 +471,7 @@ var App = {
|
|||
try {
|
||||
if (this.fso.fileExists(this.mdbFile)) {
|
||||
var mdbConn = new ActiveXObject('ADODB.Connection');
|
||||
mdbConn.open(this.getOdbcString({
|
||||
mdbConn.open(this.getODBCString({
|
||||
'Provider': 'Microsoft.Jet.OLEDB.4.0',
|
||||
'Data Source': this.mdbFile
|
||||
}));
|
||||
|
@ -473,7 +489,7 @@ var App = {
|
|||
|
||||
return value;
|
||||
},
|
||||
getOdbcString: function(options) {
|
||||
getODBCString: function(options) {
|
||||
var optionsArray = [];
|
||||
for (var option in options)
|
||||
optionsArray.push(option +'='+ options[option]);
|
||||
|
@ -485,7 +501,7 @@ var App = {
|
|||
|
||||
try {
|
||||
if (request.status !== 200)
|
||||
throw new Error('HTTP: '+ request.statusText);
|
||||
throw new Error('HTTP: '+ request.statusText + ' ' + request.status);
|
||||
|
||||
if (this.fso.fileExists(this.compressFile))
|
||||
this.fso.deleteFile(this.compressFile);
|
||||
|
@ -652,20 +668,19 @@ var App = {
|
|||
this.regWrite(Conf.regPath, 'currentDatasource', datasource);
|
||||
},
|
||||
createDatasources: function() {
|
||||
this.regWrite(Conf.regPath + '\\datasources');
|
||||
|
||||
var params = {
|
||||
'UID': null,
|
||||
'PWD': null
|
||||
}
|
||||
for (var datasource in Conf.datasources) {
|
||||
var myPath = Conf.regPath + '\\datasources\\' + datasource
|
||||
for (var stringValues in Conf.datasources[datasource]) {
|
||||
this.regWrite(Conf.regPath + '\\datasources\\' + datasource,
|
||||
this.regWrite(myPath,
|
||||
stringValues,
|
||||
Conf.datasources[datasource][stringValues]
|
||||
);
|
||||
}
|
||||
this.regWrites(Conf.regPath + '\\datasources\\' + datasource, params);
|
||||
this.regWrites(myPath, params);
|
||||
};
|
||||
|
||||
},
|
||||
|
|
|
@ -41,12 +41,8 @@ option {
|
|||
#inputs > div > * {
|
||||
display: block;
|
||||
}
|
||||
label {
|
||||
font-weight: normal;
|
||||
font-size: .9em;
|
||||
}
|
||||
#inputs label {
|
||||
color: #666;
|
||||
color: rgb(155, 155, 155);
|
||||
font-size: .8em;
|
||||
}
|
||||
input[type='text'],
|
||||
|
@ -58,7 +54,7 @@ input[type='password'] {
|
|||
color: #333;
|
||||
padding-top: .5em;
|
||||
padding-bottom: .5em;
|
||||
padding-left: .2em;
|
||||
padding-left: .3em;
|
||||
max-width: auto;
|
||||
}
|
||||
input[type='text']:focus,
|
||||
|
@ -67,7 +63,7 @@ input[type='password']:focus {
|
|||
}
|
||||
#notSignOut {
|
||||
margin-top: 1em;
|
||||
font-size: .9em;
|
||||
font-size: .8em;
|
||||
margin-bottom: 2.5em;
|
||||
}
|
||||
#submit {
|
||||
|
@ -86,7 +82,6 @@ input[type='password']:focus {
|
|||
margin-top: 10px;
|
||||
}
|
||||
#clean:hover {
|
||||
|
||||
text-decoration: underline;
|
||||
text-decoration-color: #44f;
|
||||
}
|
||||
|
@ -124,6 +119,7 @@ button:hover {
|
|||
#branchSelector {
|
||||
float: right;
|
||||
margin-top: .7em;
|
||||
width: 107px;
|
||||
display: none;
|
||||
padding-left: .3em;
|
||||
padding-right: .8em;
|
||||
|
@ -132,7 +128,7 @@ button:hover {
|
|||
float: left;
|
||||
border-radius: 25px;
|
||||
color: black;
|
||||
box-shadow: 0px 0px 5px 0px black;
|
||||
box-shadow: 0 0 .25em rgba(1,1,1,.6);
|
||||
background-color: #8d8d8d;
|
||||
}
|
||||
#branchButton:hover {
|
||||
|
@ -186,14 +182,14 @@ select.dev {
|
|||
float: right;
|
||||
display: none;
|
||||
padding-right: .8em;
|
||||
margin-right: 0.5em;
|
||||
margin-right: .5em;
|
||||
margin-top: -1.91em;
|
||||
}
|
||||
#datasourceButton {
|
||||
float: right;
|
||||
border-radius: 25px;
|
||||
color: black;
|
||||
box-shadow: 0px 0px 5px 0px #000000;
|
||||
box-shadow: 0 0 .25em rgba(1,1,1,.6);
|
||||
background-color: #8d8d8d;
|
||||
}
|
||||
#datasourceButton:hover {
|
||||
|
@ -235,7 +231,7 @@ select.dev {
|
|||
font-size: .8em;
|
||||
display: none;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 0.4em rgba(1,1,1,0.6);
|
||||
box-shadow: 0 0 .4em rgba(1,1,1,.6);
|
||||
}
|
||||
#message.error {
|
||||
border-color: black;
|
||||
|
@ -257,7 +253,7 @@ select.dev {
|
|||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: black;
|
||||
opacity: 0.7;
|
||||
opacity: .7;
|
||||
filter: alpha(opacity=50);
|
||||
top: 0;
|
||||
left: 0;
|
||||
|
|
|
@ -47,10 +47,10 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="submit">
|
||||
<button id="enter" onclick="App.onEnterClick()"> Iniciar sesión</button>
|
||||
<button id="enter" onclick="App.onEnterClick()">Iniciar sesión</button>
|
||||
</div>
|
||||
<div id="cleanDiv">
|
||||
<a id="clean" href="#" onclick="App.onCleanCacheClick()"> Limpiar caché </a>
|
||||
<a id="clean" href="#" onclick="App.onCleanCacheClick()">Limpiar caché </a>
|
||||
</div>
|
||||
<div id="branchOptions">
|
||||
<div id="branchButton">
|
||||
|
@ -78,7 +78,7 @@
|
|||
App.onShowBranchOptionsClick()"
|
||||
alt="Change datasource"/>
|
||||
<div id="datasourceSelector">
|
||||
<select id="datasource" onchange="App.onChangeDatasource()">
|
||||
<select id="datasource" onchange="App.onChangeDatasource(false)">
|
||||
<option value="production">production</option>
|
||||
<option value="test">test</option>
|
||||
<option value="dev">dev</option>
|
||||
|
|
Loading…
Reference in New Issue