diff --git a/circle.yml b/circle.yml
index 5a5b2462..08b563b8 100644
--- a/circle.yml
+++ b/circle.yml
@@ -10,9 +10,12 @@ machine:
- docker
dependencies:
+ cache_directories:
+ - "~/.electron"
+ - "src/node_modules"
post:
- - docker build -t yuya-oc/em-builder docker
- - docker run --rm -it -v `pwd`:/home/xclient/electron-mattermost yuya-oc/em-builder ./electron-mattermost/docker/package_in_docker.sh
+ - mkdir -p ~/.electron
+ - docker run --rm -it -v `pwd`:/home/xclient/electron-mattermost -v ~/.electron:/home/xclient/.electron yuyaoc/em-builder:dev ./electron-mattermost/docker/package_in_docker.sh
- mv release/electron-mattermost-win32-ia32 release/electron-mattermost-win32
- mv release/electron-mattermost-win32-x64 release/electron-mattermost-win64
- mv release/electron-mattermost-darwin-x64 release/electron-mattermost-osx
diff --git a/gulpfile.js b/gulpfile.js
index ffd8b459..4042483e 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -13,7 +13,7 @@ var electron = require('electron-connect').server.create({
});
var packager = require('electron-packager');
-var sources = ['**/*.js', '**/*.css', '**/*.html', '!**/node_modules/**', '!**/build/**', '!release/**'];
+var sources = ['**/*.js', '**/*.css', '**/*.html', '!**/node_modules/**', '!dist/**', '!release/**'];
gulp.task('prettify', ['prettify:sources', 'prettify:jsx']);
diff --git a/package.json b/package.json
index c81512be..50b9969c 100644
--- a/package.json
+++ b/package.json
@@ -28,7 +28,7 @@
"del": "^2.2.0",
"electron-connect": "^0.3.3",
"electron-packager": "^5.1.0",
- "electron-prebuilt": "0.36.3",
+ "electron-prebuilt": "0.36.7",
"esformatter": "^0.8.1",
"esformatter-jsx": "^4.0.6",
"gulp": "^3.9.0",
diff --git a/src/browser/index.jsx b/src/browser/index.jsx
index dc3324b3..a1097c75 100644
--- a/src/browser/index.jsx
+++ b/src/browser/index.jsx
@@ -142,7 +142,7 @@ var MainPage = React.createClass({
var handleNotificationClick = function() {
thisObj.handleSelect(index);
}
- return ()
});
var views_row = (
@@ -268,12 +268,26 @@ var MattermostView = React.createClass({
case 'onNotificationClick':
thisObj.props.onNotificationClick();
break;
- case 'console':
- console.log(event.args[0]);
- break;
}
});
+ webview.addEventListener('console-message', (e) => {
+ const message = `[${this.props.name}] ${e.message}`;
+ switch (e.level) {
+ case 0:
+ console.log(message);
+ break;
+ case 1:
+ console.warn(message);
+ break;
+ case 2:
+ console.error(message);
+ break;
+ default:
+ console.log(message);
+ break;
+ }
+ });
},
render: function() {
// 'disablewebsecurity' is necessary to display external images.
diff --git a/src/browser/webview/mattermost.js b/src/browser/webview/mattermost.js
index 6f1c2c98..6e6f8bf5 100644
--- a/src/browser/webview/mattermost.js
+++ b/src/browser/webview/mattermost.js
@@ -42,13 +42,18 @@ var unreadCountTimer = setInterval(function() {
// find active post-list.
var postLists = document.querySelectorAll('div.post-list__content');
- var post;
+ if (postLists.length === 0) {
+ return;
+ }
+ var post = null;
for (var i = 0; i < postLists.length; i++) {
if (isElementVisible(postLists[i])) {
post = postLists[i].children[0];
}
}
-
+ if (post === null) {
+ return;
+ }
// find latest post and save.
while (post = post.nextSibling) {
if (post.nextSibling === null) {
diff --git a/src/main.js b/src/main.js
index 8df87f72..c071f3fe 100644
--- a/src/main.js
+++ b/src/main.js
@@ -111,10 +111,10 @@ app.on('ready', function() {
}
// Create the browser window.
- var bounds_info_path = app.getPath("userData") + "/bounds-info.json";
+ var bounds_info_path = path.resolve(app.getPath("userData"), "bounds-info.json");
var window_options;
try {
- window_options = require(bounds_info_path);
+ window_options = JSON.parse(fs.readFileSync(bounds_info_path, 'utf-8'));
}
catch (e) {
// follow Electron's defaults