| Current Path : /home/emeraadmin/public_html/node_modules/jqGrid/js/minified/ |
| Current File : /home/emeraadmin/public_html/node_modules/jqGrid/js/minified/grid.database.js |
!function(e){"use strict";"function"==typeof define&&define.amd?define(["jquery","./grid.base"],e):e(jQuery)}(function(g){"use strict";g.jgrid.extend({dbInit:function(e){return this.each(function(){"indexeddb"===e&&g(this).jqGrid("_initIndexedDB_")})},_initIndexedDB_:function(){this.each(function(){var s=this;indexedDB.databases().then(function(e){var r=indexedDB.open(s.p.dbconfig.dbname);r.onupgradeneeded=e=>{console.info("Database created: "+s.p.dbconfig.dbname)},r.onsuccess=function(e){const r=e.target.result;var o=parseInt(r.version),c=g.jgrid.getElemByAttrVal(s.p.colModel,"key",!0);async function t(i){var e=s.p.dbconfig;if("string"==typeof e.dataUrl){try{var d=await(await fetch(e.dataUrl,e.fetchOptions)).json();null!==e.reader&&(d=g.jgrid.getAccessor(d,e.reader))}catch(e){return void console.log("Error:"+e)}g.jgrid.isFunction(e.beforeInsertData)&&(d=e.beforeInsertData.call(s,d))}else Array.isArray(e.dataUrl)&&(d=e.dataUrl);s.p.dbconfig.dbversion=o+1;e=indexedDB.open(e.dbname,o+1);e.onupgradeneeded=function(e){var r=e.target.result;if(!i){var o=r.createObjectStore(s.p.dbconfig.dbtable,{keyPath:c.name});for(let e=0;e<s.p.colModel.length;e++){var t=s.p.colModel[e];t.name===c.name?o.createIndex(t.name,t.name,{unique:!0}):o.createIndex(t.name,t.name,{unique:!1})}}var n,a=e.target.transaction.objectStore(s.p.dbconfig.dbtable);a.transaction.oncomplete=function(e){},a.transaction.onerror=function(e){g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")};for(n of d)s.p.dbconfig.isKeyInData||(n[c.name]=Math.random().toString(16).slice(2)),a.put(n);s.p.dbconfig.ready_req=!0,s.grid.populate()},e.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}}if(g.isEmptyObject(c))g.jgrid.info_dialog("Warning","Missed key: No uniquie key is set in colModel. Creating table fail","Close");else if(r.objectStoreNames.contains(s.p.dbconfig.dbtable))if(s.p.dbconfig.loadIfExists||s.p.dbconfig.deleteIfExists){const n=r.transaction(s.p.dbconfig.dbtable,"readwrite").objectStore(s.p.dbconfig.dbtable),a=n.count();a.onsuccess=()=>{var e;0<a.result?s.p.dbconfig.deleteIfExists?((e=n.clear()).onsuccess=e=>{console.log("All records are cleared"),r.close(),t(!0)},e.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}):s.p.dbconfig.loadIfExists?(r.close(),t(!0)):(r.close(),s.p.dbconfig.ready_req=!0,s.grid.populate()):(r.close(),t(!0))}}else r.close(),s.p.dbconfig.ready_req=!0,s.grid.populate();else r.close(),t(!1)},r.onerror=e=>{g.jgrid.info_dialog("Error",e.target.error.name+" : "+e.target.error.message,"Close")}})})},updateStorageRecord:async function(d,c){let s=this[0],l=s.p.dbconfig,e=s.p.datatype;return new Promise(function(o,a){if(Array.isArray(d)||(d=[d]),c=c||s.p.keyName,d=g.jgrid.normalizeDbData.call(s,d,s.p.colModel),"indexeddb"===e){const i=window.indexedDB.open(l.dbname);i.onsuccess=e=>{var r=i.result.transaction(l.dbtable,"readwrite"),t=(r.oncomplete=e=>{o(e),console.log("Transaction completed succefully")},r.onerror=r=>{a(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(l.dbtable));for(let o=0;o<d.length;o++){if(!d[o].hasOwnProperty(c)||""===d[o][c]){r.abort();break}var n=t.openCursor();n.onsuccess=e=>{var r,e=e.target.result;e&&((r=e.value)[c]===d[o][c]?(delete d[o].oper,r=Object.assign(r,d[o]),e.update(r)):e.continue())},n.onerror=e=>{console.log(e.target.error)}}}}})},addStorageRecord:async function(i,d){let c=this[0],s=c.p.dbconfig,e=c.p.datatype;return new Promise(function(t,n){if(Array.isArray(i)||(i=[i]),d=d||c.p.keyName,i=g.jgrid.normalizeDbData.call(c,i,c.p.colModel),"indexeddb"===e){const a=window.indexedDB.open(s.dbname);a.onsuccess=e=>{var r=a.result.transaction(s.dbtable,"readwrite"),o=(r.oncomplete=e=>{t(e),console.log("Transaction completed succefully")},r.onerror=r=>{n(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:c.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(s.dbtable));for(let e=0;e<i.length;e++)i[e].hasOwnProperty(d)&&""!==i[e][d]||(i[e][d]=Math.random().toString(16).slice(2)),o.add(i[e]).onsuccess=e=>{}}}})},deleteStorageRecord:async function(d,c){let s=this[0],l=s.p.dbconfig,e=s.p.datatype;return new Promise(function(t,n){if(Array.isArray(d)||(d=d.split(",")),c=c||s.p.keyName,"indexeddb"===e){var a=[],r={};for(let e=0;e<d.length;e++)r[c]=d[e],a.push(r);a=g.jgrid.normalizeDbData.call(s,a,s.p.colModel);const i=window.indexedDB.open(l.dbname);i.onsuccess=e=>{var r=i.result.transaction(l.dbtable,"readwrite"),o=(r.oncomplete=e=>{t(e),console.log("Transaction completed succefully")},r.onerror=r=>{n(r);try{g.jgrid.info_dialog.call("Error",r.target.error,"Close",{styleUI:s.p.styleUI})}catch(e){console.log(r.target.error)}},r.objectStore(l.dbtable));for(let r=0;r<d.length;r++)o.delete(a[r][c]).onsuccess=e=>{console.log("Deleted record: "+d[r])}}}})}})});