From f0dc92c50972d35141685738b4a32f031db72012 Mon Sep 17 00:00:00 2001 From: hackbard <hackbard@hackdaworld.org> Date: Mon, 25 Jul 2016 22:08:56 +0200 Subject: [PATCH] still idb problems, need to wait until idb init is finished! --- www/index.html | 84 ++++++++++++++++++++++++++++++++++++++++ www/js/app.js | 29 ++++++++++++++ www/js/config.js | 14 +++++++ www/js/ctrl.js | 91 ++++++++++++++++++++++++++++++++++++++++++++ www/js/idbsrv.js | 99 ++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 317 insertions(+) create mode 100644 www/index.html create mode 100644 www/js/app.js create mode 100644 www/js/config.js create mode 100644 www/js/ctrl.js create mode 100644 www/js/idbsrv.js diff --git a/www/index.html b/www/index.html new file mode 100644 index 0000000..b7e08ee --- /dev/null +++ b/www/index.html @@ -0,0 +1,84 @@ +<!DOCTYPE html> +<html> + + <head> + <meta charset="utf-8"> + <meta name="viewport" + content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> + <title>Staff Line</title> + + <link href="lib/ionic/css/ionic.css" rel="stylesheet"> + <link href="css/style.css" rel="stylesheet"> + + <!-- IF using Sass (run gulp sass first), + then uncomment below and remove the CSS includes above + <link href="css/ionic.app.css" rel="stylesheet"> + --> + + <!-- jquery --> + <script src="js/jquery-2.2.3.min.js"></script> + + <!-- ionic/angularjs js --> + <script src="lib/ionic/js/ionic.bundle.js"></script> + + <!-- cordova script (this will be a 404 during development) --> + <script src="cordova.js"></script> + + <!-- application js --> + <script src="js/jsutils/utils.js"></script> + <script src="js/jsutils/idb.js"></script> + <script src="js/jsutils/xhr.js"></script> + <script src="js/idbsrv.js"></script> + <script src="js/config.js"></script> + <script src="js/app.js"></script> + <script src="js/ctrl.js"></script> + </head> + + <body ng-app="staffline" ng-controller="slctrl"> + + + +<ion-side-menus> + <ion-side-menu-content> + <ion-header-bar class="bar-dark"> + <button menu-toggle + class="button icon ion-navicon"> + </button> + <h1 class="title">{{selected_app.name}}</h1> + </ion-header-bar> + + <!-- + <ion-content ng-repeat="s in subapps" id="{{s.id}}"> + {{s.name}} ... + </ion-content> + --> + + <ion-content id="settings" style="display:none" + ng-controller="settingsctrl"> + <h1 ng-repeat="t in test">{{t}}</h1> + </ion-content> + </ion-side-menu-content> + + <ion-side-menu side="left" expose-aside-when="large"> + <ion-header-bar class="bar-dark"> + <h1 class="title">Staff Line</h1> + </ion-header-bar> + <ion-content> + <ion-list> + <ion-item menu-close + ng-repeat="s in subapps" + class="item item-icon-right" + ng-click="app_click(s)"> + {{s.name}} + <i class="icon {{s.icon}}"></i> + </ion-item> + </ion-list> + </ion-content> + </ion-side-menu> +</ion-side-menus> + + + </body> + +</html> + diff --git a/www/js/app.js b/www/js/app.js new file mode 100644 index 0000000..a06b415 --- /dev/null +++ b/www/js/app.js @@ -0,0 +1,29 @@ +// staffline - crew organization app + +var appmod = angular.module('staffline',['ionic','idbmod']); + + +/* +appmod.run(function($ionicPlatform) { + $ionicPlatform.ready(function() { + if(window.cordova && window.cordova.plugins.Keyboard) { + cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); + cordova.plugins.Keyboard.disableScroll(true); + } + if(window.StatusBar) { + StatusBar.styleDefault(); + } + }); +}); + +appmod.config(function($stateProvider, $urlRouterProvider) { + + $stateProvider.state('staffline',{ + abstract: true, + controller: 'stafflinectrl' + }); + + $urlRouterProvider.otherwise('staffline'); +}); +*/ + diff --git a/www/js/config.js b/www/js/config.js new file mode 100644 index 0000000..1b0c982 --- /dev/null +++ b/www/js/config.js @@ -0,0 +1,14 @@ +// staffline indexed db stores + +var db_settings_store = { + keyname: true, + keytype: 'autoIncrement', + content: { + 1: [ + { + 'passwd': "" + } + ] + } +} + diff --git a/www/js/ctrl.js b/www/js/ctrl.js new file mode 100644 index 0000000..c9d6d71 --- /dev/null +++ b/www/js/ctrl.js @@ -0,0 +1,91 @@ +// staffline - crew organization app + +appmod.controller('slctrl',function($scope,idbsrv) { + + $scope.subapps = [ + { + name: "Time Clock", + icon: "ion-android-time", + id: "timeclock" + }, + { + name: "Roster", + icon: "ion-person-stalker", + id: "roster" + }, + { + name: "Brainstorming", + icon: "ion-android-chat", + id: "brainstorming" + }, + { + name: "ToDo", + icon: "ion-clipboard", + id: "todo" + }, + { + name: "Settings", + icon: "ion-android-settings", + id: "settings" + } + ]; + + $scope.selected_app = $scope.subapps[0]; + + $scope.app_click = function(app) { + $scope.selected_app=app; + for(s in $scope.subapps) { + var id=$scope.subapps[s].id; + if(app.id==id) { + $('#'+id).css('display','block'); + cl("enabled "+id); + } + else { + $('#'+id).css('display','none'); + cl("disabled "+id); + } + } + console.log("selecting app "+app.name); + } + + // indexxed db + var dbdel=false; + //dbdel=true; + if(!dbdel) { + $scope.idbstores = { + 'settings': db_settings_store + }; + idbsrv.init('staffline',function(event) { + cl("indexed db initialized successfuly!"); + },1,$scope.idbstores,function(event) { + objdbg(event); + }).then(function() { + idbsrv.get_store_items('settings',undefined,0,-1).then( + function(item) { + for(var i in item); + console.log("passwd: "+item[i].passwd); + } + ); + }); + } + else { + idb.name='staffline'; + idbsrv.del() + } + +}); + +appmod.controller('settingsctrl',function($scope,idbsrv) { + +/* + idbsrv.get_store_items('settings',undefined,0,-1),then(function(item) { + for(var i in item); + if(item[i].passwd==undefined) + $scope.test = [ "Enter passwd" ]; + else + $scope.test = [ "Verify passwd" ]; + }); +*/ + +}); + diff --git a/www/js/idbsrv.js b/www/js/idbsrv.js new file mode 100644 index 0000000..894fea1 --- /dev/null +++ b/www/js/idbsrv.js @@ -0,0 +1,99 @@ +// indexed db service + +var idbmod = angular.module('idbmod',[]); + +idbmod.factory("idbsrv",function($q) { + var srvobject={}; + srvobject.init=function(name,successcb,version,stores,upgradecb) { + var defer=$q.defer(); + idb.init(name,function(event) { + if(successcb!==undefined) + successcb(event); + defer.resolve(idb.handle); + },version,stores); + return defer.promise; + }; + srvobject.del_store=function(store,callback) { + var defer=$q.defer(); + idb.del_store(store,function() { + if(callback!==undefined) + callback(); + defer.resolve(); + }); + return defer.promise; + }; + srvobject.add_store_item=function(store,item,callback) { + var defer=$q.defer(); + idb.add_store_item(store,item,function(event) { + if(callback!==undefined) + callback(event); + defer.resolve(); + }); + return defer.promise; + }; + srvobject.del_store_item=function(store,num,callback) { + var defer=$q.defer(); + idb.del_store_item(store,num,function(event) { + if(callback!==undefined) + callback(event); + defer.resolve(); + }); + return defer.promise; + }; + srvobject.update_store_item=function(store,num,nitem,callback) { + var defer=$q.defer(); + idb.update_store_item(store,num,nitem,function(event) { + if(callback!==undefined) + callback(event) + defer.resolve(); + }); + return defer.promise; + }; + srvobject.get_store_items=function(store,callback,low,up) { + var defer=$q.defer(); + idb.get_store_items(store,function(item) { + if(callback!==undefined) + callback(item); + defer.resolve(item); + }); + return defer.promise; + }; + srvobject.get_item_by_key=function(store,key,callback) { + var defer=$q.defer(); + idb.get_item_by_key(store,key,function(item) { + if(callback!==undefined) + callback(item); + defer.resolve(); + }); + return defer.promise; + }; + srvobject.get_item_by_index=function(store,index,val,callback) { + var defer=$q.defer(); + idb.get_item_by_index(store,index,val,function(item) { + if(callback!==undefined) + callback(item); + defer.resolve(); + }); + return defer.promise; + }; + srvobject.del_item_by_key=function(store,key,callback) { + var defer=$q.defer(); + idb.del_item_by_key(store,key,function(event) { + if(callback!==undefined) + callback(event); + defer.resolve(); + }); + return defer.promise; + }; + srvobject.del=function(callback) { + var defer=$q.defer(); + idb.del(function() { + if(callback!==undefined) + callback(); + defer.resolve(); + }); + return defer.promise; + }; + return srvobject; +}); + -- 2.39.5