Skip to content

Latest commit

 

History

History
99 lines (78 loc) · 4.3 KB

README.md

File metadata and controls

99 lines (78 loc) · 4.3 KB

Houston

Houston (formerly Z-Mongo-Admin) is a zero-config Meteor Admin, modeled after Django Admin, intended as a simple way for developers to give end-users (or themselves) an easy way to view and manipulate their app's data.

Houston is available through the Atmosphere package manager.

Play around with the demo here. The email is [email protected], and the password is admin.

Getting Started

mrt add houston

Once installed, navigate to /admin to set up your admin account. You can either create a new user to act as Houston's Admin, or upgrade an existing user into an admin.

Auto-discovery

Houston will auto-discover your collections by exploring the top-level (root) namespace on the server for collections. If your collections are not on the global namespace, add them to Houston via

Houston.add_collection(collection);

Features

/admin: Get a list of available collections

Home View

/admin/collection: View all items in collection

Collection View

Collection view includes support for

  • deleting and creating documents
  • inline editing (double-click on a cell)
  • filtering and sorting by names
  • support for nested objects
  • (limited, mostly read-only) support for arrays

/admin/collection/document_id: Edit a particular document

Document View

/admin/login: User-defined Admin based on Meteor Accounts

Login

Defining Custom Menu Items

Custom Menu

Often, when delivering an admin interface for an end user, you may want to have more functionality than simply editing the models. Houston provides for adding custom functionality in two ways: (1) Templates, which live in their own section of the Houston UI, or (2) Links, which are easily available from the Houston interface and point to wherever you need them to. You can add several object arguments to menu and it will process them as single menu items.

Template

Houston.menu({
  'type': 'template',
  'use': 'my_analytics_template',
  'title': 'Analytics'
}, {...}, {...});

Link

Houston.menu({
  'type': 'link',
  'use': 'http://google.com',
  'title': 'Google',
  'target': 'blank'
});

Dependencies

  • Router: As of v1.0, Houston is compatible with both IronRouter and Router-less solutions that don't conflict with IronRouter. Let us know if that's not true for you.
  • Accounts: Houston piggybacks on top of Meteor Accounts.
  • CSS: Houston uses Bootstrap, but makes an effort to avoid having its CSS interfere with yours.
  • Meteor: Houston 1.0 was tested with Meteor 0.6.6.3, but there's no (strict) reasons that older versions shouldn't work.

###Current State We've put a fair bit of work into the 1.0 release and will be actively supporting it. Please send in feature requests, bug reports, and contribute.

Wishlist

  • Test coverage (first priority, probably before adding any additional features)
  • Custom admin roles: let package users write their own allow/deny scripts for admin types
  • Allow package user to add custom CSS or functionality buttons per collection / per view
  • Full support for Arrays / all sorts of complicated nested documents
  • Log of all actions done on Houston and (though this is tough) ability to roll back actions.
  • Get arbitrary mongo filters to work again.
  • Proper Meteor/IronRouter support for mounting Houston to /admin (to replace the current CSS/router hackery).

History

Houston was originally created during the Summer 2013 Meteor Hackathon by @gterrono, @alexeymk, @yefim and @ceasar_bautista.