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.
@@ -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-DnieoNNh.js"></script>
2
- <link rel="stylesheet" crossorigin href="/assets/index-DME6fUxJ.css">
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
- <div class="q-mb-md">
4
- <q-btn @click="openSettings" label="Settings" color="primary" />
5
- <q-btn
6
- @click="
7
- Object.keys(existingDatabases).length === 0
8
- ? createNewDump()
9
- : createNewDump(true)
10
- "
11
- :label="
12
- Object.keys(existingDatabases).length === 0 ? 'Get New Dump' : 'Refresh Dump'
13
- "
14
- color="secondary"
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
- <q-card v-if="!isDbSetup" class="q-mb-md">
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">Database Not Set Up</div>
21
- <div>Please configure your database settings.</div>
22
- <q-btn @click="openSettings" label="Open Settings" color="primary" />
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
- <q-card v-if="Object.keys(existingDatabases).length > 0" class="q-mb-md">
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.refreshDifferences()
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
- .sql-code {
983
- white-space: pre-wrap;
984
- word-wrap: break-word;
985
- font-family: monospace;
986
- margin: 0;
987
- font-size: 14px;
988
- line-height: 1.5;
989
- overflow-x: auto;
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>