1
0
mirror of https://github.com/moparisthebest/mail synced 2024-11-26 19:02:20 -05:00

Merge pull request #15 from whiteout-io/dev/ios

Dev/ios
This commit is contained in:
Tankred Hase 2014-02-03 02:36:05 -08:00
commit 5f93b8249f
7 changed files with 47 additions and 6147 deletions

View File

@ -5,11 +5,14 @@
<title>Mail</title> <title>Mail</title>
<!-- Theses CSP rules are used as a fallback in runtimes such as PhoneGap where setting http headers is not possbile. --> <!-- Theses CSP rules are used as a fallback in runtimes such as PhoneGap where setting http headers is not possbile. -->
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; object-src 'none'; connect-src 'self' https://keys.whiteout.io; img-src 'self' data:;"> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; object-src 'none'; connect-src 'self' https://keys.whiteout.io https://keys-test.whiteout.io; img-src 'self' data:;">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<link rel="stylesheet" media="all" href="css/all.min.css" type="text/css"> <link rel="stylesheet" media="all" href="css/all.min.css" type="text/css">
<!-- PhoneGap dependencies -->
<script src="phonegap.js"></script>
<!-- The Scripts --> <!-- The Scripts -->
<script src="lib/require.js"></script> <script src="lib/require.js"></script>
<script src="require-config.js"></script> <script src="require-config.js"></script>

View File

@ -17,7 +17,6 @@ define(function(require) {
OutboxBO = require('js/bo/outbox'), OutboxBO = require('js/bo/outbox'),
PGP = require('js/crypto/pgp'), PGP = require('js/crypto/pgp'),
config = require('js/app-config').config; config = require('js/app-config').config;
require('cordova');
var self = {}; var self = {};
@ -25,13 +24,15 @@ define(function(require) {
* Start the application * Start the application
*/ */
self.start = function(options, callback) { self.start = function(options, callback) {
// are we running in native app or in browser? // are we running in a cordova app or in a browser environment?
if (document.URL.indexOf("http") === 0 || document.URL.indexOf("app") === 0 || document.URL.indexOf("chrome") === 0) { if (window.cordova) {
console.log('Assuming Browser environment...'); // wait for 'deviceready' event to make sure plugins are loaded
onDeviceReady();
} else {
console.log('Assuming Cordova environment...'); console.log('Assuming Cordova environment...');
document.addEventListener("deviceready", onDeviceReady, false); document.addEventListener("deviceready", onDeviceReady, false);
} else {
// No need to wait on events... just start the app
console.log('Assuming Browser environment...');
onDeviceReady();
} }
function onDeviceReady() { function onDeviceReady() {
@ -119,14 +120,7 @@ define(function(require) {
console.log('IMAP error.', err); console.log('IMAP error.', err);
console.log('IMAP reconnecting...'); console.log('IMAP reconnecting...');
// re-init client modules on error // re-init client modules on error
self.onConnect(function(err) { self.onConnect(callback);
if (err) {
console.error('IMAP reconnect failed!', err);
return;
}
console.log('IMAP reconnect successful.');
});
}; };
// connect to clients // connect to clients

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -10,7 +10,6 @@
cryptoLib: '../js/crypto', cryptoLib: '../js/crypto',
'setimmediate': 'setImmediate', 'setimmediate': 'setImmediate',
underscore: 'underscore/underscore-min', underscore: 'underscore/underscore-min',
cordova: 'cordova/cordova-2.5.0',
lawnchair: 'lawnchair/lawnchair-git', lawnchair: 'lawnchair/lawnchair-git',
lawnchairSQL: 'lawnchair/lawnchair-adapter-webkit-sqlite-git', lawnchairSQL: 'lawnchair/lawnchair-adapter-webkit-sqlite-git',
lawnchairIDB: 'lawnchair/lawnchair-adapter-indexed-db-git', lawnchairIDB: 'lawnchair/lawnchair-adapter-indexed-db-git',
@ -18,7 +17,6 @@
angular: 'angular/angular.min', angular: 'angular/angular.min',
angularRoute: 'angular/angular-route.min', angularRoute: 'angular/angular-route.min',
angularTouch: 'angular/angular-touch.min', angularTouch: 'angular/angular-touch.min',
moment: 'moment/moment.min',
uuid: 'uuid/uuid', uuid: 'uuid/uuid',
openpgp: 'openpgp/openpgp.min', openpgp: 'openpgp/openpgp.min',
iscroll: 'iscroll/iscroll-min' iscroll: 'iscroll/iscroll-min'

View File

@ -1,13 +1,14 @@
.view-mail-list { .view-mail-list {
$padding-horizontal: 15px; $padding-horizontal: 15px;
$padding-vertical: 10px; $padding-vertical: 10px;
position: relative;
height: 100%; height: 100%;
width: 100%;
background: $color-grey-lightest; background: $color-grey-lightest;
background-image: linear-gradient(to right ,$color-grey-lightest 98%, darken($color-grey-lightest, 1%) 100%); background-image: linear-gradient(to right ,$color-grey-lightest 98%, darken($color-grey-lightest, 1%) 100%);
header { header {
cursor: pointer; cursor: pointer;
padding: $padding-vertical $padding-horizontal; padding: $padding-vertical $padding-horizontal;
text-shadow: 0px 1px 1px $color-grey-lighter; text-shadow: 0px 1px 1px $color-grey-lighter;
@ -41,51 +42,44 @@
} }
ul { ul {
padding-bottom: 98px; padding-bottom: 126px;
@include respond-to(desktop) {
padding-bottom: 126px;
}
} }
footer { footer {
height: 0px; height: 28px;
@include respond-to(desktop) { cursor: pointer;
height: 28px; position: absolute;
cursor: pointer; bottom: 0px;
position: absolute; left: 0px;
bottom: 0px; padding: 0 $nav-padding;
left: 0px; background: darken($color-grey-lightest, 1%);
padding: 0 $nav-padding; width: 100%;
background: darken($color-grey-lightest, 1%); font-size: $font-size-smaller;
width: $content-nav-width; color: $color-grey-dark;
border-right: 1px solid $color-grey-light; line-height: em(28,12);
font-size: $font-size-smaller;
color: $color-grey-dark;
line-height: em(28,12);
.offline { .offline {
&[data-icon]:before { &[data-icon]:before {
padding-right: 0.5em; padding-right: 0.5em;
}
} }
}
&.syncing { &.syncing {
.spinner { .spinner {
top: 6.5px; top: 6.5px;
left: $padding-horizontal; left: $padding-horizontal;
height: 13px; height: 13px;
width: 13px; width: 13px;
position: absolute; position: absolute;
animation: rotation .6s linear infinite; animation: rotation .6s linear infinite;
border-left: 2px solid $color-grey-light; border-left: 2px solid $color-grey-light;
border-right: 2px solid $color-grey-light; border-right: 2px solid $color-grey-light;
border-bottom: 2px solid $color-grey-light; border-bottom: 2px solid $color-grey-light;
border-top: 2px solid $color-grey; border-top: 2px solid $color-grey;
border-radius: 100%; border-radius: 100%;
} }
.text { .text {
padding-left: 1.5em; padding-left: 1.5em;
}
} }
} }
} }

View File

@ -16,7 +16,7 @@ require(['../../src/require-config'], function() {
// Start the main app logic. // Start the main app logic.
require(['js/app-config', 'cordova'], function(app) { require(['js/app-config'], function(app) {
window.Worker = undefined; // disable web workers since mocha doesn't support them window.Worker = undefined; // disable web workers since mocha doesn't support them
app.config.workerPath = '../../src/js'; app.config.workerPath = '../../src/js';