Compare commits

...

130 Commits
2.4.0 ... 2.6.0

Author SHA1 Message Date
Athou
a75f726111 2.6.0 release 2022-08-08 12:43:36 +02:00
Athou
d34c0c8652 avoid exposing the smtp host/port when an email could not be sent 2022-08-07 22:11:12 +02:00
Jérémie Panzer
c0bd7d0610 Merge pull request #1011 from Athou/dependabot/maven/org.postgresql-postgresql-42.4.1
Bump postgresql from 42.3.3 to 42.4.1
2022-08-06 21:41:12 +02:00
dependabot[bot]
155a66b913 Bump postgresql from 42.3.3 to 42.4.1
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.3 to 42.4.1.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.3...REL42.4.1)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-06 07:15:04 +00:00
Athou
c7216ef0a6 fix "MessageBodyWriter not found for media type=text/plain, type=class io.dropwizard.jersey.validation.ValidationErrorMessage" 2022-08-05 14:10:48 +02:00
Athou
c692a8d8f3 fix for "No validator could be found for constraint 'javax.validation.constraints.NotEmpty' validating type 'java.lang.Long'." 2022-08-03 15:24:55 +02:00
Athou
54e6bc3154 add matrix to test for multiple java versions 2022-07-30 13:55:57 +02:00
Athou
2e24d32cc2 add support for java17 (#1009) 2022-07-30 13:55:57 +02:00
Jérémie Panzer
1c7e31a464 Merge pull request #1008 from anthonyryan1/master
Losslessly optimize images to reduce filesize
2022-07-26 07:19:05 +02:00
Anthony Ryan
94bf8338cd Losslessly optimize images to reduce filesize
Optimized using Efficient Compression Tool, reducing the filesize
without any reduction in quality.
2022-07-25 21:53:27 -04:00
Athou
152f0bd727 use the logical date of the entry and not the date the entry was inserted in the database when marking entries older than a threshold (#1007) 2022-07-25 17:29:21 +02:00
Athou
6ffdc7b07d mv_store=false is not required anymore (fixes #1007) 2022-07-25 17:13:28 +02:00
Athou
fe87566668 validate more inputs 2022-07-24 13:31:48 +02:00
Athou
c36dd47afd request current password when changing profile data for security reasons 2022-07-23 11:05:19 +02:00
Athou
b6a9b17410 Merge branch 'matthewlenz-patch-1' 2022-07-23 07:59:59 +02:00
Athou
c78fdf87b8 add valid checksum for instances where the changelog already passed 2022-07-23 07:55:39 +02:00
matthewlenz
55a1ccc849 Invalid migration in db.changelog-2.6.xml
Fix migration for mysql/mariadb environments missing columnDataType on renameColumn
2022-07-22 21:35:49 -05:00
Athou
d97f42ff2d add first integration test 2022-07-17 10:25:07 +02:00
Athou
9ab52aeaf2 migrate to junit5 2022-07-15 19:28:11 +02:00
Athou
a0190143fe fix deprecation warnings 2022-07-14 21:13:12 +02:00
Athou
a48135a60d send X-Frame-Options header with value "DENY" 2022-07-14 13:58:37 +02:00
Athou
09eec3235d filter is a reserved keyword in liquibase 4.7+ for h2, rename to filtering_expression 2022-07-14 13:58:37 +02:00
Athou
d21e5dfee4 upgrade dropwizard to 2.1 2022-07-14 13:58:37 +02:00
Athou
899a8d746a increase minimum password strength 2022-07-13 22:20:19 +02:00
Athou
9bbfc2de3f avoid exposing registered email addresses 2022-07-13 13:28:18 +02:00
Jérémie Panzer
d82bb22341 Create SECURITY.md 2022-07-06 12:27:16 +02:00
Athou
0fd55c6635 keep using log4j-over-slf4j 2022-03-22 16:20:55 +01:00
Athou
4b346dd2e1 liquibase upgrade (#993) 2022-03-22 16:01:44 +01:00
Athou
13a0516cce add support for mariadb 2022-03-22 16:01:44 +01:00
Athou
5fcd7ccb58 fix checkstyle issues 2022-03-22 16:01:44 +01:00
Athou
b0aef46c99 add docker-compose config to start mysql and pgsql local databases 2022-03-22 16:01:44 +01:00
Athou
ec50530284 downgrade mysql client to fix java.lang.ClassCastException: class java.time.LocalDateTime cannot be cast to class java.lang.String (#993)
https://forum.liquibase.org/t/liquibaseexception-java-lang-classcastexception-class-java-time-localdatetime-cannot-be-cast-to-class-java-lang-string/5059
2022-03-22 14:40:53 +01:00
Athou
cbc4ebe7b3 fix infinite build in recent eclipse versions 2022-03-22 14:28:16 +01:00
Jérémie Panzer
f5339db646 Merge pull request #995 from Athou/dependabot/maven/com.h2database-h2-2.1.210
Bump h2 from 2.0.206 to 2.1.210
2022-03-22 12:51:50 +01:00
Jérémie Panzer
c573e70e8b Merge pull request #994 from Athou/dependabot/maven/org.postgresql-postgresql-42.3.3
Bump postgresql from 42.3.2 to 42.3.3
2022-03-22 12:50:37 +01:00
dependabot[bot]
16b3049839 Bump h2 from 2.0.206 to 2.1.210
Bumps [h2](https://github.com/h2database/h2database) from 2.0.206 to 2.1.210.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.0.206...version-2.1.210)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-22 11:49:07 +00:00
dependabot[bot]
57ff8e9d22 Bump postgresql from 42.3.2 to 42.3.3
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.2 to 42.3.3.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.2...REL42.3.3)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-22 11:49:07 +00:00
Athou
5c6ea23e0f fix wrong start_url when application is running with a context path (fixes #993) 2022-03-21 18:35:40 +01:00
Jérémie Panzer
5a2aa7cd4b Merge pull request #988 from Athou/dependabot/maven/org.postgresql-postgresql-42.3.2
Bump postgresql from 42.3.1 to 42.3.2
2022-02-02 08:08:53 +01:00
dependabot[bot]
3df53b582a Bump postgresql from 42.3.1 to 42.3.2
Bumps [postgresql](https://github.com/pgjdbc/pgjdbc) from 42.3.1 to 42.3.2.
- [Release notes](https://github.com/pgjdbc/pgjdbc/releases)
- [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.3.1...REL42.3.2)

---
updated-dependencies:
- dependency-name: org.postgresql:postgresql
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-02 07:08:31 +00:00
Jérémie Panzer
eb53fc472c Merge pull request #984 from Athou/dependabot/maven/com.h2database-h2-2.0.206
Bump h2 from 2.0.204 to 2.0.206
2022-01-07 07:39:51 +01:00
dependabot[bot]
c4e9178efb Bump h2 from 2.0.204 to 2.0.206
Bumps [h2](https://github.com/h2database/h2database) from 2.0.204 to 2.0.206.
- [Release notes](https://github.com/h2database/h2database/releases)
- [Commits](https://github.com/h2database/h2database/compare/version-2.0.204...version-2.0.206)

---
updated-dependencies:
- dependency-name: com.h2database:h2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-07 06:36:30 +00:00
Athou
822f41bc40 don't mark feature requests as stale 2022-01-03 07:57:51 +01:00
Athou
1558c0a62f use github actions 2022-01-02 22:16:07 +01:00
Athou
3977bb2a0b remove openshift support, nobody's using it 2022-01-02 22:14:27 +01:00
Athou
26df3a1d1d fix test 2022-01-02 22:12:33 +01:00
Athou
a77a860e0c don't reuse a content if other fields are different (#800) 2022-01-02 21:50:45 +01:00
Athou
78b637c83b fix formatting 2022-01-02 21:33:01 +01:00
Athou
b132178228 remove warnings 2022-01-02 21:31:05 +01:00
Athou
4021389a4d fix formatting 2022-01-02 21:25:15 +01:00
Athou
089be99287 use sslcontext-kickstart to create ssl factory 2022-01-02 21:25:15 +01:00
Athou
b3dd6acfe6 enforce code formatting 2022-01-02 21:24:37 +01:00
Athou
ec3645a1c9 use dependencies instead of copying code 2022-01-02 21:03:33 +01:00
Athou
1c49873da1 fix media extension not loaded in shaded jar by merging our rome.properties with the one from rome-modules (#800) 2022-01-02 18:42:53 +01:00
Athou
8818bd90e0 format scss files 2022-01-02 16:03:09 +01:00
Athou
4fb95799f8 support for media thumbnail and description as a backup for missing content (#800) 2022-01-02 15:58:00 +01:00
Athou
2ee9084b91 upgrade dependencies 2022-01-02 08:38:30 +01:00
Athou
3f3ef27d6b remove google+ and readability sharing support since they're dead 2022-01-02 08:21:32 +01:00
Athou
e01e59b72c restore previous liquibase version to fix issue with "filter" column not created with correct case in FEEDSUBSCRIPTIONS table 2022-01-01 22:09:33 +01:00
Athou
0a97f04257 apply prettier 2022-01-01 22:09:33 +01:00
Athou
0b3888a8ae upgrade feed url from http to https if able 2022-01-01 19:12:31 +01:00
Athou
c6601e5bbf correctly follow http error code 308 redirects (fixes #978) 2022-01-01 18:52:31 +01:00
Athou
5f7c5d25de add stale config 2022-01-01 10:52:11 +01:00
Athou
99d80df76c prevent NPE if icon.getMediaType() is "" 2021-12-23 16:15:26 +01:00
Athou
22beeabb9b close liquibase instance 2021-12-23 15:07:02 +01:00
Athou
8e1aad655a pgsql driver upgrade 2021-12-23 15:07:02 +01:00
Athou
942447c62f dropwizard upgrade 2021-12-23 15:07:02 +01:00
Jérémie Panzer
d8a4da7ec8 Merge pull request #965 from patoniilista/patch-1
Update pt.js
2021-04-04 19:00:52 +02:00
patoniilista
56c50eacfe Update pt.js
Fix typos and untranslated lines
2021-04-04 13:12:20 -03:00
Athou
eec6f7d168 remove sorting alphabetically because of poor performances (title is of type 'text' and cannot be indexed) 2021-01-31 08:37:10 +01:00
Athou
b45219a595 fix metrics 2021-01-30 22:40:31 +01:00
Athou
d7858f17a1 distinct is not needed since there are no feed duplicates and slows the query a lot 2021-01-30 22:07:12 +01:00
Athou
000a99c53e speed up tests 2021-01-30 21:43:21 +01:00
Athou
e592d26f8b can only remove categories once there are no subscriptions in them 2021-01-30 21:30:32 +01:00
Athou
015a60f998 subquery for retrieving feeds to refresh was not connected to main query 2021-01-30 21:28:37 +01:00
Jérémie Panzer
caba43bb5b Merge pull request #942 from pklink/tests
Add tests for PubSubService and FeedUtils.removeTrailingSlash()
2020-10-04 19:17:58 +02:00
pierre
056425bd8a add tests for FeedUtils.removeTrailingSlash() 2020-10-04 00:13:28 +02:00
Pierre Klink
4aca62c042 add tests for PubSubService 2020-10-04 00:12:29 +02:00
Athou
b597c655cd prepare next version 2020-09-02 21:24:21 +02:00
Athou
9b276009e2 README update 2020-09-02 21:23:56 +02:00
Athou
c1dac2e064 2.5.0 release 2020-09-02 21:20:20 +02:00
Jérémie Panzer
f707993188 fix travis build 2020-08-15 08:33:12 +02:00
Athou
ea612d9d53 add missing validCheckSum 2020-05-18 09:42:08 +02:00
Jeremie Panzer
b44e737448 fix liquibase script when running on an empty postgresql database 2020-03-12 13:45:06 +01:00
Jeremie Panzer
bb429afd95 ignore swagger in eclipse 2020-03-12 12:54:20 +01:00
dependabot[bot]
475a8f8a28 Bump bower from 1.4.1 to 1.8.8 (#920)
Bumps [bower](https://github.com/bower/bower) from 1.4.1 to 1.8.8.
- [Release notes](https://github.com/bower/bower/releases)
- [Changelog](https://github.com/bower/bower/blob/master/CHANGELOG.md)
- [Commits](https://github.com/bower/bower/compare/v1.4.1...v1.8.8)

Signed-off-by: dependabot[bot] <support@github.com>
2019-09-30 09:01:55 +02:00
Athou
c7ba5ca894 make swagger aware that dates are serialized as longs 2019-05-03 22:01:18 +02:00
Athou
3023f0a7cc fix build 2019-05-03 18:57:02 +02:00
Athou
ddaefbc952 deduplicate method names across all the api (swagger requires unique api operations) 2019-05-03 18:40:50 +02:00
Jeremie Panzer
0b3a0fb3ed add missing required 2019-05-02 13:42:49 +02:00
Athou
7f40a430fd hide securitycheck user from swagger documentation 2019-05-01 23:33:55 +02:00
Athou
05f5d3b25c add missing "required" flags 2019-05-01 20:31:48 +02:00
Athou
c3ca0b18b3 value field of annotation is actually the name of the class 2019-05-01 19:57:52 +02:00
Athou
696e0b1fa7 maven config for swagger plugin changed 2019-05-01 19:56:48 +02:00
Athou
201f7dbd3e restore cookieMaxAge behavior 2019-04-23 01:14:26 +02:00
Athou
0bfd3e906c stop hibernate HHH90000015 spam 2019-04-22 20:55:39 +02:00
Jérémie Panzer
71ac2bfc45 support for Java9+ (#906)
* initial java9+ support

* restore session management, updated for jetty 9.4

* Session actually implements EntityManager

* reusable method for setting the timeout
2019-04-22 20:30:06 +02:00
Athou
5370db7c5e rename for clarity 2019-03-17 07:05:29 +01:00
Athou
bcc30e40ba Merge branch 'ildar-shaimordanov-master' 2019-03-17 06:46:51 +01:00
Athou
2f70f654f7 extensible mechanism for feed url building 2019-03-17 06:44:09 +01:00
ildar-shaimordanov
b64115dcbd improve youtube feed URL getter 2019-03-12 05:52:00 +04:00
ildar-shaimordanov
c9c71d8582 workaround for youtube channels 2019-03-12 02:13:41 +04:00
Jérémie Panzer
689bc19296 Merge pull request #896 from nelsonblaha/patch-1
English correction for configuration comment
2019-02-10 20:33:12 +01:00
Ben Nelson
27498ab649 English correction for configuration comment 2019-02-10 11:35:46 -06:00
Athou
678a11f998 blur event seems to trigger twice for some reason, make sure we don't fetch the feed twice (#825) 2018-07-31 15:51:48 +02:00
Athou
e9ef98716f configurable user agent string (#825) 2018-07-31 15:21:45 +02:00
Athou
b3ce43eaf7 faster replace for large feeds (#881) 2018-07-11 17:13:38 +02:00
Jérémie Panzer
72083b7e87 Merge pull request #880 from Athou/snyk-fix-0oenl9
[Snyk] Fix for 6 vulnerable dependencies
2018-06-23 13:49:14 +02:00
snyk-bot
0cc94c2033 fix: pom.xml to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JAVA-COMH2DATABASE-31685
- https://snyk.io/vuln/SNYK-JAVA-MYSQL-31399
- https://snyk.io/vuln/SNYK-JAVA-MYSQL-31449
- https://snyk.io/vuln/SNYK-JAVA-MYSQL-31580
- https://snyk.io/vuln/SNYK-JAVA-ORGAPACHEHTTPCOMPONENTS-31517
- https://snyk.io/vuln/SNYK-JAVA-ORGJSOUP-31218
2018-06-14 05:55:43 +00:00
Jérémie Panzer
1d6296b400 Merge pull request #870 from asny23/update-japanese-translation
improve japanese translation
2018-04-12 12:18:50 +02:00
Unknown
7ad5da2a9e translate and improve japanese in ja.js 2018-04-11 23:27:56 +09:00
Athou
a7665a9994 add current year to filtering context 2018-02-25 13:38:37 +01:00
Jérémie Panzer
a4cd3f26e8 Update README.md 2018-02-22 18:21:48 +01:00
Athou
fcdb33b64b utility for testing feeds 2018-02-06 15:17:37 +01:00
Athou
7fd6119bcf add author to rss generated feeds (#858) 2017-12-22 18:50:32 +01:00
Jérémie Panzer
b4d4b2473c Merge pull request #854 from Busimus/patch-7
Updated Russian translation
2017-11-08 15:34:32 +01:00
Alexander Bus
91f715c3c3 Updated Russian translation 2017-10-28 01:16:57 +07:00
Athou
ea5fccfe5f fix build 2017-10-12 12:10:04 +02:00
Athou
86835eec73 request may not be a HttpUriRequest when using a proxy (#850) 2017-10-12 10:21:11 +02:00
Jérémie Panzer
2bccee2333 Merge pull request #849 from ema-pe/update-italian-translation
Update italian translation
2017-09-27 15:00:56 +02:00
Emanuele Petriglia
2d01b0d714 Update italian translation 2017-09-27 14:09:37 +02:00
Jérémie Panzer
44bf37b05a Update bower.json
fix alignment
2017-08-18 16:10:51 +02:00
Jérémie Panzer
cf617f0a64 Merge pull request #847 from sometoby/missing-shortcut-help
Add missing shortcut help for 'r'
2017-08-18 14:27:13 +02:00
Jérémie Panzer
eeeaffd883 Merge pull request #846 from sometoby/tinycon-unread-badge
Use tinycon to display unread article count
2017-08-18 14:25:07 +02:00
Tobias Umbach
d178302d34 Add comment so shortcut code is easier to find 2017-08-18 08:40:05 +02:00
Tobias Umbach
83a5364903 Add missing shortcut help for 'r', refresh 2017-08-18 08:39:49 +02:00
Tobias Umbach
aef76db664 Update CHANGELOG 2017-08-18 08:21:36 +02:00
Tobias Umbach
c3b3240191 Use tinycon to display unread article count 2017-08-14 11:15:43 +02:00
Athou
f381974955 prepare for next version 2017-08-01 13:55:11 +02:00
Athou
bd16dd98c4 update readme 2017-08-01 13:55:04 +02:00
261 changed files with 9584 additions and 9123 deletions

18
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,18 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- pinned
- security
- enhancement
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

20
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,20 @@
name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
java: ["8", "11", "17"]
steps:
- uses: actions/checkout@v3
- name: Set up Java
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java }}
distribution: "temurin"
- name: Build with Maven
run: mvn --batch-mode --update-snapshots verify

7
.gitignore vendored
View File

@@ -1,8 +1,12 @@
# config gile # config file
config.yml config.yml
# build directory # build directory
target target
target-ide
# database files
database
# log files # log files
log log
@@ -22,6 +26,7 @@ src/main/app/lib
.classpath .classpath
.settings .settings
.factorypath .factorypath
.checkstyle
# IntelliJ Idea files # IntelliJ Idea files
.idea .idea

View File

@@ -1,3 +0,0 @@
For information about .openshift directory, consult the documentation:
http://openshift.github.io/documentation/oo_user_guide.html#the-openshift-directory

View File

@@ -1,3 +0,0 @@
For information about action hooks, consult the documentation:
http://openshift.github.io/documentation/oo_user_guide.html#action-hooks

View File

@@ -1,36 +0,0 @@
#!/bin/bash
if [ ! -d $OPENSHIFT_DATA_DIR/jdk1.8.0_20 ]
then
cd $OPENSHIFT_DATA_DIR
wget http://www.java.net/download/jdk8u20/archive/b17/binaries/jdk-8u20-ea-bin-b17-linux-x64-04_jun_2014.tar.gz
tar xvf *.tar.gz
rm -f *.tar.gz
fi
if [ ! -d $OPENSHIFT_DATA_DIR/apache-maven-3.2.3 ]
then
cd $OPENSHIFT_DATA_DIR
wget http://archive.apache.org/dist/maven/maven-3/3.2.3/binaries/apache-maven-3.2.3-bin.tar.gz
tar xvf *.tar.gz
rm -f *.tar.gz
fi
export M2=$OPENSHIFT_DATA_DIR/apache-maven-3.2.3/bin
export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_20
export PATH=$JAVA_HOME/bin:$M2:$PATH
cd $OPENSHIFT_REPO_DIR
rm -rf $OPENSHIFT_REPO_DIR/node
rm -rf $OPENSHIFT_REPO_DIR/node_modules
rm -rf $OPENSHIFT_TMP_DIR/npm
rm -rf $OPENSHIFT_TMP_DIR/npmrc
rm -rf $OPENSHIFT_TMP_DIR/m2
rm -rf $OPENSHIFT_TMP_DIR/local
export NPM_CONFIG_PREFIX="$OPENSHIFT_TMP_DIR/npm"
export NPM_CONFIG_USERCONFIG="$OPENSHIFT_TMP_DIR/npmrc"
export NPM_CONFIG_CACHE="$OPENSHIFT_TMP_DIR/npm/cache"
export MAVEN_OPTS="-Dmaven.repo.local=$OPENSHIFT_TMP_DIR/m2"
export HOME="$OPENSHIFT_TMP_DIR/local"
export NPM_CONFIG_ARCH="x64"
mvn clean package -DskipTests -Dos.arch=x64 -s .openshift/settings.xml

View File

@@ -1,9 +0,0 @@
#!/bin/bash
cd $OPENSHIFT_REPO_DIR
sed -i 's/@OPENSHIFT_DIY_IP@/'"$OPENSHIFT_DIY_IP"'/g' .openshift/config.mysql.yml
sed -i 's/@OPENSHIFT_DIY_PORT@/'"$OPENSHIFT_DIY_PORT"'/g' .openshift/config.mysql.yml
sed -i 's/@OPENSHIFT_APP_DNS@/'"$OPENSHIFT_APP_DNS"'/g' .openshift/config.mysql.yml
sed -i 's/@OPENSHIFT_APP_NAME@/'"$OPENSHIFT_APP_NAME"'/g' .openshift/config.mysql.yml
sed -i 's/@OPENSHIFT_MYSQL_DB_HOST@/'"$OPENSHIFT_MYSQL_DB_HOST"'/g' .openshift/config.mysql.yml
sed -i 's/@OPENSHIFT_MYSQL_DB_USERNAME@/'"$OPENSHIFT_MYSQL_DB_USERNAME"'/g' .openshift/config.mysql.yml
sed -i 's/@OPENSHIFT_MYSQL_DB_PASSWORD@/'"$OPENSHIFT_MYSQL_DB_PASSWORD"'/g' .openshift/config.mysql.yml

View File

@@ -1,4 +0,0 @@
#!/bin/bash
cd $OPENSHIFT_REPO_DIR
export JAVA_HOME=$OPENSHIFT_DATA_DIR/jdk1.8.0_20
nohup $JAVA_HOME/bin/java -jar target/commafeed.jar server .openshift/config.mysql.yml > ${OPENSHIFT_DIY_LOG_DIR}/commafeed.log 2>&1 &

View File

@@ -1,8 +0,0 @@
#!/bin/bash
source $OPENSHIFT_CARTRIDGE_SDK_BASH
if [ -z "$(ps -ef | grep commafeed.jar | grep -v grep)" ]
then
client_result "Application is already stopped"
else
kill `ps -ef | grep commafeed.jar | grep -v grep | awk '{ print $2 }'` > /dev/null 2>&1
fi

View File

View File

View File

View File

View File

@@ -1,16 +0,0 @@
Run scripts or jobs on a weekly basis
=====================================
Any scripts or jobs added to this directory will be run on a scheduled basis
(weekly) using run-parts.
run-parts ignores any files that are hidden or dotfiles (.*) or backup
files (*~ or *,) or named *.{rpmsave,rpmorig,rpmnew,swp,cfsaved} and handles
the files named jobs.deny and jobs.allow specially.
In this specific example, the chronograph script is the only script or job file
executed on a weekly basis (due to white-listing it in jobs.allow). And the
README and chrono.dat file are ignored either as a result of being black-listed
in jobs.deny or because they are NOT white-listed in the jobs.allow file.
For more details, please see ../README.cron file.

View File

@@ -1 +0,0 @@
Time And Relative D...n In Execution (Open)Shift!

View File

@@ -1,3 +0,0 @@
#!/bin/bash
echo "`date`: `cat $(dirname \"$0\")/chrono.dat`"

View File

@@ -1,12 +0,0 @@
#
# Script or job files listed in here (one entry per line) will be
# executed on a weekly-basis.
#
# Example: The chronograph script will be executed weekly but the README
# and chrono.dat files in this directory will be ignored.
#
# The README file is actually ignored due to the entry in the
# jobs.deny which is checked before jobs.allow (this file).
#
chronograph

View File

@@ -1,7 +0,0 @@
#
# Any script or job files listed in here (one entry per line) will NOT be
# executed (read as ignored by run-parts).
#
README

View File

@@ -1,3 +0,0 @@
For information about markers, consult the documentation:
http://openshift.github.io/documentation/oo_user_guide.html#markers

View File

@@ -1,41 +0,0 @@
<settings>
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>central</mirrorOf>
<url>http://mirror1.ops.rhcloud.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>

7
.prettierrc Normal file
View File

@@ -0,0 +1,7 @@
{
"printWidth": 140,
"semi": false,
"tabWidth": 4,
"arrowParens": "avoid",
"endOfLine": "auto"
}

View File

@@ -1,3 +0,0 @@
language: java
jdk:
- oraclejdk8

View File

@@ -1,3 +1,24 @@
v 2.6.0
- add support for media content as a backup for missing content (useful for youtube feeds)
- correctly follow http error code 308 redirects
- fixed a bug that prevented users from deleting their account
- fixed a bug that made commafeed store entry contents multiple times
- fixed a bug that prevented the app to be used as an installed app on mobile devices if the context path of commafeed was not "/"
- fixed a bug that prevented entries from being "marked as read older than xxx" for a feed that was just added
- removed support for google+ and readability as those services no longer exist
- removed support for deploying on openshift
- removed alphabetical sorting of entries because of really poor performance (title cannot be indexed)
- improve performance for instances with the heavy load setting enabled by preventing CommaFeed from fetching feeds from users that did not log in for a long time
- various dependencies upgrades (notably dropwizard from 1.3 to 2.1)
- add support for mariadb
- add support for java17+ runtime
- various security improvements
v 2.5.0
- unread count is now displayed in a favicon badge when supported
- the user agent string for the bot fetching feeds is now configurable
- feed parsing performance improvements
- support for java9+ runtime
- can now properly start from an empty postgresql database
v 2.4.0 v 2.4.0
- users were not able to change password or delete account - users were not able to change password or delete account
- fix api key generation - fix api key generation
@@ -51,4 +72,4 @@ v2.0.0
- The backend has been completely rewritten using Dropwizard instead of TomEE, resulting in a lot less memory consumption and better overall performances. - The backend has been completely rewritten using Dropwizard instead of TomEE, resulting in a lot less memory consumption and better overall performances.
See the README on how to build CommaFeed from now on. See the README on how to build CommaFeed from now on.
- CommaFeed should no longer fetch the same feed multiple times in a row - CommaFeed should no longer fetch the same feed multiple times in a row
- Users can use their username or email to log in - Users can use their username or email to log in

View File

@@ -7,7 +7,6 @@ CommaFeed is now considered feature-complete and is in maintenance mode.
## Related open-source projects ## Related open-source projects
Android apps: [News+ extension](https://github.com/Athou/commafeed-newsplus) Android apps: [News+ extension](https://github.com/Athou/commafeed-newsplus)
Browser extensions: [Chrome](https://github.com/Athou/commafeed-chrome) - [Firefox](https://github.com/Athou/commafeed-firefox) - [Opera](https://github.com/Athou/commafeed-opera) - [Safari](https://github.com/Athou/commafeed-safari) Browser extensions: [Chrome](https://github.com/Athou/commafeed-chrome) - [Firefox](https://github.com/Athou/commafeed-firefox) - [Opera](https://github.com/Athou/commafeed-opera) - [Safari](https://github.com/Athou/commafeed-safari)
@@ -17,10 +16,10 @@ Browser extensions: [Chrome](https://github.com/Athou/commafeed-chrome) - [Firef
### The very short version (download precompiled package) ### The very short version (download precompiled package)
mkdir commafeed && cd commafeed mkdir commafeed && cd commafeed
wget https://github.com/Athou/commafeed/releases/download/2.3.0/commafeed.jar wget https://github.com/Athou/commafeed/releases/download/2.6.0/commafeed.jar
wget https://raw.githubusercontent.com/Athou/commafeed/2.3.0/config.yml.example -O config.yml wget https://raw.githubusercontent.com/Athou/commafeed/2.6.0/config.yml.example -O config.yml
vi config.yml vi config.yml
java -Djava.net.preferIPv4Stack=true -jar commafeed.jar server config.yml java -Djava.net.preferIPv4Stack=true -jar commafeed.jar server config.yml
### The short version (build from sources) ### The short version (build from sources)
@@ -29,58 +28,43 @@ Browser extensions: [Chrome](https://github.com/Athou/commafeed-chrome) - [Firef
./mvnw clean package ./mvnw clean package
cp config.yml.example config.yml cp config.yml.example config.yml
vi config.yml vi config.yml
java -Djava.net.preferIPv4Stack=true -jar target/commafeed.jar server config.yml java -Djava.net.preferIPv4Stack=true -jar target/commafeed.jar server config.yml
### The long version (same as the short version, but more detailed) ### The long version (same as the short version, but more detailed)
CommaFeed 2.0 has been rewritten to use Dropwizard and gulp instead of using tomee and wro4j. The latest version of the 1.x branch is available [here](https://github.com/Athou/commafeed/tree/1.x). CommaFeed 2.0 has been rewritten to use Dropwizard and gulp instead of using tomee and wro4j. The latest version of the 1.x branch is available [here](https://github.com/Athou/commafeed/tree/1.x).
For storage, you can either use an embedded H2 database (use it only to test CommaFeed) or an external MySQL, PostgreSQL or SQLServer database. For storage, you can either use an embedded file-based H2 database or an external MySQL, PostgreSQL or SQLServer database.
You also need the Java 1.8+ JDK in order to build the application. You also need the Java 1.8+ JDK in order to build the application.
To install the required packages to build CommaFeed on Ubuntu, issue the following commands To install the required packages to build CommaFeed on Ubuntu, issue the following commands
# if openjdk-8-jdk is not available on your ubuntu version (14.04 LTS), add the following repo first # if openjdk-8-jdk is not available on your ubuntu version (14.04 LTS), add the following repo first
sudo add-apt-repository ppa:openjdk-r/ppa sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update sudo apt-get update
sudo apt-get install g++ build-essential openjdk-8-jdk sudo apt-get install g++ build-essential openjdk-8-jdk
# Make sure java8 is the selected java version # Make sure java8 is the selected java version
sudo update-alternatives --config java sudo update-alternatives --config java
sudo update-alternatives --config javac sudo update-alternatives --config javac
Clone this repository. If you don't have git you can download the sources as a zip file from [here](https://github.com/Athou/commafeed/archive/master.zip) Clone this repository. If you don't have git you can download the sources as a zip file from [here](https://github.com/Athou/commafeed/archive/master.zip)
git clone https://github.com/Athou/commafeed.git git clone https://github.com/Athou/commafeed.git
cd commafeed cd commafeed
Now build the application Now build the application
./mvnw clean package ./mvnw clean package
Copy `config.yml.example` to `config.yml` then edit the file to your liking. Copy `config.yml.example` to `config.yml` then edit the file to your liking.
Issue the following command to run the app, the server will listen by default on `http://localhost:8082`. The default user is `admin` and the default password is `admin`. Issue the following command to run the app, the server will listen by default on `http://localhost:8082`. The default user is `admin` and the default password is `admin`.
java -Djava.net.preferIPv4Stack=true -jar target/commafeed.jar server config.yml java -Djava.net.preferIPv4Stack=true -jar target/commafeed.jar server config.yml
You can use a proxy http server such as nginx or apache. You can use a proxy http server such as nginx or apache.
## Deployment on OpenShift
[OpenShift](https://openshift.redhat.com) is Red Hat's Platform-as-a-Service (PaaS) that allows developers to quickly develop, host, and scale applications in a cloud environment. CommaFeed runs perfectly on OpenShift and can even be used in the free tier. Follow the [Getting Started](https://developers.openshift.com/en/getting-started-overview.html) guide and after you sign up and install the Command Line Tools (RHC), do:
rhc create-app commafeed diy-0.1 mysql-5.5
cd commafeed
git remote add upstream -m master https://github.com/Athou/commafeed.git
git pull -s recursive -X theirs upstream master
git push
# To upgrade an existing openshift installation
git pull upstream master
git push
## Translate CommaFeed into your language ## Translate CommaFeed into your language
Files for internationalization are located [here](https://github.com/Athou/commafeed/tree/master/src/main/app/i18n). Files for internationalization are located [here](https://github.com/Athou/commafeed/tree/master/src/main/app/i18n).
@@ -91,12 +75,11 @@ The language has to be referenced in the `src/main/app/js/i18n.js` file to be pi
## Themes ## Themes
To create a theme, create a new file `src/main/app/sass/themes/_<theme>.scss`. Your styles should be wrapped in a `#theme-<theme>` element and use the [SCSS format](http://sass-lang.com/) which is a superset of CSS. To create a theme, create a new file `src/main/app/sass/themes/_<theme>.scss`. Your styles should be wrapped in a `#theme-<theme>` element and use the [SCSS format](http://sass-lang.com/) which is a superset of CSS.
Don't forget to reference your theme in `src/main/app/sass/app.scss` and in `src/main/app/js/controllers.js` (look for `$scope.themes`). Don't forget to reference your theme in `src/main/app/sass/app.scss` and in `src/main/app/js/controllers.js` (look for `$scope.themes`).
See [_test.scss](https://github.com/Athou/commafeed/blob/master/src/main/app/sass/themes/_test.scss) for an example. See [\_test.scss](https://github.com/Athou/commafeed/blob/master/src/main/app/sass/themes/_test.scss) for an example.
## Local development ## Local development
@@ -105,13 +88,13 @@ Steps to configuring a development environment for CommaFeed may include, but ma
1. `git clone https://github.com/Athou/CommaFeed` into some folder to get the project files. 1. `git clone https://github.com/Athou/CommaFeed` into some folder to get the project files.
2. Install Eclipse Luna (or latest) from http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/lunasr1 or your repo if available. 2. Install Eclipse Luna (or latest) from http://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/lunasr1 or your repo if available.
3. In Eclipse, Window → Preferences → Maven → Annotation Processing. Check "Automatically configure JDT APT" 3. In Eclipse, Window → Preferences → Maven → Annotation Processing. Check "Automatically configure JDT APT"
* You may have to install the m2e-apt connector to have "Annotation Processing" as an option. Do so from Window → Preferences → Maven → Discovery → Open Catalog → type "m2e-apt" in the search box - You may have to install the m2e-apt connector to have "Annotation Processing" as an option. Do so from Window → Preferences → Maven → Discovery → Open Catalog → type "m2e-apt" in the search box
* If you have installed Eclipse EE instead of Luna, you may have trouble installing m2e-apt - If you have installed Eclipse EE instead of Luna, you may have trouble installing m2e-apt
4. Install Lombok into Eclipse from http://projectlombok.org/download.html 4. Install Lombok into Eclipse from http://projectlombok.org/download.html
* You may have to run `java -jar lombok.jar` as an administrator if your eclipse installation is not in your home folder - You may have to run `java -jar lombok.jar` as an administrator if your eclipse installation is not in your home folder
5. In Eclipse, File → Import → Maven → Existing Maven Projects. Navigate to where you cloned the CommaFeed files into, and select that as the root directory. Click Finish. 5. In Eclipse, File → Import → Maven → Existing Maven Projects. Navigate to where you cloned the CommaFeed files into, and select that as the root directory. Click Finish.
* You may notice some errors along the lines of "Plugin execution not covered by lifecycle configuration". These are inconsequential. - You may notice some errors along the lines of "Plugin execution not covered by lifecycle configuration". These are inconsequential.
6. Find the file "CommaFeedApplication.java" under the navigation pane. 6. Find the file "CommaFeedApplication.java" under the navigation pane.
7. Right click it to bring up the context menu → Debug as... → Debug Configurations 7. Right click it to bring up the context menu → Debug as... → Debug Configurations
8. Type `server config.dev.yml` under "Program arguments" in the "Arguments" tab for the Java Application setting "CommaFeedApplication" 8. Type `server config.dev.yml` under "Program arguments" in the "Arguments" tab for the Java Application setting "CommaFeedApplication"
9. Apply and hit "Debug" 9. Apply and hit "Debug"
@@ -130,7 +113,7 @@ Licensed under the Apache License, Version 2.0 (the "License");
you may not use this work except in compliance with the License. you may not use this work except in compliance with the License.
You may obtain a copy of the License in the LICENSE file, or at: You may obtain a copy of the License in the LICENSE file, or at:
http://www.apache.org/licenses/LICENSE-2.0 http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, distributed under the License is distributed on an "AS IS" BASIS,

6
SECURITY.md Normal file
View File

@@ -0,0 +1,6 @@
# Security Policy
## Reporting a Vulnerability
If you found a vulnerability that you deem too sensitive to disclose publicly in a Github issue, please send an email at jeremiepanzer at gmail dot com.
Thanks !

View File

@@ -1,37 +1,37 @@
{ {
"name": "commafeed", "name": "commafeed",
"version": "2.0.0", "version": "2.0.0",
"dependencies": { "dependencies": {
"jquery": "2.1.3", "jquery": "2.1.3",
"jquery-ui": "1.10.3", "jquery-ui": "1.10.3",
"jquery-mousewheel": "3.1.12", "jquery-mousewheel": "3.1.12",
"lodash": "3.4.0", "lodash": "3.4.0",
"bootstrap": "3.3.2", "bootstrap": "3.3.2",
"font-awesome": "3.2.1", "font-awesome": "3.2.1",
"angular": "1.3.14", "angular": "1.3.14",
"angular-resource": "1.3.14", "angular-resource": "1.3.14",
"angular-route": "1.3.14", "angular-route": "1.3.14",
"angular-sanitize": "1.3.14", "angular-sanitize": "1.3.14",
"angular-touch": "1.3.14", "angular-touch": "1.3.14",
"angular-animate": "1.3.14", "angular-animate": "1.3.14",
"angular-ui-router": "0.2.13", "angular-ui-router": "0.2.13",
"angular-ui-utils": "0.1.0", "angular-ui-utils": "0.1.0",
"angular-ui-select2": "0.0.5", "angular-ui-select2": "0.0.5",
"angular-bootstrap": "0.2.0", "angular-bootstrap": "0.2.0",
"angular-loading-bar": "0.6.0", "angular-loading-bar": "0.6.0",
"angular-translate": "2.6.1", "angular-translate": "2.6.1",
"angular-translate-loader-static-files": "2.6.1", "angular-translate-loader-static-files": "2.6.1",
"ngInfiniteScroll": "1.0.0", "ngInfiniteScroll": "1.0.0",
"ng-grid": "2.0.6", "ng-grid": "2.0.6",
"mousetrap": "1.4.6", "mousetrap": "1.4.6",
"momentjs": "2.9.0", "momentjs": "2.9.0",
"devicejs": "0.2.4", "devicejs": "0.2.4",
"readabilicons": "arc90/readability-readabilicons#34c55561c5b8ec6e90714b50237c06b13cb9d59c", "zocial-less": "1.0.0",
"zocial-less": "1.0.0", "swagger-ui": "2.1.0",
"swagger-ui": "2.1.0" "tinycon": "0.6.5"
}, },
"resolutions": { "resolutions": {
"angular": "1.3.14", "angular": "1.3.14",
"angular-translate": "2.6.1" "angular-translate": "2.6.1"
} }
} }

View File

@@ -67,6 +67,9 @@ app:
# announcement string displayed on the main page # announcement string displayed on the main page
announcement: announcement:
# user-agent string that will be used by the http client, leave empty for the default one
userAgent:
# Database connection # Database connection
# ------------------- # -------------------
# for MySQL # for MySQL

View File

@@ -4,7 +4,7 @@ app:
# url used to access commafeed # url used to access commafeed
publicUrl: http://localhost:8082/ publicUrl: http://localhost:8082/
# wether to allow user registrations # whether to allow user registrations
allowRegistrations: false allowRegistrations: false
# create a demo account the first time the app starts # create a demo account the first time the app starts
@@ -68,6 +68,9 @@ app:
# announcement string displayed on the main page # announcement string displayed on the main page
announcement: announcement:
# user-agent string that will be used by the http client, leave empty for the default one
userAgent:
# Database connection # Database connection
# ------------------- # -------------------
# for MySQL # for MySQL
@@ -84,7 +87,7 @@ app:
database: database:
driverClass: org.h2.Driver driverClass: org.h2.Driver
url: jdbc:h2:/home/commafeed/db;mv_store=false url: jdbc:h2:/home/commafeed/db
user: sa user: sa
password: sa password: sa
properties: properties:
@@ -108,6 +111,7 @@ logging:
com.commafeed: INFO com.commafeed: INFO
liquibase: INFO liquibase: INFO
io.dropwizard.server.ServerFactory: INFO io.dropwizard.server.ServerFactory: INFO
org.hibernate.orm.deprecation: "OFF"
appenders: appenders:
- type: console - type: console
- type: file - type: file
@@ -128,4 +132,4 @@ redis:
timeout: 2000 timeout: 2000
database: 0 database: 0
maxTotal: 500 maxTotal: 500

View File

@@ -1,49 +1,59 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12"> <profiles version="18">
<profile kind="CodeFormatterProfile" name="Eclipse [built-in] 140 chars" version="12"> <profile kind="CodeFormatterProfile" name="CommaFeed" version="18">
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/> <setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/> <setting id="org.eclipse.jdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_with_spaces" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/> <setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/> <setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="48"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="48"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/> <setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/> <setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/> <setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/> <setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
@@ -52,10 +62,14 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_logical_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/> <setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
@@ -64,9 +78,12 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="140"/> <setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="140"/>
<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/> <setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_method_body_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
@@ -75,18 +92,28 @@
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/> <setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/> <setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/> <setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_additive_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_shift_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
@@ -94,80 +121,99 @@
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/> <setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/> <setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_loops" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_relational_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/> <setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/> <setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.text_block_indentation" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/> <setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_module_statements" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/> <setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_additive_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/> <setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_shift_operator" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/> <setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/> <setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/> <setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="80"/>
<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/> <setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.jdt.core.compiler.source" value="1.8"/> <setting id="org.eclipse.jdt.core.formatter.keep_code_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/> <setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
@@ -183,8 +229,9 @@
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="48"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="48"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_not_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
@@ -194,8 +241,11 @@
<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/> <setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
@@ -216,18 +266,21 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_logical_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_relational_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
@@ -235,48 +288,62 @@
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/> <setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_tag_description" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/> <setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_string_concatenation" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/> <setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/> <setting id="org.eclipse.jdt.core.formatter.wrap_before_logical_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.8"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_shift_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line" value="one_line_never"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/> <setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/> <setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_additive_operator" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line" value="false"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/> <setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
@@ -284,9 +351,12 @@
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/> <setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block" value="0"/>
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/> <setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_relational_operator" value="insert"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.jdt.core.formatter.wrap_before_string_concatenation" value="true"/>
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/> <setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="140"/> <setting id="org.eclipse.jdt.core.formatter.lineSplit" value="140"/>
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/> <setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>

View File

@@ -1,267 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="11">
<profile kind="CodeFormatterProfile" name="Eclipse [built-in] 140 chars" version="11">
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_case" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_empty_lines" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_compact_if" value="52"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_annotation" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_header" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_block_comments" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_object_initializer" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_type_declarations" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_assignment" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.size" value="4"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_default" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.align_type_members_on_columns" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_objlit_initializer" value="1"/>
<setting id="org.eclipse.wst.jsdt.core.compiler.compliance" value="1.5"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_objlit_initializer" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_source_code" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.wrap_before_binary_operator" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_package" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_comma_in_objlit_initializer" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_constant" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_javadoc_comments" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indentation.size" value="4"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_objlit_initializer" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.compiler.source" value="1.5"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.continuation_indentation" value="2"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_conditional_expression" value="48"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_parameter_description" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_after_imports" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="64"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.indent_root_tags" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_package" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_member_type" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_enum_constants" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_imports" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_binary_expression" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.lineSplit" value="140"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_html" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_method" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superclass_in_type_declaration" value="64"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.compiler.codegen.targetPlatform" value="1.5"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.keep_empty_objlit_initializer_on_one_line" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_block" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.format_line_comments" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="64"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.compiler.problem.assertIdentifier" value="error"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.insert_new_line_for_parameter" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_colon_in_object_initializer" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.line_length" value="80"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_block" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_multiple_fields" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.indent_statements_compare_to_body" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_new_chunk" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.tabulation.char" value="tab"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_between_import_groups" value="1"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_field" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_after_opening_brace_in_objlit_initializer" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.compact_else_if" value="true"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
<setting id="org.eclipse.wst.jsdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
</profile>
</profiles>

119
dev/checkstyle.xml Normal file
View File

@@ -0,0 +1,119 @@
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<property name="charset" value="UTF-8" />
<property name="fileExtensions" value="java" />
<module name="TreeWalker">
<property name="tabWidth" value="4" />
<!-- Checks for Naming Conventions. -->
<!-- See http://checkstyle.sf.net/config_naming.html -->
<module name="CatchParameterName">
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$" />
</module>
<module name="ConstantName">
<property name="format" value="^log|[A-Z][A-Z0-9]*(_[A-Z0-9]+)*$" />
</module>
<module name="ClassTypeParameterName" />
<module name="InterfaceTypeParameterName" />
<module name="LambdaParameterName" />
<module name="LocalFinalVariableName" />
<module name="LocalVariableName" />
<module name="MemberName" />
<module name="MethodName" />
<module name="MethodTypeParameterName" />
<module name="PackageName">
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$" />
</module>
<module name="ParameterName" />
<module name="StaticVariableName" />
<module name="TypeName" />
<!-- Checks for imports -->
<!-- See http://checkstyle.sf.net/config_import.html -->
<module name="AvoidStarImport" />
<module name="AvoidStaticImport" />
<module name="IllegalImport" />
<module name="ImportOrder">
<property name="groups" value="/^java\./,javax,org,com" />
<property name="ordered" value="true" />
<property name="separated" value="true" />
</module>
<module name="RedundantImport" />
<module name="UnusedImports" />
<!-- Modifier Checks -->
<!-- See http://checkstyle.sf.net/config_modifier.html -->
<module name="ModifierOrder" />
<module name="RedundantModifier">
<property name="tokens" value="METHOD_DEF, VARIABLE_DEF, ANNOTATION_FIELD_DEF, INTERFACE_DEF, CLASS_DEF, ENUM_DEF, RESOURCE" />
</module>
<!-- Checks for blocks. You know, those {}'s -->
<!-- See http://checkstyle.sf.net/config_blocks.html -->
<module name="EmptyCatchBlock">
<property name="exceptionVariableName" value="ignore|ignored" />
<message key="catch.block.empty"
value="Empty catch block. You can use the name 'ignore' or 'ignored' for the exception variable if you really want an empty catch block, but you should strongly consider at the very least logging something." />
</module>
<module name="LeftCurly" />
<module name="NeedBraces" />
<module name="RightCurly" />
<!-- Checks for common coding problems -->
<!-- See http://checkstyle.sf.net/config_coding.html -->
<module name="DeclarationOrder" />
<module name="DefaultComesLast" />
<module name="EmptyStatement" />
<module name="EqualsHashCode" />
<module name="ExplicitInitialization" />
<module name="FallThrough" />
<module name="IllegalInstantiation">
<property name="classes"
value="java.lang.Boolean, java.lang.Byte, java.lang.Character, java.lang.Double, java.lang.Float, java.lang.Integer, java.lang.Long, java.lang.Short" />
</module>
<module name="IllegalType" />
<module name="ModifiedControlVariable">
<property name="skipEnhancedForLoopVariable" value="true" />
</module>
<module name="MissingSwitchDefault" />
<module name="MultipleVariableDeclarations" />
<module name="NoFinalizer" />
<module name="OneStatementPerLine" />
<module name="OverloadMethodsDeclarationOrder" />
<module name="PackageDeclaration" />
<module name="SimplifyBooleanExpression" />
<module name="SimplifyBooleanReturn" />
<module name="StringLiteralEquality" />
<module name="UnnecessaryParentheses" />
<!-- Checks for class design -->
<!-- See http://checkstyle.sf.net/config_design.html -->
<module name="InnerTypeLast" />
<module name="OneTopLevelClass" />
<!-- Miscellaneous other checks. -->
<!-- See http://checkstyle.sf.net/config_misc.html -->
<module name="ArrayTypeStyle" />
<module name="OuterTypeFilename" />
<module name="UpperEll" />
<!-- Whitespace checks. -->
<!-- See http://checkstyle.sourceforge.net/config_whitespace.html -->
<module name="MethodParamPad" />
<module name="NoLineWrap" />
<module name="NoWhitespaceBefore" />
<module name="ParenPad" />
<module name="RegexpSinglelineJava">
<property name="format" value="^\t* +\t*\S" />
<property name="message" value="Line has leading space characters; indentation should be performed with tabs only." />
<property name="ignoreComments" value="true" />
</module>
<module name="WhitespaceAround" />
</module>
</module>

19
docker-compose.dev.yml Normal file
View File

@@ -0,0 +1,19 @@
version: "3.1"
services:
mysql:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=commafeed
ports:
- 3306:3306
postgresql:
image: postgres
environment:
POSTGRES_USER: root
POSTGRES_PASSWORD: root
POSTGRES_DB: commafeed
ports:
- 5432:5432

View File

@@ -4,7 +4,7 @@
"main": "main.js", "main": "main.js",
"private": true, "private": true,
"devDependencies": { "devDependencies": {
"bower": "1.4.1", "bower": "1.8.8",
"gulp": "3.8.11", "gulp": "3.8.11",
"gulp-rev": "4.0.0", "gulp-rev": "4.0.0",
"gulp-rev-replace": "0.4.1", "gulp-rev-replace": "0.4.1",

344
pom.xml
View File

@@ -4,24 +4,29 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.commafeed</groupId> <groupId>com.commafeed</groupId>
<artifactId>commafeed</artifactId> <artifactId>commafeed</artifactId>
<version>2.4.0</version> <version>2.6.0</version>
<packaging>jar</packaging>
<name>CommaFeed</name> <name>CommaFeed</name>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version> <maven.compiler.source>1.8</maven.compiler.source>
<dropwizard.version>0.9.1</dropwizard.version> <maven.compiler.target>1.8</maven.compiler.target>
<guice.version>4.0</guice.version> <guice.version>5.1.0</guice.version>
<querydsl.version>4.0.2</querydsl.version> <querydsl.version>4.2.1</querydsl.version>
<rome.version>1.5.0</rome.version> <rome.version>1.18.0</rome.version>
</properties> </properties>
<scm> <dependencyManagement>
<connection>scm:git:https://github.com/Athou/commafeed.git</connection> <dependencies>
<developerConnection>scm:git:https://github.com/Athou/commafeed.git</developerConnection> <dependency>
<url>https://github.com/Athou/commafeed</url> <groupId>io.dropwizard</groupId>
</scm> <artifactId>dropwizard-dependencies</artifactId>
<version>2.1.1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build> <build>
<finalName>commafeed</finalName> <finalName>commafeed</finalName>
@@ -32,47 +37,29 @@
</resource> </resource>
</resources> </resources>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<versionRange>[0.0.22,)</versionRange>
<goals>
<goal>npm</goal>
<goal>gulp</goal>
<goal>bower</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>false</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version> <version>3.10.1</version>
<configuration> </plugin>
<source>${java.version}</source> <plugin>
<target>${java.version}</target> <groupId>org.apache.maven.plugins</groupId>
</configuration> <artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.22.2</version>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>pl.project13.maven</groupId> <groupId>pl.project13.maven</groupId>
@@ -94,7 +81,14 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId> <artifactId>maven-shade-plugin</artifactId>
<version>2.3</version> <version>3.2.4</version>
<dependencies>
<dependency>
<groupId>org.kordamp.shade</groupId>
<artifactId>maven-shade-ext-transformers</artifactId>
<version>1.4.0</version>
</dependency>
</dependencies>
<configuration> <configuration>
<createDependencyReducedPom>false</createDependencyReducedPom> <createDependencyReducedPom>false</createDependencyReducedPom>
<filters> <filters>
@@ -120,6 +114,12 @@
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.commafeed.CommaFeedApplication</mainClass> <mainClass>com.commafeed.CommaFeedApplication</mainClass>
</transformer> </transformer>
<transformer implementation="org.kordamp.shade.resources.PropertiesFileTransformer">
<paths>
<path>rome.properties</path>
</paths>
<mergeStrategy>append</mergeStrategy>
</transformer>
</transformers> </transformers>
</configuration> </configuration>
</execution> </execution>
@@ -128,11 +128,16 @@
<plugin> <plugin>
<groupId>com.github.kongchen</groupId> <groupId>com.github.kongchen</groupId>
<artifactId>swagger-maven-plugin</artifactId> <artifactId>swagger-maven-plugin</artifactId>
<version>3.1.1</version> <version>3.1.7</version>
<?m2e ignore?>
<configuration> <configuration>
<apiSources> <apiSources>
<apiSource> <apiSource>
<locations>com.commafeed.frontend.resource;com.commafeed.frontend.model;com.commafeed.frontend.model.request</locations> <locations>
<location>com.commafeed.frontend.resource</location>
<location>com.commafeed.frontend.model</location>
<location>com.commafeed.frontend.model.request</location>
</locations>
<swaggerDirectory>target/swagger</swaggerDirectory> <swaggerDirectory>target/swagger</swaggerDirectory>
<basePath>/rest</basePath> <basePath>/rest</basePath>
<info> <info>
@@ -157,7 +162,8 @@
<plugin> <plugin>
<groupId>com.github.eirslett</groupId> <groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId> <artifactId>frontend-maven-plugin</artifactId>
<version>0.0.25</version> <version>1.6</version>
<?m2e ignore?>
<executions> <executions>
<execution> <execution>
<id>install node and npm</id> <id>install node and npm</id>
@@ -166,7 +172,7 @@
</goals> </goals>
<phase>compile</phase> <phase>compile</phase>
<configuration> <configuration>
<nodeVersion>v0.10.39</nodeVersion> <nodeVersion>v6.11.4</nodeVersion>
<npmVersion>3.10.6</npmVersion> <npmVersion>3.10.6</npmVersion>
</configuration> </configuration>
</execution> </execution>
@@ -202,7 +208,7 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId> <artifactId>maven-jar-plugin</artifactId>
<version>2.6</version> <version>3.2.2</version>
<configuration> <configuration>
<archive> <archive>
<manifest> <manifest>
@@ -211,20 +217,87 @@
</archive> </archive>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<linkXRef>false</linkXRef>
<sourceDirectories>
<sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
</sourceDirectories>
<testSourceDirectories>
<testSourceDirectory>${project.build.testSourceDirectory}</testSourceDirectory>
</testSourceDirectories>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<configLocation>dev/checkstyle.xml</configLocation>
</configuration>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>1.27.0</version>
<?m2e ignore?>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<encoding>UTF-8</encoding>
<lineEndings>WINDOWS</lineEndings>
<java>
<eclipse>
<file>${project.basedir}/dev/EclipseCodeFormatter.xml</file>
</eclipse>
</java>
</configuration>
</plugin>
</plugins> </plugins>
</build> </build>
<profiles>
<profile>
<id>only-eclipse</id>
<activation>
<property>
<name>m2e.version</name>
</property>
</activation>
<build>
<directory>target-ide</directory>
</build>
</profile>
</profiles>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.projectlombok</groupId> <groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.16.4</version> <version>1.18.22</version>
<scope>provided</scope> <scope>provided</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.slf4j</groupId> <groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId> <artifactId>slf4j-api</artifactId>
<version>1.7.12</version> </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
</dependency> </dependency>
<dependency> <dependency>
@@ -232,63 +305,55 @@
<artifactId>guice</artifactId> <artifactId>guice</artifactId>
<version>${guice.version}</version> <version>${guice.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.google.inject.extensions</groupId>
<artifactId>guice-multibindings</artifactId>
<version>${guice.version}</version>
</dependency>
<dependency> <dependency>
<groupId>io.dropwizard</groupId> <groupId>io.dropwizard</groupId>
<artifactId>dropwizard-core</artifactId> <artifactId>dropwizard-core</artifactId>
<version>${dropwizard.version}</version>
<exclusions>
<exclusion>
<groupId>org.glassfish.hk2.external</groupId>
<artifactId>aopalliance-repackaged</artifactId>
</exclusion>
<exclusion>
<groupId>org.glassfish.hk2.external</groupId>
<artifactId>javax.inject</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.dropwizard</groupId> <groupId>io.dropwizard</groupId>
<artifactId>dropwizard-hibernate</artifactId> <artifactId>dropwizard-hibernate</artifactId>
<version>${dropwizard.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.dropwizard</groupId> <groupId>org.liquibase</groupId>
<artifactId>dropwizard-migrations</artifactId> <artifactId>liquibase-core</artifactId>
<version>${dropwizard.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.dropwizard</groupId> <groupId>io.dropwizard</groupId>
<artifactId>dropwizard-assets</artifactId> <artifactId>dropwizard-assets</artifactId>
<version>${dropwizard.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.dropwizard</groupId> <groupId>io.dropwizard</groupId>
<artifactId>dropwizard-forms</artifactId> <artifactId>dropwizard-forms</artifactId>
<version>${dropwizard.version}</version>
<exclusions>
<exclusion>
<groupId>org.glassfish.hk2.external</groupId>
<artifactId>javax.inject</artifactId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>io.dropwizard.metrics</groupId> <groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId> <artifactId>metrics-graphite</artifactId>
<version>3.1.2</version> </dependency>
</dependency> <dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-json</artifactId>
</dependency>
<dependency>
<groupId>io.dropwizard.modules</groupId>
<artifactId>dropwizard-web</artifactId>
<version>1.5.0</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.module</groupId>
<artifactId>jackson-module-afterburner</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId> <groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId> <artifactId>httpclient</artifactId>
<version>4.5</version>
<exclusions> <exclusions>
<exclusion> <exclusion>
<artifactId>commons-logging</artifactId> <artifactId>commons-logging</artifactId>
@@ -300,7 +365,7 @@
<dependency> <dependency>
<groupId>io.swagger</groupId> <groupId>io.swagger</groupId>
<artifactId>swagger-annotations</artifactId> <artifactId>swagger-annotations</artifactId>
<version>1.5.0</version> <version>1.5.22</version>
</dependency> </dependency>
<dependency> <dependency>
@@ -316,30 +381,24 @@
<version>${querydsl.version}</version> <version>${querydsl.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
<dependency> <dependency>
<groupId>commons-io</groupId> <groupId>commons-io</groupId>
<artifactId>commons-io</artifactId> <artifactId>commons-io</artifactId>
<version>2.4</version> <version>2.11.0</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId> <artifactId>commons-collections4</artifactId>
<version>4.1</version> <version>4.4</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-codec</groupId> <groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId> <artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId> <artifactId>commons-math3</artifactId>
<version>3.5</version> <version>3.6.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.commons</groupId> <groupId>org.apache.commons</groupId>
@@ -352,6 +411,11 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.passay</groupId>
<artifactId>passay</artifactId>
<version>1.6.1</version>
</dependency>
<dependency> <dependency>
<groupId>redis.clients</groupId> <groupId>redis.clients</groupId>
@@ -364,43 +428,62 @@
<version>1.5.3</version> <version>1.5.3</version>
</dependency> </dependency>
<!-- upgrade jdom to 2.0.5 for performance reasons (https://github.com/hunterhacker/jdom/issues/112) -->
<dependency> <dependency>
<groupId>com.rometools</groupId> <groupId>com.rometools</groupId>
<artifactId>rome</artifactId> <artifactId>rome</artifactId>
<version>${rome.version}</version> <version>${rome.version}</version>
<exclusions> </dependency>
<exclusion> <dependency>
<artifactId>jdom</artifactId> <groupId>com.rometools</groupId>
<groupId>org.jdom</groupId> <artifactId>rome-modules</artifactId>
</exclusion> <version>${rome.version}</version>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.rometools</groupId> <groupId>com.rometools</groupId>
<artifactId>rome-opml</artifactId> <artifactId>rome-opml</artifactId>
<version>${rome.version}</version> <version>${rome.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.6</version>
</dependency>
<dependency>
<groupId>org.ahocorasick</groupId>
<artifactId>ahocorasick</artifactId>
<version>0.6.3</version>
</dependency>
<dependency> <dependency>
<groupId>org.jsoup</groupId> <groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId> <artifactId>jsoup</artifactId>
<version>1.8.2</version> <version>1.14.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.ibm.icu</groupId> <groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId> <artifactId>icu4j</artifactId>
<version>55.1</version> <version>70.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.sourceforge.cssparser</groupId> <groupId>net.sourceforge.cssparser</groupId>
<artifactId>cssparser</artifactId> <artifactId>cssparser</artifactId>
<version>0.9.16</version> <version>0.9.29</version>
</dependency>
<dependency>
<groupId>edu.uci.ics</groupId>
<artifactId>crawler4j</artifactId>
<version>3.5</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.google.gwt</groupId>
<artifactId>gwt-servlet</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>io.github.hakky54</groupId>
<artifactId>sslcontext-kickstart</artifactId>
<version>7.2.0</version>
</dependency> </dependency>
<dependency> <dependency>
@@ -418,17 +501,16 @@
<dependency> <dependency>
<groupId>com.h2database</groupId> <groupId>com.h2database</groupId>
<artifactId>h2</artifactId> <artifactId>h2</artifactId>
<version>1.3.176</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version> <version>8.0.28</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.postgresql</groupId> <groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId> <artifactId>postgresql</artifactId>
<version>9.4.1212</version> <version>42.4.1</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>net.sourceforge.jtds</groupId> <groupId>net.sourceforge.jtds</groupId>
@@ -437,16 +519,30 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>junit</groupId> <groupId>org.junit.jupiter</groupId>
<artifactId>junit</artifactId> <artifactId>junit-jupiter-engine</artifactId>
<version>4.12</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId> <artifactId>mockito-core</artifactId>
<version>2.0.11-beta</version> <scope>test</scope>
</dependency>
<dependency>
<groupId>org.mock-server</groupId>
<artifactId>mockserver-junit-jupiter</artifactId>
<version>5.13.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.dropwizard</groupId>
<artifactId>dropwizard-testing</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -1,86 +1,86 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>Swagger UI</title> <title>Swagger UI</title>
<link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/> <link href="css/typography.css" media="screen" rel="stylesheet" type="text/css" />
<link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/> <link href="css/reset.css" media="screen" rel="stylesheet" type="text/css" />
<link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/> <link href="css/screen.css" media="screen" rel="stylesheet" type="text/css" />
<link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/> <link href="css/reset.css" media="print" rel="stylesheet" type="text/css" />
<link href='css/screen.css' media='print' rel='stylesheet' type='text/css'/> <link href="css/screen.css" media="print" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="lib/shred.bundle.js"></script> <script type="text/javascript" src="lib/shred.bundle.js"></script>
<script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script> <script src="lib/jquery-1.8.0.min.js" type="text/javascript"></script>
<script src='lib/jquery.slideto.min.js' type='text/javascript'></script> <script src="lib/jquery.slideto.min.js" type="text/javascript"></script>
<script src='lib/jquery.wiggle.min.js' type='text/javascript'></script> <script src="lib/jquery.wiggle.min.js" type="text/javascript"></script>
<script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script> <script src="lib/jquery.ba-bbq.min.js" type="text/javascript"></script>
<script src='lib/handlebars-2.0.0.js' type='text/javascript'></script> <script src="lib/handlebars-2.0.0.js" type="text/javascript"></script>
<script src='lib/underscore-min.js' type='text/javascript'></script> <script src="lib/underscore-min.js" type="text/javascript"></script>
<script src='lib/backbone-min.js' type='text/javascript'></script> <script src="lib/backbone-min.js" type="text/javascript"></script>
<script src='lib/swagger-client.js' type='text/javascript'></script> <script src="lib/swagger-client.js" type="text/javascript"></script>
<script src='swagger-ui.js' type='text/javascript'></script> <script src="swagger-ui.js" type="text/javascript"></script>
<script src='lib/highlight.7.3.pack.js' type='text/javascript'></script> <script src="lib/highlight.7.3.pack.js" type="text/javascript"></script>
<script src='lib/marked.js' type='text/javascript'></script> <script src="lib/marked.js" type="text/javascript"></script>
<!-- enabling this will enable oauth2 implicit scope support --> <!-- enabling this will enable oauth2 implicit scope support -->
<script src='lib/swagger-oauth.js' type='text/javascript'></script> <script src="lib/swagger-oauth.js" type="text/javascript"></script>
<script type="text/javascript"> <script type="text/javascript">
$(function () { $(function () {
window.swaggerUi = new SwaggerUi({ window.swaggerUi = new SwaggerUi({
url: "./swagger.json", url: "./swagger.json",
dom_id: "swagger-ui-container", dom_id: "swagger-ui-container",
supportedSubmitMethods: ['get', 'post', 'put', 'delete'], supportedSubmitMethods: ["get", "post", "put", "delete"],
onComplete: function(swaggerApi, swaggerUi){ onComplete: function (swaggerApi, swaggerUi) {
if(typeof initOAuth == "function") { if (typeof initOAuth == "function") {
/* /*
initOAuth({ initOAuth({
clientId: "your-client-id", clientId: "your-client-id",
realm: "your-realms", realm: "your-realms",
appName: "your-app-name" appName: "your-app-name"
}); });
*/ */
} }
$('pre code').each(function(i, e) { $("pre code").each(function (i, e) {
hljs.highlightBlock(e) hljs.highlightBlock(e)
}); })
}, },
onFailure: function(data) { onFailure: function (data) {
log("Unable to Load SwaggerUI"); log("Unable to Load SwaggerUI")
}, },
docExpansion: "none", docExpansion: "none",
sorter : "alpha" sorter: "alpha",
}); })
$('#input_apiKey').change(function() { $("#input_apiKey").change(function () {
var key = $('#input_apiKey')[0].value; var key = $("#input_apiKey")[0].value
log("key: " + key); log("key: " + key)
if(key && key.trim() != "") { if (key && key.trim() != "") {
log("added key " + key); log("added key " + key)
window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query")); window.authorizations.add("key", new ApiKeyAuthorization("api_key", key, "query"))
} }
}) })
window.swaggerUi.load(); window.swaggerUi.load()
}); })
</script> </script>
</head> </head>
<body class="swagger-section"> <body class="swagger-section">
<div id='header'> <div id="header">
<div class="swagger-ui-wrap"> <div class="swagger-ui-wrap">
<a id="logo" href="http://swagger.wordnik.com">swagger</a> <a id="logo" href="http://swagger.wordnik.com">swagger</a>
<form id='api_selector'> <form id="api_selector">
<div class='input icon-btn'> <div class="input icon-btn">
<img id="show-pet-store-icon" src="images/pet_store_api.png" title="Show Swagger Petstore Example Apis"> <img id="show-pet-store-icon" src="images/pet_store_api.png" title="Show Swagger Petstore Example Apis" />
</div> </div>
<div class='input icon-btn'> <div class="input icon-btn">
<img id="show-wordnik-dev-icon" src="images/wordnik_api.png" title="Show Wordnik Developer Apis"> <img id="show-wordnik-dev-icon" src="images/wordnik_api.png" title="Show Wordnik Developer Apis" />
</div> </div>
<div class='input'><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text"/></div> <div class="input"><input placeholder="http://example.com/api" id="input_baseUrl" name="baseUrl" type="text" /></div>
<div class='input'><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text"/></div> <div class="input"><input placeholder="api_key" id="input_apiKey" name="apiKey" type="text" /></div>
<div class='input'><a id="explore" href="#">Explore</a></div> <div class="input"><a id="explore" href="#">Explore</a></div>
</form> </form>
</div> </div>
</div> </div>
<div id="message-bar" class="swagger-ui-wrap">&nbsp;</div> <div id="message-bar" class="swagger-ui-wrap">&nbsp;</div>
<div id="swagger-ui-container" class="swagger-ui-wrap"></div> <div id="swagger-ui-container" class="swagger-ui-wrap"></div>
</body> </body>
</html> </html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.5 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 556 B

After

Width:  |  Height:  |  Size: 505 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.2 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -41,7 +41,6 @@
"refresh" : "إعادة انعاش", "refresh" : "إعادة انعاش",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "الترتيب حسب التاريخ تصاعدي / تنازلي", "sort_by_asc_desc" : "الترتيب حسب التاريخ تصاعدي / تنازلي",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "العناوين فقط", "titles_only" : "العناوين فقط",
"expanded_view" : "عرض موسع", "expanded_view" : "عرض موسع",
"mark_all_as_read" : "اعتبر الكل مقروء", "mark_all_as_read" : "اعتبر الكل مقروء",
@@ -112,7 +111,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Change password", "change_password" : "Change password",
"confirm_password" : "Confirm password", "confirm_password" : "Confirm password",
"minimum_6_chars" : "Minimum 6 characters", "minimum_8_chars" : "Minimum 8 characters",
"passwords_do_not_match" : "Passwords do not match", "passwords_do_not_match" : "Passwords do not match",
"api_key" : "API key", "api_key" : "API key",
"api_key_not_generated" : "Not generated yet", "api_key_not_generated" : "Not generated yet",
@@ -175,7 +174,8 @@
"font_size" : "increase/decrease font size of the current entry ", "font_size" : "increase/decrease font size of the current entry ",
"go_to_all" : "go to the All view ", "go_to_all" : "go to the All view ",
"go_to_starred" : "go to the Starred view ", "go_to_starred" : "go to the Starred view ",
"feed_search" : "navigate to a subscription by entering the subscription name" "feed_search" : "navigate to a subscription by entering the subscription name",
"refresh": "refresh"
} }
} }
} }

View File

@@ -41,7 +41,6 @@
"refresh" : "Actualitzar", "refresh" : "Actualitzar",
"refresh_all" : "Força l'actualització de tots els canals", "refresh_all" : "Força l'actualització de tots els canals",
"sort_by_asc_desc" : "Ordenar per data asc/desc", "sort_by_asc_desc" : "Ordenar per data asc/desc",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Només títols", "titles_only" : "Només títols",
"expanded_view" : "Vista ampliada", "expanded_view" : "Vista ampliada",
"mark_all_as_read" : "Marcar tots llegits", "mark_all_as_read" : "Marcar tots llegits",
@@ -112,7 +111,7 @@
"email" : "Adreça electrònica", "email" : "Adreça electrònica",
"change_password" : "Canvia la contrasenya ", "change_password" : "Canvia la contrasenya ",
"confirm_password" : "Confirma la contrasenya", "confirm_password" : "Confirma la contrasenya",
"minimum_6_chars" : "Mínim de 6 caracters", "minimum_8_chars" : "Mínim de 8 caracters",
"passwords_do_not_match" : "Les contrasenyes no coincideixen", "passwords_do_not_match" : "Les contrasenyes no coincideixen",
"api_key" : "Clau API ", "api_key" : "Clau API ",
"api_key_not_generated" : "Encara no s'ha generat", "api_key_not_generated" : "Encara no s'ha generat",

View File

@@ -41,7 +41,6 @@
"refresh " : " Obnovit", "refresh " : " Obnovit",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc " : " Seřadit podle nejnovějšího/nejstaršího", "sort_by_asc_desc " : " Seřadit podle nejnovějšího/nejstaršího",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only " : " Zobrazit jenom titulky", "titles_only " : " Zobrazit jenom titulky",
"expanded_view " : " Rozšířený náhled", "expanded_view " : " Rozšířený náhled",
"mark_all_as_read " : " Označit vše jako přečtené", "mark_all_as_read " : " Označit vše jako přečtené",
@@ -112,7 +111,7 @@
"email " : " E-mail", "email " : " E-mail",
"change_password " : " Změnit heslo", "change_password " : " Změnit heslo",
"confirm_password " : " Potvrdit heslo", "confirm_password " : " Potvrdit heslo",
"minimum_6_chars " : " Minimum je 6 znaků", "minimum_8_chars " : " Minimum je 8 znaků",
"passwords_do_not_match " : " Hesla se neshodují", "passwords_do_not_match " : " Hesla se neshodují",
"api_key " : " API klíč", "api_key " : " API klíč",
"api_key_not_generated " : " Není vygenerován", "api_key_not_generated " : " Není vygenerován",

View File

@@ -41,7 +41,6 @@
"refresh" : "Adnewyddu", "refresh" : "Adnewyddu",
"refresh_all" : "Gorfodi ail-lwytho pob ffrwd", "refresh_all" : "Gorfodi ail-lwytho pob ffrwd",
"sort_by_asc_desc" : "Trefnu yn ôl dyddiad", "sort_by_asc_desc" : "Trefnu yn ôl dyddiad",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Teitlau yn unig", "titles_only" : "Teitlau yn unig",
"expanded_view" : "Golwg estynedig", "expanded_view" : "Golwg estynedig",
"mark_all_as_read" : "Nodi'r cyfan fel wedi ei ddarllen", "mark_all_as_read" : "Nodi'r cyfan fel wedi ei ddarllen",
@@ -112,7 +111,7 @@
"email" : "E-bost", "email" : "E-bost",
"change_password" : "Newid cyfrinair", "change_password" : "Newid cyfrinair",
"confirm_password" : "Cadarnhau cyfrinair", "confirm_password" : "Cadarnhau cyfrinair",
"minimum_6_chars" : "Isafswm 6 nod", "minimum_8_chars" : "Isafswm 8 nod",
"passwords_do_not_match" : "Mae'r cyfrineiriau yn wahanol", "passwords_do_not_match" : "Mae'r cyfrineiriau yn wahanol",
"api_key" : "Allwedd API", "api_key" : "Allwedd API",
"api_key_not_generated" : "Heb ei gynhyrchu eto", "api_key_not_generated" : "Heb ei gynhyrchu eto",

View File

@@ -41,7 +41,6 @@
"refresh" : "Opdater", "refresh" : "Opdater",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorter efter dato ny/gammel", "sort_by_asc_desc" : "Sorter efter dato ny/gammel",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Kun titler", "titles_only" : "Kun titler",
"expanded_view" : "Udvidet visning", "expanded_view" : "Udvidet visning",
"mark_all_as_read" : "Marker alle som læst", "mark_all_as_read" : "Marker alle som læst",
@@ -112,7 +111,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Skift adgangskode", "change_password" : "Skift adgangskode",
"confirm_password" : "Bekræft adgangskode", "confirm_password" : "Bekræft adgangskode",
"minimum_6_chars" : "Minimum 6 karakter", "minimum_8_chars" : "Minimum 8 karakter",
"passwords_do_not_match" : "Adgangskoderne er ikke ens", "passwords_do_not_match" : "Adgangskoderne er ikke ens",
"api_key" : "API nøgle", "api_key" : "API nøgle",
"api_key_not_generated" : "Ikke genereret endnu", "api_key_not_generated" : "Ikke genereret endnu",

View File

@@ -41,7 +41,6 @@
"refresh" : "Aktualisieren", "refresh" : "Aktualisieren",
"refresh_all" : "Erzwinge Aktualisierung aller Feeds", "refresh_all" : "Erzwinge Aktualisierung aller Feeds",
"sort_by_asc_desc" : "Nach Datum sortieren (auf-/absteigend)", "sort_by_asc_desc" : "Nach Datum sortieren (auf-/absteigend)",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Nur Überschriften", "titles_only" : "Nur Überschriften",
"expanded_view" : "Ausgedehnte Ansicht", "expanded_view" : "Ausgedehnte Ansicht",
"mark_all_as_read" : "Alle Artikel als gelesen markieren", "mark_all_as_read" : "Alle Artikel als gelesen markieren",
@@ -112,7 +111,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Passwort ändern", "change_password" : "Passwort ändern",
"confirm_password" : "Passwort bestätigen", "confirm_password" : "Passwort bestätigen",
"minimum_6_chars" : "Mindestens 6 Zeichen", "minimum_8_chars" : "Mindestens 8 Zeichen",
"passwords_do_not_match" : "Passwörter stimmen nicht überein", "passwords_do_not_match" : "Passwörter stimmen nicht überein",
"api_key" : "API Schlüssel", "api_key" : "API Schlüssel",
"api_key_not_generated" : "Noch nicht generiert", "api_key_not_generated" : "Noch nicht generiert",

View File

@@ -41,7 +41,6 @@
"refresh" : "Refresh", "refresh" : "Refresh",
"refresh_all" : "Force refresh all my feeds", "refresh_all" : "Force refresh all my feeds",
"sort_by_asc_desc" : "Sort by date asc/desc", "sort_by_asc_desc" : "Sort by date asc/desc",
"sort_by_abc_zyx" : "Sort alphabetically",
"titles_only" : "Titles only", "titles_only" : "Titles only",
"expanded_view" : "Expanded view", "expanded_view" : "Expanded view",
"mark_all_as_read" : "Mark all as read", "mark_all_as_read" : "Mark all as read",
@@ -112,9 +111,10 @@
"profile" : { "profile" : {
"user_name" : "User name", "user_name" : "User name",
"email" : "E-mail", "email" : "E-mail",
"current_password" : "Current Password",
"change_password" : "Change password", "change_password" : "Change password",
"confirm_password" : "Confirm password", "confirm_password" : "Confirm password",
"minimum_6_chars" : "Minimum 6 characters", "minimum_8_chars" : "Minimum 8 characters",
"passwords_do_not_match" : "Passwords do not match", "passwords_do_not_match" : "Passwords do not match",
"api_key" : "API key", "api_key" : "API key",
"api_key_not_generated" : "Not generated yet", "api_key_not_generated" : "Not generated yet",
@@ -177,7 +177,8 @@
"font_size" : "increase/decrease font size of the current entry", "font_size" : "increase/decrease font size of the current entry",
"go_to_all" : "go to the All view", "go_to_all" : "go to the All view",
"go_to_starred" : "go to the Starred view", "go_to_starred" : "go to the Starred view",
"feed_search" : "navigate to a subscription by entering the subscription name" "feed_search" : "navigate to a subscription by entering the subscription name",
"refresh": "refresh"
} }
} }
} }

View File

@@ -43,7 +43,6 @@
"refresh" : "Actualizar", "refresh" : "Actualizar",
"refresh_all" : "Forzar la actualización de todos mis canales.", "refresh_all" : "Forzar la actualización de todos mis canales.",
"sort_by_asc_desc" : "Ordenar por fecha asc/desc.", "sort_by_asc_desc" : "Ordenar por fecha asc/desc.",
"sort_by_abc_zyx" : "Ordenar alfabéticamente",
"titles_only" : "Sólo títulos", "titles_only" : "Sólo títulos",
"expanded_view" : "Vista expandida", "expanded_view" : "Vista expandida",
"mark_all_as_read" : "Marcar todos como leído", "mark_all_as_read" : "Marcar todos como leído",
@@ -114,7 +113,7 @@
"email" : "Correo electrónico", "email" : "Correo electrónico",
"change_password" : "Cambiar contraseña", "change_password" : "Cambiar contraseña",
"confirm_password" : "Confirmar contraseña", "confirm_password" : "Confirmar contraseña",
"minimum_6_chars" : "Mínimo 6 caracteres", "minimum_8_chars" : "Mínimo 8 caracteres",
"passwords_do_not_match" : "Las contraseñas no coinciden", "passwords_do_not_match" : "Las contraseñas no coinciden",
"api_key" : "Clave API", "api_key" : "Clave API",
"api_key_not_generated" : "No generado todavía", "api_key_not_generated" : "No generado todavía",

View File

@@ -41,7 +41,6 @@
"refresh" : "تازه‌سازی", "refresh" : "تازه‌سازی",
"refresh_all" : "مجبورکردن تازه‌سازی همهٔ خوراک‌ها", "refresh_all" : "مجبورکردن تازه‌سازی همهٔ خوراک‌ها",
"sort_by_asc_desc" : "مرتب‌کردن بر اساس تاریخ به‌صورت صعودی/نزولی", "sort_by_asc_desc" : "مرتب‌کردن بر اساس تاریخ به‌صورت صعودی/نزولی",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "فقط عنوان‌ها", "titles_only" : "فقط عنوان‌ها",
"expanded_view" : "نمای گسترش‌یافته", "expanded_view" : "نمای گسترش‌یافته",
"mark_all_as_read" : "علامت‌گذاری تمامی مطالب به‌عنوان خوانده‌شده", "mark_all_as_read" : "علامت‌گذاری تمامی مطالب به‌عنوان خوانده‌شده",
@@ -112,7 +111,7 @@
"email" : "رایانامه", "email" : "رایانامه",
"change_password" : "تغییر گذرواژه", "change_password" : "تغییر گذرواژه",
"confirm_password" : "تأیید گذرواژه", "confirm_password" : "تأیید گذرواژه",
"minimum_6_chars" : "حداقل ۶ نویسه", "minimum_8_chars" : "حداقل ۸ نویسه",
"passwords_do_not_match" : "گذرواژه‌ها انطباق ندارند", "passwords_do_not_match" : "گذرواژه‌ها انطباق ندارند",
"api_key" : "کلید API", "api_key" : "کلید API",
"api_key_not_generated" : "هنوز ایجاد نشده‌است", "api_key_not_generated" : "هنوز ایجاد نشده‌است",

View File

@@ -41,7 +41,6 @@
"refresh" : "Päivitä", "refresh" : "Päivitä",
"refresh_all" : "Pakota kaikkien syötteiden päivitys", "refresh_all" : "Pakota kaikkien syötteiden päivitys",
"sort_by_asc_desc" : "Järjestä päivämäärän mukaan nousevasti/laskevasti", "sort_by_asc_desc" : "Järjestä päivämäärän mukaan nousevasti/laskevasti",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Näytä vain otsikot", "titles_only" : "Näytä vain otsikot",
"expanded_view" : "Laajennettu näkymä", "expanded_view" : "Laajennettu näkymä",
"mark_all_as_read" : "Merkitse kaikki luetuiksi", "mark_all_as_read" : "Merkitse kaikki luetuiksi",
@@ -112,7 +111,7 @@
"email" : "Sähköposti", "email" : "Sähköposti",
"change_password" : "Vaihda salasana", "change_password" : "Vaihda salasana",
"confirm_password" : "Vahvista uusi salasana", "confirm_password" : "Vahvista uusi salasana",
"minimum_6_chars" : "Vähintään 6 merkkiä", "minimum_8_chars" : "Vähintään 8 merkkiä",
"passwords_do_not_match" : "Salasanat eivät täsmää", "passwords_do_not_match" : "Salasanat eivät täsmää",
"api_key" : "API-avain", "api_key" : "API-avain",
"api_key_not_generated" : "API-avainta ei ole vielä luotu", "api_key_not_generated" : "API-avainta ei ole vielä luotu",

View File

@@ -41,7 +41,6 @@
"refresh" : "Rafraîchir", "refresh" : "Rafraîchir",
"refresh_all" : "Rafraîchir tous les flux", "refresh_all" : "Rafraîchir tous les flux",
"sort_by_asc_desc" : "Trier par date croissante/décroissante", "sort_by_asc_desc" : "Trier par date croissante/décroissante",
"sort_by_abc_zyx" : "Trier par ordre alphabétique",
"titles_only" : "Titres uniquement", "titles_only" : "Titres uniquement",
"expanded_view" : "Vue étendue", "expanded_view" : "Vue étendue",
"mark_all_as_read" : "Tout marquer comme lu", "mark_all_as_read" : "Tout marquer comme lu",
@@ -110,9 +109,10 @@
"profile" : { "profile" : {
"user_name" : "Nom", "user_name" : "Nom",
"email" : "E-mail", "email" : "E-mail",
"current_password" : "Mot de passe actuel",
"change_password" : "Changer de mot de passe", "change_password" : "Changer de mot de passe",
"confirm_password" : "Confirmer le mot de passe", "confirm_password" : "Confirmer le mot de passe",
"minimum_6_chars" : "Minimum 6 caractères", "minimum_8_chars" : "Minimum 8 caractères",
"passwords_do_not_match" : "Les mots de passe ne correspondent pas", "passwords_do_not_match" : "Les mots de passe ne correspondent pas",
"api_key" : "Clé API", "api_key" : "Clé API",
"api_key_not_generated" : "Pas encore générée", "api_key_not_generated" : "Pas encore générée",

View File

@@ -41,7 +41,6 @@
"refresh" : "Actualizar", "refresh" : "Actualizar",
"refresh_all" : "Forzar a actualización de todas as fontes ", "refresh_all" : "Forzar a actualización de todas as fontes ",
"sort_by_asc_desc" : "Ordenar por data asc/desc", "sort_by_asc_desc" : "Ordenar por data asc/desc",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Só títulos", "titles_only" : "Só títulos",
"expanded_view" : "Vista expandida", "expanded_view" : "Vista expandida",
"mark_all_as_read" : "Marcar todos como lidos", "mark_all_as_read" : "Marcar todos como lidos",
@@ -112,7 +111,7 @@
"email" : "Correo", "email" : "Correo",
"change_password" : "Cambiar contrasinal", "change_password" : "Cambiar contrasinal",
"confirm_password" : "Confirmar contrasinal", "confirm_password" : "Confirmar contrasinal",
"minimum_6_chars" : "Mínimo 6 caracteres", "minimum_8_chars" : "Mínimo 8 caracteres",
"passwords_do_not_match" : "Os contrasinais non coinciden no coinciden", "passwords_do_not_match" : "Os contrasinais non coinciden no coinciden",
"api_key" : "Chave API", "api_key" : "Chave API",
"api_key_not_generated" : "Non xerado todavía", "api_key_not_generated" : "Non xerado todavía",

View File

@@ -41,7 +41,6 @@
"refresh" : "واج‌أری", "refresh" : "واج‌أری",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "تاریخˇ سر دچئن", "sort_by_asc_desc" : "تاریخˇ سر دچئن",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "خالی تیتران", "titles_only" : "خالی تیتران",
"expanded_view" : "واشاده نما", "expanded_view" : "واشاده نما",
"mark_all_as_read" : "همه‌ته مطالبه چاکون بخانده", "mark_all_as_read" : "همه‌ته مطالبه چاکون بخانده",
@@ -112,7 +111,7 @@
"email" : "ایمئل", "email" : "ایمئل",
"change_password" : "رمزه عوضأگودن", "change_password" : "رمزه عوضأگودن",
"confirm_password" : "رمزه تأیید گودن", "confirm_password" : "رمزه تأیید گودن",
"minimum_6_chars" : "ناقلن 6 کارکتر", "minimum_8_chars" : "ناقلن 8 کارکتر",
"passwords_do_not_match" : "رمزان کس‌به‌کسه نخانید", "passwords_do_not_match" : "رمزان کس‌به‌کسه نخانید",
"api_key" : "کلید API", "api_key" : "کلید API",
"api_key_not_generated" : "هلئه چاگوده نبؤ", "api_key_not_generated" : "هلئه چاگوده نبؤ",

View File

@@ -41,7 +41,6 @@
"refresh" : "Frissítés", "refresh" : "Frissítés",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Rendezés időrend szerint", "sort_by_asc_desc" : "Rendezés időrend szerint",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Csak cím", "titles_only" : "Csak cím",
"expanded_view" : "Részletes nézet", "expanded_view" : "Részletes nézet",
"mark_all_as_read" : "Az összes megjelölése olvasottként", "mark_all_as_read" : "Az összes megjelölése olvasottként",
@@ -112,7 +111,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Jelszó megváltoztatás", "change_password" : "Jelszó megváltoztatás",
"confirm_password" : "Jelszó megerősítése", "confirm_password" : "Jelszó megerősítése",
"minimum_6_chars" : "Legalább 8 karakter", "minimum_8_chars" : "Legalább 8 karakter",
"passwords_do_not_match" : "A jelszavak nem egyeznek", "passwords_do_not_match" : "A jelszavak nem egyeznek",
"api_key" : "API kulcs", "api_key" : "API kulcs",
"api_key_not_generated" : "Még nincsen generálva", "api_key_not_generated" : "Még nincsen generálva",

View File

@@ -41,7 +41,6 @@
"refresh" : "Segarkan", "refresh" : "Segarkan",
"refresh_all" : "Memaksa menyegarkan semua umpan saya", "refresh_all" : "Memaksa menyegarkan semua umpan saya",
"sort_by_asc_desc" : "Urutkan menurut tanggal asc/desc", "sort_by_asc_desc" : "Urutkan menurut tanggal asc/desc",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Hanya Judul", "titles_only" : "Hanya Judul",
"expanded_view" : "Penglihatan diperluas", "expanded_view" : "Penglihatan diperluas",
"mark_all_as_read" : "Tandai semua sebagai telah dibaca", "mark_all_as_read" : "Tandai semua sebagai telah dibaca",
@@ -114,7 +113,7 @@
"email" : "Surel", "email" : "Surel",
"change_password" : "Ganti kata sandi", "change_password" : "Ganti kata sandi",
"confirm_password" : "Konfirmasi kata sandi", "confirm_password" : "Konfirmasi kata sandi",
"minimum_6_chars" : "Minimal 6 karakter", "minimum_8_chars" : "Minimal 8 karakter",
"passwords_do_not_match" : "Kata sandi tidak sesuai", "passwords_do_not_match" : "Kata sandi tidak sesuai",
"api_key" : "kunci API", "api_key" : "kunci API",
"api_key_not_generated" : "Belum menghasilkan", "api_key_not_generated" : "Belum menghasilkan",

View File

@@ -41,7 +41,6 @@
"refresh" : "Aggiorna", "refresh" : "Aggiorna",
"refresh_all" : "Forza l'aggiornamento di tutti i feed", "refresh_all" : "Forza l'aggiornamento di tutti i feed",
"sort_by_asc_desc" : "Ordina per data crescente/decrescente", "sort_by_asc_desc" : "Ordina per data crescente/decrescente",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Solo i titoli", "titles_only" : "Solo i titoli",
"expanded_view" : "Espandi", "expanded_view" : "Espandi",
"mark_all_as_read" : "Segna tutti come già letti", "mark_all_as_read" : "Segna tutti come già letti",
@@ -57,8 +56,8 @@
"donate" : "Dona" "donate" : "Dona"
}, },
"view" : { "view" : {
"entry_source" : "da", "entry_source" : "da ",
"entry_author" : "di", "entry_author" : "di ",
"error_while_loading_feed" : "Si è verificato un errore durante il caricamento del feed", "error_while_loading_feed" : "Si è verificato un errore durante il caricamento del feed",
"keep_unread" : "Mantieni come da leggere", "keep_unread" : "Mantieni come da leggere",
"no_unread_items" : "non contiene elementi da leggere", "no_unread_items" : "non contiene elementi da leggere",
@@ -82,9 +81,9 @@
}, },
"appearance" : "Aspetto", "appearance" : "Aspetto",
"scroll_speed" : "Velocità di scorrimento quando navighi tra i feed (in millisecondi)", "scroll_speed" : "Velocità di scorrimento quando navighi tra i feed (in millisecondi)",
"scroll_speed_help" : "Imposta su 0 per disabilitare", "scroll_speed_help" : "imposta su 0 per disabilitare",
"theme" : "Tema", "theme" : "Tema",
"submit_your_theme" : "Sottoponi il tuo tema", "submit_your_theme" : "Inserisci il tuo tema",
"custom_css" : "CSS personalizzato" "custom_css" : "CSS personalizzato"
}, },
"details" : { "details" : {
@@ -114,7 +113,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Cambia password", "change_password" : "Cambia password",
"confirm_password" : "Conferma password", "confirm_password" : "Conferma password",
"minimum_6_chars" : "Minimo 6 caratteri", "minimum_8_chars" : "Minimo 8 caratteri",
"passwords_do_not_match" : "Le password non corrispondono", "passwords_do_not_match" : "Le password non corrispondono",
"api_key" : "chiave API", "api_key" : "chiave API",
"api_key_not_generated" : "Non ancora generata", "api_key_not_generated" : "Non ancora generata",
@@ -130,7 +129,7 @@
"line1" : "CommaFeed è basato su JAX-RS e AngularJS. Pertanto è disponibile una REST API.", "line1" : "CommaFeed è basato su JAX-RS e AngularJS. Pertanto è disponibile una REST API.",
"link_to_documentation" : "Link alla documentazione." "link_to_documentation" : "Link alla documentazione."
}, },
"keyboard_shortcuts" : "Scorciatoie da tastiera", "keyboard_shortcuts" : "Scorciatoie da tastiera",
"version" : "Versione di CommaFeed", "version" : "Versione di CommaFeed",
"line1_prefix" : "CommaFeed è un progetto open source. Trovi i sorgenti su ", "line1_prefix" : "CommaFeed è un progetto open source. Trovi i sorgenti su ",
"line1_suffix" : ".", "line1_suffix" : ".",
@@ -148,12 +147,12 @@
"subscribe_bookmarklet" : "Aggiungi la sottoscrizione ai segnalibri (clicca)", "subscribe_bookmarklet" : "Aggiungi la sottoscrizione ai segnalibri (clicca)",
"subscribe_bookmarklet_asc" : "Prima i vecchi", "subscribe_bookmarklet_asc" : "Prima i vecchi",
"subscribe_bookmarklet_desc" : "Prima i recenti", "subscribe_bookmarklet_desc" : "Prima i recenti",
"next_unread_bookmarklet" : "Bookmarklet al prossimo elemento da leggere (trascinalo nella barra dei segnalibri)" "next_unread_bookmarklet" : "Segnalibro al prossimo elemento da leggere (trascinalo nella barra dei segnalibri)"
}, },
"translation" : { "translation" : {
"value" : "Traduzioni", "value" : "Traduzioni",
"message" : "Abbiamo bisogno del tuo aiuto per tradurre CommaFeed.", "message" : "Abbiamo bisogno del tuo aiuto per tradurre CommaFeed.",
"link" : "Scopri come aiutarci nella traduzioni." "link" : "Scopri come aiutarci nelle traduzioni."
}, },
"announcements" : "Annunci", "announcements" : "Annunci",
"shortcuts" : { "shortcuts" : {
@@ -177,7 +176,8 @@
"font_size" : "aumenta/decrementa la dimensione del font per la voce corrente", "font_size" : "aumenta/decrementa la dimensione del font per la voce corrente",
"go_to_all" : "vai alla vista Tutti", "go_to_all" : "vai alla vista Tutti",
"go_to_starred" : "vai alla vista Preferiti", "go_to_starred" : "vai alla vista Preferiti",
"feed_search" : "raggiungi una sottoscrizione scrivendo il suo nome" "feed_search" : "raggiungi una sottoscrizione scrivendo il suo nome",
"refresh" : "aggiorna"
} }
} }
} }

View File

@@ -3,7 +3,7 @@
"save" : "保存", "save" : "保存",
"cancel" : "取り消し", "cancel" : "取り消し",
"delete" : "削除", "delete" : "削除",
"required" : "Required", "required" : "必須",
"download" : "ダウンロード", "download" : "ダウンロード",
"link" : "リンク", "link" : "リンク",
"bookmark" : "ブックマーク", "bookmark" : "ブックマーク",
@@ -15,7 +15,7 @@
"import" : "インポート", "import" : "インポート",
"new_category" : "新しいカテゴリー", "new_category" : "新しいカテゴリー",
"all" : "全て", "all" : "全て",
"starred" : "スター付" "starred" : "スター付"
}, },
"subscribe" : { "subscribe" : {
"feed_url" : "フィードURL", "feed_url" : "フィードURL",
@@ -40,8 +40,7 @@
"next_entry" : "次のエントリー", "next_entry" : "次のエントリー",
"refresh" : "更新", "refresh" : "更新",
"refresh_all" : "全てのフィードを更新", "refresh_all" : "全てのフィードを更新",
"sort_by_asc_desc" : "昇順/降順にソート", "sort_by_asc_desc" : "日時でソート",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "タイトルのみ", "titles_only" : "タイトルのみ",
"expanded_view" : "拡張ビュー", "expanded_view" : "拡張ビュー",
"mark_all_as_read" : "全て既読にする", "mark_all_as_read" : "全て既読にする",
@@ -101,8 +100,8 @@
"feed_url" : "フィードURL", "feed_url" : "フィードURL",
"generate_api_key_first" : "最初にあなたのAPIキーを生成して下さい。", "generate_api_key_first" : "最初にあなたのAPIキーを生成して下さい。",
"unsubscribe" : "購読解除", "unsubscribe" : "購読解除",
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ", "unsubscribe_confirmation" : "フィードの購読を解除してよろしいですか?",
"delete_category_confirmation" : "Are you sure you want to delete this category? ", "delete_category_confirmation" : "カテゴリーを削除してよろしいですか?",
"category_details" : "カテゴリー詳細", "category_details" : "カテゴリー詳細",
"tag_details" : "タグ詳細", "tag_details" : "タグ詳細",
"parent_category" : "親カテゴリー" "parent_category" : "親カテゴリー"
@@ -112,15 +111,15 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "パスワードの変更", "change_password" : "パスワードの変更",
"confirm_password" : "変更パスワードの確認", "confirm_password" : "変更パスワードの確認",
"minimum_6_chars" : "6文字以上", "minimum_8_chars" : "8文字以上",
"passwords_do_not_match" : "パスワードが一致しません", "passwords_do_not_match" : "パスワードが一致しません",
"api_key" : "APIキー", "api_key" : "APIキー",
"api_key_not_generated" : "APIキーが生成されていません", "api_key_not_generated" : "APIキーが生成されていません",
"generate_new_api_key" : "新しいAPIキーを生成", "generate_new_api_key" : "新しいAPIキーを生成",
"generate_new_api_key_info" : "パスワード変更新しいAPIキーが生成されます", "generate_new_api_key_info" : "パスワード変更すると新しいAPIキーが生成されます",
"opml_export" : "OPMLエクスポート", "opml_export" : "OPMLエクスポート",
"delete_account" : "アカウント削除", "delete_account" : "アカウント削除",
"delete_account_confirmation" : "Delete your acount? There's no turning back! " "delete_account_confirmation" : "アカウントを削除してよろしいですか? 削除すると戻すことはできません!"
}, },
"about" : { "about" : {
"rest_api" : { "rest_api" : {
@@ -150,10 +149,10 @@
}, },
"translation" : { "translation" : {
"value" : "翻訳", "value" : "翻訳",
"message" : "CommaFeedの翻訳に助けが必要です", "message" : "CommaFeedの翻訳にご協力ください",
"link" : "どうやって翻訳に貢献できるか見て下さい。" "link" : "翻訳にあたっての案内はこちら"
}, },
"announcements" : "Announcements", "announcements" : "お知らせ",
"shortcuts" : { "shortcuts" : {
"mouse_middleclick" : "中クリック", "mouse_middleclick" : "中クリック",
"open_next_entry" : "次のエントリーを開く", "open_next_entry" : "次のエントリーを開く",
@@ -171,7 +170,7 @@
"mark_current_entry" : "現在のエントリーを既読/未読にする", "mark_current_entry" : "現在のエントリーを既読/未読にする",
"mark_all_as_read" : "全エントリーを既読にする", "mark_all_as_read" : "全エントリーを既読にする",
"open_in_new_tab_mark_as_read" : "エントリーを既読にして新しいタブで開く", "open_in_new_tab_mark_as_read" : "エントリーを既読にして新しいタブで開く",
"fullscreen" : "フルスクリーントグル", "fullscreen" : "フルスクリーン切り替え",
"font_size" : "現在のエントリーのフォントサイズを大きく/小さくする", "font_size" : "現在のエントリーのフォントサイズを大きく/小さくする",
"go_to_all" : "All viewに変更する", "go_to_all" : "All viewに変更する",
"go_to_starred" : "スター付きviewに変更する", "go_to_starred" : "スター付きviewに変更する",

View File

@@ -41,7 +41,6 @@
"refresh" : "새로고침", "refresh" : "새로고침",
"refresh_all" : "모든 피드를 강제로 새로고침", "refresh_all" : "모든 피드를 강제로 새로고침",
"sort_by_asc_desc" : "날짜별 오름차/내림차순 정렬", "sort_by_asc_desc" : "날짜별 오름차/내림차순 정렬",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "제목만 표시하기", "titles_only" : "제목만 표시하기",
"expanded_view" : "Expanded View", "expanded_view" : "Expanded View",
"mark_all_as_read" : "읽음으로 표시", "mark_all_as_read" : "읽음으로 표시",
@@ -112,7 +111,7 @@
"email" : "이메일", "email" : "이메일",
"change_password" : "비밀번호 변경", "change_password" : "비밀번호 변경",
"confirm_password" : "비밀번호 확인", "confirm_password" : "비밀번호 확인",
"minimum_6_chars" : "최소 6개의 문자가 필요합니다.", "minimum_8_chars" : "최소 8개의 문자가 필요합니다.",
"passwords_do_not_match" : "비밀번호가 일치하지 않습니다.", "passwords_do_not_match" : "비밀번호가 일치하지 않습니다.",
"api_key" : "API key", "api_key" : "API key",
"api_key_not_generated" : "아직 API Key가 생성되지 않았습니다.", "api_key_not_generated" : "아직 API Key가 생성되지 않았습니다.",

View File

@@ -41,7 +41,6 @@
"refresh" : "Refresh", "refresh" : "Refresh",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Aturkan mengikut tarikh (baru/lama)", "sort_by_asc_desc" : "Aturkan mengikut tarikh (baru/lama)",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Tajuk sahaja", "titles_only" : "Tajuk sahaja",
"expanded_view" : "Wide view", "expanded_view" : "Wide view",
"mark_all_as_read" : "Tanda kesemuanya telah dibaca", "mark_all_as_read" : "Tanda kesemuanya telah dibaca",
@@ -112,7 +111,7 @@
"email" : "E-mel", "email" : "E-mel",
"change_password" : "Tukar kata laluan", "change_password" : "Tukar kata laluan",
"confirm_password" : "Sahkan kata laluan", "confirm_password" : "Sahkan kata laluan",
"minimum_6_chars" : "Minimum 6 huruf", "minimum_8_chars" : "Minimum 8 huruf",
"passwords_do_not_match" : "Kata laluan tidak sama", "passwords_do_not_match" : "Kata laluan tidak sama",
"api_key" : "API key", "api_key" : "API key",
"api_key_not_generated" : "Belum dijana", "api_key_not_generated" : "Belum dijana",

View File

@@ -41,7 +41,6 @@
"refresh" : "Oppdater", "refresh" : "Oppdater",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorter etter dato ny/gammel", "sort_by_asc_desc" : "Sorter etter dato ny/gammel",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Kun titler", "titles_only" : "Kun titler",
"expanded_view" : "Utvidet visning", "expanded_view" : "Utvidet visning",
"mark_all_as_read" : "Merk alle som lest", "mark_all_as_read" : "Merk alle som lest",
@@ -112,7 +111,7 @@
"email" : "E-post", "email" : "E-post",
"change_password" : "Endre passord", "change_password" : "Endre passord",
"confirm_password" : "Bekreft passord", "confirm_password" : "Bekreft passord",
"minimum_6_chars" : "Minimum 6 tegn", "minimum_8_chars" : "Minimum 8 tegn",
"passwords_do_not_match" : "Passordene er ikke like", "passwords_do_not_match" : "Passordene er ikke like",
"api_key" : "API-nøkkel", "api_key" : "API-nøkkel",
"api_key_not_generated" : "Har ikke blitt generert", "api_key_not_generated" : "Har ikke blitt generert",

View File

@@ -41,7 +41,6 @@
"refresh" : "Vernieuwen", "refresh" : "Vernieuwen",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorteer op datum opl/afl", "sort_by_asc_desc" : "Sorteer op datum opl/afl",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Alleen titels", "titles_only" : "Alleen titels",
"expanded_view" : "Uitgebreide weergave", "expanded_view" : "Uitgebreide weergave",
"mark_all_as_read" : "Markeer alles als gelezen", "mark_all_as_read" : "Markeer alles als gelezen",
@@ -112,7 +111,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Verander wachtwoord", "change_password" : "Verander wachtwoord",
"confirm_password" : "Bevestig wachtwoord", "confirm_password" : "Bevestig wachtwoord",
"minimum_6_chars" : "Minimaal 6 tekens", "minimum_8_chars" : "Minimaal 8 tekens",
"passwords_do_not_match" : "Wachtwoorden komen niet overeen", "passwords_do_not_match" : "Wachtwoorden komen niet overeen",
"api_key" : "API sleutel", "api_key" : "API sleutel",
"api_key_not_generated" : "Nog niet gegenereerd", "api_key_not_generated" : "Nog niet gegenereerd",

View File

@@ -41,7 +41,6 @@
"refresh" : "Oppdater", "refresh" : "Oppdater",
"refresh_all" : "Force refresh all my feeds ", "refresh_all" : "Force refresh all my feeds ",
"sort_by_asc_desc" : "Sorter etter dato ny/gamal", "sort_by_asc_desc" : "Sorter etter dato ny/gamal",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Berre titlar", "titles_only" : "Berre titlar",
"expanded_view" : "Utvida visning", "expanded_view" : "Utvida visning",
"mark_all_as_read" : "Merk alle som lesne", "mark_all_as_read" : "Merk alle som lesne",
@@ -112,7 +111,7 @@
"email" : "E-post", "email" : "E-post",
"change_password" : "Endre passord", "change_password" : "Endre passord",
"confirm_password" : "Stadfest passord", "confirm_password" : "Stadfest passord",
"minimum_6_chars" : "Minimum 6 teikn", "minimum_8_chars" : "Minimum 8 teikn",
"passwords_do_not_match" : "Passorda er usamde", "passwords_do_not_match" : "Passorda er usamde",
"api_key" : "API-nykel", "api_key" : "API-nykel",
"api_key_not_generated" : "Har ikkje vorte generert", "api_key_not_generated" : "Har ikkje vorte generert",

View File

@@ -41,7 +41,6 @@
"refresh" : "Odswież", "refresh" : "Odswież",
"refresh_all" : "Odśwież teraz wszystkie kanały ", "refresh_all" : "Odśwież teraz wszystkie kanały ",
"sort_by_asc_desc" : "Sortuj od najnowszego/najstarszego", "sort_by_asc_desc" : "Sortuj od najnowszego/najstarszego",
"sort_by_abc_zyx" : "Sortuj alfabetycznie",
"titles_only" : "Widok listy", "titles_only" : "Widok listy",
"expanded_view" : "Widok rozwinięty", "expanded_view" : "Widok rozwinięty",
"mark_all_as_read" : "Oznacz wszystko jako przeczytane", "mark_all_as_read" : "Oznacz wszystko jako przeczytane",
@@ -114,7 +113,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Zmień hasło", "change_password" : "Zmień hasło",
"confirm_password" : "Potwierdź hasło", "confirm_password" : "Potwierdź hasło",
"minimum_6_chars" : "Minimum 6 znaków", "minimum_8_chars" : "Minimum 8 znaków",
"passwords_do_not_match" : "Hasła nie pasują do siebie", "passwords_do_not_match" : "Hasła nie pasują do siebie",
"api_key" : "Klucz API", "api_key" : "Klucz API",
"api_key_not_generated" : "Jeszcze niewygenerowany", "api_key_not_generated" : "Jeszcze niewygenerowany",

View File

@@ -41,7 +41,6 @@
"refresh" : "Atualizar", "refresh" : "Atualizar",
"refresh_all" : "Forçar atualização de todos os meus feeds", "refresh_all" : "Forçar atualização de todos os meus feeds",
"sort_by_asc_desc" : "Ordenar por data cresc/decres", "sort_by_asc_desc" : "Ordenar por data cresc/decres",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Somente títulos", "titles_only" : "Somente títulos",
"expanded_view" : "Modo Expandido", "expanded_view" : "Modo Expandido",
"mark_all_as_read" : "Marcar tudo como lido", "mark_all_as_read" : "Marcar tudo como lido",
@@ -63,8 +62,8 @@
"keep_unread" : "Manter como não lido", "keep_unread" : "Manter como não lido",
"no_unread_items" : "não tem itens não lidos.", "no_unread_items" : "não tem itens não lidos.",
"mark_up_to_here" : "Marcar como lido até aqui", "mark_up_to_here" : "Marcar como lido até aqui",
"search_for" : "searching for: ", "search_for" : "Procurando por: ",
"no_search_results" : "No match found for the requested keywords " "no_search_results" : "Nenhum resultado encontrado para a pesquisa."
}, },
"feedsearch" : { "feedsearch" : {
"hint" : "Digite o nome de uma Inscrição...", "hint" : "Digite o nome de uma Inscrição...",
@@ -81,8 +80,8 @@
"scroll_marks" : "No modo expandido, percorrer os itens marca-os como lidos" "scroll_marks" : "No modo expandido, percorrer os itens marca-os como lidos"
}, },
"appearance" : "Aparência", "appearance" : "Aparência",
"scroll_speed" : "Scrolling speed when navigating between entries (in milliseconds) ", "scroll_speed" : "Velocidade de rolagem enquanto navega pelos itens.",
"scroll_speed_help" : "set to 0 to disable ", "scroll_speed_help" : "Deixe em 0 para desabilitar ",
"theme" : "Tema", "theme" : "Tema",
"submit_your_theme" : "Envie seu tema", "submit_your_theme" : "Envie seu tema",
"custom_css" : "CSS personalizado" "custom_css" : "CSS personalizado"
@@ -95,24 +94,24 @@
"category" : "Categoria", "category" : "Categoria",
"position" : "Posição", "position" : "Posição",
"last_refresh" : "Última atualização", "last_refresh" : "Última atualização",
"message" : "Last refresh message ", "message" : "Ultima mensagem de atualização ",
"next_refresh" : "Próxima atualização", "next_refresh" : "Próxima atualização",
"queued_for_refresh" : "Na fila para atualizar", "queued_for_refresh" : "Na fila para atualizar",
"feed_url" : "URL do feed", "feed_url" : "URL do feed",
"generate_api_key_first" : "Gerar uma chave de API em seu perfil primeiro.", "generate_api_key_first" : "Gerar uma chave de API em seu perfil primeiro.",
"unsubscribe" : "Cancelar inscrição", "unsubscribe" : "Cancelar inscrição",
"unsubscribe_confirmation" : "Are you sure you want to unsubscribe from this feed? ", "unsubscribe_confirmation" : "Você tem certeza de que deseja se desinscrever desse feed? ",
"delete_category_confirmation" : "Are you sure you want to delete this category? ", "delete_category_confirmation" : "Você tem certeza de que deseja deletar essa categoria? ",
"category_details" : "Detalhes da categoria", "category_details" : "Detalhes da categoria",
"tag_details" : "Tag details ", "tag_details" : "Detalhes da tag ",
"parent_category" : "Categoria pai" "parent_category" : "Categoria principal"
}, },
"profile" : { "profile" : {
"user_name" : "Nome de usuário", "user_name" : "Nome de usuário",
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Trocar senha", "change_password" : "Trocar senha",
"confirm_password" : "Confirmar senha", "confirm_password" : "Confirmar senha",
"minimum_6_chars" : "Mínimo de 6 caracteres", "minimum_8_chars" : "Mínimo de 8 caracteres",
"passwords_do_not_match" : "Senhas não conferem", "passwords_do_not_match" : "Senhas não conferem",
"api_key" : "Chave de API", "api_key" : "Chave de API",
"api_key_not_generated" : "Ainda não gerada", "api_key_not_generated" : "Ainda não gerada",
@@ -120,7 +119,7 @@
"generate_new_api_key_info" : "Mudar a senha irá gerar uma nova chave de API", "generate_new_api_key_info" : "Mudar a senha irá gerar uma nova chave de API",
"opml_export" : "Exportar OPML", "opml_export" : "Exportar OPML",
"delete_account" : "Excluir conta", "delete_account" : "Excluir conta",
"delete_account_confirmation" : "Delete your acount? There's no turning back! " "delete_account_confirmation" : "Deseja excluir sua conta? Não há como desfazer essa ação! "
}, },
"about" : { "about" : {
"rest_api" : { "rest_api" : {
@@ -130,7 +129,7 @@
}, },
"keyboard_shortcuts" : "Atalhos de teclado", "keyboard_shortcuts" : "Atalhos de teclado",
"version" : "CommaFeed versão", "version" : "CommaFeed versão",
"line1_prefix" : "CommaFeed é um projeto de código livre. Fontes estão hospedados em ", "line1_prefix" : "CommaFeed é um projeto de código livre. As sources estão hospedados em ",
"line1_suffix" : ".", "line1_suffix" : ".",
"line2_prefix" : "Se você encontrar um problema, por favor relate-o na página de problemas do projeto ", "line2_prefix" : "Se você encontrar um problema, por favor relate-o na página de problemas do projeto ",
"line2_suffix" : ".", "line2_suffix" : ".",
@@ -144,13 +143,13 @@
"firefox_extension" : "Extensão para o Firefox", "firefox_extension" : "Extensão para o Firefox",
"opera_extension" : "Extensão para o Opera", "opera_extension" : "Extensão para o Opera",
"subscribe_bookmarklet" : "Bookmarklet para adicionar inscrição (clique)", "subscribe_bookmarklet" : "Bookmarklet para adicionar inscrição (clique)",
"subscribe_bookmarklet_asc" : "Mais velhas primeiro", "subscribe_bookmarklet_asc" : "Mais antigas primeiro",
"subscribe_bookmarklet_desc" : "Mais novas primeiro", "subscribe_bookmarklet_desc" : "Mais recentes primeiro",
"next_unread_bookmarklet" : "Bookmarklet para o próximo item não lido (arraste para a barra de favoritos)" "next_unread_bookmarklet" : "Bookmarklet para o próximo item não lido (arraste para a barra de favoritos)"
}, },
"translation" : { "translation" : {
"value" : "Tradução", "value" : "Tradução",
"message" : "Precisamos de sua ajuda para traduzir CommaFeed.", "message" : "Precisamos de sua ajuda para traduzir o CommaFeed.",
"link" : "Veja como contribuir com traduções." "link" : "Veja como contribuir com traduções."
}, },
"announcements" : "Anúncios", "announcements" : "Anúncios",
@@ -178,4 +177,4 @@
"feed_search" : "navega entre inscrições buscando pelo nome" "feed_search" : "navega entre inscrições buscando pelo nome"
} }
} }
} }

View File

@@ -41,7 +41,6 @@
"refresh" : "Обновить", "refresh" : "Обновить",
"refresh_all" : "Обновить все подписки вручную", "refresh_all" : "Обновить все подписки вручную",
"sort_by_asc_desc" : "Сначала новые/старые", "sort_by_asc_desc" : "Сначала новые/старые",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Только заголовки", "titles_only" : "Только заголовки",
"expanded_view" : "Развёрнутый вид", "expanded_view" : "Развёрнутый вид",
"mark_all_as_read" : "Отметить всё как прочитанное", "mark_all_as_read" : "Отметить всё как прочитанное",
@@ -112,7 +111,7 @@
"email" : "Эл. почта", "email" : "Эл. почта",
"change_password" : "Изменить пароль", "change_password" : "Изменить пароль",
"confirm_password" : "Подтвердите пароль", "confirm_password" : "Подтвердите пароль",
"minimum_6_chars" : "Не меньше 6 символов", "minimum_8_chars" : "Не меньше 8 символов",
"passwords_do_not_match" : "Пароли не совпадают", "passwords_do_not_match" : "Пароли не совпадают",
"api_key" : "API-ключ", "api_key" : "API-ключ",
"api_key_not_generated" : "Не сгенерирован", "api_key_not_generated" : "Не сгенерирован",
@@ -178,4 +177,4 @@
"feed_search" : "перейти к подписке по названию" "feed_search" : "перейти к подписке по названию"
} }
} }
} }

View File

@@ -41,7 +41,6 @@
"refresh" : "Obnoviť", "refresh" : "Obnoviť",
"refresh_all" : "Vynútené obnovenie všetkých položiek", "refresh_all" : "Vynútené obnovenie všetkých položiek",
"sort_by_asc_desc" : "Zoradiť podľa najnovšieho/najstaršieho", "sort_by_asc_desc" : "Zoradiť podľa najnovšieho/najstaršieho",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Náhľad titulkov", "titles_only" : "Náhľad titulkov",
"expanded_view" : "Rozšírený náhľad", "expanded_view" : "Rozšírený náhľad",
"mark_all_as_read" : "Označiť všetky ako prečítané", "mark_all_as_read" : "Označiť všetky ako prečítané",
@@ -112,7 +111,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Zmeniť heslo", "change_password" : "Zmeniť heslo",
"confirm_password" : "Potvrdiť heslo", "confirm_password" : "Potvrdiť heslo",
"minimum_6_chars" : "Minimum je 6 znakov", "minimum_8_chars" : "Minimum je 8 znakov",
"passwords_do_not_match" : "Heslá sa nezhodujú", "passwords_do_not_match" : "Heslá sa nezhodujú",
"api_key" : "API kľúč", "api_key" : "API kľúč",
"api_key_not_generated" : "Nie je vygenerovaný", "api_key_not_generated" : "Nie je vygenerovaný",

View File

@@ -41,7 +41,6 @@
"refresh" : "Uppdatera", "refresh" : "Uppdatera",
"refresh_all" : "Tvinga uppdatering av alla prenumerationer", "refresh_all" : "Tvinga uppdatering av alla prenumerationer",
"sort_by_asc_desc" : "Sortera efter datum stigande/fallande", "sort_by_asc_desc" : "Sortera efter datum stigande/fallande",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Endast titlar", "titles_only" : "Endast titlar",
"expanded_view" : "Expanderad vy", "expanded_view" : "Expanderad vy",
"mark_all_as_read" : "Markera alla som lästa", "mark_all_as_read" : "Markera alla som lästa",
@@ -112,7 +111,7 @@
"email" : "E-mail", "email" : "E-mail",
"change_password" : "Ändra lösenord", "change_password" : "Ändra lösenord",
"confirm_password" : "Bekräfta lösenord", "confirm_password" : "Bekräfta lösenord",
"minimum_6_chars" : "Minst 6 bokstäver", "minimum_8_chars" : "Minst 8 bokstäver",
"passwords_do_not_match" : "Lösenorden matchar inte", "passwords_do_not_match" : "Lösenorden matchar inte",
"api_key" : "API-nyckel", "api_key" : "API-nyckel",
"api_key_not_generated" : "Inte skapad än", "api_key_not_generated" : "Inte skapad än",

View File

@@ -41,7 +41,6 @@
"refresh" : "Yenile", "refresh" : "Yenile",
"refresh_all" : "Tüm yayınları yenilemek için zorla", "refresh_all" : "Tüm yayınları yenilemek için zorla",
"sort_by_asc_desc" : "Tarihe göre sırala artan/azalan", "sort_by_asc_desc" : "Tarihe göre sırala artan/azalan",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "Sadece başlıklar", "titles_only" : "Sadece başlıklar",
"expanded_view" : "Genişletilmiş görünüm", "expanded_view" : "Genişletilmiş görünüm",
"mark_all_as_read" : "Tümünü okundu işaretle", "mark_all_as_read" : "Tümünü okundu işaretle",
@@ -112,7 +111,7 @@
"email" : "E-posta", "email" : "E-posta",
"change_password" : "Şifre değiştir", "change_password" : "Şifre değiştir",
"confirm_password" : "Şifreyi doğrula", "confirm_password" : "Şifreyi doğrula",
"minimum_6_chars" : "En az 6 karakter", "minimum_8_chars" : "En az 8 karakter",
"passwords_do_not_match" : "Şifreler uyuşmuyor", "passwords_do_not_match" : "Şifreler uyuşmuyor",
"api_key" : "API anahtarı", "api_key" : "API anahtarı",
"api_key_not_generated" : "Henüz oluşturulmadı", "api_key_not_generated" : "Henüz oluşturulmadı",

View File

@@ -41,7 +41,6 @@
"refresh" : "刷新", "refresh" : "刷新",
"refresh_all" : "刷新所有订阅", "refresh_all" : "刷新所有订阅",
"sort_by_asc_desc" : "按日期升序/降序排序", "sort_by_asc_desc" : "按日期升序/降序排序",
"sort_by_abc_zyx" : "Sort Alphabetically",
"titles_only" : "仅显示标题", "titles_only" : "仅显示标题",
"expanded_view" : "显示内容", "expanded_view" : "显示内容",
"mark_all_as_read" : "标记所有为已读", "mark_all_as_read" : "标记所有为已读",
@@ -112,7 +111,7 @@
"email" : "邮箱", "email" : "邮箱",
"change_password" : "修改密码", "change_password" : "修改密码",
"confirm_password" : "确认密码", "confirm_password" : "确认密码",
"minimum_6_chars" : "最少为 6 个字母", "minimum_8_chars" : "最少为 8 个字母",
"passwords_do_not_match" : "密码不匹配", "passwords_do_not_match" : "密码不匹配",
"api_key" : "API 密钥", "api_key" : "API 密钥",
"api_key_not_generated" : "API 密钥尚未生成", "api_key_not_generated" : "API 密钥尚未生成",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -1,85 +1,86 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>CommaFeed</title> <title>CommaFeed</title>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="apple-mobile-web-app-capable" content="yes"> <meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default"> <meta name="apple-mobile-web-app-status-bar-style" content="default" />
<meta name="mobile-web-app-capable" content="yes"> <meta name="mobile-web-app-capable" content="yes" />
<link rel="manifest" href="manifest.json"> <link rel="manifest" href="manifest.json" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<link rel="apple-touch-icon" href="app-icon-57.png" /> <link rel="apple-touch-icon" href="app-icon-57.png" />
<link rel="apple-touch-icon" sizes="72x72" href="app-icon-72.png" /> <link rel="apple-touch-icon" sizes="72x72" href="app-icon-72.png" />
<link rel="apple-touch-icon" sizes="114x114" href="app-icon-114.png" /> <link rel="apple-touch-icon" sizes="114x114" href="app-icon-114.png" />
<link rel="apple-touch-icon" sizes="144x144" href="app-icon-144.png" /> <link rel="apple-touch-icon" sizes="144x144" href="app-icon-144.png" />
<link rel="icon" sizes="32x32" href="app-icon-32.png" /> <link rel="icon" sizes="32x32" href="app-icon-32.png" />
<link rel="icon" sizes="64x64" href="app-icon-64.png" /> <link rel="icon" sizes="64x64" href="app-icon-64.png" />
<link rel="icon" sizes="128x128" href="app-icon-128.png" /> <link rel="icon" sizes="128x128" href="app-icon-128.png" />
<link rel="icon" sizes="192x192" href="app-icon-192.png" /> <link rel="icon" sizes="192x192" href="app-icon-192.png" />
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" /> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
<meta name="theme-color" content="#F88A14" /> <meta name="theme-color" content="#F88A14" />
<meta name="application-name" content="CommaFeed" /> <meta name="application-name" content="CommaFeed" />
<meta name="msapplication-navbutton-color" content="#F88A14" /> <meta name="msapplication-navbutton-color" content="#F88A14" />
<meta name="msapplication-starturl" content="/" /> <meta name="msapplication-starturl" content="/" />
<meta name="msapplication-square70x70logo" content="metro-icon-70.png" /> <meta name="msapplication-square70x70logo" content="metro-icon-70.png" />
<meta name="msapplication-square150x150logo" content="metro-icon-150.png" /> <meta name="msapplication-square150x150logo" content="metro-icon-150.png" />
<link rel="fluid-icon" href="app-icon-512.png" title="CommaFeed" /> <link rel="fluid-icon" href="app-icon-512.png" title="CommaFeed" />
<link rel="logo" type="image/svg" href="app-icon.svg" /> <link rel="logo" type="image/svg" href="app-icon.svg" />
<!-- build:css css/app.css --> <!-- build:css css/app.css -->
<link rel="stylesheet" href="lib/bootstrap/dist/css/bootstrap.css" /> <link rel="stylesheet" href="lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="lib/font-awesome/css/font-awesome.css" /> <link rel="stylesheet" href="lib/font-awesome/css/font-awesome.css" />
<link rel="stylesheet" href="lib/select2/select2.css" /> <link rel="stylesheet" href="lib/select2/select2.css" />
<link rel="stylesheet" href="lib/ng-grid/ng-grid.css" /> <link rel="stylesheet" href="lib/ng-grid/ng-grid.css" />
<link rel="stylesheet" href="lib/jquery-ui/themes/base/jquery-ui.css" /> <link rel="stylesheet" href="lib/jquery-ui/themes/base/jquery-ui.css" />
<link rel="stylesheet" href="lib/angular-loading-bar/build/loading-bar.css" /> <link rel="stylesheet" href="lib/angular-loading-bar/build/loading-bar.css" />
<link rel="stylesheet" href="css/app.css" /> <link rel="stylesheet" href="css/app.css" />
<!-- endbuild --> <!-- endbuild -->
<link rel="stylesheet" href="custom_css.css" /> <link rel="stylesheet" href="custom_css.css" />
</head> </head>
<body> <body>
<div ng-app="commafeed" id="main" class="main"> <div ng-app="commafeed" id="main" class="main">
<div ui-view></div> <div ui-view></div>
</div> </div>
<!-- build:js js/app.js --> <!-- build:js js/app.js -->
<script type="text/javascript" src="lib/lodash/lodash.js"></script> <script type="text/javascript" src="lib/lodash/lodash.js"></script>
<script type="text/javascript" src="lib/jquery/dist/jquery.js"></script> <script type="text/javascript" src="lib/jquery/dist/jquery.js"></script>
<script type="text/javascript" src="lib/jquery-ui/ui/jquery-ui.js"></script> <script type="text/javascript" src="lib/jquery-ui/ui/jquery-ui.js"></script>
<script type="text/javascript" src="lib/jquery-mousewheel/jquery.mousewheel.js"></script> <script type="text/javascript" src="lib/jquery-mousewheel/jquery.mousewheel.js"></script>
<script type="text/javascript" src="lib/bootstrap/dist/js/bootstrap.js"></script> <script type="text/javascript" src="lib/bootstrap/dist/js/bootstrap.js"></script>
<script type="text/javascript" src="lib/angular/angular.js"></script> <script type="text/javascript" src="lib/angular/angular.js"></script>
<script type="text/javascript" src="lib/angular-route/angular-route.js"></script> <script type="text/javascript" src="lib/angular-route/angular-route.js"></script>
<script type="text/javascript" src="lib/angular-resource/angular-resource.js"></script> <script type="text/javascript" src="lib/angular-resource/angular-resource.js"></script>
<script type="text/javascript" src="lib/angular-sanitize/angular-sanitize.js"></script> <script type="text/javascript" src="lib/angular-sanitize/angular-sanitize.js"></script>
<script type="text/javascript" src="lib/angular-touch/angular-touch.js"></script> <script type="text/javascript" src="lib/angular-touch/angular-touch.js"></script>
<script type="text/javascript" src="lib/angular-animate/angular-animate.js"></script> <script type="text/javascript" src="lib/angular-animate/angular-animate.js"></script>
<script type="text/javascript" src="lib/angular-bootstrap/ui-bootstrap-tpls.js"></script> <script type="text/javascript" src="lib/angular-bootstrap/ui-bootstrap-tpls.js"></script>
<script type="text/javascript" src="lib/angular-loading-bar/build/loading-bar.js"></script> <script type="text/javascript" src="lib/angular-loading-bar/build/loading-bar.js"></script>
<script type="text/javascript" src="lib/angular-translate/angular-translate.js"></script> <script type="text/javascript" src="lib/angular-translate/angular-translate.js"></script>
<script type="text/javascript" src="lib/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script> <script type="text/javascript" src="lib/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script>
<script type="text/javascript" src="lib/ngInfiniteScroll/build/ng-infinite-scroll.js"></script> <script type="text/javascript" src="lib/ngInfiniteScroll/build/ng-infinite-scroll.js"></script>
<script type="text/javascript" src="lib/ng-grid/build/ng-grid.js"></script> <script type="text/javascript" src="lib/ng-grid/build/ng-grid.js"></script>
<script type="text/javascript" src="lib/angular-ui-router/release/angular-ui-router.js"></script> <script type="text/javascript" src="lib/angular-ui-router/release/angular-ui-router.js"></script>
<script type="text/javascript" src="lib/angular-ui-utils/ui-utils.js"></script> <script type="text/javascript" src="lib/angular-ui-utils/ui-utils.js"></script>
<script type="text/javascript" src="lib/angular-ui-select2/src/select2.js"></script> <script type="text/javascript" src="lib/angular-ui-select2/src/select2.js"></script>
<script type="text/javascript" src="lib/select2/select2.js"></script> <script type="text/javascript" src="lib/select2/select2.js"></script>
<script type="text/javascript" src="lib/mousetrap/mousetrap.js"></script> <script type="text/javascript" src="lib/mousetrap/mousetrap.js"></script>
<script type="text/javascript" src="lib/momentjs/min/moment-with-locales.js"></script> <script type="text/javascript" src="lib/momentjs/min/moment-with-locales.js"></script>
<script type="text/javascript" src="lib/devicejs/lib/device.js"></script> <script type="text/javascript" src="lib/devicejs/lib/device.js"></script>
<script type="text/javascript" src="lib/tinycon/tinycon.js"></script>
<script type="text/javascript" src="js/controllers.js"></script>
<script type="text/javascript" src="js/directives.js"></script> <script type="text/javascript" src="js/controllers.js"></script>
<script type="text/javascript" src="js/filters.js"></script> <script type="text/javascript" src="js/directives.js"></script>
<script type="text/javascript" src="js/main.js"></script> <script type="text/javascript" src="js/filters.js"></script>
<script type="text/javascript" src="js/services.js"></script> <script type="text/javascript" src="js/main.js"></script>
<script type="text/javascript" src="js/i18n.js"></script> <script type="text/javascript" src="js/services.js"></script>
<script type="text/javascript" src="js/i18n.js"></script>
<script type="text/javascript" src="js/templates.js"></script>
<!-- endbuild --> <script type="text/javascript" src="js/templates.js"></script>
<script type="text/javascript" src="analytics.js"></script> <!-- endbuild -->
</body> <script type="text/javascript" src="analytics.js"></script>
</body>
</html> </html>

File diff suppressed because it is too large Load Diff

View File

@@ -1,373 +1,402 @@
var module = angular.module('commafeed.directives', []); var module = angular.module("commafeed.directives", [])
module.directive('focus', ['$timeout', function($timeout) { module.directive("focus", [
return { "$timeout",
restrict : 'A', function ($timeout) {
link : function(scope, element, attrs) { return {
scope.$watch(attrs.focus, function(value) { restrict: "A",
if (!value) link: function (scope, element, attrs) {
return; scope.$watch(attrs.focus, function (value) {
$timeout(function() { if (!value) return
$(element).focus(); $timeout(function () {
}); $(element).focus()
}); })
} })
}; },
}]); }
},
])
module.directive('confirmClick', [function() { module.directive("confirmClick", [
return { function () {
priority : -1, return {
restrict : 'A', priority: -1,
link : function(scope, element, attrs) { restrict: "A",
element.bind('click', function(e) { link: function (scope, element, attrs) {
var message = scope.$eval(attrs.confirmClick); element.bind("click", function (e) {
if (message && !confirm(message)) { var message = scope.$eval(attrs.confirmClick)
e.stopImmediatePropagation(); if (message && !confirm(message)) {
e.preventDefault(); e.stopImmediatePropagation()
} e.preventDefault()
}); }
} })
}; },
}]); }
},
])
/** /**
* Open a popup window pointing to the url in the href attribute * Open a popup window pointing to the url in the href attribute
*/ */
module.directive('popup', function() { module.directive("popup", function () {
var opts = 'menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=800'; var opts = "menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=600,width=800"
return { return {
link : function(scope, elm, attrs) { link: function (scope, elm, attrs) {
elm.bind('click', function(event) { elm.bind("click", function (event) {
window.open(this.href, '', opts); window.open(this.href, "", opts)
event.preventDefault(); event.preventDefault()
}); })
} },
}; }
}); })
/** /**
* entry tag handling * entry tag handling
*/ */
module.directive('tags', function() { module.directive("tags", function () {
return { return {
restrict : 'E', restrict: "E",
scope : { scope: {
entry : '=' entry: "=",
}, },
replace : true, replace: true,
templateUrl : 'templates/_tags.html', templateUrl: "templates/_tags.html",
controller : ['$scope', 'EntryService', function($scope, EntryService) { controller: [
$scope.select2Options = { "$scope",
'multiple' : true, "EntryService",
'simple_tags' : true, function ($scope, EntryService) {
'maximumInputLength' : 40, $scope.select2Options = {
tags : EntryService.tags multiple: true,
}; simple_tags: true,
maximumInputLength: 40,
tags: EntryService.tags,
}
$scope.$watch('entry.tags', function(newValue, oldValue) { $scope.$watch(
if (oldValue && newValue != oldValue) { "entry.tags",
var data = { function (newValue, oldValue) {
entryId : $scope.entry.id, if (oldValue && newValue != oldValue) {
tags : [] var data = {
}; entryId: $scope.entry.id,
if (newValue) { tags: [],
data.tags = newValue; }
} if (newValue) {
EntryService.tag(data); data.tags = newValue
} }
}, true); EntryService.tag(data)
}] }
}; },
}); true
)
},
],
}
})
/** /**
* Reusable favicon component * Reusable favicon component
*/ */
module.directive('favicon', function() { module.directive("favicon", function () {
var tpl = '<img ng-src="{{url}}" class="favicon"></img>'; var tpl = '<img ng-src="{{url}}" class="favicon"></img>'
return { return {
restrict : 'E', restrict: "E",
scope : { scope: {
url : '=' url: "=",
}, },
replace : true, replace: true,
template : tpl template: tpl,
}; }
}); })
/** /**
* Support for the blur event * Support for the blur event
*/ */
module.directive('ngBlur', function() { module.directive("ngBlur", function () {
return { return {
restrict : 'A', restrict: "A",
link : function(scope, elm, attrs) { link: function (scope, elm, attrs) {
elm.bind('blur', function() { elm.bind("blur", function () {
scope.$apply(attrs.ngBlur); scope.$apply(attrs.ngBlur)
}); })
} },
}; }
}); })
/** /**
* Prevent mousewheel scrolling from propagating to the parent when scrollbar * Prevent mousewheel scrolling from propagating to the parent when scrollbar
* reaches top or bottom * reaches top or bottom
*/ */
module.directive('mousewheelScrolling', function() { module.directive("mousewheelScrolling", function () {
return { return {
restrict : 'A', restrict: "A",
link : function(scope, elem, attr) { link: function (scope, elem, attr) {
elem.bind('mousewheel', function(e, d) { elem.bind("mousewheel", function (e, d) {
var t = $(this); var t = $(this)
if (d > 0 && t.scrollTop() === 0) { if (d > 0 && t.scrollTop() === 0) {
e.preventDefault(); e.preventDefault()
} else { } else {
if (d < 0 && (t.scrollTop() == t.get(0).scrollHeight - t.innerHeight())) { if (d < 0 && t.scrollTop() == t.get(0).scrollHeight - t.innerHeight()) {
e.preventDefault(); e.preventDefault()
} }
} }
}); })
} },
}; }
}); })
/** /**
* Needed to use recursive directives. Wrap a recursive element with a * Needed to use recursive directives. Wrap a recursive element with a
* <recursive> tag * <recursive> tag
*/ */
module.directive('recursive', ['$compile', function($compile) { module.directive("recursive", [
return { "$compile",
restrict : 'E', function ($compile) {
priority : 100000, return {
compile : function(tElement, tAttr) { restrict: "E",
var contents = tElement.contents().remove(); priority: 100000,
var compiledContents = null; compile: function (tElement, tAttr) {
return function(scope, iElement, iAttr) { var contents = tElement.contents().remove()
if (!compiledContents) { var compiledContents = null
compiledContents = $compile(contents); return function (scope, iElement, iAttr) {
} if (!compiledContents) {
iElement.append(compiledContents(scope, function(clone) { compiledContents = $compile(contents)
return clone; }
})); iElement.append(
}; compiledContents(scope, function (clone) {
} return clone
}; })
}]); )
}
},
}
},
])
/** /**
* Reusable category component * Reusable category component
*/ */
module.directive('category', [function() { module.directive("category", [
return { function () {
scope : { return {
node : '=', scope: {
level : '=', node: "=",
selectedType : '=', level: "=",
selectedId : '=', selectedType: "=",
showLabel : '=', selectedId: "=",
showChildren : '=', showLabel: "=",
unreadCount : '&', showChildren: "=",
tag : '=' unreadCount: "&",
}, tag: "=",
restrict : 'E', },
replace : true, restrict: "E",
templateUrl : 'templates/_category.html', replace: true,
controller : ['$scope', '$state', 'FeedService', 'CategoryService', 'SettingsService', 'MobileService', templateUrl: "templates/_category.html",
function($scope, $state, FeedService, CategoryService, SettingsService, MobileService) { controller: [
$scope.settingsService = SettingsService; "$scope",
"$state",
"FeedService",
"CategoryService",
"SettingsService",
"MobileService",
function ($scope, $state, FeedService, CategoryService, SettingsService, MobileService) {
$scope.settingsService = SettingsService
$scope.getClass = function(level) { $scope.getClass = function (level) {
if ($scope.showLabel) { if ($scope.showLabel) {
return 'indent' + level; return "indent" + level
} }
}; }
$scope.categoryLabel = function(category) { $scope.categoryLabel = function (category) {
return $scope.showLabel !== true ? $scope.showLabel : category.name; return $scope.showLabel !== true ? $scope.showLabel : category.name
}; }
$scope.categoryCountLabel = function(category) { $scope.categoryCountLabel = function (category) {
var count = $scope.unreadCount({ var count = $scope.unreadCount({
category : category category: category,
}); })
var label = ''; var label = ""
if (count > 0) { if (count > 0) {
label += count; label += count
} }
return label; return label
}; }
$scope.feedCountLabel = function(feed) { $scope.feedCountLabel = function (feed) {
var label = ''; var label = ""
if (feed.unread > 0) { if (feed.unread > 0) {
label += feed.unread; label += feed.unread
} }
return label; return label
}; }
$scope.feedClicked = function(id, event) { $scope.feedClicked = function (id, event) {
// Could be called by a middle click // Could be called by a middle click
if (!event || (!event.ctrlKey && event.which == 1)) { if (!event || (!event.ctrlKey && event.which == 1)) {
MobileService.toggleLeftMenu(); MobileService.toggleLeftMenu()
if ($scope.selectedType == 'feed' && id == $scope.selectedId) { if ($scope.selectedType == "feed" && id == $scope.selectedId) {
$scope.$emit('emitReload'); $scope.$emit("emitReload")
} else { } else {
$state.transitionTo('feeds.view', { $state.transitionTo("feeds.view", {
_type : 'feed', _type: "feed",
_id : id _id: id,
}); })
} }
if (event) { if (event) {
event.preventDefault(); event.preventDefault()
event.stopPropagation(); event.stopPropagation()
} }
} }
}; }
$scope.categoryClicked = function(id, isTag) { $scope.categoryClicked = function (id, isTag) {
MobileService.toggleLeftMenu(); MobileService.toggleLeftMenu()
var type = isTag ? 'tag' : 'category'; var type = isTag ? "tag" : "category"
if ($scope.selectedType == type && id == $scope.selectedId) { if ($scope.selectedType == type && id == $scope.selectedId) {
$scope.$emit('emitReload'); $scope.$emit("emitReload")
} else { } else {
$state.transitionTo('feeds.view', { $state.transitionTo("feeds.view", {
_type : type, _type: type,
_id : id _id: id,
}); })
} }
}; }
$scope.showFeedDetails = function(feed) { $scope.showFeedDetails = function (feed) {
$state.transitionTo('feeds.feed_details', { $state.transitionTo("feeds.feed_details", {
_id : feed.id _id: feed.id,
}); })
}; }
$scope.showCategoryDetails = function(id, isTag) { $scope.showCategoryDetails = function (id, isTag) {
if (isTag) { if (isTag) {
$state.transitionTo('feeds.tag_details', { $state.transitionTo("feeds.tag_details", {
_id : id _id: id,
}); })
} else { } else {
$state.transitionTo('feeds.category_details', { $state.transitionTo("feeds.category_details", {
_id : id _id: id,
}); })
} }
}; }
$scope.toggleCategory = function(category, event) { $scope.toggleCategory = function (category, event) {
event.preventDefault(); event.preventDefault()
event.stopPropagation(); event.stopPropagation()
category.expanded = !category.expanded; category.expanded = !category.expanded
if (category.id == 'all') { if (category.id == "all") {
return; return
} }
CategoryService.collapse({ CategoryService.collapse({
id : category.id, id: category.id,
collapse : !category.expanded collapse: !category.expanded,
}); })
}; }
}] },
}; ],
}]); }
},
])
module.directive('draggable', function() { module.directive("draggable", function () {
return { return {
restrict : 'A', restrict: "A",
link : function(scope, element, attrs) { link: function (scope, element, attrs) {
element.draggable({ element
revert : 'invalid', .draggable({
helper : 'clone', revert: "invalid",
distance : 10, helper: "clone",
axis : 'y' distance: 10,
}).data('source', scope.$eval(attrs.draggable)); axis: "y",
} })
}; .data("source", scope.$eval(attrs.draggable))
}); },
}
})
module.directive('droppable', ['CategoryService', 'FeedService', function(CategoryService, FeedService) { module.directive("droppable", [
return { "CategoryService",
restrict : 'A', "FeedService",
link : function(scope, element, attrs) { function (CategoryService, FeedService) {
element.droppable({ return {
tolerance : 'pointer', restrict: "A",
over : function(event, ui) { link: function (scope, element, attrs) {
element.droppable({
tolerance: "pointer",
over: function (event, ui) {},
drop: function (event, ui) {
var draggable = angular.element(ui.draggable)
}, var source = draggable.data("source")
drop : function(event, ui) { var target = scope.$eval(attrs.droppable)
var draggable = angular.element(ui.draggable);
var source = draggable.data('source'); if (angular.equals(source, target)) {
var target = scope.$eval(attrs.droppable); return
}
if (angular.equals(source, target)) { var data = {
return; id: source.id,
} name: source.name,
filter: source.filter,
}
var data = { if (source.children) {
id : source.id, // source is a category
name : source.name, } else {
filter : source.filter // source is a feed
};
if (source.children) { if (target.children) {
// source is a category // target is a category
data.categoryId = target.id
data.position = 0
} else {
// target is a feed
data.categoryId = target.categoryId
data.position = target.position
}
} else { FeedService.modify(data, function () {
// source is a feed CategoryService.init()
})
}
scope.$apply()
},
})
},
}
},
])
if (target.children) { module.directive("metricMeter", function () {
// target is a category return {
data.categoryId = target.id; scope: {
data.position = 0; metric: "=",
} else { label: "=",
// target is a feed },
data.categoryId = target.categoryId; restrict: "E",
data.position = target.position; templateUrl: "templates/_metrics.meter.html",
} }
})
FeedService.modify(data, function() { module.directive("metricGauge", function () {
CategoryService.init(); return {
}); scope: {
} metric: "=",
scope.$apply(); label: "=",
} },
}); restrict: "E",
} templateUrl: "templates/_metrics.gauge.html",
}; }
}]); })
module.directive('metricMeter', function() { module.directive("metricTimer", function () {
return { return {
scope : { scope: {
metric : '=', metric: "=",
label : '=' label: "=",
}, },
restrict : 'E', restrict: "E",
templateUrl : 'templates/_metrics.meter.html' templateUrl: "templates/_metrics.timer.html",
}; }
}); })
module.directive('metricGauge', function() {
return {
scope : {
metric : '=',
label : '='
},
restrict : 'E',
templateUrl : 'templates/_metrics.gauge.html'
};
});
module.directive('metricTimer', function() {
return {
scope : {
metric : '=',
label : '='
},
restrict : 'E',
templateUrl : 'templates/_metrics.timer.html'
};
});

View File

@@ -1,113 +1,119 @@
var module = angular.module('commafeed.filters', []); var module = angular.module("commafeed.filters", [])
/** /**
* smart date formatter * smart date formatter
*/ */
module.filter('entryDate', function() { module.filter("entryDate", function () {
return function(timestamp, defaultValue) { return function (timestamp, defaultValue) {
if (!timestamp) { if (!timestamp) {
return defaultValue; return defaultValue
} }
var d = moment(timestamp); var d = moment(timestamp)
var now = moment(); var now = moment()
var formatted; var formatted
if (Math.abs(d.diff(now)) < 86400000) { if (Math.abs(d.diff(now)) < 86400000) {
formatted = d.fromNow(); formatted = d.fromNow()
} else { } else {
formatted = d.format('YYYY-MM-DD HH:mm'); formatted = d.format("YYYY-MM-DD HH:mm")
} }
return formatted; return formatted
}; }
}); })
/** /**
* rewrites iframes to use https if commafeed uses https * rewrites iframes to use https if commafeed uses https
*/ */
module.filter('iframeHttpsRewrite', function() { module.filter("iframeHttpsRewrite", function () {
return function(html) { return function (html) {
var result = html; var result = html
if (location.protocol === 'https:') { if (location.protocol === "https:") {
var wrapper = $('<div></div>').html(html); var wrapper = $("<div></div>").html(html)
$('iframe', wrapper).each(function(i, elem) { $("iframe", wrapper).each(function (i, elem) {
var e = $(elem); var e = $(elem)
e.attr('src', e.attr('src').replace(/^http:\/\//i, 'https://')); e.attr("src", e.attr("src").replace(/^http:\/\//i, "https://"))
}); })
result = wrapper.html(); result = wrapper.html()
} }
return result; return result
}; }
}); })
/** /**
* inserts title or alt-text after images, if any * inserts title or alt-text after images, if any
*/ */
module.filter('appendImageTitles', function() { module.filter("appendImageTitles", function () {
return function(html) { return function (html) {
var result = html; var result = html
var wrapper = $('<div></div>').html(html); var wrapper = $("<div></div>").html(html)
$('img', wrapper).each(function(i, elem) { $("img", wrapper).each(function (i, elem) {
var e = $(elem); var e = $(elem)
var title = e.attr('title') || e.attr('alt'); var title = e.attr("title") || e.attr("alt")
if (title) { if (title) {
var text = $('<span style="font-style: italic;"></span>').text(title); var text = $('<span style="font-style: italic;"></span>').text(title)
e.after(text); e.after(text)
} }
}); })
result = wrapper.html(); result = wrapper.html()
return result; return result
}; }
}); })
/** /**
* escapes the url * escapes the url
*/ */
module.filter('escape', function() { module.filter("escape", function () {
return encodeURIComponent; return encodeURIComponent
}); })
/** /**
* returns a trusted html content * returns a trusted html content
*/ */
module.filter('trustHtml', ['$sce', function($sce) { module.filter("trustHtml", [
return function(val) { "$sce",
return $sce.trustAsHtml(val); function ($sce) {
}; return function (val) {
}]); return $sce.trustAsHtml(val)
}
},
])
/** /**
* returns a trusted url * returns a trusted url
*/ */
module.filter('trustUrl', ['$sce', function($sce) { module.filter("trustUrl", [
return function(val) { "$sce",
return $sce.trustAsResourceUrl(val); function ($sce) {
}; return function (val) {
}]); return $sce.trustAsResourceUrl(val)
}
},
])
/** /**
* add the 'highlight-search' class to text matching keywords * add the 'highlight-search' class to text matching keywords
*/ */
module.filter('highlight', function() { module.filter("highlight", function () {
return function(html, keywords) { return function (html, keywords) {
if (keywords) { if (keywords) {
var handleKeyword = function(token, html) { var handleKeyword = function (token, html) {
var expr = new RegExp(token, 'gi'); var expr = new RegExp(token, "gi")
var container = $('<span>').html(html); var container = $("<span>").html(html)
var elements = container.find('*').addBack(); var elements = container.find("*").addBack()
var textNodes = elements.not('iframe').contents().not(elements); var textNodes = elements.not("iframe").contents().not(elements)
textNodes.each(function() { textNodes.each(function () {
var replaced = this.nodeValue.replace(expr, '<span class="highlight-search">$&</span>'); var replaced = this.nodeValue.replace(expr, '<span class="highlight-search">$&</span>')
$('<span>').html(replaced).insertBefore(this); $("<span>").html(replaced).insertBefore(this)
$(this).remove(); $(this).remove()
}); })
return container.html(); return container.html()
}; }
var tokens = keywords.split(' '); var tokens = keywords.split(" ")
for (var i = 0; i < tokens.length; i++) { for (var i = 0; i < tokens.length; i++) {
html = handleKeyword(tokens[i], html); html = handleKeyword(tokens[i], html)
} }
} }
return html; return html
}; }
}); })

View File

@@ -1,35 +1,37 @@
var module = angular.module('commafeed.i18n', []); var module = angular.module("commafeed.i18n", [])
module.service('LangService', [function() { module.service("LangService", [
this.langs = { function () {
'ar': 'العربية', this.langs = {
'ca': 'Català', ar: "العربية",
'en': 'English', ca: "Català",
'es': 'Español', en: "English",
'de': 'Deutsch', es: "Español",
'fa': 'فارسی', de: "Deutsch",
'fr': 'Français', fa: "فارسی",
'gl': 'Galician', fr: "Français",
'glk': 'گیلکی', gl: "Galician",
'hu': 'Magyar', glk: "گیلکی",
'id': 'Indonesian', hu: "Magyar",
'ja': '日本語', id: "Indonesian",
'ko': '한국어', ja: "日本語",
'nl': 'Nederlands', ko: "한국어",
'nb': 'Norsk (bokmål)', nl: "Nederlands",
'nn': 'Norsk (nynorsk)', nb: "Norsk (bokmål)",
'pt': 'Português', nn: "Norsk (nynorsk)",
'pl': 'Polski', pt: "Português",
'ru': 'Русский', pl: "Polski",
'fi': 'Suomi', ru: "Русский",
'sv': 'Svenska', fi: "Suomi",
'zh': '简体中文', sv: "Svenska",
'it': 'Italiano', zh: "简体中文",
'tr': 'Türkçe', it: "Italiano",
'cy': 'Cymraeg', tr: "Türkçe",
'sk': 'Slovenčina', cy: "Cymraeg",
'da': 'Danish', sk: "Slovenčina",
'cs': 'Čeština', da: "Danish",
'ms': 'Bahasa Malaysian' cs: "Čeština",
} ms: "Bahasa Malaysian",
}]); }
},
])

View File

@@ -1,145 +1,172 @@
var app = angular.module('commafeed', ['ngRoute', 'ngTouch', 'ngAnimate', 'ui.utils', 'ui.bootstrap', 'ui.router', 'ui.select2', var app = angular.module("commafeed", [
'commafeed.directives', 'commafeed.controllers', 'commafeed.services', 'commafeed.filters', 'commafeed.i18n', 'ngSanitize', "ngRoute",
'infinite-scroll', 'ngGrid', 'chieffancypants.loadingBar', 'pascalprecht.translate']); "ngTouch",
"ngAnimate",
"ui.utils",
"ui.bootstrap",
"ui.router",
"ui.select2",
"commafeed.directives",
"commafeed.controllers",
"commafeed.services",
"commafeed.filters",
"commafeed.i18n",
"ngSanitize",
"infinite-scroll",
"ngGrid",
"chieffancypants.loadingBar",
"pascalprecht.translate",
])
app.config([ app.config([
'$routeProvider', "$routeProvider",
'$stateProvider', "$stateProvider",
'$urlRouterProvider', "$urlRouterProvider",
'$httpProvider', "$httpProvider",
'$compileProvider', "$compileProvider",
'cfpLoadingBarProvider', "cfpLoadingBarProvider",
'$translateProvider', "$translateProvider",
function($routeProvider, $stateProvider, $urlRouterProvider, $httpProvider, $compileProvider, cfpLoadingBarProvider, function (
$translateProvider) { $routeProvider,
$stateProvider,
$translateProvider.useStaticFilesLoader({ $urlRouterProvider,
prefix : 'i18n/', $httpProvider,
suffix : '.js' $compileProvider,
}); cfpLoadingBarProvider,
$translateProvider.preferredLanguage('en'); $translateProvider
) {
$translateProvider.useStaticFilesLoader({
prefix: "i18n/",
suffix: ".js",
})
$translateProvider.preferredLanguage("en")
cfpLoadingBarProvider.includeSpinner = false; cfpLoadingBarProvider.includeSpinner = false
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|javascript):/); $compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|javascript):/)
var interceptor = ['$rootScope', '$q', '$injector', function(scope, $q, $injector) { var interceptor = [
var f = {}; "$rootScope",
"$q",
f.response = function(response) { "$injector",
return response; function (scope, $q, $injector) {
}; var f = {}
f.responseError = function(response) {
var status = response.status;
if (status == 401) {
$injector.get('$state').transitionTo('welcome');
}
return $q.reject(response);
};
return f;
}];
$httpProvider.interceptors.push(interceptor); f.response = function (response) {
return response
}
$stateProvider.state('feeds', { f.responseError = function (response) {
'abstract' : true, var status = response.status
url : '/feeds', if (status == 401) {
templateUrl : 'templates/feeds.html' $injector.get("$state").transitionTo("welcome")
}); }
$stateProvider.state('feeds.view', { return $q.reject(response)
url : '/view/:_type/:_id', }
templateUrl : 'templates/feeds.view.html', return f
controller : 'FeedListCtrl' },
}); ]
$stateProvider.state('feeds.subscribe', {
url : '/subscribe',
templateUrl : 'templates/feeds.subscribe.html',
controller : 'SubscribeCtrl'
});
$stateProvider.state('feeds.new_category', {
url : '/add_category',
templateUrl : 'templates/feeds.new_category.html',
controller : 'NewCategoryCtrl'
});
$stateProvider.state('feeds.import', {
url : '/import',
templateUrl : 'templates/feeds.import.html',
controller : 'ImportCtrl'
});
$stateProvider.state('feeds.search', {
url : '/search/:_keywords',
templateUrl : 'templates/feeds.view.html',
controller : 'FeedListCtrl'
});
$stateProvider.state('feeds.feed_details', {
url : '/details/feed/:_id',
templateUrl : 'templates/feeds.feed_details.html',
controller : 'FeedDetailsCtrl'
});
$stateProvider.state('feeds.category_details', {
url : '/details/category/:_id',
templateUrl : 'templates/feeds.category_details.html',
controller : 'CategoryDetailsCtrl'
});
$stateProvider.state('feeds.tag_details', {
url : '/details/tag/:_id',
templateUrl : 'templates/feeds.tag_details.html',
controller : 'TagDetailsCtrl'
});
$stateProvider.state('feeds.help', {
url : '/help',
templateUrl : 'templates/feeds.help.html',
controller : 'HelpController'
});
$stateProvider.state('feeds.settings', {
url : '/settings',
templateUrl : 'templates/settings.html',
controller : 'SettingsCtrl'
});
$stateProvider.state('feeds.profile', {
url : '/profile',
templateUrl : 'templates/profile.html',
controller : 'ProfileCtrl'
});
$stateProvider.state('admin', { $httpProvider.interceptors.push(interceptor)
'abstract' : true,
url : '/admin',
templateUrl : 'templates/admin.html'
});
$stateProvider.state('admin.userlist', {
url : '/user/list',
templateUrl : 'templates/admin.userlist.html',
controller : 'ManageUsersCtrl'
});
$stateProvider.state('admin.useradd', {
url : '/user/add',
templateUrl : 'templates/admin.useradd.html',
controller : 'ManageUserCtrl'
});
$stateProvider.state('admin.useredit', {
url : '/user/edit/:_id',
templateUrl : 'templates/admin.useredit.html',
controller : 'ManageUserCtrl'
});
$stateProvider.state('admin.settings', {
url : '/settings',
templateUrl : 'templates/admin.settings.html',
controller : 'ManageSettingsCtrl'
});
$stateProvider.state('admin.metrics', {
url : '/metrics',
templateUrl : 'templates/admin.metrics.html',
controller : 'MetricsCtrl'
});
$stateProvider.state('welcome', { $stateProvider.state("feeds", {
url : '/welcome', abstract: true,
templateUrl : 'templates/welcome.html' url: "/feeds",
}); templateUrl: "templates/feeds.html",
})
$stateProvider.state("feeds.view", {
url: "/view/:_type/:_id",
templateUrl: "templates/feeds.view.html",
controller: "FeedListCtrl",
})
$stateProvider.state("feeds.subscribe", {
url: "/subscribe",
templateUrl: "templates/feeds.subscribe.html",
controller: "SubscribeCtrl",
})
$stateProvider.state("feeds.new_category", {
url: "/add_category",
templateUrl: "templates/feeds.new_category.html",
controller: "NewCategoryCtrl",
})
$stateProvider.state("feeds.import", {
url: "/import",
templateUrl: "templates/feeds.import.html",
controller: "ImportCtrl",
})
$stateProvider.state("feeds.search", {
url: "/search/:_keywords",
templateUrl: "templates/feeds.view.html",
controller: "FeedListCtrl",
})
$stateProvider.state("feeds.feed_details", {
url: "/details/feed/:_id",
templateUrl: "templates/feeds.feed_details.html",
controller: "FeedDetailsCtrl",
})
$stateProvider.state("feeds.category_details", {
url: "/details/category/:_id",
templateUrl: "templates/feeds.category_details.html",
controller: "CategoryDetailsCtrl",
})
$stateProvider.state("feeds.tag_details", {
url: "/details/tag/:_id",
templateUrl: "templates/feeds.tag_details.html",
controller: "TagDetailsCtrl",
})
$stateProvider.state("feeds.help", {
url: "/help",
templateUrl: "templates/feeds.help.html",
controller: "HelpController",
})
$stateProvider.state("feeds.settings", {
url: "/settings",
templateUrl: "templates/settings.html",
controller: "SettingsCtrl",
})
$stateProvider.state("feeds.profile", {
url: "/profile",
templateUrl: "templates/profile.html",
controller: "ProfileCtrl",
})
$urlRouterProvider.when('/', '/feeds/view/category/all'); $stateProvider.state("admin", {
$urlRouterProvider.when('/admin', '/admin/settings'); abstract: true,
$urlRouterProvider.otherwise('/'); url: "/admin",
templateUrl: "templates/admin.html",
})
$stateProvider.state("admin.userlist", {
url: "/user/list",
templateUrl: "templates/admin.userlist.html",
controller: "ManageUsersCtrl",
})
$stateProvider.state("admin.useradd", {
url: "/user/add",
templateUrl: "templates/admin.useradd.html",
controller: "ManageUserCtrl",
})
$stateProvider.state("admin.useredit", {
url: "/user/edit/:_id",
templateUrl: "templates/admin.useredit.html",
controller: "ManageUserCtrl",
})
$stateProvider.state("admin.settings", {
url: "/settings",
templateUrl: "templates/admin.settings.html",
controller: "ManageSettingsCtrl",
})
$stateProvider.state("admin.metrics", {
url: "/metrics",
templateUrl: "templates/admin.metrics.html",
controller: "MetricsCtrl",
})
}]); $stateProvider.state("welcome", {
url: "/welcome",
templateUrl: "templates/welcome.html",
})
$urlRouterProvider.when("/", "/feeds/view/category/all")
$urlRouterProvider.when("/admin", "/admin/settings")
$urlRouterProvider.otherwise("/")
},
])

View File

@@ -1,336 +1,375 @@
var module = angular.module('commafeed.services', ['ngResource']); var module = angular.module("commafeed.services", ["ngResource"])
module.service('AnalyticsService', ['$state', function($state) { module.service("AnalyticsService", [
this.track = function(path) { "$state",
if (typeof ga === 'undefined') { function ($state) {
return; this.track = function (path) {
} if (typeof ga === "undefined") {
path = path || $state.$current.url.prefix; return
ga('send', 'pageview', { }
page : path path = path || $state.$current.url.prefix
}); ga("send", "pageview", {
}; page: path,
}]); })
}
},
])
module.service('MobileService', ['$state', function($state) { module.service("MobileService", [
this.leftMenu = false; "$state",
this.rightMenu = false; function ($state) {
this.toggleLeftMenu = function() { this.leftMenu = false
this.leftMenu = !this.leftMenu; this.rightMenu = false
$('body').toggleClass('left-menu-active'); this.toggleLeftMenu = function () {
}; this.leftMenu = !this.leftMenu
this.toggleRightMenu = function() { $("body").toggleClass("left-menu-active")
this.rightMenu = !this.rightMenu; }
$('body').toggleClass('right-menu-active'); this.toggleRightMenu = function () {
}; this.rightMenu = !this.rightMenu
this.mobile = device.mobile() || device.tablet(); $("body").toggleClass("right-menu-active")
}]); }
this.mobile = device.mobile() || device.tablet()
},
])
module.factory('ProfileService', ['$resource', function($resource) { module.factory("ProfileService", [
var res = $resource('rest/user/profile/'); "$resource",
res.deleteAccount = $resource('rest/user/profile/deleteAccount').save; function ($resource) {
return res; var res = $resource("rest/user/profile/")
}]); res.deleteAccount = $resource("rest/user/profile/deleteAccount").save
return res
},
])
module.factory('SessionService', ['$resource', function($resource) { module.factory("SessionService", [
var res = {}; "$resource",
res.login = $resource('rest/user/login').save; function ($resource) {
res.register = $resource('rest/user/register').save; var res = {}
res.passwordReset = $resource('rest/user/passwordReset').save; res.login = $resource("rest/user/login").save
return res; res.register = $resource("rest/user/register").save
}]); res.passwordReset = $resource("rest/user/passwordReset").save
return res
},
])
module.factory('SettingsService', ['$resource', '$translate', function($resource, $translate) { module.factory("SettingsService", [
var res = $resource('rest/user/settings'); "$resource",
"$translate",
function ($resource, $translate) {
var res = $resource("rest/user/settings")
var s = {}; var s = {}
s.settings = {}; s.settings = {}
s.save = function(callback) { s.save = function (callback) {
res.save(s.settings, function(data) { res.save(s.settings, function (data) {
if (callback) { if (callback) {
callback(data); callback(data)
} }
}); })
}; }
s.init = function(callback) { s.init = function (callback) {
res.get(function(data) { res.get(function (data) {
s.settings = data; s.settings = data
var lang = s.settings.language || 'en'; var lang = s.settings.language || "en"
$translate.use(lang); $translate.use(lang)
if (lang === 'zh') { if (lang === "zh") {
lang = 'zh-cn'; lang = "zh-cn"
} else if (lang === 'ms') { } else if (lang === "ms") {
lang = 'ms-my'; lang = "ms-my"
} }
moment.locale(lang, {}); moment.locale(lang, {})
if (callback) { if (callback) {
callback(data); callback(data)
} }
}); })
}; }
s.init(); s.init()
return s; return s
}]); },
])
module.factory('FeedService', ['$resource', '$http', function($resource, $http) { module.factory("FeedService", [
var actions = { "$resource",
entries : { "$http",
method : 'GET', function ($resource, $http) {
params : { var actions = {
_method : 'entries' entries: {
} method: "GET",
}, params: {
fetch : { _method: "entries",
method : 'POST', },
params : { },
_method : 'fetch' fetch: {
} method: "POST",
}, params: {
mark : { _method: "fetch",
method : 'POST', },
params : { },
_method : 'mark' mark: {
} method: "POST",
}, params: {
refresh : { _method: "mark",
method : 'POST', },
params : { },
_method : 'refresh' refresh: {
} method: "POST",
}, params: {
refreshAll : { _method: "refresh",
method : 'GET', },
params : { },
_method : 'refreshAll' refreshAll: {
} method: "GET",
}, params: {
subscribe : { _method: "refreshAll",
method : 'POST', },
params : { },
_method : 'subscribe' subscribe: {
} method: "POST",
}, params: {
unsubscribe : { _method: "subscribe",
method : 'POST', },
params : { },
_method : 'unsubscribe' unsubscribe: {
} method: "POST",
}, params: {
modify : { _method: "unsubscribe",
method : 'POST', },
params : { },
_method : 'modify' modify: {
} method: "POST",
} params: {
}; _method: "modify",
var res = $resource('rest/feed/:_method', {}, actions); },
res.get = $resource('rest/feed/get/:id').get; },
return res; }
}]); var res = $resource("rest/feed/:_method", {}, actions)
res.get = $resource("rest/feed/get/:id").get
return res
},
])
module.factory('CategoryService', ['$resource', '$http', function($resource, $http) { module.factory("CategoryService", [
"$resource",
"$http",
function ($resource, $http) {
var traverse = function (callback, category, parentName) {
callback(category, parentName)
var children = category.children
if (children) {
for (var c = 0; c < children.length; c++) {
traverse(callback, children[c], category.name)
}
}
}
var traverse = function(callback, category, parentName) { // flatten categories
callback(category, parentName); var flatten = function (category) {
var children = category.children; var array = []
if (children) { var callback = function (category, parentName) {
for (var c = 0; c < children.length; c++) { var name = category.name
traverse(callback, children[c], category.name); if (parentName) {
} name += " (in " + parentName + ")"
} }
}; array.push({
id: category.id,
name: name,
orig: category,
})
}
traverse(callback, category)
return array
}
// flatten categories // flatten feeds
var flatten = function(category) { var flatFeeds = function (category) {
var array = []; var subs = []
var callback = function(category, parentName) { var callback = function (category) {
var name = category.name; subs.push.apply(subs, category.feeds)
if (parentName) { }
name += (' (in ' + parentName + ')'); traverse(callback, category)
} return subs
array.push({ }
id : category.id,
name : name,
orig : category
});
};
traverse(callback, category);
return array;
};
// flatten feeds // flatten everything
var flatFeeds = function(category) { var flatAll = function (category, a) {
var subs = []; a.push([category.id, "category"])
var callback = function(category) { _.each(category.children, function (child) {
subs.push.apply(subs, category.feeds); flatAll(child, a)
}; })
traverse(callback, category); _.each(category.feeds, function (feed) {
return subs; a.push([feed.id, "feed"])
}; })
}
// flatten everything var actions = {
var flatAll = function(category, a) { get: {
a.push([category.id, 'category']); method: "GET",
_.each(category.children, function(child) { ignoreLoadingBar: true,
flatAll(child, a); params: {
}); _method: "get",
_.each(category.feeds, function(feed) { },
a.push([feed.id, 'feed']); },
}); entries: {
}; method: "GET",
params: {
_method: "entries",
},
},
mark: {
method: "POST",
params: {
_method: "mark",
},
},
add: {
method: "POST",
params: {
_method: "add",
},
},
remove: {
method: "POST",
params: {
_method: "delete",
},
},
modify: {
method: "POST",
params: {
_method: "modify",
},
},
collapse: {
method: "POST",
params: {
_method: "collapse",
},
},
}
var res = $resource("rest/category/:_method", {}, actions)
res.subscriptions = {}
res.flatCategories = {}
res.feeds = []
var actions = { res.init = function (callback) {
get : { res.get(function (data) {
method : 'GET', res.subscriptions = data
ignoreLoadingBar : true, res.flatCategories = flatten(data)
params : { res.feeds = flatFeeds(data)
_method : 'get'
}
},
entries : {
method : 'GET',
params : {
_method : 'entries'
}
},
mark : {
method : 'POST',
params : {
_method : 'mark'
}
},
add : {
method : 'POST',
params : {
_method : 'add'
}
},
remove : {
method : 'POST',
params : {
_method : 'delete'
}
},
modify : {
method : 'POST',
params : {
_method : 'modify'
}
},
collapse : {
method : 'POST',
params : {
_method : 'collapse'
}
}
};
var res = $resource('rest/category/:_method', {}, actions);
res.subscriptions = {};
res.flatCategories = {};
res.feeds = [];
res.init = function(callback) { res.flatAll = []
res.get(function(data) { flatAll(data, res.flatAll)
res.subscriptions = data; res.flatAll.splice(1, 0, ["starred", "category"])
res.flatCategories = flatten(data);
res.feeds = flatFeeds(data);
res.flatAll = []; if (callback) callback(data)
flatAll(data, res.flatAll); })
res.flatAll.splice(1, 0, ['starred', 'category']); }
res.refresh = function (success, error) {
res.get(
function (data) {
_.merge(res.subscriptions, data)
if (success) success(data)
},
function (data) {
if (error) error(data)
}
)
}
if (callback) res.init()
callback(data); return res
}); },
}; ])
res.refresh = function(success, error) {
res.get(function(data) {
_.merge(res.subscriptions, data);
if (success)
success(data);
}, function(data) {
if (error)
error(data);
});
};
res.init(); module.factory("EntryService", [
return res; "$resource",
}]); "$http",
function ($resource, $http) {
var actions = {
search: {
method: "GET",
params: {
_method: "search",
},
},
mark: {
method: "POST",
ignoreLoadingBar: true,
params: {
_method: "mark",
},
},
markMultiple: {
method: "POST",
params: {
_method: "markMultiple",
},
},
star: {
method: "POST",
params: {
_method: "star",
},
},
tag: {
method: "POST",
params: {
_method: "tag",
},
},
}
var res = $resource("rest/entry/:_method", {}, actions)
res.tags = []
var initTags = function () {
$http.get("rest/entry/tags").success(function (data) {
res.tags = []
res.tags.push.apply(res.tags, data)
res.tags.sort()
})
}
var oldTag = res.tag
res.tag = function (data) {
oldTag(data, function () {
initTags()
})
}
initTags()
return res
},
])
module.factory('EntryService', ['$resource', '$http', function($resource, $http) { module.factory("AdminUsersService", [
var actions = { "$resource",
search : { function ($resource) {
method : 'GET', var res = {}
params : { res.get = $resource("rest/admin/user/get/:id").get
_method : 'search' res.getAll = $resource("rest/admin/user/getAll").query
} res.save = $resource("rest/admin/user/save").save
}, res.remove = $resource("rest/admin/user/delete").save
mark : { return res
method : 'POST', },
ignoreLoadingBar : true, ])
params : {
_method : 'mark'
}
},
markMultiple : {
method : 'POST',
params : {
_method : 'markMultiple'
}
},
star : {
method : 'POST',
params : {
_method : 'star'
}
},
tag : {
method : 'POST',
params : {
_method : 'tag'
}
}
};
var res = $resource('rest/entry/:_method', {}, actions);
res.tags = [];
var initTags = function() {
$http.get('rest/entry/tags').success(function(data) {
res.tags = [];
res.tags.push.apply(res.tags, data);
res.tags.sort();
});
};
var oldTag = res.tag;
res.tag = function(data) {
oldTag(data, function() {
initTags();
});
};
initTags();
return res;
}]);
module.factory('AdminUsersService', ['$resource', function($resource) { module.factory("AdminSettingsService", [
var res = {}; "$resource",
res.get = $resource('rest/admin/user/get/:id').get; function ($resource) {
res.getAll = $resource('rest/admin/user/getAll').query; var res = $resource("rest/admin/settings/")
res.save = $resource('rest/admin/user/save').save; return res
res.remove = $resource('rest/admin/user/delete').save; },
return res; ])
}]);
module.factory('AdminSettingsService', ['$resource', function($resource) { module.factory("AdminMetricsService", [
var res = $resource('rest/admin/settings/'); "$resource",
return res; function ($resource) {
}]); var res = $resource("rest/admin/metrics/")
return res
},
])
module.factory('AdminMetricsService', ['$resource', function($resource) { module.factory("ServerService", [
var res = $resource('rest/admin/metrics/'); "$resource",
return res; function ($resource) {
}]); var res = $resource("rest/server/get")
return res
module.factory('ServerService', ['$resource', function($resource) { },
var res = $resource('rest/server/get'); ])
return res;
}]);

View File

@@ -1,7 +1,7 @@
$(function() { $(function () {
var reg = $('#register-panel'); var reg = $("#register-panel")
if (!reg) { if (!reg) {
return; return
} }
$('#login-panel').height(reg.height()); $("#login-panel").height(reg.height())
}); })

View File

@@ -1,31 +1,32 @@
{ {
"name": "CommaFeed", "name": "CommaFeed",
"icons": [ "icons": [
{ {
"src": "app-icon-72.png", "src": "app-icon-72.png",
"sizes": "72x72", "sizes": "72x72",
"type": "image/png", "type": "image/png",
"density": "1.5" "density": "1.5"
}, },
{ {
"src": "app-icon-114.png", "src": "app-icon-114.png",
"sizes": "96x96", "sizes": "96x96",
"type": "image/png", "type": "image/png",
"density": "2.0" "density": "2.0"
}, },
{ {
"src": "app-icon-144.png", "src": "app-icon-144.png",
"sizes": "144x144", "sizes": "144x144",
"type": "image/png", "type": "image/png",
"density": "3.0" "density": "3.0"
}, },
{ {
"src": "app-icon-192.png", "src": "app-icon-192.png",
"sizes": "192x192", "sizes": "192x192",
"type": "image/png", "type": "image/png",
"density": "4.0" "density": "4.0"
} }
], ],
"start_url": "/", "scope": ".",
"display": "standalone" "start_url": "./",
"display": "standalone"
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -8,7 +8,6 @@
@import "components/help"; @import "components/help";
@import "components/loading-bar"; @import "components/loading-bar";
@import "components/readabilicons";
@import "components/zocial"; @import "components/zocial";
@import "mobile/mobile"; @import "mobile/mobile";

View File

@@ -1,4 +1,4 @@
/* admin */ /* admin */
.admin .users-table { .admin .users-table {
height: 400px; height: 400px;
} }

View File

@@ -1,271 +1,279 @@
.main-content { .main-content {
margin-left: 250px; margin-left: 250px;
padding-left: 15px; padding-left: 15px;
} }
.full-screen .main-content { .full-screen .main-content {
width: 100%; width: 100%;
margin-left: 0; margin-left: 0;
} }
.entryList { .entryList {
padding-top: 50px; padding-top: 50px;
} }
/* entry list*/ /* entry list*/
.entrylist-header { .entrylist-header {
border-bottom: 1px solid #eee; border-bottom: 1px solid #eee;
} }
.entrylist-header h3 { .entrylist-header h3 {
margin: 0; margin: 0;
line-height: 40px; line-height: 40px;
} }
.entrylist-header a { .entrylist-header a {
color: inherit; color: inherit;
} }
.expanded .entry-header,.expanded .entry-body-content { .expanded .entry-header,
padding-left: 25px; .expanded .entry-body-content {
padding-right: 25px; padding-left: 25px;
padding-right: 25px;
} }
.expanded .entry-header { .expanded .entry-header {
max-width: 650px; max-width: 650px;
} }
.full-screen .expanded .entry-header { .full-screen .expanded .entry-header {
max-width: 100%; max-width: 100%;
} }
.rtl .entry-header,.rtl .entry-body-content,.rtl.entry-name { .rtl .entry-header,
direction: rtl; .rtl .entry-body-content,
.rtl.entry-name {
direction: rtl;
} }
.rtl ul,.rtl ol { .rtl ul,
padding: 0; .rtl ol {
margin: 0 25px 10px 0px; padding: 0;
margin: 0 25px 10px 0px;
} }
#feed-accordion .entry { #feed-accordion .entry {
border-bottom: 1px solid #CCCCCC; border-bottom: 1px solid #cccccc;
} }
#feed-accordion .no-entries { #feed-accordion .no-entries {
text-align: center; text-align: center;
font-weight: bold; font-weight: bold;
margin-top: 80px; margin-top: 80px;
} }
#feed-accordion .entry-heading { #feed-accordion .entry-heading {
background-color: #ebebeb; background-color: #ebebeb;
} }
#feed-accordion .unread .entry-heading:hover { #feed-accordion .unread .entry-heading:hover {
background-color: #ebebeb; background-color: #ebebeb;
} }
#feed-accordion .unread .entry-heading { #feed-accordion .unread .entry-heading {
background-color: #fff; background-color: #fff;
} }
#feed-accordion .current.closed .entry-heading { #feed-accordion .current.closed .entry-heading {
background-color: #ffc; background-color: #ffc;
} }
#feed-accordion .entry-heading-link { #feed-accordion .entry-heading-link {
color: black; color: black;
height: 32px; height: 32px;
display: block; display: block;
cursor: pointer; cursor: pointer;
padding: 6px 0px; padding: 6px 0px;
} }
#feed-accordion .entry-heading .feed-name { #feed-accordion .entry-heading .feed-name {
color: #555; color: #555;
display: block; display: block;
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
position: absolute; position: absolute;
width: 145px; width: 145px;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
#feed-accordion .entry-heading .entry-name { #feed-accordion .entry-heading .entry-name {
display: block; display: block;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
margin-right: 150px; margin-right: 150px;
} }
#feed-accordion .unread .entry-heading .entry-name { #feed-accordion .unread .entry-heading .entry-name {
font-weight: bold; font-weight: bold;
} }
#feed-accordion .entry-heading .shrink { #feed-accordion .entry-heading .shrink {
margin-left: 150px; margin-left: 150px;
} }
#feed-accordion .entry-heading .entry-date { #feed-accordion .entry-heading .entry-date {
display: block; display: block;
position: absolute; position: absolute;
right: 45px; right: 45px;
} }
#feed-accordion a.entry-heading-link:hover { #feed-accordion a.entry-heading-link:hover {
text-decoration: none; text-decoration: none;
} }
#feed-accordion .entry-external-link { #feed-accordion .entry-external-link {
position: absolute; position: absolute;
right: 25px; right: 25px;
margin-top: -25px; margin-top: -25px;
color: black; color: black;
} }
#feed-accordion .entry-external-link:hover { #feed-accordion .entry-external-link:hover {
text-decoration: none; text-decoration: none;
} }
#feed-accordion .entry-body .entry-title { #feed-accordion .entry-body .entry-title {
margin-top: 5px; margin-top: 5px;
margin-bottom: 10px; margin-bottom: 10px;
font-size: 130%; font-size: 130%;
font-weight: bold; font-weight: bold;
} }
#feed-accordion .entry-body .entry-subtitle { #feed-accordion .entry-body .entry-subtitle {
display: block; display: block;
font-size: 14px; font-size: 14px;
font-weight: normal; font-weight: normal;
} }
#feed-accordion .entry-body-content { #feed-accordion .entry-body-content {
max-width: 650px; max-width: 650px;
color: black; color: black;
padding-bottom: 10px; padding-bottom: 10px;
} }
.full-screen #feed-accordion .entry-body-content { .full-screen #feed-accordion .entry-body-content {
max-width: 100%; max-width: 100%;
} }
#feed-accordion .entry-enclosure { #feed-accordion .entry-enclosure {
clear: both; clear: both;
padding-top: 10px; padding-top: 10px;
}
#feed-accordion .entry-media-description {
padding-top: 10px;
} }
#feed-accordion .entry-buttons { #feed-accordion .entry-buttons {
clear: both; clear: both;
background-color: #fafafa; background-color: #fafafa;
padding: 3px 0px; padding: 3px 0px;
border-top: 1px solid #ebebeb; border-top: 1px solid #ebebeb;
} }
#feed-accordion .entry-buttons .checkbox.inline { #feed-accordion .entry-buttons .checkbox.inline {
padding-top: 0px; padding-top: 0px;
margin-left: 5px; margin-left: 5px;
} }
#feed-accordion .entry-buttons .keep-unread label { #feed-accordion .entry-buttons .keep-unread label {
display: inline; display: inline;
font-weight: inherit; font-weight: inherit;
} }
#feed-accordion .share-buttons a { #feed-accordion .share-buttons a {
color: #333333; color: #333333;
padding-left: 5px; padding-left: 5px;
} }
#feed-accordion .share-buttons a:hover { #feed-accordion .share-buttons a:hover {
text-decoration: none; text-decoration: none;
} }
#feed-accordion .tags-panel { #feed-accordion .tags-panel {
margin-left: 30px; margin-left: 30px;
} }
#feed-accordion .tags-panel .label{ #feed-accordion .tags-panel .label {
margin-left: 5px; margin-left: 5px;
} }
.select2-container-multi .select2-choices .select2-search-field input { .select2-container-multi .select2-choices .select2-search-field input {
padding: 2px padding: 2px;
} }
#feed-accordion .tag-input { #feed-accordion .tag-input {
margin: 0 0 0 5px; margin: 0 0 0 5px;
padding: 0; padding: 0;
width: 200px; width: 200px;
} }
#feed-accordion .entry-buttons label { #feed-accordion .entry-buttons label {
margin-bottom: 0px; margin-bottom: 0px;
font-size: 12px; font-size: 12px;
} }
#feed-accordion a.mark-up-to { #feed-accordion a.mark-up-to {
color: #333333; color: #333333;
position: absolute; position: absolute;
right: 30px; right: 30px;
} }
#feed-accordion a.mark-up-to:hover { #feed-accordion a.mark-up-to:hover {
text-decoration: none; text-decoration: none;
cursor: pointer; cursor: pointer;
} }
#feed-accordion .star { #feed-accordion .star {
text-decoration: none; text-decoration: none;
padding: 0px 5px; padding: 0px 5px;
} }
#feed-accordion .icon-star-yellow { #feed-accordion .icon-star-yellow {
color: gold; color: gold;
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
} }
#feed-accordion .icon-star-empty { #feed-accordion .icon-star-empty {
color: #555; color: #555;
} }
#feed-accordion.expanded .entry { #feed-accordion.expanded .entry {
margin-bottom: 40px; margin-bottom: 40px;
border: 1px solid #ddd; border: 1px solid #ddd;
box-shadow: 0 0 4px #e3e5eb; box-shadow: 0 0 4px #e3e5eb;
} }
#feed-accordion.expanded .current { #feed-accordion.expanded .current {
border-left: 1px solid rgb(77, 144, 240); border-left: 1px solid rgb(77, 144, 240);
} }
#feed-accordion .current.entry-font-size-0 { #feed-accordion .current.entry-font-size-0 {
font-size: 14px; font-size: 14px;
} }
#feed-accordion .current.entry-font-size-1 { #feed-accordion .current.entry-font-size-1 {
font-size: 15px; font-size: 15px;
} }
#feed-accordion .current.entry-font-size-2 { #feed-accordion .current.entry-font-size-2 {
font-size: 16px; font-size: 16px;
} }
#feed-accordion .current.entry-font-size-3 { #feed-accordion .current.entry-font-size-3 {
font-size: 17px; font-size: 17px;
} }
#feed-accordion .current.entry-font-size-4 { #feed-accordion .current.entry-font-size-4 {
font-size: 18px; font-size: 18px;
} }
#feed-accordion .current.entry-font-size-5 { #feed-accordion .current.entry-font-size-5 {
font-size: 19px; font-size: 19px;
} }
#feed-accordion .highlight-search { #feed-accordion .highlight-search {
background-color: rgba(255, 255, 140, 0.5); background-color: rgba(255, 255, 140, 0.5);
color: #333; color: #333;
} }

View File

@@ -1,23 +1,22 @@
.help { .help {
font-size: 85%; font-size: 85%;
line-height: 15px; line-height: 15px;
} }
.help .bookmarklet-select { .help .bookmarklet-select {
margin: 0; margin: 0;
padding: 0; padding: 0;
height: auto; height: auto;
} }
.help .about-module { .help .about-module {
margin-bottom: 40px; margin-bottom: 40px;
} }
.donate-action { .donate-action {
margin-top:20px; margin-top: 20px;
} }
.donate-image { .donate-image {
padding-bottom:10px; padding-bottom: 10px;
padding-right:16px; padding-right: 16px;
} }

View File

@@ -1,15 +1,15 @@
#loading-bar .bar { #loading-bar .bar {
background: #2c3e50; background: #2c3e50;
height: 101px; height: 101px;
top: -100px; top: -100px;
position: fixed; position: fixed;
} }
#loading-bar .peg { #loading-bar .peg {
box-shadow: 0 0 10px #2c3e50, 0 0 5px #2c3e50; box-shadow: 0 0 10px #2c3e50, 0 0 5px #2c3e50;
} }
#loading-bar-spinner .spinner-icon { #loading-bar-spinner .spinner-icon {
border-top-color: #2c3e50; border-top-color: #2c3e50;
border-left-color: #2c3e50; border-left-color: #2c3e50;
} }

View File

@@ -1,159 +1,161 @@
/* feed search dialog */ /* feed search dialog */
.feed-search-dialog .modal-body { .feed-search-dialog .modal-body {
overflow: hidden; overflow: hidden;
} }
.feed-search-dialog .filter-input { .feed-search-dialog .filter-input {
width: 90%; width: 90%;
} }
.feed-search-dialog .feed-link { .feed-search-dialog .feed-link {
font-size: large; font-size: large;
} }
.feed-search-dialog a:hover { .feed-search-dialog a:hover {
text-decoration: none; text-decoration: none;
} }
.feed-search-dialog .focus a { .feed-search-dialog .focus a {
color: black; color: black;
} }
/* tree*/ /* tree*/
.sidebar-nav-fixed { .sidebar-nav-fixed {
margin-top: 10px; margin-top: 10px;
width: 250px; width: 250px;
position: fixed; position: fixed;
top: 0; top: 0;
bottom: 0; bottom: 0;
overflow: hidden; overflow: hidden;
} }
.sidebar-nav-fixed:hover { .sidebar-nav-fixed:hover {
overflow-y: auto; overflow-y: auto;
} }
.sidebar-nav-fixed .ui-resizable-e { .sidebar-nav-fixed .ui-resizable-e {
width: 5px; width: 5px;
right: 0; right: 0;
} }
.full-screen .left-menu { .full-screen .left-menu {
display: none; display: none;
} }
.css-treeview { .css-treeview {
margin-top: 15px; margin-top: 15px;
margin-bottom: 30px; margin-bottom: 30px;
font-family: inherit; font-family: inherit;
font-size: 13px; font-size: 13px;
white-space: nowrap; white-space: nowrap;
} }
.css-treeview ul { .css-treeview ul {
list-style: none; list-style: none;
margin-left: 0px; margin-left: 0px;
padding: 0; padding: 0;
} }
.css-treeview li { .css-treeview li {
line-height: 20px; line-height: 20px;
} }
.css-treeview .fldr { .css-treeview .fldr {
cursor: pointer; cursor: pointer;
display: inline-block; display: inline-block;
width: 14px; width: 14px;
height: 14px; height: 14px;
line-height: 14px; line-height: 14px;
vertical-align: text-top; vertical-align: text-top;
margin-top: 1px; margin-top: 1px;
} }
.css-treeview .error { .css-treeview .error {
color: red; color: red;
font-style: italic; font-style: italic;
} }
.css-treeview label { .css-treeview label {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: block; display: block;
margin: 3px 0px 3px; margin: 3px 0px 3px;
} }
.css-treeview label,.css-treeview a,.css-treeview label::before { .css-treeview label,
font-family: inherit; .css-treeview a,
font-size: 12px; .css-treeview label::before {
white-space: nowrap; font-family: inherit;
font-size: 12px;
white-space: nowrap;
} }
.css-treeview .selected { .css-treeview .selected {
color: #d14836; color: #d14836;
} }
.css-treeview .unread { .css-treeview .unread {
font-weight: bold; font-weight: bold;
} }
.css-treeview .unread-counter { .css-treeview .unread-counter {
color: #666; color: #666;
font-size: 11px; font-size: 11px;
} }
.css-treeview .unread ~ .unread-counter::before { .css-treeview .unread ~ .unread-counter::before {
content: '('; content: "(";
} }
.css-treeview .unread ~ .unread-counter::after { .css-treeview .unread ~ .unread-counter::after {
content: ')'; content: ")";
} }
.css-treeview a { .css-treeview a {
cursor: pointer; cursor: pointer;
color: black; color: black;
display: block; display: block;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
} }
.css-treeview a:hover { .css-treeview a:hover {
text-decoration: none; text-decoration: none;
} }
.css-treeview li .tree-item:hover { .css-treeview li .tree-item:hover {
background-color: #EBEBEB; background-color: #ebebeb;
text-decoration: none; text-decoration: none;
} }
.css-treeview .config { .css-treeview .config {
display: none; display: none;
} }
.css-treeview .tree-item:hover .config { .css-treeview .tree-item:hover .config {
display: block; display: block;
padding-top: 3px; padding-top: 3px;
margin-right: 5px; margin-right: 5px;
width: 16px; width: 16px;
height: 16px; height: 16px;
} }
.css-treeview .indent1 { .css-treeview .indent1 {
padding-left: 16px; padding-left: 16px;
} }
.css-treeview .indent2 { .css-treeview .indent2 {
padding-left: 32px; padding-left: 32px;
} }
.css-treeview .indent3 { .css-treeview .indent3 {
padding-left: 48px; padding-left: 48px;
} }
.css-treeview .indent4 { .css-treeview .indent4 {
padding-left: 64px; padding-left: 64px;
} }
.css-treeview .indent5 { .css-treeview .indent5 {
padding-left: 80px; padding-left: 80px;
} }

View File

@@ -1,16 +1,16 @@
.toolbar { .toolbar {
padding-top: 10px; padding-top: 10px;
padding-bottom: 10px; padding-bottom: 10px;
width: 100%; width: 100%;
z-index: 10; z-index: 10;
position: fixed; position: fixed;
background-color: #FFF; background-color: #fff;
} }
.toolbar .donate { .toolbar .donate {
display: inline-block; display: inline-block;
} }
.toolbar .keywords { .toolbar .keywords {
width: 244px; width: 244px;
} }

View File

@@ -1,16 +0,0 @@
@font-face {
font-family: 'readabilicons';
src: url('../font/readabilicons-regular.eot'); /* IE9 Compat Modes */
src: url('../font/readabilicons-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
url('../font/readabilicons-regular.woff') format('woff'), /* Modern Browsers */
url('../font/readabilicons-regular.ttf') format('truetype'), /* Safari, Android, iOS */
url('../font/readabilicons-regular.svg#readabiliconsregular') format('svg'); /* Legacy iOS */
font-style: normal;
font-weight: 400;
}
.icon-couch::before {
content: "\e018";
font-family: "readabilicons";
-webkit-font-smoothing: antialiased;
}

View File

@@ -1,148 +1,153 @@
a:focus { a:focus {
outline: none; outline: none;
text-decoration: none; text-decoration: none;
} }
.container-full { .container-full {
width: 100%; width: 100%;
margin: 0 auto; margin: 0 auto;
padding-right: 20px; padding-right: 20px;
padding-left: 20px; padding-left: 20px;
} }
body img { body img {
max-width: 100%; max-width: 100%;
height: auto; height: auto;
} }
body .modal { body .modal {
display: block; display: block;
} }
body .modal-backdrop { body .modal-backdrop {
opacity: 0.5; opacity: 0.5;
} }
label { label {
font-weight: inherit; font-weight: inherit;
} }
.pointer { .pointer {
cursor: pointer; cursor: pointer;
} }
.nolink { .nolink {
color: inherit; color: inherit;
} }
.nolink:hover { .nolink:hover {
text-decoration: none; text-decoration: none;
color: inherit; color: inherit;
} }
.clear-both { .clear-both {
clear: both; clear: both;
} }
.block { .block {
display: block; display: block;
} }
.pre-wrap { .pre-wrap {
white-space: pre-wrap; white-space: pre-wrap;
} }
.form-horizontal .control-group { .form-horizontal .control-group {
margin-bottom: 10px; margin-bottom: 10px;
} }
.bidi-embed { .bidi-embed {
unicode-bidi: embed; unicode-bidi: embed;
} }
.bs-fb ul { .bs-fb ul {
margin-bottom: 0px; margin-bottom: 0px;
} }
.horizontal-align { .horizontal-align {
padding-top: 5px; padding-top: 5px;
line-height: 20px line-height: 20px;
} }
.welcome .container-fluid { .welcome .container-fluid {
margin-right: auto; margin-right: auto;
margin-left: auto; margin-left: auto;
max-width: 950px; max-width: 950px;
} }
.welcome .header { .welcome .header {
margin: 20px 0 20px 0; margin: 20px 0 20px 0;
} }
.welcome h3 { .welcome h3 {
margin-top: 0; margin-top: 0;
} }
.welcome .tagline { .welcome .tagline {
color: #B3B3B3; color: #b3b3b3;
font-size: 28px; font-size: 28px;
padding-top: 110px; padding-top: 110px;
} }
.welcome .preview { .welcome .preview {
margin-top: 20px; margin-top: 20px;
margin-bottom: 20px; margin-bottom: 20px;
} }
.welcome .demo { .welcome .demo {
font-size: 24px; font-size: 24px;
color: #B3B3B3; color: #b3b3b3;
display: block; display: block;
} }
.main .spinner { .main .spinner {
display: inline-block; display: inline-block;
margin-left: 11px; margin-left: 11px;
top: -4px; top: -4px;
} }
.icon { .icon {
width: 14px; width: 14px;
height: 14px; height: 14px;
display: block; display: block;
} }
.main .dropdown-menu a { .main .dropdown-menu a {
cursor: pointer; cursor: pointer;
} }
.favicon { .favicon {
width: 16px; width: 16px;
height: 16px; height: 16px;
} }
blockquote p { blockquote p {
font-size: 14px; font-size: 14px;
} }
.form-group { .form-group {
margin-bottom: 10px; margin-bottom: 10px;
} }
.btn, .btn-large, .btn-small, .btn-mini { .btn,
border-top-left-radius: 2px; .btn-large,
border-top-right-radius: 2px; .btn-small,
border-bottom-left-radius: 2px; .btn-mini {
border-bottom-right-radius: 2px; border-top-left-radius: 2px;
border-top-right-radius: 2px;
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
} }
.btn-group>.btn:first-child, .btn-group>.btn-large:first-child { .btn-group > .btn:first-child,
border-top-left-radius: 2px; .btn-group > .btn-large:first-child {
border-bottom-left-radius: 2px; border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
} }
.btn-group>.btn:last-child, .btn-group>.btn-large:last-child, .btn-group>.dropdown-toggle .btn-group > .btn:last-child,
{ .btn-group > .btn-large:last-child,
border-top-right-radius: 2px; .btn-group > .dropdown-toggle {
border-bottom-right-radius: 2px; border-top-right-radius: 2px;
} border-bottom-right-radius: 2px;
}

View File

@@ -1,21 +1,21 @@
::-webkit-scrollbar { ::-webkit-scrollbar {
height: 8px; height: 8px;
width: 8px; width: 8px;
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
background: rgba(0, 0, 0, 0.1); background: rgba(0, 0, 0, 0.1);
} }
::-webkit-scrollbar-track:hover { ::-webkit-scrollbar-track:hover {
background-color: rgba(0, 0, 0, .05); background-color: rgba(0, 0, 0, 0.05);
box-shadow: inset 1px 0 0 rgba(0, 0, 0, .1) box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.1);
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
background: rgba(0, 0, 0, 0.2); background: rgba(0, 0, 0, 0.2);
} }
::-webkit-scrollbar-thumb:hover { ::-webkit-scrollbar-thumb:hover {
background: rgba(0, 0, 0, 0.5); background: rgba(0, 0, 0, 0.5);
} }

Some files were not shown because too many files have changed in this diff Show More