Feature Request: Bookmark topic in embedded forum (including implementation suggestion)

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Feature Request: Bookmark topic in embedded forum (including implementation suggestion)

Chris (ScoutNet-Team)
Hej,

we need a forum for a project and I would love to combine it with a mailing list. Nabble seems perfect for that. One thing bugs me quite much, though.

Naturally, we want to embed the forum (e.g.) nabble into our project's website. However doing this with nabble means loosing ability to bookmarks single topics in the browser, at least using the browsers standard ways to do this. Of course there is the "permalink" feature, but this is neither very usable, nor familiar to many people.

Please change the implementation of nabble embedding so that bookmarking topics is possible.

Here is my suggestion how to simply achieve this:

For every topic there needs to be a URL which displays this topic within the embedded nabble within the embedding website. I noticed such URLs already exists. Nabble's redirect feature (http://n3.nabble.com/help/Answer.jtp?id=40) uses them. It simply adds a topic identifier to the end of the URL looking like this: #nabble-td39248|a39248 . So most of what is needed is already there.

So what else is needed? Clicking a topic link must add the corresponding topic identifier (e.g. #nabble-td39248|a39248 ) to the url. This makes it then possible to simply bookmark a topic, because the currently displayed topic is always resembled by the topic identifier in the URL.

Now come the only slightly tricky part. How to add/change the topic identifier, when a topic link is clicked? I didn't test any of the following, but I have 3 alternatives and at least one of them should world.

Alternative no. 1: Make all topic links within the iframe point to the embedding website + topic identifier instead of nabble.com and set target="_parent".

Alternative no. 2: Use javascript within the iframe to adjust the browser address, respectively the outer frames location. Not sure this works, though, due to javascript security restrictions.

Alternative no. 3: Make every topic link actually open nabble in the outer frame. Nabble's redirect feature will automatically redirect back, adding the topic identifier. This means a lot of redirecting, but being able to bookmark topics is worth it, in my eyes. You could make this optional (as in http://n3.nabble.com/help/Answer.jtp?id=48 ) as some people may think differently.

Being able to bookmark topics would eliminate the biggest disadvantage of embedding stuff using an iframe.

This is easy to implement and very valuable. So please consider implementing it soon :).

Thanks so much for a great software.

Chris
Reply | Threaded
Open this post in threaded view
|

Re: Feature Request: Bookmark topic in embedded forum (including implementation suggestion)

Hugo <Nabble>
Hi Chris, thanks for your detailed explanation. Let's discuss point by point and try to reach an agreement. First of all, I would like to ask you: have you ever tried the star feature in our forums? With a single click you can star/unstar topics and posts. When you click on your user name on the upper right corner of the screen, you go directly to the starred items page, which also provides a search box for your convenience.

When you talk about bookmarks, I imagine you want to bookmark several topics (not just a few) and have them organized in your browser. This is time consuming because you must keep topics in a given folder (let's say, the folder for your Nabble forum) and make sure they are separated from the rest of your bookmarks.

Now, let me show the advantages of the star feature over the browser bookmarks. First, you won't spend time organizing favorites since your starred topics will be listed under your account. Second, you can use any browser in any computer and you will always have your starred items there (bookmarks would have to be imported/exported and saved to pen drives, etc. in order to keep them close to you). Third, you can search your starred topics/posts.

So please think about this and give the star feature a try. Also, I will reply below to your ideas.

Chris (ScoutNet-Team) wrote
Alternative no. 1: Make all topic links within the iframe point to the embedding website + topic identifier instead of nabble.com and set target="_parent".
This would make the forum unusable. Our embedding takes 2-4 seconds to open the iframe and any navigation would be a patience test for the visitor.
Chris (ScoutNet-Team) wrote
Alternative no. 2: Use javascript within the iframe to adjust the browser address, respectively the outer frames location. Not sure this works, though, due to javascript security restrictions.
You are right, security restrictions would be the first problem. The second problem is how to change the URL with javascript and keep the page intact (not reloaded).
Chris (ScoutNet-Team) wrote
Alternative no. 3: Make every topic link actually open nabble in the outer frame. Nabble's redirect feature will automatically redirect back, adding the topic identifier. This means a lot of redirecting, but being able to bookmark topics is worth it, in my eyes. You could make this optional (as in http://n3.nabble.com/help/Answer.jtp?id=48 ) as some people may think differently.
This is the same problem as #1 above. But this is actually a light at the end of the tunnel for you, because you could right-click on the topic link and select "Open in a new tab/window". Then you would be able to bookmark the topic from the other tab/window.

Please let me know what you think.
Regards,
Hugo Teixeira
Nabble.com
Reply | Threaded
Open this post in threaded view
|

Re: Feature Request: Bookmark topic in embedded forum (including implementation suggestion)

Chris (ScoutNet-Team)
Hi Hugo,

you are missing my point. I do not personally want to bookmark any specific page. I want our users to be able to bookmark them. And this is most easy for them if they can do it like they always do it. Standard is the keyword here. The standard for bookmarking is making the browser save the current address.

None of your described "solutions" is a standard way of bookmarking. Our users would have to learn a new way of bookmarking pages, just for nabble. The star feature might be very nice for those familiar with it. But frankly I was not even aware of its existence before you told me so. I contrast to this, everybody already knows how to bookmark a page in their browser. Do you agree that it would be a significant improvement to offer this feature?

I now implemented a working demo of Alternative No. 2. My guess about JavaScript restrictions was wrong. It IS possible to adjust the outer frame's location hash from within the iframe. And as I already expected it is possible WITHOUT causing the outer frame to reload. Only the other way around does not work. The outer frame cannot read the inner frames location and adjust its hash itself. This is why a change in the nabble html is required.

See the demo in action at http://cvogt.org/nabble-iframe-demo/ . As you can see, an identifier is always automatically added to the outer frames address. It identifies the page currently loaded in the iframe and changes when the page loaded in the iframe changes. The specified "Loaded at" times clearly show that the outer frame is never reloaded. The demo was successfully tested in current versions of Firefox, IE, Safari, Chrome, Opera.

You can use this technique to VERY easily make nabble support standard bookmarking. You only have to do one single change. Make every nabble page onload set the outer frames location hash to the nabble id corresponding to that page. Something like: <body onload="window.parent.location.hash='nabble-td3890683|a3890683'">. That's all. Done. Bookmarking implemented.

Now it is up to you. Please implement it :).

Best regards

Christopher
Reply | Threaded
Open this post in threaded view
|

Re: Feature Request: Bookmark topic in embedded forum (including implementation suggestion)

Hugo <Nabble>
Hi Chris, thanks for the example. But unfortunately I have to tell you it is just not going to work. All your pages are in the same domain (cvogt.org) and this is perfect for JavaScript to access other frames. With Nabble this isn't true and you would have your website in cvogt.org and Nabble would be in nabble.com. Your example won't work in this new scenario. If you have another domain to test this, please move those inner pages to the other domain and try to make it work. You will see the Javascript errors.
Reply | Threaded
Open this post in threaded view
|

Re: Feature Request: Bookmark topic in embedded forum (including implementation suggestion)

Chris (ScoutNet-Team)
Hi Hugo,

you are right. The cross domain javascript restrictions break my example single-domain example in a multi-domain setup like with nabble.

It currently works in Firefox, but not in the other browsers. There are different hacks discussed on the web, one of which I implemented. See http://kalender.scoutnet.de/nabble-iframe-demo2 . Facebook uses this technique (see http://wiki.developers.facebook.com/index.php/Cross_Domain_Communication and http://wiki.developers.facebook.com/index.php/Cross_Domain_Communication_Channel ). It would however require an additional file on the system embedding nabble. Possibly you could even work around this requirement. But nevertheless in the end it would still be a hack.

But the good news is, there is also "a right way to do it" using HTML 5 postMessage. It is described in http://ajaxian.com/archives/using-html-5-postmessage , a demo can be found in the linked article. It is supported by all major browsers as this website says: http://wiki.whatwg.org/wiki/Implementations_in_Web_browsers

How about implementing it using HTML 5? Little work and great value :).

I am not sure yet you agree about the importance of standard bookmarking. For us it is the one remaining issue that keeps us from using nabble. In a larger forum it is crucial that people are able to bookmark topics. Teaching them a new way of doing it first is just not an option usability-wise. What do you think?

Best Regards

Christopher