Changes

Jump to navigation Jump to search
m
Replaced content with "console.log('+');"
Line 1: Line 1:  
console.log('+');
 
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);
  −
}
  −
*/
  −
  −
  −
//|||||||||||||||||||||[ db objects  ]|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
     
  −
  −
    var personalDB = {};
  −
    var indexedDB = window.indexedDB ;
  −
    var indexedDBVersion = "2";
  −
    var Pete = {id: '11345', name: {first: "Pete", last: "Rock"}, age: '52'};
  −
  −
    personalDB.indexedDB = {};
  −
    personalDB.indexedDB.db = null;
  −
   
  −
  −
//|||||||||||||||||||||||||||[ Error ]|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
     
  −
   
  −
    personalDB.indexedDB.onerror = function(arr){
  −
        console.log(arr);
  −
    }
  −
  −
  −
//|||||||||||||||||||||||||||[ Open database ]|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
     
  −
   
  −
    personalDB.indexedDB.open = function(){
  −
        // open database of
  −
        var request = indexedDB.open("personalDataIO");
  −
       
  −
        request.onsuccess = function(e){
  −
            //
  −
            personalDB.indexedDB.db = e.target.result;
  −
            var db = personalDB.indexedDB.db;
  −
           
  −
            //object stores are created in setVersion transactions
  −
            if(indexedDBVersion!=db.version){
  −
                var setDBVersion = db.setVersion(indexedDBVersion);
  −
               
  −
                //object store is created onsuccess
  −
                setDBVersion.onerror = personalDB.indexedDB.onerror;
  −
               
  −
                setDBVersion.onsuccess = function(e){
  −
                    if(db.objectStoreNames.contains("personalDataIO")){
  −
                        // db.openObjectStore("personalDataIO");
  −
                    } else {
  −
                        var store = db.createObjectStore("personalDataIO",{autoIncrement:true});
  −
                    }
  −
                    store.createIndex("NameIndex", ["name.last", "name.first"]);
  −
                    personalDB.indexedDB.recordAll();
  −
                };
  −
            }else{
  −
                personalDB.indexedDB.recordAll();
  −
            }
  −
        };
  −
        request.onerror = personalDB.indexedDB.onerror;
  −
    };//end open
  −
   
  −
  −
//|||||||||||||||||||||||||||||[ Add new record ]|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
     
  −
  −
    //add Items
  −
        personalDB.indexedDB.recordAdd = function(recordObject){
  −
            console.log('Creating record: '+entryTxt);
  −
            var db = personalDB.indexedDB.db;
  −
            var trans = db.transaction(["personalDataIO"],IDBTransaction.READ_WRITE);
  −
            var store = trans.objectStore("personalDataIO");
  −
            var request = store.put(recordObject);
  −
           
  −
            request.onsuccess = function(e){
  −
                personalDB.indexedDB.recordAll();
  −
            };
  −
            request.onerror = function(e){
  −
                console.log('Error adding: '+e);
  −
            };
  −
        };
  −
       
  −
  −
//|||||||||||||||||||||||||||||[ Add new property to existing record ]|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
     
  −
        //get Items
  −
        personalDB.indexedDB.recordAppend = function(Uname, field, value){
  −
  −
            var db = personalDB.indexedDB.db;
  −
            var trans = db.transaction("personalDataIO");
  −
            var store = trans.objectStore("personalDataIO");
  −
           
  −
            var index = store.index(uname);
  −
            index.get(uname).onsuccess = function(e){                   
  −
                var nit = e.target.result;
  −
                nit.field = value;
  −
                recordAdd(nit);
  −
            };                                                               
  −
        };
  −
   
  −
//|||||||||||||||||||||||||||||[ Init wrapper ]|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
               
  −
        function init() {
  −
            personalDB.indexedDB.open();
  −
        }
  −
  −
//||||||||||||||||||||||||||||||[ Get Record by name]||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
     
  −
            personalDB.indexedDB.recordGet = function(uname) {
  −
            var db = personalDB.indexedDB.db;
  −
            var trans = db.transaction("personalDataIO");
  −
            var store = trans.objectStore("personalDataIO");
  −
           
  −
            var index = store.index(uname);
  −
            console.log(index);
  −
         
  −
            index.get(uname).onsuccess = function(e){                   
  −
                console.log(e.target);
  −
                /*/ $('#results').append('<li>'+e.target.result+'</li>'); /*///
  −
          };
  −
                                                                           
  −
        }     
  −
  −
  −
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
       
  −
  −
//||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
  −
         
  −
        init();
  −
  −
        personalDB.indexedDB.recordAdd(Pete);
  −
        personalDB.indexedDB.recordAppend(["Pete", "Rock"], 'telephone', '+123-XXX');
  −
        personalDB.indexedDB.recordGet(["Pete", "Rock"]);
 
530

edits

Navigation menu