Git Product home page Git Product logo

webhook-cms's Introduction

Webhook Overview

This repository is for the Webhook command line tools. There are several other repositories in Webhook's core.

  • webhook - The Webhook command line tools.
  • webhook-generate - The local runserver for Webhook.
  • webhook-cms - The CMS layer and frotend GUI. A single page Ember app.
  • webhook-server-open - The production server for serving and regenerating live Webhook sites.
  • webhook-images - Image resizing for the Webhook frontend. For Google App Engine.

If you are interested in self-hosting Webhook, check the instructions here.

Webhook Command Line Tools

This repository contains the code for the Webhook CMS command line tools. These tools require a Webhook account which you can create through the command line if you need. Currently we are in a beta period and all new accounts must be whitelisted for the tools to function properly.

Webhook uses Grunt for its local runserver and task runner. The Webhook command line tools are sometimes simple aliases to specific Grunt commands.

Installation

Requires the installation of Node JS. Once installed open your terminal and run:

npm install -g grunt wh

Webhook Command Line

The Webhook CLI has the following commands:

wh create sitename                 # Create a new Webhook directory/site at "sitename".
wh serve [port]                    # Serves a Webhook site locally on the optional port. Default port is 2002.
wh deploy                          # Packages local, deploys to the live server, and runs a new build.
wh update                          # Updates the site directory you're in to use the latest Webhook runserver code libraries.

# wh init creates the secret key file for a local site that doesn't have one (say a github clone).
# init must be run in an existing webhook directory.

wh init

Grunt commands in the local server

The following grunt commands are supported.

grunt clean                       # Deletes the files in the .build/ directory.
grunt scaffolding:typename        # Generates scaffolding HTML for a passed content-type from the CMS.
grunt build                       # Runs clean, and then rebuilds the .build/ directory.

webhook-cms's People

Contributors

cliffspence avatar gpbmike avatar kidgodzilla avatar liamjones avatar ltsquigs avatar lukasluecke avatar robinvdvleuten avatar snide avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webhook-cms's Issues

Content type names

cc @LtSquigs

Currently, the formbuilder creates fields names like item.some_field. The content type itself though goes from "Video Games" to "videogames". This should be uniform. I don't really care which way we go, it just needs to be consistant, since this is ultimately what the template writers will be writing all day.

Locking Item Editor

Allow other users to see the form. Hide controls behind toggle. User must acknowledge intent.

One Offs

  • Save as a single object, not a list.
  • Do not send a signal to rebuild.
  • Menu item goes directly to form.

Add image upload to markdown

You should be able to upload an image and add it to markdown. Would exist the same way as redactor.

Initial version could just add the tag into the text field.

Later version should allow positioning similiar to redactor. This would be done in the preview side of the document with the same exact controls.

On gallery upload, provide a spinner

Currently, when uploading a gallery of images, the button will just hang if you picked a lot of images. Should prolly put a spinner in the button immediately to let the user know something is going on any they should just wait.

Form builder polish

Reminders

  1. If control-group is selected already, remove the the selection class (wy-control-group-edit) as soon as you begin dragging.
  2. Apply class to control group after placement (wy-control-group-placed) and then remove it after 1/2 sec.
  3. When placing a new widget, if you then delete that widget on the left nav, it doesn't properly revert to the add widgets panel.

FORM BUILDER - Notes

Just some spec notes for the form builder.

  1. There are three form types. This is selected when creating a form.
    • Editorial (comes with date/time publishing).
    • Objects of a set (comics, games...etc)
    • Single object (About us page, twitter widget that requires some editable fields.)
  2. Every form requires the following.
    • Object name (articles, videos, comics, games, twitter widget)
    • Title
    • Slug overwrite.
  3. List page in CMS is built by doing the following
    • Show title
    • If image widget is included in form, show image.
    • If form type = editorial, include publish date info.

Form creator should both save and be able to load a JSON file with the particulars of the form, thereby making them reusable. We can then load preset git repos oh wh create that include both the templates and the CMS configs for common site patterns (aka youtube site, podcast site, instructional site...etc).

Every form field should have the following

  1. Label text.
  2. Help text (optional).
  3. Is required?
  4. Placeholder text.

CMS List of stuff

  • After editing an exisiting movie, creating a new movie form populates with data from the edit.
  • If you create a new movie, the gets corrupted when the list auto updates with the data. If you're just looking at your own screen it looks like it doubles the content.
  • Hook up the sort and column "display view" on the list page. We should probably just default to the first three fields if no display view was set.
  • Wire up confirm / warning alerts on actions. http://wyrmtest.readthedocs.org/en/latest/alerts.html#alert-trays
  • On deletes, let's give them time to undo the delete rather than doing the normal "are you sure" question.
  • Sort order current puts newest objects last. Should prolly be the reverse for the default.
  • If fields are left empty, the row doesn't build properly in the list. http://snid.es/image/0W3D461s223k
  • The formbuilder will show data from items of that form-type http://snid.es/image/3N2L0b0A2n0C

Make form builder items disabled

Hey, can you pass me an extra wrapping div in the widgets on the right side of the form builder called wy-control-group-disabled. It should be inside wy-control-group-edit.

I think I can use a z-index, transparent element to disable the forms that way.

Content Types named 'item' fuck up

If your content type is named item data gets saved in the wrong space.

We should also try other javascript reserved words and such to see if that also fucks it up.

Use hasMany polymorphic relationships

When hasMany polymorphic relationships are supported in Ember Data we can use them for widgets. Each widget would have its own model and validations all bundled together.

Then we won't have to jump through these data hoops between ember and firebase. (In theory)

File uploads - store extra data about the file

For file uploads it would be nice to store some extra info about the files themselves.

Specifically for audio files it would be nice to have the time duration and filetype (mp3, ogg...etc).

Add scaffolding notice

When a content type is saved and scaffolding is created, give me a message block to let them know what just happened. Likely best done through a modal that they have to close so we know they read it.

Similarily. If they save the content type after scaffolding has already run, we should alert them the scaffolding was not updated, and ask if they'd like it rebuilt (warning them this will overwrite changes). cc @LtSquigs for this bit.

Handle expired auth token

Handle permission errors and auth token expiration after you're already in the system.

FIREBASE WARNING: auth() was canceled: Auth token is expired.

Implement file uploading

Here is the information needed to implement file uploading:

URL: http://23.253.89.18:3000/upload-file/ Will change at a later date
Method: POST
POST parameters:
    site: name of site
    token: token of site
    payload: file being uploaded
Multipart request

A simple Form tag with three form fields (site, token, payload as file field) was able to post an upload a file. So just need to do the equiv of that in javascript.

Not sure if possible to have a progress meter, as none of that information is really relayed. And it would only be a progress to our server, not to the other server.

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.