Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
{
"root": true,
"extends": "eslint:recommended",
"parserOptions": {
"sourceType": "module"
},
"rules": {
"no-eval": "error",
"array-bracket-spacing": "error",
Expand Down Expand Up @@ -36,10 +39,10 @@
},
"env": {
"browser": true,
"es6": true,
"jquery": true
},
"globals": {
"selfoss": {},
"Dexie": {}
"selfoss": {}
}
}
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@
/data/cache/*.spc
/data/logs/*.log
/data/sqlite/*.db
/public/all.*
/public/selfoss-sw-offline.js
/public
user.css
user.js
config.ini
Expand Down
4 changes: 3 additions & 1 deletion .htaccess
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,15 @@ RewriteRule thumbnails/(.*)$ data/thumbnails/$1 [L]

# rule for front controller
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule !.(js|ico|gif|jpg|png|css|asc|txt|svg|xml|webmanifest)$ index.php?%1
RewriteRule !.(js|ico|gif|jpg|png|css|map|asc|txt|svg|xml|webmanifest)$ index.php?%1

# rule for files
RewriteRule !favicons/ - [C]
RewriteRule !thumbnails - [C]
RewriteRule !public - [C]
RewriteRule !index.php - [C]
RewriteRule !user.css - [C]
RewriteRule !user.js - [C]
RewriteRule (.*) public/$1 [L]

# deny requests for config files
Expand Down
4 changes: 4 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

### API changes
- `tags` attribute is now consistently array of strings, numbers are numbers and booleans are booleans. **This might break third-party clients that have not updated yet.** ([#948](https://github.com/SSilence/selfoss/pull/948))
- API is now versioned separately from selfoss and follows [semantic versioning](https://semver.org/) ([#1137](https://github.com/SSilence/selfoss/pull/1137))

### Customization changes
- `selfoss.shares.register` changed its signature: it no longer takes a boolean argument, and the callback is expected to open a window itself, instead of returning a URL. For example, if you previously had
Expand Down Expand Up @@ -50,7 +51,10 @@
- Open Sans font is no longer bundled, resulting in smaller installations. Additionally, `use_system_font` option was removed. The typeface is still set as the default font family, so if you want to use it, install it to your devices. If you want to use a different typeface, add `body { font-family: 'Foo Face'; }` to your `user.css`. ([#1072](https://github.com/SSilence/selfoss/pull/1072))
- The file name of exported sources now includes a timestamp ([#1078](https://github.com/SSilence/selfoss/pull/1078))
- Developers, we no longer use Grunt. Build the package using `npm run dist` and check the code using `npm run check`; see the `scripts` section in top-level `package.json`. ([#1093](https://github.com/SSilence/selfoss/pull/1093))
- Developers, we are now building the styles and client-side code statically, using Parcel. If you update any such assets, you will need to run `npm run build` for the changes to be reflected. You can also use `npm run dev` to watch for asset changes. ([#1137](https://github.com/SSilence/selfoss/pull/1137))
- Google+ and del.icio.us share button were removed ([#1121](https://github.com/SSilence/selfoss/pull/1121))
- Windows 8 tiles are no longer supported. ([#1137](https://github.com/SSilence/selfoss/pull/1137))
- [Strong password hashes](https://www.php.net/manual/en/function.password-hash.php) are now supported. ([#844](https://github.com/SSilence/selfoss/pull/844), [#1137](https://github.com/SSilence/selfoss/pull/1137))


## 2.18 – 2018-03-05
Expand Down
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ INSTALLATION
------------

1. Upload all files of this folder (IMPORTANT: also upload the invisible .htaccess files)
2. Make the directories data/cache, data/favicons, data/logs, data/thumbnails, data/sqlite and public/ writeable
2. Make the directories data/cache, data/favicons, data/logs, data/thumbnails and data/sqlite writeable
3. Insert database access data in config.ini (see below -- you don't have to change anything if you want to use sqlite)
3. You don't have to install the database, it will be created automatically (ensure that your database has enought rights for creating triggers)
4. Create cronjob for updating feeds and point it to https://yourselfossurl.com/update via wget or curl. You can also execute the cliupdate.php from commandline.
Expand All @@ -41,7 +41,7 @@ UPDATE
1. Backup your database and your "data" folder
2. (IMPORTANT: don't delete the "data" folder) delete all old files and folders excluding the folder "data" and the file config.ini
3. Upload all new files and folders excluding the data folder (IMPORTANT: also upload the invisible .htaccess files)
4. Make the folder "public" writeable
4. Consult the [NEWS file](NEWS.md) to learn about backwards incompatible changes.
5. Rename your folder /data/icons into /data/favicons
6. Clean your browser cache
7. Insert your current database connection and your individual configuration in config.ini. Important: we change the config.ini and add new options in newer versions. You have to update the config.ini too.
Expand Down Expand Up @@ -77,7 +77,7 @@ DEVELOPMENT

Selfoss uses [composer](https://getcomposer.org/) and [npm](https://www.npmjs.com/get-npm) for installing external libraries. When you clone the repository you have to issue `composer install` to retrieve the external sources.

For the client side, you will also need JavaScript dependencies installed by calling `npm install` in the `public` directory. You can use `npm run install-dependencies` as a shortcut for installing both sets of dependencies.
For the client side, you will also need JavaScript dependencies installed by calling `npm install` in the `assets` directory. You can use `npm run install-dependencies` as a shortcut for installing both sets of dependencies.

If you want to create a package with all the dependencies bundled, you can run `npm run dist` command to produce a zipball.

Expand All @@ -99,8 +99,6 @@ Special thanks to the great programmers of this libraries which will be used in
* [twitteroauth](https://github.com/abraham/twitteroauth)
* [Elphin IcoFileLoader](https://github.com/lordelph/icofileloader)
* [jQuery hotkeys](https://github.com/tzuryby/jquery.hotkeys)
* [JShrink](https://github.com/tedious/JShrink)
* [cssmin](https://code.google.com/archive/p/cssmin)
* [Spectrum Colorpicker](https://github.com/bgrins/spectrum)
* [jQuery custom content scroller](http://manos.malihu.gr/jquery-custom-content-scroller/)
* [twitter oauth library](https://github.com/abraham/twitteroauth)
Expand Down
11 changes: 5 additions & 6 deletions _docs/website/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,7 @@ <h2 id="configuration">Configuration</h2>
<code>
[globals]
username=secretagent
password=5d95c032abce4865d49ee225d28a8a939ea39a924a158f0056ebb1880d9
salt=1291929@9394$95%939201098*61234324(@#$(!*@#981923123</code>
password=$2y$10$xLurmBB0HJ60.sar1Z38r.ajtkruUIay7rwFRCvcaDl.1EU4epUH6</code>
</pre>
<p>Sample config.ini file with a MySQL database connection:</p>
<pre>
Expand Down Expand Up @@ -240,8 +239,8 @@ <h2 id="configuration_params">Configuration</h2>
<td>password hash for optional login. You can generate a password hash by using following page of your selfoss installation. https://your_selfoss_url.com/password</td>
</tr>
<tr>
<td class="documentation-first-column">salt</td>
<td>salt for hashing the password (see <a href="https://en.wikipedia.org/wiki/Salt_(cryptography)">Wikipedia</a>)</td>
<td class="documentation-first-column"><del>salt</del> (deprecated)</td>
<td>salt for hashing the password (see <a href="https://en.wikipedia.org/wiki/Salt_(cryptography)">Wikipedia</a>). Not used for passwords generated using selfoss 2.19 or newer.</td>
</tr>
<tr>
<td class="documentation-first-column">public</td>
Expand Down Expand Up @@ -450,7 +449,7 @@ <h2>Extend</h2>
If you want to get the newest entries from your own source (e.g. an IMAP Email Account, Log Files or any data from your own application), you can include a new spout in your selfoss stream by writing just one php class (saved in one php file).
</p>
<p>
Create a new php file under <code>/spouts/your_spouts/your_spout.php</code> (choose a name for <code>your_spouts</code> and <code>your_spout</code>). The easiest way is to copy the <code><a href="https://github.com/SSilence/selfoss/blob/master/spouts/rss/feed.php">/spouts/rss/feed.php</a></code> and to modify this file.
Create a new php file under <code>src/spouts/your_spouts/your_spout.php</code> (choose a name for <code>your_spouts</code> and <code>your_spout</code>). The easiest way is to copy the <code><a href="https://github.com/SSilence/selfoss/blob/mastersrc/spouts/rss/feed.php">src/spouts/rss/feed.php</a></code> and to modify this file.
</p>

<h3>Member Variables</h3>
Expand Down Expand Up @@ -520,7 +519,7 @@ <h3>Methods</h3>
<h3>Thumbnails</h3>

<p>
If you would like to show thumbnails instead of text, you have to implement the optional method <code>getThumbnail()</code>. This method have to return the url of the image. selfoss will load and generate the thumbnail automatically. See <code><a href="https://github.com/SSilence/selfoss/blob/master/spouts/rss/images.php">\spouts\rss\images.php</a></code> for an example. This spout searches for an image in an rss feed and returns it.
If you would like to show thumbnails instead of text, you have to implement the optional method <code>getThumbnail()</code>. This method have to return the url of the image. selfoss will load and generate the thumbnail automatically. See <code><a href="https://github.com/SSilence/selfoss/blob/master/src/spouts/rss/images.php">src/spouts/rss/images.php</a></code> for an example. This spout searches for an image in an rss feed and returns it.
</p>

<h3>Your Spouts</h3>
Expand Down
File renamed without changes.
67 changes: 36 additions & 31 deletions public/css/style.css → assets/css/style.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
@import 'malihu-custom-scrollbar-plugin/jquery.mCustomScrollbar.css';
@import '@fancyapps/fancybox/dist/jquery.fancybox.css';
@import 'spectrum-colorpicker/spectrum.css';
@import '../css/reset.css';

/* base */

html {
Expand All @@ -8,7 +13,7 @@ html {
body {
font: lighter 18px/27px 'Open Sans', Arial, sans-serif;
color: black;
background:url(images/bg.gif) repeat;
background:url(../images/bg.gif) repeat;
height: 100%;
position:relative;
}
Expand Down Expand Up @@ -83,7 +88,7 @@ input {
#nav-logo {
margin-left:20px;
margin-top:14px;
background:url(images/logo.png);
background:url(../images/logo.png);
width:31px;
height:37px;
}
Expand Down Expand Up @@ -113,13 +118,13 @@ input {
.nav-filter-collapsed {
cursor:pointer;
padding-left: 20px;
background: url(images/nav-collapsed.png) center left no-repeat;
background: url(../images/nav-collapsed.png) center left no-repeat;
}

.nav-filter-expanded {
cursor:pointer;
padding-left: 20px;
background: url(images/nav-expanded.png) center left no-repeat;
background: url(../images/nav-expanded.png) center left no-repeat;
}

#nav-filter-title {
Expand Down Expand Up @@ -227,13 +232,13 @@ input {
.nav-tags-collapsed {
cursor:pointer;
padding-left: 20px;
background: url(images/nav-collapsed.png) center left no-repeat;
background: url(../images/nav-collapsed.png) center left no-repeat;
}

.nav-tags-expanded {
cursor:pointer;
padding-left: 20px;
background: url(images/nav-expanded.png) center left no-repeat;
background: url(../images/nav-expanded.png) center left no-repeat;
}

#nav-tags li a {
Expand Down Expand Up @@ -274,13 +279,13 @@ input {
.nav-sources-collapsed {
cursor:pointer;
padding-left: 20px;
background: url(images/nav-collapsed.png) center left no-repeat;
background: url(../images/nav-collapsed.png) center left no-repeat;
}

.nav-sources-expanded {
cursor:pointer;
padding-left: 20px;
background: url(images/nav-expanded.png) center left no-repeat;
background: url(../images/nav-expanded.png) center left no-repeat;
}

#nav-sources {
Expand Down Expand Up @@ -341,23 +346,23 @@ input {
}

#nav-refresh {
background:url(images/nav-refresh.png) no-repeat center center #272325;
background:url(../images/nav-refresh.png) no-repeat center center #272325;
}

#nav-refresh.loading {
background:url(images/ajax-loader.gif) center center no-repeat;
background:url(../images/ajax-loader.gif) center center no-repeat;
}

#nav-settings {
background:url(images/nav-sources.png) no-repeat center center #272325;
background:url(../images/nav-sources.png) no-repeat center center #272325;
}

#nav-logout {
background:url(images/nav-logout.png) no-repeat center center #272325;
background:url(../images/nav-logout.png) no-repeat center center #272325;
}

#nav-login {
background:url(images/nav-login.png) no-repeat center center #272325;
background:url(../images/nav-login.png) no-repeat center center #272325;
}

.nav-toolbar {
Expand Down Expand Up @@ -445,7 +450,7 @@ input {
padding-left:5px;
padding-right:15px;
font-size:0.85em;
background: url(images/remove-small.png) no-repeat right center #3d6d69;
background: url(../images/remove-small.png) no-repeat right center #3d6d69;
border-right:6px solid #3d6d69;
-webkit-border-top-right-radius: 4px;
-webkit-border-bottom-right-radius: 4px;
Expand Down Expand Up @@ -473,7 +478,7 @@ input {
}

#content.loading {
background:url(images/ajax-loader-big.gif) center center no-repeat;
background:url(../images/ajax-loader-big.gif) center center no-repeat;
min-height:90%;
}

Expand Down Expand Up @@ -694,32 +699,32 @@ input {
}

.entry-toolbar .entry-starr {
background-image:url(images/unstarred.png);
background-image:url(../images/unstarred.png);
}

.entry-toolbar .entry-starr.active {
background-image:url(images/starred.png);
background-image:url(../images/starred.png);
}

.entry-toolbar .entry-unread {
background-image:url(images/read.png);
background-image:url(../images/read.png);
}

.entry-toolbar .entry-unread.active {
background-image:url(images/unread.png);
background-image:url(../images/unread.png);
}

.entry-toolbar .entry-loadimages {
display:none;
background-image:url(images/arrow-down.png);
background-image:url(../images/arrow-down.png);
}

.entry-newwindow {
background-image:url(images/open.png);
background-image:url(../images/open.png);
}

.entry-next {
background-image:url(images/arrow-right.png);
background-image:url(../images/arrow-right.png);
display:none;
}

Expand All @@ -737,7 +742,7 @@ input {
left:100%;
top:0;
margin-left:-60px;
background:url(images/close.png) center center no-repeat;
background:url(../images/close.png) center center no-repeat;
background-size: 28px 28px;
}

Expand All @@ -763,7 +768,7 @@ input {
}

.stream-more.loading {
background:url(images/ajax-loader-big.gif) center center no-repeat;
background:url(../images/ajax-loader-big.gif) center center no-repeat;
}

.stream-more.loading span {
Expand Down Expand Up @@ -842,7 +847,7 @@ input {

.source-edit-delete.loadi1ng,
.source-action.loading {
background:url(images/ajax-loader.gif) right center no-repeat;
background:url(../images/ajax-loader.gif) right center no-repeat;
padding-right:25px;
}

Expand Down Expand Up @@ -919,7 +924,7 @@ input {
}

#loginform.loading {
background:url(images/ajax-loader-big.gif) center center no-repeat;
background:url(../images/ajax-loader-big.gif) center center no-repeat;
height: 90%;
}

Expand All @@ -936,7 +941,7 @@ input {
}

#login h1 {
background:url(images/logo.png) left center no-repeat;
background:url(../images/logo.png) left center no-repeat;
font-weight:600;
padding-top:10px;
padding-left:40px;
Expand Down Expand Up @@ -973,7 +978,7 @@ input {
}

#opml h1 {
background:url(images/logo.png) left center no-repeat;
background:url(../images/logo.png) left center no-repeat;
font-family:'Open Sans', Arial, sans-serif;
font-weight: 600; /* semi-bold */
padding-top:10px;
Expand Down Expand Up @@ -1074,7 +1079,7 @@ body:not(.loggedin) .entry-unread {
border-radius:0px;
/*border-top:1px solid #ccc;*/
border:0;
background:url(images/entry-bg.png) bottom repeat-x #fff;
background:url(../images/entry-bg.png) bottom repeat-x #fff;
}

.source-showparams,
Expand Down Expand Up @@ -1223,7 +1228,7 @@ body:not(.loggedin) .entry-unread {
left:50%;
top:5px;
margin-left:-48px;
background:url(images/nav-mobile-logo.png) no-repeat;
background:url(../images/nav-mobile-logo.png) no-repeat;
background-size:96px 40px;
}

Expand All @@ -1241,7 +1246,7 @@ body:not(.loggedin) .entry-unread {
height:29px;
left:100%;
margin-left:-66px;
background:url(images/nav-mobile-settings.png) no-repeat center;
background:url(../images/nav-mobile-settings.png) no-repeat center;
background-size:29px 29px;
padding:11px 21px 11px 15px;
display: block;
Expand Down
Loading