Browse Source

Fixes #183

pull/291/merge
Ramiro Saenz 9 years ago
parent
commit
1eedc49a94
  1. 4
      app/model/ServiceList.js
  2. 1
      app/store/ServicesList.js
  3. 12
      app/ux/WebView.js

4
app/model/ServiceList.js

@ -23,6 +23,10 @@ Ext.define('Rambox.model.ServiceList', {
name: 'js_unread'
,type: 'string'
,defaultValue: ''
},{
name: 'titleBlink'
,type: 'boolean'
,defaultValue: false
},{
name: 'note'
,type: 'string'

1
app/store/ServicesList.js

@ -89,6 +89,7 @@ Ext.define('Rambox.store.ServicesList', {
,description: 'Telegram is a messaging app with a focus on speed and security. It’s super-fast, simple, secure and free.'
,url: 'https://web.telegram.org/'
,type: 'messaging'
,titleBlink: true
,js_unread: 'function checkUnread(){var e=document.getElementsByClassName("im_dialog_badge badge"),t=0;for(i=0;i<e.length;i++)t+=parseInt(e[i].innerHTML.trim());updateBadge(t)}function updateBadge(e){document.title="("+e+") RamboxService"}setInterval(checkUnread,3000);'
},
{

12
app/ux/WebView.js

@ -157,7 +157,7 @@ Ext.define('Rambox.ux.WebView',{
var js_unread = Ext.getStore('ServicesList').getById(me.record.get('type') === 'office365' ? 'outlook365' : me.record.get('type')).get('js_unread');
js_unread = js_unread + me.record.get('js_unread');
if ( js_unread !== '' ) {
console.groupCollapsed('JS Injected to Detect New Messages');
console.groupCollapsed(me.record.get('type').toUpperCase() + ' - JS Injected to Detect New Messages');
console.info(me.type);
console.log(js_unread);
webview.executeJavaScript(js_unread);
@ -165,10 +165,12 @@ Ext.define('Rambox.ux.WebView',{
}
// Prevent Title blinking (some services have) and only allow when the title have an unread regex match: "(3) Title"
var js_preventBlink = 'var originalTitle=document.title;Object.defineProperty(document,"title",{configurable:!0,set:function(a){null===a.match(new RegExp("[(]([0-9]+)[)][ ](.*)","g"))&&a!==originalTitle||(document.getElementsByTagName("title")[0].innerHTML=a)},get:function(){return document.getElementsByTagName("title")[0].innerHTML}});';
console.log(js_preventBlink);
console.groupEnd()
webview.executeJavaScript(js_preventBlink);
if ( Ext.getStore('ServicesList').getById(me.record.get('type')).get('titleBlink') ) {
var js_preventBlink = 'var originalTitle=document.title;Object.defineProperty(document,"title",{configurable:!0,set:function(a){null===a.match(new RegExp("[(]([0-9]+)[)][ ](.*)","g"))&&a!==originalTitle||(document.getElementsByTagName("title")[0].innerHTML=a)},get:function(){return document.getElementsByTagName("title")[0].innerHTML}});';
console.log(js_preventBlink);
webview.executeJavaScript(js_preventBlink);
}
console.groupEnd();
// Scroll always to top (bug)
webview.executeJavaScript('document.body.scrollTop=0;');

Loading…
Cancel
Save