Skip to content
This repository was archived by the owner on Jul 10, 2019. It is now read-only.

Commit 9aebecd

Browse files
author
Felix Hammerl
committed
Merge pull request #298 from whiteout-io/dev/wo-897
Use iframe-resizer
2 parents 2c1e1f6 + 9d68b64 commit 9aebecd

File tree

11 files changed

+335
-298
lines changed

11 files changed

+335
-298
lines changed

Gruntfile.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,7 @@ module.exports = function(grunt) {
265265
'src/lib/angular/angular-animate.js',
266266
'src/lib/ngtagsinput/ng-tags-input.min.js',
267267
'node_modules/ng-infinite-scroll/build/ng-infinite-scroll.min.js',
268+
'node_modules/iframe-resizer/js/iframeResizer.min.js',
268269
'src/lib/fastclick/fastclick.js',
269270
'src/lib/lawnchair/lawnchair-git.js',
270271
'src/lib/lawnchair/lawnchair-adapter-webkit-sqlite-git.js',
@@ -283,6 +284,7 @@ module.exports = function(grunt) {
283284
readSandbox: {
284285
src: [
285286
'node_modules/dompurify/purify.js',
287+
'node_modules/iframe-resizer/js/iframeResizer.contentWindow.min.js',
286288
'src/js/controller/app/read-sandbox.js'
287289
],
288290
dest: 'dist/js/read-sandbox.min.js'

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@
6262
"grunt-string-replace": "~1.0.0",
6363
"grunt-svgmin": "~1.0.0",
6464
"grunt-svgstore": "~0.3.4",
65+
"iframe-resizer": "^2.8.3",
6566
"imap-client": "~0.11.0",
6667
"jquery": "~2.1.1",
6768
"mailreader": "~0.4.0",
@@ -74,4 +75,4 @@
7475
"time-grunt": "^1.0.0",
7576
"wo-smtpclient": "~0.6.0"
7677
}
77-
}
78+
}

res/aws_release.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ fi
1414

1515
# switch branch
1616
git checkout $2
17-
git branch release/$1
18-
git checkout release/$1
17+
git branch -D release/$1
18+
git checkout -b release/$1
1919
git merge $2 --no-edit
2020

2121
# build and test

src/js/controller/app/read-sandbox.js

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ window.onmessage = function(e) {
66

77
if (e.data.html) {
88
// display html mail body
9-
html = '<div class="scale-body">' + e.data.html + '</div>';
9+
html = e.data.html;
1010
} else if (e.data.text) {
1111
// diplay text mail body by with colored conversation nodes
1212
html = renderNodes(parseConversation(e.data.text));
@@ -26,10 +26,34 @@ window.onmessage = function(e) {
2626

2727
document.body.innerHTML = html;
2828

29-
scaleToFit();
29+
attachClickHandlers();
3030
};
3131

32-
window.addEventListener('resize', scaleToFit);
32+
/**
33+
* Send a message to the main window when email address is clicked
34+
*/
35+
function attachClickHandlers() {
36+
var elements = document.getElementsByTagName('a');
37+
for (var i = 0, len = elements.length; i < len; i++) {
38+
elements[i].onclick = handle;
39+
}
40+
41+
function handle(e) {
42+
var text = e.target.textContent || e.target.innerText;
43+
if (checkEmailAddress(text)) {
44+
e.preventDefault();
45+
window.parentIFrame.sendMessage({
46+
type: 'email',
47+
address: text
48+
});
49+
}
50+
}
51+
52+
function checkEmailAddress(text) {
53+
var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
54+
return re.test(text);
55+
}
56+
}
3357

3458
/**
3559
* Parse email body and generate conversation nodes
@@ -188,28 +212,4 @@ function renderNodes(root) {
188212
}
189213

190214
return '<div class="view-read-body">' + body + '</div>';
191-
}
192-
193-
/**
194-
* Transform scale content to fit iframe width
195-
*/
196-
function scaleToFit() {
197-
var view = document.getElementsByClassName('scale-body').item(0);
198-
if (!view) {
199-
return;
200-
}
201-
202-
var parentWidth = view.parentNode.offsetWidth;
203-
var w = view.offsetWidth;
204-
var scale = '';
205-
206-
if (w > parentWidth) {
207-
scale = parentWidth / w;
208-
scale = 'scale(' + scale + ',' + scale + ')';
209-
}
210-
211-
view.style['-webkit-transform-origin'] = '0 0';
212-
view.style.transformOrigin = '0 0';
213-
view.style['-webkit-transform'] = scale;
214-
view.style.transform = scale;
215215
}

src/js/controller/app/write.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ var WriteCtrl = function($scope, $window, $filter, $q, appConfig, auth, keychain
158158
if (forward) {
159159
$scope.subject = 'Fwd: ' + re.subject;
160160
} else {
161-
$scope.subject = 'Re: ' + ((re.subject) ? re.subject.replace('Re: ', '') : '');
161+
$scope.subject = re.subject ? 'Re: ' + re.subject.replace('Re: ', '') : '';
162162
}
163163

164164
// fill text body

0 commit comments

Comments
 (0)