diff --git a/app/assets/javascripts/discourse/components/hamburger-category.js.es6 b/app/assets/javascripts/discourse/components/hamburger-category.js.es6 new file mode 100644 index 000000000..63b08fd70 --- /dev/null +++ b/app/assets/javascripts/discourse/components/hamburger-category.js.es6 @@ -0,0 +1,13 @@ +import computed from 'ember-addons/ember-computed-decorators'; + +export default Ember.Component.extend({ + tagName: 'li', + classNames: ['category-link'], + + @computed('category.unreadTopics', 'category.newTopics') + unreadTotal(unreadTopics, newTopics) { + return parseInt(unreadTopics, 10) + parseInt(newTopics, 10); + }, + + showTopicCount: Ember.computed.not('currentUser') +}); diff --git a/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 new file mode 100644 index 000000000..b4b2a33ad --- /dev/null +++ b/app/assets/javascripts/discourse/components/hamburger-menu.js.es6 @@ -0,0 +1,77 @@ +import { default as computed, on } from 'ember-addons/ember-computed-decorators'; + +export default Ember.Component.extend({ + classNameBindings: ['visible::slideright'], + elementId: 'hamburger-menu', + + @computed() + showKeyboardShortcuts() { + return !Discourse.Mobile.mobileView && !this.capabilities.touch; + }, + + @computed() + showMobileToggle() { + return Discourse.Mobile.mobileView || (this.siteSettings.enable_mobile_theme && this.capabilities.touch); + }, + + @computed() + mobileViewLinkTextKey() { + return Discourse.Mobile.mobileView ? "desktop_view" : "mobile_view"; + }, + + @computed() + faqUrl() { + return this.siteSettings.faq_url ? this.siteSettings.faq_url : Discourse.getURL('/faq'); + }, + + @on('didInsertElement') + _bindEvents() { + this.$().on('click.discourse-hamburger', 'a', () => { + this.set('visible', false); + }); + + $('body').on('keydown.discourse-hambuger', (e) => { + if (e.which === 27) { + this.set('visible', false); + } + }); + + if (this.capabilities.touch) { + $('body').on('swipeleft.discourse-hamburger', () => this.set('visible', true)); + $('body').on('swiperight.discourse-hamburger', () => this.set('visible', false)); + } + }, + + @on('willDestroyElement') + _removeEvents() { + this.$().off('click.discourse-hamburger'); + $('body').off('keydown.discourse-hambuger'); + $('body').off('swipeleft.discourse-hamburger'); + $('body').off('swiperight.discourse-hamburger'); + }, + + @computed() + categories() { + const hideUncategorized = !this.siteSettings.allow_uncategorized_topics; + const showSubcatList = this.siteSettings.show_subcategory_list; + const isStaff = Discourse.User.currentProp('staff'); + + return Discourse.Category.list().reject((c) => { + if (showSubcatList && c.get('parent_category_id')) { return true; } + if (hideUncategorized && c.get('isUncategorizedCategory') && !isStaff) { return true; } + return false; + }); + }, + + actions: { + close() { + this.set('visible', false); + }, + keyboardShortcuts() { + this.sendAction('showKeyboardAction'); + }, + toggleMobileView() { + Discourse.Mobile.toggleMobileView(); + } + } +}); diff --git a/app/assets/javascripts/discourse/controllers/application.js.es6 b/app/assets/javascripts/discourse/controllers/application.js.es6 index 2f0b4cec5..472bba315 100644 --- a/app/assets/javascripts/discourse/controllers/application.js.es6 +++ b/app/assets/javascripts/discourse/controllers/application.js.es6 @@ -1,16 +1,27 @@ +import computed from 'ember-addons/ember-computed-decorators'; + export default Ember.Controller.extend({ showTop: true, showFooter: false, styleCategory: null, + hamburgerVisible: false, - canSignUp: function() { + @computed + canSignUp() { return !Discourse.SiteSettings.invite_only && Discourse.SiteSettings.allow_new_registrations && !Discourse.SiteSettings.enable_sso; - }.property(), + }, - loginRequired: function() { + @computed + loginRequired() { return Discourse.SiteSettings.login_required && !Discourse.User.current(); - }.property() + }, + + actions: { + toggleHamburgerMenu() { + this.toggleProperty('hamburgerVisible'); + } + } }); diff --git a/app/assets/javascripts/discourse/controllers/site-map-category.js.es6 b/app/assets/javascripts/discourse/controllers/site-map-category.js.es6 deleted file mode 100644 index 0fcce87f9..000000000 --- a/app/assets/javascripts/discourse/controllers/site-map-category.js.es6 +++ /dev/null @@ -1,10 +0,0 @@ -export default Ember.Controller.extend({ - needs: ['site-map'], - - unreadTotal: function() { - return parseInt(this.get('model.unreadTopics'), 10) + - parseInt(this.get('model.newTopics'), 10); - }.property('model.unreadTopics', 'model.newTopics'), - - showTopicCount: Em.computed.not('currentUser') -}); diff --git a/app/assets/javascripts/discourse/controllers/site-map.js.es6 b/app/assets/javascripts/discourse/controllers/site-map.js.es6 deleted file mode 100644 index 61192eb57..000000000 --- a/app/assets/javascripts/discourse/controllers/site-map.js.es6 +++ /dev/null @@ -1,46 +0,0 @@ -import { url } from 'discourse/lib/computed'; - -export default Ember.ArrayController.extend({ - needs: ['application', 'header'], - - showBadgesLink: function(){return Discourse.SiteSettings.enable_badges;}.property(), - showAdminLinks: Em.computed.alias('currentUser.staff'), - - faqUrl: function() { - return Discourse.SiteSettings.faq_url ? Discourse.SiteSettings.faq_url : Discourse.getURL('/faq'); - }.property(), - - badgesUrl: url('/badges'), - - showKeyboardShortcuts: function(){ - return !Discourse.Mobile.mobileView && !this.capabilities.touch; - }.property(), - - showMobileToggle: function(){ - return Discourse.Mobile.mobileView || (Discourse.SiteSettings.enable_mobile_theme && this.capabilities.touch); - }.property(), - - mobileViewLinkTextKey: function() { - return Discourse.Mobile.mobileView ? "desktop_view" : "mobile_view"; - }.property(), - - categories: function() { - var hideUncategorized = !this.siteSettings.allow_uncategorized_topics, - showSubcatList = this.siteSettings.show_subcategory_list, - isStaff = Discourse.User.currentProp('staff'); - return Discourse.Category.list().reject(function(c) { - if (showSubcatList && c.get('parent_category_id')) { return true; } - if (hideUncategorized && c.get('isUncategorizedCategory') && !isStaff) { return true; } - return false; - }); - }.property(), - - actions: { - keyboardShortcuts: function(){ - this.get('controllers.application').send('showKeyboardShortcutsHelp'); - }, - toggleMobileView: function() { - Discourse.Mobile.toggleMobileView(); - } - } -}); diff --git a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 index 2075a57ce..d611ca530 100644 --- a/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 +++ b/app/assets/javascripts/discourse/lib/keyboard-shortcuts.js.es6 @@ -45,7 +45,7 @@ const PATH_BINDINGS = { 'k': 'selectUp', 'u': 'goBack', '/': 'showSearch', - '=': 'showSiteMap', // open site map menu + '=': 'toggleHamburgerMenu', 'p': 'showCurrentUser', // open current user menu 'ctrl+f': 'showBuiltinSearch', 'command+f': 'showBuiltinSearch', @@ -172,9 +172,8 @@ export default { return false; }, - showSiteMap() { - $('#site-map').click(); - $('#site-map-dropdown a:first').focus(); + toggleHamburgerMenu() { + this.container.lookup('controller:application').send('toggleHamburgerMenu'); }, showCurrentUser() { diff --git a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 index 90a722de9..c68349805 100644 --- a/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 +++ b/app/assets/javascripts/discourse/pre-initializers/sniff-capabilities.js.es6 @@ -28,5 +28,6 @@ export default { application.register('capabilities:main', caps, { instantiate: false }); application.inject('view', 'capabilities', 'capabilities:main'); application.inject('controller', 'capabilities', 'capabilities:main'); + application.inject('component', 'capabilities', 'capabilities:main'); } }; diff --git a/app/assets/javascripts/discourse/routes/application.js.es6 b/app/assets/javascripts/discourse/routes/application.js.es6 index a923dd179..a8ede9129 100644 --- a/app/assets/javascripts/discourse/routes/application.js.es6 +++ b/app/assets/javascripts/discourse/routes/application.js.es6 @@ -13,7 +13,6 @@ function unlessReadOnly(method) { } const ApplicationRoute = Discourse.Route.extend(OpenComposer, { - siteTitle: setting('title'), actions: { @@ -134,12 +133,12 @@ const ApplicationRoute = Discourse.Route.extend(OpenComposer, { }); }, - deleteSpammer: function (user) { + deleteSpammer(user) { this.send('closeModal'); user.deleteAsSpammer(function() { window.location.reload(); }); }, - checkEmail: function (user) { + checkEmail(user) { user.checkEmail(); }, @@ -150,7 +149,7 @@ const ApplicationRoute = Discourse.Route.extend(OpenComposer, { this.render(w, {into: 'modal/topic-bulk-actions', outlet: 'bulkOutlet', controller: factory ? controllerName : 'topic-bulk-actions'}); }, - createNewTopicViaParams: function(title, body, category_id, category) { + createNewTopicViaParams(title, body, category_id, category) { this.openComposerWithParams(this.controllerFor('discovery/topics'), title, body, category_id, category); } }, diff --git a/app/assets/javascripts/discourse/templates/application.hbs b/app/assets/javascripts/discourse/templates/application.hbs index 9d92d2063..3a3eb1955 100644 --- a/app/assets/javascripts/discourse/templates/application.hbs +++ b/app/assets/javascripts/discourse/templates/application.hbs @@ -18,3 +18,5 @@ {{render "modal"}} {{render "topic-entrance"}} {{render "composer"}} + +{{hamburger-menu visible=hamburgerVisible showKeyboardAction="showKeyboardShortcutsHelp"}} diff --git a/app/assets/javascripts/discourse/templates/components/hamburger-category.hbs b/app/assets/javascripts/discourse/templates/components/hamburger-category.hbs new file mode 100644 index 000000000..9204b3d42 --- /dev/null +++ b/app/assets/javascripts/discourse/templates/components/hamburger-category.hbs @@ -0,0 +1,9 @@ +{{category-link category allowUncategorized="true"}} + +{{#if unreadTotal}} + <a href={{category.url}} class='badge badge-notification'>{{unreadTotal}}</a> +{{/if}} + +{{#if showTopicCount}} + <b class="topics-count">{{category.topic_count}}</b> +{{/if}} diff --git a/app/assets/javascripts/discourse/templates/site-map.hbs b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs similarity index 55% rename from app/assets/javascripts/discourse/templates/site-map.hbs rename to app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs index 99af0489c..58e2b1150 100644 --- a/app/assets/javascripts/discourse/templates/site-map.hbs +++ b/app/assets/javascripts/discourse/templates/components/hamburger-menu.hbs @@ -1,16 +1,17 @@ -<section class="d-dropdown" id="site-map-dropdown"> +{{#if visible}} + <a href {{action "close"}} class='close-hamburger'>{{fa-icon 'times'}}</a> <ul class="location-links"> - {{#if showAdminLinks}} + {{#if currentUser.staff}} <li> {{#link-to "admin" class="admin-link"}} - <i class='fa fa-wrench'></i> {{i18n 'admin_title'}} + {{fa-icon "wrench"}} {{i18n 'admin_title'}} {{/link-to}} </li> <li> {{#link-to "adminFlags" class="flagged-posts-link"}} {{fa-icon "flag"}} {{i18n 'flags_title'}} {{#if currentUser.site_flagged_posts_count}} - <span title='{{i18n 'notifications.total_flagged'}}' class='badge-notification flagged-posts'>{{currentUser.site_flagged_posts_count}}</span> + <span title={{i18n 'notifications.total_flagged'}} class='badge-notification flagged-posts'>{{currentUser.site_flagged_posts_count}}</span> {{/if}} {{/link-to}} </li> @@ -20,14 +21,14 @@ {{i18n 'filters.latest.title.zero'}} {{/link-to}} </li> - {{#if showBadgesLink}} + {{#if siteSettings.enable_badges}} <li> - <a href="{{unbound badgesUrl}}" class="badge-link">{{i18n 'badges.title'}}</a> + {{#link-to 'badges' class="badge-link"}}{{i18n 'badges.title'}}{{/link-to}} </li> {{/if}} {{#if siteSettings.enable_user_directory}} - <li>{{#link-to 'users'}}{{i18n "directory.title"}}{{/link-to}}</li> + <li>{{#link-to 'users' class="user-directory-link"}}{{i18n "directory.title"}}{{/link-to}}</li> {{/if}} {{#if currentUser.show_queued_posts}} @@ -47,10 +48,10 @@ <li><a href {{action "keyboardShortcuts"}} class="keyboard-shortcuts-link">{{i18n 'keyboard_shortcuts_help.title'}}</a></li> {{/if}} <li> - <a href="{{unbound faqUrl}}" class="faq-link">{{i18n 'faq'}}</a> + <a href={{faqUrl}} class="faq-link">{{i18n 'faq'}}</a> </li> <li> - {{#link-to 'about'}}{{i18n 'about.simple_title'}}{{/link-to}} + {{#link-to 'about' class="about-link"}}{{i18n 'about.simple_title'}}{{/link-to}} </li> {{#if showMobileToggle}} <li><a href class="mobile-toggle-link" {{action "toggleMobileView"}}>{{boundI18n mobileViewLinkTextKey}}</a></li> @@ -61,23 +62,15 @@ {{#if categories}} <ul class="category-links"> - <li class="heading" title="{{i18n 'filters.categories.help'}}"> - {{#link-to "discovery.categories"}}{{i18n 'filters.categories.title'}}{{/link-to}} + <li class="heading" title={{i18n 'filters.categories.help'}}> + {{#link-to "discovery.categories" class="categories-link"}}{{i18n 'filters.categories.title'}}{{/link-to}} </li> - {{#each c in categories itemController='site-map-category'}} - <li class="category"> - {{category-link c.model allowUncategorized="true"}} - - {{#if c.unreadTotal}} - <a href={{unbound c.model.url}} class='badge badge-notification'>{{c.unreadTotal}}</a> - {{/if}} - - {{#if c.showTopicCount}} - <b class="topics-count">{{unbound c.model.topic_count}}</b> - {{/if}} - </li> + {{#each categories as |c|}} + {{hamburger-category category=c}} {{/each}} </ul> {{/if}} -</section> + + <br> +{{/if}} diff --git a/app/assets/javascripts/discourse/templates/header.hbs b/app/assets/javascripts/discourse/templates/header.hbs index 42b2323f6..a05d8930e 100644 --- a/app/assets/javascripts/discourse/templates/header.hbs +++ b/app/assets/javascripts/discourse/templates/header.hbs @@ -12,9 +12,9 @@ {{/unless}} <ul class='icons clearfix' role='navigation'> {{#if currentUser}} - + {{plugin-outlet "header-before-notifications"}} - + <li class='notifications'> <a class='icon' href {{action "showNotifications" target="view"}} data-notifications="notifications-dropdown" id='user-notifications' title='{{i18n 'notifications.title'}}'> {{fa-icon "comment" label="notifications.title"}} @@ -45,21 +45,18 @@ <li class='categories dropdown'> {{#if loginRequired}} <a class='icon' - href="#" + href aria-hidden="true" - id="site-map" + id="toggle-hamburger-menu" {{action "showLogin"}}> {{fa-icon "bars"}} </a> {{else}} - <a class='icon' - data-dropdown="site-map-dropdown" - data-render="renderSiteMap" - href - title='{{i18n 'site_map'}}' - aria-label='{{i18n 'site_map'}}' - id="site-map"> - {{fa-icon "bars" label="site_map"}} + <a {{action "toggleHamburgerMenu"}} class='icon' href + title={{i18n 'hamburger_menu'}} + aria-label={{i18n 'hamburger_menu'}} + id="toggle-hamburger-menu"> + {{fa-icon "bars"}} </a> {{/if}} {{#if flaggedPostsCount}} @@ -82,16 +79,9 @@ </ul> {{#if view.renderDropdowns}} - {{plugin-outlet "header-before-dropdowns"}} - {{render "search"}} {{render "notifications" notifications}} - - {{#if view.renderSiteMap}} - {{render "site-map"}} - {{/if}} - {{render "user-dropdown"}} {{/if}} </div> diff --git a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs index 38167ba22..f07392a4b 100644 --- a/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs +++ b/app/assets/javascripts/discourse/templates/modal/keyboard-shortcuts-help.hbs @@ -25,7 +25,7 @@ <ul> <li>{{{i18n 'keyboard_shortcuts_help.application.create'}}}</li> <li>{{{i18n 'keyboard_shortcuts_help.application.notifications'}}}</li> - <li>{{{i18n 'keyboard_shortcuts_help.application.site_map_menu'}}}</li> + <li>{{{i18n 'keyboard_shortcuts_help.application.hamburger_menu'}}}</li> <li>{{{i18n 'keyboard_shortcuts_help.application.user_profile_menu'}}}</li> <li>{{{i18n 'keyboard_shortcuts_help.application.show_incoming_updated_topics'}}}</li> <li>{{{i18n 'keyboard_shortcuts_help.application.search'}}}</li> diff --git a/app/assets/javascripts/vendor.js b/app/assets/javascripts/vendor.js index 5c0788f8c..eab84ef89 100644 --- a/app/assets/javascripts/vendor.js +++ b/app/assets/javascripts/vendor.js @@ -42,3 +42,4 @@ //= require buffered-proxy //= require jquery.autoellipsis-1.0.10.min.js //= require_tree ./discourse/ember +//= require jquery.detect_swipe.js diff --git a/app/assets/stylesheets/common/base/hamburger.scss b/app/assets/stylesheets/common/base/hamburger.scss new file mode 100644 index 000000000..ba078a5a3 --- /dev/null +++ b/app/assets/stylesheets/common/base/hamburger.scss @@ -0,0 +1,64 @@ +#hamburger-menu { + position: fixed; + right: 0; + top: 0; + background-color: $secondary; + z-index: 1002; + height: 100%; + overflow: auto; + transition: 0.3s ease-in-out; + transform: translateX(0); + + box-shadow: 4px 0 4px 5px rgba(0,0,0, .25); + padding: 0.5em 0.5em 0.5em 0.5em; + width: 300px; + + .close-hamburger { + float: right; + color: dark-light-choose(scale-color($header_primary, $lightness: 50%), $header_primary); + font-size: 1.5em; + margin-right: 0.1em; + margin-top: 0.1em; + } + + ul { + list-style: none; + margin: 0; + padding: 0; + } + + ul.location-links li, li.heading { + a { + padding: 0.5em; + display: block; + &:hover { + background-color: dark-light-diff($highlight, $secondary, 50%, -55%); + } + } + } + + li.category-link { + float: left; + background-color: transparent; + width: 45%; + margin: 5px 5px 0 8px; + .box {margin-top: 0;} + .badge-notification { + color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%)); + background-color: transparent; + vertical-align: top; + padding: 5px 5px 2px 5px; + } + } + + // note these topic counts only appear for anons in the category hamburger drop down + b.topics-count { + color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%)); + font-weight: normal; + font-size: 11px; + } +} + +#hamburger-menu.slideright { + transform: translateX(330px); +} diff --git a/app/assets/stylesheets/common/base/header.scss b/app/assets/stylesheets/common/base/header.scss index 3eb301849..d7c33b2cd 100644 --- a/app/assets/stylesheets/common/base/header.scss +++ b/app/assets/stylesheets/common/base/header.scss @@ -148,12 +148,6 @@ box-shadow: 0 2px 2px rgba(0,0,0, .4); - // note these topic counts only appear for anons in the category hamburger drop down - b.topics-count { - color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%)); - font-weight: normal; - font-size: 11px; - } ul { margin: 0; @@ -233,18 +227,6 @@ @include unselectable; } - // Site map - - &#site-map-dropdown { - .heading { - padding: 5px 5px 5px 0; - a { - display: block; - padding: 0 5px; - } - } - } - // Search &#search-dropdown { @@ -291,20 +273,6 @@ // Categories - .category { - float: left; - background-color: transparent; - width: 45%; - margin: 5px 5px 0 5px; - .box {margin-top: 0;} - .badge-notification { - color: dark-light-choose(scale-color($primary, $lightness: 50%), scale-color($secondary, $lightness: 50%)); - background-color: transparent; - vertical-align: top; - padding: 5px 5px 2px 5px; - } - } - &#user-dropdown { width: 118px; } diff --git a/config/locales/client.ar.yml b/config/locales/client.ar.yml index 9e2923cac..325525634 100644 --- a/config/locales/client.ar.yml +++ b/config/locales/client.ar.yml @@ -977,7 +977,7 @@ ar: category: "البحث في التصنيف \"{{category}}\"" topic: "بحث في هذا الموضوع" private_messages: "البحث في الرسائل الخاصة" - site_map: "الذهاب إلى قائمة مواضيع أو تصنيف آخر" + hamburger_menu: "الذهاب إلى قائمة مواضيع أو تصنيف آخر" go_back: 'الرجوع' not_logged_in_user: 'صفحة المستخدم مع ملخص عن نشاطه و إعداداته' current_user: 'الذهاب إلى صفحتك الشخصية' @@ -2690,7 +2690,7 @@ ar: title: 'التطبيقات' create: '<b>c</b> انشاء موضوع جديد' notifications: '<b>n</b> فتح الإشعارات' - site_map_menu: '<b>=</b> أفتح قائمة الموقع' + hamburger_menu: '<b>=</b> أفتح قائمة الموقع' user_profile_menu: '<b>p</b>أفتح قائمة المستخدم' show_incoming_updated_topics: '<b>.</b> عرض المواضيع المحدثة' search: '<b>/</b> البحث' diff --git a/config/locales/client.bs_BA.yml b/config/locales/client.bs_BA.yml index 794c45e6f..e6e600581 100644 --- a/config/locales/client.bs_BA.yml +++ b/config/locales/client.bs_BA.yml @@ -696,7 +696,7 @@ bs_BA: user: "Traži postove od @{{username}}" category: "Traži \"{{category}}\" kategoriju" topic: "Pretraži ovu temu" - site_map: "go to another topic list or category" + hamburger_menu: "go to another topic list or category" go_back: 'go back' not_logged_in_user: 'user page with summary of current activity and preferences' current_user: 'go to your user page' @@ -1794,7 +1794,7 @@ bs_BA: title: 'Aplikacija' create: '<b>c</b> Započni novu temu' notifications: '<b>n</b> Otvori notifikacije' - site_map_menu: '<b>=</b> Otvori meni sajta' + hamburger_menu: '<b>=</b> Otvori meni sajta' user_profile_menu: '<b>p</b> Otvori meni korisnika' show_incoming_updated_topics: '<b>.</b> Pročitaj promjenje teme' search: '<b>/</b> Tragaj' diff --git a/config/locales/client.cs.yml b/config/locales/client.cs.yml index 7bd3814b7..598844f43 100644 --- a/config/locales/client.cs.yml +++ b/config/locales/client.cs.yml @@ -829,7 +829,7 @@ cs: category: "Vyhledat v kategorii „{{category}}“" topic: "Vyhledat v tomto tématu" private_messages: "Hledat ve zprávách" - site_map: "přejít na jiný seznam témat nebo kategorii" + hamburger_menu: "přejít na jiný seznam témat nebo kategorii" go_back: 'jít zpět' not_logged_in_user: 'stránka uživatele s přehledem o aktuální činnosti a nastavení' current_user: 'jít na vaši uživatelskou stránku' @@ -2322,7 +2322,7 @@ cs: title: 'Application' create: '<b>c</b> Create a new topic' notifications: '<b>n</b> Open notifications' - site_map_menu: '<b>=</b> Otevře hlavní menu' + hamburger_menu: '<b>=</b> Otevře hlavní menu' user_profile_menu: '<b>p</b> Otevře uživatelské menu' show_incoming_updated_topics: '<b>.</b> Ukáže aktualizovaná témata' search: '<b>/</b> Search' diff --git a/config/locales/client.da.yml b/config/locales/client.da.yml index 7afc96078..639ec1c63 100644 --- a/config/locales/client.da.yml +++ b/config/locales/client.da.yml @@ -798,7 +798,7 @@ da: category: "Søg i kategorien \"{{category}}\"" topic: "Søg i dette emne" private_messages: "Søg i beskeder" - site_map: "gå til en anden emneoversigt eller kategori" + hamburger_menu: "gå til en anden emneoversigt eller kategori" go_back: 'gå tilbage' not_logged_in_user: 'bruger side, med oversigt over aktivitet og indstillinger' current_user: 'gå til brugerside' @@ -2285,7 +2285,7 @@ da: title: 'Applikation' create: '<b>c</b> Opret et nyt emne' notifications: '<b>n</b> Åbn notifikationer' - site_map_menu: '<b>=</b> Åben site menu' + hamburger_menu: '<b>=</b> Åben site menu' user_profile_menu: '<b>p</b> Åben bruger menu' show_incoming_updated_topics: '<b>.</b> Vis opdaterede emner' search: '<b>/</b> Søg' diff --git a/config/locales/client.de.yml b/config/locales/client.de.yml index 37f86c0c4..510db6bf9 100644 --- a/config/locales/client.de.yml +++ b/config/locales/client.de.yml @@ -836,7 +836,7 @@ de: category: "Kategorie „{{category}}“ durchsuchen" topic: "Dieses Thema durchsuchen" private_messages: "Nachrichten durchsuchen" - site_map: "zu einer anderen Themenliste oder Kategorie wechseln" + hamburger_menu: "zu einer anderen Themenliste oder Kategorie wechseln" go_back: 'zurückgehen' not_logged_in_user: 'Benutzerseite mit einer Zusammenfassung der Benutzeraktivitäten und Einstellungen' current_user: 'zu deiner Benutzerseite gehen' @@ -2332,7 +2332,7 @@ de: title: 'Anwendung' create: '<b>c</b> Neues Thema erstellen' notifications: '<b>n</b> Benachrichtigungen anzeigen' - site_map_menu: '<b>=</b> Seitenmenü öffnen' + hamburger_menu: '<b>=</b> Seitenmenü öffnen' user_profile_menu: '<b>p</b> Benutzermenü öffnen' show_incoming_updated_topics: '<b>.</b> Zeige aktualisierte Themen' search: '<b>/</b> Suchen' diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 86c437496..94fb4e0a9 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -930,7 +930,7 @@ en: topic: "Search this topic" private_messages: "Search messages" - site_map: "go to another topic list or category" + hamburger_menu: "go to another topic list or category" go_back: 'go back' not_logged_in_user: 'user page with summary of current activity and preferences' current_user: 'go to your user page' @@ -2570,7 +2570,7 @@ en: title: 'Application' create: '<b>c</b> Create a new topic' notifications: '<b>n</b> Open notifications' - site_map_menu: '<b>=</b> Open site menu' + hamburger_menu: '<b>=</b> Open hamburger menu' user_profile_menu: '<b>p</b> Open user menu' show_incoming_updated_topics: '<b>.</b> Show updated topics' search: '<b>/</b> Search' diff --git a/config/locales/client.es.yml b/config/locales/client.es.yml index f3d3ff7e4..9b90c7e25 100644 --- a/config/locales/client.es.yml +++ b/config/locales/client.es.yml @@ -837,7 +837,7 @@ es: category: "Buscar en la categoría \"{{category}}\"" topic: "Buscar en este tema" private_messages: "Buscar en mensajes" - site_map: "ir a otra lista de temas o categoría" + hamburger_menu: "ir a otra lista de temas o categoría" go_back: 'volver' not_logged_in_user: 'página con el resumen de actividad y preferencias' current_user: 'ir a tu página de usuario' @@ -2357,7 +2357,7 @@ es: title: 'Aplicación' create: '<b>c</b> Crear un tema nuevo' notifications: '<b>n</b> Abrir notificaciones' - site_map_menu: '<b>=</b> Abrir menú del sitio' + hamburger_menu: '<b>=</b> Abrir menú del sitio' user_profile_menu: '<b>p</b> Abrir menú de usuario' show_incoming_updated_topics: '<b>.</b> Mostrar temas actualizados' search: '<b>/</b> Buscar' diff --git a/config/locales/client.fa_IR.yml b/config/locales/client.fa_IR.yml index fafee55b4..408c91e4a 100644 --- a/config/locales/client.fa_IR.yml +++ b/config/locales/client.fa_IR.yml @@ -765,7 +765,7 @@ fa_IR: category: "جستجوی دستهٔ «{{category}}»" topic: "جستجوی این موضوع" private_messages: "جستجوی پیام" - site_map: "به فهرست موضوع یا دستهای دیگر بروید" + hamburger_menu: "به فهرست موضوع یا دستهای دیگر بروید" go_back: 'برگردید' not_logged_in_user: 'صفحه کاربر با خلاصه ای از فعالیت های و تنظیمات' current_user: 'به نمایهتان بروید' @@ -2197,7 +2197,7 @@ fa_IR: title: 'نرمافزار' create: '<b>c</b> ساختن یک موضوع جدید' notifications: '<b>n</b> باز کردن آگاهسازیها' - site_map_menu: '<b>=</b> باز کردن منوی سایت' + hamburger_menu: '<b>=</b> باز کردن منوی سایت' user_profile_menu: '<b>p</b> باز کردن منوی کاربران' show_incoming_updated_topics: '<b>.</b> نمایش موضوعات بروز شده' search: '<b>/</b> جستجو' diff --git a/config/locales/client.fi.yml b/config/locales/client.fi.yml index 5e5d5db20..a0c9c341d 100644 --- a/config/locales/client.fi.yml +++ b/config/locales/client.fi.yml @@ -817,7 +817,7 @@ fi: category: "Etsi alueelta \"{{category}}\"" topic: "Etsi tästä ketjusta" private_messages: "Etsi viesteistä" - site_map: "siirry toiseen ketjuun tai alueelle" + hamburger_menu: "siirry toiseen ketjuun tai alueelle" go_back: 'mene takaisin' not_logged_in_user: 'käyttäjäsivu, jossa on tiivistelmä käyttäjän viimeaikaisesta toiminnasta sekä käyttäjäasetukset' current_user: 'siirry omalle käyttäjäsivullesi' @@ -2313,7 +2313,7 @@ fi: title: 'Ohjelmisto' create: '<b>c</b> Luo uusi ketju' notifications: '<b>n</b> Avaa ilmoitukset' - site_map_menu: '<b>=</b> Avaa palstan valikko' + hamburger_menu: '<b>=</b> Avaa palstan valikko' user_profile_menu: '<b>p</b> Avaa käyttäjätilin valikko' show_incoming_updated_topics: '<b>.</b> Näytä päivittyneet ketjut' search: '<b>/</b> Etsi' diff --git a/config/locales/client.fr.yml b/config/locales/client.fr.yml index 2565eb87a..fe13af25d 100644 --- a/config/locales/client.fr.yml +++ b/config/locales/client.fr.yml @@ -817,7 +817,7 @@ fr: category: "Rechercher dans la catégorie \"{{category}}\"" topic: "Rechercher dans ce sujet" private_messages: "Rechercher des messages" - site_map: "aller à une autre liste de sujet ou catégorie" + hamburger_menu: "aller à une autre liste de sujet ou catégorie" go_back: 'retour' not_logged_in_user: 'page utilisateur avec un résumé de l''activité en cours et les préférences ' current_user: 'voir la page de l''utilisateur' @@ -2317,7 +2317,7 @@ fr: title: 'Application' create: '<b>c</b> Créer un nouveau sujet' notifications: '<b>n</b> Ouvrir les notifications' - site_map_menu: '<b>=</b> Ouvrir le menu principal' + hamburger_menu: '<b>=</b> Ouvrir le menu principal' user_profile_menu: '<b>p</b> Ouvrir le menu de votre profil' show_incoming_updated_topics: '<b>.</b> Afficher les sujets mis à jour' search: '<b>/</b> Rechercher' diff --git a/config/locales/client.he.yml b/config/locales/client.he.yml index 86bd74864..f72560231 100644 --- a/config/locales/client.he.yml +++ b/config/locales/client.he.yml @@ -837,7 +837,7 @@ he: category: "חיפוש בקטגוריה \"{{category}}\"" topic: "חפשו בנושא זה" private_messages: "חיפוש הודעות" - site_map: "לך לרשימת נושאים או קטגוריה אחרת" + hamburger_menu: "לך לרשימת נושאים או קטגוריה אחרת" go_back: 'חזור אחורה' not_logged_in_user: 'עמוד משתמש עם סיכום פעילות נוכחית והעדפות' current_user: 'לך לעמוד המשתמש שלך' @@ -2332,7 +2332,7 @@ he: title: 'יישום' create: '<b>c</b> צור נושא חדש' notifications: '<b>n</b> פתח התראות' - site_map_menu: '<b>=</b> פתיחת תפריט האתר' + hamburger_menu: '<b>=</b> פתיחת תפריט האתר' user_profile_menu: '<b>p</b>פתיחת תפריט משתמש/ת' show_incoming_updated_topics: '<b>.</b> הצגת נושאים שעודכנו' search: '<b>/</b> חיפוש' diff --git a/config/locales/client.it.yml b/config/locales/client.it.yml index 9eb2b0a83..a6535b87b 100644 --- a/config/locales/client.it.yml +++ b/config/locales/client.it.yml @@ -837,7 +837,7 @@ it: category: "Cerca nella categoria \"{{category}}\"" topic: "Cerca in questo argomento" private_messages: "Cerca messaggi" - site_map: "vai a un altro elenco di argomenti o categoria" + hamburger_menu: "vai a un altro elenco di argomenti o categoria" go_back: 'indietro' not_logged_in_user: 'pagina utente con riassunto delle attività correnti e delle impostazioni' current_user: 'vai alla pagina utente' @@ -2329,7 +2329,7 @@ it: title: 'Applicazione' create: '<b>c</b> Crea un nuovo argomento' notifications: '<b>n</b> Apri le notifiche' - site_map_menu: '<b>=</b> Apri il menu sito' + hamburger_menu: '<b>=</b> Apri il menu sito' user_profile_menu: '<b>p</b> Apri il menu del profilo utente' show_incoming_updated_topics: '<b>.</b> Mostra argomenti aggiornati' search: '<b>/</b> Cerca' diff --git a/config/locales/client.ja.yml b/config/locales/client.ja.yml index ca12ef4bd..fc552de3e 100644 --- a/config/locales/client.ja.yml +++ b/config/locales/client.ja.yml @@ -782,7 +782,7 @@ ja: category: "\"{{category}}\" カテゴリで検索する" topic: "このトピックを探す" private_messages: "メッセージ検索" - site_map: "別のトピックリストやカテゴリに移動" + hamburger_menu: "別のトピックリストやカテゴリに移動" go_back: '戻る' not_logged_in_user: 'ユーザアクティビティと設定ページ' current_user: 'ユーザページに移動' @@ -2225,7 +2225,7 @@ ja: title: 'アプリケーション' create: '<b>c</b> 新しいトピックを作成' notifications: '<b>n</b> お知らせを開く' - site_map_menu: '<b>=</b> サイトメニュを開く' + hamburger_menu: '<b>=</b> サイトメニュを開く' user_profile_menu: '<b>p</b> ユーザメニュを開く' show_incoming_updated_topics: '<b>.</b> 更新されたトピックを表示する' search: '<b>/</b> 検索' diff --git a/config/locales/client.ko.yml b/config/locales/client.ko.yml index c2fcbe308..64f4d10f5 100644 --- a/config/locales/client.ko.yml +++ b/config/locales/client.ko.yml @@ -782,7 +782,7 @@ ko: category: "\"{{category}}\" 카테고리 검색" topic: "이 토픽을 검색" private_messages: "메시지 검색" - site_map: "다른 토픽이나 카테고리로 이동" + hamburger_menu: "다른 토픽이나 카테고리로 이동" go_back: '돌아가기' not_logged_in_user: 'user page with summary of current activity and preferences' current_user: '사용자 페이지로 이동' @@ -2225,7 +2225,7 @@ ko: title: 'Application' create: '<b>c</b> 새 토픽을 만듭니다.' notifications: '<b>n</b> Open notifications' - site_map_menu: '<b>=</b> 사이트 메뉴 열기' + hamburger_menu: '<b>=</b> 사이트 메뉴 열기' user_profile_menu: '<b>p</b> 사용자 메뉴 열기' show_incoming_updated_topics: '<b>.</b> 갱신된 토픽 보기' search: '<b>/</b> Search' diff --git a/config/locales/client.nb_NO.yml b/config/locales/client.nb_NO.yml index b3cb1f7e5..deb438c7c 100644 --- a/config/locales/client.nb_NO.yml +++ b/config/locales/client.nb_NO.yml @@ -827,7 +827,7 @@ nb_NO: category: "Søk i kategorien \"{{category}}\"" topic: "Søk i dette emnet" private_messages: "Søk i meldinger" - site_map: "gå til en annen emneliste eller kategori" + hamburger_menu: "gå til en annen emneliste eller kategori" go_back: 'gå tilbake' not_logged_in_user: 'brukerside med oppsummering av nylig aktivtet og preferanser.' current_user: 'go til din brukerside' @@ -2318,7 +2318,7 @@ nb_NO: title: 'Applikasjon' create: '<b>c</b> Opprett nytt emne' notifications: '<b>n</b> Åpne varsler' - site_map_menu: '<b>=</b> Åpne nettstedsmenyen' + hamburger_menu: '<b>=</b> Åpne nettstedsmenyen' user_profile_menu: '<b>p</b> Åpne brukermenyen' show_incoming_updated_topics: '<b>.</b> Vis oppdaterte emner' search: '<b>/</b> Søk' diff --git a/config/locales/client.nl.yml b/config/locales/client.nl.yml index a60c09db8..72eb8f293 100644 --- a/config/locales/client.nl.yml +++ b/config/locales/client.nl.yml @@ -800,7 +800,7 @@ nl: category: "Doorzoek de \"{{category}}\" categorie" topic: "Zoek in deze topic" private_messages: "Zoek berichten" - site_map: "ga naar een andere topiclijst of categorie" + hamburger_menu: "ga naar een andere topiclijst of categorie" go_back: 'ga terug' not_logged_in_user: 'gebruikerspagina met samenvatting van huidige activiteit en voorkeuren' current_user: 'ga naar je gebruikerspagina' @@ -2285,7 +2285,7 @@ nl: title: 'Applicatie' create: '<b>c</b> Maak nieuwe topic' notifications: '<b>n</b> Open notificaties' - site_map_menu: '<b>=</b> Open site menu' + hamburger_menu: '<b>=</b> Open site menu' user_profile_menu: '<b>p</b> Open gebruikersmenu' show_incoming_updated_topics: '<b>.</b> Toon gewijzigde topics' search: '<b>/</b> Zoek' diff --git a/config/locales/client.pl_PL.yml b/config/locales/client.pl_PL.yml index dc3153a88..64566e040 100644 --- a/config/locales/client.pl_PL.yml +++ b/config/locales/client.pl_PL.yml @@ -872,7 +872,7 @@ pl_PL: category: "Szukaj w kategorii \"{{category}}\"" topic: "Szukaj w tym temacie" private_messages: "Wyszukiwanie wiadomości" - site_map: "przejdź do innej listy tematów lub kategorii" + hamburger_menu: "przejdź do innej listy tematów lub kategorii" go_back: 'wróć' not_logged_in_user: 'strona użytkownika z podsumowaniem bieżących działań i ustawień' current_user: 'idź do swojej strony użytkowanika' @@ -2424,7 +2424,7 @@ pl_PL: title: 'Aplikacja' create: '<b>c</b> utwórz nowy temat' notifications: '<b>n</b> pokaż powiadomienia' - site_map_menu: '<b>=</b> menu strony' + hamburger_menu: '<b>=</b> menu strony' user_profile_menu: '<b>p</b> menu użytkownika' show_incoming_updated_topics: '<b>.</b> nowe zmiany w tematach' search: '<b>/</b> wyszukaj' diff --git a/config/locales/client.pt.yml b/config/locales/client.pt.yml index 1b7869e38..8e90cf103 100644 --- a/config/locales/client.pt.yml +++ b/config/locales/client.pt.yml @@ -837,7 +837,7 @@ pt: category: "Procurar na categoria \"{{category}}\"" topic: "Pesquisar este tópico" private_messages: "Pesquisar mensagens" - site_map: "ir para outra lista de tópicos ou categorias" + hamburger_menu: "ir para outra lista de tópicos ou categorias" go_back: 'voltar atrás' not_logged_in_user: 'página de utilizador com resumo da atividade atual e preferências ' current_user: 'ir para a sua página de utilizador' @@ -2367,7 +2367,7 @@ pt: title: 'Aplicação' create: '<b>c</b> Criar um novo tópico' notifications: '<b>n</b> Abrir notificações' - site_map_menu: '<b>=</b> Abrir menu do sítio' + hamburger_menu: '<b>=</b> Abrir menu do sítio' user_profile_menu: '<b>p</b> Abrir menu do utilizador' show_incoming_updated_topics: '<b>.</b> Mostrar tópicos atualizados' search: '<b>/</b> Pesquisar' diff --git a/config/locales/client.pt_BR.yml b/config/locales/client.pt_BR.yml index 82c3450dd..316a4bcd8 100644 --- a/config/locales/client.pt_BR.yml +++ b/config/locales/client.pt_BR.yml @@ -805,7 +805,7 @@ pt_BR: category: "Procurar a categoria \"{{category}}\"" topic: "Procurar nesse tópico" private_messages: "Procurar mensagens" - site_map: "ir para outra lista de tópicos ou categorias" + hamburger_menu: "ir para outra lista de tópicos ou categorias" go_back: 'voltar' not_logged_in_user: 'página do usuário com resumo de atividades correntes e preferencias' current_user: 'ir para a sua página de usuário' @@ -2284,7 +2284,7 @@ pt_BR: title: 'Aplicação' create: '<b>c</b> Criar um tópico novo' notifications: '<b>n</b> Abre notificações' - site_map_menu: '<b>=</b> Abrir menu do site' + hamburger_menu: '<b>=</b> Abrir menu do site' user_profile_menu: '<b>p</b> Abrir menu do usuário' show_incoming_updated_topics: '<b>.</b> Exibir tópicos atualizados' search: '<b>/</b> Pesquisa' diff --git a/config/locales/client.ro.yml b/config/locales/client.ro.yml index f8486b403..7f2c80803 100644 --- a/config/locales/client.ro.yml +++ b/config/locales/client.ro.yml @@ -796,7 +796,7 @@ ro: category: "Caută în categoria\"{{category}}\" " topic: "Caută în această discuție" private_messages: "Caută mesaje" - site_map: "mergi la o altă listă de discuții sau categorii" + hamburger_menu: "mergi la o altă listă de discuții sau categorii" go_back: 'înapoi' not_logged_in_user: 'pagina utilizatorului cu sumarul activităților și preferințelor' current_user: 'mergi la pagina proprie de utilizator' @@ -2250,7 +2250,7 @@ ro: title: 'Applicația' create: '<b>c</b> Crează discuție nouă' notifications: '<b>n</b> Deschide notificare' - site_map_menu: '<b>=</b> Deschide meniu sit' + hamburger_menu: '<b>=</b> Deschide meniu sit' user_profile_menu: '<b>p</b> Deschide meniu utilizator' show_incoming_updated_topics: '<b>.</b> Arată discuţiile actualizate' search: '<b>/</b> Caută' diff --git a/config/locales/client.ru.yml b/config/locales/client.ru.yml index 2523549da..617f14863 100644 --- a/config/locales/client.ru.yml +++ b/config/locales/client.ru.yml @@ -862,7 +862,7 @@ ru: category: "Искать в разделе \"{{category}}\"" topic: "Искать в этой теме" private_messages: "Поиск в сообщениях" - site_map: "перейти к другому списку тем или другому разделу" + hamburger_menu: "перейти к другому списку тем или другому разделу" go_back: 'вернуться' not_logged_in_user: 'страница пользователя с историей его последней активности и настроек' current_user: 'перейти на вашу страницу пользователя' @@ -2430,7 +2430,7 @@ ru: title: 'Приложение' create: '<b>c</b> Создать новую тему' notifications: '<b>n</b> Открыть уведомления' - site_map_menu: '<b>=</b> Открыть меню сайта' + hamburger_menu: '<b>=</b> Открыть меню сайта' user_profile_menu: '<b>p</b> Открыть меню моего профиля' show_incoming_updated_topics: '<b>.</b> Показать обновленные темы' search: '<b>/</b> Поиск' diff --git a/config/locales/client.sq.yml b/config/locales/client.sq.yml index fd6cd73af..c8bd2016e 100644 --- a/config/locales/client.sq.yml +++ b/config/locales/client.sq.yml @@ -817,7 +817,7 @@ sq: category: "Kërko tek kategoria \"{{category}}\"" topic: "Kërko tek kjo temë" private_messages: "Search messages" - site_map: "go to another topic list or category" + hamburger_menu: "go to another topic list or category" go_back: 'kthehu mbrapa' not_logged_in_user: 'user page with summary of current activity and preferences' current_user: 'go to your user page' @@ -2312,7 +2312,7 @@ sq: title: 'Aplikacion' create: '<b>c</b> Filloni një diskutim të ri' notifications: '<b>n</b> Open notifications' - site_map_menu: '<b>=</b> Open site menu' + hamburger_menu: '<b>=</b> Open site menu' user_profile_menu: '<b>p</b> Open user menu' show_incoming_updated_topics: '<b>.</b> Show updated topics' search: '<b>/</b> Kërko' diff --git a/config/locales/client.sv.yml b/config/locales/client.sv.yml index c7d0f0ee6..0877858ec 100644 --- a/config/locales/client.sv.yml +++ b/config/locales/client.sv.yml @@ -783,7 +783,7 @@ sv: category: "Sök i kategorin \"{{category}}\"" topic: "Sök i denna diskussion" private_messages: "Sök meddelanden" - site_map: "gå till en annan ämneslista eller kategori" + hamburger_menu: "gå till en annan ämneslista eller kategori" go_back: 'gå tillbaka' not_logged_in_user: 'användarsida med sammanställning av aktuell aktivitet och inställningar' current_user: 'gå till din användarsida' @@ -2222,7 +2222,7 @@ sv: application: create: '<b>s</b> Skapa ett nytt ämne' notifications: '<b>n</b> Öppna notifikationer' - site_map_menu: '<b>=</b> Öppna webbplatsmeny' + hamburger_menu: '<b>=</b> Öppna webbplatsmeny' user_profile_menu: '<b>p</b> Öppna användarmeny' show_incoming_updated_topics: '<b>.</b> Visa uppdaterade ämnen' search: 'Sök' diff --git a/config/locales/client.te.yml b/config/locales/client.te.yml index fbcd93e90..c1177e1c9 100644 --- a/config/locales/client.te.yml +++ b/config/locales/client.te.yml @@ -686,7 +686,7 @@ te: user: "@{{username}} యొక్క విషయాలు వెతుకు" category: "\"{{category}}\" వర్గంలో వెతుకు" topic: "ఈ విషయంలో వెతుకు" - site_map: "మరో విషయాల జాబితాకు లేదా వర్గానికి వెళ్లు" + hamburger_menu: "మరో విషయాల జాబితాకు లేదా వర్గానికి వెళ్లు" go_back: 'వెనక్కు మరలు' not_logged_in_user: 'సభ్యుని ప్రస్తుత కలాపాల మరియు అభిరూపాల సారాంశ పుట' current_user: 'మీ సభ్యపుటకు వెళ్లు' @@ -1961,7 +1961,7 @@ te: title: 'అనువర్తనం' create: '<b>c</b> కొత్త టపా సృష్టించు' notifications: '<b>n</b> తెరచిన ప్రకటనలు' - site_map_menu: '<b>=</b> సైట్ మెనూ తెరువు' + hamburger_menu: '<b>=</b> సైట్ మెనూ తెరువు' user_profile_menu: '<b>p</b> యూజర్ మెనూ తెరువు' show_incoming_updated_topics: '<b>.</b> నవీకరించిన విషయాలను చూపించండి' search: '<b>/</b> వెతుకు' diff --git a/config/locales/client.tr_TR.yml b/config/locales/client.tr_TR.yml index 8c88dd937..3c60a6885 100644 --- a/config/locales/client.tr_TR.yml +++ b/config/locales/client.tr_TR.yml @@ -763,7 +763,7 @@ tr_TR: category: "\"{{category}}\" kategorisinde ara" topic: "Bu konuda ara" private_messages: "Mesajlarda ara" - site_map: "başka bir konu listesine veya kategoriye git" + hamburger_menu: "başka bir konu listesine veya kategoriye git" go_back: 'geri dön' not_logged_in_user: 'güncel aktivitelerin ve ayarların özetinin bulunduğu kullanıcı sayfası' current_user: 'kendi kullanıcı sayfana git' @@ -2195,7 +2195,7 @@ tr_TR: title: 'Uygulama' create: '<b>c</b> Yeni konu aç' notifications: '<b>n</b> Bildirileri aç' - site_map_menu: '<b>=</b> Site menüsünü aç' + hamburger_menu: '<b>=</b> Site menüsünü aç' user_profile_menu: '<b>p</b> Kullanıcı menüsünü aç' show_incoming_updated_topics: '<b>.</b> Güncellenmiş konuları göster' search: '<b>/</b> Arama' diff --git a/config/locales/client.uk.yml b/config/locales/client.uk.yml index 58f39f591..2aead58b6 100644 --- a/config/locales/client.uk.yml +++ b/config/locales/client.uk.yml @@ -593,7 +593,7 @@ uk: searching: "Пошук ..." context: topic: "Пошук в цій темі" - site_map: "перейти до іншого переліку або категорії тем" + hamburger_menu: "перейти до іншого переліку або категорії тем" go_back: 'повернутися назад' not_logged_in_user: 'сторінка користувача з підсумком поточної діяльності та налаштуваннями' current_user: 'перейти до Вашої сторінки користувача' diff --git a/config/locales/client.zh_CN.yml b/config/locales/client.zh_CN.yml index 0625eabc3..bb2376de8 100644 --- a/config/locales/client.zh_CN.yml +++ b/config/locales/client.zh_CN.yml @@ -782,7 +782,7 @@ zh_CN: category: "搜索“{{category}}”分类" topic: "只搜索本主题" private_messages: "搜索消息" - site_map: "去另一个主题列表或分类" + hamburger_menu: "去另一个主题列表或分类" go_back: '返回' not_logged_in_user: '显示当前活动和设置的用户页面' current_user: '去你的用户页面' @@ -2230,7 +2230,7 @@ zh_CN: title: '应用' create: '<b>c</b> 创建一个新主题' notifications: '<b>n</b> 打开通知菜单' - site_map_menu: '<b>=</b> 打开站点菜单' + hamburger_menu: '<b>=</b> 打开站点菜单' user_profile_menu: '<b>p</b> 打开用户菜单' show_incoming_updated_topics: '<b>.</b> 显示更新过的主题' search: '<b>/</b> 搜索' diff --git a/config/locales/client.zh_TW.yml b/config/locales/client.zh_TW.yml index cac2a7fe2..71f078326 100644 --- a/config/locales/client.zh_TW.yml +++ b/config/locales/client.zh_TW.yml @@ -718,7 +718,7 @@ zh_TW: user: "搜尋 @{{username}} 的文章" category: "搜尋 \"{{category}}\" 分類" topic: "搜尋此討論話題" - site_map: "到另一個討論話題列表或分類" + hamburger_menu: "到另一個討論話題列表或分類" go_back: '返回' not_logged_in_user: '用戶頁面包含目前活動及喜好的總結' current_user: '到你的用戶頁面' @@ -2057,7 +2057,7 @@ zh_TW: title: 'Application' create: '<b>c</b> 表示新討論話題' notifications: '<b>n</b> 開啟通知' - site_map_menu: '<b>=</b> 打開網站選單' + hamburger_menu: '<b>=</b> 打開網站選單' user_profile_menu: '<b>p</b> 打開使用者選單' show_incoming_updated_topics: '<b>.</b> 顯示有更新的討論話題' search: '<b>/</b> 搜尋' diff --git a/test/javascripts/acceptance/hamburger-menu-staff-test.js.es6 b/test/javascripts/acceptance/hamburger-menu-staff-test.js.es6 new file mode 100644 index 000000000..21940146f --- /dev/null +++ b/test/javascripts/acceptance/hamburger-menu-staff-test.js.es6 @@ -0,0 +1,13 @@ +import { acceptance } from "helpers/qunit-helpers"; + +acceptance("Hamburger Menu - Staff", { loggedIn: true }); + +test("Menu Items", (assert) => { + visit("/"); + click("#toggle-hamburger-menu"); + andThen(() => { + assert.ok(exists("#hamburger-menu .admin-link")); + assert.ok(exists("#hamburger-menu .flagged-posts-link")); + assert.ok(exists("#hamburger-menu .flagged-posts.badge-notification"), "it displays flag notifications"); + }); +}); diff --git a/test/javascripts/acceptance/hamburger-menu-test.js.es6 b/test/javascripts/acceptance/hamburger-menu-test.js.es6 new file mode 100644 index 000000000..0dc9d2ca3 --- /dev/null +++ b/test/javascripts/acceptance/hamburger-menu-test.js.es6 @@ -0,0 +1,39 @@ +import { acceptance } from "helpers/qunit-helpers"; + +acceptance("Hamburger Menu"); + +test("Toggle Menu", (assert) => { + visit("/"); + andThen(() => { + assert.ok(exists("#hamburger-menu.slideright"), "hidden by default"); + }); + + click("#toggle-hamburger-menu"); + andThen(() => { + assert.ok(!exists("#hamburger-menu.slideright"), "a click makes it appear"); + }); + + click(".close-hamburger"); + andThen(() => { + assert.ok(exists("#hamburger-menu.slideright"), "clicking the X hides it"); + }); +}); + +test("Menu Items", (assert) => { + visit("/"); + click("#toggle-hamburger-menu"); + andThen(() => { + assert.ok(!exists("#hamburger-menu .admin-link")); + assert.ok(!exists("#hamburger-menu .flagged-posts-link")); + + assert.ok(exists("#hamburger-menu .latest-topics-link")); + assert.ok(exists("#hamburger-menu .badge-link")); + assert.ok(exists("#hamburger-menu .user-directory-link")); + assert.ok(exists("#hamburger-menu .keyboard-shortcuts-link")); + assert.ok(exists("#hamburger-menu .faq-link")); + assert.ok(exists("#hamburger-menu .about-link")); + assert.ok(exists("#hamburger-menu .categories-link")); + + assert.ok(exists('#hamburger-menu .category-link')); + }); +}); diff --git a/test/javascripts/acceptance/header-anonymous-test.js.es6 b/test/javascripts/acceptance/header-anonymous-test.js.es6 index ae6ca34d7..6e642b729 100644 --- a/test/javascripts/acceptance/header-anonymous-test.js.es6 +++ b/test/javascripts/acceptance/header-anonymous-test.js.es6 @@ -7,7 +7,6 @@ test("header", () => { ok(exists("header"), "is rendered"); ok(exists(".logo-big"), "it renders the large logo by default"); not(exists("#notifications-dropdown li"), "no notifications at first"); - not(exists('#site-map-dropdown'), "no site map by default"); not(exists("#user-dropdown:visible"), "initially user dropdown is closed"); not(exists("#search-dropdown:visible"), "initially search box is closed"); }); @@ -21,14 +20,6 @@ test("header", () => { ok(exists(".logo-small"), "it shows the small logo when `showExtraInfo` is enabled"); }); - // Site Map - click("#site-map"); - andThen(() => { - ok(exists('#site-map-dropdown'), "is rendered after user opens it"); - ok(exists("#site-map-dropdown .faq-link"), "it shows the faq link"); - ok(exists("#site-map-dropdown .category-links"), "has categories correctly bound"); - }); - // Search click("#search-button"); andThen(() => { diff --git a/test/javascripts/acceptance/header-test-staff.js.es6 b/test/javascripts/acceptance/header-test-staff.js.es6 index fb3278ee8..5820eb327 100644 --- a/test/javascripts/acceptance/header-test-staff.js.es6 +++ b/test/javascripts/acceptance/header-test-staff.js.es6 @@ -13,13 +13,6 @@ test("header", () => { ok($items.first().hasClass("read"), "correctly binds items' 'read' class"); }); - // Site Map - click("#site-map"); - andThen(() => { - ok(exists("#site-map-dropdown .admin-link"), "it has the admin link"); - ok(exists("#site-map-dropdown .flagged-posts.badge-notification"), "it displays flag notifications"); - }); - // User dropdown click("#current-user"); andThen(() => { diff --git a/test/javascripts/acceptance/login-required-test.js.es6 b/test/javascripts/acceptance/login-required-test.js.es6 index c3904b391..abdb2eea9 100644 --- a/test/javascripts/acceptance/login-required-test.js.es6 +++ b/test/javascripts/acceptance/login-required-test.js.es6 @@ -37,7 +37,7 @@ test("redirect", () => { ok(invisible('.login-modal'), "it closes the login modal"); }); - click('#site-map'); + click('#toggle-hamburger-menu'); andThen(() => { ok(exists('.login-modal'), "site map opens the login modal"); }); diff --git a/test/javascripts/components/keyboard-shortcuts-test.js.es6 b/test/javascripts/components/keyboard-shortcuts-test.js.es6 index c21b8038c..745a8f3c2 100644 --- a/test/javascripts/components/keyboard-shortcuts-test.js.es6 +++ b/test/javascripts/components/keyboard-shortcuts-test.js.es6 @@ -55,7 +55,7 @@ module("lib:keyboard-shortcuts", { "<div class='alert alert-info clickable'></div>", "<button id='create-topic'></button>", "<div id='user-notifications'></div>", - "<div id='site-map'></div>", + "<div id='toggle-hamburger-menu'></div>", "<div id='search-button'></div>", "<div id='current-user'></div>", "<div id='keyboard-help'></div>" diff --git a/test/javascripts/controllers/site-map-category-test.js.es6 b/test/javascripts/controllers/site-map-category-test.js.es6 deleted file mode 100644 index 77cdbf145..000000000 --- a/test/javascripts/controllers/site-map-category-test.js.es6 +++ /dev/null @@ -1,26 +0,0 @@ -moduleFor("controller:site-map-category", 'controller:site-map-category', { - needs: ['controller:site-map'] -}); - -test("showTopicCount anonymous", function() { - var controller = this.subject(); - ok(controller.get("showTopicCount"), 'true when anonymous'); -}); - -test("showTopicCount logged in", function() { - var controller = this.subject({ currentUser: Discourse.User.create() }); - ok(!controller.get("showTopicCount"), 'false when logged in'); -}); - -test("unreadTotal default", function() { - var controller = this.subject({ currentUser: Discourse.User.create() }); - ok(!controller.get('unreadTotal'), "empty by default"); -}); - -test("unreadTotal with values", function() { - var controller = this.subject({ - currentUser: Discourse.User.create(), - model: { unreadTopics: 1, newTopics: 3 } - }); - equal(controller.get('unreadTotal'), 4); -}); diff --git a/test/javascripts/controllers/site-map-test.js.es6 b/test/javascripts/controllers/site-map-test.js.es6 deleted file mode 100644 index 419ed58cc..000000000 --- a/test/javascripts/controllers/site-map-test.js.es6 +++ /dev/null @@ -1,77 +0,0 @@ -var oldMobileView; - -moduleFor("controller:site-map", "controller:site-map", { - needs: ['controller:application', 'controller:header'], - - setup: function() { - oldMobileView = Discourse.Mobile.mobileView; - }, - - teardown: function() { - Discourse.Mobile.mobileView = oldMobileView; - } -}); - -test("showAdminLinks", function() { - const currentUser = Ember.Object.create({ staff: true }); - const controller = this.subject({ currentUser }); - equal(controller.get("showAdminLinks"), true, "is true when current user is a staff member"); - - currentUser.set("staff", false); - equal(controller.get("showAdminLinks"), false, "is false when current user is not a staff member"); -}); - -test("faqUrl returns faq url configured in site settings if it is set", function() { - Discourse.SiteSettings.faq_url = "faq-url"; - var controller = this.subject(); - equal(controller.get("faqUrl"), "faq-url"); -}); - -test("faqUrl returns default '/faq' url when there is no corresponding site setting set", function() { - Discourse.SiteSettings.faq_url = null; - var controller = this.subject(); - equal(controller.get("faqUrl"), "/faq"); -}); - -test("showMoblieToggle returns true when mobile theme is enabled in site settings", function() { - Discourse.SiteSettings.enable_mobile_theme = true; - Discourse.Mobile.isMobileDevice = true; - var controller = this.subject(); - controller.capabilities = { touch: true }; - equal(controller.get("showMobileToggle"), true); -}); - -test("showMoblieToggle returns false when mobile theme is disabled in site settings", function() { - Discourse.SiteSettings.enable_mobile_theme = false; - Discourse.Mobile.isMobileDevice = true; - var controller = this.subject(); - equal(controller.get("showMobileToggle"), false); -}); - -test("mobileViewLinkTextKey returns translation key for a desktop view if the current view is mobile view", function() { - Discourse.Mobile.mobileView = true; - var controller = this.subject(); - equal(controller.get("mobileViewLinkTextKey"), "desktop_view"); -}); - -test("mobileViewLinkTextKey returns translation key for a mobile view if the current view is desktop view", function() { - Discourse.Mobile.mobileView = false; - var controller = this.subject(); - equal(controller.get("mobileViewLinkTextKey"), "mobile_view"); -}); - -test("categories", function() { - var categoryListStub = ["category1", "category2"]; - sandbox.stub(Discourse.Category, "list").returns(categoryListStub); - - var controller = this.subject({ siteSettings: Discourse.SiteSettings }); - deepEqual(controller.get("categories"), categoryListStub, "returns the list of categories"); -}); - -test("toggleMobleView", function() { - sandbox.stub(Discourse.Mobile, "toggleMobileView"); - - var controller = this.subject(); - controller.send("toggleMobileView"); - ok(Discourse.Mobile.toggleMobileView.calledOnce, "switches between desktop and mobile views"); -}); diff --git a/test/javascripts/fixtures/site_fixtures.js.es6 b/test/javascripts/fixtures/site-fixtures.js.es6 similarity index 100% rename from test/javascripts/fixtures/site_fixtures.js.es6 rename to test/javascripts/fixtures/site-fixtures.js.es6 diff --git a/test/javascripts/helpers/qunit-helpers.js.es6 b/test/javascripts/helpers/qunit-helpers.js.es6 index 153bdb4b8..4b0207e54 100644 --- a/test/javascripts/helpers/qunit-helpers.js.es6 +++ b/test/javascripts/helpers/qunit-helpers.js.es6 @@ -1,7 +1,7 @@ /* global asyncTest, fixtures */ import sessionFixtures from 'fixtures/session-fixtures'; -import siteFixtures from 'fixtures/site_fixtures'; +import siteFixtures from 'fixtures/site-fixtures'; import HeaderView from 'discourse/views/header'; function currentUser() { diff --git a/test/javascripts/helpers/site-settings.js b/test/javascripts/helpers/site-settings.js index 6f43509e1..7782c2e4d 100644 --- a/test/javascripts/helpers/site-settings.js +++ b/test/javascripts/helpers/site-settings.js @@ -74,6 +74,7 @@ Discourse.SiteSettingsOriginal = { "polling_interval":3000, "anon_polling_interval":30000, "flush_timings_secs":5, + "enable_user_directory":true, "tos_url":"", "privacy_policy_url":"", "tos_accept_required":false, diff --git a/test/javascripts/test_helper.js b/test/javascripts/test_helper.js index 533f2286d..a7191147d 100644 --- a/test/javascripts/test_helper.js +++ b/test/javascripts/test_helper.js @@ -75,7 +75,7 @@ if (window.Logster) { var origDebounce = Ember.run.debounce, createPretendServer = require('helpers/create-pretender', null, null, false).default, - fixtures = require('fixtures/site_fixtures', null, null, false).default, + fixtures = require('fixtures/site-fixtures', null, null, false).default, flushMap = require('discourse/models/store', null, null, false).flushMap, ScrollingDOMMethods = require('discourse/mixins/scrolling', null, null, false).ScrollingDOMMethods, _DiscourseURL = require('discourse/lib/url', null, null, false).default, diff --git a/vendor/assets/javascripts/jquery.detect_swipe.js b/vendor/assets/javascripts/jquery.detect_swipe.js new file mode 100644 index 000000000..946515dcd --- /dev/null +++ b/vendor/assets/javascripts/jquery.detect_swipe.js @@ -0,0 +1,72 @@ +/** + * jquery.detectSwipe v2.1.1 + * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch, iPad and Android + * http://github.com/marcandre/detect_swipe + * Based on touchwipe by Andreas Waltl, netCU Internetagentur (http://www.netcu.de) + */ +(function($) { + + $.detectSwipe = { + version: '2.1.1', + enabled: 'ontouchstart' in document.documentElement, + preventDefault: true, + threshold: 20 + }; + + var startX, + startY, + isMoving = false; + + function onTouchEnd() { + this.removeEventListener('touchmove', onTouchMove); + this.removeEventListener('touchend', onTouchEnd); + isMoving = false; + } + + function onTouchMove(e) { + if ($.detectSwipe.preventDefault) { e.preventDefault(); } + if(isMoving) { + var x = e.touches[0].pageX; + var y = e.touches[0].pageY; + var dx = startX - x; + var dy = startY - y; + var dir; + if(Math.abs(dx) >= $.detectSwipe.threshold) { + dir = dx > 0 ? 'left' : 'right' + } + else if(Math.abs(dy) >= $.detectSwipe.threshold) { + dir = dy > 0 ? 'down' : 'up' + } + if(dir) { + onTouchEnd.call(this); + $(this).trigger('swipe', dir).trigger('swipe' + dir); + } + } + } + + function onTouchStart(e) { + if (e.touches.length === 1) { + startX = e.touches[0].pageX; + startY = e.touches[0].pageY; + isMoving = true; + this.addEventListener('touchmove', onTouchMove, false); + this.addEventListener('touchend', onTouchEnd, false); + } + } + + function setup() { + this.addEventListener && this.addEventListener('touchstart', onTouchStart, false); + } + + function teardown() { + this.removeEventListener('touchstart', onTouchStart); + } + + $.event.special.swipe = { setup: setup, teardown: teardown }; + + $.each(['left', 'up', 'down', 'right'], function () { + $.event.special['swipe' + this] = { setup: function() { + $(this).on('swipe', $.noop); + } }; + }); +})(jQuery);