Skip to content

Bootstraped Admin GUI addon for mongoose, jugglingdb, or just as a form generator

License

Notifications You must be signed in to change notification settings

node4good/formage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9a6f4b6 · Jan 18, 2017
Dec 21, 2016
Jun 29, 2014
Aug 29, 2014
Dec 21, 2016
Jul 30, 2014
Dec 21, 2016
Sep 30, 2014
Feb 27, 2014
Jul 30, 2014
Apr 4, 2014
May 14, 2014
Jul 5, 2014
Feb 27, 2014
Dec 20, 2016
Aug 7, 2013
Jan 18, 2017
Jul 16, 2014
Dec 21, 2016

Repository files navigation

Formage

Bootstraped Admin GUI addon for Mongoose, JugglingDB, or just as a form generator. Originally forked from mongoose-admin.

Build Status

NPM

Example Usage

var express = require('express'),
    app = express();

require('formage').init(app, express, models);

Look at the \example directory.

Options

// Site-wide options, and their default values
require('formage').init(app, express, models, {
    title: 'Admin',
    root: '/admin',
    default_section: 'main',
    username: 'admin',
    password: 'admin',
    admin_users_gui: true
});

Model options

var model = new mongoose.model('songs', schema);

// external files specific to this model
model.header_lines = [
   '<script src="/js/songs.js"></script>',
   '<style href="/css/songs.css"></style>'
];

model.formage = {
    // one-document models
    is_single: true,

    // labels
    label: 'My Songs',
    singular: 'Song',

    filters: ['artist', 'year'],

    // additional actions on this model
    actions: [
       {
          id: 'release',
          label: 'Release',
          func: function (user, ids, callback) {
             console.log('You just released songs ' + ids);
             callback();
          }
       }
    ],

    // list of fields to be displayed by formage for this model
    list: ['number', 'title', 'album', 'artist', 'year'],
    
    // order documents, save order in this field (type: Number)
    sortable: 'order',

    // list of order fields
    order_by: ['-year', 'album', 'number'],

    // list of fields that must be populated
    // (see http://mongoosejs.com/docs/api.html#document_Document-populate)
    list_populate: ['album'],

    // list of fields on which full-text search is available
    search: ['title', 'album', 'artist']
};

Fields

Formage comes with the following built-in fields, but custom fields can be written if needed.

You can pass options to the underlying fields and widgets:

var schema = new mongoose.Schema({
    artist: { type: String, label: 'Who made it?' },
    location: { type: Schema.Types.GeoPoint, widget_options: { lang: 'nl' }}
});

(The map widget lang setting is a two-letter ISO 639-1 code.)

Hmm

License

MIT

Sponsor