Browse Source

Add custom CSS injection.

Closes #6
pull/3202/head
TheGoddessInari 7 years ago
parent
commit
5c2b948a15
  1. 4
      app/model/Service.js
  2. 4
      app/model/ServiceList.js
  3. 11
      app/ux/WebView.js
  4. 10
      app/view/add/Add.js
  5. 2
      app/view/add/AddController.js

4
app/model/Service.js

@ -65,6 +65,10 @@ Ext.define('Rambox.model.Service', {
name: 'js_unread' name: 'js_unread'
,type: 'string' ,type: 'string'
,defaultValue: '' ,defaultValue: ''
},{
name: 'custom_css'
,type: 'string'
,defaultValue: ''
},{ },{
name: 'zoomLevel' name: 'zoomLevel'
,type: 'number' ,type: 'number'

4
app/model/ServiceList.js

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

11
app/ux/WebView.js

@ -404,6 +404,7 @@ Ext.define('Rambox.ux.WebView',{
if ( me.record.get('muted') || localStorage.getItem('locked') || JSON.parse(localStorage.getItem('dontDisturb')) ) me.setAudioMuted(true, true); if ( me.record.get('muted') || localStorage.getItem('locked') || JSON.parse(localStorage.getItem('dontDisturb')) ) me.setAudioMuted(true, true);
var js_inject = ''; var js_inject = '';
var css_inject = '';
// Injected code to detect new messages // Injected code to detect new messages
if ( me.record ) { if ( me.record ) {
var js_unread = Ext.getStore('ServicesList').getById(me.record.get('type')).get('js_unread'); var js_unread = Ext.getStore('ServicesList').getById(me.record.get('type')).get('js_unread');
@ -414,6 +415,15 @@ Ext.define('Rambox.ux.WebView',{
console.log(js_unread); console.log(js_unread);
js_inject += js_unread; js_inject += js_unread;
} }
var custom_css = Ext.getStore('ServicesList').getById(me.record.get('type')).get('custom_css');
custom_css = custom_css + me.record.get('custom_css');
if ( custom_css !== '' ) {
console.groupCollapsed(me.record.get('type').toUpperCase() + ' - Injected Custom CSS');
console.info(me.type);
console.log(custom_css);
css_inject += custom_css;
}
} }
// Prevent Title blinking (some services have) and only allow when the title have an unread regex match: "(3) Title" // Prevent Title blinking (some services have) and only allow when the title have an unread regex match: "(3) Title"
@ -446,6 +456,7 @@ Ext.define('Rambox.ux.WebView',{
}); });
webview.executeJavaScript(js_inject); webview.executeJavaScript(js_inject);
webview.insertCSS(css_inject);
}); });
webview.addEventListener('ipc-message', function(event) { webview.addEventListener('ipc-message', function(event) {

10
app/view/add/Add.js

@ -244,6 +244,16 @@ Ext.define('Rambox.view.add.Add',{
,anchor: '100%' ,anchor: '100%'
,height: 120 ,height: 120
,style: 'font-family: Consolas, "Lucida Console", Monaco, monospace' ,style: 'font-family: Consolas, "Lucida Console", Monaco, monospace'
},
{
xtype: 'textarea'
,fieldLabel: 'Custom CSS'
,allowBlank: true
,name: 'custom_css'
,value: me.edit ? me.record.get('custom_css') : ''
,anchor: '100%'
,height: 120
,style: 'font-family: Consolas, "Lucida Console", Monaco, monospace'
} }
] ]
} }

2
app/view/add/AddController.js

@ -40,6 +40,7 @@ Ext.define('Rambox.view.add.AddController', {
,includeInGlobalUnreadCounter: formValues.includeInGlobalUnreadCounter ,includeInGlobalUnreadCounter: formValues.includeInGlobalUnreadCounter
,trust: formValues.trust ,trust: formValues.trust
,js_unread: formValues.js_unread ,js_unread: formValues.js_unread
,custom_css: formValues.custom_css
}); });
var view = Ext.getCmp('tab_'+win.record.get('id')); var view = Ext.getCmp('tab_'+win.record.get('id'));
@ -95,6 +96,7 @@ Ext.define('Rambox.view.add.AddController', {
,includeInGlobalUnreadCounter: formValues.includeInGlobalUnreadCounter ,includeInGlobalUnreadCounter: formValues.includeInGlobalUnreadCounter
,trust: formValues.trust ,trust: formValues.trust
,js_unread: formValues.js_unread ,js_unread: formValues.js_unread
,custom_css: formValues.custom_css
}); });
service.save(); service.save();
Ext.getStore('Services').add(service); Ext.getStore('Services').add(service);

Loading…
Cancel
Save