diff --git a/app/assets/javascripts/app/views/header_view.js b/app/assets/javascripts/app/views/header_view.js index 985c28652..814ef3a87 100644 --- a/app/assets/javascripts/app/views/header_view.js +++ b/app/assets/javascripts/app/views/header_view.js @@ -21,7 +21,7 @@ app.views.Header = app.views.Base.extend({ postRenderTemplate: function(){ new app.views.Notifications({ el: '#notification_dropdown' }); new app.views.NotificationDropdown({ el: '#notification_badge' }); - new app.views.SearchBar({ el: '#search_people_form' }); + new app.views.Search({ el: '#header-search-form' }); }, menuElement: function(){ return this.$("ul.dropdown"); }, diff --git a/app/assets/javascripts/app/views/notifications_dropdown_view.js b/app/assets/javascripts/app/views/notification_dropdown_view.js similarity index 87% rename from app/assets/javascripts/app/views/notifications_dropdown_view.js rename to app/assets/javascripts/app/views/notification_dropdown_view.js index 7273dd906..a2c7525db 100644 --- a/app/assets/javascripts/app/views/notifications_dropdown_view.js +++ b/app/assets/javascripts/app/views/notification_dropdown_view.js @@ -13,8 +13,8 @@ app.views.NotificationDropdown = app.views.Base.extend({ this.hasMoreNotifs = true; this.badge = this.$el; this.dropdown = $('#notification_dropdown'); - this.dropdownNotifications = this.dropdown.find(".notifications"); - this.ajaxLoader = this.dropdown.find(".ajax_loader"); + this.dropdownNotifications = this.dropdown.find('.notifications'); + this.ajaxLoader = this.dropdown.find('.ajax_loader'); }, toggleDropdown: function(evt){ @@ -25,15 +25,15 @@ app.views.NotificationDropdown = app.views.Base.extend({ }, dropdownShowing: function(){ - return this.dropdown.css("display") === "block"; + return this.dropdown.css('display') === 'block'; }, showDropdown: function(){ this.resetParams(); this.ajaxLoader.show(); - this.badge.addClass("active"); - this.dropdown.css("display", "block"); - this.dropdownNotifications.addClass("loading"); + this.badge.addClass('active'); + this.dropdown.css('display', 'block'); + this.dropdownNotifications.addClass('loading'); this.getNotifications(); }, @@ -41,8 +41,8 @@ app.views.NotificationDropdown = app.views.Base.extend({ var inDropdown = $(evt.target).parents().is(this.dropdown); var inHovercard = $.contains(app.hovercard.el, evt.target); if(!inDropdown && !inHovercard && this.dropdownShowing()){ - this.badge.removeClass("active"); - this.dropdown.css("display", "none"); + this.badge.removeClass('active'); + this.dropdown.css('display', 'none'); this.dropdownNotifications.perfectScrollbar('destroy'); } }, @@ -77,7 +77,8 @@ app.views.NotificationDropdown = app.views.Base.extend({ $.getJSON(Routes.notifications_path(this.getParams()), function(notifications){ $.each(notifications, function(){ self.notifications.push(this); }); self.hasMoreNotifs = notifications.length >= self.perPage; - self.nextPage = self.nextPage++ || 3; + if(self.nextPage){ self.nextPage++; } + else { self.nextPage = 3; } self.renderNotifications(); }); }, diff --git a/app/assets/javascripts/app/views/searchbar_view.js b/app/assets/javascripts/app/views/search_view.js similarity index 80% rename from app/assets/javascripts/app/views/searchbar_view.js rename to app/assets/javascripts/app/views/search_view.js index 6c16265bf..3453a969e 100644 --- a/app/assets/javascripts/app/views/searchbar_view.js +++ b/app/assets/javascripts/app/views/search_view.js @@ -1,11 +1,10 @@ // @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later -app.views.SearchBar = app.views.Base.extend({ +app.views.Search = app.views.Base.extend({ initialize: function(){ - this.searchForm = this.$el; - this.searchFormAction = this.searchForm.attr('action'); - this.searchInput = this.searchForm.find('input[type="search"]'); - this.searchInputName = this.searchForm.find('input[type="search"]').attr('name'); - this.searchInputHandle = this.searchForm.find('input[type="search"]').attr('handle'); + this.searchFormAction = this.$el.attr('action'); + this.searchInput = this.$('input[type="search"]'); + this.searchInputName = this.$('input[type="search"]').attr('name'); + this.searchInputHandle = this.$('input[type="search"]').attr('handle'); this.options = { cacheLength: 15, delay: 800, @@ -39,12 +38,13 @@ app.views.SearchBar = app.views.Base.extend({ formatResult: function(row){ return Handlebars.Utils.escapeExpression(row.name); }, parse: function(data) { + var self = this.context; + var results = data.map(function(person){ - person.name = Handlebars.Utils.escapeExpression(person.name); + person.name = self.formatResult(person); return {data : person, value : person.name}; }); - var self = this.context; results.push({ data: { name: self.searchInput.val(), diff --git a/app/assets/templates/header_tpl.jst.hbs b/app/assets/templates/header_tpl.jst.hbs index 89f81b563..3922d6b5d 100644 --- a/app/assets/templates/header_tpl.jst.hbs +++ b/app/assets/templates/header_tpl.jst.hbs @@ -87,7 +87,7 @@