Untitled
unknown
plain_text
4 years ago
14 kB
11
Indexable
//kargolist.js
//const { Button } = require('bootstrap');
function initialize() {
var mapOptions, map, marker, searchBox,
infoWindow = '',
addressEl = document.querySelector( '#map-search' ),
latEl = document.querySelector( '#latitude' ),
longEl = document.querySelector( '#longitude' ),
element = document.getElementById( 'map' );
mapOptions = {
// How far the maps zooms in.
zoom: 15,
center: new google.maps.LatLng( 40.765470, 29.940592 ),
// Current Lat and Long position of the pin/
// center : {
// lat: -34.397,
// lng: 150.644
// },
disableDefaultUI: false, // Disables the controls like zoom control on the map if set to true
scrollWheel: true, // If set to false disables the scrolling on the map.
draggable: true, // If set to false , you cannot move the map around.
// mapTypeId: google.maps.MapTypeId.HYBRID, // If set to HYBRID its between sat and ROADMAP, Can be set to SATELLITE as well.
// maxZoom: 11, // Wont allow you to zoom more than this
// minZoom: 9 // Wont allow you to go more up.
};
/**
* Creates the map using google function google.maps.Map() by passing the id of canvas and
* mapOptions object that we just created above as its parameters.
*
*/
// Create an object map with the constructor function Map()
map = new google.maps.Map( element, mapOptions ); // Till this like of code it loads up the map.
/**
* Creates the marker on the map
*
*/
marker = new google.maps.Marker({
position: mapOptions.center,
map: map,
// icon: 'http://pngimages.net/sites/default/files/google-maps-png-image-70164.png',
draggable: true
});
/**
* Creates a search box
*/
searchBox = new google.maps.places.SearchBox( addressEl );
/**
* When the place is changed on search box, it takes the marker to the searched location.
*/
google.maps.event.addListener( searchBox, 'places_changed', function () {
var places = searchBox.getPlaces(),
bounds = new google.maps.LatLngBounds(),
i, place, lat, long, resultArray,
addresss = places[0].formatted_address;
for( i = 0; place = places[i]; i++ ) {
bounds.extend( place.geometry.location );
marker.setPosition( place.geometry.location ); // Set marker position new.
}
map.fitBounds( bounds ); // Fit to the bound
map.setZoom( 15 ); // This function sets the zoom to 15, meaning zooms to level 15.
// console.log( map.getZoom() );
lat = marker.getPosition().lat();
long = marker.getPosition().lng();
latEl.value = lat;
longEl.value = long;
resultArray = places[0].address_components;
// Get the city and set the city input value to the one selected
// Closes the previous info window if it already exists
if ( infoWindow ) {
infoWindow.close();
}
/**
* Creates the info Window at the top of the marker
*/
infoWindow = new google.maps.InfoWindow({
content: addresss
});
infoWindow.open( map, marker );
} );
/**
* Finds the new position of the marker when the marker is dragged.
*/
google.maps.event.addListener( marker, "dragend", function ( event ) {
var lat, long, address, resultArray;
console.log( 'i am dragged' );
lat = marker.getPosition().lat();
long = marker.getPosition().lng();
var geocoder = new google.maps.Geocoder();
geocoder.geocode( { latLng: marker.getPosition() }, function ( result, status ) {
if ( 'OK' === status ) { // This line can also be written like if ( status == google.maps.GeocoderStatus.OK ) {
address = result[0].formatted_address;
resultArray = result[0].address_components;
// Get the city and set the city input value to the one selected
addressEl.value = address;
latEl.value = lat;
longEl.value = long;
} else {
console.log( 'Geocode was not successful for the following reason: ' + status );
}
// Closes the previous info window if it already exists
if ( infoWindow ) {
infoWindow.close();
}
/**
* Creates the info Window at the top of the marker
*/
infoWindow = new google.maps.InfoWindow({
content: address
});
infoWindow.open( map, marker );
} );
})
}
const taskForm = document.querySelector("#taskForm");
const c = document.querySelector("#client");
const adres = document.querySelector('#map-search');
const Liste = document.querySelector("#Liste");
const lat = document.querySelector( '#latitude' );
const lng = document.querySelector( '#longitude' );
const {ipcRenderer} = require('electron')
let lists = [];
ipcRenderer.invoke('get-list').then(()=> console.log('')).catch((err)=> console.error('Error'));
ipcRenderer.on("send-list", (e, args) => {
const receivedLists= JSON.parse(args);
lists= receivedLists;
renderList(lists);
});
ipcRenderer.invoke('cl').then(()=> console.log('cl')).catch((err)=> console.error('Error'));
ipcRenderer.on("get-tasks", (e, args) => {
const tasks = JSON.parse(args);
for(var i = 0; i < tasks.length; i++) {
var opt = tasks[i];
var el = document.createElement("option");
el.textContent = opt;
el.value = opt;
c.appendChild(el);
}});
function deleteK(id) {
ipcRenderer.invoke('delete-kargo',id).then(()=> console.log('cl')).catch((err)=> console.error('Error'));
return;
}
let idToUpdate = "";
let updateStatus = false;
function edit(id) {
updateStatus = true;
idToUpdate =id;
const k = lists.find(k => k._id === id);
c.value = k.clientName;
adres.value =k.address;
lat.value= k.lat;
lng.value=k.lng;
adres.focus()
}
function renderList(lists) {
Liste.innerHTML = "";
console.log(lists);
lists.map(t => {
Liste.innerHTML += `
<li class="card">
<style display:inline-block>
table, th, td {
border:1px solid black;
border-collapse: collapse;
}
</style>
<div>
<table style="width:70%">
<tr>
<th>KargoId</th>
<th>MüşteriAdı</th>
<th>Adres</th>
</tr>
<tr>
<td>${t._id}</td>
<td>${t.clientName}</td>
<td>${t.address}</td>
<td> <button onclick="edit('${t._id}')" /> ✎ Edit</td>
<td> <button onclick="deleteK('${t._id}')" /> 🗑 Delete</td>
</tr>
</table> </div>
</li>
`;
});
}
taskForm.reset()
taskForm.addEventListener("submit", async e => {
e.preventDefault();
const list = {
clientName: c.value,
address: adres.value,
lat: lat.value,
lng: lng.value
};
if (!updateStatus) {
ipcRenderer.invoke('new-kargo', list).then(()=> console.log('new kargo')).catch((err)=> console.error('Error'));
} else {
ipcRenderer.invoke("update-kargo", { ...list, idToUpdate }).then(()=> console.log('update kargo')).catch((err)=> console.error('Error'));;
}
taskForm.reset()
renderList(lists);
});
renderList(lists)
ipcRenderer.on("new-kargo-created", (e, arg) => {
console.log(arg);
const taskSaved = JSON.parse(arg);
lists.push(taskSaved);
renderList(lists);
});
ipcRenderer.on("update-kargo-success", (e, args) => {
updateStatus = false;
const updatedkargo = JSON.parse(args);
lists = lists.map((t, i) => {
if (t._id === updatedkargo._id) {
t.clientName = updatedkargo.clientName;
t.address = updatedkargo.address;
t.lat= updatedkargo.lat;
t.lng=updatedkargo.lng;
}
return t;
});
renderList(lists);
});
ipcRenderer.on("delete-kargo-success", (e, args) => {
const deletedKargo = JSON.parse(args);
const newLists = lists.filter(t => {
return t._id !== deletedKargo._id;
});
lists = newLists;
renderList(lists);
taskForm.reset()
console.log("dd")
});
//main.js
/*const electron = require("electron");
const url = require("url");
const path = require("path");*/
const {app,BrowserWindow,ipcMain,dialog} = require('electron');
const user = require('./models/user.js')
const kargo = require('./models/list.js')
const client = require('./models/client.js');
function createWindow(){
const win= new BrowserWindow({
width:800,
height :700,
webPreferences :{
nodeIntegration: true,
contextIsolation:false,
traceProcessWarnings:true
},
})
win.loadFile('src/index.html')
}
function createWindow_1(){
const mainWindow = new BrowserWindow({width:1400,height:1050,
});
mainWindow.loadFile('src/main.html' );}
function createWindow_2(){
const mainWindow = new BrowserWindow({width:800,height:750,
webPreferences :{
nodeIntegration: true,
contextIsolation:false,
traceProcessWarnings:true
},
});
mainWindow.loadFile('src/kargolist.html' );}
function createWindow_3(){
const mainWindow = new BrowserWindow({width:1400,height:1050,
webPreferences :{
nodeIntegration: true,
contextIsolation:false,
traceProcessWarnings:true
},
});
mainWindow.loadFile('src/client.html' );}
function createWindow_4(){
const mainWindow = new BrowserWindow({width:800,height:750,
webPreferences :{
nodeIntegration: true,
contextIsolation:false,
traceProcessWarnings:true
},
});
mainWindow.loadFile('src/map.html' );}
ipcMain.handle('new', async (e, arg) => {
const s = JSON.stringify(arg)
const f=JSON.parse(s)
const newUser = new user(arg)
const t = await user.find({email:f.email}).exec();
const n = await user.find({name:f.name}).exec();
if ( t.length !== 0) {
dialog.showErrorBox('used-email','This email is used!')
}
else if( n.length !== 0){
dialog.showErrorBox('This username is unavailable','Please choose another username!')
}
else{
const newUser = new user(arg)
const userSaved = await newUser.save()
console.log(userSaved)
e.sender.send('new-user-created',JSON.stringify(userSaved))
dialog.showErrorBox('new-user','New User Created')
}
})
ipcMain.handle('not-new', async (e, arg) => {
dialog.showErrorBox('Passwords do not match!','')
})
ipcMain.handle('get-users', async (e, arg) => {
const s = JSON.stringify(arg)
const f=JSON.parse(s)
const n = await user.find({name:f.name}).exec();
const p = await user.find({pass:f.pass}).exec();
if ( (!n || n.length === 0)||(!p || p.length === 0)) {
dialog.showErrorBox('Username or Password is incorrect!','')
}
else {
const tasks = await user.find(arg).exec();
e.sender.send('enter',(createWindow_2(),createWindow_4()))
}
});
ipcMain.handle('update-user', async (e, arg) => {
const s = JSON.stringify(arg)
const f=JSON.parse(s)
const t = await user.find({email:f.email}).exec();
const n = await user.find({name:f.name}).exec();
const p = await user.find({pass:f.pass}).exec();
if ( !t || t.length === 0) {
dialog.showErrorBox('This Email Is Not Registered!','')
}
else if( !n || n.length === 0){
dialog.showErrorBox('Username is not correct!','')
}
else if( !p || p.length === 0){
dialog.showErrorBox('Password is not correct!','')
}else{
console.log(f.newpass)
const updatedTask = await user.updateOne({ name:f.name},{pass:f.newpass})
dialog.showErrorBox('Password has been changed successfully!','')}
// e.sender.send("update-task-success", JSON.stringify(updatedTask));
});
ipcMain.handle('new-kargo', async (e, arg) => {
const s = JSON.stringify(arg)
const f=JSON.parse(s)
const newKargo = new kargo(arg)
const t = await kargo.find({clientName:f.clientName}).exec();
const kargoSaved = await newKargo.save()
console.log(kargoSaved)
e.sender.send('new-kargo-created',JSON.stringify(kargoSaved))
})
ipcMain.handle('cl', async (e, arg) => {
const tasks = await client.find({}).distinct('clientName');
e.sender.send("get-tasks", JSON.stringify(tasks));
});
ipcMain.handle('get-list', async (e, arg) => {
const tasks = await kargo.find();
e.sender.send('send-list', JSON.stringify(tasks));
});
ipcMain.handle("update-kargo", async (e, args) => {
console.log(args);
const updatedKargo = await kargo.findByIdAndUpdate(
args.idToUpdate,
{ clientName: args.clientName, address: args.address,lat:args.lat, lng:args.lng }
).exec();
console.log(updatedKargo);
e.sender.send("update-kargo-success", JSON.stringify(updatedKargo));
});
ipcMain.handle('delete-kargo', async (e, args) => {
const kargoDeleted = await kargo.findByIdAndDelete(args);
let options = {
buttons: ["Yes","No","Cancel"],
message: "Do you really want to delete this record?"
}
dialog.showMessageBox(options).then(data=> {
if (data.response === 0) {
console.log(data.response)
e.sender.send("delete-kargo-success", JSON.stringify(kargoDeleted));
} }).catch(err => {
console.log(err)
});
});
ipcMain.handle('new-client', async (e, arg) => {
const s = JSON.stringify(arg)
const f=JSON.parse(s)
const newClient = new client(arg)
const t = await client.find({clientName:f.clientName}).exec();
if ( t.length !== 0) {
dialog.showErrorBox('','This client is already registered!')
}
else{
const clientSaved = await newClient.save()
e.sender.send('new-client-created',JSON.stringify(clientSaved))
dialog.showErrorBox('new-client','New Client Entry')
} })
ipcMain.handle('get-latlongs', async (e, arg) => {
const tasks= await kargo.find().select('-_id lat lng ').exec()
var number=""
var z=[]
for(var i=0;i<tasks.length;i++){
number =i+1;
z.push({lat:tasks[i].lat,lng:tasks[i].lng,number:number})
}
e.sender.send('send-latlongs',JSON.stringify(z));
});
module.exports= { createWindow_1,createWindow,createWindow_2, createWindow_3,createWindow_4}
app.whenReady().then(createWindow)
Editor is loading...