Skip to main content
Sign in
Snippets Groups Projects
Commit 4f9c4770 authored by Christoph Wurst's avatar Christoph Wurst
Browse files

handle mailto links client-side

parent 65cb43e3
No related merge requests found
...@@ -12,6 +12,58 @@ define(function(require) { ...@@ -12,6 +12,58 @@ define(function(require) {
'use strict'; 'use strict';
var $ = require('jquery'); var $ = require('jquery');
var _ = require('underscore');
function urldecode(str) {
return decodeURIComponent((str + '').replace(/\+/g, '%20'));
}
/**
* Handle mailto links
*
* @returns {undefined}
*/
function handleMailTo() {
var hash = window.location.hash;
if (hash === '' || hash === '#') {
// Nothing to do
return;
}
// Remove leading #
hash = hash.substr(1);
var composerOptions = {};
var params = hash.split('&');
_.each(params, function(param) {
param = param.split('=');
var key = param[0];
var value = urldecode(param[1]);
switch (key) {
case 'mailto':
case 'to':
composerOptions.to = value;
break;
case 'cc':
composerOptions.cc = value;
break;
case 'bcc':
composerOptions.bcc = value;
break;
case 'subject':
composerOptions.subject = value;
break;
case 'body':
composerOptions.body = value;
break;
}
});
window.location.hash = '';
require('app').UI.openComposer(composerOptions);
}
function loadFolder(accountId, activeId) { function loadFolder(accountId, activeId) {
var fetchingFolders = require('app').request('folder:entities', accountId); var fetchingFolders = require('app').request('folder:entities', accountId);
...@@ -37,7 +89,7 @@ define(function(require) { ...@@ -37,7 +89,7 @@ define(function(require) {
require('app').trigger('folder:load', accountId, folderId, false); require('app').trigger('folder:load', accountId, folderId, false);
// Open composer if 'mailto' url-param is set // Open composer if 'mailto' url-param is set
// TODO: implement handleMailTo();
// Save current folder // Save current folder
UI.setFolderActive(accountId, folderId); UI.setFolderActive(accountId, folderId);
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment