Code Monkey home page Code Monkey logo

crucible's Issues

Replace unique-slug

It adds SIX HUNDRED KILOBYTES to the size of the unminified bundle.

That is without source maps, cripes.

Relationship search is broken

firebase-web.js:130 Uncaught Error: Query.equalTo failed: First argument contains undefined in property 'content'cg @ firebase-web.js:130bg @ firebase-web.js:129g.kg @ firebase-web.js:239ctrl.sources @ relationship.js:27ctrl.oninput @ relationship.js:39(anonymous function) @ mithril.js:669(anonymous function) @ mithril.js:482

Names aren't saving

Almost certainly tied to my changes to make saving manual, need to investigate ASAP.

Track user actions

Would be potentially worthwhile to keep tabs of things users have edited in some sort of order so we can show them recency info.

Could just do it in local storage, but might as well shove it into Firebase since we're already wired up to it and they're (potentially) authed. Wouldn't track that if they aren't authed, obviously.

Add option to specify key for schemas

Right now the key for a schema input is also used for the label, but may want to have different values.

{
  "What is your name?" : {
    type : "text",
    key  : "name"
  }
}

This does make is less apparent when you've stomped on a previous input:

{
  name : "text",
  "What is your real name?" : {
    type : "text",
    key  : "name"
  }
}

Add field visibility logic support

Might be valuable to be able to say "Field B should only show up if Field A is Value C".

It keeps coming back up, I'm a bit wary of it though. Could be super-useful, could also be a bit of a slippery slope towards self-aware schemas.

Need ability to backup DB

Firebase offers this but only on their $150/month plan.

Automated backups are cooler, but perhaps a button to backup to S3 would suffice for now.
Might be nice to store the last backup date, and nag users if it's been more than 5 days.

Fix table header sorting arrows

Broke 'em in the transition to the SVG icons, will need to figure out how to fix that.

Options are sticking w/ generated content or including a <svg> tag, basically. Should be straightforward.

Content searching

Would be useful to be able to search for content by name, I assume.

Missing dependencies?

> [email protected] start /Users/hendrik/work/crucible
> node build/serve.js


/Users/hendrik/work/crucible/node_modules/postcss-import/index.js:13
var resolvedPromise = new Promise(function(resolvePromise) {
                          ^
ReferenceError: Promise is not defined
    at Object.<anonymous> (/Users/hendrik/work/crucible/node_modules/postcss-import/index.js:13:27)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/Users/hendrik/work/crucible/build/serve.js:58:9)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)

Select doesn't support strings for options value

Not sure if this was never the intention (in which case the readme needs an update), or just doesn't yet work.

{
  type : "select",
  options : {
    one : "one", // doesn't work
    two : {
      value : "two" // works
  }
}

Need a logo

Everyone knows that any good home-spun CMS needs a natty logo to go with the cool name.

I suggest that we hit up some ANet Photoshop wizards to come up with something based on this:

Crucible

I would also be okay with someone coming up with a slogan that has something to do with pouring molten hot content.

Don't round-trip to firebase before updating

We should update a local data representation, then sync that to firebase every so often (5s-ish?). Sometimes going out to firebase is just too laggy.

When the firebase data updates we can use lodash.assign to merge them back together, with local data splatting over the firebase data to ensure that local edits aren't lost. This isn't 100% safe if multiple people are editing the same content at the same time, but it's as close as we've got w/o doing something much more complicated.

Add logout UI

It's already got a route, but it needs some UI somewhere. Probably in the nav bar?

Preview URL option

Should have a standardized way to provide a preview URL when defining a schema, so that users can have a straight-forward "Preview" button on every piece of content they edit.

It'd depend on the back-end systems doing the right thing, so this may be problematic in practice.

Remove schema edit icon

Instead of building a "proper" permissions system, we should just make it less likely that someone using it will end up editing a schema on accident.

In the long term this should live in a new place, but for now needing to know to add /edit to the end of a URL is "good enough".

Select should support disabled

Would be helpful when you want to force someone to make a conscious decision:

{
  "type*" : "select",
  options : {
    nag : {
        selected : true,
        disabled : true,
        value    : "Please make a section"
      },
    one : {
        value : "option 1"
      },
    two : {
        value : "option 2"
      }
  }
}

Add UI for revisions

Crucible supports a really simple versioning scheme, there should be UI that exposes past revisions, let's you view their data (BUT NOT EDIT), and replace the current revision w/ one from the past (implicitly saving the current revision as a new item on the revisions list).

Visual diffing would be interesting but that's a huge rabbit hole I'm not really ready to fall down just yet. Also probably not so useful as to be worth the time it'd take right now.

Add unpublish date field to all content entries

All content entries should have the option to set an unpublish date field, similar to the publish field.
Every piece of content won't benefit from this, but will be nice for those that do (news posts, sidebars, CTA features). The two fields can be used together without needing an additional publish state field.

Various states:

publish unpublish state
blank blank draft
future date blank scheduled
past date blank published
future date ++future date scheduled
past date future date published
--past date past date expired

https://github.com/tivac/crucible/blob/master/src/pages/content-edit/publishing.js

Content sorting

Content table should be sortable by some form of fields.

Name/Created/Updated at the very least.

Home Page

Need to figure out what should be on the home page, what is useful for a user?

Layout shouldn't know about the nav component

Right now layout reserves space for the nav component, but IMO it shouldn't. Layout should only care about the left-most nav and the content area beyond. Pages should show the sub-nav if they want it (since only content-edit does). Right now they're too coupled.

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.