diff --git a/gulpfile.js b/gulpfile.js
index 32cf1240..67fb101d 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -42,7 +42,7 @@ function makePackage(platform, arch) {
name: packageJson.name,
platform: platform,
arch: arch,
- version: '0.34.3',
+ version: '0.35.1',
out: './release',
prune: true,
overwrite: true,
diff --git a/package.json b/package.json
index d86c6255..2ce631c6 100644
--- a/package.json
+++ b/package.json
@@ -12,7 +12,7 @@
"devDependencies": {
"electron-connect": "^0.3.3",
"electron-packager": "^5.1.0",
- "electron-prebuilt": "^0.34.3",
+ "electron-prebuilt": "^0.35.1",
"gulp": "^3.9.0",
"gulp-jsbeautifier": "^1.0.1"
}
diff --git a/src/common/osVersion.js b/src/common/osVersion.js
new file mode 100644
index 00000000..8b320fbb
--- /dev/null
+++ b/src/common/osVersion.js
@@ -0,0 +1,7 @@
+var os = require('os');
+var release_split = os.release().split('.');
+
+module.exports = {
+ major: parseInt(release_split[0]),
+ minor: parseInt(release_split[1])
+};
diff --git a/src/index.js b/src/index.js
index 0d640a2f..ce0d1696 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,6 +1,7 @@
'use strict';
-var remote = require('remote');
+const electron = require('electron');
+const remote = electron.remote;
var url = require('url');
var contextMenu = require('./menus/context');
@@ -8,7 +9,7 @@ var contextMenu = require('./menus/context');
var webView = document.getElementById('mainWebview');
try {
- var configFile = remote.require('app').getPath('userData') + '/config.json';
+ var configFile = electron.remote.app.getPath('userData') + '/config.json';
var config = require(configFile);
if (config.url) {
webView.setAttribute('src', config.url);
@@ -32,10 +33,10 @@ webView.addEventListener('page-title-set', function(e) {
// Open external link in default browser.
webView.addEventListener('new-window', function(e) {
- var currentUrl = url.parse(webView.getUrl());
- var destUrl = url.parse(e.url);
+ var currentURL = url.parse(webView.getURL());
+ var destURL = url.parse(e.url);
// Open in browserWindow. for exmaple, attached files.
- if (currentUrl.host === destUrl.host) {
+ if (currentURL.host === destURL.host) {
window.open(e.url, 'Mattermost');
}
else {
@@ -60,12 +61,11 @@ var showUnreadBadge = function(unreadCount) {
}
break;
case 'darwin':
- var app = remote.require('app');
if (unreadCount > 0) {
- app.dock.setBadge(unreadCount.toString());
+ remote.app.dock.setBadge(unreadCount.toString());
}
else {
- app.dock.setBadge('');
+ remote.app.dock.setBadge('');
}
break;
default:
diff --git a/src/main.js b/src/main.js
index 1044389c..62324895 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,10 +1,11 @@
'use strict';
-var app = require('app'); // Module to control application life.
-var BrowserWindow = require('browser-window'); // Module to create native browser window.
-var Menu = require('menu');
-var Tray = require('tray');
-var ipc = require('ipc');
+const electron = require('electron');
+const app = electron.app; // Module to control application life.
+const BrowserWindow = electron.BrowserWindow; // Module to create native browser window.
+const Menu = electron.Menu;
+const Tray = electron.Tray;
+const ipc = electron.ipcMain;
var appMenu = require('./menus/app');
var client = null;
@@ -21,6 +22,9 @@ var mainWindow = null;
var trayIcon = null;
var willAppQuit = false;
+// For toast notification on windows
+app.setAppUserModelId('yuya-oc.electron-mattermost');
+
// Quit when all windows are closed.
app.on('window-all-closed', function() {
// On OS X it is common for applications and their menu bar
@@ -56,10 +60,10 @@ app.on('ready', function() {
trayIcon.setToolTip(app.getName());
var tray_menu = require('./menus/tray').createDefault();
trayIcon.setContextMenu(tray_menu);
- trayIcon.on('clicked', function() {
+ trayIcon.on('click', function() {
mainWindow.focus();
});
- trayIcon.on('balloon-clicked', function() {
+ trayIcon.on('balloon-click', function() {
mainWindow.focus();
});
ipc.on('notified', function(event, arg) {
@@ -79,7 +83,7 @@ app.on('ready', function() {
});
// and load the index.html of the app.
- mainWindow.loadUrl('file://' + __dirname + '/index.html');
+ mainWindow.loadURL('file://' + __dirname + '/index.html');
// Open the DevTools.
// mainWindow.openDevTools();
diff --git a/src/menus/app.js b/src/menus/app.js
index f9a43273..dacc903e 100644
--- a/src/menus/app.js
+++ b/src/menus/app.js
@@ -1,9 +1,10 @@
'use strict';
-var Menu = require('menu');
+const electron = require('electron');
+const Menu = electron.Menu;
var createTemplate = function(mainWindow) {
- var app_name = require('app').getName()
+ var app_name = electron.app.getName();
var first_menu_name = (process.platform === 'darwin') ? app_name : 'File';
var template = [];
template.push({
@@ -14,13 +15,13 @@ var createTemplate = function(mainWindow) {
}, {
label: 'Settings',
click: function(item, focusedWindow) {
- mainWindow.loadUrl('file://' + __dirname + '/../settings.html');
+ mainWindow.loadURL('file://' + __dirname + '/../settings.html');
}
}, {
label: 'Quit',
accelerator: 'CmdOrCtrl+Q',
click: function(item, focusedWindow) {
- require('app').quit();
+ electron.app.quit();
}
}]
});
diff --git a/src/menus/context.js b/src/menus/context.js
index 72f46788..7183f7c3 100644
--- a/src/menus/context.js
+++ b/src/menus/context.js
@@ -1,8 +1,8 @@
'use strict';
-var remote = require('remote');
-var Menu = remote.require('menu');
-var MenuItem = remote.require('menu-item');
+const remote = require('electron').remote;
+const Menu = remote.Menu;
+const MenuItem = remote.MenuItem;
var createDefault = function() {
var menu = new Menu();
diff --git a/src/menus/tray.js b/src/menus/tray.js
index 8796a814..58e70e08 100644
--- a/src/menus/tray.js
+++ b/src/menus/tray.js
@@ -1,7 +1,8 @@
'use strict';
-var Menu = require('menu');
-var MenuItem = require('menu-item');
+const electron = require('electron');
+const Menu = electron.Menu;
+const MenuItem = electron.MenuItem;
var createDefault = function() {
var menu = new Menu();
diff --git a/src/settings.html b/src/settings.html
index 453b221c..85931cd7 100644
--- a/src/settings.html
+++ b/src/settings.html
@@ -15,11 +15,11 @@