Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
76 commits
Select commit Hold shift + click to select a range
45fc8ba
Start new-osf-navbar component.
pattisdr Feb 24, 2017
89d380e
Add Novecento Sans fonts. Should probably be moved to osf-style.
pattisdr Feb 24, 2017
a74c8d8
Add collapsible navbar with links to Home, Preprints, Registries, Mee…
pattisdr Feb 24, 2017
06ee8ff
Loop through OSF services to display in navbar.
pattisdr Feb 24, 2017
6fd4e6c
Try to add service bar [WIP].
pattisdr Feb 24, 2017
2c3ab9f
Add formatting for the secondary navbar on all screens but xs.
pattisdr Feb 27, 2017
8748fa1
Removes nav-navbar and nav classes from primary navigation because th…
pattisdr Feb 27, 2017
7f80e07
Responsive changes for teal secondary navbar.
pattisdr Feb 27, 2017
e317b71
Add more granularity to media queries for resizing of teal secondary …
pattisdr Feb 27, 2017
2b906fc
Add helper to generate secondary navigation links.
pattisdr Feb 27, 2017
d60714d
Make secondary navigation links and user links collapsible.
pattisdr Feb 27, 2017
06c551f
Add registrations help link.
pattisdr Feb 27, 2017
96001e0
Pass in loginAction.
pattisdr Feb 27, 2017
a1e69f0
Modify position of sign in/ login buttons.
pattisdr Feb 27, 2017
853384f
Adjust widths of secondary navbar.
pattisdr Feb 27, 2017
4836d0f
Revert defining loginAction on component. Will pass in.
pattisdr Feb 28, 2017
4e2bf57
Fix some js/template issues.
pattisdr Feb 28, 2017
9afcd0c
Add some tests.
pattisdr Feb 28, 2017
3d9f957
Add different dropdown formatting for service dropdown and profile dr…
pattisdr Feb 28, 2017
b515008
Increase height of navbar to original height.
pattisdr Feb 28, 2017
19c2650
Removes css triangle on xs screens for profile dropdown.
pattisdr Feb 28, 2017
abf9b6d
Change display of sign in / sign up buttons.
pattisdr Feb 28, 2017
f507a27
Change positioning of secondary navigation links on xs screen.
pattisdr Feb 28, 2017
93dc84a
Overrides positioning of signup/signin buttons on xs screen.
pattisdr Feb 28, 2017
883601e
Adjust height of secondary links.
pattisdr Feb 28, 2017
45ca889
Display search dropdown when clicking on 'Search' in OSF nabber.
pattisdr Feb 28, 2017
7627fa0
Pass in currentService to determine which secondary links are displayed.
pattisdr Feb 28, 2017
e221b7d
Close secondary navigation when primary navigation is opened.
pattisdr Feb 28, 2017
06fbae8
Close search if secondary navigation opened.
pattisdr Feb 28, 2017
7d66dfb
Pass in action to navbar-auth-dropdown to close other navigation if n…
pattisdr Feb 28, 2017
ede17bd
Pass in closeSearch instead to navbar-auth-dropdown.
pattisdr Feb 28, 2017
58a810a
Add in some misc items from navbar spec.
pattisdr Feb 28, 2017
941348e
Change button colors.
pattisdr Feb 28, 2017
30d7a5f
Increase top margin of Sign Up Sign in buttons.
pattisdr Feb 28, 2017
b386b6d
Remove font.
pattisdr Mar 1, 2017
50b3c04
Tweak nabber styles.
pattisdr Mar 1, 2017
a500541
More style tweaks.
pattisdr Mar 1, 2017
5212ed8
Fix template issues and add tests. Turn on primary links.
pattisdr Mar 1, 2017
f13e4c6
Merge branch 'develop' of https://github.com/CenterForOpenScience/emb…
pattisdr Mar 1, 2017
441668c
Replace osf-navbar with new-osf-navbar.
pattisdr Mar 2, 2017
c92f4ff
Use button tag instead of a tag, which causes it to lose some styling…
pattisdr Mar 2, 2017
ac25cf9
Move known services into constants file.
pattisdr Mar 2, 2017
f47faa6
Add aria label to toggle secondary navigation button.
pattisdr Mar 2, 2017
c277340
Add aria label to OSF logo.
pattisdr Mar 2, 2017
85a8ac6
Change a tag to button tag.
pattisdr Mar 2, 2017
c51c6f5
Add aria-label to caret.
pattisdr Mar 2, 2017
aac8235
Use input-helper.
pattisdr Mar 2, 2017
5c11e5a
Move some osf links into a common location for use in navbar, footer,…
pattisdr Mar 2, 2017
f2150ab
Add some translations.
pattisdr Mar 2, 2017
bc14328
Use service links in auth dropdown.
pattisdr Mar 2, 2017
9ce8b5c
Add translation support to aria-labels.
pattisdr Mar 2, 2017
84361fe
Compare to safe string as to whether to show search menu.
pattisdr Mar 2, 2017
61cd3b0
Add aria-labels and translation support to search dropdown.
pattisdr Mar 2, 2017
3326737
Test build-secondary-nav-links helper with an integration test instea…
pattisdr Mar 3, 2017
66aae70
Add search help modal.
pattisdr Mar 3, 2017
f21bc85
Add close translation.
pattisdr Mar 3, 2017
74b5979
Styling tweaks.
pattisdr Mar 3, 2017
a87c78f
Turn serviceName into a link.
pattisdr Mar 3, 2017
e79fa81
Add currentServiceLink.
pattisdr Mar 3, 2017
1296c80
Modify styles and make navbar fixed.
pattisdr Mar 3, 2017
c993480
JS error.
pattisdr Mar 3, 2017
a282df5
Merge branch 'develop' of https://github.com/CenterForOpenScience/emb…
pattisdr Mar 3, 2017
8d88fb4
Increase top margin of secondary nav bar.
pattisdr Mar 16, 2017
e689643
Refactor navbar to accommodate user feedback.
pattisdr Mar 31, 2017
713e448
Merge branch 'develop' of https://github.com/CenterForOpenScience/emb…
pattisdr Apr 3, 2017
b065d58
Add cursor:pointer to logout link.
pattisdr Apr 3, 2017
14693a3
Restore service link.
pattisdr Apr 3, 2017
09e5e2a
Move new navbar styles to style guide.
pattisdr Apr 10, 2017
6cc0aa6
Point to temporary osf-style branch.
pattisdr Apr 11, 2017
6e1025f
`Merge branch 'develop' of https://github.com/CenterForOpenScience/em…
pattisdr Apr 11, 2017
3f0f85e
Update osf-style commit.
pattisdr Apr 11, 2017
e76fff1
Do not switch service links when toggle between services. Navigate to…
pattisdr Apr 11, 2017
a40ff80
Use hostAppName instead of currentService.
pattisdr Apr 11, 2017
b3eb70a
Remove space.
pattisdr Apr 11, 2017
9aab36e
Code review changes.
pattisdr Apr 20, 2017
9539f50
Consolidate serviceLinks and osfServices into the same file.
pattisdr Apr 21, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion addon/components/navbar-auth-dropdown/component.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Ember from 'ember';
import layout from './template';
import config from 'ember-get-config';
import { serviceLinks } from '../../const/service-links';

/**
* @module ember-osf
Expand All @@ -23,7 +24,7 @@ export default Ember.Component.extend({
layout,
session: Ember.inject.service(),
currentUser: Ember.inject.service(),

i18n: Ember.inject.service(),
tagName: 'li',
classNames: ['dropdown'],
classNameBindings: ['notAuthenticated:sign-in'],
Expand All @@ -38,6 +39,7 @@ export default Ember.Component.extend({
*/
signupUrl: config.OSF.url + 'register',

serviceLinks: serviceLinks,
gravatarUrl: Ember.computed('user', function() {
let imgLink = this.get('user.links.profile_image');

Expand Down
22 changes: 11 additions & 11 deletions addon/components/navbar-auth-dropdown/template.hbs
Original file line number Diff line number Diff line change
@@ -1,40 +1,40 @@
{{# if session.isAuthenticated }}
{{! TODO: Replace display name functionality if possible- for now truncate via CSS at end of label }}
<a href="#" class="dropdown-toggle nav-user-dropdown" data-toggle="dropdown" role="button" aria-expanded="false">
<button class="dropdown-toggle nav-user-dropdown btn-link" data-toggle="dropdown" role="button" aria-expanded="false" aria-label={{t 'eosf.authDropdown.toggleAuthDropdown'}} {{action closeOtherNavigation}}>
<span class="osf-gravatar">
<img src="{{gravatarUrl}}" alt="User gravatar">
</span> {{user.fullName}}
<span class="caret"></span>
</a>
<ul class="dropdown-menu" role="menu">
</button>
<ul class="dropdown-menu auth-dropdown" role="menu">
{{#if headline}}
<li style="margin-left:10%;">{{headline}}</li>
{{/if}}
<li>
<a href="{{host}}profile/"><i class="fa fa-user fa-lg p-r-xs"></i> My Profile</a>
<a href="{{serviceLinks.profile}}"><i class="fa fa-user fa-lg p-r-xs"></i> {{t 'eosf.authDropdown.myProfile'}}</a>
</li>
<li>
<a href="{{host}}support/" ><i class="fa fa-life-ring fa-lg p-r-xs"></i> Support</a>
<a href="{{serviceLinks.osfSupport}}"><i class="fa fa-life-ring fa-lg p-r-xs"></i> {{t 'eosf.authDropdown.osfSupport'}}</a>
</li>

<li>
<a href="{{host}}settings/"><i class="fa fa-cog fa-lg p-r-xs"></i> Settings</a>
<a href="{{serviceLinks.settings}}"><i class="fa fa-cog fa-lg p-r-xs"></i> {{t 'eosf.authDropdown.settings'}}</a>
</li>
<li>
<a onclick={{action 'logout'}}><i class="fa fa-sign-out fa-lg p-r-xs"></i> Log out</a>
<a class="logoutLink" onclick={{action 'logout'}}><i class="fa fa-sign-out fa-lg p-r-xs"></i> {{t 'eosf.authDropdown.logOut'}}</a>
</li>
</ul>
{{else if allowLogin}}
{{#if institution}} {{! TODO: How does the page know whether this is an institution view? Implement in the future }}
<div class="btn-group">
<a href="${domain}login/?campaign=institution&redirect_url=${redirect_url}" class="btn btn-info btn-top-login">
Sign in <span class="hidden-xs"><i class="fa fa-arrow-right"></i></span>
{{t 'eosf.authDropdown.signIn'}} <span class="hidden-xs"><i class="fa fa-arrow-right"></i></span>
</a>
</div>
{{else}}
<div class="col-sm-12">
<a href="{{signupUrl}}" class="btn btn-success btn-top-signup m-r-xs">Sign Up</a>
<a {{action loginAction}} class="btn btn-info btn-top-login m-r-xs">Sign in</a>
<div>
<a href="{{signupUrl}}" class="btn btn-success btn-top-signup m-l-sm m-r-xs">{{t 'eosf.authDropdown.signUp'}}</a>
<a {{action loginAction}} class="btn btn-info btn-top-login m-r-xs">{{t 'eosf.authDropdown.signIn'}}</a>
</div>
{{/if}}
{{/if}}
2 changes: 2 additions & 0 deletions addon/components/osf-footer/component.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import Ember from 'ember';
import layout from './template';
import { serviceLinks } from '../../const/service-links';

/**
* @module ember-osf
Expand All @@ -12,6 +13,7 @@ import layout from './template';
*/
export default Ember.Component.extend({
layout,
serviceLinks: serviceLinks,
supportEmail: Ember.computed(function() {
return '<n uers=\"znvygb:pbagnpg@bfs.vb\" ery=\"absbyybj\">Pbagnpg</n>'.replace(
/[a-zA-Z]/g,
Expand Down
4 changes: 2 additions & 2 deletions addon/components/osf-footer/template.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
<div class="col-sm-2 col-md-3 col-md-offset-1">
<h4>OSF</h4>
<ul>
<li><a href="/explore/activity/">Explore</a></li>
<li><a href="{{serviceLinks.exploreActivity}}">Explore</a></li>
<li>
{{{supportEmail}}}
</li>
<li><a href="/support">FAQ/Guides</a></li>
<li><a href="{{serviceLinks.osfSupport}}">FAQ/Guides</a></li>
<li><a href="https://api.osf.io/v2/docs/">API</a></li>
<li><a href="https://github.com/CenterForOpenScience/osf.io">Source Code</a></li>
</ul>
Expand Down
51 changes: 38 additions & 13 deletions addon/components/osf-navbar/component.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import Ember from 'ember';
import layout from './template';
import { serviceLinks, osfServices } from '../../const/service-links';
import hostAppName from '../../mixins/host-app-name';
import config from 'ember-get-config';

/**
Expand All @@ -8,35 +10,58 @@ import config from 'ember-get-config';
*/

/**
* Display the OSF navbar
* Display the new OSF navbar - features primary navigation to toggle between services - HOME, PREPRINTS, REGISTRIES, and MEETINGS,
* and secondary navigation links for each particular service.
*
* Sample usage:
* ```handlebars
* {{osf-navbar
* loginAction=loginAction
* hideSearch=true}}
* }}
* ```
*
* @class osf-navbar
*/
export default Ember.Component.extend({
export default Ember.Component.extend(hostAppName, {
layout,
session: Ember.inject.service(),
onSearchPage: false,
/**
* Whether search icons and functionality show up
* @property hideSearch
* @type {Boolean}
*/
hideSearch: false,

osfServices: osfServices,
serviceLinks: serviceLinks,
host: config.OSF.url,

currentService: Ember.computed('hostAppName', function() { // Pulls current service name from consuming service's config file
let appName = this.get('hostAppName') || 'Home';
if (appName === 'Dummy App') {
appName = 'Home';
}
return appName.toUpperCase();
}),
currentServiceLink: Ember.computed('serviceLinks', 'currentService', function() {
const serviceMapping = {
HOME: 'osfHome',
PREPRINTS: 'preprintsHome',
REGISTRIES: 'registriesHome',
MEETINGS: 'meetingsHome'
};
const service = this.get('currentService');
return this.get('serviceLinks')[serviceMapping[service]];
}),
showSearch: false,

actions: {
// Toggles whether search bar is displayed (for searching OSF)
toggleSearch() {
this.toggleProperty('showSearch');
this.send('closeSecondaryNavigation');
},
closeSecondaryNavigation() {
this.$('.navbar-collapse').collapse('hide');
},
closeSearch() {
this.set('showSearch', false);
},
closeSecondaryAndSearch() {
this.send('closeSecondaryNavigation');
this.send('closeSearch');
}
}

});
24 changes: 0 additions & 24 deletions addon/components/osf-navbar/style.scss

This file was deleted.

85 changes: 38 additions & 47 deletions addon/components/osf-navbar/template.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -2,63 +2,54 @@
<nav class="navbar navbar-inverse navbar-fixed-top" id="navbarScope" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
{{!TOGGLE NAVIGATION BUTTON - XS SCREEN}}
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#secondary-navigation" {{action 'closeSearch'}} aria-label={{t 'eosf.navbar.toggleSecondary'}}>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
{{#unless hideSearch}}
{{#unless onSearchPage}}
{{!-- TODO: Replace usage of knockout--}}
<span class="visible-xs" data-bind="click : toggleSearch, css: searchCSS">
<a class="osf-xs-search pull-right" {{action "toggleSearch"}} style="padding-top: 12px" >
<span rel="tooltip" data-placement="bottom" title="Search OSF" class="fa fa-search fa-lg fa-inverse" ></span>
</a>
</span>
{{/unless}}
{{/unless}}
<a class="navbar-brand hidden-sm hidden-xs" href="/"><span class="osf-navbar-logo" width="27"></span> Open Science Framework</a>
<a class="navbar-brand visible-sm visible-xs" href="/"><span class="osf-navbar-logo" width="27"></span> OSF</a>
{{#if service}}
<a class="navbar-brand navbar-service" href="{{serviceUrl}}"> {{service}}</a>
{{/if}}
{{!OSF BRAND}}
<a class="navbar-brand" href="/" aria-label={{t 'eosf.navbar.goHome'}}><span class="osf-navbar-logo"></span> OSF </a>
{{!PRIMARY NAVIGATION - TOGGLE BETWEEN HOME, PREPRINTS, REGISTRIES, and MEETINGS}}
<div class="dropdown primary-nav">
<button class="dropdown-toggle btn-link" data-toggle="dropdown" role="button" aria-expanded="false" aria-label={{t 'eosf.navbar.togglePrimary'}} onclick={{action 'closeSecondaryAndSearch'}}>
<span class="fa fa-caret-down fa-2x"></span>
</button>
<ul class="dropdown-menu service-dropdown" role="menu">
{{#each osfServices as |service|}}
<li><a href="{{service.url}}">OSF<b>{{service.name}}</b></a></li>
{{/each}}
</ul>
</div>
{{!NAME OF CURRENT SERVICE - HOME, PREPRINTS, REGISTRIES, or MEETINGS}}
<div class="service-name">
<a href="{{currentServiceLink}}"><strong>{{currentService}}</strong></a>
</div>
</div>
<div id="navbar" class="navbar-collapse collapse navbar-right">
<div class="navbar-collapse collapse navbar-right" id="secondary-navigation">
<ul class="nav navbar-nav">
{{#if session.isAuthenticated}}
<li id="osfNavDashboard"><a href={{host}}>Dashboard</a></li>
<li id="osfNavMyProjects"><a href="{{host}}myprojects/">My Projects</a></li>
{{/if}}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Browse <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="{{host}}explore/activity/">New Projects</a></li>
<li><a href="{{host}}registries/">Registries</a></li>
<li><a href="{{host}}meetings/">Meetings</a></li>
<li><a href="{{host}}preprints/">Preprints</a></li>
</ul>
</li>
{{#unless session.isAuthenticated}}
<li class="dropdown">
<a href="/support/" >Support</a>
</li>
{{/unless}}
{{#unless hideSearch}}
{{#unless onSearchPage}}
<li class="hidden-xs">
<a onclick={{action "toggleSearch"}}>
<span rel="tooltip" data-placement="bottom" title="Search OSF" class="fa fa-search fa-lg" ></span>
</a>
{{!SECONDARY NAVIGATION - displays corresponding links for selected service}}
{{#each (build-secondary-navLinks currentService) as |navLink|}}
{{#if (and (eq currentService 'HOME') (eq navLink.name.string "Search"))}}
<li>
{{!TOGGLE SEARCH BUTTON FOR HOME SERVICE}}
<button class="btn-link search-toggle" onclick={{action 'toggleSearch'}}>
{{navLink.name}}
</button>
</li>
{{/unless}}
{{/unless}}
{{navbar-auth-dropdown signupUrl=signupUrl loginAction=loginAction}}
{{else}}
{{!SERVICE LINK}}
<li><a href="{{navLink.href}}"> {{navLink.name}}</a></li>
{{/if}}
{{/each}}
{{!AUTH NAVBAR}}
{{navbar-auth-dropdown signupUrl=signupUrl loginAction=loginAction closeOtherNavigation=(action 'closeSearch')}}
</ul>
</div>{{!--/.navbar-collapse --}}
</div>
</div>
</nav>
{{#if showSearch}}
{{!SEARCH DROPDOWN (FOR HOME SERVICE) - redirects to /search/?q=search_query}}
{{search-dropdown action='toggleSearch'}}
{{/if}}
</div>
</div>
11 changes: 8 additions & 3 deletions addon/components/search-dropdown/component.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,25 @@ import config from 'ember-get-config';
export default Ember.Component.extend({
layout,
host: config.OSF.url,
i18n: Ember.inject.service(),
query: null,
isOpen: false, // is help modal open?
actions: {
// Runs toggleSearch in parent component, osf-navbar
toggleSearch() {
this.sendAction('action');
},
updateQuery(value) {
this.set('query', value);
},
search() {
var query = this.get('query');
if (query) {
window.location.href = this.host + 'search/?q=' + query;
}
},
close() {
this.set('isOpen', false);
},
toggleHelpModal() {
this.toggleProperty('isOpen');
}
}
});
41 changes: 36 additions & 5 deletions addon/components/search-dropdown/template.hbs
Original file line number Diff line number Diff line change
@@ -1,17 +1,48 @@
{{!Green OSF Search bar}}
<div class="osf-search">
<div class="container">
<div class="row">
<div class="col-md-12">
<form class="input-group" {{action "search" on="submit"}}>
<input id="searchPageFullBar" onchange={{action "updateQuery" value="target.value"}} name="search-placeholder" type="text" class="osf-search-input form-control" placeholder="Search">
<label id="searchBarLabel" class="search-label-placeholder" for="search-placeholder">Search</label>
{{!Search bar}}
{{input value=query name='search-placeholder' class='osf-search-input form-control' placeholder=(t 'eosf.navbar.searchTheOSF')}}
<label id="searchBarLabel" class="search-label-placeholder" for="search-placeholder">{{t 'eosf.navbar.search'}}</label>
<span class="input-group-btn">
<button type="submit" class="btn osf-search-btn"><i class="fa fa-arrow-circle-right fa-lg"></i></button>
<button type="button" class="btn osf-search-btn" data-toggle="modal" data-target="#search-help-modal"><i class="fa fa-question fa-lg"></i></button>
<button type="button" class="btn osf-search-btn" onclick={{action "toggleSearch"}}><i class="fa fa-times fa-lg"></i></button>
{{!Submit search, search help, and cancel search buttons}}
<button type="submit" class="btn osf-search-btn" aria-label={{t 'eosf.navbar.sendSearch'}}><i class="fa fa-arrow-circle-right fa-lg"></i></button>
<button type="button" class="btn osf-search-btn" aria-label={{t 'eosf.navbar.searchHelp'}} data-toggle="modal" {{action 'toggleHelpModal'}}><i class="fa fa-question fa-lg"></i></button>
<button type="button" class="btn osf-search-btn" aria-label={{t 'eosf.navbar.cancelSearch'}} onclick={{action "toggleSearch"}}><i class="fa fa-times fa-lg"></i></button>
</span>
</form>
</div>
</div>
</div>
</div>

{{!Search help modal - appears after clicking question mark on green search dropdown}}
<div id="ember-bootstrap-modal-container">
{{#bs-modal open=isOpen body=false header=false footer=false}}
{{#bs-modal-header}}
<h3 class="modal-title">{{t 'eosf.searchHelpModal.searchHelp'}}</h3>
{{/bs-modal-header}}
{{#bs-modal-body}}
<h4> {{t 'eosf.searchHelpModal.queries'}} </h4>
<p>
{{t 'eosf.searchHelpModal.searchUsesThe'}} <a href="http://extensions.xwiki.org/xwiki/bin/view/Extension/Search+Application+Query+Syntax">Lucene {{t 'eosf.searchHelpModal.searchSyntax'}}</a>.
{{t 'eosf.searchHelpModal.helpDescription'}}
</p>
<ul>
<li><a href="{{host}}search/?q=repro*">repro*</a></li>
<li><a href="{{host}}search/?q=brian+AND+title%3Amany">brian AND title:many</a></li>
<li><a href="{{host}}search/?q=tags%3A%28psychology%29">tags:(psychology)</a></li>
</ul>
{{/bs-modal-body}}

{{#bs-modal-footer}}
<div align="right">
<button {{action 'close'}} class="btn btn-default"> {{t 'eosf.searchHelpModal.close'}} </button>
</div>
{{/bs-modal-footer}}
{{/bs-modal}}

</div>
Loading