~mpredotka/mini-maker/MiniMakerFA

« back to all changes in this revision

Viewing changes to MiniMakerFF/Storage.js

  • Committer: Michal Predotka
  • Date: 2016-09-06 12:01:31 UTC
  • Revision ID: mpredotka@gmail.com-20160906120131-cs3lnikozy7fppi7
First version of Farm

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
 
2
 
.import QtQuick.LocalStorage 2.0 as Sql
3
 
 
4
 
function getDatabase() {
5
 
    return Sql.LocalStorage.openDatabaseSync("MiniMakerFF_1", "1.0", "minimakerff", 1000000);
6
 
}
7
 
 
8
 
// Create special table for DB version number
9
 
function createDBVersionTable()
10
 
{
11
 
    var db = getDatabase();
12
 
    db.transaction(
13
 
                function(tx) {
14
 
                    tx.executeSql('CREATE TABLE IF NOT EXISTS dbversion' +
15
 
                                  '(dbversionvalue REAL)');
16
 
                }
17
 
                );
18
 
}
19
 
 
20
 
// Check if DB value exist
21
 
function checkIfDBVersionExist(db_version)
22
 
{
23
 
    var db = getDatabase();
24
 
    var result = ""
25
 
    db.transaction(
26
 
                function(tx) {
27
 
                    var rs = tx.executeSql('SELECT * FROM dbversion WHERE dbversionvalue = ?',
28
 
                                           [db_version]);
29
 
                    if (rs.rows.length > 0 ) {
30
 
                        result = "true";
31
 
                    }
32
 
                    else {
33
 
                        result = "false";
34
 
                    }
35
 
                }
36
 
                );
37
 
    return result
38
 
}
39
 
 
40
 
function checkIfDBVersionTableExists()
41
 
{
42
 
    var db = getDatabase();
43
 
    var result = ""
44
 
    db.transaction(
45
 
                function(tx) {
46
 
                    var rs = tx.executeSql('SELECT name FROM sqlite_master WHERE name="dbversion" AND type="table"');
47
 
                    if (rs.rows.length > 0 ) {
48
 
                        result = "exist";
49
 
                    }
50
 
                    else {
51
 
                        result = "not_exist";
52
 
                    }
53
 
                }
54
 
                );
55
 
    return result
56
 
}
57
 
 
58
 
// Save DB version to DB
59
 
function saveDBVersion(db_version)
60
 
{
61
 
    var db = getDatabase();
62
 
    var result = "";
63
 
    db.transaction(
64
 
                function(tx) {
65
 
                    var rs = tx.executeSql('INSERT INTO dbversion VALUES(?)',
66
 
                                           [db_version]);
67
 
                    if (rs.rowsAffected > 0) {
68
 
                        result = "DB version saved as: " + db_version;
69
 
                    } else {
70
 
                        result = "Error with saving DB version: " + db_version;
71
 
                    }
72
 
                }
73
 
                );
74
 
    console.log(result)
75
 
}
76
 
 
77
 
// Update DB version
78
 
function updateDBVersion(db_version)
79
 
{
80
 
    var db = getDatabase();
81
 
    var result = "";
82
 
    db.transaction(
83
 
                function(tx) {
84
 
                    var rs = tx.executeSql('UPDATE dbversion '+
85
 
                                  'SET dbversionvalue = ? ',
86
 
                                  [db_version]);
87
 
                    if (rs.rowsAffected > 0) {
88
 
                        result = "DB version saved as: " + db_version;
89
 
                    } else {
90
 
                        result = "Error with saving DB version: " + db_version;
91
 
                    }
92
 
                }
93
 
                );
94
 
    console.log(result)
95
 
}
96
 
 
97
 
// Check if snaps table already exists
98
 
function checkIfSnapsTableExists()
99
 
{
100
 
    var db = getDatabase();
101
 
    var result = ""
102
 
    db.transaction(
103
 
                function(tx) {
104
 
                    var rs = tx.executeSql('SELECT name FROM sqlite_master WHERE name="snaps" AND type="table"');
105
 
                    if (rs.rows.length > 0 ) {
106
 
                        result = "table_exist";
107
 
                    }
108
 
                    else {
109
 
                        result = "table_not_exist";
110
 
                    }
111
 
                }
112
 
                );
113
 
    return result
114
 
}
115
 
 
116
 
// Add column to a table for rotation
117
 
function addRotationColumnToTable(){
118
 
    var db = getDatabase();
119
 
    db.transaction(
120
 
                function(tx){
121
 
                    tx.executeSql('ALTER TABLE snaps ADD COLUMN imgRotation REAL')
122
 
                }
123
 
                );
124
 
}
125
 
 
126
 
// Create backgrounds table
127
 
function createBacksTable() {
128
 
    var db = getDatabase();
129
 
    db.transaction(
130
 
                function(tx){
131
 
                    tx.executeSql('CREATE TABLE IF NOT EXISTS backs' +
132
 
                                  '(tStamp TEXT,' +
133
 
                                  'backUrl TEXT)')
134
 
                }
135
 
                );
136
 
}
137
 
 
138
 
// Save backgrounds
139
 
function saveBacks(tstamp, bUrl) {
140
 
    var db = getDatabase();
141
 
    var result = "";
142
 
    db.transaction(
143
 
                function(tx) {
144
 
                    var rs = tx.executeSql('INSERT INTO backs VALUES(?, ?)',
145
 
                                           [tstamp, bUrl]);
146
 
                }
147
 
                );
148
 
}
149
 
 
150
 
// Get backgrounds
151
 
function getBacks(backlistmodel) {
152
 
    var db = getDatabase();
153
 
    db.transaction(
154
 
                function(tx) {
155
 
                    var rs = tx.executeSql('SELECT * FROM backs');
156
 
 
157
 
                    var tstamp = "";
158
 
                    var bUrl = "";
159
 
                    for(var i = rs.rows.length - 1; i >= 0 ; i--) {
160
 
                        tstamp = rs.rows.item(i).tStamp;
161
 
                        bUrl = rs.rows.item(i).backUrl;
162
 
                        backlistmodel.append({"backtimestamp": tstamp, "back_source": bUrl});
163
 
                    }
164
 
                }
165
 
                );
166
 
}
167
 
 
168
 
// Delete backgrounds
169
 
function deleteBacks(backtstamp) {
170
 
    var db = getDatabase();
171
 
    var result = ""
172
 
    db.transaction(
173
 
                function(tx) {
174
 
                    var rs = tx.executeSql('DELETE FROM backs WHERE tStamp = ?',[backtstamp]);
175
 
                }
176
 
                );
177
 
}
178
 
 
179
 
// Create snaps table
180
 
function createSnapsTable() {
181
 
    var db = getDatabase();
182
 
    db.transaction(
183
 
                function(tx){
184
 
                    tx.executeSql('CREATE TABLE IF NOT EXISTS snaps' +
185
 
                                  '(tStamp TEXT,' +
186
 
                                  'imgUrl TEXT,' +
187
 
                                  'imgX REAL,' +
188
 
                                  'imgY REAL,' +
189
 
                                  'imgScale REAL,' +
190
 
                                  'imgMirror BOOLEAN,' +
191
 
                                  'imgWidth REAL,' +
192
 
                                  'imgRotation REAL)')
193
 
                }
194
 
                );
195
 
}
196
 
 
197
 
// Save snaps
198
 
function saveSnaps(tstamp, iUrl, iX, iY, iS, iM, iW, iR) {
199
 
    var db = getDatabase();
200
 
    var result = "";
201
 
    db.transaction(
202
 
                function(tx) {
203
 
                    var rs = tx.executeSql('INSERT INTO snaps VALUES(?, ?, ?, ?, ?, ?, ?, ?)',
204
 
                                           [tstamp, iUrl, iX, iY, iS, iM, iW, iR]);
205
 
                }
206
 
                );
207
 
}
208
 
 
209
 
// Get snaps
210
 
function getSnaps(snaptstamp) {
211
 
    var db = getDatabase();
212
 
    db.transaction(
213
 
                function(tx) {
214
 
                    var rs = tx.executeSql('SELECT * FROM snaps WHERE tStamp = ?',[snaptstamp]);
215
 
                    var iUrl = "";
216
 
                    var iX = "";
217
 
                    var iY = "";
218
 
                    var iS = "";
219
 
                    var iM = "";
220
 
                    var iW = "";
221
 
                    var iR = "";
222
 
                    for(var i = 0; i < rs.rows.length; i++) {
223
 
                        iUrl = rs.rows.item(i).imgUrl;
224
 
                        iX = rs.rows.item(i).imgX;
225
 
                        iY = rs.rows.item(i).imgY;
226
 
                        iS = rs.rows.item(i).imgScale;
227
 
                        iM = rs.rows.item(i).imgMirror;
228
 
                        iW = rs.rows.item(i).imgWidth;
229
 
                        iR = rs.rows.item(i).imgRotation;
230
 
                        recreateElementObjects(iUrl, iX, iY, iS, iM, iW, iR)
231
 
                    }
232
 
                }
233
 
                );
234
 
}
235
 
 
236
 
// Delete snaps
237
 
function deleteSnaps(snaptstamp) {
238
 
    var db = getDatabase();
239
 
    var result = ""
240
 
    db.transaction(
241
 
                function(tx) {
242
 
                    var rs = tx.executeSql('DELETE FROM snaps WHERE tStamp = ?',[snaptstamp]);
243
 
                }
244
 
                );
245
 
}