|
|
|
// Initialize Firebase
|
|
|
|
var firebase = require('firebase/app');
|
|
|
|
require('firebase/database');
|
|
|
|
require('firebase/auth');
|
|
|
|
|
|
|
|
// Firebase Config
|
|
|
|
var config = {
|
|
|
|
apiKey: firebaseCfg.apiKey
|
|
|
|
,authDomain: firebaseCfg.authDomain
|
|
|
|
,databaseURL: firebaseCfg.databaseURL
|
|
|
|
,storageBucket: firebaseCfg.storageBucket
|
|
|
|
};
|
|
|
|
var fireRef = firebase.initializeApp(config); // Firebase Ref
|
|
|
|
var FirebaseTokenGenerator = require('firebase-token-generator');
|
|
|
|
var auth0, lock; // Auth0 vars
|
|
|
|
|
|
|
|
// Sencha App
|
|
|
|
Ext.setGlyphFontFamily('FontAwesome');
|
|
|
|
Ext.application({
|
|
|
|
name: 'Rambox'
|
|
|
|
|
|
|
|
,extend: 'Rambox.Application'
|
|
|
|
|
|
|
|
,autoCreateViewport: 'Rambox.view.main.Main'
|
|
|
|
});
|
|
|
|
|
|
|
|
// auto update logic
|
|
|
|
const ipc = require('electron').ipcRenderer;
|
|
|
|
ipc.on('showAbout', function(event, message) {
|
|
|
|
!Ext.cq1('about') ? Ext.create('Rambox.view.main.About') : '';
|
|
|
|
});
|
|
|
|
ipc.on('autoUpdater:checking-for-update:', function() {
|
|
|
|
Ext.Msg.wait('Please wait...', 'Checking for update');
|
|
|
|
});
|
|
|
|
ipc.on('autoUpdater:check-update', function() {
|
|
|
|
Rambox.app.checkUpdate();
|
|
|
|
});
|
|
|
|
ipc.on('autoUpdater:update-not-available', function() {
|
|
|
|
Ext.Msg.show({
|
|
|
|
title: 'You are up to date!'
|
|
|
|
,message: 'You have the latest version of Rambox.'
|
|
|
|
,icon: Ext.Msg.INFO
|
|
|
|
,buttons: Ext.Msg.OK
|
|
|
|
});
|
|
|
|
});
|
|
|
|
ipc.on('autoUpdater:update-available', function() {
|
|
|
|
Ext.Msg.show({
|
|
|
|
title: 'New Version available!'
|
|
|
|
,message: 'Please wait until Rambox download the new version and ask you for install it.'
|
|
|
|
,icon: Ext.Msg.INFO
|
|
|
|
,buttons: Ext.Msg.OK
|
|
|
|
});
|
|
|
|
});
|
|
|
|
ipc.on('autoUpdater:update-downloaded', function(e, releaseNotes, releaseName, releaseDate, updateURL) {
|
|
|
|
Ext.cq1('app-main').addDocked({
|
|
|
|
xtype: 'toolbar'
|
|
|
|
,dock: 'top'
|
|
|
|
,ui: 'newversion'
|
|
|
|
,items: [
|
|
|
|
'->'
|
|
|
|
,{
|
|
|
|
xtype: 'label'
|
|
|
|
,html: '<b>New version is available!</b> ('+releaseName+')'
|
|
|
|
}
|
|
|
|
,{
|
|
|
|
xtype: 'button'
|
|
|
|
,text: 'Install'
|
|
|
|
,handler: function(btn) { ipc.send('autoUpdater:quit-and-install'); }
|
|
|
|
}
|
|
|
|
,{
|
|
|
|
xtype: 'button'
|
|
|
|
,text: 'Changelog'
|
|
|
|
,href: 'https://github.com/saenzramiro/rambox/releases/tag/'+releaseName
|
|
|
|
}
|
|
|
|
,'->'
|
|
|
|
,{
|
|
|
|
glyph: 'xf00d@FontAwesome'
|
|
|
|
,baseCls: ''
|
|
|
|
,style: 'cursor:pointer;'
|
|
|
|
,handler: function(btn) { Ext.cq1('app-main').removeDocked(btn.up('toolbar'), true); }
|
|
|
|
}
|
|
|
|
]
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
// Set Badge in taskbar for Windows
|
|
|
|
ipc.on('setBadge', (event, messageCount) => {
|
|
|
|
messageCount = messageCount.toString();
|
|
|
|
var canvas = document.createElement("canvas");
|
|
|
|
canvas.height = 140;
|
|
|
|
canvas.width = 140;
|
|
|
|
var ctx = canvas.getContext("2d");
|
|
|
|
ctx.fillStyle = "red";
|
|
|
|
ctx.beginPath();
|
|
|
|
ctx.ellipse(70, 70, 70, 70, 0, 0, 2 * Math.PI);
|
|
|
|
ctx.fill();
|
|
|
|
ctx.textAlign = "center";
|
|
|
|
ctx.fillStyle = "white";
|
|
|
|
|
|
|
|
var ranges = [
|
|
|
|
{ divider: 1e18 , suffix: 'P' },
|
|
|
|
{ divider: 1e15 , suffix: 'E' },
|
|
|
|
{ divider: 1e12 , suffix: 'T' },
|
|
|
|
{ divider: 1e9 , suffix: 'G' },
|
|
|
|
{ divider: 1e6 , suffix: 'M' },
|
|
|
|
{ divider: 1e3 , suffix: 'k' }
|
|
|
|
];
|
|
|
|
|
|
|
|
function formatNumber(n) {
|
|
|
|
n = parseInt(n);
|
|
|
|
for (var i = 0; i < ranges.length; i++) {
|
|
|
|
if (n >= ranges[i].divider) {
|
|
|
|
return Math.round(n / ranges[i].divider).toString() + ranges[i].suffix;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return n.toString();
|
|
|
|
}
|
|
|
|
|
|
|
|
if (messageCount.length === 3) {
|
|
|
|
ctx.font = "75px sans-serif";
|
|
|
|
ctx.fillText("" + messageCount, 70, 98);
|
|
|
|
} else if (messageCount.length === 2) {
|
|
|
|
ctx.font = "100px sans-serif";
|
|
|
|
ctx.fillText("" + messageCount, 70, 105);
|
|
|
|
} else if (messageCount.length === 1) {
|
|
|
|
ctx.font = "125px sans-serif";
|
|
|
|
ctx.fillText("" + messageCount, 70, 112);
|
|
|
|
} else {
|
|
|
|
ctx.font = "75px sans-serif";
|
|
|
|
ctx.fillText("" + formatNumber(messageCount), 70, 98);
|
|
|
|
}
|
|
|
|
|
|
|
|
ipc.send('setBadge', messageCount, canvas.toDataURL());
|
|
|
|
});
|