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 @@