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"); |