Browse Source

Fixed zoom level

Some OS don't save the zoom level in cookies/sessions. So now we save it
in localStorage.

Fixes #484
pull/594/merge
Ramiro Saenz 8 years ago
parent
commit
0ebe21ec2c
  1. 4
      app/model/Service.js
  2. 1
      app/ux/Auth0.js
  3. 32
      app/ux/WebView.js

4
app/model/Service.js

@ -57,5 +57,9 @@ Ext.define('Rambox.model.Service', {
name: 'js_unread' name: 'js_unread'
,type: 'string' ,type: 'string'
,defaultValue: '' ,defaultValue: ''
},{
name: 'zoomLevel'
,type: 'number'
,defaultValue: 0
}] }]
}); });

1
app/ux/Auth0.js

@ -79,6 +79,7 @@ Ext.define('Rambox.ux.Auth0', {
var services = []; var services = [];
Ext.getStore('Services').each(function(service) { Ext.getStore('Services').each(function(service) {
delete service.data.id; delete service.data.id;
delete service.data.zoomLevel;
services.push(service.data); services.push(service.data);
}); });

32
app/ux/WebView.js

@ -9,14 +9,14 @@ Ext.define('Rambox.ux.WebView',{
'Rambox.util.Format', 'Rambox.util.Format',
'Rambox.util.Notifier', 'Rambox.util.Notifier',
'Rambox.util.UnreadCounter' 'Rambox.util.UnreadCounter'
], ]
// private // private
zoomLevel: 0, ,zoomLevel: 0
currentUnreadCount: 0, ,currentUnreadCount: 0
// CONFIG // CONFIG
hideMode: 'offsets' ,hideMode: 'offsets'
,initComponent: function(config) { ,initComponent: function(config) {
var me = this; var me = this;
@ -160,8 +160,8 @@ Ext.define('Rambox.ux.WebView',{
,autosize: 'on' ,autosize: 'on'
,disablewebsecurity: 'on' ,disablewebsecurity: 'on'
,blinkfeatures: 'ApplicationCache,GlobalCacheStorage' ,blinkfeatures: 'ApplicationCache,GlobalCacheStorage'
,useragent: Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent'), ,useragent: Ext.getStore('ServicesList').getById(me.record.get('type')).get('userAgent')
preload: './resources/js/rambox-service-api.js' ,preload: './resources/js/rambox-service-api.js'
} }
}; };
@ -197,6 +197,9 @@ Ext.define('Rambox.ux.WebView',{
webview.addEventListener("did-finish-load", function(e) { webview.addEventListener("did-finish-load", function(e) {
Rambox.app.setTotalServicesLoaded( Rambox.app.getTotalServicesLoaded() + 1 ); Rambox.app.setTotalServicesLoaded( Rambox.app.getTotalServicesLoaded() + 1 );
// Apply saved zoom level
webview.setZoomLevel(me.record.get('zoomLevel'));
}); });
// Open links in default browser // Open links in default browser
@ -260,6 +263,8 @@ Ext.define('Rambox.ux.WebView',{
*/ */
console.groupEnd(); console.groupEnd();
// Scroll always to top (bug) // Scroll always to top (bug)
webview.executeJavaScript('document.body.scrollTop=0;'); webview.executeJavaScript('document.body.scrollTop=0;');
}); });
@ -468,7 +473,10 @@ Ext.define('Rambox.ux.WebView',{
var webview = me.down('component').el.dom; var webview = me.down('component').el.dom;
me.zoomLevel = me.zoomLevel + 0.25; me.zoomLevel = me.zoomLevel + 0.25;
if ( me.record.get('enabled') ) webview.setZoomLevel(me.zoomLevel); if ( me.record.get('enabled') ) {
webview.setZoomLevel(me.zoomLevel);
me.record.set('zoomLevel', me.zoomLevel);
}
} }
,zoomOut: function() { ,zoomOut: function() {
@ -476,7 +484,10 @@ Ext.define('Rambox.ux.WebView',{
var webview = me.down('component').el.dom; var webview = me.down('component').el.dom;
me.zoomLevel = me.zoomLevel - 0.25; me.zoomLevel = me.zoomLevel - 0.25;
if ( me.record.get('enabled') ) webview.setZoomLevel(me.zoomLevel); if ( me.record.get('enabled') ) {
webview.setZoomLevel(me.zoomLevel);
me.record.set('zoomLevel', me.zoomLevel);
}
} }
,resetZoom: function() { ,resetZoom: function() {
@ -484,6 +495,9 @@ Ext.define('Rambox.ux.WebView',{
var webview = me.down('component').el.dom; var webview = me.down('component').el.dom;
me.zoomLevel = 0; me.zoomLevel = 0;
if ( me.record.get('enabled') ) webview.setZoomLevel(0); if ( me.record.get('enabled') ) {
webview.setZoomLevel(0);
me.record.set('zoomLevel', me.zoomLevel);
}
} }
}); });

Loading…
Cancel
Save