diff options
| -rwxr-xr-x | deprecated/make_desktop.sh (renamed from make_desktop.sh) | 0 | ||||
| -rwxr-xr-x | deprecated/prepare_desktop.sh (renamed from prepare_desktop.sh) | 0 | ||||
| -rw-r--r-- | electron_js/icons/icon.icns | bin | 0 -> 111298 bytes | |||
| -rw-r--r-- | electron_js/icons/icon.ico | bin | 0 -> 370070 bytes | |||
| -rw-r--r-- | electron_js/main.js | 4 | ||||
| -rwxr-xr-x | electron_js/sync_versions.sh | 16 | ||||
| -rw-r--r-- | package.json | 72 | ||||
| -rw-r--r--[-rwxr-xr-x] | www/js/DataModel.js | 6 | ||||
| -rwxr-xr-x | www/js/app.js | 41 |
9 files changed, 121 insertions, 18 deletions
diff --git a/make_desktop.sh b/deprecated/make_desktop.sh index 2d2b3134..2d2b3134 100755 --- a/make_desktop.sh +++ b/deprecated/make_desktop.sh diff --git a/prepare_desktop.sh b/deprecated/prepare_desktop.sh index 86d28945..86d28945 100755 --- a/prepare_desktop.sh +++ b/deprecated/prepare_desktop.sh diff --git a/electron_js/icons/icon.icns b/electron_js/icons/icon.icns Binary files differnew file mode 100644 index 00000000..55c2c9af --- /dev/null +++ b/electron_js/icons/icon.icns diff --git a/electron_js/icons/icon.ico b/electron_js/icons/icon.ico Binary files differnew file mode 100644 index 00000000..36a0e09d --- /dev/null +++ b/electron_js/icons/icon.ico 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/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/www/js/DataModel.js b/www/js/DataModel.js index eb5cd7d7..ea8bd9b2 100755..100644 --- 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) { |
