Feature Suggestions

by RubenK, Friday, March 15, 2013, 08:35 (4227 days ago)

I've got some suggestions which would make Selfoss even better.

  • Mark as read on clicking/opening item (already mentioned in another topic)
  • Ability to set an option that images will automatically load on opening a message in mobile view
  • Showing the unread message count behind each tag
  • Being abled to run the web app full screen via the web-app-capable meta (will run some tests on this later today)

I'll be trying to 'hack' these options in by myself in the coming days, but in the end - native support would be better ;-)


So far - great web app! Runs great on my little Raspberry Pi here :-)

iOS Fullscreen Webapp Capability

by RubenK, Friday, March 15, 2013, 10:26 (4227 days ago) @ RubenK

Alright - first step in 'hacking' iOS fullscreen capability into Selfoss are underway ;-) It's still very experimental work, since opening a entry_source-link will open that link inside the webapp, which will in essence disables control of the app. So read-entries-only at this point.

---

Added the following line at the bottom of /selfoss/config.ini

  • fullscreen_webapp=1

If set to 1, the webapp will be capable of running in standalone fullscreen, if set to 0 the app will run in Safari

---

Added the following line to /selfoss/helpers/View.php on line 35, before $lastSlash = strrpos($_SERVER['SCRIPT_NAME'], '/');

  • $this->fullscreenwebapp = \F3::get('fullscreen_webapp');

---

Added the following lines to /selfoss/templates/home.phtml before the </head>-tag

  • <?PHP if($this->fullscreenwebapp=='1'){ ?><!-- MOD iOS webapp -->
  • <meta name="apple-mobile-web-app-capable" content="yes">
  • <link rel="apple-touch-startup-image" href="public/images/ios-splash-320x460.png" media="screen and (max-device-width: 320px)">
  • <link rel="apple-touch-startup-image" href="public/images/ios-splash-640x920.png" media="(max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)">
  • <? } ?>

The two images I used for the splash-screen can be found here: 320x640 and 640x920

iOS Fullscreen Webapp Capability

by nosbig, Friday, March 15, 2013, 13:27 (4227 days ago) @ RubenK

Have you thought about posting your code changes on the Github repo? These seem like some simple but effective changes to the code.

iOS Fullscreen Webapp Capability

by RubenK, Friday, March 15, 2013, 13:36 (4227 days ago) @ nosbig
edited by RubenK, Friday, March 15, 2013, 13:41

Didn't think of Github .. :-D ... thanks for the headsup. Now all that's left is figuring out how Github works ;-)

Mark as Read on Click/Expand

by RubenK, Friday, March 15, 2013, 11:27 (4227 days ago) @ RubenK

Another 'hacky' solution - but it works like a charm.


- STEP 1 ----

Added the following line to /selfoss/config.ini. Setting it to 1 will mark items as read on opening/expanding. Setting to 0 will retain the original functionality.

  • markasread_openentry=1


- STEP 2 ----

Added the following line to /selfoss/helpers/View.php on line 35, right before $lastSlash = strrpos($_SERVER['SCRIPT_NAME'], '/');. Exactely the same spot as with the fullscreen-hack.

  • $this->markasreadopenentry = \F3::get('markasread_openentry');


- STEP 3 ----

Changed the following code in /selfoss/template/home.phtml - replace the following code

  • <body class="<?PHP if($this->publicMode===true) : ?>publicmode<?PHP endif; ?> <?PHP echo $this->loggedin ? "loggedin" : "notloggedin"; ?> <?PHP if(\F3::get('initial_open')==1) : ?>initial_open<?PHP endif; ?>">

with this code

  • <body class="<?PHP if($this->publicMode===true) : ?>publicmode<?PHP endif; ?> <?PHP echo $this->loggedin ? "loggedin" : "notloggedin"; ?> <?PHP if(\F3::get('initial_open')==1) : ?>initial_open<?PHP endif; ?>" <?PHP if ($this->markasreadopenentry=='1'){ echo 'data-markasreadonopenentry="1"'; } ?>>


- STEP 4 ----

Added the following code to /selfoss/public/js/selfoss-events.js on line 317, right before if(selfoss.isSmartphone()==false) {.

  • /* MOD --- mark as read hack */
    var markOnOpen = $('body').attr('data-markasreadonopenentry');
    var entryID = parent.attr('id');
    if (markOnOpen == '1') { markAsRead(entryID); }


- STEP 5 ----

Added the following code to /selfoss/public/js/selfoss-events.js on line 391, right before // no source click. (after adding the previous code, otherwise the line-numbers won't match).

  • /* MOD --- mark as read hack */
    function markAsRead(entryid) {
    var ids = new Array();
    ids.push( entryid.substr(5) );

    $.ajax({
    url: $('base').attr('href') + 'mark',
    type: 'POST',
    data: {
    ids: ids
    },
    success: function() {
    $('#'+entryid).removeClass('unread');

    var unreadstats = parseInt($('.nav-filter-unread span').html());
    $('.nav-filter-unread span').html( (unreadstats - ids.length) );

    if(selfoss.isSmartphone())
    $('#nav-mobile-settings').click();
    },
    error: function(jqXHR, textStatus, errorThrown) {
    alert('Can not mark visible item: ' + errorThrown);
    }
    });
    }


    - STEP 6 ----

    Delete the following file: /selfoss/public/all.js - this will be regenerated the next time you visit your selfoss webapp (might take a while on slower servers)

Mark as Read on Click/Expand

by baz4096, Friday, March 15, 2013, 13:27 (4227 days ago) @ RubenK

Hi

I think you missed this around Step 2:

public $markasreadopenentry = 0;

Around line 20 in helpers/View.php


Thanks by the way, I've implemented this and will see how I get on with it :)

Baz

Mark as Read on Click/Expand

by RubenK, Friday, March 15, 2013, 13:38 (4227 days ago) @ baz4096

Was that necessary? Probably you're quite right, but it still works without that ;-) ... I'm moving code-suggestions to Github from now on!

Mark as Read on Click/Expand

by baz4096, Friday, March 15, 2013, 13:55 (4227 days ago) @ RubenK

Actually it didn't work for me, I got:

Internal Server Error

Undefined property: helpers\View::$markasreadopenentry


Ubuntu 12.04 LTS with PHP 5.3.10 with Suhosin-Patch / Apache FastCGI

Baz

Mark as Read on Click/Expand

by RubenK, Friday, March 15, 2013, 14:01 (4227 days ago) @ baz4096

Interesting - worked for me. But thanks for the addition. I'll add that to the code!

Raspberry Pi running Rasbian (debian) with Apache 2.2.22 with PHP 5.4.4-14

Mark as Read on Click/Expand

by sanchomuzax ⌂, Budapest, Wednesday, April 10, 2013, 22:08 (4200 days ago) @ RubenK
edited by sanchomuzax, Wednesday, April 10, 2013, 22:20

Internal Server Error
Fatal error: Maximum execution time of 30 seconds exceeded

I use Lighttpd.

I restored the all.js, then after no has error messages. But the auto read doesn't working. I tried it with empty all.js, but no changes.

--
Sancho

RSS Feed of thread
powered by my little forum