Skip to content

Commit aeb5ec9

Browse files
committed
chore(build)
1 parent 2674d48 commit aeb5ec9

File tree

3 files changed

+62
-9
lines changed

3 files changed

+62
-9
lines changed

dist/forms-angular.js

Lines changed: 59 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,12 +83,65 @@ var fng;
8383
/*@ngInject*/
8484
function NavCtrl($scope, $data, $location, $filter, $controller, routingService, cssFrameworkService) {
8585
$scope.items = [];
86+
/* isCollapsed and showShortcuts are used to control how the menu is displayed in a responsive environment and whether the shortcut keystrokes help should be displayed */
8687
$scope.isCollapsed = true;
88+
$scope.showShortcuts = false;
89+
$scope.shortcuts = [
90+
{ key: '?', act: 'Show shortcuts' },
91+
{ key: '/', act: 'Jump to search' },
92+
{ key: 'Ctrl+Shift+S', act: 'Save the current record' },
93+
{ key: 'Ctrl+Shift+Esc', act: 'Cancel changes on the current record' },
94+
{ key: 'Ctrl+Shift+Ins', act: 'Create a new record' },
95+
{ key: 'Ctrl+Shift+X', act: 'Delete the current record' }
96+
];
97+
$scope.markupShortcut = function (keys) {
98+
return '<span class="key">' + keys.split('+').join('</span><span class="key">') + '</span>';
99+
};
87100
$scope.globalShortcuts = function (event) {
88-
if (event.keyCode === 191 && event.ctrlKey) {
89-
// Ctrl+/ takes you to global search
90-
document.getElementById('searchinput').focus();
91-
event.preventDefault();
101+
function deferredBtnClick(id) {
102+
var btn = document.getElementById(id);
103+
if (btn) {
104+
if (!btn.disabled) {
105+
setTimeout(function () {
106+
btn.click();
107+
});
108+
}
109+
event.preventDefault();
110+
}
111+
}
112+
function filter(event) {
113+
var tagName = (event.target || event.srcElement).tagName;
114+
return !(tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA');
115+
}
116+
//console.log(event.keyCode, event.ctrlKey, event.shiftKey, event.altKey, event.metaKey);
117+
if (event.keyCode === 191 && (filter(event) || (!event.altKey && !event.metaKey))) {
118+
if (event.ctrlKey || !event.shiftKey) {
119+
var searchInput = document.getElementById('searchinput');
120+
if (searchInput) {
121+
searchInput.focus();
122+
event.preventDefault();
123+
}
124+
}
125+
else {
126+
$scope.showShortcuts = true;
127+
}
128+
}
129+
else if (event.keyCode === 83 && event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey) {
130+
deferredBtnClick('saveButton'); // Ctrl+Shift+S saves changes
131+
}
132+
else if (event.keyCode === 27 && ((event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey) || $scope.showShortcuts)) {
133+
if (event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey) {
134+
deferredBtnClick('cancelButton'); // Ctrl+Shift+Esc cancels updates
135+
}
136+
else {
137+
$scope.showShortcuts = false;
138+
}
139+
}
140+
else if (event.keyCode === 45 && event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey) {
141+
deferredBtnClick('newButton'); // Ctrl+Shift+Ins creates New record
142+
}
143+
else if (event.keyCode === 88 && event.ctrlKey && event.shiftKey && event.altKey && !event.metaKey) {
144+
deferredBtnClick('deleteButton'); // Ctrl+Shift+X deletes record
92145
}
93146
};
94147
$scope.css = function (fn, arg) {
@@ -3677,5 +3730,5 @@ var formsAngular = fng.formsAngular;
36773730
angular.module("formsAngular").run(["$templateCache", function($templateCache) {$templateCache.put("error-messages.html","<div ng-message=\"required\">A value is required for this field</div>\n<div ng-message=\"minlength\">Too few characters entered</div>\n<div ng-message=\"maxlength\">Too many characters entered</div>\n<div ng-message=\"min\">That value is too small</div>\n<div ng-message=\"max\">That value is too large</div>\n<div ng-message=\"email\">You need to enter a valid email address</div>\n<div ng-message=\"pattern\">This field does not match the expected pattern</div>\n");
36783731
$templateCache.put("form-button-bs2.html","<div class=\"form-btn-grp\">\n <div class=\"btn-group pull-right\">\n <button id=\"saveButton\" class=\"btn btn-mini btn-primary form-btn\" ng-click=\"save()\" ng-disabled=\"isSaveDisabled()\"><i class=\"icon-ok\"></i> Save</button>\n <button id=\"cancelButton\" class=\"btn btn-mini btn-warning form-btn\" ng-click=\"cancel()\" ng-disabled=\"isCancelDisabled()\"><i class=\"icon-remove\"></i> Cancel</button>\n </div>\n <div class=\"btn-group pull-right\">\n <button id=\"newButton\" class=\"btn btn-mini btn-success form-btn\" ng-click=\"newClick()\" ng-disabled=\"isNewDisabled()\"><i class=\"icon-plus\"></i> New</button>\n <button id=\"deleteButton\" class=\"btn btn-mini btn-danger form-btn\" ng-click=\"deleteClick()\" ng-disabled=\"isDeleteDisabled()\"><i class=\"icon-minus\"></i> Delete</button>\n </div>\n</div>\n");
36793732
$templateCache.put("form-button-bs3.html","<div class=\"form-btn-grp\">\n <div class=\"btn-group pull-right\">\n <button id=\"saveButton\" class=\"btn btn-primary form-btn btn-xs\" ng-click=\"save()\" ng-disabled=\"isSaveDisabled()\"><i class=\"glyphicon glyphicon-ok\"></i> Save</button>\n <button id=\"cancelButton\" class=\"btn btn-warning form-btn btn-xs\" ng-click=\"cancel()\" ng-disabled=\"isCancelDisabled()\"><i class=\"glyphicon glyphicon-remove\"></i> Cancel</button>\n </div>\n <div class=\"btn-group pull-right\">\n <button id=\"newButton\" class=\"btn btn-success form-btn btn-xs\" ng-click=\"newClick()\" ng-disabled=\"isNewDisabled()\"><i class=\"glyphicon glyphicon-plus\"></i> New</button>\n <button id=\"deleteButton\" class=\"btn btn-danger form-btn btn-xs\" ng-click=\"deleteClick()\" ng-disabled=\"isDeleteDisabled()\"><i class=\"glyphicon glyphicon-minus\"></i> Delete</button>\n </div>\n</div>\n");
3680-
$templateCache.put("search-bs2.html","<form class=\"navbar-search pull-right\">\n <div id=\"search-cg\" class=\"control-group\" ng-class=\"errorClass\">\n <input type=\"text\" autocomplete=\"off\" id=\"searchinput\" ng-model=\"searchTarget\" class=\"search-query\" placeholder=\"{{searchPlaceholder}}\" ng-keyup=\"handleKey($event)\">\n </div>\n</form>\n<div class=\"results-container\" ng-show=\"results.length >= 1\">\n <div class=\"search-results\">\n <div ng-repeat=\"result in results\">\n <span ng-class=\"resultClass($index)\" ng-click=\"selectResult($index)\">{{result.resourceText}} {{result.text}}</span>\n </div>\n <div ng-show=\"moreCount > 0\">(plus more - continue typing to narrow down search...)\n </div>\n </div>\n</div>\n");
3681-
$templateCache.put("search-bs3.html","<form class=\"pull-right navbar-form\">\n <div id=\"search-cg\" class=\"form-group\" ng-class=\"errorClass\">\n <input type=\"text\" autocomplete=\"off\" id=\"searchinput\" ng-model=\"searchTarget\" class=\"search-query form-control\" placeholder=\"{{searchPlaceholder}}\" ng-keyup=\"handleKey($event)\">\n </div>\n</form>\n<div class=\"results-container\" ng-show=\"results.length >= 1\">\n <div class=\"search-results\">\n <div ng-repeat=\"result in results\">\n <span ng-class=\"resultClass($index)\" ng-click=\"selectResult($index)\" title={{result.additional}}>{{result.resourceText}} {{result.text}}</span>\n </div>\n <div ng-show=\"moreCount > 0\">(plus more - continue typing to narrow down search...)\n </div>\n </div>\n</div>\n");}]);
3733+
$templateCache.put("search-bs2.html","<form class=\"navbar-search pull-right\">\n <div id=\"search-cg\" class=\"control-group\" ng-class=\"errorClass\">\n <input type=\"text\" autocomplete=\"off\" id=\"searchinput\" ng-model=\"searchTarget\" ng-model-options=\"{debounce:250}\" class=\"search-query\" placeholder=\"{{searchPlaceholder}}\" ng-keyup=\"handleKey($event)\">\n </div>\n</form>\n<div class=\"results-container\" ng-show=\"results.length >= 1\">\n <div class=\"search-results\">\n <div ng-repeat=\"result in results\">\n <span ng-class=\"resultClass($index)\" ng-click=\"selectResult($index)\">{{result.resourceText}} {{result.text}}</span>\n </div>\n <div ng-show=\"moreCount > 0\">(plus more - continue typing to narrow down search...)\n </div>\n </div>\n</div>\n");
3734+
$templateCache.put("search-bs3.html","<form class=\"pull-right navbar-form\">\n <div id=\"search-cg\" class=\"form-group\" ng-class=\"errorClass\">\n <input type=\"text\" autocomplete=\"off\" id=\"searchinput\" ng-model=\"searchTarget\" ng-model-options=\"{debounce:250}\" class=\"search-query form-control\" placeholder=\"{{searchPlaceholder}}\" ng-keyup=\"handleKey($event)\">\n </div>\n</form>\n<div class=\"results-container\" ng-show=\"results.length >= 1\">\n <div class=\"search-results\">\n <div ng-repeat=\"result in results\">\n <span ng-class=\"resultClass($index)\" ng-click=\"selectResult($index)\" title={{result.additional}}>{{result.resourceText}} {{result.text}}</span>\n </div>\n <div ng-show=\"moreCount > 0\">(plus more - continue typing to narrow down search...)\n </div>\n </div>\n</div>\n");}]);

0 commit comments

Comments
 (0)