diff options
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | ISSUE_TEMPLATE.md | 6 | ||||
| -rw-r--r-- | electron_js/main.js | 12 | ||||
| -rw-r--r-- | electron_js/package.json | 2 | ||||
| -rwxr-xr-x | make_desktop.sh | 14 | ||||
| -rw-r--r-- | package.json | 35 | ||||
| -rwxr-xr-x | www/js/DataModel.js | 31 | ||||
| -rw-r--r-- | www/js/MontageCtrl.js | 1 |
8 files changed, 86 insertions, 16 deletions
@@ -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 + |
