CouchDB
  1. CouchDB
  2. COUCHDB-147

Make Futon an Extensible/Embedabble Authoring Tool

    Details

    • Type: Wish Wish
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Futon
    • Labels:
      None

      Description

      For folks wishing to build stackless web applications on top of couchdb, futon is good place to start. In my own work, I've attempted to integrate futon into my application to create an app that hosts its own development environment much the same way as wikis combine authoring as well as presentation. I believe the seaside smalltalk framework takes this approach as well.

      Please consider evolving futon to become more extensible and embeddable.

      stackless web application : An application that requires little more than HTTP, HTML, and JavaScript.

        Activity

        Hide
        Chris Anderson added a comment -

        yes, I love that standalone app stuff!

        http://jchris.mfdz.com/code/2008/10/standalone_applications_with_co

        can you share your futon work?

        Show
        Chris Anderson added a comment - yes, I love that standalone app stuff! http://jchris.mfdz.com/code/2008/10/standalone_applications_with_co can you share your futon work?
        Hide
        Rob Evans added a comment -

        Chris,

        I'll package up what I have and send it to you. It may take a week for me to get this to you... holiday's and all.

        Show
        Rob Evans added a comment - Chris, I'll package up what I have and send it to you. It may take a week for me to get this to you... holiday's and all.
        Hide
        Jason Davies added a comment -

        I'm also interested in making Futon more extensible. It would be really nice to have plugins that could inject arbitrary bits of functionality into Futon, e.g. TinyMCE, date pickers etc.

        I'm thinking Futon could load some arbitrary JavaScript from a specially-named document in each database, e.g. with id "_utils/Futon". This would be loaded after the Futon JavaScript stuff, so the latter could be overridden. The Futon JavaScript stuff would need to be restructured slightly to use callbacks where appropriate.

        To use TinyMCE as an editor you could then do something like this:

        var old_value_callback = value_callback;
        function value_callback(doc, key) {
        if (doc.type == 'blog_entry')

        { if (key == 'content') return showTinyMCE(doc[key]); if (key == 'pub_date') return showDatePicker(doc[key]); }

        return old_value_callback(doc, key);
        }

        There are security considerations with relying on a specially-named document in each database if you replicate an untrusted database onto your CouchDB instance, and then run Futon on it.

        I'd be interested in seeing Rob's work on this.

        Show
        Jason Davies added a comment - I'm also interested in making Futon more extensible. It would be really nice to have plugins that could inject arbitrary bits of functionality into Futon, e.g. TinyMCE, date pickers etc. I'm thinking Futon could load some arbitrary JavaScript from a specially-named document in each database, e.g. with id "_utils/Futon". This would be loaded after the Futon JavaScript stuff, so the latter could be overridden. The Futon JavaScript stuff would need to be restructured slightly to use callbacks where appropriate. To use TinyMCE as an editor you could then do something like this: var old_value_callback = value_callback; function value_callback(doc, key) { if (doc.type == 'blog_entry') { if (key == 'content') return showTinyMCE(doc[key]); if (key == 'pub_date') return showDatePicker(doc[key]); } return old_value_callback(doc, key); } There are security considerations with relying on a specially-named document in each database if you replicate an untrusted database onto your CouchDB instance, and then run Futon on it. I'd be interested in seeing Rob's work on this.
        Hide
        Benjamin Young added a comment -

        FWIW: Futon as a CouchApp: https://github.com/darosh/futon

        Show
        Benjamin Young added a comment - FWIW: Futon as a CouchApp: https://github.com/darosh/futon
        Hide
        Alexander Shorin added a comment -

        I believe this issue is actually fixed with Fauxton merge. Please reopen is you find him non-suitable.

        Show
        Alexander Shorin added a comment - I believe this issue is actually fixed with Fauxton merge . Please reopen is you find him non-suitable.

          People

          • Assignee:
            Unassigned
            Reporter:
            Rob Evans
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development