punchcard-content-types
Version:
Combines with input plugins to create forms with validation. Creates forms for Punchcard CMS.
41 lines (33 loc) • 1.09 kB
JavaScript
/* eslint-env browser */
/* global allPlugins, allInputs, allSettings, allIDs */
// TODO: Add In-Browser Tests
(function formUX() {
'use strict';
var script = function uxScript(target) {
var inp = allInputs[target.id],
input = {},
settings = {};
// Set up script input
input.target = target;
input.parent = target.parentNode;
input.all = {};
input.all[inp.name] = target;
// Set up script settings
settings.target = inp.settings;
settings.all = {};
settings.all[inp.name] = inp.settings;
// Set all sibling input and settings
Object.keys(inp.siblings).forEach(function uxSiblings(sibling) {
input.all[sibling] = allIDs[inp.siblings[sibling]];
settings.all[sibling] = allSettings[inp.parent.id][sibling];
});
// Run the script
allPlugins[inp.parent.type].scripts[inp.script.function](input, settings);
};
// Call script for each input
Object.keys(allInputs).forEach(function uxAttach(id) {
if (allInputs[id].hasOwnProperty('script')) {
script(allIDs[id]);
}
});
}());