diff --git a/README.md b/README.md index 8bb1cc46..e282f11c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@
Available for Windows, Mac and Linux.
-
DOWNLOAD HERE
+
DOWNLOAD HERE
Logo designed by Andriy Yurchenko
@@ -114,6 +114,7 @@ Riot Pushbullet Movim + Kaiwa Zyptonite LinkedIn @@ -124,9 +125,8 @@ Workplace FastMail Hibox -Cisco Spark Jandi - +Threema





































@@ -179,7 +179,8 @@ If you're comfortable getting up and running from a `git clone`, this method is #### Environment: -* Sencha Cmd 6.1.2.15 +* Sencha Cmd 6.1.2.15 (make sure to check "Compass extension" during install if you don't have installed yet) +* Ruby 2.3 * NPM 3.8.7 * Node.js 4.0.0 @@ -191,7 +192,20 @@ If you're comfortable getting up and running from a `git clone`, this method is 4. `npm run sencha:compile` 5. `npm start` ----------- +#### Compile on Ubuntu: + +These instructions were tested with Ubuntu 17.04. +1. Install dependencies: `sudo apt install nodejs-legacy npm git` +2. Build and install electron: `sudo npm install electron-prebuilt -g` +3. Install Sencha Cmd (non-free): https://www.sencha.com/products/extjs/cmd-download/ +4. Clone repository: `git clone https://github.com/saenzramiro/rambox.git` +5. Install npm dependencies: `npm install` +6. Configure `env-sample.js` and rename it to `env.js`. +7. Compile: `npm run sencha:compile` +8. Start program: `npm start` + + +------------------- Disclosure ------------------- diff --git a/app/package.json b/app/package.json index e2d6f5b6..667ba515 100644 --- a/app/package.json +++ b/app/package.json @@ -1,7 +1,7 @@ { "name": "Rambox", "productName": "Rambox", - "version": "0.5.3", + "version": "0.5.7", "description": "Rambox", "main": "electron/main.js", "private": true, @@ -27,7 +27,7 @@ "skype" ], "author": "Ramiro Saenz ", - "license": "MIT", + "license": "GPL-3.0", "dependencies": { "auto-launch": "4.0.0", "tmp": "0.0.28", diff --git a/app/store/ServicesList.js b/app/store/ServicesList.js index e78d4e50..3685b686 100644 --- a/app/store/ServicesList.js +++ b/app/store/ServicesList.js @@ -265,7 +265,6 @@ Ext.define('Rambox.store.ServicesList', { ,description: 'HD quality calls, private and group chats with inline photos, music and video. Also available for your phone or tablet.' ,url: 'https://app.wire.com/' ,type: 'messaging' - ,userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36' }, { id: 'sync' @@ -516,7 +515,7 @@ Ext.define('Rambox.store.ServicesList', { ,description: 'RainLoop Webmail - Simple, modern & fast web-based email client.' ,url: '___' ,type: 'email' - ,js_unread: 'function checkUnread(){var a=document.getElementsByClassName("badge pull-right count"),b=0;for(i=0;i=1?document.title="("+a+") "+originalTitle:document.title=originalTitle}var originalTitle=document.title;setInterval(checkUnread,1e3);' + ,js_unread: 'function checkUnread(){var a=document.querySelectorAll(".e-item .e-link:not(.hidden) .badge.pull-right.count"),b=0;for(i=0;i=1?document.title="("+a+") "+originalTitle:document.title=originalTitle}var originalTitle=document.title;setInterval(checkUnread,1e3);' }, { id: 'amium' @@ -670,14 +669,24 @@ Ext.define('Rambox.store.ServicesList', { ,type: 'messaging' }, { - id: 'xing' - ,logo: 'xing.png' - ,name: 'XING' - ,description: 'Career-oriented social networking' - ,url: 'https://www.xing.com/messages/conversations' - ,type: 'messaging' - ,js_unread: '(function() { let originalTitle = document.title; function checkUnread() { let count = null; let notificationElement = document.querySelector(\'[data-update="unread_conversations"]\'); if (notificationElement && notificationElement.style.display !== \'none\') { count = parseInt(notificationElement.textContent.trim(), 10); } updateBadge(count); } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();' - ,dont_update_unread_from_title: true + id: 'xing', + logo: 'xing.png', + name: 'XING', + description: 'Career-oriented social networking', + url: 'https://www.xing.com/messages/conversations', + type: 'messaging', + js_unread: '(function() { let originalTitle = document.title; function checkUnread() { let count = null; let notificationElement = document.querySelector(\'[data-update="unread_conversations"]\'); if (notificationElement && notificationElement.style.display !== \'none\') { count = parseInt(notificationElement.textContent.trim(), 10); } updateBadge(count); } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();', + dont_update_unread_from_title: true + }, + { + id: 'threema', + logo: 'threema.png', + name: 'Threema', + description: 'Seriously secure messaging', + url: 'https://web.threema.ch/', + type: 'messaging', + js_unread: '(function () { let unreadCount = 0; function checkUnread() { let newUnread = 0; try { let webClientService = angular.element(document.documentElement).injector().get(\'WebClientService\'); let conversations = webClientService.conversations.conversations; conversations.forEach(function(conversation) { newUnread += conversation.unreadCount; }); } catch (e) { } if (newUnread !== unreadCount) { unreadCount = newUnread; updateBadge(unreadCount); } } function updateBadge(count) { if (count && count >= 1) { rambox.setUnreadCount(count); } else { rambox.clearUnreadCount(); } } setInterval(checkUnread, 3000); checkUnread(); })();', + dont_update_unread_from_title: true }, { id: 'workplace' diff --git a/app/ux/Auth0.js b/app/ux/Auth0.js index 8a1d61d2..ef2216cf 100644 --- a/app/ux/Auth0.js +++ b/app/ux/Auth0.js @@ -110,7 +110,7 @@ Ext.define('Rambox.ux.Auth0', { ,failure: function(response) { Ext.Msg.hide(); Ext.toast({ - html: ' Error ocurred when trying to backup your configuration.' + html: ' Error occurred when trying to backup your configuration.' ,title: 'Synchronize Configuration' ,width: 300 ,align: 't' diff --git a/app/ux/WebView.js b/app/ux/WebView.js index fbb854dc..e45269b1 100644 --- a/app/ux/WebView.js +++ b/app/ux/WebView.js @@ -76,7 +76,7 @@ Ext.define('Rambox.ux.WebView',{ ,handler: me.goBack } ,{ - text: 'Foward' + text: 'Forward' ,glyph: 'xf054@FontAwesome' ,iconAlign: 'right' ,flex: 1 @@ -412,7 +412,7 @@ Ext.define('Rambox.ux.WebView',{ ,setUnreadCount: function(newUnreadCount) { var me = this; - if (me.record.get('includeInGlobalUnreadCounter') === true) { + if (newUnreadCount === parseInt(newUnreadCount,10) && me.record.get('includeInGlobalUnreadCounter') === true) { Rambox.util.UnreadCounter.setUnreadCountForService(me.record.get('id'), newUnreadCount); } else { Rambox.util.UnreadCounter.clearUnreadCountForService(me.record.get('id')); diff --git a/appveyor.yml b/appveyor.yml index cf879d2c..9a4825b0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 0.5.3 +version: 0.5.7 pull_requests: do_not_increment_build_number: true branches: diff --git a/electron/tray.js b/electron/tray.js index dbe0c69e..459bc687 100644 --- a/electron/tray.js +++ b/electron/tray.js @@ -50,8 +50,12 @@ exports.create = function(win, config) { appIcon = new Tray(iconPath); appIcon.setToolTip('Rambox'); appIcon.setContextMenu(contextMenu); - appIcon.on('double-click', () => { - if ( !win.isVisible() || win.isMinimized() ) config.get('maximized') ? win.maximize() : win.show(); + appIcon.on('click', () => { + if ( !win.isVisible() ) { + win.isVisible() ? win.hide() : win.show(); + } else { + win.focus(); + } }); }; diff --git a/package.json b/package.json index 16610705..1c693dd8 100644 --- a/package.json +++ b/package.json @@ -33,17 +33,15 @@ "build": { "productName": "Rambox", "appId": "com.saenzramiro.rambox", - "category": "public.app-category.productivity", "asar": true, "mac": { + "category": "public.app-category.productivity", "target": [ "default" - ], - "icon": "./resources/installer/Icon.icns" + ] }, "dmg": { "title": "Rambox", - "icon": "./resources/installer/Icon.icns", "iconSize": 128, "contents": [ { @@ -59,39 +57,36 @@ } ] }, + "squirrelWindows": { + "iconUrl": "https://raw.githubusercontent.com/saenzramiro/rambox/master/resources/Icon.ico" + }, "win": { - "title": "Rambox", - "target": [ "squirrel", "zip" - ], - "loadingGif": "./resources/installer/loading.gif", - "iconUrl": "https://raw.githubusercontent.com/saenzramiro/rambox/master/resources/Icon.ico", - "icon": "./resources/Icon.ico", - "msi": false + ] }, "linux": { + "category": "Office", "target": [ "AppImage", "deb", "rpm", "zip", "tar.gz" - ], - "icon": "./resources/Icon.png" + ] + }, + "directories": { + "buildResources": "resources/installer/", + "output": "dist/", + "app": "build/production/Rambox/" } }, - "directories": { - "buildResources": "resources/installer/", - "output": "dist/", - "app": "build/production/Rambox/" - }, "devDependencies": { "asar": "^0.12.1", - "electron": "1.4.15", - "electron-builder": "11.3.0", - "electron-builder-squirrel-windows": "11.6.1", + "electron": "^1.6.1", + "electron-builder": "^14.5.3", + "electron-builder-squirrel-windows": "15.0.0", "electron-squirrel-startup": "^1.0.0", "chai": "3.5.0", "mocha": "3.2.0", diff --git a/resources/icons/threema.png b/resources/icons/threema.png new file mode 100644 index 00000000..ff052529 Binary files /dev/null and b/resources/icons/threema.png differ diff --git a/resources/installer/Icon.icns b/resources/installer/icon.icns similarity index 100% rename from resources/installer/Icon.icns rename to resources/installer/icon.icns diff --git a/resources/installer/Icon.ico b/resources/installer/icon.ico similarity index 100% rename from resources/installer/Icon.ico rename to resources/installer/icon.ico diff --git a/resources/installer/loading.gif b/resources/installer/install-spinner.gif similarity index 100% rename from resources/installer/loading.gif rename to resources/installer/install-spinner.gif diff --git a/resources/installer/installerIcon.ico b/resources/installer/installerIcon.ico new file mode 100644 index 00000000..00c0c927 Binary files /dev/null and b/resources/installer/installerIcon.ico differ