Comments (2)
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.
Agree completely, I think good workflow is fundamental, and is very much on the roadmap. My thinking was we need three things working well:
- User roles and permissions (doesn't really exist yet - is a really high priority).
- Content types and ability to define rules by type - some of this exists but is very rudimentary.
- 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.
- 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)
- unzipping downloaded themes is broken HOT 2
- Leakage in the session table HOT 1
- calip.so showing 404 HOT 2
- Calipso possibilities HOT 1
- Calip.so website down? HOT 3
- Is this project dead? HOT 16
- 404 HOT 3
- [Security] XSS on usernames HOT 1
- How do you create custom fields? HOT 1
- Server crash on strange / invalid URLs HOT 1
- Calipso has become stuck in install mode. The specific error returned was: failed to connect to [mongodb:27017] HOT 2
- Can't install on Windows 8.1 HOT 5
- after installing calipso globally, when i try to run $ calipso , I get following error. HOT 5
- weird behavior while installastion in ubuntu (some type of string escaping errors) HOT 5
- Calipso fails to initiate the session when proxy-search request comes in HOT 16
- Community modules
- Is this project maintained? HOT 1
- Website offline :- ( HOT 3
- Use template-literal instead of EJS
- testing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from calipso.