fix: select on focus, wait for value
This commit is contained in:
@@ -26,7 +26,7 @@ import {
|
|||||||
fileChange,
|
fileChange,
|
||||||
infiniteScroll,
|
infiniteScroll,
|
||||||
lowercase,
|
lowercase,
|
||||||
selectOnClick,
|
selectOnFocus,
|
||||||
snEnter
|
snEnter
|
||||||
} from './directives/functional';
|
} from './directives/functional';
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ angular
|
|||||||
.directive('fileChange', fileChange)
|
.directive('fileChange', fileChange)
|
||||||
.directive('infiniteScroll', [infiniteScroll])
|
.directive('infiniteScroll', [infiniteScroll])
|
||||||
.directive('lowercase', lowercase)
|
.directive('lowercase', lowercase)
|
||||||
.directive('selectOnClick', ['$window', selectOnClick])
|
.directive('selectOnFocus', ['$window', selectOnFocus])
|
||||||
.directive('snEnter', snEnter);
|
.directive('snEnter', snEnter);
|
||||||
|
|
||||||
// Directives - Views
|
// Directives - Views
|
||||||
|
|||||||
@@ -5,5 +5,5 @@ export { elemReady } from './elemReady';
|
|||||||
export { fileChange } from './file-change';
|
export { fileChange } from './file-change';
|
||||||
export { infiniteScroll } from './infiniteScroll';
|
export { infiniteScroll } from './infiniteScroll';
|
||||||
export { lowercase } from './lowercase';
|
export { lowercase } from './lowercase';
|
||||||
export { selectOnClick } from './selectOnClick';
|
export { selectOnFocus } from './selectOnFocus';
|
||||||
export { snEnter } from './snEnter';
|
export { snEnter } from './snEnter';
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
/* @ngInject */
|
|
||||||
export function selectOnClick($window: ng.IWindowService) {
|
|
||||||
return {
|
|
||||||
restrict: 'A',
|
|
||||||
link: function(scope: ng.IScope, element: JQLite) {
|
|
||||||
element.on('focus', () => {
|
|
||||||
if (!$window.getSelection()!.toString()) {
|
|
||||||
const input = element[0] as HTMLInputElement;
|
|
||||||
/** Required for mobile Safari */
|
|
||||||
input.setSelectionRange(0, input.value.length);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* @ngInject */
|
||||||
|
export function selectOnFocus($window: ng.IWindowService) {
|
||||||
|
return {
|
||||||
|
restrict: 'A',
|
||||||
|
link: function (scope: ng.IScope, element: JQLite) {
|
||||||
|
element.on('focus', () => {
|
||||||
|
if (!$window.getSelection()!.toString()) {
|
||||||
|
const input = element[0] as HTMLInputElement;
|
||||||
|
/** Allow text to populate */
|
||||||
|
setImmediate(() => {
|
||||||
|
input.setSelectionRange(0, input.value.length);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -23,8 +23,9 @@
|
|||||||
ng-focus='self.onTitleFocus()',
|
ng-focus='self.onTitleFocus()',
|
||||||
ng-keyup='$event.keyCode == 13 && self.onTitleEnter($event)',
|
ng-keyup='$event.keyCode == 13 && self.onTitleEnter($event)',
|
||||||
ng-model='self.editorValues.title',
|
ng-model='self.editorValues.title',
|
||||||
select-on-click='true',
|
select-on-focus='true',
|
||||||
spellcheck='false')
|
spellcheck='false'
|
||||||
|
)
|
||||||
#save-status
|
#save-status
|
||||||
.message(
|
.message(
|
||||||
ng-class="{'warning sk-bold': self.state.syncTakingTooLong, 'danger sk-bold': self.state.saveError}"
|
ng-class="{'warning sk-bold': self.state.syncTakingTooLong, 'danger sk-bold': self.state.saveError}"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
ng-keyup='$event.keyCode == 13 && self.onFilterEnter();',
|
ng-keyup='$event.keyCode == 13 && self.onFilterEnter();',
|
||||||
ng-model='self.state.noteFilter.text',
|
ng-model='self.state.noteFilter.text',
|
||||||
placeholder='Search',
|
placeholder='Search',
|
||||||
select-on-click='true',
|
select-on-focus='true',
|
||||||
title='Searches notes in the currently selected tag'
|
title='Searches notes in the currently selected tag'
|
||||||
)
|
)
|
||||||
#search-clear-button(
|
#search-clear-button(
|
||||||
|
|||||||
31
dist/javascripts/app.js
vendored
31
dist/javascripts/app.js
vendored
File diff suppressed because one or more lines are too long
2
dist/javascripts/app.js.map
vendored
2
dist/javascripts/app.js.map
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user