From 302496e59320fc67804621d8f804b698bf6f1a30 Mon Sep 17 00:00:00 2001 From: appadmin Date: Tue, 29 Mar 2016 12:16:53 +0200 Subject: [PATCH 01/11] Creating a fork --- .gitignore | 1 + composer.json | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 5826402..9c10d38 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ composer.phar composer.lock .DS_Store +.idea diff --git a/composer.json b/composer.json index e4af043..cfb9c6a 100644 --- a/composer.json +++ b/composer.json @@ -1,9 +1,14 @@ { - "name": "laravel-ardent/laravalid", + "name": "patrickdegit/laravalid", "description": "Integrates Ardent models validation rules into Laravel forms", "keywords" : ["laravel","laravel5","validation","laravel validation","client-side","client side","laravel validation converter","laravel validation for client-side", "jquery validation","ardent"], "license": "MIT", "authors": [ + { + "name": "Patrick de Git", + "email": "degitpatrick@gmail.com", + "role": "Making the package work with Laravel 5.2" + }, { "name": "Igor Santos", "email": "igorsantos07+ardent@gmail.com", @@ -16,10 +21,10 @@ } ], "require": { - "laravelcollective/html": "5.1.*", - "illuminate/support": "5.1.*", - "illuminate/validation": "5.1.*", - "illuminate/routing": "5.1.*", + "laravelcollective/html": "5.2.*", + "illuminate/support": "5.2.*", + "illuminate/validation": "5.2.*", + "illuminate/routing": "5.2.*", "laravelbook/ardent": "3.*" }, "autoload": { From b80139f6a5c93a034f097b67b28a491ef9a77348 Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Tue, 29 Mar 2016 12:21:41 +0200 Subject: [PATCH 02/11] Update composer.json --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index cfb9c6a..d5ae414 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "patrickdegit/laravalid", + "name": "laravel-ardent/laravalid", "description": "Integrates Ardent models validation rules into Laravel forms", "keywords" : ["laravel","laravel5","validation","laravel validation","client-side","client side","laravel validation converter","laravel validation for client-side", "jquery validation","ardent"], "license": "MIT", From c930712c37d62cfb7d2b390bf7efca8293d2a313 Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Tue, 29 Mar 2016 12:46:19 +0200 Subject: [PATCH 03/11] bindShared -> singleton --- src/Laravalid/LaravalidServiceProvider.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Laravalid/LaravalidServiceProvider.php b/src/Laravalid/LaravalidServiceProvider.php index 9f95848..39e3119 100644 --- a/src/Laravalid/LaravalidServiceProvider.php +++ b/src/Laravalid/LaravalidServiceProvider.php @@ -46,18 +46,18 @@ public function register() if(!isset($this->app['html'])) { - $this->app->bindShared('html', function($app) + $this->app->singleton('html', function($app) { return new \Collective\Html\HtmlBuilder($app['url']); }); } - $this->app->bindShared('laravalid', function ($app) { + $this->app->singleton('laravalid', function ($app) { $plugin = \Config::get('laravalid.plugin'); $converterClassName = 'LaravelArdent\Laravalid\Converter\\'.$plugin.'\Converter'; $converter = new $converterClassName(); - $form = new FormBuilder($app->make('html'), $app->make('url'), $app->make('session.store')->getToken(), $converter); + $form = new FormBuilder($app->make('html'), $app->make('url'), $app->make('view'), $app->make('session.store')->getToken(), $converter); return $form->setSessionStore($app->make('session.store')); } ); From 32aa70104041b05f9b1894580c4a7120067c835d Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Tue, 29 Mar 2016 12:53:23 +0200 Subject: [PATCH 04/11] added action config property --- config/config.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/config.php b/config/config.php index 22fd887..dba4c56 100644 --- a/config/config.php +++ b/config/config.php @@ -3,5 +3,6 @@ return [ 'useLaravelMessages' => true, 'plugin' => 'JqueryValidation', - 'route' => 'laravalid' + 'route' => 'laravalid', + 'action' => '', ]; \ No newline at end of file From e92f931fb56734f9cfc6e357014b1c3d82d1f03f Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Tue, 29 Mar 2016 13:00:58 +0200 Subject: [PATCH 05/11] Fixed invalid route error --- config/config.php | 8 ++++---- src/Laravalid/LaravalidServiceProvider.php | 12 +++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/config/config.php b/config/config.php index dba4c56..d75a4a5 100644 --- a/config/config.php +++ b/config/config.php @@ -1,8 +1,8 @@ true, - 'plugin' => 'JqueryValidation', - 'route' => 'laravalid', - 'action' => '', + 'useLaravelMessages' => true, + 'plugin' => 'JqueryValidation', + 'route' => 'laravalid', + 'action' => 'SiteController@getValidation', ]; \ No newline at end of file diff --git a/src/Laravalid/LaravalidServiceProvider.php b/src/Laravalid/LaravalidServiceProvider.php index 39e3119..f7c5f04 100644 --- a/src/Laravalid/LaravalidServiceProvider.php +++ b/src/Laravalid/LaravalidServiceProvider.php @@ -27,12 +27,14 @@ public function boot() ], 'public'); // remote validations - $routeName = \Config::get('laravalid.route'); - $routeAction = \Config::get('laravalid.action', function($rule) { - $this->app['laravalid']->remoteValidation($rule); - }); + $routeName = \Config::get('laravalid.route'); + if (!empty($routeName)) { + $routeAction = \Config::get('laravalid.action', function ($rule) { + $this->app['laravalid']->remoteValidation($rule); + }); - \Route::any($routeName.'/{rule}', $routeAction); + \Route::any($routeName . '/{rule}', $routeAction); + } } /** From b2ace30afb7f1404b98066ca7146d2b441285ce0 Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Tue, 29 Mar 2016 13:05:24 +0200 Subject: [PATCH 06/11] Updated FormBuilder constructor --- src/Laravalid/FormBuilder.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Laravalid/FormBuilder.php b/src/Laravalid/FormBuilder.php index 6e04eba..5cd89ac 100644 --- a/src/Laravalid/FormBuilder.php +++ b/src/Laravalid/FormBuilder.php @@ -20,6 +20,7 @@ * @license MIT * @see Collective\Html\FormBuilder */ +use Illuminate\Contracts\View\Factory; use LaravelArdent\Laravalid\Converter\Base\Converter; use Collective\Html\HtmlBuilder; use Illuminate\Routing\UrlGenerator; @@ -29,9 +30,9 @@ class FormBuilder extends \Collective\Html\FormBuilder protected $converter; - public function __construct(HtmlBuilder $html, UrlGenerator $url, $csrfToken, Converter $converter) + public function __construct(HtmlBuilder $html, UrlGenerator $url, Factory $view, $csrfToken, Converter $converter) { - parent::__construct($html, $url, $csrfToken); + parent::__construct($html, $url, $view, $csrfToken); $plugin = \Config::get('laravalid.plugin'); $this->converter = $converter; } From cd326367aad187ce447169507ea8043637c0472f Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Wed, 30 Mar 2016 09:58:40 +0200 Subject: [PATCH 07/11] Skip client-side unique/exists validation when no route is defined --- src/Laravalid/Converter/JqueryValidation/Rule.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Laravalid/Converter/JqueryValidation/Rule.php b/src/Laravalid/Converter/JqueryValidation/Rule.php index 2e6b360..6cf25d5 100644 --- a/src/Laravalid/Converter/JqueryValidation/Rule.php +++ b/src/Laravalid/Converter/JqueryValidation/Rule.php @@ -126,17 +126,25 @@ public function between($parsedRule, $attribute, $type) public function unique($parsedRule, $attribute, $type) { + $route = \Config::get('laravalid.route', 'laravalid'); + if (empty($route)) { + return []; + } + $param = implode(',', $parsedRule['parameters']); $encrpytedParam = Helper::encrypt($param); - $route = \Config::get('laravalid.route', 'laravalid'); return ['data-rule-remote' => '/' . $route . '/unique?params=' . $encrpytedParam]; } public function exists($parsedRule, $attribute, $type) { + $route = \Config::get('laravalid.route', 'laravalid'); + if (empty($route)) { + return []; + } + $param = implode(',', $parsedRule['parameters']); $encrpytedParam = Helper::encrypt($param); - $route = \Config::get('laravalid.route', 'laravalid'); return ['data-rule-remote' => '/' . $route . '/unique?params=' . $encrpytedParam]; } From 78a82baa229f12073438e46ad678733a009c95e6 Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Thu, 31 Mar 2016 13:17:05 +0200 Subject: [PATCH 08/11] Allow rules to be overridden when creating a form based on a model --- src/Laravalid/FormBuilder.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Laravalid/FormBuilder.php b/src/Laravalid/FormBuilder.php index 5cd89ac..6121be5 100644 --- a/src/Laravalid/FormBuilder.php +++ b/src/Laravalid/FormBuilder.php @@ -98,12 +98,17 @@ public function open(array $options = [], $rules = null) * Create a new model based form builder. * @param \LaravelArdent\Ardent\Ardent $model An Ardent model instance. Validation rules will be taken from it * @param array $options + * @param array $rules Used instead of the model rules * @return string * @see Collective\Html\FormBuilder */ - public function model($model, array $options = []) + public function model($model, array $options = [], array $rules = null) { - $this->setValidation($model::$rules); + if (is_null($rules)) { + $this->setValidation($model::$rules); + } else { + $this->setValidation($model::$rules); + } return parent::model($model, $options); } From 42387316da39aff63bbc8847568c8385f1e9f0e9 Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Thu, 31 Mar 2016 13:48:56 +0200 Subject: [PATCH 09/11] Add confirmed rule --- src/Laravalid/Converter/JqueryValidation/Message.php | 6 ++++++ src/Laravalid/Converter/JqueryValidation/Rule.php | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/src/Laravalid/Converter/JqueryValidation/Message.php b/src/Laravalid/Converter/JqueryValidation/Message.php index 929e499..7c41358 100644 --- a/src/Laravalid/Converter/JqueryValidation/Message.php +++ b/src/Laravalid/Converter/JqueryValidation/Message.php @@ -41,6 +41,12 @@ public function numeric($parsedRule, $attribute, $type) return ['data-msg-number' => $message]; } + public function confirmed($parsedRule, $attribute, $type) + { + $message = Helper::getValidationMessage($attribute, $parsedRule['name']); + return ['data-msg-equalto' => $message]; + } + public function max($parsedRule, $attribute, $type) { $message = Helper::getValidationMessage($attribute, $parsedRule['name'], ['max' => $parsedRule['parameters'][0]], $type); diff --git a/src/Laravalid/Converter/JqueryValidation/Rule.php b/src/Laravalid/Converter/JqueryValidation/Rule.php index 6cf25d5..7d2c6e1 100644 --- a/src/Laravalid/Converter/JqueryValidation/Rule.php +++ b/src/Laravalid/Converter/JqueryValidation/Rule.php @@ -124,6 +124,11 @@ public function between($parsedRule, $attribute, $type) } } + public function confirmed($parsedRule, $attribute, $type) + { + return ['data-rule-equalto' => '#' . $attribute . '_confirmation']; + } + public function unique($parsedRule, $attribute, $type) { $route = \Config::get('laravalid.route', 'laravalid'); From 0d713b5151c2d5bd30a268c252b00f0fa9e2853f Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Thu, 31 Mar 2016 13:51:39 +0200 Subject: [PATCH 10/11] Bugfix in form builder --- src/Laravalid/FormBuilder.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Laravalid/FormBuilder.php b/src/Laravalid/FormBuilder.php index 6121be5..32322ae 100644 --- a/src/Laravalid/FormBuilder.php +++ b/src/Laravalid/FormBuilder.php @@ -105,9 +105,11 @@ public function open(array $options = [], $rules = null) public function model($model, array $options = [], array $rules = null) { if (is_null($rules)) { - $this->setValidation($model::$rules); + if (isset($model::$rules)) { + $this->setValidation($model::$rules); + } } else { - $this->setValidation($model::$rules); + $this->setValidation($rules); } return parent::model($model, $options); } From 59fa3dc4e71489c6a6ea1cd4072787184c58ed8c Mon Sep 17 00:00:00 2001 From: Patrick de Git Date: Tue, 5 Apr 2016 11:55:54 +0200 Subject: [PATCH 11/11] Fix regexp javascript rule --- public/jquery.validate.laravalid.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/public/jquery.validate.laravalid.js b/public/jquery.validate.laravalid.js index deb9605..27f88e3 100644 --- a/public/jquery.validate.laravalid.js +++ b/public/jquery.validate.laravalid.js @@ -1,4 +1,7 @@ $.validator.addMethod("regex", function(value, element, regexp) { - var regex = new RegExp(regexp); + var flags = regexp.replace(/.*\/([gimy]*)$/, '$1'), + pattern = regexp.replace(new RegExp('^/(.*?)/' + flags + '$'), '$1'), + regex = new RegExp(pattern, flags); + return this.optional(element) || regex.test(value); }, 'Format is invalid'); \ No newline at end of file