Initial-Release

This commit is contained in:
Carsten Hilmer
2016-08-05 00:46:43 +02:00
parent 38914d6e7b
commit 6a1387f45e
138 changed files with 159814 additions and 0 deletions

172
www/js/app.js Normal file
View File

@@ -0,0 +1,172 @@
// Ionic Starter App
// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
// 'starter.services' is found in services.js
// 'starter.controllers' is found in controllers.js
var db;
angular.module('starter', ['ionic', 'ngCordova', 'starter.controllers', 'starter.services'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
$rootScope.storeinit=99;
$rootScope.adfree=0;
$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);
// Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
// for form inputs)
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
// 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("pokedex.db", function (e) {
console.log(e);
});
}
/*
* Google-Stroe Initialisieren START
*/
function StoreInitsuccessHandler (result) {
$rootScope.storeinit=1;
inappbilling.getPurchases(purchasessuccess, purchasesfail);
}
function StoreIniterrorHandler (error) {
$rootScope.storeinit=0;
}
if((window.device && device.platform == "Android") && typeof inappbilling !== "undefined") {
inappbilling.init(StoreInitsuccessHandler, StoreIniterrorHandler, {showLog:true});
}
//FlateRate gekauft?
function purchasessuccess (result) {
var p = result[0];
if(p['productId'] == 'rosenflatrate') {
$rootScope.flatrate=1;
}
}
function purchasesfail (error) {
alert("ERROR: \r\n"+error );
}
/*
* Google-Stroe Initialisieren ENDE
*/
// Initialize database through $database service
db = $database.initDB();
if (window.StatusBar) {
// org.apache.cordova.statusbar required
StatusBar.styleDefault();
}
});
})
.config(function($stateProvider, $urlRouterProvider) {
// Ionic uses AngularUI Router which uses the concept of states
// Learn more here: https://github.com/angular-ui/ui-router
// Set up the various states which the app can be in.
// Each state's controller can be found in controllers.js
$stateProvider
// setup an abstract state for the tabs directive
.state('tab', {
url: '/tab',
abstract: true,
templateUrl: 'templates/tabs.html'
})
// Each tab has its own nav history stack:
.state('tab.dash', {
url: '/dash',
views: {
'tab-dash': {
templateUrl: 'templates/tab-dash.html',
controller: 'DashCtrl'
}
}
})
.state('tab.chats', {
url: '/chats',
views: {
'tab-chats': {
templateUrl: 'templates/tab-chats.html',
controller: 'ChatsCtrl'
}
}
})
.state('tab.chat-detail', {
url: '/chats/:chatId',
views: {
'tab-chats': {
templateUrl: 'templates/chat-detail.html',
controller: 'ChatDetailCtrl'
}
}
})
.state('tab.account', {
url: '/account',
views: {
'tab-account': {
templateUrl: 'templates/tab-account.html',
controller: 'AccountCtrl'
}
}
});
// if none of the above states are matched, use this as the fallback
$urlRouterProvider.otherwise('/tab/dash');
//$ionicConfigProvider.tabs.position('bottom');
});

11
www/js/controllers.js Normal file
View File

@@ -0,0 +1,11 @@
angular.module('starter.controllers', [])
.controller('DashCtrl', function($scope,$ionicPopup,$http, $database, $timeout,$rootScope, $cordovaFileTransfer,$cordovaFile,$ionicLoading,$state,$filter,$ionicModal) {
})
.controller('ChatsCtrl', function($scope, Chats) {
});

9
www/js/ng-cordova.min.js vendored Normal file

File diff suppressed because one or more lines are too long

84
www/js/services.js Normal file
View File

@@ -0,0 +1,84 @@
angular.module('starter.services', [])
.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("pokedex.db");
} else {
self.db = window.openDatabase('pokedex.db','1','my',800*1024); // only available when WebSQL is available in Browser
}
console.log('Database opened');
return self.db;
},
setBuys: function(itemName,itemBild,itemBildtext,itemKaufdatum,itemappimgpath,itemappimgpublicpath) {
query="INSERT INTO buys (Name, Bild, Bildtext, Kaufdatum, appimgpath, appimgpublicpath) VALUES (?,?,?,?,?,?);";
return $cordovaSQLite.execute(self.db,query,[itemName,itemBild,itemBildtext,itemKaufdatum,itemappimgpath,itemappimgpublicpath]).
then(function(result) {
console.log("Gespeichert");
query=null;
}, function(error) {
console.error(error);
});
},
deleteBuy: function(id) {
query="DELETE FROM buys WHERE ID = ?;";
return $cordovaSQLite.execute(self.db,query,[id]).
then(function(result) {
console.log("Gelöscht");
query=null;
}, function(error) {
console.error(error);
});
},
getAllBuys: function(){
var ArrayQ=[];
query="SELECT * FROM buys order by id DESC";
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.id=result.rows.item(j).id;
List.name=result.rows.item(j).Name;
List.bild=result.rows.item(j).Bild;
List.bildtext=result.rows.item(j).Bildtext;
List.kaufdatum=result.rows.item(j).Kaufdatum;
List.appimgpath=result.rows.item(j).appimgpath;
List.appimgpublicpath=result.rows.item(j).appimgpublicpath;
ArrayQ.push(List);
}
//console.log(ArrayQ);
return ArrayQ;
},function(e){
console.error(error);
return error;
});
}
};
}]);