'issues/facets-view'
'issues/filters-view'
-
- 'issues/help-view'
], (
State
Layout
FacetsView
FiltersView
-
- HelpView
) ->
$ = jQuery
@layout.facetsRegion.show @facetsView
- App.addInitializer ->
- $(window).on 'keypress', (e) =>
- tagName = e.target.tagName
- unless tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA'
- code = e.keyCode || e.which
- if code == 63
- @helpView = new HelpView app: @
- @helpView.render()
-
-
App.addInitializer ->
@controller.fetchFilters().done =>
key.setScope 'list'
'issues/facets-view'
'issues/filters-view'
-
- 'issues/help-view'
], (
State
Layout
FacetsView
FiltersView
-
- HelpView
) ->
$ = jQuery
@layout.filtersRegion.show @filtersView
- App.addInitializer ->
- $(window).on 'keypress', (e) =>
- tagName = e.target.tagName
- unless tagName == 'INPUT' || tagName == 'SELECT' || tagName == 'TEXTAREA'
- code = e.keyCode || e.which
- if code == 63
- @helpView = new HelpView app: @
- @helpView.render()
-
-
App.addInitializer ->
@controller.fetchFilters().done =>
key.setScope 'list'
+++ /dev/null
-define [
- 'common/modals'
- 'templates/issues'
-], (
- ModalView
-) ->
-
-
- class extends ModalView
- template: Templates['issues-help']
+++ /dev/null
-<div class="modal-head">
- <h2>Issues Help</h2>
-</div>
-
-<div class="modal-body doc">
- <h3>Shortcuts</h3>
- <p>To control results</p>
- <ul>
- <li><span class="shortcut-button">↑</span> <span class="shortcut-button">↓</span> to navigate between issues</li>
- <li><span class="shortcut-button">→</span> to go from the list of issues to the source code</li>
- <li><span class="shortcut-button">←</span> to return back to the list</li>
- </ul>
- <p>To control selected issue</p>
- <ul>
- <li><span class="shortcut-button">f</span> to do a transition</li>
- <li><span class="shortcut-button">a</span> to assign</li>
- <li><span class="shortcut-button">m</span> to assign to the current user</li>
- <li><span class="shortcut-button">p</span> to plan</li>
- <li><span class="shortcut-button">i</span> to change severity</li>
- <li><span class="shortcut-button">o</span> to comment</li>
- <li><span class="shortcut-button">t</span> to change tags</li>
- </ul>
-</div>
-
-<div class="modal-foot">
- <a class="js-modal-close">{{t 'close'}}</a>
-</div>
<div class="js-search-region dropdown-menu dropdown-menu-right"></div>
</li>
+ <li>
+ <a class="js-shortcuts" href="#">
+ <i class="icon-help navbar-icon"></i>
+ </a>
+ </li>
</ul>
</div>
--- /dev/null
+<div class="modal-head">
+ <h2>{{t 'shortcuts.modal_title'}}</h2>
+</div>
+
+<div class="modal-body">
+ <div class="shortcuts-section">
+ <h3 class="shortcuts-section-title">{{t 'shortcuts.section.global'}}</h3>
+ <ul class="shortcuts-list">
+ <li><span class="shortcut-button">s</span> {{t 'shortcuts.section.global.search'}}</li>
+ <li><span class="shortcut-button">?</span> {{t 'shortcuts.section.global.shortcuts'}}</li>
+ </ul>
+ </div>
+
+ <div class="shortcuts-section">
+ <h3 class="shortcuts-section-title">{{t 'shortcuts.section.issues'}}</h3>
+ <ul class="shortcuts-list">
+ <li><span class="shortcut-button">↑</span> <span class="shortcut-button">↓</span> {{t 'shortcuts.section.issues.navigate_between_issues'}}</li>
+ <li><span class="shortcut-button">→</span> {{t 'shortcuts.section.issues.open_details'}}</li>
+ <li><span class="shortcut-button">←</span> {{t 'shortcuts.section.issues.return_to_list'}}</li>
+ <li><span class="shortcut-button">f</span> {{t 'shortcuts.section.issue.do_transition'}}</li>
+ <li><span class="shortcut-button">a</span> {{t 'shortcuts.section.issue.assign'}}</li>
+ <li><span class="shortcut-button">m</span> {{t 'shortcuts.section.issue.assign_to_me'}}</li>
+ <li><span class="shortcut-button">p</span> {{t 'shortcuts.section.issue.plan'}}</li>
+ <li><span class="shortcut-button">i</span> {{t 'shortcuts.section.issue.change_severity'}}</li>
+ <li><span class="shortcut-button">o</span> {{t 'shortcuts.section.issue.comment'}}</li>
+ <li><span class="shortcut-button">t</span> {{t 'shortcuts.section.issue.change_tags'}}</li>
+ </ul>
+ </div>
+</div>
+
+<div class="modal-foot">
+ <a class="js-modal-close">{{t 'close'}}</a>
+</div>
$(document.body).css('padding-top', navHeight).data('top-offset', navHeight);
});
+ App.addInitializer(function () {
+ var that = this;
+ $(window).on('keypress', function (e) {
+ var tagName = e.target.tagName;
+ if (tagName !== 'INPUT' && tagName !== 'SELECT' && tagName !== 'TEXTAREA') {
+ var code = e.keyCode || e.which;
+ if (code === 63) {
+ that.navbarView.showShortcutsHelp();
+ }
+ }
+ });
+ });
+
window.requestMessages().done(function () {
App.start();
});
define([
'nav/search-view',
+ 'nav/shortcuts-help-view',
'templates/nav'
-], function (SearchView) {
-
- var $ = jQuery;
+], function (SearchView, ShortcutsHelpView) {
return Marionette.Layout.extend({
template: Templates['nav-global-navbar'],
'click .js-login': 'onLoginClick',
'click .js-favorite': 'onFavoriteClick',
'show.bs.dropdown .js-search-dropdown': 'onSearchDropdownShow',
- 'hidden.bs.dropdown .js-search-dropdown': 'onSearchDropdownHidden'
+ 'hidden.bs.dropdown .js-search-dropdown': 'onSearchDropdownHidden',
+ 'click .js-shortcuts': 'onShortcutsClick'
},
onRender: function () {
this.searchRegion.reset();
},
+ onShortcutsClick: function () {
+ this.showShortcutsHelp();
+ },
+
+ showShortcutsHelp: function () {
+ new ShortcutsHelpView({ shortcuts: this.model.get('shortcuts') }).render();
+ },
+
serializeData: function () {
return _.extend(Marionette.Layout.prototype.serializeData.apply(this, arguments), {
user: window.SS.user,
--- /dev/null
+define([
+ 'common/modals',
+ 'templates/nav'
+], function (ModalView) {
+
+ return ModalView.extend({
+ template: Templates['nav-shortcuts-help']
+ });
+
+});
}
.navbar-icon:before {
+ color: #fff !important;
font-size: @iconFontSize;
}
+.shortcuts-section {
+
+}
+
+.shortcuts-section + .shortcuts-section {
+ margin-top: 20px;
+}
+
+.shortcuts-section-title {
+ margin-bottom: 5px;
+}
+
+.shortcuts-list {
+ > li + li {
+ margin-top: 5px;
+ }
+}
+
.shortcut-button {
display: inline-block;
.square(24px);
search.shortcut=Press S to quickly open search bar
+#------------------------------------------------------------------------------
+#
+# SHORTCUTS
+#
+#------------------------------------------------------------------------------
+shortcuts.modal_title=Shortcuts
+
+shortcuts.section.global=Global
+shortcuts.section.global.search=to quickly open search bar
+shortcuts.section.global.shortcuts=to open this window
+
+shortcuts.section.issues=Issues Page
+shortcuts.section.issues.navigate_between_issues=to navigate between issues
+shortcuts.section.issues.open_details=to go from the list of issues to the source code
+shortcuts.section.issues.return_to_list=to return back to the list
+
+shortcuts.section.issue.do_transition=to do an issue transition
+shortcuts.section.issue.assign=to assign issue
+shortcuts.section.issue.assign_to_me=to assign issue to the current user
+shortcuts.section.issue.plan=to plan issue
+shortcuts.section.issue.change_severity=to change severity of issue
+shortcuts.section.issue.comment=to comment issue
+shortcuts.section.issue.change_tags=to change tags of issue
+
+
#------------------------------------------------------------------------------
#
# SELECT2.js