AppConfig Spec Creator
This tool is an AppConfig xml spec creation tool built around simplifying the creation of xml spec files.
Using the tool
This tool is pretty simple to use. Just deploy it under any web server or navigate to the
index.html file from any browser
(it works without a web server). Add fields by clicking the
addField button and edit the fields per your needs. Groups are
the same but with the
groups button. Fields and groups can be reordered by dragging them up and down the form. When all configuration is done, download your spec file by clicking the
If you wish to load a previously or externally created spec, use the
import button. NOTE: importing erases the currently created
spec in your form.
Some functionality has yet to be completed. Localization support is not available for all portions of the schema.
Navigating the code base
This tool uses Backbone.js as its core functionality library. The code is set up in a few different sections. There are models, views, collections, templates, and helpers.
Models: These are just what they sound like. Standard in any MVC framework, the models are the actual object housing the data. These are how snippets, constraints, groups, and a few other things are represented.
Views: Also standard in any MVC framework, these are the actual presentation of a model's data visually on screen. There are views for standard form rendering as well as modal rendering. Since a model is edited in a modal, we have to have a different view for that modal. Views are broken up into regular views and modal views to help code organization.
Collections: These are a Backbone tool that helps a lot with maintaining groups of models. Backbone makes it easy to manage an array of snippets, options, and groups by putting them in collections and allowing events to be permeated throughout. Essentially these are just fancy arrays given to us by Backbone.
Helpers: These are helpful pieces that simplify getting things done in the code. The biggest thing here is the PubSub tool. This is a wrapper around the Backbone.Events service and allows us to send publish/subscribe messages around decoupled pieces of the code base.
NOTE: much of this code base is hard to understand if Backbone.js is not understood. There's no real way to mitigate that except for code comments. Learning Backbone is a bit of a prerequisite to fully understanding this code base.