diff --git a/frontend/src/Metamaps/GlobalUI.js b/frontend/src/Metamaps/GlobalUI.js
index 7af133de..6b6ca003 100644
--- a/frontend/src/Metamaps/GlobalUI.js
+++ b/frontend/src/Metamaps/GlobalUI.js
@@ -1,4 +1,4 @@
-/* global Metamaps, $, Hogan, Bloodhound */
+/* global Metamaps, $, Hogan, Bloodhound, CanvasLoader */
import Active from './Active'
import Create from './Create'
import Filter from './Filter'
@@ -14,44 +14,44 @@ const GlobalUI = {
notifyTimeout: null,
lightbox: null,
init: function () {
- var self = GlobalUI;
+ var self = GlobalUI
- self.Search.init();
- self.CreateMap.init();
- self.Account.init();
+ self.Search.init()
+ self.CreateMap.init()
+ self.Account.init()
if ($('#toast').html().trim()) self.notifyUser($('#toast').html())
- //bind lightbox clicks
+ // bind lightbox clicks
$('.openLightbox').click(function (event) {
- self.openLightbox($(this).attr('data-open'));
- event.preventDefault();
- return false;
- });
+ self.openLightbox($(this).attr('data-open'))
+ event.preventDefault()
+ return false
+ })
- $('#lightbox_screen, #lightbox_close').click(self.closeLightbox);
+ $('#lightbox_screen, #lightbox_close').click(self.closeLightbox)
// initialize global backbone models and collections
- if (Active.Mapper) Active.Mapper = new Metamaps.Backbone.Mapper(Active.Mapper);
+ if (Active.Mapper) Active.Mapper = new Metamaps.Backbone.Mapper(Active.Mapper)
- var myCollection = Metamaps.Maps.Mine ? Metamaps.Maps.Mine : [];
- var sharedCollection = Metamaps.Maps.Shared ? Metamaps.Maps.Shared : [];
- var starredCollection = Metamaps.Maps.Starred ? Metamaps.Maps.Starred : [];
- var mapperCollection = [];
- var mapperOptionsObj = {id: 'mapper', sortBy: 'updated_at' };
+ var myCollection = Metamaps.Maps.Mine ? Metamaps.Maps.Mine : []
+ var sharedCollection = Metamaps.Maps.Shared ? Metamaps.Maps.Shared : []
+ var starredCollection = Metamaps.Maps.Starred ? Metamaps.Maps.Starred : []
+ var mapperCollection = []
+ var mapperOptionsObj = { id: 'mapper', sortBy: 'updated_at' }
if (Metamaps.Maps.Mapper) {
- mapperCollection = Metamaps.Maps.Mapper.models;
- mapperOptionsObj.mapperId = Metamaps.Maps.Mapper.id;
+ mapperCollection = Metamaps.Maps.Mapper.models
+ mapperOptionsObj.mapperId = Metamaps.Maps.Mapper.id
}
- var featuredCollection = Metamaps.Maps.Featured ? Metamaps.Maps.Featured : [];
- var activeCollection = Metamaps.Maps.Active ? Metamaps.Maps.Active : [];
- Metamaps.Maps.Mine = new Metamaps.Backbone.MapsCollection(myCollection, {id: 'mine', sortBy: 'updated_at' });
- Metamaps.Maps.Shared = new Metamaps.Backbone.MapsCollection(sharedCollection, {id: 'shared', sortBy: 'updated_at' });
- Metamaps.Maps.Starred = new Metamaps.Backbone.MapsCollection(starredCollection, {id: 'starred', sortBy: 'updated_at' });
+ var featuredCollection = Metamaps.Maps.Featured ? Metamaps.Maps.Featured : []
+ var activeCollection = Metamaps.Maps.Active ? Metamaps.Maps.Active : []
+ Metamaps.Maps.Mine = new Metamaps.Backbone.MapsCollection(myCollection, { id: 'mine', sortBy: 'updated_at' })
+ Metamaps.Maps.Shared = new Metamaps.Backbone.MapsCollection(sharedCollection, { id: 'shared', sortBy: 'updated_at' })
+ Metamaps.Maps.Starred = new Metamaps.Backbone.MapsCollection(starredCollection, { id: 'starred', sortBy: 'updated_at' })
// 'Mapper' refers to another mapper
- Metamaps.Maps.Mapper = new Metamaps.Backbone.MapsCollection(mapperCollection, mapperOptionsObj);
- Metamaps.Maps.Featured = new Metamaps.Backbone.MapsCollection(featuredCollection, {id: 'featured', sortBy: 'updated_at' });
- Metamaps.Maps.Active = new Metamaps.Backbone.MapsCollection(activeCollection, {id: 'active', sortBy: 'updated_at' });
+ Metamaps.Maps.Mapper = new Metamaps.Backbone.MapsCollection(mapperCollection, mapperOptionsObj)
+ Metamaps.Maps.Featured = new Metamaps.Backbone.MapsCollection(featuredCollection, { id: 'featured', sortBy: 'updated_at' })
+ Metamaps.Maps.Active = new Metamaps.Backbone.MapsCollection(activeCollection, { id: 'active', sortBy: 'updated_at' })
},
showDiv: function (selector) {
$(selector).show()
@@ -65,261 +65,252 @@ const GlobalUI = {
}, 200, 'easeInCubic', function () { $(this).hide() })
},
openLightbox: function (which) {
- var self = GlobalUI;
+ var self = GlobalUI
- $('.lightboxContent').hide();
- $('#' + which).show();
+ $('.lightboxContent').hide()
+ $('#' + which).show()
- self.lightbox = which;
+ self.lightbox = which
- $('#lightbox_overlay').show();
+ $('#lightbox_overlay').show()
- var heightOfContent = '-' + ($('#lightbox_main').height() / 2) + 'px';
+ var heightOfContent = '-' + ($('#lightbox_main').height() / 2) + 'px'
// animate the content in from the bottom
$('#lightbox_main').animate({
'top': '50%',
'margin-top': heightOfContent
- }, 200, 'easeOutCubic');
+ }, 200, 'easeOutCubic')
// fade the black overlay in
$('#lightbox_screen').animate({
'opacity': '0.42'
- }, 200);
+ }, 200)
- if (which == "switchMetacodes") {
- Create.isSwitchingSet = true;
+ if (which === 'switchMetacodes') {
+ Create.isSwitchingSet = true
}
},
closeLightbox: function (event) {
- var self = GlobalUI;
+ var self = GlobalUI
- if (event) event.preventDefault();
+ if (event) event.preventDefault()
// animate the lightbox content offscreen
$('#lightbox_main').animate({
'top': '100%',
'margin-top': '0'
- }, 200, 'easeInCubic');
+ }, 200, 'easeInCubic')
// fade the black overlay out
$('#lightbox_screen').animate({
'opacity': '0.0'
}, 200, function () {
- $('#lightbox_overlay').hide();
- });
+ $('#lightbox_overlay').hide()
+ })
- if (self.lightbox === 'forkmap') GlobalUI.CreateMap.reset('fork_map');
- if (self.lightbox === 'newmap') GlobalUI.CreateMap.reset('new_map');
+ if (self.lightbox === 'forkmap') GlobalUI.CreateMap.reset('fork_map')
+ if (self.lightbox === 'newmap') GlobalUI.CreateMap.reset('new_map')
if (Create && Create.isSwitchingSet) {
- Create.cancelMetacodeSetSwitch();
+ Create.cancelMetacodeSetSwitch()
}
- self.lightbox = null;
+ self.lightbox = null
},
notifyUser: function (message, leaveOpen) {
- var self = GlobalUI;
+ var self = GlobalUI
$('#toast').html(message)
self.showDiv('#toast')
- clearTimeout(self.notifyTimeOut);
+ clearTimeout(self.notifyTimeOut)
if (!leaveOpen) {
self.notifyTimeOut = setTimeout(function () {
self.hideDiv('#toast')
- }, 8000);
+ }, 8000)
}
},
- clearNotify: function() {
- var self = GlobalUI;
+ clearNotify: function () {
+ var self = GlobalUI
- clearTimeout(self.notifyTimeOut);
+ clearTimeout(self.notifyTimeOut)
self.hideDiv('#toast')
},
- shareInvite: function(inviteLink) {
- window.prompt("To copy the invite link, press: Ctrl+C, Enter", inviteLink);
+ shareInvite: function (inviteLink) {
+ window.prompt('To copy the invite link, press: Ctrl+C, Enter', inviteLink)
}
}
GlobalUI.CreateMap = {
newMap: null,
- emptyMapForm: "",
- emptyForkMapForm: "",
+ emptyMapForm: '',
+ emptyForkMapForm: '',
topicsToMap: [],
synapsesToMap: [],
init: function () {
- var self = GlobalUI.CreateMap;
+ var self = GlobalUI.CreateMap
- self.newMap = new Metamaps.Backbone.Map({ permission: 'commons' });
+ self.newMap = new Metamaps.Backbone.Map({ permission: 'commons' })
- self.bindFormEvents();
-
- self.emptyMapForm = $('#new_map').html();
+ self.bindFormEvents()
+ self.emptyMapForm = $('#new_map').html()
},
bindFormEvents: function () {
- var self = GlobalUI.CreateMap;
+ var self = GlobalUI.CreateMap
- $('.new_map input, .new_map div').unbind('keypress').bind('keypress', function(event) {
+ $('.new_map input, .new_map div').unbind('keypress').bind('keypress', function (event) {
if (event.keyCode === 13) self.submit()
})
$('.new_map button.cancel').unbind().bind('click', function (event) {
- event.preventDefault();
- GlobalUI.closeLightbox();
- });
- $('.new_map button.submitMap').unbind().bind('click', self.submit);
+ event.preventDefault()
+ GlobalUI.closeLightbox()
+ })
+ $('.new_map button.submitMap').unbind().bind('click', self.submit)
// bind permission changer events on the createMap form
- $('.permIcon').unbind().bind('click', self.switchPermission);
+ $('.permIcon').unbind().bind('click', self.switchPermission)
},
closeSuccess: function () {
- $('#mapCreatedSuccess').fadeOut(300, function(){
- $(this).remove();
- });
+ $('#mapCreatedSuccess').fadeOut(300, function () {
+ $(this).remove()
+ })
},
generateSuccessMessage: function (id) {
- var stringStart = "
";
- return stringStart + page + stringEnd;
+ var stringStart = "'
+ return stringStart + page + stringEnd
},
switchPermission: function () {
- var self = GlobalUI.CreateMap;
+ var self = GlobalUI.CreateMap
- self.newMap.set('permission', $(this).attr('data-permission'));
- $(this).siblings('.permIcon').find('.mapPermIcon').removeClass('selected');
- $(this).find('.mapPermIcon').addClass('selected');
+ self.newMap.set('permission', $(this).attr('data-permission'))
+ $(this).siblings('.permIcon').find('.mapPermIcon').removeClass('selected')
+ $(this).find('.mapPermIcon').addClass('selected')
- var permText = $(this).find('.tip').html();
- $(this).parents('.new_map').find('.permText').html(permText);
+ var permText = $(this).find('.tip').html()
+ $(this).parents('.new_map').find('.permText').html(permText)
},
submit: function (event) {
- if (event) event.preventDefault();
+ if (event) event.preventDefault()
- var self = GlobalUI.CreateMap;
+ var self = GlobalUI.CreateMap
if (GlobalUI.lightbox === 'forkmap') {
- self.newMap.set('topicsToMap', self.topicsToMap);
- self.newMap.set('synapsesToMap', self.synapsesToMap);
+ self.newMap.set('topicsToMap', self.topicsToMap)
+ self.newMap.set('synapsesToMap', self.synapsesToMap)
}
- var formId = GlobalUI.lightbox === 'forkmap' ? '#fork_map' : '#new_map';
- var $form = $(formId);
+ var formId = GlobalUI.lightbox === 'forkmap' ? '#fork_map' : '#new_map'
+ var $form = $(formId)
- self.newMap.set('name', $form.find('#map_name').val());
- self.newMap.set('desc', $form.find('#map_desc').val());
+ self.newMap.set('name', $form.find('#map_name').val())
+ self.newMap.set('desc', $form.find('#map_desc').val())
- if (self.newMap.get('name').length===0){
- self.throwMapNameError();
- return;
+ if (self.newMap.get('name').length === 0) {
+ self.throwMapNameError()
+ return
}
self.newMap.save(null, {
success: self.success
- // TODO add error message
- });
+ // TODO add error message
+ })
- GlobalUI.closeLightbox();
- GlobalUI.notifyUser('Working...');
+ GlobalUI.closeLightbox()
+ GlobalUI.notifyUser('Working...')
},
throwMapNameError: function () {
- var self = GlobalUI.CreateMap;
- var formId = GlobalUI.lightbox === 'forkmap' ? '#fork_map' : '#new_map';
- var $form = $(formId);
+ var formId = GlobalUI.lightbox === 'forkmap' ? '#fork_map' : '#new_map'
+ var $form = $(formId)
- var message = $("Please enter a map name...
");
+ var message = $("Please enter a map name...
")
- $form.find('#map_name').after(message);
- setTimeout(function(){
- message.fadeOut('fast', function(){
- message.remove();
- });
- }, 5000);
+ $form.find('#map_name').after(message)
+ setTimeout(function () {
+ message.fadeOut('fast', function () {
+ message.remove()
+ })
+ }, 5000)
},
success: function (model) {
- var self = GlobalUI.CreateMap;
-
- //push the new map onto the collection of 'my maps'
- Metamaps.Maps.Mine.add(model);
-
- var formId = GlobalUI.lightbox === 'forkmap' ? '#fork_map' : '#new_map';
- var form = $(formId);
-
- GlobalUI.clearNotify();
- $('#wrapper').append(self.generateSuccessMessage(model.id));
+ var self = GlobalUI.CreateMap
+ // push the new map onto the collection of 'my maps'
+ Metamaps.Maps.Mine.add(model)
+ GlobalUI.clearNotify()
+ $('#wrapper').append(self.generateSuccessMessage(model.id))
},
reset: function (id) {
- var self = GlobalUI.CreateMap;
+ var self = GlobalUI.CreateMap
- var form = $('#' + id);
+ var form = $('#' + id)
- if (id === "fork_map") {
- self.topicsToMap = [];
- self.synapsesToMap = [];
- form.html(self.emptyForkMapForm);
- }
- else {
- form.html(self.emptyMapForm);
+ if (id === 'fork_map') {
+ self.topicsToMap = []
+ self.synapsesToMap = []
+ form.html(self.emptyForkMapForm)
+ } else {
+ form.html(self.emptyMapForm)
}
- self.bindFormEvents();
- self.newMap = new Metamaps.Backbone.Map({ permission: 'commons' });
+ self.bindFormEvents()
+ self.newMap = new Metamaps.Backbone.Map({ permission: 'commons' })
- return false;
- },
+ return false
+ }
}
GlobalUI.Account = {
isOpen: false,
changing: false,
init: function () {
- var self = GlobalUI.Account;
+ var self = GlobalUI.Account
- $('.sidebarAccountIcon').click(self.toggleBox);
- $('.sidebarAccountBox').click(function(event){
- event.stopPropagation();
- });
- $('body').click(self.close);
+ $('.sidebarAccountIcon').click(self.toggleBox)
+ $('.sidebarAccountBox').click(function (event) {
+ event.stopPropagation()
+ })
+ $('body').click(self.close)
},
toggleBox: function (event) {
- var self = GlobalUI.Account;
+ var self = GlobalUI.Account
- if (self.isOpen) self.close();
- else self.open();
+ if (self.isOpen) self.close()
+ else self.open()
- event.stopPropagation();
+ event.stopPropagation()
},
open: function () {
- var self = GlobalUI.Account;
-
- Filter.close();
- $('.sidebarAccountIcon .tooltipsUnder').addClass('hide');
+ var self = GlobalUI.Account
+ Filter.close()
+ $('.sidebarAccountIcon .tooltipsUnder').addClass('hide')
if (!self.isOpen && !self.changing) {
- self.changing = true;
+ self.changing = true
$('.sidebarAccountBox').fadeIn(200, function () {
- self.changing = false;
- self.isOpen = true;
- $('.sidebarAccountBox #user_email').focus();
- });
+ self.changing = false
+ self.isOpen = true
+ $('.sidebarAccountBox #user_email').focus()
+ })
}
},
close: function () {
- var self = GlobalUI.Account;
+ var self = GlobalUI.Account
- $('.sidebarAccountIcon .tooltipsUnder').removeClass('hide');
+ $('.sidebarAccountIcon .tooltipsUnder').removeClass('hide')
if (!self.changing) {
- self.changing = true;
- $('.sidebarAccountBox #user_email').blur();
+ self.changing = true
+ $('.sidebarAccountBox #user_email').blur()
$('.sidebarAccountBox').fadeOut(200, function () {
- self.changing = false;
- self.isOpen = false;
- });
+ self.changing = false
+ self.isOpen = false
+ })
}
}
}
@@ -333,31 +324,33 @@ GlobalUI.Search = {
changing: false,
optionsInitialized: false,
init: function () {
- var self = GlobalUI.Search;
+ var self = GlobalUI.Search
- var loader = new CanvasLoader('searchLoading');
- loader.setColor('#4fb5c0'); // default is '#000000'
- loader.setDiameter(24); // default is 40
- loader.setDensity(41); // default is 40
- loader.setRange(0.9); // default is 1.3
- loader.show(); // Hidden by default
+ // TODO does this overlap with Metamaps.Loading?
+ // devin sez: I'd like to remove Metamaps.Loading from the rails code
+ var loader = new CanvasLoader('searchLoading')
+ loader.setColor('#4fb5c0') // default is '#000000'
+ loader.setDiameter(24) // default is 40
+ loader.setDensity(41) // default is 40
+ loader.setRange(0.9) // default is 1.3
+ loader.show() // Hidden by default
// bind the hover events
- $(".sidebarSearch").hover(function () {
+ $('.sidebarSearch').hover(function () {
self.open()
}, function () {
self.close(800, false)
- });
+ })
$('.sidebarSearchIcon').click(function (e) {
- $('.sidebarSearchField').focus();
- });
+ $('.sidebarSearchField').focus()
+ })
$('.sidebarSearch').click(function (e) {
- e.stopPropagation();
- });
+ e.stopPropagation()
+ })
$('body').click(function (e) {
- self.close(0, false);
- });
+ self.close(0, false)
+ })
// open if the search is closed and user hits ctrl+/
// close if they hit ESC
@@ -365,281 +358,280 @@ GlobalUI.Search = {
switch (e.which) {
case 191:
if ((e.ctrlKey && !self.isOpen) || (e.ctrlKey && self.locked)) {
- self.open(true); // true for focus
+ self.open(true) // true for focus
}
- break;
+ break
case 27:
if (self.isOpen) {
- self.close(0, true);
+ self.close(0, true)
}
- break;
+ break
default:
- break; //console.log(e.which);
+ break // console.log(e.which)
}
- });
+ })
- self.startTypeahead();
+ self.startTypeahead()
},
- lock: function() {
- var self = GlobalUI.Search;
- self.locked = true;
+ lock: function () {
+ var self = GlobalUI.Search
+ self.locked = true
},
- unlock: function() {
- var self = GlobalUI.Search;
- self.locked = false;
+ unlock: function () {
+ var self = GlobalUI.Search
+ self.locked = false
},
open: function (focus) {
- var self = GlobalUI.Search;
+ var self = GlobalUI.Search
- clearTimeout(self.timeOut);
+ clearTimeout(self.timeOut)
if (!self.isOpen && !self.changing && !self.locked) {
- self.changing = true;
+ self.changing = true
$('.sidebarSearch .twitter-typeahead, .sidebarSearch .tt-hint, .sidebarSearchField').animate({
width: '400px'
}, 300, function () {
- if (focus) $('.sidebarSearchField').focus();
+ if (focus) $('.sidebarSearchField').focus()
$('.sidebarSearchField, .sidebarSearch .tt-hint').css({
padding: '7px 10px 3px 10px',
width: '380px'
- });
- self.changing = false;
- self.isOpen = true;
- });
+ })
+ self.changing = false
+ self.isOpen = true
+ })
}
},
close: function (closeAfter, bypass) {
// for now
return
- var self = GlobalUI.Search;
+ var self = GlobalUI.Search
self.timeOut = setTimeout(function () {
- if (!self.locked && !self.changing && self.isOpen && (bypass || $('.sidebarSearchField.tt-input').val() == '')) {
- self.changing = true;
+ if (!self.locked && !self.changing && self.isOpen && (bypass || $('.sidebarSearchField.tt-input').val() === '')) {
+ self.changing = true
$('.sidebarSearchField, .sidebarSearch .tt-hint').css({
padding: '7px 0 3px 0',
width: '400px'
- });
+ })
$('.sidebarSearch .twitter-typeahead, .sidebarSearch .tt-hint, .sidebarSearchField').animate({
width: '0'
}, 300, function () {
- $('.sidebarSearchField').typeahead('val', '');
- $('.sidebarSearchField').blur();
- self.changing = false;
- self.isOpen = false;
- });
+ $('.sidebarSearchField').typeahead('val', '')
+ $('.sidebarSearchField').blur()
+ self.changing = false
+ self.isOpen = false
+ })
}
- }, closeAfter);
+ }, closeAfter)
},
startTypeahead: function () {
- var self = GlobalUI.Search;
+ var self = GlobalUI.Search
- var mapheader = Active.Mapper ? '' : '';
- var topicheader = Active.Mapper ? '' : '';
- var mapperheader = '';
+ var mapheader = Active.Mapper ? '' : ''
+ var topicheader = Active.Mapper ? '' : ''
+ var mapperheader = ''
var topics = {
name: 'topics',
limit: 9999,
- display: function(s) { return s.label; },
+ display: s => s.label,
templates: {
- notFound: function(s) {
+ notFound: function (s) {
return Hogan.compile(topicheader + $('#topicSearchTemplate').html()).render({
- value: "No results",
- label: "No results",
+ value: 'No results',
+ label: 'No results',
typeImageURL: Metamaps.Erb['icons/wildcard.png'],
- rtype: "noresult"
- });
+ rtype: 'noresult'
+ })
},
header: topicheader,
- suggestion: function(s) {
- return Hogan.compile($('#topicSearchTemplate').html()).render(s);
- },
+ suggestion: function (s) {
+ return Hogan.compile($('#topicSearchTemplate').html()).render(s)
+ }
},
source: new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/search/topics',
- prepare: function(query, settings) {
- settings.url += '?term=' + query;
+ prepare: function (query, settings) {
+ settings.url += '?term=' + query
if (Active.Mapper && self.limitTopicsToMe) {
- settings.url += "&user=" + Active.Mapper.id.toString();
+ settings.url += '&user=' + Active.Mapper.id.toString()
}
- return settings;
- },
- },
- }),
- };
+ return settings
+ }
+ }
+ })
+ }
var maps = {
name: 'maps',
limit: 9999,
- display: function(s) { return s.label; },
+ display: s => s.label,
templates: {
- notFound: function(s) {
+ notFound: function (s) {
return Hogan.compile(mapheader + $('#mapSearchTemplate').html()).render({
- value: "No results",
- label: "No results",
- rtype: "noresult"
- });
+ value: 'No results',
+ label: 'No results',
+ rtype: 'noresult'
+ })
},
header: mapheader,
- suggestion: function(s) {
- return Hogan.compile($('#mapSearchTemplate').html()).render(s);
- },
+ suggestion: function (s) {
+ return Hogan.compile($('#mapSearchTemplate').html()).render(s)
+ }
},
source: new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/search/maps',
- prepare: function(query, settings) {
- settings.url += '?term=' + query;
+ prepare: function (query, settings) {
+ settings.url += '?term=' + query
if (Active.Mapper && self.limitMapsToMe) {
- settings.url += "&user=" + Active.Mapper.id.toString();
+ settings.url += '&user=' + Active.Mapper.id.toString()
}
- return settings;
- },
- },
- }),
- };
+ return settings
+ }
+ }
+ })
+ }
var mappers = {
name: 'mappers',
limit: 9999,
- display: function(s) { return s.label; },
+ display: s => s.label,
templates: {
- notFound: function(s) {
+ notFound: function (s) {
return Hogan.compile(mapperheader + $('#mapperSearchTemplate').html()).render({
- value: "No results",
- label: "No results",
- rtype: "noresult",
+ value: 'No results',
+ label: 'No results',
+ rtype: 'noresult',
profile: Metamaps.Erb['user.png']
- });
+ })
},
header: mapperheader,
- suggestion: function(s) {
- return Hogan.compile($('#mapperSearchTemplate').html()).render(s);
- },
+ suggestion: function (s) {
+ return Hogan.compile($('#mapperSearchTemplate').html()).render(s)
+ }
},
source: new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/search/mappers?term=%QUERY',
- wildcard: '%QUERY',
- },
- }),
- };
+ wildcard: '%QUERY'
+ }
+ })
+ }
// Take all that crazy setup data and put it together into one beautiful typeahead call!
$('.sidebarSearchField').typeahead(
{
- highlight: true,
+ highlight: true
},
[topics, maps, mappers]
- );
+ )
- //Set max height of the search results box to prevent it from covering bottom left footer
+ // Set max height of the search results box to prevent it from covering bottom left footer
$('.sidebarSearchField').bind('typeahead:render', function (event) {
- self.initSearchOptions();
- self.hideLoader();
- var h = $(window).height();
- $(".tt-dropdown-menu").css('max-height', h - 100);
+ self.initSearchOptions()
+ self.hideLoader()
+ var h = $(window).height()
+ $('.tt-dropdown-menu').css('max-height', h - 100)
if (self.limitTopicsToMe) {
- $('#limitTopicsToMe').prop('checked', true);
+ $('#limitTopicsToMe').prop('checked', true)
}
if (self.limitMapsToMe) {
- $('#limitMapsToMe').prop('checked', true);
+ $('#limitMapsToMe').prop('checked', true)
}
- });
+ })
$(window).resize(function () {
- var h = $(window).height();
- $(".tt-dropdown-menu").css('max-height', h - 100);
- });
+ var h = $(window).height()
+ $('.tt-dropdown-menu').css('max-height', h - 100)
+ })
// tell the autocomplete to launch a new tab with the topic, map, or mapper you clicked on
- $('.sidebarSearchField').bind('typeahead:select', self.handleResultClick);
+ $('.sidebarSearchField').bind('typeahead:select', self.handleResultClick)
// don't do it, if they clicked on a 'addToMap' button
$('.sidebarSearch button.addToMap').click(function (event) {
- event.stopPropagation();
- });
+ event.stopPropagation()
+ })
// make sure that when you click on 'limit to me' or 'toggle section' it works
- $('.sidebarSearchField.tt-input').keyup(function(){
+ $('.sidebarSearchField.tt-input').keyup(function () {
if ($('.sidebarSearchField.tt-input').val() === '') {
- self.hideLoader();
+ self.hideLoader()
} else {
- self.showLoader();
+ self.showLoader()
}
- });
-
+ })
},
handleResultClick: function (event, datum, dataset) {
- var self = GlobalUI.Search;
+ var self = GlobalUI.Search
- self.hideLoader();
+ self.hideLoader()
- if (["topic", "map", "mapper"].indexOf(datum.rtype) !== -1) {
- self.close(0, true);
- if (datum.rtype == "topic") {
- Router.topics(datum.id);
- } else if (datum.rtype == "map") {
- Router.maps(datum.id);
- } else if (datum.rtype == "mapper") {
- Router.explore("mapper", datum.id);
+ if (['topic', 'map', 'mapper'].indexOf(datum.rtype) !== -1) {
+ self.close(0, true)
+ if (datum.rtype === 'topic') {
+ Router.topics(datum.id)
+ } else if (datum.rtype === 'map') {
+ Router.maps(datum.id)
+ } else if (datum.rtype === 'mapper') {
+ Router.explore('mapper', datum.id)
}
}
},
initSearchOptions: function () {
- var self = GlobalUI.Search;
+ var self = GlobalUI.Search
- function toggleResultSet(set) {
- var s = $('.tt-dataset-' + set + ' .tt-suggestion, .tt-dataset-' + set + ' .resultnoresult');
+ function toggleResultSet (set) {
+ var s = $('.tt-dataset-' + set + ' .tt-suggestion, .tt-dataset-' + set + ' .resultnoresult')
if (s.is(':visible')) {
- s.hide();
- $(this).removeClass('minimizeResults').addClass('maximizeResults');
+ s.hide()
+ $(this).removeClass('minimizeResults').addClass('maximizeResults')
} else {
- s.show();
- $(this).removeClass('maximizeResults').addClass('minimizeResults');
+ s.show()
+ $(this).removeClass('maximizeResults').addClass('minimizeResults')
}
}
- $('.limitToMe').unbind().bind("change", function (e) {
- if ($(this).attr('id') == 'limitTopicsToMe') {
- self.limitTopicsToMe = !self.limitTopicsToMe;
+ $('.limitToMe').unbind().bind('change', function (e) {
+ if ($(this).attr('id') === 'limitTopicsToMe') {
+ self.limitTopicsToMe = !self.limitTopicsToMe
}
- if ($(this).attr('id') == 'limitMapsToMe') {
- self.limitMapsToMe = !self.limitMapsToMe;
+ if ($(this).attr('id') === 'limitMapsToMe') {
+ self.limitMapsToMe = !self.limitMapsToMe
}
// set the value of the search equal to itself to retrigger the
// autocomplete event
- var searchQuery = $('.sidebarSearchField.tt-input').val();
- $(".sidebarSearchField").typeahead('val', '')
- .typeahead('val', searchQuery);
- });
+ var searchQuery = $('.sidebarSearchField.tt-input').val()
+ $('.sidebarSearchField').typeahead('val', '')
+ .typeahead('val', searchQuery)
+ })
// when the user clicks minimize section, hide the results for that section
$('.minimizeMapperResults').unbind().click(function (e) {
- toggleResultSet.call(this, 'mappers');
- });
+ toggleResultSet.call(this, 'mappers')
+ })
$('.minimizeTopicResults').unbind().click(function (e) {
- toggleResultSet.call(this, 'topics');
- });
+ toggleResultSet.call(this, 'topics')
+ })
$('.minimizeMapResults').unbind().click(function (e) {
- toggleResultSet.call(this, 'maps');
- });
+ toggleResultSet.call(this, 'maps')
+ })
},
hideLoader: function () {
- $('#searchLoading').hide();
+ $('#searchLoading').hide()
},
showLoader: function () {
- $('#searchLoading').show();
+ $('#searchLoading').show()
}
}