Giter Club home page Giter Club logo

Comments (2)

rjcorwin avatar rjcorwin commented on July 20, 2024

I'm just getting up to speed on Node.js and Calisto looks pretty rad. Coming from a Drupal background it's definitely fun to think "If we could start all over again..." Here's some input from one of my brainstorms.

Content Scheduling could be built as a one off or it could be the result of more powerful systems working together.

The one off

Write some custom code that places a date widget on edit forms and stores that value in a db table and then write some other code that occasionally looks for nodes that should be published.

Build other systems first

This piece of functionality could be built using frameworks similar to those found in Drupal modules such as the Workflow module (for workflow states such as draft, published), Workflow Access (for defining which roles have read, update, and delete grants at which workflow states), and Job scheduler module (for picking up tasks in a queue), and lastly a field type for setting time/workflow transition to be scheduled into the Job queue.

I am under the opinion that a CMS should help to facilitate complicated workflows. IE. The Workflow module and Workflow Access module should replace Drupal's primitive and presumptuous Published checkbox. I think it would be a big sell for this CMS if this (what I consider basic) functionality was tackled from the beginning.

@cliftonc What do you think? I am interested in helping out, even if Calisto isn't the next Drupal it would be a healthy exercise in trying to implement something "the right way".

from calipso.

cliftonc avatar cliftonc commented on July 20, 2024

Agree completely, I think good workflow is fundamental, and is very much on the roadmap. My thinking was we need three things working well:

  1. User roles and permissions (doesn't really exist yet - is a really high priority).
  2. Content types and ability to define rules by type - some of this exists but is very rudimentary.
  3. Workflow engine based on events and a state machine defined for each content type, linked to the permissions system - the hooks are there from Mongoose, but you could create a much more fine grained state machine (+eventemitter) and do some very cool stuff with this one.
  4. A content scheduling system (e.g. this one is time not event based), but really is just a variant on the above.

The use case for scheduling vs workflow is to allow editors to stage changes, or (for example) for items that are time sensitive such as content that follows a tv broadcast, to be made public at the right time but edited well in advance.

Definitely not trying to reimplement Drupal - but really do feel there are a lot of very good things about the way Drupal is built that are worth learning from. I'm really scratching my own itch, enjoying building this and if it becomes useful for others then that's great!

Would be great if you can help out, happy to talk through options for any of the above, or start putting designs / thoughts up on the wiki?

from calipso.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.