From ffa0dac861db7548cfc34d5d2c5dab8bfd638e0b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vincze=20J=C3=B3zsef?= Date: Wed, 17 Jul 2024 11:30:56 +0200 Subject: [PATCH] =?UTF-8?q?=C3=81raj=C3=A1nlat=20elkezdve?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.js | 2 + deviceLog_2024_07_04.txt | 16 +++++ models/quotemodel.js | 33 +++++++++++ routes/quotes.js | 28 +++++++++ views/layout.pug | 6 +- views/quotes.pug | 123 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 205 insertions(+), 3 deletions(-) create mode 100644 deviceLog_2024_07_04.txt create mode 100644 models/quotemodel.js create mode 100644 routes/quotes.js create mode 100644 views/quotes.pug diff --git a/app.js b/app.js index 7bfbafb..0057f88 100644 --- a/app.js +++ b/app.js @@ -1867,6 +1867,7 @@ let components=require('./routes/components'); let components_base=require('./routes/components_base'); let bid=require('./routes/bid'); let vehicles=require('./routes/vehicles'); +let quotes=require('./routes/quotes'); const { date } = require('jszip/lib/defaults'); const { apiGetWorkList, apiGetEmployeeList, apiGetDailyReport, apiEmployee, apiGetAllReport, apiCheckDevice, apiRegisterDevice,apiRequestAPIkey, apiGetQRCode,apiGetWorkState } = require('./js/androidApi'); @@ -1890,6 +1891,7 @@ app.use('/certificates_tr',certificates_tr); app.use('/certificates_mc',certificates_mc); app.use('/components',components); app.use('/components_base',components_base); +app.use('/quotes',quotes); //apkUpdater.enable(app, '/anyUpdateServerRoute'); /* app.delete('/devices/:id',utils.ensureAuthenticated,function(req,res){ diff --git a/deviceLog_2024_07_04.txt b/deviceLog_2024_07_04.txt new file mode 100644 index 0000000..b249dbb --- /dev/null +++ b/deviceLog_2024_07_04.txt @@ -0,0 +1,16 @@ +{"LOG":{"timeStamp":"2024.07.04 05:07:72","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Czifra József","message":"TÁVOZÁS","city":"Debrecen,Füredi út 12","worktime":"05:59","datetime":"5:59"}}}, +{"LOG":{"timeStamp":"2024.07.04 05:07:14","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Czifra József","message":"ÉRKEZÉS","city":"Debrecen,Egyetem sugárút 27","worktime":"","datetime":"5:59"}}}, +{"LOG":{"timeStamp":"2024.07.04 05:07:10","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Szabó Attila","message":"ÉRKEZÉS","city":"Debrecen,Egyetem sugárút 27","worktime":"","datetime":"5:59"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:92","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Győri Mihály","message":"ÉRKEZÉS","city":"Szentpéterszeg,Köztársaság utca ","worktime":"","datetime":"6:30"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:61","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Nagy István","message":"ÉRKEZÉS","city":"Szentpéterszeg,Köztársaság utca ","worktime":"","datetime":"6:30"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:55","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Jakab Tamás","message":"ÉRKEZÉS","city":"Debrecen, Senyei-Oláh István utca, 1","worktime":"","datetime":"6:39"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:94","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Iván Imre","message":"ÉRKEZÉS","city":"Nyíregyháza, , ","worktime":"","datetime":"6:46"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:18","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Horváth Dávid","message":"ÉRKEZÉS","city":"Nyíregyháza, , ","worktime":"","datetime":"6:48"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:84","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Veres Miklós","message":"ÉRKEZÉS","city":"Nyíregyháza, , ","worktime":"","datetime":"6:48"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:89","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Budai Alex","message":"ÉRKEZÉS","city":"Nyíregyháza, , ","worktime":"","datetime":"6:48"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:34","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Fige István","message":"ÉRKEZÉS","city":"Nyíregyháza, , ","worktime":"","datetime":"6:48"}}}, +{"LOG":{"timeStamp":"2024.07.04 06:07:52","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Balogh Ferenc","message":"ÉRKEZÉS","city":"Szolnok,Piroskai út ","worktime":"","datetime":"6:50"}}}, +{"LOG":{"timeStamp":"2024.07.04 07:07:44","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Dobos Attila","message":"ÉRKEZÉS","city":"Berettyóújfalu, Honvéd utca, 13","worktime":"","datetime":"7:09"}}}, +{"LOG":{"timeStamp":"2024.07.04 07:07:22","logName":"ACCESS","logMessage":{"status":200,"data":"VALID CODE","employeeName":"Vincze József","message":"ÉRKEZÉS","city":"Szentpéterszeg, József Attila utca, 9","worktime":"","datetime":"7:22"}}}, +{"LOG":{"timeStamp":"2024.07.04 09:07:20","logName":"INVALID DEVICE","logMessage":{"cmd":"ACCESS","mode":"GETAWAY","rfid":"A0BE50FD","CID1":"8944477500005305853F","CID2":"862261047473462","loc":"Ismeretlen","LAT":":","LON":":"}}}, +{"LOG":{"timeStamp":"2024.07.04 09:07:98","logName":"INVALID DEVICE","logMessage":{"cmd":"ACCESS","mode":"GETAWAY","rfid":"A0BE50FD","CID1":"8944477500005305853F","CID2":"862261047473462","loc":"Ismeretlen","LAT":":","LON":":"}}}, diff --git a/models/quotemodel.js b/models/quotemodel.js new file mode 100644 index 0000000..b55153b --- /dev/null +++ b/models/quotemodel.js @@ -0,0 +1,33 @@ +let mongoose = require('mongoose'); + +// Quote Schema +let quoteSchema = mongoose.Schema({ +// Megnevezés + title:{ + type: String, + require: true + }, + date:{ + type: Date, + require: true + }, + // Létrehozó + author:{ + type: String, + require: true + }, + customer:{ + type:String, + require: true + }, + // Megjegyzés + body:{ + type: String, + require: true + }, + filePath:{ + type: String, + require: true + }, +}); +var Quote = module.exports = mongoose.model('Quote', quoteSchema); \ No newline at end of file diff --git a/routes/quotes.js b/routes/quotes.js new file mode 100644 index 0000000..1a0a3c0 --- /dev/null +++ b/routes/quotes.js @@ -0,0 +1,28 @@ +const express = require('express'); +const router = express.Router(); +var utils = require('../js/utils'); +var fse = require('fs-extra'); +var Promise = require('bluebird'); +// Bring in article module +let Quote = require('../models/quotemodel'); + +// Quotes Route +router.get('/', utils.ensureAuthenticated, function(req, res) { + + Quote.find({},null,{sort: {date: -1}} ,function(err, quotes){ + if (err) + { + console.log(err); + } + else { + + res.render('quotes', { + title: 'Árajánlatok', + quotes: quotes, + rot: req.user.isAdmin, + }); + } //else + }); + }); + + module.exports = router; \ No newline at end of file diff --git a/views/layout.pug b/views/layout.pug index 8ff54d0..b5822fc 100644 --- a/views/layout.pug +++ b/views/layout.pug @@ -21,7 +21,7 @@ html nav.navbar.navbar-inverse if (user) p.navbar-text Bejelentkezve mint #{user.name} - .container + //-.container .navbar-header button.navbar-toggle.collapsed(type='button', data-toggle='collapse', data-target='#navbar', aria-expanded='false', aria-controls='navbar') span.sr-only Toggle navigation @@ -36,8 +36,8 @@ html if user li.active a(href='/') Munkák - -//li - -//a(href='/gantt') GANTT + li + a(href='/quotes') Árajánlatok li a(href='/devices') Berendezések -//li diff --git a/views/quotes.pug b/views/quotes.pug new file mode 100644 index 0000000..18c2d2d --- /dev/null +++ b/views/quotes.pug @@ -0,0 +1,123 @@ +extends layout + +block content + .mainContainer + link(rel='stylesheet' href='/bower_components/bootstrap/dist/css/bootstrap.css') + link(rel='stylesheet' href='/bower_components/bootstrap-select/dist/css/bootstrap-select.css') + link(rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css') + link(rel='stylesheet', type='text/css', href='https://unpkg.com/lightpick@latest/css/lightpick.css') + style. + .badge-success { + background-color: #468847; + } + .badge-success:hover { + background-color: #356635; + } + .padFix{ + padding-top:8px; + } + .table-wrapper { + max-height: 600px; + overflow: auto; + display:inline-block; + } + + body + br + .panel.panel-primary + .panel-heading + .row + .col-sm-1 + h3.panel-title.padfix #{title} + //-span.badge #{quotes.length} + .col-sm-3 + button.btn.btn-success(type='text' id='newQuote' ) Új árajánlat + i.glyphicon.glyphicon-upload + .col-sm-6 + .input-group + input.form-control(type='text' id='findWork' value='' placeholder="Keresés...") + .input-group-btn + button.btn.btn-success + i.glyphicon.glyphicon-search + + .panel-body + h2#results + .col-12.col-xs-12.col-sm-12.col-lg-12 + .table-responsive.table-wrapper + table.table.table-striped + col(width='1%') + col(width='1%') + col(width='auto') + col(width='15%') + col(width='5%') + thead + tr + th # + th(style='text-align:left') Megrendelő + th Megnevezés + th(style='text-align:center') Létrehozva + th(style='text-align:center') Készítő + tbody(id='quoteTable',style='overflow-y: auto;') + each quote, i in quotes + tr + td #{i+1} + td(style='text-align:left; vertical-align:middle;font-size: 9px;font-weight: bold;') #{quote.customer || "-"} + td(style='vertical-align:middle') + a(href="/quote/"+quote._id)= quote.title + td(style='text-align:center;vertical-align:middle') #{quote.date} + td(style='text-align:left;vertical-align:middle') #{quote.author} + script(src='/bower_components/jquery/dist/jquery.js') + script(type='text/javascript',src='/build/pdfmake.js') + script(type='text/javascript',src='/build/vfs_fonts.js') + script(type='text/javascript', src='/bower_components/moment/min/moment.min.js') + script(type='text/javascript', src='/bower_components/bootstrap-select/dist/js/bootstrap-select.min.js') + script(src='https://unpkg.com/lightpick@latest/lightpick.js') + script. + (() => { + 'use strict' + + // Fetch all the forms we want to apply custom Bootstrap validation styles to + const forms = document.querySelectorAll('.needs-validation') + + // Loop over them and prevent submission + Array.from(forms).forEach(form => { + form.addEventListener('submit', event => { + if (!form.checkValidity()) { + event.preventDefault() + event.stopPropagation() + } + + form.classList.add('was-validated') + }, false) + }) + })() + + var showErrorSuccess = function(element, status, message) { + if (status === false) { + element.next().removeClass('hidden')//.parent().addClass('has-error'); + element.parent().addClass('has-error'); + element.parent().next().text(message) + return false; + } + element.next().addClass('hidden')//.parent().removeClass('has-error').addClass('has-success'); + element.parent().removeClass('has-error'); + }; + + $(function(){ + $("[data-toggle='tooltip']").tooltip(); + $("#findWork").on("keyup", function() { + var yr=$("#dpd").val(); + var cond=$(this).val(); + var parameters = { year: yr, condition: cond }; + console.log(parameters); + $.get( '/filter',parameters, function(data) { + + var wTable=document.getElementById("workTable"); + wTable.innerHTML=data; + + + }); + }); + + + }); \ No newline at end of file