Sqlite-Plugin, DB-Copy plugin added und integriert
This commit is contained in:
@@ -5,21 +5,55 @@
|
||||
// the 2nd parameter is an array of 'requires'
|
||||
// 'starter.services' is found in services.js
|
||||
// 'starter.controllers' is found in controllers.js
|
||||
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
|
||||
var db;
|
||||
|
||||
.run(function($ionicPlatform, $ionicPopup) {
|
||||
angular.module('starter', ['ionic', 'ngCordova', 'starter.controllers', 'starter.services'])
|
||||
|
||||
.run(function($ionicPlatform, $window, $ionicHistory, $database, $ionicPopup, $state, $localstorage, $rootScope) {
|
||||
$ionicPlatform.ready(function() {
|
||||
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
|
||||
// for form inputs)
|
||||
|
||||
$ionicPlatform.registerBackButtonAction(function(event) {
|
||||
|
||||
// Handle Android back button to avoid the application exits accidentaly
|
||||
if ($state.current.name=="tab.dash") {
|
||||
$ionicPopup.confirm({
|
||||
title: 'System-Hinweis',
|
||||
template: 'Möchten Sie die App beenden?'
|
||||
}).then(function(res) {
|
||||
if (res) {
|
||||
ionic.Platform.exitApp();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$ionicHistory.clearCache();
|
||||
$ionicHistory.nextViewOptions({
|
||||
historyRoot: true
|
||||
});
|
||||
$state.go('tab.dash');
|
||||
}
|
||||
}, 100);
|
||||
|
||||
|
||||
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
|
||||
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
|
||||
cordova.plugins.Keyboard.disableScroll(true);
|
||||
|
||||
}
|
||||
if (window.StatusBar) {
|
||||
// org.apache.cordova.statusbar required
|
||||
StatusBar.styleDefault();
|
||||
|
||||
// Mandatory for InAppBrowser plugin
|
||||
if(window.cordova){
|
||||
window.open = cordova.InAppBrowser.open;
|
||||
}
|
||||
// Copy the populated database to mobile device destination
|
||||
//if (window.sqlitePlugin && window.cordova) {
|
||||
if (window.sqlitePlugin && window.cordova) {
|
||||
window.plugins.sqlDB.copy("raataar_wrk.db", function (e) {
|
||||
console.log(e);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function successHandler (result) {
|
||||
var strResult = "";
|
||||
@@ -39,7 +73,16 @@ angular.module('starter', ['ionic', 'starter.controllers', 'starter.services'])
|
||||
if((window.device && device.platform == "Android") && typeof inappbilling !== "undefined") {
|
||||
inappbilling.init(successHandler, errorHandler, {showLog:true});
|
||||
}
|
||||
|
||||
|
||||
// Initialize database through $database service
|
||||
db = $database.initDB();
|
||||
|
||||
if (window.StatusBar) {
|
||||
// org.apache.cordova.statusbar required
|
||||
StatusBar.styleDefault();
|
||||
}
|
||||
|
||||
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
angular.module('starter.controllers', [])
|
||||
|
||||
.controller('DashCtrl', function($scope,$ionicPopup,$http, $localstorage) {
|
||||
.controller('DashCtrl', function($scope,$ionicPopup,$http, $database) {
|
||||
|
||||
$scope.preis="";
|
||||
$scope.name="";
|
||||
@@ -8,7 +8,9 @@ angular.module('starter.controllers', [])
|
||||
$scope.items=[];
|
||||
$scope.item=[];
|
||||
|
||||
$scope.items=$localstorage.getObject('items');
|
||||
//db = Database.getDb();
|
||||
|
||||
//$scope.items=$localstorage.getObject('items');
|
||||
|
||||
$scope.validate = function() {
|
||||
|
||||
@@ -22,16 +24,30 @@ angular.module('starter.controllers', [])
|
||||
|
||||
};
|
||||
|
||||
|
||||
$scope.loaddata = function() {
|
||||
$scope.items=$localstorage.getObject('items');
|
||||
alert(JSON.stringify($scope.items));
|
||||
$scope.items=[];
|
||||
$database.getAllBuys().then(function (result) {
|
||||
if(result.length>0){
|
||||
alert("daten da");
|
||||
for(i=0;i<result.length;i++){
|
||||
$scope.items.push(result[i]);
|
||||
alert(i);
|
||||
}
|
||||
|
||||
} else {
|
||||
$scope.items=[];
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
$scope.savedata = function() {
|
||||
$scope.item={name: $scope.name, freitext: $scope.freitext, rosen: $scope.preis, bild: "test"};
|
||||
alert(JSON.stringify($scope.item));
|
||||
$scope.item={name: $scope.name, bild: "test"};
|
||||
$scope.items.push($scope.item);
|
||||
$localstorage.setObject('items',$scope.items);
|
||||
$database.setBuys($scope.name,"test");
|
||||
};
|
||||
|
||||
function successBuyHandler (result) {
|
||||
@@ -78,14 +94,22 @@ angular.module('starter.controllers', [])
|
||||
|
||||
})
|
||||
|
||||
.controller('BuysCtrl', function($scope, $localstorage,$location) {
|
||||
.controller('BuysCtrl', function($scope, $database,$location) {
|
||||
$scope.items=[];
|
||||
$scope.items=$localstorage.getObject('items');
|
||||
//$scope.items=$localstorage.getObject('items');
|
||||
|
||||
$scope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
|
||||
if ($location.path() == "/tab/buys") {
|
||||
$scope.items=$localstorage.getObject('items');
|
||||
}
|
||||
$database.getAllBuys().then(function (result) {
|
||||
if(result.length>0){
|
||||
for(i=0;i<result.length;i++){
|
||||
$scope.items.push(result[i]);
|
||||
}
|
||||
} else {
|
||||
$scope.items=[];
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -1,19 +1,94 @@
|
||||
angular.module('starter.services', [])
|
||||
|
||||
|
||||
.factory('$localstorage', ['$window', function($window) {
|
||||
return {
|
||||
set: function(key, value) {
|
||||
$window.localStorage[key] = value;
|
||||
},
|
||||
get: function(key, defaultValue) {
|
||||
return $window.localStorage[key] || defaultValue;
|
||||
},
|
||||
setObject: function(key, value) {
|
||||
$window.localStorage[key] = JSON.stringify(value);
|
||||
},
|
||||
getObject: function(key) {
|
||||
return JSON.parse($window.localStorage[key] || '{}');
|
||||
return {
|
||||
set: function(key, value) {
|
||||
$window.localStorage[key] = value;
|
||||
},
|
||||
get: function(key, defaultValue) {
|
||||
return $window.localStorage[key] || defaultValue;
|
||||
},
|
||||
setObject: function(key, value) {
|
||||
$window.localStorage[key] = angular.toJson(value);
|
||||
},
|
||||
getObject: function(key) {
|
||||
return JSON.parse($window.localStorage[key] || '[]');
|
||||
},
|
||||
destroy: function(key) {
|
||||
$window.localStorage.removeItem(key);
|
||||
},
|
||||
log: function(key, defaultValue) {
|
||||
console.log($window.localStorage[key] || defaultValue);
|
||||
},
|
||||
logObject: function(key) {
|
||||
console.log(JSON.stringify($window.localStorage[key] || '{}'));
|
||||
}
|
||||
};
|
||||
}])
|
||||
|
||||
.factory('$database',['$cordovaSQLite', function($cordovaSQLite) {
|
||||
var self = this;
|
||||
self.db = null;
|
||||
var query;
|
||||
|
||||
//this updateTable function is for ilustrative use here, it can be changed to manage all queries indeed.
|
||||
updateTable=function (table, column, value, condition) {
|
||||
if(!condition){
|
||||
query = "UPDATE " + table + " SET " + column + " = " + value;
|
||||
} else{
|
||||
query = "UPDATE " + table + " SET " + column + " = " + value + " WHERE " + condition;
|
||||
}
|
||||
}
|
||||
}]);
|
||||
return $cordovaSQLite.execute(self.db,query,[]).
|
||||
then(function(result) {
|
||||
console.log(query);
|
||||
query=null;
|
||||
return result;
|
||||
},function(error) {
|
||||
console.error(error);
|
||||
query=null;
|
||||
return error;
|
||||
});
|
||||
};
|
||||
|
||||
return {
|
||||
initDB: function() {
|
||||
if(window.cordova){
|
||||
//self.db = sqlitePlugin.openDatabase({name: "data.db", location: 2, createFromLocation: 1});
|
||||
self.db = $cordovaSQLite.openDB("raataar_wrk.db");
|
||||
} else {
|
||||
self.db = window.openDatabase('raataar_wrk.db','1','my',800*1024); // only available when WebSQL is available in Browser
|
||||
}
|
||||
console.log('Database opened');
|
||||
return self.db;
|
||||
},
|
||||
setBuys: function(itemName,itemBild) {
|
||||
query="INSERT INTO buys (Name, Bild) VALUES (?,?);";
|
||||
return $cordovaSQLite.execute(self.db,query,[itemName,itemBild]).
|
||||
then(function(result) {
|
||||
console.log("Gespeichert");
|
||||
query=null;
|
||||
}, function(error) {
|
||||
console.error(error);
|
||||
});
|
||||
},
|
||||
getAllBuys: function(){
|
||||
var ArrayQ=[];
|
||||
query="SELECT * FROM buys order by id ASC";
|
||||
return $cordovaSQLite.execute(self.db,query).
|
||||
then(function(result) {
|
||||
for(j=0;j<result.rows.length;j++){
|
||||
var List={};
|
||||
//console.log(result.rows.item(j));
|
||||
List.name=result.rows.item(j).Name;
|
||||
List.bild=result.rows.item(j).Bild;
|
||||
ArrayQ.push(List);
|
||||
}
|
||||
//console.log(ArrayQ);
|
||||
return ArrayQ;
|
||||
},function(e){
|
||||
console.error(error);
|
||||
return error;
|
||||
});
|
||||
}
|
||||
};
|
||||
}]);
|
||||
BIN
www/raataar_wrk.db
Normal file
BIN
www/raataar_wrk.db
Normal file
Binary file not shown.
Reference in New Issue
Block a user