aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/designer/database.js
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/js/designer/database.js
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/js/designer/database.js')
-rw-r--r--srcs/phpmyadmin/js/designer/database.js149
1 files changed, 149 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/js/designer/database.js b/srcs/phpmyadmin/js/designer/database.js
new file mode 100644
index 0000000..f8456d1
--- /dev/null
+++ b/srcs/phpmyadmin/js/designer/database.js
@@ -0,0 +1,149 @@
+var designerTables = [
+ {
+ name: 'pdf_pages',
+ key: 'pgNr',
+ autoIncrement: true
+ },
+ {
+ name: 'table_coords',
+ key: 'id',
+ autoIncrement: true
+ }
+];
+
+// eslint-disable-next-line no-unused-vars
+var DesignerOfflineDB = (function () {
+ var designerDB = {};
+ var datastore = null;
+
+ designerDB.open = function (callback) {
+ var version = 1;
+ var request = window.indexedDB.open('pma_designer', version);
+
+ request.onupgradeneeded = function (e) {
+ var db = e.target.result;
+ e.target.transaction.onerror = designerDB.onerror;
+
+ var t;
+ for (t in designerTables) {
+ if (db.objectStoreNames.contains(designerTables[t].name)) {
+ db.deleteObjectStore(designerTables[t].name);
+ }
+ }
+
+ for (t in designerTables) {
+ db.createObjectStore(designerTables[t].name, {
+ keyPath: designerTables[t].key,
+ autoIncrement: designerTables[t].autoIncrement
+ });
+ }
+ };
+
+ request.onsuccess = function (e) {
+ datastore = e.target.result;
+ if (typeof callback !== 'undefined' && callback !== null) {
+ callback(true);
+ }
+ };
+
+ request.onerror = designerDB.onerror;
+ };
+
+ designerDB.loadObject = function (table, id, callback) {
+ var db = datastore;
+ var transaction = db.transaction([table], 'readwrite');
+ var objStore = transaction.objectStore(table);
+ var cursorRequest = objStore.get(parseInt(id));
+
+ cursorRequest.onsuccess = function (e) {
+ callback(e.target.result);
+ };
+
+ cursorRequest.onerror = designerDB.onerror;
+ };
+
+ designerDB.loadAllObjects = function (table, callback) {
+ var db = datastore;
+ var transaction = db.transaction([table], 'readwrite');
+ var objStore = transaction.objectStore(table);
+ var keyRange = IDBKeyRange.lowerBound(0);
+ var cursorRequest = objStore.openCursor(keyRange);
+ var results = [];
+
+ transaction.oncomplete = function () {
+ callback(results);
+ };
+
+ cursorRequest.onsuccess = function (e) {
+ var result = e.target.result;
+ if (Boolean(result) === false) {
+ return;
+ }
+ results.push(result.value);
+ result.continue();
+ };
+
+ cursorRequest.onerror = designerDB.onerror;
+ };
+
+ designerDB.loadFirstObject = function (table, callback) {
+ var db = datastore;
+ var transaction = db.transaction([table], 'readwrite');
+ var objStore = transaction.objectStore(table);
+ var keyRange = IDBKeyRange.lowerBound(0);
+ var cursorRequest = objStore.openCursor(keyRange);
+ var firstResult = null;
+
+ transaction.oncomplete = function () {
+ callback(firstResult);
+ };
+
+ cursorRequest.onsuccess = function (e) {
+ var result = e.target.result;
+ if (Boolean(result) === false) {
+ return;
+ }
+ firstResult = result.value;
+ };
+
+ cursorRequest.onerror = designerDB.onerror;
+ };
+
+ designerDB.addObject = function (table, obj, callback) {
+ var db = datastore;
+ var transaction = db.transaction([table], 'readwrite');
+ var objStore = transaction.objectStore(table);
+ var request = objStore.put(obj);
+
+ request.onsuccess = function (e) {
+ if (typeof callback !== 'undefined' && callback !== null) {
+ callback(e.currentTarget.result);
+ }
+ };
+
+ request.onerror = designerDB.onerror;
+ };
+
+ designerDB.deleteObject = function (table, id, callback) {
+ var db = datastore;
+ var transaction = db.transaction([table], 'readwrite');
+ var objStore = transaction.objectStore(table);
+ var request = objStore.delete(parseInt(id));
+
+ request.onsuccess = function () {
+ if (typeof callback !== 'undefined' && callback !== null) {
+ callback(true);
+ }
+ };
+
+ request.onerror = designerDB.onerror;
+ };
+
+ designerDB.onerror = function (e) {
+ // eslint-disable-next-line no-console
+ console.log(e);
+ };
+
+ // Export the designerDB object.
+ return designerDB;
+}());