Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into maintable-beta
Browse files Browse the repository at this point in the history
# Conflicts:
#	CHANGELOG.md
  • Loading branch information
koppor committed Jan 18, 2018
2 parents ccd643a + 50471c6 commit 3524c5d
Show file tree
Hide file tree
Showing 62 changed files with 623 additions and 352 deletions.
1 change: 0 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,3 @@
- [ ] Screenshots added (for bigger UI changes)
- [ ] Manually tested changed features in running JabRef
- [ ] Check documentation status (Issue created for outdated help page at [help.jabref.org](https://github.com/JabRef/help.jabref.org/issues)?)
- [ ] If you changed the localization: Did you run `gradle localizationUpdate`?
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,15 @@ We refer to [GitHub issues](https://github.com/JabRef/jabref/issues) by using `#
## [Unreleased]

### Changed
- We now show a small notification icon in the entry editor when we detect data inconsistency or other problems. [#3145](https://github.com/JabRef/jabref/issues/3145)
- We added [oaDOI](https://oadoi.org/) as a fulltext provider, so that JabRef is now able to provide fulltexts for more than 90 million open-access articles.
- We completely reworked and redesigned the main table.

- We changed one default of [Cleanup entries dialog](http://help.jabref.org/en/CleanupEntries): Per default, the PDF are not moved to the default file directory anymore. [#3619](https://github.com/JabRef/jabref/issues/3619)
- We added the export of the the `translator` field to the according MS-Office XML field. [#1750, comment](https://github.com/JabRef/jabref/issues/1750#issuecomment-357350986)
- We changed the import of the MS-Office XML fields `bookauthor` and `translator`. Both are now imported to their corresponding bibtex/biblatex fields.
- We improved the export of the `address` and `location` field to the MS-Office XML fields. If the address field does not contain a comma, it is treated as single value and exported to the field `city`. [#1750, comment](https://github.com/JabRef/jabref/issues/1750#issuecomment-357539167)
For more details refer to the [field mapping help page](http://help.jabref.org/en/MsOfficeBibFieldMapping)
- We added Facebook and Twitter icons in the toolbar to link to our [Facebook](https://www.facebook.com/JabRef/) and [Twitter](https://twitter.com/jabref_org) pages.

### Fixed
- We fixed the missing dot in the name of an exported file. [#3576](https://github.com/JabRef/jabref/issues/3576)
Expand Down
17 changes: 16 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Take a look at GitHub's excellent [help documentation] for a detailed explanatio
We also have [code howtos](https://github.com/JabRef/jabref/wiki/Code-Howtos) and [guidelines for setting up a local workspace](https://github.com/JabRef/jabref/wiki/Guidelines-for-setting-up-a-local-workspace).

In case you have any question, do not hesitate to write one of our [JabRef developers](https://github.com/orgs/JabRef/teams/developers) an email.
We should also be online at [gitter](https://gitter.im/JabRef/jabref).


## Formal requirements for a pull request
Expand Down Expand Up @@ -83,10 +84,24 @@ because <additional rationale>.
### When adding a new Localization.lang entry
Add new `Localization.lang("KEY")` to Java file.
Tests fail. In the test output a snippet is generated which must be added to the English translation file.

Example:

```
java.lang.AssertionError: DETECTED LANGUAGE KEYS WHICH ARE NOT IN THE ENGLISH LANGUAGE FILE
PASTE THESE INTO THE ENGLISH LANGUAGE FILE
[
Opens\ JabRef's\ Twitter\ page=Opens JabRef's Twitter page
]
Expected :[]
Actual :[Opens\ JabRef's\ Twitter\ page (src\main\java\org\jabref\gui\JabRefFrame.java LANG)]
```

Add snippet to English translation file located at `src/main/resources/l10n/JabRef_en.properties`.
[Crowdin](http://translate.jabref.org/) will automatically pick up the new string and add it to the other translations.

You can also directly run the specific test in your IDE. The test "LocalizationConsistencyTest" is placed under `src/test/java/net.sf.jabref.logic.l10n/LocalizationConsistencyTest.java`
You can also directly run the specific test in your IDE.
The test "LocalizationConsistencyTest" is placed under `src/test/java/net.sf.jabref.logic.l10n/LocalizationConsistencyTest.java`
Find more information in the [JabRef Wiki](https://github.com/JabRef/jabref/wiki/Code-Howtos#using-localization-correctly).


Expand Down
155 changes: 80 additions & 75 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,85 +1,95 @@
# JabRef Development Version
# JabRef Bibliography Management

[![Build Status](https://travis-ci.org/JabRef/jabref.svg?branch=master)](https://travis-ci.org/JabRef/jabref)
[![codecov.io](https://codecov.io/github/JabRef/jabref/coverage.svg?branch=master)](https://codecov.io/github/JabRef/jabref?branch=master)
[![Donation](https://img.shields.io/badge/donate%20to-jabref-orange.svg)](https://donations.jabref.org)
[![Help Contribute to Open Source](https://www.codetriage.com/jabref/jabref/badges/users.svg)](https://www.codetriage.com/jabref/jabref)

This version is a development version. Features may not work as expected.

Development builds are available at [builds.jabref.org](https://builds.jabref.org/master/) whereas the [latest release is available via GitHub](https://github.com/JabRef/jabref/releases/latest).

Explanation of donation possibilities and usage of donations is available at our [donations page](https://donations.jabref.org).

We use [install4j], the multi-platform installer builder.

### Background

JabRef is a graphical Java application for editing [BibTeX] and [Biblatex] `.bib` databases.
JabRef lets you organize your entries into overlapping logical groups, and with a single click limit your view to a single group or an intersection or union of several groups.
You can customize the entry information shown in the main window, and sort by any of the standard BibTeX fields.
JabRef can autogenerate BibTeX keys for your entries.
JabRef also lets you easily link to PDF or web sources for your reference entries.

JabRef can import from and export to several formats, and you can customize export filters.
JabRef can be run as a command line application to convert from any import format to any export format.
JabRef is an open-source, cross-platform citation and reference management tool licensed under the [MIT license](https://tldrlegal.com/license/mit-license).

Stay on top of your literature: JabRef helps you to collect and organize sources, find the paper you need and discover the latest research.
![main table](https://www.jabref.org/img/JabRef-4-0-MainTable.png)

## Features

JabRef is a cross-platform application that works on Windows, Linux and Mac OS X. It is available free of charge and is actively developed.
JabRef supports you every step of your research work.

#### Collect

- Search across many online scientific catalogues like CiteSeer, CrossRef, Google Scholar, IEEEXplore, INSPIRE-HEP, Medline PubMed, MathSciNet, Springer, arXiv, and zbMATH
- Import options for over 15 reference formats
- Easily retrieve and link full-text articles
- Fetch complete bibliographic information based on ISBN, DOI, PubMed-ID and arXiv-ID
- Extract metadata from PDFs
- [Firefox Add-on](https://addons.mozilla.org/en-US/firefox/addon/jabfox/) that lets you import new references directly from the browser with one click

#### Organize

- Group your research into hierarchical collections and organize research items based on keywords/tags, search terms or your own manual assignments
- Advanced search and filter features
- Complete and fix bibliographic data by comparing with curated online catalogues such as Google Scholar, Springer or MathSciNet
- Customizable citation key generator
- Customize and add new metadata fields or reference types
- Find and merge duplicates
- Attach related documents: 20 different kinds of documents supported out of the box, completely customizable and extendable
- Automatically rename and moves associated documents according to customizable rules
- Keep track of what you read: ranking, priority, printed, quality-assured

#### Cite

- Native [BibTeX] and [Biblatex] support
- Cite-as-you-write functionality for external applications such as Emacs, Kile, LyX, Texmaker, TeXstudio, Vim and WinEdt.
- Format references in one of the many thousand built-in citation styles or create your own style
- Support for Word and LibreOffice/OpenOffice to insert and format citations

#### Share

- Many built-in export options or create your own export format
- Library is saved as a simple text file and thus easy to share with others via Dropbox and is version-control friendly
- Work in a team: sync the contents of your library with a SQL database

## Installation

Fresh development builds are available at [builds.jabref.org](https://builds.jabref.org/master/).
The [latest stable release is available at FossHub](https://www.fosshub.com/JabRef.html).

JabRef runs on any system equipped with the Java Virtual Machine (1.8), which can be downloaded at no cost from [Oracle](http://www.oracle.com/technetwork/java/javase/downloads/index.html). Note that Java 9 is currently not supported.
From JabRef 4.0 onwards, [JavaFX] support has to be installed.
- Windows: JabRef offers an installer, which also adds a shortcut to JabRef to your start menu. Please also see our [Windows FAQ](https://help.jabref.org/en/FAQwindows)
- Linux: Please see our [Installation Guide](http://help.jabref.org/en/Installation).
- Mac OS X: Please see our [Mac OS X FAQ](https://help.jabref.org/en/FAQosx).

In addition, JabRef can be downloaded as an executable `.jar` file.
Try to double click the `jar` file or execute the following command:
`java -jar <path to jar>`

* Homepage: <https://www.jabref.org>
* Development page: <https://github.com/JabRef/jabref>
* Open HUB page: <https://www.openhub.net/p/jabref>
## Bug Reports, Suggestions, Other Feedback

### Bug Reports, Suggestions, Other Feedback
[![Donation](https://img.shields.io/badge/donate%20to-jabref-orange.svg)](https://donations.jabref.org)

We are thankful for any bug reports or other feedback.
If you have ideas for new features you want to be included in JabRef, [tell us in our forum](http://discourse.jabref.org/c/features)!
If you need support in using JabRef, please read [the documentation](https://help.jabref.org/) first and have a look at our [community forum](http://discourse.jabref.org/c/help).
You can use our [GitHub issue tracker](https://github.com/JabRef/jabref/issues) to send in bug reports.

If there are features you want included in JabRef, [tell us in our forum](http://discourse.jabref.org/c/features)!

If you have questions regarding the usage, or you want to give general feedback the forum is also the right place for this: [discourse.jabref.org](http://discourse.jabref.org/c/features)

You can use our [GitHub issue tracker](https://github.com/JabRef/jabref/issues) to send in bug reports and suggestions.

To get your code added to JabRef, just fork JabRef and create a pull request.
For details see [CONTRIBUTING](CONTRIBUTING.md).


## Installing and Running

### Requirements

JabRef runs on any system equipped with the Java Virtual Machine (1.8 or newer), which can be downloaded at no cost from [Oracle](http://www.oracle.com/technetwork/java/javase/downloads/index.html).
From JabRef 4.0 onwards, [JavaFX] support has to be available.

### Installing and Running, Linux:

Please see our [Installation Guide](http://help.jabref.org/en/Installation).

### Installing and Running, Mac OS X:

Please see our [Mac OS X FAQ](https://help.jabref.org/en/FAQosx).

### Installing and Running, Windows:

JabRef offers an installer, which also adds a shortcut to JabRef to your start menu.

Please also see our [Windows FAQ](https://help.jabref.org/en/FAQwindows)

### Installing and Running, General:

JabRef can be downloaded as an executable .jar file.
Try to double click the `jar` file or execute the following command:
`java -jar <path to jar>`


## Documentation
Explanation of donation possibilities and usage of donations is available at our [donations page](https://donations.jabref.org).

JabRef comes with an [online help](https://help.jabref.org/), accessed by pressing `F1` or clicking on a question mark icon.
The help is are probably not exhaustive enough to satisfy everyone yet, but it should help sort out the most important issues about using the program.
If you choose languages other than English, some or all help pages may appear in your chosen languages.
## Contributing

[![Help Contribute to Open Source](https://www.codetriage.com/jabref/jabref/badges/users.svg)](https://www.codetriage.com/jabref/jabref)
[![Join the chat at https://gitter.im/JabRef/jabref](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/JabRef/jabref?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![OpenHub](https://www.openhub.net/p/jabref/widgets/project_thin_badge.gif)](https://www.openhub.net/p/jabref)

## Building JabRef From Source
Want to be part of a free and open-source project that tens of thousands scientist use every day?
Check out our [issue tracker](https://github.com/JabRef/jabref/issues) to find something to work on.
You are also welcome to contribute new features.
To get your code included into JabRef, just fork JabRef and create a pull request.
For details have a look at our [guidelines for contributing](CONTRIBUTING.md).
We view pull requests as a collaborative process.
Submit a pull request early to get feedback from the team on work in progress.
We will discuss improvements with you and agree to merge them once the [developers](https://github.com/JabRef/jabref/blob/master/DEVELOPERS) approve.

If you want a step-by-step tutorial, please check [this guideline](https://github.com/JabRef/jabref/wiki/Guidelines-for-setting-up-a-local-workspace)
If you want a step-by-step walk-through on how to set-up your workspace, please check [this guideline](https://github.com/JabRef/jabref/wiki/Guidelines-for-setting-up-a-local-workspace).

To compile JabRef from source, you need a Java compiler supporting Java 1.8 and `JAVA_HOME` pointing to this JDK.
You have to set `GRADLE_OPTS` to `-Dfile.encoding=UTF-8` as [gradle uses the JVM's platform encoding](https://discuss.gradle.org/t/is-there-a-way-to-tell-gradle-to-read-gradle-build-scripts-using-a-specified-encoding/7535).
Expand All @@ -89,19 +99,14 @@ When you want to develop, it is necessary to generate additional sources using `
and then generate the Eclipse `gradlew eclipse`.
For IntelliJ IDEA, just import the project via a Gradle Import by pointing at the `build.gradle`.


## Testing

`gradlew test` executes the normal unit tests.
If you want to test the UI, execute `gradlew integrationTest`.
Sources for the integration test are kept in `src/integrationTest`.


## Release Process

Building a release requires [install4j]. We've got an [Open Source License](https://www.ej-technologies.com/buy/install4j/openSource).
Releasing is done using [CircleCI](https://circleci.com/gh/JabRef/jabref). A full release howto is available [in our wiki](https://github.com/JabRef/jabref/wiki/Releasing-a-new-Version).
## Acknowledgements

We use [install4j], the multi-platform installer builder. We've got an [open-source license](https://www.ej-technologies.com/buy/install4j/openSource).

## License

Expand Down
6 changes: 3 additions & 3 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ dependencies {
compile 'org.fxmisc.richtext:richtextfx:0.8.1'

// Cannot be updated to 9.*.* until Jabref works with Java 9
compile 'org.controlsfx:controlsfx:8.40.14'
compile 'org.controlsfx:controlsfx:8.40.15-SNAPSHOT'

compile 'org.jsoup:jsoup:1.11.2'
compile 'com.mashape.unirest:unirest-java:1.4.9'
Expand Down Expand Up @@ -161,7 +161,7 @@ dependencies {
testRuntime 'org.apache.logging.log4j:log4j-core:2.10.0'
testRuntime 'org.apache.logging.log4j:log4j-jul:2.10.0'
testCompile 'org.mockito:mockito-core:2.13.0'
testCompile 'com.github.tomakehurst:wiremock:2.13.0'
testCompile 'com.github.tomakehurst:wiremock:2.14.0'
testCompile 'org.assertj:assertj-swing-junit:3.8.0'
testCompile 'org.reflections:reflections:0.9.11'
testCompile 'org.xmlunit:xmlunit-core:2.5.1'
Expand Down Expand Up @@ -504,7 +504,7 @@ task releaseJar(dependsOn: "shadowJar") {
}
}
// set executable with read permissions (first true) and for all (false)
file("$buildDir/releases/JabRef-${project.version}.jar").setExecutable(true, false);
file("$buildDir/releases/JabRef-${project.version}.jar").setExecutable(true, false)
}
}

Expand Down
4 changes: 3 additions & 1 deletion scripts/syncLang.py
Original file line number Diff line number Diff line change
Expand Up @@ -314,7 +314,9 @@ def __update_properties(self, main_property_file, other_property_files):
for line in main_lines:
key = main_keys.key_from_line(line)
if key is not None:
other_lines_to_write.append(u"{key}={value}\n".format(key=key, value=keys[key]))
# Do not write empty keys
if keys[key] != "":
other_lines_to_write.append(u"{key}={value}\n".format(key=key, value=keys[key]))
else:
other_lines_to_write.append(line)

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/org/jabref/JabRefMain.java
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,10 @@ private static void ensureCorrectJavaVersion() {
buildInfo.getMinRequiredJavaVersion()
)
);

versionError.append("\n");
versionError.append(Localization.lang("Your Java Runtime Environment is located at %0.", checker.getJavaInstallationDirectory()));

if (!buildInfo.isAllowJava9()) {
versionError.append("\n");
versionError.append(Localization.lang("Note that currently, JabRef does not run with Java 9."));
Expand Down
15 changes: 8 additions & 7 deletions src/main/java/org/jabref/gui/BasePanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -2012,18 +2012,19 @@ public void searchAndOpen() {

// Run the search operation:
FileFinder fileFinder = FileFinders.constructFromConfiguration(Globals.prefs.getAutoLinkPreferences());
try {
List<Path> files = fileFinder.findAssociatedFiles(entry, dirs, extensions);
if (!files.isEmpty()) {
Path file = files.get(0);
Optional<ExternalFileType> type = ExternalFileTypes.getInstance().getExternalFileTypeByFile(file);
if (type.isPresent()) {
try {
if (!files.isEmpty()) {
Path file = files.get(0);
Optional<ExternalFileType> type = ExternalFileTypes.getInstance().getExternalFileTypeByFile(file);
if (type.isPresent()) {
JabRefDesktop.openExternalFileAnyFormat(file, basePanel.getBibDatabaseContext(), type);
basePanel.output(Localization.lang("External viewer called") + '.');
} catch (IOException ex) {
basePanel.output(Localization.lang("Error") + ": " + ex.getMessage());
}
}
} catch (IOException ex) {
LOGGER.error("Problems with finding/or opening files ", ex);
basePanel.output(Localization.lang("Error") + ": " + ex.getMessage());
}
}
}
Expand Down
6 changes: 5 additions & 1 deletion src/main/java/org/jabref/gui/IconTheme.java
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ public static List<java.awt.Image> getLogoSet() {

return jabrefLogos;
}

public enum JabRefIcon {

ADD(MaterialDesignIcon.PLUS_BOX),
Expand Down Expand Up @@ -260,12 +260,16 @@ public enum JabRefIcon {
KEY_BINDINGS(MaterialDesignIcon.KEYBOARD), /*css: keyboard */
FIND_DUPLICATES(MaterialDesignIcon.CODE_EQUAL), /*css: code-equal */
PULL(MaterialDesignIcon.SOURCE_PULL), /*source-pull*/
SUCCESS(MaterialDesignIcon.CHECK_CIRCLE),
WARNING(MaterialDesignIcon.ALERT),
ERROR(MaterialDesignIcon.ALERT_CIRCLE),
OPEN_IN_NEW_WINDOW(MaterialDesignIcon.OPEN_IN_NEW), /*css: open-in-new */
CASE_SENSITIVE(MaterialDesignIcon.ALPHABETICAL), /* css: mdi-alphabetical */
REG_EX(MaterialDesignIcon.REGEX), /*css: mdi-regex */
CONSOLE(MaterialDesignIcon.CONSOLE), /*css: console */
FORUM(MaterialDesignIcon.FORUM), /* css: forum */
FACEBOOK(MaterialDesignIcon.FACEBOOK), /* css: facebook */
TWITTER(MaterialDesignIcon.TWITTER), /* css: twitter */
BLOG(MaterialDesignIcon.RSS), /* css: rss */
GLOBAL_SEARCH(MaterialDesignIcon.EARTH), /* css: earth */
DATE_PICKER(MaterialDesignIcon.CALENDAR), /* css: calendar */
Expand Down
Loading

0 comments on commit 3524c5d

Please sign in to comment.