Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fold graph by default #823

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion public/css/app.min.css

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions public/js/collapse_preferences.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@ export default class CollapsePreferences {
constructor(component) {
this.component = component;
this.collapsePreferences = JSON.parse(localStorage.getItem('collapsePreferences')) || [];
const firstVisit = localStorage.getItem(`firstVisit${component.path}`) === null;

// Set default collapse preference for 'Graphical Overview' to true only on first visit
if (firstVisit) {
if (this.component.name === 'Graphical Overview' && !this.collapsePreferences.includes(this.component.name)) {
this.collapsePreferences.push(this.component.name);
localStorage.setItem('collapsePreferences', JSON.stringify(this.collapsePreferences));
}
localStorage.setItem(`firstVisit${component.path}`, 'false');
}
}

toggleCollapse() {
Expand Down
1 change: 1 addition & 0 deletions public/js/report.js
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ class Report extends Component {
params={this.state.params}
/>
<GraphicalOverview
path={location.pathname}
queries={this.state.queries}
prorgam={this.state.program}
plugins={this.plugins}
Expand Down
6 changes: 4 additions & 2 deletions public/js/report/graphical_overview.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Circos from '../circos';
import ReportHeader from './report_header';

const GraphicalOverview = ({queries, program, plugins}) => {
const GraphicalOverview = ({queries, program, plugins, path}) => {
/**
* Does the report have at least two hits? This is used to determine
* whether Circos should be enabled or not.
Expand All @@ -26,7 +26,9 @@ const GraphicalOverview = ({queries, program, plugins}) => {
}

return (
<ReportHeader name="Graphical Overview" renderContent={renderContent} renderable={atLeastTwoHits()} />
<div className="graphical-overview">
<ReportHeader name="Graphical Overview" path={path} renderContent={renderContent} renderable={atLeastTwoHits()} />
</div>
)
}

Expand Down
2 changes: 1 addition & 1 deletion public/js/report/report_header.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import CollapsePreferences from '../collapse_preferences';
const ReportHeader = (props) => {
const [state, setState] = useState({ collapsed: null });
const [renderable, _setRenderable] = useState(props.renderable === undefined ? true : props.renderable);
const collapsePreferences = new CollapsePreferences({ name: props.name, state: { ...state }, setState: setState });
const collapsePreferences = new CollapsePreferences({ name: props.name, path: props.path, state: { ...state }, setState: setState });

if (state.collapsed === null) setState({ collapsed: collapsePreferences.preferenceStoredAsCollapsed() });
if (!renderable) return null;
Expand Down
2 changes: 1 addition & 1 deletion public/sequenceserver-report.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/sequenceserver-report.min.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/sequenceserver-search.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/sequenceserver-search.min.js.map

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions spec/features/search_and_results_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -368,6 +368,9 @@ def nucleotide_query
perform_search(query: protein_query,
databases: protein_databases.values_at(0))

## on first visit the graph is not visible
find('.graphical-overview h3').click

## Check that there is a circos vis and unfold it.
expect(page).to have_selector('.circos > .grapher-header > h4', text: 'Chord diagram of queries and their top hits')

Expand Down
Loading