Skip to content

Commit

Permalink
Merge pull request #123 from legalthings/make_required_fields_optiona…
Browse files Browse the repository at this point in the history
…l_in_editor

Make required fields optional in editor
  • Loading branch information
svenstm committed Dec 6, 2018
2 parents 2c72f5c + 85c3435 commit 7642e3c
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 17 deletions.
18 changes: 10 additions & 8 deletions js/legalform-html.js
Expand Up @@ -22,16 +22,18 @@ function LegalFormHtml($) {
};

this.model = null;
this.isTestEnv = false;
this.disableRequiredFields = false;

/**
* Build form html
* @param {array} definition Form definition
* @param {boolean} isTestEnv If we're building form for testing purposes
* @return {string} Form html
* @param {array} definition Form definition
* @param {object} builderOptions Additional options for buildong form html
* @return {string} Form html
*/
this.build = function(definition, isTestEnv) {
self.isTestEnv = !!isTestEnv;
this.build = function(definition, builderOptions) {
if (typeof builderOptions === 'undefined') builderOptions = {};

self.disableRequiredFields = !!builderOptions.disableRequiredFields;
self.model = (new FormModel(definition)).getModel();

var lines = [];
Expand Down Expand Up @@ -165,7 +167,7 @@ function LegalFormHtml($) {
var type = self.model.getFieldType(data);
var excl = mode === 'build' ?
'data-mask;' :
(self.isTestEnv ? 'required;' : '');
(self.disableRequiredFields ? 'required;' : '');

switch (type) {
case 'number':
Expand Down Expand Up @@ -335,7 +337,7 @@ function LegalFormHtml($) {
var more = value === null ? {checked: data.value} : {name: data.value, value: value};
attrs = $.extend(attrs, more);

if (self.isTestEnv) {
if (self.disableRequiredFields) {
excl += ';required;';
}
} else {
Expand Down
8 changes: 5 additions & 3 deletions js/legalform-validation.js
Expand Up @@ -2,11 +2,13 @@
* Validation for LegalForm
*/
(function($) {
function LegalFormValidation(isTestEnv) {
function LegalFormValidation(builderOptions) {
if (typeof builderOptions === 'undefined') builderOptions = {};

this.ractive = null;
this.el = null;
this.elWizard = null;
this.isTestEnv = !!isTestEnv;
this.disableRequiredFields = !!builderOptions.disableRequiredFields;

//Fields for custom validation
var textFields = 'input[type="text"], input[type="number"], input[type="email"], textarea';
Expand Down Expand Up @@ -235,7 +237,7 @@
const isRequired = !$input.closest('.form-group').find('label > span').length ? false :
$input.closest('.form-group').find('label > span')[0].className === 'required' ? true : false;

if (isRequired && this.isTestEnv) {
if (isRequired && this.disableRequiredFields) {
$allCheckboxes.prop('required', false);
} else {
let checked = 0;
Expand Down
10 changes: 5 additions & 5 deletions js/legalform.js
Expand Up @@ -12,13 +12,13 @@ function LegalForm($) {

/**
* Build form html
* @param {array} definition Form definition
* @param {boolean} isTestEnv If we're building form for testing purposes
* @return {string} Form html
* @param {array} definition Form definition
* @param {object} builderOptions Additional options for buildong form html
* @return {string} Form html
*/
this.build = function(definition, isTestEnv) {
this.build = function(definition, builderOptions) {
var handler = new LegalFormHtml($);
return handler.build(definition, isTestEnv);
return handler.build(definition, builderOptions);
}

/**
Expand Down
2 changes: 1 addition & 1 deletion spec/legalform.build.spec.js
Expand Up @@ -1484,7 +1484,7 @@ describe("building a LegalForm for legalform model", function() {
}
];

var form = new LegalForm(jQuery).build(definition, true);
var form = new LegalForm(jQuery).build(definition, {disableRequiredFields: true});

expect(form).toMatchHtml(`
<div class="wizard-step">
Expand Down

0 comments on commit 7642e3c

Please sign in to comment.