mysqlsyncr 1.0.10 → 1.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/apply.js +13 -2
- package/src/socketServer.js +8 -4
- package/ui/dist/spa/assets/{MainLayout-C00doqXz.js → MainLayout-BrvvhLBC.js} +1 -1
- package/ui/dist/spa/assets/{axios-o6kWhtT9.js → axios-CbBgW735.js} +1 -1
- package/ui/dist/spa/assets/{index-DnieoNNh.js → index-Bgaq8Ay7.js} +10 -10
- package/ui/dist/spa/assets/{index-DME6fUxJ.css → index-DbZFTc3Z.css} +1 -1
- package/ui/dist/spa/index.html +2 -2
- package/ui/src/pages/MainComponent.vue +96 -33
package/ui/dist/spa/index.html
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><title>MySQLsyncr</title><meta charset=utf-8><meta name=description content="A simple ui for the sync features in mysqlsyncr"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><link rel=icon type=image/png sizes=128x128 href=/icons/favicon-128x128.png><link rel=icon type=image/png sizes=96x96 href=/icons/favicon-96x96.png><link rel=icon type=image/png sizes=32x32 href=/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/icons/favicon-16x16.png><link rel=icon type=image/ico href=/favicon.ico> <script type="module" crossorigin src="/assets/index-
|
|
2
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
1
|
+
<!DOCTYPE html><html><head><title>MySQLsyncr</title><meta charset=utf-8><meta name=description content="A simple ui for the sync features in mysqlsyncr"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width"><link rel=icon type=image/png sizes=128x128 href=/icons/favicon-128x128.png><link rel=icon type=image/png sizes=96x96 href=/icons/favicon-96x96.png><link rel=icon type=image/png sizes=32x32 href=/icons/favicon-32x32.png><link rel=icon type=image/png sizes=16x16 href=/icons/favicon-16x16.png><link rel=icon type=image/ico href=/favicon.ico> <script type="module" crossorigin src="/assets/index-Bgaq8Ay7.js"></script>
|
|
2
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DbZFTc3Z.css">
|
|
3
3
|
</head><body><div id=q-app></div></body></html>
|
|
@@ -1,41 +1,66 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<q-page>
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
<
|
|
6
|
-
@click="
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
2
|
+
<q-page class="q-pa-md">
|
|
3
|
+
<!-- Top Action Bar -->
|
|
4
|
+
<div class="row q-col-gutter-md q-mb-lg">
|
|
5
|
+
<div class="col-auto">
|
|
6
|
+
<q-btn @click="openSettings" icon="settings" label="Settings" color="primary" />
|
|
7
|
+
</div>
|
|
8
|
+
<div class="col-auto">
|
|
9
|
+
<q-btn
|
|
10
|
+
@click="
|
|
11
|
+
Object.keys(existingDatabases).length === 0
|
|
12
|
+
? createNewDump()
|
|
13
|
+
: createNewDump(true)
|
|
14
|
+
"
|
|
15
|
+
:icon="Object.keys(existingDatabases).length === 0 ? 'download' : 'refresh'"
|
|
16
|
+
:label="
|
|
17
|
+
Object.keys(existingDatabases).length === 0 ? 'Get New Dump' : 'Refresh Dump'
|
|
18
|
+
"
|
|
19
|
+
color="secondary"
|
|
20
|
+
/>
|
|
21
|
+
</div>
|
|
16
22
|
</div>
|
|
17
23
|
|
|
18
|
-
|
|
24
|
+
<!-- Database Not Set Up Warning -->
|
|
25
|
+
<q-card v-if="!isDbSetup" class="q-mb-lg bg-warning text-white">
|
|
19
26
|
<q-card-section>
|
|
20
|
-
<div class="text-h6">
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
<div class="text-h6">
|
|
28
|
+
<q-icon name="warning" class="q-mr-sm" />
|
|
29
|
+
Database Not Set Up
|
|
30
|
+
</div>
|
|
31
|
+
<div class="q-mt-sm">Please configure your database settings to get started.</div>
|
|
32
|
+
<q-btn
|
|
33
|
+
@click="openSettings"
|
|
34
|
+
label="Open Settings"
|
|
35
|
+
color="white"
|
|
36
|
+
text-color="warning"
|
|
37
|
+
class="q-mt-sm"
|
|
38
|
+
unelevated
|
|
39
|
+
/>
|
|
23
40
|
</q-card-section>
|
|
24
41
|
</q-card>
|
|
25
42
|
|
|
26
|
-
|
|
43
|
+
<!-- Database Structure Card -->
|
|
44
|
+
<q-card v-if="Object.keys(existingDatabases).length > 0" class="q-mb-lg">
|
|
45
|
+
<q-card-section class="bg-primary text-white">
|
|
46
|
+
<div class="text-h6">
|
|
47
|
+
<q-icon name="account_tree" class="q-mr-sm" />
|
|
48
|
+
Database Structure
|
|
49
|
+
</div>
|
|
50
|
+
</q-card-section>
|
|
51
|
+
|
|
27
52
|
<q-card-section>
|
|
28
|
-
<div class="text-h6">Database Structure</div>
|
|
29
53
|
<q-tree
|
|
30
54
|
:nodes="databaseTree"
|
|
31
55
|
node-key="id"
|
|
32
56
|
v-model:expanded="expandedNodes"
|
|
33
57
|
@lazy-load="onLazyLoad"
|
|
58
|
+
class="database-tree"
|
|
34
59
|
>
|
|
35
60
|
<template v-slot:default-header="prop">
|
|
36
61
|
<div class="row items-center full-width">
|
|
37
62
|
<div
|
|
38
|
-
class="row items-center flex-grow-1"
|
|
63
|
+
class="row items-center flex-grow-1 cursor-pointer"
|
|
39
64
|
@click.stop="
|
|
40
65
|
!['category', 'database', 'subcategory'].includes(
|
|
41
66
|
prop.node.type,
|
|
@@ -51,7 +76,7 @@
|
|
|
51
76
|
size="sm"
|
|
52
77
|
class="q-mr-sm"
|
|
53
78
|
/>
|
|
54
|
-
<div>{{ prop.node.label }}</div>
|
|
79
|
+
<div class="text-weight-medium">{{ prop.node.label }}</div>
|
|
55
80
|
<q-badge
|
|
56
81
|
v-if="prop.node.diffCount"
|
|
57
82
|
color="negative"
|
|
@@ -61,7 +86,6 @@
|
|
|
61
86
|
</q-badge>
|
|
62
87
|
</div>
|
|
63
88
|
|
|
64
|
-
<!-- Fix button with better spacing -->
|
|
65
89
|
<q-btn
|
|
66
90
|
v-if="
|
|
67
91
|
['issue-group', 'issues', 'category', 'database'].includes(
|
|
@@ -100,6 +124,7 @@
|
|
|
100
124
|
<q-input
|
|
101
125
|
v-model="host"
|
|
102
126
|
label="Database Host"
|
|
127
|
+
default="127.0.0.1"
|
|
103
128
|
filled
|
|
104
129
|
class="q-mb-md"
|
|
105
130
|
required
|
|
@@ -114,6 +139,7 @@
|
|
|
114
139
|
<q-input
|
|
115
140
|
v-model="port"
|
|
116
141
|
label="Database Port"
|
|
142
|
+
default="3306"
|
|
117
143
|
type="number"
|
|
118
144
|
filled
|
|
119
145
|
class="q-mb-md"
|
|
@@ -129,6 +155,7 @@
|
|
|
129
155
|
<q-input
|
|
130
156
|
v-model="user"
|
|
131
157
|
label="Database User"
|
|
158
|
+
default="root"
|
|
132
159
|
filled
|
|
133
160
|
class="q-mb-md"
|
|
134
161
|
required
|
|
@@ -173,6 +200,8 @@
|
|
|
173
200
|
<q-input
|
|
174
201
|
v-model="dbFolder"
|
|
175
202
|
label="Database Folder"
|
|
203
|
+
|
|
204
|
+
default="db-dump"
|
|
176
205
|
filled
|
|
177
206
|
class="q-mb-md"
|
|
178
207
|
required
|
|
@@ -399,7 +428,8 @@ export default {
|
|
|
399
428
|
localStorage.setItem('dbConfig', JSON.stringify(dbConfig))
|
|
400
429
|
this.isDbSetup = true
|
|
401
430
|
this.closeSettings()
|
|
402
|
-
this.
|
|
431
|
+
this.getDatabasesFromExistingDumps()
|
|
432
|
+
this.fetchAllDifferences()
|
|
403
433
|
},
|
|
404
434
|
async refreshDifferences() {
|
|
405
435
|
if (!this.isDbSetup) return
|
|
@@ -978,14 +1008,47 @@ export default {
|
|
|
978
1008
|
}
|
|
979
1009
|
</script>
|
|
980
1010
|
|
|
981
|
-
<style>
|
|
982
|
-
.
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
1011
|
+
<style lang="scss">
|
|
1012
|
+
.database-tree {
|
|
1013
|
+
.q-tree__node-header {
|
|
1014
|
+
padding: 8px;
|
|
1015
|
+
border-radius: 4px;
|
|
1016
|
+
transition: background-color 0.3s;
|
|
1017
|
+
|
|
1018
|
+
&:hover {
|
|
1019
|
+
background-color: #f5f5f5;
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
.q-tree__node--selected > .q-tree__node-header {
|
|
1024
|
+
background-color: #e3f2fd;
|
|
1025
|
+
}
|
|
1026
|
+
|
|
1027
|
+
.q-tree__node--child {
|
|
1028
|
+
padding-left: 24px;
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
.q-icon {
|
|
1032
|
+
font-size: 20px;
|
|
1033
|
+
}
|
|
1034
|
+
}
|
|
1035
|
+
|
|
1036
|
+
.q-card {
|
|
1037
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
1038
|
+
border-radius: 8px;
|
|
1039
|
+
}
|
|
1040
|
+
|
|
1041
|
+
.q-btn {
|
|
1042
|
+
border-radius: 8px;
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
.text-h6 {
|
|
1046
|
+
font-weight: 500;
|
|
1047
|
+
letter-spacing: 0.25px;
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
.q-page {
|
|
1051
|
+
max-width: 1400px;
|
|
1052
|
+
margin: 0 auto;
|
|
990
1053
|
}
|
|
991
1054
|
</style>
|