summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--ISSUE_TEMPLATE.md6
-rw-r--r--electron_js/main.js12
-rw-r--r--electron_js/package.json2
-rwxr-xr-xmake_desktop.sh14
-rw-r--r--package.json35
-rwxr-xr-xwww/js/DataModel.js31
-rw-r--r--www/js/MontageCtrl.js1
8 files changed, 86 insertions, 16 deletions
diff --git a/.gitignore b/.gitignore
index 11e2fe94..602fed5a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,6 +18,7 @@ zmNinja.sublime-workspace
typings/
jsconfig.json
package-lock.json
+dist/
diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md
index fd1464b2..837bdbf4 100644
--- a/ISSUE_TEMPLATE.md
+++ b/ISSUE_TEMPLATE.md
@@ -6,10 +6,14 @@ Before you create an issue, please make sure you have read the [FAQ](https://git
(example only, please edit this line) Android 6.0 Marshmallow
-**The version of the app you are reporting:**
+**The version of zmNinja you are reporting:**
(example only, please edit this line) 1.1
+**The version of ZoneMinder you are using:**
+
+(example only, please edit this line) 1.30.4
+
**Device details:**
(example only, please edit this line) Moto G
diff --git a/electron_js/main.js b/electron_js/main.js
index 2d2f4ec4..efac0235 100644
--- a/electron_js/main.js
+++ b/electron_js/main.js
@@ -2,6 +2,8 @@ const electron = require('electron');
const windowStateKeeper = require('electron-window-state');
const {app, globalShortcut, Menu} = electron;
const {dialog} = require('electron')
+const path = require('path');
+const url = require('url');
// Module to create native browser window.
const {BrowserWindow} = electron;
@@ -98,7 +100,15 @@ const mx = globalShortcut.register('CommandOrControl+Alt+F', () => {
}
// and load the index.html of the app.
- win.loadURL(`file://${__dirname}/index.html`);
+
+ const startUrl = process.env.ELECTRON_START_URL || url.format({
+ pathname: path.join(__dirname, '/../www/index.html'),
+ protocol: 'file:',
+ slashes: true
+ });
+
+ win.loadURL(startUrl);
+ //win.loadURL(`file://${__dirname}/index.html`);
// Create the Application's main menu
diff --git a/electron_js/package.json b/electron_js/package.json
index bcab2f07..def2632f 100644
--- a/electron_js/package.json
+++ b/electron_js/package.json
@@ -1,5 +1,5 @@
{
"name" : "zmNinjaDesktop",
"version" : "0.1.0",
- "main" : "main.js"
+ "main" : "./main.js"
}
diff --git a/make_desktop.sh b/make_desktop.sh
index 3c20b42f..2d2b3134 100755
--- a/make_desktop.sh
+++ b/make_desktop.sh
@@ -87,6 +87,9 @@ do
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
@@ -98,15 +101,16 @@ do
exe cp -R node_modules/keypress $i/app/node_modules
echo Copying over zmNinja code...
- exe cp -R www/* $i/app/
- exe cp electron_js/* $i/app
+ 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/js/DataModel.js | sed "s/var zmAppVersion[ ]*=[ ]*\"unknown\"/var zmAppVersion=\"$APPVER\"/" > app/js/DataModel.js.tmp
- exe rm -fr app/js/DataModel.js
- exe mv app/js/DataModel.js.tmp app/js/DataModel.js
+ 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
diff --git a/package.json b/package.json
index 0eb0cf1f..7914af94 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,10 @@
{
"name": "com.pliablepixels.zmninjapro",
- "version": "1.3.005",
+ "description": "Home security mobile app for ZoneMinder",
+ "version": "1.4.1",
"displayName": "zmNinja",
+ "author": "Pliable Pixels",
+ "license": "custom see LICENSE.md",
"cordova": {
"platforms": [
"ios",
@@ -100,10 +103,36 @@
},
"devDependencies": {
"bower": "^1.8.4",
+ "electron": "^2.0.8",
+ "electron-builder": "^20.28.3",
"gulp": "^3.9.1",
"gulp-concat": "^2.6.1",
"gulp-minify-css": "^1.2.4",
"gulp-rename": "^1.2.3",
- "gulp-sass": "^4.0.1"
+ "gulp-sass": "^4.0.1",
+ "npm-version": "^1.1.0"
+ },
+ "scripts": {
+ "electron": "electron .",
+ "pack": "electron-builder -mw --dir",
+ "dist": "electron-builder -mw"
+ },
+ "main": "electron_js/main.js",
+ "build": {
+ "asar": true,
+ "appId": "com.pliablepixels.zmninja_pro",
+ "files": [
+ "electron_js/main.js",
+ "www/**/*"
+ ],
+ "mac": {
+ "category": "productivity",
+ "icon": "resources/icon.png",
+ "target": "zip"
+ },
+ "win": {
+ "icon": "resources/icon.png",
+ "target": "portable"
+ }
}
-} \ No newline at end of file
+}
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
index e6df5e3c..eb5cd7d7 100755
--- a/www/js/DataModel.js
+++ b/www/js/DataModel.js
@@ -2078,16 +2078,37 @@ angular.module('zmApp.controllers')
}
if (serverFound) {
+ if (!/^https?:\/\//i.test(multiservers[j].Server.Hostname)) {
+ multiservers[j].Server.Hostname = 'http://' + multiservers[j].Server.Hostname;
+ }
+
debug("Monitor " + monitors[i].Monitor.Id + " has a recording server hostname of " + multiservers[j].Server.Hostname);
+
+
// Now here is the logic, I need to retrieve serverhostname,
// and slap on the host protocol and path. Meh.
var p = URI.parse(loginData.streamingurl);
var s = URI.parse(multiservers[j].Server.Hostname);
- // debug("recording server parsed is " + JSON.stringify(s));
- // debug("portal parsed is " + JSON.stringify(p));
+ /* if (!p.port && !isNaN(p.path)) {
+ debug ("Portal: port path reversed?");
+ var tp = p.port;
+ p.port = p.path;
+ p.path = tp;
+ }
+
+ if (!s.port && !isNaN(s.path)) {
+ debug ("Recording: port path reversed?");
+ var tp = s.port;
+ s.port = s.path;
+ s.path = tp;
+ }
+*/
+
+ debug("recording server parsed is " + JSON.stringify(s));
+ debug("portal parsed is " + JSON.stringify(p));
var st = "";
var baseurl = "";
@@ -2106,13 +2127,13 @@ angular.module('zmApp.controllers')
st += s.host;
- // console.log ("STEP 1: ST="+st);
+ //console.log ("STEP 1: ST="+st);
if (zmsPort <= 0 || loginData.disableSimulStreaming) {
if (p.port || s.port) {
st += (s.port ? ":" + s.port : ":" + p.port);
streamingurl = st;
- // console.log ("STEP 2 no ZMS: ST="+st);
+ //console.log ("STEP 2 no ZMS: ST="+st);
}
@@ -2122,7 +2143,7 @@ angular.module('zmApp.controllers')
if (p.port || s.port)
st += (s.port ? ":" + s.port : ":" + p.port);
- // console.log ("STEP 2: ST="+st);
+ //console.log ("STEP 2: ST="+st);
}
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js
index 41f97664..37993b1e 100644
--- a/www/js/MontageCtrl.js
+++ b/www/js/MontageCtrl.js
@@ -1751,6 +1751,7 @@ angular.module('zmApp.controllers')
return "";
}
+ //console.log ("STREAMING="+monitor.Monitor.streamingURL);
stream = monitor.Monitor.streamingURL +
"/nph-zms?mode=" + getMode() +
"&monitor=" + monitor.Monitor.Id +