// IndexedDB4safety.txt // // see line 832 testing function save_notes2IDB(){ var v_time=microtime(true) ; // alert('Gotta save to IDB') console.log('Saving notes to local storage at '+v_time); var request = indexedDB.open("UserNotes",1); request.onupgradeneeded = function() { console.log('Running onupgradeneeded line 294'); var db = request.result; var store = db.createObjectStore("LG", {keyPath: "case_id"}); var CaseNameIndex = store.createIndex("case_name", "case_name", {unique: false}); // Populate with initial data. store.put({ case_id: LG.case_id ,case_name : LG.case_name ,notes : {} ,topicslist : [] ,case_notes_user_topics : {} ,notes4topics : {} ,topics4notes : {} ,sortbyDocnum : sortbyDocnum ,CaseDocsData : CaseDocsData ,VolumesList : VolumesList ,ChronDoclist : ChronDoclist ,user_nid : '' ,has_note_rights : '' ,role : '' ,SortNotesBy : '' ,UsingDocnum : '' ,UsingNoteNum : '' ,pagination_mode : pagination_mode ,docsInBundle : docsInBundle ,pgsInBundle : pgsInBundle // ,zipfilesize : zipfilesize ,lastdate:new Date().getTime() }); }; request.onsuccess = function() { db = request.result; var v_time=microtime(true) ; console.log('Running onsuccess (opened CasesData) at line 381 at '+v_time); var tx = db.transaction("LG", "readwrite"); var store = tx.objectStore("LG"); var iDB= { case_id: LG.case_id ,case_name : LG.case_name ,notes : LG.notes ,topicslist : LG.topicslist ,case_notes_user_topics : LG.case_notes_user_topics ,notes4topics : LG.notes4topics ,topics4notes : LG.topics4notes ,sortbyDocnum : sortbyDocnum ,CaseDocsData : CaseDocsData ,VolumesList : VolumesList ,ChronDoclist : ChronDoclist ,user_nid : LG.user_nid ,has_note_rights : LG.has_note_rights ,role : LG.role ,SortNotesBy : LG.SortNotesBy ,UsingDocnum : LG.UsingDocnum ,UsingNoteNum : LG.UsingNoteNum ,pagination_mode : pagination_mode ,docsInBundle : docsInBundle ,pgsInBundle : pgsInBundle // ,zipfilesize : zipfilesize ,lastdate:new Date().getTime() } store.put(iDB); tx.oncomplete = function() { // All requests have succeeded and the transaction has committed. // var v_time=new Date().getTime() ; var v_time=microtime(true) ; console.log('Line 440 tx.oncompleted '+v_time); // alert('Saved to local storage. See the data'); //JSON_display(iDB); // iDB_display(iDB) ; db.close(); }; // tx.oncomplete }; // request.onsuccess } // eof function microtime(get_as_float) { var now = new Date().getTime() / 1000; var s = parseInt(now); return (get_as_float) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s; } function iDB_display(objname){ //var popstr = JSON.stringify(eval(objname)) ; var popstr = JSON.stringify(objname) ; // popstr = popstr.replace("'","`") document.getElementById('iDBscript').innerHTML=popstr; try{ var jsontoParse=document.getElementById('iDBscript').innerHTML; // LG.IDB=JSON.parse(popstr); LG.IDB=JSON.parse(jsontoParse); // alert('The jsontoParse from LG.IDB = '+LG.IDB.case_name); }catch(e){alert('LG.IDB error: '+e);} v_attributes="toolbar=no,location=no,directories=no,status=no,menubar=no,titlebar=no,scrollbars=yes,resizable=yes,copyhistory=no,alwaysraised=yes,dependent=yes,Height=900,Width=650,left=50,top=20, screenX=20, screenY=20"; if ( json_display_popup != null ) json_display_popup.close(); json_display_popup = open('',"json_display_popup",v_attributes); json_display_popup.document.open(); json_display_popup.document.write(popstr); json_display_popup.document.close(); } // function scriptLoaded(){ // LG.viewernotesciptloaded=true; // document.getElementById('div2showNotesSwitch').style.display='block'; // //alert('Gotta get user notes'); // // getusernotes() ; // getusernotesFromIDB() ; // } function getusernotesFromIDB(){ if(!window.indexedDB){ alert('indexedDB is not supported'); console.log('indexedDB is not supported line 596'); return false; }else{ alert('indexedDB is supported. Getting local data for notes line 600'); console.log('indexedDB is supported line 600'); var request2 = indexedDB.open("UserNotes",1); var db; request2.onupgradeneeded = function() { // The database did not previously exist, so create object stores and indexes. console.log('Running onupgradeneeded line 606'); var db = request2.result; var store = db.createObjectStore("LG", {keyPath: "case_id"}); var CaseNameIndex = store.createIndex("case_name", "case_name", {unique: false}); // var authorIndex = store.createIndex("by_author", "author"); // Populate with initial data. store.put({ case_id: LG.case_id ,case_name : LG.case_name ,notes : {} ,topicslist : [] ,case_notes_user_topics : {} ,notes4topics : {} ,topics4notes : {} ,sortbyDocnum : sortbyDocnum ,CaseDocsData : CaseDocsData ,VolumesList : VolumesList ,ChronDoclist : ChronDoclist ,user_nid : '' ,has_note_rights : '' ,role : '' ,SortNotesBy : '' ,UsingDocnum : '' ,UsingNoteNum : '' ,pagination_mode : pagination_mode ,docsInBundle : docsInBundle ,pgsInBundle : pgsInBundle ,zipfilesize : zipfilesize ,lastdate:new Date().getTime() }); }; request2.onsuccess = function(event) { // next explains why we use request2 and request3 // https://stackoverflow.com/questions/53972918/cannot-read-property-result-of-undefined-indexeddb // console.log('Running onsuccess at line 641 to open CasesData'); // request2 = indexedDB.open("UserNotes",1); // db = request2.result; db = event.target.result ; var tx = db.transaction("LG","readonly"); var store = tx.objectStore("LG"); var v_case_id = LG.case_id ; var request3 = store.get(v_case_id); request3.onsuccess = function(event) { console.log('Line 649 success getting the case '+v_case_id); var IDB=request3.result ; LG.case_id = IDB.case_id ; LG.case_name = IDB.case_name ; alert('Line 654 says case_name '+IDB.case_name) // FIX this if(IDB.notes[22] && IDB.notes[22].descriprip !=''){ alert('Line 661 there is a note 22') LG.notes = IDB.notes ; } LG.topicslist = IDB.topicslist ; LG.case_notes_user_topics = IDB.case_notes_user_topics ; LG.notes4topics = IDB.notes4topics ; LG.topics4notes = IDB.topics4notes ; LG.user_nid = IDB.user_nid ; LG.has_note_rights = IDB.has_note_rights ; // LG.role = IDB.role ; LG.role='SvrMngr'; LG.SortNotesBy = IDB.SortNotesBy ; for(var topic_id in LG.case_notes_user_topics){ if (LG.case_notes_user_topics.hasOwnProperty(topic_id) ) { LG.topicslist[LG.topicslist.length] = LG.case_notes_user_topics[topic_id].topic+'##'+topic_id+'##'+LG.case_notes_user_topics[topic_id].propositions ; } } LG.topicslist.sort(); document.getElementById('div2showNotesSwitch').style.display='block'; } // request.onsuccess get data 646 db.close(); } // request.onsuccess OPen DB 639 }// if IDB supported }// eof getusernotesFromIDB