· 8 years ago · Apr 12, 2018, 03:36 PM
1const $e = (elName, cl, parEl) => {
2 var e = document.createElement (elName);
3 if (cl) e.classList.add (cl);
4 if (parEl) parEl.appendChild (e);
5 return e;
6}
7
8var socket = io.connect();
9
10
11var Zoznamy = [];
12
13socket.on('refreshUserList', db => {
14 Zoznamy.forEach (x => x.refreshUserList(db));
15});
16
17
18
19class Zoznam {
20
21 constructor (x, y, w=300, h=300) {
22 var el, ro = this.root = $e('div','Main');
23 ro.style.left = x+'px';
24 ro.style.top = y+'px';
25 ro.style.width = w+'px';
26 ro.style.height = h+'px';
27
28 $e('div','Headline',ro).innerHTML = 'Zoznam úÄastnÃkov';
29
30 this.userList = $e('div','List',ro);
31
32 el = $e('button','Button',ro);
33 el.innerHTML = 'Registruj sa';
34 el.addEventListener ('mousedown', e => {
35 this.root.querySelector('.Formular').classList.toggle('Formular2')
36 });
37
38 el = $e('div','Formular', ro);
39 this.input1 = $e('input', null, el);
40 this.input2 = $e('input', null, el);
41 el = $e('button',null,el);
42 el.innerHTML = 'Posli';
43 el.addEventListener ('mousedown', e => {
44 this.root.querySelector('.Formular').classList.toggle('Formular2');
45 this.posliData ();
46 this.input1.value = this.input2.value = '';
47 });
48 document.body.appendChild (ro);
49
50 // -------------
51
52 Zoznamy.push (this);
53
54 socket.emit ('getUserList', db => this.refreshUserList (db));
55 }
56
57
58 posliData () {
59 socket.emit ('insUser', {'name':this.input1.value, 'surname':this.input2.value});
60 }
61
62
63 refreshUserList (db) {
64 this.userList.innerHTML = '';
65 db.forEach (r => {
66 var e = $e('div','Row', this.userList);
67 e.innerHTML = r.name+' '+r.surname;
68 var delbut = $e('button', null, e);
69 delbut.innerHTML = "[x]";
70 delbut.addEventListener('mousedown', () => {
71 socket.emit('delUser', r.id);
72 });
73 });
74 }
75
76}
77
78
79
80
81document.addEventListener ('DOMContentLoaded', () => {
82 new Zoznam (20,50);
83 new Zoznam (450,150);
84});
85
86
87
88
89================================
90
91var express = require('express');
92var app = express ();
93var server = require('http').createServer (app);
94var io = require('socket.io').listen(server);
95var util = require('util');
96var mysql = require('mysql');
97
98
99var mysql = require ('mysql');
100var connection = mysql.createConnection ({
101 host : 'cpr.ii.fmph.uniba.sk',
102 user : 'wa2',
103 password : 'Z9dW85jLKJbSw7an',
104 database : 'wa2'
105});
106
107connection.connect();
108connection.queryAsync = util.promisify(connection.query);
109app.use('/', express.static('.'));
110
111server.listen (9000, () => {
112 console.log ('Listen on port 9000');
113});
114
115
116
117var createQuery = `CREATE TABLE IF NOT EXISTS \`Participants_rychtarik4\` (
118\`id\` int(10) unsigned NOT NULL AUTO_INCREMENT,
119 \`name\` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
120 \`surname\` varchar(50) COLLATE utf8mb4_general_ci NOT NULL,
121 \`phone\` varchar(20) COLLATE utf8mb4_general_ci NOT NULL,
122 \`address\` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
123 PRIMARY KEY (\`id\`)
124) ENGINE=InnoDB ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;`
125
126connection.query (createQuery,(err,rows)=> {
127 if (err) throw err;
128
129 });
130io.on ('connect', (socket) => {
131 console.log ('Nový klient pripojený.');
132
133 socket.on ('disconnect', msg => {
134 console.log ('Klient odpojený.', msg);
135 });
136 socket.on ('error', error => {
137 console.log ('Chyba spojenia.', error.message);
138 });
139
140
141
142 socket.on ('insUser', zs => {
143 var d = ['name','surname'];
144 for (let k in zs) if (d.indexOf(k) < 0) delete zs[k];
145
146
147 (async () => {
148 var sql = "INSERT INTO Participants_rychtarik4 (name, surname, phone, address) VALUES (?, ?, ?, ?)";
149 sql = mysql.format(sql, [zs.name, zs.surname, '0123456789', 'JankoHrasko']);
150 res = await connection.queryAsync(sql);
151 console.log(res.affectedRows);
152 var selectAll = "SELECT * FROM Participants_rychtarik4";
153 res = await connection.queryAsync(selectAll);
154 io.emit ('refreshUserList', res);
155
156 })();
157
158
159 });
160
161 socket.on ('getUserList', ackFunc => {
162 var selectAll = "SELECT * FROM Participants_rychtarik4";
163 (async () => {
164 res = await connection.queryAsync(selectAll);
165 ackFunc(res);
166 })();
167 });
168 socket.on('delUser', id => {
169 (async () => {
170 var sql = "DELETE FROM Participants_rychtarik4 WHERE id = ?";
171 sql = mysql.format(sql, [id]);
172 res = await connection.queryAsync(sql);
173 var selectAll = "SELECT * FROM Participants_rychtarik4";
174 res = await connection.queryAsync(selectAll);
175 io.emit('refreshUserList', res);
176 console.log("tu");
177 })();
178 });
179
180});