$( document ).ready(function() {
console.log( "Main ready!" );
+ usersystem.getLocalDataSets(browserapp.getdatasets);
browserapp.loadmodule("overview");
- browserapp.getdatasets();
+
console.log("After module load!");
});
+
console.log(navigator.platform);
console.log(location.protocol);
var browserapp = {
+ config: null,
loadmodule: function(modulename){
- var appdata = browserapp.getconfig();
+ //var appdata = browserapp.getconfig();
var params = "?";
- for (var i in appdata){
+ for (var i in this.config){
params += "&" + i +"=" + encodeURIComponent(appdata[i]);
}
console.log("modules/"+modulename+"/index.html"+params);
}
if (pageparams){
for (var i in pageparams){
-
params += "&" + i +"=" + encodeURIComponent(pageparams[i]);
}
}
//console.log("modules/"+modulename+"/index.html"+params);
$("#moduleframe").attr("src","modules/"+modulename+"/"+ page +".html"+ params);
},
- getconfig:function (){
- var cdata = usersystem.getPreference("currentdataset");
+ getconfig: async function (){
+ console.log("GetConfig");
+ var cdata = await usersystem.getPreference($("#globaldatasets").val());
+ console.log("Current Dataset");
+ console.log(cdata);
+ var ret = {};
if ((cdata) && (cdata.name)){
-
+ ret= {dbfile:cdata.dbfile,serviceurl:"http://"+cdata.server+":6060/"};
}
- return {dbfile:"invoicejournal",serviceurl:"http://localhost:6060/"};
+ return ret;
},
- getdatasets(){
- var ds = usersystem.getLocalDataSets();
- for (var i in ds){
- $("#globaldatasets").append('<option value="'+ds[i].key+'">'+ds[i].name+'</option>');
+ getdatasets: function(gdata){
+ //var ds = usersystem.getLocalDataSets();
+ //console.log("Datasets");
+ //console.log(gdata.length);
+
+ for (var i in gdata){
+ console.log("TEST:" + i);
+ var prop = usersystem.getPreference(gdata[i],browserapp.addglobaldataset);
+
+ }
+
+ },
+ addglobaldataset: function(key,gdataset){
+ $("#globaldatasets").append('<option value="'+key+'">'+gdataset.name+'</option>');
+ },
+ loaddataset: function(){
+ if ($("globaldatasets").val() == ""){
+ this.config = null;
+ }else {
+ var ldata = usersystem.getPreference($("globaldatasets").val());
+ console.log("New Loaded DataSet:");
+ console.log(ldata);
+ this.config={dbfile:ldata.dbfile,serviceurl:"http://"+ldata.server+":6060/"};
}
+
}
}
\ No newline at end of file
</div>
</div>
</nav>
- <div class="cotainer-fluid" style="margin-top: 52px; padding: 10px;">
- <div class="row justify-content-center">
+ <div class="cotainer-fluid" style="margin-top: 52px;">
+ <ul class="nav nav-tabs" id="pagetab" role="tablist">
+ <li class="nav-item"><a aria-controls="global" aria-selected="true" class="nav-link active" data-toggle="tab" href="#global" id="global-tab" role="tab">Global</a></li>
+ <li class="nav-item"><a aria-controls="templates" aria-selected="false" class="nav-link" data-toggle="tab" href="#templates" id="templates-tab" role="tab">Vorlagen</a></li>
+ </ul>
+ <div class="tab-content" id="tabpagecontent">
+ <div aria-labelledby="global-tab" class="tab-pane fade show active" id="global" role="tabpanel">
+ <div class="row">
<div class="col-md-12">
- <div class="form-group row col-md-4">
- <label for="name" class="col-sm-2">Name</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="name" name="name"/>
- </div>
+ <div class="card">
+ <div class="card-body">
+ <div class="form-group">
+ <label for="name" >Name</label>
+ <input type="text" class="form-control" id="name" name="name"/>
</div>
</div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
<div class="col-md-4">
<div class="card">
- <div class="card-header">
- Verbindung
- </div>
+ <div class="card-header"> Verbindung </div>
<div class="card-body">
- <div class="form-group row">
- <label for="type" class="col-sm-3">Verbindungs-Typ</label>
- <div class="col-sm-3">
- <select id="type" name="type" class="form-control">
- <option value="local">Lokal</option>
- <option value="local">LAN</option>
- <option value="Cloud">Cloud</option>
- </select>
- </div>
+ <div class="form-group">
+ <label for="type">Verbindungs-Typ</label>
+ <select id="type" name="type" class="form-control">
+ <option value="local">Lokal</option>
+ <option value="local">LAN</option>
+ <option value="Cloud">Cloud</option>
+ </select>
</div>
- <div class="form-group row">
- <label for="serer" class="col-sm-3">Server</label>
- <div class="col-sm-8">
- <input type="text" class="form-control" id="server" name="server"/>
- </div>
+ <div class="form-group">
+ <label for="server">Server</label>
+ <input type="text" class="form-control" id="server" name="server"/>
</div>
- <div class="form-group row">
- <label for="dbfile" class="col-sm-3">Datenbank</label>
- <div class="col-sm-8">
- <input type="text" class="form-control" id="dbfile" name="dbfile"/>
- </div>
+ <div class="form-group">
+ <label for="dbfile">Datenbank</label>
+ <input type="text" class="form-control" id="dbfile" name="dbfile"/>
+ </div>
+ <div class="form-group">
+ <label for="type">VPN</label>
+ <select id="vpn" name="vpn" class="form-control">
+ <option value=""></option>
+ </select>
</div>
- <div class="form-group row">
- <label for="type" class="col-sm-3">VPN</label>
- <div class="col-sm-8">
- <select id="vpn" name="vpn" class="form-control">
- <option value=""></option>
- <option value="vpn1">VPN 1</option>
- </select>
- </div>
- </div>
</div>
</div>
</div>
Standard Werte
</div>
<div class="card-body">
- <div class="form-group row">
- <label for="dbname" class="col-sm-2">Mehrwert-Steuer(%)</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="vat" name="vat"/>
- </div>
- </div>
- <div class="form-group row">
- <label for="dbname" class="col-sm-2">Währung (Symbol)</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="currency" name="currency"/>
- </div>
- </div>
-
+ <div class="form-group">
+ <label for="dbname">Mehrwert-Steuer(%)</label>
+ <input type="text" class="form-control" id="vat" name="vat"/>
+ </div>
+ <div class="form-group">
+ <label for="dbname">Währung (Symbol)</label>
+ <input type="text" class="form-control" id="currency" name="currency"/>
+ </div>
</div>
</div>
</div>
E-Mail Server
</div>
<div class="card-body">
- <div class="form-group row">
- <label for="mailserver" class="col-sm-2">Email-Server</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="mailserver" name="mailserver"/>
- </div>
- </div>
- <div class="form-group row">
- <label for="mailport" class="col-sm-2">Port</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="mailport" name="mailport"/>
- </div>
- </div>
- <div class="form-group row">
- <label for="mailencryption" class="col-sm-2">Verschlüsselung</label>
- <div class="col-sm-4">
- <select id="mailencryption" name="mailencryption" class="form-control">
- <option value="">None</option>
- <option value="TLS">TLS</option>
- <option value="SSL">SSL</option>
- </select>
- </div>
- </div>
- <div class="form-group row">
- <label for="maillogin" class="col-sm-2">Login</label>
- <div class="col-sm-10">
- <input type="text" class="form-control" id="maillogin" name="maillogin"/>
- </div>
- </div>
- <div class="form-group row">
- <label for="mailpassword" class="col-sm-2">Passwort</label>
- <div class="col-sm-10">
- <input type="password" class="form-control" id="mailpassword" name="mailpassword"/>
- </div>
- </div>
+ <div class="form-group">
+ <label for="mailserver">Email-Server</label>
+ <input type="text" class="form-control" id="mailserver" name="mailserver"/>
+ </div>
+ <div class="form-group">
+ <label for="mailport">Verschlüsselung/Port</label>
+ <div class="input-group">
+ <select id="mailencryption" name="mailencryption" class="form-control">
+ <option value="">None</option>
+ <option value="TLS">TLS</option>
+ <option value="SSL">SSL</option>
+ </select>
+ <input type="text" class="form-control" id="mailport" name="mailport"/>
+ </div>
+ </div>
+ <div class="form-group">
+ <label for="maillogin">Login</label>
+ <input type="text" class="form-control" id="maillogin" name="maillogin"/>
+ </div>
+ <div class="form-group">
+ <label for="mailpassword">Passwort</label>
+ <input type="password" class="form-control" id="mailpassword" name="mailpassword"/>
+ </div>
</div>
</div>
</div>
- <div class="col-md-6">
- <div class="card">
- <div class="card-header" style="padding: 0px; padding-left: 20px;">
- <nav class="navbar navbar-expand-md navbar-dark">
- Druck-Vorlagen
+ </div>
+ </div>
+ <div aria-labelledby="templates-tab" class="tab-pane fade" id="templates" role="tabpanel">
+ <div class="row">
+ <div class="col-md-6" style="padding-right: 0px;">
+ <nav class="navbar navbar-expand-md navbar-dark bg-dark">
+ <h5 class="text-white">Druck-Vorlagen</h5>
<div class="ml-auto">
<div class="btn-group" role="group" aria-label="Basic example">
- <button class="btn btn-default" onclick="printtemplate.new();"><i class="fas fa-plus"></i><br/>Neu</button>
- <button class="btn btn-default" onclick="printtemplate.edit();"><i class="fas fa-edit"></i><br/>bearb.</button>
- <button class="btn btn-default" onclick="printtemplate.delete();" ><i class="fas fa-trash"></i><br/>Löschen</button>
- <button class="btn btn-default" onclick="printtemplate.duplicate();" ><i class="fas fa-copy"></i><br/>Copy</button>
+ <button class="btn btn-primary" onclick="printtemplate.new();"><i class="fas fa-plus"></i><br/>Neu</button>
+ <button class="btn btn-primary" onclick="printtemplate.edit();"><i class="fas fa-edit"></i><br/>bearb.</button>
+ <button class="btn btn-primary" onclick="printtemplate.delete();" ><i class="fas fa-trash"></i><br/>Löschen</button>
+ <button class="btn btn-primary" onclick="printtemplate.duplicate();" ><i class="fas fa-copy"></i><br/>Copy</button>
</div>
</div>
</nav>
- </div>
- <div class="card-body" style="padding: 0px;">
+
<table id="tbl_invoicetemplates" class="table table-bordered table-hover table-striped">
<thead class="thead-dark">
<tfoot></tfoot>
<tbody></tbody>
</table>
- </div>
- </div>
</div>
- <div class="col-md-6">
- <div class="card">
- <div class="card-header" style="padding: 0px; padding-left: 20px;">
- <nav class="navbar navbar-expand-md navbar-dark">
- Email-Vorlagen
+ <div class="col-md-6" style="padding-left: 0px;">
+ <nav class="navbar navbar-expand-md navbar-dark bg-dark">
+ <h5 class="text-white">Email-Vorlagen</h5>
<div class="ml-auto">
<div class="btn-group" role="group" aria-label="Basic example">
- <button class="btn btn-default" onclick="mailtemplate.new();"><i class="fas fa-plus"></i><br/>Neu</button>
- <button class="btn btn-default" onclick="mailtemplate.edit();"><i class="fas fa-edit"></i><br/>bearb.</button>
- <button class="btn btn-default" onclick="mailtemplate.delete();" ><i class="fas fa-trash"></i><br/>Löschen</button>
- <button class="btn btn-default" onclick="mailtemplate.duplicate();" ><i class="fas fa-copy"></i><br/>Copy</button>
+ <button class="btn btn-primary" onclick="mailtemplate.new();"><i class="fas fa-plus"></i><br/>Neu</button>
+ <button class="btn btn-primary" onclick="mailtemplate.edit();"><i class="fas fa-edit"></i><br/>bearb.</button>
+ <button class="btn btn-primary" onclick="mailtemplate.delete();" ><i class="fas fa-trash"></i><br/>Löschen</button>
+ <button class="btn btn-primary" onclick="mailtemplate.duplicate();" ><i class="fas fa-copy"></i><br/>Copy</button>
</div>
</div>
</nav>
- </div>
- <div class="card-body" style="padding: 0px;">
<table id="tbl_emailtemplates" class="table table-bordered table-hover table-striped">
<thead class="thead-dark">
<th data-checkbox="true"></th>
<tfoot></tfoot>
<tbody></tbody>
</table>
- </div>
- </div>
+
</div>
+ </div>
+ </div>
+ </div>
</div>
-
- </div>
+
<script>if (typeof module === 'object') {window.module = module; module = undefined;}</script>
<script src="../../node_modules/jquery/dist/jquery.min.js"></script>
<script src="../../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
showError: function(errtitle,errmsg){
dialog.showErrorBox(errtitle, errmsg);
},
- setPreference(key,data){
+ setPreference: function(key,data){
console.log("save preferences to: " + this.profilepath() + key + ".json");
if ((typeof data == 'object') || (typeof data == 'array')){
});
return false;
},
- getPreference(key){
+ getPreference: function(key,callback=null){
var data = null;
if (fs.existsSync(this.profilepath() + key + ".json")){
+ console.log("Read Key:" + key);
fs.readFile(this.profilepath() + key + ".json", 'utf-8', (err, data) => {
if(err){
//this.showError("Error reading Preference!",err.message);
console.log("Error reading Preference!" + err.message);
return data;
}
+ //console.log(data);
if (data.startsWith("{") || data.startsWith("[")){
data = JSON.parse(data);
}
+ if (callback){
+ callback(key,data);
+ }
+
// Change how to handle the file content
- console.log("The preference content is : " + data);
- return JSON.stringify(data);
+ //console.log("The preference content is : " );
+ //console.log(data);
+ return data;
});
}
return data;
},
- getLocalDataSets(){
+ getLocalDataSets: function(callback=null){
var datasets =[];
fs.readdir(this.profilepath(), function (err, files) {
//handling error
if (err) {
return console.log('Unable to scan directory: ' + err);
}
-
//listing all files using forEach
files.forEach(function (file) {
- console.log(file);
if (file.match('db\..*\.json')){
- var key = file.replace('.json','');
- var data = this.getPreference(file);
- if (data){
- datasets.push({"key":key,"name":data.name});
- }
+ console.log(file);
+ datasets.push(file.replace('.json',''));
}
-
-
});
- return datasets;
+ callback(datasets);
});
- return datasets;
},
- getsysinfo(){
+ getsysinfo: function(){
return {
"hostname": os.hostname(),
"userdir": os.homedir(),