mirror of
https://github.com/moparisthebest/mail
synced 2024-11-26 02:42:17 -05:00
refactored focusMe directive into common directives as woFocusMe
This commit is contained in:
parent
70402d77a8
commit
6e284dfd7e
@ -448,29 +448,6 @@ var WriteCtrl = function($scope, $filter, $q) {
|
|||||||
|
|
||||||
var ngModule = angular.module('write', []);
|
var ngModule = angular.module('write', []);
|
||||||
|
|
||||||
ngModule.directive('focusMe', function($timeout, $parse) {
|
|
||||||
return {
|
|
||||||
//scope: true, // optionally create a child scope
|
|
||||||
link: function(scope, element, attrs) {
|
|
||||||
var model = $parse(attrs.focusMe);
|
|
||||||
scope.$watch(model, function(value) {
|
|
||||||
if (value === true) {
|
|
||||||
$timeout(function() {
|
|
||||||
var el = element[0];
|
|
||||||
el.focus();
|
|
||||||
// set cursor to start of textarea
|
|
||||||
if (el.type === 'textarea') {
|
|
||||||
el.selectionStart = 0;
|
|
||||||
el.selectionEnd = 0;
|
|
||||||
el.scrollTop = 0;
|
|
||||||
}
|
|
||||||
}, 100);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
ngModule.directive('focusInput', function($timeout, $parse) {
|
ngModule.directive('focusInput', function($timeout, $parse) {
|
||||||
return {
|
return {
|
||||||
//scope: true, // optionally create a child scope
|
//scope: true, // optionally create a child scope
|
||||||
|
@ -143,4 +143,24 @@ ngModule.directive('woDropdown', function($document, $timeout) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
ngModule.directive('woFocusMe', function($timeout, $parse) {
|
||||||
|
return function(scope, element, attrs) {
|
||||||
|
var model = $parse(attrs.woFocusMe);
|
||||||
|
scope.$watch(model, function(value) {
|
||||||
|
if (value === true) {
|
||||||
|
$timeout(function() {
|
||||||
|
var el = element[0];
|
||||||
|
el.focus();
|
||||||
|
// set cursor to start of textarea
|
||||||
|
if (el.type === 'textarea') {
|
||||||
|
el.selectionStart = 0;
|
||||||
|
el.selectionEnd = 0;
|
||||||
|
el.scrollTop = 0;
|
||||||
|
}
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
module.exports = ngModule;
|
module.exports = ngModule;
|
@ -20,7 +20,7 @@
|
|||||||
<svg><use xlink:href="#icon-search" /><title>Search</title></svg>
|
<svg><use xlink:href="#icon-search" /><title>Search</title></svg>
|
||||||
<input class="input-text" type="text" ng-model="searchText"
|
<input class="input-text" type="text" ng-model="searchText"
|
||||||
ng-change="displaySearchResults(searchText)"
|
ng-change="displaySearchResults(searchText)"
|
||||||
placeholder="Search" focus-me="state.mailList.searching">
|
placeholder="Search" wo-focus-me="state.mailList.searching">
|
||||||
</div>
|
</div>
|
||||||
</div><!--/action-bar__search-->
|
</div><!--/action-bar__search-->
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<p class="form__error-message" ng-show="errMsg">{{errMsg}}</p>
|
<p class="form__error-message" ng-show="errMsg">{{errMsg}}</p>
|
||||||
<div class="form__row">
|
<div class="form__row">
|
||||||
<div class="input-email-fixed-domain">
|
<div class="input-email-fixed-domain">
|
||||||
<input class="input-text" ng-model="user" required type="text" focus-me="true" tabindex="1"
|
<input class="input-text" ng-model="user" required type="text" wo-focus-me="true" tabindex="1"
|
||||||
pattern='[a-zA-Z0-9\.]+' placeholder="User name"
|
pattern='[a-zA-Z0-9\.]+' placeholder="User name"
|
||||||
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
|
autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
|
||||||
<span>@wmail.io</span>
|
<span>@wmail.io</span>
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
<div class="form__row">
|
<div class="form__row">
|
||||||
<input type="password" ng-model="passphrase"
|
<input type="password" ng-model="passphrase"
|
||||||
class="input-text input-text--big" ng-class="{'input-text--error':incorrect}"
|
class="input-text input-text--big" ng-class="{'input-text--error':incorrect}"
|
||||||
placeholder="Passphrase" tabindex="1" focus-me="true" required>
|
placeholder="Passphrase" tabindex="1" wo-focus-me="true" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="spinner-block" ng-show="busy">
|
<div class="spinner-block" ng-show="busy">
|
||||||
<span class="spinner spinner--big"></span>
|
<span class="spinner spinner--big"></span>
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
<div class="form__row">
|
<div class="form__row">
|
||||||
<input type="text" class="input-text input-text--big" ng-class="{'input-text--error':incorrect}"
|
<input type="text" class="input-text input-text--big" ng-class="{'input-text--error':incorrect}"
|
||||||
size="6" maxlength="6" ng-model="recoveryToken" placeholder="Token" focus-me="step === 1" pattern="([a-zA-Z0-9]*)" required>
|
size="6" maxlength="6" ng-model="recoveryToken" placeholder="Token" wo-focus-me="step === 1" pattern="([a-zA-Z0-9]*)" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="spinner-block" ng-show="busy">
|
<div class="spinner-block" ng-show="busy">
|
||||||
<span class="spinner spinner--big"></span>
|
<span class="spinner spinner--big"></span>
|
||||||
@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
<div class="form__row">
|
<div class="form__row">
|
||||||
<div class="input-code">
|
<div class="input-code">
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code0" focus-me="step === 2" focus-next required ng-paste="handlePaste($event)"> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code0" wo-focus-me="step === 2" focus-next required ng-paste="handlePaste($event)"> -
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code1" focus-next required> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code1" focus-next required> -
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code2" focus-next required> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code2" focus-next required> -
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code3" focus-next required> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code3" focus-next required> -
|
||||||
|
@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form__row">
|
<div class="form__row">
|
||||||
<input class="input-text" type="text" ng-model="realname"
|
<input class="input-text" type="text" ng-model="realname"
|
||||||
placeholder="Full name (optional)" focus-me="true" tabindex="2">
|
placeholder="Full name (optional)" wo-focus-me="true" tabindex="2">
|
||||||
</div>
|
</div>
|
||||||
<div class="form__row" ng-hide="useOAuth">
|
<div class="form__row" ng-hide="useOAuth">
|
||||||
<input ng-required="!useOAuth" class="input-text" type="password"
|
<input ng-required="!useOAuth" class="input-text" type="password"
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
<svg><use xlink:href="#icon-search" /><title>Search</title></svg>
|
<svg><use xlink:href="#icon-search" /><title>Search</title></svg>
|
||||||
<input class="input-text" type="text" ng-model="searchText"
|
<input class="input-text" type="text" ng-model="searchText"
|
||||||
ng-change="displaySearchResults(searchText)"
|
ng-change="displaySearchResults(searchText)"
|
||||||
placeholder="Search" focus-me="state.mailList.searching">
|
placeholder="Search" wo-focus-me="state.mailList.searching">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
<p class="typo-paragraph">Please confirm the keychain code you have written down.</p>
|
<p class="typo-paragraph">Please confirm the keychain code you have written down.</p>
|
||||||
<form class="form">
|
<form class="form">
|
||||||
<div class="input-code">
|
<div class="input-code">
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code0" focus-me="step === 2" focus-next ng-paste="handlePaste($event)"> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code0" wo-focus-me="step === 2" focus-next ng-paste="handlePaste($event)"> -
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code1" focus-next> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code1" focus-next> -
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code2" focus-next> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code2" focus-next> -
|
||||||
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code3" focus-next> -
|
<input type="text" class="input-text" size="4" maxlength="4" ng-model="code3" focus-next> -
|
||||||
@ -39,7 +39,7 @@
|
|||||||
<div ng-show="step === 3">
|
<div ng-show="step === 3">
|
||||||
<p class="typo-paragraph">Please enter a memorable name for this device e.g. “MacBook Work”.</p>
|
<p class="typo-paragraph">Please enter a memorable name for this device e.g. “MacBook Work”.</p>
|
||||||
<form class="form">
|
<form class="form">
|
||||||
<input type="text" class="input-text" ng-model="deviceName" placeholder="Device name" focus-me="step === 3">
|
<input type="text" class="input-text" ng-model="deviceName" placeholder="Device name" wo-focus-me="step === 3">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
<form class="form" name="form">
|
<form class="form" name="form">
|
||||||
<div class="form__row">
|
<div class="form__row">
|
||||||
<input class="input-text" type="password" ng-model="oldPassphrase" placeholder="Current passphrase" tabindex="1" focus-me="true">
|
<input class="input-text" type="password" ng-model="oldPassphrase" placeholder="Current passphrase" tabindex="1" wo-focus-me="true">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="form__error-message" ng-show="passphraseMsg && passphraseRating < 2">{{passphraseMsg}}</p>
|
<p class="form__error-message" ng-show="passphraseMsg && passphraseRating < 2">{{passphraseMsg}}</p>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<p class="form__error-message" ng-show="errMsg">{{errMsg}}</p>
|
<p class="form__error-message" ng-show="errMsg">{{errMsg}}</p>
|
||||||
<div class="form__row">
|
<div class="form__row">
|
||||||
<input type="text" class="input-text input-text--big" ng-class="{'input-text--error': errMsg}"
|
<input type="text" class="input-text input-text--big" ng-class="{'input-text--error': errMsg}"
|
||||||
size="6" maxlength="6" ng-model="token" placeholder="Code" required pattern="([a-zA-Z0-9]*)" focus-me="true" tabindex="1">
|
size="6" maxlength="6" ng-model="token" placeholder="Code" required pattern="([a-zA-Z0-9]*)" wo-focus-me="true" tabindex="1">
|
||||||
</div>
|
</div>
|
||||||
<div class="spinner-block" ng-show="busy">
|
<div class="spinner-block" ng-show="busy">
|
||||||
<span class="spinner spinner--big"></span>
|
<span class="spinner spinner--big"></span>
|
||||||
|
@ -64,7 +64,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<textarea class="write__body" ng-model="body" spellcheck="true" focus-me="state.lightbox === 'write' && writerTitle === 'Reply'" tabindex="3"></textarea>
|
<textarea class="write__body" ng-model="body" spellcheck="true" wo-focus-me="state.lightbox === 'write' && writerTitle === 'Reply'" tabindex="3"></textarea>
|
||||||
|
|
||||||
<div class="write__submit">
|
<div class="write__submit">
|
||||||
<button wo-touch="sendToOutbox()" class="btn" ng-class="{'btn--invalid': sendBtnSecure === false}" ng-disabled="!okToSend" tabindex="4">{{sendBtnText || 'Send'}}</button>
|
<button wo-touch="sendToOutbox()" class="btn" ng-class="{'btn--invalid': sendBtnSecure === false}" ng-disabled="!okToSend" tabindex="4">{{sendBtnText || 'Send'}}</button>
|
||||||
|
Loading…
Reference in New Issue
Block a user