| Line 54: |
Line 54: |
| | | | |
| | */ | | */ |
| | + | console.log('+'); |
| | + | |
| | + | /* |
| | + | |
| | + | var personal_data_id = 421; |
| | + | |
| | + | var wbEStruct = { |
| | + | subclassOfRelations: 'claims.P4', // location of P3 relations in wbEntity |
| | + | IDPropLoc: 'mainsnak.datavalue.value', // location of ID properties in related entity |
| | + | IDName: 'numeric-id', // ID property name which checked |
| | + | qIDPropName: 'id' |
| | + | }; |
| | + | |
| | + | // check if we are on a page of a loaded Entity |
| | + | if ( typeof mw.config.values.wbEntity != "undefined" ) { |
| | + | console.log( "entity is defined" ) |
| | + | // get wbEntity as json |
| | + | var obj = JSON.parse ( mw.config.values.wbEntity ); |
| | + | console.log( "parsed object" ) |
| | + | // check if we have P3 relations and iterate through |
| | + | if ( typeof check( obj, wbEStruct["subclassOfRelations"] ) != "undefined" ) { |
| | + | console.log( "object has 'subclass of' relations" ); |
| | + | for( var i = 0; i < dive( obj, wbEStruct["subclassOfRelations"] ).length; i++ ) { |
| | + | console.log("dived in"); |
| | + | // check if we have controller id constructed from wbEntity |
| | + | if( dive( dive( obj, wbEStruct["subclassOfRelations"])[i] , wbEStruct["IDPropLoc"])[wbEStruct["IDName"]] === personal_data_id ) { |
| | + | console.log( "it's a storable personal data" ) |
| | + | var qId = obj[wbEStruct["qIDPropName"]]; |
| | + | |
| | + | |
| | + | console.log(qId); |
| | + | |
| | + | } |
| | + | } |
| | + | } |
| | + | // Else let's do nothing; |
| | + | } |
| | + | |
| | + | function indexinterpolate(obj,i) { return (obj[i] != undefined) ? obj[i] : obj}; |
| | + | |
| | + | // helper function for checking a part of an array exists |
| | + | function indexcheck(obj,i) { return (obj[i] != undefined) ? obj[i] : undefined }; |
| | + | |
| | + | // dive selects matrix.a.b.c.d from the array called matrix and 'a.b.c.d' as string |
| | + | // if a.b.c.d does not exists, it returns the substructure until the substructure exists, if d does not exist, it returns matrix.a.b.c e.g. |
| | + | |
| | + | function dive(array, read){ |
| | + | return read.split('.').reduce(indexinterpolate, array); |
| | + | } |
| | + | |
| | + | function check(array, read){ |
| | + | return read.split('.').reduce(indexcheck, array); |
| | + | } |
| | + | |
| | + | */ |
| | + | console.log("~"); |
| | | | |
| | var PersonalDataDataBaseName = "pdio"; | | var PersonalDataDataBaseName = "pdio"; |
| Line 59: |
Line 115: |
| | | | |
| | addRecord(PersonalDataDataBaseName, Pete); | | addRecord(PersonalDataDataBaseName, Pete); |
| − | recordUpdate(PersonalDataDataBaseName, Pete, 'phone', '+313555777'); | + | recordUpdate(PersonalDataDataBaseName, ["Pete", "Rock"], 'phone', '+313555777'); |
| | | | |
| | function addRecord(pddbname, record){ | | function addRecord(pddbname, record){ |
| Line 81: |
Line 137: |
| | | | |
| | store.put(record); | | store.put(record); |
| − |
| |
| − | var recordcheck = index.get([record.name.first, record.name.last]);
| |
| − | recordcheck.onsuccess = function() {
| |
| − | console.log(recordcheck);
| |
| − | }
| |
| | | | |
| | tx.oncomplete = function() { | | tx.oncomplete = function() { |
| Line 114: |
Line 165: |
| | var index = store.index("NameIndex"); | | var index = store.index("NameIndex"); |
| | | | |
| − | var getRecord = index.get([record.name.first, record.name.last]); | + | var getRecord = index.get(record); |
| | getRecord.onsuccess = function() { | | getRecord.onsuccess = function() { |
| | console.log("updating"); | | console.log("updating"); |
| Line 120: |
Line 171: |
| | store.put(getRecord.result); | | store.put(getRecord.result); |
| | | | |
| − | getRecordAgain = index.get([record.name.first, record.name.last]); | + | getRecordAgain = index.get(record); |
| | getRecordAgain.onsuccess = function() { | | getRecordAgain.onsuccess = function() { |
| − | console.log("hey there" + getRecordAgain); // => "Bob" | + | console.log(getRecordAgain.result.field); // => "Bob" |
| | if ( getRecordAgain.result.field == value ) { | | if ( getRecordAgain.result.field == value ) { |
| | console.log("update succeeded"); | | console.log("update succeeded"); |