From fd317367ce221b83137e6198b30159caf4b129ce Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sun, 9 Sep 2018 10:47:55 -0400 Subject: #701 moved to electron-build --- deprecated/make_desktop.sh | 140 ++++++++++++++++++++++++++++++++++++++++++ deprecated/prepare_desktop.sh | 76 +++++++++++++++++++++++ electron_js/icons/icon.icns | Bin 0 -> 111298 bytes electron_js/icons/icon.ico | Bin 0 -> 370070 bytes electron_js/main.js | 4 +- electron_js/sync_versions.sh | 16 +++++ make_desktop.sh | 140 ------------------------------------------ package.json | 72 ++++++++++++++++++---- prepare_desktop.sh | 76 ----------------------- www/js/DataModel.js | 6 +- www/js/app.js | 41 +++++++++++-- 11 files changed, 337 insertions(+), 234 deletions(-) create mode 100755 deprecated/make_desktop.sh create mode 100755 deprecated/prepare_desktop.sh create mode 100644 electron_js/icons/icon.icns create mode 100644 electron_js/icons/icon.ico create mode 100755 electron_js/sync_versions.sh delete mode 100755 make_desktop.sh delete mode 100755 prepare_desktop.sh mode change 100755 => 100644 www/js/DataModel.js diff --git a/deprecated/make_desktop.sh b/deprecated/make_desktop.sh new file mode 100755 index 00000000..2d2b3134 --- /dev/null +++ b/deprecated/make_desktop.sh @@ -0,0 +1,140 @@ +#!/bin/bash +RED='\033[0;31m' +NC='\033[1m\033[0m' +GREEN='\033[0;32m' +ORANGE='\033[0;33m' +GREY='\033[0;37m' + + +err() { echo -e "${RED}$@${NC}"; } +warn() { echo -e "${ORANGE}$@${NC}"; } +success() { echo -e "${GREEN}$@${NC}"; } +debug() { echo -e "${GREY}->$@${NC}"; } + +exe() { debug "\$ $@" ; "$@" ; } + +if [ ! -d "desktop" ]; then + echo "You have not downloaded desktop images" + echo "Please run ./prepare_desktop.sh" + echo + exit +fi + +while [[ $# -gt 0 ]] +do + arg="$1" + case $arg in + -h|--help) + echo "./make_desktop.sh [--port|-p mac|linux32|linux64|linuxarm|win32|win64|arm|]" + echo " so -p linux will build linux32/64/arm as they all match linux" + echo " [--nocolor|nc] to disable color output" + echo + exit + ;; + + -p|--port) + PORT="$2" + shift + shift + ;; + -nc|--nocolor) + RED='' + NC='' + GREEN='' + ORANGE='' + GREY='' + shift + ;; + *) + echo "Unknown argument $1, ignoring..." + shift + ;; + esac +done + +[[ ! -z $PORT ]] && echo "Only creating build for $PORT" && PORT="-$PORT" + +echo ---------------------------------------------------- +echo Pliable Pixels Desktop build process +echo ---------------------------------------------------- +APPVER=`cat config.xml | grep "widget " | sed 's/.* version=\"\([^\"]*\)\" xmlns.*/\1/'` +APPVER+="D" +echo "Application version:$APPVER" + +declare -a app_ports=("desktop/zmNinja-mac.app/Contents/Resources" "desktop/zmNinja-linux32bit/resources" "desktop/zmNinja-linux64bit/resources" "desktop/zmNinja-win64bit/resources" "desktop/zmNinja-win32bit/resources" "desktop/zmNinja-linuxarm/resources") + +for i in "${app_ports[@]}" +do + if [[ "$i" =~ $PORT || -z $PORT ]]; then + : + else + warn "$i will be skipped (did not match $PORT)" + continue + fi + if [ -d "$i" ]; then + DIRNAME=$i + + if [ "${i}" == "desktop/zmNinja-mac.app/Contents/Resources" ]; then + BASENAME="desktop/zmNinja-mac.app/Contents" + else + BASENAME=`expr "$i" : '\(.*\)/resources'` + fi + + echo "------------------------------------------------------------------------" + success "Working on packaging $i" + echo "------------------------------------------------------------------------" + echo Creating paths... + exe rm -fr $i/app + exe mkdir $i/app + exe mkdir $i/app/node_modules + exe mkdir $i/app/www + exe mkdir $i/app/electron_js + + echo Copying over relevant node modules... + exe cp -R node_modules/electron-window-state $i/app/node_modules + exe cp -R node_modules/jsonfile $i/app/node_modules + exe cp -R node_modules/mkdirp $i/app/node_modules + exe cp -R node_modules/deep-equal $i/app/node_modules + exe cp -R node_modules/minimist $i/app/node_modules + exe cp -R node_modules/menu $i/app/node_modules + exe cp -R node_modules/clivas $i/app/node_modules + exe cp -R node_modules/keypress $i/app/node_modules + + echo Copying over zmNinja code... + exe cp package.json $i/app + exe cp -R www/* $i/app/www + exe cp electron_js/main.js $i/app/electron_js + exe cp www/ZMNINJA-LICENSE-DESKTOP-CLIENT.txt $BASENAME + echo $APPVER > $BASENAME/version + exe cp resources/icon.png $BASENAME + exe cd $i + cat app/www/js/DataModel.js | sed "s/var zmAppVersion[ ]*=[ ]*\"unknown\"/var zmAppVersion=\"$APPVER\"/" > app/www/js/DataModel.js.tmp + exe rm -fr app/www/js/DataModel.js + exe mv app/www/js/DataModel.js.tmp app/www/js/DataModel.js + + + rm -fr app.asar + + # No idea why but asar is causing problems in windows + # main.js changes are not showig up. wuh? - Sep 29, 2017 + + #exe asar pack app app.asar + #read -p "Press a key to remove app dir for $i..." + #exe rm -fr app + cd - + #OSX ditto does a better job than zip! + #echo "Creating ZIP $ZIPNAME..." + #exe zip -r ../$ZIPNAME ../$DIRNAME + + success "Done!" + echo + + else # dirname exists + echo "$i does not exist, skipping" + fi +done +echo +warn "Note, SASS changes won't be reflected. Run 'ionic build' for that" +echo + + diff --git a/deprecated/prepare_desktop.sh b/deprecated/prepare_desktop.sh new file mode 100755 index 00000000..86d28945 --- /dev/null +++ b/deprecated/prepare_desktop.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +REL="v2.0.3" +#REL="v1.4.3" +WGET='wget' +WGET_ARGS='-q --show-progress' +UNZIP='unzip' +UNZIP_ARGS='-d' + +exe() { echo "\$ $@" ; "$@" ; } + +echo ---------------------------------------------------- +echo Pliable Pixels Desktop preparation process +echo Use this to download electron images +echo You really need to do this one time +echo ---------------------------------------------------- +echo +echo This will delete all files in desktop/ and also remove icon associations +read -p "Press a key to continue or Ctrl-C to break..." + + +iswget=`which ${WGET}` +if [ $? -ne 0 ]; then + echo "**ERROR** You need ${WGET} installed in your path to use this tool." + exit +fi +rm -rf desktop +mkdir -p desktop 2>/dev/null +cd desktop + + +declare -a release_names=("darwin-x64" "win32-x64" "win32-ia32" "linux-arm" "linux-x64" "linux-ia32") +declare -a release_renames=("zmNinja-mac.app" "zmNinja-win64bit" "zmNinja-win32bit" "zmNinja-linuxarm" "zmNinja-linux64bit" "zmNinja-linux32bit") + +for i in "${!release_names[@]}" +do + RELEASE="https://github.com/electron/electron/releases/download/${REL}/electron-${REL}-${release_names[$i]}.zip" + echo + echo "Working on ${RELEASE}..." + #echo "Rename to ${release_renames[$i]}" + echo "---------------------------------------------" + + echo "Downloading ${release_names[i]} ..." + exe ${WGET} ${RELEASE} ${WGET_ARGS} + + + echo "Decompressing image..." + if [ "${release_names[$i]}" != "darwin-x64" ]; then + exe mkdir electron-${REL}-${release_names[$i]} >/dev/null 2>&1 + exe rm -fr electron-${REL}-${release_names[$i]}/* >/dev/null 2>&1 + exe ${UNZIP} electron-${REL}-${release_names[$i]}.zip ${UNZIP_ARGS} electron-${REL}-${release_names[$i]} 2>/dev/null + exe mv electron-${REL}-${release_names[$i]} ${release_renames[$i]} >/dev/null 2>&1 + mv ${release_renames[$i]}/electron.exe ${release_renames[$i]}/zmNinja.exe >/dev/null 2>&1 + mv ${release_renames[$i]}/electron ${release_renames[$i]}/zmNinja >/dev/null 2>&1 + + else # OSX + exe ${UNZIP} electron-${REL}-${release_names[$i]}.zip 2>/dev/null + exe mv Electron.app ${release_renames[$i]} + + fi + + rm LICENSE* >/dev/null 2>&1 + rm version >/dev/null 2>&1 +done + +rm *.zip >/dev/null 2>&1 + +echo +echo ========================================================= +echo All done. Use ./make_desktop now +echo You need to associate icons for OSX and windows +echo for OSX +echo ========================================================= +echo + + diff --git a/electron_js/icons/icon.icns b/electron_js/icons/icon.icns new file mode 100644 index 00000000..55c2c9af Binary files /dev/null and b/electron_js/icons/icon.icns differ diff --git a/electron_js/icons/icon.ico b/electron_js/icons/icon.ico new file mode 100644 index 00000000..36a0e09d Binary files /dev/null and b/electron_js/icons/icon.ico differ diff --git a/electron_js/main.js b/electron_js/main.js index efac0235..9e2a9028 100644 --- a/electron_js/main.js +++ b/electron_js/main.js @@ -71,8 +71,10 @@ const mx = globalShortcut.register('CommandOrControl+Alt+F', () => { y: mainWindowState.y, width: mainWindowState.width, height: mainWindowState.height, + icon: path.join(__dirname, '/../icon.png'), webPreferences:{nodeIntegration:false}}); // + console.log (__dirname+'/../icon.png'); @@ -149,7 +151,7 @@ const mx = globalShortcut.register('CommandOrControl+Alt+F', () => { role: 'window', submenu: [ {role: 'minimize'}, - {role: 'close'} + {role: 'quit'} ] }, { diff --git a/electron_js/sync_versions.sh b/electron_js/sync_versions.sh new file mode 100755 index 00000000..6a02f924 --- /dev/null +++ b/electron_js/sync_versions.sh @@ -0,0 +1,16 @@ +#!/bin/bash +APPVER=`cat config.xml | grep "widget " | sed 's/.* version=\"\([^\"]*\)\" xmlns.*/\1/'` + +echo "Config.xml: App version: ${APPVER}" +echo "Syncing package.json and DataModel.js with this version..." + +cat www/js/DataModel.js | sed s/"var zmAppVersion =.*"/"var zmAppVersion = \"${APPVER}\";"/g > www/js/DataModel.js.tmp + +cat ./package.json | sed s/"\"version\":.*"/"\"version\":\"${APPVER}\","/g > package.json.tmp + +rm package.json +mv package.json.tmp package.json + +rm www/js/DataModel.js +mv www/js/DataModel.js.tmp www/js/DataModel.js +echo "Done!" diff --git a/make_desktop.sh b/make_desktop.sh deleted file mode 100755 index 2d2b3134..00000000 --- a/make_desktop.sh +++ /dev/null @@ -1,140 +0,0 @@ -#!/bin/bash -RED='\033[0;31m' -NC='\033[1m\033[0m' -GREEN='\033[0;32m' -ORANGE='\033[0;33m' -GREY='\033[0;37m' - - -err() { echo -e "${RED}$@${NC}"; } -warn() { echo -e "${ORANGE}$@${NC}"; } -success() { echo -e "${GREEN}$@${NC}"; } -debug() { echo -e "${GREY}->$@${NC}"; } - -exe() { debug "\$ $@" ; "$@" ; } - -if [ ! -d "desktop" ]; then - echo "You have not downloaded desktop images" - echo "Please run ./prepare_desktop.sh" - echo - exit -fi - -while [[ $# -gt 0 ]] -do - arg="$1" - case $arg in - -h|--help) - echo "./make_desktop.sh [--port|-p mac|linux32|linux64|linuxarm|win32|win64|arm|]" - echo " so -p linux will build linux32/64/arm as they all match linux" - echo " [--nocolor|nc] to disable color output" - echo - exit - ;; - - -p|--port) - PORT="$2" - shift - shift - ;; - -nc|--nocolor) - RED='' - NC='' - GREEN='' - ORANGE='' - GREY='' - shift - ;; - *) - echo "Unknown argument $1, ignoring..." - shift - ;; - esac -done - -[[ ! -z $PORT ]] && echo "Only creating build for $PORT" && PORT="-$PORT" - -echo ---------------------------------------------------- -echo Pliable Pixels Desktop build process -echo ---------------------------------------------------- -APPVER=`cat config.xml | grep "widget " | sed 's/.* version=\"\([^\"]*\)\" xmlns.*/\1/'` -APPVER+="D" -echo "Application version:$APPVER" - -declare -a app_ports=("desktop/zmNinja-mac.app/Contents/Resources" "desktop/zmNinja-linux32bit/resources" "desktop/zmNinja-linux64bit/resources" "desktop/zmNinja-win64bit/resources" "desktop/zmNinja-win32bit/resources" "desktop/zmNinja-linuxarm/resources") - -for i in "${app_ports[@]}" -do - if [[ "$i" =~ $PORT || -z $PORT ]]; then - : - else - warn "$i will be skipped (did not match $PORT)" - continue - fi - if [ -d "$i" ]; then - DIRNAME=$i - - if [ "${i}" == "desktop/zmNinja-mac.app/Contents/Resources" ]; then - BASENAME="desktop/zmNinja-mac.app/Contents" - else - BASENAME=`expr "$i" : '\(.*\)/resources'` - fi - - echo "------------------------------------------------------------------------" - success "Working on packaging $i" - echo "------------------------------------------------------------------------" - echo Creating paths... - exe rm -fr $i/app - exe mkdir $i/app - exe mkdir $i/app/node_modules - exe mkdir $i/app/www - exe mkdir $i/app/electron_js - - echo Copying over relevant node modules... - exe cp -R node_modules/electron-window-state $i/app/node_modules - exe cp -R node_modules/jsonfile $i/app/node_modules - exe cp -R node_modules/mkdirp $i/app/node_modules - exe cp -R node_modules/deep-equal $i/app/node_modules - exe cp -R node_modules/minimist $i/app/node_modules - exe cp -R node_modules/menu $i/app/node_modules - exe cp -R node_modules/clivas $i/app/node_modules - exe cp -R node_modules/keypress $i/app/node_modules - - echo Copying over zmNinja code... - exe cp package.json $i/app - exe cp -R www/* $i/app/www - exe cp electron_js/main.js $i/app/electron_js - exe cp www/ZMNINJA-LICENSE-DESKTOP-CLIENT.txt $BASENAME - echo $APPVER > $BASENAME/version - exe cp resources/icon.png $BASENAME - exe cd $i - cat app/www/js/DataModel.js | sed "s/var zmAppVersion[ ]*=[ ]*\"unknown\"/var zmAppVersion=\"$APPVER\"/" > app/www/js/DataModel.js.tmp - exe rm -fr app/www/js/DataModel.js - exe mv app/www/js/DataModel.js.tmp app/www/js/DataModel.js - - - rm -fr app.asar - - # No idea why but asar is causing problems in windows - # main.js changes are not showig up. wuh? - Sep 29, 2017 - - #exe asar pack app app.asar - #read -p "Press a key to remove app dir for $i..." - #exe rm -fr app - cd - - #OSX ditto does a better job than zip! - #echo "Creating ZIP $ZIPNAME..." - #exe zip -r ../$ZIPNAME ../$DIRNAME - - success "Done!" - echo - - else # dirname exists - echo "$i does not exist, skipping" - fi -done -echo -warn "Note, SASS changes won't be reflected. Run 'ionic build' for that" -echo - - diff --git a/package.json b/package.json index 7914af94..5d6c70b5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "com.pliablepixels.zmninjapro", + "name": "zmninjapro", "description": "Home security mobile app for ZoneMinder", - "version": "1.4.1", + "version":"1.3.018", "displayName": "zmNinja", "author": "Pliable Pixels", "license": "custom see LICENSE.md", @@ -114,25 +114,75 @@ }, "scripts": { "electron": "electron .", - "pack": "electron-builder -mw --dir", - "dist": "electron-builder -mw" + "dist-mac": "./electron_js/sync_versions.sh && electron-builder -m", + "dist-win": "./electron_js/sync_versions.sh && electron-builder -w", + "dist-lin": "./electron_js/sync_versions.sh && electron-builder -l", + "dist-all": "./electron_js/sync_versions.sh && electron-builder -mwl" + }, "main": "electron_js/main.js", + + "build": { - "asar": true, - "appId": "com.pliablepixels.zmninja_pro", + "appId": "com.pliablepixels.zmninjapro", + "productName":"zmninjapro", + "compression": "normal", + "asar":true, + "directories": { + "buildResources": "electron_js/icons" + }, "files": [ "electron_js/main.js", - "www/**/*" + "www/**/*", + "!node_modules/**/*" + ], + "extraResources": [ + "node_modules/electron-window-state/**/*", + "node_modules/jsonfile/**/*", + "node_modules/mkdirp/**/*", + "node_modules/deep-equal/**/*", + "node_modules/minimist/**/*", + "node_modules/menu/**/*", + "node_modules/clivas/**/*", + "node_modules/keypress/**/*" + ], + + "extraFiles": [ + { + "from":"resources/", + "to": "resources/app", + "filter": "icon.png" + }], + "mac": { "category": "productivity", - "icon": "resources/icon.png", - "target": "zip" + "target": "dmg", + "icon": "icon.png" }, "win": { - "icon": "resources/icon.png", - "target": "portable" + "icon": "icon.ico", + "target": [{ + "target": "nsis", + "arch": [ + "x64", + "ia32" + ] + }] + }, + "linux": { + "category": "Utility", + "target": [{ + "target": "AppImage", + + "arch": [ + "x64", + "ia32", + "armv7l" + + ]} + + ] } } } diff --git a/prepare_desktop.sh b/prepare_desktop.sh deleted file mode 100755 index 86d28945..00000000 --- a/prepare_desktop.sh +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/bash - -REL="v2.0.3" -#REL="v1.4.3" -WGET='wget' -WGET_ARGS='-q --show-progress' -UNZIP='unzip' -UNZIP_ARGS='-d' - -exe() { echo "\$ $@" ; "$@" ; } - -echo ---------------------------------------------------- -echo Pliable Pixels Desktop preparation process -echo Use this to download electron images -echo You really need to do this one time -echo ---------------------------------------------------- -echo -echo This will delete all files in desktop/ and also remove icon associations -read -p "Press a key to continue or Ctrl-C to break..." - - -iswget=`which ${WGET}` -if [ $? -ne 0 ]; then - echo "**ERROR** You need ${WGET} installed in your path to use this tool." - exit -fi -rm -rf desktop -mkdir -p desktop 2>/dev/null -cd desktop - - -declare -a release_names=("darwin-x64" "win32-x64" "win32-ia32" "linux-arm" "linux-x64" "linux-ia32") -declare -a release_renames=("zmNinja-mac.app" "zmNinja-win64bit" "zmNinja-win32bit" "zmNinja-linuxarm" "zmNinja-linux64bit" "zmNinja-linux32bit") - -for i in "${!release_names[@]}" -do - RELEASE="https://github.com/electron/electron/releases/download/${REL}/electron-${REL}-${release_names[$i]}.zip" - echo - echo "Working on ${RELEASE}..." - #echo "Rename to ${release_renames[$i]}" - echo "---------------------------------------------" - - echo "Downloading ${release_names[i]} ..." - exe ${WGET} ${RELEASE} ${WGET_ARGS} - - - echo "Decompressing image..." - if [ "${release_names[$i]}" != "darwin-x64" ]; then - exe mkdir electron-${REL}-${release_names[$i]} >/dev/null 2>&1 - exe rm -fr electron-${REL}-${release_names[$i]}/* >/dev/null 2>&1 - exe ${UNZIP} electron-${REL}-${release_names[$i]}.zip ${UNZIP_ARGS} electron-${REL}-${release_names[$i]} 2>/dev/null - exe mv electron-${REL}-${release_names[$i]} ${release_renames[$i]} >/dev/null 2>&1 - mv ${release_renames[$i]}/electron.exe ${release_renames[$i]}/zmNinja.exe >/dev/null 2>&1 - mv ${release_renames[$i]}/electron ${release_renames[$i]}/zmNinja >/dev/null 2>&1 - - else # OSX - exe ${UNZIP} electron-${REL}-${release_names[$i]}.zip 2>/dev/null - exe mv Electron.app ${release_renames[$i]} - - fi - - rm LICENSE* >/dev/null 2>&1 - rm version >/dev/null 2>&1 -done - -rm *.zip >/dev/null 2>&1 - -echo -echo ========================================================= -echo All done. Use ./make_desktop now -echo You need to associate icons for OSX and windows -echo for OSX -echo ========================================================= -echo - - diff --git a/www/js/DataModel.js b/www/js/DataModel.js old mode 100755 new mode 100644 index eb5cd7d7..ea8bd9b2 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -16,7 +16,11 @@ angular.module('zmApp.controllers') var currentServerMultiPortSupported = false; - var zmAppVersion = "unknown"; + /* + DO NOT TOUCH zmAppVersion + It is changed by sync_version.sh + */ + var zmAppVersion = "1.3.018"; var isBackground = false; var justResumed = false; var timeSinceResumed = -1; diff --git a/www/js/app.js b/www/js/app.js index 3b907780..ccc9593e 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -1458,10 +1458,14 @@ angular.module('zmApp', [ NVRDataModel.debug("**EXCEPTION**" + error.reason + " caused by " + error.cause); }; - if ($rootScope.platformOS == 'desktop') { + + if ($rootScope.platformOS == 'desktop' && 0) { window.addEventListener('beforeunload', function (ev) { + // I don't think this works on windows + // the callback is not called, it seems + // This was causing android reload issues - holy palooza /* if ($rootScope.platformOS != 'desktop') { ev.returnValue = "true"; @@ -1480,7 +1484,7 @@ angular.module('zmApp', [ }); }); - } + } // DPAD Handler - disabled for now // when ready add ionic cordova plugin add https://github.com/pliablepixels/cordova-plugin-android-tv.git @@ -1707,7 +1711,7 @@ angular.module('zmApp', [ $rootScope.dpadId = 0; - //console.log("HERE"); + if ($rootScope.apiValid == false && toState.name != 'app.invalidapi' && toState.data.requireLogin == true) { event.preventDefault(); @@ -1717,8 +1721,15 @@ angular.module('zmApp', [ } + + if (NVRDataModel.hasLoginInfo() || toState.data.requireLogin == false) { //console.log("State transition is authorized"); + NVRDataModel.debug ("Setting last-desktop-state to:"+JSON.stringify(toState)); + localforage.setItem('last-desktop-state', { + 'name': toState.name, + 'params': toState.params + }); $rootScope.dpadState = toState.name.replace("app.", ""); return; } else { @@ -1745,6 +1756,16 @@ angular.module('zmApp', [ return; } + // right about now, store last-state as the callback doesn't seem + // to work in Windows + + + NVRDataModel.debug ("Setting last-desktop-state to:"+JSON.stringify(toState)); + localforage.setItem('last-desktop-state', { + 'name': toState, + 'params': toParams + }); + return; }); @@ -2000,20 +2021,30 @@ angular.module('zmApp', [ localforage.getItem('last-desktop-state') .then(function (succ) { - //console.log ("FOUND STATE" + JSON.stringify(succ) + ":"+succ); + console.log ("FOUND STATE" + JSON.stringify(succ) + ":"+succ); + + // sanitize this + if (!succ.name || typeof succ.name !== 'string') {succ.name = "app.montage"}; + + if (!succ.params) {succ.params = {}}; if (succ) { - if (succ.name == 'app.invalidapi' || succ.name == 'app.refresh' || succ.name == 'app.importantmessage') { + if (succ.name == 'app.invalidapi' || succ.name == 'app.refresh' || succ.name == 'app.importantmessage' || succ.name == "app.first-use" || !succ.name) { succ.name = 'app.montage'; + localforage.setItem('last-desktop-state', succ.name); } $rootScope.lastState = succ.name; if ($rootScope.lastState.indexOf("app.") == -1) { $rootScope.lastState = "app." + $rootScope.lastState; + + } $rootScope.lastStateParam = succ.params; NVRDataModel.debug("last state=" + $rootScope.lastState + " param=" + $rootScope.lastStateParam); + + } loadServices(); }, function (err) { -- cgit v1.2.3