Skip to content

Commit

Permalink
Merge pull request #48 from proengsoft/hotfix/Hotfix-47
Browse files Browse the repository at this point in the history
fixes  #47 #48
  • Loading branch information
torrentalle committed Aug 14, 2015
2 parents 683173c + 85f4103 commit e8848c3
Show file tree
Hide file tree
Showing 7 changed files with 161 additions and 74 deletions.
106 changes: 76 additions & 30 deletions public/js/jsvalidation.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion public/js/jsvalidation.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion public/js/jsvalidation.min.js

Large diffs are not rendered by default.

6 changes: 2 additions & 4 deletions resources/assets/js/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -178,10 +178,8 @@ $.extend(true, laravelValidation, {
dependentElement: function(validator, element, name) {

var el=validator.findByName(name);
if (el[0]===undefined) {
return true;
}
if ( validator.settings.onfocusout ) {

if ( el[0]!==undefined && validator.settings.onfocusout ) {
el.off( ".validate-laravelValidation" )
.off("blur.validate-laravelValidation-"+element.name)
.on( "blur.validate-laravelValidation-"+element.name, function() {
Expand Down
104 changes: 77 additions & 27 deletions resources/assets/js/validations.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,20 @@ $.extend(true, laravelValidation, {
var validator=this,
required=false;
var currentObject=this;

$.each(params,function(i,param) {
var target=laravelValidation.helpers.dependentElement(currentObject, element, param);
var currentValue=currentObject.elementValue(target);
required=required || target===false
|| $.validator.methods.required.call(validator,currentValue,target,true);
var target=laravelValidation.helpers.dependentElement(
currentObject, element, param
);
required=required || (
target!==undefined &&
$.validator.methods.required.call(
validator,
currentObject.elementValue(target),
target,true
));
});

if (required) {
return $.validator.methods.required.call(this, value, element, true);
}
Expand All @@ -72,12 +80,20 @@ $.extend(true, laravelValidation, {
var validator=this,
required=true;
var currentObject=this;

$.each(params,function(i,param) {
var target=laravelValidation.helpers.dependentElement(currentObject, element, param);
var currentValue=currentObject.elementValue(target);
required = required &&
( target===false || $.validator.methods.required.call(validator, currentValue,target,true));
var target=laravelValidation.helpers.dependentElement(
currentObject, element, param
);
required = required && (
target!==undefined &&
$.validator.methods.required.call(
validator,
currentObject.elementValue(target),
target,true
));
});

if (required) {
return $.validator.methods.required.call(this, value, element, true);
}
Expand All @@ -93,12 +109,20 @@ $.extend(true, laravelValidation, {
var validator=this,
required=false;
var currentObject=this;

$.each(params,function(i,param) {
var target=laravelValidation.helpers.dependentElement(currentObject, element, param);
var currentValue=currentObject.elementValue(target);
required=required || target===false
|| !$.validator.methods.required.call(validator, currentValue,target,true);
var target=laravelValidation.helpers.dependentElement(
currentObject, element, param
);
required = required ||
target===undefined||
!$.validator.methods.required.call(
validator,
currentObject.elementValue(target),
target,true
);
});

if (required) {
return $.validator.methods.required.call(this, value, element, true);
}
Expand All @@ -114,12 +138,20 @@ $.extend(true, laravelValidation, {
var validator=this,
required=true,
currentObject=this;

$.each(params,function(i, param) {
var target=laravelValidation.helpers.dependentElement(currentObject, element, param);
var currentValue=currentObject.elementValue(target);
required = required &&
(target===false|| !$.validator.methods.required.call(validator, currentValue,target,true));
var target=laravelValidation.helpers.dependentElement(
currentObject, element, param
);
required = required && (
target===undefined ||
!$.validator.methods.required.call(
validator,
currentObject.elementValue(target),
target,true
));
});

if (required) {
return $.validator.methods.required.call(this, value, element, true);
}
Expand All @@ -134,16 +166,22 @@ $.extend(true, laravelValidation, {
*/
RequiredIf: function(value, element, params) {

var target=laravelValidation.helpers.dependentElement(this, element, params[0]);
var val=String(this.elementValue(target));
var data=params.slice(1);

if ($.inArray(val,data)!== -1) {
return $.validator.methods.required.call(this, value, element, true);
} else {
return true;
var target=laravelValidation.helpers.dependentElement(
this, element, params[0]
);

if (target!==undefined) {
var val=String(this.elementValue(target));
var data=params.slice(1);
if ($.inArray(val,data)!== -1) {
return $.validator.methods.required.call(
this, value, element, true
);
}
}

return true;

},


Expand All @@ -160,9 +198,15 @@ $.extend(true, laravelValidation, {
* @return {boolean}
*/
Same: function(value, element, params) {
var target=laravelValidation.helpers.dependentElement(this, element, params[0]);
var targetValue=this.elementValue(target);
return String(value) === String(targetValue);

var target=laravelValidation.helpers.dependentElement(
this, element, params[0]
);

if (target!==undefined) {
return String(value) === String(this.elementValue(target));
}
return false;
},

/**
Expand Down Expand Up @@ -408,6 +452,9 @@ $.extend(true, laravelValidation, {
var timeCompare=parseFloat(params);
if (isNaN(timeCompare)) {
var target=laravelValidation.helpers.dependentElement(this, element, params);
if (target===undefined) {
return false;
}
timeCompare= laravelValidation.helpers.parseTime(this.elementValue(target), target);
}

Expand All @@ -424,6 +471,9 @@ $.extend(true, laravelValidation, {
var timeCompare=parseFloat(params);
if (isNaN(timeCompare)) {
var target=laravelValidation.helpers.dependentElement(this, element, params);
if (target===undefined) {
return false;
}
timeCompare= laravelValidation.helpers.parseTime(this.elementValue(target), target);
}

Expand Down
11 changes: 2 additions & 9 deletions src/Traits/JavascriptRules.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,6 @@

trait JavascriptRules
{
/**
* Get the validation rules.
*
* @return array
*/
abstract public function getRules();

/**
* Get the displayable name of the value.
*
Expand Down Expand Up @@ -84,7 +77,7 @@ protected function jsRuleConfirmed($attribute, array $parameters)
protected function jsRuleAfter($attribute, array $parameters)
{
if (!($date = strtotime($parameters[0]))) {
$date = in_array($parameters[0], array_keys($this->getRules())) ? $parameters[0] : 'false';
$date = $parameters[0];
}

return [$attribute, [$date]];
Expand All @@ -101,7 +94,7 @@ protected function jsRuleAfter($attribute, array $parameters)
protected function jsRuleBefore($attribute, array $parameters)
{
if (!($date = strtotime($parameters[0]))) {
$date = in_array($parameters[0], array_keys($this->getRules())) ? $parameters[0] : 'false';
$date = $parameters[0];
}

return [$attribute, [$date]];
Expand Down
Loading

0 comments on commit e8848c3

Please sign in to comment.