summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPliable Pixels <pliablepixels@gmail.com>2018-09-09 10:47:55 -0400
committerPliable Pixels <pliablepixels@gmail.com>2018-09-09 10:47:55 -0400
commitfd317367ce221b83137e6198b30159caf4b129ce (patch)
tree3e8aa78f48ce38269ef53cd95897037a17fa44db
parent33025d65e1e79041b8d4f1f4ab830ab9d2ebd667 (diff)
#701 moved to electron-build
-rwxr-xr-xdeprecated/make_desktop.sh (renamed from make_desktop.sh)0
-rwxr-xr-xdeprecated/prepare_desktop.sh (renamed from prepare_desktop.sh)0
-rw-r--r--electron_js/icons/icon.icnsbin0 -> 111298 bytes
-rw-r--r--electron_js/icons/icon.icobin0 -> 370070 bytes
-rw-r--r--electron_js/main.js4
-rwxr-xr-xelectron_js/sync_versions.sh16
-rw-r--r--package.json72
-rw-r--r--[-rwxr-xr-x]www/js/DataModel.js6
-rwxr-xr-xwww/js/app.js41
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
new file mode 100644
index 00000000..55c2c9af
--- /dev/null
+++ b/electron_js/icons/icon.icns
Binary files differ
diff --git a/electron_js/icons/icon.ico b/electron_js/icons/icon.ico
new file mode 100644
index 00000000..36a0e09d
--- /dev/null
+++ b/electron_js/icons/icon.ico
Binary files 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/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) {